@apollo/client 3.9.0-beta.1 → 3.9.0-rc.0

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 (55) hide show
  1. package/.changeset/pink-apricots-yawn.md +5 -0
  2. package/.changeset/pre.json +2 -1
  3. package/CHANGELOG.md +18 -0
  4. package/apollo-client.cjs +52 -46
  5. package/apollo-client.cjs.map +1 -1
  6. package/apollo-client.min.cjs +1 -1
  7. package/cache/cache.cjs +2 -2
  8. package/cache/cache.cjs.map +1 -1
  9. package/cache/cache.cjs.native.js +2 -2
  10. package/cache/inmemory/readFromStore.js +2 -2
  11. package/cache/inmemory/readFromStore.js.map +1 -1
  12. package/core/core.cjs +3 -3
  13. package/core/core.cjs.map +1 -1
  14. package/core/core.cjs.native.js +3 -3
  15. package/dev/dev.cjs +1 -1
  16. package/dev/dev.cjs.map +1 -1
  17. package/dev/dev.cjs.native.js +1 -1
  18. package/link/http/checkFetcher.d.ts +1 -1
  19. package/link/http/checkFetcher.js.map +1 -1
  20. package/link/http/http.cjs +0 -3
  21. package/link/http/http.cjs.map +1 -1
  22. package/link/http/http.cjs.native.js +0 -3
  23. package/link/http/parseAndCheckHttpResponse.js +0 -4
  24. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  25. package/link/http/selectHttpOptionsAndBody.d.ts +1 -1
  26. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  27. package/package.json +21 -21
  28. package/react/hooks/hooks.cjs +47 -38
  29. package/react/hooks/hooks.cjs.map +1 -1
  30. package/react/hooks/hooks.cjs.native.js +47 -38
  31. package/react/hooks/internal/index.d.ts +1 -0
  32. package/react/hooks/internal/index.js +1 -0
  33. package/react/hooks/internal/index.js.map +1 -1
  34. package/react/hooks/internal/useLazyRef.d.ts +3 -0
  35. package/react/hooks/internal/useLazyRef.js +10 -0
  36. package/react/hooks/internal/useLazyRef.js.map +1 -0
  37. package/react/hooks/useFragment.js +20 -17
  38. package/react/hooks/useFragment.js.map +1 -1
  39. package/react/parser/parser.cjs.map +1 -1
  40. package/testing/core/core.cjs +5 -3
  41. package/testing/core/core.cjs.map +1 -1
  42. package/testing/core/core.cjs.native.js +5 -3
  43. package/testing/core/mocking/mockLink.js +9 -3
  44. package/testing/core/mocking/mockLink.js.map +1 -1
  45. package/utilities/caching/getMemoryInternals.js +2 -2
  46. package/utilities/caching/getMemoryInternals.js.map +1 -1
  47. package/utilities/caching/sizes.d.ts +2 -2
  48. package/utilities/caching/sizes.js.map +1 -1
  49. package/utilities/globals/globals.cjs +1 -1
  50. package/utilities/globals/globals.cjs.map +1 -1
  51. package/utilities/globals/globals.cjs.native.js +1 -1
  52. package/utilities/subscriptions/relay/relay.cjs.map +1 -1
  53. package/utilities/subscriptions/urql/urql.cjs.map +1 -1
  54. package/utilities/utilities.cjs.map +1 -1
  55. package/version.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mockLink.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from \"../../../utilities/globals/index.js\";\n\nimport { equal } from \"@wry/equality\";\n\nimport type {\n Operation,\n GraphQLRequest,\n FetchResult,\n} from \"../../../link/core/index.js\";\nimport { ApolloLink } from \"../../../link/core/index.js\";\n\nimport {\n Observable,\n addTypenameToDocument,\n removeClientSetsFromDocument,\n removeConnectionDirectiveFromDocument,\n cloneDeep,\n stringifyForDisplay,\n print,\n} from \"../../../utilities/index.js\";\n\nexport type ResultFunction<T, V = Record<string, any>> = (variables: V) => T;\n\nexport type VariableMatcher<V = Record<string, any>> = (\n variables: V\n) => boolean;\n\nexport interface MockedResponse<\n TData = Record<string, any>,\n TVariables = Record<string, any>,\n> {\n request: GraphQLRequest<TVariables>;\n maxUsageCount?: number;\n result?: FetchResult<TData> | ResultFunction<FetchResult<TData>, TVariables>;\n error?: Error;\n delay?: number;\n variableMatcher?: VariableMatcher<TVariables>;\n newData?: ResultFunction<FetchResult>;\n}\n\nexport interface MockLinkOptions {\n showWarnings?: boolean;\n}\n\nfunction requestToKey(request: GraphQLRequest, addTypename: Boolean): string {\n const queryString =\n request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n const requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\n\nexport class MockLink extends ApolloLink {\n public operation!: Operation;\n public addTypename: Boolean = true;\n public showWarnings: boolean = true;\n private mockedResponsesByKey: { [key: string]: MockedResponse[] } = {};\n\n constructor(\n mockedResponses: ReadonlyArray<MockedResponse<any, any>>,\n addTypename: Boolean = true,\n options: MockLinkOptions = Object.create(null)\n ) {\n super();\n this.addTypename = addTypename;\n this.showWarnings = options.showWarnings ?? true;\n\n if (mockedResponses) {\n mockedResponses.forEach((mockedResponse) => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n const normalizedMockedResponse =\n this.normalizeMockedResponse(mockedResponse);\n const key = requestToKey(\n normalizedMockedResponse.request,\n this.addTypename\n );\n let mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const key = requestToKey(operation, this.addTypename);\n const unmatchedVars: Array<Record<string, any>> = [];\n const requestVariables = operation.variables || {};\n const mockedResponses = this.mockedResponsesByKey[key];\n const responseIndex =\n mockedResponses ?\n mockedResponses.findIndex((res, index) => {\n const mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n if (res.variableMatcher && res.variableMatcher(operation.variables)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n })\n : -1;\n\n const response =\n responseIndex >= 0 ? mockedResponses[responseIndex] : void 0;\n\n let configError: Error;\n\n if (!response) {\n configError = new Error(\n `No more mocked responses for the query: ${print(operation.query)}\nExpected variables: ${stringifyForDisplay(operation.variables)}\n${\n unmatchedVars.length > 0 ?\n `\nFailed to match ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n } for this query. The mocked response had the following variables:\n${unmatchedVars.map((d) => ` ${stringifyForDisplay(d)}`).join(\"\\n\")}\n`\n : \"\"\n}`\n );\n\n if (this.showWarnings) {\n console.warn(\n configError.message +\n \"\\nThis typically indicates a configuration error in your mocks \" +\n \"setup, usually due to a typo or mismatched variable.\"\n );\n }\n } else {\n if (response.maxUsageCount! > 1) {\n response.maxUsageCount!--;\n } else {\n mockedResponses.splice(responseIndex, 1);\n }\n const { newData } = response;\n if (newData) {\n response.result = newData(operation.variables);\n mockedResponses.push(response);\n }\n\n if (!response.result && !response.error) {\n configError = new Error(\n `Mocked response should contain either result or error: ${key}`\n );\n }\n }\n\n return new Observable((observer) => {\n const timer = setTimeout(\n () => {\n if (configError) {\n try {\n // The onError function can return false to indicate that\n // configError need not be passed to observer.error. For\n // example, the default implementation of onError calls\n // observer.error(configError) and then returns false to\n // prevent this extra (harmless) observer.error call.\n if (this.onError(configError, observer) !== false) {\n throw configError;\n }\n } catch (error) {\n observer.error(error);\n }\n } else if (response) {\n if (response.error) {\n observer.error(response.error);\n } else {\n if (response.result) {\n observer.next(\n typeof response.result === \"function\" ?\n response.result(operation.variables)\n : response.result\n );\n }\n observer.complete();\n }\n }\n },\n (response && response.delay) || 0\n );\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): MockedResponse {\n const newMockedResponse = cloneDeep(mockedResponse);\n const queryWithoutConnection = removeConnectionDirectiveFromDocument(\n newMockedResponse.request.query\n );\n invariant(queryWithoutConnection, \"query is required\");\n newMockedResponse.request.query = queryWithoutConnection!;\n const query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n\n mockedResponse.maxUsageCount = mockedResponse.maxUsageCount ?? 1;\n invariant(\n mockedResponse.maxUsageCount > 0,\n `Mock response maxUsageCount must be greater than 0, %s given`,\n mockedResponse.maxUsageCount\n );\n\n this.normalizeVariableMatching(newMockedResponse);\n return newMockedResponse;\n }\n\n private normalizeVariableMatching(mockedResponse: MockedResponse) {\n const variables = mockedResponse.request.variables;\n if (mockedResponse.variableMatcher && variables) {\n throw new Error(\n \"Mocked response should contain either variableMatcher or request.variables\"\n );\n }\n\n if (!mockedResponse.variableMatcher) {\n mockedResponse.variableMatcher = (vars) => {\n const requestVariables = vars || {};\n const mockedResponseVariables = variables || {};\n return equal(requestVariables, mockedResponseVariables);\n };\n }\n }\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\n// NOTE: The last arg can optionally be an `addTypename` arg.\nexport function mockSingleLink(...mockedResponses: Array<any>): MockApolloLink {\n // To pull off the potential typename. If this isn't a boolean, we'll just\n // set it true later.\n let maybeTypename = mockedResponses[mockedResponses.length - 1];\n let mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n\n if (typeof maybeTypename !== \"boolean\") {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n\n return new MockLink(mocks, maybeTypename);\n}\n"]}
