@apollo/client 4.0.0-alpha.21 → 4.0.0-alpha.22

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 (162) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/__cjs/core/ApolloClient.cjs +13 -10
  3. package/__cjs/core/ApolloClient.cjs.map +1 -1
  4. package/__cjs/core/ApolloClient.d.cts +7 -8
  5. package/__cjs/core/ObservableQuery.cjs +5 -5
  6. package/__cjs/core/QueryManager.cjs +18 -13
  7. package/__cjs/core/QueryManager.cjs.map +1 -1
  8. package/__cjs/core/QueryManager.d.cts +13 -6
  9. package/__cjs/core/index.cjs.map +1 -1
  10. package/__cjs/core/index.d.cts +1 -1
  11. package/__cjs/core/types.d.cts +5 -4
  12. package/__cjs/invariantErrorCodes.cjs +79 -79
  13. package/__cjs/link/batch-http/batchHttpLink.cjs +14 -14
  14. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  15. package/__cjs/link/batch-http/batchHttpLink.d.cts +4 -0
  16. package/__cjs/link/batch-http/index.cjs +2 -1
  17. package/__cjs/link/batch-http/index.cjs.map +1 -1
  18. package/__cjs/link/batch-http/index.d.cts +1 -1
  19. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs +45 -0
  20. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -0
  21. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +62 -0
  22. package/__cjs/link/client-awareness/index.cjs +6 -0
  23. package/__cjs/link/client-awareness/index.cjs.map +1 -0
  24. package/__cjs/link/client-awareness/index.d.cts +2 -0
  25. package/__cjs/link/core/types.d.cts +1 -6
  26. package/__cjs/link/http/BaseHttpLink.cjs +117 -0
  27. package/__cjs/link/http/BaseHttpLink.cjs.map +1 -0
  28. package/__cjs/link/http/BaseHttpLink.d.cts +6 -0
  29. package/__cjs/link/http/HttpLink.cjs +8 -5
  30. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  31. package/__cjs/link/http/HttpLink.d.cts +16 -4
  32. package/__cjs/link/http/checkFetcher.cjs +1 -1
  33. package/__cjs/link/http/index.cjs +4 -3
  34. package/__cjs/link/http/index.cjs.map +1 -1
  35. package/__cjs/link/http/index.d.cts +2 -2
  36. package/__cjs/link/http/selectHttpOptionsAndBody.cjs +6 -5
  37. package/__cjs/link/http/selectHttpOptionsAndBody.cjs.map +1 -1
  38. package/__cjs/link/persisted-queries/index.cjs +9 -7
  39. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  40. package/__cjs/link/utils/validateOperation.cjs +1 -1
  41. package/__cjs/local-state/LocalState.cjs +10 -18
  42. package/__cjs/local-state/LocalState.cjs.map +1 -1
  43. package/__cjs/masking/maskDefinition.cjs +2 -2
  44. package/__cjs/masking/maskFragment.cjs +2 -2
  45. package/__cjs/masking/maskOperation.cjs +1 -1
  46. package/__cjs/masking/utils.cjs +3 -3
  47. package/__cjs/react/context/ApolloConsumer.cjs +1 -1
  48. package/__cjs/react/context/ApolloContext.cjs +1 -1
  49. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  50. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
  51. package/__cjs/react/hooks/useApolloClient.cjs +1 -1
  52. package/__cjs/react/hooks/useLazyQuery.cjs +2 -2
  53. package/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
  54. package/__cjs/react/hooks/useSubscription.cjs +1 -1
  55. package/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
  56. package/__cjs/react/internal/cache/QueryReference.cjs +1 -1
  57. package/__cjs/react/ssr/prerenderStatic.cjs +2 -2
  58. package/__cjs/testing/core/mocking/mockLink.cjs +4 -4
  59. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  60. package/__cjs/utilities/caching/sizes.d.cts +6 -0
  61. package/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
  62. package/__cjs/utilities/internal/checkDocument.cjs +47 -13
  63. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  64. package/__cjs/utilities/internal/checkDocument.d.cts +1 -1
  65. package/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
  66. package/__cjs/utilities/internal/getFragmentFromSelection.cjs +1 -1
  67. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
  68. package/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
  69. package/__cjs/utilities/internal/getMemoryInternals.cjs +1 -0
  70. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  71. package/__cjs/utilities/internal/getMemoryInternals.d.cts +0 -1
  72. package/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
  73. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
  74. package/__cjs/utilities/internal/shouldInclude.cjs +4 -4
  75. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
  76. package/__cjs/version.cjs +1 -1
  77. package/core/ApolloClient.d.ts +7 -8
  78. package/core/ApolloClient.js +14 -11
  79. package/core/ApolloClient.js.map +1 -1
  80. package/core/ObservableQuery.js +5 -5
  81. package/core/QueryManager.d.ts +13 -6
  82. package/core/QueryManager.js +18 -13
  83. package/core/QueryManager.js.map +1 -1
  84. package/core/index.d.ts +1 -1
  85. package/core/index.js.map +1 -1
  86. package/core/types.d.ts +5 -4
  87. package/invariantErrorCodes.js +79 -79
  88. package/legacyEntryPoints/link/client-awareness/client-awareness.cjs +1 -0
  89. package/legacyEntryPoints/link/client-awareness/client-awareness.d.cts +1 -0
  90. package/legacyEntryPoints/link/client-awareness/index.d.ts +1 -0
  91. package/legacyEntryPoints/link/client-awareness/index.js +1 -0
  92. package/link/batch-http/batchHttpLink.d.ts +4 -0
  93. package/link/batch-http/batchHttpLink.js +11 -12
  94. package/link/batch-http/batchHttpLink.js.map +1 -1
  95. package/link/batch-http/index.d.ts +1 -1
  96. package/link/batch-http/index.js +1 -1
  97. package/link/batch-http/index.js.map +1 -1
  98. package/link/client-awareness/ClientAwarenessLink.d.ts +62 -0
  99. package/link/client-awareness/ClientAwarenessLink.js +41 -0
  100. package/link/client-awareness/ClientAwarenessLink.js.map +1 -0
  101. package/link/client-awareness/index.d.ts +2 -0
  102. package/link/client-awareness/index.js +2 -0
  103. package/link/client-awareness/index.js.map +1 -0
  104. package/link/core/types.d.ts +1 -6
  105. package/link/http/BaseHttpLink.d.ts +6 -0
  106. package/link/http/BaseHttpLink.js +113 -0
  107. package/link/http/BaseHttpLink.js.map +1 -0
  108. package/link/http/HttpLink.d.ts +16 -4
  109. package/link/http/HttpLink.js +6 -4
  110. package/link/http/HttpLink.js.map +1 -1
  111. package/link/http/checkFetcher.js +1 -1
  112. package/link/http/index.d.ts +2 -2
  113. package/link/http/index.js +2 -2
  114. package/link/http/index.js.map +1 -1
  115. package/link/http/selectHttpOptionsAndBody.js +6 -5
  116. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  117. package/link/persisted-queries/index.js +9 -7
  118. package/link/persisted-queries/index.js.map +1 -1
  119. package/link/utils/validateOperation.js +1 -1
  120. package/local-state/LocalState.js +10 -18
  121. package/local-state/LocalState.js.map +1 -1
  122. package/masking/maskDefinition.js +2 -2
  123. package/masking/maskFragment.js +2 -2
  124. package/masking/maskOperation.js +1 -1
  125. package/masking/utils.js +3 -3
  126. package/package.json +7 -1
  127. package/react/context/ApolloConsumer.js +1 -1
  128. package/react/context/ApolloContext.js +1 -1
  129. package/react/context/ApolloProvider.js +1 -1
  130. package/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
  131. package/react/hooks/useApolloClient.js +1 -1
  132. package/react/hooks/useLazyQuery.js +2 -2
  133. package/react/hooks/useLoadableQuery.js +2 -2
  134. package/react/hooks/useSubscription.js +1 -1
  135. package/react/hooks/useSyncExternalStore.js +1 -1
  136. package/react/internal/cache/QueryReference.js +1 -1
  137. package/react/ssr/prerenderStatic.js +2 -2
  138. package/testing/core/mocking/mockLink.js +4 -4
  139. package/utilities/caching/sizes.d.ts +6 -0
  140. package/utilities/caching/sizes.js.map +1 -1
  141. package/utilities/graphql/DocumentTransform.js +1 -1
  142. package/utilities/internal/checkDocument.d.ts +1 -1
  143. package/utilities/internal/checkDocument.js +46 -12
  144. package/utilities/internal/checkDocument.js.map +1 -1
  145. package/utilities/internal/getFragmentDefinition.js +3 -3
  146. package/utilities/internal/getFragmentFromSelection.js +1 -1
  147. package/utilities/internal/getFragmentQueryDocument.js +2 -2
  148. package/utilities/internal/getMainDefinition.js +1 -1
  149. package/utilities/internal/getMemoryInternals.d.ts +0 -1
  150. package/utilities/internal/getMemoryInternals.js +1 -0
  151. package/utilities/internal/getMemoryInternals.js.map +1 -1
  152. package/utilities/internal/getQueryDefinition.js +1 -1
  153. package/utilities/internal/removeDirectivesFromDocument.js +1 -1
  154. package/utilities/internal/shouldInclude.js +4 -4
  155. package/utilities/internal/valueToObjectRepresentation.js +1 -1
  156. package/version.js +1 -1
  157. package/__cjs/link/http/createHttpLink.cjs +0 -151
  158. package/__cjs/link/http/createHttpLink.cjs.map +0 -1
  159. package/__cjs/link/http/createHttpLink.d.cts +0 -4
  160. package/link/http/createHttpLink.d.ts +0 -4
  161. package/link/http/createHttpLink.js +0 -143
  162. package/link/http/createHttpLink.js.map +0 -1
