@apollo/client 4.0.0-alpha.13 → 4.0.0-alpha.14

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 (594) hide show
  1. package/.changeset/curvy-flies-accept.md +5 -0
  2. package/.changeset/few-crabs-move.md +6 -0
  3. package/.changeset/funny-boats-wink.md +35 -0
  4. package/.changeset/gold-oranges-double.md +5 -0
  5. package/.changeset/little-parrots-bow.md +14 -0
  6. package/.changeset/olive-cougars-ring.md +9 -0
  7. package/.changeset/pre.json +13 -0
  8. package/.changeset/serious-items-develop.md +17 -0
  9. package/.changeset/sixty-bats-cry.md +6 -0
  10. package/.changeset/spotty-mugs-poke.md +5 -0
  11. package/.changeset/strong-rivers-fry.md +34 -0
  12. package/.changeset/stupid-pumpkins-travel.md +13 -0
  13. package/.changeset/thirty-pens-jump.md +5 -0
  14. package/.changeset/wicked-kiwis-buy.md +5 -0
  15. package/CHANGELOG.md +134 -0
  16. package/__cjs/cache/core/cache.cjs +9 -7
  17. package/__cjs/cache/core/cache.cjs.map +1 -1
  18. package/__cjs/cache/core/cache.d.cts +9 -7
  19. package/__cjs/cache/inmemory/entityStore.cjs +3 -3
  20. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  21. package/__cjs/cache/inmemory/inMemoryCache.d.cts +9 -7
  22. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  23. package/__cjs/cache/inmemory/policies.cjs +4 -4
  24. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  25. package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
  26. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  27. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  28. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  29. package/__cjs/core/ApolloClient.cjs +23 -45
  30. package/__cjs/core/ApolloClient.cjs.map +1 -1
  31. package/__cjs/core/ApolloClient.d.cts +9 -21
  32. package/__cjs/core/ObservableQuery.cjs +564 -346
  33. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  34. package/__cjs/core/ObservableQuery.d.cts +95 -33
  35. package/__cjs/core/QueryInfo.cjs +109 -179
  36. package/__cjs/core/QueryInfo.cjs.map +1 -1
  37. package/__cjs/core/QueryInfo.d.cts +9 -14
  38. package/__cjs/core/QueryManager.cjs +168 -108
  39. package/__cjs/core/QueryManager.cjs.map +1 -1
  40. package/__cjs/core/QueryManager.d.cts +12 -8
  41. package/__cjs/core/index.cjs +2 -1
  42. package/__cjs/core/index.cjs.map +1 -1
  43. package/__cjs/core/index.d.cts +2 -3
  44. package/__cjs/core/types.d.cts +18 -6
  45. package/__cjs/errors/LinkError.cjs +5 -1
  46. package/__cjs/errors/LinkError.cjs.map +1 -1
  47. package/__cjs/errors/LinkError.d.cts +5 -1
  48. package/__cjs/errors/LocalStateError.cjs +27 -0
  49. package/__cjs/errors/LocalStateError.cjs.map +1 -0
  50. package/__cjs/errors/LocalStateError.d.cts +20 -0
  51. package/__cjs/errors/index.cjs +5 -1
  52. package/__cjs/errors/index.cjs.map +1 -1
  53. package/__cjs/errors/index.d.cts +2 -0
  54. package/__cjs/invariantErrorCodes.cjs +130 -57
  55. package/__cjs/link/core/ApolloLink.cjs +17 -11
  56. package/__cjs/link/core/ApolloLink.cjs.map +1 -1
  57. package/__cjs/link/core/ApolloLink.d.cts +15 -9
  58. package/__cjs/link/http/checkFetcher.cjs +1 -1
  59. package/__cjs/link/http/createHttpLink.cjs +1 -1
  60. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  61. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  62. package/__cjs/link/persisted-queries/index.cjs +2 -2
  63. package/__cjs/link/utils/transformOperation.cjs +1 -1
  64. package/__cjs/link/utils/transformOperation.cjs.map +1 -1
  65. package/__cjs/link/utils/validateOperation.cjs +1 -1
  66. package/__cjs/local-state/LocalState.cjs +535 -0
  67. package/__cjs/local-state/LocalState.cjs.map +1 -0
  68. package/__cjs/local-state/LocalState.d.cts +89 -0
  69. package/__cjs/local-state/index.cjs +6 -0
  70. package/__cjs/local-state/index.cjs.map +1 -0
  71. package/__cjs/local-state/index.d.cts +2 -0
  72. package/__cjs/masking/maskFragment.cjs +5 -1
  73. package/__cjs/masking/maskFragment.cjs.map +1 -1
  74. package/__cjs/masking/maskFragment.d.cts +5 -1
  75. package/__cjs/masking/maskOperation.cjs +5 -1
  76. package/__cjs/masking/maskOperation.cjs.map +1 -1
  77. package/__cjs/masking/maskOperation.d.cts +5 -1
  78. package/__cjs/masking/utils.cjs +5 -1
  79. package/__cjs/masking/utils.cjs.map +1 -1
  80. package/__cjs/masking/utils.d.cts +5 -1
  81. package/__cjs/react/hooks/internal/wrapHook.cjs +36 -34
  82. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  83. package/__cjs/react/hooks/internal/wrapHook.d.cts +42 -38
  84. package/__cjs/react/internal/cache/QueryReference.cjs +6 -9
  85. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  86. package/__cjs/react/internal/cache/QueryReference.d.cts +25 -7
  87. package/__cjs/react/ssr/prerenderStatic.cjs +7 -0
  88. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  89. package/__cjs/testing/core/mocking/mockLink.cjs +7 -3
  90. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  91. package/__cjs/testing/core/mocking/mockLink.d.cts +10 -2
  92. package/__cjs/testing/internal/ObservableStream.cjs +13 -1
  93. package/__cjs/testing/internal/ObservableStream.cjs.map +1 -1
  94. package/__cjs/testing/internal/ObservableStream.d.cts +12 -1
  95. package/__cjs/testing/internal/disposables/withCleanup.cjs +5 -1
  96. package/__cjs/testing/internal/disposables/withCleanup.cjs.map +1 -1
  97. package/__cjs/testing/internal/disposables/withCleanup.d.cts +5 -1
  98. package/__cjs/testing/matchers/index.cjs +2 -2
  99. package/__cjs/testing/matchers/index.cjs.map +1 -1
  100. package/__cjs/testing/matchers/toEmitTypedValue.cjs +1 -1
  101. package/__cjs/testing/matchers/toEmitTypedValue.cjs.map +1 -1
  102. package/__cjs/testing/matchers/toEmitTypedValue.d.cts +6 -1
  103. package/__cjs/testing/matchers/toRerenderWithSimilarSnapshot.cjs +31 -18
  104. package/__cjs/testing/matchers/toRerenderWithSimilarSnapshot.cjs.map +1 -1
  105. package/__cjs/testing/matchers/toRerenderWithSimilarSnapshot.d.cts +13 -6
  106. package/__cjs/testing/matchers/toStrictEqualTyped.cjs +1 -1
  107. package/__cjs/testing/matchers/toStrictEqualTyped.cjs.map +1 -1
  108. package/__cjs/testing/matchers/toStrictEqualTyped.d.cts +4 -0
  109. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs +14 -2
  110. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs.map +1 -1
  111. package/__cjs/testing/react/MockedProvider.cjs +2 -2
  112. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  113. package/__cjs/testing/react/MockedProvider.d.cts +2 -2
  114. package/__cjs/utilities/graphql/DocumentTransform.cjs +10 -6
  115. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  116. package/__cjs/utilities/graphql/DocumentTransform.d.cts +10 -6
  117. package/__cjs/utilities/internal/DeepMerger.cjs +5 -1
  118. package/__cjs/utilities/internal/DeepMerger.cjs.map +1 -1
  119. package/__cjs/utilities/internal/DeepMerger.d.cts +5 -1
  120. package/__cjs/utilities/internal/argumentsObjectFromField.cjs +5 -1
  121. package/__cjs/utilities/internal/argumentsObjectFromField.cjs.map +1 -1
  122. package/__cjs/utilities/internal/argumentsObjectFromField.d.cts +5 -1
  123. package/__cjs/utilities/internal/caches.cjs +24 -20
  124. package/__cjs/utilities/internal/caches.cjs.map +1 -1
  125. package/__cjs/utilities/internal/caches.d.cts +32 -24
  126. package/__cjs/utilities/internal/canUseDOM.cjs +5 -1
  127. package/__cjs/utilities/internal/canUseDOM.cjs.map +1 -1
  128. package/__cjs/utilities/internal/canUseDOM.d.cts +5 -1
  129. package/__cjs/utilities/internal/checkDocument.cjs +6 -3
  130. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  131. package/__cjs/utilities/internal/checkDocument.d.cts +6 -3
  132. package/__cjs/utilities/internal/cloneDeep.cjs +6 -4
  133. package/__cjs/utilities/internal/cloneDeep.cjs.map +1 -1
  134. package/__cjs/utilities/internal/cloneDeep.d.cts +6 -4
  135. package/__cjs/utilities/internal/compact.cjs +7 -5
  136. package/__cjs/utilities/internal/compact.cjs.map +1 -1
  137. package/__cjs/utilities/internal/compact.d.cts +7 -5
  138. package/__cjs/utilities/internal/createFragmentMap.cjs +7 -4
  139. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -1
  140. package/__cjs/utilities/internal/createFragmentMap.d.cts +7 -4
  141. package/__cjs/utilities/internal/createFulfilledPromise.cjs +5 -1
  142. package/__cjs/utilities/internal/createFulfilledPromise.cjs.map +1 -1
  143. package/__cjs/utilities/internal/createFulfilledPromise.d.cts +5 -1
  144. package/__cjs/utilities/internal/createRejectedPromise.cjs +5 -1
  145. package/__cjs/utilities/internal/createRejectedPromise.cjs.map +1 -1
  146. package/__cjs/utilities/internal/createRejectedPromise.d.cts +5 -1
  147. package/__cjs/utilities/internal/dealias.cjs +21 -0
  148. package/__cjs/utilities/internal/dealias.cjs.map +1 -0
  149. package/__cjs/utilities/internal/dealias.d.cts +5 -0
  150. package/__cjs/utilities/internal/decoratePromise.cjs +5 -1
  151. package/__cjs/utilities/internal/decoratePromise.cjs.map +1 -1
  152. package/__cjs/utilities/internal/decoratePromise.d.cts +5 -1
  153. package/__cjs/utilities/internal/deepFreeze.cjs +5 -1
  154. package/__cjs/utilities/internal/deepFreeze.cjs.map +1 -1
  155. package/__cjs/utilities/internal/deepFreeze.d.cts +5 -1
  156. package/__cjs/utilities/internal/filterMap.cjs +31 -0
  157. package/__cjs/utilities/internal/filterMap.cjs.map +1 -0
  158. package/__cjs/utilities/internal/filterMap.d.cts +4 -0
  159. package/__cjs/utilities/internal/getDefaultValues.cjs +5 -1
  160. package/__cjs/utilities/internal/getDefaultValues.cjs.map +1 -1
  161. package/__cjs/utilities/internal/getDefaultValues.d.cts +5 -1
  162. package/__cjs/utilities/internal/getFragmentDefinition.cjs +5 -1
  163. package/__cjs/utilities/internal/getFragmentDefinition.cjs.map +1 -1
  164. package/__cjs/utilities/internal/getFragmentDefinition.d.cts +5 -1
  165. package/__cjs/utilities/internal/getFragmentDefinitions.cjs +5 -1
  166. package/__cjs/utilities/internal/getFragmentDefinitions.cjs.map +1 -1
  167. package/__cjs/utilities/internal/getFragmentDefinitions.d.cts +5 -1
  168. package/__cjs/utilities/internal/getFragmentFromSelection.cjs +5 -1
  169. package/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
  170. package/__cjs/utilities/internal/getFragmentFromSelection.d.cts +5 -1
  171. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +25 -23
  172. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -1
  173. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +25 -23
  174. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs +5 -1
  175. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs.map +1 -1
  176. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.d.cts +5 -1
  177. package/__cjs/utilities/internal/getMainDefinition.cjs +8 -6
  178. package/__cjs/utilities/internal/getMainDefinition.cjs.map +1 -1
  179. package/__cjs/utilities/internal/getMainDefinition.d.cts +8 -6
  180. package/__cjs/utilities/internal/getMemoryInternals.cjs +15 -9
  181. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  182. package/__cjs/utilities/internal/getMemoryInternals.d.cts +15 -9
  183. package/__cjs/utilities/internal/getOperationDefinition.cjs +5 -1
  184. package/__cjs/utilities/internal/getOperationDefinition.cjs.map +1 -1
  185. package/__cjs/utilities/internal/getOperationDefinition.d.cts +5 -1
  186. package/__cjs/utilities/internal/getOperationName.cjs +7 -5
  187. package/__cjs/utilities/internal/getOperationName.cjs.map +1 -1
  188. package/__cjs/utilities/internal/getOperationName.d.cts +6 -2
  189. package/__cjs/utilities/internal/getQueryDefinition.cjs +5 -1
  190. package/__cjs/utilities/internal/getQueryDefinition.cjs.map +1 -1
  191. package/__cjs/utilities/internal/getQueryDefinition.d.cts +5 -1
  192. package/__cjs/utilities/internal/getStoreKeyName.cjs +5 -1
  193. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  194. package/__cjs/utilities/internal/getStoreKeyName.d.cts +5 -1
  195. package/__cjs/utilities/internal/graphQLResultHasError.cjs +5 -1
  196. package/__cjs/utilities/internal/graphQLResultHasError.cjs.map +1 -1
  197. package/__cjs/utilities/internal/graphQLResultHasError.d.cts +5 -1
  198. package/__cjs/utilities/internal/hasDirectives.cjs +5 -1
  199. package/__cjs/utilities/internal/hasDirectives.cjs.map +1 -1
  200. package/__cjs/utilities/internal/hasDirectives.d.cts +5 -1
  201. package/__cjs/utilities/internal/hasForcedResolvers.cjs +23 -0
  202. package/__cjs/utilities/internal/hasForcedResolvers.cjs.map +1 -0
  203. package/__cjs/utilities/internal/hasForcedResolvers.d.cts +3 -0
  204. package/__cjs/utilities/internal/index.cjs +8 -4
  205. package/__cjs/utilities/internal/index.cjs.map +1 -1
  206. package/__cjs/utilities/internal/index.d.cts +3 -1
  207. package/__cjs/utilities/internal/isArray.cjs +6 -4
  208. package/__cjs/utilities/internal/isArray.cjs.map +1 -1
  209. package/__cjs/utilities/internal/isArray.d.cts +6 -4
  210. package/__cjs/utilities/internal/isDocumentNode.cjs +5 -1
  211. package/__cjs/utilities/internal/isDocumentNode.cjs.map +1 -1
  212. package/__cjs/utilities/internal/isDocumentNode.d.cts +5 -1
  213. package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.cjs +5 -1
  214. package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.cjs.map +1 -1
  215. package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.d.cts +5 -1
  216. package/__cjs/utilities/internal/isExecutionPatchIninitialResult.cjs +5 -1
  217. package/__cjs/utilities/internal/isExecutionPatchIninitialResult.cjs.map +1 -1
  218. package/__cjs/utilities/internal/isExecutionPatchIninitialResult.d.cts +5 -1
  219. package/__cjs/utilities/internal/isExecutionPatchResult.cjs +5 -1
  220. package/__cjs/utilities/internal/isExecutionPatchResult.cjs.map +1 -1
  221. package/__cjs/utilities/internal/isExecutionPatchResult.d.cts +5 -1
  222. package/__cjs/utilities/internal/isField.cjs +5 -1
  223. package/__cjs/utilities/internal/isField.cjs.map +1 -1
  224. package/__cjs/utilities/internal/isField.d.cts +5 -1
  225. package/__cjs/utilities/internal/isNonEmptyArray.cjs +5 -1
  226. package/__cjs/utilities/internal/isNonEmptyArray.cjs.map +1 -1
  227. package/__cjs/utilities/internal/isNonEmptyArray.d.cts +5 -1
  228. package/__cjs/utilities/internal/isNonNullObject.cjs +5 -1
  229. package/__cjs/utilities/internal/isNonNullObject.cjs.map +1 -1
  230. package/__cjs/utilities/internal/isNonNullObject.d.cts +5 -1
  231. package/__cjs/utilities/internal/isPlainObject.cjs +5 -1
  232. package/__cjs/utilities/internal/isPlainObject.cjs.map +1 -1
  233. package/__cjs/utilities/internal/isPlainObject.d.cts +5 -1
  234. package/__cjs/utilities/internal/makeReference.cjs +5 -1
  235. package/__cjs/utilities/internal/makeReference.cjs.map +1 -1
  236. package/__cjs/utilities/internal/makeReference.d.cts +5 -1
  237. package/__cjs/utilities/internal/makeUniqueId.cjs +7 -5
  238. package/__cjs/utilities/internal/makeUniqueId.cjs.map +1 -1
  239. package/__cjs/utilities/internal/makeUniqueId.d.cts +7 -5
  240. package/__cjs/utilities/internal/maybeDeepFreeze.cjs +5 -1
  241. package/__cjs/utilities/internal/maybeDeepFreeze.cjs.map +1 -1
  242. package/__cjs/utilities/internal/maybeDeepFreeze.d.cts +5 -1
  243. package/__cjs/utilities/internal/mergeDeep.cjs +5 -1
  244. package/__cjs/utilities/internal/mergeDeep.cjs.map +1 -1
  245. package/__cjs/utilities/internal/mergeDeep.d.cts +5 -1
  246. package/__cjs/utilities/internal/mergeDeepArray.cjs +5 -1
  247. package/__cjs/utilities/internal/mergeDeepArray.cjs.map +1 -1
  248. package/__cjs/utilities/internal/mergeDeepArray.d.cts +5 -1
  249. package/__cjs/utilities/internal/mergeIncrementalData.cjs +5 -1
  250. package/__cjs/utilities/internal/mergeIncrementalData.cjs.map +1 -1
  251. package/__cjs/utilities/internal/mergeIncrementalData.d.cts +5 -1
  252. package/__cjs/utilities/internal/mergeOptions.cjs +5 -1
  253. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -1
  254. package/__cjs/utilities/internal/mergeOptions.d.cts +5 -1
  255. package/__cjs/utilities/internal/omitDeep.cjs +5 -1
  256. package/__cjs/utilities/internal/omitDeep.cjs.map +1 -1
  257. package/__cjs/utilities/internal/omitDeep.d.cts +5 -1
  258. package/__cjs/utilities/internal/onAnyEvent.cjs +5 -1
  259. package/__cjs/utilities/internal/onAnyEvent.cjs.map +1 -1
  260. package/__cjs/utilities/internal/onAnyEvent.d.cts +5 -1
  261. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +5 -1
  262. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs.map +1 -1
  263. package/__cjs/utilities/internal/removeDirectivesFromDocument.d.cts +5 -1
  264. package/__cjs/utilities/internal/resultKeyNameFromField.cjs +5 -1
  265. package/__cjs/utilities/internal/resultKeyNameFromField.cjs.map +1 -1
  266. package/__cjs/utilities/internal/resultKeyNameFromField.d.cts +5 -1
  267. package/__cjs/utilities/internal/shouldInclude.cjs +5 -1
  268. package/__cjs/utilities/internal/shouldInclude.cjs.map +1 -1
  269. package/__cjs/utilities/internal/shouldInclude.d.cts +5 -1
  270. package/__cjs/utilities/internal/storeKeyNameFromField.cjs +5 -1
  271. package/__cjs/utilities/internal/storeKeyNameFromField.cjs.map +1 -1
  272. package/__cjs/utilities/internal/storeKeyNameFromField.d.cts +5 -1
  273. package/__cjs/utilities/internal/stringifyForDisplay.cjs +5 -1
  274. package/__cjs/utilities/internal/stringifyForDisplay.cjs.map +1 -1
  275. package/__cjs/utilities/internal/stringifyForDisplay.d.cts +5 -1
  276. package/__cjs/utilities/internal/toQueryResult.cjs +5 -1
  277. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  278. package/__cjs/utilities/internal/toQueryResult.d.cts +5 -1
  279. package/__cjs/utilities/internal/types/DecoratedPromise.d.cts +5 -1
  280. package/__cjs/utilities/internal/types/DeepOmit.d.cts +5 -1
  281. package/__cjs/utilities/internal/types/DeepPartial.d.cts +5 -1
  282. package/__cjs/utilities/internal/types/FragmentMap.d.cts +6 -4
  283. package/__cjs/utilities/internal/types/FragmentMapFunction.d.cts +5 -1
  284. package/__cjs/utilities/internal/types/FulfilledPromise.d.cts +5 -1
  285. package/__cjs/utilities/internal/types/IsAny.d.cts +5 -1
  286. package/__cjs/utilities/internal/types/PendingPromise.d.cts +5 -1
  287. package/__cjs/utilities/internal/types/Prettify.d.cts +5 -1
  288. package/__cjs/utilities/internal/types/Primitive.d.cts +5 -1
  289. package/__cjs/utilities/internal/types/RejectedPromise.d.cts +5 -1
  290. package/__cjs/utilities/internal/types/RemoveIndexSignature.d.cts +5 -1
  291. package/__cjs/utilities/internal/types/VariablesOption.d.cts +5 -1
  292. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs +5 -1
  293. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs.map +1 -1
  294. package/__cjs/utilities/internal/valueToObjectRepresentation.d.cts +5 -1
  295. package/__cjs/version.cjs +1 -1
  296. package/cache/core/cache.d.ts +9 -7
  297. package/cache/core/cache.js +9 -7
  298. package/cache/core/cache.js.map +1 -1
  299. package/cache/inmemory/entityStore.js +3 -3
  300. package/cache/inmemory/inMemoryCache.d.ts +9 -7
  301. package/cache/inmemory/inMemoryCache.js.map +1 -1
  302. package/cache/inmemory/key-extractor.js +1 -1
  303. package/cache/inmemory/policies.js +4 -4
  304. package/cache/inmemory/policies.js.map +1 -1
  305. package/cache/inmemory/readFromStore.js +2 -2
  306. package/cache/inmemory/readFromStore.js.map +1 -1
  307. package/cache/inmemory/writeToStore.js +4 -4
  308. package/cache/inmemory/writeToStore.js.map +1 -1
  309. package/core/ApolloClient.d.ts +9 -21
  310. package/core/ApolloClient.js +23 -45
  311. package/core/ApolloClient.js.map +1 -1
  312. package/core/ObservableQuery.d.ts +95 -33
  313. package/core/ObservableQuery.js +569 -351
  314. package/core/ObservableQuery.js.map +1 -1
  315. package/core/QueryInfo.d.ts +9 -14
  316. package/core/QueryInfo.js +109 -179
  317. package/core/QueryInfo.js.map +1 -1
  318. package/core/QueryManager.d.ts +12 -8
  319. package/core/QueryManager.js +151 -110
  320. package/core/QueryManager.js.map +1 -1
  321. package/core/index.d.ts +2 -3
  322. package/core/index.js +1 -1
  323. package/core/index.js.map +1 -1
  324. package/core/types.d.ts +18 -6
  325. package/errors/LinkError.d.ts +5 -1
  326. package/errors/LinkError.js +5 -1
  327. package/errors/LinkError.js.map +1 -1
  328. package/errors/LocalStateError.d.ts +20 -0
  329. package/errors/LocalStateError.js +23 -0
  330. package/errors/LocalStateError.js.map +1 -0
  331. package/errors/index.d.ts +2 -0
  332. package/errors/index.js +2 -0
  333. package/errors/index.js.map +1 -1
  334. package/invariantErrorCodes.js +130 -57
  335. package/legacyEntryPoints/local-state/index.d.ts +1 -0
  336. package/legacyEntryPoints/local-state/index.js +1 -0
  337. package/legacyEntryPoints/local-state/local-state.cjs +1 -0
  338. package/legacyEntryPoints/local-state/local-state.d.cts +1 -0
  339. package/link/core/ApolloLink.d.ts +15 -9
  340. package/link/core/ApolloLink.js +17 -11
  341. package/link/core/ApolloLink.js.map +1 -1
  342. package/link/http/checkFetcher.js +1 -1
  343. package/link/http/createHttpLink.js +1 -1
  344. package/link/http/parseAndCheckHttpResponse.js +1 -1
  345. package/link/http/serializeFetchParameter.js +1 -1
  346. package/link/persisted-queries/index.js +2 -2
  347. package/link/utils/transformOperation.js +1 -1
  348. package/link/utils/transformOperation.js.map +1 -1
  349. package/link/utils/validateOperation.js +1 -1
  350. package/local-state/LocalState.d.ts +89 -0
  351. package/local-state/LocalState.js +527 -0
  352. package/local-state/LocalState.js.map +1 -0
  353. package/local-state/index.d.ts +2 -0
  354. package/local-state/index.js +2 -0
  355. package/local-state/index.js.map +1 -0
  356. package/masking/maskFragment.d.ts +5 -1
  357. package/masking/maskFragment.js +5 -1
  358. package/masking/maskFragment.js.map +1 -1
  359. package/masking/maskOperation.d.ts +5 -1
  360. package/masking/maskOperation.js +5 -1
  361. package/masking/maskOperation.js.map +1 -1
  362. package/masking/utils.d.ts +5 -1
  363. package/masking/utils.js +5 -1
  364. package/masking/utils.js.map +1 -1
  365. package/package.json +11 -1
  366. package/react/hooks/internal/wrapHook.d.ts +42 -38
  367. package/react/hooks/internal/wrapHook.js +36 -34
  368. package/react/hooks/internal/wrapHook.js.map +1 -1
  369. package/react/internal/cache/QueryReference.d.ts +25 -7
  370. package/react/internal/cache/QueryReference.js +6 -9
  371. package/react/internal/cache/QueryReference.js.map +1 -1
  372. package/react/ssr/prerenderStatic.js +7 -0
  373. package/react/ssr/prerenderStatic.js.map +1 -1
  374. package/testing/core/mocking/mockLink.d.ts +10 -2
  375. package/testing/core/mocking/mockLink.js +9 -5
  376. package/testing/core/mocking/mockLink.js.map +1 -1
  377. package/testing/internal/ObservableStream.d.ts +12 -1
  378. package/testing/internal/ObservableStream.js +13 -1
  379. package/testing/internal/ObservableStream.js.map +1 -1
  380. package/testing/internal/disposables/withCleanup.d.ts +5 -1
  381. package/testing/internal/disposables/withCleanup.js +5 -1
  382. package/testing/internal/disposables/withCleanup.js.map +1 -1
  383. package/testing/matchers/index.js +2 -2
  384. package/testing/matchers/index.js.map +1 -1
  385. package/testing/matchers/toEmitTypedValue.d.ts +6 -1
  386. package/testing/matchers/toEmitTypedValue.js +1 -1
  387. package/testing/matchers/toEmitTypedValue.js.map +1 -1
  388. package/testing/matchers/toRerenderWithSimilarSnapshot.d.ts +13 -6
  389. package/testing/matchers/toRerenderWithSimilarSnapshot.js +30 -15
  390. package/testing/matchers/toRerenderWithSimilarSnapshot.js.map +1 -1
  391. package/testing/matchers/toStrictEqualTyped.d.ts +4 -0
  392. package/testing/matchers/toStrictEqualTyped.js +1 -1
  393. package/testing/matchers/toStrictEqualTyped.js.map +1 -1
  394. package/testing/matchers/utils/getSerializableProperties.js +14 -2
  395. package/testing/matchers/utils/getSerializableProperties.js.map +1 -1
  396. package/testing/react/MockedProvider.d.ts +2 -2
  397. package/testing/react/MockedProvider.js +2 -2
  398. package/testing/react/MockedProvider.js.map +1 -1
  399. package/utilities/graphql/DocumentTransform.d.ts +10 -6
  400. package/utilities/graphql/DocumentTransform.js +10 -6
  401. package/utilities/graphql/DocumentTransform.js.map +1 -1
  402. package/utilities/internal/DeepMerger.d.ts +5 -1
  403. package/utilities/internal/DeepMerger.js +5 -1
  404. package/utilities/internal/DeepMerger.js.map +1 -1
  405. package/utilities/internal/argumentsObjectFromField.d.ts +5 -1
  406. package/utilities/internal/argumentsObjectFromField.js +5 -1
  407. package/utilities/internal/argumentsObjectFromField.js.map +1 -1
  408. package/utilities/internal/caches.d.ts +32 -24
  409. package/utilities/internal/caches.js +24 -20
  410. package/utilities/internal/caches.js.map +1 -1
  411. package/utilities/internal/canUseDOM.d.ts +5 -1
  412. package/utilities/internal/canUseDOM.js +5 -1
  413. package/utilities/internal/canUseDOM.js.map +1 -1
  414. package/utilities/internal/checkDocument.d.ts +6 -3
  415. package/utilities/internal/checkDocument.js +6 -3
  416. package/utilities/internal/checkDocument.js.map +1 -1
  417. package/utilities/internal/cloneDeep.d.ts +6 -4
  418. package/utilities/internal/cloneDeep.js +6 -4
  419. package/utilities/internal/cloneDeep.js.map +1 -1
  420. package/utilities/internal/compact.d.ts +7 -5
  421. package/utilities/internal/compact.js +7 -5
  422. package/utilities/internal/compact.js.map +1 -1
  423. package/utilities/internal/createFragmentMap.d.ts +7 -4
  424. package/utilities/internal/createFragmentMap.js +7 -4
  425. package/utilities/internal/createFragmentMap.js.map +1 -1
  426. package/utilities/internal/createFulfilledPromise.d.ts +5 -1
  427. package/utilities/internal/createFulfilledPromise.js +5 -1
  428. package/utilities/internal/createFulfilledPromise.js.map +1 -1
  429. package/utilities/internal/createRejectedPromise.d.ts +5 -1
  430. package/utilities/internal/createRejectedPromise.js +5 -1
  431. package/utilities/internal/createRejectedPromise.js.map +1 -1
  432. package/utilities/internal/dealias.d.ts +5 -0
  433. package/utilities/internal/dealias.js +18 -0
  434. package/utilities/internal/dealias.js.map +1 -0
  435. package/utilities/internal/decoratePromise.d.ts +5 -1
  436. package/utilities/internal/decoratePromise.js +5 -1
  437. package/utilities/internal/decoratePromise.js.map +1 -1
  438. package/utilities/internal/deepFreeze.d.ts +5 -1
  439. package/utilities/internal/deepFreeze.js +5 -1
  440. package/utilities/internal/deepFreeze.js.map +1 -1
  441. package/utilities/internal/filterMap.d.ts +4 -0
  442. package/utilities/internal/filterMap.js +28 -0
  443. package/utilities/internal/filterMap.js.map +1 -0
  444. package/utilities/internal/getDefaultValues.d.ts +5 -1
  445. package/utilities/internal/getDefaultValues.js +5 -1
  446. package/utilities/internal/getDefaultValues.js.map +1 -1
  447. package/utilities/internal/getFragmentDefinition.d.ts +5 -1
  448. package/utilities/internal/getFragmentDefinition.js +5 -1
  449. package/utilities/internal/getFragmentDefinition.js.map +1 -1
  450. package/utilities/internal/getFragmentDefinitions.d.ts +5 -1
  451. package/utilities/internal/getFragmentDefinitions.js +5 -1
  452. package/utilities/internal/getFragmentDefinitions.js.map +1 -1
  453. package/utilities/internal/getFragmentFromSelection.d.ts +5 -1
  454. package/utilities/internal/getFragmentFromSelection.js +5 -1
  455. package/utilities/internal/getFragmentFromSelection.js.map +1 -1
  456. package/utilities/internal/getFragmentQueryDocument.d.ts +25 -23
  457. package/utilities/internal/getFragmentQueryDocument.js +25 -23
  458. package/utilities/internal/getFragmentQueryDocument.js.map +1 -1
  459. package/utilities/internal/getGraphQLErrorsFromResult.d.ts +5 -1
  460. package/utilities/internal/getGraphQLErrorsFromResult.js +5 -1
  461. package/utilities/internal/getGraphQLErrorsFromResult.js.map +1 -1
  462. package/utilities/internal/getMainDefinition.d.ts +8 -6
  463. package/utilities/internal/getMainDefinition.js +8 -6
  464. package/utilities/internal/getMainDefinition.js.map +1 -1
  465. package/utilities/internal/getMemoryInternals.d.ts +15 -9
  466. package/utilities/internal/getMemoryInternals.js +15 -9
  467. package/utilities/internal/getMemoryInternals.js.map +1 -1
  468. package/utilities/internal/getOperationDefinition.d.ts +5 -1
  469. package/utilities/internal/getOperationDefinition.js +5 -1
  470. package/utilities/internal/getOperationDefinition.js.map +1 -1
  471. package/utilities/internal/getOperationName.d.ts +6 -2
  472. package/utilities/internal/getOperationName.js +7 -5
  473. package/utilities/internal/getOperationName.js.map +1 -1
  474. package/utilities/internal/getQueryDefinition.d.ts +5 -1
  475. package/utilities/internal/getQueryDefinition.js +5 -1
  476. package/utilities/internal/getQueryDefinition.js.map +1 -1
  477. package/utilities/internal/getStoreKeyName.d.ts +5 -1
  478. package/utilities/internal/getStoreKeyName.js +5 -1
  479. package/utilities/internal/getStoreKeyName.js.map +1 -1
  480. package/utilities/internal/globals/global.js +2 -2
  481. package/utilities/internal/globals/global.js.map +1 -1
  482. package/utilities/internal/graphQLResultHasError.d.ts +5 -1
  483. package/utilities/internal/graphQLResultHasError.js +5 -1
  484. package/utilities/internal/graphQLResultHasError.js.map +1 -1
  485. package/utilities/internal/hasDirectives.d.ts +5 -1
  486. package/utilities/internal/hasDirectives.js +5 -1
  487. package/utilities/internal/hasDirectives.js.map +1 -1
  488. package/utilities/internal/hasForcedResolvers.d.ts +3 -0
  489. package/utilities/internal/hasForcedResolvers.js +20 -0
  490. package/utilities/internal/hasForcedResolvers.js.map +1 -0
  491. package/utilities/internal/index.d.ts +3 -1
  492. package/utilities/internal/index.js +3 -1
  493. package/utilities/internal/index.js.map +1 -1
  494. package/utilities/internal/isArray.d.ts +6 -4
  495. package/utilities/internal/isArray.js +6 -4
  496. package/utilities/internal/isArray.js.map +1 -1
  497. package/utilities/internal/isDocumentNode.d.ts +5 -1
  498. package/utilities/internal/isDocumentNode.js +5 -1
  499. package/utilities/internal/isDocumentNode.js.map +1 -1
  500. package/utilities/internal/isExecutionPatchIncrementalResult.d.ts +5 -1
  501. package/utilities/internal/isExecutionPatchIncrementalResult.js +5 -1
  502. package/utilities/internal/isExecutionPatchIncrementalResult.js.map +1 -1
  503. package/utilities/internal/isExecutionPatchIninitialResult.d.ts +5 -1
  504. package/utilities/internal/isExecutionPatchIninitialResult.js +5 -1
  505. package/utilities/internal/isExecutionPatchIninitialResult.js.map +1 -1
  506. package/utilities/internal/isExecutionPatchResult.d.ts +5 -1
  507. package/utilities/internal/isExecutionPatchResult.js +5 -1
  508. package/utilities/internal/isExecutionPatchResult.js.map +1 -1
  509. package/utilities/internal/isField.d.ts +5 -1
  510. package/utilities/internal/isField.js +5 -1
  511. package/utilities/internal/isField.js.map +1 -1
  512. package/utilities/internal/isNonEmptyArray.d.ts +5 -1
  513. package/utilities/internal/isNonEmptyArray.js +5 -1
  514. package/utilities/internal/isNonEmptyArray.js.map +1 -1
  515. package/utilities/internal/isNonNullObject.d.ts +5 -1
  516. package/utilities/internal/isNonNullObject.js +5 -1
  517. package/utilities/internal/isNonNullObject.js.map +1 -1
  518. package/utilities/internal/isPlainObject.d.ts +5 -1
  519. package/utilities/internal/isPlainObject.js +5 -1
  520. package/utilities/internal/isPlainObject.js.map +1 -1
  521. package/utilities/internal/makeReference.d.ts +5 -1
  522. package/utilities/internal/makeReference.js +5 -1
  523. package/utilities/internal/makeReference.js.map +1 -1
  524. package/utilities/internal/makeUniqueId.d.ts +7 -5
  525. package/utilities/internal/makeUniqueId.js +7 -5
  526. package/utilities/internal/makeUniqueId.js.map +1 -1
  527. package/utilities/internal/maybeDeepFreeze.d.ts +5 -1
  528. package/utilities/internal/maybeDeepFreeze.js +5 -1
  529. package/utilities/internal/maybeDeepFreeze.js.map +1 -1
  530. package/utilities/internal/mergeDeep.d.ts +5 -1
  531. package/utilities/internal/mergeDeep.js +5 -1
  532. package/utilities/internal/mergeDeep.js.map +1 -1
  533. package/utilities/internal/mergeDeepArray.d.ts +5 -1
  534. package/utilities/internal/mergeDeepArray.js +5 -1
  535. package/utilities/internal/mergeDeepArray.js.map +1 -1
  536. package/utilities/internal/mergeIncrementalData.d.ts +5 -1
  537. package/utilities/internal/mergeIncrementalData.js +5 -1
  538. package/utilities/internal/mergeIncrementalData.js.map +1 -1
  539. package/utilities/internal/mergeOptions.d.ts +5 -1
  540. package/utilities/internal/mergeOptions.js +5 -1
  541. package/utilities/internal/mergeOptions.js.map +1 -1
  542. package/utilities/internal/omitDeep.d.ts +5 -1
  543. package/utilities/internal/omitDeep.js +5 -1
  544. package/utilities/internal/omitDeep.js.map +1 -1
  545. package/utilities/internal/onAnyEvent.d.ts +5 -1
  546. package/utilities/internal/onAnyEvent.js +5 -1
  547. package/utilities/internal/onAnyEvent.js.map +1 -1
  548. package/utilities/internal/removeDirectivesFromDocument.d.ts +5 -1
  549. package/utilities/internal/removeDirectivesFromDocument.js +5 -1
  550. package/utilities/internal/removeDirectivesFromDocument.js.map +1 -1
  551. package/utilities/internal/resultKeyNameFromField.d.ts +5 -1
  552. package/utilities/internal/resultKeyNameFromField.js +5 -1
  553. package/utilities/internal/resultKeyNameFromField.js.map +1 -1
  554. package/utilities/internal/shouldInclude.d.ts +5 -1
  555. package/utilities/internal/shouldInclude.js +5 -1
  556. package/utilities/internal/shouldInclude.js.map +1 -1
  557. package/utilities/internal/storeKeyNameFromField.d.ts +5 -1
  558. package/utilities/internal/storeKeyNameFromField.js +5 -1
  559. package/utilities/internal/storeKeyNameFromField.js.map +1 -1
  560. package/utilities/internal/stringifyForDisplay.d.ts +5 -1
  561. package/utilities/internal/stringifyForDisplay.js +5 -1
  562. package/utilities/internal/stringifyForDisplay.js.map +1 -1
  563. package/utilities/internal/toQueryResult.d.ts +5 -1
  564. package/utilities/internal/toQueryResult.js +5 -1
  565. package/utilities/internal/toQueryResult.js.map +1 -1
  566. package/utilities/internal/types/DecoratedPromise.d.ts +5 -1
  567. package/utilities/internal/types/DeepOmit.d.ts +5 -1
  568. package/utilities/internal/types/DeepPartial.d.ts +5 -1
  569. package/utilities/internal/types/FragmentMap.d.ts +6 -4
  570. package/utilities/internal/types/FragmentMapFunction.d.ts +5 -1
  571. package/utilities/internal/types/FulfilledPromise.d.ts +5 -1
  572. package/utilities/internal/types/IsAny.d.ts +5 -1
  573. package/utilities/internal/types/PendingPromise.d.ts +5 -1
  574. package/utilities/internal/types/Prettify.d.ts +5 -1
  575. package/utilities/internal/types/Primitive.d.ts +5 -1
  576. package/utilities/internal/types/RejectedPromise.d.ts +5 -1
  577. package/utilities/internal/types/RemoveIndexSignature.d.ts +5 -1
  578. package/utilities/internal/types/VariablesOption.d.ts +5 -1
  579. package/utilities/internal/valueToObjectRepresentation.d.ts +5 -1
  580. package/utilities/internal/valueToObjectRepresentation.js +5 -1
  581. package/utilities/internal/valueToObjectRepresentation.js.map +1 -1
  582. package/version.js +1 -1
  583. package/__cjs/core/LocalState.cjs +0 -355
  584. package/__cjs/core/LocalState.cjs.map +0 -1
  585. package/__cjs/core/LocalState.d.cts +0 -53
  586. package/__cjs/utilities/internal/removeClientSetsFromDocument.cjs +0 -21
  587. package/__cjs/utilities/internal/removeClientSetsFromDocument.cjs.map +0 -1
  588. package/__cjs/utilities/internal/removeClientSetsFromDocument.d.cts +0 -8
  589. package/core/LocalState.d.ts +0 -53
  590. package/core/LocalState.js +0 -351
  591. package/core/LocalState.js.map +0 -1
  592. package/utilities/internal/removeClientSetsFromDocument.d.ts +0 -8
  593. package/utilities/internal/removeClientSetsFromDocument.js +0 -18
  594. package/utilities/internal/removeClientSetsFromDocument.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { Trie } from "@wry/trie";
