@apollo/client 3.3.12 → 3.3.13

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":"QueryManager.js","sourceRoot":"","sources":["../../src/core/QueryManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { equal } from '@wry/equality';\n\nimport { ApolloLink, execute, FetchResult } from '../link/core';\nimport { Cache, ApolloCache } from '../cache';\n\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n ObservableSubscription,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n ConcastSourcesIterable,\n} from '../utilities';\nimport { ApolloError, isApolloError } from '../errors';\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n ApolloQueryResult,\n OperationVariables,\n} from './types';\nimport { LocalState } from './LocalState';\n\nimport { QueryInfo, QueryStoreValue, shouldWriteResult } from './QueryInfo';\n\nconst { hasOwnProperty } = Object.prototype;\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record<string, any>;\n loading: boolean;\n error: Error | null;\n}\n\nexport class QueryManager<TStore> {\n public cache: ApolloCache<TStore>;\n public link: ApolloLink;\n public readonly assumeImmutableResults: boolean;\n public readonly ssrMode: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record<string, string> = {};\n private localState: LocalState<TStore>;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map<string, QueryInfo>();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n private fetchCancelFns = new Map<string, (error: any) => any>();\n\n constructor({\n cache,\n link,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n cache: ApolloCache<TStore>;\n link: ApolloLink;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record<string, string>;\n localState?: LocalState<TStore>;\n assumeImmutableResults?: boolean;\n }) {\n this.cache = cache;\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach(cancel => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<T>({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n errorPolicy = 'none',\n fetchPolicy,\n context = {},\n }: MutationOptions): Promise<FetchResult<T>> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n !fetchPolicy || fetchPolicy === 'no-cache',\n \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\"\n );\n\n const mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n\n variables = this.getVariables(mutation, variables);\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context);\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n if (optimisticResponse) {\n this.markMutationOptimistic<T>(optimisticResponse, {\n mutationId,\n document: mutation,\n variables,\n errorPolicy,\n updateQueries,\n update: updateWithProxyFn,\n });\n }\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n let storeResult: FetchResult<T> | null;\n let error: ApolloError;\n\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ).subscribe({\n next(result: FetchResult<T>) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n if (fetchPolicy !== 'no-cache') {\n try {\n self.markMutationResult<T>({\n mutationId,\n result,\n document: mutation,\n variables,\n errorPolicy,\n updateQueries,\n update: updateWithProxyFn,\n });\n } catch (e) {\n error = new ApolloError({\n networkError: e,\n });\n return;\n }\n }\n\n storeResult = result;\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(\n new ApolloError({\n networkError: err,\n }),\n );\n },\n\n complete() {\n if (error && mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = error;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n // allow for conditional refetches\n // XXX do we want to make this the only API one day?\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult!);\n }\n\n const refetchQueryPromises: Promise<\n ApolloQueryResult<any>[] | ApolloQueryResult<{}>\n >[] = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(refetchQuery => {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(({ observableQuery }) => {\n if (observableQuery &&\n observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n const queryOptions: QueryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(\n awaitRefetchQueries ? refetchQueryPromises : [],\n ).then(() => {\n if (\n errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)\n ) {\n delete storeResult.errors;\n }\n\n resolve(storeResult!);\n }, reject);\n },\n });\n });\n }\n\n public markMutationResult<TData>(\n mutation: {\n mutationId: string;\n result: FetchResult<TData>;\n document: DocumentNode;\n variables?: OperationVariables;\n errorPolicy: ErrorPolicy;\n updateQueries: MutationOptions<TData>[\"updateQueries\"],\n update?: (\n cache: ApolloCache<TStore>,\n result: FetchResult<TData>,\n ) => void;\n },\n cache = this.cache,\n ) {\n if (shouldWriteResult(mutation.result, mutation.errorPolicy)) {\n const cacheWrites: Cache.WriteOptions[] = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n }];\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff<TData>({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document!,\n variables,\n });\n }\n }\n });\n }\n\n cache.performTransaction(c => {\n cacheWrites.forEach(write => c.write(write));\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with a\n // write action.\n const { update } = mutation;\n if (update) {\n update(c, mutation.result);\n }\n }, /* non-optimistic transaction: */ null);\n }\n }\n\n public markMutationOptimistic<TData>(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: OperationVariables;\n errorPolicy: ErrorPolicy;\n updateQueries: MutationOptions<TData>[\"updateQueries\"],\n update?: (\n cache: ApolloCache<TStore>,\n result: FetchResult<TData>,\n ) => void;\n },\n ) {\n const data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n\n return this.cache.recordOptimisticTransaction(cache => {\n try {\n this.markMutationResult<TData>({\n ...mutation,\n result: { data },\n }, cache);\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n }\n\n public fetchQuery<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n networkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n return this.fetchQueryObservable<TData, TVars>(\n queryId,\n options,\n networkStatus,\n ).promise;\n }\n\n public getQueryStore() {\n const store: Record<string, QueryStoreValue> = Object.create(null);\n this.queries.forEach((info, queryId) => {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n }\n\n public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n private transformCache = new (canUseWeakMap ? WeakMap : Map)<\n DocumentNode,\n Readonly<{\n document: Readonly<DocumentNode>;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: Readonly<DocumentNode> | null;\n serverQuery: Readonly<DocumentNode> | null;\n defaultVars: Readonly<OperationVariables>;\n }>\n >();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const transformed = this.cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n this.cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = forLink && this.localState.serverQuery(forLink);\n\n const cacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: OperationVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<T, TVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n // assign variable default values if supplied\n options = {\n ...options,\n variables: this.getVariables(\n options.query,\n options.variables,\n ) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this.cache);\n const observable = new ObservableQuery<T, TVariables>({\n queryManager: this,\n queryInfo,\n options,\n });\n\n this.queries.set(observable.queryId, queryInfo);\n\n queryInfo.init({\n document: options.query,\n observableQuery: observable,\n variables: options.variables,\n });\n\n return observable;\n }\n\n public query<TData, TVars = OperationVariables>(\n options: QueryOptions<TVars, TData>,\n ): Promise<ApolloQueryResult<TData>> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n const queryId = this.generateQueryId();\n return this.fetchQuery<TData, TVars>(\n queryId,\n options,\n ).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(): Promise<void> {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n\n this.queries.forEach(queryInfo => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n // begin removing data from the store\n return this.cache.reset();\n }\n\n public resetStore(): Promise<ApolloQueryResult<any>[]> {\n // Similarly, we have to have to refetch each of the queries currently being\n // observed. We refetch instead of error'ing on these since the assumption is that\n // resetting the store doesn't eliminate the need for the queries currently being\n // watched. If there is an existing query in flight when the store is reset,\n // the promise for it will be rejected and its results will not be written to the\n // store.\n return this.clearStore().then(() => {\n return this.reFetchObservableQueries();\n });\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise<ApolloQueryResult<any>[]> {\n const observableQueryPromises: Promise<ApolloQueryResult<any>>[] = [];\n\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery && observableQuery.hasObservers()) {\n const fetchPolicy = observableQuery.options.fetchPolicy;\n\n observableQuery.resetLastResults();\n if (\n fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n this.getQuery(queryId).setDiff(null);\n }\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery<any, any>) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription<T = any>({\n query,\n fetchPolicy,\n errorPolicy,\n variables,\n context = {},\n }: SubscriptionOptions): Observable<FetchResult<T>> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink<T>(\n query,\n context,\n variables,\n false,\n ).map(result => {\n if (fetchPolicy !== 'no-cache') {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n context,\n ).then(makeObservable);\n\n return new Observable<FetchResult<T>>(observer => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(info => info.notify());\n }\n\n public getLocalState(): LocalState<TStore> {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map<string, Observable<FetchResult>>\n >();\n\n private getObservableFromLink<T = any>(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean =\n // Prefer context.queryDeduplication if specified.\n context?.queryDeduplication ??\n this.queryDeduplication,\n ): Observable<FetchResult<T>> {\n let observable: Observable<FetchResult<T>>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = JSON.stringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n\n byVariables.set(varJson, observable = concast);\n\n concast.cleanup(() => {\n if (byVariables.delete(varJson) &&\n byVariables.size < 1) {\n inFlightLinkObservables.delete(serverQuery);\n }\n });\n }\n\n } else {\n observable = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n }\n } else {\n observable = new Concast([\n Observable.of({ data: {} } as FetchResult<T>)\n ]);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink<TData, TVars>(\n queryInfo: QueryInfo,\n allowCacheWrite: boolean,\n options: Pick<WatchQueryOptions<TVars, TData>,\n | \"variables\"\n | \"context\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n ): Observable<ApolloQueryResult<TData>> {\n const { lastRequestId } = queryInfo;\n\n return asyncMap(\n this.getObservableFromLink(\n queryInfo.document!,\n options.context,\n options.variables,\n ),\n\n result => {\n const hasErrors = isNonEmptyArray(result.errors);\n\n if (lastRequestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n queryInfo.markResult(result, options, allowCacheWrite);\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult<TData> = {\n data: result.data,\n loading: false,\n networkStatus: queryInfo.networkStatus || NetworkStatus.ready,\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n }\n\n return aqr;\n },\n\n networkError => {\n const error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError });\n\n if (lastRequestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n },\n );\n }\n\n public fetchQueryObservable<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n ): Concast<ApolloQueryResult<TData>> {\n const query = this.transform(options.query).document;\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n const oldNetworkStatus = queryInfo.networkStatus;\n\n let {\n fetchPolicy = \"cache-first\" as WatchQueryFetchPolicy,\n errorPolicy = \"none\" as ErrorPolicy,\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const mightUseNetwork =\n fetchPolicy === \"cache-first\" ||\n fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\" ||\n fetchPolicy === \"no-cache\";\n\n if (mightUseNetwork &&\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus)) {\n // In order to force delivery of an incomplete cache result with\n // loading:true, we tweak the fetchPolicy to include the cache, and\n // pretend that returnPartialData was enabled.\n if (fetchPolicy !== \"cache-first\") {\n fetchPolicy = \"cache-and-network\";\n }\n returnPartialData = true;\n }\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n return this.fetchQueryByPolicy<TData, TVars>(\n queryInfo,\n normalized,\n networkStatus,\n );\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n this.fetchCancelFns.set(queryId, reason => {\n // Delaying the cancellation using a Promise ensures that the\n // concast variable has been initialized.\n Promise.resolve().then(() => concast.cancel(reason));\n });\n\n // A Concast<T> can be created either from an Iterable<Observable<T>>\n // or from a PromiseLike<Iterable<Observable<T>>>, where T in this\n // case is ApolloQueryResult<TData>.\n const concast = new Concast(\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context,\n ).then(fromVariables)\n : fromVariables(normalized.variables!)\n );\n\n concast.cleanup(() => {\n this.fetchCancelFns.delete(queryId);\n\n const { nextFetchPolicy } = options;\n if (nextFetchPolicy) {\n // The options.nextFetchPolicy transition should happen only once,\n // but it should be possible for a nextFetchPolicy function to set\n // this.nextFetchPolicy to perform an additional transition.\n options.nextFetchPolicy = void 0;\n\n // When someone chooses cache-and-network or network-only as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the cache-and-network or network-only policies would seem\n // to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete.\n // The options.nextFetchPolicy option provides an easy way to update\n // options.fetchPolicy after the intial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = typeof nextFetchPolicy === \"function\"\n ? nextFetchPolicy.call(options, options.fetchPolicy || \"cache-first\")\n : nextFetchPolicy;\n }\n });\n\n return concast;\n }\n\n private fetchQueryByPolicy<TData, TVars>(\n queryInfo: QueryInfo,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus,\n ): ConcastSourcesIterable<ApolloQueryResult<TData>> {\n const {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n context,\n } = options;\n\n queryInfo.init({\n document: query,\n variables,\n lastRequestId: this.generateRequestId(),\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff(variables);\n\n const resultsFromCache = (\n diff: Cache.DiffResult<TData>,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading,\n ) => {\n const data = diff.result as TData;\n\n if (process.env.NODE_ENV !== 'production' &&\n isNonEmptyArray(diff.missing) &&\n !equal(data, {}) &&\n !returnPartialData) {\n invariant.warn(`Missing cache result fields: ${\n diff.missing.map(m => m.path.join('.')).join(', ')\n }`, diff.missing);\n }\n\n const fromData = (data: TData) => Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult<TData>);\n\n if (this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then(resolved => fromData(resolved.data!));\n }\n\n return fromData(data);\n };\n\n const resultsFromLink = (allowCacheWrite: boolean) =>\n this.getResultsFromLink<TData, TVars>(queryInfo, allowCacheWrite, {\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n switch (fetchPolicy) {\n default: case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n\n if (returnPartialData) {\n return [\n resultsFromCache(diff),\n resultsFromLink(true),\n ];\n }\n\n return [\n resultsFromLink(true),\n ];\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData) {\n return [\n resultsFromCache(diff),\n resultsFromLink(true),\n ];\n }\n\n return [\n resultsFromLink(true),\n ];\n }\n\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n\n case \"network-only\":\n return [resultsFromLink(true)];\n\n case \"no-cache\":\n return [resultsFromLink(false)];\n\n case \"standby\":\n return [];\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this.cache));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"QueryManager.js","sourceRoot":"","sources":["../../src/core/QueryManager.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAc,OAAO,EAAe,MAAM,cAAc,CAAC;AAGhE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,qCAAqC,EACrC,aAAa,EAEb,UAAU,EACV,QAAQ,EACR,eAAe,EACf,OAAO,GAER,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AASvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAK1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAmB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpE,IAAA,cAAc,GAAK,MAAM,CAAC,SAAS,eAArB,CAAsB;AAS5C;IAuBE,sBAAY,EAkBX;YAjBC,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,0BAA0B,EAA1B,kBAAkB,mBAAG,KAAK,KAAA,EAC1B,WAAW,iBAAA,EACX,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,uBAAoB,EAApB,eAAe,mBAAG,EAAE,KAAA,EACpB,UAAU,gBAAA,EACV,sBAAsB,4BAAA;QAxBhB,oBAAe,GAA2B,EAAE,CAAC;QAU7C,YAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;QAIvC,mBAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;QA6XxD,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAUzD,CAAC;QAsHI,mBAAc,GAAG,CAAC,CAAC;QAKnB,qBAAgB,GAAG,CAAC,CAAC;QAKrB,sBAAiB,GAAG,CAAC,CAAC;QAgLtB,4BAAuB,GAAG,IAAI,GAAG,EAGtC,CAAC;QArqBF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,UAAU,CAAC,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,sBAAsB,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC;IAMM,2BAAI,GAAX;QAAA,iBAQC;QAPC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,OAAO;YAClC,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CACvB,IAAI,cAAc,CAAC,gDAAgD,CAAC,CACrE,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B,UAA6B,KAAY;QACvC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEY,6BAAM,GAAnB,UAAuB,EAWL;YAVhB,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,kBAAkB,wBAAA,EAClB,aAAa,mBAAA,EACb,sBAAmB,EAAnB,cAAc,mBAAG,EAAE,KAAA,EACnB,2BAA2B,EAA3B,mBAAmB,mBAAG,KAAK,KAAA,EACnB,iBAAiB,YAAA,EACzB,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,WAAW,iBAAA,EACX,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA;;;;;;wBAEZ,SAAS,CACP,QAAQ,EACR,6FAA6F,CAC9F,CAAC;wBAEF,SAAS,CACP,CAAC,WAAW,IAAI,WAAW,KAAK,UAAU,EAC1C,yKAAyK,CAC1K,CAAC;wBAEI,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC7C,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;wBAE7C,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;6BAE/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAzC,cAAyC;wBAC/B,WAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAA;;wBAApF,SAAS,GAAG,SAAwE,CAAC;;;wBAGjF,kBAAkB,GACtB,IAAI,CAAC,aAAa;4BAClB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG;gCAChC,QAAQ,UAAA;gCACR,SAAS,WAAA;gCACT,OAAO,EAAE,IAAI;gCACb,KAAK,EAAE,IAAI;6BACU,CAAC,CAAC;wBAE3B,IAAI,kBAAkB,EAAE;4BACtB,IAAI,CAAC,sBAAsB,CAAI,kBAAkB,EAAE;gCACjD,UAAU,YAAA;gCACV,QAAQ,EAAE,QAAQ;gCAClB,SAAS,WAAA;gCACT,WAAW,aAAA;gCACX,aAAa,eAAA;gCACb,MAAM,EAAE,iBAAiB;6BAC1B,CAAC,CAAC;yBACJ;wBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAElB,IAAI,GAAG,IAAI,CAAC;wBAElB,WAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gCACjC,IAAI,WAAkC,CAAC;gCACvC,IAAI,KAAkB,CAAC;gCAEvB,IAAI,CAAC,qBAAqB,CACxB,QAAQ,wBAEH,OAAO,KACV,kBAAkB,oBAAA,KAEpB,SAAS,EACT,KAAK,CACN,CAAC,SAAS,CAAC;oCACV,IAAI,EAAJ,UAAK,MAAsB;wCACzB,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,WAAW,KAAK,MAAM,EAAE;4CAC3D,KAAK,GAAG,IAAI,WAAW,CAAC;gDACtB,aAAa,EAAE,MAAM,CAAC,MAAM;6CAC7B,CAAC,CAAC;4CACH,OAAO;yCACR;wCAED,IAAI,kBAAkB,EAAE;4CACtB,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;4CACnC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC;yCACjC;wCAED,IAAI,WAAW,KAAK,UAAU,EAAE;4CAC9B,IAAI;gDACF,IAAI,CAAC,kBAAkB,CAAI;oDACzB,UAAU,YAAA;oDACV,MAAM,QAAA;oDACN,QAAQ,EAAE,QAAQ;oDAClB,SAAS,WAAA;oDACT,WAAW,aAAA;oDACX,aAAa,eAAA;oDACb,MAAM,EAAE,iBAAiB;iDAC1B,CAAC,CAAC;6CACJ;4CAAC,OAAO,CAAC,EAAE;gDACV,KAAK,GAAG,IAAI,WAAW,CAAC;oDACtB,YAAY,EAAE,CAAC;iDAChB,CAAC,CAAC;gDACH,OAAO;6CACR;yCACF;wCAED,WAAW,GAAG,MAAM,CAAC;oCACvB,CAAC;oCAED,KAAK,EAAL,UAAM,GAAU;wCACd,IAAI,kBAAkB,EAAE;4CACtB,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;4CACnC,kBAAkB,CAAC,KAAK,GAAG,GAAG,CAAC;yCAChC;wCACD,IAAI,kBAAkB,EAAE;4CACtB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;yCACzC;wCACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wCACxB,MAAM,CACJ,IAAI,WAAW,CAAC;4CACd,YAAY,EAAE,GAAG;yCAClB,CAAC,CACH,CAAC;oCACJ,CAAC;oCAED,QAAQ,EAAR;wCACE,IAAI,KAAK,IAAI,kBAAkB,EAAE;4CAC/B,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;4CACnC,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC;yCAClC;wCAED,IAAI,kBAAkB,EAAE;4CACtB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;yCACzC;wCAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;wCAExB,IAAI,KAAK,EAAE;4CACT,MAAM,CAAC,KAAK,CAAC,CAAC;4CACd,OAAO;yCACR;wCAID,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;4CACxC,cAAc,GAAG,cAAc,CAAC,WAAY,CAAC,CAAC;yCAC/C;wCAED,IAAM,oBAAoB,GAEpB,EAAE,CAAC;wCAET,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE;4CACnC,cAAc,CAAC,OAAO,CAAC,UAAA,YAAY;gDACjC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;oDACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,EAAmB;4DAAjB,eAAe,qBAAA;wDACrC,IAAI,eAAe;4DACf,eAAe,CAAC,YAAY,EAAE;4DAC9B,eAAe,CAAC,SAAS,KAAK,YAAY,EAAE;4DAC9C,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;yDACtD;oDACH,CAAC,CAAC,CAAC;iDACJ;qDAAM;oDACL,IAAM,YAAY,GAAiB;wDACjC,KAAK,EAAE,YAAY,CAAC,KAAK;wDACzB,SAAS,EAAE,YAAY,CAAC,SAAS;wDACjC,WAAW,EAAE,cAAc;qDAC5B,CAAC;oDAEF,IAAI,YAAY,CAAC,OAAO,EAAE;wDACxB,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;qDAC7C;oDAED,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;iDACrD;4CACH,CAAC,CAAC,CAAC;yCACJ;wCAED,OAAO,CAAC,GAAG,CACT,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,IAAI,CAAC;4CACL,IACE,WAAW,KAAK,QAAQ;gDACxB,WAAW;gDACX,qBAAqB,CAAC,WAAW,CAAC,EAClC;gDACA,OAAO,WAAW,CAAC,MAAM,CAAC;6CAC3B;4CAED,OAAO,CAAC,WAAY,CAAC,CAAC;wCACxB,CAAC,EAAE,MAAM,CAAC,CAAC;oCACb,CAAC;iCACF,CAAC,CAAC;4BACL,CAAC,CAAC,EAAC;;;;KACJ;IAEM,yCAAkB,GAAzB,UACE,QAWC,EACD,KAAkB;QAbpB,iBA0EC;QA7DC,sBAAA,EAAA,QAAQ,IAAI,CAAC,KAAK;QAElB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC5D,IAAM,aAAW,GAAyB,CAAC;oBACzC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;oBAC5B,MAAM,EAAE,eAAe;oBACvB,KAAK,EAAE,QAAQ,CAAC,QAAQ;oBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,CAAC;YAEK,IAAA,eAAa,GAAK,QAAQ,cAAb,CAAc;YACnC,IAAI,eAAa,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,EAAmB,EAAE,OAAO;wBAA1B,eAAe,qBAAA;oBACrC,IAAM,SAAS,GAAG,eAAe,IAAI,eAAe,CAAC,SAAS,CAAC;oBAC/D,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAa,EAAE,SAAS,CAAC,EAAE;wBAChE,OAAO;qBACR;oBACD,IAAM,OAAO,GAAG,eAAa,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAA,KAA0B,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,EAAlD,QAAQ,cAAA,EAAE,SAAS,eAA+B,CAAC;oBAGrD,IAAA,KAA2C,KAAK,CAAC,IAAI,CAAQ;wBACjE,KAAK,EAAE,QAAS;wBAChB,SAAS,WAAA;wBACT,iBAAiB,EAAE,IAAI;wBACvB,UAAU,EAAE,KAAK;qBAClB,CAAC,EALc,kBAAkB,YAAA,EAAE,QAAQ,cAK1C,CAAC;oBAEH,IAAI,QAAQ,IAAI,kBAAkB,EAAE;wBAElC,IAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE;4BAClD,cAAc,EAAE,QAAQ,CAAC,MAAM;4BAC/B,SAAS,EAAE,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;4BAC3D,cAAc,EAAE,SAAU;yBAC3B,CAAC,CAAC;wBAGH,IAAI,eAAe,EAAE;4BACnB,aAAW,CAAC,IAAI,CAAC;gCACf,MAAM,EAAE,eAAe;gCACvB,MAAM,EAAE,YAAY;gCACpB,KAAK,EAAE,QAAS;gCAChB,SAAS,WAAA;6BACV,CAAC,CAAC;yBACJ;qBACF;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,KAAK,CAAC,kBAAkB,CAAC,UAAA,CAAC;gBACxB,aAAW,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAd,CAAc,CAAC,CAAC;gBAKrC,IAAA,MAAM,GAAK,QAAQ,OAAb,CAAc;gBAC5B,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC5B;YACH,CAAC,EAAoC,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAEM,6CAAsB,GAA7B,UACE,kBAAuB,EACvB,QAUC;QAZH,iBA4BC;QAdC,IAAM,IAAI,GAAG,OAAO,kBAAkB,KAAK,UAAU;YACnD,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxC,CAAC,CAAC,kBAAkB,CAAC;QAEvB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,UAAA,KAAK;YACjD,IAAI;gBACF,KAAI,CAAC,kBAAkB,uBAClB,QAAQ,KACX,MAAM,EAAE,EAAE,IAAI,MAAA,EAAE,KACf,KAAK,CAAC,CAAC;aACX;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACxB;QACH,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAEM,iCAAU,GAAjB,UACE,OAAe,EACf,OAAwC,EACxC,aAA6B;QAE7B,OAAO,IAAI,CAAC,oBAAoB,CAC9B,OAAO,EACP,OAAO,EACP,aAAa,CACd,CAAC,OAAO,CAAC;IACZ,CAAC;IAEM,oCAAa,GAApB;QACE,IAAM,KAAK,GAAoC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,OAAO;YACjC,KAAK,CAAC,OAAO,CAAC,GAAG;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,kCAAW,GAAlB,UAAmB,OAAe;QAChC,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC;YACnC,SAAS,CAAC,aAAa,GAAG,EAAE,CAAC;SAC9B;IACH,CAAC;IAcM,gCAAS,GAAhB,UAAiB,QAAsB;QAC7B,IAAA,cAAc,GAAK,IAAI,eAAT,CAAU;QAEhC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACjC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAM,OAAO,GAAG,qCAAqC,CACnD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;YAE5C,IAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAM,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEpE,IAAM,YAAU,GAAG;gBACjB,QAAQ,EAAE,WAAW;gBAGrB,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,CAAC;gBAC/C,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBACrE,WAAW,aAAA;gBACX,WAAW,aAAA;gBACX,WAAW,EAAE,gBAAgB,CAC3B,sBAAsB,CAAC,WAAW,CAAC,CACd;aACxB,CAAC;YAEF,IAAM,GAAG,GAAG,UAAC,GAAwB;gBACnC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACnC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,YAAU,CAAC,CAAC;iBACrC;YACH,CAAC,CAAA;YAID,GAAG,CAAC,QAAQ,CAAC,CAAC;YACd,GAAG,CAAC,WAAW,CAAC,CAAC;YACjB,GAAG,CAAC,WAAW,CAAC,CAAC;YACjB,GAAG,CAAC,WAAW,CAAC,CAAC;SAClB;QAED,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACvC,CAAC;IAEO,mCAAY,GAApB,UACE,QAAsB,EACtB,SAA8B;QAE9B,6BACK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,GACpC,SAAS,EACZ;IACJ,CAAC;IAEM,iCAAU,GAAjB,UACE,OAAyC;QAGzC,OAAO,yBACF,OAAO,KACV,SAAS,EAAE,IAAI,CAAC,YAAY,CAC1B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,CACJ,GAChB,CAAC;QAEF,IAAI,OAAO,OAAO,CAAC,2BAA2B,KAAK,WAAW,EAAE;YAC9D,OAAO,CAAC,2BAA2B,GAAG,KAAK,CAAC;SAC7C;QAED,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAM,UAAU,GAAG,IAAI,eAAe,CAAgB;YACpD,YAAY,EAAE,IAAI;YAClB,SAAS,WAAA;YACT,OAAO,SAAA;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEhD,SAAS,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,eAAe,EAAE,UAAU;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,4BAAK,GAAZ,UACE,OAAmC;QADrC,iBA6BC;QA1BC,SAAS,CACP,OAAO,CAAC,KAAK,EACb,mEAAmE;YACjE,sBAAsB,CACzB,CAAC;QAEF,SAAS,CACP,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EACjC,gDAAgD,CACjD,CAAC;QAEF,SAAS,CACP,CAAE,OAAe,CAAC,iBAAiB,EACnC,wDAAwD,CACzD,CAAC;QAEF,SAAS,CACP,CAAE,OAAe,CAAC,YAAY,EAC9B,mDAAmD,CACpD,CAAC;QAEF,IAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,EACP,OAAO,CACR,CAAC,OAAO,CAAC,cAAM,OAAA,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAvB,CAAuB,CAAC,CAAC;IAC3C,CAAC;IAGM,sCAAe,GAAtB;QACE,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;IAGM,wCAAiB,GAAxB;QACE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAGM,yCAAkB,GAAzB;QACE,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,uCAAgB,GAAvB,UAAwB,OAAe;QACrC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,kDAA2B,GAAnC,UAAoC,OAAe;QACjD,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,SAAS;YAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAEM,iCAAU,GAAjB;QAME,IAAI,CAAC,oBAAoB,CAAC,IAAI,cAAc,CAC1C,qEAAqE,CACtE,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,SAAS;YAC5B,IAAI,SAAS,CAAC,eAAe,EAAE;gBAG7B,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;aACjD;iBAAM;gBACL,SAAS,CAAC,IAAI,EAAE,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1C;QAGD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEM,iCAAU,GAAjB;QAAA,iBAUC;QAHC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;YAC5B,OAAO,KAAI,CAAC,wBAAwB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,+CAAwB,GAA/B,UACE,cAA+B;QADjC,iBAwBC;QAvBC,+BAAA,EAAA,sBAA+B;QAE/B,IAAM,uBAAuB,GAAsC,EAAE,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,EAAmB,EAAE,OAAO;gBAA1B,eAAe,qBAAA;YACrC,IAAI,eAAe,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE;gBACrD,IAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;gBAExD,eAAe,CAAC,gBAAgB,EAAE,CAAC;gBACnC,IACE,WAAW,KAAK,YAAY;oBAC5B,CAAC,cAAc,IAAI,WAAW,KAAK,SAAS,CAAC,EAC7C;oBACA,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;iBACzD;gBAED,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC9C,CAAC;IAEM,yCAAkB,GAAzB,UAA0B,eAA0C;QAClE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;IAEM,+CAAwB,GAA/B,UAAyC,EAMnB;QANtB,iBA2DC;YA1DC,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA;QAEZ,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QACvC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEhD,IAAM,cAAc,GAAG,UAAC,SAA6B;YACnD,OAAA,KAAI,CAAC,qBAAqB,CACxB,KAAK,EACL,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC,GAAG,CAAC,UAAA,MAAM;gBACV,IAAI,WAAW,KAAK,UAAU,EAAE;oBAG9B,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;wBAC1C,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;4BACf,KAAK,OAAA;4BACL,MAAM,EAAE,MAAM,CAAC,IAAI;4BACnB,MAAM,EAAE,mBAAmB;4BAC3B,SAAS,EAAE,SAAS;yBACrB,CAAC,CAAC;qBACJ;oBAED,KAAI,CAAC,gBAAgB,EAAE,CAAC;iBACzB;gBAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;oBACjC,MAAM,IAAI,WAAW,CAAC;wBACpB,aAAa,EAAE,MAAM,CAAC,MAAM;qBAC7B,CAAC,CAAC;iBACJ;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QA5BF,CA4BE,CAAC;QAEL,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE;YAC1C,IAAM,mBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAC5D,KAAK,EACL,SAAS,EACT,OAAO,CACR,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEvB,OAAO,IAAI,UAAU,CAAiB,UAAA,QAAQ;gBAC5C,IAAI,GAAG,GAAkC,IAAI,CAAC;gBAC9C,mBAAiB,CAAC,IAAI,CACpB,UAAA,UAAU,IAAI,OAAA,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,EAApC,CAAoC,EAClD,QAAQ,CAAC,KAAK,CACf,CAAC;gBACF,OAAO,cAAM,OAAA,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,EAAxB,CAAwB,CAAC;YACxC,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEM,gCAAS,GAAhB,UAAiB,OAAe;QAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,2CAAoB,GAA5B,UAA6B,OAAe;QAC1C,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,kCAAW,GAAlB,UAAmB,OAAe;QAMhC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEM,uCAAgB,GAAvB;QACE,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CAAC,CAAC;IAC9C,CAAC;IAEM,oCAAa,GAApB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAOO,4CAAqB,GAA7B,UACE,KAAmB,EACnB,OAAY,EACZ,SAA8B,EAC9B,aAGyB;QAP3B,iBA0EC;;QAtEC,8BAAA,EAAA,sBAEE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,mCAC3B,IAAI,CAAC,kBAAkB;QAEzB,IAAI,UAAsC,CAAC;QAEnC,IAAA,WAAW,GAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAA1B,CAA2B;QAC9C,IAAI,WAAW,EAAE;YACT,IAAA,KAAoC,IAAI,EAAtC,yBAAuB,6BAAA,EAAE,IAAI,UAAS,CAAC;YAE/C,IAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,WAAW;gBAClB,SAAS,WAAA;gBACT,aAAa,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;gBACtD,OAAO,EAAE,IAAI,CAAC,cAAc,uBACvB,OAAO,KACV,UAAU,EAAE,CAAC,aAAa,IAC1B;aACH,CAAC;YAEF,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YAE5B,IAAI,aAAa,EAAE;gBACjB,IAAM,aAAW,GAAG,yBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBAC1E,yBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,aAAW,CAAC,CAAC;gBAEtD,IAAM,SAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1C,UAAU,GAAG,aAAW,CAAC,GAAG,CAAC,SAAO,CAAC,CAAC;gBAEtC,IAAI,CAAC,UAAU,EAAE;oBACf,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC;wBAC1B,OAAO,CAAC,IAAI,EAAE,SAAS,CAA+B;qBACvD,CAAC,CAAC;oBAEH,aAAW,CAAC,GAAG,CAAC,SAAO,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;oBAE/C,OAAO,CAAC,OAAO,CAAC;wBACd,IAAI,aAAW,CAAC,MAAM,CAAC,SAAO,CAAC;4BAC3B,aAAW,CAAC,IAAI,GAAG,CAAC,EAAE;4BACxB,yBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;yBAC7C;oBACH,CAAC,CAAC,CAAC;iBACJ;aAEF;iBAAM;gBACL,UAAU,GAAG,IAAI,OAAO,CAAC;oBACvB,OAAO,CAAC,IAAI,EAAE,SAAS,CAA+B;iBACvD,CAAC,CAAC;aACJ;SACF;aAAM;YACL,UAAU,GAAG,IAAI,OAAO,CAAC;gBACvB,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAoB,CAAC;aAC9C,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACxC;QAEO,IAAA,WAAW,GAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAA1B,CAA2B;QAC9C,IAAI,WAAW,EAAE;YACf,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAA,MAAM;gBACtC,OAAO,KAAI,CAAC,UAAU,CAAC,YAAY,CAAC;oBAClC,QAAQ,EAAE,WAAW;oBACrB,YAAY,EAAE,MAAM;oBACpB,OAAO,SAAA;oBACP,SAAS,WAAA;iBACV,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,yCAAkB,GAA1B,UACE,SAAoB,EACpB,eAAwB,EACxB,OAIkB;QAEV,IAAA,aAAa,GAAK,SAAS,cAAd,CAAe;QAEpC,OAAO,QAAQ,CACb,IAAI,CAAC,qBAAqB,CACxB,SAAS,CAAC,QAAS,EACnB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,SAAS,CAClB,EAED,UAAA,MAAM;YACJ,IAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,EAAE;gBAC5C,IAAI,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;oBAE/C,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC;wBACxC,aAAa,EAAE,MAAM,CAAC,MAAM;qBAC7B,CAAC,CAAC,CAAC;iBACL;gBACD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;gBACvD,SAAS,CAAC,SAAS,EAAE,CAAC;aACvB;YAED,IAAM,GAAG,GAA6B;gBACpC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK;aAC9D,CAAC;YAEF,IAAI,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE;gBACjD,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAED,UAAA,YAAY;YACV,IAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC;gBACvC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,CAAC;YAEtC,IAAI,aAAa,IAAI,SAAS,CAAC,aAAa,EAAE;gBAC5C,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC5B;YAED,MAAM,KAAK,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,2CAAoB,GAA3B,UACE,OAAe,EACf,OAAwC,EAIxC,aAAqC;QANvC,iBAsHC;QAhHC,8BAAA,EAAA,gBAAgB,aAAa,CAAC,OAAO;QAErC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QACrD,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAU,CAAC;QACvE,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC;QAG/C,IAAA,KAKE,OAAO,YAL2C,EAApD,WAAW,mBAAG,aAAsC,KAAA,EACpD,KAIE,OAAO,YAJ0B,EAAnC,WAAW,mBAAG,MAAqB,KAAA,EACnC,KAGE,OAAO,kBAHgB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,EACzB,KAEE,OAAO,4BAF0B,EAAnC,2BAA2B,mBAAG,KAAK,KAAA,EACnC,KACE,OAAO,QADG,EAAZ,OAAO,mBAAG,EAAE,KAAA,CACF;QAEZ,IAAM,eAAe,GACnB,WAAW,KAAK,aAAa;YAC7B,WAAW,KAAK,mBAAmB;YACnC,WAAW,KAAK,cAAc;YAC9B,WAAW,KAAK,UAAU,CAAC;QAE7B,IAAI,eAAe;YACf,2BAA2B;YAC3B,OAAO,gBAAgB,KAAK,QAAQ;YACpC,gBAAgB,KAAK,aAAa;YAClC,wBAAwB,CAAC,aAAa,CAAC,EAAE;YAI3C,IAAI,WAAW,KAAK,aAAa,EAAE;gBACjC,WAAW,GAAG,mBAAmB,CAAC;aACnC;YACD,iBAAiB,GAAG,IAAI,CAAC;SAC1B;QAED,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;YAC5C,KAAK,OAAA;YACL,SAAS,WAAA;YACT,WAAW,aAAA;YACX,WAAW,aAAA;YACX,iBAAiB,mBAAA;YACjB,2BAA2B,6BAAA;YAC3B,OAAO,SAAA;SACR,CAAC,CAAC;QAEH,IAAM,aAAa,GAAG,UAAC,SAAgB;YAIrC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACjC,OAAO,KAAI,CAAC,kBAAkB,CAC5B,SAAS,EACT,UAAU,EACV,aAAa,CACd,CAAC;QACJ,CAAC,CAAC;QAIF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,UAAA,MAAM;YAGrC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAtB,CAAsB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAKH,IAAM,OAAO,GAAG,IAAI,OAAO,CAQzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,gBAAgB;YAC/C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACpC,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,CACnB,CAAC,IAAI,CAAC,aAAa,CAAC;YACrB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,SAAU,CAAC,CACzC,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC;YACd,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAA,eAAe,GAAK,OAAO,gBAAZ,CAAa;YACpC,IAAI,eAAe,EAAE;gBAInB,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;gBAYjC,OAAO,CAAC,WAAW,GAAG,OAAO,eAAe,KAAK,UAAU;oBACzD,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC;oBACrE,CAAC,CAAC,eAAe,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yCAAkB,GAA1B,UACE,SAAoB,EACpB,OAAwC,EAIxC,aAA4B;QAN9B,iBAwHC;QA/GG,IAAA,KAAK,GAMH,OAAO,MANJ,EACL,SAAS,GAKP,OAAO,UALA,EACT,WAAW,GAIT,OAAO,YAJE,EACX,WAAW,GAGT,OAAO,YAHE,EACX,iBAAiB,GAEf,OAAO,kBAFQ,EACjB,OAAO,GACL,OAAO,QADF,CACG;QAEZ,SAAS,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,KAAK;YACf,SAAS,WAAA;YACT,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACvC,aAAa,eAAA;SACd,CAAC,CAAC;QAEH,IAAM,SAAS,GAAG,cAAM,OAAA,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAA5B,CAA4B,CAAC;QAErD,IAAM,gBAAgB,GAAG,UACvB,IAA6B,EAC7B,aAAgE;YAAhE,8BAAA,EAAA,gBAAgB,SAAS,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO;YAEhE,IAAM,IAAI,GAAG,IAAI,CAAC,MAAe,CAAC;YAElC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBACrC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC7B,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChB,CAAC,iBAAiB,EAAE;gBACtB,SAAS,CAAC,IAAI,CAAC,kCACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CACjD,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACnB;YAED,IAAM,QAAQ,GAAG,UAAC,IAAW,IAAK,OAAA,UAAU,CAAC,EAAE,CAAC,WAC9C,IAAI,MAAA,EACJ,OAAO,EAAE,wBAAwB,CAAC,aAAa,CAAC,EAChD,aAAa,eAAA,IACV,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAClB,CAAC,EALI,CAKJ,CAAC;YAE/B,IAAI,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE;gBAC5C,OAAO,KAAI,CAAC,UAAU,CAAC,YAAY,CAAC;oBAClC,QAAQ,EAAE,KAAK;oBACf,YAAY,EAAE,EAAE,IAAI,MAAA,EAAE;oBACtB,OAAO,SAAA;oBACP,SAAS,WAAA;oBACT,sBAAsB,EAAE,IAAI;iBAC7B,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,QAAQ,CAAC,IAAK,CAAC,EAAxB,CAAwB,CAAC,CAAC;aAC/C;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,IAAM,eAAe,GAAG,UAAC,eAAwB;YAC/C,OAAA,KAAI,CAAC,kBAAkB,CAAe,SAAS,EAAE,eAAe,EAAE;gBAChE,SAAS,WAAA;gBACT,OAAO,SAAA;gBACP,WAAW,aAAA;gBACX,WAAW,aAAA;aACZ,CAAC;QALF,CAKE,CAAC;QAEL,QAAQ,WAAW,EAAE;YACrB,QAAQ;YAAC,KAAK,aAAa,CAAC,CAAC;gBAC3B,IAAM,IAAI,GAAG,SAAS,EAAE,CAAC;gBAEzB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,OAAO;wBACL,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;qBAC9C,CAAC;iBACH;gBAED,IAAI,iBAAiB,EAAE;oBACrB,OAAO;wBACL,gBAAgB,CAAC,IAAI,CAAC;wBACtB,eAAe,CAAC,IAAI,CAAC;qBACtB,CAAC;iBACH;gBAED,OAAO;oBACL,eAAe,CAAC,IAAI,CAAC;iBACtB,CAAC;aACH;YAED,KAAK,mBAAmB,CAAC,CAAC;gBACxB,IAAM,IAAI,GAAG,SAAS,EAAE,CAAC;gBAEzB,IAAI,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAE;oBACtC,OAAO;wBACL,gBAAgB,CAAC,IAAI,CAAC;wBACtB,eAAe,CAAC,IAAI,CAAC;qBACtB,CAAC;iBACH;gBAED,OAAO;oBACL,eAAe,CAAC,IAAI,CAAC;iBACtB,CAAC;aACH;YAED,KAAK,YAAY;gBACf,OAAO;oBACL,gBAAgB,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;iBACrD,CAAC;YAEJ,KAAK,cAAc;gBACjB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjC,KAAK,UAAU;gBACb,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAElC,KAAK,SAAS;gBACZ,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAEO,+BAAQ,GAAhB,UAAiB,OAAe;QAC9B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACpC,CAAC;IAEO,qCAAc,GAAtB,UAAuB,OAAY;QAAZ,wBAAA,EAAA,YAAY;QACjC,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,6BACK,UAAU,KACb,eAAe,EAAE,IAAI,CAAC,eAAe,IACrC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AAxlCD,IAwlCC","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { equal } from '@wry/equality';\n\nimport { ApolloLink, execute, FetchResult } from '../link/core';\nimport { Cache, ApolloCache } from '../cache';\n\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n ObservableSubscription,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n ConcastSourcesIterable,\n} from '../utilities';\nimport { ApolloError, isApolloError } from '../errors';\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n ApolloQueryResult,\n OperationVariables,\n} from './types';\nimport { LocalState } from './LocalState';\n\nimport { QueryInfo, QueryStoreValue, shouldWriteResult } from './QueryInfo';\n\nconst { hasOwnProperty } = Object.prototype;\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record<string, any>;\n loading: boolean;\n error: Error | null;\n}\n\nexport class QueryManager<TStore> {\n public cache: ApolloCache<TStore>;\n public link: ApolloLink;\n public readonly assumeImmutableResults: boolean;\n public readonly ssrMode: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record<string, string> = {};\n private localState: LocalState<TStore>;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map<string, QueryInfo>();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n private fetchCancelFns = new Map<string, (error: any) => any>();\n\n constructor({\n cache,\n link,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n cache: ApolloCache<TStore>;\n link: ApolloLink;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record<string, string>;\n localState?: LocalState<TStore>;\n assumeImmutableResults?: boolean;\n }) {\n this.cache = cache;\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach(cancel => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<T>({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n errorPolicy = 'none',\n fetchPolicy,\n context = {},\n }: MutationOptions): Promise<FetchResult<T>> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n !fetchPolicy || fetchPolicy === 'no-cache',\n \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\"\n );\n\n const mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n\n variables = this.getVariables(mutation, variables);\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context);\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n if (optimisticResponse) {\n this.markMutationOptimistic<T>(optimisticResponse, {\n mutationId,\n document: mutation,\n variables,\n errorPolicy,\n updateQueries,\n update: updateWithProxyFn,\n });\n }\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n let storeResult: FetchResult<T> | null;\n let error: ApolloError;\n\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ).subscribe({\n next(result: FetchResult<T>) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n if (fetchPolicy !== 'no-cache') {\n try {\n self.markMutationResult<T>({\n mutationId,\n result,\n document: mutation,\n variables,\n errorPolicy,\n updateQueries,\n update: updateWithProxyFn,\n });\n } catch (e) {\n error = new ApolloError({\n networkError: e,\n });\n return;\n }\n }\n\n storeResult = result;\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(\n new ApolloError({\n networkError: err,\n }),\n );\n },\n\n complete() {\n if (error && mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = error;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n // allow for conditional refetches\n // XXX do we want to make this the only API one day?\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult!);\n }\n\n const refetchQueryPromises: Promise<\n ApolloQueryResult<any>[] | ApolloQueryResult<{}>\n >[] = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(refetchQuery => {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(({ observableQuery }) => {\n if (observableQuery &&\n observableQuery.hasObservers() &&\n observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n const queryOptions: QueryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(\n awaitRefetchQueries ? refetchQueryPromises : [],\n ).then(() => {\n if (\n errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)\n ) {\n delete storeResult.errors;\n }\n\n resolve(storeResult!);\n }, reject);\n },\n });\n });\n }\n\n public markMutationResult<TData>(\n mutation: {\n mutationId: string;\n result: FetchResult<TData>;\n document: DocumentNode;\n variables?: OperationVariables;\n errorPolicy: ErrorPolicy;\n updateQueries: MutationOptions<TData>[\"updateQueries\"],\n update?: (\n cache: ApolloCache<TStore>,\n result: FetchResult<TData>,\n ) => void;\n },\n cache = this.cache,\n ) {\n if (shouldWriteResult(mutation.result, mutation.errorPolicy)) {\n const cacheWrites: Cache.WriteOptions[] = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n }];\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff<TData>({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document!,\n variables,\n });\n }\n }\n });\n }\n\n cache.performTransaction(c => {\n cacheWrites.forEach(write => c.write(write));\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with a\n // write action.\n const { update } = mutation;\n if (update) {\n update(c, mutation.result);\n }\n }, /* non-optimistic transaction: */ null);\n }\n }\n\n public markMutationOptimistic<TData>(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: OperationVariables;\n errorPolicy: ErrorPolicy;\n updateQueries: MutationOptions<TData>[\"updateQueries\"],\n update?: (\n cache: ApolloCache<TStore>,\n result: FetchResult<TData>,\n ) => void;\n },\n ) {\n const data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n\n return this.cache.recordOptimisticTransaction(cache => {\n try {\n this.markMutationResult<TData>({\n ...mutation,\n result: { data },\n }, cache);\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n }\n\n public fetchQuery<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n networkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n return this.fetchQueryObservable<TData, TVars>(\n queryId,\n options,\n networkStatus,\n ).promise;\n }\n\n public getQueryStore() {\n const store: Record<string, QueryStoreValue> = Object.create(null);\n this.queries.forEach((info, queryId) => {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n }\n\n public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n private transformCache = new (canUseWeakMap ? WeakMap : Map)<\n DocumentNode,\n Readonly<{\n document: Readonly<DocumentNode>;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: Readonly<DocumentNode> | null;\n serverQuery: Readonly<DocumentNode> | null;\n defaultVars: Readonly<OperationVariables>;\n }>\n >();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const transformed = this.cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n this.cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = forLink && this.localState.serverQuery(forLink);\n\n const cacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: OperationVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<T, TVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n // assign variable default values if supplied\n options = {\n ...options,\n variables: this.getVariables(\n options.query,\n options.variables,\n ) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this.cache);\n const observable = new ObservableQuery<T, TVariables>({\n queryManager: this,\n queryInfo,\n options,\n });\n\n this.queries.set(observable.queryId, queryInfo);\n\n queryInfo.init({\n document: options.query,\n observableQuery: observable,\n variables: options.variables,\n });\n\n return observable;\n }\n\n public query<TData, TVars = OperationVariables>(\n options: QueryOptions<TVars, TData>,\n ): Promise<ApolloQueryResult<TData>> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n const queryId = this.generateQueryId();\n return this.fetchQuery<TData, TVars>(\n queryId,\n options,\n ).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(): Promise<void> {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n\n this.queries.forEach(queryInfo => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n // begin removing data from the store\n return this.cache.reset();\n }\n\n public resetStore(): Promise<ApolloQueryResult<any>[]> {\n // Similarly, we have to have to refetch each of the queries currently being\n // observed. We refetch instead of error'ing on these since the assumption is that\n // resetting the store doesn't eliminate the need for the queries currently being\n // watched. If there is an existing query in flight when the store is reset,\n // the promise for it will be rejected and its results will not be written to the\n // store.\n return this.clearStore().then(() => {\n return this.reFetchObservableQueries();\n });\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise<ApolloQueryResult<any>[]> {\n const observableQueryPromises: Promise<ApolloQueryResult<any>>[] = [];\n\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery && observableQuery.hasObservers()) {\n const fetchPolicy = observableQuery.options.fetchPolicy;\n\n observableQuery.resetLastResults();\n if (\n fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n this.getQuery(queryId).setDiff(null);\n }\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery<any, any>) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription<T = any>({\n query,\n fetchPolicy,\n errorPolicy,\n variables,\n context = {},\n }: SubscriptionOptions): Observable<FetchResult<T>> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink<T>(\n query,\n context,\n variables,\n false,\n ).map(result => {\n if (fetchPolicy !== 'no-cache') {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n context,\n ).then(makeObservable);\n\n return new Observable<FetchResult<T>>(observer => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(info => info.notify());\n }\n\n public getLocalState(): LocalState<TStore> {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map<string, Observable<FetchResult>>\n >();\n\n private getObservableFromLink<T = any>(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean =\n // Prefer context.queryDeduplication if specified.\n context?.queryDeduplication ??\n this.queryDeduplication,\n ): Observable<FetchResult<T>> {\n let observable: Observable<FetchResult<T>>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = JSON.stringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n\n byVariables.set(varJson, observable = concast);\n\n concast.cleanup(() => {\n if (byVariables.delete(varJson) &&\n byVariables.size < 1) {\n inFlightLinkObservables.delete(serverQuery);\n }\n });\n }\n\n } else {\n observable = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n }\n } else {\n observable = new Concast([\n Observable.of({ data: {} } as FetchResult<T>)\n ]);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink<TData, TVars>(\n queryInfo: QueryInfo,\n allowCacheWrite: boolean,\n options: Pick<WatchQueryOptions<TVars, TData>,\n | \"variables\"\n | \"context\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n ): Observable<ApolloQueryResult<TData>> {\n const { lastRequestId } = queryInfo;\n\n return asyncMap(\n this.getObservableFromLink(\n queryInfo.document!,\n options.context,\n options.variables,\n ),\n\n result => {\n const hasErrors = isNonEmptyArray(result.errors);\n\n if (lastRequestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n queryInfo.markResult(result, options, allowCacheWrite);\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult<TData> = {\n data: result.data,\n loading: false,\n networkStatus: queryInfo.networkStatus || NetworkStatus.ready,\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n }\n\n return aqr;\n },\n\n networkError => {\n const error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError });\n\n if (lastRequestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n },\n );\n }\n\n public fetchQueryObservable<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n ): Concast<ApolloQueryResult<TData>> {\n const query = this.transform(options.query).document;\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n const oldNetworkStatus = queryInfo.networkStatus;\n\n let {\n fetchPolicy = \"cache-first\" as WatchQueryFetchPolicy,\n errorPolicy = \"none\" as ErrorPolicy,\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const mightUseNetwork =\n fetchPolicy === \"cache-first\" ||\n fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\" ||\n fetchPolicy === \"no-cache\";\n\n if (mightUseNetwork &&\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus)) {\n // In order to force delivery of an incomplete cache result with\n // loading:true, we tweak the fetchPolicy to include the cache, and\n // pretend that returnPartialData was enabled.\n if (fetchPolicy !== \"cache-first\") {\n fetchPolicy = \"cache-and-network\";\n }\n returnPartialData = true;\n }\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n return this.fetchQueryByPolicy<TData, TVars>(\n queryInfo,\n normalized,\n networkStatus,\n );\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n this.fetchCancelFns.set(queryId, reason => {\n // Delaying the cancellation using a Promise ensures that the\n // concast variable has been initialized.\n Promise.resolve().then(() => concast.cancel(reason));\n });\n\n // A Concast<T> can be created either from an Iterable<Observable<T>>\n // or from a PromiseLike<Iterable<Observable<T>>>, where T in this\n // case is ApolloQueryResult<TData>.\n const concast = new Concast(\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context,\n ).then(fromVariables)\n : fromVariables(normalized.variables!)\n );\n\n concast.cleanup(() => {\n this.fetchCancelFns.delete(queryId);\n\n const { nextFetchPolicy } = options;\n if (nextFetchPolicy) {\n // The options.nextFetchPolicy transition should happen only once,\n // but it should be possible for a nextFetchPolicy function to set\n // this.nextFetchPolicy to perform an additional transition.\n options.nextFetchPolicy = void 0;\n\n // When someone chooses cache-and-network or network-only as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the cache-and-network or network-only policies would seem\n // to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete.\n // The options.nextFetchPolicy option provides an easy way to update\n // options.fetchPolicy after the intial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = typeof nextFetchPolicy === \"function\"\n ? nextFetchPolicy.call(options, options.fetchPolicy || \"cache-first\")\n : nextFetchPolicy;\n }\n });\n\n return concast;\n }\n\n private fetchQueryByPolicy<TData, TVars>(\n queryInfo: QueryInfo,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus,\n ): ConcastSourcesIterable<ApolloQueryResult<TData>> {\n const {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n context,\n } = options;\n\n queryInfo.init({\n document: query,\n variables,\n lastRequestId: this.generateRequestId(),\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff(variables);\n\n const resultsFromCache = (\n diff: Cache.DiffResult<TData>,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading,\n ) => {\n const data = diff.result as TData;\n\n if (process.env.NODE_ENV !== 'production' &&\n isNonEmptyArray(diff.missing) &&\n !equal(data, {}) &&\n !returnPartialData) {\n invariant.warn(`Missing cache result fields: ${\n diff.missing.map(m => m.path.join('.')).join(', ')\n }`, diff.missing);\n }\n\n const fromData = (data: TData) => Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult<TData>);\n\n if (this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then(resolved => fromData(resolved.data!));\n }\n\n return fromData(data);\n };\n\n const resultsFromLink = (allowCacheWrite: boolean) =>\n this.getResultsFromLink<TData, TVars>(queryInfo, allowCacheWrite, {\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n switch (fetchPolicy) {\n default: case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n\n if (returnPartialData) {\n return [\n resultsFromCache(diff),\n resultsFromLink(true),\n ];\n }\n\n return [\n resultsFromLink(true),\n ];\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData) {\n return [\n resultsFromCache(diff),\n resultsFromLink(true),\n ];\n }\n\n return [\n resultsFromLink(true),\n ];\n }\n\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n\n case \"network-only\":\n return [resultsFromLink(true)];\n\n case \"no-cache\":\n return [resultsFromLink(false)];\n\n case \"standby\":\n return [];\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this.cache));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n"]}
package/core/core.cjs.js CHANGED
@@ -16,7 +16,7 @@ var cache = require('../cache');
16
16
  var utils = require('../link/utils');
17
17
  var gql = _interopDefault(require('graphql-tag'));
18
18
 
19
- var version = '3.3.12';
19
+ var version = '3.3.13';
20
20
 
21
21
  (function (NetworkStatus) {
22
22
  NetworkStatus[NetworkStatus["loading"] = 1] = "loading";
@@ -1106,6 +1106,7 @@ var QueryManager = (function () {
1106
1106
  self.queries.forEach(function (_a) {
1107
1107
  var observableQuery = _a.observableQuery;
1108
1108
  if (observableQuery &&
1109
+ observableQuery.hasObservers() &&
1109
1110
  observableQuery.queryName === refetchQuery) {
1110
1111
  refetchQueryPromises.push(observableQuery.refetch());
1111
1112
  }