@tanstack/query-core 5.0.0-alpha.0 → 5.0.0-alpha.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../src/query.ts"],"sourcesContent":["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 RegisteredError,\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 = RegisteredError> {\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 = RegisteredError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport interface FetchMeta {\n fetchMore?: { direction: 'forward' | 'backward' }\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: 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 = RegisteredError,\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: 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?.(error, 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\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => 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('undefined') as any)\n return\n }\n\n this.setData(data as TData)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\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(action)\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"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sources":["../../src/query.ts"],"sourcesContent":["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 RegisteredError,\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 = RegisteredError> {\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 = RegisteredError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport interface FetchMeta {\n fetchMore?: { direction: 'forward' | 'backward' }\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: 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 = RegisteredError,\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: 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?.(error, 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\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => 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('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\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(action)\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"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.mjs","sources":["../../src/query.ts"],"sourcesContent":["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 RegisteredError,\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 = RegisteredError> {\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 = RegisteredError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport interface FetchMeta {\n fetchMore?: { direction: 'forward' | 'backward' }\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: 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 = RegisteredError,\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: 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?.(error, 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\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => 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('undefined') as any)\n return\n }\n\n this.setData(data as TData)\n\n // Notify cache callback\n this.#cache.config.onSuccess?.(data, this as Query<any, any, any, any>)\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(action)\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"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":";;;;;AAoBA;;AAwHA;;AAEO,MAAMA,KAAK,SAKRC,SAAS,CAAC;AAOlB,EAAA,aAAa,CAAA;AACb,EAAA,YAAY,CAAA;AACZ,EAAA,MAAM,CAAA;AACN,EAAA,QAAQ,CAAA;AACR,EAAA,QAAQ,CAAA;AACR,EAAA,UAAU,CAAA;AACV,EAAA,eAAe,CAAA;AACf,EAAA,oBAAoB,CAAA;EAEpBC,WAAW,CAACC,MAA2D,EAAE;AACvE,IAAA,KAAK,EAAE,CAAA;AAEP,IAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;AACjC,IAAA,IAAI,CAAC,eAAe,GAAGA,MAAM,CAACC,cAAc,CAAA;AAC5C,IAAA,IAAI,CAAC,WAAW,CAACD,MAAM,CAACE,OAAO,CAAC,CAAA;AAChC,IAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;AACpB,IAAA,IAAI,CAAC,MAAM,GAAGF,MAAM,CAACG,KAAK,CAAA;AAC1B,IAAA,IAAI,CAACC,QAAQ,GAAGJ,MAAM,CAACI,QAAQ,CAAA;AAC/B,IAAA,IAAI,CAACC,SAAS,GAAGL,MAAM,CAACK,SAAS,CAAA;AACjC,IAAA,IAAI,CAAC,aAAa,GAAGL,MAAM,CAACM,KAAK,IAAIC,eAAe,CAAC,IAAI,CAACL,OAAO,CAAC,CAAA;AAClE,IAAA,IAAI,CAACI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;IAC/B,IAAI,CAACE,UAAU,EAAE,CAAA;AACnB,GAAA;AACA,EAAA,IAAIC,IAAI,GAA0B;AAChC,IAAA,OAAO,IAAI,CAACP,OAAO,CAACO,IAAI,CAAA;AAC1B,GAAA;EAEA,WAAW,CACTP,OAA8D,EACxD;IACN,IAAI,CAACA,OAAO,GAAG;MAAE,GAAG,IAAI,CAAC,eAAe;MAAE,GAAGA,OAAAA;KAAS,CAAA;IAEtD,IAAI,CAACQ,YAAY,CAAC,IAAI,CAACR,OAAO,CAACS,MAAM,CAAC,CAAA;AACxC,GAAA;AAEUC,EAAAA,cAAc,GAAG;AACzB,IAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAACC,MAAM,IAAI,IAAI,CAACP,KAAK,CAACQ,WAAW,KAAK,MAAM,EAAE;AAChE,MAAA,IAAI,CAAC,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AAEAC,EAAAA,OAAO,CACLC,OAAc,EACdf,OAA8C,EACvC;AACP,IAAA,MAAMgB,IAAI,GAAGC,WAAW,CAAC,IAAI,CAACb,KAAK,CAACY,IAAI,EAAED,OAAO,EAAE,IAAI,CAACf,OAAO,CAAC,CAAA;;AAEhE;IACA,IAAI,CAAC,SAAS,CAAC;MACbgB,IAAI;AACJE,MAAAA,IAAI,EAAE,SAAS;MACfC,aAAa,EAAEnB,OAAO,EAAEoB,SAAS;MACjCC,MAAM,EAAErB,OAAO,EAAEqB,MAAAA;AACnB,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOL,IAAI,CAAA;AACb,GAAA;AAEAM,EAAAA,QAAQ,CACNlB,KAAgC,EAChCmB,eAAiC,EAC3B;IACN,IAAI,CAAC,SAAS,CAAC;AAAEL,MAAAA,IAAI,EAAE,UAAU;MAAEd,KAAK;AAAEmB,MAAAA,eAAAA;AAAgB,KAAC,CAAC,CAAA;AAC9D,GAAA;EAEAC,MAAM,CAACxB,OAAuB,EAAiB;AAC7C,IAAA,MAAMyB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC7B,IAAA,IAAI,CAAC,QAAQ,EAAED,MAAM,CAACxB,OAAO,CAAC,CAAA;AAC9B,IAAA,OAAOyB,OAAO,GAAGA,OAAO,CAACC,IAAI,CAACC,IAAI,CAAC,CAACC,KAAK,CAACD,IAAI,CAAC,GAAGE,OAAO,CAACC,OAAO,EAAE,CAAA;AACrE,GAAA;AAEAC,EAAAA,OAAO,GAAS;IACd,KAAK,CAACA,OAAO,EAAE,CAAA;IAEf,IAAI,CAACP,MAAM,CAAC;AAAEQ,MAAAA,MAAM,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AAC/B,GAAA;AAEAC,EAAAA,KAAK,GAAS;IACZ,IAAI,CAACF,OAAO,EAAE,CAAA;AACd,IAAA,IAAI,CAACT,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACnC,GAAA;AAEAY,EAAAA,QAAQ,GAAY;AAClB,IAAA,OAAO,IAAI,CAAC,UAAU,CAACC,IAAI,CACxBC,QAAQ,IAAKA,QAAQ,CAACpC,OAAO,CAACqC,OAAO,KAAK,KAAK,CACjD,CAAA;AACH,GAAA;AAEAC,EAAAA,UAAU,GAAY;IACpB,OAAO,IAAI,CAACC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAACL,QAAQ,EAAE,CAAA;AACzD,GAAA;AAEAM,EAAAA,OAAO,GAAY;AACjB,IAAA,OACE,IAAI,CAACpC,KAAK,CAACqC,aAAa,IACxB,CAAC,IAAI,CAACrC,KAAK,CAACe,aAAa,IACzB,IAAI,CAAC,UAAU,CAACgB,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACM,gBAAgB,EAAE,CAACF,OAAO,CAAC,CAAA;AAE3E,GAAA;AAEAG,EAAAA,aAAa,CAACC,SAAS,GAAG,CAAC,EAAW;IACpC,OACE,IAAI,CAACxC,KAAK,CAACqC,aAAa,IACxB,CAAC,IAAI,CAACrC,KAAK,CAACe,aAAa,IACzB,CAAC0B,cAAc,CAAC,IAAI,CAACzC,KAAK,CAACe,aAAa,EAAEyB,SAAS,CAAC,CAAA;AAExD,GAAA;AAEAE,EAAAA,OAAO,GAAS;AACd,IAAA,MAAMV,QAAQ,GAAG,IAAI,CAAC,UAAU,CAACW,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,wBAAwB,EAAE,CAAC,CAAA;IAE1Eb,QAAQ,EAAEc,OAAO,CAAC;AAAEC,MAAAA,aAAa,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;;AAE3C;AACA,IAAA,IAAI,CAAC,QAAQ,EAAEC,QAAQ,EAAE,CAAA;AAC3B,GAAA;AAEAC,EAAAA,QAAQ,GAAS;AACf,IAAA,MAAMjB,QAAQ,GAAG,IAAI,CAAC,UAAU,CAACW,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACM,sBAAsB,EAAE,CAAC,CAAA;IAExElB,QAAQ,EAAEc,OAAO,CAAC;AAAEC,MAAAA,aAAa,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;;AAE3C;AACA,IAAA,IAAI,CAAC,QAAQ,EAAEC,QAAQ,EAAE,CAAA;AAC3B,GAAA;EAEAG,WAAW,CAACnB,QAAgD,EAAQ;AAClE,IAAA,IAAI,IAAI,CAAC,UAAU,CAACoB,OAAO,CAACpB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5C,MAAA,IAAI,CAAC,UAAU,CAACqB,IAAI,CAACrB,QAAQ,CAAC,CAAA;;AAE9B;MACA,IAAI,CAACsB,cAAc,EAAE,CAAA;AAErB,MAAA,IAAI,CAAC,MAAM,CAACC,MAAM,CAAC;AAAEzC,QAAAA,IAAI,EAAE,eAAe;AAAE0C,QAAAA,KAAK,EAAE,IAAI;AAAExB,QAAAA,QAAAA;AAAS,OAAC,CAAC,CAAA;AACtE,KAAA;AACF,GAAA;EAEAyB,cAAc,CAACzB,QAAgD,EAAQ;AACrE,IAAA,IAAI,IAAI,CAAC,UAAU,CAACoB,OAAO,CAACpB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5C,MAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC0B,MAAM,CAAEd,CAAC,IAAKA,CAAC,KAAKZ,QAAQ,CAAC,CAAA;AAE/D,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAACzB,MAAM,EAAE;AAC3B;AACA;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,UAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAACa,MAAM,CAAC;AAAEuC,cAAAA,MAAM,EAAE,IAAA;AAAK,aAAC,CAAC,CAAA;AACxC,WAAC,MAAM;AACL,YAAA,IAAI,CAAC,QAAQ,CAACC,WAAW,EAAE,CAAA;AAC7B,WAAA;AACF,SAAA;QAEA,IAAI,CAAC1D,UAAU,EAAE,CAAA;AACnB,OAAA;AAEA,MAAA,IAAI,CAAC,MAAM,CAACqD,MAAM,CAAC;AAAEzC,QAAAA,IAAI,EAAE,iBAAiB;AAAE0C,QAAAA,KAAK,EAAE,IAAI;AAAExB,QAAAA,QAAAA;AAAS,OAAC,CAAC,CAAA;AACxE,KAAA;AACF,GAAA;AAEAG,EAAAA,iBAAiB,GAAW;AAC1B,IAAA,OAAO,IAAI,CAAC,UAAU,CAAC5B,MAAM,CAAA;AAC/B,GAAA;AAEAsD,EAAAA,UAAU,GAAS;AACjB,IAAA,IAAI,CAAC,IAAI,CAAC7D,KAAK,CAACqC,aAAa,EAAE;MAC7B,IAAI,CAAC,SAAS,CAAC;AAAEvB,QAAAA,IAAI,EAAE,YAAA;AAAa,OAAC,CAAC,CAAA;AACxC,KAAA;AACF,GAAA;AAEAgD,EAAAA,KAAK,CACHlE,OAA8D,EAC9DmE,YAA2B,EACX;AAChB,IAAA,IAAI,IAAI,CAAC/D,KAAK,CAACQ,WAAW,KAAK,MAAM,EAAE;MACrC,IAAI,IAAI,CAACR,KAAK,CAACe,aAAa,IAAIgD,YAAY,EAAEhB,aAAa,EAAE;AAC3D;QACA,IAAI,CAAC3B,MAAM,CAAC;AAAEQ,UAAAA,MAAM,EAAE,IAAA;AAAK,SAAC,CAAC,CAAA;AAC/B,OAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACxB;AACA,QAAA,IAAI,CAAC,QAAQ,EAAEoC,aAAa,EAAE,CAAA;AAC9B;QACA,OAAO,IAAI,CAAC,QAAQ,CAAA;AACtB,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,IAAIpE,OAAO,EAAE;AACX,MAAA,IAAI,CAAC,WAAW,CAACA,OAAO,CAAC,CAAA;AAC3B,KAAA;;AAEA;AACA;AACA,IAAA,IAAI,CAAC,IAAI,CAACA,OAAO,CAACqE,OAAO,EAAE;AACzB,MAAA,MAAMjC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAACW,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAChD,OAAO,CAACqE,OAAO,CAAC,CAAA;AAC/D,MAAA,IAAIjC,QAAQ,EAAE;AACZ,QAAA,IAAI,CAAC,WAAW,CAACA,QAAQ,CAACpC,OAAO,CAAC,CAAA;AACpC,OAAA;AACF,KAAA;AAEA,IAAA,IAAIsE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC1E,OAAO,CAACE,QAAQ,CAAC,EAAE;AACzCyE,QAAAA,OAAO,CAACC,KAAK,CACV,CAAA,mIAAA,CAAoI,CACtI,CAAA;AACH,OAAA;AACF,KAAA;AAEA,IAAA,MAAMC,eAAe,GAAG,IAAIC,eAAe,EAAE,CAAA;;AAE7C;AACA,IAAA,MAAMC,cAA+D,GAAG;MACtE7E,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBK,IAAI,EAAE,IAAI,CAACA,IAAAA;KACZ,CAAA;;AAED;AACA;AACA;IACA,MAAMyE,iBAAiB,GAAIC,MAAe,IAAK;AAC7CC,MAAAA,MAAM,CAACC,cAAc,CAACF,MAAM,EAAE,QAAQ,EAAE;AACtCG,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,GAAG,EAAE,MAAM;AACT,UAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;UAChC,OAAOR,eAAe,CAACS,MAAM,CAAA;AAC/B,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAA;IAEDN,iBAAiB,CAACD,cAAc,CAAC,CAAA;;AAEjC;IACA,MAAMQ,OAAO,GAAG,MAAM;AACpB,MAAA,IAAI,CAAC,IAAI,CAACvF,OAAO,CAACqE,OAAO,EAAE;QACzB,OAAOxC,OAAO,CAAC2D,MAAM,CAAC,IAAIC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;AACrD,OAAA;AACA,MAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;AACjC,MAAA,OAAO,IAAI,CAACzF,OAAO,CAACqE,OAAO,CACzBU,cAAc,CACf,CAAA;KACF,CAAA;;AAED;AACA,IAAA,MAAMW,OAGL,GAAG;MACFvB,YAAY;MACZnE,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBE,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBE,KAAK,EAAE,IAAI,CAACA,KAAK;AACjBmF,MAAAA,OAAAA;KACD,CAAA;IAEDP,iBAAiB,CAACU,OAAO,CAAC,CAAA;IAE1B,IAAI,CAAC1F,OAAO,CAAC2F,QAAQ,EAAEC,OAAO,CAC5BF,OAAO,CACR,CAAA;;AAED;AACA,IAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAACtF,KAAK,CAAA;;AAE9B;AACA,IAAA,IACE,IAAI,CAACA,KAAK,CAACQ,WAAW,KAAK,MAAM,IACjC,IAAI,CAACR,KAAK,CAACyF,SAAS,KAAKH,OAAO,CAACvB,YAAY,EAAE5D,IAAI,EACnD;MACA,IAAI,CAAC,SAAS,CAAC;AAAEW,QAAAA,IAAI,EAAE,OAAO;AAAEX,QAAAA,IAAI,EAAEmF,OAAO,CAACvB,YAAY,EAAE5D,IAAAA;AAAK,OAAC,CAAC,CAAA;AACrE,KAAA;IAEA,MAAMuF,OAAO,GAAIlB,KAAoC,IAAK;AACxD;MACA,IAAI,EAAEmB,gBAAgB,CAACnB,KAAK,CAAC,IAAIA,KAAK,CAAC5C,MAAM,CAAC,EAAE;QAC9C,IAAI,CAAC,SAAS,CAAC;AACbd,UAAAA,IAAI,EAAE,OAAO;AACb0D,UAAAA,KAAK,EAAEA,KAAAA;AACT,SAAC,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,IAAI,CAACmB,gBAAgB,CAACnB,KAAK,CAAC,EAAE;AAC5B;QACA,IAAI,CAAC,MAAM,CAAC9E,MAAM,CAACgG,OAAO,GAAGlB,KAAK,EAAE,IAAI,CAA8B,CAAA;AACxE,OAAA;AAEA,MAAA,IAAI,CAAC,IAAI,CAACoB,oBAAoB,EAAE;AAC9B;QACA,IAAI,CAAC1F,UAAU,EAAE,CAAA;AACnB,OAAA;MACA,IAAI,CAAC0F,oBAAoB,GAAG,KAAK,CAAA;KAClC,CAAA;;AAED;AACA,IAAA,IAAI,CAAC,QAAQ,GAAGC,aAAa,CAAC;MAC5BC,EAAE,EAAER,OAAO,CAACH,OAAsB;MAClCY,KAAK,EAAEtB,eAAe,CAACsB,KAAK,CAACC,IAAI,CAACvB,eAAe,CAAC;MAClDwB,SAAS,EAAGrF,IAAI,IAAK;AACnB,QAAA,IAAI,OAAOA,IAAI,KAAK,WAAW,EAAE;AAC/B,UAAA,IAAIsD,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;YACzCG,OAAO,CAACC,KAAK,CACV,CAAA,sIAAA,EAAwI,IAAI,CAACzE,SAAU,EAAC,CAC1J,CAAA;AACH,WAAA;AACA2F,UAAAA,OAAO,CAAC,IAAIL,KAAK,CAAC,WAAW,CAAC,CAAQ,CAAA;AACtC,UAAA,OAAA;AACF,SAAA;AAEA,QAAA,IAAI,CAAC3E,OAAO,CAACE,IAAI,CAAU,CAAA;;AAE3B;QACA,IAAI,CAAC,MAAM,CAAClB,MAAM,CAACuG,SAAS,GAAGrF,IAAI,EAAE,IAAI,CAA8B,CAAA;AAEvE,QAAA,IAAI,CAAC,IAAI,CAACgF,oBAAoB,EAAE;AAC9B;UACA,IAAI,CAAC1F,UAAU,EAAE,CAAA;AACnB,SAAA;QACA,IAAI,CAAC0F,oBAAoB,GAAG,KAAK,CAAA;OAClC;MACDF,OAAO;AACPQ,MAAAA,MAAM,EAAE,CAACC,YAAY,EAAE3B,KAAK,KAAK;QAC/B,IAAI,CAAC,SAAS,CAAC;AAAE1D,UAAAA,IAAI,EAAE,QAAQ;UAAEqF,YAAY;AAAE3B,UAAAA,KAAAA;AAAM,SAAC,CAAC,CAAA;OACxD;AACD4B,MAAAA,OAAO,EAAE,MAAM;QACb,IAAI,CAAC,SAAS,CAAC;AAAEtF,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;OAClC;AACDuF,MAAAA,UAAU,EAAE,MAAM;QAChB,IAAI,CAAC,SAAS,CAAC;AAAEvF,UAAAA,IAAI,EAAE,UAAA;AAAW,SAAC,CAAC,CAAA;OACrC;AACDwF,MAAAA,KAAK,EAAEhB,OAAO,CAAC1F,OAAO,CAAC0G,KAAK;AAC5BC,MAAAA,UAAU,EAAEjB,OAAO,CAAC1F,OAAO,CAAC2G,UAAU;AACtCC,MAAAA,WAAW,EAAElB,OAAO,CAAC1F,OAAO,CAAC4G,WAAAA;AAC/B,KAAC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAACnF,OAAO,CAAA;IAErC,OAAO,IAAI,CAAC,QAAQ,CAAA;AACtB,GAAA;EAEA,SAAS,CAACoF,MAA6B,EAAQ;IAC7C,MAAMC,OAAO,GACX1G,KAAgC,IACF;MAC9B,QAAQyG,MAAM,CAAC3F,IAAI;AACjB,QAAA,KAAK,QAAQ;UACX,OAAO;AACL,YAAA,GAAGd,KAAK;YACR2G,iBAAiB,EAAEF,MAAM,CAACN,YAAY;YACtCS,kBAAkB,EAAEH,MAAM,CAACjC,KAAAA;WAC5B,CAAA;AACH,QAAA,KAAK,OAAO;UACV,OAAO;AACL,YAAA,GAAGxE,KAAK;AACRQ,YAAAA,WAAW,EAAE,QAAA;WACd,CAAA;AACH,QAAA,KAAK,UAAU;UACb,OAAO;AACL,YAAA,GAAGR,KAAK;AACRQ,YAAAA,WAAW,EAAE,UAAA;WACd,CAAA;AACH,QAAA,KAAK,OAAO;UACV,OAAO;AACL,YAAA,GAAGR,KAAK;AACR2G,YAAAA,iBAAiB,EAAE,CAAC;AACpBC,YAAAA,kBAAkB,EAAE,IAAI;AACxBnB,YAAAA,SAAS,EAAEgB,MAAM,CAACtG,IAAI,IAAI,IAAI;AAC9BK,YAAAA,WAAW,EAAEqG,QAAQ,CAAC,IAAI,CAACjH,OAAO,CAAC4G,WAAW,CAAC,GAC3C,UAAU,GACV,QAAQ;AACZ,YAAA,IAAI,CAACxG,KAAK,CAACe,aAAa,IAAI;AAC1ByD,cAAAA,KAAK,EAAE,IAAI;AACXsC,cAAAA,MAAM,EAAE,SAAA;aACT,CAAA;WACF,CAAA;AACH,QAAA,KAAK,SAAS;UACZ,OAAO;AACL,YAAA,GAAG9G,KAAK;YACRY,IAAI,EAAE6F,MAAM,CAAC7F,IAAI;AACjBmG,YAAAA,eAAe,EAAE/G,KAAK,CAAC+G,eAAe,GAAG,CAAC;YAC1ChG,aAAa,EAAE0F,MAAM,CAAC1F,aAAa,IAAIiG,IAAI,CAACC,GAAG,EAAE;AACjDzC,YAAAA,KAAK,EAAE,IAAI;AACXnC,YAAAA,aAAa,EAAE,KAAK;AACpByE,YAAAA,MAAM,EAAE,SAAS;AACjB,YAAA,IAAI,CAACL,MAAM,CAACxF,MAAM,IAAI;AACpBT,cAAAA,WAAW,EAAE,MAAM;AACnBmG,cAAAA,iBAAiB,EAAE,CAAC;AACpBC,cAAAA,kBAAkB,EAAE,IAAA;aACrB,CAAA;WACF,CAAA;AACH,QAAA,KAAK,OAAO;AACV,UAAA,MAAMpC,KAAK,GAAGiC,MAAM,CAACjC,KAAgB,CAAA;AAErC,UAAA,IAAImB,gBAAgB,CAACnB,KAAK,CAAC,IAAIA,KAAK,CAACb,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAChE,OAAO;cAAE,GAAG,IAAI,CAAC,YAACuD;aAAa,CAAA;AACjC,WAAA;UAEA,OAAO;AACL,YAAA,GAAGlH,KAAK;AACRwE,YAAAA,KAAK,EAAEA,KAAe;AACtB2C,YAAAA,gBAAgB,EAAEnH,KAAK,CAACmH,gBAAgB,GAAG,CAAC;AAC5CC,YAAAA,cAAc,EAAEJ,IAAI,CAACC,GAAG,EAAE;AAC1BN,YAAAA,iBAAiB,EAAE3G,KAAK,CAAC2G,iBAAiB,GAAG,CAAC;AAC9CC,YAAAA,kBAAkB,EAAEpC,KAAe;AACnChE,YAAAA,WAAW,EAAE,MAAM;AACnBsG,YAAAA,MAAM,EAAE,OAAA;WACT,CAAA;AACH,QAAA,KAAK,YAAY;UACf,OAAO;AACL,YAAA,GAAG9G,KAAK;AACRqC,YAAAA,aAAa,EAAE,IAAA;WAChB,CAAA;AACH,QAAA,KAAK,UAAU;UACb,OAAO;AACL,YAAA,GAAGrC,KAAK;AACR,YAAA,GAAGyG,MAAM,CAACzG,KAAAA;WACX,CAAA;AAAA,OAAA;KAEN,CAAA;IAED,IAAI,CAACA,KAAK,GAAG0G,OAAO,CAAC,IAAI,CAAC1G,KAAK,CAAC,CAAA;IAEhCqH,aAAa,CAACC,KAAK,CAAC,MAAM;AACxB,MAAA,IAAI,CAAC,UAAU,CAACC,OAAO,CAAEvF,QAAQ,IAAK;AACpCA,QAAAA,QAAQ,CAACwF,aAAa,CAACf,MAAM,CAAC,CAAA;AAChC,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAAC,MAAM,CAAClD,MAAM,CAAC;AAAEC,QAAAA,KAAK,EAAE,IAAI;AAAE1C,QAAAA,IAAI,EAAE,SAAS;AAAE2F,QAAAA,MAAAA;AAAO,OAAC,CAAC,CAAA;AAC9D,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AAEA,SAASxG,eAAe,CAMtBL,OAA6D,EAClC;AAC3B,EAAA,MAAMgB,IAAI,GACR,OAAOhB,OAAO,CAAC6H,WAAW,KAAK,UAAU,GACpC7H,OAAO,CAAC6H,WAAW,EAAiC,GACrD7H,OAAO,CAAC6H,WAAW,CAAA;AAEzB,EAAA,MAAMC,OAAO,GAAG,OAAO9G,IAAI,KAAK,WAAW,CAAA;EAE3C,MAAM+G,oBAAoB,GAAGD,OAAO,GAChC,OAAO9H,OAAO,CAAC+H,oBAAoB,KAAK,UAAU,GAC/C/H,OAAO,CAAC+H,oBAAoB,EAA+B,GAC5D/H,OAAO,CAAC+H,oBAAoB,GAC9B,CAAC,CAAA;EAEL,OAAO;IACL/G,IAAI;AACJmG,IAAAA,eAAe,EAAE,CAAC;IAClBhG,aAAa,EAAE2G,OAAO,GAAGC,oBAAoB,IAAIX,IAAI,CAACC,GAAG,EAAE,GAAG,CAAC;AAC/DzC,IAAAA,KAAK,EAAE,IAAI;AACX2C,IAAAA,gBAAgB,EAAE,CAAC;AACnBC,IAAAA,cAAc,EAAE,CAAC;AACjBT,IAAAA,iBAAiB,EAAE,CAAC;AACpBC,IAAAA,kBAAkB,EAAE,IAAI;AACxBnB,IAAAA,SAAS,EAAE,IAAI;AACfpD,IAAAA,aAAa,EAAE,KAAK;AACpByE,IAAAA,MAAM,EAAEY,OAAO,GAAG,SAAS,GAAG,SAAS;AACvClH,IAAAA,WAAW,EAAE,MAAA;GACd,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"query.mjs","sources":["../../src/query.ts"],"sourcesContent":["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 RegisteredError,\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 = RegisteredError> {\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 = RegisteredError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n onFetch: (\n context: FetchContext<TQueryFnData, TError, TData, TQueryKey>,\n ) => void\n}\n\nexport interface FetchMeta {\n fetchMore?: { direction: 'forward' | 'backward' }\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: 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 = RegisteredError,\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: 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?.(error, 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\n // Try to fetch the data\n this.#retryer = createRetryer({\n fn: context.fetchFn as () => 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('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\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(action)\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"],"names":["Query","Removable","constructor","config","defaultOptions","options","cache","queryKey","queryHash","state","getDefaultState","scheduleGc","meta","updateGcTime","gcTime","optionalRemove","length","fetchStatus","remove","setData","newData","data","replaceData","type","dataUpdatedAt","updatedAt","manual","setState","setStateOptions","cancel","promise","then","noop","catch","Promise","resolve","destroy","silent","reset","isActive","some","observer","enabled","isDisabled","getObserversCount","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","onFocus","find","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","shouldFetchOnReconnect","addObserver","indexOf","push","clearGcTimeout","notify","query","removeObserver","filter","revert","cancelRetry","invalidate","fetch","fetchOptions","continueRetry","queryFn","process","env","NODE_ENV","Array","isArray","console","error","abortController","AbortController","queryFnContext","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","fetchFn","reject","Error","context","behavior","onFetch","fetchMeta","onError","isCancelledError","isFetchingOptimistic","createRetryer","fn","abort","bind","onSuccess","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","action","reducer","fetchFailureCount","fetchFailureReason","canFetch","status","dataUpdateCount","Date","now","revertState","errorUpdateCount","errorUpdatedAt","notifyManager","batch","forEach","onQueryUpdate","initialData","hasData","initialDataUpdatedAt"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.esm.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, RegisteredError } 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, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = RegisteredError,\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 #previousQueryResult?: QueryObserverResult<TData, TError>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\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.length === 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.listeners.length) {\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 = []\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 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 #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 const prevQueryResult = queryChange\n ? this.#currentResult\n : this.#previousQueryResult\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 )(prevQueryResult?.data as TQueryData | undefined)\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(prevResult?.data, placeholderData, options) 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 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.throwErrors) {\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 this.#previousQueryResult = this.#currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data!, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error!)\n }\n\n // Then 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"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","refetchInterval","data","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","prevQueryResult","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":";;;;;;AAuCO,MAAMA,aAAa,SAMhBC,YAAY,CAAuC;AAS3D,EAAA,OAAO,CAAA;EACP,aAAa,GAAuDC,SAAS,CAAA;EAC7E,yBAAyB,GAAmCA,SAAS,CAAA;EACrE,cAAc,GAAuCA,SAAS,CAAA;AAC9D,EAAA,mBAAmB,CAAA;AACnB,EAAA,qBAAqB,CAAA;AAOrB,EAAA,oBAAoB,CAAA;AACpB,EAAA,YAAY,CAAA;AACZ,EAAA,SAAS,CAAA;AACT,EAAA,aAAa,CAAA;AACb,EAAA,eAAe,CAAA;AACf,EAAA,kBAAkB,CAAA;AAClB,EAAA,uBAAuB,CAAA;AACvB,EAAA,aAAa,GAAmC,IAAIC,GAAG,EAAE,CAAA;AAEzDC,EAAAA,WAAW,CACTC,MAAmB,EACnBC,OAMC,EACD;AACA,IAAA,KAAK,EAAE,CAAA;AAEP,IAAA,IAAI,CAAC,OAAO,GAAGD,MAAM,CAAA;IACrB,IAAI,CAACC,OAAO,GAAGA,OAAO,CAAA;AACtB,IAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxB,IAAI,CAACC,WAAW,EAAE,CAAA;AAClB,IAAA,IAAI,CAACC,UAAU,CAACF,OAAO,CAAC,CAAA;AAC1B,GAAA;AAEUC,EAAAA,WAAW,GAAS;IAC5B,IAAI,CAACE,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,GAAA;AAEUC,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;AAC/B,MAAA,IAAI,CAAC,aAAa,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;MAEpC,IAAIC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAACT,OAAO,CAAC,EAAE;QACxD,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;MAEA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;AACF,GAAA;AAEUU,EAAAA,aAAa,GAAS;AAC9B,IAAA,IAAI,CAAC,IAAI,CAACJ,SAAS,CAACC,MAAM,EAAE;MAC1B,IAAI,CAACI,OAAO,EAAE,CAAA;AAChB,KAAA;AACF,GAAA;AAEAC,EAAAA,sBAAsB,GAAY;AAChC,IAAA,OAAOC,aAAa,CAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAACb,OAAO,EACZ,IAAI,CAACA,OAAO,CAACc,kBAAkB,CAChC,CAAA;AACH,GAAA;AAEAC,EAAAA,wBAAwB,GAAY;AAClC,IAAA,OAAOF,aAAa,CAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAACb,OAAO,EACZ,IAAI,CAACA,OAAO,CAACgB,oBAAoB,CAClC,CAAA;AACH,GAAA;AAEAL,EAAAA,OAAO,GAAS;IACd,IAAI,CAACL,SAAS,GAAG,EAAE,CAAA;IACnB,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACzB,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,IAAA,IAAI,CAAC,aAAa,CAACW,cAAc,CAAC,IAAI,CAAC,CAAA;AACzC,GAAA;AAEAf,EAAAA,UAAU,CACRF,OAMC,EACDkB,aAA6B,EACvB;AACN,IAAA,MAAMC,WAAW,GAAG,IAAI,CAACnB,OAAO,CAAA;AAChC,IAAA,MAAMoB,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;IAEpC,IAAI,CAACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAACqB,mBAAmB,CAACrB,OAAO,CAAC,CAAA;IAExD,IAAI,CAACsB,mBAAmB,CAACH,WAAW,EAAE,IAAI,CAACnB,OAAO,CAAC,EAAE;MACnD,IAAI,CAAC,OAAO,CAACuB,aAAa,EAAE,CAACC,MAAM,CAAC;AAClCC,QAAAA,IAAI,EAAE,wBAAwB;AAC9BC,QAAAA,KAAK,EAAE,IAAI,CAAC,aAAa;AACzBC,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IACE,OAAO,IAAI,CAAC3B,OAAO,CAAC4B,OAAO,KAAK,WAAW,IAC3C,OAAO,IAAI,CAAC5B,OAAO,CAAC4B,OAAO,KAAK,SAAS,EACzC;AACA,MAAA,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACrD,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC,IAAI,CAAC7B,OAAO,CAAC8B,QAAQ,EAAE;AAC1B,MAAA,IAAI,CAAC9B,OAAO,CAAC8B,QAAQ,GAAGX,WAAW,CAACW,QAAQ,CAAA;AAC9C,KAAA;IAEA,IAAI,CAAC,YAAY,EAAE,CAAA;AAEnB,IAAA,MAAMC,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;;AAEnC;AACA,IAAA,IACED,OAAO,IACPE,qBAAqB,CACnB,IAAI,CAAC,aAAa,EAClBb,SAAS,EACT,IAAI,CAACpB,OAAO,EACZmB,WAAW,CACZ,EACD;MACA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC,aAAa,CAACD,aAAa,CAAC,CAAA;;AAEjC;AACA,IAAA,IACEa,OAAO,KACN,IAAI,CAAC,aAAa,KAAKX,SAAS,IAC/B,IAAI,CAACpB,OAAO,CAAC4B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5C,IAAI,CAAC5B,OAAO,CAACkC,SAAS,KAAKf,WAAW,CAACe,SAAS,CAAC,EACnD;MACA,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC5B,KAAA;AAEA,IAAA,MAAMC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;;AAE1D;IACA,IACEJ,OAAO,KACN,IAAI,CAAC,aAAa,KAAKX,SAAS,IAC/B,IAAI,CAACpB,OAAO,CAAC4B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5CO,mBAAmB,KAAK,IAAI,CAAC,uBAAuB,CAAC,EACvD;AACA,MAAA,IAAI,CAAC,sBAAsB,CAACA,mBAAmB,CAAC,CAAA;AAClD,KAAA;AACF,GAAA;EAEAC,mBAAmB,CACjBpC,OAMC,EACmC;AACpC,IAAA,MAAM0B,KAAK,GAAG,IAAI,CAAC,OAAO,CAACH,aAAa,EAAE,CAACc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAErC,OAAO,CAAC,CAAA;AAEvE,IAAA,OAAO,IAAI,CAACsC,YAAY,CAACZ,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAC1C,GAAA;AAEAuC,EAAAA,gBAAgB,GAAuC;IACrD,OAAO,IAAI,CAAC,cAAc,CAAA;AAC5B,GAAA;EAEAC,WAAW,CACTC,MAA0C,EACN;IACpC,MAAMC,aAAa,GAAG,EAAwC,CAAA;IAE9DC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,OAAO,CAAEC,GAAG,IAAK;AACnCH,MAAAA,MAAM,CAACI,cAAc,CAACL,aAAa,EAAEI,GAAG,EAAE;AACxCE,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,GAAG,EAAE,MAAM;AACT,UAAA,IAAI,CAAC,aAAa,CAACC,GAAG,CAACL,GAAG,CAA8B,CAAA;UACxD,OAAOL,MAAM,CAACK,GAAG,CAA8B,CAAA;AACjD,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOJ,aAAa,CAAA;AACtB,GAAA;AAEAU,EAAAA,eAAe,GAAuD;IACpE,OAAO,IAAI,CAAC,aAAa,CAAA;AAC3B,GAAA;AAEAjD,EAAAA,OAAO,CAAC;IAAE,GAAGH,OAAAA;GAAyB,GAAG,EAAE,EAEzC;IACA,OAAO,IAAI,CAACqD,KAAK,CAAC;MAChB,GAAGrD,OAAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAsD,eAAe,CACbtD,OAMC,EAC4C;IAC7C,MAAMuD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAClC,mBAAmB,CAACrB,OAAO,CAAC,CAAA;AAElE,IAAA,MAAM0B,KAAK,GAAG,IAAI,CAAC,OAAO,CACvBH,aAAa,EAAE,CACfc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAEkB,gBAAgB,CAAC,CAAA;IACxC7B,KAAK,CAAC8B,oBAAoB,GAAG,IAAI,CAAA;AAEjC,IAAA,OAAO9B,KAAK,CAAC2B,KAAK,EAAE,CAACI,IAAI,CAAC,MAAM,IAAI,CAACnB,YAAY,CAACZ,KAAK,EAAE6B,gBAAgB,CAAC,CAAC,CAAA;AAC7E,GAAA;EAEUF,KAAK,CACbK,YAAkC,EACW;AAC7C,IAAA,OAAO,IAAI,CAAC,aAAa,CAAC;AACxB,MAAA,GAAGA,YAAY;AACfC,MAAAA,aAAa,EAAED,YAAY,CAACC,aAAa,IAAI,IAAA;AAC/C,KAAC,CAAC,CAACF,IAAI,CAAC,MAAM;MACZ,IAAI,CAAC,aAAa,EAAE,CAAA;MACpB,OAAO,IAAI,CAAC,cAAc,CAAA;AAC5B,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,aAAa,CACXC,YAAmC,EACF;AACjC;IACA,IAAI,CAAC,YAAY,EAAE,CAAA;;AAEnB;AACA,IAAA,IAAIE,OAAwC,GAAG,IAAI,CAAC,aAAa,CAACP,KAAK,CACrE,IAAI,CAACrD,OAAO,EACZ0D,YAAY,CACb,CAAA;AAED,IAAA,IAAI,CAACA,YAAY,EAAEG,YAAY,EAAE;AAC/BD,MAAAA,OAAO,GAAGA,OAAO,CAACE,KAAK,CAACC,IAAI,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,OAAOH,OAAO,CAAA;AAChB,GAAA;AAEA,EAAA,mBAAmB,GAAS;IAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAEzB,IAAA,IACEI,QAAQ,IACR,IAAI,CAAC,cAAc,CAACC,OAAO,IAC3B,CAACC,cAAc,CAAC,IAAI,CAAClE,OAAO,CAACkC,SAAS,CAAC,EACvC;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMiC,IAAI,GAAGC,cAAc,CACzB,IAAI,CAAC,cAAc,CAACC,aAAa,EACjC,IAAI,CAACrE,OAAO,CAACkC,SAAS,CACvB,CAAA;;AAED;AACA;AACA,IAAA,MAAMoC,OAAO,GAAGH,IAAI,GAAG,CAAC,CAAA;AAExB,IAAA,IAAI,CAAC,eAAe,GAAGI,UAAU,CAAC,MAAM;AACtC,MAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAACN,OAAO,EAAE;QAChC,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;KACD,EAAEK,OAAO,CAAC,CAAA;AACb,GAAA;AAEA,EAAA,uBAAuB,GAAG;AACxB,IAAA,OAAO,OAAO,IAAI,CAACtE,OAAO,CAACwE,eAAe,KAAK,UAAU,GACrD,IAAI,CAACxE,OAAO,CAACwE,eAAe,CAC1B,IAAI,CAAC,cAAc,CAACC,IAAI,EACxB,IAAI,CAAC,aAAa,CACnB,GACD,IAAI,CAACzE,OAAO,CAACwE,eAAe,IAAI,KAAK,CAAA;AAC3C,GAAA;EAEA,sBAAsB,CAACE,YAA4B,EAAQ;IACzD,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAE5B,IAAA,IAAI,CAAC,uBAAuB,GAAGA,YAAY,CAAA;IAE3C,IACEV,QAAQ,IACR,IAAI,CAAChE,OAAO,CAAC4B,OAAO,KAAK,KAAK,IAC9B,CAACsC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAC7C,IAAI,CAAC,uBAAuB,KAAK,CAAC,EAClC;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC,kBAAkB,GAAGS,WAAW,CAAC,MAAM;MAC1C,IACE,IAAI,CAAC3E,OAAO,CAAC4E,2BAA2B,IACxCC,YAAY,CAACC,SAAS,EAAE,EACxB;QACA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;AACF,KAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;AAClC,GAAA;AAEA,EAAA,aAAa,GAAS;IACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAA;AAC7D,GAAA;AAEA,EAAA,kBAAkB,GAAS;AACzB,IAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxBC,MAAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AAClC,MAAA,IAAI,CAAC,eAAe,GAAGnF,SAAS,CAAA;AAClC,KAAA;AACF,GAAA;AAEA,EAAA,qBAAqB,GAAS;AAC5B,IAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3BoF,MAAAA,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AACtC,MAAA,IAAI,CAAC,kBAAkB,GAAGpF,SAAS,CAAA;AACrC,KAAA;AACF,GAAA;AAEU0C,EAAAA,YAAY,CACpBZ,KAAyD,EACzD1B,OAMC,EACmC;AACpC,IAAA,MAAMoB,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;AACpC,IAAA,MAAMD,WAAW,GAAG,IAAI,CAACnB,OAAO,CAAA;AAChC,IAAA,MAAMiF,UAAU,GAAG,IAAI,CAAC,cAEX,CAAA;AACb,IAAA,MAAMC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAA;AAChD,IAAA,MAAMC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAA;AACpD,IAAA,MAAMC,WAAW,GAAG1D,KAAK,KAAKN,SAAS,CAAA;IACvC,MAAMiE,iBAAiB,GAAGD,WAAW,GACjC1D,KAAK,CAAC4D,KAAK,GACX,IAAI,CAAC,yBAAyB,CAAA;AAClC,IAAA,MAAMC,eAAe,GAAGH,WAAW,GAC/B,IAAI,CAAC,cAAc,GACnB,IAAI,CAAC,oBAAoB,CAAA;IAE7B,MAAM;AAAEE,MAAAA,KAAAA;AAAM,KAAC,GAAG5D,KAAK,CAAA;IACvB,IAAI;MAAE8D,KAAK;MAAEC,cAAc;MAAEC,WAAW;AAAEC,MAAAA,MAAAA;AAAO,KAAC,GAAGL,KAAK,CAAA;IAC1D,IAAIM,iBAAiB,GAAG,KAAK,CAAA;AAC7B,IAAA,IAAInB,IAAuB,CAAA;;AAE3B;IACA,IAAIzE,OAAO,CAAC6F,kBAAkB,EAAE;AAC9B,MAAA,MAAM9D,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;MAEnC,MAAM8D,YAAY,GAAG,CAAC/D,OAAO,IAAItB,kBAAkB,CAACiB,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAEnE,MAAA,MAAM+F,eAAe,GACnBhE,OAAO,IAAIE,qBAAqB,CAACP,KAAK,EAAEN,SAAS,EAAEpB,OAAO,EAAEmB,WAAW,CAAC,CAAA;MAE1E,IAAI2E,YAAY,IAAIC,eAAe,EAAE;AACnCL,QAAAA,WAAW,GAAGM,QAAQ,CAACtE,KAAK,CAAC1B,OAAO,CAACiG,WAAW,CAAC,GAC7C,UAAU,GACV,QAAQ,CAAA;AACZ,QAAA,IAAI,CAACX,KAAK,CAACjB,aAAa,EAAE;AACxBsB,UAAAA,MAAM,GAAG,SAAS,CAAA;AACpB,SAAA;AACF,OAAA;AACA,MAAA,IAAI3F,OAAO,CAAC6F,kBAAkB,KAAK,aAAa,EAAE;AAChDH,QAAAA,WAAW,GAAG,MAAM,CAAA;AACtB,OAAA;AACF,KAAA;;AAEA;IACA,IAAI1F,OAAO,CAACkG,MAAM,IAAI,OAAOZ,KAAK,CAACb,IAAI,KAAK,WAAW,EAAE;AACvD;AACA,MAAA,IACEQ,UAAU,IACVK,KAAK,CAACb,IAAI,KAAKS,eAAe,EAAET,IAAI,IACpCzE,OAAO,CAACkG,MAAM,KAAK,IAAI,CAAC,SAAS,EACjC;AACAzB,QAAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AAC3B,OAAC,MAAM;QACL,IAAI;AACF,UAAA,IAAI,CAAC,SAAS,GAAGzE,OAAO,CAACkG,MAAM,CAAA;UAC/BzB,IAAI,GAAGzE,OAAO,CAACkG,MAAM,CAACZ,KAAK,CAACb,IAAI,CAAC,CAAA;UACjCA,IAAI,GAAG0B,WAAW,CAAClB,UAAU,EAAER,IAAI,EAAEA,IAAI,EAAEzE,OAAO,CAAC,CAAA;AACnD,UAAA,IAAI,CAAC,aAAa,GAAGyE,IAAI,CAAA;AACzB,UAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;SACzB,CAAC,OAAO2B,WAAW,EAAE;AACpB,UAAA,IAAI,CAAC,YAAY,GAAGA,WAAqB,CAAA;AAC3C,SAAA;AACF,OAAA;AACF,KAAA;AACA;SACK;MACH3B,IAAI,GAAGa,KAAK,CAACb,IAAwB,CAAA;AACvC,KAAA;;AAEA;AACA,IAAA,IACE,OAAOzE,OAAO,CAACqG,eAAe,KAAK,WAAW,IAC9C,OAAO5B,IAAI,KAAK,WAAW,IAC3BkB,MAAM,KAAK,SAAS,EACpB;AACA,MAAA,IAAIU,eAAe,CAAA;;AAEnB;MACA,IACEpB,UAAU,EAAEW,iBAAiB,IAC7B5F,OAAO,CAACqG,eAAe,KAAKlB,iBAAiB,EAAEkB,eAAe,EAC9D;QACAA,eAAe,GAAGpB,UAAU,CAACR,IAAI,CAAA;AACnC,OAAC,MAAM;AACL4B,QAAAA,eAAe,GACb,OAAOrG,OAAO,CAACqG,eAAe,KAAK,UAAU,GAEvCrG,OAAO,CAACqG,eAAe,CACvBd,eAAe,EAAEd,IAAI,CAA2B,GAClDzE,OAAO,CAACqG,eAAe,CAAA;QAC7B,IAAIrG,OAAO,CAACkG,MAAM,IAAI,OAAOG,eAAe,KAAK,WAAW,EAAE;UAC5D,IAAI;AACFA,YAAAA,eAAe,GAAGrG,OAAO,CAACkG,MAAM,CAACG,eAAe,CAAC,CAAA;AACjD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;WACzB,CAAC,OAAOD,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,GAAGA,WAAqB,CAAA;AAC3C,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,IAAI,OAAOC,eAAe,KAAK,WAAW,EAAE;AAC1CV,QAAAA,MAAM,GAAG,SAAS,CAAA;QAClBlB,IAAI,GAAG0B,WAAW,CAAClB,UAAU,EAAER,IAAI,EAAE4B,eAAe,EAAErG,OAAO,CAAU,CAAA;AACvE4F,QAAAA,iBAAiB,GAAG,IAAI,CAAA;AAC1B,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrBJ,MAAAA,KAAK,GAAG,IAAI,CAAC,YAAmB,CAAA;AAChCf,MAAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AACzBgB,MAAAA,cAAc,GAAGa,IAAI,CAACC,GAAG,EAAE,CAAA;AAC3BZ,MAAAA,MAAM,GAAG,OAAO,CAAA;AAClB,KAAA;AAEA,IAAA,MAAMa,UAAU,GAAGd,WAAW,KAAK,UAAU,CAAA;AAC7C,IAAA,MAAMe,SAAS,GAAGd,MAAM,KAAK,SAAS,CAAA;AACtC,IAAA,MAAMe,OAAO,GAAGf,MAAM,KAAK,OAAO,CAAA;AAElC,IAAA,MAAMgB,SAAS,GAAGF,SAAS,IAAID,UAAU,CAAA;AAEzC,IAAA,MAAM/D,MAA8C,GAAG;MACrDkD,MAAM;MACND,WAAW;MACXe,SAAS;MACTG,SAAS,EAAEjB,MAAM,KAAK,SAAS;MAC/Be,OAAO;AACPG,MAAAA,gBAAgB,EAAEF,SAAS;MAC3BA,SAAS;MACTlC,IAAI;MACJJ,aAAa,EAAEiB,KAAK,CAACjB,aAAa;MAClCmB,KAAK;MACLC,cAAc;MACdqB,YAAY,EAAExB,KAAK,CAACyB,iBAAiB;MACrCC,aAAa,EAAE1B,KAAK,CAAC2B,kBAAkB;MACvCC,gBAAgB,EAAE5B,KAAK,CAAC4B,gBAAgB;MACxCC,SAAS,EAAE7B,KAAK,CAAC8B,eAAe,GAAG,CAAC,IAAI9B,KAAK,CAAC4B,gBAAgB,GAAG,CAAC;AAClEG,MAAAA,mBAAmB,EACjB/B,KAAK,CAAC8B,eAAe,GAAG/B,iBAAiB,CAAC+B,eAAe,IACzD9B,KAAK,CAAC4B,gBAAgB,GAAG7B,iBAAiB,CAAC6B,gBAAgB;MAC7DV,UAAU;AACVc,MAAAA,YAAY,EAAEd,UAAU,IAAI,CAACC,SAAS;AACtCc,MAAAA,cAAc,EAAEb,OAAO,IAAIpB,KAAK,CAACjB,aAAa,KAAK,CAAC;MACpDmD,QAAQ,EAAE9B,WAAW,KAAK,QAAQ;MAClCE,iBAAiB;AACjB6B,MAAAA,cAAc,EAAEf,OAAO,IAAIpB,KAAK,CAACjB,aAAa,KAAK,CAAC;AACpDJ,MAAAA,OAAO,EAAEA,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAC;MAChCG,OAAO,EAAE,IAAI,CAACA,OAAAA;KACf,CAAA;AAED,IAAA,OAAOsC,MAAM,CAAA;AACf,GAAA;EAEA,aAAa,CAACvB,aAA6B,EAAQ;AACjD,IAAA,MAAM+D,UAAU,GAAG,IAAI,CAAC,cAEX,CAAA;AAEb,IAAA,MAAMyC,UAAU,GAAG,IAAI,CAACpF,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAACtC,OAAO,CAAC,CAAA;IACtE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAACsF,KAAK,CAAA;AACnD,IAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAACtF,OAAO,CAAA;;AAEzC;AACA,IAAA,IAAIsB,mBAAmB,CAACoG,UAAU,EAAEzC,UAAU,CAAC,EAAE;AAC/C,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC,cAAc,GAAGyC,UAAU,CAAA;;AAEhC;IACA,MAAMC,oBAAmC,GAAG,EAAE,CAAA;IAE9C,MAAMC,qBAAqB,GAAG,MAAe;MAC3C,IAAI,CAAC3C,UAAU,EAAE;AACf,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;MAEA,MAAM;AAAE4C,QAAAA,mBAAAA;OAAqB,GAAG,IAAI,CAAC7H,OAAO,CAAA;AAE5C,MAAA,IACE6H,mBAAmB,KAAK,KAAK,IAC5B,CAACA,mBAAmB,IAAI,CAAC,IAAI,CAAC,aAAa,CAACC,IAAK,EAClD;AACA,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;MAEA,MAAMC,aAAa,GAAG,IAAIlI,GAAG,CAACgI,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAA;AAExE,MAAA,IAAI,IAAI,CAAC7H,OAAO,CAACgI,WAAW,EAAE;AAC5BD,QAAAA,aAAa,CAAC5E,GAAG,CAAC,OAAO,CAAC,CAAA;AAC5B,OAAA;AAEA,MAAA,OAAOR,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAACqF,IAAI,CAAEnF,GAAG,IAAK;QACpD,MAAMoF,QAAQ,GAAGpF,GAAgC,CAAA;AACjD,QAAA,MAAMqF,OAAO,GAAG,IAAI,CAAC,cAAc,CAACD,QAAQ,CAAC,KAAKjD,UAAU,CAACiD,QAAQ,CAAC,CAAA;AACtE,QAAA,OAAOC,OAAO,IAAIJ,aAAa,CAACK,GAAG,CAACF,QAAQ,CAAC,CAAA;AAC/C,OAAC,CAAC,CAAA;KACH,CAAA;IAED,IAAIhH,aAAa,EAAEZ,SAAS,KAAK,KAAK,IAAIsH,qBAAqB,EAAE,EAAE;MACjED,oBAAoB,CAACrH,SAAS,GAAG,IAAI,CAAA;AACvC,KAAA;IAEA,IAAI,CAAC,OAAO,CAAC;AAAE,MAAA,GAAGqH,oBAAoB;MAAE,GAAGzG,aAAAA;AAAc,KAAC,CAAC,CAAA;AAC7D,GAAA;AAEA,EAAA,YAAY,GAAS;IACnB,MAAMQ,KAAK,GAAG,IAAI,CAAC,OAAO,CAACH,aAAa,EAAE,CAACc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAACrC,OAAO,CAAC,CAAA;AAE5E,IAAA,IAAI0B,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AAChC,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMN,SAAS,GAAG,IAAI,CAAC,aAEV,CAAA;AACb,IAAA,IAAI,CAAC,aAAa,GAAGM,KAAK,CAAA;AAC1B,IAAA,IAAI,CAAC,yBAAyB,GAAGA,KAAK,CAAC4D,KAAK,CAAA;AAC5C,IAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAA;AAE/C,IAAA,IAAI,IAAI,CAACtD,YAAY,EAAE,EAAE;AACvBZ,MAAAA,SAAS,EAAEH,cAAc,CAAC,IAAI,CAAC,CAAA;AAC/BS,MAAAA,KAAK,CAAClB,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;EAEA6H,aAAa,CAACC,MAA6B,EAAQ;IACjD,MAAMpH,aAA4B,GAAG,EAAE,CAAA;AAEvC,IAAA,IAAIoH,MAAM,CAAC7G,IAAI,KAAK,SAAS,EAAE;AAC7BP,MAAAA,aAAa,CAACqH,SAAS,GAAG,CAACD,MAAM,CAACE,MAAM,CAAA;AAC1C,KAAC,MAAM,IAAIF,MAAM,CAAC7G,IAAI,KAAK,OAAO,IAAI,CAACgH,gBAAgB,CAACH,MAAM,CAAC9C,KAAK,CAAC,EAAE;MACrEtE,aAAa,CAACwH,OAAO,GAAG,IAAI,CAAA;AAC9B,KAAA;AAEA,IAAA,IAAI,CAAC,aAAa,CAACxH,aAAa,CAAC,CAAA;AAEjC,IAAA,IAAI,IAAI,CAACc,YAAY,EAAE,EAAE;MACvB,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;AACF,GAAA;EAEA,OAAO,CAACd,aAA4B,EAAQ;IAC1CyH,aAAa,CAACC,KAAK,CAAC,MAAM;AACxB;MACA,IAAI1H,aAAa,CAACqH,SAAS,EAAE;QAC3B,IAAI,CAACvI,OAAO,CAACuI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC9D,IAAI,CAAE,CAAA;AACnD,QAAA,IAAI,CAACzE,OAAO,CAAC6I,SAAS,GAAG,IAAI,CAAC,cAAc,CAACpE,IAAI,EAAG,IAAI,CAAC,CAAA;AAC3D,OAAC,MAAM,IAAIvD,aAAa,CAACwH,OAAO,EAAE;QAChC,IAAI,CAAC1I,OAAO,CAAC0I,OAAO,GAAG,IAAI,CAAC,cAAc,CAAClD,KAAK,CAAE,CAAA;AAClD,QAAA,IAAI,CAACxF,OAAO,CAAC6I,SAAS,GAAGjJ,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC4F,KAAK,CAAE,CAAA;AACjE,OAAA;;AAEA;MACA,IAAItE,aAAa,CAACZ,SAAS,EAAE;AAC3B,QAAA,IAAI,CAACA,SAAS,CAACuC,OAAO,CAAEiG,QAAQ,IAAK;AACnCA,UAAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;AACJ,OAAA;;AAEA;MACA,IAAI,CAAC,OAAO,CAACvH,aAAa,EAAE,CAACC,MAAM,CAAC;AAClCE,QAAAA,KAAK,EAAE,IAAI,CAAC,aAAa;AACzBD,QAAAA,IAAI,EAAE,wBAAA;AACR,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AAEA,SAASsH,iBAAiB,CACxBrH,KAAgC,EAChC1B,OAAiD,EACxC;EACT,OACEA,OAAO,CAAC4B,OAAO,KAAK,KAAK,IACzB,CAACF,KAAK,CAAC4D,KAAK,CAACjB,aAAa,IAC1B,EAAE3C,KAAK,CAAC4D,KAAK,CAACK,MAAM,KAAK,OAAO,IAAI3F,OAAO,CAACgJ,YAAY,KAAK,KAAK,CAAC,CAAA;AAEvE,CAAA;AAEA,SAASvI,kBAAkB,CACzBiB,KAAgC,EAChC1B,OAAsD,EAC7C;EACT,OACE+I,iBAAiB,CAACrH,KAAK,EAAE1B,OAAO,CAAC,IAChC0B,KAAK,CAAC4D,KAAK,CAACjB,aAAa,GAAG,CAAC,IAC5BxD,aAAa,CAACa,KAAK,EAAE1B,OAAO,EAAEA,OAAO,CAACiJ,cAAc,CAAE,CAAA;AAE5D,CAAA;AAEA,SAASpI,aAAa,CACpBa,KAAgC,EAChC1B,OAAsD,EACtDkJ,KAEwC,EACxC;AACA,EAAA,IAAIlJ,OAAO,CAAC4B,OAAO,KAAK,KAAK,EAAE;AAC7B,IAAA,MAAMuH,KAAK,GAAG,OAAOD,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACxH,KAAK,CAAC,GAAGwH,KAAK,CAAA;AAEhE,IAAA,OAAOC,KAAK,KAAK,QAAQ,IAAKA,KAAK,KAAK,KAAK,IAAIlF,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAE,CAAA;AAC3E,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,CAAA;AAEA,SAASiC,qBAAqB,CAC5BP,KAAgC,EAChCN,SAAoC,EACpCpB,OAAsD,EACtDmB,WAA0D,EACjD;AACT,EAAA,OACEnB,OAAO,CAAC4B,OAAO,KAAK,KAAK,KACxBF,KAAK,KAAKN,SAAS,IAAID,WAAW,CAACS,OAAO,KAAK,KAAK,CAAC,KACrD,CAAC5B,OAAO,CAACoJ,QAAQ,IAAI1H,KAAK,CAAC4D,KAAK,CAACK,MAAM,KAAK,OAAO,CAAC,IACrD1B,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAE3B,CAAA;AAEA,SAASiE,OAAO,CACdvC,KAAgC,EAChC1B,OAAsD,EAC7C;AACT,EAAA,OAAO0B,KAAK,CAAC2H,aAAa,CAACrJ,OAAO,CAACkC,SAAS,CAAC,CAAA;AAC/C;;;;"}
1
+ {"version":3,"file":"queryObserver.esm.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, RegisteredError } 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, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = RegisteredError,\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 #previousQueryResult?: QueryObserverResult<TData, TError>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\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.length === 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.listeners.length) {\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 = []\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 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 #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 const prevQueryResult = queryChange\n ? this.#currentResult\n : this.#previousQueryResult\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 )(prevQueryResult?.data as TQueryData | undefined)\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(prevResult?.data, placeholderData, options) 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 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.throwErrors) {\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 this.#previousQueryResult = this.#currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error)\n }\n\n // Then 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"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","refetchInterval","data","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","prevQueryResult","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}