2
2
  import { BREAK, Kind, OperationTypeNode, visit } from "graphql";
3
- import { catchError, concat, EMPTY, filter, from, lastValueFrom, map, mergeMap, mergeWith, Observable, of, share, shareReplay, Subject, tap, } from "rxjs";
3
+ import { catchError, concat, EMPTY, filter, from, lastValueFrom, map, materialize, mergeMap, mergeWith, Observable, of, share, shareReplay, Subject, tap, } from "rxjs";
4
4
  import { canonicalStringify } from "@apollo/client/cache";
5
5
  import { CombinedGraphQLErrors, graphQLResultHasProtocolErrors, registerLinkError, toErrorLike, } from "@apollo/client/errors";
6
6
  import { PROTOCOL_ERRORS_SYMBOL } from "@apollo/client/errors";
@@ -10,7 +10,7 @@ import { print } from "@apollo/client/utilities";
10
10
  import { cacheSizes } from "@apollo/client/utilities";
11
11
  import { DocumentTransform } from "@apollo/client/utilities";
12
12
  import { __DEV__ } from "@apollo/client/utilities/environment";
13
- import { AutoCleanedWeakCache, checkDocument, getDefaultValues, getGraphQLErrorsFromResult, getOperationDefinition, getOperationName, graphQLResultHasError, hasDirectives, isDocumentNode, isExecutionPatchIncrementalResult, isExecutionPatchResult, isNonEmptyArray, isNonNullObject, makeUniqueId, mergeIncrementalData, onAnyEvent, removeDirectivesFromDocument, toQueryResult, } from "@apollo/client/utilities/internal";
13
+ import { AutoCleanedWeakCache, checkDocument, filterMap, getDefaultValues, getGraphQLErrorsFromResult, getOperationDefinition, getOperationName, graphQLResultHasError, hasDirectives, hasForcedResolvers, isDocumentNode, isExecutionPatchIncrementalResult, isExecutionPatchResult, isNonEmptyArray, isNonNullObject, makeUniqueId, mergeIncrementalData, onAnyEvent, removeDirectivesFromDocument, toQueryResult, } from "@apollo/client/utilities/internal";
14
14
  import { invariant, newInvariantError, } from "@apollo/client/utilities/invariant";
