@apollo/client 3.6.0 → 3.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/LICENSE +1 -1
  2. package/apollo-client.cjs +92 -122
  3. package/apollo-client.cjs.map +1 -1
  4. package/apollo-client.min.cjs +1 -1
  5. package/core/ApolloClient.d.ts.map +1 -1
  6. package/core/ApolloClient.js.map +1 -1
  7. package/core/ObservableQuery.d.ts.map +1 -1
  8. package/core/ObservableQuery.js +3 -1
  9. package/core/ObservableQuery.js.map +1 -1
  10. package/core/QueryManager.d.ts.map +1 -1
  11. package/core/QueryManager.js +7 -23
  12. package/core/QueryManager.js.map +1 -1
  13. package/core/core.cjs +11 -25
  14. package/core/core.cjs.map +1 -1
  15. package/core/watchQueryOptions.d.ts +0 -1
  16. package/core/watchQueryOptions.d.ts.map +1 -1
  17. package/core/watchQueryOptions.js.map +1 -1
  18. package/invariantErrorCodes.js +1 -1
  19. package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
  20. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  21. package/link/persisted-queries/index.d.ts +2 -1
  22. package/link/persisted-queries/index.d.ts.map +1 -1
  23. package/link/persisted-queries/index.js +26 -13
  24. package/link/persisted-queries/index.js.map +1 -1
  25. package/link/persisted-queries/persisted-queries.cjs +25 -12
  26. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  27. package/package.json +13 -13
  28. package/react/context/ApolloConsumer.js +2 -2
  29. package/react/context/ApolloProvider.js +2 -2
  30. package/react/context/context.cjs +4 -4
  31. package/react/context/context.cjs.map +1 -1
  32. package/react/hooks/hooks.cjs +53 -83
  33. package/react/hooks/hooks.cjs.map +1 -1
  34. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  35. package/react/hooks/useLazyQuery.js +7 -22
  36. package/react/hooks/useLazyQuery.js.map +1 -1
  37. package/react/hooks/useQuery.d.ts +5 -1
  38. package/react/hooks/useQuery.d.ts.map +1 -1
  39. package/react/hooks/useQuery.js +47 -63
  40. package/react/hooks/useQuery.js.map +1 -1
  41. package/react/parser/index.d.ts.map +1 -1
  42. package/react/parser/index.js +24 -10
  43. package/react/parser/index.js.map +1 -1
  44. package/react/parser/parser.cjs +24 -10
  45. package/react/parser/parser.cjs.map +1 -1
  46. package/testing/core/mocking/mockQueryManager.js +1 -1
  47. package/testing/core/mocking/mockWatchQuery.js +1 -1
  48. package/testing/core/wrap.js +1 -1
  49. package/utilities/common/mergeOptions.d.ts +1 -1
  50. package/utilities/common/mergeOptions.d.ts.map +1 -1
  51. package/utilities/common/mergeOptions.js +1 -1
  52. package/utilities/common/mergeOptions.js.map +1 -1
  53. package/utilities/globals/global.js +1 -2
  54. package/utilities/utilities.cjs +1 -1
  55. package/utilities/utilities.cjs.map +1 -1
  56. package/version.js +1 -1
@@ -26,7 +26,6 @@ export interface WatchQueryOptions<TVariables = OperationVariables, TData = any>
26
26
  nextFetchPolicy?: WatchQueryFetchPolicy | ((this: WatchQueryOptions<TVariables, TData>, currentFetchPolicy: WatchQueryFetchPolicy, context: NextFetchPolicyContext<TData, TVariables>) => WatchQueryFetchPolicy);
27
27
  initialFetchPolicy?: WatchQueryFetchPolicy;
28
28
  refetchWritePolicy?: RefetchWritePolicy;
29
- fetchBlockingPromise?: Promise<boolean>;
30
29
  }
