{"version":3,"file":"useQuery-s9Gvfjnn.js","sources":["../../../node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","../../../node_modules/@apollo/client/react/hooks/internal/wrapHook.js","../../../node_modules/@apollo/client/react/hooks/useQuery.js"],"sourcesContent":["import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from \"rehackt\";\nimport { canUseLayoutEffect } from \"../../utilities/index.js\";\nvar didWarnUncachedGetSnapshot = false;\n// Prevent webpack from complaining about our feature detection of the\n// useSyncExternalStore property of the React namespace, which is expected not\n// to exist when using React 17 and earlier, and that's fine.\nvar uSESKey = \"useSyncExternalStore\";\nvar realHook = React[uSESKey];\n// Adapted from https://www.npmjs.com/package/use-sync-external-store, with\n// Apollo Client deviations called out by \"// DEVIATION ...\" comments.\n// When/if React.useSyncExternalStore is defined, delegate fully to it.\nexport var useSyncExternalStore = realHook ||\n (function (subscribe, getSnapshot, getServerSnapshot) {\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n var value = getSnapshot();\n if (\n // DEVIATION: Using __DEV__\n globalThis.__DEV__ !== false &&\n !didWarnUncachedGetSnapshot &&\n // DEVIATION: Not using Object.is because we know our snapshots will never\n // be exotic primitive values like NaN, which is !== itself.\n value !== getSnapshot()) {\n didWarnUncachedGetSnapshot = true;\n // DEVIATION: Using invariant.error instead of console.error directly.\n globalThis.__DEV__ !== false && invariant.error(60);\n }\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n var _a = React.useState({\n inst: { value: value, getSnapshot: getSnapshot },\n }), inst = _a[0].inst, forceUpdate = _a[1];\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n if (canUseLayoutEffect) {\n // DEVIATION: We avoid calling useLayoutEffect when !canUseLayoutEffect,\n // which may seem like a conditional hook, but this code ends up behaving\n // unconditionally (one way or the other) because canUseLayoutEffect is\n // constant.\n React.useLayoutEffect(function () {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst: inst });\n }\n // React Hook React.useLayoutEffect has a missing dependency: 'inst'. Either include it or remove the dependency array.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n }\n else {\n Object.assign(inst, { value: value, getSnapshot: getSnapshot });\n }\n React.useEffect(function () {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst: inst });\n }\n // Subscribe to the store and return a clean-up function.\n return subscribe(function handleStoreChange() {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst: inst });\n }\n });\n // React Hook React.useEffect has a missing dependency: 'inst'. Either include it or remove the dependency array.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n return value;\n });\nfunction checkIfSnapshotChanged(_a) {\n var value = _a.value, getSnapshot = _a.getSnapshot;\n try {\n return value !== getSnapshot();\n }\n catch (_b) {\n return true;\n }\n}\n//# sourceMappingURL=useSyncExternalStore.js.map","var wrapperSymbol = Symbol.for(\"apollo.hook.wrappers\");\n/**\n * @internal\n *\n * Makes an Apollo Client hook \"wrappable\".\n * That means that the Apollo Client instance can expose a \"wrapper\" that will be\n * used to wrap the original hook implementation with additional logic.\n * @example\n * ```tsx\n * // this is already done in `@apollo/client` for all wrappable hooks (see `WrappableHooks`)\n * // following this pattern\n * function useQuery() {\n * return wrapHook('useQuery', _useQuery, options.client)(query, options);\n * }\n * function _useQuery(query, options) {\n * // original implementation\n * }\n *\n * // this is what a library like `@apollo/client-react-streaming` would do\n * class ApolloClientWithStreaming extends ApolloClient {\n * constructor(options) {\n * super(options);\n * this.queryManager[Symbol.for(\"apollo.hook.wrappers\")] = {\n * useQuery: (original) => (query, options) => {\n * console.log(\"useQuery was called with options\", options);\n * return original(query, options);\n * }\n * }\n * }\n * }\n *\n * // this will now log the options and then call the original `useQuery`\n * const client = new ApolloClientWithStreaming({ ... });\n * useQuery(query, { client });\n * ```\n */\nexport function wrapHook(hookName, useHook, clientOrObsQuery) {\n var queryManager = clientOrObsQuery[\"queryManager\"];\n var wrappers = queryManager && queryManager[wrapperSymbol];\n var wrapper = wrappers && wrappers[hookName];\n return wrapper ? wrapper(useHook) : useHook;\n}\n//# sourceMappingURL=wrapHook.js.map","import { __assign, __rest } from \"tslib\";\n/**\n * Function parameters in this file try to follow a common order for the sake of\n * readability and consistency. The order is as follows:\n *\n * resultData\n * observable\n * client\n * query\n * options\n * watchQueryOptions\n * makeWatchQueryOptions\n * isSSRAllowed\n * disableNetworkFetches\n * partialRefetch\n * renderPromises\n * isSyncSSR\n * callbacks\n */\n/** */\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from \"rehackt\";\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\nimport { equal } from \"@wry/equality\";\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus } from \"../../core/index.js\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { compact, isNonEmptyArray, maybeDeepFreeze, } from \"../../utilities/index.js\";\nimport { wrapHook } from \"./internal/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction noop() { }\nexport var lastWatchOptions = Symbol();\n/**\n * A hook for executing queries in an Apollo application.\n *\n * To run a query within a React component, call `useQuery` and pass it a GraphQL query document.\n *\n * When your component renders, `useQuery` returns an object from Apollo Client that contains `loading`, `error`, and `data` properties you can use to render your UI.\n *\n * > Refer to the [Queries](https://www.apollographql.com/docs/react/data/queries) section for a more in-depth overview of `useQuery`.\n *\n * @example\n * ```jsx\n * import { gql, useQuery } from '@apollo/client';\n *\n * const GET_GREETING = gql`\n * query GetGreeting($language: String!) {\n * greeting(language: $language) {\n * message\n * }\n * }\n * `;\n *\n * function Hello() {\n * const { loading, error, data } = useQuery(GET_GREETING, {\n * variables: { language: 'english' },\n * });\n * if (loading) return <p>Loading ...</p>;\n * return <h1>Hello {data.greeting.message}!</h1>;\n * }\n * ```\n * @since 3.0.0\n * @param query - A GraphQL query document parsed into an AST by `gql`.\n * @param options - Options to control how the query is executed.\n * @returns Query result object\n */\nexport function useQuery(query, options) {\n if (options === void 0) { options = Object.create(null); }\n return wrapHook(\"useQuery\", _useQuery, useApolloClient(options && options.client))(query, options);\n}\nfunction _useQuery(query, options) {\n var _a = useQueryInternals(query, options), result = _a.result, obsQueryFields = _a.obsQueryFields;\n return React.useMemo(function () { return (__assign(__assign({}, result), obsQueryFields)); }, [result, obsQueryFields]);\n}\nfunction useInternalState(client, query, options, renderPromises, makeWatchQueryOptions) {\n function createInternalState(previous) {\n var _a;\n verifyDocumentType(query, DocumentType.Query);\n var internalState = {\n client: client,\n query: query,\n observable: \n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n (renderPromises &&\n renderPromises.getSSRObservable(makeWatchQueryOptions())) ||\n client.watchQuery(getObsQueryOptions(void 0, client, options, makeWatchQueryOptions())),\n resultData: {\n // Reuse previousData from previous InternalState (if any) to provide\n // continuity of previousData even if/when the query or client changes.\n previousData: (_a = previous === null || previous === void 0 ? void 0 : previous.resultData.current) === null || _a === void 0 ? void 0 : _a.data,\n },\n };\n return internalState;\n }\n var _a = React.useState(createInternalState), internalState = _a[0], updateInternalState = _a[1];\n /**\n * Used by `useLazyQuery` when a new query is executed.\n * We keep this logic here since it needs to update things in unsafe\n * ways and here we at least can keep track of that in a single place.\n */\n function onQueryExecuted(watchQueryOptions) {\n var _a;\n var _b;\n // this needs to be set to prevent an immediate `resubscribe` in the\n // next rerender of the `useQuery` internals\n Object.assign(internalState.observable, (_a = {},\n _a[lastWatchOptions] = watchQueryOptions,\n _a));\n var resultData = internalState.resultData;\n updateInternalState(__assign(__assign({}, internalState), { \n // might be a different query\n query: watchQueryOptions.query, resultData: Object.assign(resultData, {\n // We need to modify the previous `resultData` object as we rely on the\n // object reference in other places\n previousData: ((_b = resultData.current) === null || _b === void 0 ? void 0 : _b.data) || resultData.previousData,\n current: undefined,\n }) }));\n }\n if (client !== internalState.client || query !== internalState.query) {\n // If the client or query have changed, we need to create a new InternalState.\n // This will trigger a re-render with the new state, but it will also continue\n // to run the current render function to completion.\n // Since we sometimes trigger some side-effects in the render function, we\n // re-assign `state` to the new state to ensure that those side-effects are\n // triggered with the new state.\n var newInternalState = createInternalState(internalState);\n updateInternalState(newInternalState);\n return [newInternalState, onQueryExecuted];\n }\n return [internalState, onQueryExecuted];\n}\nexport function useQueryInternals(query, options) {\n var client = useApolloClient(options.client);\n var renderPromises = React.useContext(getApolloContext()).renderPromises;\n var isSyncSSR = !!renderPromises;\n var disableNetworkFetches = client.disableNetworkFetches;\n var ssrAllowed = options.ssr !== false && !options.skip;\n var partialRefetch = options.partialRefetch;\n var makeWatchQueryOptions = createMakeWatchQueryOptions(client, query, options, isSyncSSR);\n var _a = useInternalState(client, query, options, renderPromises, makeWatchQueryOptions), _b = _a[0], observable = _b.observable, resultData = _b.resultData, onQueryExecuted = _a[1];\n var watchQueryOptions = makeWatchQueryOptions(observable);\n useResubscribeIfNecessary(resultData, // might get mutated during render\n observable, // might get mutated during render\n client, options, watchQueryOptions);\n var obsQueryFields = React.useMemo(function () { return bindObservableMethods(observable); }, [observable]);\n useRegisterSSRObservable(observable, renderPromises, ssrAllowed);\n var result = useObservableSubscriptionResult(resultData, observable, client, options, watchQueryOptions, disableNetworkFetches, partialRefetch, isSyncSSR, {\n onCompleted: options.onCompleted || noop,\n onError: options.onError || noop,\n });\n return {\n result: result,\n obsQueryFields: obsQueryFields,\n observable: observable,\n resultData: resultData,\n client: client,\n onQueryExecuted: onQueryExecuted,\n };\n}\nfunction useObservableSubscriptionResult(resultData, observable, client, options, watchQueryOptions, disableNetworkFetches, partialRefetch, isSyncSSR, callbacks) {\n var callbackRef = React.useRef(callbacks);\n React.useEffect(function () {\n // Make sure state.onCompleted and state.onError always reflect the latest\n // options.onCompleted and options.onError callbacks provided to useQuery,\n // since those functions are often recreated every time useQuery is called.\n // Like the forceUpdate method, the versions of these methods inherited from\n // InternalState.prototype are empty no-ops, but we can override them on the\n // base state object (without modifying the prototype).\n callbackRef.current = callbacks;\n });\n var resultOverride = ((isSyncSSR || disableNetworkFetches) &&\n options.ssr === false &&\n !options.skip) ?\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n ssrDisabledResult\n : options.skip || watchQueryOptions.fetchPolicy === \"standby\" ?\n // When skipping a query (ie. we're not querying for data but still want to\n // render children), make sure the `data` is cleared out and `loading` is\n // set to `false` (since we aren't loading anything).\n //\n // NOTE: We no longer think this is the correct behavior. Skipping should\n // not automatically set `data` to `undefined`, but instead leave the\n // previous data in place. In other words, skipping should not mandate that\n // previously received data is all of a sudden removed. Unfortunately,\n // changing this is breaking, so we'll have to wait until Apollo Client 4.0\n // to address this.\n skipStandbyResult\n : void 0;\n var previousData = resultData.previousData;\n var currentResultOverride = React.useMemo(function () {\n return resultOverride &&\n toQueryResult(resultOverride, previousData, observable, client);\n }, [client, observable, resultOverride, previousData]);\n return useSyncExternalStore(React.useCallback(function (handleStoreChange) {\n // reference `disableNetworkFetches` here to ensure that the rules of hooks\n // keep it as a dependency of this effect, even though it's not used\n disableNetworkFetches;\n if (isSyncSSR) {\n return function () { };\n }\n var onNext = function () {\n var previousResult = resultData.current;\n // We use `getCurrentResult()` instead of the onNext argument because\n // the values differ slightly. Specifically, loading results will have\n // an empty object for data instead of `undefined` for some reason.\n var result = observable.getCurrentResult();\n // Make sure we're not attempting to re-render similar results\n if (previousResult &&\n previousResult.loading === result.loading &&\n previousResult.networkStatus === result.networkStatus &&\n equal(previousResult.data, result.data)) {\n return;\n }\n setResult(result, resultData, observable, client, partialRefetch, handleStoreChange, callbackRef.current);\n };\n var onError = function (error) {\n subscription.current.unsubscribe();\n subscription.current = observable.resubscribeAfterError(onNext, onError);\n if (!hasOwnProperty.call(error, \"graphQLErrors\")) {\n // The error is not a GraphQL error\n throw error;\n }\n var previousResult = resultData.current;\n if (!previousResult ||\n (previousResult && previousResult.loading) ||\n !equal(error, previousResult.error)) {\n setResult({\n data: (previousResult && previousResult.data),\n error: error,\n loading: false,\n networkStatus: NetworkStatus.error,\n }, resultData, observable, client, partialRefetch, handleStoreChange, callbackRef.current);\n }\n };\n // TODO evaluate if we keep this in\n // React Compiler cannot handle scoped `let` access, but a mutable object\n // like this is fine.\n // was:\n // let subscription = observable.subscribe(onNext, onError);\n var subscription = { current: observable.subscribe(onNext, onError) };\n // Do the \"unsubscribe\" with a short delay.\n // This way, an existing subscription can be reused without an additional\n // request if \"unsubscribe\" and \"resubscribe\" to the same ObservableQuery\n // happen in very fast succession.\n return function () {\n setTimeout(function () { return subscription.current.unsubscribe(); });\n };\n }, [\n disableNetworkFetches,\n isSyncSSR,\n observable,\n resultData,\n partialRefetch,\n client,\n ]), function () {\n return currentResultOverride ||\n getCurrentResult(resultData, observable, callbackRef.current, partialRefetch, client);\n }, function () {\n return currentResultOverride ||\n getCurrentResult(resultData, observable, callbackRef.current, partialRefetch, client);\n });\n}\nfunction useRegisterSSRObservable(observable, renderPromises, ssrAllowed) {\n if (renderPromises && ssrAllowed) {\n renderPromises.registerSSRObservable(observable);\n if (observable.getCurrentResult().loading) {\n // TODO: This is a legacy API which could probably be cleaned up\n renderPromises.addObservableQueryPromise(observable);\n }\n }\n}\n// this hook is not compatible with any rules of React, and there's no good way to rewrite it.\n// it should stay a separate hook that will not be optimized by the compiler\nfunction useResubscribeIfNecessary(\n/** this hook will mutate properties on `resultData` */\nresultData, \n/** this hook will mutate properties on `observable` */\nobservable, client, options, watchQueryOptions) {\n var _a;\n if (observable[lastWatchOptions] &&\n !equal(observable[lastWatchOptions], watchQueryOptions)) {\n // Though it might be tempting to postpone this reobserve call to the\n // useEffect block, we need getCurrentResult to return an appropriate\n // loading:true result synchronously (later within the same call to\n // useQuery). Since we already have this.observable here (not true for\n // the very first call to useQuery), we are not initiating any new\n // subscriptions, though it does feel less than ideal that reobserve\n // (potentially) kicks off a network request (for example, when the\n // variables have changed), which is technically a side-effect.\n observable.reobserve(getObsQueryOptions(observable, client, options, watchQueryOptions));\n // Make sure getCurrentResult returns a fresh ApolloQueryResult<TData>,\n // but save the current data as this.previousData, just like setResult\n // usually does.\n resultData.previousData =\n ((_a = resultData.current) === null || _a === void 0 ? void 0 : _a.data) || resultData.previousData;\n resultData.current = void 0;\n }\n observable[lastWatchOptions] = watchQueryOptions;\n}\n/*\n * A function to massage options before passing them to ObservableQuery.\n * This is two-step curried because we want to reuse the `make` function,\n * but the `observable` might differ between calls to `make`.\n */\nexport function createMakeWatchQueryOptions(client, query, _a, isSyncSSR) {\n if (_a === void 0) { _a = {}; }\n var skip = _a.skip, ssr = _a.ssr, onCompleted = _a.onCompleted, onError = _a.onError, defaultOptions = _a.defaultOptions, \n // The above options are useQuery-specific, so this ...otherOptions spread\n // makes otherOptions almost a WatchQueryOptions object, except for the\n // query property that we add below.\n otherOptions = __rest(_a, [\"skip\", \"ssr\", \"onCompleted\", \"onError\", \"defaultOptions\"]);\n return function (observable) {\n // This Object.assign is safe because otherOptions is a fresh ...rest object\n // that did not exist until just now, so modifications are still allowed.\n var watchQueryOptions = Object.assign(otherOptions, { query: query });\n if (isSyncSSR &&\n (watchQueryOptions.fetchPolicy === \"network-only\" ||\n watchQueryOptions.fetchPolicy === \"cache-and-network\")) {\n // this behavior was added to react-apollo without explanation in this PR\n // https://github.com/apollographql/react-apollo/pull/1579\n watchQueryOptions.fetchPolicy = \"cache-first\";\n }\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {};\n }\n if (skip) {\n // When skipping, we set watchQueryOptions.fetchPolicy initially to\n // \"standby\", but we also need/want to preserve the initial non-standby\n // fetchPolicy that would have been used if not skipping.\n watchQueryOptions.initialFetchPolicy =\n watchQueryOptions.initialFetchPolicy ||\n watchQueryOptions.fetchPolicy ||\n getDefaultFetchPolicy(defaultOptions, client.defaultOptions);\n watchQueryOptions.fetchPolicy = \"standby\";\n }\n else if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy =\n (observable === null || observable === void 0 ? void 0 : observable.options.initialFetchPolicy) ||\n getDefaultFetchPolicy(defaultOptions, client.defaultOptions);\n }\n return watchQueryOptions;\n };\n}\nexport function getObsQueryOptions(observable, client, queryHookOptions, watchQueryOptions) {\n var toMerge = [];\n var globalDefaults = client.defaultOptions.watchQuery;\n if (globalDefaults)\n toMerge.push(globalDefaults);\n if (queryHookOptions.defaultOptions) {\n toMerge.push(queryHookOptions.defaultOptions);\n }\n // We use compact rather than mergeOptions for this part of the merge,\n // because we want watchQueryOptions.variables (if defined) to replace\n // this.observable.options.variables whole. This replacement allows\n // removing variables by removing them from the variables input to\n // useQuery. If the variables were always merged together (rather than\n // replaced), there would be no way to remove existing variables.\n // However, the variables from options.defaultOptions and globalDefaults\n // (if provided) should be merged, to ensure individual defaulted\n // variables always have values, if not otherwise defined in\n // observable.options or watchQueryOptions.\n toMerge.push(compact(observable && observable.options, watchQueryOptions));\n return toMerge.reduce(mergeOptions);\n}\nfunction setResult(nextResult, resultData, observable, client, partialRefetch, forceUpdate, callbacks) {\n var previousResult = resultData.current;\n if (previousResult && previousResult.data) {\n resultData.previousData = previousResult.data;\n }\n if (!nextResult.error && isNonEmptyArray(nextResult.errors)) {\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n // TODO: Is it possible for both result.error and result.errors to be\n // defined here?\n nextResult.error = new ApolloError({ graphQLErrors: nextResult.errors });\n }\n resultData.current = toQueryResult(unsafeHandlePartialRefetch(nextResult, observable, partialRefetch), resultData.previousData, observable, client);\n // Calling state.setResult always triggers an update, though some call sites\n // perform additional equality checks before committing to an update.\n forceUpdate();\n handleErrorOrCompleted(nextResult, previousResult === null || previousResult === void 0 ? void 0 : previousResult.networkStatus, callbacks);\n}\nfunction handleErrorOrCompleted(result, previousNetworkStatus, callbacks) {\n if (!result.loading) {\n var error_1 = toApolloError(result);\n // wait a tick in case we are in the middle of rendering a component\n Promise.resolve()\n .then(function () {\n if (error_1) {\n callbacks.onError(error_1);\n }\n else if (result.data &&\n previousNetworkStatus !== result.networkStatus &&\n result.networkStatus === NetworkStatus.ready) {\n callbacks.onCompleted(result.data);\n }\n })\n .catch(function (error) {\n globalThis.__DEV__ !== false && invariant.warn(error);\n });\n }\n}\nfunction getCurrentResult(resultData, observable, callbacks, partialRefetch, client) {\n // Using this.result as a cache ensures getCurrentResult continues returning\n // the same (===) result object, unless state.setResult has been called, or\n // we're doing server rendering and therefore override the result below.\n if (!resultData.current) {\n // WARNING: SIDE-EFFECTS IN THE RENDER FUNCTION\n // this could call unsafeHandlePartialRefetch\n setResult(observable.getCurrentResult(), resultData, observable, client, partialRefetch, function () { }, callbacks);\n }\n return resultData.current;\n}\nexport function getDefaultFetchPolicy(queryHookDefaultOptions, clientDefaultOptions) {\n var _a;\n return ((queryHookDefaultOptions === null || queryHookDefaultOptions === void 0 ? void 0 : queryHookDefaultOptions.fetchPolicy) ||\n ((_a = clientDefaultOptions === null || clientDefaultOptions === void 0 ? void 0 : clientDefaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||\n \"cache-first\");\n}\nexport function toApolloError(result) {\n return isNonEmptyArray(result.errors) ?\n new ApolloError({ graphQLErrors: result.errors })\n : result.error;\n}\nexport function toQueryResult(result, previousData, observable, client) {\n var data = result.data, partial = result.partial, resultWithoutPartial = __rest(result, [\"data\", \"partial\"]);\n var queryResult = __assign(__assign({ data: data }, resultWithoutPartial), { client: client, observable: observable, variables: observable.variables, called: result !== ssrDisabledResult && result !== skipStandbyResult, previousData: previousData });\n return queryResult;\n}\nfunction unsafeHandlePartialRefetch(result, observable, partialRefetch) {\n // TODO: This code should be removed when the partialRefetch option is\n // removed. I was unable to get this hook to behave reasonably in certain\n // edge cases when this block was put in an effect.\n if (result.partial &&\n partialRefetch &&\n !result.loading &&\n (!result.data || Object.keys(result.data).length === 0) &&\n observable.options.fetchPolicy !== \"cache-only\") {\n observable.refetch();\n return __assign(__assign({}, result), { loading: true, networkStatus: NetworkStatus.refetch });\n }\n return result;\n}\nvar ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.loading,\n});\nvar skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.ready,\n});\nfunction bindObservableMethods(observable) {\n return {\n refetch: observable.refetch.bind(observable),\n reobserve: observable.reobserve.bind(observable),\n fetchMore: observable.fetchMore.bind(observable),\n updateQuery: observable.updateQuery.bind(observable),\n startPolling: observable.startPolling.bind(observable),\n stopPolling: observable.stopPolling.bind(observable),\n subscribeToMore: observable.subscribeToMore.bind(observable),\n };\n}\n//# sourceMappingURL=useQuery.js.map"],"names":["didWarnUncachedGetSnapshot","uSESKey","realHook","React","useSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","value","invariant","_a","React.useState","inst","forceUpdate","canUseLayoutEffect","React.useLayoutEffect","checkIfSnapshotChanged","React.useEffect","wrapperSymbol","wrapHook","hookName","useHook","clientOrObsQuery","queryManager","wrappers","wrapper","hasOwnProperty","noop","lastWatchOptions","useQuery","query","options","_useQuery","useApolloClient","useQueryInternals","result","obsQueryFields","React.useMemo","__assign","useInternalState","client","renderPromises","makeWatchQueryOptions","createInternalState","previous","verifyDocumentType","DocumentType","internalState","getObsQueryOptions","updateInternalState","onQueryExecuted","watchQueryOptions","_b","resultData","newInternalState","React.useContext","getApolloContext","isSyncSSR","disableNetworkFetches","ssrAllowed","partialRefetch","createMakeWatchQueryOptions","observable","useResubscribeIfNecessary","bindObservableMethods","useRegisterSSRObservable","useObservableSubscriptionResult","callbacks","callbackRef","React.useRef","resultOverride","ssrDisabledResult","skipStandbyResult","previousData","currentResultOverride","toQueryResult","React.useCallback","handleStoreChange","onNext","previousResult","equal","setResult","onError","error","subscription","NetworkStatus","getCurrentResult","skip","defaultOptions","otherOptions","__rest","getDefaultFetchPolicy","queryHookOptions","toMerge","globalDefaults","compact","mergeOptions","nextResult","isNonEmptyArray","ApolloError","unsafeHandlePartialRefetch","handleErrorOrCompleted","previousNetworkStatus","error_1","toApolloError","queryHookDefaultOptions","clientDefaultOptions","data","resultWithoutPartial","queryResult","maybeDeepFreeze"],"mappings":"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","x_google_ignoreList":[0,1,2]}