15
15
  import { isNetworkRequestInFlight, NetworkStatus } from "./networkStatus.js";
16
16
  import { logMissingFieldErrors, ObservableQuery } from "./ObservableQuery.js";
@@ -25,9 +25,9 @@ export class QueryManager {
25
25
  ssrMode;
26
26
  defaultContext;
27
27
  dataMasking;
28
+ localState;
28
29
  queryDeduplication;
29
30
  clientAwareness = {};
30
- localState;
31
31
  /**
32
32
  * Whether to prioritize cache values over network results when
33
33
  * `fetchObservableWithInfo` is called.
@@ -57,10 +57,10 @@ export class QueryManager {
57
57
  this.defaultOptions = options.defaultOptions;
58
58
  this.queryDeduplication = options.queryDeduplication;
59
59
  this.clientAwareness = options.clientAwareness;
60
- this.localState = options.localState;
61
60
  this.ssrMode = options.ssrMode;
62
61
  this.assumeImmutableResults = options.assumeImmutableResults;
63
62
  this.dataMasking = options.dataMasking;
63
+ this.localState = options.localState;
64
64
  const documentTransform = options.documentTransform;
65
65
  this.documentTransform =
66
66
  documentTransform ?
@@ -91,22 +91,30 @@ export class QueryManager {
91
91
  this.queries.forEach((_info, queryId) => {
92
92
  this.removeQuery(queryId);
93
93
  });
94
- this.cancelPendingFetches(newInvariantError(74));
94
+ this.cancelPendingFetches(newInvariantError(82));
95
95
  }
96
96
  cancelPendingFetches(error) {
97
97
  this.fetchCancelFns.forEach((cancel) => cancel(error));
98
98
  this.fetchCancelFns.clear();
99
99
  }
100
100
  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, }) {
101
- invariant(mutation, 75);
101
+ invariant(mutation, 83);
102
102
  checkDocument(mutation, OperationTypeNode.MUTATION);
103
- invariant(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 76);
103
+ invariant(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 84);
104
104
  const mutationId = this.generateMutationId();
105
105
  mutation = this.cache.transformForLink(this.transform(mutation));
106
106
  const { hasClientExports } = this.getDocumentInfo(mutation);
107
107
  variables = this.getVariables(mutation, variables);
108
108
  if (hasClientExports) {
109
- variables = (await this.localState.addExportedVariables(mutation, variables, context));
109
+ if (__DEV__) {
110
+ invariant(this.localState, 85, getOperationName(mutation, "(anonymous)"));
111
+ }
112
+ variables = await this.localState.getExportedVariables({
113
+ client: this.client,
114
+ document: mutation,
115
+ variables,
116
+ context,
117
+ });
110
118
  }
111
119
  const mutationStoreValue = this.mutationStore &&
112
120
  (this.mutationStore[mutationId] = {
@@ -397,7 +405,18 @@ export class QueryManager {
397
405
  return true;
398
406
  }
399
407
  fetchQuery(queryId, options, networkStatus) {
400
- return lastValueFrom(this.fetchObservableWithInfo(this.getOrCreateQuery(queryId), options, networkStatus).observable.pipe(map(toQueryResult)), {
408
+ return lastValueFrom(this.fetchObservableWithInfo(this.getOrCreateQuery(queryId), options, {
409
+ networkStatus,
410
+ }).observable.pipe(filterMap((value) => {
411
+ switch (value.kind) {
412
+ case "E":
413
+ throw value.error;
414
+ case "N": {
415
+ if (value.source !== "newNetworkStatus")
416
+ return toQueryResult(value.value);
417
+ }
418
+ }
419
+ })), {
401
420
  // This default is needed when a `standby` fetch policy is used to avoid
402
421
  // an EmptyError from rejecting this promise.
403
422
  defaultValue: { data: undefined },
@@ -418,10 +437,10 @@ export class QueryManager {
418
437
  // traversals into a single pass in the future, though the work is
419
438
  // cached after the first time.
420
439
  hasClientExports: hasDirectives(["client", "export"], document, true),
421
- hasForcedResolvers: this.localState.shouldForceResolvers(document),
440
+ hasForcedResolvers: hasForcedResolvers(document),
422
441
  hasNonreactiveDirective: hasDirectives(["nonreactive"], document),
423
442
  nonReactiveQuery: addNonReactiveToNamedFragments(document),
424
- clientQuery: this.localState.clientQuery(document),
443
+ clientQuery: hasDirectives(["client"], document) ? document : null,
425
444
  serverQuery: removeDirectivesFromDocument([
426
445
  { name: "client", remove: true },
427
446
  { name: "connection" },
@@ -483,7 +502,7 @@ export class QueryManager {
483
502
  queryInfo.setObservableQuery(observable);
484
503
  return observable;
485
504
  }
486
- query(options, queryId = this.generateQueryId()) {
505
+ async query(options, queryId = this.generateQueryId()) {
487
506
  const query = this.transform(options.query);
488
507
  return this.fetchQuery(queryId, {
489
508
  ...options,
@@ -520,16 +539,11 @@ export class QueryManager {
520
539
  // depend on values that previously existed in the data portion of the
521
540
  // store. So, we cancel the promises and observers that we have issued
522
541
  // so far and not yet resolved (in the case of queries).
523
- this.cancelPendingFetches(newInvariantError(77));
524
- this.queries.forEach((queryInfo) => {
525
- if (queryInfo.observableQuery) {
526
- // Set loading to true so listeners don't trigger unless they want
527
- // results with partial data.
528
- queryInfo.observableQuery["networkStatus"] = NetworkStatus.loading;
529
- }
530
- else {
531
- queryInfo.stop();
532
- }
542
+ this.cancelPendingFetches(newInvariantError(86));
543
+ this.queries.forEach(({ observableQuery }) => {
544
+ // Set loading to true so listeners don't trigger unless they want
545
+ // results with partial data.
546
+ observableQuery?.reset();
533
547
  });
534
548
  if (this.mutationStore) {
535
549
  this.mutationStore = {};
@@ -608,26 +622,25 @@ export class QueryManager {
608
622
  if (!included) {
609
623
  const queryName = queryNames.get(nameOrQueryString);
610
624
  if (queryName) {
611
- __DEV__ && invariant.warn(78, queryName);
625
+ __DEV__ && invariant.warn(87, queryName);
612
626
  }
613
627
  else {
614
- __DEV__ && invariant.warn(79);
628
+ __DEV__ && invariant.warn(88);
615
629
  }
616
630
  }
617
631
  });
618
632
  }
619
633
  return queries;
620
634
  }
621
- reFetchObservableQueries(includeStandby = false) {
635
+ refetchObservableQueries(includeStandby = false) {
622
636
  const observableQueryPromises = [];
623
637
  this.getObservableQueries(includeStandby ? "all" : "active").forEach((observableQuery, queryId) => {
624
638
  const { fetchPolicy } = observableQuery.options;
625
- observableQuery.resetLastResults();
626
639
  if (includeStandby ||
627
640
  (fetchPolicy !== "standby" && fetchPolicy !== "cache-only")) {
628
641
  observableQueryPromises.push(observableQuery.refetch());
629
642
  }
630
- (this.queries.get(queryId) || observableQuery["queryInfo"]).setDiff(null);
643
+ (this.queries.get(queryId) || observableQuery["queryInfo"]).resetDiff();
631
644
  });
632
645
  this.broadcastQueries();
633
646
  return Promise.all(observableQueryPromises);
@@ -681,9 +694,15 @@ export class QueryManager {
681
694
  return of({ data: undefined, error });
682
695
  }), filter((result) => !!(result.data || result.error)));
683
696
  if (this.getDocumentInfo(query).hasClientExports) {
684
- const observablePromise = this.localState
685
- .addExportedVariables(query, variables, context)
686
- .then(makeObservable);
697
+ if (__DEV__) {
698
+ invariant(this.localState, 89, getOperationName(query, "(anonymous)"));
699
+ }
700
+ const observablePromise = this.localState.getExportedVariables({
701
+ client: this.client,
702
+ document: query,
703
+ variables,
704
+ context,
705
+ }).then(makeObservable);
687
706
  return new Observable((observer) => {
688
707
  let sub = null;
689
708
  observablePromise.then((observable) => (sub = observable.subscribe(observer)), observer.error);
@@ -700,17 +719,19 @@ export class QueryManager {
700
719
  // The same queryId could have two rejection fns for two promises
701
720
  this.fetchCancelFns.delete(queryId);
702
721
  if (this.queries.has(queryId)) {
703
- this.queries.get(queryId)?.stop();
722
+ const oq = this.queries.get(queryId).observableQuery;
723
+ if (oq) {
724
+ oq["resetNotifications"]();
725
+ oq["unsubscribeFromCache"]?.();
726
+ oq.stopPolling();
727
+ }
704
728
  this.queries.delete(queryId);
705
729
  }
706
730
  }
707
731
  broadcastQueries() {
708
732
  if (this.onBroadcast)
709
733
  this.onBroadcast();
710
- this.queries.forEach((info) => info.observableQuery?.["notify"]());
711
- }
712
- getLocalState() {
713
- return this.localState;
734
+ this.queries.forEach((info) => info.observableQuery?.notify());
714
735
  }
715
736
  // Use protected instead of private field so
716
737
  // @apollo/experimental-nextjs-app-support can access type info.
@@ -721,15 +742,7 @@ export class QueryManager {
721
742
  this.queryDeduplication) {
722
743
  let observable;
723
744
  const { serverQuery, clientQuery } = this.getDocumentInfo(query);
724
- const prepareContext = (context = {}) => {
725
- const newContext = this.localState.prepareContext(context);
726
- return {
727
- ...this.defaultContext,
728
- ...newContext,
729
- queryDeduplication: deduplication,
730
- clientAwareness: this.clientAwareness,
731
- };
732
- };
745
+ const operationName = getOperationName(query);
733
746
  const executeContext = {
734
747
  client: this.client,
735
748
  };
@@ -738,8 +751,13 @@ export class QueryManager {
738
751
  const operation = {
739
752
  query: serverQuery,
740
753
  variables,
741
- operationName: getOperationName(serverQuery) || void 0,
742
- context: prepareContext(context),
754
+ operationName,
755
+ context: {
756
+ ...this.defaultContext,
757
+ ...context,
758
+ queryDeduplication: deduplication,
759
+ clientAwareness: this.clientAwareness,
760
+ },
743
761
  extensions,
744
762
  };
745
763
  context = operation.context;
@@ -766,11 +784,20 @@ export class QueryManager {
766
784
  }
767
785
  else {
768
786
  observable = of({ data: {} });
769
- context = prepareContext(context);
770
787
  }
771
788
  if (clientQuery) {
789
+ if (__DEV__) {
790
+ const { operation } = getOperationDefinition(query);
791
+ invariant(
792
+ this.localState,
793
+ 90,
794
+ operation[0].toUpperCase() + operation.slice(1),
795
+ operationName ?? "(anonymous)"
796
+ );
797
+ }
772
798
  observable = observable.pipe(mergeMap((result) => {
773
- return from(this.localState.runResolvers({
799
+ return from(this.localState.execute({
800
+ client: this.client,
774
801
  document: clientQuery,
775
802
  remoteResult: result,
776
803
  context,
@@ -846,11 +873,11 @@ export class QueryManager {
846
873
  return of(aqr);
847
874
  }));
848
875
  }
849
- fetchObservableWithInfo(queryInfo, options,
876
+ fetchObservableWithInfo(queryInfo, options, {
850
877
  // The initial networkStatus for this fetch, most often
851
878
  // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,
852
879
  // or setVariables.
853
- networkStatus = NetworkStatus.loading, query = options.query, emitLoadingState = false) {
880
+ networkStatus = NetworkStatus.loading, query = options.query, fetchQueryOperator = (x) => x, onCacheHit = () => { }, }) {
854
881
  const variables = this.getVariables(query, options.variables);
855
882
  const defaults = this.defaultOptions.watchQuery;
856
883
  let { fetchPolicy = (defaults && defaults.fetchPolicy) || "cache-first", errorPolicy = (defaults && defaults.errorPolicy) || "none", returnPartialData = false, notifyOnNetworkStatusChange = true, context = {}, } = options;
@@ -872,7 +899,16 @@ export class QueryManager {
872
899
  // modify its properties here, rather than creating yet another new
873
900
  // WatchQueryOptions object.
874
901
  normalized.variables = variables;
875
- const observableWithInfo = this.fetchQueryByPolicy(queryInfo, normalized, networkStatus, emitLoadingState);
902
+ const cacheWriteBehavior = fetchPolicy === "no-cache" ? 0 /* CacheWriteBehavior.FORBID */
903
+ // Watched queries must opt into overwriting existing data on refetch,
904
+ // by passing refetchWritePolicy: "overwrite" in their WatchQueryOptions.
905
+ : (networkStatus === NetworkStatus.refetch &&
906
+ normalized.refetchWritePolicy !== "merge") ?
907
+ 1 /* CacheWriteBehavior.OVERWRITE */
908
+ : 2 /* CacheWriteBehavior.MERGE */;
909
+ const observableWithInfo = this.fetchQueryByPolicy(queryInfo, normalized, cacheWriteBehavior, onCacheHit);
910
+ observableWithInfo.observable =
911
+ observableWithInfo.observable.pipe(fetchQueryOperator);
876
912
  if (
877
913
  // If we're in standby, postpone advancing options.fetchPolicy using
878
914
  // applyNextFetchPolicy.
@@ -891,8 +927,13 @@ export class QueryManager {
891
927
  // observables to complete before itself completes.
892
928
  fetchCancelSubject.complete();
893
929
  };
894
- this.fetchCancelFns.set(queryInfo.queryId, (reason) => {
895
- fetchCancelSubject.error(reason);
930
+ this.fetchCancelFns.set(queryInfo.queryId, (error) => {
931
+ fetchCancelSubject.next({
932
+ kind: "E",
933
+ error,
934
+ source: "network",
935
+ });
936
+ fetchCancelSubject.complete();
896
937
  cleanupCancelFn();
897
938
  });
898
939
  const fetchCancelSubject = new Subject();
@@ -905,7 +946,15 @@ export class QueryManager {
905
946
  // for backwards compatibility. TODO This code could be simpler if
906
947
  // we deprecated and removed LocalState.
907
948
  if (this.getDocumentInfo(normalized.query).hasClientExports) {
908
- observable = from(this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context)).pipe(mergeMap((variables) => fromVariables(variables).observable));
949
+ if (__DEV__) {
950
+ invariant(this.localState, 91, getOperationName(normalized.query, "(anonymous)"));
951
+ }
952
+ observable = from(this.localState.getExportedVariables({
953
+ client: this.client,
954
+ document: normalized.query,
955
+ variables: normalized.variables,
956
+ context: normalized.context,
957
+ })).pipe(mergeMap((variables) => fromVariables(variables).observable));
909
958
  // there is just no way we can synchronously get the *right* value here,
910
959
  // so we will assume `true`, which is the behaviour before the bug fix in
911
960
  // #10597. This means that bug is not fixed in that case, and is probably
@@ -927,14 +976,19 @@ export class QueryManager {
927
976
  const includedQueriesById = new Map();
928
977
  if (include) {
929
978
  this.getObservableQueries(include).forEach((oq, queryId) => {
979
+ const current = oq.getCurrentResult();
930
980
  includedQueriesById.set(queryId, {
931
981
  oq,
932
- lastDiff: (this.queries.get(queryId) || oq["queryInfo"]).getDiff(),
982
+ lastDiff: {
983
+ result: current?.data,
984
+ complete: !current?.partial,
985
+ },
933
986
  });
934
987
  });
935
988
  }
936
989
  const results = new Map();
937
990
  if (updateCache) {
991
+ const handled = new Set();
938
992
  this.cache.batch({
939
993
  update: updateCache,
940
994
  // Since you can perform any combination of cache reads and/or writes in
@@ -976,9 +1030,10 @@ export class QueryManager {
976
1030
  // temporary optimistic layer, in case that ever matters.
977
1031
  removeOptimistic,
978
1032
  onWatchUpdated(watch, diff, lastDiff) {
979
- const oq = watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;
980
- if (oq) {
981
- if (onQueryUpdated) {
1033
+ const oq = watch.watcher;
1034
+ if (oq instanceof ObservableQuery) {
1035
+ if (onQueryUpdated && !handled.has(oq)) {
1036
+ handled.add(oq);
982
1037
  // Since we're about to handle this query now, remove it from
983
1038
  // includedQueriesById, in case it was added earlier because of
984
1039
  // options.include.
@@ -1015,7 +1070,7 @@ export class QueryManager {
1015
1070
  // queries, even the QueryOptions ones.
1016
1071
  if (onQueryUpdated) {
1017
1072
  if (!diff) {
1018
- diff = this.cache.diff(oq["queryInfo"]["getDiffOptions"]());
1073
+ diff = this.cache.diff(oq["queryInfo"].getDiffOptions());
1019
1074
  }
1020
1075
  result = onQueryUpdated(oq, diff, lastDiff);
1021
1076
  }
@@ -1055,8 +1110,7 @@ export class QueryManager {
1055
1110
  !isFullyUnmaskedOperation(document) &&
1056
1111
  !this.noCacheWarningsByQueryId.has(operationId)) {
1057
1112
  this.noCacheWarningsByQueryId.add(operationId);
1058
- __DEV__ && invariant.warn(80, getOperationName(document) ??
1059
- `Unnamed ${operationType ?? "operation"}`);
1113
+ __DEV__ && invariant.warn(92, getOperationName(document, `Unnamed ${operationType ?? "operation"}`));
1060
1114
  }
1061
1115
  }
1062
1116
  return (this.dataMasking ?
@@ -1069,17 +1123,13 @@ export class QueryManager {
1069
1123
  maskFragment(data, fragment, this.cache, fragmentName)
1070
1124
  : data;
1071
1125
  }
1072
- fetchQueryByPolicy(queryInfo, { query, variables, fetchPolicy, refetchWritePolicy, errorPolicy, returnPartialData, context, },
1073
- // The initial networkStatus for this fetch, most often
1074
- // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,
1075
- // or setVariables.
1076
- newNetworkStatus, emitLoadingState) {
1126
+ fetchQueryByPolicy(queryInfo, { query, variables, fetchPolicy, errorPolicy, returnPartialData, context, }, cacheWriteBehavior, onCacheHit) {
1077
1127
  queryInfo.init({
1078
1128
  document: query,
1079
1129
  variables,
1080
1130
  });
1081
- const readCache = () => queryInfo.getDiff();
1082
- const resultsFromCache = (diff, networkStatus = newNetworkStatus) => {
1131
+ const readCache = () => this.cache.diff(queryInfo.getDiffOptions());
1132
+ const resultsFromCache = (diff, networkStatus) => {
1083
1133
  const data = diff.result;
1084
1134
  if (__DEV__ && !returnPartialData && data !== null) {
1085
1135
  logMissingFieldErrors(diff.missing);
@@ -1101,25 +1151,35 @@ export class QueryManager {
1101
1151
  };
1102
1152
  };
1103
1153
  const fromData = (data) => {
1104
- return of(toResult(data));
1154
+ return of({
1155
+ kind: "N",
1156
+ value: toResult(data),
1157
+ source: "cache",
1158
+ });
1105
1159
  };
1106
- if (this.getDocumentInfo(query).hasForcedResolvers) {
1107
- return from(this.localState
1108
- .runResolvers({
1160
+ if (
1161
+ // Don't attempt to run forced resolvers if we have incomplete cache
1162
+ // data and partial isn't allowed since this result would get set to
1163
+ // `undefined` anyways in `toResult`.
1164
+ (diff.complete || returnPartialData) &&
1165
+ this.getDocumentInfo(query).hasForcedResolvers) {
1166
+ if (__DEV__) {
1167
+ invariant(this.localState, 93, getOperationName(query, "(anonymous)"));
1168
+ }
1169
+ onCacheHit();
1170
+ return from(this.localState.execute({
1171
+ client: this.client,
1109
1172
  document: query,
1110
- // TODO: Update remoteResult to handle `null`. In v3 the `if`
1111
- // statement contained a check against `data`, but this value was
1112
- // always `{}` if nothing was in the cache, which meant the check
1113
- // above always succeeded when there were forced resolvers. Now that
1114
- // `data` is nullable, this `remoteResult` needs to be an empty
1115
- // object. Ideally we can pass in `null` here and the resolvers
1116
- // would be able to handle this the same way.
1117
- remoteResult: { data: data || {} },
1173
+ remoteResult: data ? { data } : undefined,
1118
1174
  context,
1119
1175
  variables,
1120
1176
  onlyRunForcedResolvers: true,
1121
- })
1122
- .then((resolved) => toResult(resolved.data || void 0)));
1177
+ returnPartialData: true,
1178
+ }).then((resolved) => ({
1179
+ kind: "N",
1180
+ value: toResult(resolved.data || void 0),
1181
+ source: "cache",
1182
+ })));
1123
1183
  }
1124
1184
  // Resolves https://github.com/apollographql/apollo-client/issues/10317.
1125
1185
  // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,
@@ -1132,20 +1192,16 @@ export class QueryManager {
1132
1192
  }
1133
1193
  return fromData(data || undefined);
1134
1194
  };
1135
- const cacheWriteBehavior = fetchPolicy === "no-cache" ? 0 /* CacheWriteBehavior.FORBID */
1136
- // Watched queries must opt into overwriting existing data on refetch,
1137
- // by passing refetchWritePolicy: "overwrite" in their WatchQueryOptions.
1138
- : (newNetworkStatus === NetworkStatus.refetch &&
1139
- refetchWritePolicy !== "merge") ?
1140
- 1 /* CacheWriteBehavior.OVERWRITE */
1141
- : 2 /* CacheWriteBehavior.MERGE */;
1142
1195
  const resultsFromLink = () => this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
1143
1196
  query,
1144
1197
  variables,
1145
1198
  context,
1146
1199
  fetchPolicy,
1147
1200
  errorPolicy,
1148
- }).pipe(validateDidEmitValue());
1201
+ }).pipe(validateDidEmitValue(), materialize(), map((result) => ({
1202
+ ...result,
1203
+ source: "network",
1204
+ })));
1149
1205
  switch (fetchPolicy) {
1150
1206
  default:
1151
1207
  case "cache-first": {
@@ -1156,20 +1212,20 @@ export class QueryManager {
1156
1212
  observable: resultsFromCache(diff, NetworkStatus.ready),
1157
1213
  };
1158
1214
  }
1159
- if (returnPartialData || emitLoadingState) {
1215
+ if (returnPartialData) {
1160
1216
  return {
1161
1217
  fromLink: true,
1162
- observable: concat(resultsFromCache(diff), resultsFromLink()),
1218
+ observable: concat(resultsFromCache(diff, NetworkStatus.loading), resultsFromLink()),
1163
1219
  };
1164
1220
  }
1165
1221
  return { fromLink: true, observable: resultsFromLink() };
1166
1222
  }
1167
1223
  case "cache-and-network": {
1168
1224
  const diff = readCache();
1169
- if (diff.complete || returnPartialData || emitLoadingState) {
1225
+ if (diff.complete || returnPartialData) {
1170
1226
  return {
1171
1227
  fromLink: true,
1172
- observable: concat(resultsFromCache(diff), resultsFromLink()),
1228
+ observable: concat(resultsFromCache(diff, NetworkStatus.loading), resultsFromLink()),
1173
1229
  };
1174
1230
  }
1175
1231
  return { fromLink: true, observable: resultsFromLink() };
@@ -1180,23 +1236,8 @@ export class QueryManager {
1180
1236
  observable: concat(resultsFromCache(readCache(), NetworkStatus.ready)),
1181
1237
  };
1182
1238
  case "network-only":
1183
- if (emitLoadingState) {
1184
- return {
1185
- fromLink: true,
1186
- observable: concat(resultsFromCache(readCache()), resultsFromLink()),
1187
- };
1188
- }
1189
1239
  return { fromLink: true, observable: resultsFromLink() };
1190
1240
  case "no-cache":
1191
- if (emitLoadingState) {
1192
- return {
1193
- fromLink: true,
1194
- // Note that queryInfo.getDiff() for no-cache queries does not call
1195
- // cache.diff, but instead returns a { complete: false } stub result
1196
- // when there is no queryInfo.diff already defined.
1197
- observable: concat(resultsFromCache(queryInfo.getDiff()), resultsFromLink()),
1198
- };
1199
- }
1200
1241
  return { fromLink: true, observable: resultsFromLink() };
1201
1242
  case "standby":
1202
1243
  return { fromLink: false, observable: EMPTY };
@@ -1216,7 +1257,7 @@ function validateDidEmitValue() {
1216
1257
  didEmitValue = true;
1217
1258
  },
1218
1259
  complete() {
1219
- invariant(didEmitValue, 81);
1260
+ invariant(didEmitValue, 94);
1220
1261
  },
1221
1262
  });
1222
1263
  }