@@ -24,6 +24,10 @@ const QueryInfo_js_1 = require("./QueryInfo.cjs");
24
24
  class QueryManager {
25
25
  defaultOptions;
26
26
  client;
27
+ /**
28
+ * The options that were passed to the ApolloClient constructor.
29
+ */
30
+ clientOptions;
27
31
  assumeImmutableResults;
28
32
  documentTransform;
29
33
  ssrMode;
@@ -31,7 +35,6 @@ class QueryManager {
31
35
  dataMasking;
32
36
  localState;
33
37
  queryDeduplication;
34
- clientAwareness = {};
35
38
  /**
36
39
  * Whether to prioritize cache values over network results when
37
40
  * `fetchObservableWithInfo` is called.
@@ -61,7 +64,7 @@ class QueryManager {
61
64
  this.client = options.client;
62
65
  this.defaultOptions = options.defaultOptions;
63
66
  this.queryDeduplication = options.queryDeduplication;
64
- this.clientAwareness = options.clientAwareness;
67
+ this.clientOptions = options.clientOptions;
65
68
  this.ssrMode = options.ssrMode;
66
69
  this.assumeImmutableResults = options.assumeImmutableResults;
67
70
  this.dataMasking = options.dataMasking;
@@ -94,16 +97,13 @@ class QueryManager {
94
97
  */
95
98
  stop() {
96
99
  this.obsQueries.forEach((oq) => oq.stop());
97
- this.cancelPendingFetches((0, invariant_1.newInvariantError)(81));
100
+ this.cancelPendingFetches((0, invariant_1.newInvariantError)(83));
98
101
  }
99
102
  cancelPendingFetches(error) {
100
103
  this.fetchCancelFns.forEach((cancel) => cancel(error));
101
104
  this.fetchCancelFns.clear();
102
105
  }
103
- async mutate({ mutation, variables, optimisticResponse, updateQueries, refetchQueries = [], awaitRefetchQueries = false, update: updateWithProxyFn, onQueryUpdated, fetchPolicy = this.defaultOptions.mutate?.fetchPolicy || "network-only", errorPolicy = this.defaultOptions.mutate?.errorPolicy || "none", keepRootFields, context, }) {
104
- (0, invariant_1.invariant)(mutation, 82);
105
- (0, internal_1.checkDocument)(mutation, graphql_1.OperationTypeNode.MUTATION);
106
- (0, invariant_1.invariant)(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 83);
106
+ async mutate({ mutation, variables, optimisticResponse, updateQueries, refetchQueries = [], awaitRefetchQueries = false, update: updateWithProxyFn, onQueryUpdated, fetchPolicy, errorPolicy, keepRootFields, context, }) {
107
107
  const queryInfo = new QueryInfo_js_1.QueryInfo(this);
108
108
  mutation = this.cache.transformForLink(this.transform(mutation));
109
109
  const { hasClientExports } = this.getDocumentInfo(mutation);
@@ -230,7 +230,10 @@ class QueryManager {
230
230
  });
231
231
  }
232
232
  fetchQuery(options, networkStatus) {
233
- return (0, rxjs_2.lastValueFrom)(this.fetchObservableWithInfo(options, {
233
+ (0, internal_1.checkDocument)(options.query, graphql_1.OperationTypeNode.QUERY);
234
+ // do the rest asynchronously to keep the same rejection timing as
235
+ // checks further in `.mutate`
236
+ return (async () => (0, rxjs_2.lastValueFrom)(this.fetchObservableWithInfo(options, {
234
237
  networkStatus,
235
238
  }).observable.pipe((0, internal_1.filterMap)((value) => {
236
239
  switch (value.kind) {
@@ -245,7 +248,7 @@ class QueryManager {
245
248
  // This default is needed when a `standby` fetch policy is used to avoid
246
249
  // an EmptyError from rejecting this promise.
247
250
  defaultValue: { data: undefined },
248
- });
251
+ }))();
249
252
  }
250
253
  transform(document) {
251
254
  return this.documentTransform.transformDocument(document);
@@ -290,7 +293,11 @@ class QueryManager {
290
293
  };
291
294
  transformCache.set(document, cacheEntry);
292
295
  }
293
- return transformCache.get(document);
296
+ const entry = transformCache.get(document);
297
+ if (entry.violation) {
298
+ throw entry.violation;
299
+ }
300
+ return entry;
294
301
  }
295
302
  getVariables(document, variables) {
296
303
  const defaultVars = this.getDocumentInfo(document).defaultVars;
@@ -320,7 +327,7 @@ class QueryManager {
320
327
  });
321
328
  return observable;
322
329
  }
323
- async query(options) {
330
+ query(options) {
324
331
  const query = this.transform(options.query);
325
332
  return this.fetchQuery({
326
333
  ...options,
@@ -531,7 +538,6 @@ class QueryManager {
531
538
  ...this.defaultContext,
532
539
  ...context,
533
540
  queryDeduplication: deduplication,
534
- clientAwareness: this.clientAwareness,
535
541
  },
536
542
  extensions,
537
543
  };
@@ -1109,7 +1115,6 @@ function isFullyUnmaskedOperation(document) {
1109
1115
  return isUnmasked;
1110
1116
  }
1111
1117
  function addNonReactiveToNamedFragments(document) {
1112
- (0, internal_1.checkDocument)(document);
1113
1118
  return (0, graphql_1.visit)(document, {
1114
1119
  FragmentSpread: (node) => {
1115
1120
  // Do not add `@nonreactive` if the fragment is marked with `@unmask`