@apollo/client 4.3.0-alpha.1 → 4.3.0-alpha.10

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 (389) hide show
  1. package/CHANGELOG.md +484 -0
  2. package/README.md +3 -7
  3. package/__cjs/cache/core/Scalar.cjs +36 -0
  4. package/__cjs/cache/core/Scalar.cjs.map +1 -0
  5. package/__cjs/cache/core/Scalar.d.cts +20 -0
  6. package/__cjs/cache/core/cache.cjs +32 -1
  7. package/__cjs/cache/core/cache.cjs.map +1 -1
  8. package/__cjs/cache/core/cache.d.cts +89 -6
  9. package/__cjs/cache/core/types/Cache.d.cts +25 -0
  10. package/__cjs/cache/index.cjs +3 -1
  11. package/__cjs/cache/index.cjs.map +1 -1
  12. package/__cjs/cache/index.d.cts +3 -2
  13. package/__cjs/cache/inmemory/entityStore.cjs +48 -5
  14. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  15. package/__cjs/cache/inmemory/entityStore.d.cts +3 -0
  16. package/__cjs/cache/inmemory/helpers.d.cts +9 -1
  17. package/__cjs/cache/inmemory/inMemoryCache.cjs +83 -4
  18. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  19. package/__cjs/cache/inmemory/inMemoryCache.d.cts +44 -5
  20. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  21. package/__cjs/cache/inmemory/policies.cjs +35 -6
  22. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  23. package/__cjs/cache/inmemory/policies.d.cts +4 -1
  24. package/__cjs/cache/inmemory/readFromStore.cjs +490 -49
  25. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  26. package/__cjs/cache/inmemory/readFromStore.d.cts +11 -2
  27. package/__cjs/cache/inmemory/types.d.cts +29 -4
  28. package/__cjs/cache/inmemory/writeToStore.cjs +6 -6
  29. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  30. package/__cjs/core/ApolloClient.cjs +37 -38
  31. package/__cjs/core/ApolloClient.cjs.map +1 -1
  32. package/__cjs/core/ApolloClient.d.cts +44 -10
  33. package/__cjs/core/ObservableQuery.cjs +228 -76
  34. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  35. package/__cjs/core/ObservableQuery.d.cts +16 -8
  36. package/__cjs/core/QueryInfo.cjs +178 -190
  37. package/__cjs/core/QueryInfo.cjs.map +1 -1
  38. package/__cjs/core/QueryInfo.d.cts +16 -21
  39. package/__cjs/core/QueryManager.cjs +88 -59
  40. package/__cjs/core/QueryManager.cjs.map +1 -1
  41. package/__cjs/core/QueryManager.d.cts +1 -3
  42. package/__cjs/core/RefetchEventManager.cjs +3 -3
  43. package/__cjs/core/dataStateErrorCache.cjs +12 -0
  44. package/__cjs/core/dataStateErrorCache.cjs.map +1 -0
  45. package/__cjs/core/dataStateErrorCache.d.cts +3 -0
  46. package/__cjs/core/index.cjs +2 -1
  47. package/__cjs/core/index.cjs.map +1 -1
  48. package/__cjs/core/index.d.cts +4 -3
  49. package/__cjs/core/types.d.cts +11 -4
  50. package/__cjs/incremental/GraphQLCodegenIncremental.cjs +3 -0
  51. package/__cjs/incremental/GraphQLCodegenIncremental.cjs.map +1 -0
  52. package/__cjs/incremental/GraphQLCodegenIncremental.d.cts +55 -0
  53. package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
  54. package/__cjs/incremental/handlers/defer20220824.d.cts +2 -4
  55. package/__cjs/incremental/handlers/graphql17Alpha9.cjs +47 -16
  56. package/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
  57. package/__cjs/incremental/handlers/graphql17Alpha9.d.cts +29 -6
  58. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  59. package/__cjs/incremental/index.cjs.map +1 -1
  60. package/__cjs/incremental/index.d.cts +1 -0
  61. package/__cjs/incremental/internal/types.cjs +3 -0
  62. package/__cjs/incremental/internal/types.cjs.map +1 -0
  63. package/__cjs/incremental/internal/types.d.cts +17 -0
  64. package/__cjs/incremental/types.d.cts +55 -4
  65. package/__cjs/invariantErrorCodes.cjs +167 -112
  66. package/__cjs/link/core/ApolloLink.cjs +3 -3
  67. package/__cjs/link/http/checkFetcher.cjs +1 -1
  68. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +2 -2
  69. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  70. package/__cjs/link/persisted-queries/index.cjs +2 -2
  71. package/__cjs/link/ws/index.cjs +1 -1
  72. package/__cjs/local-state/LocalState.cjs +11 -11
  73. package/__cjs/masking/internal/types.d.cts +1 -2
  74. package/__cjs/masking/maskDefinition.cjs +2 -2
  75. package/__cjs/masking/maskFragment.cjs +2 -2
  76. package/__cjs/masking/maskOperation.cjs +1 -1
  77. package/__cjs/masking/utils.cjs +3 -3
  78. package/__cjs/react/context/ApolloContext.cjs +1 -1
  79. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  80. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +2 -2
  81. package/__cjs/react/hooks/useApolloClient.cjs +1 -1
  82. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  83. package/__cjs/react/hooks/useBackgroundQuery.d.cts +100 -47
  84. package/__cjs/react/hooks/useLazyQuery.cjs +2 -2
  85. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  86. package/__cjs/react/hooks/useLazyQuery.d.cts +39 -33
  87. package/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
  88. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  89. package/__cjs/react/hooks/useLoadableQuery.d.cts +23 -15
  90. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  91. package/__cjs/react/hooks/useMutation.d.cts +10 -7
  92. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  93. package/__cjs/react/hooks/useQuery.d.cts +74 -32
  94. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  95. package/__cjs/react/hooks/useSubscription.cjs +1 -1
  96. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  97. package/__cjs/react/hooks/useSuspenseQuery.d.cts +83 -34
  98. package/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
  99. package/__cjs/react/internal/cache/QueryReference.cjs +1 -1
  100. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  101. package/__cjs/react/internal/types.d.cts +14 -3
  102. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  103. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +20 -5
  104. package/__cjs/react/ssr/prerenderStatic.cjs +2 -2
  105. package/__cjs/testing/core/mocking/mockLink.cjs +25 -5
  106. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  107. package/__cjs/testing/core/mocking/mockLink.d.cts +1 -2
  108. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  109. package/__cjs/utilities/caching/sizes.d.cts +39 -1
  110. package/__cjs/utilities/graphql/DocumentTransform.cjs +1 -1
  111. package/__cjs/utilities/index.cjs.map +1 -1
  112. package/__cjs/utilities/index.d.cts +1 -0
  113. package/__cjs/utilities/internal/StreamArrayState.cjs +27 -0
  114. package/__cjs/utilities/internal/StreamArrayState.cjs.map +1 -0
  115. package/__cjs/utilities/internal/StreamArrayState.d.cts +12 -0
  116. package/__cjs/utilities/internal/addDeferFragmentLabels.cjs +33 -0
  117. package/__cjs/utilities/internal/addDeferFragmentLabels.cjs.map +1 -0
  118. package/__cjs/utilities/internal/addDeferFragmentLabels.d.cts +3 -0
  119. package/__cjs/utilities/internal/capitalize.cjs +12 -0
  120. package/__cjs/utilities/internal/capitalize.cjs.map +1 -0
  121. package/__cjs/utilities/internal/capitalize.d.cts +7 -0
  122. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs +69 -0
  123. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.cjs.map +1 -0
  124. package/__cjs/utilities/internal/coerceScalarFieldsToParsed.d.cts +9 -0
  125. package/__cjs/utilities/internal/constants.cjs +20 -1
  126. package/__cjs/utilities/internal/constants.cjs.map +1 -1
  127. package/__cjs/utilities/internal/constants.d.cts +19 -0
  128. package/__cjs/utilities/internal/getDirectiveArgValue.cjs +19 -0
  129. package/__cjs/utilities/internal/getDirectiveArgValue.cjs.map +1 -0
  130. package/__cjs/utilities/internal/getDirectiveArgValue.d.cts +9 -0
  131. package/__cjs/utilities/internal/getFragmentDefinition.cjs +3 -3
  132. package/__cjs/utilities/internal/getFragmentFromSelection.cjs +2 -2
  133. package/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -1
  134. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +2 -2
  135. package/__cjs/utilities/internal/getMainDefinition.cjs +1 -1
  136. package/__cjs/utilities/internal/getMemoryInternals.cjs +6 -0
  137. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  138. package/__cjs/utilities/internal/getMemoryInternals.d.cts +4 -0
  139. package/__cjs/utilities/internal/getQueryDefinition.cjs +1 -1
  140. package/__cjs/utilities/internal/getUnwrappedType.cjs +20 -0
  141. package/__cjs/utilities/internal/getUnwrappedType.cjs.map +1 -0
  142. package/__cjs/utilities/internal/getUnwrappedType.d.cts +8 -0
  143. package/__cjs/utilities/internal/index.cjs +25 -2
  144. package/__cjs/utilities/internal/index.cjs.map +1 -1
  145. package/__cjs/utilities/internal/index.d.cts +16 -1
  146. package/__cjs/utilities/internal/isDeferredFragment.cjs +38 -0
  147. package/__cjs/utilities/internal/isDeferredFragment.cjs.map +1 -0
  148. package/__cjs/utilities/internal/isDeferredFragment.d.cts +9 -0
  149. package/__cjs/utilities/internal/isStreamField.cjs +37 -0
  150. package/__cjs/utilities/internal/isStreamField.cjs.map +1 -0
  151. package/__cjs/utilities/internal/isStreamField.d.cts +9 -0
  152. package/__cjs/utilities/internal/isTypenameField.cjs +7 -0
  153. package/__cjs/utilities/internal/isTypenameField.cjs.map +1 -0
  154. package/__cjs/utilities/internal/isTypenameField.d.cts +3 -0
  155. package/__cjs/utilities/internal/makeStreamInfoTrie.cjs +17 -0
  156. package/__cjs/utilities/internal/makeStreamInfoTrie.cjs.map +1 -0
  157. package/__cjs/utilities/internal/makeStreamInfoTrie.d.cts +8 -0
  158. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +1 -1
  159. package/__cjs/utilities/internal/shouldInclude.cjs +4 -4
  160. package/__cjs/utilities/internal/toDiffWithDataState.cjs +20 -0
  161. package/__cjs/utilities/internal/toDiffWithDataState.cjs.map +1 -0
  162. package/__cjs/utilities/internal/toDiffWithDataState.d.cts +8 -0
  163. package/__cjs/utilities/internal/types/DeferInfo.cjs +3 -0
  164. package/__cjs/utilities/internal/types/DeferInfo.cjs.map +1 -0
  165. package/__cjs/utilities/internal/types/DeferInfo.d.cts +10 -0
  166. package/__cjs/utilities/internal/types/Exact.cjs +3 -0
  167. package/__cjs/utilities/internal/types/Exact.cjs.map +1 -0
  168. package/__cjs/utilities/internal/types/Exact.d.cts +2 -0
  169. package/__cjs/utilities/internal/types/IsLooselyEqual.cjs +3 -0
  170. package/__cjs/utilities/internal/types/IsLooselyEqual.cjs.map +1 -0
  171. package/__cjs/utilities/internal/types/IsLooselyEqual.d.cts +10 -0
  172. package/__cjs/utilities/internal/types/IsNeverish.cjs +3 -0
  173. package/__cjs/utilities/internal/types/IsNeverish.cjs.map +1 -0
  174. package/__cjs/utilities/internal/types/IsNeverish.d.cts +4 -0
  175. package/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +2 -0
  176. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs +1 -1
  177. package/__cjs/utilities/policies/pagination.cjs.map +1 -1
  178. package/__cjs/utilities/policies/pagination.d.cts +1 -1
  179. package/__cjs/utilities/subscriptions/relay/index.cjs +1 -0
  180. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  181. package/__cjs/version.cjs +1 -1
  182. package/__cjs/version.cjs.map +1 -1
  183. package/cache/core/Scalar.d.ts +20 -0
  184. package/cache/core/Scalar.js +32 -0
  185. package/cache/core/Scalar.js.map +1 -0
  186. package/cache/core/cache.d.ts +89 -6
  187. package/cache/core/cache.js +33 -2
  188. package/cache/core/cache.js.map +1 -1
  189. package/cache/core/types/Cache.d.ts +25 -0
  190. package/cache/core/types/Cache.js.map +1 -1
  191. package/cache/index.d.ts +3 -2
  192. package/cache/index.js +1 -0
  193. package/cache/index.js.map +1 -1
  194. package/cache/inmemory/entityStore.d.ts +3 -0
  195. package/cache/inmemory/entityStore.js +49 -6
  196. package/cache/inmemory/entityStore.js.map +1 -1
  197. package/cache/inmemory/helpers.d.ts +9 -1
  198. package/cache/inmemory/inMemoryCache.d.ts +44 -5
  199. package/cache/inmemory/inMemoryCache.js +84 -5
  200. package/cache/inmemory/inMemoryCache.js.map +1 -1
  201. package/cache/inmemory/key-extractor.js +1 -1
  202. package/cache/inmemory/policies.d.ts +4 -1
  203. package/cache/inmemory/policies.js +35 -6
  204. package/cache/inmemory/policies.js.map +1 -1
  205. package/cache/inmemory/readFromStore.d.ts +11 -2
  206. package/cache/inmemory/readFromStore.js +486 -49
  207. package/cache/inmemory/readFromStore.js.map +1 -1
  208. package/cache/inmemory/types.d.ts +30 -5
  209. package/cache/inmemory/types.js.map +1 -1
  210. package/cache/inmemory/writeToStore.js +7 -7
  211. package/cache/inmemory/writeToStore.js.map +1 -1
  212. package/core/ApolloClient.d.ts +44 -10
  213. package/core/ApolloClient.js +37 -38
  214. package/core/ApolloClient.js.map +1 -1
  215. package/core/ObservableQuery.d.ts +16 -8
  216. package/core/ObservableQuery.js +225 -77
  217. package/core/ObservableQuery.js.map +1 -1
  218. package/core/QueryInfo.d.ts +17 -22
  219. package/core/QueryInfo.js +174 -190
  220. package/core/QueryInfo.js.map +1 -1
  221. package/core/QueryManager.d.ts +1 -3
  222. package/core/QueryManager.js +89 -60
  223. package/core/QueryManager.js.map +1 -1
  224. package/core/RefetchEventManager.js +3 -3
  225. package/core/dataStateErrorCache.d.ts +3 -0
  226. package/core/dataStateErrorCache.js +9 -0
  227. package/core/dataStateErrorCache.js.map +1 -0
  228. package/core/index.d.ts +4 -3
  229. package/core/index.js +1 -1
  230. package/core/index.js.map +1 -1
  231. package/core/types.d.ts +11 -4
  232. package/core/types.js.map +1 -1
  233. package/incremental/GraphQLCodegenIncremental.d.ts +55 -0
  234. package/incremental/GraphQLCodegenIncremental.js +2 -0
  235. package/incremental/GraphQLCodegenIncremental.js.map +1 -0
  236. package/incremental/handlers/defer20220824.d.ts +2 -4
  237. package/incremental/handlers/defer20220824.js.map +1 -1
  238. package/incremental/handlers/graphql17Alpha9.d.ts +29 -6
  239. package/incremental/handlers/graphql17Alpha9.js +48 -17
  240. package/incremental/handlers/graphql17Alpha9.js.map +1 -1
  241. package/incremental/handlers/notImplemented.js +1 -1
  242. package/incremental/index.d.ts +1 -0
  243. package/incremental/index.js.map +1 -1
  244. package/incremental/internal/types.d.ts +17 -0
  245. package/incremental/internal/types.js +2 -0
  246. package/incremental/internal/types.js.map +1 -0
  247. package/incremental/types.d.ts +55 -4
  248. package/incremental/types.js.map +1 -1
  249. package/invariantErrorCodes.js +167 -112
  250. package/link/core/ApolloLink.js +3 -3
  251. package/link/http/checkFetcher.js +1 -1
  252. package/link/http/parseAndCheckHttpResponse.js +2 -2
  253. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  254. package/link/persisted-queries/index.js +2 -2
  255. package/link/ws/index.js +1 -1
  256. package/local-state/LocalState.js +11 -11
  257. package/masking/internal/types.d.ts +1 -2
  258. package/masking/internal/types.js.map +1 -1
  259. package/masking/maskDefinition.js +2 -2
  260. package/masking/maskFragment.js +2 -2
  261. package/masking/maskOperation.js +1 -1
  262. package/masking/utils.js +3 -3
  263. package/package.json +1 -1
  264. package/react/context/ApolloContext.js +1 -1
  265. package/react/context/ApolloProvider.js +1 -1
  266. package/react/hooks/internal/validateSuspenseHookOptions.js +2 -2
  267. package/react/hooks/useApolloClient.js +1 -1
  268. package/react/hooks/useBackgroundQuery.d.ts +100 -47
  269. package/react/hooks/useBackgroundQuery.js.map +1 -1
  270. package/react/hooks/useLazyQuery.d.ts +39 -33
  271. package/react/hooks/useLazyQuery.js +2 -2
  272. package/react/hooks/useLazyQuery.js.map +1 -1
  273. package/react/hooks/useLoadableQuery.d.ts +23 -15
  274. package/react/hooks/useLoadableQuery.js +2 -2
  275. package/react/hooks/useLoadableQuery.js.map +1 -1
  276. package/react/hooks/useMutation.d.ts +10 -7
  277. package/react/hooks/useMutation.js.map +1 -1
  278. package/react/hooks/useQuery.d.ts +74 -32
  279. package/react/hooks/useQuery.js.map +1 -1
  280. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  281. package/react/hooks/useSubscription.js +1 -1
  282. package/react/hooks/useSuspenseQuery.d.ts +83 -34
  283. package/react/hooks/useSuspenseQuery.js.map +1 -1
  284. package/react/hooks/useSyncExternalStore.js +1 -1
  285. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js +2 -2
  286. package/react/hooks-compiled/useApolloClient.js +1 -1
  287. package/react/hooks-compiled/useBackgroundQuery.d.ts +100 -47
  288. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  289. package/react/hooks-compiled/useLazyQuery.d.ts +39 -33
  290. package/react/hooks-compiled/useLazyQuery.js +2 -2
  291. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  292. package/react/hooks-compiled/useLoadableQuery.d.ts +23 -15
  293. package/react/hooks-compiled/useLoadableQuery.js +2 -2
  294. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  295. package/react/hooks-compiled/useMutation.d.ts +10 -7
  296. package/react/hooks-compiled/useMutation.js.map +1 -1
  297. package/react/hooks-compiled/useQuery.d.ts +74 -32
  298. package/react/hooks-compiled/useQuery.js.map +1 -1
  299. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  300. package/react/hooks-compiled/useSubscription.js +1 -1
  301. package/react/hooks-compiled/useSuspenseQuery.d.ts +83 -34
  302. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  303. package/react/hooks-compiled/useSyncExternalStore.js +1 -1
  304. package/react/internal/cache/QueryReference.js +1 -1
  305. package/react/internal/cache/QueryReference.js.map +1 -1
  306. package/react/internal/types.d.ts +15 -4
  307. package/react/internal/types.js.map +1 -1
  308. package/react/query-preloader/createQueryPreloader.d.ts +20 -5
  309. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  310. package/react/ssr/prerenderStatic.js +2 -2
  311. package/testing/core/mocking/mockLink.d.ts +1 -2
  312. package/testing/core/mocking/mockLink.js +25 -5
  313. package/testing/core/mocking/mockLink.js.map +1 -1
  314. package/utilities/caching/sizes.d.ts +39 -1
  315. package/utilities/caching/sizes.js.map +1 -1
  316. package/utilities/graphql/DocumentTransform.js +1 -1
  317. package/utilities/index.d.ts +1 -0
  318. package/utilities/index.js.map +1 -1
  319. package/utilities/internal/StreamArrayState.d.ts +12 -0
  320. package/utilities/internal/StreamArrayState.js +23 -0
  321. package/utilities/internal/StreamArrayState.js.map +1 -0
  322. package/utilities/internal/addDeferFragmentLabels.d.ts +3 -0
  323. package/utilities/internal/addDeferFragmentLabels.js +30 -0
  324. package/utilities/internal/addDeferFragmentLabels.js.map +1 -0
  325. package/utilities/internal/capitalize.d.ts +7 -0
  326. package/utilities/internal/capitalize.js +9 -0
  327. package/utilities/internal/capitalize.js.map +1 -0
  328. package/utilities/internal/coerceScalarFieldsToParsed.d.ts +9 -0
  329. package/utilities/internal/coerceScalarFieldsToParsed.js +66 -0
  330. package/utilities/internal/coerceScalarFieldsToParsed.js.map +1 -0
  331. package/utilities/internal/constants.d.ts +19 -0
  332. package/utilities/internal/constants.js +19 -0
  333. package/utilities/internal/constants.js.map +1 -1
  334. package/utilities/internal/getDirectiveArgValue.d.ts +9 -0
  335. package/utilities/internal/getDirectiveArgValue.js +16 -0
  336. package/utilities/internal/getDirectiveArgValue.js.map +1 -0
  337. package/utilities/internal/getFragmentDefinition.js +3 -3
  338. package/utilities/internal/getFragmentFromSelection.js +2 -2
  339. package/utilities/internal/getFragmentFromSelection.js.map +1 -1
  340. package/utilities/internal/getFragmentQueryDocument.js +2 -2
  341. package/utilities/internal/getMainDefinition.js +1 -1
  342. package/utilities/internal/getMemoryInternals.d.ts +4 -0
  343. package/utilities/internal/getMemoryInternals.js +6 -0
  344. package/utilities/internal/getMemoryInternals.js.map +1 -1
  345. package/utilities/internal/getQueryDefinition.js +1 -1
  346. package/utilities/internal/getUnwrappedType.d.ts +8 -0
  347. package/utilities/internal/getUnwrappedType.js +17 -0
  348. package/utilities/internal/getUnwrappedType.js.map +1 -0
  349. package/utilities/internal/index.d.ts +16 -1
  350. package/utilities/internal/index.js +12 -1
  351. package/utilities/internal/index.js.map +1 -1
  352. package/utilities/internal/isDeferredFragment.d.ts +9 -0
  353. package/utilities/internal/isDeferredFragment.js +35 -0
  354. package/utilities/internal/isDeferredFragment.js.map +1 -0
  355. package/utilities/internal/isStreamField.d.ts +9 -0
  356. package/utilities/internal/isStreamField.js +34 -0
  357. package/utilities/internal/isStreamField.js.map +1 -0
  358. package/utilities/internal/isTypenameField.d.ts +3 -0
  359. package/utilities/internal/isTypenameField.js +4 -0
  360. package/utilities/internal/isTypenameField.js.map +1 -0
  361. package/utilities/internal/makeStreamInfoTrie.d.ts +8 -0
  362. package/utilities/internal/makeStreamInfoTrie.js +14 -0
  363. package/utilities/internal/makeStreamInfoTrie.js.map +1 -0
  364. package/utilities/internal/removeDirectivesFromDocument.js +1 -1
  365. package/utilities/internal/shouldInclude.js +4 -4
  366. package/utilities/internal/toDiffWithDataState.d.ts +8 -0
  367. package/utilities/internal/toDiffWithDataState.js +17 -0
  368. package/utilities/internal/toDiffWithDataState.js.map +1 -0
  369. package/utilities/internal/types/DeferInfo.d.ts +10 -0
  370. package/utilities/internal/types/DeferInfo.js +2 -0
  371. package/utilities/internal/types/DeferInfo.js.map +1 -0
  372. package/utilities/internal/types/Exact.d.ts +2 -0
  373. package/utilities/internal/types/Exact.js +2 -0
  374. package/utilities/internal/types/Exact.js.map +1 -0
  375. package/utilities/internal/types/IsLooselyEqual.d.ts +10 -0
  376. package/utilities/internal/types/IsLooselyEqual.js +2 -0
  377. package/utilities/internal/types/IsLooselyEqual.js.map +1 -0
  378. package/utilities/internal/types/IsNeverish.d.ts +4 -0
  379. package/utilities/internal/types/IsNeverish.js +2 -0
  380. package/utilities/internal/types/IsNeverish.js.map +1 -0
  381. package/utilities/internal/types/StreamInfoTrie.d.ts +2 -0
  382. package/utilities/internal/types/StreamInfoTrie.js.map +1 -1
  383. package/utilities/internal/valueToObjectRepresentation.js +1 -1
  384. package/utilities/policies/pagination.d.ts +1 -1
  385. package/utilities/policies/pagination.js.map +1 -1
  386. package/utilities/subscriptions/relay/index.js +1 -0
  387. package/utilities/subscriptions/relay/index.js.map +1 -1
  388. package/version.js +1 -1
  389. package/version.js.map +1 -1
