@tanstack/query-core 5.0.0-alpha.32 → 5.0.0-alpha.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/build/lib/index.d.ts +1 -0
  2. package/build/lib/queriesObserver.d.ts +12 -5
  3. package/build/lib/queriesObserver.esm.js +49 -10
  4. package/build/lib/queriesObserver.esm.js.map +1 -1
  5. package/build/lib/queriesObserver.js +49 -10
  6. package/build/lib/queriesObserver.js.map +1 -1
  7. package/build/lib/queriesObserver.mjs +32 -10
  8. package/build/lib/queriesObserver.mjs.map +1 -1
  9. package/build/umd/index.development.js +31 -10
  10. package/build/umd/index.development.js.map +1 -1
  11. package/build/umd/index.production.js +1 -1
  12. package/build/umd/index.production.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/index.ts +1 -0
  15. package/src/queriesObserver.ts +63 -13
  16. package/build/lib/focusManager.d.ts.map +0 -1
  17. package/build/lib/hydration.d.ts.map +0 -1
  18. package/build/lib/index.d.ts.map +0 -1
  19. package/build/lib/infiniteQueryBehavior.d.ts.map +0 -1
  20. package/build/lib/infiniteQueryObserver.d.ts.map +0 -1
  21. package/build/lib/mutation.d.ts.map +0 -1
  22. package/build/lib/mutationCache.d.ts.map +0 -1
  23. package/build/lib/mutationObserver.d.ts.map +0 -1
  24. package/build/lib/notifyManager.d.ts.map +0 -1
  25. package/build/lib/onlineManager.d.ts.map +0 -1
  26. package/build/lib/queriesObserver.d.ts.map +0 -1
  27. package/build/lib/query.d.ts.map +0 -1
  28. package/build/lib/queryCache.d.ts.map +0 -1
  29. package/build/lib/queryClient.d.ts.map +0 -1
  30. package/build/lib/queryObserver.d.ts.map +0 -1
  31. package/build/lib/removable.d.ts.map +0 -1
  32. package/build/lib/retryer.d.ts.map +0 -1
  33. package/build/lib/subscribable.d.ts.map +0 -1
  34. package/build/lib/tests/focusManager.test.d.ts.map +0 -1
  35. package/build/lib/tests/hydration.test.d.ts.map +0 -1
  36. package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +0 -1
  37. package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +0 -1
  38. package/build/lib/tests/mutationCache.test.d.ts.map +0 -1
  39. package/build/lib/tests/mutationObserver.test.d.ts.map +0 -1
  40. package/build/lib/tests/mutations.test.d.ts.map +0 -1
  41. package/build/lib/tests/notifyManager.test.d.ts.map +0 -1
  42. package/build/lib/tests/onlineManager.test.d.ts.map +0 -1
  43. package/build/lib/tests/queriesObserver.test.d.ts.map +0 -1
  44. package/build/lib/tests/query.test.d.ts.map +0 -1
  45. package/build/lib/tests/queryCache.test.d.ts.map +0 -1
  46. package/build/lib/tests/queryClient.test.d.ts.map +0 -1
  47. package/build/lib/tests/queryObserver.test.d.ts.map +0 -1
  48. package/build/lib/tests/utils.d.ts.map +0 -1
  49. package/build/lib/tests/utils.test.d.ts.map +0 -1
  50. package/build/lib/types.d.ts.map +0 -1
  51. package/build/lib/utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.development.js","sources":["../../src/subscribable.ts","../../src/utils.ts","../../src/focusManager.ts","../../src/onlineManager.ts","../../src/retryer.ts","../../src/notifyManager.ts","../../src/removable.ts","../../src/query.ts","../../src/queryCache.ts","../../src/mutation.ts","../../src/mutationCache.ts","../../src/infiniteQueryBehavior.ts","../../src/queryClient.ts","../../src/queryObserver.ts","../../src/queriesObserver.ts","../../src/infiniteQueryObserver.ts","../../src/mutationObserver.ts","../../src/hydration.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationKey,\n MutationStatus,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Filter by mutation status\n */\n status?: MutationStatus\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, status, predicate, mutationKey } = filters\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (status && mutation.state.status !== status) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query & mutation keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashKey(queryKey: QueryKey | MutationKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n\nexport function keepPreviousData<T>(\n previousData: T | undefined,\n): T | undefined {\n return previousData\n}\n\nexport function addToEnd<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [...items, item]\n return max && newItems.length > max ? newItems.slice(1) : newItems\n}\n\nexport function addToStart<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [item, ...items]\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems\n}\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n this.#focused = focused\n\n if (focused) {\n this.onFocus()\n }\n }\n\n onFocus(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n","import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n","import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends Function>(callback: T): T => {\n return ((...args: any[]) => {\n schedule(() => {\n callback(...args)\n })\n }) as any\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n","import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) !== -1) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n","import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} 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?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\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\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\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 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.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\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.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : 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.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n","import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n","import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } 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: DefaultError,\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>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<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 #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.#mutations.find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n )\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\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","import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n","import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\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 QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\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'\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 #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\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 return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\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 defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\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(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n const defaultedCancelOptions = { revert: true, ...cancelOptions }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(defaultedCancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\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(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) => {\n let promise = query.fetch(undefined, fetchOptions)\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop)\n }\n return query.state.fetchStatus === 'paused'\n ? Promise.resolve()\n : promise\n }),\n )\n\n return Promise.all(promises).then(noop)\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\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 = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).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 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: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\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 ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\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.throwOnError === 'undefined') {\n defaultedOptions.throwOnError = !!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 ...(options?.mutationKey &&\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","import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n","import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#result = []\n this.#observers = []\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.#findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n","import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n DefaultError,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n","import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n","import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ?? defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ?? defaultShouldDehydrateQuery\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) => (filterQuery(query) ? [dehydrateQuery(query)] : []))\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size","isServer","window","noop","undefined","functionalUpdate","updater","input","isValidTimeout","value","Infinity","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","matchQuery","filters","query","type","exact","fetchStatus","predicate","queryKey","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","status","mutationKey","hashKey","hashFn","queryKeyHashFn","JSON","stringify","_","val","isPlainObject","Object","keys","sort","reduce","result","key","a","b","some","replaceEqualDeep","array","isPlainArray","aSize","length","bItems","bSize","copy","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","prot","prototype","hasOwnProperty","toString","call","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","replaceData","prevData","data","structuralSharing","keepPreviousData","previousData","addToEnd","items","item","newItems","slice","addToStart","FocusManager","onFocus","addEventListener","removeEventListener","setEventListener","setup","focused","setFocused","forEach","isFocused","globalThis","document","visibilityState","focusManager","OnlineManager","onOnline","online","setOnline","isOnline","navigator","onLine","onlineManager","defaultRetryDelay","failureCount","min","canFetch","networkMode","CancelledError","revert","silent","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","onSuccess","onError","pause","continueResolve","canContinue","onPause","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","continue","didContinue","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","batch","flush","schedule","push","batchCalls","args","originalQueue","setNotifyFunction","setBatchNotifyFunction","notifyManager","Removable","destroy","clearGcTimeout","scheduleGc","gcTime","optionalRemove","updateGcTime","newGcTime","clearTimeout","Query","defaultOptions","cache","getDefaultState","meta","remove","setData","newData","dataUpdatedAt","manual","setState","setStateOptions","reset","observer","enabled","isDisabled","getObserversCount","isInvalidated","getCurrentResult","isStaleByTime","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","shouldFetchOnReconnect","addObserver","indexOf","notify","removeObserver","filter","invalidate","fetch","fetchOptions","queryFn","console","abortController","AbortController","queryFnContext","addSignalProperty","object","defineProperty","enumerable","get","signal","fetchFn","Error","context","behavior","onFetch","fetchMeta","onSettled","isFetchingOptimistic","action","reducer","fetchFailureCount","fetchFailureReason","dataUpdateCount","revertState","errorUpdateCount","errorUpdatedAt","onQueryUpdate","initialData","hasData","initialDataUpdatedAt","QueryCache","Map","build","client","defaultQueryOptions","getQueryDefaults","has","set","queryInMap","clear","getAll","values","defaultedFilters","findAll","queries","event","Mutation","mutationId","mutationCache","setOptions","execute","variables","executeMutation","mutationFn","restored","onMutate","failureReason","isPaused","submittedAt","onMutationUpdate","MutationCache","defaultMutationOptions","resumePausedMutations","pausedMutations","infiniteQueryBehavior","direction","fetchMore","oldPages","pages","oldPageParams","pageParams","empty","cancelled","aborted","fetchPage","param","previous","pageParam","page","maxPages","addTo","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","lastIndex","hasNextPage","hasPreviousPage","QueryClient","queryCache","mount","unmount","isFetching","isMutating","getQueryData","ensureQueryData","cachedData","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","defaultedOptions","setQueriesData","getQueryState","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","defaultedCancelOptions","promises","all","invalidateQueries","refetchType","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","defaults","queryDefault","setMutationDefaults","getMutationDefaults","_defaulted","refetchOnReconnect","suspense","mutations","QueryObserver","bindMethods","shouldFetchOnMount","shouldFetchOn","refetchOnWindowFocus","notifyOptions","prevOptions","prevQuery","mounted","shouldFetchOptionally","nextRefetchInterval","getOptimisticResult","createResult","trackResult","trackedResult","configurable","getCurrentQuery","fetchOptimistic","time","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","select","selectError","placeholderData","isPending","isError","isLoading","isSuccess","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","typedKey","changed","shouldLoadOnMount","retryOnMount","refetchOnMount","field","difference","array1","array2","replaceAt","index","QueriesObserver","setQueries","prevObservers","newObserverMatches","match","defaultedQueryOptions","newObservers","newResult","hasIndexChange","getQueries","getObservers","prevObserversMap","matchingObservers","flatMap","matchedQueryHashes","unmatchedQueries","getObserver","currentObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","concat","InfiniteQueryObserver","fetchNextPage","fetchPreviousPage","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","mutate","isIdle","dehydrateMutation","dehydrateQuery","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","filterMutation","shouldDehydrateMutation","filterQuery","shouldDehydrateQuery","hydrate","dehydratedState","dehydratedMutation","dehydratedQuery","dehydratedQueryState"],"mappings":"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"}