1
+ {"version":3,"file":"mockLink.js","sourceRoot":"","sources":["../../../../src/testing/core/mocking/mockLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from \"../../../utilities/globals/index.js\";\n\nimport { equal } from \"@wry/equality\";\n\nimport type {\n Operation,\n GraphQLRequest,\n FetchResult,\n} from \"../../../link/core/index.js\";\nimport { ApolloLink } from \"../../../link/core/index.js\";\n\nimport {\n Observable,\n addTypenameToDocument,\n removeClientSetsFromDocument,\n removeConnectionDirectiveFromDocument,\n cloneDeep,\n stringifyForDisplay,\n print,\n} from \"../../../utilities/index.js\";\n\nexport type ResultFunction<T, V = Record<string, any>> = (variables: V) => T;\n\nexport type VariableMatcher<V = Record<string, any>> = (\n variables: V\n) => boolean;\n\nexport interface MockedResponse<\n TData = Record<string, any>,\n TVariables = Record<string, any>,\n> {\n request: GraphQLRequest<TVariables>;\n maxUsageCount?: number;\n result?: FetchResult<TData> | ResultFunction<FetchResult<TData>, TVariables>;\n error?: Error;\n delay?: number;\n variableMatcher?: VariableMatcher<TVariables>;\n newData?: ResultFunction<FetchResult>;\n}\n\nexport interface MockLinkOptions {\n showWarnings?: boolean;\n}\n\nfunction requestToKey(request: GraphQLRequest, addTypename: Boolean): string {\n const queryString =\n request.query &&\n print(addTypename ? addTypenameToDocument(request.query) : request.query);\n const requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\n\nexport class MockLink extends ApolloLink {\n public operation!: Operation;\n public addTypename: Boolean = true;\n public showWarnings: boolean = true;\n private mockedResponsesByKey: { [key: string]: MockedResponse[] } = {};\n\n constructor(\n mockedResponses: ReadonlyArray<MockedResponse<any, any>>,\n addTypename: Boolean = true,\n options: MockLinkOptions = Object.create(null)\n ) {\n super();\n this.addTypename = addTypename;\n this.showWarnings = options.showWarnings ?? true;\n\n if (mockedResponses) {\n mockedResponses.forEach((mockedResponse) => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n const normalizedMockedResponse =\n this.normalizeMockedResponse(mockedResponse);\n const key = requestToKey(\n normalizedMockedResponse.request,\n this.addTypename\n );\n let mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const key = requestToKey(operation, this.addTypename);\n const unmatchedVars: Array<Record<string, any>> = [];\n const requestVariables = operation.variables || {};\n const mockedResponses = this.mockedResponsesByKey[key];\n const responseIndex =\n mockedResponses ?\n mockedResponses.findIndex((res, index) => {\n const mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n if (res.variableMatcher && res.variableMatcher(operation.variables)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n })\n : -1;\n\n const response =\n responseIndex >= 0 ? mockedResponses[responseIndex] : void 0;\n\n // There have been platform- and engine-dependent differences with\n // setInterval(fn, Infinity), so we pass 0 instead (but detect\n // Infinity where we call observer.error or observer.next to pend\n // indefinitely in those cases.)\n const delay = response?.delay === Infinity ? 0 : response?.delay ?? 0;\n\n let configError: Error;\n\n if (!response) {\n configError = new Error(\n `No more mocked responses for the query: ${print(operation.query)}\nExpected variables: ${stringifyForDisplay(operation.variables)}\n${\n unmatchedVars.length > 0 ?\n `\nFailed to match ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n } for this query. The mocked response had the following variables:\n${unmatchedVars.map((d) => ` ${stringifyForDisplay(d)}`).join(\"\\n\")}\n`\n : \"\"\n}`\n );\n\n if (this.showWarnings) {\n console.warn(\n configError.message +\n \"\\nThis typically indicates a configuration error in your mocks \" +\n \"setup, usually due to a typo or mismatched variable.\"\n );\n }\n } else {\n if (response.maxUsageCount && response.maxUsageCount > 1) {\n response.maxUsageCount--;\n } else {\n mockedResponses.splice(responseIndex, 1);\n }\n const { newData } = response;\n if (newData) {\n response.result = newData(operation.variables);\n mockedResponses.push(response);\n }\n\n if (!response.result && !response.error) {\n configError = new Error(\n `Mocked response should contain either result or error: ${key}`\n );\n }\n }\n\n return new Observable((observer) => {\n const timer = setTimeout(() => {\n if (configError) {\n try {\n // The onError function can return false to indicate that\n // configError need not be passed to observer.error. For\n // example, the default implementation of onError calls\n // observer.error(configError) and then returns false to\n // prevent this extra (harmless) observer.error call.\n if (this.onError(configError, observer) !== false) {\n throw configError;\n }\n } catch (error) {\n observer.error(error);\n }\n } else if (response && response.delay !== Infinity) {\n if (response.error) {\n observer.error(response.error);\n } else {\n if (response.result) {\n observer.next(\n typeof response.result === \"function\" ?\n response.result(operation.variables)\n : response.result\n );\n }\n observer.complete();\n }\n }\n }, delay);\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): MockedResponse {\n const newMockedResponse = cloneDeep(mockedResponse);\n const queryWithoutConnection = removeConnectionDirectiveFromDocument(\n newMockedResponse.request.query\n );\n invariant(queryWithoutConnection, \"query is required\");\n newMockedResponse.request.query = queryWithoutConnection!;\n const query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n\n mockedResponse.maxUsageCount = mockedResponse.maxUsageCount ?? 1;\n invariant(\n mockedResponse.maxUsageCount > 0,\n `Mock response maxUsageCount must be greater than 0, %s given`,\n mockedResponse.maxUsageCount\n );\n\n this.normalizeVariableMatching(newMockedResponse);\n return newMockedResponse;\n }\n\n private normalizeVariableMatching(mockedResponse: MockedResponse) {\n const variables = mockedResponse.request.variables;\n if (mockedResponse.variableMatcher && variables) {\n throw new Error(\n \"Mocked response should contain either variableMatcher or request.variables\"\n );\n }\n\n if (!mockedResponse.variableMatcher) {\n mockedResponse.variableMatcher = (vars) => {\n const requestVariables = vars || {};\n const mockedResponseVariables = variables || {};\n return equal(requestVariables, mockedResponseVariables);\n };\n }\n }\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\n// NOTE: The last arg can optionally be an `addTypename` arg.\nexport function mockSingleLink(...mockedResponses: Array<any>): MockApolloLink {\n // To pull off the potential typename. If this isn't a boolean, we'll just\n // set it true later.\n let maybeTypename = mockedResponses[mockedResponses.length - 1];\n let mocks = mockedResponses.slice(0, mockedResponses.length - 1);\n\n if (typeof maybeTypename !== \"boolean\") {\n mocks = mockedResponses;\n maybeTypename = true;\n }\n\n return new MockLink(mocks, maybeTypename);\n}\n"]}
@@ -40,8 +40,8 @@ function getCurrentCacheSizes() {
40
40
  "cache.fragmentQueryDocuments": 1000 /* defaultCacheSizes["cache.fragmentQueryDocuments"] */,
41
41
  "removeTypenameFromVariables.getVariableDefinitions": 2000 /* defaultCacheSizes["removeTypenameFromVariables.getVariableDefinitions"] */,
42
42
  "inMemoryCache.maybeBroadcastWatch": 5000 /* defaultCacheSizes["inMemoryCache.maybeBroadcastWatch"] */,
43
- "inMemoryCache.executeSelectionSet": 10000 /* defaultCacheSizes["inMemoryCache.executeSelectionSet"] */,
44
- "inMemoryCache.executeSubSelectedArray": 5000 /* defaultCacheSizes["inMemoryCache.executeSubSelectedArray"] */,
43
+ "inMemoryCache.executeSelectionSet": 50000 /* defaultCacheSizes["inMemoryCache.executeSelectionSet"] */,
44
+ "inMemoryCache.executeSubSelectedArray": 10000 /* defaultCacheSizes["inMemoryCache.executeSubSelectedArray"] */,
45
45
  };