@@ -9,8 +9,9 @@ import { execute } from "@apollo/client/link";
9
9
  import { maskFragment, maskOperation } from "@apollo/client/masking";
10
10
  import { cacheSizes, DocumentTransform, isNetworkRequestInFlight, print, } from "@apollo/client/utilities";
11
11
  import { __DEV__ } from "@apollo/client/utilities/environment";
12
- import { AutoCleanedWeakCache, checkDocument, extensionsSymbol, filterMap, getDefaultValues, getOperationDefinition, getOperationName, graphQLResultHasError, hasDirectives, hasForcedResolvers, isDocumentNode, isNonNullObject, makeUniqueId, mergeOptions, removeDirectivesFromDocument, streamInfoSymbol, toQueryResult, } from "@apollo/client/utilities/internal";
12
+ import { AutoCleanedWeakCache, checkDocument, coerceScalarFieldsToParsed, extensionsSymbol, filterMap, getDefaultValues, getOperationDefinition, getOperationName, graphQLResultHasError, hasDirectives, hasForcedResolvers, isDocumentNode, isNonNullObject, makeUniqueId, mergeOptions, removeDirectivesFromDocument, streamInfoSymbol, toQueryResult, } from "@apollo/client/utilities/internal";
13
13
  import { invariant, newInvariantError, } from "@apollo/client/utilities/invariant";
