@apollo/client 4.0.0-alpha.9 → 4.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1706) hide show
  1. package/CHANGELOG.md +1012 -0
  2. package/README.md +80 -31
  3. package/__cjs/cache/core/cache.cjs +11 -9
  4. package/__cjs/cache/core/cache.cjs.map +1 -1
  5. package/__cjs/cache/core/cache.d.cts +11 -8
  6. package/__cjs/cache/index.cjs +1 -2
  7. package/__cjs/cache/index.cjs.map +1 -1
  8. package/__cjs/cache/index.d.cts +1 -1
  9. package/__cjs/cache/inmemory/entityStore.cjs +12 -11
  10. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  11. package/__cjs/cache/inmemory/fragmentRegistry.cjs +3 -2
  12. package/__cjs/cache/inmemory/fragmentRegistry.cjs.map +1 -1
  13. package/__cjs/cache/inmemory/helpers.cjs +10 -10
  14. package/__cjs/cache/inmemory/helpers.cjs.map +1 -1
  15. package/__cjs/cache/inmemory/helpers.d.cts +3 -3
  16. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  17. package/__cjs/cache/inmemory/inMemoryCache.d.cts +9 -7
  18. package/__cjs/cache/inmemory/key-extractor.cjs +10 -10
  19. package/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
  20. package/__cjs/cache/inmemory/policies.cjs +14 -13
  21. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  22. package/__cjs/cache/inmemory/policies.d.cts +2 -1
  23. package/__cjs/cache/inmemory/readFromStore.cjs +17 -16
  24. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  25. package/__cjs/cache/inmemory/writeToStore.cjs +50 -22
  26. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  27. package/__cjs/cache/inmemory/writeToStore.d.cts +2 -1
  28. package/__cjs/core/ApolloClient.cjs +53 -74
  29. package/__cjs/core/ApolloClient.cjs.map +1 -1
  30. package/__cjs/core/ApolloClient.d.cts +29 -55
  31. package/__cjs/core/ObservableQuery.cjs +768 -468
  32. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  33. package/__cjs/core/ObservableQuery.d.cts +290 -60
  34. package/__cjs/core/QueryInfo.cjs +271 -180
  35. package/__cjs/core/QueryInfo.cjs.map +1 -1
  36. package/__cjs/core/QueryInfo.d.cts +55 -30
  37. package/__cjs/core/QueryManager.cjs +509 -587
  38. package/__cjs/core/QueryManager.cjs.map +1 -1
  39. package/__cjs/core/QueryManager.d.cts +52 -62
  40. package/__cjs/core/equalByQuery.cjs +7 -7
  41. package/__cjs/core/equalByQuery.cjs.map +1 -1
  42. package/__cjs/core/index.cjs +11 -10
  43. package/__cjs/core/index.cjs.map +1 -1
  44. package/__cjs/core/index.d.cts +10 -12
  45. package/__cjs/core/networkStatus.cjs +7 -1
  46. package/__cjs/core/networkStatus.cjs.map +1 -1
  47. package/__cjs/core/networkStatus.d.cts +7 -1
  48. package/__cjs/core/types.d.cts +137 -25
  49. package/__cjs/core/watchQueryOptions.d.cts +16 -101
  50. package/__cjs/dev/loadErrorMessageHandler.cjs +2 -3
  51. package/__cjs/dev/loadErrorMessageHandler.cjs.map +1 -1
  52. package/__cjs/dev/setErrorMessageHandler.cjs +2 -3
  53. package/__cjs/dev/setErrorMessageHandler.cjs.map +1 -1
  54. package/__cjs/errors/CombinedGraphQLErrors.cjs +28 -13
  55. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  56. package/__cjs/errors/CombinedGraphQLErrors.d.cts +21 -2
  57. package/__cjs/errors/CombinedProtocolErrors.cjs +13 -6
  58. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  59. package/__cjs/errors/CombinedProtocolErrors.d.cts +9 -0
  60. package/__cjs/errors/LinkError.cjs +24 -0
  61. package/__cjs/errors/LinkError.cjs.map +1 -0
  62. package/__cjs/errors/LinkError.d.cts +18 -0
  63. package/__cjs/errors/LocalStateError.cjs +27 -0
  64. package/__cjs/errors/LocalStateError.cjs.map +1 -0
  65. package/__cjs/errors/LocalStateError.d.cts +20 -0
  66. package/__cjs/errors/ServerError.cjs +9 -4
  67. package/__cjs/errors/ServerError.cjs.map +1 -1
  68. package/__cjs/errors/ServerError.d.cts +10 -8
  69. package/__cjs/errors/ServerParseError.cjs +6 -0
  70. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  71. package/__cjs/errors/ServerParseError.d.cts +2 -0
  72. package/__cjs/errors/UnconventionalError.cjs +6 -0
  73. package/__cjs/errors/UnconventionalError.cjs.map +1 -1
  74. package/__cjs/errors/UnconventionalError.d.cts +2 -0
  75. package/__cjs/errors/index.cjs +12 -12
  76. package/__cjs/errors/index.cjs.map +1 -1
  77. package/__cjs/errors/index.d.cts +5 -8
  78. package/__cjs/errors/isErrorLike.cjs +12 -0
  79. package/__cjs/errors/isErrorLike.cjs.map +1 -0
  80. package/__cjs/errors/isErrorLike.d.cts +3 -0
  81. package/__cjs/errors/utils.cjs +18 -0
  82. package/__cjs/errors/utils.cjs.map +1 -0
  83. package/__cjs/errors/utils.d.cts +3 -0
  84. package/__cjs/incremental/handlers/defer20220824.cjs +102 -0
  85. package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -0
  86. package/__cjs/incremental/handlers/defer20220824.d.cts +55 -0
  87. package/__cjs/incremental/handlers/notImplemented.cjs +19 -0
  88. package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -0
  89. package/__cjs/incremental/handlers/notImplemented.d.cts +9 -0
  90. package/__cjs/incremental/index.cjs +9 -0
  91. package/__cjs/incremental/index.cjs.map +1 -0
  92. package/__cjs/incremental/index.d.cts +4 -0
  93. package/__cjs/incremental/types.cjs +3 -0
  94. package/__cjs/incremental/types.cjs.map +1 -0
  95. package/__cjs/incremental/types.d.cts +24 -0
  96. package/__cjs/invariantErrorCodes.cjs +275 -172
  97. package/__cjs/link/batch/batchLink.cjs +2 -2
  98. package/__cjs/link/batch/batchLink.cjs.map +1 -1
  99. package/__cjs/link/batch/batchLink.d.cts +2 -2
  100. package/__cjs/link/batch/batching.cjs.map +1 -1
  101. package/__cjs/link/batch/batching.d.cts +1 -1
  102. package/__cjs/link/batch-http/batchHttpLink.cjs +21 -67
  103. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  104. package/__cjs/link/batch-http/batchHttpLink.d.cts +9 -4
  105. package/__cjs/link/batch-http/index.cjs +2 -1
  106. package/__cjs/link/batch-http/index.cjs.map +1 -1
  107. package/__cjs/link/batch-http/index.d.cts +1 -1
  108. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs +45 -0
  109. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -0
  110. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +62 -0
  111. package/__cjs/link/client-awareness/index.cjs +6 -0
  112. package/__cjs/link/client-awareness/index.cjs.map +1 -0
  113. package/__cjs/link/client-awareness/index.d.cts +2 -0
  114. package/__cjs/link/context/index.cjs +37 -26
  115. package/__cjs/link/context/index.cjs.map +1 -1
  116. package/__cjs/link/context/index.d.cts +11 -5
  117. package/__cjs/link/core/ApolloLink.cjs +19 -13
  118. package/__cjs/link/core/ApolloLink.cjs.map +1 -1
  119. package/__cjs/link/core/ApolloLink.d.cts +17 -11
  120. package/__cjs/link/core/types.d.cts +14 -36
  121. package/__cjs/link/error/index.cjs +69 -66
  122. package/__cjs/link/error/index.cjs.map +1 -1
  123. package/__cjs/link/error/index.d.cts +17 -16
  124. package/__cjs/link/http/BaseHttpLink.cjs +111 -0
  125. package/__cjs/link/http/BaseHttpLink.cjs.map +1 -0
  126. package/__cjs/link/http/BaseHttpLink.d.cts +6 -0
  127. package/__cjs/link/http/HttpLink.cjs +14 -7
  128. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  129. package/__cjs/link/http/HttpLink.d.cts +145 -4
  130. package/__cjs/link/http/checkFetcher.cjs +1 -1
  131. package/__cjs/link/http/index.cjs +4 -3
  132. package/__cjs/link/http/index.cjs.map +1 -1
  133. package/__cjs/link/http/index.d.cts +2 -3
  134. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +74 -113
  135. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  136. package/__cjs/link/http/parseAndCheckHttpResponse.d.cts +1 -3
  137. package/__cjs/link/http/rewriteURIForGET.cjs.map +1 -1
  138. package/__cjs/link/http/rewriteURIForGET.d.cts +2 -2
  139. package/__cjs/link/http/selectHttpOptionsAndBody.cjs +7 -6
  140. package/__cjs/link/http/selectHttpOptionsAndBody.cjs.map +1 -1
  141. package/__cjs/link/http/selectHttpOptionsAndBody.d.cts +8 -83
  142. package/__cjs/link/http/selectURI.cjs.map +1 -1
  143. package/__cjs/link/http/selectURI.d.cts +1 -1
  144. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  145. package/__cjs/link/index.cjs +16 -0
  146. package/__cjs/link/index.cjs.map +1 -0
  147. package/__cjs/link/index.d.cts +8 -0
  148. package/__cjs/link/persisted-queries/index.cjs +162 -142
  149. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  150. package/__cjs/link/persisted-queries/index.d.cts +21 -21
  151. package/__cjs/link/remove-typename/index.cjs +2 -1
  152. package/__cjs/link/remove-typename/index.cjs.map +1 -1
  153. package/__cjs/link/remove-typename/index.d.cts +1 -1
  154. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs +37 -25
  155. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs.map +1 -1
  156. package/__cjs/link/remove-typename/removeTypenameFromVariables.d.cts +9 -10
  157. package/__cjs/link/retry/delayFunction.cjs.map +1 -1
  158. package/__cjs/link/retry/delayFunction.d.cts +1 -1
  159. package/__cjs/link/retry/retryFunction.cjs.map +1 -1
  160. package/__cjs/link/retry/retryFunction.d.cts +1 -1
  161. package/__cjs/link/retry/retryLink.cjs +2 -2
  162. package/__cjs/link/retry/retryLink.cjs.map +1 -1
  163. package/__cjs/link/retry/retryLink.d.cts +2 -2
  164. package/__cjs/link/schema/index.cjs +2 -2
  165. package/__cjs/link/schema/index.cjs.map +1 -1
  166. package/__cjs/link/schema/index.d.cts +2 -2
  167. package/__cjs/link/subscriptions/index.cjs +5 -5
  168. package/__cjs/link/subscriptions/index.cjs.map +1 -1
  169. package/__cjs/link/subscriptions/index.d.cts +2 -2
  170. package/__cjs/link/utils/createOperation.cjs +5 -1
  171. package/__cjs/link/utils/createOperation.cjs.map +1 -1
  172. package/__cjs/link/utils/createOperation.d.cts +2 -2
  173. package/__cjs/link/utils/transformOperation.cjs +2 -2
  174. package/__cjs/link/utils/transformOperation.cjs.map +1 -1
  175. package/__cjs/link/utils/transformOperation.d.cts +1 -1
  176. package/__cjs/link/utils/validateOperation.cjs +1 -1
  177. package/__cjs/link/utils/validateOperation.cjs.map +1 -1
  178. package/__cjs/link/utils/validateOperation.d.cts +1 -1
  179. package/__cjs/link/ws/index.cjs +2 -2
  180. package/__cjs/link/ws/index.cjs.map +1 -1
  181. package/__cjs/link/ws/index.d.cts +2 -2
  182. package/__cjs/local-state/LocalState.cjs +527 -0
  183. package/__cjs/local-state/LocalState.cjs.map +1 -0
  184. package/__cjs/local-state/LocalState.d.cts +88 -0
  185. package/__cjs/local-state/index.cjs +6 -0
  186. package/__cjs/local-state/index.cjs.map +1 -0
  187. package/__cjs/local-state/index.d.cts +2 -0
  188. package/__cjs/masking/GraphQLCodegenDataMasking.cjs +3 -0
  189. package/__cjs/masking/GraphQLCodegenDataMasking.cjs.map +1 -0
  190. package/__cjs/masking/GraphQLCodegenDataMasking.d.cts +79 -0
  191. package/__cjs/masking/index.cjs.map +1 -1
  192. package/__cjs/masking/index.d.cts +1 -0
  193. package/__cjs/masking/internal/types.d.cts +1 -2
  194. package/__cjs/masking/maskDefinition.cjs +6 -6
  195. package/__cjs/masking/maskDefinition.cjs.map +1 -1
  196. package/__cjs/masking/maskDefinition.d.cts +1 -1
  197. package/__cjs/masking/maskFragment.cjs +9 -13
  198. package/__cjs/masking/maskFragment.cjs.map +1 -1
  199. package/__cjs/masking/maskFragment.d.cts +5 -1
  200. package/__cjs/masking/maskOperation.cjs +9 -13
  201. package/__cjs/masking/maskOperation.cjs.map +1 -1
  202. package/__cjs/masking/maskOperation.d.cts +5 -1
  203. package/__cjs/masking/types.d.cts +12 -26
  204. package/__cjs/masking/utils.cjs +32 -7
  205. package/__cjs/masking/utils.cjs.map +1 -1
  206. package/__cjs/masking/utils.d.cts +7 -2
  207. package/__cjs/react/context/ApolloConsumer.cjs +1 -1
  208. package/__cjs/react/context/ApolloContext.cjs +1 -1
  209. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  210. package/__cjs/react/hooks/internal/__use.cjs +6 -6
  211. package/__cjs/react/hooks/internal/__use.cjs.map +1 -1
  212. package/__cjs/react/hooks/internal/useIsomorphicLayoutEffect.cjs +2 -2
  213. package/__cjs/react/hooks/internal/useIsomorphicLayoutEffect.cjs.map +1 -1
  214. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +28 -0
  215. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -0
  216. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +3 -0
  217. package/__cjs/react/hooks/internal/wrapHook.cjs +36 -34
  218. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  219. package/__cjs/react/hooks/internal/wrapHook.d.cts +42 -38
  220. package/__cjs/react/hooks/useApolloClient.cjs +1 -1
  221. package/__cjs/react/hooks/useBackgroundQuery.cjs +3 -2
  222. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  223. package/__cjs/react/hooks/useBackgroundQuery.d.cts +59 -28
  224. package/__cjs/react/hooks/useFragment.cjs +1 -0
  225. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  226. package/__cjs/react/hooks/useFragment.d.cts +2 -1
  227. package/__cjs/react/hooks/useLazyQuery.cjs +18 -16
  228. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  229. package/__cjs/react/hooks/useLazyQuery.d.cts +55 -80
  230. package/__cjs/react/hooks/useLoadableQuery.cjs +23 -4
  231. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  232. package/__cjs/react/hooks/useLoadableQuery.d.cts +8 -10
  233. package/__cjs/react/hooks/useMutation.cjs +2 -2
  234. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  235. package/__cjs/react/hooks/useMutation.d.cts +47 -14
  236. package/__cjs/react/hooks/useQuery.cjs +36 -48
  237. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  238. package/__cjs/react/hooks/useQuery.d.cts +19 -71
  239. package/__cjs/react/hooks/useQueryRefHandlers.cjs +1 -0
  240. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  241. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +2 -2
  242. package/__cjs/react/hooks/useReadQuery.cjs +2 -0
  243. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  244. package/__cjs/react/hooks/useReadQuery.d.cts +4 -11
  245. package/__cjs/react/hooks/useSubscription.cjs +13 -18
  246. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  247. package/__cjs/react/hooks/useSubscription.d.cts +6 -8
  248. package/__cjs/react/hooks/useSuspenseFragment.cjs +1 -0
  249. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  250. package/__cjs/react/hooks/useSuspenseFragment.d.cts +1 -2
  251. package/__cjs/react/hooks/useSuspenseQuery.cjs +8 -28
  252. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  253. package/__cjs/react/hooks/useSuspenseQuery.d.cts +19 -36
  254. package/__cjs/react/hooks/useSyncExternalStore.cjs +22 -3
  255. package/__cjs/react/hooks/useSyncExternalStore.cjs.map +1 -1
  256. package/__cjs/react/index.cjs +3 -1
  257. package/__cjs/react/index.cjs.map +1 -1
  258. package/__cjs/react/index.d.cts +2 -1
  259. package/__cjs/react/internal/cache/FragmentReference.cjs +8 -5
  260. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  261. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -2
  262. package/__cjs/react/internal/cache/QueryReference.cjs +27 -38
  263. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  264. package/__cjs/react/internal/cache/QueryReference.d.cts +48 -108
  265. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  266. package/__cjs/react/internal/cache/SuspenseCache.d.cts +3 -3
  267. package/__cjs/react/internal/index.cjs.map +1 -1
  268. package/__cjs/react/internal/index.d.cts +2 -2
  269. package/__cjs/react/internal/types.d.cts +3 -45
  270. package/__cjs/react/query-preloader/createQueryPreloader.cjs +8 -2
  271. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  272. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +46 -38
  273. package/__cjs/react/ssr/prerenderStatic.cjs +9 -2
  274. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  275. package/__cjs/react/ssr/useSSRQuery.cjs +12 -2
  276. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  277. package/__cjs/react/types/deprecated.d.cts +3 -3
  278. package/__cjs/react/types/types.documentation.d.cts +12 -0
  279. package/__cjs/testing/core/mocking/mockLink.cjs +21 -22
  280. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  281. package/__cjs/testing/core/mocking/mockLink.d.cts +31 -24
  282. package/__cjs/testing/core/mocking/mockSubscriptionLink.cjs +2 -6
  283. package/__cjs/testing/core/mocking/mockSubscriptionLink.cjs.map +1 -1
  284. package/__cjs/testing/core/mocking/mockSubscriptionLink.d.cts +9 -8
  285. package/__cjs/testing/core/types/deprecated.cjs +3 -0
  286. package/__cjs/testing/core/types/deprecated.cjs.map +1 -0
  287. package/__cjs/testing/core/types/deprecated.d.cts +10 -0
  288. package/__cjs/testing/index.cjs +6 -13
  289. package/__cjs/testing/index.cjs.map +1 -1
  290. package/__cjs/testing/index.d.cts +3 -2
  291. package/__cjs/testing/react/MockedProvider.cjs +4 -4
  292. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  293. package/__cjs/testing/react/MockedProvider.d.cts +5 -6
  294. package/__cjs/utilities/DeepPartial.cjs.map +1 -0
  295. package/__cjs/utilities/DeepPartial.d.cts +15 -0
  296. package/__cjs/utilities/HKT.cjs +3 -0
  297. package/__cjs/utilities/HKT.cjs.map +1 -0
  298. package/__cjs/utilities/HKT.d.cts +35 -0
  299. package/__cjs/utilities/caching/index.cjs +1 -4
  300. package/__cjs/utilities/caching/index.cjs.map +1 -1
  301. package/__cjs/utilities/caching/index.d.cts +0 -1
  302. package/__cjs/utilities/caching/sizes.cjs +1 -1
  303. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  304. package/__cjs/utilities/caching/sizes.d.cts +6 -0
  305. package/__cjs/utilities/common/stripTypename.cjs +8 -2
  306. package/__cjs/utilities/common/stripTypename.cjs.map +1 -1
  307. package/__cjs/utilities/common/stripTypename.d.cts +7 -1
  308. package/__cjs/utilities/graphql/DocumentTransform.cjs +13 -9
  309. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  310. package/__cjs/utilities/graphql/DocumentTransform.d.cts +10 -6
  311. package/__cjs/utilities/graphql/isFormattedExecutionResult.cjs +9 -0
  312. package/__cjs/utilities/graphql/isFormattedExecutionResult.cjs.map +1 -0
  313. package/__cjs/utilities/graphql/isFormattedExecutionResult.d.cts +3 -0
  314. package/__cjs/utilities/graphql/operations.cjs +23 -2
  315. package/__cjs/utilities/graphql/operations.cjs.map +1 -1
  316. package/__cjs/utilities/graphql/operations.d.cts +21 -0
  317. package/__cjs/utilities/graphql/print.cjs +9 -1
  318. package/__cjs/utilities/graphql/print.cjs.map +1 -1
  319. package/__cjs/utilities/graphql/print.d.cts +8 -0
  320. package/__cjs/utilities/graphql/storeUtils.cjs +5 -206
  321. package/__cjs/utilities/graphql/storeUtils.cjs.map +1 -1
  322. package/__cjs/utilities/graphql/storeUtils.d.cts +14 -22
  323. package/__cjs/utilities/graphql/transform.cjs +8 -454
  324. package/__cjs/utilities/graphql/transform.cjs.map +1 -1
  325. package/__cjs/utilities/graphql/transform.d.cts +6 -24
  326. package/__cjs/utilities/index.cjs +4 -90
  327. package/__cjs/utilities/index.cjs.map +1 -1
  328. package/__cjs/utilities/index.d.cts +8 -38
  329. package/__cjs/utilities/internal/DeepMerger.cjs +67 -0
  330. package/__cjs/utilities/internal/DeepMerger.cjs.map +1 -0
  331. package/__cjs/utilities/internal/DeepMerger.d.cts +17 -0
  332. package/__cjs/utilities/internal/argumentsObjectFromField.cjs +18 -0
  333. package/__cjs/utilities/internal/argumentsObjectFromField.cjs.map +1 -0
  334. package/__cjs/utilities/internal/argumentsObjectFromField.d.cts +8 -0
  335. package/__cjs/utilities/internal/caches.cjs +76 -0
  336. package/__cjs/utilities/internal/caches.cjs.map +1 -0
  337. package/__cjs/utilities/internal/caches.d.cts +42 -0
  338. package/__cjs/utilities/internal/canUseDOM.cjs +11 -0
  339. package/__cjs/utilities/internal/canUseDOM.cjs.map +1 -0
  340. package/__cjs/utilities/internal/canUseDOM.d.cts +7 -0
  341. package/__cjs/utilities/internal/checkDocument.cjs +69 -0
  342. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -0
  343. package/__cjs/utilities/internal/checkDocument.d.cts +10 -0
  344. package/__cjs/utilities/internal/cloneDeep.cjs +45 -0
  345. package/__cjs/utilities/internal/cloneDeep.cjs.map +1 -0
  346. package/__cjs/utilities/internal/cloneDeep.d.cts +9 -0
  347. package/__cjs/utilities/internal/compact.cjs +26 -0
  348. package/__cjs/utilities/internal/compact.cjs.map +1 -0
  349. package/__cjs/utilities/internal/compact.d.cts +11 -0
  350. package/__cjs/utilities/internal/createFragmentMap.cjs +19 -0
  351. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -0
  352. package/__cjs/utilities/internal/createFragmentMap.d.cts +12 -0
  353. package/__cjs/utilities/internal/createFulfilledPromise.cjs +15 -0
  354. package/__cjs/utilities/internal/createFulfilledPromise.cjs.map +1 -0
  355. package/__cjs/utilities/internal/createFulfilledPromise.d.cts +8 -0
  356. package/__cjs/utilities/internal/createRejectedPromise.cjs +17 -0
  357. package/__cjs/utilities/internal/createRejectedPromise.cjs.map +1 -0
  358. package/__cjs/utilities/internal/createRejectedPromise.d.cts +8 -0
  359. package/__cjs/utilities/internal/dealias.cjs +21 -0
  360. package/__cjs/utilities/internal/dealias.cjs.map +1 -0
  361. package/__cjs/utilities/internal/dealias.d.cts +5 -0
  362. package/__cjs/utilities/internal/decoratePromise.cjs +33 -0
  363. package/__cjs/utilities/internal/decoratePromise.cjs.map +1 -0
  364. package/__cjs/utilities/internal/decoratePromise.d.cts +8 -0
  365. package/__cjs/utilities/internal/deepFreeze.cjs +39 -0
  366. package/__cjs/utilities/internal/deepFreeze.cjs.map +1 -0
  367. package/__cjs/utilities/internal/deepFreeze.d.cts +7 -0
  368. package/__cjs/utilities/internal/filterMap.cjs +31 -0
  369. package/__cjs/utilities/internal/filterMap.cjs.map +1 -0
  370. package/__cjs/utilities/internal/filterMap.d.cts +4 -0
  371. package/__cjs/utilities/internal/getDefaultValues.cjs +22 -0
  372. package/__cjs/utilities/internal/getDefaultValues.cjs.map +1 -0
  373. package/__cjs/utilities/internal/getDefaultValues.d.cts +8 -0
  374. package/__cjs/utilities/internal/getFragmentDefinition.cjs +17 -0
  375. package/__cjs/utilities/internal/getFragmentDefinition.cjs.map +1 -0
  376. package/__cjs/utilities/internal/getFragmentDefinition.d.cts +8 -0
  377. package/__cjs/utilities/internal/getFragmentDefinitions.cjs +12 -0
  378. package/__cjs/utilities/internal/getFragmentDefinitions.cjs.map +1 -0
  379. package/__cjs/utilities/internal/getFragmentDefinitions.d.cts +8 -0
  380. package/__cjs/utilities/internal/getFragmentFromSelection.cjs +27 -0
  381. package/__cjs/utilities/internal/getFragmentFromSelection.cjs.map +1 -0
  382. package/__cjs/utilities/internal/getFragmentFromSelection.d.cts +10 -0
  383. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +86 -0
  384. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -0
  385. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +29 -0
  386. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs +12 -0
  387. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs.map +1 -0
  388. package/__cjs/utilities/internal/getGraphQLErrorsFromResult.d.cts +10 -0
  389. package/__cjs/utilities/internal/getMainDefinition.cjs +38 -0
  390. package/__cjs/utilities/internal/getMainDefinition.cjs.map +1 -0
  391. package/__cjs/utilities/internal/getMainDefinition.d.cts +12 -0
  392. package/__cjs/utilities/internal/getMemoryInternals.cjs +16 -9
  393. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  394. package/__cjs/utilities/internal/getMemoryInternals.d.cts +15 -10
  395. package/__cjs/utilities/internal/getOperationDefinition.cjs +14 -0
  396. package/__cjs/utilities/internal/getOperationDefinition.cjs.map +1 -0
  397. package/__cjs/utilities/internal/getOperationDefinition.d.cts +8 -0
  398. package/__cjs/utilities/internal/getOperationName.cjs +12 -0
  399. package/__cjs/utilities/internal/getOperationName.cjs.map +1 -0
  400. package/__cjs/utilities/internal/getOperationName.d.cts +8 -0
  401. package/__cjs/utilities/internal/getQueryDefinition.cjs +16 -0
  402. package/__cjs/utilities/internal/getQueryDefinition.cjs.map +1 -0
  403. package/__cjs/utilities/internal/getQueryDefinition.d.cts +8 -0
  404. package/__cjs/utilities/internal/getStoreKeyName.cjs +73 -0
  405. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -0
  406. package/__cjs/utilities/internal/getStoreKeyName.d.cts +16 -0
  407. package/__cjs/utilities/internal/globals/global.cjs.map +1 -0
  408. package/__cjs/utilities/internal/globals/index.cjs.map +1 -0
  409. package/__cjs/utilities/internal/globals/maybe.cjs.map +1 -0
  410. package/__cjs/utilities/internal/graphQLResultHasError.cjs +12 -0
  411. package/__cjs/utilities/internal/graphQLResultHasError.cjs.map +1 -0
  412. package/__cjs/utilities/internal/graphQLResultHasError.d.cts +8 -0
  413. package/__cjs/utilities/internal/hasDirectives.cjs +24 -0
  414. package/__cjs/utilities/internal/hasDirectives.cjs.map +1 -0
  415. package/__cjs/utilities/internal/hasDirectives.d.cts +8 -0
  416. package/__cjs/utilities/internal/hasForcedResolvers.cjs +23 -0
  417. package/__cjs/utilities/internal/hasForcedResolvers.cjs.map +1 -0
  418. package/__cjs/utilities/internal/hasForcedResolvers.d.cts +3 -0
  419. package/__cjs/utilities/internal/index.cjs +97 -5
  420. package/__cjs/utilities/internal/index.cjs.map +1 -1
  421. package/__cjs/utilities/internal/index.d.cts +62 -2
  422. package/__cjs/utilities/internal/isArray.cjs +12 -0
  423. package/__cjs/utilities/internal/isArray.cjs.map +1 -0
  424. package/__cjs/utilities/internal/isArray.d.cts +9 -0
  425. package/__cjs/utilities/internal/isDocumentNode.cjs +15 -0
  426. package/__cjs/utilities/internal/isDocumentNode.cjs.map +1 -0
  427. package/__cjs/utilities/internal/isDocumentNode.d.cts +8 -0
  428. package/__cjs/utilities/internal/isField.cjs +12 -0
  429. package/__cjs/utilities/internal/isField.cjs.map +1 -0
  430. package/__cjs/utilities/internal/isField.d.cts +8 -0
  431. package/__cjs/utilities/internal/isNonEmptyArray.cjs +12 -0
  432. package/__cjs/utilities/internal/isNonEmptyArray.cjs.map +1 -0
  433. package/__cjs/utilities/internal/isNonEmptyArray.d.cts +7 -0
  434. package/__cjs/utilities/internal/isNonNullObject.cjs +12 -0
  435. package/__cjs/utilities/internal/isNonNullObject.cjs.map +1 -0
  436. package/__cjs/utilities/internal/isNonNullObject.d.cts +7 -0
  437. package/__cjs/utilities/internal/isPlainObject.cjs +15 -0
  438. package/__cjs/utilities/internal/isPlainObject.cjs.map +1 -0
  439. package/__cjs/utilities/internal/isPlainObject.d.cts +7 -0
  440. package/__cjs/utilities/internal/makeReference.cjs +12 -0
  441. package/__cjs/utilities/internal/makeReference.cjs.map +1 -0
  442. package/__cjs/utilities/internal/makeReference.d.cts +8 -0
  443. package/__cjs/utilities/internal/makeUniqueId.cjs +18 -0
  444. package/__cjs/utilities/internal/makeUniqueId.cjs.map +1 -0
  445. package/__cjs/utilities/internal/makeUniqueId.d.cts +10 -0
  446. package/__cjs/utilities/internal/maybeDeepFreeze.cjs +17 -0
  447. package/__cjs/utilities/internal/maybeDeepFreeze.cjs.map +1 -0
  448. package/__cjs/utilities/internal/maybeDeepFreeze.d.cts +7 -0
  449. package/__cjs/utilities/internal/mergeDeep.cjs +26 -0
  450. package/__cjs/utilities/internal/mergeDeep.cjs.map +1 -0
  451. package/__cjs/utilities/internal/mergeDeep.d.cts +8 -0
  452. package/__cjs/utilities/internal/mergeDeepArray.cjs +27 -0
  453. package/__cjs/utilities/internal/mergeDeepArray.cjs.map +1 -0
  454. package/__cjs/utilities/internal/mergeDeepArray.d.cts +7 -0
  455. package/__cjs/utilities/internal/mergeOptions.cjs +18 -0
  456. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -0
  457. package/__cjs/utilities/internal/mergeOptions.d.cts +10 -0
  458. package/__cjs/utilities/internal/omitDeep.cjs +48 -0
  459. package/__cjs/utilities/internal/omitDeep.cjs.map +1 -0
  460. package/__cjs/utilities/internal/omitDeep.d.cts +8 -0
  461. package/__cjs/utilities/internal/preventUnhandledRejection.cjs.map +1 -0
  462. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs +306 -0
  463. package/__cjs/utilities/internal/removeDirectivesFromDocument.cjs.map +1 -0
  464. package/__cjs/utilities/internal/removeDirectivesFromDocument.d.cts +14 -0
  465. package/__cjs/utilities/internal/resultKeyNameFromField.cjs +12 -0
  466. package/__cjs/utilities/internal/resultKeyNameFromField.cjs.map +1 -0
  467. package/__cjs/utilities/internal/resultKeyNameFromField.d.cts +8 -0
  468. package/__cjs/utilities/internal/shouldInclude.cjs +50 -0
  469. package/__cjs/utilities/internal/shouldInclude.cjs.map +1 -0
  470. package/__cjs/utilities/internal/shouldInclude.d.cts +8 -0
  471. package/__cjs/utilities/internal/storeKeyNameFromField.cjs +29 -0
  472. package/__cjs/utilities/internal/storeKeyNameFromField.cjs.map +1 -0
  473. package/__cjs/utilities/internal/storeKeyNameFromField.d.cts +8 -0
  474. package/__cjs/utilities/internal/stringifyForDisplay.cjs +18 -0
  475. package/__cjs/utilities/internal/stringifyForDisplay.cjs.map +1 -0
  476. package/__cjs/utilities/internal/stringifyForDisplay.d.cts +7 -0
  477. package/__cjs/utilities/internal/toQueryResult.cjs +5 -0
  478. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  479. package/__cjs/utilities/internal/toQueryResult.d.cts +5 -0
  480. package/__cjs/utilities/internal/types/ApplyHKT.cjs +3 -0
  481. package/__cjs/utilities/internal/types/ApplyHKT.cjs.map +1 -0
  482. package/__cjs/utilities/internal/types/ApplyHKT.d.cts +13 -0
  483. package/__cjs/utilities/internal/types/ApplyHKTImplementationWithDefault.cjs +3 -0
  484. package/__cjs/utilities/internal/types/ApplyHKTImplementationWithDefault.cjs.map +1 -0
  485. package/__cjs/utilities/internal/types/ApplyHKTImplementationWithDefault.d.cts +11 -0
  486. package/__cjs/utilities/internal/types/DecoratedPromise.cjs +3 -0
  487. package/__cjs/utilities/internal/types/DecoratedPromise.cjs.map +1 -0
  488. package/__cjs/utilities/internal/types/DecoratedPromise.d.cts +10 -0
  489. package/__cjs/utilities/internal/types/DeepOmit.d.cts +15 -0
  490. package/__cjs/utilities/internal/types/FragmentMap.cjs +3 -0
  491. package/__cjs/utilities/internal/types/FragmentMap.cjs.map +1 -0
  492. package/__cjs/utilities/internal/types/FragmentMap.d.cts +12 -0
  493. package/__cjs/utilities/internal/types/FragmentMapFunction.cjs +3 -0
  494. package/__cjs/utilities/internal/types/FragmentMapFunction.cjs.map +1 -0
  495. package/__cjs/utilities/internal/types/FragmentMapFunction.d.cts +8 -0
  496. package/__cjs/utilities/internal/types/FulfilledPromise.cjs +3 -0
  497. package/__cjs/utilities/internal/types/FulfilledPromise.cjs.map +1 -0
  498. package/__cjs/utilities/internal/types/FulfilledPromise.d.cts +10 -0
  499. package/__cjs/utilities/internal/types/IsAny.cjs +3 -0
  500. package/__cjs/utilities/internal/types/IsAny.cjs.map +1 -0
  501. package/__cjs/utilities/internal/types/IsAny.d.cts +7 -0
  502. package/__cjs/utilities/internal/types/NoInfer.d.cts +29 -0
  503. package/__cjs/utilities/internal/types/PendingPromise.cjs +3 -0
  504. package/__cjs/utilities/internal/types/PendingPromise.cjs.map +1 -0
  505. package/__cjs/utilities/internal/types/PendingPromise.d.cts +9 -0
  506. package/__cjs/utilities/internal/types/Prettify.d.cts +9 -0
  507. package/__cjs/utilities/internal/types/Primitive.d.cts +7 -0
  508. package/__cjs/utilities/internal/types/RejectedPromise.cjs +3 -0
  509. package/__cjs/utilities/internal/types/RejectedPromise.cjs.map +1 -0
  510. package/__cjs/utilities/internal/types/RejectedPromise.d.cts +10 -0
  511. package/__cjs/utilities/internal/types/RemoveIndexSignature.d.cts +9 -0
  512. package/__cjs/utilities/internal/types/TupleToIntersection.cjs +3 -0
  513. package/__cjs/utilities/internal/types/TupleToIntersection.cjs.map +1 -0
  514. package/__cjs/utilities/internal/types/TupleToIntersection.d.cts +2 -0
  515. package/__cjs/utilities/internal/types/VariablesOption.cjs +3 -0
  516. package/__cjs/utilities/internal/types/VariablesOption.cjs.map +1 -0
  517. package/__cjs/utilities/internal/types/VariablesOption.d.cts +30 -0
  518. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs +44 -0
  519. package/__cjs/utilities/internal/valueToObjectRepresentation.cjs.map +1 -0
  520. package/__cjs/utilities/internal/valueToObjectRepresentation.d.cts +8 -0
  521. package/__cjs/utilities/invariant/index.cjs +3 -2
  522. package/__cjs/utilities/invariant/index.cjs.map +1 -1
  523. package/__cjs/utilities/policies/pagination.cjs +26 -9
  524. package/__cjs/utilities/policies/pagination.cjs.map +1 -1
  525. package/__cjs/utilities/policies/pagination.d.cts +23 -0
  526. package/__cjs/utilities/shared/canonicalStringify.cjs +91 -0
  527. package/__cjs/utilities/shared/canonicalStringify.cjs.map +1 -0
  528. package/__cjs/utilities/subscriptions/relay/index.cjs +4 -4
  529. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  530. package/__cjs/version.cjs +3 -2
  531. package/__cjs/version.cjs.map +1 -1
  532. package/__cjs/version.d.cts +1 -0
  533. package/cache/core/cache.d.ts +11 -8
  534. package/cache/core/cache.js +11 -9
  535. package/cache/core/cache.js.map +1 -1
  536. package/cache/index.d.ts +1 -1
  537. package/cache/index.js +1 -1
  538. package/cache/index.js.map +1 -1
  539. package/cache/inmemory/entityStore.js +5 -4
  540. package/cache/inmemory/entityStore.js.map +1 -1
  541. package/cache/inmemory/fragmentRegistry.js +2 -1
  542. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  543. package/cache/inmemory/helpers.d.ts +3 -3
  544. package/cache/inmemory/helpers.js +2 -2
  545. package/cache/inmemory/helpers.js.map +1 -1
  546. package/cache/inmemory/inMemoryCache.d.ts +9 -7
  547. package/cache/inmemory/inMemoryCache.js.map +1 -1
  548. package/cache/inmemory/key-extractor.js +3 -3
  549. package/cache/inmemory/key-extractor.js.map +1 -1
  550. package/cache/inmemory/policies.d.ts +2 -1
  551. package/cache/inmemory/policies.js +7 -6
  552. package/cache/inmemory/policies.js.map +1 -1
  553. package/cache/inmemory/readFromStore.js +5 -4
  554. package/cache/inmemory/readFromStore.js.map +1 -1
  555. package/cache/inmemory/writeToStore.d.ts +2 -1
  556. package/cache/inmemory/writeToStore.js +34 -6
  557. package/cache/inmemory/writeToStore.js.map +1 -1
  558. package/core/ApolloClient.d.ts +29 -55
  559. package/core/ApolloClient.js +52 -77
  560. package/core/ApolloClient.js.map +1 -1
  561. package/core/ObservableQuery.d.ts +290 -60
  562. package/core/ObservableQuery.js +766 -466
  563. package/core/ObservableQuery.js.map +1 -1
  564. package/core/QueryInfo.d.ts +55 -30
  565. package/core/QueryInfo.js +267 -178
  566. package/core/QueryInfo.js.map +1 -1
  567. package/core/QueryManager.d.ts +52 -62
  568. package/core/QueryManager.js +480 -573
  569. package/core/QueryManager.js.map +1 -1
  570. package/core/equalByQuery.js +1 -1
  571. package/core/equalByQuery.js.map +1 -1
  572. package/core/index.d.ts +10 -12
  573. package/core/index.js +5 -5
  574. package/core/index.js.map +1 -1
  575. package/core/networkStatus.d.ts +7 -1
  576. package/core/networkStatus.js +7 -1
  577. package/core/networkStatus.js.map +1 -1
  578. package/core/types.d.ts +137 -25
  579. package/core/watchQueryOptions.d.ts +16 -101
  580. package/dev/loadErrorMessageHandler.js +1 -1
  581. package/dev/loadErrorMessageHandler.js.map +1 -1
  582. package/dev/setErrorMessageHandler.js +1 -1
  583. package/dev/setErrorMessageHandler.js.map +1 -1
  584. package/errors/CombinedGraphQLErrors.d.ts +21 -2
  585. package/errors/CombinedGraphQLErrors.js +28 -13
  586. package/errors/CombinedGraphQLErrors.js.map +1 -1
  587. package/errors/CombinedProtocolErrors.d.ts +9 -0
  588. package/errors/CombinedProtocolErrors.js +13 -6
  589. package/errors/CombinedProtocolErrors.js.map +1 -1
  590. package/errors/LinkError.d.ts +18 -0
  591. package/errors/LinkError.js +20 -0
  592. package/errors/LinkError.js.map +1 -0
  593. package/errors/LocalStateError.d.ts +20 -0
  594. package/errors/LocalStateError.js +23 -0
  595. package/errors/LocalStateError.js.map +1 -0
  596. package/errors/ServerError.d.ts +10 -8
  597. package/errors/ServerError.js +9 -4
  598. package/errors/ServerError.js.map +1 -1
  599. package/errors/ServerParseError.d.ts +2 -0
  600. package/errors/ServerParseError.js +6 -0
  601. package/errors/ServerParseError.js.map +1 -1
  602. package/errors/UnconventionalError.d.ts +2 -0
  603. package/errors/UnconventionalError.js +6 -0
  604. package/errors/UnconventionalError.js.map +1 -1
  605. package/errors/index.d.ts +5 -8
  606. package/errors/index.js +6 -10
  607. package/errors/index.js.map +1 -1
  608. package/errors/isErrorLike.d.ts +3 -0
  609. package/errors/isErrorLike.js +9 -0
  610. package/errors/isErrorLike.js.map +1 -0
  611. package/errors/utils.d.ts +3 -0
  612. package/errors/utils.js +14 -0
  613. package/errors/utils.js.map +1 -0
  614. package/incremental/handlers/defer20220824.d.ts +55 -0
  615. package/incremental/handlers/defer20220824.js +97 -0
  616. package/incremental/handlers/defer20220824.js.map +1 -0
  617. package/incremental/handlers/notImplemented.d.ts +9 -0
  618. package/incremental/handlers/notImplemented.js +15 -0
  619. package/incremental/handlers/notImplemented.js.map +1 -0
  620. package/incremental/index.d.ts +4 -0
  621. package/incremental/index.js +3 -0
  622. package/incremental/index.js.map +1 -0
  623. package/incremental/types.d.ts +24 -0
  624. package/incremental/types.js +2 -0
  625. package/incremental/types.js.map +1 -0
  626. package/invariantErrorCodes.js +276 -176
  627. package/legacyEntryPoints/incremental/incremental.cjs +1 -0
  628. package/legacyEntryPoints/incremental/incremental.d.cts +1 -0
  629. package/legacyEntryPoints/incremental/index.d.ts +1 -0
  630. package/legacyEntryPoints/incremental/index.js +1 -0
  631. package/legacyEntryPoints/link/client-awareness/client-awareness.cjs +1 -0
  632. package/legacyEntryPoints/link/client-awareness/client-awareness.d.cts +1 -0
  633. package/legacyEntryPoints/link/client-awareness/index.d.ts +1 -0
  634. package/legacyEntryPoints/link/client-awareness/index.js +1 -0
  635. package/legacyEntryPoints/link/index.d.ts +1 -0
  636. package/legacyEntryPoints/link/index.js +1 -0
  637. package/legacyEntryPoints/link/link.cjs +1 -0
  638. package/legacyEntryPoints/link/link.d.cts +1 -0
  639. package/legacyEntryPoints/local-state/index.d.ts +1 -0
  640. package/legacyEntryPoints/local-state/index.js +1 -0
  641. package/legacyEntryPoints/local-state/local-state.cjs +1 -0
  642. package/legacyEntryPoints/local-state/local-state.d.cts +1 -0
  643. package/legacyEntryPoints/utilities/internal/globals/globals.cjs +1 -0
  644. package/legacyEntryPoints/utilities/internal/globals/globals.d.cts +1 -0
  645. package/legacyEntryPoints/utilities/internal/globals/index.d.ts +1 -0
  646. package/legacyEntryPoints/utilities/internal/globals/index.js +1 -0
  647. package/link/batch/batchLink.d.ts +2 -2
  648. package/link/batch/batchLink.js +1 -1
  649. package/link/batch/batchLink.js.map +1 -1
  650. package/link/batch/batching.d.ts +1 -1
  651. package/link/batch/batching.js.map +1 -1
  652. package/link/batch-http/batchHttpLink.d.ts +9 -4
  653. package/link/batch-http/batchHttpLink.js +15 -62
  654. package/link/batch-http/batchHttpLink.js.map +1 -1
  655. package/link/batch-http/index.d.ts +1 -1
  656. package/link/batch-http/index.js +1 -1
  657. package/link/batch-http/index.js.map +1 -1
  658. package/link/client-awareness/ClientAwarenessLink.d.ts +62 -0
  659. package/link/client-awareness/ClientAwarenessLink.js +41 -0
  660. package/link/client-awareness/ClientAwarenessLink.js.map +1 -0
  661. package/link/client-awareness/index.d.ts +2 -0
  662. package/link/client-awareness/index.js +2 -0
  663. package/link/client-awareness/index.js.map +1 -0
  664. package/link/context/index.d.ts +11 -5
  665. package/link/context/index.js +35 -26
  666. package/link/context/index.js.map +1 -1
  667. package/link/core/ApolloLink.d.ts +17 -11
  668. package/link/core/ApolloLink.js +19 -13
  669. package/link/core/ApolloLink.js.map +1 -1
  670. package/link/core/types.d.ts +14 -36
  671. package/link/error/index.d.ts +17 -16
  672. package/link/error/index.js +69 -66
  673. package/link/error/index.js.map +1 -1
  674. package/link/http/BaseHttpLink.d.ts +6 -0
  675. package/link/http/BaseHttpLink.js +107 -0
  676. package/link/http/BaseHttpLink.js.map +1 -0
  677. package/link/http/HttpLink.d.ts +145 -4
  678. package/link/http/HttpLink.js +11 -5
  679. package/link/http/HttpLink.js.map +1 -1
  680. package/link/http/checkFetcher.js +1 -1
  681. package/link/http/index.d.ts +2 -3
  682. package/link/http/index.js +2 -2
  683. package/link/http/index.js.map +1 -1
  684. package/link/http/parseAndCheckHttpResponse.d.ts +1 -3
  685. package/link/http/parseAndCheckHttpResponse.js +74 -112
  686. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  687. package/link/http/rewriteURIForGET.d.ts +2 -2
  688. package/link/http/rewriteURIForGET.js.map +1 -1
  689. package/link/http/selectHttpOptionsAndBody.d.ts +8 -83
  690. package/link/http/selectHttpOptionsAndBody.js +7 -6
  691. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  692. package/link/http/selectURI.d.ts +1 -1
  693. package/link/http/selectURI.js.map +1 -1
  694. package/link/http/serializeFetchParameter.js +1 -1
  695. package/link/index.d.ts +8 -0
  696. package/link/index.js +7 -0
  697. package/link/index.js.map +1 -0
  698. package/link/persisted-queries/index.d.ts +21 -21
  699. package/link/persisted-queries/index.js +159 -140
  700. package/link/persisted-queries/index.js.map +1 -1
  701. package/link/remove-typename/index.d.ts +1 -1
  702. package/link/remove-typename/index.js +1 -1
  703. package/link/remove-typename/index.js.map +1 -1
  704. package/link/remove-typename/removeTypenameFromVariables.d.ts +9 -10
  705. package/link/remove-typename/removeTypenameFromVariables.js +35 -24
  706. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  707. package/link/retry/delayFunction.d.ts +1 -1
  708. package/link/retry/delayFunction.js.map +1 -1
  709. package/link/retry/retryFunction.d.ts +1 -1
  710. package/link/retry/retryFunction.js.map +1 -1
  711. package/link/retry/retryLink.d.ts +2 -2
  712. package/link/retry/retryLink.js +1 -1
  713. package/link/retry/retryLink.js.map +1 -1
  714. package/link/schema/index.d.ts +2 -2
  715. package/link/schema/index.js +1 -1
  716. package/link/schema/index.js.map +1 -1
  717. package/link/subscriptions/index.d.ts +2 -2
  718. package/link/subscriptions/index.js +2 -2
  719. package/link/subscriptions/index.js.map +1 -1
  720. package/link/utils/createOperation.d.ts +2 -2
  721. package/link/utils/createOperation.js +5 -1
  722. package/link/utils/createOperation.js.map +1 -1
  723. package/link/utils/transformOperation.d.ts +1 -1
  724. package/link/utils/transformOperation.js +2 -2
  725. package/link/utils/transformOperation.js.map +1 -1
  726. package/link/utils/validateOperation.d.ts +1 -1
  727. package/link/utils/validateOperation.js +1 -1
  728. package/link/utils/validateOperation.js.map +1 -1
  729. package/link/ws/index.d.ts +2 -2
  730. package/link/ws/index.js +1 -1
  731. package/link/ws/index.js.map +1 -1
  732. package/local-state/LocalState.d.ts +88 -0
  733. package/local-state/LocalState.js +519 -0
  734. package/local-state/LocalState.js.map +1 -0
  735. package/local-state/index.d.ts +2 -0
  736. package/local-state/index.js +2 -0
  737. package/local-state/index.js.map +1 -0
  738. package/masking/GraphQLCodegenDataMasking.d.ts +79 -0
  739. package/masking/GraphQLCodegenDataMasking.js +2 -0
  740. package/masking/GraphQLCodegenDataMasking.js.map +1 -0
  741. package/masking/index.d.ts +1 -0
  742. package/masking/index.js.map +1 -1
  743. package/masking/internal/types.d.ts +1 -2
  744. package/masking/maskDefinition.d.ts +1 -1
  745. package/masking/maskDefinition.js +4 -4
  746. package/masking/maskDefinition.js.map +1 -1
  747. package/masking/maskFragment.d.ts +5 -1
  748. package/masking/maskFragment.js +8 -12
  749. package/masking/maskFragment.js.map +1 -1
  750. package/masking/maskOperation.d.ts +5 -1
  751. package/masking/maskOperation.js +7 -11
  752. package/masking/maskOperation.js.map +1 -1
  753. package/masking/types.d.ts +12 -26
  754. package/masking/utils.d.ts +7 -2
  755. package/masking/utils.js +31 -7
  756. package/masking/utils.js.map +1 -1
  757. package/package.json +38 -185
  758. package/react/context/ApolloConsumer.js +1 -1
  759. package/react/context/ApolloContext.js +1 -1
  760. package/react/context/ApolloProvider.js +1 -1
  761. package/react/hooks/internal/__use.js +6 -6
  762. package/react/hooks/internal/__use.js.map +1 -1
  763. package/react/hooks/internal/useIsomorphicLayoutEffect.js +1 -1
  764. package/react/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -1
  765. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +3 -0
  766. package/react/hooks/internal/validateSuspenseHookOptions.js +22 -0
  767. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -0
  768. package/react/hooks/internal/wrapHook.d.ts +42 -38
  769. package/react/hooks/internal/wrapHook.js +36 -34
  770. package/react/hooks/internal/wrapHook.js.map +1 -1
  771. package/react/hooks/useApolloClient.js +15 -2
  772. package/react/hooks/useApolloClient.js.map +1 -1
  773. package/react/hooks/useBackgroundQuery.d.ts +59 -28
  774. package/react/hooks/useBackgroundQuery.js +9 -8
  775. package/react/hooks/useBackgroundQuery.js.map +1 -1
  776. package/react/hooks/useFragment.d.ts +2 -1
  777. package/react/hooks/useFragment.js +12 -11
  778. package/react/hooks/useFragment.js.map +1 -1
  779. package/react/hooks/useLazyQuery.d.ts +55 -80
  780. package/react/hooks/useLazyQuery.js +30 -28
  781. package/react/hooks/useLazyQuery.js.map +1 -1
  782. package/react/hooks/useLoadableQuery.d.ts +8 -10
  783. package/react/hooks/useLoadableQuery.js +232 -53
  784. package/react/hooks/useLoadableQuery.js.map +1 -1
  785. package/react/hooks/useMutation.d.ts +47 -14
  786. package/react/hooks/useMutation.js +192 -82
  787. package/react/hooks/useMutation.js.map +1 -1
  788. package/react/hooks/useQuery.d.ts +19 -71
  789. package/react/hooks/useQuery.js +253 -94
  790. package/react/hooks/useQuery.js.map +1 -1
  791. package/react/hooks/useQueryRefHandlers.d.ts +2 -2
  792. package/react/hooks/useQueryRefHandlers.js +64 -23
  793. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  794. package/react/hooks/useReadQuery.d.ts +4 -11
  795. package/react/hooks/useReadQuery.js +4 -2
  796. package/react/hooks/useReadQuery.js.map +1 -1
  797. package/react/hooks/useSubscription.d.ts +6 -8
  798. package/react/hooks/useSubscription.js +16 -21
  799. package/react/hooks/useSubscription.js.map +1 -1
  800. package/react/hooks/useSuspenseFragment.d.ts +1 -2
  801. package/react/hooks/useSuspenseFragment.js +1 -0
  802. package/react/hooks/useSuspenseFragment.js.map +1 -1
  803. package/react/hooks/useSuspenseQuery.d.ts +19 -36
  804. package/react/hooks/useSuspenseQuery.js +63 -54
  805. package/react/hooks/useSuspenseQuery.js.map +1 -1
  806. package/react/hooks/useSyncExternalStore.js +21 -2
  807. package/react/hooks/useSyncExternalStore.js.map +1 -1
  808. package/react/index.d.ts +2 -1
  809. package/react/index.js +1 -0
  810. package/react/index.js.map +1 -1
  811. package/react/internal/cache/FragmentReference.d.ts +2 -2
  812. package/react/internal/cache/FragmentReference.js +6 -3
  813. package/react/internal/cache/FragmentReference.js.map +1 -1
  814. package/react/internal/cache/QueryReference.d.ts +48 -108
  815. package/react/internal/cache/QueryReference.js +24 -35
  816. package/react/internal/cache/QueryReference.js.map +1 -1
  817. package/react/internal/cache/SuspenseCache.d.ts +3 -3
  818. package/react/internal/cache/SuspenseCache.js.map +1 -1
  819. package/react/internal/index.d.ts +2 -2
  820. package/react/internal/index.js.map +1 -1
  821. package/react/internal/types.d.ts +3 -45
  822. package/react/query-preloader/createQueryPreloader.d.ts +46 -38
  823. package/react/query-preloader/createQueryPreloader.js +9 -3
  824. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  825. package/react/ssr/prerenderStatic.js +9 -2
  826. package/react/ssr/prerenderStatic.js.map +1 -1
  827. package/react/ssr/useSSRQuery.js +12 -2
  828. package/react/ssr/useSSRQuery.js.map +1 -1
  829. package/react/types/deprecated.d.ts +3 -3
  830. package/react/types/types.documentation.d.ts +12 -0
  831. package/testing/core/mocking/mockLink.d.ts +31 -24
  832. package/testing/core/mocking/mockLink.js +15 -15
  833. package/testing/core/mocking/mockLink.js.map +1 -1
  834. package/testing/core/mocking/mockSubscriptionLink.d.ts +9 -8
  835. package/testing/core/mocking/mockSubscriptionLink.js +1 -4
  836. package/testing/core/mocking/mockSubscriptionLink.js.map +1 -1
  837. package/testing/core/types/deprecated.d.ts +10 -0
  838. package/testing/core/types/deprecated.js +2 -0
  839. package/testing/core/types/deprecated.js.map +1 -0
  840. package/testing/index.d.ts +3 -2
  841. package/testing/index.js +2 -1
  842. package/testing/index.js.map +1 -1
  843. package/testing/react/MockedProvider.d.ts +5 -6
  844. package/testing/react/MockedProvider.js +3 -3
  845. package/testing/react/MockedProvider.js.map +1 -1
  846. package/utilities/DeepPartial.d.ts +15 -0
  847. package/utilities/DeepPartial.js.map +1 -0
  848. package/utilities/HKT.d.ts +35 -0
  849. package/utilities/HKT.js +2 -0
  850. package/utilities/HKT.js.map +1 -0
  851. package/utilities/caching/index.d.ts +0 -1
  852. package/utilities/caching/index.js +0 -1
  853. package/utilities/caching/index.js.map +1 -1
  854. package/utilities/caching/sizes.d.ts +6 -0
  855. package/utilities/caching/sizes.js +1 -1
  856. package/utilities/caching/sizes.js.map +1 -1
  857. package/utilities/common/stripTypename.d.ts +7 -1
  858. package/utilities/common/stripTypename.js +7 -1
  859. package/utilities/common/stripTypename.js.map +1 -1
  860. package/utilities/graphql/DocumentTransform.d.ts +10 -6
  861. package/utilities/graphql/DocumentTransform.js +12 -8
  862. package/utilities/graphql/DocumentTransform.js.map +1 -1
  863. package/utilities/graphql/isFormattedExecutionResult.d.ts +3 -0
  864. package/utilities/graphql/isFormattedExecutionResult.js +6 -0
  865. package/utilities/graphql/isFormattedExecutionResult.js.map +1 -0
  866. package/utilities/graphql/operations.d.ts +21 -0
  867. package/utilities/graphql/operations.js +22 -1
  868. package/utilities/graphql/operations.js.map +1 -1
  869. package/utilities/graphql/print.d.ts +8 -0
  870. package/utilities/graphql/print.js +10 -2
  871. package/utilities/graphql/print.js.map +1 -1
  872. package/utilities/graphql/storeUtils.d.ts +14 -22
  873. package/utilities/graphql/storeUtils.js +5 -196
  874. package/utilities/graphql/storeUtils.js.map +1 -1
  875. package/utilities/graphql/transform.d.ts +6 -24
  876. package/utilities/graphql/transform.js +7 -443
  877. package/utilities/graphql/transform.js.map +1 -1
  878. package/utilities/index.d.ts +8 -38
  879. package/utilities/index.js +5 -23
  880. package/utilities/index.js.map +1 -1
  881. package/utilities/internal/DeepMerger.d.ts +17 -0
  882. package/utilities/internal/DeepMerger.js +63 -0
  883. package/utilities/internal/DeepMerger.js.map +1 -0
  884. package/utilities/internal/argumentsObjectFromField.d.ts +8 -0
  885. package/utilities/internal/argumentsObjectFromField.js +15 -0
  886. package/utilities/internal/argumentsObjectFromField.js.map +1 -0
  887. package/utilities/internal/caches.d.ts +42 -0
  888. package/utilities/internal/caches.js +73 -0
  889. package/utilities/internal/caches.js.map +1 -0
  890. package/utilities/internal/canUseDOM.d.ts +7 -0
  891. package/utilities/internal/canUseDOM.js +8 -0
  892. package/utilities/internal/canUseDOM.js.map +1 -0
  893. package/utilities/internal/checkDocument.d.ts +10 -0
  894. package/utilities/internal/checkDocument.js +66 -0
  895. package/utilities/internal/checkDocument.js.map +1 -0
  896. package/utilities/internal/cloneDeep.d.ts +9 -0
  897. package/utilities/internal/cloneDeep.js +42 -0
  898. package/utilities/internal/cloneDeep.js.map +1 -0
  899. package/utilities/internal/compact.d.ts +11 -0
  900. package/utilities/internal/compact.js +23 -0
  901. package/utilities/internal/compact.js.map +1 -0
  902. package/utilities/internal/createFragmentMap.d.ts +12 -0
  903. package/utilities/internal/createFragmentMap.js +16 -0
  904. package/utilities/internal/createFragmentMap.js.map +1 -0
  905. package/utilities/internal/createFulfilledPromise.d.ts +8 -0
  906. package/utilities/internal/createFulfilledPromise.js +12 -0
  907. package/utilities/internal/createFulfilledPromise.js.map +1 -0
  908. package/utilities/internal/createRejectedPromise.d.ts +8 -0
  909. package/utilities/internal/createRejectedPromise.js +14 -0
  910. package/utilities/internal/createRejectedPromise.js.map +1 -0
  911. package/utilities/internal/dealias.d.ts +5 -0
  912. package/utilities/internal/dealias.js +18 -0
  913. package/utilities/internal/dealias.js.map +1 -0
  914. package/utilities/internal/decoratePromise.d.ts +8 -0
  915. package/utilities/internal/decoratePromise.js +30 -0
  916. package/utilities/internal/decoratePromise.js.map +1 -0
  917. package/utilities/internal/deepFreeze.d.ts +7 -0
  918. package/utilities/internal/deepFreeze.js +36 -0
  919. package/utilities/internal/deepFreeze.js.map +1 -0
  920. package/utilities/internal/filterMap.d.ts +4 -0
  921. package/utilities/internal/filterMap.js +28 -0
  922. package/utilities/internal/filterMap.js.map +1 -0
  923. package/utilities/internal/getDefaultValues.d.ts +8 -0
  924. package/utilities/internal/getDefaultValues.js +19 -0
  925. package/utilities/internal/getDefaultValues.js.map +1 -0
  926. package/utilities/internal/getFragmentDefinition.d.ts +8 -0
  927. package/utilities/internal/getFragmentDefinition.js +14 -0
  928. package/utilities/internal/getFragmentDefinition.js.map +1 -0
  929. package/utilities/internal/getFragmentDefinitions.d.ts +8 -0
  930. package/utilities/internal/getFragmentDefinitions.js +9 -0
  931. package/utilities/internal/getFragmentDefinitions.js.map +1 -0
  932. package/utilities/internal/getFragmentFromSelection.d.ts +10 -0
  933. package/utilities/internal/getFragmentFromSelection.js +24 -0
  934. package/utilities/internal/getFragmentFromSelection.js.map +1 -0
  935. package/utilities/internal/getFragmentQueryDocument.d.ts +29 -0
  936. package/utilities/internal/getFragmentQueryDocument.js +83 -0
  937. package/utilities/internal/getFragmentQueryDocument.js.map +1 -0
  938. package/utilities/internal/getGraphQLErrorsFromResult.d.ts +10 -0
  939. package/utilities/internal/getGraphQLErrorsFromResult.js +9 -0
  940. package/utilities/internal/getGraphQLErrorsFromResult.js.map +1 -0
  941. package/utilities/internal/getMainDefinition.d.ts +12 -0
  942. package/utilities/internal/getMainDefinition.js +35 -0
  943. package/utilities/internal/getMainDefinition.js.map +1 -0
  944. package/utilities/internal/getMemoryInternals.d.ts +15 -10
  945. package/utilities/internal/getMemoryInternals.js +16 -9
  946. package/utilities/internal/getMemoryInternals.js.map +1 -1
  947. package/utilities/internal/getOperationDefinition.d.ts +8 -0
  948. package/utilities/internal/getOperationDefinition.js +11 -0
  949. package/utilities/internal/getOperationDefinition.js.map +1 -0
  950. package/utilities/internal/getOperationName.d.ts +8 -0
  951. package/utilities/internal/getOperationName.js +9 -0
  952. package/utilities/internal/getOperationName.js.map +1 -0
  953. package/utilities/internal/getQueryDefinition.d.ts +8 -0
  954. package/utilities/internal/getQueryDefinition.js +13 -0
  955. package/utilities/internal/getQueryDefinition.js.map +1 -0
  956. package/utilities/internal/getStoreKeyName.d.ts +16 -0
  957. package/utilities/internal/getStoreKeyName.js +70 -0
  958. package/utilities/internal/getStoreKeyName.js.map +1 -0
  959. package/utilities/internal/globals/global.js +14 -0
  960. package/utilities/internal/globals/global.js.map +1 -0
  961. package/utilities/internal/globals/index.js.map +1 -0
  962. package/utilities/internal/globals/maybe.js.map +1 -0
  963. package/utilities/internal/graphQLResultHasError.d.ts +8 -0
  964. package/utilities/internal/graphQLResultHasError.js +9 -0
  965. package/utilities/internal/graphQLResultHasError.js.map +1 -0
  966. package/utilities/internal/hasDirectives.d.ts +8 -0
  967. package/utilities/internal/hasDirectives.js +21 -0
  968. package/utilities/internal/hasDirectives.js.map +1 -0
  969. package/utilities/internal/hasForcedResolvers.d.ts +3 -0
  970. package/utilities/internal/hasForcedResolvers.js +20 -0
  971. package/utilities/internal/hasForcedResolvers.js.map +1 -0
  972. package/utilities/internal/index.d.ts +62 -2
  973. package/utilities/internal/index.js +47 -2
  974. package/utilities/internal/index.js.map +1 -1
  975. package/utilities/internal/isArray.d.ts +9 -0
  976. package/utilities/internal/isArray.js +9 -0
  977. package/utilities/internal/isArray.js.map +1 -0
  978. package/utilities/internal/isDocumentNode.d.ts +8 -0
  979. package/utilities/internal/isDocumentNode.js +12 -0
  980. package/utilities/internal/isDocumentNode.js.map +1 -0
  981. package/utilities/internal/isField.d.ts +8 -0
  982. package/utilities/internal/isField.js +9 -0
  983. package/utilities/internal/isField.js.map +1 -0
  984. package/utilities/internal/isNonEmptyArray.d.ts +7 -0
  985. package/utilities/internal/isNonEmptyArray.js +9 -0
  986. package/utilities/internal/isNonEmptyArray.js.map +1 -0
  987. package/utilities/internal/isNonNullObject.d.ts +7 -0
  988. package/utilities/internal/isNonNullObject.js +9 -0
  989. package/utilities/internal/isNonNullObject.js.map +1 -0
  990. package/utilities/internal/isPlainObject.d.ts +7 -0
  991. package/utilities/internal/isPlainObject.js +12 -0
  992. package/utilities/internal/isPlainObject.js.map +1 -0
  993. package/utilities/internal/makeReference.d.ts +8 -0
  994. package/utilities/internal/makeReference.js +9 -0
  995. package/utilities/internal/makeReference.js.map +1 -0
  996. package/utilities/internal/makeUniqueId.d.ts +10 -0
  997. package/utilities/internal/makeUniqueId.js +15 -0
  998. package/utilities/internal/makeUniqueId.js.map +1 -0
  999. package/utilities/internal/maybeDeepFreeze.d.ts +7 -0
  1000. package/utilities/internal/maybeDeepFreeze.js +14 -0
  1001. package/utilities/internal/maybeDeepFreeze.js.map +1 -0
  1002. package/utilities/internal/mergeDeep.d.ts +8 -0
  1003. package/utilities/internal/mergeDeep.js +23 -0
  1004. package/utilities/internal/mergeDeep.js.map +1 -0
  1005. package/utilities/internal/mergeDeepArray.d.ts +7 -0
  1006. package/utilities/internal/mergeDeepArray.js +24 -0
  1007. package/utilities/internal/mergeDeepArray.js.map +1 -0
  1008. package/utilities/internal/mergeOptions.d.ts +10 -0
  1009. package/utilities/internal/mergeOptions.js +15 -0
  1010. package/utilities/internal/mergeOptions.js.map +1 -0
  1011. package/utilities/internal/omitDeep.d.ts +8 -0
  1012. package/utilities/internal/omitDeep.js +45 -0
  1013. package/utilities/internal/omitDeep.js.map +1 -0
  1014. package/utilities/internal/preventUnhandledRejection.js.map +1 -0
  1015. package/utilities/internal/removeDirectivesFromDocument.d.ts +14 -0
  1016. package/utilities/internal/removeDirectivesFromDocument.js +300 -0
  1017. package/utilities/internal/removeDirectivesFromDocument.js.map +1 -0
  1018. package/utilities/internal/resultKeyNameFromField.d.ts +8 -0
  1019. package/utilities/internal/resultKeyNameFromField.js +9 -0
  1020. package/utilities/internal/resultKeyNameFromField.js.map +1 -0
  1021. package/utilities/internal/shouldInclude.d.ts +8 -0
  1022. package/utilities/internal/shouldInclude.js +47 -0
  1023. package/utilities/internal/shouldInclude.js.map +1 -0
  1024. package/utilities/internal/storeKeyNameFromField.d.ts +8 -0
  1025. package/utilities/internal/storeKeyNameFromField.js +26 -0
  1026. package/utilities/internal/storeKeyNameFromField.js.map +1 -0
  1027. package/utilities/internal/stringifyForDisplay.d.ts +7 -0
  1028. package/utilities/internal/stringifyForDisplay.js +15 -0
  1029. package/utilities/internal/stringifyForDisplay.js.map +1 -0
  1030. package/utilities/internal/toQueryResult.d.ts +5 -0
  1031. package/utilities/internal/toQueryResult.js +5 -0
  1032. package/utilities/internal/toQueryResult.js.map +1 -1
  1033. package/utilities/internal/types/ApplyHKT.d.ts +13 -0
  1034. package/utilities/internal/types/ApplyHKT.js +2 -0
  1035. package/utilities/internal/types/ApplyHKT.js.map +1 -0
  1036. package/utilities/internal/types/ApplyHKTImplementationWithDefault.d.ts +11 -0
  1037. package/utilities/internal/types/ApplyHKTImplementationWithDefault.js +2 -0
  1038. package/utilities/internal/types/ApplyHKTImplementationWithDefault.js.map +1 -0
  1039. package/utilities/internal/types/DecoratedPromise.d.ts +10 -0
  1040. package/utilities/internal/types/DecoratedPromise.js +2 -0
  1041. package/utilities/internal/types/DecoratedPromise.js.map +1 -0
  1042. package/utilities/internal/types/DeepOmit.d.ts +15 -0
  1043. package/utilities/internal/types/FragmentMap.d.ts +12 -0
  1044. package/utilities/internal/types/FragmentMap.js +2 -0
  1045. package/utilities/internal/types/FragmentMap.js.map +1 -0
  1046. package/utilities/internal/types/FragmentMapFunction.d.ts +8 -0
  1047. package/utilities/internal/types/FragmentMapFunction.js +2 -0
  1048. package/utilities/internal/types/FragmentMapFunction.js.map +1 -0
  1049. package/utilities/internal/types/FulfilledPromise.d.ts +10 -0
  1050. package/utilities/internal/types/FulfilledPromise.js +2 -0
  1051. package/utilities/internal/types/FulfilledPromise.js.map +1 -0
  1052. package/utilities/internal/types/IsAny.d.ts +7 -0
  1053. package/utilities/internal/types/IsAny.js +2 -0
  1054. package/utilities/internal/types/IsAny.js.map +1 -0
  1055. package/utilities/internal/types/NoInfer.d.ts +29 -0
  1056. package/utilities/internal/types/PendingPromise.d.ts +9 -0
  1057. package/utilities/internal/types/PendingPromise.js +2 -0
  1058. package/utilities/internal/types/PendingPromise.js.map +1 -0
  1059. package/utilities/internal/types/Prettify.d.ts +9 -0
  1060. package/utilities/internal/types/Primitive.d.ts +7 -0
  1061. package/utilities/internal/types/RejectedPromise.d.ts +10 -0
  1062. package/utilities/internal/types/RejectedPromise.js +2 -0
  1063. package/utilities/internal/types/RejectedPromise.js.map +1 -0
  1064. package/utilities/internal/types/RemoveIndexSignature.d.ts +9 -0
  1065. package/utilities/internal/types/TupleToIntersection.d.ts +2 -0
  1066. package/utilities/internal/types/TupleToIntersection.js +2 -0
  1067. package/utilities/internal/types/TupleToIntersection.js.map +1 -0
  1068. package/utilities/internal/types/VariablesOption.d.ts +30 -0
  1069. package/utilities/internal/types/VariablesOption.js +2 -0
  1070. package/utilities/internal/types/VariablesOption.js.map +1 -0
  1071. package/utilities/internal/valueToObjectRepresentation.d.ts +8 -0
  1072. package/utilities/internal/valueToObjectRepresentation.js +41 -0
  1073. package/utilities/internal/valueToObjectRepresentation.js.map +1 -0
  1074. package/utilities/invariant/index.js +3 -2
  1075. package/utilities/invariant/index.js.map +1 -1
  1076. package/utilities/policies/pagination.d.ts +23 -0
  1077. package/utilities/policies/pagination.js +24 -7
  1078. package/utilities/policies/pagination.js.map +1 -1
  1079. package/utilities/shared/canonicalStringify.js +88 -0
  1080. package/utilities/shared/canonicalStringify.js.map +1 -0
  1081. package/utilities/subscriptions/relay/index.js +3 -3
  1082. package/utilities/subscriptions/relay/index.js.map +1 -1
  1083. package/version.d.ts +1 -0
  1084. package/version.js +2 -1
  1085. package/version.js.map +1 -1
  1086. package/.changeset/README.md +0 -8
  1087. package/.changeset/afraid-moons-arrive.md +0 -5
  1088. package/.changeset/beige-mirrors-talk.md +0 -15
  1089. package/.changeset/brave-radios-wait.md +0 -5
  1090. package/.changeset/bright-ads-share.md +0 -5
  1091. package/.changeset/calm-frogs-remain.md +0 -7
  1092. package/.changeset/calm-seals-relate.md +0 -5
  1093. package/.changeset/chatty-planes-grin.md +0 -5
  1094. package/.changeset/clean-sheep-hide.md +0 -6
  1095. package/.changeset/clever-zebras-mate.md +0 -5
  1096. package/.changeset/config.json +0 -14
  1097. package/.changeset/cool-bikes-shake.md +0 -12
  1098. package/.changeset/cuddly-spiders-tie.md +0 -5
  1099. package/.changeset/curvy-pianos-count.md +0 -5
  1100. package/.changeset/dirty-eagles-poke.md +0 -5
  1101. package/.changeset/dirty-trees-pump.md +0 -5
  1102. package/.changeset/early-eggs-develop.md +0 -22
  1103. package/.changeset/eighty-squids-fix.md +0 -15
  1104. package/.changeset/eleven-kangaroos-jump.md +0 -5
  1105. package/.changeset/empty-rabbits-move.md +0 -5
  1106. package/.changeset/fluffy-shoes-applaud.md +0 -5
  1107. package/.changeset/forty-hairs-occur.md +0 -5
  1108. package/.changeset/forty-shrimps-fry.md +0 -5
  1109. package/.changeset/forty-tomatoes-punch.md +0 -5
  1110. package/.changeset/four-ghosts-watch.md +0 -5
  1111. package/.changeset/fresh-moose-hope.md +0 -5
  1112. package/.changeset/funny-jeans-invent.md +0 -16
  1113. package/.changeset/fuzzy-tips-sit.md +0 -5
  1114. package/.changeset/giant-apes-thank.md +0 -5
  1115. package/.changeset/giant-bags-share.md +0 -5
  1116. package/.changeset/good-dolphins-peel.md +0 -113
  1117. package/.changeset/gorgeous-chefs-tap.md +0 -5
  1118. package/.changeset/grumpy-vans-type.md +0 -5
  1119. package/.changeset/healthy-apes-sneeze.md +0 -5
  1120. package/.changeset/hip-vans-act.md +0 -5
  1121. package/.changeset/hot-cycles-notice.md +0 -5
  1122. package/.changeset/itchy-drinks-refuse.md +0 -5
  1123. package/.changeset/itchy-roses-accept.md +0 -5
  1124. package/.changeset/khaki-keys-deliver.md +0 -5
  1125. package/.changeset/khaki-spies-work.md +0 -11
  1126. package/.changeset/kind-fishes-develop.md +0 -17
  1127. package/.changeset/large-plants-know.md +0 -5
  1128. package/.changeset/late-trainers-peel.md +0 -7
  1129. package/.changeset/light-apes-rescue.md +0 -5
  1130. package/.changeset/light-dolphins-taste.md +0 -5
  1131. package/.changeset/light-sloths-end.md +0 -16
  1132. package/.changeset/little-spoons-kick.md +0 -7
  1133. package/.changeset/loud-cows-raise.md +0 -7
  1134. package/.changeset/lucky-hats-push.md +0 -7
  1135. package/.changeset/many-buses-allow.md +0 -5
  1136. package/.changeset/many-papayas-hide.md +0 -5
  1137. package/.changeset/mean-lizards-think.md +0 -5
  1138. package/.changeset/metal-needles-search.md +0 -5
  1139. package/.changeset/mighty-penguins-wink.md +0 -16
  1140. package/.changeset/modern-feet-do.md +0 -5
  1141. package/.changeset/moody-lobsters-listen.md +0 -7
  1142. package/.changeset/nervous-fireants-bow.md +0 -5
  1143. package/.changeset/nervous-goats-allow.md +0 -5
  1144. package/.changeset/nice-donkeys-reflect.md +0 -5
  1145. package/.changeset/nice-dots-matter.md +0 -5
  1146. package/.changeset/nice-waves-work.md +0 -7
  1147. package/.changeset/ninety-bags-bake.md +0 -17
  1148. package/.changeset/odd-lemons-relax.md +0 -5
  1149. package/.changeset/perfect-vans-give.md +0 -7
  1150. package/.changeset/polite-bees-care.md +0 -26
  1151. package/.changeset/poor-eels-punch.md +0 -5
  1152. package/.changeset/popular-games-sleep.md +0 -5
  1153. package/.changeset/pre.json +0 -121
  1154. package/.changeset/purple-bears-flash.md +0 -5
  1155. package/.changeset/purple-lions-cough.md +0 -5
  1156. package/.changeset/rare-houses-prove.md +0 -5
  1157. package/.changeset/real-gorillas-move.md +0 -21
  1158. package/.changeset/real-teachers-peel.md +0 -5
  1159. package/.changeset/rich-eagles-cross.md +0 -5
  1160. package/.changeset/rich-kids-carry.md +0 -9
  1161. package/.changeset/rude-fans-study.md +0 -5
  1162. package/.changeset/seven-foxes-melt.md +0 -5
  1163. package/.changeset/shaggy-pugs-add.md +0 -52
  1164. package/.changeset/shiny-carrots-invent.md +0 -5
  1165. package/.changeset/short-jokes-jam.md +0 -27
  1166. package/.changeset/short-months-complain.md +0 -5
  1167. package/.changeset/silly-knives-exist.md +0 -5
  1168. package/.changeset/slimy-chicken-melt.md +0 -5
  1169. package/.changeset/slimy-maps-press.md +0 -5
  1170. package/.changeset/slow-ravens-explain.md +0 -19
  1171. package/.changeset/small-buttons-rhyme.md +0 -5
  1172. package/.changeset/small-cycles-rescue.md +0 -5
  1173. package/.changeset/small-kids-film.md +0 -14
  1174. package/.changeset/smart-rats-explode.md +0 -5
  1175. package/.changeset/smooth-coins-collect.md +0 -5
  1176. package/.changeset/smooth-pens-reply.md +0 -7
  1177. package/.changeset/soft-mails-clean.md +0 -5
  1178. package/.changeset/sour-pillows-guess.md +0 -7
  1179. package/.changeset/strange-seahorses-impress.md +0 -17
  1180. package/.changeset/swift-rivers-share.md +0 -13
  1181. package/.changeset/tall-bikes-develop.md +0 -5
  1182. package/.changeset/tall-cups-suffer.md +0 -13
  1183. package/.changeset/tame-doors-shop.md +0 -14
  1184. package/.changeset/tame-points-work.md +0 -11
  1185. package/.changeset/tender-swans-flash.md +0 -16
  1186. package/.changeset/thick-books-grin.md +0 -5
  1187. package/.changeset/thin-peas-hear.md +0 -16
  1188. package/.changeset/tidy-squids-poke.md +0 -12
  1189. package/.changeset/tough-rockets-allow.md +0 -5
  1190. package/.changeset/tough-taxis-smoke.md +0 -7
  1191. package/.changeset/tough-tips-drop.md +0 -15
  1192. package/.changeset/tricky-tables-shave.md +0 -5
  1193. package/.changeset/twenty-snakes-sort.md +0 -7
  1194. package/.changeset/unlucky-kiwis-sell.md +0 -5
  1195. package/.changeset/unlucky-sheep-change.md +0 -5
  1196. package/.changeset/warm-ties-sit.md +0 -7
  1197. package/.changeset/wicked-forks-double.md +0 -33
  1198. package/.changeset/yellow-cats-judge.md +0 -13
  1199. package/.changeset/young-phones-fold.md +0 -5
  1200. package/.changeset/young-turtles-explode.md +0 -5
  1201. package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs +0 -20
  1202. package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs.map +0 -1
  1203. package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.d.cts +0 -3
  1204. package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs +0 -18
  1205. package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs.map +0 -1
  1206. package/__cjs/config/jest/areCombinedProtocolErrorsEqual.d.cts +0 -3
  1207. package/__cjs/config/jest/areGraphQlErrorsEqual.cjs +0 -11
  1208. package/__cjs/config/jest/areGraphQlErrorsEqual.cjs.map +0 -1
  1209. package/__cjs/config/jest/areGraphQlErrorsEqual.d.cts +0 -3
  1210. package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs +0 -20
  1211. package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs.map +0 -1
  1212. package/__cjs/config/jest/areMissingFieldErrorsEqual.d.cts +0 -3
  1213. package/__cjs/config/jest/areServerErrorsEqual.cjs +0 -21
  1214. package/__cjs/config/jest/areServerErrorsEqual.cjs.map +0 -1
  1215. package/__cjs/config/jest/areServerErrorsEqual.d.cts +0 -3
  1216. package/__cjs/config/jest/resolver.cjs +0 -32
  1217. package/__cjs/config/jest/resolver.cjs.map +0 -1
  1218. package/__cjs/config/jest/resolver.d.cts +0 -3
  1219. package/__cjs/config/jest/setup.cjs +0 -65
  1220. package/__cjs/config/jest/setup.cjs.map +0 -1
  1221. package/__cjs/config/jest/setup.d.cts +0 -3
  1222. package/__cjs/core/LocalState.cjs +0 -333
  1223. package/__cjs/core/LocalState.cjs.map +0 -1
  1224. package/__cjs/core/LocalState.d.cts +0 -53
  1225. package/__cjs/link/core/index.cjs +0 -16
  1226. package/__cjs/link/core/index.cjs.map +0 -1
  1227. package/__cjs/link/core/index.d.cts +0 -8
  1228. package/__cjs/link/http/createHttpLink.cjs +0 -158
  1229. package/__cjs/link/http/createHttpLink.cjs.map +0 -1
  1230. package/__cjs/link/http/createHttpLink.d.cts +0 -4
  1231. package/__cjs/masking/__benches__/types.bench.cjs +0 -223
  1232. package/__cjs/masking/__benches__/types.bench.cjs.map +0 -1
  1233. package/__cjs/masking/__benches__/types.bench.d.cts +0 -2
  1234. package/__cjs/testing/core/index.cjs +0 -20
  1235. package/__cjs/testing/core/index.cjs.map +0 -1
  1236. package/__cjs/testing/core/index.d.cts +0 -7
  1237. package/__cjs/testing/core/mocking/mockClient.cjs +0 -17
  1238. package/__cjs/testing/core/mocking/mockClient.cjs.map +0 -1
  1239. package/__cjs/testing/core/mocking/mockClient.d.cts +0 -4
  1240. package/__cjs/testing/core/wait.cjs +0 -11
  1241. package/__cjs/testing/core/wait.cjs.map +0 -1
  1242. package/__cjs/testing/core/wait.d.cts +0 -3
  1243. package/__cjs/testing/core/withConsoleSpy.cjs +0 -33
  1244. package/__cjs/testing/core/withConsoleSpy.cjs.map +0 -1
  1245. package/__cjs/testing/core/withConsoleSpy.d.cts +0 -7
  1246. package/__cjs/testing/experimental/createSchemaFetch.cjs +0 -92
  1247. package/__cjs/testing/experimental/createSchemaFetch.cjs.map +0 -1
  1248. package/__cjs/testing/experimental/createSchemaFetch.d.cts +0 -43
  1249. package/__cjs/testing/experimental/createTestSchema.cjs +0 -110
  1250. package/__cjs/testing/experimental/createTestSchema.cjs.map +0 -1
  1251. package/__cjs/testing/experimental/createTestSchema.d.cts +0 -57
  1252. package/__cjs/testing/experimental/graphql-tools/utils.cjs +0 -177
  1253. package/__cjs/testing/experimental/graphql-tools/utils.cjs.map +0 -1
  1254. package/__cjs/testing/experimental/graphql-tools/utils.d.cts +0 -26
  1255. package/__cjs/testing/experimental/graphql-tools/utils.test.cjs +0 -200
  1256. package/__cjs/testing/experimental/graphql-tools/utils.test.cjs.map +0 -1
  1257. package/__cjs/testing/experimental/graphql-tools/utils.test.d.cts +0 -2
  1258. package/__cjs/testing/experimental/index.cjs +0 -8
  1259. package/__cjs/testing/experimental/index.cjs.map +0 -1
  1260. package/__cjs/testing/experimental/index.d.cts +0 -3
  1261. package/__cjs/testing/internal/ObservableStream.cjs +0 -98
  1262. package/__cjs/testing/internal/ObservableStream.cjs.map +0 -1
  1263. package/__cjs/testing/internal/ObservableStream.d.cts +0 -28
  1264. package/__cjs/testing/internal/disposables/enableFakeTimers.cjs +0 -19
  1265. package/__cjs/testing/internal/disposables/enableFakeTimers.cjs.map +0 -1
  1266. package/__cjs/testing/internal/disposables/enableFakeTimers.d.cts +0 -7
  1267. package/__cjs/testing/internal/disposables/index.cjs +0 -12
  1268. package/__cjs/testing/internal/disposables/index.cjs.map +0 -1
  1269. package/__cjs/testing/internal/disposables/index.d.cts +0 -5
  1270. package/__cjs/testing/internal/disposables/spyOnConsole.cjs +0 -24
  1271. package/__cjs/testing/internal/disposables/spyOnConsole.cjs.map +0 -1
  1272. package/__cjs/testing/internal/disposables/spyOnConsole.d.cts +0 -8
  1273. package/__cjs/testing/internal/disposables/withCleanup.cjs +0 -18
  1274. package/__cjs/testing/internal/disposables/withCleanup.cjs.map +0 -1
  1275. package/__cjs/testing/internal/disposables/withCleanup.d.cts +0 -3
  1276. package/__cjs/testing/internal/disposables/withProdMode.cjs +0 -17
  1277. package/__cjs/testing/internal/disposables/withProdMode.cjs.map +0 -1
  1278. package/__cjs/testing/internal/disposables/withProdMode.d.cts +0 -4
  1279. package/__cjs/testing/internal/incremental.cjs +0 -124
  1280. package/__cjs/testing/internal/incremental.cjs.map +0 -1
  1281. package/__cjs/testing/internal/incremental.d.cts +0 -16
  1282. package/__cjs/testing/internal/index.cjs +0 -31
  1283. package/__cjs/testing/internal/index.cjs.map +0 -1
  1284. package/__cjs/testing/internal/index.d.cts +0 -11
  1285. package/__cjs/testing/internal/messageChannelPolyfill.cjs +0 -18
  1286. package/__cjs/testing/internal/messageChannelPolyfill.cjs.map +0 -1
  1287. package/__cjs/testing/internal/messageChannelPolyfill.d.cts +0 -2
  1288. package/__cjs/testing/internal/renderHelpers.cjs +0 -21
  1289. package/__cjs/testing/internal/renderHelpers.cjs.map +0 -1
  1290. package/__cjs/testing/internal/renderHelpers.d.cts +0 -14
  1291. package/__cjs/testing/internal/resetApolloContext.cjs +0 -24
  1292. package/__cjs/testing/internal/resetApolloContext.cjs.map +0 -1
  1293. package/__cjs/testing/internal/resetApolloContext.d.cts +0 -10
  1294. package/__cjs/testing/internal/rtl/actAsync.cjs +0 -18
  1295. package/__cjs/testing/internal/rtl/actAsync.cjs.map +0 -1
  1296. package/__cjs/testing/internal/rtl/actAsync.d.cts +0 -2
  1297. package/__cjs/testing/internal/rtl/renderAsync.cjs +0 -15
  1298. package/__cjs/testing/internal/rtl/renderAsync.cjs.map +0 -1
  1299. package/__cjs/testing/internal/rtl/renderAsync.d.cts +0 -9
  1300. package/__cjs/testing/internal/rtl/renderHookAsync.cjs +0 -37
  1301. package/__cjs/testing/internal/rtl/renderHookAsync.cjs.map +0 -1
  1302. package/__cjs/testing/internal/rtl/renderHookAsync.d.cts +0 -8
  1303. package/__cjs/testing/internal/scenarios/index.cjs +0 -104
  1304. package/__cjs/testing/internal/scenarios/index.cjs.map +0 -1
  1305. package/__cjs/testing/internal/scenarios/index.d.cts +0 -83
  1306. package/__cjs/testing/matchers/arrayWithLength.cjs +0 -15
  1307. package/__cjs/testing/matchers/arrayWithLength.cjs.map +0 -1
  1308. package/__cjs/testing/matchers/arrayWithLength.d.cts +0 -3
  1309. package/__cjs/testing/matchers/index.cjs +0 -28
  1310. package/__cjs/testing/matchers/index.cjs.map +0 -1
  1311. package/__cjs/testing/matchers/index.d.cts +0 -2
  1312. package/__cjs/testing/matchers/toBeDisposed.cjs +0 -20
  1313. package/__cjs/testing/matchers/toBeDisposed.cjs.map +0 -1
  1314. package/__cjs/testing/matchers/toBeDisposed.d.cts +0 -3
  1315. package/__cjs/testing/matchers/toBeGarbageCollected.cjs +0 -43
  1316. package/__cjs/testing/matchers/toBeGarbageCollected.cjs.map +0 -1
  1317. package/__cjs/testing/matchers/toBeGarbageCollected.d.cts +0 -8
  1318. package/__cjs/testing/matchers/toComplete.cjs +0 -30
  1319. package/__cjs/testing/matchers/toComplete.cjs.map +0 -1
  1320. package/__cjs/testing/matchers/toComplete.d.cts +0 -4
  1321. package/__cjs/testing/matchers/toEmitAnything.cjs +0 -33
  1322. package/__cjs/testing/matchers/toEmitAnything.cjs.map +0 -1
  1323. package/__cjs/testing/matchers/toEmitAnything.d.cts +0 -4
  1324. package/__cjs/testing/matchers/toEmitError.cjs +0 -46
  1325. package/__cjs/testing/matchers/toEmitError.cjs.map +0 -1
  1326. package/__cjs/testing/matchers/toEmitError.d.cts +0 -7
  1327. package/__cjs/testing/matchers/toEmitNext.cjs +0 -30
  1328. package/__cjs/testing/matchers/toEmitNext.cjs.map +0 -1
  1329. package/__cjs/testing/matchers/toEmitNext.d.cts +0 -4
  1330. package/__cjs/testing/matchers/toEmitTypedValue.cjs +0 -42
  1331. package/__cjs/testing/matchers/toEmitTypedValue.cjs.map +0 -1
  1332. package/__cjs/testing/matchers/toEmitTypedValue.d.cts +0 -7
  1333. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs +0 -26
  1334. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs.map +0 -1
  1335. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.d.cts +0 -11
  1336. package/__cjs/testing/matchers/toMatchDocument.cjs +0 -36
  1337. package/__cjs/testing/matchers/toMatchDocument.cjs.map +0 -1
  1338. package/__cjs/testing/matchers/toMatchDocument.d.cts +0 -4
  1339. package/__cjs/testing/matchers/toStrictEqualTyped.cjs +0 -26
  1340. package/__cjs/testing/matchers/toStrictEqualTyped.cjs.map +0 -1
  1341. package/__cjs/testing/matchers/toStrictEqualTyped.d.cts +0 -3
  1342. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs +0 -23
  1343. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs.map +0 -1
  1344. package/__cjs/testing/matchers/utils/getSerializableProperties.d.cts +0 -2
  1345. package/__cjs/utilities/caching/caches.cjs +0 -72
  1346. package/__cjs/utilities/caching/caches.cjs.map +0 -1
  1347. package/__cjs/utilities/caching/caches.d.cts +0 -34
  1348. package/__cjs/utilities/common/arrays.cjs +0 -10
  1349. package/__cjs/utilities/common/arrays.cjs.map +0 -1
  1350. package/__cjs/utilities/common/arrays.d.cts +0 -3
  1351. package/__cjs/utilities/common/canUse.cjs +0 -24
  1352. package/__cjs/utilities/common/canUse.cjs.map +0 -1
  1353. package/__cjs/utilities/common/canUse.d.cts +0 -3
  1354. package/__cjs/utilities/common/canonicalStringify.cjs +0 -88
  1355. package/__cjs/utilities/common/canonicalStringify.cjs.map +0 -1
  1356. package/__cjs/utilities/common/cloneDeep.cjs +0 -41
  1357. package/__cjs/utilities/common/cloneDeep.cjs.map +0 -1
  1358. package/__cjs/utilities/common/cloneDeep.d.cts +0 -5
  1359. package/__cjs/utilities/common/compact.cjs +0 -22
  1360. package/__cjs/utilities/common/compact.cjs.map +0 -1
  1361. package/__cjs/utilities/common/compact.d.cts +0 -7
  1362. package/__cjs/utilities/common/errorHandling.cjs +0 -23
  1363. package/__cjs/utilities/common/errorHandling.cjs.map +0 -1
  1364. package/__cjs/utilities/common/errorHandling.d.cts +0 -4
  1365. package/__cjs/utilities/common/incrementalResult.cjs +0 -45
  1366. package/__cjs/utilities/common/incrementalResult.cjs.map +0 -1
  1367. package/__cjs/utilities/common/incrementalResult.d.cts +0 -7
  1368. package/__cjs/utilities/common/makeUniqueId.cjs +0 -12
  1369. package/__cjs/utilities/common/makeUniqueId.cjs.map +0 -1
  1370. package/__cjs/utilities/common/makeUniqueId.d.cts +0 -2
  1371. package/__cjs/utilities/common/maybeDeepFreeze.cjs +0 -42
  1372. package/__cjs/utilities/common/maybeDeepFreeze.cjs.map +0 -1
  1373. package/__cjs/utilities/common/maybeDeepFreeze.d.cts +0 -4
  1374. package/__cjs/utilities/common/mergeDeep.cjs +0 -84
  1375. package/__cjs/utilities/common/mergeDeep.cjs.map +0 -1
  1376. package/__cjs/utilities/common/mergeDeep.d.cts +0 -14
  1377. package/__cjs/utilities/common/mergeOptions.cjs +0 -13
  1378. package/__cjs/utilities/common/mergeOptions.cjs.map +0 -1
  1379. package/__cjs/utilities/common/mergeOptions.d.cts +0 -5
  1380. package/__cjs/utilities/common/objects.cjs +0 -14
  1381. package/__cjs/utilities/common/objects.cjs.map +0 -1
  1382. package/__cjs/utilities/common/objects.d.cts +0 -3
  1383. package/__cjs/utilities/common/omitDeep.cjs +0 -43
  1384. package/__cjs/utilities/common/omitDeep.cjs.map +0 -1
  1385. package/__cjs/utilities/common/omitDeep.d.cts +0 -3
  1386. package/__cjs/utilities/common/stringifyForDisplay.cjs +0 -13
  1387. package/__cjs/utilities/common/stringifyForDisplay.cjs.map +0 -1
  1388. package/__cjs/utilities/common/stringifyForDisplay.d.cts +0 -2
  1389. package/__cjs/utilities/globals/global.cjs.map +0 -1
  1390. package/__cjs/utilities/globals/index.cjs.map +0 -1
  1391. package/__cjs/utilities/globals/maybe.cjs.map +0 -1
  1392. package/__cjs/utilities/graphql/directives.cjs +0 -114
  1393. package/__cjs/utilities/graphql/directives.cjs.map +0 -1
  1394. package/__cjs/utilities/graphql/directives.d.cts +0 -20
  1395. package/__cjs/utilities/graphql/fragments.cjs +0 -126
  1396. package/__cjs/utilities/graphql/fragments.cjs.map +0 -1
  1397. package/__cjs/utilities/graphql/fragments.d.cts +0 -35
  1398. package/__cjs/utilities/graphql/getFromAST.cjs +0 -101
  1399. package/__cjs/utilities/graphql/getFromAST.cjs.map +0 -1
  1400. package/__cjs/utilities/graphql/getFromAST.d.cts +0 -15
  1401. package/__cjs/utilities/internal/observables.cjs +0 -29
  1402. package/__cjs/utilities/internal/observables.cjs.map +0 -1
  1403. package/__cjs/utilities/internal/observables.d.cts +0 -14
  1404. package/__cjs/utilities/promises/decoration.cjs +0 -45
  1405. package/__cjs/utilities/promises/decoration.cjs.map +0 -1
  1406. package/__cjs/utilities/promises/decoration.d.cts +0 -18
  1407. package/__cjs/utilities/promises/preventUnhandledRejection.cjs.map +0 -1
  1408. package/__cjs/utilities/types/DeepOmit.d.cts +0 -10
  1409. package/__cjs/utilities/types/DeepPartial.cjs.map +0 -1
  1410. package/__cjs/utilities/types/DeepPartial.d.cts +0 -12
  1411. package/__cjs/utilities/types/IsStrictlyAny.cjs +0 -3
  1412. package/__cjs/utilities/types/IsStrictlyAny.cjs.map +0 -1
  1413. package/__cjs/utilities/types/IsStrictlyAny.d.cts +0 -5
  1414. package/__cjs/utilities/types/NoInfer.d.cts +0 -27
  1415. package/__cjs/utilities/types/OnlyRequiredProperties.cjs +0 -3
  1416. package/__cjs/utilities/types/OnlyRequiredProperties.cjs.map +0 -1
  1417. package/__cjs/utilities/types/OnlyRequiredProperties.d.cts +0 -7
  1418. package/__cjs/utilities/types/Prettify.d.cts +0 -4
  1419. package/__cjs/utilities/types/Primitive.d.cts +0 -2
  1420. package/__cjs/utilities/types/RemoveIndexSignature.d.cts +0 -4
  1421. package/__cjs/utilities/types/UnionToIntersection.cjs +0 -3
  1422. package/__cjs/utilities/types/UnionToIntersection.cjs.map +0 -1
  1423. package/__cjs/utilities/types/UnionToIntersection.d.cts +0 -2
  1424. package/config/jest/areCombinedGraphQLErrorsEqual.d.ts +0 -3
  1425. package/config/jest/areCombinedGraphQLErrorsEqual.js +0 -16
  1426. package/config/jest/areCombinedGraphQLErrorsEqual.js.map +0 -1
  1427. package/config/jest/areCombinedProtocolErrorsEqual.d.ts +0 -3
  1428. package/config/jest/areCombinedProtocolErrorsEqual.js +0 -14
  1429. package/config/jest/areCombinedProtocolErrorsEqual.js.map +0 -1
  1430. package/config/jest/areGraphQlErrorsEqual.d.ts +0 -3
  1431. package/config/jest/areGraphQlErrorsEqual.js +0 -7
  1432. package/config/jest/areGraphQlErrorsEqual.js.map +0 -1
  1433. package/config/jest/areMissingFieldErrorsEqual.d.ts +0 -3
  1434. package/config/jest/areMissingFieldErrorsEqual.js +0 -16
  1435. package/config/jest/areMissingFieldErrorsEqual.js.map +0 -1
  1436. package/config/jest/areServerErrorsEqual.d.ts +0 -3
  1437. package/config/jest/areServerErrorsEqual.js +0 -17
  1438. package/config/jest/areServerErrorsEqual.js.map +0 -1
  1439. package/config/jest/resolver.d.ts +0 -3
  1440. package/config/jest/resolver.js +0 -29
  1441. package/config/jest/resolver.js.map +0 -1
  1442. package/config/jest/setup.d.ts +0 -3
  1443. package/config/jest/setup.js +0 -62
  1444. package/config/jest/setup.js.map +0 -1
  1445. package/core/LocalState.d.ts +0 -53
  1446. package/core/LocalState.js +0 -329
  1447. package/core/LocalState.js.map +0 -1
  1448. package/legacyEntryPoints/link/core/core.cjs +0 -1
  1449. package/legacyEntryPoints/link/core/core.d.cts +0 -1
  1450. package/legacyEntryPoints/link/core/index.d.ts +0 -1
  1451. package/legacyEntryPoints/link/core/index.js +0 -1
  1452. package/legacyEntryPoints/testing/core/core.cjs +0 -1
  1453. package/legacyEntryPoints/testing/core/core.d.cts +0 -1
  1454. package/legacyEntryPoints/testing/core/index.d.ts +0 -1
  1455. package/legacyEntryPoints/testing/core/index.js +0 -1
  1456. package/legacyEntryPoints/testing/experimental/experimental.cjs +0 -1
  1457. package/legacyEntryPoints/testing/experimental/experimental.d.cts +0 -1
  1458. package/legacyEntryPoints/testing/experimental/index.d.ts +0 -1
  1459. package/legacyEntryPoints/testing/experimental/index.js +0 -1
  1460. package/legacyEntryPoints/testing/internal/index.d.ts +0 -1
  1461. package/legacyEntryPoints/testing/internal/index.js +0 -1
  1462. package/legacyEntryPoints/testing/internal/internal.cjs +0 -1
  1463. package/legacyEntryPoints/testing/internal/internal.d.cts +0 -1
  1464. package/legacyEntryPoints/utilities/globals/globals.cjs +0 -1
  1465. package/legacyEntryPoints/utilities/globals/globals.d.cts +0 -1
  1466. package/legacyEntryPoints/utilities/globals/index.d.ts +0 -1
  1467. package/legacyEntryPoints/utilities/globals/index.js +0 -1
  1468. package/link/core/index.d.ts +0 -8
  1469. package/link/core/index.js +0 -7
  1470. package/link/core/index.js.map +0 -1
  1471. package/link/http/createHttpLink.d.ts +0 -4
  1472. package/link/http/createHttpLink.js +0 -150
  1473. package/link/http/createHttpLink.js.map +0 -1
  1474. package/masking/__benches__/types.bench.d.ts +0 -2
  1475. package/masking/__benches__/types.bench.js +0 -221
  1476. package/masking/__benches__/types.bench.js.map +0 -1
  1477. package/testing/core/index.d.ts +0 -7
  1478. package/testing/core/index.js +0 -6
  1479. package/testing/core/index.js.map +0 -1
  1480. package/testing/core/mocking/mockClient.d.ts +0 -4
  1481. package/testing/core/mocking/mockClient.js +0 -14
  1482. package/testing/core/mocking/mockClient.js.map +0 -1
  1483. package/testing/core/wait.d.ts +0 -3
  1484. package/testing/core/wait.js +0 -7
  1485. package/testing/core/wait.js.map +0 -1
  1486. package/testing/core/withConsoleSpy.d.ts +0 -7
  1487. package/testing/core/withConsoleSpy.js +0 -28
  1488. package/testing/core/withConsoleSpy.js.map +0 -1
  1489. package/testing/experimental/createSchemaFetch.d.ts +0 -43
  1490. package/testing/experimental/createSchemaFetch.js +0 -89
  1491. package/testing/experimental/createSchemaFetch.js.map +0 -1
  1492. package/testing/experimental/createTestSchema.d.ts +0 -57
  1493. package/testing/experimental/createTestSchema.js +0 -107
  1494. package/testing/experimental/createTestSchema.js.map +0 -1
  1495. package/testing/experimental/graphql-tools/utils.d.ts +0 -26
  1496. package/testing/experimental/graphql-tools/utils.js +0 -174
  1497. package/testing/experimental/graphql-tools/utils.js.map +0 -1
  1498. package/testing/experimental/graphql-tools/utils.test.d.ts +0 -2
  1499. package/testing/experimental/graphql-tools/utils.test.js +0 -198
  1500. package/testing/experimental/graphql-tools/utils.test.js.map +0 -1
  1501. package/testing/experimental/index.d.ts +0 -3
  1502. package/testing/experimental/index.js +0 -3
  1503. package/testing/experimental/index.js.map +0 -1
  1504. package/testing/internal/ObservableStream.d.ts +0 -28
  1505. package/testing/internal/ObservableStream.js +0 -93
  1506. package/testing/internal/ObservableStream.js.map +0 -1
  1507. package/testing/internal/disposables/enableFakeTimers.d.ts +0 -7
  1508. package/testing/internal/disposables/enableFakeTimers.js +0 -16
  1509. package/testing/internal/disposables/enableFakeTimers.js.map +0 -1
  1510. package/testing/internal/disposables/index.d.ts +0 -5
  1511. package/testing/internal/disposables/index.js +0 -5
  1512. package/testing/internal/disposables/index.js.map +0 -1
  1513. package/testing/internal/disposables/spyOnConsole.d.ts +0 -8
  1514. package/testing/internal/disposables/spyOnConsole.js +0 -21
  1515. package/testing/internal/disposables/spyOnConsole.js.map +0 -1
  1516. package/testing/internal/disposables/withCleanup.d.ts +0 -3
  1517. package/testing/internal/disposables/withCleanup.js +0 -15
  1518. package/testing/internal/disposables/withCleanup.js.map +0 -1
  1519. package/testing/internal/disposables/withProdMode.d.ts +0 -4
  1520. package/testing/internal/disposables/withProdMode.js +0 -13
  1521. package/testing/internal/disposables/withProdMode.js.map +0 -1
  1522. package/testing/internal/incremental.d.ts +0 -16
  1523. package/testing/internal/incremental.js +0 -120
  1524. package/testing/internal/incremental.js.map +0 -1
  1525. package/testing/internal/index.d.ts +0 -11
  1526. package/testing/internal/index.js +0 -10
  1527. package/testing/internal/index.js.map +0 -1
  1528. package/testing/internal/messageChannelPolyfill.d.ts +0 -2
  1529. package/testing/internal/messageChannelPolyfill.js +0 -16
  1530. package/testing/internal/messageChannelPolyfill.js.map +0 -1
  1531. package/testing/internal/renderHelpers.d.ts +0 -14
  1532. package/testing/internal/renderHelpers.js +0 -16
  1533. package/testing/internal/renderHelpers.js.map +0 -1
  1534. package/testing/internal/resetApolloContext.d.ts +0 -10
  1535. package/testing/internal/resetApolloContext.js +0 -20
  1536. package/testing/internal/resetApolloContext.js.map +0 -1
  1537. package/testing/internal/rtl/actAsync.d.ts +0 -2
  1538. package/testing/internal/rtl/actAsync.js +0 -14
  1539. package/testing/internal/rtl/actAsync.js.map +0 -1
  1540. package/testing/internal/rtl/renderAsync.d.ts +0 -9
  1541. package/testing/internal/rtl/renderAsync.js +0 -12
  1542. package/testing/internal/rtl/renderAsync.js.map +0 -1
  1543. package/testing/internal/rtl/renderHookAsync.d.ts +0 -8
  1544. package/testing/internal/rtl/renderHookAsync.js +0 -33
  1545. package/testing/internal/rtl/renderHookAsync.js.map +0 -1
  1546. package/testing/internal/scenarios/index.d.ts +0 -83
  1547. package/testing/internal/scenarios/index.js +0 -97
  1548. package/testing/internal/scenarios/index.js.map +0 -1
  1549. package/testing/matchers/arrayWithLength.d.ts +0 -3
  1550. package/testing/matchers/arrayWithLength.js +0 -11
  1551. package/testing/matchers/arrayWithLength.js.map +0 -1
  1552. package/testing/matchers/index.d.ts +0 -2
  1553. package/testing/matchers/index.js +0 -26
  1554. package/testing/matchers/index.js.map +0 -1
  1555. package/testing/matchers/toBeDisposed.d.ts +0 -3
  1556. package/testing/matchers/toBeDisposed.js +0 -16
  1557. package/testing/matchers/toBeDisposed.js.map +0 -1
  1558. package/testing/matchers/toBeGarbageCollected.d.ts +0 -8
  1559. package/testing/matchers/toBeGarbageCollected.js +0 -39
  1560. package/testing/matchers/toBeGarbageCollected.js.map +0 -1
  1561. package/testing/matchers/toComplete.d.ts +0 -4
  1562. package/testing/matchers/toComplete.js +0 -26
  1563. package/testing/matchers/toComplete.js.map +0 -1
  1564. package/testing/matchers/toEmitAnything.d.ts +0 -4
  1565. package/testing/matchers/toEmitAnything.js +0 -29
  1566. package/testing/matchers/toEmitAnything.js.map +0 -1
  1567. package/testing/matchers/toEmitError.d.ts +0 -7
  1568. package/testing/matchers/toEmitError.js +0 -42
  1569. package/testing/matchers/toEmitError.js.map +0 -1
  1570. package/testing/matchers/toEmitNext.d.ts +0 -4
  1571. package/testing/matchers/toEmitNext.js +0 -26
  1572. package/testing/matchers/toEmitNext.js.map +0 -1
  1573. package/testing/matchers/toEmitTypedValue.d.ts +0 -7
  1574. package/testing/matchers/toEmitTypedValue.js +0 -38
  1575. package/testing/matchers/toEmitTypedValue.js.map +0 -1
  1576. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +0 -11
  1577. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +0 -22
  1578. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +0 -1
  1579. package/testing/matchers/toMatchDocument.d.ts +0 -4
  1580. package/testing/matchers/toMatchDocument.js +0 -32
  1581. package/testing/matchers/toMatchDocument.js.map +0 -1
  1582. package/testing/matchers/toStrictEqualTyped.d.ts +0 -3
  1583. package/testing/matchers/toStrictEqualTyped.js +0 -22
  1584. package/testing/matchers/toStrictEqualTyped.js.map +0 -1
  1585. package/testing/matchers/utils/getSerializableProperties.d.ts +0 -2
  1586. package/testing/matchers/utils/getSerializableProperties.js +0 -20
  1587. package/testing/matchers/utils/getSerializableProperties.js.map +0 -1
  1588. package/utilities/caching/caches.d.ts +0 -34
  1589. package/utilities/caching/caches.js +0 -69
  1590. package/utilities/caching/caches.js.map +0 -1
  1591. package/utilities/common/arrays.d.ts +0 -3
  1592. package/utilities/common/arrays.js +0 -6
  1593. package/utilities/common/arrays.js.map +0 -1
  1594. package/utilities/common/canUse.d.ts +0 -3
  1595. package/utilities/common/canUse.js +0 -21
  1596. package/utilities/common/canUse.js.map +0 -1
  1597. package/utilities/common/canonicalStringify.js +0 -85
  1598. package/utilities/common/canonicalStringify.js.map +0 -1
  1599. package/utilities/common/cloneDeep.d.ts +0 -5
  1600. package/utilities/common/cloneDeep.js +0 -38
  1601. package/utilities/common/cloneDeep.js.map +0 -1
  1602. package/utilities/common/compact.d.ts +0 -7
  1603. package/utilities/common/compact.js +0 -19
  1604. package/utilities/common/compact.js.map +0 -1
  1605. package/utilities/common/errorHandling.d.ts +0 -4
  1606. package/utilities/common/errorHandling.js +0 -19
  1607. package/utilities/common/errorHandling.js.map +0 -1
  1608. package/utilities/common/incrementalResult.d.ts +0 -7
  1609. package/utilities/common/incrementalResult.js +0 -38
  1610. package/utilities/common/incrementalResult.js.map +0 -1
  1611. package/utilities/common/makeUniqueId.d.ts +0 -2
  1612. package/utilities/common/makeUniqueId.js +0 -9
  1613. package/utilities/common/makeUniqueId.js.map +0 -1
  1614. package/utilities/common/maybeDeepFreeze.d.ts +0 -4
  1615. package/utilities/common/maybeDeepFreeze.js +0 -38
  1616. package/utilities/common/maybeDeepFreeze.js.map +0 -1
  1617. package/utilities/common/mergeDeep.d.ts +0 -14
  1618. package/utilities/common/mergeDeep.js +0 -78
  1619. package/utilities/common/mergeDeep.js.map +0 -1
  1620. package/utilities/common/mergeOptions.d.ts +0 -5
  1621. package/utilities/common/mergeOptions.js +0 -10
  1622. package/utilities/common/mergeOptions.js.map +0 -1
  1623. package/utilities/common/objects.d.ts +0 -3
  1624. package/utilities/common/objects.js +0 -10
  1625. package/utilities/common/objects.js.map +0 -1
  1626. package/utilities/common/omitDeep.d.ts +0 -3
  1627. package/utilities/common/omitDeep.js +0 -40
  1628. package/utilities/common/omitDeep.js.map +0 -1
  1629. package/utilities/common/stringifyForDisplay.d.ts +0 -2
  1630. package/utilities/common/stringifyForDisplay.js +0 -10
  1631. package/utilities/common/stringifyForDisplay.js.map +0 -1
  1632. package/utilities/globals/global.js +0 -14
  1633. package/utilities/globals/global.js.map +0 -1
  1634. package/utilities/globals/index.js.map +0 -1
  1635. package/utilities/globals/maybe.js.map +0 -1
  1636. package/utilities/graphql/directives.d.ts +0 -20
  1637. package/utilities/graphql/directives.js +0 -99
  1638. package/utilities/graphql/directives.js.map +0 -1
  1639. package/utilities/graphql/fragments.d.ts +0 -35
  1640. package/utilities/graphql/fragments.js +0 -120
  1641. package/utilities/graphql/fragments.js.map +0 -1
  1642. package/utilities/graphql/getFromAST.d.ts +0 -15
  1643. package/utilities/graphql/getFromAST.js +0 -91
  1644. package/utilities/graphql/getFromAST.js.map +0 -1
  1645. package/utilities/internal/observables.d.ts +0 -14
  1646. package/utilities/internal/observables.js +0 -26
  1647. package/utilities/internal/observables.js.map +0 -1
  1648. package/utilities/promises/decoration.d.ts +0 -18
  1649. package/utilities/promises/decoration.js +0 -39
  1650. package/utilities/promises/decoration.js.map +0 -1
  1651. package/utilities/promises/preventUnhandledRejection.js.map +0 -1
  1652. package/utilities/types/DeepOmit.d.ts +0 -10
  1653. package/utilities/types/DeepPartial.d.ts +0 -12
  1654. package/utilities/types/DeepPartial.js.map +0 -1
  1655. package/utilities/types/IsStrictlyAny.d.ts +0 -5
  1656. package/utilities/types/IsStrictlyAny.js +0 -2
  1657. package/utilities/types/IsStrictlyAny.js.map +0 -1
  1658. package/utilities/types/NoInfer.d.ts +0 -27
  1659. package/utilities/types/OnlyRequiredProperties.d.ts +0 -7
  1660. package/utilities/types/OnlyRequiredProperties.js +0 -2
  1661. package/utilities/types/OnlyRequiredProperties.js.map +0 -1
  1662. package/utilities/types/Prettify.d.ts +0 -4
  1663. package/utilities/types/Primitive.d.ts +0 -2
  1664. package/utilities/types/RemoveIndexSignature.d.ts +0 -4
  1665. package/utilities/types/UnionToIntersection.d.ts +0 -2
  1666. package/utilities/types/UnionToIntersection.js +0 -2
  1667. package/utilities/types/UnionToIntersection.js.map +0 -1
  1668. /package/__cjs/utilities/{types/DeepPartial.cjs → DeepPartial.cjs} +0 -0
  1669. /package/__cjs/utilities/{globals → internal/globals}/global.cjs +0 -0
  1670. /package/__cjs/utilities/{globals → internal/globals}/global.d.cts +0 -0
  1671. /package/__cjs/utilities/{globals → internal/globals}/index.cjs +0 -0
  1672. /package/__cjs/utilities/{globals → internal/globals}/index.d.cts +0 -0
  1673. /package/__cjs/utilities/{globals → internal/globals}/maybe.cjs +0 -0
  1674. /package/__cjs/utilities/{globals → internal/globals}/maybe.d.cts +0 -0
  1675. /package/__cjs/utilities/{promises → internal}/preventUnhandledRejection.cjs +0 -0
  1676. /package/__cjs/utilities/{promises → internal}/preventUnhandledRejection.d.cts +0 -0
  1677. /package/__cjs/utilities/{types → internal/types}/DeepOmit.cjs +0 -0
  1678. /package/__cjs/utilities/{types → internal/types}/DeepOmit.cjs.map +0 -0
  1679. /package/__cjs/utilities/{types → internal/types}/NoInfer.cjs +0 -0
  1680. /package/__cjs/utilities/{types → internal/types}/NoInfer.cjs.map +0 -0
  1681. /package/__cjs/utilities/{types → internal/types}/Prettify.cjs +0 -0
  1682. /package/__cjs/utilities/{types → internal/types}/Prettify.cjs.map +0 -0
  1683. /package/__cjs/utilities/{types → internal/types}/Primitive.cjs +0 -0
  1684. /package/__cjs/utilities/{types → internal/types}/Primitive.cjs.map +0 -0
  1685. /package/__cjs/utilities/{types → internal/types}/RemoveIndexSignature.cjs +0 -0
  1686. /package/__cjs/utilities/{types → internal/types}/RemoveIndexSignature.cjs.map +0 -0
  1687. /package/__cjs/utilities/{common → shared}/canonicalStringify.d.cts +0 -0
  1688. /package/utilities/{types/DeepPartial.js → DeepPartial.js} +0 -0
  1689. /package/utilities/{globals → internal/globals}/global.d.ts +0 -0
  1690. /package/utilities/{globals → internal/globals}/index.d.ts +0 -0
  1691. /package/utilities/{globals → internal/globals}/index.js +0 -0
  1692. /package/utilities/{globals → internal/globals}/maybe.d.ts +0 -0
  1693. /package/utilities/{globals → internal/globals}/maybe.js +0 -0
  1694. /package/utilities/{promises → internal}/preventUnhandledRejection.d.ts +0 -0
  1695. /package/utilities/{promises → internal}/preventUnhandledRejection.js +0 -0
  1696. /package/utilities/{types → internal/types}/DeepOmit.js +0 -0
  1697. /package/utilities/{types → internal/types}/DeepOmit.js.map +0 -0
  1698. /package/utilities/{types → internal/types}/NoInfer.js +0 -0
  1699. /package/utilities/{types → internal/types}/NoInfer.js.map +0 -0
  1700. /package/utilities/{types → internal/types}/Prettify.js +0 -0
  1701. /package/utilities/{types → internal/types}/Prettify.js.map +0 -0
  1702. /package/utilities/{types → internal/types}/Primitive.js +0 -0
  1703. /package/utilities/{types → internal/types}/Primitive.js.map +0 -0
  1704. /package/utilities/{types → internal/types}/RemoveIndexSignature.js +0 -0
  1705. /package/utilities/{types → internal/types}/RemoveIndexSignature.js.map +0 -0
  1706. /package/utilities/{common → shared}/canonicalStringify.d.ts +0 -0
