@apollo/client 4.1.0-alpha.8 → 4.1.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 (179) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/__cjs/cache/core/cache.cjs +64 -24
  3. package/__cjs/cache/core/cache.cjs.map +1 -1
  4. package/__cjs/cache/core/cache.d.cts +47 -0
  5. package/__cjs/cache/core/types/Cache.d.cts +39 -0
  6. package/__cjs/cache/index.cjs.map +1 -1
  7. package/__cjs/cache/index.d.cts +1 -1
  8. package/__cjs/cache/inmemory/entityStore.cjs +3 -3
  9. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  10. package/__cjs/cache/inmemory/inMemoryCache.cjs +47 -0
  11. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  12. package/__cjs/cache/inmemory/inMemoryCache.d.cts +47 -0
  13. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  14. package/__cjs/cache/inmemory/policies.cjs +76 -17
  15. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  16. package/__cjs/cache/inmemory/policies.d.cts +33 -6
  17. package/__cjs/cache/inmemory/readFromStore.cjs +3 -3
  18. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  19. package/__cjs/cache/inmemory/types.d.cts +3 -0
  20. package/__cjs/cache/inmemory/writeToStore.cjs +24 -9
  21. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  22. package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
  23. package/__cjs/core/ApolloClient.cjs +14 -14
  24. package/__cjs/core/ApolloClient.cjs.map +1 -1
  25. package/__cjs/core/ApolloClient.d.cts +21 -1
  26. package/__cjs/core/ObservableQuery.cjs +22 -8
  27. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  28. package/__cjs/core/ObservableQuery.d.cts +1 -0
  29. package/__cjs/core/QueryInfo.cjs +9 -1
  30. package/__cjs/core/QueryInfo.cjs.map +1 -1
  31. package/__cjs/core/QueryInfo.d.cts +4 -3
  32. package/__cjs/core/QueryManager.cjs +40 -20
  33. package/__cjs/core/QueryManager.cjs.map +1 -1
  34. package/__cjs/core/QueryManager.d.cts +19 -2
  35. package/__cjs/incremental/handlers/graphql17Alpha9.cjs +39 -0
  36. package/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
  37. package/__cjs/incremental/handlers/graphql17Alpha9.d.cts +1 -0
  38. package/__cjs/incremental/types.d.cts +9 -0
  39. package/__cjs/invariantErrorCodes.cjs +39 -33
  40. package/__cjs/link/error/index.cjs +1 -1
  41. package/__cjs/link/error/index.cjs.map +1 -1
  42. package/__cjs/link/error/index.d.cts +1 -1
  43. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  44. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  45. package/__cjs/react/hooks/useLazyQuery.cjs +1 -0
  46. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  47. package/__cjs/react/hooks/useQuery.cjs +7 -4
  48. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  49. package/__cjs/react/hooks/useSuspenseQuery.cjs +2 -0
  50. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  51. package/__cjs/react/query-preloader/createQueryPreloader.cjs +41 -1
  52. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  53. package/__cjs/utilities/internal/checkDocument.cjs +2 -4
  54. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  55. package/__cjs/utilities/internal/constants.cjs +26 -0
  56. package/__cjs/utilities/internal/constants.cjs.map +1 -0
  57. package/__cjs/utilities/internal/constants.d.cts +23 -0
  58. package/__cjs/utilities/internal/index.cjs +7 -1
  59. package/__cjs/utilities/internal/index.cjs.map +1 -1
  60. package/__cjs/utilities/internal/index.d.cts +4 -0
  61. package/__cjs/utilities/internal/mapObservableFragment.cjs +27 -0
  62. package/__cjs/utilities/internal/mapObservableFragment.cjs.map +1 -0
  63. package/__cjs/utilities/internal/mapObservableFragment.d.cts +3 -0
  64. package/__cjs/utilities/internal/memoize.cjs +31 -0
  65. package/__cjs/utilities/internal/memoize.cjs.map +1 -0
  66. package/__cjs/utilities/internal/memoize.d.cts +8 -0
  67. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs +61 -0
  68. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs.map +1 -0
  69. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.d.cts +11 -0
  70. package/__cjs/utilities/internal/ponyfills/index.cjs +6 -0
  71. package/__cjs/utilities/internal/ponyfills/index.cjs.map +1 -0
  72. package/__cjs/utilities/internal/ponyfills/index.d.cts +3 -0
  73. package/__cjs/utilities/internal/ponyfills/index.react-native.cjs +6 -0
  74. package/__cjs/utilities/internal/ponyfills/index.react-native.cjs.map +1 -0
  75. package/__cjs/utilities/internal/ponyfills/index.react-native.d.cts +2 -0
  76. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs +3 -0
  77. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs.map +1 -0
  78. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.d.cts +12 -0
  79. package/__cjs/utilities/internal/types/StreamInfoTrie.cjs +3 -0
  80. package/__cjs/utilities/internal/types/StreamInfoTrie.cjs.map +1 -0
  81. package/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +16 -0
  82. package/__cjs/version.cjs +1 -1
  83. package/__cjs/version.cjs.map +1 -1
  84. package/cache/core/cache.d.ts +47 -0
  85. package/cache/core/cache.js +65 -25
  86. package/cache/core/cache.js.map +1 -1
  87. package/cache/core/types/Cache.d.ts +39 -0
  88. package/cache/core/types/Cache.js.map +1 -1
  89. package/cache/index.d.ts +1 -1
  90. package/cache/index.js.map +1 -1
  91. package/cache/inmemory/entityStore.js +3 -3
  92. package/cache/inmemory/entityStore.js.map +1 -1
  93. package/cache/inmemory/inMemoryCache.d.ts +47 -0
  94. package/cache/inmemory/inMemoryCache.js +47 -0
  95. package/cache/inmemory/inMemoryCache.js.map +1 -1
  96. package/cache/inmemory/key-extractor.js +1 -1
  97. package/cache/inmemory/policies.d.ts +33 -6
  98. package/cache/inmemory/policies.js +65 -7
  99. package/cache/inmemory/policies.js.map +1 -1
  100. package/cache/inmemory/readFromStore.js +3 -3
  101. package/cache/inmemory/readFromStore.js.map +1 -1
  102. package/cache/inmemory/types.d.ts +3 -0
  103. package/cache/inmemory/types.js.map +1 -1
  104. package/cache/inmemory/writeToStore.d.ts +1 -1
  105. package/cache/inmemory/writeToStore.js +26 -11
  106. package/cache/inmemory/writeToStore.js.map +1 -1
  107. package/core/ApolloClient.d.ts +21 -1
  108. package/core/ApolloClient.js +15 -15
  109. package/core/ApolloClient.js.map +1 -1
  110. package/core/ObservableQuery.d.ts +1 -0
  111. package/core/ObservableQuery.js +23 -9
  112. package/core/ObservableQuery.js.map +1 -1
  113. package/core/QueryInfo.d.ts +4 -3
  114. package/core/QueryInfo.js +10 -2
  115. package/core/QueryInfo.js.map +1 -1
  116. package/core/QueryManager.d.ts +19 -2
  117. package/core/QueryManager.js +41 -21
  118. package/core/QueryManager.js.map +1 -1
  119. package/incremental/handlers/graphql17Alpha9.d.ts +1 -0
  120. package/incremental/handlers/graphql17Alpha9.js +40 -1
  121. package/incremental/handlers/graphql17Alpha9.js.map +1 -1
  122. package/incremental/types.d.ts +9 -0
  123. package/incremental/types.js.map +1 -1
  124. package/invariantErrorCodes.js +39 -33
  125. package/legacyEntryPoints/utilities/internal/ponyfills/index.d.ts +1 -0
  126. package/legacyEntryPoints/utilities/internal/ponyfills/index.js +1 -0
  127. package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.cjs +1 -0
  128. package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.d.cts +1 -0
  129. package/link/error/index.d.ts +1 -1
  130. package/link/error/index.js +1 -1
  131. package/link/error/index.js.map +1 -1
  132. package/link/http/parseAndCheckHttpResponse.js +1 -1
  133. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  134. package/package.json +15 -1
  135. package/react/hooks/useLazyQuery.js +2 -1
  136. package/react/hooks/useLazyQuery.js.map +1 -1
  137. package/react/hooks/useQuery.js +8 -5
  138. package/react/hooks/useQuery.js.map +1 -1
  139. package/react/hooks/useSuspenseQuery.js +2 -0
  140. package/react/hooks/useSuspenseQuery.js.map +1 -1
  141. package/react/hooks-compiled/useLazyQuery.js +2 -1
  142. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  143. package/react/hooks-compiled/useQuery.js +9 -5
  144. package/react/hooks-compiled/useQuery.js.map +1 -1
  145. package/react/hooks-compiled/useSuspenseQuery.js +3 -1
  146. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  147. package/react/query-preloader/createQueryPreloader.js +41 -1
  148. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  149. package/utilities/internal/checkDocument.js +2 -4
  150. package/utilities/internal/checkDocument.js.map +1 -1
  151. package/utilities/internal/constants.d.ts +23 -0
  152. package/utilities/internal/constants.js +23 -0
  153. package/utilities/internal/constants.js.map +1 -0
  154. package/utilities/internal/index.d.ts +4 -0
  155. package/utilities/internal/index.js +2 -0
  156. package/utilities/internal/index.js.map +1 -1
  157. package/utilities/internal/mapObservableFragment.d.ts +3 -0
  158. package/utilities/internal/mapObservableFragment.js +24 -0
  159. package/utilities/internal/mapObservableFragment.js.map +1 -0
  160. package/utilities/internal/memoize.d.ts +8 -0
  161. package/utilities/internal/memoize.js +28 -0
  162. package/utilities/internal/memoize.js.map +1 -0
  163. package/utilities/internal/ponyfills/FinalizationRegistry.d.ts +11 -0
  164. package/utilities/internal/ponyfills/FinalizationRegistry.js +57 -0
  165. package/utilities/internal/ponyfills/FinalizationRegistry.js.map +1 -0
  166. package/utilities/internal/ponyfills/index.d.ts +3 -0
  167. package/utilities/internal/ponyfills/index.js +3 -0
  168. package/utilities/internal/ponyfills/index.js.map +1 -0
  169. package/utilities/internal/ponyfills/index.react-native.d.ts +2 -0
  170. package/utilities/internal/ponyfills/index.react-native.js +2 -0
  171. package/utilities/internal/ponyfills/index.react-native.js.map +1 -0
  172. package/utilities/internal/types/ExtensionsWithStreamDetails.d.ts +12 -0
  173. package/utilities/internal/types/ExtensionsWithStreamDetails.js +2 -0
  174. package/utilities/internal/types/ExtensionsWithStreamDetails.js.map +1 -0
  175. package/utilities/internal/types/StreamInfoTrie.d.ts +16 -0
  176. package/utilities/internal/types/StreamInfoTrie.js +2 -0
  177. package/utilities/internal/types/StreamInfoTrie.js.map +1 -0
  178. package/version.js +1 -1
  179. package/version.js.map +1 -1