14
+ import { dataStateErrorCache } from "./dataStateErrorCache.js";
14
15
  import { NetworkStatus } from "./networkStatus.js";
15
16
  import { logMissingFieldErrors, ObservableQuery } from "./ObservableQuery.js";
16
17
  import { QueryInfo } from "./QueryInfo.js";
@@ -75,6 +76,12 @@ export class QueryManager {
75
76
  // selections and fragments from the fragment registry.
76
77
  .concat(defaultDocumentTransform)
77
78
  : defaultDocumentTransform;
79
+ // Put the incremental transform last so custom document transforms don't
80
+ // revert changes made to the document accidentally. Adding last also
81
+ // ensures `@defer` fragments added by the fragment registry are labeled.
82
+ if (this.incrementalHandler.documentTransform) {
83
+ this.documentTransform = this.documentTransform.concat(this.incrementalHandler.documentTransform);
84
+ }
78
85
  this.defaultContext = options.defaultContext || {};
79
86
  if ((this.onBroadcast = options.onBroadcast)) {
80
87
  this.mutationStore = {};
@@ -92,7 +99,7 @@ export class QueryManager {
92
99
  */
93
100
  stop() {
94
101
  this.obsQueries.forEach((oq) => oq.stop());
95
- this.cancelPendingFetches(newInvariantError(89));
102
+ this.cancelPendingFetches(newInvariantError(92));
96
103
  }
97
104
  cancelPendingFetches(error) {
98
105
  this.fetchCancelFns.forEach((cancel) => cancel(error));
@@ -105,7 +112,7 @@ export class QueryManager {
105
112
  variables = this.getVariables(mutation, variables);
106
113
  if (hasClientExports) {
107
114
  if (__DEV__) {
108
- invariant(this.localState, 90, getOperationName(mutation, "(anonymous)"));
115
+ invariant(this.localState, 93, getOperationName(mutation, "(anonymous)"));
109
116
  }
110
117
  variables = await this.localState.getExportedVariables({
111
118
  client: this.client,
@@ -117,7 +124,7 @@ export class QueryManager {
117
124
  const mutationStoreValue = this.mutationStore &&
118
125
  (this.mutationStore[queryInfo.id] = {
119
126
  mutation,
120
- variables,
127
+ variables: this.cache.serializeVariables(mutation, variables),
121
128
  loading: true,
122
129
  error: null,
123
130
  });
@@ -330,10 +337,6 @@ export class QueryManager {
330
337
  }),
331
338
  }));
332
339
  }
333
- requestIdCounter = 1;
334
- generateRequestId() {
335
- return this.requestIdCounter++;
336
- }
337
340
  clearStore(options = {
338
341
  discardWatches: true,
339
342
  }) {
@@ -342,7 +345,7 @@ export class QueryManager {
342
345
  // depend on values that previously existed in the data portion of the
343
346
  // store. So, we cancel the promises and observers that we have issued
344
347
  // so far and not yet resolved (in the case of queries).
345
- this.cancelPendingFetches(newInvariantError(91));
348
+ this.cancelPendingFetches(newInvariantError(94));
346
349
  this.obsQueries.forEach((observableQuery) => {
347
350
  // Set loading to true so listeners don't trigger unless they want
348
351
  // results with partial data.
@@ -412,10 +415,10 @@ export class QueryManager {
412
415
  if (!included) {
413
416
  const queryName = queryNames.get(nameOrQueryString);
414
417
  if (queryName) {
415
- __DEV__ && invariant.warn(92, queryName);
418
+ __DEV__ && invariant.warn(95, queryName);
416
419
  }
417
420
  else {
418
- __DEV__ && invariant.warn(93);
421
+ __DEV__ && invariant.warn(96);
419
422
  }
420
423
  }
421
424
  });
@@ -444,7 +447,7 @@ export class QueryManager {
444
447
  if (__DEV__) {
445
448
  invariant(
446
449
  !this.getDocumentInfo(query).hasClientExports || this.localState,
447
- 94,
450
+ 97,
448
451
  getOperationName(query, "(anonymous)")
449
452
  );
450
453
  }
@@ -519,6 +522,7 @@ export class QueryManager {
519
522
  const executeContext = {
520
523
  client: this.client,
521
524
  };
525
+ variables = this.cache.serializeVariables(query, variables);
522
526
  if (serverQuery) {
523
527
  const { inFlightLinkObservables, link } = this;
524
528
  try {
@@ -588,14 +592,14 @@ export class QueryManager {
588
592
  if (__DEV__) {
589
593
  invariant(
590
594
  this.localState,
591
- 95,
595
+ 98,
592
596
  operation[0].toUpperCase() + operation.slice(1),
593
597
  operationName ?? "(anonymous)"
594
598
  );
595
599
  }
596
600
  invariant(
597
601
  !hasIncrementalDirective,
598
- 96,
602
+ 99,
599
603
  operation[0].toUpperCase() + operation.slice(1),
600
604
  operationName ?? "(anonymous)"
601
605
  );
@@ -619,8 +623,7 @@ export class QueryManager {
619
623
  })),
620
624
  };
621
625
  }
622
- getResultsFromLink(options, { queryInfo, cacheWriteBehavior, observableQuery, exposeExtensions, }) {
623
- const requestId = (queryInfo.lastRequestId = this.generateRequestId());
626
+ getResultsFromLink(options, { queryInfo, cacheWriteBehavior, observableQuery, exposeExtensions, prunePendingDeferFragments, }) {
624
627
  const { errorPolicy } = options;
625
628
  // Performing transformForLink here gives this.cache a chance to fill in
626
629
  // missing fragment definitions (for example) before sending this document
@@ -630,57 +633,49 @@ export class QueryManager {
630
633
  // Use linkDocument rather than queryInfo.document so the
631
634
  // operation/fragments used to write the result are the same as the
632
635
  // ones used to obtain it from the link.
633
- const result = queryInfo.markQueryResult(incoming, {
636
+ const { dataState, ...result } = queryInfo.markQueryResult(incoming, {
634
637
  ...options,
635
638
  document: linkDocument,
636
639
  cacheWriteBehavior,
640
+ returnPartialData: options.returnPartialData,
641
+ prunePendingDeferFragments,
637
642
  });
638
643
  const hasErrors = graphQLResultHasError(result);
639
644
  if (hasErrors && errorPolicy === "none") {
640
- queryInfo.resetLastWrite();
641
645
  observableQuery?.["resetNotifications"]();
642
- throw new CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
646
+ const error = new CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
647
+ dataStateErrorCache.set(error, dataState);
648
+ throw error;
643
649
  }
650
+ const partial = dataState !== "complete";
644
651
  const aqr = {
645
652
  data: result.data,
646
653
  ...(queryInfo.hasNext ?
647
654
  {
648
655
  loading: true,
649
656
  networkStatus: NetworkStatus.streaming,
650
- dataState: "streaming",
651
- partial: true,
657
+ dataState,
658
+ partial,
652
659
  }
653
660
  : {
654
- dataState: result.data ? "complete" : "empty",
661
+ dataState,
655
662
  loading: false,
656
663
  networkStatus: NetworkStatus.ready,
657
- partial: !result.data,
664
+ partial,
658
665
  }),
659
666
  };
660
667
  if (exposeExtensions && "extensions" in result) {
661
668
  aqr[extensionsSymbol] = result.extensions;
662
669
  }
663
- // In the case we start multiple network requests simultaneously, we
664
- // want to ensure we properly set `data` if we're reporting on an old
665
- // result which will not be caught by the conditional above that ends up
666
- // throwing the markError result.
667
- if (hasErrors) {
668
- if (errorPolicy === "none") {
669
- aqr.data = void 0;
670
- aqr.dataState = "empty";
671
- }
672
- if (errorPolicy !== "ignore") {
673
- aqr.error = new CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
674
- if (aqr.dataState !== "streaming") {
675
- aqr.networkStatus = NetworkStatus.error;
676
- }
670
+ if (hasErrors && errorPolicy !== "ignore") {
671
+ aqr.error = new CombinedGraphQLErrors(removeStreamDetailsFromExtensions(result));
672
+ if (aqr.networkStatus !== NetworkStatus.streaming) {
673
+ aqr.networkStatus = NetworkStatus.error;
677
674
  }
678
675
  }
679
676
  return aqr;
680
677
  }), catchError((error) => {
681
- // Avoid storing errors from older interrupted queries.
682
- if (requestId >= queryInfo.lastRequestId && errorPolicy === "none") {
683
- queryInfo.resetLastWrite();
678
+ if (errorPolicy === "none") {
684
679
  observableQuery?.["resetNotifications"]();
685
680
  throw error;
686
681
  }
@@ -715,6 +710,7 @@ export class QueryManager {
715
710
  fetchPolicy,
716
711
  errorPolicy,
717
712
  returnPartialData,
713
+ networkStatus,
718
714
  notifyOnNetworkStatusChange,
719
715
  context,
720
716
  });
@@ -771,7 +767,7 @@ export class QueryManager {
771
767
  // we deprecated and removed LocalState.
772
768
  if (this.getDocumentInfo(normalized.query).hasClientExports) {
773
769
  if (__DEV__) {
774
- invariant(this.localState, 97, getOperationName(normalized.query, "(anonymous)"));
770
+ invariant(this.localState, 100, getOperationName(normalized.query, "(anonymous)"));
775
771
  }
776
772
  observable = from(this.localState.getExportedVariables({
777
773
  client: this.client,
@@ -944,7 +940,7 @@ export class QueryManager {
944
940
  !isFullyUnmaskedOperation(document) &&
945
941
  !this.noCacheWarningsByCause.has(cause)) {
946
942
  this.noCacheWarningsByCause.add(cause);
947
- __DEV__ && invariant.warn(98, getOperationName(document, `Unnamed ${operationType ?? "operation"}`));
943
+ __DEV__ && invariant.warn(101, getOperationName(document, `Unnamed ${operationType ?? "operation"}`));
948
944
  }
949
945
  }
950
946
  return (this.dataMasking ?
@@ -957,32 +953,33 @@ export class QueryManager {
957
953
  maskFragment(data, fragment, this.cache, fragmentName)
958
954
  : data;
959
955
  }
960
- fetchQueryByPolicy({ query, variables, fetchPolicy, errorPolicy, returnPartialData, context, }, { cacheWriteBehavior, onCacheHit, queryInfo, observableQuery, exposeExtensions, }) {
961
- const readCache = () => this.cache.diff({
962
- query,
963
- variables,
964
- returnPartialData: true,
965
- optimistic: true,
966
- });
956
+ fetchQueryByPolicy({ query, variables, fetchPolicy, errorPolicy, returnPartialData, context, networkStatus, }, { cacheWriteBehavior, onCacheHit, queryInfo, observableQuery, exposeExtensions, }) {
957
+ const readCache = () => {
958
+ return queryInfo.getDiff({
959
+ query,
960
+ variables,
961
+ returnPartialData: true,
962
+ optimistic: true,
963
+ });
964
+ };
967
965
  const resultsFromCache = (diff, networkStatus) => {
968
966
  const data = diff.result;
969
967
  if (__DEV__ && !returnPartialData && data !== null) {
970
968
  logMissingFieldErrors(diff.missing);
971
969
  }
972
- const toResult = (data) => {
970
+ const toResult = (data, dataState = diff.dataState) => {
973
971
  // TODO: Eventually we should move this handling into
974
972
  // queryInfo.getDiff() directly. Since getDiff is updated to return null
975
973
  // on returnPartialData: false, we should take advantage of that instead
976
974
  // of having to patch it elsewhere.
977
975
  if (!diff.complete && !returnPartialData) {
978
976
  data = undefined;
977
+ dataState = "empty";
979
978
  }
980
979
  return {
981
980
  // TODO: Handle partial data
982
981
  data: data,
983
- dataState: diff.complete ? "complete"
984
- : data ? "partial"
985
- : "empty",
982
+ dataState,
986
983
  loading: isNetworkRequestInFlight(networkStatus),
987
984
  networkStatus,
988
985
  partial: !diff.complete,
@@ -992,6 +989,10 @@ export class QueryManager {
992
989
  return of({
993
990
  kind: "N",
994
991
  value: toResult(data),
992
+ // Always attach the variables used for this fetch so @export
993
+ // resolution can update ObservableQuery.options.variables and
994
+ // resubscribe the cache watch under the correct variable set.
995
+ resolvedVariables: variables,
995
996
  source: "cache",
996
997
  });
997
998
  };
@@ -1002,7 +1003,7 @@ export class QueryManager {
1002
1003
  (diff.complete || returnPartialData) &&
1003
1004
  this.getDocumentInfo(query).hasForcedResolvers) {
1004
1005
  if (__DEV__) {
1005
- invariant(this.localState, 99, getOperationName(query, "(anonymous)"));
1006
+ invariant(this.localState, 102, getOperationName(query, "(anonymous)"));
1006
1007
  }
1007
1008
  onCacheHit();
1008
1009
  return from(this.localState.execute({
@@ -1016,7 +1017,13 @@ export class QueryManager {
1016
1017
  fetchPolicy,
1017
1018
  }).then((resolved) => ({
1018
1019
  kind: "N",
1019
- value: toResult(resolved.data || void 0),
1020
+ value: toResult(resolved.data || void 0, diff.complete ? "complete"
1021
+ : resolved.data ? "partial"
1022
+ : "empty"),
1023
+ // Always attach the variables used for this fetch so @export
1024
+ // resolution can update ObservableQuery.options.variables and
1025
+ // resubscribe the cache watch under the correct variable set.
1026
+ resolvedVariables: variables,
1020
1027
  source: "cache",
1021
1028
  })));
1022
1029
  }
@@ -1031,19 +1038,26 @@ export class QueryManager {
1031
1038
  }
1032
1039
  return fromData(data || undefined);
1033
1040
  };
1034
- const resultsFromLink = () => this.getResultsFromLink({
1041
+ const resultsFromLink = ({ prunePendingDeferFragments = true, } = {}) => this.getResultsFromLink({
1035
1042
  query,
1036
1043
  variables,
1037
1044
  context,
1038
1045
  fetchPolicy,
1039
1046
  errorPolicy,
1047
+ returnPartialData,
1048
+ networkStatus,
1040
1049
  }, {
1041
1050
  cacheWriteBehavior,
1042
1051
  queryInfo,
1043
1052
  observableQuery,
1044
1053
  exposeExtensions,
1054
+ prunePendingDeferFragments,
1045
1055
  }).pipe(validateDidEmitValue(), materialize(), map((result) => ({
1046
1056
  ...result,
1057
+ // Always attach the variables used for this fetch so @export
1058
+ // resolution can update ObservableQuery.options.variables and
1059
+ // resubscribe the cache watch under the correct variable set.
1060
+ resolvedVariables: variables,
1047
1061
  source: "network",
1048
1062
  })));
1049
1063
  switch (fetchPolicy) {
@@ -1069,7 +1083,7 @@ export class QueryManager {
1069
1083
  if (diff.complete || returnPartialData) {
1070
1084
  return {
1071
1085
  fromLink: true,
1072
- observable: concat(resultsFromCache(diff, NetworkStatus.loading), resultsFromLink()),
1086
+ observable: concat(resultsFromCache(diff, NetworkStatus.loading), resultsFromLink({ prunePendingDeferFragments: false })),
1073
1087
  };
1074
1088
  }
1075
1089
  return { fromLink: true, observable: resultsFromLink() };
@@ -1080,9 +1094,24 @@ export class QueryManager {
1080
1094
  observable: concat(resultsFromCache(readCache(), NetworkStatus.ready)),
1081
1095
  };
1082
1096
  case "network-only":
1083
- return { fromLink: true, observable: resultsFromLink() };
1097
+ return {
1098
+ fromLink: true,
1099
+ observable: resultsFromLink({
1100
+ prunePendingDeferFragments: networkStatus !== NetworkStatus.refetch,
1101
+ }),
1102
+ };
1084
1103
  case "no-cache":
1085
- return { fromLink: true, observable: resultsFromLink() };
1104
+ return {
1105
+ fromLink: true,
1106
+ observable: resultsFromLink().pipe(map((notification) => {
1107
+ if (notification.kind === "N" &&
1108
+ notification.value.data != null &&
1109
+ this.cache.configuresScalars()) {
1110
+ notification.value.data = coerceScalarFieldsToParsed(notification.value.data, query, this.cache);
1111
+ }
1112
+ return notification;
1113
+ })),
1114
+ };
1086
1115
  case "standby":
1087
1116
  return { fromLink: false, observable: EMPTY };
1088
1117
  }
@@ -1095,7 +1124,7 @@ function validateDidEmitValue() {
1095
1124
  didEmitValue = true;
1096
1125
  },
1097
1126
  complete() {
1098
- invariant(didEmitValue, 100);
1127
+ invariant(didEmitValue, 103);
1099
1128
  },
1100
1129
  });
1101
1130
  }