{"version":3,"file":"observableQuery.mjs","sources":["../../../src/vanilla/observableQuery.ts"],"sourcesContent":["import { focusManager } from './focusManager'\nimport { FetchQueryOptions, QueryClient, RefetchOptions } from './queryClient'\nimport {\n  FetchOptions,\n  QueryInfo,\n  QueryInfoOptions,\n  QueryInfoState,\n} from './queryInfo'\nimport { canFetch } from './retryer'\nimport { createSubscribable } from './subscribable'\nimport {\n  UNDEFINED,\n  isBoolean,\n  isFunction,\n  isServer,\n  isUndefined,\n  isValidTimeout,\n  noop,\n  replaceData,\n  shallowEqualObjects,\n  timeUntilStale,\n} from './utils'\n\nexport type ThrowOnError<\n  TFetcherData = unknown,\n  TVars = unknown,\n  TError = Error,\n  TQueryData = TFetcherData\n> =\n  | boolean\n  | ((\n      error: unknown,\n      query: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n    ) => boolean)\n\ntype NonFunctionGuard<T> = T extends (...args: any[]) => any ? never : T\n\nexport type PlaceholderDataFunction<\n  TFetcherData = unknown,\n  TVars = unknown,\n  TError = Error,\n  TQueryData = TFetcherData\n> = (\n  previousData: TQueryData | undefined,\n  previousQueryInfo:\n    | QueryInfo<TFetcherData, TVars, TError, TQueryData>\n    | undefined\n) => TQueryData | undefined\n\nexport interface ObservableQueryOptions<\n  TFetcherData = unknown,\n  TVars = unknown,\n  TError = Error,\n  TQueryData = TFetcherData,\n  TData = TQueryData\n> extends Omit<\n    QueryInfoOptions<TFetcherData, TVars, TError, TQueryData>,\n    'pages'\n  > {\n  /**\n   * Set this to `false` to disable automatic refetching when the query mounts or changes query keys.\n   * To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n   * Defaults to `true`.\n   */\n  enabled?: boolean\n  /**\n   * The time in milliseconds after datcreateResulta is considered stale.\n   * If set to `Infinity`, the data will never be considered stale.\n   */\n  staleTime?: number\n  /**\n   * If set to a number, the query will continuously refetch at this frequency in milliseconds.\n   * If set to a function, the function will be executed with the latest data and query to compute a frequency\n   * Defaults to `false`.\n   */\n  refetchInterval?:\n    | number\n    | false\n    | ((\n        data: TData | undefined,\n        queryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n      ) => number | false | undefined)\n  /**\n   * If set to `true`, the query will continue to refetch while their tab/window is in the background.\n   * Defaults to `false`.\n   */\n  refetchIntervalInBackground?: boolean\n  /**\n   * If set to `true`, the query will refetch on window focus if the data is stale.\n   * If set to `false`, the query will not refetch on window focus.\n   * If set to `'always'`, the query will always refetch on window focus.\n   * If set to a function, the function will be executed with the latest data and query to compute the value.\n   * Defaults to `true`.\n   */\n  refetchOnWindowFocus?:\n    | boolean\n    | 'always'\n    | ((\n        queryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n      ) => boolean | 'always')\n  /**\n   * If set to `true`, the query will refetch on reconnect if the data is stale.\n   * If set to `false`, the query will not refetch on reconnect.\n   * If set to `'always'`, the query will always refetch on reconnect.\n   * If set to a function, the function will be executed with the latest data and query to compute the value.\n   * Defaults to the value of `networkOnline` (`true`)\n   */\n  refetchOnReconnect?:\n    | boolean\n    | 'always'\n    | ((\n        queryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n      ) => boolean | 'always')\n  /**\n   * If set to `true`, the query will refetch on mount if the data is stale.\n   * If set to `false`, will disable additional instances of a query to trigger background refetches.\n   * If set to `'always'`, the query will always refetch on mount.\n   * If set to a function, the function will be executed with the latest data and query to compute the value\n   * Defaults to `true`.\n   */\n  refetchOnMount?:\n    | boolean\n    | 'always'\n    | ((\n        queryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n      ) => boolean | 'always')\n  /**\n   * If set to `false`, the query will not be retried on mount if it contains an error.\n   * Defaults to `true`.\n   */\n  retryOnMount?: boolean\n  /**\n   * Whether errors should be thrown instead of setting the `error` property.\n   * If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.\n   * If set to `false` and `suspense` is `false`, errors are returned as state.\n   * If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).\n   * Defaults to `false`.\n   */\n  throwOnError?: ThrowOnError<TFetcherData, TVars, TError, TQueryData>\n  /**\n   * This option can be used to transform or select a part of the data returned by the query function.\n   */\n  select?: (data: TQueryData) => TData\n  /**\n   * If set to `true`, the query will suspend when `status === 'pending'`\n   * and throw errors when `status === 'error'`.\n   * Defaults to `false`.\n   */\n  suspense?: boolean\n  /**\n   * If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `loading` data and no initialData has been provided.\n   */\n  placeholderData?:\n    | NonFunctionGuard<TQueryData>\n    | PlaceholderDataFunction<TFetcherData, TVars, TError, TQueryData>\n\n  behavior?: (obsQuery: any) => any\n\n  _optimisticResults?: boolean\n}\n\nexport interface ObservableQueryBaseResult<TData = unknown, TError = Error> {\n  data: TData | undefined\n  error: TError | null\n  isFetching: boolean\n  isLoading: boolean\n  isPlaceholderData: boolean\n  isStale: boolean\n  refetch: (\n    options?: RefetchOptions\n  ) => Promise<ObservableQueryResult<TData, TError>>\n}\n\nexport interface ObservableQueryLoadingResult<TData = unknown, TError = Error>\n  extends ObservableQueryBaseResult<TData, TError> {\n  data: undefined\n  error: null\n}\n\nexport interface ObservableQueryLoadingErrorResult<\n  TData = unknown,\n  TError = Error\n> extends ObservableQueryBaseResult<TData, TError> {\n  data: undefined\n  error: TError\n}\n\nexport interface ObservableQuerySuccessResult<TData = unknown, TError = Error>\n  extends ObservableQueryBaseResult<TData, TError> {\n  data: TData\n  error: null\n}\n\nexport type ObservableQueryResult<TData = unknown, TError = Error> =\n  | ObservableQueryLoadingResult<TData, TError>\n  | ObservableQueryLoadingErrorResult<TData, TError>\n  | ObservableQuerySuccessResult<TData, TError>\n\nexport interface ObserverFetchOptions extends FetchOptions {\n  throwOnError?: boolean\n}\n\nexport interface NotifyOptions {\n  listeners?: boolean\n}\n\nexport interface ObservableQuery<\n  TFetcherData = unknown,\n  TVars = unknown,\n  TError = Error,\n  TQueryData = TFetcherData,\n  TData = TFetcherData\n> extends ReturnType<\n    typeof createObservableQuery<TFetcherData, TVars, TError, TQueryData, TData>\n  > {}\n\ntype ObservableQueryListener<TData = unknown, TError = Error> = (\n  result: ObservableQueryResult<TData, TError>\n) => void\n\nexport const createObservableQuery = <\n  TFetcherData = unknown,\n  TVars = unknown,\n  TError = Error,\n  TQueryData = TFetcherData,\n  TData = TQueryData\n>(\n  client: QueryClient,\n  initialOptions: ObservableQueryOptions<\n    TFetcherData,\n    TVars,\n    TError,\n    TQueryData,\n    TData\n  >\n) => {\n  let options = initialOptions\n  let currentQueryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>\n  let currentResult: ObservableQueryResult<TData, TError>\n  let currentResultState: QueryInfoState<TQueryData, TError>\n  let currentResultOptions:\n    | ObservableQueryOptions<TFetcherData, TVars, TError, TQueryData, TData>\n    | undefined\n  let lastQueryInfoWithDefinedData:\n    | QueryInfo<TFetcherData, TVars, TError, TQueryData>\n    | undefined\n  let selectError: TError | null = null\n  let selectResult: TData | undefined\n  let staleTimeoutId: ReturnType<typeof setTimeout> | undefined\n  let refetchIntervalId: ReturnType<typeof setInterval> | undefined\n  let currentRefetchInterval: number | false | undefined\n  let unSubscribeQueryInfo: (() => void) | undefined\n\n  const trackedProps: Set<keyof ObservableQueryResult<TData, TError>> =\n    new Set()\n\n  const [listeners, subscribe, hasListeners] = createSubscribable<\n    ObservableQueryListener<TData, TError>\n  >(\n    function onSubscribe() {\n      if (listeners.size === 1) {\n        unSubscribeQueryInfo?.()\n        unSubscribeQueryInfo = currentQueryInfo.subscribe(obsQuery)\n\n        if (shouldFetchOnMount(currentQueryInfo, options)) {\n          executeFetch()\n        }\n\n        updateTimers()\n      }\n    },\n    function onUnsubscribe() {\n      if (!hasListeners()) {\n        destroy()\n      }\n    }\n  )\n\n  const executeFetch = (\n    fetchOptions?: ObserverFetchOptions\n  ): Promise<TQueryData | undefined> => {\n    updateQueryInfo()\n\n    let promise: Promise<TQueryData | undefined> = currentQueryInfo.fetch(\n      options as FetchQueryOptions<TFetcherData, TVars, TError, TQueryData>,\n      fetchOptions\n    )\n\n    if (!fetchOptions?.throwOnError) {\n      promise = promise.catch(noop)\n    }\n\n    return promise\n  }\n\n  const fetch = (\n    fetchOptions?: ObserverFetchOptions\n  ): Promise<ObservableQueryResult<TData, TError>> => {\n    return executeFetch({\n      ...fetchOptions,\n      cancelRefetch: fetchOptions?.cancelRefetch ?? true,\n    }).then(() => {\n      updateResult()\n      return currentResult\n    })\n  }\n\n  const refetch: (\n    options?: RefetchOptions\n  ) => Promise<ObservableQueryResult<TData, TError>> = fetch\n\n  const updateResult = (notifyOptions?: NotifyOptions): void => {\n    const prevResult = currentResult\n    const nextResult = obsQuery.createResult(currentQueryInfo, options)\n\n    currentResultState = currentQueryInfo.state\n    currentResultOptions = options\n\n    // Only notify and update result if something has changed\n    if (shallowEqualObjects(nextResult, prevResult)) {\n      return\n    }\n\n    if (!isUndefined(currentResultState.data)) {\n      lastQueryInfoWithDefinedData = currentQueryInfo\n    }\n    currentResult = nextResult\n\n    // Determine which callbacks to trigger\n    const defaultNotifyOptions: NotifyOptions = {}\n\n    const shouldNotifyListeners = (): boolean => {\n      if (!prevResult || !trackedProps.size) {\n        return true\n      }\n\n      const includedProps = [...trackedProps]\n\n      if (!trackedProps.has('error') && options.throwOnError) {\n        includedProps.push('error')\n      }\n\n      return includedProps.some(key => prevResult[key] !== nextResult[key])\n    }\n\n    if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n      defaultNotifyOptions.listeners = true\n    }\n\n    notify({ ...defaultNotifyOptions, ...notifyOptions })\n  }\n\n  const onQueryUpdate = (): void => {\n    updateResult()\n\n    if (hasListeners()) {\n      updateTimers()\n    }\n  }\n\n  const updateStaleTimeout = (): void => {\n    clearStaleTimeout()\n\n    if (\n      isServer ||\n      currentResult.isStale ||\n      !isValidTimeout(options.staleTime)\n    ) {\n      return\n    }\n\n    const time = timeUntilStale(\n      currentQueryInfo.state.dataUpdatedAt,\n      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    staleTimeoutId = setTimeout(() => {\n      if (!currentResult.isStale) {\n        updateResult()\n      }\n    }, timeout)\n  }\n\n  const computeRefetchInterval = () => {\n    return (\n      (isFunction(options.refetchInterval)\n        ? options.refetchInterval(currentResult.data, currentQueryInfo)\n        : options.refetchInterval) ?? false\n    )\n  }\n\n  const updateRefetchInterval = (nextInterval: number | false): void => {\n    clearRefetchInterval()\n\n    currentRefetchInterval = nextInterval\n\n    if (\n      isServer ||\n      options.enabled === false ||\n      !isValidTimeout(currentRefetchInterval) ||\n      currentRefetchInterval === 0\n    ) {\n      return\n    }\n\n    refetchIntervalId = setInterval(() => {\n      if (options.refetchIntervalInBackground || focusManager.isFocused()) {\n        executeFetch()\n      }\n    }, currentRefetchInterval)\n  }\n\n  const updateTimers = (): void => {\n    updateStaleTimeout()\n    updateRefetchInterval(computeRefetchInterval())\n  }\n\n  const clearStaleTimeout = (): void => {\n    if (staleTimeoutId) {\n      clearTimeout(staleTimeoutId)\n      staleTimeoutId = UNDEFINED\n    }\n  }\n\n  const clearRefetchInterval = (): void => {\n    if (refetchIntervalId) {\n      clearInterval(refetchIntervalId)\n      refetchIntervalId = UNDEFINED\n    }\n  }\n\n  const notify = (notifyOptions: NotifyOptions): void => {\n    // First, trigger the listeners\n    if (notifyOptions.listeners) {\n      listeners.forEach(listener => {\n        listener(currentResult)\n      })\n    }\n  }\n\n  const updateQueryInfo = () => {\n    const queryInfo = client.getQueryCache().build(client, options)\n\n    if (queryInfo === currentQueryInfo) {\n      return\n    }\n\n    currentQueryInfo = queryInfo\n\n    if (hasListeners()) {\n      unSubscribeQueryInfo?.()\n      unSubscribeQueryInfo = queryInfo.subscribe(obsQuery)\n    }\n  }\n\n  const destroy = () => {\n    unSubscribeQueryInfo?.()\n    unSubscribeQueryInfo = UNDEFINED\n    listeners.clear()\n    clearStaleTimeout()\n    clearRefetchInterval()\n  }\n\n  const setOptions = (\n    newOptions?: Partial<\n      ObservableQueryOptions<TFetcherData, TVars, TError, TQueryData, TData>\n    >,\n    notifyOptions?: NotifyOptions\n  ) => {\n    const prevOptions = options\n    const prevQueryInfo = currentQueryInfo\n\n    options = client.defaultQueryOptions(\n      newOptions as ObservableQueryOptions<\n        TFetcherData,\n        TVars,\n        TError,\n        TQueryData,\n        TData\n      >\n    )\n\n    if (!isUndefined(options.enabled) && !isBoolean(options.enabled)) {\n      throw new Error('Expected enabled to be a boolean')\n    }\n\n    // Keep previous query if the user does not supply one\n    if (!options.query) {\n      options.query = prevOptions.query\n    }\n\n    updateQueryInfo()\n\n    const mounted = hasListeners()\n\n    // Fetch if there are subscribers\n    if (\n      mounted &&\n      shouldFetchOptionally(\n        currentQueryInfo,\n        prevQueryInfo,\n        options,\n        prevOptions\n      )\n    ) {\n      executeFetch()\n    }\n\n    // Update result\n    updateResult(notifyOptions)\n\n    // Update stale interval if needed\n    if (\n      mounted &&\n      (currentQueryInfo !== prevQueryInfo ||\n        options.enabled !== prevOptions.enabled ||\n        options.staleTime !== prevOptions.staleTime)\n    ) {\n      updateStaleTimeout()\n    }\n\n    const nextRefetchInterval = computeRefetchInterval()\n\n    // Update refetch interval if needed\n    if (\n      mounted &&\n      (currentQueryInfo !== prevQueryInfo ||\n        options.enabled !== prevOptions.enabled ||\n        nextRefetchInterval !== currentRefetchInterval)\n    ) {\n      updateRefetchInterval(nextRefetchInterval)\n    }\n  }\n\n  const obsQuery = {\n    subscribe,\n    onQueryUpdate,\n    setOptions,\n    destroy,\n    refetch,\n    fetch,\n    updateResult,\n\n    getCurrentResult: () => currentResult,\n\n    shouldFetchOnReconnect: () =>\n      shouldFetchOn(currentQueryInfo, options, options.refetchOnReconnect),\n\n    shouldFetchOnWindowFocus: () =>\n      shouldFetchOn(currentQueryInfo, options, options.refetchOnWindowFocus),\n\n    getCurrentQueryInfo: () => currentQueryInfo,\n\n    getOptimisticResult: (\n      options: ObservableQueryOptions<\n        TFetcherData,\n        TVars,\n        TError,\n        TQueryData,\n        TData\n      >\n    ): ObservableQueryResult<TData, TError> => {\n      const queryInfo = client.getQueryCache().build(client, options)\n\n      const result = obsQuery.createResult(queryInfo, options)\n\n      if (!shallowEqualObjects(currentResult, result)) {\n        currentResult = result\n        currentResultOptions = options\n        currentResultState = currentQueryInfo.state\n      }\n      return result\n    },\n\n    trackResult: (\n      result: ObservableQueryResult<TData, TError>\n    ): ObservableQueryResult<TData, TError> => {\n      const trackedResult = {} as ObservableQueryResult<TData, TError>\n\n      Object.keys(result).forEach(key => {\n        Object.defineProperty(trackedResult, key, {\n          configurable: false,\n          enumerable: true,\n          get: () => {\n            trackedProps.add(key as keyof ObservableQueryResult<TData, TError>)\n            return result[key as keyof ObservableQueryResult<TData, TError>]\n          },\n        })\n      })\n\n      return trackedResult\n    },\n\n    fetchOptimistic(\n      options: ObservableQueryOptions<\n        TFetcherData,\n        TVars,\n        TError,\n        TQueryData,\n        TData\n      >\n    ): Promise<ObservableQueryResult<TData, TError>> {\n      const defaultedOptions = client.defaultQueryOptions(options)\n\n      const queryInfo = client.getQueryCache().build(client, defaultedOptions)\n      queryInfo.setIsFetchingOptimistic(true)\n\n      return queryInfo\n        .fetch()\n        .then(() => this.createResult(queryInfo, defaultedOptions))\n    },\n\n    // Expose for overwriting in inifite query\n    createResult: (\n      queryInfo: QueryInfo<TFetcherData, TVars, TError, TQueryData>,\n      options: ObservableQueryOptions<\n        TFetcherData,\n        TVars,\n        TError,\n        TQueryData,\n        TData\n      >\n    ): ObservableQueryResult<TData, TError> => {\n      const prevQueryInfo = currentQueryInfo\n      const prevOptions = options\n      const prevResult = currentResult\n      const prevResultState = currentResultState\n      const prevResultOptions = currentResultOptions\n\n      const { state } = queryInfo\n      let { error, fetchStatus, status } = state\n      let isPlaceholderData = false\n      let data: TData | undefined\n\n      if (options._optimisticResults) {\n        const mounted = hasListeners()\n\n        const fetchOnMount = !mounted && shouldFetchOnMount(queryInfo, options)\n\n        const fetchOptionally =\n          mounted &&\n          shouldFetchOptionally(queryInfo, prevQueryInfo, options, prevOptions)\n\n        if (fetchOnMount || fetchOptionally) {\n          fetchStatus = canFetch(queryInfo.options.networkMode)\n            ? 'fetching'\n            : 'paused'\n          if (!state.dataUpdatedAt) {\n            status = 'pending'\n          }\n        }\n      }\n\n      // Select data if needed\n      if (options.select && !isUndefined(state.data)) {\n        // Memoize select result\n        if (\n          prevResult &&\n          state.data === prevResultState?.data &&\n          options.select === prevResultOptions?.select\n        ) {\n          data = selectResult\n        } else {\n          try {\n            data = options.select(state.data)\n            data = replaceData(prevResult?.data, data, options)\n            selectResult = data\n            selectError = null\n          } catch (error) {\n            selectError = error 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        !isUndefined(options.placeholderData) &&\n        isUndefined(data) &&\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 = isFunction(options.placeholderData)\n            ? options.placeholderData(\n                lastQueryInfoWithDefinedData?.state.data,\n                lastQueryInfoWithDefinedData\n              )\n            : options.placeholderData\n          if (options.select && !isUndefined(placeholderData)) {\n            try {\n              placeholderData = options.select(placeholderData)\n              selectError = null\n            } catch (error) {\n              selectError = error as TError\n            }\n          }\n        }\n\n        if (!isUndefined(placeholderData)) {\n          status = 'success'\n          data = replaceData(\n            prevResult?.data,\n            placeholderData,\n            options\n          ) as TData\n          isPlaceholderData = true\n        }\n      }\n\n      if (selectError) {\n        error = selectError as any\n        data = selectResult\n        status = 'error'\n      }\n\n      const result = {\n        data,\n        error,\n        isLoading: status === 'pending',\n        isFetching: fetchStatus === 'fetching',\n        isPlaceholderData,\n        isStale: isStale(queryInfo, options),\n        refetch,\n      } as ObservableQueryResult<TData, TError>\n\n      return result\n    },\n\n    get options() {\n      return options\n    },\n  }\n\n  options.behavior?.(obsQuery)\n\n  // initialize\n  setOptions(initialOptions)\n\n  return obsQuery\n}\n\nconst shouldLoadOnMount = (\n  queryInfo: QueryInfo<any, any, any, any>,\n  options: ObservableQueryOptions<any, any, any, any>\n): boolean => {\n  return (\n    options.enabled !== false &&\n    !queryInfo.state.dataUpdatedAt &&\n    !(queryInfo.state.status === 'error' && options.retryOnMount === false)\n  )\n}\n\nconst shouldFetchOnMount = (\n  queryInfo: QueryInfo<any, any, any, any>,\n  options: ObservableQueryOptions<any, any, any, any>\n): boolean => {\n  return (\n    shouldLoadOnMount(queryInfo, options) ||\n    (queryInfo.state.dataUpdatedAt > 0 &&\n      shouldFetchOn(queryInfo, options, options.refetchOnMount))\n  )\n}\n\nconst shouldFetchOn = (\n  queryInfo: QueryInfo<any, any, any, any>,\n  options: ObservableQueryOptions<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 = isFunction(field) ? field(queryInfo) : field\n\n    return (\n      value === 'always' || (value !== false && isStale(queryInfo, options))\n    )\n  }\n  return false\n}\n\nconst shouldFetchOptionally = (\n  queryInfo: QueryInfo<any, any, any, any>,\n  prevQueryInfo: QueryInfo<any, any, any, any>,\n  options: ObservableQueryOptions<any, any, any, any>,\n  prevOptions: ObservableQueryOptions<any, any, any, any>\n): boolean => {\n  return (\n    options.enabled !== false &&\n    (queryInfo !== prevQueryInfo || prevOptions.enabled === false) &&\n    (!options.suspense || queryInfo.state.status !== 'error') &&\n    isStale(queryInfo, options)\n  )\n}\n\nconst isStale = (\n  queryInfo: QueryInfo<any, any, any, any>,\n  options: ObservableQueryOptions<any, any, any, any>\n): boolean => {\n  return queryInfo.isStaleByTime(options.staleTime)\n}\n"],"names":["createObservableQuery","client","initialOptions","options","currentQueryInfo","currentResult","currentResultState","currentResultOptions","lastQueryInfoWithDefinedData","selectError","selectResult","staleTimeoutId","refetchIntervalId","currentRefetchInterval","unSubscribeQueryInfo","trackedProps","Set","listeners","subscribe","hasListeners","createSubscribable","onSubscribe","size","obsQuery","shouldFetchOnMount","executeFetch","updateTimers","onUnsubscribe","destroy","fetchOptions","updateQueryInfo","promise","fetch","throwOnError","catch","noop","_fetchOptions$cancelR","cancelRefetch","then","updateResult","refetch","notifyOptions","prevResult","nextResult","createResult","state","shallowEqualObjects","isUndefined","data","defaultNotifyOptions","shouldNotifyListeners","includedProps","has","push","some","key","notify","onQueryUpdate","updateStaleTimeout","clearStaleTimeout","isServer","isStale","isValidTimeout","staleTime","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","computeRefetchInterval","_ref","isFunction","refetchInterval","updateRefetchInterval","nextInterval","clearRefetchInterval","enabled","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","UNDEFINED","clearInterval","forEach","listener","queryInfo","getQueryCache","build","clear","setOptions","newOptions","prevOptions","prevQueryInfo","defaultQueryOptions","isBoolean","Error","query","mounted","shouldFetchOptionally","nextRefetchInterval","getCurrentResult","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","getCurrentQueryInfo","getOptimisticResult","result","trackResult","trackedResult","Object","keys","defineProperty","configurable","enumerable","get","add","fetchOptimistic","defaultedOptions","setIsFetchingOptimistic","prevResultState","prevResultOptions","error","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","placeholderData","_lastQueryInfoWithDef","isLoading","isFetching","behavior","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}