@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
@@ -32,9 +32,9 @@ class QueryManager {
32
32
  ssrMode;
33
33
  defaultContext;
34
34
  dataMasking;
35
+ localState;
35
36
  queryDeduplication;
36
37
  clientAwareness = {};
37
- localState;
38
38
  /**
39
39
  * Whether to prioritize cache values over network results when
40
40
  * `fetchObservableWithInfo` is called.
@@ -64,10 +64,10 @@ class QueryManager {
64
64
  this.defaultOptions = options.defaultOptions;
65
65
  this.queryDeduplication = options.queryDeduplication;
66
66
  this.clientAwareness = options.clientAwareness;
67
- this.localState = options.localState;
68
67
  this.ssrMode = options.ssrMode;
69
68
  this.assumeImmutableResults = options.assumeImmutableResults;
70
69
  this.dataMasking = options.dataMasking;
70
+ this.localState = options.localState;
71
71
  const documentTransform = options.documentTransform;
72
72
  this.documentTransform =
73
73
  documentTransform ?
@@ -98,22 +98,34 @@ class QueryManager {
98
98
  this.queries.forEach((_info, queryId) => {
99
99
  this.removeQuery(queryId);
100
100
  });
101
- this.cancelPendingFetches((0, invariant_1.newInvariantError)(74));
101
+ this.cancelPendingFetches((0, invariant_1.newInvariantError)(82));
102
102
  }
103
103
  cancelPendingFetches(error) {
104
104
  this.fetchCancelFns.forEach((cancel) => cancel(error));
105
105
  this.fetchCancelFns.clear();
106
106
  }
107
107
  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, }) {
108
- (0, invariant_1.invariant)(mutation, 75);
108
+ (0, invariant_1.invariant)(mutation, 83);
109
109
  (0, internal_1.checkDocument)(mutation, graphql_1.OperationTypeNode.MUTATION);
110
- (0, invariant_1.invariant)(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 76);
110
+ (0, invariant_1.invariant)(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 84);
111
111
  const mutationId = this.generateMutationId();
112
112
  mutation = this.cache.transformForLink(this.transform(mutation));
113
113
  const { hasClientExports } = this.getDocumentInfo(mutation);
114
114
  variables = this.getVariables(mutation, variables);
115
115
  if (hasClientExports) {
116
- variables = (await this.localState.addExportedVariables(mutation, variables, context));
116
+ if (environment_1.__DEV__) {
117
+ (0, invariant_1.invariant)(
118
+ this.localState,
119
+ 85,
120
+ (0, internal_1.getOperationName)(mutation, "(anonymous)")
121
+ );
122
+ }
123
+ variables = await this.localState.getExportedVariables({
124
+ client: this.client,
125
+ document: mutation,
126
+ variables,
127
+ context,
128
+ });
117
129
  }
118
130
  const mutationStoreValue = this.mutationStore &&
119
131
  (this.mutationStore[mutationId] = {
@@ -404,7 +416,18 @@ class QueryManager {
404
416
  return true;
405
417
  }
406
418
  fetchQuery(queryId, options, networkStatus) {
407
- return (0, rxjs_1.lastValueFrom)(this.fetchObservableWithInfo(this.getOrCreateQuery(queryId), options, networkStatus).observable.pipe((0, rxjs_1.map)(internal_1.toQueryResult)), {
419
+ return (0, rxjs_1.lastValueFrom)(this.fetchObservableWithInfo(this.getOrCreateQuery(queryId), options, {
420
+ networkStatus,
421
+ }).observable.pipe((0, internal_1.filterMap)((value) => {
422
+ switch (value.kind) {
423
+ case "E":
424
+ throw value.error;
425
+ case "N": {
426
+ if (value.source !== "newNetworkStatus")
427
+ return (0, internal_1.toQueryResult)(value.value);
428
+ }
429
+ }
430
+ })), {
408
431
  // This default is needed when a `standby` fetch policy is used to avoid
409
432
  // an EmptyError from rejecting this promise.
410
433
  defaultValue: { data: undefined },
@@ -425,10 +448,10 @@ class QueryManager {
425
448
  // traversals into a single pass in the future, though the work is
426
449
  // cached after the first time.
427
450
  hasClientExports: (0, internal_1.hasDirectives)(["client", "export"], document, true),
428
- hasForcedResolvers: this.localState.shouldForceResolvers(document),
451
+ hasForcedResolvers: (0, internal_1.hasForcedResolvers)(document),
429
452
  hasNonreactiveDirective: (0, internal_1.hasDirectives)(["nonreactive"], document),
430
453
  nonReactiveQuery: addNonReactiveToNamedFragments(document),
431
- clientQuery: this.localState.clientQuery(document),
454
+ clientQuery: (0, internal_1.hasDirectives)(["client"], document) ? document : null,
432
455
  serverQuery: (0, internal_1.removeDirectivesFromDocument)([
433
456
  { name: "client", remove: true },
434
457
  { name: "connection" },
@@ -490,7 +513,7 @@ class QueryManager {
490
513
  queryInfo.setObservableQuery(observable);
491
514
  return observable;
492
515
  }
493
- query(options, queryId = this.generateQueryId()) {
516
+ async query(options, queryId = this.generateQueryId()) {
494
517
  const query = this.transform(options.query);
495
518
  return this.fetchQuery(queryId, {
496
519
  ...options,
@@ -527,16 +550,11 @@ class QueryManager {
527
550
  // depend on values that previously existed in the data portion of the
528
551
  // store. So, we cancel the promises and observers that we have issued
529
552
  // so far and not yet resolved (in the case of queries).
530
- this.cancelPendingFetches((0, invariant_1.newInvariantError)(77));
531
- this.queries.forEach((queryInfo) => {
532
- if (queryInfo.observableQuery) {
533
- // Set loading to true so listeners don't trigger unless they want
534
- // results with partial data.
535
- queryInfo.observableQuery["networkStatus"] = networkStatus_js_1.NetworkStatus.loading;
536
- }
537
- else {
538
- queryInfo.stop();
539
- }
553
+ this.cancelPendingFetches((0, invariant_1.newInvariantError)(86));
554
+ this.queries.forEach(({ observableQuery }) => {
555
+ // Set loading to true so listeners don't trigger unless they want
556
+ // results with partial data.
557
+ observableQuery?.reset();
540
558
  });
541
559
  if (this.mutationStore) {
542
560
  this.mutationStore = {};
@@ -615,26 +633,25 @@ class QueryManager {
615
633
  if (!included) {
616
634
  const queryName = queryNames.get(nameOrQueryString);
617
635
  if (queryName) {
618
- __DEV__ && invariant_1.invariant.warn(78, queryName);
636
+ __DEV__ && invariant_1.invariant.warn(87, queryName);
619
637
  }
620
638
  else {
621
- __DEV__ && invariant_1.invariant.warn(79);
639
+ __DEV__ && invariant_1.invariant.warn(88);
622
640
  }
623
641
  }
624
642
  });
625
643
  }
626
644
  return queries;
627
645
  }
628
- reFetchObservableQueries(includeStandby = false) {
646
+ refetchObservableQueries(includeStandby = false) {
629
647
  const observableQueryPromises = [];
630
648
  this.getObservableQueries(includeStandby ? "all" : "active").forEach((observableQuery, queryId) => {
631
649
  const { fetchPolicy } = observableQuery.options;
632
- observableQuery.resetLastResults();
633
650
  if (includeStandby ||
634
651
  (fetchPolicy !== "standby" && fetchPolicy !== "cache-only")) {
635
652
  observableQueryPromises.push(observableQuery.refetch());
636
653
  }
637
- (this.queries.get(queryId) || observableQuery["queryInfo"]).setDiff(null);
654
+ (this.queries.get(queryId) || observableQuery["queryInfo"]).resetDiff();
638
655
  });
639
656
  this.broadcastQueries();
640
657
  return Promise.all(observableQueryPromises);
@@ -688,9 +705,19 @@ class QueryManager {
688
705
  return (0, rxjs_1.of)({ data: undefined, error });
689
706
  }), (0, rxjs_1.filter)((result) => !!(result.data || result.error)));
690
707
  if (this.getDocumentInfo(query).hasClientExports) {
691
- const observablePromise = this.localState
692
- .addExportedVariables(query, variables, context)
693
- .then(makeObservable);
708
+ if (environment_1.__DEV__) {
709
+ (0, invariant_1.invariant)(
710
+ this.localState,
711
+ 89,
712
+ (0, internal_1.getOperationName)(query, "(anonymous)")
713
+ );
714
+ }
715
+ const observablePromise = this.localState.getExportedVariables({
716
+ client: this.client,
717
+ document: query,
718
+ variables,
719
+ context,
720
+ }).then(makeObservable);
694
721
  return new rxjs_1.Observable((observer) => {
695
722
  let sub = null;
696
723
  observablePromise.then((observable) => (sub = observable.subscribe(observer)), observer.error);
@@ -707,17 +734,19 @@ class QueryManager {
707
734
  // The same queryId could have two rejection fns for two promises
708
735
  this.fetchCancelFns.delete(queryId);
709
736
  if (this.queries.has(queryId)) {
710
- this.queries.get(queryId)?.stop();
737
+ const oq = this.queries.get(queryId).observableQuery;
738
+ if (oq) {
739
+ oq["resetNotifications"]();
740
+ oq["unsubscribeFromCache"]?.();
741
+ oq.stopPolling();
742
+ }
711
743
  this.queries.delete(queryId);
712
744
  }
713
745
  }
714
746
  broadcastQueries() {
715
747
  if (this.onBroadcast)
716
748
  this.onBroadcast();
717
- this.queries.forEach((info) => info.observableQuery?.["notify"]());
718
- }
719
- getLocalState() {
720
- return this.localState;
749
+ this.queries.forEach((info) => info.observableQuery?.notify());
721
750
  }
722
751
  // Use protected instead of private field so
723
752
  // @apollo/experimental-nextjs-app-support can access type info.
@@ -728,15 +757,7 @@ class QueryManager {
728
757
  this.queryDeduplication) {
729
758
  let observable;
730
759
  const { serverQuery, clientQuery } = this.getDocumentInfo(query);
731
- const prepareContext = (context = {}) => {
732
- const newContext = this.localState.prepareContext(context);
733
- return {
734
- ...this.defaultContext,
735
- ...newContext,
736
- queryDeduplication: deduplication,
737
- clientAwareness: this.clientAwareness,
738
- };
739
- };
760
+ const operationName = (0, internal_1.getOperationName)(query);
740
761
  const executeContext = {
741
762
  client: this.client,
742
763
  };
@@ -745,8 +766,13 @@ class QueryManager {
745
766
  const operation = {
746
767
  query: serverQuery,
747
768
  variables,
748
- operationName: (0, internal_1.getOperationName)(serverQuery) || void 0,
749
- context: prepareContext(context),
769
+ operationName,
770
+ context: {
771
+ ...this.defaultContext,
772
+ ...context,
773
+ queryDeduplication: deduplication,
774
+ clientAwareness: this.clientAwareness,
775
+ },
750
776
  extensions,
751
777
  };
752
778
  context = operation.context;
@@ -773,11 +799,20 @@ class QueryManager {
773
799
  }
774
800
  else {
775
801
  observable = (0, rxjs_1.of)({ data: {} });
776
- context = prepareContext(context);
777
802
  }
778
803
  if (clientQuery) {
804
+ if (environment_1.__DEV__) {
805
+ const { operation } = (0, internal_1.getOperationDefinition)(query);
806
+ (0, invariant_1.invariant)(
807
+ this.localState,
808
+ 90,
809
+ operation[0].toUpperCase() + operation.slice(1),
810
+ operationName ?? "(anonymous)"
811
+ );
812
+ }
779
813
  observable = observable.pipe((0, rxjs_1.mergeMap)((result) => {
780
- return (0, rxjs_1.from)(this.localState.runResolvers({
814
+ return (0, rxjs_1.from)(this.localState.execute({
815
+ client: this.client,
781
816
  document: clientQuery,
782
817
  remoteResult: result,
783
818
  context,
@@ -853,11 +888,11 @@ class QueryManager {
853
888
  return (0, rxjs_1.of)(aqr);
854
889
  }));
855
890
  }
856
- fetchObservableWithInfo(queryInfo, options,
891
+ fetchObservableWithInfo(queryInfo, options, {
857
892
  // The initial networkStatus for this fetch, most often
858
893
  // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,
859
894
  // or setVariables.
860
- networkStatus = networkStatus_js_1.NetworkStatus.loading, query = options.query, emitLoadingState = false) {
895
+ networkStatus = networkStatus_js_1.NetworkStatus.loading, query = options.query, fetchQueryOperator = (x) => x, onCacheHit = () => { }, }) {
861
896
  const variables = this.getVariables(query, options.variables);
862
897
  const defaults = this.defaultOptions.watchQuery;
863
898
  let { fetchPolicy = (defaults && defaults.fetchPolicy) || "cache-first", errorPolicy = (defaults && defaults.errorPolicy) || "none", returnPartialData = false, notifyOnNetworkStatusChange = true, context = {}, } = options;
@@ -879,7 +914,16 @@ class QueryManager {
879
914
  // modify its properties here, rather than creating yet another new
880
915
  // WatchQueryOptions object.
881
916
  normalized.variables = variables;
882
- const observableWithInfo = this.fetchQueryByPolicy(queryInfo, normalized, networkStatus, emitLoadingState);
917
+ const cacheWriteBehavior = fetchPolicy === "no-cache" ? 0 /* CacheWriteBehavior.FORBID */
918
+ // Watched queries must opt into overwriting existing data on refetch,
919
+ // by passing refetchWritePolicy: "overwrite" in their WatchQueryOptions.
920
+ : (networkStatus === networkStatus_js_1.NetworkStatus.refetch &&
921
+ normalized.refetchWritePolicy !== "merge") ?
922
+ 1 /* CacheWriteBehavior.OVERWRITE */
923
+ : 2 /* CacheWriteBehavior.MERGE */;
924
+ const observableWithInfo = this.fetchQueryByPolicy(queryInfo, normalized, cacheWriteBehavior, onCacheHit);
925
+ observableWithInfo.observable =
926
+ observableWithInfo.observable.pipe(fetchQueryOperator);
883
927
  if (
884
928
  // If we're in standby, postpone advancing options.fetchPolicy using
885
929
  // applyNextFetchPolicy.
@@ -898,8 +942,13 @@ class QueryManager {
898
942
  // observables to complete before itself completes.
899
943
  fetchCancelSubject.complete();
900
944
  };
901
- this.fetchCancelFns.set(queryInfo.queryId, (reason) => {
902
- fetchCancelSubject.error(reason);
945
+ this.fetchCancelFns.set(queryInfo.queryId, (error) => {
946
+ fetchCancelSubject.next({
947
+ kind: "E",
948
+ error,
949
+ source: "network",
950
+ });
951
+ fetchCancelSubject.complete();
903
952
  cleanupCancelFn();
904
953
  });
905
954
  const fetchCancelSubject = new rxjs_1.Subject();
@@ -912,7 +961,19 @@ class QueryManager {
912
961
  // for backwards compatibility. TODO This code could be simpler if
913
962
  // we deprecated and removed LocalState.
914
963
  if (this.getDocumentInfo(normalized.query).hasClientExports) {
915
- observable = (0, rxjs_1.from)(this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context)).pipe((0, rxjs_1.mergeMap)((variables) => fromVariables(variables).observable));
964
+ if (environment_1.__DEV__) {
965
+ (0, invariant_1.invariant)(
966
+ this.localState,
967
+ 91,
968
+ (0, internal_1.getOperationName)(normalized.query, "(anonymous)")
969
+ );
970
+ }
971
+ observable = (0, rxjs_1.from)(this.localState.getExportedVariables({
972
+ client: this.client,
973
+ document: normalized.query,
974
+ variables: normalized.variables,
975
+ context: normalized.context,
976
+ })).pipe((0, rxjs_1.mergeMap)((variables) => fromVariables(variables).observable));
916
977
  // there is just no way we can synchronously get the *right* value here,
917
978
  // so we will assume `true`, which is the behaviour before the bug fix in
918
979
  // #10597. This means that bug is not fixed in that case, and is probably
@@ -934,14 +995,19 @@ class QueryManager {
934
995
  const includedQueriesById = new Map();
935
996
  if (include) {
936
997
  this.getObservableQueries(include).forEach((oq, queryId) => {
998
+ const current = oq.getCurrentResult();
937
999
  includedQueriesById.set(queryId, {
938
1000
  oq,
939
- lastDiff: (this.queries.get(queryId) || oq["queryInfo"]).getDiff(),
1001
+ lastDiff: {
1002
+ result: current?.data,
1003
+ complete: !current?.partial,
1004
+ },
940
1005
  });
941
1006
  });
942
1007
  }
943
1008
  const results = new Map();
944
1009
  if (updateCache) {
1010
+ const handled = new Set();
945
1011
  this.cache.batch({
946
1012
  update: updateCache,
947
1013
  // Since you can perform any combination of cache reads and/or writes in
@@ -983,9 +1049,10 @@ class QueryManager {
983
1049
  // temporary optimistic layer, in case that ever matters.
984
1050
  removeOptimistic,
985
1051
  onWatchUpdated(watch, diff, lastDiff) {
986
- const oq = watch.watcher instanceof QueryInfo_js_1.QueryInfo && watch.watcher.observableQuery;
987
- if (oq) {
988
- if (onQueryUpdated) {
1052
+ const oq = watch.watcher;
1053
+ if (oq instanceof ObservableQuery_js_1.ObservableQuery) {
1054
+ if (onQueryUpdated && !handled.has(oq)) {
1055
+ handled.add(oq);
989
1056
  // Since we're about to handle this query now, remove it from
990
1057
  // includedQueriesById, in case it was added earlier because of
991
1058
  // options.include.
@@ -1022,7 +1089,7 @@ class QueryManager {
1022
1089
  // queries, even the QueryOptions ones.
1023
1090
  if (onQueryUpdated) {
1024
1091
  if (!diff) {
1025
- diff = this.cache.diff(oq["queryInfo"]["getDiffOptions"]());
1092
+ diff = this.cache.diff(oq["queryInfo"].getDiffOptions());
1026
1093
  }
1027
1094
  result = onQueryUpdated(oq, diff, lastDiff);
1028
1095
  }
@@ -1062,8 +1129,10 @@ class QueryManager {
1062
1129
  !isFullyUnmaskedOperation(document) &&
1063
1130
  !this.noCacheWarningsByQueryId.has(operationId)) {
1064
1131
  this.noCacheWarningsByQueryId.add(operationId);
1065
- __DEV__ && invariant_1.invariant.warn(80, (0, internal_1.getOperationName)(document) ??
1066
- `Unnamed ${operationType ?? "operation"}`);
1132
+ __DEV__ && invariant_1.invariant.warn(
1133
+ 92,
1134
+ (0, internal_1.getOperationName)(document, `Unnamed ${operationType ?? "operation"}`)
1135
+ );
1067
1136
  }
1068
1137
  }
1069
1138
  return (this.dataMasking ?
@@ -1076,17 +1145,13 @@ class QueryManager {
1076
1145
  (0, masking_1.maskFragment)(data, fragment, this.cache, fragmentName)
1077
1146
  : data;
1078
1147
  }
1079
- fetchQueryByPolicy(queryInfo, { query, variables, fetchPolicy, refetchWritePolicy, errorPolicy, returnPartialData, context, },
1080
- // The initial networkStatus for this fetch, most often
1081
- // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,
1082
- // or setVariables.
1083
- newNetworkStatus, emitLoadingState) {
1148
+ fetchQueryByPolicy(queryInfo, { query, variables, fetchPolicy, errorPolicy, returnPartialData, context, }, cacheWriteBehavior, onCacheHit) {
1084
1149
  queryInfo.init({
1085
1150
  document: query,
1086
1151
  variables,
1087
1152
  });
1088
- const readCache = () => queryInfo.getDiff();
1089
- const resultsFromCache = (diff, networkStatus = newNetworkStatus) => {
1153
+ const readCache = () => this.cache.diff(queryInfo.getDiffOptions());
1154
+ const resultsFromCache = (diff, networkStatus) => {
1090
1155
  const data = diff.result;
1091
1156
  if (environment_1.__DEV__ && !returnPartialData && data !== null) {
1092
1157
  (0, ObservableQuery_js_1.logMissingFieldErrors)(diff.missing);
@@ -1108,25 +1173,39 @@ class QueryManager {
1108
1173
  };
1109
1174
  };
1110
1175
  const fromData = (data) => {
1111
- return (0, rxjs_1.of)(toResult(data));
1176
+ return (0, rxjs_1.of)({
1177
+ kind: "N",
1178
+ value: toResult(data),
1179
+ source: "cache",
1180
+ });
1112
1181
  };
1113
- if (this.getDocumentInfo(query).hasForcedResolvers) {
1114
- return (0, rxjs_1.from)(this.localState
1115
- .runResolvers({
1182
+ if (
1183
+ // Don't attempt to run forced resolvers if we have incomplete cache
1184
+ // data and partial isn't allowed since this result would get set to
1185
+ // `undefined` anyways in `toResult`.
1186
+ (diff.complete || returnPartialData) &&
1187
+ this.getDocumentInfo(query).hasForcedResolvers) {
1188
+ if (environment_1.__DEV__) {
1189
+ (0, invariant_1.invariant)(
1190
+ this.localState,
1191
+ 93,
1192
+ (0, internal_1.getOperationName)(query, "(anonymous)")
1193
+ );
1194
+ }
1195
+ onCacheHit();
1196
+ return (0, rxjs_1.from)(this.localState.execute({
1197
+ client: this.client,
1116
1198
  document: query,
1117
- // TODO: Update remoteResult to handle `null`. In v3 the `if`
1118
- // statement contained a check against `data`, but this value was
1119
- // always `{}` if nothing was in the cache, which meant the check
1120
- // above always succeeded when there were forced resolvers. Now that
1121
- // `data` is nullable, this `remoteResult` needs to be an empty
1122
- // object. Ideally we can pass in `null` here and the resolvers
1123
- // would be able to handle this the same way.
1124
- remoteResult: { data: data || {} },
1199
+ remoteResult: data ? { data } : undefined,
1125
1200
  context,
1126
1201
  variables,
1127
1202
  onlyRunForcedResolvers: true,
1128
- })
1129
- .then((resolved) => toResult(resolved.data || void 0)));
1203
+ returnPartialData: true,
1204
+ }).then((resolved) => ({
1205
+ kind: "N",
1206
+ value: toResult(resolved.data || void 0),
1207
+ source: "cache",
1208
+ })));
1130
1209
  }
1131
1210
  // Resolves https://github.com/apollographql/apollo-client/issues/10317.
1132
1211
  // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,
@@ -1139,20 +1218,16 @@ class QueryManager {
1139
1218
  }
1140
1219
  return fromData(data || undefined);
1141
1220
  };
1142
- const cacheWriteBehavior = fetchPolicy === "no-cache" ? 0 /* CacheWriteBehavior.FORBID */
1143
- // Watched queries must opt into overwriting existing data on refetch,
1144
- // by passing refetchWritePolicy: "overwrite" in their WatchQueryOptions.
1145
- : (newNetworkStatus === networkStatus_js_1.NetworkStatus.refetch &&
1146
- refetchWritePolicy !== "merge") ?
1147
- 1 /* CacheWriteBehavior.OVERWRITE */
1148
- : 2 /* CacheWriteBehavior.MERGE */;
1149
1221
  const resultsFromLink = () => this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
1150
1222
  query,
1151
1223
  variables,
1152
1224
  context,
1153
1225
  fetchPolicy,
1154
1226
  errorPolicy,
1155
- }).pipe(validateDidEmitValue());
1227
+ }).pipe(validateDidEmitValue(), (0, rxjs_1.materialize)(), (0, rxjs_1.map)((result) => ({
1228
+ ...result,
1229
+ source: "network",
1230
+ })));
1156
1231
  switch (fetchPolicy) {
1157
1232
  default:
1158
1233
  case "cache-first": {
@@ -1163,20 +1238,20 @@ class QueryManager {
1163
1238
  observable: resultsFromCache(diff, networkStatus_js_1.NetworkStatus.ready),
1164
1239
  };
1165
1240
  }
1166
- if (returnPartialData || emitLoadingState) {
1241
+ if (returnPartialData) {
1167
1242
  return {
1168
1243
  fromLink: true,
1169
- observable: (0, rxjs_1.concat)(resultsFromCache(diff), resultsFromLink()),
1244
+ observable: (0, rxjs_1.concat)(resultsFromCache(diff, networkStatus_js_1.NetworkStatus.loading), resultsFromLink()),
1170
1245
  };
1171
1246
  }
1172
1247
  return { fromLink: true, observable: resultsFromLink() };
1173
1248
  }
1174
1249
  case "cache-and-network": {
1175
1250
  const diff = readCache();
1176
- if (diff.complete || returnPartialData || emitLoadingState) {
1251
+ if (diff.complete || returnPartialData) {
1177
1252
  return {
1178
1253
  fromLink: true,
1179
- observable: (0, rxjs_1.concat)(resultsFromCache(diff), resultsFromLink()),
1254
+ observable: (0, rxjs_1.concat)(resultsFromCache(diff, networkStatus_js_1.NetworkStatus.loading), resultsFromLink()),
1180
1255
  };
1181
1256
  }
1182
1257
  return { fromLink: true, observable: resultsFromLink() };
@@ -1187,23 +1262,8 @@ class QueryManager {
1187
1262
  observable: (0, rxjs_1.concat)(resultsFromCache(readCache(), networkStatus_js_1.NetworkStatus.ready)),
1188
1263
  };
1189
1264
  case "network-only":
1190
- if (emitLoadingState) {
1191
- return {
1192
- fromLink: true,
1193
- observable: (0, rxjs_1.concat)(resultsFromCache(readCache()), resultsFromLink()),
1194
- };
1195
- }
1196
1265
  return { fromLink: true, observable: resultsFromLink() };
1197
1266
  case "no-cache":
1198
- if (emitLoadingState) {
1199
- return {
1200
- fromLink: true,
1201
- // Note that queryInfo.getDiff() for no-cache queries does not call
1202
- // cache.diff, but instead returns a { complete: false } stub result
1203
- // when there is no queryInfo.diff already defined.
1204
- observable: (0, rxjs_1.concat)(resultsFromCache(queryInfo.getDiff()), resultsFromLink()),
1205
- };
1206
- }
1207
1267
  return { fromLink: true, observable: resultsFromLink() };
1208
1268
  case "standby":
1209
1269
  return { fromLink: false, observable: rxjs_1.EMPTY };
@@ -1224,7 +1284,7 @@ function validateDidEmitValue() {
1224
1284
  didEmitValue = true;
1225
1285
  },
1226
1286
  complete() {
1227
- (0, invariant_1.invariant)(didEmitValue, 81);
1287
+ (0, invariant_1.invariant)(didEmitValue, 94);
1228
1288
  },
1229
1289
  });
1230
1290
  }