46
46
  return Object.fromEntries(Object.entries(defaults).map(function (_a) {
47
47
  var k = _a[0], v = _a[1];
@@ -1 +1 @@
1
- {"version":3,"file":"getMemoryInternals.js","sourceRoot":"","sources":["../../../src/utilities/caching/getMemoryInternals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OptimisticWrapperFunction } from \"optimism\";\nimport type {\n InMemoryCache,\n DocumentTransform,\n ApolloLink,\n ApolloCache,\n} from \"../../core/index.js\";\nimport type { ApolloClient } from \"../../core/index.js\";\nimport type { CacheSizes } from \"./sizes.js\";\nimport { cacheSizes, defaultCacheSizes } from \"./sizes.js\";\n\nconst globalCaches: {\n print?: () => number;\n parser?: () => number;\n canonicalStringify?: () => number;\n} = {};\n\nexport function registerGlobalCache(\n name: keyof typeof globalCaches,\n getSize: () => number\n) {\n globalCaches[name] = getSize;\n}\n\n/**\n * Transformative helper type to turn a function of the form\n * ```ts\n * (this: any) => R\n * ```\n * into a function of the form\n * ```ts\n * () => R\n * ```\n * preserving the return type, but removing the `this` parameter.\n *\n * @remarks\n *\n * Further down in the definitions of `_getApolloClientMemoryInternals`,\n * `_getApolloCacheMemoryInternals` and `_getInMemoryCacheMemoryInternals`,\n * having the `this` parameter annotation is extremely useful for type checking\n * inside the function.\n *\n * If this is preserved in the exported types, though, it leads to a situation\n * where `ApolloCache.getMemoryInternals` is a function that requires a `this`\n * of the type `ApolloCache`, while the extending class `InMemoryCache` has a\n * `getMemoryInternals` function that requires a `this` of the type\n * `InMemoryCache`.\n * This is not compatible with TypeScript's inheritence system (although it is\n * perfectly correct), and so TypeScript will complain loudly.\n *\n * We still want to define our functions with the `this` annotation, though,\n * and have the return type inferred.\n * (This requirement for return type inference here makes it impossible to use\n * a function overload that is more explicit on the inner overload than it is\n * on the external overload.)\n *\n * So in the end, we use this helper to remove the `this` annotation from the\n * exported function types, while keeping it in the internal implementation.\n *\n */\ntype RemoveThis<T> = T extends (this: any) => infer R ? () => R : never;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloClientMemoryInternals =\n __DEV__ ?\n (_getApolloClientMemoryInternals as RemoveThis<\n typeof _getApolloClientMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getInMemoryCacheMemoryInternals =\n __DEV__ ?\n (_getInMemoryCacheMemoryInternals as RemoveThis<\n typeof _getInMemoryCacheMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloCacheMemoryInternals =\n __DEV__ ?\n (_getApolloCacheMemoryInternals as RemoveThis<\n typeof _getApolloCacheMemoryInternals\n >)\n : undefined;\n\nfunction getCurrentCacheSizes() {\n // `defaultCacheSizes` is a `const enum` that will be inlined during build, so we have to reconstruct it's shape here\n const defaults: Record<keyof CacheSizes, number> = {\n parser: defaultCacheSizes[\"parser\"],\n canonicalStringify: defaultCacheSizes[\"canonicalStringify\"],\n print: defaultCacheSizes[\"print\"],\n \"documentTransform.cache\": defaultCacheSizes[\"documentTransform.cache\"],\n \"queryManager.getDocumentInfo\":\n defaultCacheSizes[\"queryManager.getDocumentInfo\"],\n \"PersistedQueryLink.persistedQueryHashes\":\n defaultCacheSizes[\"PersistedQueryLink.persistedQueryHashes\"],\n \"fragmentRegistry.transform\":\n defaultCacheSizes[\"fragmentRegistry.transform\"],\n \"fragmentRegistry.lookup\": defaultCacheSizes[\"fragmentRegistry.lookup\"],\n \"fragmentRegistry.findFragmentSpreads\":\n defaultCacheSizes[\"fragmentRegistry.findFragmentSpreads\"],\n \"cache.fragmentQueryDocuments\":\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n \"removeTypenameFromVariables.getVariableDefinitions\":\n defaultCacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"],\n \"inMemoryCache.maybeBroadcastWatch\":\n defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"],\n \"inMemoryCache.executeSelectionSet\":\n defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"],\n \"inMemoryCache.executeSubSelectedArray\":\n defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"],\n };\n return Object.fromEntries(\n Object.entries(defaults).map(([k, v]) => [\n k,\n cacheSizes[k as keyof CacheSizes] || v,\n ])\n );\n}\n\nfunction _getApolloClientMemoryInternals(this: ApolloClient<any>) {\n if (!__DEV__) throw new Error(\"only supported in development mode\");\n\n return {\n limits: getCurrentCacheSizes(),\n sizes: {\n print: globalCaches.print?.(),\n parser: globalCaches.parser?.(),\n canonicalStringify: globalCaches.canonicalStringify?.(),\n links: linkInfo(this.link),\n queryManager: {\n getDocumentInfo: this[\"queryManager\"][\"transformCache\"].size,\n documentTransforms: transformInfo(\n this[\"queryManager\"].documentTransform\n ),\n },\n ...(this.cache.getMemoryInternals?.() as Partial<\n ReturnType<typeof _getApolloCacheMemoryInternals>\n > &\n Partial<ReturnType<typeof _getInMemoryCacheMemoryInternals>>),\n },\n };\n}\n\nfunction _getApolloCacheMemoryInternals(this: ApolloCache<any>) {\n return {\n cache: {\n fragmentQueryDocuments: getWrapperInformation(this[\"getFragmentDoc\"]),\n },\n };\n}\n\nfunction _getInMemoryCacheMemoryInternals(this: InMemoryCache) {\n const fragments = this.config.fragments as\n | undefined\n | {\n findFragmentSpreads?: Function;\n transform?: Function;\n lookup?: Function;\n };\n\n return {\n ..._getApolloCacheMemoryInternals.apply(this as any),\n addTypenameDocumentTransform: transformInfo(this[\"addTypenameTransform\"]),\n inMemoryCache: {\n executeSelectionSet: getWrapperInformation(\n this[\"storeReader\"][\"executeSelectionSet\"]\n ),\n executeSubSelectedArray: getWrapperInformation(\n this[\"storeReader\"][\"executeSubSelectedArray\"]\n ),\n maybeBroadcastWatch: getWrapperInformation(this[\"maybeBroadcastWatch\"]),\n },\n fragmentRegistry: {\n findFragmentSpreads: getWrapperInformation(\n fragments?.findFragmentSpreads\n ),\n lookup: getWrapperInformation(fragments?.lookup),\n transform: getWrapperInformation(fragments?.transform),\n },\n };\n}\n\nfunction isWrapper(f?: Function): f is OptimisticWrapperFunction<any, any> {\n return !!f && \"dirtyKey\" in f;\n}\n\nfunction getWrapperInformation(f?: Function) {\n return isWrapper(f) ? f.size : undefined;\n}\n\nfunction isDefined<T>(value: T | undefined | null): value is T {\n return value != null;\n}\n\nfunction transformInfo(transform?: DocumentTransform) {\n return recurseTransformInfo(transform).map((cache) => ({ cache }));\n}\n\nfunction recurseTransformInfo(transform?: DocumentTransform): number[] {\n return transform ?\n [\n getWrapperInformation(transform?.[\"performWork\"]),\n ...recurseTransformInfo(transform?.[\"left\"]),\n ...recurseTransformInfo(transform?.[\"right\"]),\n ].filter(isDefined)\n : [];\n}\n\nfunction linkInfo(link?: ApolloLink): unknown[] {\n return link ?\n [\n link?.getMemoryInternals?.(),\n ...linkInfo(link?.left),\n ...linkInfo(link?.right),\n ].filter(isDefined)\n : [];\n}\n"]}
1
+ {"version":3,"file":"getMemoryInternals.js","sourceRoot":"","sources":["../../../src/utilities/caching/getMemoryInternals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OptimisticWrapperFunction } from \"optimism\";\nimport type {\n InMemoryCache,\n DocumentTransform,\n ApolloLink,\n ApolloCache,\n} from \"../../core/index.js\";\nimport type { ApolloClient } from \"../../core/index.js\";\nimport type { CacheSizes } from \"./sizes.js\";\nimport { cacheSizes, defaultCacheSizes } from \"./sizes.js\";\n\nconst globalCaches: {\n print?: () => number;\n parser?: () => number;\n canonicalStringify?: () => number;\n} = {};\n\nexport function registerGlobalCache(\n name: keyof typeof globalCaches,\n getSize: () => number\n) {\n globalCaches[name] = getSize;\n}\n\n/**\n * Transformative helper type to turn a function of the form\n * ```ts\n * (this: any) => R\n * ```\n * into a function of the form\n * ```ts\n * () => R\n * ```\n * preserving the return type, but removing the `this` parameter.\n *\n * @remarks\n *\n * Further down in the definitions of `_getApolloClientMemoryInternals`,\n * `_getApolloCacheMemoryInternals` and `_getInMemoryCacheMemoryInternals`,\n * having the `this` parameter annotation is extremely useful for type checking\n * inside the function.\n *\n * If this is preserved in the exported types, though, it leads to a situation\n * where `ApolloCache.getMemoryInternals` is a function that requires a `this`\n * of the type `ApolloCache`, while the extending class `InMemoryCache` has a\n * `getMemoryInternals` function that requires a `this` of the type\n * `InMemoryCache`.\n * This is not compatible with TypeScript's inheritence system (although it is\n * perfectly correct), and so TypeScript will complain loudly.\n *\n * We still want to define our functions with the `this` annotation, though,\n * and have the return type inferred.\n * (This requirement for return type inference here makes it impossible to use\n * a function overload that is more explicit on the inner overload than it is\n * on the external overload.)\n *\n * So in the end, we use this helper to remove the `this` annotation from the\n * exported function types, while keeping it in the internal implementation.\n *\n */\ntype RemoveThis<T> = T extends (this: any) => infer R ? () => R : never;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloClientMemoryInternals =\n __DEV__ ?\n (_getApolloClientMemoryInternals as RemoveThis<\n typeof _getApolloClientMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getInMemoryCacheMemoryInternals =\n __DEV__ ?\n (_getInMemoryCacheMemoryInternals as RemoveThis<\n typeof _getInMemoryCacheMemoryInternals\n >)\n : undefined;\n\n/**\n * For internal purposes only - please call `ApolloClient.getMemoryInternals` instead\n * @internal\n */\nexport const getApolloCacheMemoryInternals =\n __DEV__ ?\n (_getApolloCacheMemoryInternals as RemoveThis<\n typeof _getApolloCacheMemoryInternals\n >)\n : undefined;\n\nfunction getCurrentCacheSizes() {\n // `defaultCacheSizes` is a `const enum` that will be inlined during build, so we have to reconstruct it's shape here\n const defaults: Record<keyof CacheSizes, number> = {\n parser: defaultCacheSizes[\"parser\"],\n canonicalStringify: defaultCacheSizes[\"canonicalStringify\"],\n print: defaultCacheSizes[\"print\"],\n \"documentTransform.cache\": defaultCacheSizes[\"documentTransform.cache\"],\n \"queryManager.getDocumentInfo\":\n defaultCacheSizes[\"queryManager.getDocumentInfo\"],\n \"PersistedQueryLink.persistedQueryHashes\":\n defaultCacheSizes[\"PersistedQueryLink.persistedQueryHashes\"],\n \"fragmentRegistry.transform\":\n defaultCacheSizes[\"fragmentRegistry.transform\"],\n \"fragmentRegistry.lookup\": defaultCacheSizes[\"fragmentRegistry.lookup\"],\n \"fragmentRegistry.findFragmentSpreads\":\n defaultCacheSizes[\"fragmentRegistry.findFragmentSpreads\"],\n \"cache.fragmentQueryDocuments\":\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n \"removeTypenameFromVariables.getVariableDefinitions\":\n defaultCacheSizes[\"removeTypenameFromVariables.getVariableDefinitions\"],\n \"inMemoryCache.maybeBroadcastWatch\":\n defaultCacheSizes[\"inMemoryCache.maybeBroadcastWatch\"],\n \"inMemoryCache.executeSelectionSet\":\n defaultCacheSizes[\"inMemoryCache.executeSelectionSet\"],\n \"inMemoryCache.executeSubSelectedArray\":\n defaultCacheSizes[\"inMemoryCache.executeSubSelectedArray\"],\n };\n return Object.fromEntries(\n Object.entries(defaults).map(([k, v]) => [\n k,\n cacheSizes[k as keyof CacheSizes] || v,\n ])\n );\n}\n\nfunction _getApolloClientMemoryInternals(this: ApolloClient<any>) {\n if (!__DEV__) throw new Error(\"only supported in development mode\");\n\n return {\n limits: getCurrentCacheSizes(),\n sizes: {\n print: globalCaches.print?.(),\n parser: globalCaches.parser?.(),\n canonicalStringify: globalCaches.canonicalStringify?.(),\n links: linkInfo(this.link),\n queryManager: {\n getDocumentInfo: this[\"queryManager\"][\"transformCache\"].size,\n documentTransforms: transformInfo(\n this[\"queryManager\"].documentTransform\n ),\n },\n ...(this.cache.getMemoryInternals?.() as Partial<\n ReturnType<typeof _getApolloCacheMemoryInternals>\n > &\n Partial<ReturnType<typeof _getInMemoryCacheMemoryInternals>>),\n },\n };\n}\n\nfunction _getApolloCacheMemoryInternals(this: ApolloCache<any>) {\n return {\n cache: {\n fragmentQueryDocuments: getWrapperInformation(this[\"getFragmentDoc\"]),\n },\n };\n}\n\nfunction _getInMemoryCacheMemoryInternals(this: InMemoryCache) {\n const fragments = this.config.fragments as\n | undefined\n | {\n findFragmentSpreads?: Function;\n transform?: Function;\n lookup?: Function;\n };\n\n return {\n ..._getApolloCacheMemoryInternals.apply(this as any),\n addTypenameDocumentTransform: transformInfo(this[\"addTypenameTransform\"]),\n inMemoryCache: {\n executeSelectionSet: getWrapperInformation(\n this[\"storeReader\"][\"executeSelectionSet\"]\n ),\n executeSubSelectedArray: getWrapperInformation(\n this[\"storeReader\"][\"executeSubSelectedArray\"]\n ),\n maybeBroadcastWatch: getWrapperInformation(this[\"maybeBroadcastWatch\"]),\n },\n fragmentRegistry: {\n findFragmentSpreads: getWrapperInformation(\n fragments?.findFragmentSpreads\n ),\n lookup: getWrapperInformation(fragments?.lookup),\n transform: getWrapperInformation(fragments?.transform),\n },\n };\n}\n\nfunction isWrapper(f?: Function): f is OptimisticWrapperFunction<any, any> {\n return !!f && \"dirtyKey\" in f;\n}\n\nfunction getWrapperInformation(f?: Function) {\n return isWrapper(f) ? f.size : undefined;\n}\n\nfunction isDefined<T>(value: T | undefined | null): value is T {\n return value != null;\n}\n\nfunction transformInfo(transform?: DocumentTransform) {\n return recurseTransformInfo(transform).map((cache) => ({ cache }));\n}\n\nfunction recurseTransformInfo(transform?: DocumentTransform): number[] {\n return transform ?\n [\n getWrapperInformation(transform?.[\"performWork\"]),\n ...recurseTransformInfo(transform?.[\"left\"]),\n ...recurseTransformInfo(transform?.[\"right\"]),\n ].filter(isDefined)\n : [];\n}\n\nfunction linkInfo(link?: ApolloLink): unknown[] {\n return link ?\n [\n link?.getMemoryInternals?.(),\n ...linkInfo(link?.left),\n ...linkInfo(link?.right),\n ].filter(isDefined)\n : [];\n}\n"]}
@@ -304,8 +304,8 @@ export declare const enum defaultCacheSizes {
304
304
  "cache.fragmentQueryDocuments" = 1000,
305
305
  "removeTypenameFromVariables.getVariableDefinitions" = 2000,
306
306
  "inMemoryCache.maybeBroadcastWatch" = 5000,
307
- "inMemoryCache.executeSelectionSet" = 10000,
308
- "inMemoryCache.executeSubSelectedArray" = 5000
307
+ "inMemoryCache.executeSelectionSet" = 50000,
308
+ "inMemoryCache.executeSubSelectedArray" = 10000
309
309
  }