@@ -1,123 +1,77 @@
1
1
  import { equal } from "@wry/equality";
2
- import { Slot } from "optimism";
3
- import { BehaviorSubject, filter, lastValueFrom, tap } from "rxjs";
4
- import { cloneDeep, compact, getOperationDefinition, getQueryDefinition, preventUnhandledRejection, } from "@apollo/client/utilities";
2
+ import { BehaviorSubject, Observable, share, Subject, tap } from "rxjs";
5
3
  import { __DEV__ } from "@apollo/client/utilities/environment";
6
- import { toQueryResult } from "@apollo/client/utilities/internal";
4
+ import { compact, filterMap, getOperationDefinition, getOperationName, getQueryDefinition, preventUnhandledRejection, toQueryResult, } from "@apollo/client/utilities/internal";
7
5
  import { invariant } from "@apollo/client/utilities/invariant";
8
6
  import { equalByQuery } from "./equalByQuery.js";
9
7
  import { isNetworkRequestInFlight, NetworkStatus } from "./networkStatus.js";
10
8
  const { assign, hasOwnProperty } = Object;
11
- const newNetworkStatusSymbol = Symbol();
12
- const uninitialized = {};
9
+ const uninitialized = {
10
+ loading: true,
11
+ networkStatus: NetworkStatus.loading,
12
+ data: undefined,
13
+ dataState: "empty",
14
+ partial: true,
15
+ };
16
+ const empty = {
17
+ loading: false,
18
+ networkStatus: NetworkStatus.ready,
19
+ data: undefined,
20
+ dataState: "empty",
21
+ partial: true,
22
+ };
13
23
  export class ObservableQuery {
14
- /**
15
- * @internal
16
- * A slot used by the `useQuery` hook to indicate that `client.watchQuery`
17
- * should not register the query immediately, but instead wait for the query to
18
- * be started registered with the `QueryManager` when `useSyncExternalStore`
19
- * actively subscribes to it.
20
- */
21
- static inactiveOnCreation = new Slot();
22
24
  options;
23
- queryId;
24
25
  queryName;
26
+ /**
27
+ * @internal will be read and written from `QueryInfo`
28
+ *
29
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
30
+ */
31
+ _lastWrite;
25
32
  // The `query` computed property will always reflect the document transformed
26
33
  // by the last run query. `this.options.query` will always reflect the raw
27
34
  // untransformed query to ensure document transforms with runtime conditionals
28
35
  // are run on the original document.
29
36
  get query() {
30
- return this.lastQuery || this.options.query;
37
+ return this.lastQuery;
31
38
  }
32
- // Computed shorthand for this.options.variables, preserved for
33
- // backwards compatibility.
34
39
  /**
35
40
  * An object containing the variables that were provided for the query.
36
41
  */
37
42
  get variables() {
38
43
  return this.options.variables;
39
44
  }
45
+ unsubscribeFromCache;
46
+ input;
40
47
  subject;
41
- observable;
42
48
  isTornDown;
43
49
  queryManager;
44
50
  subscriptions = new Set();
45
- waitForOwnResult;
46
- last;
51
+ /**
52
+ * If an `ObservableQuery` is created with a `network-only` fetch policy,
53
+ * it should actually start receiving cache updates, but not before it has
54
+ * received the first result from the network.
55
+ */
56
+ waitForNetworkResult;
47
57
  lastQuery;
48
- queryInfo;
49
58
  linkSubscription;
50
- linkObservable;
51
59
  pollingInfo;
52
- networkStatus;
53
- constructor({ queryManager, queryInfo, options, }) {
54
- this.networkStatus = NetworkStatus.loading;
55
- let startedInactive = ObservableQuery.inactiveOnCreation.getValue();
56
- this.subject = new BehaviorSubject(uninitialized);
57
- this.observable = this.subject.pipe(tap({
58
- subscribe: () => {
59
- if (startedInactive) {
60
- queryManager["queries"].set(this.queryId, queryInfo);
61
- startedInactive = false;
62
- }
63
- if (!this.subject.observed) {
64
- if (this.subject.value === uninitialized) {
65
- // Emitting a value in the `subscribe` callback of `tap` gives
66
- // the subject a chance to save this initial result without
67
- // emitting the placeholder value since this callback is executed
68
- // before `tap` subscribes to the source observable (the subject).
69
- // `reobserve` also has the chance to update this value if it
70
- // synchronously emits one (usually due to reporting a cache
71
- // value).
72
- //
73
- // We don't initialize the `BehaviorSubject` with
74
- // `getInitialResult` because its possible the cache might have
75
- // updated between when the `ObservableQuery` was instantiated and
76
- // when it is subscribed to. Updating the value here ensures we
77
- // report the most up-to-date result from the cache.
78
- this.subject.next(this.getInitialResult());
79
- }
80
- this.reobserve();
81
- // TODO: See if we can rework updatePolling to better handle this.
82
- // reobserve calls updatePolling but this `subscribe` callback is
83
- // called before the subject is subscribed to so `updatePolling`
84
- // can't accurately detect if there is an active subscription.
85
- // Calling it again here ensures that it can detect if it can poll
86
- setTimeout(() => this.updatePolling());
87
- }
88
- },
89
- unsubscribe: () => {
90
- if (!this.subject.observed) {
91
- this.tearDownQuery();
92
- }
93
- },
94
- }), filter((result) => {
95
- return (this.options.fetchPolicy !== "standby" &&
96
- (this.options.notifyOnNetworkStatusChange ||
97
- !result.loading ||
98
- // data could be defined for cache-and-network fetch policies
99
- // when emitting the cache result while loading the network result
100
- !!result.data));
101
- }));
102
- this["@@observable"] = () => this;
103
- if (Symbol.observable) {
104
- this[Symbol.observable] = () => this;
105
- }
106
- this.pipe = this.observable.pipe.bind(this.observable);
107
- this.subscribe = this.observable.subscribe.bind(this.observable);
108
- // related classes
109
- this.queryInfo = queryInfo;
60
+ get networkStatus() {
61
+ return this.subject.getValue().result.networkStatus;
62
+ }
63
+ constructor({ queryManager, options, transformedQuery = queryManager.transform(options.query), }) {
110
64
  this.queryManager = queryManager;
111
65
  // active state
112
- this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);
66
+ this.waitForNetworkResult = options.fetchPolicy === "network-only";
113
67
  this.isTornDown = false;
114
- this.subscribe = this.subscribe.bind(this);
115
68
  this.subscribeToMore = this.subscribeToMore.bind(this);
116
69
  this.maskResult = this.maskResult.bind(this);
117
70
  const { watchQuery: { fetchPolicy: defaultFetchPolicy = "cache-first" } = {}, } = queryManager.defaultOptions;
118
71
  const { fetchPolicy = defaultFetchPolicy,
119
72
  // Make sure we don't store "standby" as the initialFetchPolicy.
120
73
  initialFetchPolicy = fetchPolicy === "standby" ? defaultFetchPolicy : (fetchPolicy), } = options;
74
+ this.lastQuery = transformedQuery;
121
75
  this.options = {
122
76
  ...options,
123
77
  // Remember the initial options.fetchPolicy so we can revert back to this
@@ -127,11 +81,84 @@ export class ObservableQuery {
127
81
  // This ensures this.options.fetchPolicy always has a string value, in
128
82
  // case options.fetchPolicy was not provided.
129
83
  fetchPolicy,
84
+ variables: this.getVariablesWithDefaults(options.variables),
130
85
  };
131
- this.queryId = queryInfo.queryId || queryManager.generateQueryId();
86
+ this.initializeObservablesQueue();
87
+ this["@@observable"] = () => this;
88
+ if (Symbol.observable) {
89
+ this[Symbol.observable] = () => this;
90
+ }
132
91
  const opDef = getOperationDefinition(this.query);
133
92
  this.queryName = opDef && opDef.name && opDef.name.value;
134
93
  }
94
+ initializeObservablesQueue() {
95
+ this.subject = new BehaviorSubject({
96
+ query: this.query,
97
+ variables: this.variables,
98
+ result: uninitialized,
99
+ meta: {},
100
+ });
101
+ const observable = this.subject.pipe(tap({
102
+ subscribe: () => {
103
+ if (!this.subject.observed) {
104
+ this.reobserve();
105
+ // TODO: See if we can rework updatePolling to better handle this.
106
+ // reobserve calls updatePolling but this `subscribe` callback is
107
+ // called before the subject is subscribed to so `updatePolling`
108
+ // can't accurately detect if there is an active subscription.
109
+ // Calling it again here ensures that it can detect if it can poll
110
+ setTimeout(() => this.updatePolling());
111
+ }
112
+ },
113
+ unsubscribe: () => {
114
+ if (!this.subject.observed) {
115
+ this.tearDownQuery();
116
+ }
117
+ },
118
+ }), filterMap(({ query, variables, result: current, meta }, context) => {
119
+ const { shouldEmit } = meta;
120
+ if (current === uninitialized) {
121
+ // reset internal state after `ObservableQuery.reset()`
122
+ context.previous = undefined;
123
+ context.previousVariables = undefined;
124
+ }
125
+ if (this.options.fetchPolicy === "standby" ||
126
+ shouldEmit === 2 /* EmitBehavior.never */)
127
+ return;
128
+ if (shouldEmit === 1 /* EmitBehavior.force */)
129
+ return emit();
130
+ const { previous, previousVariables } = context;
131
+ if (previous) {
132
+ const documentInfo = this.queryManager.getDocumentInfo(query);
133
+ const dataMasking = this.queryManager.dataMasking;
134
+ const maskedQuery = dataMasking ? documentInfo.nonReactiveQuery : query;
135
+ const resultIsEqual = dataMasking || documentInfo.hasNonreactiveDirective ?
136
+ equalByQuery(maskedQuery, previous, current, variables)
137
+ : equal(previous, current);
138
+ if (resultIsEqual && equal(previousVariables, variables)) {
139
+ return;
140
+ }
141
+ }
142
+ if (shouldEmit === 3 /* EmitBehavior.networkStatusChange */ &&
143
+ (!this.options.notifyOnNetworkStatusChange ||
144
+ equal(previous, current))) {
145
+ return;
146
+ }
147
+ return emit();
148
+ function emit() {
149
+ context.previous = current;
150
+ context.previousVariables = variables;
151
+ return current;
152
+ }
153
+ }, () => ({})));
154
+ this.pipe = observable.pipe.bind(observable);
155
+ this.subscribe = observable.subscribe.bind(observable);
156
+ this.input = new Subject();
157
+ // we want to feed many streams into `this.subject`, but none of them should
158
+ // be able to close `this.input`
159
+ this.input.complete = () => { };
160
+ this.input.pipe(this.operator).subscribe(this.subject);
161
+ }
135
162
  // We can't use Observable['subscribe'] here as the type as it conflicts with
136
163
  // the ability to infer T from Subscribable<T>. This limits the surface area
137
164
  // to the non-deprecated signature which works properly with type inference.
@@ -139,36 +166,48 @@ export class ObservableQuery {
139
166
  pipe;
140
167
  [Symbol.observable];
141
168
  ["@@observable"];
142
- /** @internal */
143
- resetDiff() {
144
- this.queryInfo.resetDiff();
169
+ /**
170
+ * @internal
171
+ *
172
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
173
+ */
174
+ getCacheDiff({ optimistic = true } = {}) {
175
+ return this.queryManager.cache.diff({
176
+ query: this.query,
177
+ variables: this.variables,
178
+ returnPartialData: true,
179
+ optimistic,
180
+ });
145
181
  }
146
- getInitialResult() {
182
+ getInitialResult(initialFetchPolicy) {
147
183
  const fetchPolicy = this.queryManager.prioritizeCacheValues ?
148
184
  "cache-first"
149
- : this.options.fetchPolicy;
150
- const defaultResult = {
151
- data: undefined,
152
- loading: true,
153
- networkStatus: NetworkStatus.loading,
154
- partial: true,
155
- };
185
+ : initialFetchPolicy || this.options.fetchPolicy;
156
186
  const cacheResult = () => {
157
- const diff = this.queryInfo.getDiff();
187
+ const diff = this.getCacheDiff();
188
+ // TODO: queryInfo.getDiff should handle this since cache.diff returns a
189
+ // null when returnPartialData is false
190
+ const data = this.options.returnPartialData || diff.complete ?
191
+ diff.result ?? undefined
192
+ : undefined;
158
193
  return this.maskResult({
159
- data:
160
- // TODO: queryInfo.getDiff should handle this since cache.diff returns a
161
- // null when returnPartialData is false
162
- this.options.returnPartialData || diff.complete ?
163
- diff.result ?? undefined
164
- : undefined,
194
+ data,
195
+ dataState: diff.complete ? "complete"
196
+ : data === undefined ? "empty"
197
+ : "partial",
165
198
  loading: !diff.complete,
166
199
  networkStatus: diff.complete ? NetworkStatus.ready : NetworkStatus.loading,
167
200
  partial: !diff.complete,
168
201
  });
169
202
  };
170
203
  switch (fetchPolicy) {
171
- case "cache-only":
204
+ case "cache-only": {
205
+ return {
206
+ ...cacheResult(),
207
+ loading: false,
208
+ networkStatus: NetworkStatus.ready,
209
+ };
210
+ }
172
211
  case "cache-first":
173
212
  return cacheResult();
174
213
  case "cache-and-network":
@@ -178,127 +217,102 @@ export class ObservableQuery {
178
217
  networkStatus: NetworkStatus.loading,
179
218
  };
180
219
  case "standby":
181
- return {
182
- ...defaultResult,
183
- loading: false,
184
- networkStatus: NetworkStatus.ready,
185
- };
220
+ return empty;
186
221
  default:
187
- return defaultResult;
188
- }
189
- }
190
- getCurrentFullResult(saveAsLastResult = true) {
191
- // Use the last result as long as the variables match this.variables.
192
- const lastResult = this.getLastResult(true);
193
- const networkStatus = this.networkStatus;
194
- const result = {
195
- data: undefined,
196
- partial: true,
197
- ...lastResult,
198
- loading: isNetworkRequestInFlight(networkStatus),
199
- networkStatus,
200
- };
201
- let { fetchPolicy = "cache-first" } = this.options;
202
- const { prioritizeCacheValues } = this.queryManager;
203
- if (prioritizeCacheValues) {
204
- fetchPolicy = "cache-first";
205
- }
206
- if (
207
- // These fetch policies should never deliver data from the cache, unless
208
- // redelivering a previously delivered result.
209
- skipCacheDataFor(fetchPolicy) ||
210
- // If this.options.query has @client(always: true) fields, we cannot
211
- // trust diff.result, since it was read from the cache without running
212
- // local resolvers (and it's too late to run resolvers now, since we must
213
- // return a result synchronously).
214
- this.queryManager.getDocumentInfo(this.query).hasForcedResolvers) {
215
- // Fall through.
216
- }
217
- else if (this.waitForOwnResult && !prioritizeCacheValues) {
218
- // This would usually be a part of `QueryInfo.getDiff()`.
219
- // which we skip in the waitForOwnResult case since we are not
220
- // interested in the diff.
221
- this.queryInfo["updateWatch"]();
222
+ return uninitialized;
222
223
  }
223
- else {
224
- const diff = this.queryInfo.getDiff();
225
- result.partial = !diff.complete;
226
- if (diff.complete || this.options.returnPartialData) {
227
- result.data = diff.result;
228
- }
229
- if (result.data === null) {
230
- result.data = void 0;
231
- }
232
- if (diff.complete) {
233
- // If the diff is complete, and we're using a FetchPolicy that
234
- // terminates after a complete cache read, we can assume the next result
235
- // we receive will have NetworkStatus.ready and !loading.
236
- if (diff.complete &&
237
- result.networkStatus === NetworkStatus.loading &&
238
- (fetchPolicy === "cache-first" || fetchPolicy === "cache-only")) {
239
- result.networkStatus = NetworkStatus.ready;
240
- result.loading = false;
224
+ }
225
+ resubscribeCache() {
226
+ const { variables, fetchPolicy } = this.options;
227
+ const query = this.query;
228
+ const shouldUnsubscribe = fetchPolicy === "standby" ||
229
+ fetchPolicy === "no-cache" ||
230
+ this.waitForNetworkResult;
231
+ const shouldResubscribe = !isEqualQuery({ query, variables }, this.unsubscribeFromCache) &&
232
+ !this.waitForNetworkResult;
233
+ if (shouldUnsubscribe || shouldResubscribe) {
234
+ this.unsubscribeFromCache?.();
235
+ }
236
+ if (shouldUnsubscribe || !shouldResubscribe) {
237
+ return;
238
+ }
239
+ const watch = {
240
+ query,
241
+ variables,
242
+ optimistic: true,
243
+ watcher: this,
244
+ callback: (diff) => {
245
+ const info = this.queryManager.getDocumentInfo(query);
246
+ if (info.hasClientExports || info.hasForcedResolvers) {
247
+ // If this is not set to something different than `diff`, we will
248
+ // not be notified about future cache changes with an equal `diff`.
249
+ // That would be the case if we are working with client-only fields
250
+ // that are forced or with `exports` fields that might change, causing
251
+ // local resovlers to return a new result.
252
+ // This is based on an implementation detail of `InMemoryCache`, which
253
+ // is not optimal - but the only alternative to this would be to
254
+ // resubscribe to the cache asynchonouly, which would bear the risk of
255
+ // missing further synchronous updates.
256
+ watch.lastDiff = undefined;
241
257
  }
242
- }
243
- // We need to check for both both `error` and `errors` field because there
244
- // are cases where sometimes `error` is set, but not `errors` and
245
- // vice-versa. This will be updated in the next major version when
246
- // `errors` is deprecated in favor of `error`.
247
- if (result.networkStatus === NetworkStatus.ready && result.error) {
248
- result.networkStatus = NetworkStatus.error;
249
- }
250
- if (__DEV__ &&
251
- !diff.complete &&
252
- !result.loading &&
253
- !result.data &&
254
- !result.error) {
255
- logMissingFieldErrors(diff.missing);
256
- }
257
- }
258
- if (saveAsLastResult) {
259
- this.updateLastResult(result);
260
- }
261
- return result;
262
- }
263
- getCurrentResult(saveAsLastResult = true) {
264
- return this.maskResult(this.getCurrentFullResult(saveAsLastResult));
265
- }
266
- // Compares newResult to the snapshot we took of this.lastResult when it was
267
- // first received.
268
- isDifferentFromLastResult(newResult, variables) {
269
- if (!this.last) {
270
- return true;
271
- }
272
- const documentInfo = this.queryManager.getDocumentInfo(this.query);
273
- const dataMasking = this.queryManager.dataMasking;
274
- const query = dataMasking ? documentInfo.nonReactiveQuery : this.query;
275
- const resultIsDifferent = dataMasking || documentInfo.hasNonreactiveDirective ?
276
- !equalByQuery(query, this.last.result, newResult, this.variables)
277
- : !equal(this.last.result, newResult);
278
- return (resultIsDifferent || (variables && !equal(this.last.variables, variables)));
279
- }
280
- getLast(key, variablesMustMatch) {
281
- const last = this.last;
282
- if (last &&
283
- last[key] &&
284
- (!variablesMustMatch || equal(last.variables, this.variables))) {
285
- return last[key];
286
- }
287
- }
288
- // TODO: Consider deprecating this function
289
- getLastResult(variablesMustMatch) {
290
- return this.getLast("result", variablesMustMatch);
291
- }
292
- // TODO: Consider deprecating this function
293
- getLastError(variablesMustMatch) {
294
- return this.getLast("error", variablesMustMatch);
295
- }
296
- // TODO: Consider deprecating this function
297
- resetLastResults() {
298
- delete this.last;
299
- // TODO: This will need to be removed when tearing down an ObservableQuery
300
- // since the observable will terminate.
301
- this.isTornDown = false;
258
+ if (watch.lastOwnDiff === diff) {
259
+ // skip cache updates that were caused by our own writes
260
+ return;
261
+ }
262
+ const { result: previousResult } = this.subject.getValue();
263
+ if (!diff.complete &&
264
+ // If we are trying to deliver an incomplete cache result, we avoid
265
+ // reporting it if the query has errored, otherwise we let the broadcast try
266
+ // and repair the partial result by refetching the query. This check avoids
267
+ // a situation where a query that errors and another succeeds with
268
+ // overlapping data does not report the partial data result to the errored
269
+ // query.
270
+ //
271
+ // See https://github.com/apollographql/apollo-client/issues/11400 for more
272
+ // information on this issue.
273
+ (previousResult.error ||
274
+ // Prevent to schedule a notify directly after the `ObservableQuery`
275
+ // has been `reset` (which will set the `previousResult` to `uninitialized` or `empty`)
276
+ // as in those cases, `resetCache` will manually call `refetch` with more intentional timing.
277
+ previousResult === uninitialized ||
278
+ previousResult === empty)) {
279
+ return;
280
+ }
281
+ if (!equal(previousResult.data, diff.result)) {
282
+ this.scheduleNotify();
283
+ }
284
+ },
285
+ };
286
+ const cancelWatch = this.queryManager.cache.watch(watch);
287
+ this.unsubscribeFromCache = Object.assign(() => {
288
+ this.unsubscribeFromCache = undefined;
289
+ cancelWatch();
290
+ }, { query, variables });
291
+ }
292
+ stableLastResult;
293
+ getCurrentResult() {
294
+ const { result: current } = this.subject.getValue();
295
+ let value = (
296
+ // if the `current` result is in an error state, we will always return that
297
+ // error state, even if we have no observers
298
+ (current.networkStatus === NetworkStatus.error ||
299
+ // if we have observers, we are watching the cache and
300
+ // this.subject.getValue() will always be up to date
301
+ this.hasObservers() || // if we are using a `no-cache` fetch policy in which case this
302
+ // `ObservableQuery` cannot have been updated from the outside - in
303
+ // that case, we prefer to keep the current value
304
+ this.options.fetchPolicy === "no-cache")) ?
305
+ current
306
+ // otherwise, the `current` value might be outdated due to missed
307
+ // external updates - calculate it again
308
+ : this.getInitialResult();
309
+ if (value === uninitialized) {
310
+ value = this.getInitialResult();
311
+ }
312
+ if (!equal(this.stableLastResult, value)) {
313
+ this.stableLastResult = value;
314
+ }
315
+ return this.stableLastResult;
302
316
  }
303
317
  /**
304
318
  * Update the variables of this observable query, and fetch the new results.
@@ -308,6 +322,7 @@ export class ObservableQuery {
308
322
  * the previous values of those variables will be used.
309
323
  */
310
324
  refetch(variables) {
325
+ const { fetchPolicy } = this.options;
311
326
  const reobserveOptions = {
312
327
  // Always disable polling for refetches.
313
328
  pollInterval: 0,
@@ -315,7 +330,6 @@ export class ObservableQuery {
315
330
  // Unless the provided fetchPolicy always consults the network
316
331
  // (no-cache, network-only, or cache-and-network), override it with
317
332
  // network-only to force the refetch for this fetchQuery call.
318
- const { fetchPolicy } = this.options;
319
333
  if (fetchPolicy === "no-cache") {
320
334
  reobserveOptions.fetchPolicy = "no-cache";
321
335
  }
@@ -326,35 +340,37 @@ export class ObservableQuery {
326
340
  const queryDef = getQueryDefinition(this.query);
327
341
  const vars = queryDef.variableDefinitions;
328
342
  if (!vars || !vars.some((v) => v.variable.name.value === "variables")) {
329
- __DEV__ && invariant.warn(67, variables, queryDef.name?.value || queryDef);
343
+ __DEV__ && invariant.warn(79, variables, queryDef.name?.value || queryDef);
330
344
  }
331
345
  }
332
- if (variables && !equal(this.options.variables, variables)) {
346
+ if (variables && !equal(this.variables, variables)) {
333
347
  // Update the existing options with new variables
334
- reobserveOptions.variables = this.options.variables = {
335
- ...this.options.variables,
336
- ...variables,
337
- };
348
+ reobserveOptions.variables = this.options.variables =
349
+ this.getVariablesWithDefaults({ ...this.variables, ...variables });
338
350
  }
339
- this.queryInfo.resetLastWrite();
340
- return this.reobserve({
341
- ...reobserveOptions,
342
- [newNetworkStatusSymbol]: NetworkStatus.refetch,
351
+ this._lastWrite = undefined;
352
+ return this._reobserve(reobserveOptions, {
353
+ newNetworkStatus: NetworkStatus.refetch,
343
354
  });
344
355
  }
345
356
  /**
346
357
  * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).
347
358
  */
348
- fetchMore(fetchMoreOptions) {
359
+ fetchMore({ query, variables, context, errorPolicy, updateQuery, }) {
360
+ invariant(
361
+ this.options.fetchPolicy !== "cache-only",
362
+ 80,
363
+ getOperationName(this.query, "(anonymous)")
364
+ );
349
365
  const combinedOptions = {
350
- ...(fetchMoreOptions.query ? fetchMoreOptions : ({
351
- ...this.options,
352
- query: this.options.query,
353
- ...fetchMoreOptions,
354
- variables: {
355
- ...this.options.variables,
356
- ...fetchMoreOptions.variables,
357
- },
366
+ ...compact(this.options, { errorPolicy: "none" }, {
367
+ query,
368
+ context,
369
+ errorPolicy,
370
+ }),
371
+ variables: (query ? variables : ({
372
+ ...this.variables,
373
+ ...variables,
358
374
  })),
359
375
  // The fetchMore request goes immediately to the network and does
360
376
  // not automatically write its result to the cache (hence no-cache
@@ -365,36 +381,34 @@ export class ObservableQuery {
365
381
  notifyOnNetworkStatusChange: this.options.notifyOnNetworkStatusChange,
366
382
  };
367
383
  combinedOptions.query = this.transformDocument(combinedOptions.query);
368
- const qid = this.queryManager.generateQueryId();
369
384
  // If a temporary query is passed to `fetchMore`, we don't want to store
370
385
  // it as the last query result since it may be an optimized query for
371
386
  // pagination. We will however run the transforms on the original document
372
387
  // as well as the document passed in `fetchMoreOptions` to ensure the cache
373
388
  // uses the most up-to-date document which may rely on runtime conditionals.
374
389
  this.lastQuery =
375
- fetchMoreOptions.query ?
390
+ query ?
376
391
  this.transformDocument(this.options.query)
377
392
  : combinedOptions.query;
378
- // Simulate a loading result for the original query with
379
- // result.networkStatus === NetworkStatus.fetchMore.
380
- const originalNetworkStatus = this.networkStatus;
381
- this.networkStatus = NetworkStatus.fetchMore;
382
- if (combinedOptions.notifyOnNetworkStatusChange) {
383
- this.observe();
384
- }
385
- const updatedQuerySet = new Set();
386
- const updateQuery = fetchMoreOptions?.updateQuery;
393
+ let wasUpdated = false;
387
394
  const isCached = this.options.fetchPolicy !== "no-cache";
388
395
  if (!isCached) {
389
- invariant(updateQuery, 68);
396
+ invariant(updateQuery, 81);
390
397
  }
398
+ const { finalize, pushNotification } = this.pushOperation(NetworkStatus.fetchMore);
399
+ pushNotification({
400
+ source: "newNetworkStatus",
401
+ kind: "N",
402
+ value: {},
403
+ }, { shouldEmit: 3 /* EmitBehavior.networkStatusChange */ });
391
404
  return this.queryManager
392
- .fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore)
405
+ .fetchQuery(combinedOptions, NetworkStatus.fetchMore)
393
406
  .then((fetchMoreResult) => {
394
- this.queryManager.removeQuery(qid);
395
- if (this.networkStatus === NetworkStatus.fetchMore) {
396
- this.networkStatus = originalNetworkStatus;
397
- }
407
+ // disable the `fetchMore` override that is currently active
408
+ // the next updates caused by this should not be `fetchMore` anymore,
409
+ // but `ready` or whatever other calculated loading state is currently
410
+ // appropriate
411
+ finalize();
398
412
  if (isCached) {
399
413
  // Performing this cache update inside a cache.batch transaction ensures
400
414
  // any affected cache.watch watchers are notified at most once about any
@@ -403,7 +417,6 @@ export class ObservableQuery {
403
417
  // fetchMore cache results back to this ObservableQuery.
404
418
  this.queryManager.cache.batch({
405
419
  update: (cache) => {
406
- const { updateQuery } = fetchMoreOptions;
407
420
  if (updateQuery) {
408
421
  cache.updateQuery({
409
422
  query: this.query,
@@ -429,9 +442,9 @@ export class ObservableQuery {
429
442
  }
430
443
  },
431
444
  onWatchUpdated: (watch) => {
432
- // Record the DocumentNode associated with any watched query whose
433
- // data were updated by the cache writes above.
434
- updatedQuerySet.add(watch.query);
445
+ if (watch.watcher === this) {
446
+ wasUpdated = true;
447
+ }
435
448
  },
436
449
  });
437
450
  }
@@ -450,28 +463,41 @@ export class ObservableQuery {
450
463
  // adjustment to the types on `updateQuery` since that function
451
464
  // expects that the first argument always contains previous result
452
465
  // data, but not `undefined`.
453
- const lastResult = this.getLast("result");
466
+ const lastResult = this.getCurrentResult();
454
467
  const data = updateQuery(lastResult.data, {
455
468
  fetchMoreResult: fetchMoreResult.data,
456
469
  variables: combinedOptions.variables,
457
470
  });
458
- this.reportResult({
459
- ...lastResult,
460
- networkStatus: originalNetworkStatus,
461
- loading: isNetworkRequestInFlight(originalNetworkStatus),
462
- data: data,
463
- }, this.variables);
471
+ // was reportResult
472
+ pushNotification({
473
+ kind: "N",
474
+ value: {
475
+ ...lastResult,
476
+ networkStatus: NetworkStatus.ready,
477
+ // will be overwritten anyways, just here for types sake
478
+ loading: false,
479
+ data: data,
480
+ dataState: lastResult.dataState === "streaming" ? "streaming" : "complete",
481
+ },
482
+ source: "network",
483
+ });
464
484
  }
465
485
  return this.maskResult(fetchMoreResult);
466
486
  })
467
487
  .finally(() => {
488
+ // call `finalize` a second time in case the `.then` case above was not reached
489
+ finalize();
468
490
  // In case the cache writes above did not generate a broadcast
469
491
  // notification (which would have been intercepted by onWatchUpdated),
470
492
  // likely because the written data were the same as what was already in
471
493
  // the cache, we still want fetchMore to deliver its final loading:false
472
494
  // result with the unchanged data.
473
- if (isCached && !updatedQuerySet.has(this.query)) {
474
- this.reobserveCacheFirst();
495
+ if (isCached && !wasUpdated) {
496
+ pushNotification({
497
+ kind: "N",
498
+ source: "newNetworkStatus",
499
+ value: {},
500
+ }, { shouldEmit: 1 /* EmitBehavior.force */ });
475
501
  }
476
502
  });
477
503
  }
@@ -499,7 +525,7 @@ export class ObservableQuery {
499
525
  onError(error);
500
526
  }
501
527
  else {
502
- __DEV__ && invariant.error(69, error);
528
+ __DEV__ && invariant.error(82, error);
503
529
  }
504
530
  return;
505
531
  }
@@ -518,10 +544,15 @@ export class ObservableQuery {
518
544
  }
519
545
  };
520
546
  }
521
- /** @internal */
522
- silentSetOptions(newOptions) {
547
+ /**
548
+ * @internal
549
+ *
550
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
551
+ */
552
+ applyOptions(newOptions) {
523
553
  const mergedOptions = compact(this.options, newOptions || {});
524
554
  assign(this.options, mergedOptions);
555
+ this.updatePolling();
525
556
  }
526
557
  /**
527
558
  * Update the variables of this observable query, and fetch the new results
@@ -542,23 +573,23 @@ export class ObservableQuery {
542
573
  * the previous values of those variables will be used.
543
574
  */
544
575
  async setVariables(variables) {
576
+ variables = this.getVariablesWithDefaults(variables);
545
577
  if (equal(this.variables, variables)) {
546
578
  // If we have no observers, then we don't actually want to make a network
547
579
  // request. As soon as someone observes the query, the request will kick
548
580
  // off. For now, we just store any changes. (See #1077)
549
- return toQueryResult(this.subject.getValue());
581
+ return toQueryResult(this.getCurrentResult());
550
582
  }
551
583
  this.options.variables = variables;
552
584
  // See comment above
553
585
  if (!this.hasObservers()) {
554
- return toQueryResult(this.subject.getValue());
586
+ return toQueryResult(this.getCurrentResult());
555
587
  }
556
- return this.reobserve({
588
+ return this._reobserve({
557
589
  // Reset options.fetchPolicy to its original value.
558
590
  fetchPolicy: this.options.initialFetchPolicy,
559
591
  variables,
560
- [newNetworkStatusSymbol]: NetworkStatus.setVariables,
561
- });
592
+ }, { newNetworkStatus: NetworkStatus.setVariables });
562
593
  }
563
594
  /**
564
595
  * A function that enables you to update the query's cached result without executing a followup GraphQL operation.
@@ -567,12 +598,7 @@ export class ObservableQuery {
567
598
  */
568
599
  updateQuery(mapFn) {
569
600
  const { queryManager } = this;
570
- const { result, complete } = queryManager.cache.diff({
571
- query: this.options.query,
572
- variables: this.variables,
573
- returnPartialData: true,
574
- optimistic: false,
575
- });
601
+ const { result, complete } = this.getCacheDiff({ optimistic: false });
576
602
  const newResult = mapFn(result, {
577
603
  variables: this.variables,
578
604
  complete: !!complete,
@@ -624,12 +650,7 @@ export class ObservableQuery {
624
650
  // that end, the options.nextFetchPolicy option provides an easy way to
625
651
  // update options.fetchPolicy after the initial network request, without
626
652
  // having to call observableQuery.reobserve.
627
- options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {
628
- reason,
629
- options,
630
- observable: this,
631
- initialFetchPolicy,
632
- });
653
+ options.fetchPolicy = options.nextFetchPolicy.call(options, fetchPolicy, { reason, options, observable: this, initialFetchPolicy });
633
654
  }
634
655
  else if (reason === "variables-changed") {
635
656
  options.fetchPolicy = initialFetchPolicy;
@@ -640,35 +661,133 @@ export class ObservableQuery {
640
661
  }
641
662
  return options.fetchPolicy;
642
663
  }
643
- fetch(options, newNetworkStatus, emitLoadingState, query) {
664
+ fetch(options, networkStatus, fetchQuery, operator) {
644
665
  // TODO Make sure we update the networkStatus (and infer fetchVariables)
645
666
  // before actually committing to the fetch.
646
- const queryInfo = this.queryManager.getOrCreateQuery(this.queryId);
647
- queryInfo.setObservableQuery(this);
648
- return this.queryManager.fetchObservableWithInfo(queryInfo, options, newNetworkStatus, query, emitLoadingState);
667
+ const initialFetchPolicy = this.options.fetchPolicy;
668
+ options.context ??= {};
669
+ let synchronouslyEmitted = false;
670
+ const onCacheHit = () => {
671
+ synchronouslyEmitted = true;
672
+ };
673
+ const fetchQueryOperator = // we cannot use `tap` here, since it allows only for a "before subscription"
674
+
675
+ // hook with `subscribe` and we care for "directly before and after subscription"
676
+ (source) => new Observable((subscriber) => {
677
+ try {
678
+ return source.subscribe({
679
+ next(value) {
680
+ synchronouslyEmitted = true;
681
+ subscriber.next(value);
682
+ },
683
+ error: (error) => subscriber.error(error),
684
+ complete: () => subscriber.complete(),
685
+ });
686
+ }
687
+ finally {
688
+ if (!synchronouslyEmitted) {
689
+ operation.override = networkStatus;
690
+ this.input.next({
691
+ kind: "N",
692
+ source: "newNetworkStatus",
693
+ value: {
694
+ resetError: true,
695
+ },
696
+ query,
697
+ variables,
698
+ meta: {
699
+ shouldEmit: 3 /* EmitBehavior.networkStatusChange */,
700
+ /*
701
+ * The moment this notification is emitted, `nextFetchPolicy`
702
+ * might already have switched from a `network-only` to a
703
+ * `cache-something` policy, so we want to ensure that the
704
+ * loading state emit doesn't accidentally read from the cache
705
+ * in those cases.
706
+ */
707
+ fetchPolicy: initialFetchPolicy,
708
+ },
709
+ });
710
+ }
711
+ }
712
+ });
713
+ let { observable, fromLink } = this.queryManager.fetchObservableWithInfo(options, {
714
+ networkStatus,
715
+ query: fetchQuery,
716
+ onCacheHit,
717
+ fetchQueryOperator,
718
+ observableQuery: this,
719
+ });
720
+ // track query and variables from the start of the operation
721
+ const { query, variables } = this;
722
+ const operation = {
723
+ abort: () => {
724
+ subscription.unsubscribe();
725
+ },
726
+ query,
727
+ variables,
728
+ };
729
+ this.activeOperations.add(operation);
730
+ let forceFirstValueEmit = networkStatus == NetworkStatus.refetch ||
731
+ networkStatus == NetworkStatus.setVariables;
732
+ observable = observable.pipe(operator, share());
733
+ const subscription = observable
734
+ .pipe(tap({
735
+ next: (notification) => {
736
+ if (notification.source === "newNetworkStatus" ||
737
+ (notification.kind === "N" && notification.value.loading)) {
738
+ operation.override = networkStatus;
739
+ }
740
+ else {
741
+ delete operation.override;
742
+ }
743
+ },
744
+ finalize: () => this.activeOperations.delete(operation),
745
+ }))
746
+ .subscribe({
747
+ next: (value) => {
748
+ const meta = {};
749
+ if (forceFirstValueEmit &&
750
+ value.kind === "N" &&
751
+ "loading" in value.value &&
752
+ !value.value.loading) {
753
+ forceFirstValueEmit = false;
754
+ meta.shouldEmit = 1 /* EmitBehavior.force */;
755
+ }
756
+ this.input.next({ ...value, query, variables, meta });
757
+ },
758
+ });
759
+ return { fromLink, subscription, observable };
649
760
  }
650
761
  // Turns polling on or off based on this.options.pollInterval.
762
+ didWarnCacheOnlyPolling = false;
651
763
  updatePolling() {
652
764
  // Avoid polling in SSR mode
653
765
  if (this.queryManager.ssrMode) {
654
766
  return;
655
767
  }
656
- const { pollingInfo, options: { pollInterval }, } = this;
657
- if (!pollInterval || !this.hasObservers()) {
768
+ const { pollingInfo, options: { fetchPolicy, pollInterval }, } = this;
769
+ if (!pollInterval || !this.hasObservers() || fetchPolicy === "cache-only") {
770
+ if (__DEV__) {
771
+ if (!this.didWarnCacheOnlyPolling &&
772
+ pollInterval &&
773
+ fetchPolicy === "cache-only") {
774
+ __DEV__ && invariant.warn(83, getOperationName(this.query, "(anonymous)"));
775
+ this.didWarnCacheOnlyPolling = true;
776
+ }
777
+ }
658
778
  this.cancelPolling();
659
779
  return;
660
780
  }
661
- if (pollingInfo && pollingInfo.interval === pollInterval) {
781
+ if (pollingInfo?.interval === pollInterval) {
662
782
  return;
663
783
  }
664
- invariant(pollInterval, 70);
665
784
  const info = pollingInfo || (this.pollingInfo = {});
666
785
  info.interval = pollInterval;
667
786
  const maybeFetch = () => {
668
787
  if (this.pollingInfo) {
669
788
  if (!isNetworkRequestInFlight(this.networkStatus) &&
670
789
  !this.options.skipPollAttempt?.()) {
671
- this.reobserve({
790
+ this._reobserve({
672
791
  // Most fetchPolicy options don't make sense to use in a polling context, as
673
792
  // users wouldn't want to be polling the cache directly. However, network-only and
674
793
  // no-cache are both useful for when the user wants to control whether or not the
@@ -676,7 +795,8 @@ export class ObservableQuery {
676
795
  fetchPolicy: this.options.initialFetchPolicy === "no-cache" ?
677
796
  "no-cache"
678
797
  : "network-only",
679
- [newNetworkStatusSymbol]: NetworkStatus.poll,
798
+ }, {
799
+ newNetworkStatus: NetworkStatus.poll,
680
800
  }).then(poll, poll);
681
801
  }
682
802
  else {
@@ -700,45 +820,27 @@ export class ObservableQuery {
700
820
  delete this.pollingInfo;
701
821
  }
702
822
  }
703
- updateLastResult(newResult, variables = this.variables) {
704
- let error = this.getLastError();
705
- // Preserve this.last.error unless the variables have changed.
706
- if (error && this.last && !equal(variables, this.last.variables)) {
707
- error = void 0;
708
- }
709
- return (this.last = {
710
- result: this.queryManager.assumeImmutableResults ?
711
- newResult
712
- : cloneDeep(newResult),
713
- variables,
714
- ...(error ? { error } : null),
715
- });
716
- }
717
823
  /**
718
824
  * Reevaluate the query, optionally against new options. New options will be
719
825
  * merged with the current options when given.
720
826
  */
721
827
  reobserve(newOptions) {
828
+ return this._reobserve(newOptions);
829
+ }
830
+ _reobserve(newOptions, internalOptions) {
722
831
  this.isTornDown = false;
723
- let newNetworkStatus;
724
- if (newOptions) {
725
- newNetworkStatus = newOptions[newNetworkStatusSymbol];
726
- // Avoid setting the symbol option in this.options
727
- delete newOptions[newNetworkStatusSymbol];
728
- }
832
+ let { newNetworkStatus } = internalOptions || {};
833
+ this.queryManager.obsQueries.add(this);
729
834
  const useDisposableObservable =
730
835
  // Refetching uses a disposable Observable to allow refetches using different
731
- // options/variables, without permanently altering the options of the
836
+ // options, without permanently altering the options of the
732
837
  // original ObservableQuery.
733
838
  newNetworkStatus === NetworkStatus.refetch ||
734
- // The fetchMore method does not actually call the reobserve method, but,
735
- // if it did, it would definitely use a disposable Observable.
736
- newNetworkStatus === NetworkStatus.fetchMore ||
737
839
  // Polling uses a disposable Observable so the polling options (which force
738
840
  // fetchPolicy to be "network-only" or "no-cache") won't override the original options.
739
841
  newNetworkStatus === NetworkStatus.poll;
740
842
  // Save the old variables, since Object.assign may modify them below.
741
- const oldVariables = this.options.variables;
843
+ const oldVariables = this.variables;
742
844
  const oldFetchPolicy = this.options.fetchPolicy;
743
845
  const mergedOptions = compact(this.options, newOptions || {});
744
846
  const options = useDisposableObservable ?
@@ -751,8 +853,17 @@ export class ObservableQuery {
751
853
  // We want to ensure we can re-run the custom document transforms the next
752
854
  // time a request is made against the original query.
753
855
  const query = this.transformDocument(options.query);
754
- const { fetchPolicy } = options;
755
856
  this.lastQuery = query;
857
+ // Reevaluate variables to allow resetting variables with variables: undefined,
858
+ // otherwise `compact` will ignore the `variables` key in `newOptions`. We
859
+ // do this after we run the query transform to ensure we get default
860
+ // variables from the transformed query.
861
+ //
862
+ // Note: updating options.variables may mutate this.options.variables
863
+ // in the case of a non-disposable query. This is intentional.
864
+ if (newOptions && "variables" in newOptions) {
865
+ options.variables = this.getVariablesWithDefaults(newOptions.variables);
866
+ }
756
867
  if (!useDisposableObservable) {
757
868
  // We can skip calling updatePolling if we're not changing this.options.
758
869
  this.updatePolling();
@@ -762,13 +873,14 @@ export class ObservableQuery {
762
873
  newOptions.variables &&
763
874
  !equal(newOptions.variables, oldVariables) &&
764
875
  // Don't mess with the fetchPolicy if it's currently "standby".
765
- fetchPolicy !== "standby" &&
876
+ options.fetchPolicy !== "standby" &&
766
877
  // If we're changing the fetchPolicy anyway, don't try to change it here
767
878
  // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.
768
- (fetchPolicy === oldFetchPolicy ||
879
+ (options.fetchPolicy === oldFetchPolicy ||
769
880
  // A `nextFetchPolicy` function has even higher priority, though,
770
881
  // so in that case `applyNextFetchPolicy` must be called.
771
882
  typeof options.nextFetchPolicy === "function")) {
883
+ // This might mutate options.fetchPolicy
772
884
  this.applyNextFetchPolicy("variables-changed", options);
773
885
  if (newNetworkStatus === void 0) {
774
886
  newNetworkStatus = NetworkStatus.setVariables;
@@ -785,187 +897,334 @@ export class ObservableQuery {
785
897
  }
786
898
  // QueryManager does not emit any values for standby fetch policies so we
787
899
  // want ensure that the networkStatus remains ready.
788
- if (fetchPolicy === "standby") {
900
+ if (options.fetchPolicy === "standby") {
789
901
  newNetworkStatus = NetworkStatus.ready;
790
902
  }
791
903
  }
792
- if (fetchPolicy === "standby") {
904
+ if (options.fetchPolicy === "standby") {
793
905
  this.cancelPolling();
794
906
  }
795
- this.networkStatus = newNetworkStatus;
796
- this.waitForOwnResult &&= skipCacheDataFor(options.fetchPolicy);
797
- const finishWaitingForOwnResult = () => {
798
- if (this.linkObservable === observable) {
799
- this.waitForOwnResult = false;
907
+ this.resubscribeCache();
908
+ const { promise, operator: promiseOperator } = getTrackingOperatorPromise((value) => {
909
+ switch (value.kind) {
910
+ case "E":
911
+ throw value.error;
912
+ case "N":
913
+ if (value.source !== "newNetworkStatus" && !value.value.loading)
914
+ return value.value;
800
915
  }
801
- };
802
- const variables = options.variables && { ...options.variables };
803
- const { notifyOnNetworkStatusChange = true } = options;
804
- const { observable, fromLink } = this.fetch(options, newNetworkStatus, notifyOnNetworkStatusChange &&
805
- oldNetworkStatus !== newNetworkStatus &&
806
- isNetworkRequestInFlight(newNetworkStatus), query);
807
- const observer = {
808
- next: (result) => {
809
- if (equal(this.variables, variables)) {
810
- finishWaitingForOwnResult();
811
- this.reportResult(result, variables);
812
- }
813
- },
814
- error: (error) => {
815
- if (equal(this.variables, variables)) {
816
- finishWaitingForOwnResult();
817
- this.reportError(error, variables);
818
- }
819
- },
820
- };
916
+ },
917
+ // This default value should only be used when using a `fetchPolicy` of
918
+ // `standby` since that fetch policy completes without emitting a
919
+ // result. Since we are converting this to a QueryResult type, we
920
+ // omit the extra fields from ApolloQueryResult in the default value.
921
+ options.fetchPolicy === "standby" ?
922
+ { data: undefined }
923
+ : undefined);
924
+ const { subscription, observable, fromLink } = this.fetch(options, newNetworkStatus, query, promiseOperator);
821
925
  if (!useDisposableObservable && (fromLink || !this.linkSubscription)) {
822
926
  if (this.linkSubscription) {
823
927
  this.linkSubscription.unsubscribe();
824
928
  }
825
- this.linkObservable = observable;
826
- this.linkSubscription = observable.subscribe(observer);
929
+ this.linkSubscription = subscription;
827
930
  }
828
- else {
829
- observable.subscribe(observer);
830
- }
831
- return preventUnhandledRejection(
832
- // Note: lastValueFrom will create a separate subscription to the
833
- // observable which means that terminating this ObservableQuery will not
834
- // cancel the request from the link chain.
835
- lastValueFrom(observable, {
836
- // This default value should only be used when using a `fetchPolicy` of
837
- // `standby` since that fetch policy completes without emitting a
838
- // result. Since we are converting this to a QueryResult type, we
839
- // omit the extra fields from ApolloQueryResult in the default value.
840
- defaultValue: { data: undefined },
841
- }).then((result) => toQueryResult(this.maskResult(result))));
842
- }
843
- // (Re)deliver the current result to this.observers without applying fetch
844
- // policies or making network requests.
845
- observe() {
846
- this.reportResult(
847
- // Passing false is important so that this.getCurrentResult doesn't
848
- // save the fetchMore result as this.lastResult, causing it to be
849
- // ignored due to the this.isDifferentFromLastResult check in
850
- // this.reportResult.
851
- this.getCurrentFullResult(false), this.variables);
852
- }
853
- reportResult(result, variables) {
854
- const lastError = this.getLastError();
855
- const isDifferent = this.isDifferentFromLastResult(result, variables);
856
- // Update the last result even when isDifferentFromLastResult returns false,
857
- // because the query may be using the @nonreactive directive, and we want to
858
- // save the the latest version of any nonreactive subtrees (in case
859
- // getCurrentResult is called), even though we skip broadcasting changes.
860
- this.updateLastResult(result, variables);
861
- this.networkStatus = result.networkStatus;
862
- if (lastError || isDifferent) {
863
- this.subject.next(this.maskResult(result));
864
- }
865
- }
866
- reportError(error, variables) {
867
- // Since we don't get the current result on errors, only the error, we
868
- // must mirror the updates that occur in QueryStore.markQueryError here
869
- const errorResult = {
870
- data: undefined,
871
- partial: true,
872
- ...this.getLastResult(),
873
- error,
874
- networkStatus: NetworkStatus.error,
875
- loading: false,
876
- };
877
- this.updateLastResult(errorResult, variables);
878
- this.networkStatus = NetworkStatus.error;
879
- this.last.error = error;
880
- this.subject.next(errorResult);
931
+ const ret = Object.assign(preventUnhandledRejection(promise
932
+ .then((result) => toQueryResult(this.maskResult(result)))
933
+ .finally(() => {
934
+ if (!this.hasObservers() && this.activeOperations.size === 0) {
935
+ // If `reobserve` was called on a query without any obervers,
936
+ // the teardown logic would never be called, so we need to
937
+ // call it here to ensure the query is properly torn down.
938
+ this.tearDownQuery();
939
+ }
940
+ })), {
941
+ retain: () => {
942
+ const subscription = observable.subscribe({});
943
+ const unsubscribe = () => subscription.unsubscribe();
944
+ promise.then(unsubscribe, unsubscribe);
945
+ return ret;
946
+ },
947
+ });
948
+ return ret;
881
949
  }
882
950
  hasObservers() {
883
951
  return this.subject.observed;
884
952
  }
953
+ /**
954
+ * Tears down the `ObservableQuery` and stops all active operations by sending a `complete` notification.
955
+ */
956
+ stop() {
957
+ this.subject.complete();
958
+ this.initializeObservablesQueue();
959
+ this.tearDownQuery();
960
+ }
885
961
  tearDownQuery() {
886
962
  if (this.isTornDown)
887
963
  return;
888
- if (this.linkObservable && this.linkSubscription) {
964
+ this.resetNotifications();
965
+ this.unsubscribeFromCache?.();
966
+ if (this.linkSubscription) {
889
967
  this.linkSubscription.unsubscribe();
890
- delete this.linkObservable;
891
968
  delete this.linkSubscription;
892
969
  }
893
970
  this.stopPolling();
894
971
  // stop all active GraphQL subscriptions
895
972
  this.subscriptions.forEach((sub) => sub.unsubscribe());
896
973
  this.subscriptions.clear();
897
- this.queryManager.stopQuery(this.queryId);
974
+ this.queryManager.obsQueries.delete(this);
898
975
  this.isTornDown = true;
976
+ this.abortActiveOperations();
977
+ this._lastWrite = undefined;
899
978
  }
900
979
  transformDocument(document) {
901
980
  return this.queryManager.transform(document);
902
981
  }
903
982
  maskResult(result) {
904
- return result && "data" in result ?
905
- {
906
- ...result,
907
- data: this.queryManager.maskOperation({
908
- document: this.query,
909
- data: result.data,
910
- fetchPolicy: this.options.fetchPolicy,
911
- id: this.queryId,
912
- }),
913
- }
914
- : result;
983
+ const masked = this.queryManager.maskOperation({
984
+ document: this.query,
985
+ data: result.data,
986
+ fetchPolicy: this.options.fetchPolicy,
987
+ cause: this,
988
+ });
989
+ // Maintain object identity as much as possible
990
+ return masked === result.data ? result : { ...result, data: masked };
915
991
  }
916
992
  dirty = false;
917
993
  notifyTimeout;
918
- /** @internal */
994
+ /**
995
+ * @internal
996
+ *
997
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
998
+ */
919
999
  resetNotifications() {
920
- this.cancelNotifyTimeout();
921
- this.dirty = false;
922
- }
923
- cancelNotifyTimeout() {
924
1000
  if (this.notifyTimeout) {
925
1001
  clearTimeout(this.notifyTimeout);
926
1002
  this.notifyTimeout = void 0;
927
1003
  }
1004
+ this.dirty = false;
928
1005
  }
929
- /** @internal */
1006
+ /**
1007
+ * @internal
1008
+ *
1009
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1010
+ */
930
1011
  scheduleNotify() {
931
1012
  if (this.dirty)
932
1013
  return;
933
1014
  this.dirty = true;
934
1015
  if (!this.notifyTimeout) {
935
- this.notifyTimeout = setTimeout(() => this.notify(), 0);
1016
+ this.notifyTimeout = setTimeout(() => this.notify(true), 0);
936
1017
  }
937
1018
  }
938
- /** @internal */
939
- notify() {
940
- this.cancelNotifyTimeout();
941
- if (this.dirty) {
942
- if (this.options.fetchPolicy == "cache-only" ||
1019
+ /**
1020
+ * @internal
1021
+ *
1022
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1023
+ */
1024
+ notify(scheduled = false) {
1025
+ if (!scheduled) {
1026
+ // For queries with client exports or forced resolvers, we don't want to
1027
+ // synchronously reobserve the cache on broadcast,
1028
+ // but actually wait for the `scheduleNotify` timeout triggered by the
1029
+ // `cache.watch` callback from `resubscribeCache`.
1030
+ const info = this.queryManager.getDocumentInfo(this.query);
1031
+ if (info.hasClientExports || info.hasForcedResolvers) {
1032
+ return;
1033
+ }
1034
+ }
1035
+ const { dirty } = this;
1036
+ this.resetNotifications();
1037
+ if (dirty &&
1038
+ (this.options.fetchPolicy == "cache-only" ||
943
1039
  this.options.fetchPolicy == "cache-and-network" ||
944
- !isNetworkRequestInFlight(this.networkStatus)) {
945
- const diff = this.queryInfo.getDiff();
946
- if (diff.fromOptimisticTransaction) {
947
- // If this diff came from an optimistic transaction, deliver the
948
- // current cache data to the ObservableQuery, but don't perform a
949
- // reobservation, since oq.reobserveCacheFirst might make a network
950
- // request, and we never want to trigger network requests in the
951
- // middle of optimistic updates.
952
- this.observe();
953
- }
954
- else {
955
- // Otherwise, make the ObservableQuery "reobserve" the latest data
956
- // using a temporary fetch policy of "cache-first", so complete cache
957
- // results have a chance to be delivered without triggering additional
958
- // network requests, even when options.fetchPolicy is "network-only"
959
- // or "cache-and-network". All other fetch policies are preserved by
960
- // this method, and are handled by calling oq.reobserve(). If this
961
- // reobservation is spurious, isDifferentFromLastResult still has a
962
- // chance to catch it before delivery to ObservableQuery subscribers.
963
- this.reobserveCacheFirst();
964
- }
1040
+ !this.activeOperations.size)) {
1041
+ const diff = this.getCacheDiff();
1042
+ if (
1043
+ // `fromOptimisticTransaction` is not avaiable through the `cache.diff`
1044
+ // code path, so we need to check it this way
1045
+ equal(diff.result, this.getCacheDiff({ optimistic: false }).result)) {
1046
+ //If this diff did not come from an optimistic transaction
1047
+ // make the ObservableQuery "reobserve" the latest data
1048
+ // using a temporary fetch policy of "cache-first", so complete cache
1049
+ // results have a chance to be delivered without triggering additional
1050
+ // network requests, even when options.fetchPolicy is "network-only"
1051
+ // or "cache-and-network". All other fetch policies are preserved by
1052
+ // this method, and are handled by calling oq.reobserve(). If this
1053
+ // reobservation is spurious, distinctUntilChanged still has a
1054
+ // chance to catch it before delivery to ObservableQuery subscribers.
1055
+ this.reobserveCacheFirst();
1056
+ }
1057
+ else {
1058
+ // If this diff came from an optimistic transaction, deliver the
1059
+ // current cache data to the ObservableQuery, but don't perform a
1060
+ // reobservation, since oq.reobserveCacheFirst might make a network
1061
+ // request, and we never want to trigger network requests in the
1062
+ // middle of optimistic updates.
1063
+ this.input.next({
1064
+ kind: "N",
1065
+ value: {
1066
+ data: diff.result,
1067
+ dataState: diff.complete ? "complete"
1068
+ : diff.result ? "partial"
1069
+ : "empty",
1070
+ networkStatus: NetworkStatus.ready,
1071
+ loading: false,
1072
+ error: undefined,
1073
+ partial: !diff.complete,
1074
+ },
1075
+ source: "cache",
1076
+ query: this.query,
1077
+ variables: this.variables,
1078
+ meta: {},
1079
+ });
965
1080
  }
966
1081
  }
967
- this.dirty = false;
968
1082
  }
1083
+ activeOperations = new Set();
1084
+ pushOperation(networkStatus) {
1085
+ let aborted = false;
1086
+ // track query and variables from the start of the operation
1087
+ const { query, variables } = this;
1088
+ const finalize = () => {
1089
+ this.activeOperations.delete(operation);
1090
+ };
1091
+ const operation = {
1092
+ override: networkStatus,
1093
+ abort: () => {
1094
+ aborted = true;
1095
+ finalize();
1096
+ },
1097
+ query,
1098
+ variables,
1099
+ };
1100
+ this.activeOperations.add(operation);
1101
+ return {
1102
+ finalize,
1103
+ pushNotification: (notification, additionalMeta) => {
1104
+ if (!aborted) {
1105
+ this.input.next({
1106
+ ...notification,
1107
+ query,
1108
+ variables,
1109
+ meta: { ...additionalMeta },
1110
+ });
1111
+ }
1112
+ },
1113
+ };
1114
+ }
1115
+ calculateNetworkStatus(baseNetworkStatus) {
1116
+ if (baseNetworkStatus === NetworkStatus.streaming) {
1117
+ return baseNetworkStatus;
1118
+ }
1119
+ // in the future, this could be more complex logic, e.g. "refetch" and
1120
+ // "fetchMore" having priority over "polling" or "loading" network statuses
1121
+ // as for now we just take the "latest" operation that is still active,
1122
+ // as that lines up best with previous behavior[]
1123
+ const operation = Array.from(this.activeOperations.values()).findLast((operation) => isEqualQuery(operation, this) && operation.override !== undefined);
1124
+ return operation?.override ?? baseNetworkStatus;
1125
+ }
1126
+ abortActiveOperations() {
1127
+ this.activeOperations.forEach((operation) => operation.abort());
1128
+ }
1129
+ /**
1130
+ * @internal
1131
+ * Called from `clearStore`.
1132
+ * * resets the query to its initial state
1133
+ * * cancels all active operations and their subscriptions
1134
+ *
1135
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1136
+ */
1137
+ reset() {
1138
+ // exception for cache-only queries - we reset them into a "ready" state
1139
+ // as we won't trigger a refetch for them
1140
+ const resetToEmpty = this.options.fetchPolicy === "cache-only";
1141
+ this.setResult(resetToEmpty ? empty : uninitialized, {
1142
+ shouldEmit: resetToEmpty ? 1 /* EmitBehavior.force */ : 2 /* EmitBehavior.never */,
1143
+ });
1144
+ this.abortActiveOperations();
1145
+ }
1146
+ /**
1147
+ * @internal
1148
+ *
1149
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1150
+ */
1151
+ setResult(result, additionalMeta) {
1152
+ this.input.next({
1153
+ source: "setResult",
1154
+ kind: "N",
1155
+ value: result,
1156
+ query: this.query,
1157
+ variables: this.variables,
1158
+ meta: { ...additionalMeta },
1159
+ });
1160
+ }
1161
+ operator = filterMap((notification) => {
1162
+ const { query, variables, meta } = notification;
1163
+ if (notification.source === "setResult") {
1164
+ return { query, variables, result: notification.value, meta };
1165
+ }
1166
+ if (notification.kind === "C" || !isEqualQuery(notification, this)) {
1167
+ return;
1168
+ }
1169
+ let result;
1170
+ const previous = this.subject.getValue();
1171
+ if (notification.source === "cache") {
1172
+ result = notification.value;
1173
+ if (result.networkStatus === NetworkStatus.ready &&
1174
+ result.partial &&
1175
+ (!this.options.returnPartialData ||
1176
+ previous.result.networkStatus === NetworkStatus.error) &&
1177
+ this.options.fetchPolicy !== "cache-only") {
1178
+ return;
1179
+ }
1180
+ }
1181
+ else if (notification.source === "network") {
1182
+ if (this.waitForNetworkResult) {
1183
+ this.waitForNetworkResult = false;
1184
+ this.resubscribeCache();
1185
+ }
1186
+ result =
1187
+ notification.kind === "E" ?
1188
+ {
1189
+ ...(isEqualQuery(previous, notification) ?
1190
+ previous.result
1191
+ : { data: undefined, dataState: "empty", partial: true }),
1192
+ error: notification.error,
1193
+ networkStatus: NetworkStatus.error,
1194
+ loading: false,
1195
+ }
1196
+ : notification.value;
1197
+ if (notification.kind === "E" && result.dataState === "streaming") {
1198
+ result.dataState = "complete";
1199
+ }
1200
+ if (result.error) {
1201
+ meta.shouldEmit = 1 /* EmitBehavior.force */;
1202
+ }
1203
+ }
1204
+ else if (notification.source === "newNetworkStatus") {
1205
+ const baseResult = isEqualQuery(previous, notification) ?
1206
+ previous.result
1207
+ : this.getInitialResult(meta.fetchPolicy);
1208
+ const { resetError } = notification.value;
1209
+ const error = resetError ? undefined : baseResult.error;
1210
+ const networkStatus = error ? NetworkStatus.error : NetworkStatus.ready;
1211
+ result = {
1212
+ ...baseResult,
1213
+ error,
1214
+ networkStatus,
1215
+ };
1216
+ }
1217
+ // every code path until here should have either returned or set a result,
1218
+ // but typescript needs a little help
1219
+ invariant(result);
1220
+ // normalize result shape
1221
+ if (!result.error)
1222
+ delete result.error;
1223
+ result.networkStatus = this.calculateNetworkStatus(result.networkStatus);
1224
+ result.loading = isNetworkRequestInFlight(result.networkStatus);
1225
+ result = this.maskResult(result);
1226
+ return { query, variables, result, meta };
1227
+ });
969
1228
  // Reobserve with fetchPolicy effectively set to "cache-first", triggering
970
1229
  // delivery of any new data from the cache, possibly falling back to the network
971
1230
  // if any cache data are missing. This allows _complete_ cache results to be
@@ -976,7 +1235,7 @@ export class ObservableQuery {
976
1235
  reobserveCacheFirst() {
977
1236
  const { fetchPolicy, nextFetchPolicy } = this.options;
978
1237
  if (fetchPolicy === "cache-and-network" || fetchPolicy === "network-only") {
979
- return this.reobserve({
1238
+ this.reobserve({
980
1239
  fetchPolicy: "cache-first",
981
1240
  // Use a temporary nextFetchPolicy function that replaces itself with the
982
1241
  // previous nextFetchPolicy value and returns the original fetchPolicy.
@@ -994,17 +1253,58 @@ export class ObservableQuery {
994
1253
  },
995
1254
  });
996
1255
  }
997
- return this.reobserve();
1256
+ else {
1257
+ this.reobserve();
1258
+ }
1259
+ }
1260
+ getVariablesWithDefaults(variables) {
1261
+ return this.queryManager.getVariables(this.query, variables);
998
1262
  }
999
1263
  }
1000
1264
  export function logMissingFieldErrors(missing) {
1001
1265
  if (__DEV__ && missing) {
1002
- __DEV__ && invariant.debug(71, missing);
1266
+ __DEV__ && invariant.debug(84, missing);
1003
1267
  }
1004
1268
  }
1005
- function skipCacheDataFor(fetchPolicy /* `undefined` would mean `"cache-first"` */) {
1006
- return (fetchPolicy === "network-only" ||
1007
- fetchPolicy === "no-cache" ||
1008
- fetchPolicy === "standby");
1269
+ function isEqualQuery(a, b) {
1270
+ return !!(a && b && a.query === b.query && equal(a.variables, b.variables));
1271
+ }
1272
+ function getTrackingOperatorPromise(filterMapCb, defaultValue) {
1273
+ let lastValue = defaultValue, resolve, reject;
1274
+ const promise = new Promise((res, rej) => {
1275
+ resolve = res;
1276
+ reject = rej;
1277
+ });
1278
+ const operator = tap({
1279
+ next(value) {
1280
+ try {
1281
+ const newValue = filterMapCb(value);
1282
+ if (newValue !== undefined) {
1283
+ lastValue = newValue;
1284
+ }
1285
+ }
1286
+ catch (error) {
1287
+ reject(error);
1288
+ }
1289
+ },
1290
+ finalize: () => {
1291
+ if (lastValue) {
1292
+ resolve(lastValue);
1293
+ }
1294
+ else {
1295
+ const message = "The operation was aborted.";
1296
+ const name = "AbortError";
1297
+ reject(typeof DOMException !== "undefined" ?
1298
+ new DOMException(message, name)
1299
+ // some environments do not have `DOMException`, e.g. node
1300
+ // uses a normal `Error` with a `name` property instead: https://github.com/phryneas/node/blob/d0579b64f0f6b722f8e49bf8a471dd0d0604a21e/lib/internal/errors.js#L964
1301
+ // error.code is a legacy property that is not used anymore,
1302
+ // and also inconsistent across environments (in supporting
1303
+ // browsers it is `20`, in node `'ABORT_ERR'`) so we omit that.
1304
+ : Object.assign(new Error(message), { name }));
1305
+ }
1306
+ },
1307
+ });
1308
+ return { promise, operator };
1009
1309
  }
1010
1310
  //# sourceMappingURL=ObservableQuery.js.map