1
+ {"version":3,"file":"index.development.js","sources":["../../src/subscribable.ts","../../src/utils.ts","../../src/focusManager.ts","../../src/onlineManager.ts","../../src/retryer.ts","../../src/notifyManager.ts","../../src/removable.ts","../../src/query.ts","../../src/queryCache.ts","../../src/mutation.ts","../../src/mutationCache.ts","../../src/infiniteQueryBehavior.ts","../../src/queryClient.ts","../../src/queryObserver.ts","../../src/queriesObserver.ts","../../src/infiniteQueryObserver.ts","../../src/mutationObserver.ts","../../src/hydration.ts"],"sourcesContent":["type Listener = () => void\n\nexport class Subscribable<TListener extends Function = Listener> {\n protected listeners: Set<TListener>\n\n constructor() {\n this.listeners = new Set()\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationKey,\n MutationStatus,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Filter by mutation status\n */\n status?: MutationStatus\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, status, predicate, mutationKey } = filters\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (status && mutation.state.status !== status) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query & mutation keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashKey(queryKey: QueryKey | MutationKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean\nexport function partialMatchKey(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n\nexport function keepPreviousData<T>(\n previousData: T | undefined,\n): T | undefined {\n return previousData\n}\n\nexport function addToEnd<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [...items, item]\n return max && newItems.length > max ? newItems.slice(1) : newItems\n}\n\nexport function addToStart<T>(items: T[], item: T, max = 0): T[] {\n const newItems = [item, ...items]\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems\n}\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n this.#focused = focused\n\n if (focused) {\n this.onFocus()\n }\n }\n\n onFocus(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n","import { focusManager } from './focusManager'\nimport { onlineManager } from './onlineManager'\nimport { sleep } from './utils'\nimport type { CancelOptions, NetworkMode, DefaultError } from './types'\n\n// TYPES\n\ninterface RetryerConfig<TData = unknown, TError = DefaultError> {\n fn: () => TData | Promise<TData>\n abort?: () => void\n onError?: (error: TError) => void\n onSuccess?: (data: TData) => void\n onFail?: (failureCount: number, error: TError) => void\n onPause?: () => void\n onContinue?: () => void\n retry?: RetryValue<TError>\n retryDelay?: RetryDelayValue<TError>\n networkMode: NetworkMode | undefined\n}\n\nexport interface Retryer<TData = unknown> {\n promise: Promise<TData>\n cancel: (cancelOptions?: CancelOptions) => void\n continue: () => Promise<unknown>\n cancelRetry: () => void\n continueRetry: () => void\n}\n\nexport type RetryValue<TError> = boolean | number | ShouldRetryFunction<TError>\n\ntype ShouldRetryFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => boolean\n\nexport type RetryDelayValue<TError> = number | RetryDelayFunction<TError>\n\ntype RetryDelayFunction<TError = DefaultError> = (\n failureCount: number,\n error: TError,\n) => number\n\nfunction defaultRetryDelay(failureCount: number) {\n return Math.min(1000 * 2 ** failureCount, 30000)\n}\n\nexport function canFetch(networkMode: NetworkMode | undefined): boolean {\n return (networkMode ?? 'online') === 'online'\n ? onlineManager.isOnline()\n : true\n}\n\nexport class CancelledError {\n revert?: boolean\n silent?: boolean\n constructor(options?: CancelOptions) {\n this.revert = options?.revert\n this.silent = options?.silent\n }\n}\n\nexport function isCancelledError(value: any): value is CancelledError {\n return value instanceof CancelledError\n}\n\nexport function createRetryer<TData = unknown, TError = DefaultError>(\n config: RetryerConfig<TData, TError>,\n): Retryer<TData> {\n let isRetryCancelled = false\n let failureCount = 0\n let isResolved = false\n let continueFn: ((value?: unknown) => boolean) | undefined\n let promiseResolve: (data: TData) => void\n let promiseReject: (error: TError) => void\n\n const promise = new Promise<TData>((outerResolve, outerReject) => {\n promiseResolve = outerResolve\n promiseReject = outerReject\n })\n\n const cancel = (cancelOptions?: CancelOptions): void => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions))\n\n config.abort?.()\n }\n }\n const cancelRetry = () => {\n isRetryCancelled = true\n }\n\n const continueRetry = () => {\n isRetryCancelled = false\n }\n\n const shouldPause = () =>\n !focusManager.isFocused() ||\n (config.networkMode !== 'always' && !onlineManager.isOnline())\n\n const resolve = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onSuccess?.(value)\n continueFn?.()\n promiseResolve(value)\n }\n }\n\n const reject = (value: any) => {\n if (!isResolved) {\n isResolved = true\n config.onError?.(value)\n continueFn?.()\n promiseReject(value)\n }\n }\n\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n const canContinue = isResolved || !shouldPause()\n if (canContinue) {\n continueResolve(value)\n }\n return canContinue\n }\n config.onPause?.()\n }).then(() => {\n continueFn = undefined\n if (!isResolved) {\n config.onContinue?.()\n }\n })\n }\n\n // Create loop function\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return\n }\n\n let promiseOrValue: any\n\n // Execute query\n try {\n promiseOrValue = config.fn()\n } catch (error) {\n promiseOrValue = Promise.reject(error)\n }\n\n Promise.resolve(promiseOrValue)\n .then(resolve)\n .catch((error) => {\n // Stop if the fetch is already resolved\n if (isResolved) {\n return\n }\n\n // Do we need to retry the request?\n const retry = config.retry ?? 3\n const retryDelay = config.retryDelay ?? defaultRetryDelay\n const delay =\n typeof retryDelay === 'function'\n ? retryDelay(failureCount, error)\n : retryDelay\n const shouldRetry =\n retry === true ||\n (typeof retry === 'number' && failureCount < retry) ||\n (typeof retry === 'function' && retry(failureCount, error))\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error)\n return\n }\n\n failureCount++\n\n // Notify on fail\n config.onFail?.(failureCount, error)\n\n // Delay\n sleep(delay)\n // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause()\n }\n return\n })\n .then(() => {\n if (isRetryCancelled) {\n reject(error)\n } else {\n run()\n }\n })\n })\n }\n\n // Start loop\n if (canFetch(config.networkMode)) {\n run()\n } else {\n pause().then(run)\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn?.()\n return didContinue ? promise : Promise.resolve()\n },\n cancelRetry,\n continueRetry,\n }\n}\n","import { scheduleMicrotask } from './utils'\n\n// TYPES\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\nexport function createNotifyManager() {\n let queue: NotifyCallback[] = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n\n const batch = <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n }\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback)\n })\n }\n }\n\n /**\n * All calls to the wrapped function will be batched.\n */\n const batchCalls = <T extends Function>(callback: T): T => {\n return ((...args: any[]) => {\n schedule(() => {\n callback(...args)\n })\n }) as any\n }\n\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n const setNotifyFunction = (fn: NotifyFunction) => {\n notifyFn = fn\n }\n\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n const setBatchNotifyFunction = (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n }\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction,\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","import { isServer, isValidTimeout } from './utils'\n\nexport abstract class Removable {\n gcTime!: number\n #gcTimeout?: ReturnType<typeof setTimeout>\n\n destroy(): void {\n this.clearGcTimeout()\n }\n\n protected scheduleGc(): void {\n this.clearGcTimeout()\n\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove()\n }, this.gcTime)\n }\n }\n\n protected updateGcTime(newGcTime: number | undefined): void {\n // Default to 5 minutes (Infinity for server-side) if no gcTime is set\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1000),\n )\n }\n\n protected clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout)\n this.#gcTimeout = undefined\n }\n }\n\n protected abstract optionalRemove(): void\n}\n","import { noop, replaceData, timeUntilStale } from './utils'\nimport type {\n InitialDataFunction,\n QueryKey,\n QueryOptions,\n QueryStatus,\n QueryFunctionContext,\n QueryMeta,\n CancelOptions,\n SetDataOptions,\n FetchStatus,\n DefaultError,\n} from './types'\nimport type { QueryCache } from './queryCache'\nimport type { QueryObserver } from './queryObserver'\nimport { notifyManager } from './notifyManager'\nimport type { Retryer } from './retryer'\nimport { isCancelledError, canFetch, createRetryer } from './retryer'\nimport { Removable } from './removable'\n\n// TYPES\n\ninterface QueryConfig<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n cache: QueryCache\n queryKey: TQueryKey\n queryHash: string\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state?: QueryState<TData, TError>\n}\n\nexport interface QueryState<TData = unknown, TError = DefaultError> {\n data: TData | undefined\n dataUpdateCount: number\n dataUpdatedAt: number\n error: TError | null\n errorUpdateCount: number\n errorUpdatedAt: number\n fetchFailureCount: number\n fetchFailureReason: TError | null\n fetchMeta: FetchMeta | null\n isInvalidated: boolean\n status: QueryStatus\n fetchStatus: FetchStatus\n}\n\nexport interface FetchContext<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n fetchFn: () => unknown | Promise<unknown>\n fetchOptions?: FetchOptions\n signal: AbortSignal\n options: QueryOptions<TQueryFnData, TError, TData, any>\n queryKey: TQueryKey\n state: QueryState<TData, TError>\n}\n\nexport interface QueryBehavior<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport type FetchDirection = 'forward' | 'backward'\n\nexport interface FetchMeta {\n fetchMore?: { direction: FetchDirection }\n}\n\nexport interface FetchOptions {\n cancelRefetch?: boolean\n meta?: FetchMeta\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError\n}\n\ninterface FetchAction {\n type: 'fetch'\n meta?: FetchMeta\n}\n\ninterface SuccessAction<TData> {\n data: TData | undefined\n type: 'success'\n dataUpdatedAt?: number\n manual?: boolean\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface InvalidateAction {\n type: 'invalidate'\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError> {\n type: 'setState'\n state: Partial<QueryState<TData, TError>>\n setStateOptions?: SetStateOptions\n}\n\nexport type Action<TData, TError> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | FetchAction\n | InvalidateAction\n | PauseAction\n | SetStateAction<TData, TError>\n | SuccessAction<TData>\n\nexport interface SetStateOptions {\n meta?: any\n}\n\n// CLASS\n\nexport class Query<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Removable {\n queryKey: TQueryKey\n queryHash: string\n options!: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n state: QueryState<TData, TError>\n isFetchingOptimistic?: boolean\n\n #initialState: QueryState<TData, TError>\n #revertState?: QueryState<TData, TError>\n #cache: QueryCache\n #promise?: Promise<TData>\n #retryer?: Retryer<TData>\n #observers: QueryObserver<any, any, any, any, any>[]\n #defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>\n #abortSignalConsumed: boolean\n\n constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>) {\n super()\n\n this.#abortSignalConsumed = false\n this.#defaultOptions = config.defaultOptions\n this.#setOptions(config.options)\n this.#observers = []\n this.#cache = config.cache\n this.queryKey = config.queryKey\n this.queryHash = config.queryHash\n this.#initialState = config.state || getDefaultState(this.options)\n this.state = this.#initialState\n this.scheduleGc()\n }\n get meta(): QueryMeta | undefined {\n return this.options.meta\n }\n\n #setOptions(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n protected optionalRemove() {\n if (!this.#observers.length && this.state.fetchStatus === 'idle') {\n this.#cache.remove(this)\n }\n }\n\n setData(\n newData: TData,\n options?: SetDataOptions & { manual: boolean },\n ): TData {\n const data = replaceData(this.state.data, newData, this.options)\n\n // Set data and mark it as cached\n this.#dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual,\n })\n\n return data\n }\n\n setState(\n state: Partial<QueryState<TData, TError>>,\n setStateOptions?: SetStateOptions,\n ): void {\n this.#dispatch({ type: 'setState', state, setStateOptions })\n }\n\n cancel(options?: CancelOptions): Promise<void> {\n const promise = this.#promise\n this.#retryer?.cancel(options)\n return promise ? promise.then(noop).catch(noop) : Promise.resolve()\n }\n\n destroy(): void {\n super.destroy()\n\n this.cancel({ silent: true })\n }\n\n reset(): void {\n this.destroy()\n this.setState(this.#initialState)\n }\n\n isActive(): boolean {\n return this.#observers.some(\n (observer) => observer.options.enabled !== false,\n )\n }\n\n isDisabled(): boolean {\n return this.getObserversCount() > 0 && !this.isActive()\n }\n\n isStale(): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n this.#observers.some((observer) => observer.getCurrentResult().isStale)\n )\n }\n\n isStaleByTime(staleTime = 0): boolean {\n return (\n this.state.isInvalidated ||\n !this.state.dataUpdatedAt ||\n !timeUntilStale(this.state.dataUpdatedAt, staleTime)\n )\n }\n\n onFocus(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnWindowFocus())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n onOnline(): void {\n const observer = this.#observers.find((x) => x.shouldFetchOnReconnect())\n\n observer?.refetch({ cancelRefetch: false })\n\n // Continue fetch if currently paused\n this.#retryer?.continue()\n }\n\n addObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the query from being garbage collected\n this.clearGcTimeout()\n\n this.#cache.notify({ type: 'observerAdded', query: this, observer })\n }\n }\n\n removeObserver(observer: QueryObserver<any, any, any, any, any>): void {\n if (this.#observers.indexOf(observer) !== -1) {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n if (!this.#observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true })\n } else {\n this.#retryer.cancelRetry()\n }\n }\n\n this.scheduleGc()\n }\n\n this.#cache.notify({ type: 'observerRemoved', query: this, observer })\n }\n }\n\n getObserversCount(): number {\n return this.#observers.length\n }\n\n invalidate(): void {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: 'invalidate' })\n }\n }\n\n fetch(\n options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n fetchOptions?: FetchOptions,\n ): Promise<TData> {\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions?.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({ silent: true })\n } else if (this.#promise) {\n // make sure that retries that were potentially cancelled due to unmounts can continue\n this.#retryer?.continueRetry()\n // Return current promise if we are already fetching\n return this.#promise\n }\n }\n\n // Update config if passed, otherwise the config from the last execution is used\n if (options) {\n this.#setOptions(options)\n }\n\n // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n if (!this.options.queryFn) {\n const observer = this.#observers.find((x) => x.options.queryFn)\n if (observer) {\n this.#setOptions(observer.options)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`,\n )\n }\n }\n\n const abortController = new AbortController()\n\n // Create query function context\n const queryFnContext: Omit<QueryFunctionContext<TQueryKey>, 'signal'> = {\n queryKey: this.queryKey,\n meta: this.meta,\n }\n\n // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true\n return abortController.signal\n },\n })\n }\n\n addSignalProperty(queryFnContext)\n\n // Create fetch function\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(new Error('Missing queryFn'))\n }\n this.#abortSignalConsumed = false\n return this.options.queryFn(\n queryFnContext as QueryFunctionContext<TQueryKey>,\n )\n }\n\n // Trigger behavior hook\n const context: Omit<\n FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n 'signal'\n > = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn,\n }\n\n addSignalProperty(context)\n\n this.options.behavior?.onFetch(\n context as FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n )\n\n // Store state in case the current fetch needs to be reverted\n this.#revertState = this.state\n\n // Set to fetching state if not already in it\n if (\n this.state.fetchStatus === 'idle' ||\n this.state.fetchMeta !== context.fetchOptions?.meta\n ) {\n this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta })\n }\n\n const onError = (error: TError | { silent?: boolean }) => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: 'error',\n error: error as TError,\n })\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n this.#cache.config.onError?.(\n error as any,\n this as Query<any, any, any, any>,\n )\n this.#cache.config.onSettled?.(\n this.state.data,\n error as any,\n this as Query<any, any, any, any>,\n )\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n }\n\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => Promise<TData>,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`,\n )\n }\n onError(new Error(`${this.queryHash} data is undefined`) as any)\n return\n }\n\n this.setData(data)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\n this.#cache.config.onSettled?.(\n data,\n this.state.error as any,\n this as Query<any, any, any, any>,\n )\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc()\n }\n this.isFetchingOptimistic = false\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n })\n\n this.#promise = this.#retryer.promise\n\n return this.#promise\n }\n\n #dispatch(action: Action<TData, TError>): void {\n const reducer = (\n state: QueryState<TData, TError>,\n ): QueryState<TData, TError> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n fetchStatus: 'paused',\n }\n case 'continue':\n return {\n ...state,\n fetchStatus: 'fetching',\n }\n case 'fetch':\n return {\n ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: action.meta ?? null,\n fetchStatus: canFetch(this.options.networkMode)\n ? 'fetching'\n : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'pending',\n }),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null,\n }),\n }\n case 'error':\n const error = action.error as unknown\n\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState }\n }\n\n return {\n ...state,\n error: error as TError,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error as TError,\n fetchStatus: 'idle',\n status: 'error',\n }\n case 'invalidate':\n return {\n ...state,\n isInvalidated: true,\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onQueryUpdate()\n })\n\n this.#cache.notify({ query: this, type: 'updated', action })\n })\n }\n}\n\nfunction getDefaultState<\n TQueryFnData,\n TError,\n TData,\n TQueryKey extends QueryKey,\n>(\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n): QueryState<TData, TError> {\n const data =\n typeof options.initialData === 'function'\n ? (options.initialData as InitialDataFunction<TData>)()\n : options.initialData\n\n const hasData = typeof data !== 'undefined'\n\n const initialDataUpdatedAt = hasData\n ? typeof options.initialDataUpdatedAt === 'function'\n ? (options.initialDataUpdatedAt as () => number | undefined)()\n : options.initialDataUpdatedAt\n : 0\n\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'pending',\n fetchStatus: 'idle',\n }\n}\n","import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} 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?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\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\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\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 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.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\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.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : 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.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n","import type {\n MutationOptions,\n MutationStatus,\n MutationMeta,\n DefaultError,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport type { Retryer } from './retryer'\nimport { canFetch, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TContext> {\n type: 'pending'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TContext>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options!: MutationOptions<TData, TError, TVariables, TContext>\n readonly mutationId: number\n\n #observers: MutationObserver<TData, TError, TVariables, TContext>[]\n #defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.mutationId = config.mutationId\n this.#defaultOptions = config.defaultOptions\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options?: MutationOptions<TData, TError, TVariables, TContext>,\n ): void {\n this.options = { ...this.#defaultOptions, ...options }\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.#observers.indexOf(observer) === -1) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const executeMutation = () => {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n return this.options.mutationFn(variables)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.#dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.#retryer.promise\n }\n\n const restored = this.state.status === 'pending'\n\n try {\n if (!restored) {\n this.#dispatch({ type: 'pending', variables })\n // Notify cache callback\n await this.#mutationCache.config.onMutate?.(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(variables)\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(data, variables, this.state.context)\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(data, null, variables, this.state.context)\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n )\n throw error\n } finally {\n this.#dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n","import type { MutationObserver } from './mutationObserver'\nimport type { NotifyEvent, MutationOptions, DefaultError } 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: DefaultError,\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>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<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 #mutations: Mutation<any, any, any, any>[]\n #mutationId: number\n #resuming: Promise<unknown> | undefined\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\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 mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\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<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.#mutations.find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n )\n }\n\n findAll(filters: MutationFilters = {}): Mutation[] {\n return this.#mutations.filter((mutation) =>\n matchMutation(filters, mutation),\n )\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","import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? 'backward' : 'forward',\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n","import type { QueryFilters, Updater, MutationFilters } from './utils'\nimport {\n hashKey,\n noop,\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 QueryKey,\n QueryObserverOptions,\n QueryOptions,\n RefetchOptions,\n RefetchQueryFilters,\n ResetOptions,\n SetDataOptions,\n DefaultError,\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'\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 #queryCache: QueryCache\n #mutationCache: MutationCache\n #defaultOptions: DefaultOptions\n #queryDefaults: Map<string, QueryDefaults>\n #mutationDefaults: Map<string, MutationDefaults>\n #mountCount: number\n #unsubscribeFocus?: () => void\n #unsubscribeOnline?: () => void\n\n constructor(config: QueryClientConfig = {}) {\n this.#queryCache = config.queryCache || new QueryCache()\n this.#mutationCache = config.mutationCache || new MutationCache()\n this.#defaultOptions = config.defaultOptions || {}\n this.#queryDefaults = new Map()\n this.#mutationDefaults = new Map()\n this.#mountCount = 0\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 return this.#queryCache.findAll({ ...filters, fetchStatus: 'fetching' })\n .length\n }\n\n isMutating(filters?: MutationFilters): number {\n return this.#mutationCache.findAll({ ...filters, status: 'pending' }).length\n }\n\n getQueryData<TQueryFnData = unknown>(\n queryKey: QueryKey,\n ): TQueryFnData | undefined {\n return this.#queryCache.find<TQueryFnData>({ queryKey })?.state.data\n }\n\n ensureQueryData<\n TQueryFnData,\n TError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<TData> {\n const cachedData = this.getQueryData<TData>(options.queryKey)\n\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(options)\n }\n\n getQueriesData<TQueryFnData = unknown>(\n filters: QueryFilters,\n ): [QueryKey, TQueryFnData | undefined][] {\n return this.getQueryCache()\n .findAll(filters)\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 defaultedOptions = this.defaultQueryOptions<\n any,\n any,\n unknown,\n any,\n QueryKey\n >({ queryKey })\n\n return this.#queryCache\n .build(this, defaultedOptions)\n .setData(data, { ...options, manual: true })\n }\n\n setQueriesData<TQueryFnData>(\n filters: QueryFilters,\n updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,\n options?: SetDataOptions,\n ): [QueryKey, TQueryFnData | undefined][] {\n return notifyManager.batch(() =>\n this.getQueryCache()\n .findAll(filters)\n .map(({ queryKey }) => [\n queryKey,\n this.setQueryData<TQueryFnData>(queryKey, updater, options),\n ]),\n )\n }\n\n getQueryState<TQueryFnData = unknown, TError = DefaultError>(\n queryKey: QueryKey,\n ): QueryState<TQueryFnData, TError> | undefined {\n return this.#queryCache.find<TQueryFnData, TError>({ queryKey })?.state\n }\n\n removeQueries(filters?: QueryFilters): void {\n const queryCache = this.#queryCache\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query)\n })\n })\n }\n\n resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void> {\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(\n filters: QueryFilters = {},\n cancelOptions: CancelOptions = {},\n ): Promise<void> {\n const defaultedCancelOptions = { revert: true, ...cancelOptions }\n\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .map((query) => query.cancel(defaultedCancelOptions)),\n )\n\n return Promise.all(promises).then(noop).catch(noop)\n }\n\n invalidateQueries(\n filters: InvalidateQueryFilters = {},\n options: InvalidateOptions = {},\n ): Promise<void> {\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(\n filters: RefetchQueryFilters = {},\n options?: RefetchOptions,\n ): Promise<void> {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true,\n }\n const promises = notifyManager.batch(() =>\n this.#queryCache\n .findAll(filters)\n .filter((query) => !query.isDisabled())\n .map((query) => {\n let promise = query.fetch(undefined, fetchOptions)\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop)\n }\n return query.state.fetchStatus === 'paused'\n ? Promise.resolve()\n : promise\n }),\n )\n\n return Promise.all(promises).then(noop)\n }\n\n fetchQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options: FetchQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<TData> {\n const defaultedOptions = this.defaultQueryOptions(options)\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 = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n ): Promise<void> {\n return this.fetchQuery(options).then(noop).catch(noop)\n }\n\n fetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<InfiniteData<TData>> {\n options.behavior = infiniteQueryBehavior<TQueryFnData, TError, TData>()\n return this.fetchQuery(options)\n }\n\n prefetchInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n >(\n options: FetchInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryKey,\n TPageParam\n >,\n ): Promise<void> {\n return this.fetchInfiniteQuery(options).then(noop).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 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: Partial<\n Omit<QueryObserverOptions<unknown, any, any, any>, 'queryKey'>\n >,\n ): void {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options,\n })\n }\n\n getQueryDefaults(\n queryKey: QueryKey,\n ): QueryObserverOptions<any, any, any, any, any> {\n const defaults = [...this.#queryDefaults.values()]\n\n let result: QueryObserverOptions<any, any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n return result\n }\n\n setMutationDefaults(\n mutationKey: MutationKey,\n options: Omit<MutationObserverOptions<any, any, any, any>, 'mutationKey'>,\n ): void {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options,\n })\n }\n\n getMutationDefaults(\n mutationKey: MutationKey,\n ): MutationObserverOptions<any, any, any, any> {\n const defaults = [...this.#mutationDefaults.values()]\n\n let result: MutationObserverOptions<any, any, any, any> = {}\n\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions }\n }\n })\n\n return result\n }\n\n defaultQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n >(\n options?:\n | QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >\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 ...(options?.queryKey && this.getQueryDefaults(options.queryKey)),\n ...options,\n _defaulted: true,\n }\n\n if (!defaultedOptions.queryHash) {\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.throwOnError === 'undefined') {\n defaultedOptions.throwOnError = !!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 ...(options?.mutationKey &&\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","import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.#updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n","import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport interface QueriesObserverOptions<\n TCombinedResult = QueryObserverResult[],\n> {\n combine?: (result: QueryObserverResult[]) => TCombinedResult\n}\n\nexport class QueriesObserver<\n TCombinedResult = QueryObserverResult[],\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n #options?: QueriesObserverOptions<TCombinedResult>\n #combinedResult!: TCombinedResult\n\n constructor(\n client: QueryClient,\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#observers = []\n\n this.#setResult([])\n this.setQueries(queries, options)\n }\n\n #setResult(value: QueryObserverResult[]) {\n this.#result = value\n this.#combinedResult = this.#combineResult(value)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#setResult(newResult)\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): TCombinedResult {\n return this.#combinedResult\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: QueryObserverOptions[],\n ): [\n rawResult: QueryObserverResult[],\n combineResult: (r?: QueryObserverResult[]) => TCombinedResult,\n trackResult: () => QueryObserverResult[],\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: QueryObserverResult[]) => {\n return this.#combineResult(r ?? result)\n },\n () => {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult)\n : observerResult\n })\n },\n ]\n }\n\n #combineResult(input: QueryObserverResult[]): TCombinedResult {\n const combine = this.#options?.combine\n if (combine) {\n return replaceEqualDeep(this.#combinedResult, combine(input))\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#setResult(replaceAt(this.#result, index, result))\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n","import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n DefaultError,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n","import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n","import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n shouldDehydrateMutation?: (mutation: Mutation) => boolean\n shouldDehydrateQuery?: (query: Query) => boolean\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const filterMutation =\n options.shouldDehydrateMutation ?? defaultShouldDehydrateMutation\n\n const mutations = client\n .getMutationCache()\n .getAll()\n .flatMap((mutation) =>\n filterMutation(mutation) ? [dehydrateMutation(mutation)] : [],\n )\n\n const filterQuery =\n options.shouldDehydrateQuery ?? defaultShouldDehydrateQuery\n\n const queries = client\n .getQueryCache()\n .getAll()\n .flatMap((query) => (filterQuery(query) ? [dehydrateQuery(query)] : []))\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n"],"names":["Subscribable","constructor","listeners","Set","subscribe","bind","listener","add","onSubscribe","delete","onUnsubscribe","hasListeners","size","isServer","window","noop","undefined","functionalUpdate","updater","input","isValidTimeout","value","Infinity","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","matchQuery","filters","query","type","exact","fetchStatus","predicate","queryKey","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","status","mutationKey","hashKey","hashFn","queryKeyHashFn","JSON","stringify","_","val","isPlainObject","Object","keys","sort","reduce","result","key","a","b","some","replaceEqualDeep","array","isPlainArray","aSize","length","bItems","bSize","copy","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","prot","prototype","hasOwnProperty","toString","call","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","replaceData","prevData","data","structuralSharing","keepPreviousData","previousData","addToEnd","items","item","newItems","slice","addToStart","FocusManager","onFocus","addEventListener","removeEventListener","setEventListener","setup","focused","setFocused","forEach","isFocused","globalThis","document","visibilityState","focusManager","OnlineManager","onOnline","online","setOnline","isOnline","navigator","onLine","onlineManager","defaultRetryDelay","failureCount","min","canFetch","networkMode","CancelledError","revert","silent","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","abort","cancelRetry","continueRetry","shouldPause","onSuccess","onError","pause","continueResolve","canContinue","onPause","onContinue","run","promiseOrValue","fn","error","catch","retry","retryDelay","delay","shouldRetry","onFail","continue","didContinue","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","batch","flush","schedule","push","batchCalls","args","originalQueue","setNotifyFunction","setBatchNotifyFunction","notifyManager","Removable","destroy","clearGcTimeout","scheduleGc","gcTime","optionalRemove","updateGcTime","newGcTime","clearTimeout","Query","defaultOptions","cache","getDefaultState","meta","remove","setData","newData","dataUpdatedAt","manual","setState","setStateOptions","reset","observer","enabled","isDisabled","getObserversCount","isInvalidated","getCurrentResult","isStaleByTime","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","shouldFetchOnReconnect","addObserver","indexOf","notify","removeObserver","filter","invalidate","fetch","fetchOptions","queryFn","console","abortController","AbortController","queryFnContext","addSignalProperty","object","defineProperty","enumerable","get","signal","fetchFn","Error","context","behavior","onFetch","fetchMeta","onSettled","isFetchingOptimistic","action","reducer","fetchFailureCount","fetchFailureReason","dataUpdateCount","revertState","errorUpdateCount","errorUpdatedAt","onQueryUpdate","initialData","hasData","initialDataUpdatedAt","QueryCache","Map","build","client","defaultQueryOptions","getQueryDefaults","has","set","queryInMap","clear","getAll","values","defaultedFilters","findAll","queries","event","Mutation","mutationId","mutationCache","setOptions","execute","variables","executeMutation","mutationFn","restored","onMutate","failureReason","isPaused","submittedAt","onMutationUpdate","MutationCache","defaultMutationOptions","resumePausedMutations","pausedMutations","infiniteQueryBehavior","direction","fetchMore","oldPages","pages","oldPageParams","pageParams","empty","cancelled","aborted","fetchPage","param","previous","pageParam","page","maxPages","addTo","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","lastIndex","hasNextPage","hasPreviousPage","QueryClient","queryCache","mount","unmount","isFetching","isMutating","getQueryData","ensureQueryData","cachedData","fetchQuery","getQueriesData","getQueryCache","map","setQueryData","defaultedOptions","setQueriesData","getQueryState","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","defaultedCancelOptions","promises","all","invalidateQueries","refetchType","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","defaults","queryDefault","setMutationDefaults","getMutationDefaults","_defaulted","refetchOnReconnect","suspense","mutations","QueryObserver","bindMethods","shouldFetchOnMount","shouldFetchOn","refetchOnWindowFocus","notifyOptions","prevOptions","prevQuery","mounted","shouldFetchOptionally","nextRefetchInterval","getOptimisticResult","createResult","trackResult","trackedResult","configurable","getCurrentQuery","fetchOptimistic","time","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","select","selectError","placeholderData","isPending","isError","isLoading","isSuccess","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","typedKey","changed","shouldLoadOnMount","retryOnMount","refetchOnMount","field","difference","array1","array2","replaceAt","index","QueriesObserver","setQueries","prevObservers","newObserverMatches","match","defaultedQueryOptions","newObservers","newResult","hasIndexChange","getQueries","getObservers","matches","r","observerResult","combine","prevObserversMap","matchingObservers","flatMap","matchedQueryHashes","unmatchedQueries","getObserver","currentObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","concat","InfiniteQueryObserver","fetchNextPage","fetchPreviousPage","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","mutate","isIdle","dehydrateMutation","dehydrateQuery","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","filterMutation","shouldDehydrateMutation","filterQuery","shouldDehydrateQuery","hydrate","dehydratedState","dehydratedMutation","dehydratedQuery","dehydratedQueryState"],"mappings":"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"}