310
310
  export {};
311
311
  //# sourceMappingURL=sizes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sizes.js","sourceRoot":"","sources":["../../../src/utilities/caching/sizes.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAsR7C,IAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,IAAM,UAAU,gBAA6B,MAAM,CAAC,eAAe,CAAC,CAAE,CAAC","sourcesContent":["import { global } from \"../globals/index.js\";\n\ndeclare global {\n interface Window {\n [cacheSizeSymbol]?: Partial<CacheSizes>;\n }\n}\n\n/**\n * The cache sizes used by various Apollo Client caches.\n *\n * @remarks\n * All configurable caches hold memoized values. If an item is\n * cache-collected, it incurs only a small performance impact and\n * doesn't cause data loss. A smaller cache size might save you memory.\n *\n * You should choose cache sizes appropriate for storing a reasonable\n * number of values rather than every value. To prevent too much recalculation,\n * choose cache sizes that are at least large enough to hold memoized values for\n * all hooks/queries on the screen at any given time.\n */\n/*\n * We assume a \"base value\" of 1000 here, which is already very generous.\n * In most applications, it will be very unlikely that 1000 different queries\n * are on screen at the same time.\n */\nexport interface CacheSizes {\n /**\n * Cache size for the [`print`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/print.ts) function.\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This method is called to transform a GraphQL query AST parsed by `gql`\n * back into a GraphQL string.\n *\n * @privateRemarks\n * This method is called from the `QueryManager` and various `ApolloLink`s,\n * always with the \"serverQuery\", so the server-facing part of a transformed\n * `DocumentNode`.\n */\n print: number;\n /**\n * Cache size for the [`parser`](https://github.com/apollographql/apollo-client/blob/main/src/react/parser/index.ts) function.\n *\n * It is called with user-provided `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This method is called by HOCs and hooks.\n *\n * @privateRemarks\n * This function is used directly in HOCs, and nowadays mainly accessed by\n * calling `verifyDocumentType` from various hooks.\n * It is called with a user-provided DocumentNode.\n */\n parser: number;\n /**\n * Cache size for the cache of [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts)\n * instances with the `cache` option set to `true`.\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * The cache size here should be chosen with other `DocumentTransform`s in mind.\n * For example, if there was a `DocumentTransform` that would take `x` `DocumentNode`s,\n * and returned a differently-transformed `DocumentNode` depending if the app is\n * online or offline, then we assume that the cache returns `2*x` documents.\n * If that were concatenated with another `DocumentTransform` that would\n * also duplicate the cache size, you'd need to account for `4*x` documents\n * returned by the second transform.\n *\n * Due to an implementation detail of Apollo Client, if you use custom document\n * transforms you should always add `n` (the \"base\" number of user-provided\n * Documents) to the resulting cache size.\n *\n * If we assume that the user-provided transforms receive `n` documents and\n * return `n` documents, the cache size should be `2*n`.\n *\n * If we assume that the chain of user-provided transforms receive `n` documents and\n * return `4*n` documents, the cache size should be `5*n`.\n *\n * This size should also then be used in every other cache that mentions that\n * it operates on a \"transformed\" `DocumentNode`.\n *\n * @privateRemarks\n * Cache size for the `performWork` method of each [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts).\n *\n * No user-provided DocumentNode will actually be \"the last one\", as we run the\n * `defaultDocumentTransform` before *and* after the user-provided transforms.\n * For that reason, we need the extra `n` here - `n` for \"before transformation\"\n * plus the actual maximum cache size of the user-provided transform chain.\n *\n * This method is called from `transformDocument`, which is called from\n * `QueryManager` with a user-provided DocumentNode.\n * It is also called with already-transformed DocumentNodes, assuming the\n * user provided additional transforms.\n *\n */\n \"documentTransform.cache\": number;\n /**\n * A cache inside of [`QueryManager`](https://github.com/apollographql/apollo-client/blob/main/src/core/QueryManager.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `transformCache` used in the `getDocumentInfo` method of `QueryManager`.\n * Called throughout the `QueryManager` with transformed DocumentNodes.\n */\n \"queryManager.getDocumentInfo\": number;\n /**\n * A cache inside of [`PersistedQueryLink`](https://github.com/apollographql/apollo-client/blob/main/src/link/persisted-queries/index.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This cache is used to cache the hashes of persisted queries.\n *\n * @privateRemarks\n * Cache size for the `hashesByQuery` cache in the `PersistedQueryLink`.\n */\n \"PersistedQueryLink.persistedQueryHashes\": number;\n /**\n * Cache used by [`canonicalStringify`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/common/canonicalStringify.ts).\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This cache contains the sorted keys of objects that are stringified by\n * `canonicalStringify`.\n * It uses the stringified unsorted keys of objects as keys.\n * The cache will not grow beyond the size of different object **shapes**\n * encountered in an application, no matter how much actual data gets stringified.\n *\n * @privateRemarks\n * Cache size for the `sortingMap` in `canonicalStringify`.\n */\n canonicalStringify: number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n *\n * Cache size for the `transform` method of FragmentRegistry.\n * This function is called as part of the `defaultDocumentTransform` which will be called with\n * user-provided and already-transformed DocumentNodes.\n *\n */\n \"fragmentRegistry.transform\": number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with fragment names in the form of a string.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * The size of this case should be chosen with the number of fragments in\n * your application in mind.\n *\n * Note:\n * This function is a dependency of `fragmentRegistry.transform`, so having too small of a cache size here\n * might involuntarily invalidate values in the `transform` cache.\n *\n * @privateRemarks\n * Cache size for the `lookup` method of FragmentRegistry.\n */\n \"fragmentRegistry.lookup\": number;\n /**\n * Cache size for the `findFragmentSpreads` method of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with transformed `DocumentNode`s, as well as recursively\n * with every fragment spread referenced within that, or a fragment referenced by a\n * fragment spread.\n *\n * @defaultValue\n * Defaults to `4000`.\n *\n * @remarks\n *\n * Note: This function is a dependency of `fragmentRegistry.transform`, so having too small of cache size here\n * might involuntarily invalidate values in the `transform` cache.\n */\n \"fragmentRegistry.findFragmentSpreads\": number;\n /**\n * Cache size for the `getFragmentDoc` method of [`ApolloCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/core/cache.ts).\n *\n * This function is called with user-provided fragment definitions.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This function is called from `readFragment` with user-provided fragment definitions.\n */\n \"cache.fragmentQueryDocuments\": number;\n /**\n * Cache used in [`removeTypenameFromVariables`](https://github.com/apollographql/apollo-client/blob/main/src/link/remove-typename/removeTypenameFromVariables.ts).\n *\n * This function is called transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `getVariableDefinitions` function of `removeTypenameFromVariables`.\n */\n \"removeTypenameFromVariables.getVariableDefinitions\": number;\n /**\n * Cache size for the `maybeBroadcastWatch` method on [`InMemoryCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/inMemoryCache.ts).\n *\n * Note: `maybeBroadcastWatch` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * This method is used for dependency tracking in the `InMemoryCache` and\n * prevents from unnecessary re-renders.\n * It is recommended to keep this value significantly higher than the number of\n * possible subscribers you will have active at the same time in your application\n * at any time.\n */\n \"inMemoryCache.maybeBroadcastWatch\": number;\n /**\n * Cache size for the `executeSelectionSet` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSelectionSet` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `10000`.\n *\n * @remarks\n * Every object that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSelectionSet\": number;\n /**\n * Cache size for the `executeSubSelectedArray` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSubSelectedArray` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * Every array that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSubSelectedArray\": number;\n}\n\nconst cacheSizeSymbol = Symbol.for(\"apollo.cacheSize\");\n/**\n *\n * The global cache size configuration for Apollo Client.\n *\n * @remarks\n *\n * You can directly modify this object, but any modification will\n * only have an effect on caches that are created after the modification.\n *\n * So for global caches, such as `parser`, `canonicalStringify` and `print`,\n * you might need to call `.reset` on them, which will essentially re-create them.\n *\n * Alternatively, you can set `globalThis[Symbol.for(\"apollo.cacheSize\")]` before\n * you load the Apollo Client package:\n *\n * @example\n * ```ts\n * globalThis[Symbol.for(\"apollo.cacheSize\")] = {\n * parser: 100\n * } satisfies Partial<CacheSizes> // the `satisfies` is optional if using TypeScript\n * ```\n */\nexport const cacheSizes: Partial<CacheSizes> = { ...global[cacheSizeSymbol] };\n\nexport const enum defaultCacheSizes {\n parser = 1000,\n canonicalStringify = 1000,\n print = 2000,\n \"documentTransform.cache\" = 2000,\n \"queryManager.getDocumentInfo\" = 2000,\n \"PersistedQueryLink.persistedQueryHashes\" = 2000,\n \"fragmentRegistry.transform\" = 2000,\n \"fragmentRegistry.lookup\" = 1000,\n \"fragmentRegistry.findFragmentSpreads\" = 4000,\n \"cache.fragmentQueryDocuments\" = 1000,\n \"removeTypenameFromVariables.getVariableDefinitions\" = 2000,\n \"inMemoryCache.maybeBroadcastWatch\" = 5000,\n \"inMemoryCache.executeSelectionSet\" = 10000,\n \"inMemoryCache.executeSubSelectedArray\" = 5000,\n}\n"]}