31
30
  export interface NextFetchPolicyContext<TData, TVariables> {
32
31
  reason: "after-fetch" | "variables-changed";
@@ -1 +1 @@
1
- {"version":3,"file":"watchQueryOptions.d.ts","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchQueryOptions.d.ts","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watchQueryOptions.js","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { FetchResult } from '../link/core';\nimport {\n DefaultContext,\n MutationQueryReducersMap,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n} from './types';\nimport { ApolloCache } from '../cache';\nimport { ObservableQuery } from './ObservableQuery';\n\n/**\n * fetchPolicy determines where the client may return a result from. The options are:\n * - cache-first (default): return result from cache. Only fetch from network if cached result is not available.\n * - cache-and-network: return result from cache first (if it exists), then return network result once it's available.\n * - cache-only: return result from cache if available, fail otherwise.\n * - no-cache: return result from network, fail if network call doesn't succeed, don't save to cache\n * - network-only: return result from network, fail if network call doesn't succeed, save to cache\n * - standby: only for queries that aren't actively watched, but should be available for refetch and updateQueries.\n */\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby';\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';\n\nexport type MutationFetchPolicy = Extract<\n FetchPolicy,\n | 'network-only' // default behavior (mutation results written to cache)\n | 'no-cache' // alternate behavior (results not written to cache)\n>;\n\nexport type RefetchWritePolicy = \"merge\" | \"overwrite\";\n\n/**\n * errorPolicy determines the level of events for errors in the execution result. The options are:\n * - none (default): any errors from the request are treated like runtime errors and the observable is stopped (XXX this is default to lower breaking changes going from AC 1.0 => 2.0)\n * - ignore: errors from the request do not stop the observable, but also don't call `next`\n * - all: errors are treated like data and will notify observables\n */\nexport type ErrorPolicy = 'none' | 'ignore' | 'all';\n\n/**\n * Query options.\n */\nexport interface QueryOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document that consists of a single query to be sent down to the\n * server.\n */\n // TODO REFACTOR: rename this to document. Didn't do it yet because it's in a\n // lot of tests.\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * A map going from variable name to variable value, where the variables are used\n * within the GraphQL query.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this query\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context to be passed to link execution chain\n */\n context?: any;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this query\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * The time interval (in milliseconds) on which this query should be\n * refetched from the server.\n */\n pollInterval?: number;\n\n /**\n * Whether or not updates to the network status should trigger next on the observer of this query\n */\n notifyOnNetworkStatusChange?: boolean;\n\n /**\n * Allow returning incomplete data from the cache when a larger query cannot\n * be fully satisfied by the cache, instead of returning nothing.\n */\n returnPartialData?: boolean;\n\n /**\n * If `true`, perform a query `refetch` if the query result is marked as\n * being partial, and the returned data is reset to an empty Object by the\n * Apollo Client `QueryManager` (due to a cache miss).\n */\n partialRefetch?: boolean;\n\n /**\n * Whether to canonize cache results before returning them. Canonization\n * takes some extra time, but it speeds up future deep equality comparisons.\n * Defaults to false.\n */\n canonizeResults?: boolean;\n}\n\n/**\n * Watched query options.\n */\nexport interface WatchQueryOptions<TVariables = OperationVariables, TData = any>\n extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {\n /**\n * Specifies the {@link FetchPolicy} to be used for this query.\n */\n fetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies the {@link FetchPolicy} to be used after this query has completed.\n */\n nextFetchPolicy?: WatchQueryFetchPolicy | ((\n this: WatchQueryOptions<TVariables, TData>,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: NextFetchPolicyContext<TData, TVariables>,\n ) => WatchQueryFetchPolicy);\n\n /**\n * Defaults to the initial value of options.fetchPolicy, but can be explicitly\n * configured to specify the WatchQueryFetchPolicy to revert back to whenever\n * variables change (unless nextFetchPolicy intervenes).\n */\n initialFetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies whether a {@link NetworkStatus.refetch} operation should merge\n * incoming field data with existing data, or overwrite the existing data.\n * Overwriting is probably preferable, but merging is currently the default\n * behavior, for backwards compatibility with Apollo Client 3.x.\n */\n refetchWritePolicy?: RefetchWritePolicy;\n\n /**\n * If provided, stalls any network activity for this request until the Promise\n * has resolved. If the Promise resolves to true, the network request will\n * proceed. If the Promise resolves to false, the network request will be\n * silently discarded.\n */\n fetchBlockingPromise?: Promise<boolean>;\n}\n\nexport interface NextFetchPolicyContext<TData, TVariables> {\n reason:\n | \"after-fetch\"\n | \"variables-changed\";\n observable: ObservableQuery<TData, TVariables>;\n options: WatchQueryOptions<TVariables, TData>;\n initialFetchPolicy: WatchQueryFetchPolicy;\n}\n\nexport interface FetchMoreQueryOptions<TVariables, TData = any> {\n query?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n variables?: Partial<TVariables>;\n context?: any;\n}\n\nexport type UpdateQueryFn<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = (\n previousQueryResult: TData,\n options: {\n subscriptionData: { data: TSubscriptionData };\n variables?: TSubscriptionVariables;\n },\n) => TData;\n\nexport type SubscribeToMoreOptions<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = {\n document: DocumentNode | TypedDocumentNode<TSubscriptionData, TSubscriptionVariables>;\n variables?: TSubscriptionVariables;\n updateQuery?: UpdateQueryFn<TData, TSubscriptionVariables, TSubscriptionData>;\n onError?: (error: Error) => void;\n context?: DefaultContext;\n};\n\nexport interface SubscriptionOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single subscription inside of it.\n */\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * An object that maps from the name of a variable as used in the subscription\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this subscription.\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context object to be passed through the link execution chain.\n */\n context?: DefaultContext;\n}\n\nexport interface MutationBaseOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> {\n /**\n * An object that represents the result of this mutation that will be\n * optimistically stored before the server has actually returned a result.\n * This is most often used for optimistic UI, where we want to be able to see\n * the result of a mutation immediately, and update the UI later if any errors\n * appear.\n */\n optimisticResponse?: TData | ((vars: TVariables) => TData);\n\n /**\n * A {@link MutationQueryReducersMap}, which is map from query names to\n * mutation query reducers. Briefly, this map defines how to incorporate the\n * results of the mutation into the results of queries that are currently\n * being watched by your application.\n */\n updateQueries?: MutationQueryReducersMap<TData>;\n\n /**\n * A list of query names which will be refetched once this mutation has\n * returned. This is often used if you have a set of queries which may be\n * affected by a mutation and will have to update. Rather than writing a\n * mutation query reducer (i.e. `updateQueries`) for this, you can simply\n * refetch the queries that will be affected and achieve a consistent store\n * once these queries return.\n */\n refetchQueries?:\n | ((result: FetchResult<TData>) => InternalRefetchQueriesInclude)\n | InternalRefetchQueriesInclude;\n\n /**\n * By default, `refetchQueries` does not wait for the refetched queries to\n * be completed, before resolving the mutation `Promise`. This ensures that\n * query refetching does not hold up mutation response handling (query\n * refetching is handled asynchronously). Set `awaitRefetchQueries` to\n * `true` if you would like to wait for the refetched queries to complete,\n * before the mutation can be marked as resolved.\n */\n awaitRefetchQueries?: boolean;\n\n /**\n * A function which provides an {@link ApolloCache} instance, and the result\n * of the mutation, to allow the user to update the store based on the\n * results of the mutation.\n *\n * This function will be called twice over the lifecycle of a mutation. Once\n * at the very beginning if an `optimisticResponse` was provided. The writes\n * created from the optimistic data will be rolled back before the second time\n * this function is called which is when the mutation has successfully\n * resolved. At that point `update` will be called with the *actual* mutation\n * result and those writes will not be rolled back.\n *\n * Note that since this function is intended to be used to update the\n * store, it cannot be used with a `no-cache` fetch policy. If you're\n * interested in performing some action after a mutation has completed,\n * and you don't need to update the store, use the Promise returned from\n * `client.mutate` instead.\n */\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n\n /**\n * A function that will be called for each ObservableQuery affected by\n * this mutation, after the mutation has completed.\n */\n onQueryUpdated?: OnQueryUpdated<any>;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * An object that maps from the name of a variable as used in the mutation\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * The context to be passed to the link execution chain. This context will\n * only be used with this mutation. It will not be used with\n * `refetchQueries`. Refetched queries use the context they were\n * initialized with (since the initial context is stored as part of the\n * `ObservableQuery` instance). If a specific context is needed when\n * refetching queries, make sure it is configured (via the\n * [query `context` option](https://www.apollographql.com/docs/react/api/apollo-client#ApolloClient.query))\n * when the query is first initialized/run.\n */\n context?: TContext;\n}\n\nexport interface MutationOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends MutationBaseOptions<TData, TVariables, TContext, TCache> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single mutation inside of it.\n */\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * Specifies the {@link MutationFetchPolicy} to be used for this query.\n * Mutations support only 'network-only' and 'no-cache' fetchPolicy strings.\n * If fetchPolicy is not provided, it defaults to 'network-only'.\n */\n fetchPolicy?: MutationFetchPolicy;\n\n /**\n * To avoid retaining sensitive information from mutation root field\n * arguments, Apollo Client v3.4+ automatically clears any `ROOT_MUTATION`\n * fields from the cache after each mutation finishes. If you need this\n * information to remain in the cache, you can prevent the removal by passing\n * `keepRootFields: true` to the mutation. `ROOT_MUTATION` result data are\n * also passed to the mutation `update` function, so we recommend obtaining\n * the results that way, rather than using this option, if possible.\n */\n keepRootFields?: boolean;\n}\n"]}
1
+ {"version":3,"file":"watchQueryOptions.js","sourceRoot":"","sources":["../../src/core/watchQueryOptions.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\n\nimport { FetchResult } from '../link/core';\nimport {\n DefaultContext,\n MutationQueryReducersMap,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n} from './types';\nimport { ApolloCache } from '../cache';\nimport { ObservableQuery } from './ObservableQuery';\n\n/**\n * fetchPolicy determines where the client may return a result from. The options are:\n * - cache-first (default): return result from cache. Only fetch from network if cached result is not available.\n * - cache-and-network: return result from cache first (if it exists), then return network result once it's available.\n * - cache-only: return result from cache if available, fail otherwise.\n * - no-cache: return result from network, fail if network call doesn't succeed, don't save to cache\n * - network-only: return result from network, fail if network call doesn't succeed, save to cache\n * - standby: only for queries that aren't actively watched, but should be available for refetch and updateQueries.\n */\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby';\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';\n\nexport type MutationFetchPolicy = Extract<\n FetchPolicy,\n | 'network-only' // default behavior (mutation results written to cache)\n | 'no-cache' // alternate behavior (results not written to cache)\n>;\n\nexport type RefetchWritePolicy = \"merge\" | \"overwrite\";\n\n/**\n * errorPolicy determines the level of events for errors in the execution result. The options are:\n * - none (default): any errors from the request are treated like runtime errors and the observable is stopped (XXX this is default to lower breaking changes going from AC 1.0 => 2.0)\n * - ignore: errors from the request do not stop the observable, but also don't call `next`\n * - all: errors are treated like data and will notify observables\n */\nexport type ErrorPolicy = 'none' | 'ignore' | 'all';\n\n/**\n * Query options.\n */\nexport interface QueryOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document that consists of a single query to be sent down to the\n * server.\n */\n // TODO REFACTOR: rename this to document. Didn't do it yet because it's in a\n // lot of tests.\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * A map going from variable name to variable value, where the variables are used\n * within the GraphQL query.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this query\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context to be passed to link execution chain\n */\n context?: any;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this query\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * The time interval (in milliseconds) on which this query should be\n * refetched from the server.\n */\n pollInterval?: number;\n\n /**\n * Whether or not updates to the network status should trigger next on the observer of this query\n */\n notifyOnNetworkStatusChange?: boolean;\n\n /**\n * Allow returning incomplete data from the cache when a larger query cannot\n * be fully satisfied by the cache, instead of returning nothing.\n */\n returnPartialData?: boolean;\n\n /**\n * If `true`, perform a query `refetch` if the query result is marked as\n * being partial, and the returned data is reset to an empty Object by the\n * Apollo Client `QueryManager` (due to a cache miss).\n */\n partialRefetch?: boolean;\n\n /**\n * Whether to canonize cache results before returning them. Canonization\n * takes some extra time, but it speeds up future deep equality comparisons.\n * Defaults to false.\n */\n canonizeResults?: boolean;\n}\n\n/**\n * Watched query options.\n */\nexport interface WatchQueryOptions<TVariables = OperationVariables, TData = any>\n extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {\n /**\n * Specifies the {@link FetchPolicy} to be used for this query.\n */\n fetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies the {@link FetchPolicy} to be used after this query has completed.\n */\n nextFetchPolicy?: WatchQueryFetchPolicy | ((\n this: WatchQueryOptions<TVariables, TData>,\n currentFetchPolicy: WatchQueryFetchPolicy,\n context: NextFetchPolicyContext<TData, TVariables>,\n ) => WatchQueryFetchPolicy);\n\n /**\n * Defaults to the initial value of options.fetchPolicy, but can be explicitly\n * configured to specify the WatchQueryFetchPolicy to revert back to whenever\n * variables change (unless nextFetchPolicy intervenes).\n */\n initialFetchPolicy?: WatchQueryFetchPolicy;\n\n /**\n * Specifies whether a {@link NetworkStatus.refetch} operation should merge\n * incoming field data with existing data, or overwrite the existing data.\n * Overwriting is probably preferable, but merging is currently the default\n * behavior, for backwards compatibility with Apollo Client 3.x.\n */\n refetchWritePolicy?: RefetchWritePolicy;\n}\n\nexport interface NextFetchPolicyContext<TData, TVariables> {\n reason:\n | \"after-fetch\"\n | \"variables-changed\";\n observable: ObservableQuery<TData, TVariables>;\n options: WatchQueryOptions<TVariables, TData>;\n initialFetchPolicy: WatchQueryFetchPolicy;\n}\n\nexport interface FetchMoreQueryOptions<TVariables, TData = any> {\n query?: DocumentNode | TypedDocumentNode<TData, TVariables>;\n variables?: Partial<TVariables>;\n context?: any;\n}\n\nexport type UpdateQueryFn<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = (\n previousQueryResult: TData,\n options: {\n subscriptionData: { data: TSubscriptionData };\n variables?: TSubscriptionVariables;\n },\n) => TData;\n\nexport type SubscribeToMoreOptions<\n TData = any,\n TSubscriptionVariables = OperationVariables,\n TSubscriptionData = TData\n> = {\n document: DocumentNode | TypedDocumentNode<TSubscriptionData, TSubscriptionVariables>;\n variables?: TSubscriptionVariables;\n updateQuery?: UpdateQueryFn<TData, TSubscriptionVariables, TSubscriptionData>;\n onError?: (error: Error) => void;\n context?: DefaultContext;\n};\n\nexport interface SubscriptionOptions<TVariables = OperationVariables, TData = any> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single subscription inside of it.\n */\n query: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * An object that maps from the name of a variable as used in the subscription\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * Specifies the {@link FetchPolicy} to be used for this subscription.\n */\n fetchPolicy?: FetchPolicy;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * Context object to be passed through the link execution chain.\n */\n context?: DefaultContext;\n}\n\nexport interface MutationBaseOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> {\n /**\n * An object that represents the result of this mutation that will be\n * optimistically stored before the server has actually returned a result.\n * This is most often used for optimistic UI, where we want to be able to see\n * the result of a mutation immediately, and update the UI later if any errors\n * appear.\n */\n optimisticResponse?: TData | ((vars: TVariables) => TData);\n\n /**\n * A {@link MutationQueryReducersMap}, which is map from query names to\n * mutation query reducers. Briefly, this map defines how to incorporate the\n * results of the mutation into the results of queries that are currently\n * being watched by your application.\n */\n updateQueries?: MutationQueryReducersMap<TData>;\n\n /**\n * A list of query names which will be refetched once this mutation has\n * returned. This is often used if you have a set of queries which may be\n * affected by a mutation and will have to update. Rather than writing a\n * mutation query reducer (i.e. `updateQueries`) for this, you can simply\n * refetch the queries that will be affected and achieve a consistent store\n * once these queries return.\n */\n refetchQueries?:\n | ((result: FetchResult<TData>) => InternalRefetchQueriesInclude)\n | InternalRefetchQueriesInclude;\n\n /**\n * By default, `refetchQueries` does not wait for the refetched queries to\n * be completed, before resolving the mutation `Promise`. This ensures that\n * query refetching does not hold up mutation response handling (query\n * refetching is handled asynchronously). Set `awaitRefetchQueries` to\n * `true` if you would like to wait for the refetched queries to complete,\n * before the mutation can be marked as resolved.\n */\n awaitRefetchQueries?: boolean;\n\n /**\n * A function which provides an {@link ApolloCache} instance, and the result\n * of the mutation, to allow the user to update the store based on the\n * results of the mutation.\n *\n * This function will be called twice over the lifecycle of a mutation. Once\n * at the very beginning if an `optimisticResponse` was provided. The writes\n * created from the optimistic data will be rolled back before the second time\n * this function is called which is when the mutation has successfully\n * resolved. At that point `update` will be called with the *actual* mutation\n * result and those writes will not be rolled back.\n *\n * Note that since this function is intended to be used to update the\n * store, it cannot be used with a `no-cache` fetch policy. If you're\n * interested in performing some action after a mutation has completed,\n * and you don't need to update the store, use the Promise returned from\n * `client.mutate` instead.\n */\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n\n /**\n * A function that will be called for each ObservableQuery affected by\n * this mutation, after the mutation has completed.\n */\n onQueryUpdated?: OnQueryUpdated<any>;\n\n /**\n * Specifies the {@link ErrorPolicy} to be used for this operation\n */\n errorPolicy?: ErrorPolicy;\n\n /**\n * An object that maps from the name of a variable as used in the mutation\n * GraphQL document to that variable's value.\n */\n variables?: TVariables;\n\n /**\n * The context to be passed to the link execution chain. This context will\n * only be used with this mutation. It will not be used with\n * `refetchQueries`. Refetched queries use the context they were\n * initialized with (since the initial context is stored as part of the\n * `ObservableQuery` instance). If a specific context is needed when\n * refetching queries, make sure it is configured (via the\n * [query `context` option](https://www.apollographql.com/docs/react/api/apollo-client#ApolloClient.query))\n * when the query is first initialized/run.\n */\n context?: TContext;\n}\n\nexport interface MutationOptions<\n TData = any,\n TVariables = OperationVariables,\n TContext = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>,\n> extends MutationBaseOptions<TData, TVariables, TContext, TCache> {\n /**\n * A GraphQL document, often created with `gql` from the `graphql-tag`\n * package, that contains a single mutation inside of it.\n */\n mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;\n\n /**\n * Specifies the {@link MutationFetchPolicy} to be used for this query.\n * Mutations support only 'network-only' and 'no-cache' fetchPolicy strings.\n * If fetchPolicy is not provided, it defaults to 'network-only'.\n */\n fetchPolicy?: MutationFetchPolicy;\n\n /**\n * To avoid retaining sensitive information from mutation root field\n * arguments, Apollo Client v3.4+ automatically clears any `ROOT_MUTATION`\n * fields from the cache after each mutation finishes. If you need this\n * information to remain in the cache, you can prevent the removal by passing\n * `keepRootFields: true` to the mutation. `ROOT_MUTATION` result data are\n * also passed to the mutation `update` function, so we recommend obtaining\n * the results that way, rather than using this option, if possible.\n */\n keepRootFields?: boolean;\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  // consult the @apollo/client/invariantErrorCodes.js file specific to
6
6
  // your @apollo/client version. This file is not meant to be imported.
7
7
  {
8
- "@apollo/client version": "3.6.0",
8
+ "@apollo/client version": "3.6.3",
9
9
 
10
10
  1: {
11
11
  file: "@apollo/client/cache/inmemory/entityStore.js",
@@ -1 +1 @@
1
- {"version":3,"file":"selectHttpOptionsAndBody.d.ts","sourceRoot":"","sources":["../../../src/link/http/selectHttpOptionsAndBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,KAAK,GAAG,MAAM,CAAA;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAM1B,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAO3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAK5B,KAAK,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAK3C,OAAO,CAAC,EAAE,GAAG,CAAC;IAKd,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,YAAY,CAAC,EAAE,GAAG,CAAC;IAOnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAW3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKhC,KAAK,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAiBD,eAAO,MAAM,kBAAkB;;;;;;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,OAAwC,CAAC;AAEtE,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,UAAU,EAC1B,GAAG,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;;;EAQ9B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,GAAG,OAAO,EAAE,UAAU,EAAE;;;EAsCzB"}
1
+ {"version":3,"file":"selectHttpOptionsAndBody.d.ts","sourceRoot":"","sources":["../../../src/link/http/selectHttpOptionsAndBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,KAAK,GAAG,MAAM,CAAA;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAM1B,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAO3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAK5B,KAAK,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAK3C,OAAO,CAAC,EAAE,GAAG,CAAC;IAKd,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,YAAY,CAAC,EAAE,GAAG,CAAC;IAOnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAW3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKhC,KAAK,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AA6BD,eAAO,MAAM,kBAAkB;;;;;;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,OAAwC,CAAC;AAEtE,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,UAAU,EAC1B,GAAG,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;;;EAQ9B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,GAAG,OAAO,EAAE,UAAU,EAAE;;;EAsCzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectHttpOptionsAndBody.js","sourceRoot":"","sources":["../../../src/link/http/selectHttpOptionsAndBody.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AAMxC,CAAC;AAoFF,IAAM,kBAAkB,GAAqB;IAC3C,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,IAAM,cAAc,GAAG;IAErB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,kBAAkB;CACnC,CAAC;AAEF,IAAM,cAAc,GAAG;IACrB,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAY,UAAC,GAAG,EAAE,OAAO,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAC;AAEtE,MAAM,UAAU,wBAAwB,CACtC,SAAoB,EACpB,cAA0B;IAC1B,iBAA6B;SAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;QAA7B,gCAA6B;;IAE7B,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChC,OAAO,gCAAgC,8BACrC,SAAS;QACT,cAAc,GACX,OAAO,UACV;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,SAAoB,EACpB,OAAgB;IAChB,iBAAwB;SAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;QAAxB,gCAAwB;;IAExB,IAAI,OAAO,GAAG,EAAsC,CAAC;IACrD,IAAI,IAAI,GAAG,EAAsB,CAAC;IAElC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;QACpB,OAAO,kCACF,OAAO,GACP,MAAM,CAAC,OAAO,KACjB,OAAO,wBACF,OAAO,CAAC,OAAO,GACf,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAExC,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;SAC1C;QAED,IAAI,yBACC,IAAI,GACJ,MAAM,CAAC,IAAI,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAGK,IAAA,aAAa,GAAmC,SAAS,cAA5C,EAAE,UAAU,GAAuB,SAAS,WAAhC,EAAE,SAAS,GAAY,SAAS,UAArB,EAAE,KAAK,GAAK,SAAS,MAAd,CAAe;IAClE,IAAM,IAAI,GAAS,EAAE,aAAa,eAAA,EAAE,SAAS,WAAA,EAAE,CAAC;IAEhD,IAAI,IAAI,CAAC,iBAAiB;QAAG,IAAY,CAAC,UAAU,GAAG,UAAU,CAAC;IAGlE,IAAI,IAAI,CAAC,YAAY;QAAG,IAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,SAAA;QACP,IAAI,MAAA;KACL,CAAC;AACJ,CAAC;AAAA,CAAC;AAEF,SAAS,kBAAkB,CACzB,OAA2C;IAE3C,IAAI,OAAO,EAAE;QACX,IAAM,YAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;YACvC,YAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,YAAU,CAAC;KACnB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { ASTNode, print } from 'graphql';\n\nimport { Operation } from '../core';\n\nexport interface Printer {\n (node: ASTNode, originalPrint: typeof print): string\n};\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: any;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n\n /**\n * If set to true, the default behavior of stripping unused variables\n * from the request will be disabled.\n *\n * Unused variables are likely to trigger server-side validation errors,\n * per https://spec.graphql.org/draft/#sec-All-Variables-Used, but this\n * includeUnusedVariables option can be useful if your server deviates\n * from the GraphQL specification by not strictly enforcing that rule.\n */\n includeUnusedVariables?: boolean;\n /**\n * A function to substitute for the default query print function. Can be\n * used to apply changes to the results of the print function.\n */\n print?: Printer;\n}\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: any;\n credentials?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const defaultPrinter: Printer = (ast, printer) => printer(ast);\n\nexport function selectHttpOptionsAndBody(\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array<HttpConfig>\n) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(\n operation,\n defaultPrinter,\n ...configs,\n );\n}\n\nexport function selectHttpOptionsAndBodyInternal(\n operation: Operation,\n printer: Printer,\n ...configs: HttpConfig[]\n) {\n let options = {} as HttpConfig & Record<string, any>;\n let http = {} as HttpQueryOptions;\n\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...headersToLowerCase(config.headers),\n },\n };\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = printer(query, print);\n\n return {\n options,\n body,\n };\n};\n\nfunction headersToLowerCase(\n headers: Record<string, string> | undefined\n): typeof headers {\n if (headers) {\n const normalized = Object.create(null);\n Object.keys(Object(headers)).forEach(name => {\n normalized[name.toLowerCase()] = headers[name];\n });\n return normalized;\n }\n return headers;\n}\n"]}
1
+ {"version":3,"file":"selectHttpOptionsAndBody.js","sourceRoot":"","sources":["../../../src/link/http/selectHttpOptionsAndBody.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,KAAK,EAAE,MAAM,SAAS,CAAC;AAMxC,CAAC;AAoFF,IAAM,kBAAkB,GAAqB;IAC3C,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,IAAM,cAAc,GAAG;IAErB,MAAM,EAAE,KAAK;IAab,cAAc,EAAE,kBAAkB;CACnC,CAAC;AAEF,IAAM,cAAc,GAAG;IACrB,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAY,UAAC,GAAG,EAAE,OAAO,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAC;AAEtE,MAAM,UAAU,wBAAwB,CACtC,SAAoB,EACpB,cAA0B;IAC1B,iBAA6B;SAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;QAA7B,gCAA6B;;IAE7B,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChC,OAAO,gCAAgC,8BACrC,SAAS;QACT,cAAc,GACX,OAAO,UACV;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,SAAoB,EACpB,OAAgB;IAChB,iBAAwB;SAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;QAAxB,gCAAwB;;IAExB,IAAI,OAAO,GAAG,EAAsC,CAAC;IACrD,IAAI,IAAI,GAAG,EAAsB,CAAC;IAElC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;QACpB,OAAO,kCACF,OAAO,GACP,MAAM,CAAC,OAAO,KACjB,OAAO,wBACF,OAAO,CAAC,OAAO,GACf,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAExC,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;SAC1C;QAED,IAAI,yBACC,IAAI,GACJ,MAAM,CAAC,IAAI,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAGK,IAAA,aAAa,GAAmC,SAAS,cAA5C,EAAE,UAAU,GAAuB,SAAS,WAAhC,EAAE,SAAS,GAAY,SAAS,UAArB,EAAE,KAAK,GAAK,SAAS,MAAd,CAAe;IAClE,IAAM,IAAI,GAAS,EAAE,aAAa,eAAA,EAAE,SAAS,WAAA,EAAE,CAAC;IAEhD,IAAI,IAAI,CAAC,iBAAiB;QAAG,IAAY,CAAC,UAAU,GAAG,UAAU,CAAC;IAGlE,IAAI,IAAI,CAAC,YAAY;QAAG,IAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,SAAA;QACP,IAAI,MAAA;KACL,CAAC;AACJ,CAAC;AAAA,CAAC;AAEF,SAAS,kBAAkB,CACzB,OAA2C;IAE3C,IAAI,OAAO,EAAE;QACX,IAAM,YAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;YACvC,YAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,YAAU,CAAC;KACnB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { ASTNode, print } from 'graphql';\n\nimport { Operation } from '../core';\n\nexport interface Printer {\n (node: ASTNode, originalPrint: typeof print): string\n};\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: any;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n\n /**\n * If set to true, the default behavior of stripping unused variables\n * from the request will be disabled.\n *\n * Unused variables are likely to trigger server-side validation errors,\n * per https://spec.graphql.org/draft/#sec-All-Variables-Used, but this\n * includeUnusedVariables option can be useful if your server deviates\n * from the GraphQL specification by not strictly enforcing that rule.\n */\n includeUnusedVariables?: boolean;\n /**\n * A function to substitute for the default query print function. Can be\n * used to apply changes to the results of the print function.\n */\n print?: Printer;\n}\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: any;\n credentials?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const defaultPrinter: Printer = (ast, printer) => printer(ast);\n\nexport function selectHttpOptionsAndBody(\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array<HttpConfig>\n) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(\n operation,\n defaultPrinter,\n ...configs,\n );\n}\n\nexport function selectHttpOptionsAndBodyInternal(\n operation: Operation,\n printer: Printer,\n ...configs: HttpConfig[]\n) {\n let options = {} as HttpConfig & Record<string, any>;\n let http = {} as HttpQueryOptions;\n\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...headersToLowerCase(config.headers),\n },\n };\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = printer(query, print);\n\n return {\n options,\n body,\n };\n};\n\nfunction headersToLowerCase(\n headers: Record<string, string> | undefined\n): typeof headers {\n if (headers) {\n const normalized = Object.create(null);\n Object.keys(Object(headers)).forEach(name => {\n normalized[name.toLowerCase()] = headers[name];\n });\n return normalized;\n }\n return headers;\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  import { DocumentNode, ExecutionResult, GraphQLError } from 'graphql';
2
2
  import { ApolloLink, Operation } from '../core';
3
+ import { NetworkError } from '../../errors';
3
4
  export declare const VERSION = 1;
4
5
  export interface ErrorResponse {
5
6
  graphQLErrors?: readonly GraphQLError[];
6
- networkError?: Error;
7
+ networkError?: NetworkError;
7
8
  response?: ExecutionResult;
8
9
  operation: Operation;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/persisted-queries/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQhD,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,aAAK,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACvE,aAAK,oBAAoB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAErF,yBAAiB,kBAAkB,CAAC;IAClC,UAAU,WAAW;QACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;QAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC;IAED,UAAU,aAAc,SAAQ,WAAW;QACzC,MAAM,EAAE,cAAc,CAAC;QACvB,YAAY,CAAC,EAAE,KAAK,CAAC;KACtB;IAED,UAAU,mBAAoB,SAAQ,WAAW;QAC/C,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,YAAY,EAAE,oBAAoB,CAAC;KACpC;IAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,mBAAmB,CAAC;;CAC3D;AA4CD,eAAO,MAAM,wBAAwB,YAC1B,mBAAmB,OAAO,eAiLpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/persisted-queries/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,aAAK,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACvE,aAAK,oBAAoB,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAErF,yBAAiB,kBAAkB,CAAC;IAClC,UAAU,WAAW;QACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;QAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC;IAED,UAAU,aAAc,SAAQ,WAAW;QACzC,MAAM,EAAE,cAAc,CAAC;QACvB,YAAY,CAAC,EAAE,KAAK,CAAC;KACtB;IAED,UAAU,mBAAoB,SAAQ,WAAW;QAC/C,MAAM,CAAC,EAAE,KAAK,CAAC;QACf,YAAY,EAAE,oBAAoB,CAAC;KACpC;IAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,mBAAmB,CAAC;;CAC3D;AAuDD,eAAO,MAAM,wBAAwB,YAC1B,mBAAmB,OAAO,eA4LpC,CAAC"}
@@ -2,7 +2,7 @@ import { __assign } from "tslib";
2
2
  import { invariant } from "../../utilities/globals/index.js";
3
3
  import { print } from 'graphql';
4
4
  import { ApolloLink } from "../core/index.js";
5
- import { Observable, compact, } from "../../utilities/index.js";
5
+ import { Observable, compact, isNonEmptyArray, } from "../../utilities/index.js";
6
6
  export var VERSION = 1;
7
7
  export var PersistedQueryLink;
8
8
  (function (PersistedQueryLink) {
@@ -10,16 +10,23 @@ export var PersistedQueryLink;
10
10
  ;
11
11
  ;
12
12
  })(PersistedQueryLink || (PersistedQueryLink = {}));
13
+ function collectErrorsByMessage(graphQLErrors) {
14
+ var collected = Object.create(null);
15
+ if (isNonEmptyArray(graphQLErrors)) {
16
+ graphQLErrors.forEach(function (error) { return collected[error.message] = error; });
17
+ }
18
+ return collected;
19
+ }
13
20
  var defaultOptions = {
14
21
  disable: function (_a) {
15
22
  var graphQLErrors = _a.graphQLErrors, operation = _a.operation;
16
- if (graphQLErrors &&
17
- graphQLErrors.some(function (_a) {
18
- var message = _a.message;
19
- return message === 'PersistedQueryNotSupported';
20
- })) {
23
+ var errorMessages = collectErrorsByMessage(graphQLErrors);
24
+ if (errorMessages.PersistedQueryNotSupported) {
21
25
  return true;
22
26
  }
27
+ if (errorMessages.PersistedQueryNotFound) {
28
+ return false;
29
+ }
23
30
  var response = operation.getContext().response;
24
31
  if (response &&
25
32
  response.status &&
@@ -73,19 +80,25 @@ export var createPersistedQueryLink = function (options) {
73
80
  var response = _a.response, networkError = _a.networkError;
74
81
  if (!retried && ((response && response.errors) || networkError)) {
75
82
  retried = true;
83
+ var graphQLErrors = [];
84
+ var responseErrors = response && response.errors;
85
+ if (isNonEmptyArray(responseErrors)) {
86
+ graphQLErrors.push.apply(graphQLErrors, responseErrors);
87
+ }
88
+ var networkErrors = networkError &&
89
+ networkError.result &&
90
+ networkError.result.errors;
91
+ if (isNonEmptyArray(networkErrors)) {
92
+ graphQLErrors.push.apply(graphQLErrors, networkErrors);
93
+ }
76
94
  var disablePayload = {
77
95
  response: response,
78
96
  networkError: networkError,
79
97
  operation: operation,
80
- graphQLErrors: response ? response.errors : undefined,
98
+ graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,
81
99
  };
82
100
  supportsPersistedQueries = !disable(disablePayload);
83
- if ((response &&
84
- response.errors &&
85
- response.errors.some(function (_a) {
86
- var message = _a.message;
87
- return message === 'PersistedQueryNotFound';
88
- })) ||
101
+ if (collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||
89
102
  !supportsPersistedQueries) {
90
103
  if (subscription)
91
104
  subscription.unsubscribe();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/persisted-queries/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../utilities/globals';\n\nimport { print } from 'graphql';\nimport {\n DocumentNode,\n ExecutionResult,\n GraphQLError,\n} from 'graphql';\n\nimport { ApolloLink, Operation } from '../core';\nimport {\n Observable,\n Observer,\n ObservableSubscription,\n compact,\n} from '../../utilities';\n\nexport const VERSION = 1;\n\nexport interface ErrorResponse {\n graphQLErrors?: readonly GraphQLError[];\n networkError?: Error;\n response?: ExecutionResult;\n operation: Operation;\n}\n\ntype SHA256Function = (...args: any[]) => string | PromiseLike<string>;\ntype GenerateHashFunction = (document: DocumentNode) => string | PromiseLike<string>;\n\nexport namespace PersistedQueryLink {\n interface BaseOptions {\n disable?: (error: ErrorResponse) => boolean;\n useGETForHashedQueries?: boolean;\n };\n\n interface SHA256Options extends BaseOptions {\n sha256: SHA256Function;\n generateHash?: never;\n };\n\n interface GenerateHashOptions extends BaseOptions {\n sha256?: never;\n generateHash: GenerateHashFunction;\n };\n\n export type Options = SHA256Options | GenerateHashOptions;\n}\n\nconst defaultOptions = {\n disable: ({ graphQLErrors, operation }: ErrorResponse) => {\n // if the server doesn't support persisted queries, don't try anymore\n if (\n graphQLErrors &&\n graphQLErrors.some(\n ({ message }) => message === 'PersistedQueryNotSupported',\n )\n ) {\n return true;\n }\n\n const { response } = operation.getContext();\n // if the server responds with bad request\n // apollo-server responds with 400 for GET and 500 for POST when no query is found\n if (\n response &&\n response.status &&\n (response.status === 400 || response.status === 500)\n ) {\n return true;\n }\n\n return false;\n },\n useGETForHashedQueries: false,\n};\n\nfunction operationDefinesMutation(operation: Operation) {\n return operation.query.definitions.some(\n d => d.kind === 'OperationDefinition' && d.operation === 'mutation');\n}\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst hashesByQuery = new WeakMap<\n DocumentNode,\n Record<string, Promise<string>>\n>();\n\nlet nextHashesChildKey = 0;\n\nexport const createPersistedQueryLink = (\n options: PersistedQueryLink.Options,\n) => {\n // Ensure a SHA-256 hash function is provided, if a custom hash\n // generation function is not provided. We don't supply a SHA-256 hash\n // function by default, to avoid forcing one as a dependency. Developers\n // should pick the most appropriate SHA-256 function (sync or async) for\n // their needs/environment, or provide a fully custom hash generation\n // function (via the `generateHash` option) if they want to handle\n // hashing with something other than SHA-256.\n invariant(\n options && (\n typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'\n ),\n 'Missing/invalid \"sha256\" or \"generateHash\" function. Please ' +\n 'configure one using the \"createPersistedQueryLink(options)\" options ' +\n 'parameter.'\n );\n\n const {\n sha256,\n // If both a `sha256` and `generateHash` option are provided, the\n // `sha256` option will be ignored. Developers can configure and\n // use any hashing approach they want in a custom `generateHash`\n // function; they aren't limited to SHA-256.\n generateHash = (query: DocumentNode) =>\n Promise.resolve<string>(sha256!(print(query))),\n disable,\n useGETForHashedQueries\n } = compact(defaultOptions, options);\n\n let supportsPersistedQueries = true;\n\n const hashesChildKey = 'forLink' + nextHashesChildKey++;\n\n const getHashPromise = (query: DocumentNode) =>\n new Promise<string>(resolve => resolve(generateHash(query)));\n\n function getQueryHash(query: DocumentNode): Promise<string> {\n if (!query || typeof query !== 'object') {\n // If the query is not an object, we won't be able to store its hash as\n // a property of query[hashesKey], so we let generateHash(query) decide\n // what to do with the bogus query.\n return getHashPromise(query);\n }\n let hashes = hashesByQuery.get(query)!;\n if (!hashes) hashesByQuery.set(query, hashes = Object.create(null));\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = getHashPromise(query);\n }\n\n return new ApolloLink((operation, forward) => {\n invariant(\n forward,\n 'PersistedQueryLink cannot be the last link in the chain.'\n );\n\n const { query } = operation;\n\n return new Observable((observer: Observer<ExecutionResult>) => {\n let subscription: ObservableSubscription;\n let retried = false;\n let originalFetchOptions: any;\n let setFetchOptions = false;\n const retry = (\n {\n response,\n networkError,\n }: { response?: ExecutionResult; networkError?: Error },\n cb: () => void,\n ) => {\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n\n const disablePayload = {\n response,\n networkError,\n operation,\n graphQLErrors: response ? response.errors : undefined,\n };\n\n // if the server doesn't support persisted queries, don't try anymore\n supportsPersistedQueries = !disable(disablePayload);\n\n // if its not found, we can try it again, otherwise just report the error\n if (\n (response &&\n response.errors &&\n response.errors.some(\n ({ message }: { message: string }) =>\n message === 'PersistedQueryNotFound',\n )) ||\n !supportsPersistedQueries\n ) {\n // need to recall the link chain\n if (subscription) subscription.unsubscribe();\n // actually send the query this time\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n // Since we're including the full query, which may be\n // large, we should send it in the body of a POST request.\n // See issue #7456.\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n\n return;\n }\n }\n cb();\n };\n const handler = {\n next: (response: ExecutionResult) => {\n retry({ response }, () => observer.next!(response));\n },\n error: (networkError: Error) => {\n retry({ networkError }, () => observer.error!(networkError));\n },\n complete: observer.complete!.bind(observer),\n };\n\n // don't send the query the first time\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n\n // If requested, set method to GET if there are no mutations. Remember the\n // original fetchOptions so we can restore them if we fall back to a\n // non-hashed request.\n if (\n useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)\n ) {\n operation.setContext(\n ({ fetchOptions = {} }: { fetchOptions: Record<string, any> }) => {\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: {\n ...fetchOptions,\n method: 'GET',\n },\n };\n },\n );\n setFetchOptions = true;\n }\n\n if (supportsPersistedQueries) {\n getQueryHash(query).then((sha256Hash) => {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error!.bind(observer));;\n } else {\n subscription = forward(operation).subscribe(handler);\n }\n\n return () => {\n if (subscription) subscription.unsubscribe();\n };\n });\n });\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/persisted-queries/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../utilities/globals';\n\nimport { print } from 'graphql';\nimport {\n DocumentNode,\n ExecutionResult,\n GraphQLError,\n} from 'graphql';\n\nimport { ApolloLink, Operation } from '../core';\nimport {\n Observable,\n Observer,\n ObservableSubscription,\n compact,\n isNonEmptyArray,\n} from '../../utilities';\nimport { NetworkError } from '../../errors';\nimport { ServerError } from '../utils';\n\nexport const VERSION = 1;\n\nexport interface ErrorResponse {\n graphQLErrors?: readonly GraphQLError[];\n networkError?: NetworkError;\n response?: ExecutionResult;\n operation: Operation;\n}\n\ntype SHA256Function = (...args: any[]) => string | PromiseLike<string>;\ntype GenerateHashFunction = (document: DocumentNode) => string | PromiseLike<string>;\n\nexport namespace PersistedQueryLink {\n interface BaseOptions {\n disable?: (error: ErrorResponse) => boolean;\n useGETForHashedQueries?: boolean;\n };\n\n interface SHA256Options extends BaseOptions {\n sha256: SHA256Function;\n generateHash?: never;\n };\n\n interface GenerateHashOptions extends BaseOptions {\n sha256?: never;\n generateHash: GenerateHashFunction;\n };\n\n export type Options = SHA256Options | GenerateHashOptions;\n}\n\nfunction collectErrorsByMessage<TError extends Error>(\n graphQLErrors: TError[] | readonly TError[] | undefined,\n): Record<string, TError> {\n const collected: Record<string, TError> = Object.create(null);\n if (isNonEmptyArray(graphQLErrors)) {\n graphQLErrors.forEach(error => collected[error.message] = error);\n }\n return collected;\n}\n\nconst defaultOptions = {\n disable: ({ graphQLErrors, operation }: ErrorResponse) => {\n const errorMessages = collectErrorsByMessage(graphQLErrors);\n\n // if the server doesn't support persisted queries, don't try anymore\n if (errorMessages.PersistedQueryNotSupported) {\n return true;\n }\n\n if (errorMessages.PersistedQueryNotFound) {\n return false;\n }\n\n const { response } = operation.getContext();\n // if the server responds with bad request\n // apollo-server responds with 400 for GET and 500 for POST when no query is found\n if (\n response &&\n response.status &&\n (response.status === 400 || response.status === 500)\n ) {\n return true;\n }\n\n return false;\n },\n useGETForHashedQueries: false,\n};\n\nfunction operationDefinesMutation(operation: Operation) {\n return operation.query.definitions.some(\n d => d.kind === 'OperationDefinition' && d.operation === 'mutation');\n}\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst hashesByQuery = new WeakMap<\n DocumentNode,\n Record<string, Promise<string>>\n>();\n\nlet nextHashesChildKey = 0;\n\nexport const createPersistedQueryLink = (\n options: PersistedQueryLink.Options,\n) => {\n // Ensure a SHA-256 hash function is provided, if a custom hash\n // generation function is not provided. We don't supply a SHA-256 hash\n // function by default, to avoid forcing one as a dependency. Developers\n // should pick the most appropriate SHA-256 function (sync or async) for\n // their needs/environment, or provide a fully custom hash generation\n // function (via the `generateHash` option) if they want to handle\n // hashing with something other than SHA-256.\n invariant(\n options && (\n typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'\n ),\n 'Missing/invalid \"sha256\" or \"generateHash\" function. Please ' +\n 'configure one using the \"createPersistedQueryLink(options)\" options ' +\n 'parameter.'\n );\n\n const {\n sha256,\n // If both a `sha256` and `generateHash` option are provided, the\n // `sha256` option will be ignored. Developers can configure and\n // use any hashing approach they want in a custom `generateHash`\n // function; they aren't limited to SHA-256.\n generateHash = (query: DocumentNode) =>\n Promise.resolve<string>(sha256!(print(query))),\n disable,\n useGETForHashedQueries\n } = compact(defaultOptions, options);\n\n let supportsPersistedQueries = true;\n\n const hashesChildKey = 'forLink' + nextHashesChildKey++;\n\n const getHashPromise = (query: DocumentNode) =>\n new Promise<string>(resolve => resolve(generateHash(query)));\n\n function getQueryHash(query: DocumentNode): Promise<string> {\n if (!query || typeof query !== 'object') {\n // If the query is not an object, we won't be able to store its hash as\n // a property of query[hashesKey], so we let generateHash(query) decide\n // what to do with the bogus query.\n return getHashPromise(query);\n }\n let hashes = hashesByQuery.get(query)!;\n if (!hashes) hashesByQuery.set(query, hashes = Object.create(null));\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = getHashPromise(query);\n }\n\n return new ApolloLink((operation, forward) => {\n invariant(\n forward,\n 'PersistedQueryLink cannot be the last link in the chain.'\n );\n\n const { query } = operation;\n\n return new Observable((observer: Observer<ExecutionResult>) => {\n let subscription: ObservableSubscription;\n let retried = false;\n let originalFetchOptions: any;\n let setFetchOptions = false;\n const retry = (\n {\n response,\n networkError,\n }: { response?: ExecutionResult; networkError?: ServerError },\n cb: () => void,\n ) => {\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n\n const graphQLErrors: GraphQLError[] = [];\n\n const responseErrors = response && response.errors;\n if (isNonEmptyArray(responseErrors)) {\n graphQLErrors.push(...responseErrors);\n }\n\n // Network errors can return GraphQL errors on for example a 403\n const networkErrors =\n networkError &&\n networkError.result &&\n networkError.result.errors as GraphQLError[];\n if (isNonEmptyArray(networkErrors)) {\n graphQLErrors.push(...networkErrors);\n }\n\n const disablePayload = {\n response,\n networkError,\n operation,\n graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,\n };\n\n // if the server doesn't support persisted queries, don't try anymore\n supportsPersistedQueries = !disable(disablePayload);\n\n // if its not found, we can try it again, otherwise just report the error\n if (\n collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||\n !supportsPersistedQueries\n ) {\n // need to recall the link chain\n if (subscription) subscription.unsubscribe();\n // actually send the query this time\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n // Since we're including the full query, which may be\n // large, we should send it in the body of a POST request.\n // See issue #7456.\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n\n return;\n }\n }\n cb();\n };\n const handler = {\n next: (response: ExecutionResult) => {\n retry({ response }, () => observer.next!(response));\n },\n error: (networkError: ServerError) => {\n retry({ networkError }, () => observer.error!(networkError));\n },\n complete: observer.complete!.bind(observer),\n };\n\n // don't send the query the first time\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n\n // If requested, set method to GET if there are no mutations. Remember the\n // original fetchOptions so we can restore them if we fall back to a\n // non-hashed request.\n if (\n useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)\n ) {\n operation.setContext(\n ({ fetchOptions = {} }: { fetchOptions: Record<string, any> }) => {\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: {\n ...fetchOptions,\n method: 'GET',\n },\n };\n },\n );\n setFetchOptions = true;\n }\n\n if (supportsPersistedQueries) {\n getQueryHash(query).then((sha256Hash) => {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error!.bind(observer));;\n } else {\n subscription = forward(operation).subscribe(handler);\n }\n\n return () => {\n if (subscription) subscription.unsubscribe();\n };\n });\n });\n};\n"]}
@@ -12,16 +12,23 @@ var VERSION = 1;
12
12
  exports.PersistedQueryLink = void 0;
13
13
  (function (PersistedQueryLink) {
14
14
  })(exports.PersistedQueryLink || (exports.PersistedQueryLink = {}));
15
+ function collectErrorsByMessage(graphQLErrors) {
16
+ var collected = Object.create(null);
17
+ if (utilities.isNonEmptyArray(graphQLErrors)) {
18
+ graphQLErrors.forEach(function (error) { return collected[error.message] = error; });
19
+ }
20
+ return collected;
21
+ }
15
22
  var defaultOptions = {
16
23
  disable: function (_a) {
17
24
  var graphQLErrors = _a.graphQLErrors, operation = _a.operation;
18
- if (graphQLErrors &&
19
- graphQLErrors.some(function (_a) {
20
- var message = _a.message;
21
- return message === 'PersistedQueryNotSupported';
22
- })) {
25
+ var errorMessages = collectErrorsByMessage(graphQLErrors);
26
+ if (errorMessages.PersistedQueryNotSupported) {
23
27
  return true;
24
28
  }
29
+ if (errorMessages.PersistedQueryNotFound) {
30
+ return false;
31
+ }
25
32
  var response = operation.getContext().response;
26
33
  if (response &&
27
34
  response.status &&
@@ -75,19 +82,25 @@ var createPersistedQueryLink = function (options) {
75
82
  var response = _a.response, networkError = _a.networkError;
76
83
  if (!retried && ((response && response.errors) || networkError)) {
77
84
  retried = true;
85
+ var graphQLErrors = [];
86
+ var responseErrors = response && response.errors;
87
+ if (utilities.isNonEmptyArray(responseErrors)) {
88
+ graphQLErrors.push.apply(graphQLErrors, responseErrors);
89
+ }
90
+ var networkErrors = networkError &&
91
+ networkError.result &&
92
+ networkError.result.errors;
93
+ if (utilities.isNonEmptyArray(networkErrors)) {
94
+ graphQLErrors.push.apply(graphQLErrors, networkErrors);
95
+ }
78
96
  var disablePayload = {
79
97
  response: response,
80
98
  networkError: networkError,
81
99
  operation: operation,
82
- graphQLErrors: response ? response.errors : undefined,
100
+ graphQLErrors: utilities.isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,
83
101
  };
84
102
  supportsPersistedQueries = !disable(disablePayload);
85
- if ((response &&
86
- response.errors &&
87
- response.errors.some(function (_a) {
88
- var message = _a.message;
89
- return message === 'PersistedQueryNotFound';
90
- })) ||
103
+ if (collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||
91
104
  !supportsPersistedQueries) {
92
105
  if (subscription)
93
106
  subscription.unsubscribe();
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-queries.cjs","sources":["index.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { invariant } from '../../utilities/globals';\nimport { print } from 'graphql';\nimport { ApolloLink } from '../core';\nimport { Observable, compact, } from '../../utilities';\nexport var VERSION = 1;\nexport var PersistedQueryLink;\n(function (PersistedQueryLink) {\n ;\n ;\n ;\n})(PersistedQueryLink || (PersistedQueryLink = {}));\nvar defaultOptions = {\n disable: function (_a) {\n var graphQLErrors = _a.graphQLErrors, operation = _a.operation;\n if (graphQLErrors &&\n graphQLErrors.some(function (_a) {\n var message = _a.message;\n return message === 'PersistedQueryNotSupported';\n })) {\n return true;\n }\n var response = operation.getContext().response;\n if (response &&\n response.status &&\n (response.status === 400 || response.status === 500)) {\n return true;\n }\n return false;\n },\n useGETForHashedQueries: false,\n};\nfunction operationDefinesMutation(operation) {\n return operation.query.definitions.some(function (d) { return d.kind === 'OperationDefinition' && d.operation === 'mutation'; });\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hashesByQuery = new WeakMap();\nvar nextHashesChildKey = 0;\nexport var createPersistedQueryLink = function (options) {\n __DEV__ ? invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 'Missing/invalid \"sha256\" or \"generateHash\" function. Please ' +\n 'configure one using the \"createPersistedQueryLink(options)\" options ' +\n 'parameter.') : invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 22);\n var _a = compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {\n return Promise.resolve(sha256(print(query)));\n } : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var hashesChildKey = 'forLink' + nextHashesChildKey++;\n var getHashPromise = function (query) {\n return new Promise(function (resolve) { return resolve(generateHash(query)); });\n };\n function getQueryHash(query) {\n if (!query || typeof query !== 'object') {\n return getHashPromise(query);\n }\n var hashes = hashesByQuery.get(query);\n if (!hashes)\n hashesByQuery.set(query, hashes = Object.create(null));\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = getHashPromise(query);\n }\n return new ApolloLink(function (operation, forward) {\n __DEV__ ? invariant(forward, 'PersistedQueryLink cannot be the last link in the chain.') : invariant(forward, 23);\n var query = operation.query;\n return new Observable(function (observer) {\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var retry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: response ? response.errors : undefined,\n };\n supportsPersistedQueries = !disable(disablePayload);\n if ((response &&\n response.errors &&\n response.errors.some(function (_a) {\n var message = _a.message;\n return message === 'PersistedQueryNotFound';\n })) ||\n !supportsPersistedQueries) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n retry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n retry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: __assign(__assign({}, fetchOptions), { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n if (supportsPersistedQueries) {\n getQueryHash(query).then(function (sha256Hash) {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error.bind(observer));\n ;\n }\n else {\n subscription = forward(operation).subscribe(handler);\n }\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["PersistedQueryLink","invariant","compact","print","ApolloLink","Observable","__assign"],"mappings":"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"}
1
+ {"version":3,"file":"persisted-queries.cjs","sources":["index.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { invariant } from '../../utilities/globals';\nimport { print } from 'graphql';\nimport { ApolloLink } from '../core';\nimport { Observable, compact, isNonEmptyArray, } from '../../utilities';\nexport var VERSION = 1;\nexport var PersistedQueryLink;\n(function (PersistedQueryLink) {\n ;\n ;\n ;\n})(PersistedQueryLink || (PersistedQueryLink = {}));\nfunction collectErrorsByMessage(graphQLErrors) {\n var collected = Object.create(null);\n if (isNonEmptyArray(graphQLErrors)) {\n graphQLErrors.forEach(function (error) { return collected[error.message] = error; });\n }\n return collected;\n}\nvar defaultOptions = {\n disable: function (_a) {\n var graphQLErrors = _a.graphQLErrors, operation = _a.operation;\n var errorMessages = collectErrorsByMessage(graphQLErrors);\n if (errorMessages.PersistedQueryNotSupported) {\n return true;\n }\n if (errorMessages.PersistedQueryNotFound) {\n return false;\n }\n var response = operation.getContext().response;\n if (response &&\n response.status &&\n (response.status === 400 || response.status === 500)) {\n return true;\n }\n return false;\n },\n useGETForHashedQueries: false,\n};\nfunction operationDefinesMutation(operation) {\n return operation.query.definitions.some(function (d) { return d.kind === 'OperationDefinition' && d.operation === 'mutation'; });\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hashesByQuery = new WeakMap();\nvar nextHashesChildKey = 0;\nexport var createPersistedQueryLink = function (options) {\n __DEV__ ? invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 'Missing/invalid \"sha256\" or \"generateHash\" function. Please ' +\n 'configure one using the \"createPersistedQueryLink(options)\" options ' +\n 'parameter.') : invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 22);\n var _a = compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {\n return Promise.resolve(sha256(print(query)));\n } : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var hashesChildKey = 'forLink' + nextHashesChildKey++;\n var getHashPromise = function (query) {\n return new Promise(function (resolve) { return resolve(generateHash(query)); });\n };\n function getQueryHash(query) {\n if (!query || typeof query !== 'object') {\n return getHashPromise(query);\n }\n var hashes = hashesByQuery.get(query);\n if (!hashes)\n hashesByQuery.set(query, hashes = Object.create(null));\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = getHashPromise(query);\n }\n return new ApolloLink(function (operation, forward) {\n __DEV__ ? invariant(forward, 'PersistedQueryLink cannot be the last link in the chain.') : invariant(forward, 23);\n var query = operation.query;\n return new Observable(function (observer) {\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var retry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var graphQLErrors = [];\n var responseErrors = response && response.errors;\n if (isNonEmptyArray(responseErrors)) {\n graphQLErrors.push.apply(graphQLErrors, responseErrors);\n }\n var networkErrors = networkError &&\n networkError.result &&\n networkError.result.errors;\n if (isNonEmptyArray(networkErrors)) {\n graphQLErrors.push.apply(graphQLErrors, networkErrors);\n }\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,\n };\n supportsPersistedQueries = !disable(disablePayload);\n if (collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||\n !supportsPersistedQueries) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n retry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n retry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: __assign(__assign({}, fetchOptions), { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n if (supportsPersistedQueries) {\n getQueryHash(query).then(function (sha256Hash) {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error.bind(observer));\n ;\n }\n else {\n subscription = forward(operation).subscribe(handler);\n }\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["PersistedQueryLink","isNonEmptyArray","invariant","compact","print","ApolloLink","Observable","__assign"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/client",
3
- "version": "3.6.0",
3
+ "version": "3.6.3",
4
4
  "description": "A fully-featured caching GraphQL client.",
5
5
  "private": false,
6
6
  "keywords": [
@@ -55,13 +55,13 @@
55
55
  "optimism": "^0.16.1",
56
56
  "prop-types": "^15.7.2",
57
57
  "symbol-observable": "^4.0.0",
58
- "ts-invariant": "^0.10.0",
58
+ "ts-invariant": "^0.10.2",
59
59
  "tslib": "^2.3.0",
60
60
  "use-sync-external-store": "^1.0.0",
61
61
  "zen-observable-ts": "^1.2.0"
62
62
  },
63
63
  "devDependencies": {
64
- "@babel/parser": "7.17.9",
64
+ "@babel/parser": "7.17.10",
65
65
  "@graphql-tools/schema": "8.3.10",
66
66
  "@rollup/plugin-node-resolve": "11.2.1",
67
67
  "@testing-library/react": "12.1.5",
@@ -72,35 +72,35 @@
72
72
  "@types/hoist-non-react-statics": "3.3.1",
73
73
  "@types/jest": "27.4.1",
74
74
  "@types/lodash": "4.14.182",
75
- "@types/node": "16.11.27",
75
+ "@types/node": "16.11.33",
76
76
  "@types/react": "17.0.44",
77
- "@types/react-dom": "17.0.15",
78
- "@types/use-sync-external-store": "^0.0.3",
79
- "acorn": "8.6.0",
77
+ "@types/react-dom": "17.0.16",
78
+ "@types/use-sync-external-store": "0.0.3",
79
+ "acorn": "8.7.1",
80
80
  "bundlesize": "0.18.1",
81
81
  "cross-fetch": "3.1.5",
82
82
  "crypto-hash": "1.3.0",
83
83
  "fetch-mock": "9.11.0",
84
84
  "glob": "8.0.1",
85
- "graphql": "16.3.0",
86
- "graphql-ws": "5.7.0",
85
+ "graphql": "16.4.0",
86
+ "graphql-ws": "5.8.1",
87
87
  "jest": "27.5.1",
88
88
  "jest-fetch-mock": "3.0.3",
89
89
  "jest-junit": "13.2.0",
90
90
  "lodash": "4.17.21",
91
91
  "react": "17.0.2",
92
92
  "react-dom": "17.0.2",
93
- "recast": "0.21.0",
93
+ "recast": "0.21.1",
94
94
  "resolve": "1.22.0",
95
95
  "rimraf": "3.0.2",
96
- "rollup": "2.70.2",
96
+ "rollup": "2.71.1",
97
97
  "rollup-plugin-terser": "7.0.2",
98
98
  "rxjs": "7.5.5",
99
99
  "subscriptions-transport-ws": "0.11.0",
100
- "terser": "5.12.1",
100
+ "terser": "5.13.1",
101
101
  "ts-jest": "27.1.4",
102
102
  "ts-node": "10.7.0",
103
- "typescript": "4.6.3",
103
+ "typescript": "4.6.4",
104
104
  "wait-for-observables": "1.0.3",
105
105
  "whatwg-fetch": "3.6.2"
106
106
  },
@@ -3,10 +3,10 @@ import * as React from 'react';
3
3
  import { getApolloContext } from "./ApolloContext.js";
4
4
  export var ApolloConsumer = function (props) {
5
5
  var ApolloContext = getApolloContext();
6
- return React.createElement(ApolloContext.Consumer, null, function (context) {
6
+ return (React.createElement(ApolloContext.Consumer, null, function (context) {
7
7
  __DEV__ ? invariant(context && context.client, 'Could not find "client" in the context of ApolloConsumer. ' +
8
8
  'Wrap the root component in an <ApolloProvider>.') : invariant(context && context.client, 25);
9
9
  return props.children(context.client);
10
- });
10
+ }));
11
11
  };
12
12
  //# sourceMappingURL=ApolloConsumer.js.map
@@ -4,7 +4,7 @@ import { getApolloContext } from "./ApolloContext.js";
4
4
  export var ApolloProvider = function (_a) {
5
5
  var client = _a.client, children = _a.children;
6
6
  var ApolloContext = getApolloContext();
7
- return React.createElement(ApolloContext.Consumer, null, function (context) {
7
+ return (React.createElement(ApolloContext.Consumer, null, function (context) {
8
8
  if (context === void 0) { context = {}; }
9
9
  if (client && context.client !== client) {
10
10
  context = Object.assign({}, context, { client: client });
@@ -12,6 +12,6 @@ export var ApolloProvider = function (_a) {
12
12
  __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +
13
13
  'sure you pass in your client via the "client" prop.') : invariant(context.client, 26);
14
14
  return (React.createElement(ApolloContext.Provider, { value: context }, children));
15
- });
15
+ }));
16
16
  };
17
17
  //# sourceMappingURL=ApolloProvider.js.map
@@ -39,17 +39,17 @@ function getApolloContext() {
39
39
 
40
40
  var ApolloConsumer = function (props) {
41
41
  var ApolloContext = getApolloContext();
42
- return React__namespace.createElement(ApolloContext.Consumer, null, function (context) {
42
+ return (React__namespace.createElement(ApolloContext.Consumer, null, function (context) {
43
43
  __DEV__ ? globals.invariant(context && context.client, 'Could not find "client" in the context of ApolloConsumer. ' +
44
44
  'Wrap the root component in an <ApolloProvider>.') : globals.invariant(context && context.client, 25);
45
45
  return props.children(context.client);
46
- });
46
+ }));
47
47
  };
48
48
 
49
49
  var ApolloProvider = function (_a) {
50
50
  var client = _a.client, children = _a.children;
51
51
  var ApolloContext = getApolloContext();
52
- return React__namespace.createElement(ApolloContext.Consumer, null, function (context) {
52
+ return (React__namespace.createElement(ApolloContext.Consumer, null, function (context) {
53
53
  if (context === void 0) { context = {}; }
54
54
  if (client && context.client !== client) {
55
55
  context = Object.assign({}, context, { client: client });
@@ -57,7 +57,7 @@ var ApolloProvider = function (_a) {
57
57
  __DEV__ ? globals.invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +
58
58
  'sure you pass in your client via the "client" prop.') : globals.invariant(context.client, 26);
59
59
  return (React__namespace.createElement(ApolloContext.Provider, { value: context }, children));
60
- });
60
+ }));
61
61
  };
62
62
 
63
63
  exports.ApolloConsumer = ApolloConsumer;
@@ -1 +1 @@
1
- {"version":3,"file":"context.cjs","sources":["ApolloContext.js","ApolloConsumer.js","ApolloProvider.js"],"sourcesContent":["import * as React from 'react';\nimport { canUseSymbol } from '../../utilities';\nvar contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\nexport { getApolloContext as resetApolloContext };\n//# sourceMappingURL=ApolloContext.js.map","import { invariant } from '../../utilities/globals';\nimport * as React from 'react';\nimport { getApolloContext } from './ApolloContext';\nexport var ApolloConsumer = function (props) {\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n __DEV__ ? invariant(context && context.client, 'Could not find \"client\" in the context of ApolloConsumer. ' +\n 'Wrap the root component in an <ApolloProvider>.') : invariant(context && context.client, 25);\n return props.children(context.client);\n });\n};\n//# sourceMappingURL=ApolloConsumer.js.map","import { invariant } from '../../utilities/globals';\nimport * as React from 'react';\nimport { getApolloContext } from './ApolloContext';\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 26);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n });\n};\n//# sourceMappingURL=ApolloProvider.js.map"],"names":["canUseSymbol","React","invariant"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,UAAU,GAAGA,sBAAY;AAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACtC,MAAM,oBAAoB,CAAC;AACpB,SAAS,gBAAgB,GAAG;AACnC,IAAI,IAAI,OAAO,GAAGC,gBAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,CAAC,cAAc,CAACA,gBAAK,CAAC,aAAa,EAAE,UAAU,EAAE;AAC/D,YAAY,KAAK,EAAE,OAAO,GAAGA,gBAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AACpD,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC;AAC9C,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB;;ACdU,IAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AAC7C,IAAI,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC3C,IAAI,OAAOA,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE;AAChF,QAAQ,OAAO,GAAGC,iBAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,4DAA4D;AACnH,YAAY,iDAAiD,CAAC,GAAGA,iBAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1G,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP;;ACPU,IAAC,cAAc,GAAG,UAAU,EAAE,EAAE;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC3C,IAAI,OAAOD,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE;AAChF,QAAQ,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE;AACjD,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;AACjD,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,GAAGC,iBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,wDAAwD;AACpG,YAAY,qDAAqD,CAAC,GAAGA,iBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnG,QAAQ,QAAQD,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE;AAC3F,KAAK,CAAC,CAAC;AACP;;;;;;;"}
1
+ {"version":3,"file":"context.cjs","sources":["ApolloContext.js","ApolloConsumer.js","ApolloProvider.js"],"sourcesContent":["import * as React from 'react';\nimport { canUseSymbol } from '../../utilities';\nvar contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\nexport { getApolloContext as resetApolloContext };\n//# sourceMappingURL=ApolloContext.js.map","import { invariant } from '../../utilities/globals';\nimport * as React from 'react';\nimport { getApolloContext } from './ApolloContext';\nexport var ApolloConsumer = function (props) {\n var ApolloContext = getApolloContext();\n return (React.createElement(ApolloContext.Consumer, null, function (context) {\n __DEV__ ? invariant(context && context.client, 'Could not find \"client\" in the context of ApolloConsumer. ' +\n 'Wrap the root component in an <ApolloProvider>.') : invariant(context && context.client, 25);\n return props.children(context.client);\n }));\n};\n//# sourceMappingURL=ApolloConsumer.js.map","import { invariant } from '../../utilities/globals';\nimport * as React from 'react';\nimport { getApolloContext } from './ApolloContext';\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return (React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 26);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n }));\n};\n//# sourceMappingURL=ApolloProvider.js.map"],"names":["canUseSymbol","React","invariant"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,UAAU,GAAGA,sBAAY;AAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACtC,MAAM,oBAAoB,CAAC;AACpB,SAAS,gBAAgB,GAAG;AACnC,IAAI,IAAI,OAAO,GAAGC,gBAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,CAAC,cAAc,CAACA,gBAAK,CAAC,aAAa,EAAE,UAAU,EAAE;AAC/D,YAAY,KAAK,EAAE,OAAO,GAAGA,gBAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AACpD,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC;AAC9C,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB;;ACdU,IAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AAC7C,IAAI,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC3C,IAAI,QAAQA,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE;AACjF,QAAQ,OAAO,GAAGC,iBAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,4DAA4D;AACnH,YAAY,iDAAiD,CAAC,GAAGA,iBAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1G,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,KAAK,CAAC,EAAE;AACR;;ACPU,IAAC,cAAc,GAAG,UAAU,EAAE,EAAE;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC3C,IAAI,QAAQD,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE;AACjF,QAAQ,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE;AACjD,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;AACjD,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,GAAGC,iBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,wDAAwD;AACpG,YAAY,qDAAqD,CAAC,GAAGA,iBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnG,QAAQ,QAAQD,gBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE;AAC3F,KAAK,CAAC,EAAE;AACR;;;;;;;"}