@apollo/client 3.8.0-beta.7 → 3.8.0-rc.1

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 (112) hide show
  1. package/apollo-client.cjs +239 -233
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/config/jest/setup.js +5 -0
  5. package/config/jest/setup.js.map +1 -1
  6. package/core/core.cjs +1 -1
  7. package/core/core.cjs.map +1 -1
  8. package/core/core.cjs.native.js +1 -1
  9. package/dev/dev.cjs +28 -37
  10. package/dev/dev.cjs.map +1 -1
  11. package/dev/dev.cjs.native.js +28 -37
  12. package/invariantErrorCodes.js +27 -36
  13. package/link/batch-http/batch-http.cjs +5 -7
  14. package/link/batch-http/batch-http.cjs.map +1 -1
  15. package/link/batch-http/batch-http.cjs.native.js +5 -7
  16. package/link/batch-http/batchHttpLink.d.ts.map +1 -1
  17. package/link/batch-http/batchHttpLink.js +6 -8
  18. package/link/batch-http/batchHttpLink.js.map +1 -1
  19. package/link/http/createHttpLink.d.ts.map +1 -1
  20. package/link/http/createHttpLink.js +16 -11
  21. package/link/http/createHttpLink.js.map +1 -1
  22. package/link/http/createSignalIfSupported.d.ts.map +1 -1
  23. package/link/http/createSignalIfSupported.js.map +1 -1
  24. package/link/http/http.cjs +47 -60
  25. package/link/http/http.cjs.map +1 -1
  26. package/link/http/http.cjs.native.js +47 -60
  27. package/link/http/parseAndCheckHttpResponse.d.ts +3 -4
  28. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  29. package/link/http/parseAndCheckHttpResponse.js +32 -51
  30. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  31. package/package.json +9 -9
  32. package/react/cache/QueryReference.d.ts +1 -1
  33. package/react/cache/QueryReference.d.ts.map +1 -1
  34. package/react/cache/QueryReference.js.map +1 -1
  35. package/react/cache/SuspenseCache.d.ts +1 -2
  36. package/react/cache/SuspenseCache.d.ts.map +1 -1
  37. package/react/cache/SuspenseCache.js.map +1 -1
  38. package/react/cache/getSuspenseCache.d.ts +16 -0
  39. package/react/cache/getSuspenseCache.d.ts.map +1 -0
  40. package/react/cache/getSuspenseCache.js +10 -0
  41. package/react/cache/getSuspenseCache.js.map +1 -0
  42. package/react/cache/index.d.ts +6 -1
  43. package/react/cache/index.d.ts.map +1 -1
  44. package/react/cache/index.js +15 -1
  45. package/react/cache/index.js.map +1 -1
  46. package/react/cache/types.d.ts +2 -1
  47. package/react/cache/types.d.ts.map +1 -1
  48. package/react/cache/types.js.map +1 -1
  49. package/react/context/ApolloContext.d.ts +0 -2
  50. package/react/context/ApolloContext.d.ts.map +1 -1
  51. package/react/context/ApolloContext.js.map +1 -1
  52. package/react/context/ApolloProvider.d.ts +0 -2
  53. package/react/context/ApolloProvider.d.ts.map +1 -1
  54. package/react/context/ApolloProvider.js +3 -3
  55. package/react/context/ApolloProvider.js.map +1 -1
  56. package/react/context/context.cjs +3 -3
  57. package/react/context/context.cjs.map +1 -1
  58. package/react/context/context.cjs.native.js +3 -3
  59. package/react/hooks/hooks.cjs +157 -126
  60. package/react/hooks/hooks.cjs.map +1 -1
  61. package/react/hooks/hooks.cjs.native.js +157 -126
  62. package/react/hooks/useBackgroundQuery.d.ts.map +1 -1
  63. package/react/hooks/useBackgroundQuery.js +7 -3
  64. package/react/hooks/useBackgroundQuery.js.map +1 -1
  65. package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
  66. package/react/hooks/useSuspenseQuery.js +9 -6
  67. package/react/hooks/useSuspenseQuery.js.map +1 -1
  68. package/react/hooks/useSyncExternalStore.js +1 -1
  69. package/react/index.d.ts.map +1 -1
  70. package/react/index.js.map +1 -1
  71. package/react/parser/index.js +5 -5
  72. package/react/parser/parser.cjs +5 -5
  73. package/react/parser/parser.cjs.map +1 -1
  74. package/react/parser/parser.cjs.native.js +5 -5
  75. package/react/react.cjs +14 -3
  76. package/react/react.cjs.map +1 -1
  77. package/react/react.cjs.native.js +14 -3
  78. package/testing/core/core.cjs +1 -1
  79. package/testing/core/core.cjs.map +1 -1
  80. package/testing/core/core.cjs.native.js +1 -1
  81. package/testing/core/mocking/mockLink.js +1 -1
  82. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +1 -2
  83. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts.map +1 -1
  84. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +11 -5
  85. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
  86. package/testing/react/MockedProvider.d.ts +0 -3
  87. package/testing/react/MockedProvider.d.ts.map +1 -1
  88. package/testing/react/MockedProvider.js +4 -6
  89. package/testing/react/MockedProvider.js.map +1 -1
  90. package/testing/testing.cjs +4 -6
  91. package/testing/testing.cjs.map +1 -1
  92. package/testing/testing.cjs.native.js +4 -6
  93. package/utilities/globals/globals.cjs +1 -1
  94. package/utilities/globals/globals.cjs.map +1 -1
  95. package/utilities/globals/globals.cjs.native.js +1 -1
  96. package/utilities/graphql/DocumentTransform.js +1 -1
  97. package/utilities/graphql/directives.js +4 -4
  98. package/utilities/graphql/fragments.js +3 -3
  99. package/utilities/graphql/getFromAST.js +8 -8
  100. package/utilities/graphql/operations.d.ts.map +1 -1
  101. package/utilities/graphql/operations.js +3 -4
  102. package/utilities/graphql/operations.js.map +1 -1
  103. package/utilities/graphql/storeUtils.js +1 -1
  104. package/utilities/graphql/transform.js +2 -2
  105. package/utilities/utilities.cjs +22 -22
  106. package/utilities/utilities.cjs.map +1 -1
  107. package/utilities/utilities.cjs.native.js +22 -22
  108. package/version.js +1 -1
  109. package/react/hooks/useSuspenseCache.d.ts +0 -3
  110. package/react/hooks/useSuspenseCache.d.ts.map +0 -1
  111. package/react/hooks/useSuspenseCache.js +0 -10
  112. package/react/hooks/useSuspenseCache.js.map +0 -1