@@ -99,7 +99,7 @@ class QueryManager {
99
99
  */
100
100
  stop() {
101
101
  this.obsQueries.forEach((oq) => oq.stop());
102
- this.cancelPendingFetches((0, invariant_1.newInvariantError)(86));
102
+ this.cancelPendingFetches((0, invariant_1.newInvariantError)(87));
103
103
  }
104
104
  cancelPendingFetches(error) {
105
105
  this.fetchCancelFns.forEach((cancel) => cancel(error));
@@ -114,7 +114,7 @@ class QueryManager {
114
114
  if (environment_1.__DEV__) {
115
115
  (0, invariant_1.invariant)(
116
116
  this.localState,
117
- 87,
117
+ 88,
118
118
  (0, internal_1.getOperationName)(mutation, "(anonymous)")
119
119
  );
120
120
  }
@@ -174,7 +174,7 @@ class QueryManager {
174
174
  .pipe((0, rxjs_2.map)((storeResult) => {
175
175
  const hasErrors = (0, internal_1.graphQLResultHasError)(storeResult);
176
176
  if (hasErrors && errorPolicy === "none") {
177
- throw new errors_1.CombinedGraphQLErrors(storeResult);
177
+ throw new errors_1.CombinedGraphQLErrors(removeStreamDetailsFromExtensions(storeResult));
178
178
  }
179
179
  if (mutationStoreValue) {
180
180
  mutationStoreValue.loading = false;
@@ -353,7 +353,7 @@ class QueryManager {
353
353
  // depend on values that previously existed in the data portion of the
354
354
  // store. So, we cancel the promises and observers that we have issued
355
355
  // so far and not yet resolved (in the case of queries).
356
- this.cancelPendingFetches((0, invariant_1.newInvariantError)(88));
356
+ this.cancelPendingFetches((0, invariant_1.newInvariantError)(89));
357
357
  this.obsQueries.forEach((observableQuery) => {
358
358
  // Set loading to true so listeners don't trigger unless they want
359
359
  // results with partial data.
@@ -423,10 +423,10 @@ class QueryManager {
423
423
  if (!included) {
424
424
  const queryName = queryNames.get(nameOrQueryString);
425
425
  if (queryName) {
426
- __DEV__ && invariant_1.invariant.warn(89, queryName);
426
+ __DEV__ && invariant_1.invariant.warn(90, queryName);
427
427
  }
428
428
  else {
429
- __DEV__ && invariant_1.invariant.warn(90);
429
+ __DEV__ && invariant_1.invariant.warn(91);
430
430
  }
431
431
  }
432
432
  });
@@ -455,7 +455,7 @@ class QueryManager {
455
455
  if (environment_1.__DEV__) {
456
456
  (0, invariant_1.invariant)(
457
457
  !this.getDocumentInfo(query).hasClientExports || this.localState,
458
- 91,
458
+ 92,
459
459
  (0, internal_1.getOperationName)(query, "(anonymous)")
460
460
  );
461
461
  }
@@ -599,14 +599,14 @@ class QueryManager {
599
599
  if (environment_1.__DEV__) {
600
600
  (0, invariant_1.invariant)(
601
601
  this.localState,
602
- 92,
602
+ 93,
603
603
  operation[0].toUpperCase() + operation.slice(1),
604
604
  operationName ?? "(anonymous)"
605
605
  );
606
606
  }
607
607
  (0, invariant_1.invariant)(
608
608
  !hasIncrementalDirective,
609
- 93,
609
+ 94,
610
610
  operation[0].toUpperCase() + operation.slice(1),
611
611
  operationName ?? "(anonymous)"
612
612
  );
@@ -630,7 +630,7 @@ class QueryManager {
630
630
  })),
631
631
  };
632
632
  }
633
- getResultsFromLink(options, { queryInfo, cacheWriteBehavior, observableQuery, }) {
633
+ getResultsFromLink(options, { queryInfo, cacheWriteBehavior, observableQuery, exposeExtensions, }) {
634
634
  const requestId = (queryInfo.lastRequestId = this.generateRequestId());
635
635
  const { errorPolicy } = options;
636
636
  // Performing transformForLink here gives this.cache a chance to fill in
@@ -650,7 +650,7 @@ class QueryManager {
650
650
  if (hasErrors && errorPolicy === "none") {
651
651
  queryInfo.resetLastWrite();
652
652
  observableQuery?.["resetNotifications"]();
653
- throw new errors_1.CombinedGraphQLErrors(result);
653
+ throw new errors_1.CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
654
654
  }
655
655
  const aqr = {
656
656
  data: result.data,
@@ -668,6 +668,9 @@ class QueryManager {
668
668
  partial: !result.data,
669
669
  }),
670
670
  };
671
+ if (exposeExtensions && "extensions" in result) {
672
+ aqr[internal_1.extensionsSymbol] = result.extensions;
673
+ }
671
674
  // In the case we start multiple network requests simultaneously, we
672
675
  // want to ensure we properly set `data` if we're reporting on an old
673
676
  // result which will not be caught by the conditional above that ends up
@@ -678,7 +681,7 @@ class QueryManager {
678
681
  aqr.dataState = "empty";
679
682
  }
680
683
  if (errorPolicy !== "ignore") {
681
- aqr.error = new errors_1.CombinedGraphQLErrors(result);
684
+ aqr.error = new errors_1.CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
682
685
  if (aqr.dataState !== "streaming") {
683
686
  aqr.networkStatus = networkStatus_js_1.NetworkStatus.error;
684
687
  }
@@ -710,7 +713,7 @@ class QueryManager {
710
713
  // The initial networkStatus for this fetch, most often
711
714
  // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,
712
715
  // or setVariables.
713
- networkStatus = networkStatus_js_1.NetworkStatus.loading, query = options.query, fetchQueryOperator = (x) => x, onCacheHit = () => { }, observableQuery, }) {
716
+ networkStatus = networkStatus_js_1.NetworkStatus.loading, query = options.query, fetchQueryOperator = (x) => x, onCacheHit = () => { }, observableQuery, exposeExtensions, }) {
714
717
  const variables = this.getVariables(query, options.variables);
715
718
  const defaults = this.defaultOptions.watchQuery;
716
719
  let { fetchPolicy = (defaults && defaults.fetchPolicy) || "cache-first", errorPolicy = (defaults && defaults.errorPolicy) || "none", returnPartialData = false, notifyOnNetworkStatusChange = true, context = {}, } = options;
@@ -740,7 +743,13 @@ class QueryManager {
740
743
  normalized.refetchWritePolicy !== "merge") ?
741
744
  1 /* CacheWriteBehavior.OVERWRITE */
742
745
  : 2 /* CacheWriteBehavior.MERGE */;
743
- const observableWithInfo = this.fetchQueryByPolicy(normalized, { queryInfo, cacheWriteBehavior, onCacheHit, observableQuery });
746
+ const observableWithInfo = this.fetchQueryByPolicy(normalized, {
747
+ queryInfo,
748
+ cacheWriteBehavior,
749
+ onCacheHit,
750
+ observableQuery,
751
+ exposeExtensions,
752
+ });
744
753
  observableWithInfo.observable =
745
754
  observableWithInfo.observable.pipe(fetchQueryOperator);
746
755
  if (
@@ -776,7 +785,7 @@ class QueryManager {
776
785
  if (environment_1.__DEV__) {
777
786
  (0, invariant_1.invariant)(
778
787
  this.localState,
779
- 94,
788
+ 95,
780
789
  (0, internal_1.getOperationName)(normalized.query, "(anonymous)")
781
790
  );
782
791
  }
@@ -813,7 +822,7 @@ class QueryManager {
813
822
  const includedQueriesByOq = new Map();
814
823
  if (include) {
815
824
  this.getObservableQueries(include).forEach((oq) => {
816
- if (oq.options.fetchPolicy === "cache-only") {
825
+ if (oq.options.fetchPolicy === "cache-only" || oq["variablesUnknown"]) {
817
826
  return;
818
827
  }
819
828
  const current = oq.getCurrentResult();
@@ -952,7 +961,7 @@ class QueryManager {
952
961
  !this.noCacheWarningsByCause.has(cause)) {
953
962
  this.noCacheWarningsByCause.add(cause);
954
963
  __DEV__ && invariant_1.invariant.warn(
955
- 95,
964
+ 96,
956
965
  (0, internal_1.getOperationName)(document, `Unnamed ${operationType ?? "operation"}`)
957
966
  );
958
967
  }
@@ -967,7 +976,7 @@ class QueryManager {
967
976
  (0, masking_1.maskFragment)(data, fragment, this.cache, fragmentName)
968
977
  : data;
969
978
  }
970
- fetchQueryByPolicy({ query, variables, fetchPolicy, errorPolicy, returnPartialData, context, }, { cacheWriteBehavior, onCacheHit, queryInfo, observableQuery, }) {
979
+ fetchQueryByPolicy({ query, variables, fetchPolicy, errorPolicy, returnPartialData, context, }, { cacheWriteBehavior, onCacheHit, queryInfo, observableQuery, exposeExtensions, }) {
971
980
  const readCache = () => this.cache.diff({
972
981
  query,
973
982
  variables,
@@ -1014,7 +1023,7 @@ class QueryManager {
1014
1023
  if (environment_1.__DEV__) {
1015
1024
  (0, invariant_1.invariant)(
1016
1025
  this.localState,
1017
- 96,
1026
+ 97,
1018
1027
  (0, internal_1.getOperationName)(query, "(anonymous)")
1019
1028
  );
1020
1029
  }
@@ -1055,6 +1064,7 @@ class QueryManager {
1055
1064
  cacheWriteBehavior,
1056
1065
  queryInfo,
1057
1066
  observableQuery,
1067
+ exposeExtensions,
1058
1068
  }).pipe(validateDidEmitValue(), (0, rxjs_2.materialize)(), (0, rxjs_2.map)((result) => ({
1059
1069
  ...result,
1060
1070
  source: "network",
@@ -1109,7 +1119,7 @@ function validateDidEmitValue() {
1109
1119
  didEmitValue = true;
1110
1120
  },
1111
1121
  complete() {
1112
- (0, invariant_1.invariant)(didEmitValue, 97);
1122
+ (0, invariant_1.invariant)(didEmitValue, 98);
1113
1123
  },
1114
1124
  });
1115
1125
  }
@@ -1148,4 +1158,14 @@ function addNonReactiveToNamedFragments(document) {
1148
1158
  },
1149
1159
  });
1150
1160
  }
1161
+ function removeStreamDetailsFromExtensions(original) {
1162
+ if (original.extensions?.[internal_1.streamInfoSymbol] == null) {
1163
+ return original;
1164
+ }
1165
+ const { extensions: { [internal_1.streamInfoSymbol]: _, ...extensions }, ...result } = original;
1166
+ if (Object.keys(extensions).length > 0) {
1167
+ result.extensions = extensions;
1168
+ }
1169
+ return result;
1170
+ }
1151
1171
  //# sourceMappingURL=QueryManager.cjs.map