1
+ {"version":3,"file":"sizes.js","sourceRoot":"","sources":["../../../src/utilities/caching/sizes.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAsR7C,IAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,IAAM,UAAU,gBAA6B,MAAM,CAAC,eAAe,CAAC,CAAE,CAAC","sourcesContent":["import { global } from \"../globals/index.js\";\n\ndeclare global {\n interface Window {\n [cacheSizeSymbol]?: Partial<CacheSizes>;\n }\n}\n\n/**\n * The cache sizes used by various Apollo Client caches.\n *\n * @remarks\n * All configurable caches hold memoized values. If an item is\n * cache-collected, it incurs only a small performance impact and\n * doesn't cause data loss. A smaller cache size might save you memory.\n *\n * You should choose cache sizes appropriate for storing a reasonable\n * number of values rather than every value. To prevent too much recalculation,\n * choose cache sizes that are at least large enough to hold memoized values for\n * all hooks/queries on the screen at any given time.\n */\n/*\n * We assume a \"base value\" of 1000 here, which is already very generous.\n * In most applications, it will be very unlikely that 1000 different queries\n * are on screen at the same time.\n */\nexport interface CacheSizes {\n /**\n * Cache size for the [`print`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/print.ts) function.\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This method is called to transform a GraphQL query AST parsed by `gql`\n * back into a GraphQL string.\n *\n * @privateRemarks\n * This method is called from the `QueryManager` and various `ApolloLink`s,\n * always with the \"serverQuery\", so the server-facing part of a transformed\n * `DocumentNode`.\n */\n print: number;\n /**\n * Cache size for the [`parser`](https://github.com/apollographql/apollo-client/blob/main/src/react/parser/index.ts) function.\n *\n * It is called with user-provided `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This method is called by HOCs and hooks.\n *\n * @privateRemarks\n * This function is used directly in HOCs, and nowadays mainly accessed by\n * calling `verifyDocumentType` from various hooks.\n * It is called with a user-provided DocumentNode.\n */\n parser: number;\n /**\n * Cache size for the cache of [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts)\n * instances with the `cache` option set to `true`.\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * The cache size here should be chosen with other `DocumentTransform`s in mind.\n * For example, if there was a `DocumentTransform` that would take `x` `DocumentNode`s,\n * and returned a differently-transformed `DocumentNode` depending if the app is\n * online or offline, then we assume that the cache returns `2*x` documents.\n * If that were concatenated with another `DocumentTransform` that would\n * also duplicate the cache size, you'd need to account for `4*x` documents\n * returned by the second transform.\n *\n * Due to an implementation detail of Apollo Client, if you use custom document\n * transforms you should always add `n` (the \"base\" number of user-provided\n * Documents) to the resulting cache size.\n *\n * If we assume that the user-provided transforms receive `n` documents and\n * return `n` documents, the cache size should be `2*n`.\n *\n * If we assume that the chain of user-provided transforms receive `n` documents and\n * return `4*n` documents, the cache size should be `5*n`.\n *\n * This size should also then be used in every other cache that mentions that\n * it operates on a \"transformed\" `DocumentNode`.\n *\n * @privateRemarks\n * Cache size for the `performWork` method of each [`DocumentTransform`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/graphql/DocumentTransform.ts).\n *\n * No user-provided DocumentNode will actually be \"the last one\", as we run the\n * `defaultDocumentTransform` before *and* after the user-provided transforms.\n * For that reason, we need the extra `n` here - `n` for \"before transformation\"\n * plus the actual maximum cache size of the user-provided transform chain.\n *\n * This method is called from `transformDocument`, which is called from\n * `QueryManager` with a user-provided DocumentNode.\n * It is also called with already-transformed DocumentNodes, assuming the\n * user provided additional transforms.\n *\n */\n \"documentTransform.cache\": number;\n /**\n * A cache inside of [`QueryManager`](https://github.com/apollographql/apollo-client/blob/main/src/core/QueryManager.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `transformCache` used in the `getDocumentInfo` method of `QueryManager`.\n * Called throughout the `QueryManager` with transformed DocumentNodes.\n */\n \"queryManager.getDocumentInfo\": number;\n /**\n * A cache inside of [`PersistedQueryLink`](https://github.com/apollographql/apollo-client/blob/main/src/link/persisted-queries/index.ts).\n *\n * It is called with transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @remarks\n * This cache is used to cache the hashes of persisted queries.\n *\n * @privateRemarks\n * Cache size for the `hashesByQuery` cache in the `PersistedQueryLink`.\n */\n \"PersistedQueryLink.persistedQueryHashes\": number;\n /**\n * Cache used by [`canonicalStringify`](https://github.com/apollographql/apollo-client/blob/main/src/utilities/common/canonicalStringify.ts).\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This cache contains the sorted keys of objects that are stringified by\n * `canonicalStringify`.\n * It uses the stringified unsorted keys of objects as keys.\n * The cache will not grow beyond the size of different object **shapes**\n * encountered in an application, no matter how much actual data gets stringified.\n *\n * @privateRemarks\n * Cache size for the `sortingMap` in `canonicalStringify`.\n */\n canonicalStringify: number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * Can be called with user-defined or already-transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n *\n * Cache size for the `transform` method of FragmentRegistry.\n * This function is called as part of the `defaultDocumentTransform` which will be called with\n * user-provided and already-transformed DocumentNodes.\n *\n */\n \"fragmentRegistry.transform\": number;\n /**\n * A cache inside of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with fragment names in the form of a string.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * The size of this case should be chosen with the number of fragments in\n * your application in mind.\n *\n * Note:\n * This function is a dependency of `fragmentRegistry.transform`, so having too small of a cache size here\n * might involuntarily invalidate values in the `transform` cache.\n *\n * @privateRemarks\n * Cache size for the `lookup` method of FragmentRegistry.\n */\n \"fragmentRegistry.lookup\": number;\n /**\n * Cache size for the `findFragmentSpreads` method of [`FragmentRegistry`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/fragmentRegistry.ts).\n *\n * This function is called with transformed `DocumentNode`s, as well as recursively\n * with every fragment spread referenced within that, or a fragment referenced by a\n * fragment spread.\n *\n * @defaultValue\n * Defaults to `4000`.\n *\n * @remarks\n *\n * Note: This function is a dependency of `fragmentRegistry.transform`, so having too small of cache size here\n * might involuntarily invalidate values in the `transform` cache.\n */\n \"fragmentRegistry.findFragmentSpreads\": number;\n /**\n * Cache size for the `getFragmentDoc` method of [`ApolloCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/core/cache.ts).\n *\n * This function is called with user-provided fragment definitions.\n *\n * @defaultValue\n * Defaults to `1000`.\n *\n * @remarks\n * This function is called from `readFragment` with user-provided fragment definitions.\n */\n \"cache.fragmentQueryDocuments\": number;\n /**\n * Cache used in [`removeTypenameFromVariables`](https://github.com/apollographql/apollo-client/blob/main/src/link/remove-typename/removeTypenameFromVariables.ts).\n *\n * This function is called transformed `DocumentNode`s.\n *\n * @defaultValue\n * Defaults to `2000`.\n *\n * @privateRemarks\n * Cache size for the `getVariableDefinitions` function of `removeTypenameFromVariables`.\n */\n \"removeTypenameFromVariables.getVariableDefinitions\": number;\n /**\n * Cache size for the `maybeBroadcastWatch` method on [`InMemoryCache`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/inMemoryCache.ts).\n *\n * Note: `maybeBroadcastWatch` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * This method is used for dependency tracking in the `InMemoryCache` and\n * prevents from unnecessary re-renders.\n * It is recommended to keep this value significantly higher than the number of\n * possible subscribers you will have active at the same time in your application\n * at any time.\n */\n \"inMemoryCache.maybeBroadcastWatch\": number;\n /**\n * Cache size for the `executeSelectionSet` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSelectionSet` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `10000`.\n *\n * @remarks\n * Every object that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSelectionSet\": number;\n /**\n * Cache size for the `executeSubSelectedArray` method on [`StoreReader`](https://github.com/apollographql/apollo-client/blob/main/src/cache/inmemory/readFromStore.ts).\n *\n * Note:\n * `executeSubSelectedArray` will be set to the `resultCacheMaxSize` option and\n * will fall back to this configuration value if the option is not set.\n *\n * @defaultValue\n * Defaults to `5000`.\n *\n * @remarks\n * Every array that is read from the cache will be cached here, so it is\n * recommended to set this to a high value.\n */\n \"inMemoryCache.executeSubSelectedArray\": number;\n}\n\nconst cacheSizeSymbol = Symbol.for(\"apollo.cacheSize\");\n/**\n *\n * The global cache size configuration for Apollo Client.\n *\n * @remarks\n *\n * You can directly modify this object, but any modification will\n * only have an effect on caches that are created after the modification.\n *\n * So for global caches, such as `parser`, `canonicalStringify` and `print`,\n * you might need to call `.reset` on them, which will essentially re-create them.\n *\n * Alternatively, you can set `globalThis[Symbol.for(\"apollo.cacheSize\")]` before\n * you load the Apollo Client package:\n *\n * @example\n * ```ts\n * globalThis[Symbol.for(\"apollo.cacheSize\")] = {\n * parser: 100\n * } satisfies Partial<CacheSizes> // the `satisfies` is optional if using TypeScript\n * ```\n */\nexport const cacheSizes: Partial<CacheSizes> = { ...global[cacheSizeSymbol] };\n\nexport const enum defaultCacheSizes {\n parser = 1000,\n canonicalStringify = 1000,\n print = 2000,\n \"documentTransform.cache\" = 2000,\n \"queryManager.getDocumentInfo\" = 2000,\n \"PersistedQueryLink.persistedQueryHashes\" = 2000,\n \"fragmentRegistry.transform\" = 2000,\n \"fragmentRegistry.lookup\" = 1000,\n \"fragmentRegistry.findFragmentSpreads\" = 4000,\n \"cache.fragmentQueryDocuments\" = 1000,\n \"removeTypenameFromVariables.getVariableDefinitions\" = 2000,\n \"inMemoryCache.maybeBroadcastWatch\" = 5000,\n \"inMemoryCache.executeSelectionSet\" = 50000,\n \"inMemoryCache.executeSubSelectedArray\" = 10000,\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tsInvariant = require('ts-invariant');
6
6
 
7
- var version = "3.9.0-beta.1";
7
+ var version = "3.9.0-rc.0";
8
8
 
9
9
  function maybe(thunk) {
10
10
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"globals.cjs","sources":["../../version.js","maybe.js","global.js","../common/makeUniqueId.js","../common/stringifyForDisplay.js","invariantWrappers.js","index.js"],"sourcesContent":["export var version = \"3.9.0-beta.1\";\n//# sourceMappingURL=version.js.map","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) || // We don't expect the Function constructor ever to be invoked at runtime, as\n// long as at least one of globalThis, window, self, or global is defined, so\n// we are under no obligation to make it easy for static analysis tools to\n// detect syntactic usage of the Function constructor. If you think you can\n// improve your static analysis to detect this obfuscation, think again. This\n// is an arms race you cannot win, at least not in JavaScript.\nmaybe(function () {\n return maybe.constructor(\"return this\")();\n}));\n//# sourceMappingURL=global.js.map","var prefixCounts = new Map();\n// These IDs won't be globally unique, but they will be unique within this\n// process, thanks to the counter, and unguessable thanks to the random suffix.\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}\n//# sourceMappingURL=makeUniqueId.js.map","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value, space) {\n if (space === void 0) { space = 0; }\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }, space)\n .split(JSON.stringify(undefId))\n .join(\"<undefined>\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map","import { invariant as originalInvariant, InvariantError } from \"ts-invariant\";\nimport { version } from \"../../version.js\";\nimport global from \"./global.js\";\nimport { stringifyForDisplay } from \"../common/stringifyForDisplay.js\";\nfunction wrap(fn) {\n return function (message) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof message === \"number\") {\n var arg0 = message;\n message = getHandledErrorMsg(arg0);\n if (!message) {\n message = getFallbackErrorMsg(arg0, args);\n args = [];\n }\n }\n fn.apply(void 0, [message].concat(args));\n };\n}\nvar invariant = Object.assign(function invariant(condition, message) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (!condition) {\n originalInvariant(condition, getHandledErrorMsg(message, args) || getFallbackErrorMsg(message, args));\n }\n}, {\n debug: wrap(originalInvariant.debug),\n log: wrap(originalInvariant.log),\n warn: wrap(originalInvariant.warn),\n error: wrap(originalInvariant.error),\n});\n/**\n * Returns an InvariantError.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n * String substitutions with %s are supported and will also return\n * pretty-stringified objects.\n * Excess `optionalParams` will be swallowed.\n */\nfunction newInvariantError(message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n return new InvariantError(getHandledErrorMsg(message, optionalParams) ||\n getFallbackErrorMsg(message, optionalParams));\n}\nvar ApolloErrorMessageHandler = Symbol.for(\"ApolloErrorMessageHandler_\" + version);\nfunction stringify(arg) {\n return typeof arg == \"string\" ? arg : (stringifyForDisplay(arg, 2).slice(0, 1000));\n}\nfunction getHandledErrorMsg(message, messageArgs) {\n if (messageArgs === void 0) { messageArgs = []; }\n if (!message)\n return;\n return (global[ApolloErrorMessageHandler] &&\n global[ApolloErrorMessageHandler](message, messageArgs.map(stringify)));\n}\nfunction getFallbackErrorMsg(message, messageArgs) {\n if (messageArgs === void 0) { messageArgs = []; }\n if (!message)\n return;\n return \"An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#\".concat(encodeURIComponent(JSON.stringify({\n version: version,\n message: message,\n args: messageArgs.map(stringify),\n })));\n}\nexport { invariant, InvariantError, newInvariantError, ApolloErrorMessageHandler, };\n//# sourceMappingURL=invariantWrappers.js.map","import { invariant, newInvariantError, InvariantError, } from \"./invariantWrappers.js\";\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, newInvariantError, InvariantError };\n/**\n * @deprecated we do not use this internally anymore,\n * it is just exported for backwards compatibility\n */\n// this file is extempt from automatic `__DEV__` replacement\n// so we have to write it out here\n// @ts-ignore\nexport var DEV = globalThis.__DEV__ !== false;\nexport { DEV as __DEV__ };\n//# sourceMappingURL=index.js.map"],"names":["originalInvariant","InvariantError","global"],"mappings":"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"}
1
+ {"version":3,"file":"globals.cjs","sources":["../../version.js","maybe.js","global.js","../common/makeUniqueId.js","../common/stringifyForDisplay.js","invariantWrappers.js","index.js"],"sourcesContent":["export var version = \"3.9.0-rc.0\";\n//# sourceMappingURL=version.js.map","export function maybe(thunk) {\n try {\n return thunk();\n }\n catch (_a) { }\n}\n//# sourceMappingURL=maybe.js.map","import { maybe } from \"./maybe.js\";\nexport default (maybe(function () { return globalThis; }) ||\n maybe(function () { return window; }) ||\n maybe(function () { return self; }) ||\n maybe(function () { return global; }) || // We don't expect the Function constructor ever to be invoked at runtime, as\n// long as at least one of globalThis, window, self, or global is defined, so\n// we are under no obligation to make it easy for static analysis tools to\n// detect syntactic usage of the Function constructor. If you think you can\n// improve your static analysis to detect this obfuscation, think again. This\n// is an arms race you cannot win, at least not in JavaScript.\nmaybe(function () {\n return maybe.constructor(\"return this\")();\n}));\n//# sourceMappingURL=global.js.map","var prefixCounts = new Map();\n// These IDs won't be globally unique, but they will be unique within this\n// process, thanks to the counter, and unguessable thanks to the random suffix.\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}\n//# sourceMappingURL=makeUniqueId.js.map","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value, space) {\n if (space === void 0) { space = 0; }\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }, space)\n .split(JSON.stringify(undefId))\n .join(\"<undefined>\");\n}\n//# sourceMappingURL=stringifyForDisplay.js.map","import { invariant as originalInvariant, InvariantError } from \"ts-invariant\";\nimport { version } from \"../../version.js\";\nimport global from \"./global.js\";\nimport { stringifyForDisplay } from \"../common/stringifyForDisplay.js\";\nfunction wrap(fn) {\n return function (message) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof message === \"number\") {\n var arg0 = message;\n message = getHandledErrorMsg(arg0);\n if (!message) {\n message = getFallbackErrorMsg(arg0, args);\n args = [];\n }\n }\n fn.apply(void 0, [message].concat(args));\n };\n}\nvar invariant = Object.assign(function invariant(condition, message) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (!condition) {\n originalInvariant(condition, getHandledErrorMsg(message, args) || getFallbackErrorMsg(message, args));\n }\n}, {\n debug: wrap(originalInvariant.debug),\n log: wrap(originalInvariant.log),\n warn: wrap(originalInvariant.warn),\n error: wrap(originalInvariant.error),\n});\n/**\n * Returns an InvariantError.\n *\n * `message` can only be a string, a concatenation of strings, or a ternary statement\n * that results in a string. This will be enforced on build, where the message will\n * be replaced with a message number.\n * String substitutions with %s are supported and will also return\n * pretty-stringified objects.\n * Excess `optionalParams` will be swallowed.\n */\nfunction newInvariantError(message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n return new InvariantError(getHandledErrorMsg(message, optionalParams) ||\n getFallbackErrorMsg(message, optionalParams));\n}\nvar ApolloErrorMessageHandler = Symbol.for(\"ApolloErrorMessageHandler_\" + version);\nfunction stringify(arg) {\n return typeof arg == \"string\" ? arg : (stringifyForDisplay(arg, 2).slice(0, 1000));\n}\nfunction getHandledErrorMsg(message, messageArgs) {\n if (messageArgs === void 0) { messageArgs = []; }\n if (!message)\n return;\n return (global[ApolloErrorMessageHandler] &&\n global[ApolloErrorMessageHandler](message, messageArgs.map(stringify)));\n}\nfunction getFallbackErrorMsg(message, messageArgs) {\n if (messageArgs === void 0) { messageArgs = []; }\n if (!message)\n return;\n return \"An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#\".concat(encodeURIComponent(JSON.stringify({\n version: version,\n message: message,\n args: messageArgs.map(stringify),\n })));\n}\nexport { invariant, InvariantError, newInvariantError, ApolloErrorMessageHandler, };\n//# sourceMappingURL=invariantWrappers.js.map","import { invariant, newInvariantError, InvariantError, } from \"./invariantWrappers.js\";\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, newInvariantError, InvariantError };\n/**\n * @deprecated we do not use this internally anymore,\n * it is just exported for backwards compatibility\n */\n// this file is extempt from automatic `__DEV__` replacement\n// so we have to write it out here\n// @ts-ignore\nexport var DEV = globalThis.__DEV__ !== false;\nexport { DEV as __DEV__ };\n//# sourceMappingURL=index.js.map"],"names":["originalInvariant","InvariantError","global"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tsInvariant = require('ts-invariant');
6
6
 
7
- var version = "3.9.0-beta.1";
7
+ var version = "3.9.0-rc.0";
8
8
 
9
9
  function maybe(thunk) {
10
10
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"relay.cjs","sources":["../../../link/http/iterators/async.js","../../../link/http/iterators/nodeStream.js","../../../link/http/iterators/promise.js","../../../link/http/iterators/reader.js","../../../link/http/responseIterator.js","../../common/objects.js","../../common/incrementalResult.js","../../../link/http/parseAndCheckHttpResponse.js","../../../link/http/selectHttpOptionsAndBody.js","../shared.js","index.js"],"sourcesContent":["/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\nexport default function asyncIterator(source) {\n var _a;\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function () {\n return iterator.next();\n }\n },\n _a[Symbol.asyncIterator] = function () {\n return this;\n },\n _a;\n}\n//# sourceMappingURL=async.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n function onData(chunk) {\n if (error)\n return;\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error)\n return reject(error);\n if (data.length)\n return resolve({ value: data.shift(), done: false });\n if (done)\n return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n var iterator = {\n next: function () {\n return getNext();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function () {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value, done: false });\n })\n .catch(reject);\n });\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=promise.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function () {\n return reader.read();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=reader.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nfunction isNodeResponse(value) {\n return !!value.body;\n}\nfunction isReadableStream(value) {\n return !!value.getReader;\n}\nfunction isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol &&\n value[Symbol.asyncIterator]);\n}\nfunction isStreamableBlob(value) {\n return !!value.stream;\n}\nfunction isBlob(value) {\n return !!value.arrayBuffer;\n}\nfunction isNodeReadableStream(value) {\n return !!value.pipe;\n}\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response))\n body = response.body;\n if (isAsyncIterableIterator(body))\n return asyncIterator(body);\n if (isReadableStream(body))\n return readerIterator(body.getReader());\n // this errors without casting to ReadableStream<T>\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n if (isBlob(body))\n return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body))\n return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === \"object\";\n}\nexport function isPlainObject(obj) {\n return (obj !== null &&\n typeof obj === \"object\" &&\n (Object.getPrototypeOf(obj) === Object.prototype ||\n Object.getPrototypeOf(obj) === null));\n}\n//# sourceMappingURL=objects.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n return (isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value));\n}\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n var mergedData = prevResult;\n var merger = new DeepMerger();\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (_a) {\n var data = _a.data, path = _a.path;\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, nextValue) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _b, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n var _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ?\n contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n : \"-\";\n boundary = \"\\r\\n--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _e.label = 1;\n case 1:\n if (!running) return [3 /*break*/, 3];\n return [4 /*yield*/, iterator.next()];\n case 2:\n _b = _e.sent(), value = _b.value, done = _b.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1) {\n message = void 0;\n _c = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ], message = _c[0], buffer = _c[1];\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n if (contentType_1 &&\n contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n body = message.slice(i);\n if (body) {\n result = parseJsonBody(response, body);\n if (Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result) {\n if (isApolloPayloadResult(result)) {\n next = {};\n if (\"payload\" in result) {\n next = __assign({}, result.payload);\n }\n if (\"errors\" in result) {\n next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_d = {}, _d[PROTOCOL_ERRORS_SYMBOL] = result.errors, _d)) });\n }\n nextValue(next);\n }\n else {\n // for the last chunk with only `hasNext: false`\n // we don't need to call observer.next as there is no data/errors\n nextValue(result);\n }\n }\n else if (\n // If the chunk contains only a \"hasNext: false\", we can call\n // observer.complete() immediately.\n Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext) {\n return [2 /*return*/];\n }\n }\n bi = buffer.indexOf(boundary);\n }\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n // Network error\n var getResult = function () {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n return bodyText;\n }\n };\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response\n .text()\n .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n .then(function (result) {\n if (response.status >= 300) {\n // Network error\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n // Data error\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ?\n operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n });\n };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from \"../../utilities/index.js\";\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\nvar 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};\nvar defaultOptions = {\n method: \"POST\",\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n //The body depends on the http options\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n // not sending the query (i.e persisted queries)\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { __assign } from \"tslib\";\nimport { fallbackHttpConfig } from \"../../link/http/selectHttpOptionsAndBody.js\";\nexport function generateOptionsForMultipartSubscription(headers) {\n var options = __assign(__assign({}, fallbackHttpConfig.options), { headers: __assign(__assign(__assign({}, (headers || {})), fallbackHttpConfig.headers), { accept: \"multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json\" }) });\n return options;\n}\n//# sourceMappingURL=shared.js.map","import { Observable } from \"relay-runtime\";\nimport { handleError, readMultipartBody, } from \"../../../link/http/parseAndCheckHttpResponse.js\";\nimport { maybe } from \"../../index.js\";\nimport { serializeFetchParameter } from \"../../../core/index.js\";\nimport { generateOptionsForMultipartSubscription } from \"../shared.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport function createFetchMultipartSubscription(uri, _a) {\n var _b = _a === void 0 ? {} : _a, preferredFetch = _b.fetch, headers = _b.headers;\n return function fetchMultipartSubscription(operation, variables) {\n var body = {\n operationName: operation.name,\n variables: variables,\n query: operation.text || \"\",\n };\n var options = generateOptionsForMultipartSubscription(headers || {});\n return Observable.create(function (sink) {\n try {\n options.body = serializeFetchParameter(body, \"Payload\");\n }\n catch (parseError) {\n sink.error(parseError);\n }\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n var observerNext = sink.next.bind(sink);\n currentFetch(uri, options)\n .then(function (response) {\n var _a;\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observerNext);\n }\n sink.error(new Error(\"Expected multipart response\"));\n })\n .then(function () {\n sink.complete();\n })\n .catch(function (err) {\n handleError(err, sink);\n });\n });\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["canUseAsyncIteratorSymbol","__awaiter","__generator","__assign","PROTOCOL_ERRORS_SYMBOL","throwServerError","maybe","Observable","serializeFetchParameter"],"mappings":"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"}
1
+ {"version":3,"file":"relay.cjs","sources":["../../../link/http/iterators/async.js","../../../link/http/iterators/nodeStream.js","../../../link/http/iterators/promise.js","../../../link/http/iterators/reader.js","../../../link/http/responseIterator.js","../../common/objects.js","../../common/incrementalResult.js","../../../link/http/parseAndCheckHttpResponse.js","../../../link/http/selectHttpOptionsAndBody.js","../shared.js","index.js"],"sourcesContent":["/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\nexport default function asyncIterator(source) {\n var _a;\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function () {\n return iterator.next();\n }\n },\n _a[Symbol.asyncIterator] = function () {\n return this;\n },\n _a;\n}\n//# sourceMappingURL=async.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n function onData(chunk) {\n if (error)\n return;\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error)\n return reject(error);\n if (data.length)\n return resolve({ value: data.shift(), done: false });\n if (done)\n return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n var iterator = {\n next: function () {\n return getNext();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function () {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value, done: false });\n })\n .catch(reject);\n });\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=promise.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function () {\n return reader.read();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=reader.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nfunction isNodeResponse(value) {\n return !!value.body;\n}\nfunction isReadableStream(value) {\n return !!value.getReader;\n}\nfunction isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol &&\n value[Symbol.asyncIterator]);\n}\nfunction isStreamableBlob(value) {\n return !!value.stream;\n}\nfunction isBlob(value) {\n return !!value.arrayBuffer;\n}\nfunction isNodeReadableStream(value) {\n return !!value.pipe;\n}\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response))\n body = response.body;\n if (isAsyncIterableIterator(body))\n return asyncIterator(body);\n if (isReadableStream(body))\n return readerIterator(body.getReader());\n // this errors without casting to ReadableStream<T>\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n if (isBlob(body))\n return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body))\n return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === \"object\";\n}\nexport function isPlainObject(obj) {\n return (obj !== null &&\n typeof obj === \"object\" &&\n (Object.getPrototypeOf(obj) === Object.prototype ||\n Object.getPrototypeOf(obj) === null));\n}\n//# sourceMappingURL=objects.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n return (isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value));\n}\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n var mergedData = prevResult;\n var merger = new DeepMerger();\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (_a) {\n var data = _a.data, path = _a.path;\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, nextValue) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _b, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n var _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ?\n contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n : \"-\";\n boundary = \"\\r\\n--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _e.label = 1;\n case 1:\n if (!running) return [3 /*break*/, 3];\n return [4 /*yield*/, iterator.next()];\n case 2:\n _b = _e.sent(), value = _b.value, done = _b.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1) {\n message = void 0;\n _c = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ], message = _c[0], buffer = _c[1];\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n if (contentType_1 &&\n contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n body = message.slice(i);\n if (body) {\n result = parseJsonBody(response, body);\n if (Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result) {\n if (isApolloPayloadResult(result)) {\n next = {};\n if (\"payload\" in result) {\n next = __assign({}, result.payload);\n }\n if (\"errors\" in result) {\n next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_d = {}, _d[PROTOCOL_ERRORS_SYMBOL] = result.errors, _d)) });\n }\n nextValue(next);\n }\n else {\n // for the last chunk with only `hasNext: false`\n // we don't need to call observer.next as there is no data/errors\n nextValue(result);\n }\n }\n else if (\n // If the chunk contains only a \"hasNext: false\", we can call\n // observer.complete() immediately.\n Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext) {\n return [2 /*return*/];\n }\n }\n bi = buffer.indexOf(boundary);\n }\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n // Network error\n var getResult = function () {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n return bodyText;\n }\n };\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response\n .text()\n .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n .then(function (result) {\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n // Data error\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ?\n operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n });\n };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from \"../../utilities/index.js\";\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\nvar 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};\nvar defaultOptions = {\n method: \"POST\",\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n //The body depends on the http options\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n // not sending the query (i.e persisted queries)\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { __assign } from \"tslib\";\nimport { fallbackHttpConfig } from \"../../link/http/selectHttpOptionsAndBody.js\";\nexport function generateOptionsForMultipartSubscription(headers) {\n var options = __assign(__assign({}, fallbackHttpConfig.options), { headers: __assign(__assign(__assign({}, (headers || {})), fallbackHttpConfig.headers), { accept: \"multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json\" }) });\n return options;\n}\n//# sourceMappingURL=shared.js.map","import { Observable } from \"relay-runtime\";\nimport { handleError, readMultipartBody, } from \"../../../link/http/parseAndCheckHttpResponse.js\";\nimport { maybe } from \"../../index.js\";\nimport { serializeFetchParameter } from \"../../../core/index.js\";\nimport { generateOptionsForMultipartSubscription } from \"../shared.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport function createFetchMultipartSubscription(uri, _a) {\n var _b = _a === void 0 ? {} : _a, preferredFetch = _b.fetch, headers = _b.headers;\n return function fetchMultipartSubscription(operation, variables) {\n var body = {\n operationName: operation.name,\n variables: variables,\n query: operation.text || \"\",\n };\n var options = generateOptionsForMultipartSubscription(headers || {});\n return Observable.create(function (sink) {\n try {\n options.body = serializeFetchParameter(body, \"Payload\");\n }\n catch (parseError) {\n sink.error(parseError);\n }\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n var observerNext = sink.next.bind(sink);\n currentFetch(uri, options)\n .then(function (response) {\n var _a;\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observerNext);\n }\n sink.error(new Error(\"Expected multipart response\"));\n })\n .then(function () {\n sink.complete();\n })\n .catch(function (err) {\n handleError(err, sink);\n });\n });\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["canUseAsyncIteratorSymbol","__awaiter","__generator","__assign","PROTOCOL_ERRORS_SYMBOL","throwServerError","maybe","Observable","serializeFetchParameter"],"mappings":"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"}