package/apollo-client.cjs CHANGED
@@ -32,7 +32,7 @@ var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant$1);
32
32
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
33
33
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
34
 
35
- var version = '3.8.0-beta.7';
35
+ var version = '3.8.0-rc.1';
36
36
 
37
37
  function maybe(thunk) {
38
38
  try {
@@ -118,7 +118,7 @@ function shouldInclude(_a, variables) {
118
118
  var evaledValue = false;
119
119
  if (ifArgument.value.kind === 'Variable') {
120
120
  evaledValue = variables && variables[ifArgument.value.name.value];
121
- invariant(evaledValue !== void 0, 65, directive.name.value);
121
+ invariant(evaledValue !== void 0, 64, directive.name.value);
122
122
  }
123
123
  else {
124
124
  evaledValue = ifArgument.value.value;
@@ -154,12 +154,12 @@ function getInclusionDirectives(directives) {
154
154
  return;
155
155
  var directiveArguments = directive.arguments;
156
156
  var directiveName = directive.name.value;
157
- invariant(directiveArguments && directiveArguments.length === 1, 66, directiveName);
157
+ invariant(directiveArguments && directiveArguments.length === 1, 65, directiveName);
158
158
  var ifArgument = directiveArguments[0];
159
- invariant(ifArgument.name && ifArgument.name.value === 'if', 67, directiveName);
159
+ invariant(ifArgument.name && ifArgument.name.value === 'if', 66, directiveName);
160
160
  var ifValue = ifArgument.value;
161
161
  invariant(ifValue &&
162
- (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 68, directiveName);
162
+ (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 67, directiveName);
163
163
  result.push({ directive: directive, ifArgument: ifArgument });
164
164
  });
165
165
  }
@@ -186,7 +186,7 @@ function getFragmentQueryDocument(document, fragmentName) {
186
186
  document.definitions.forEach(function (definition) {
187
187
  if (definition.kind === 'OperationDefinition') {
188
188
  throw newInvariantError(
189
- 69,
189
+ 68,
190
190
  definition.operation,
191
191
  definition.name ? " named '".concat(definition.name.value, "'") : ''
192
192
  );
@@ -196,7 +196,7 @@ function getFragmentQueryDocument(document, fragmentName) {
196
196
  }
197
197
  });
198
198
  if (typeof actualFragmentName === 'undefined') {
199
- invariant(fragments.length === 1, 70, fragments.length);
199
+ invariant(fragments.length === 1, 69, fragments.length);
200
200
  actualFragmentName = fragments[0].name.value;
201
201
  }
202
202
  var query = tslib.__assign(tslib.__assign({}, document), { definitions: tslib.__spreadArray([
@@ -237,7 +237,7 @@ function getFragmentFromSelection(selection, fragmentMap) {
237
237
  return fragmentMap(fragmentName);
238
238
  }
239
239
  var fragment = fragmentMap && fragmentMap[fragmentName];
240
- invariant(fragment, 71, fragmentName);
240
+ invariant(fragment, 70, fragmentName);
241
241
  return fragment || null;
242
242
  }
243
243
  default:
@@ -315,7 +315,7 @@ function valueToObjectRepresentation(argObj, name, value, variables) {
315
315
  argObj[name.value] = null;
316
316
  }
317
317
  else {
318
- throw newInvariantError(80, name.value, value.kind);
318
+ throw newInvariantError(79, name.value, value.kind);
319
319
  }
320
320
  }
321
321
  function storeKeyNameFromField(field, variables) {
@@ -460,16 +460,16 @@ function isInlineFragment(selection) {
460
460
  }
461
461
 
462
462
  function checkDocument(doc) {
463
- invariant(doc && doc.kind === 'Document', 72);
463
+ invariant(doc && doc.kind === 'Document', 71);
464
464
  var operations = doc.definitions
465
465
  .filter(function (d) { return d.kind !== 'FragmentDefinition'; })
466
466
  .map(function (definition) {
467
467
  if (definition.kind !== 'OperationDefinition') {
468
- throw newInvariantError(73, definition.kind);
468
+ throw newInvariantError(72, definition.kind);
469
469
  }
470
470
  return definition;
471
471
  });
472
- invariant(operations.length <= 1, 74, operations.length);
472
+ invariant(operations.length <= 1, 73, operations.length);
473
473
  return doc;
474
474
  }
475
475
  function getOperationDefinition(doc) {
@@ -492,14 +492,14 @@ function getFragmentDefinitions(doc) {
492
492
  }
493
493
  function getQueryDefinition(doc) {
494
494
  var queryDef = getOperationDefinition(doc);
495
- invariant(queryDef && queryDef.operation === 'query', 75);
495
+ invariant(queryDef && queryDef.operation === 'query', 74);
496
496
  return queryDef;
497
497
  }
498
498
  function getFragmentDefinition(doc) {
499
- invariant(doc.kind === 'Document', 76);
500
- invariant(doc.definitions.length <= 1, 77);
499
+ invariant(doc.kind === 'Document', 75);
500
+ invariant(doc.definitions.length <= 1, 76);
501
501
  var fragmentDef = doc.definitions[0];
502
- invariant(fragmentDef.kind === 'FragmentDefinition', 78);
502
+ invariant(fragmentDef.kind === 'FragmentDefinition', 77);
503
503
  return fragmentDef;
504
504
  }
505
505
  function getMainDefinition(queryDoc) {
@@ -522,7 +522,7 @@ function getMainDefinition(queryDoc) {
522
522
  if (fragmentDefinition) {
523
523
  return fragmentDefinition;
524
524
  }
525
- throw newInvariantError(79);
525
+ throw newInvariantError(78);
526
526
  }
527
527
  function getDefaultValues(definition) {
528
528
  var defaultValues = Object.create(null);
@@ -594,7 +594,7 @@ var DocumentTransform = (function () {
594
594
  return;
595
595
  var cacheKeys = this.getCacheKey(document);
596
596
  if (cacheKeys) {
597
- invariant(Array.isArray(cacheKeys), 64);
597
+ invariant(Array.isArray(cacheKeys), 63);
598
598
  return this.stableCacheKeys.lookupArray(cacheKeys);
599
599
  }
600
600
  };
@@ -687,7 +687,7 @@ function removeDirectivesFromDocument(directives, doc) {
687
687
  return getInUseByFragmentName(ancestor.name.value);
688
688
  }
689
689
  }
690
- globalThis.__DEV__ !== false && invariant.error(81);
690
+ globalThis.__DEV__ !== false && invariant.error(80);
691
691
  return null;
692
692
  };
693
693
  var operationCount = 0;
@@ -1745,13 +1745,13 @@ var ApolloError = (function (_super) {
1745
1745
  }(Error));
1746
1746
 
1747
1747
  var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
1748
- function readMultipartBody(response, observer) {
1749
- var _a, _b, _c, _d, _e;
1748
+ function readMultipartBody(response, nextValue) {
1749
+ var _a;
1750
1750
  return tslib.__awaiter(this, void 0, void 0, function () {
1751
- var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _f, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;
1752
- var _g, _h;
1753
- return tslib.__generator(this, function (_j) {
1754
- switch (_j.label) {
1751
+ var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _b, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;
1752
+ var _c, _d;
1753
+ return tslib.__generator(this, function (_e) {
1754
+ switch (_e.label) {
1755
1755
  case 0:
1756
1756
  if (TextDecoder === undefined) {
1757
1757
  throw new Error("TextDecoder must be defined in the environment: please import a polyfill.");
@@ -1766,12 +1766,12 @@ function readMultipartBody(response, observer) {
1766
1766
  buffer = "";
1767
1767
  iterator = responseIterator(response);
1768
1768
  running = true;
1769
- _j.label = 1;
1769
+ _e.label = 1;
1770
1770
  case 1:
1771
1771
  if (!running) return [3, 3];
1772
1772
  return [4, iterator.next()];
1773
1773
  case 2:
1774
- _f = _j.sent(), value = _f.value, done = _f.done;
1774
+ _b = _e.sent(), value = _b.value, done = _b.done;
1775
1775
  chunk = typeof value === "string" ? value : decoder.decode(value);
1776
1776
  searchFrom = buffer.length - boundary.length + 1;
1777
1777
  running = !done;
@@ -1779,10 +1779,10 @@ function readMultipartBody(response, observer) {
1779
1779
  bi = buffer.indexOf(boundary, searchFrom);
1780
1780
  while (bi > -1) {
1781
1781
  message = void 0;
1782
- _g = [
1782
+ _c = [
1783
1783
  buffer.slice(0, bi),
1784
1784
  buffer.slice(bi + boundary.length),
1785
- ], message = _g[0], buffer = _g[1];
1785
+ ], message = _c[0], buffer = _c[1];
1786
1786
  i = message.indexOf("\r\n\r\n");
1787
1787
  headers = parseHeaders(message.slice(0, i));
1788
1788
  contentType_1 = headers["content-type"];
@@ -1792,43 +1792,36 @@ function readMultipartBody(response, observer) {
1792
1792
  }
1793
1793
  body = message.slice(i);
1794
1794
  if (body) {
1795
- try {
1796
- result = parseJsonBody(response, body);
1797
- if (Object.keys(result).length > 1 ||
1798
- "data" in result ||
1799
- "incremental" in result ||
1800
- "errors" in result ||
1801
- "payload" in result) {
1802
- if (isApolloPayloadResult(result)) {
1803
- next = {};
1804
- if ("payload" in result) {
1805
- next = tslib.__assign({}, result.payload);
1806
- }
1807
- if ("errors" in result) {
1808
- next = tslib.__assign(tslib.__assign({}, next), { extensions: tslib.__assign(tslib.__assign({}, ("extensions" in next ? next.extensions : null)), (_h = {}, _h[PROTOCOL_ERRORS_SYMBOL] = result.errors, _h)) });
1809
- }
1810
- (_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, next);
1795
+ result = parseJsonBody(response, body);
1796
+ if (Object.keys(result).length > 1 ||
1797
+ "data" in result ||
1798
+ "incremental" in result ||
1799
+ "errors" in result ||
1800
+ "payload" in result) {
1801
+ if (isApolloPayloadResult(result)) {
1802
+ next = {};
1803
+ if ("payload" in result) {
1804
+ next = tslib.__assign({}, result.payload);
1811
1805
  }
1812
- else {
1813
- (_c = observer.next) === null || _c === void 0 ? void 0 : _c.call(observer, result);
1806
+ if ("errors" in result) {
1807
+ next = tslib.__assign(tslib.__assign({}, next), { extensions: tslib.__assign(tslib.__assign({}, ("extensions" in next ? next.extensions : null)), (_d = {}, _d[PROTOCOL_ERRORS_SYMBOL] = result.errors, _d)) });
1814
1808
  }
1809
+ nextValue(next);
1815
1810
  }
1816
- else if (Object.keys(result).length === 1 &&
1817
- "hasNext" in result &&
1818
- !result.hasNext) {
1819
- (_d = observer.complete) === null || _d === void 0 ? void 0 : _d.call(observer);
1811
+ else {
1812
+ nextValue(result);
1820
1813
  }
1821
1814
  }
1822
- catch (err) {
1823
- handleError(err, observer);
1815
+ else if (Object.keys(result).length === 1 &&
1816
+ "hasNext" in result &&
1817
+ !result.hasNext) {
1818
+ return [2];
1824
1819
  }
1825
1820
  }
1826
1821
  bi = buffer.indexOf(boundary);
1827
1822
  }
1828
1823
  return [3, 1];
1829
- case 3:
1830
- (_e = observer.complete) === null || _e === void 0 ? void 0 : _e.call(observer);
1831
- return [2];
1824
+ case 3: return [2];
1832
1825
  }
1833
1826
  });
1834
1827
  });
@@ -1870,22 +1863,10 @@ function parseJsonBody(response, bodyText) {
1870
1863
  }
1871
1864
  }
1872
1865
  function handleError(err, observer) {
1873
- var _a, _b;
1874
- if (err.name === "AbortError")
1875
- return;
1876
1866
  if (err.result && err.result.errors && err.result.data) {
1877
- (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, err.result);
1867
+ observer.next(err.result);
1878
1868
  }
1879
- (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, err);
1880
- }
1881
- function readJsonBody(response, operation, observer) {
1882
- parseAndCheckHttpResponse(operation)(response)
1883
- .then(function (result) {
1884
- var _a, _b;
1885
- (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, result);
1886
- (_b = observer.complete) === null || _b === void 0 ? void 0 : _b.call(observer);
1887
- })
1888
- .catch(function (err) { return handleError(err, observer); });
1869
+ observer.error(err);
1889
1870
  }
1890
1871
  function parseAndCheckHttpResponse(operations) {
1891
1872
  return function (response) {
@@ -2110,11 +2091,9 @@ var createHttpLink = function (linkOptions) {
2110
2091
  body.variables = filterOperationVariables(body.variables, operation.query);
2111
2092
  }
2112
2093
  var controller;
2113
- if (!options.signal) {
2114
- var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;
2115
- controller = _controller;
2116
- if (controller)
2117
- options.signal = signal;
2094
+ if (!options.signal && typeof AbortController !== 'undefined') {
2095
+ controller = new AbortController();
2096
+ options.signal = controller.signal;
2118
2097
  }
2119
2098
  var definitionIsMutation = function (d) {
2120
2099
  return d.kind === 'OperationDefinition' && d.operation === 'mutation';
@@ -2143,7 +2122,7 @@ var createHttpLink = function (linkOptions) {
2143
2122
  options.headers.accept = acceptHeader;
2144
2123
  }
2145
2124
  if (options.method === 'GET') {
2146
- var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;
2125
+ var _c = rewriteURIForGET(chosenURI, body), newURI = _c.newURI, parseError = _c.parseError;
2147
2126
  if (parseError) {
2148
2127
  return fromError(parseError);
2149
2128
  }
@@ -2159,19 +2138,27 @@ var createHttpLink = function (linkOptions) {
2159
2138
  }
2160
2139
  return new zenObservableTs.Observable(function (observer) {
2161
2140
  var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;
2141
+ var observerNext = observer.next.bind(observer);
2162
2142
  currentFetch(chosenURI, options)
2163
2143
  .then(function (response) {
2164
2144
  var _a;
2165
2145
  operation.setContext({ response: response });
2166
2146
  var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');
2167
2147
  if (ctype !== null && /^multipart\/mixed/i.test(ctype)) {
2168
- return readMultipartBody(response, observer);
2148
+ return readMultipartBody(response, observerNext);
2169
2149
  }
2170
2150
  else {
2171
- return readJsonBody(response, operation, observer);
2151
+ return parseAndCheckHttpResponse(operation)(response).then(observerNext);
2172
2152
  }
2173
2153
  })
2174
- .catch(function (err) { return handleError(err, observer); });
2154
+ .then(function () {
2155
+ controller = undefined;
2156
+ observer.complete();
2157
+ })
2158
+ .catch(function (err) {
2159
+ controller = undefined;
2160
+ handleError(err, observer);
2161
+ });
2175
2162
  return function () {
2176
2163
  if (controller)
2177
2164
  controller.abort();
@@ -6846,12 +6833,12 @@ var ApolloConsumer = function (props) {
6846
6833
  };
6847
6834
 
6848
6835
  var ApolloProvider = function (_a) {
6849
- var client = _a.client, suspenseCache = _a.suspenseCache, children = _a.children;
6836
+ var client = _a.client, children = _a.children;
6850
6837
  var ApolloContext = getApolloContext();
6851
6838
  var parentContext = React__namespace.useContext(ApolloContext);
6852
6839
  var context = React__namespace.useMemo(function () {
6853
- return tslib.__assign(tslib.__assign({}, parentContext), { client: client || parentContext.client, suspenseCache: suspenseCache || parentContext.suspenseCache });
6854
- }, [parentContext, client, suspenseCache]);
6840
+ return tslib.__assign(tslib.__assign({}, parentContext), { client: client || parentContext.client });
6841
+ }, [parentContext, client]);
6855
6842
  invariant(context.client, 44);
6856
6843
  return (React__namespace.createElement(ApolloContext.Provider, { value: context }, children));
6857
6844
  };
@@ -6872,7 +6859,7 @@ var useSyncExternalStore = realHook$1 || (function (subscribe, getSnapshot, getS
6872
6859
  !didWarnUncachedGetSnapshot &&
6873
6860
  value !== getSnapshot()) {
6874
6861
  didWarnUncachedGetSnapshot = true;
6875
- globalThis.__DEV__ !== false && invariant.error(57);
6862
+ globalThis.__DEV__ !== false && invariant.error(56);
6876
6863
  }
6877
6864
  var _a = React__namespace.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];
6878
6865
  if (canUseLayoutEffect) {
@@ -6935,7 +6922,7 @@ function parser(document) {
6935
6922
  if (cached)
6936
6923
  return cached;
6937
6924
  var variables, type, name;
6938
- invariant(!!document && !!document.kind, 58, document);
6925
+ invariant(!!document && !!document.kind, 57, document);
6939
6926
  var fragments = [];
6940
6927
  var queries = [];
6941
6928
  var mutations = [];
@@ -6961,10 +6948,10 @@ function parser(document) {
6961
6948
  }
6962
6949
  }
6963
6950
  invariant(!fragments.length ||
6964
- (queries.length || mutations.length || subscriptions.length), 59);
6951
+ (queries.length || mutations.length || subscriptions.length), 58);
6965
6952
  invariant(
6966
6953
  queries.length + mutations.length + subscriptions.length <= 1,
6967
- 60,
6954
+ 59,
6968
6955
  document,
6969
6956
  queries.length,
6970
6957
  subscriptions.length,
@@ -6978,7 +6965,7 @@ function parser(document) {
6978
6965
  : mutations.length
6979
6966
  ? mutations
6980
6967
  : subscriptions;
6981
- invariant(definitions.length === 1, 61, document, definitions.length);
6968
+ invariant(definitions.length === 1, 60, document, definitions.length);
6982
6969
  var definition = definitions[0];
6983
6970
  variables = definition.variableDefinitions || [];
6984
6971
  if (definition.name && definition.name.kind === 'Name') {
@@ -6997,7 +6984,7 @@ function verifyDocumentType(document, type) {
6997
6984
  var usedOperationName = operationName(operation.type);
6998
6985
  invariant(
6999
6986
  operation.type === type,
7000
- 62,
6987
+ 61,
7001
6988
  requiredOperationName,
7002
6989
  requiredOperationName,
7003
6990
  usedOperationName
@@ -7660,127 +7647,6 @@ var __use = realHook ||
7660
7647
  }
7661
7648
  };
7662
7649
 
7663
- function useSuspenseCache(override) {
7664
- var context = React__namespace.useContext(getApolloContext());
7665
- var suspenseCache = override || context.suspenseCache;
7666
- invariant(suspenseCache, 54);
7667
- return suspenseCache;
7668
- }
7669
-
7670
- function useSuspenseQuery(query, options) {
7671
- if (options === void 0) { options = Object.create(null); }
7672
- var client = useApolloClient(options.client);
7673
- var suspenseCache = useSuspenseCache(options.suspenseCache);
7674
- var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
7675
- var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
7676
- var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
7677
- var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
7678
- var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
7679
- return client.watchQuery(watchQueryOptions);
7680
- });
7681
- var _b = React__namespace.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
7682
- var promise = promiseCache.get(queryRef.key);
7683
- if (queryRef.didChangeOptions(watchQueryOptions)) {
7684
- promise = queryRef.applyOptions(watchQueryOptions);
7685
- promiseCache.set(queryRef.key, promise);
7686
- }
7687
- if (!promise) {
7688
- promise = queryRef.promise;
7689
- promiseCache.set(queryRef.key, promise);
7690
- }
7691
- React__namespace.useEffect(function () {
7692
- var dispose = queryRef.retain();
7693
- var removeListener = queryRef.listen(function (promise) {
7694
- setPromiseCache(function (promiseCache) {
7695
- return new Map(promiseCache).set(queryRef.key, promise);
7696
- });
7697
- });
7698
- return function () {
7699
- removeListener();
7700
- dispose();
7701
- };
7702
- }, [queryRef]);
7703
- var skipResult = React__namespace.useMemo(function () {
7704
- var error = toApolloError(queryRef.result);
7705
- return {
7706
- loading: false,
7707
- data: queryRef.result.data,
7708
- networkStatus: error ? exports.NetworkStatus.error : exports.NetworkStatus.ready,
7709
- error: error,
7710
- };
7711
- }, [queryRef.result]);
7712
- var result = fetchPolicy === 'standby' ? skipResult : __use(promise);
7713
- var fetchMore = React__namespace.useCallback(function (options) {
7714
- var promise = queryRef.fetchMore(options);
7715
- setPromiseCache(function (previousPromiseCache) {
7716
- return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
7717
- });
7718
- return promise;
7719
- }, [queryRef]);
7720
- var refetch = React__namespace.useCallback(function (variables) {
7721
- var promise = queryRef.refetch(variables);
7722
- setPromiseCache(function (previousPromiseCache) {
7723
- return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
7724
- });
7725
- return promise;
7726
- }, [queryRef]);
7727
- var subscribeToMore = React__namespace.useCallback(function (options) { return queryRef.observable.subscribeToMore(options); }, [queryRef]);
7728
- return React__namespace.useMemo(function () {
7729
- return {
7730
- client: client,
7731
- data: result.data,
7732
- error: toApolloError(result),
7733
- networkStatus: result.networkStatus,
7734
- fetchMore: fetchMore,
7735
- refetch: refetch,
7736
- subscribeToMore: subscribeToMore,
7737
- };
7738
- }, [client, fetchMore, refetch, result, subscribeToMore]);
7739
- }
7740
- function validateOptions(options) {
7741
- var query = options.query, fetchPolicy = options.fetchPolicy, returnPartialData = options.returnPartialData;
7742
- verifyDocumentType(query, exports.DocumentType.Query);
7743
- validateFetchPolicy(fetchPolicy);
7744
- validatePartialDataReturn(fetchPolicy, returnPartialData);
7745
- }
7746
- function validateFetchPolicy(fetchPolicy) {
7747
- if (fetchPolicy === void 0) { fetchPolicy = 'cache-first'; }
7748
- var supportedFetchPolicies = [
7749
- 'cache-first',
7750
- 'network-only',
7751
- 'no-cache',
7752
- 'cache-and-network',
7753
- ];
7754
- invariant(supportedFetchPolicies.includes(fetchPolicy), 55, fetchPolicy);
7755
- }
7756
- function validatePartialDataReturn(fetchPolicy, returnPartialData) {
7757
- if (fetchPolicy === 'no-cache' && returnPartialData) {
7758
- globalThis.__DEV__ !== false && invariant.warn(56);
7759
- }
7760
- }
7761
- function toApolloError(result) {
7762
- return isNonEmptyArray(result.errors)
7763
- ? new ApolloError({ graphQLErrors: result.errors })
7764
- : result.error;
7765
- }
7766
- function useWatchQueryOptions(_a) {
7767
- var client = _a.client, query = _a.query, options = _a.options;
7768
- return useDeepMemo(function () {
7769
- var _a;
7770
- var fetchPolicy = options.fetchPolicy ||
7771
- ((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
7772
- 'cache-first';
7773
- var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
7774
- if (globalThis.__DEV__ !== false) {
7775
- validateOptions(watchQueryOptions);
7776
- }
7777
- if (options.skip) {
7778
- watchQueryOptions.fetchPolicy = 'standby';
7779
- }
7780
- return watchQueryOptions;
7781
- }, [client, options, query]);
7782
- }
7783
-
7784
7650
  var QUERY_REFERENCE_SYMBOL = Symbol();
7785
7651
  var OBSERVED_CHANGED_OPTIONS = [
7786
7652
  'canonizeResults',
@@ -7956,14 +7822,176 @@ var InternalQueryReference = (function () {
7956
7822
  return InternalQueryReference;
7957
7823
  }());
7958
7824
 
7825
+ var SuspenseCache$1 = (function () {
7826
+ function SuspenseCache(options) {
7827
+ if (options === void 0) { options = Object.create(null); }
7828
+ this.queryRefs = new trie.Trie(canUseWeakMap);
7829
+ this.options = options;
7830
+ }
7831
+ SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {
7832
+ var ref = this.queryRefs.lookupArray(cacheKey);
7833
+ if (!ref.current) {
7834
+ ref.current = new InternalQueryReference(createObservable(), {
7835
+ key: cacheKey,
7836
+ autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,
7837
+ onDispose: function () {
7838
+ delete ref.current;
7839
+ },
7840
+ });
7841
+ }
7842
+ return ref.current;
7843
+ };
7844
+ return SuspenseCache;
7845
+ }());
7846
+
7847
+ var suspenseCacheSymbol = Symbol.for('apollo.suspenseCache');
7848
+ function getSuspenseCache(client) {
7849
+ var _a;
7850
+ if (!client[suspenseCacheSymbol]) {
7851
+ client[suspenseCacheSymbol] = new SuspenseCache$1((_a = client.defaultOptions.react) === null || _a === void 0 ? void 0 : _a.suspense);
7852
+ }
7853
+ return client[suspenseCacheSymbol];
7854
+ }
7855
+
7856
+ var SuspenseCache = (function (_super) {
7857
+ tslib.__extends(SuspenseCache, _super);
7858
+ function SuspenseCache() {
7859
+ _super.call(this) || this;
7860
+ throw new Error('It is no longer necessary to create a `SuspenseCache` instance and pass it into the `ApolloProvider`.\n' +
7861
+ 'Please remove this code from your application. \n\n' +
7862
+ 'This export will be removed with the final 3.8 release.');
7863
+ }
7864
+ return SuspenseCache;
7865
+ }(SuspenseCache$1));
7866
+
7867
+ function useSuspenseQuery(query, options) {
7868
+ if (options === void 0) { options = Object.create(null); }
7869
+ var client = useApolloClient(options.client);
7870
+ var suspenseCache = getSuspenseCache(client);
7871
+ var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
7872
+ var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
7873
+ var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
7874
+ var cacheKey = tslib.__spreadArray([
7875
+ query,
7876
+ canonicalStringify(variables)
7877
+ ], [].concat(queryKey), true);
7878
+ var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
7879
+ return client.watchQuery(watchQueryOptions);
7880
+ });
7881
+ var _b = React__namespace.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
7882
+ var promise = promiseCache.get(queryRef.key);
7883
+ if (queryRef.didChangeOptions(watchQueryOptions)) {
7884
+ promise = queryRef.applyOptions(watchQueryOptions);
7885
+ promiseCache.set(queryRef.key, promise);
7886
+ }
7887
+ if (!promise) {
7888
+ promise = queryRef.promise;
7889
+ promiseCache.set(queryRef.key, promise);
7890
+ }
7891
+ React__namespace.useEffect(function () {
7892
+ var dispose = queryRef.retain();
7893
+ var removeListener = queryRef.listen(function (promise) {
7894
+ setPromiseCache(function (promiseCache) {
7895
+ return new Map(promiseCache).set(queryRef.key, promise);
7896
+ });
7897
+ });
7898
+ return function () {
7899
+ removeListener();
7900
+ dispose();
7901
+ };
7902
+ }, [queryRef]);
7903
+ var skipResult = React__namespace.useMemo(function () {
7904
+ var error = toApolloError(queryRef.result);
7905
+ return {
7906
+ loading: false,
7907
+ data: queryRef.result.data,
7908
+ networkStatus: error ? exports.NetworkStatus.error : exports.NetworkStatus.ready,
7909
+ error: error,
7910
+ };
7911
+ }, [queryRef.result]);
7912
+ var result = fetchPolicy === 'standby' ? skipResult : __use(promise);
7913
+ var fetchMore = React__namespace.useCallback(function (options) {
7914
+ var promise = queryRef.fetchMore(options);
7915
+ setPromiseCache(function (previousPromiseCache) {
7916
+ return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
7917
+ });
7918
+ return promise;
7919
+ }, [queryRef]);
7920
+ var refetch = React__namespace.useCallback(function (variables) {
7921
+ var promise = queryRef.refetch(variables);
7922
+ setPromiseCache(function (previousPromiseCache) {
7923
+ return new Map(previousPromiseCache).set(queryRef.key, queryRef.promise);
7924
+ });
7925
+ return promise;
7926
+ }, [queryRef]);
7927
+ var subscribeToMore = React__namespace.useCallback(function (options) { return queryRef.observable.subscribeToMore(options); }, [queryRef]);
7928
+ return React__namespace.useMemo(function () {
7929
+ return {
7930
+ client: client,
7931
+ data: result.data,
7932
+ error: toApolloError(result),
7933
+ networkStatus: result.networkStatus,
7934
+ fetchMore: fetchMore,
7935
+ refetch: refetch,
7936
+ subscribeToMore: subscribeToMore,
7937
+ };
7938
+ }, [client, fetchMore, refetch, result, subscribeToMore]);
7939
+ }
7940
+ function validateOptions(options) {
7941
+ var query = options.query, fetchPolicy = options.fetchPolicy, returnPartialData = options.returnPartialData;
7942
+ verifyDocumentType(query, exports.DocumentType.Query);
7943
+ validateFetchPolicy(fetchPolicy);
7944
+ validatePartialDataReturn(fetchPolicy, returnPartialData);
7945
+ }
7946
+ function validateFetchPolicy(fetchPolicy) {
7947
+ if (fetchPolicy === void 0) { fetchPolicy = 'cache-first'; }
7948
+ var supportedFetchPolicies = [
7949
+ 'cache-first',
7950
+ 'network-only',
7951
+ 'no-cache',
7952
+ 'cache-and-network',
7953
+ ];
7954
+ invariant(supportedFetchPolicies.includes(fetchPolicy), 54, fetchPolicy);
7955
+ }
7956
+ function validatePartialDataReturn(fetchPolicy, returnPartialData) {
7957
+ if (fetchPolicy === 'no-cache' && returnPartialData) {
7958
+ globalThis.__DEV__ !== false && invariant.warn(55);
7959
+ }
7960
+ }
7961
+ function toApolloError(result) {
7962
+ return isNonEmptyArray(result.errors)
7963
+ ? new ApolloError({ graphQLErrors: result.errors })
7964
+ : result.error;
7965
+ }
7966
+ function useWatchQueryOptions(_a) {
7967
+ var client = _a.client, query = _a.query, options = _a.options;
7968
+ return useDeepMemo(function () {
7969
+ var _a;
7970
+ var fetchPolicy = options.fetchPolicy ||
7971
+ ((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
7972
+ 'cache-first';
7973
+ var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
7974
+ if (globalThis.__DEV__ !== false) {
7975
+ validateOptions(watchQueryOptions);
7976
+ }
7977
+ if (options.skip) {
7978
+ watchQueryOptions.fetchPolicy = 'standby';
7979
+ }
7980
+ return watchQueryOptions;
7981
+ }, [client, options, query]);
7982
+ }
7983
+
7959
7984
  function useBackgroundQuery(query, options) {
7960
7985
  if (options === void 0) { options = Object.create(null); }
7961
- var suspenseCache = useSuspenseCache(options.suspenseCache);
7962
7986
  var client = useApolloClient(options.client);
7987
+ var suspenseCache = getSuspenseCache(client);
7963
7988
  var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
7964
7989
  var variables = watchQueryOptions.variables;
7965
7990
  var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
7966
- var cacheKey = [client, query, canonicalStringify(variables)].concat(queryKey);
7991
+ var cacheKey = tslib.__spreadArray([
7992
+ query,
7993
+ canonicalStringify(variables)
7994
+ ], [].concat(queryKey), true);
7967
7995
  var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
7968
7996
  return client.watchQuery(watchQueryOptions);
7969
7997
  });
@@ -8036,28 +8064,6 @@ function useReadQuery(queryRef) {
8036
8064
  }, [result]);
8037
8065
  }
8038
8066
 
8039
- var SuspenseCache = (function () {
8040
- function SuspenseCache(options) {
8041
- if (options === void 0) { options = Object.create(null); }
8042
- this.queryRefs = new trie.Trie(canUseWeakMap);
8043
- this.options = options;
8044
- }
8045
- SuspenseCache.prototype.getQueryRef = function (cacheKey, createObservable) {
8046
- var ref = this.queryRefs.lookupArray(cacheKey);
8047
- if (!ref.current) {
8048
- ref.current = new InternalQueryReference(createObservable(), {
8049
- key: cacheKey,
8050
- autoDisposeTimeoutMs: this.options.autoDisposeTimeoutMs,
8051
- onDispose: function () {
8052
- delete ref.current;
8053
- },
8054
- });
8055
- }
8056
- return ref.current;
8057
- };
8058
- return SuspenseCache;
8059
- }());
8060
-
8061
8067
  exports.setLogVerbosity = invariant$1.setVerbosity;
8062
8068
  exports.Observable = zenObservableTs.Observable;
8063
8069
  exports.disableExperimentalFragmentVariables = graphqlTag.disableExperimentalFragmentVariables;