@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
@@ -7,125 +7,79 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.ObservableQuery = void 0;
8
8
  exports.logMissingFieldErrors = logMissingFieldErrors;
9
9
  const equality_1 = require("@wry/equality");
10
- const optimism_1 = require("optimism");
11
10
  const rxjs_1 = require("rxjs");
12
- const utilities_1 = require("@apollo/client/utilities");
13
11
  const environment_1 = require("@apollo/client/utilities/environment");
14
12
  const internal_1 = require("@apollo/client/utilities/internal");
15
13
  const invariant_1 = require("@apollo/client/utilities/invariant");
16
14
  const equalByQuery_js_1 = require("./equalByQuery.cjs");
17
15
  const networkStatus_js_1 = require("./networkStatus.cjs");
18
16
  const { assign, hasOwnProperty } = Object;
19
- const newNetworkStatusSymbol = Symbol();
20
- const uninitialized = {};
17
+ const uninitialized = {
18
+ loading: true,
19
+ networkStatus: networkStatus_js_1.NetworkStatus.loading,
20
+ data: undefined,
21
+ dataState: "empty",
22
+ partial: true,
23
+ };
24
+ const empty = {
25
+ loading: false,
26
+ networkStatus: networkStatus_js_1.NetworkStatus.ready,
27
+ data: undefined,
28
+ dataState: "empty",
29
+ partial: true,
30
+ };
21
31
  class ObservableQuery {
22
- /**
23
- * @internal
24
- * A slot used by the `useQuery` hook to indicate that `client.watchQuery`
25
- * should not register the query immediately, but instead wait for the query to
26
- * be started registered with the `QueryManager` when `useSyncExternalStore`
27
- * actively subscribes to it.
28
- */
29
- static inactiveOnCreation = new optimism_1.Slot();
30
32
  options;
31
- queryId;
32
33
  queryName;
34
+ /**
35
+ * @internal will be read and written from `QueryInfo`
36
+ *
37
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
38
+ */
39
+ _lastWrite;
33
40
  // The `query` computed property will always reflect the document transformed
34
41
  // by the last run query. `this.options.query` will always reflect the raw
35
42
  // untransformed query to ensure document transforms with runtime conditionals
36
43
  // are run on the original document.
37
44
  get query() {
38
- return this.lastQuery || this.options.query;
45
+ return this.lastQuery;
39
46
  }
40
- // Computed shorthand for this.options.variables, preserved for
41
- // backwards compatibility.
42
47
  /**
43
48
  * An object containing the variables that were provided for the query.
44
49
  */
45
50
  get variables() {
46
51
  return this.options.variables;
47
52
  }
53
+ unsubscribeFromCache;
54
+ input;
48
55
  subject;
49
- observable;
50
56
  isTornDown;
51
57
  queryManager;
52
58
  subscriptions = new Set();
53
- waitForOwnResult;
54
- last;
59
+ /**
60
+ * If an `ObservableQuery` is created with a `network-only` fetch policy,
61
+ * it should actually start receiving cache updates, but not before it has
62
+ * received the first result from the network.
63
+ */
64
+ waitForNetworkResult;
55
65
  lastQuery;
56
- queryInfo;
57
66
  linkSubscription;
58
- linkObservable;
59
67
  pollingInfo;
60
- networkStatus;
61
- constructor({ queryManager, queryInfo, options, }) {
62
- this.networkStatus = networkStatus_js_1.NetworkStatus.loading;
63
- let startedInactive = ObservableQuery.inactiveOnCreation.getValue();
64
- this.subject = new rxjs_1.BehaviorSubject(uninitialized);
65
- this.observable = this.subject.pipe((0, rxjs_1.tap)({
66
- subscribe: () => {
67
- if (startedInactive) {
68
- queryManager["queries"].set(this.queryId, queryInfo);
69
- startedInactive = false;
70
- }
71
- if (!this.subject.observed) {
72
- if (this.subject.value === uninitialized) {
73
- // Emitting a value in the `subscribe` callback of `tap` gives
74
- // the subject a chance to save this initial result without
75
- // emitting the placeholder value since this callback is executed
76
- // before `tap` subscribes to the source observable (the subject).
77
- // `reobserve` also has the chance to update this value if it
78
- // synchronously emits one (usually due to reporting a cache
79
- // value).
80
- //
81
- // We don't initialize the `BehaviorSubject` with
82
- // `getInitialResult` because its possible the cache might have
83
- // updated between when the `ObservableQuery` was instantiated and
84
- // when it is subscribed to. Updating the value here ensures we
85
- // report the most up-to-date result from the cache.
86
- this.subject.next(this.getInitialResult());
87
- }
88
- this.reobserve();
89
- // TODO: See if we can rework updatePolling to better handle this.
90
- // reobserve calls updatePolling but this `subscribe` callback is
91
- // called before the subject is subscribed to so `updatePolling`
92
- // can't accurately detect if there is an active subscription.
93
- // Calling it again here ensures that it can detect if it can poll
94
- setTimeout(() => this.updatePolling());
95
- }
96
- },
97
- unsubscribe: () => {
98
- if (!this.subject.observed) {
99
- this.tearDownQuery();
100
- }
101
- },
102
- }), (0, rxjs_1.filter)((result) => {
103
- return (this.options.fetchPolicy !== "standby" &&
104
- (this.options.notifyOnNetworkStatusChange ||
105
- !result.loading ||
106
- // data could be defined for cache-and-network fetch policies
107
- // when emitting the cache result while loading the network result
108
- !!result.data));
109
- }));
110
- this["@@observable"] = () => this;
111
- if (Symbol.observable) {
112
- this[Symbol.observable] = () => this;
113
- }
114
- this.pipe = this.observable.pipe.bind(this.observable);
115
- this.subscribe = this.observable.subscribe.bind(this.observable);
116
- // related classes
117
- this.queryInfo = queryInfo;
68
+ get networkStatus() {
69
+ return this.subject.getValue().result.networkStatus;
70
+ }
71
+ constructor({ queryManager, options, transformedQuery = queryManager.transform(options.query), }) {
118
72
  this.queryManager = queryManager;
119
73
  // active state
120
- this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);
74
+ this.waitForNetworkResult = options.fetchPolicy === "network-only";
121
75
  this.isTornDown = false;
122
- this.subscribe = this.subscribe.bind(this);
123
76
  this.subscribeToMore = this.subscribeToMore.bind(this);
124
77
  this.maskResult = this.maskResult.bind(this);
125
78
  const { watchQuery: { fetchPolicy: defaultFetchPolicy = "cache-first" } = {}, } = queryManager.defaultOptions;
126
79
  const { fetchPolicy = defaultFetchPolicy,
127
80
  // Make sure we don't store "standby" as the initialFetchPolicy.
128
81
  initialFetchPolicy = fetchPolicy === "standby" ? defaultFetchPolicy : (fetchPolicy), } = options;
82
+ this.lastQuery = transformedQuery;
129
83
  this.options = {
130
84
  ...options,
131
85
  // Remember the initial options.fetchPolicy so we can revert back to this
@@ -135,11 +89,84 @@ class ObservableQuery {
135
89
  // This ensures this.options.fetchPolicy always has a string value, in
136
90
  // case options.fetchPolicy was not provided.
137
91
  fetchPolicy,
92
+ variables: this.getVariablesWithDefaults(options.variables),
138
93
  };
139
- this.queryId = queryInfo.queryId || queryManager.generateQueryId();
140
- const opDef = (0, utilities_1.getOperationDefinition)(this.query);
94
+ this.initializeObservablesQueue();
95
+ this["@@observable"] = () => this;
96
+ if (Symbol.observable) {
97
+ this[Symbol.observable] = () => this;
98
+ }
99
+ const opDef = (0, internal_1.getOperationDefinition)(this.query);
141
100
  this.queryName = opDef && opDef.name && opDef.name.value;
142
101
  }
102
+ initializeObservablesQueue() {
103
+ this.subject = new rxjs_1.BehaviorSubject({
104
+ query: this.query,
105
+ variables: this.variables,
106
+ result: uninitialized,
107
+ meta: {},
108
+ });
109
+ const observable = this.subject.pipe((0, rxjs_1.tap)({
110
+ subscribe: () => {
111
+ if (!this.subject.observed) {
112
+ this.reobserve();
113
+ // TODO: See if we can rework updatePolling to better handle this.
114
+ // reobserve calls updatePolling but this `subscribe` callback is
115
+ // called before the subject is subscribed to so `updatePolling`
116
+ // can't accurately detect if there is an active subscription.
117
+ // Calling it again here ensures that it can detect if it can poll
118
+ setTimeout(() => this.updatePolling());
119
+ }
120
+ },
121
+ unsubscribe: () => {
122
+ if (!this.subject.observed) {
123
+ this.tearDownQuery();
124
+ }
125
+ },
126
+ }), (0, internal_1.filterMap)(({ query, variables, result: current, meta }, context) => {
127
+ const { shouldEmit } = meta;
128
+ if (current === uninitialized) {
129
+ // reset internal state after `ObservableQuery.reset()`
130
+ context.previous = undefined;
131
+ context.previousVariables = undefined;
132
+ }
133
+ if (this.options.fetchPolicy === "standby" ||
134
+ shouldEmit === 2 /* EmitBehavior.never */)
135
+ return;
136
+ if (shouldEmit === 1 /* EmitBehavior.force */)
137
+ return emit();
138
+ const { previous, previousVariables } = context;
139
+ if (previous) {
140
+ const documentInfo = this.queryManager.getDocumentInfo(query);
141
+ const dataMasking = this.queryManager.dataMasking;
142
+ const maskedQuery = dataMasking ? documentInfo.nonReactiveQuery : query;
143
+ const resultIsEqual = dataMasking || documentInfo.hasNonreactiveDirective ?
144
+ (0, equalByQuery_js_1.equalByQuery)(maskedQuery, previous, current, variables)
145
+ : (0, equality_1.equal)(previous, current);
146
+ if (resultIsEqual && (0, equality_1.equal)(previousVariables, variables)) {
147
+ return;
148
+ }
149
+ }
150
+ if (shouldEmit === 3 /* EmitBehavior.networkStatusChange */ &&
151
+ (!this.options.notifyOnNetworkStatusChange ||
152
+ (0, equality_1.equal)(previous, current))) {
153
+ return;
154
+ }
155
+ return emit();
156
+ function emit() {
157
+ context.previous = current;
158
+ context.previousVariables = variables;
159
+ return current;
160
+ }
161
+ }, () => ({})));
162
+ this.pipe = observable.pipe.bind(observable);
163
+ this.subscribe = observable.subscribe.bind(observable);
164
+ this.input = new rxjs_1.Subject();
165
+ // we want to feed many streams into `this.subject`, but none of them should
166
+ // be able to close `this.input`
167
+ this.input.complete = () => { };
168
+ this.input.pipe(this.operator).subscribe(this.subject);
169
+ }
143
170
  // We can't use Observable['subscribe'] here as the type as it conflicts with
144
171
  // the ability to infer T from Subscribable<T>. This limits the surface area
145
172
  // to the non-deprecated signature which works properly with type inference.
@@ -147,36 +174,48 @@ class ObservableQuery {
147
174
  pipe;
148
175
  [Symbol.observable];
149
176
  ["@@observable"];
150
- /** @internal */
151
- resetDiff() {
152
- this.queryInfo.resetDiff();
177
+ /**
178
+ * @internal
179
+ *
180
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
181
+ */
182
+ getCacheDiff({ optimistic = true } = {}) {
183
+ return this.queryManager.cache.diff({
184
+ query: this.query,
185
+ variables: this.variables,
186
+ returnPartialData: true,
187
+ optimistic,
188
+ });
153
189
  }
154
- getInitialResult() {
190
+ getInitialResult(initialFetchPolicy) {
155
191
  const fetchPolicy = this.queryManager.prioritizeCacheValues ?
156
192
  "cache-first"
157
- : this.options.fetchPolicy;
158
- const defaultResult = {
159
- data: undefined,
160
- loading: true,
161
- networkStatus: networkStatus_js_1.NetworkStatus.loading,
162
- partial: true,
163
- };
193
+ : initialFetchPolicy || this.options.fetchPolicy;
164
194
  const cacheResult = () => {
165
- const diff = this.queryInfo.getDiff();
195
+ const diff = this.getCacheDiff();
196
+ // TODO: queryInfo.getDiff should handle this since cache.diff returns a
197
+ // null when returnPartialData is false
198
+ const data = this.options.returnPartialData || diff.complete ?
199
+ diff.result ?? undefined
200
+ : undefined;
166
201
  return this.maskResult({
167
- data:
168
- // TODO: queryInfo.getDiff should handle this since cache.diff returns a
169
- // null when returnPartialData is false
170
- this.options.returnPartialData || diff.complete ?
171
- diff.result ?? undefined
172
- : undefined,
202
+ data,
203
+ dataState: diff.complete ? "complete"
204
+ : data === undefined ? "empty"
205
+ : "partial",
173
206
  loading: !diff.complete,
174
207
  networkStatus: diff.complete ? networkStatus_js_1.NetworkStatus.ready : networkStatus_js_1.NetworkStatus.loading,
175
208
  partial: !diff.complete,
176
209
  });
177
210
  };
178
211
  switch (fetchPolicy) {
179
- case "cache-only":
212
+ case "cache-only": {
213
+ return {
214
+ ...cacheResult(),
215
+ loading: false,
216
+ networkStatus: networkStatus_js_1.NetworkStatus.ready,
217
+ };
218
+ }
180
219
  case "cache-first":
181
220
  return cacheResult();
182
221
  case "cache-and-network":
@@ -186,127 +225,102 @@ class ObservableQuery {
186
225
  networkStatus: networkStatus_js_1.NetworkStatus.loading,
187
226
  };
188
227
  case "standby":
189
- return {
190
- ...defaultResult,
191
- loading: false,
192
- networkStatus: networkStatus_js_1.NetworkStatus.ready,
193
- };
228
+ return empty;
194
229
  default:
195
- return defaultResult;
196
- }
197
- }
198
- getCurrentFullResult(saveAsLastResult = true) {
199
- // Use the last result as long as the variables match this.variables.
200
- const lastResult = this.getLastResult(true);
201
- const networkStatus = this.networkStatus;
202
- const result = {
203
- data: undefined,
204
- partial: true,
205
- ...lastResult,
206
- loading: (0, networkStatus_js_1.isNetworkRequestInFlight)(networkStatus),
207
- networkStatus,
208
- };
209
- let { fetchPolicy = "cache-first" } = this.options;
210
- const { prioritizeCacheValues } = this.queryManager;
211
- if (prioritizeCacheValues) {
212
- fetchPolicy = "cache-first";
213
- }
214
- if (
215
- // These fetch policies should never deliver data from the cache, unless
216
- // redelivering a previously delivered result.
217
- skipCacheDataFor(fetchPolicy) ||
218
- // If this.options.query has @client(always: true) fields, we cannot
219
- // trust diff.result, since it was read from the cache without running
220
- // local resolvers (and it's too late to run resolvers now, since we must
221
- // return a result synchronously).
222
- this.queryManager.getDocumentInfo(this.query).hasForcedResolvers) {
223
- // Fall through.
224
- }
225
- else if (this.waitForOwnResult && !prioritizeCacheValues) {
226
- // This would usually be a part of `QueryInfo.getDiff()`.
227
- // which we skip in the waitForOwnResult case since we are not
228
- // interested in the diff.
229
- this.queryInfo["updateWatch"]();
230
+ return uninitialized;
230
231
  }
231
- else {
232
- const diff = this.queryInfo.getDiff();
233
- result.partial = !diff.complete;
234
- if (diff.complete || this.options.returnPartialData) {
235
- result.data = diff.result;
236
- }
237
- if (result.data === null) {
238
- result.data = void 0;
239
- }
240
- if (diff.complete) {
241
- // If the diff is complete, and we're using a FetchPolicy that
242
- // terminates after a complete cache read, we can assume the next result
243
- // we receive will have NetworkStatus.ready and !loading.
244
- if (diff.complete &&
245
- result.networkStatus === networkStatus_js_1.NetworkStatus.loading &&
246
- (fetchPolicy === "cache-first" || fetchPolicy === "cache-only")) {
247
- result.networkStatus = networkStatus_js_1.NetworkStatus.ready;
248
- result.loading = false;
232
+ }
233
+ resubscribeCache() {
234
+ const { variables, fetchPolicy } = this.options;
235
+ const query = this.query;
236
+ const shouldUnsubscribe = fetchPolicy === "standby" ||
237
+ fetchPolicy === "no-cache" ||
238
+ this.waitForNetworkResult;
239
+ const shouldResubscribe = !isEqualQuery({ query, variables }, this.unsubscribeFromCache) &&
240
+ !this.waitForNetworkResult;
241
+ if (shouldUnsubscribe || shouldResubscribe) {
242
+ this.unsubscribeFromCache?.();
243
+ }
244
+ if (shouldUnsubscribe || !shouldResubscribe) {
245
+ return;
246
+ }
247
+ const watch = {
248
+ query,
249
+ variables,
250
+ optimistic: true,
251
+ watcher: this,
252
+ callback: (diff) => {
253
+ const info = this.queryManager.getDocumentInfo(query);
254
+ if (info.hasClientExports || info.hasForcedResolvers) {
255
+ // If this is not set to something different than `diff`, we will
256
+ // not be notified about future cache changes with an equal `diff`.
257
+ // That would be the case if we are working with client-only fields
258
+ // that are forced or with `exports` fields that might change, causing
259
+ // local resovlers to return a new result.
260
+ // This is based on an implementation detail of `InMemoryCache`, which
261
+ // is not optimal - but the only alternative to this would be to
262
+ // resubscribe to the cache asynchonouly, which would bear the risk of
263
+ // missing further synchronous updates.
264
+ watch.lastDiff = undefined;
249
265
  }
250
- }
251
- // We need to check for both both `error` and `errors` field because there
252
- // are cases where sometimes `error` is set, but not `errors` and
253
- // vice-versa. This will be updated in the next major version when
254
- // `errors` is deprecated in favor of `error`.
255
- if (result.networkStatus === networkStatus_js_1.NetworkStatus.ready && result.error) {
256
- result.networkStatus = networkStatus_js_1.NetworkStatus.error;
257
- }
258
- if (environment_1.__DEV__ &&
259
- !diff.complete &&
260
- !result.loading &&
261
- !result.data &&
262
- !result.error) {
263
- logMissingFieldErrors(diff.missing);
264
- }
265
- }
266
- if (saveAsLastResult) {
267
- this.updateLastResult(result);
268
- }
269
- return result;
270
- }
271
- getCurrentResult(saveAsLastResult = true) {
272
- return this.maskResult(this.getCurrentFullResult(saveAsLastResult));
273
- }
274
- // Compares newResult to the snapshot we took of this.lastResult when it was
275
- // first received.
276
- isDifferentFromLastResult(newResult, variables) {
277
- if (!this.last) {
278
- return true;
279
- }
280
- const documentInfo = this.queryManager.getDocumentInfo(this.query);
281
- const dataMasking = this.queryManager.dataMasking;
282
- const query = dataMasking ? documentInfo.nonReactiveQuery : this.query;
283
- const resultIsDifferent = dataMasking || documentInfo.hasNonreactiveDirective ?
284
- !(0, equalByQuery_js_1.equalByQuery)(query, this.last.result, newResult, this.variables)
285
- : !(0, equality_1.equal)(this.last.result, newResult);
286
- return (resultIsDifferent || (variables && !(0, equality_1.equal)(this.last.variables, variables)));
287
- }
288
- getLast(key, variablesMustMatch) {
289
- const last = this.last;
290
- if (last &&
291
- last[key] &&
292
- (!variablesMustMatch || (0, equality_1.equal)(last.variables, this.variables))) {
293
- return last[key];
294
- }
295
- }
296
- // TODO: Consider deprecating this function
297
- getLastResult(variablesMustMatch) {
298
- return this.getLast("result", variablesMustMatch);
299
- }
300
- // TODO: Consider deprecating this function
301
- getLastError(variablesMustMatch) {
302
- return this.getLast("error", variablesMustMatch);
303
- }
304
- // TODO: Consider deprecating this function
305
- resetLastResults() {
306
- delete this.last;
307
- // TODO: This will need to be removed when tearing down an ObservableQuery
308
- // since the observable will terminate.
309
- this.isTornDown = false;
266
+ if (watch.lastOwnDiff === diff) {
267
+ // skip cache updates that were caused by our own writes
268
+ return;
269
+ }
270
+ const { result: previousResult } = this.subject.getValue();
271
+ if (!diff.complete &&
272
+ // If we are trying to deliver an incomplete cache result, we avoid
273
+ // reporting it if the query has errored, otherwise we let the broadcast try
274
+ // and repair the partial result by refetching the query. This check avoids
275
+ // a situation where a query that errors and another succeeds with
276
+ // overlapping data does not report the partial data result to the errored
277
+ // query.
278
+ //
279
+ // See https://github.com/apollographql/apollo-client/issues/11400 for more
280
+ // information on this issue.
281
+ (previousResult.error ||
282
+ // Prevent to schedule a notify directly after the `ObservableQuery`
283
+ // has been `reset` (which will set the `previousResult` to `uninitialized` or `empty`)
284
+ // as in those cases, `resetCache` will manually call `refetch` with more intentional timing.
285
+ previousResult === uninitialized ||
286
+ previousResult === empty)) {
287
+ return;
288
+ }
289
+ if (!(0, equality_1.equal)(previousResult.data, diff.result)) {
290
+ this.scheduleNotify();
291
+ }
292
+ },
293
+ };
294
+ const cancelWatch = this.queryManager.cache.watch(watch);
295
+ this.unsubscribeFromCache = Object.assign(() => {
296
+ this.unsubscribeFromCache = undefined;
297
+ cancelWatch();
298
+ }, { query, variables });
299
+ }
300
+ stableLastResult;
301
+ getCurrentResult() {
302
+ const { result: current } = this.subject.getValue();
303
+ let value = (
304
+ // if the `current` result is in an error state, we will always return that
305
+ // error state, even if we have no observers
306
+ (current.networkStatus === networkStatus_js_1.NetworkStatus.error ||
307
+ // if we have observers, we are watching the cache and
308
+ // this.subject.getValue() will always be up to date
309
+ this.hasObservers() || // if we are using a `no-cache` fetch policy in which case this
310
+ // `ObservableQuery` cannot have been updated from the outside - in
311
+ // that case, we prefer to keep the current value
312
+ this.options.fetchPolicy === "no-cache")) ?
313
+ current
314
+ // otherwise, the `current` value might be outdated due to missed
315
+ // external updates - calculate it again
316
+ : this.getInitialResult();
317
+ if (value === uninitialized) {
318
+ value = this.getInitialResult();
319
+ }
320
+ if (!(0, equality_1.equal)(this.stableLastResult, value)) {
321
+ this.stableLastResult = value;
322
+ }
323
+ return this.stableLastResult;
310
324
  }
311
325
  /**
312
326
  * Update the variables of this observable query, and fetch the new results.
@@ -316,6 +330,7 @@ class ObservableQuery {
316
330
  * the previous values of those variables will be used.
317
331
  */
318
332
  refetch(variables) {
333
+ const { fetchPolicy } = this.options;
319
334
  const reobserveOptions = {
320
335
  // Always disable polling for refetches.
321
336
  pollInterval: 0,
@@ -323,7 +338,6 @@ class ObservableQuery {
323
338
  // Unless the provided fetchPolicy always consults the network
324
339
  // (no-cache, network-only, or cache-and-network), override it with
325
340
  // network-only to force the refetch for this fetchQuery call.
326
- const { fetchPolicy } = this.options;
327
341
  if (fetchPolicy === "no-cache") {
328
342
  reobserveOptions.fetchPolicy = "no-cache";
329
343
  }
@@ -331,38 +345,40 @@ class ObservableQuery {
331
345
  reobserveOptions.fetchPolicy = "network-only";
332
346
  }
333
347
  if (environment_1.__DEV__ && variables && hasOwnProperty.call(variables, "variables")) {
334
- const queryDef = (0, utilities_1.getQueryDefinition)(this.query);
348
+ const queryDef = (0, internal_1.getQueryDefinition)(this.query);
335
349
  const vars = queryDef.variableDefinitions;
336
350
  if (!vars || !vars.some((v) => v.variable.name.value === "variables")) {
337
- __DEV__ && invariant_1.invariant.warn(67, variables, queryDef.name?.value || queryDef);
351
+ __DEV__ && invariant_1.invariant.warn(79, variables, queryDef.name?.value || queryDef);
338
352
  }
339
353
  }
340
- if (variables && !(0, equality_1.equal)(this.options.variables, variables)) {
354
+ if (variables && !(0, equality_1.equal)(this.variables, variables)) {
341
355
  // Update the existing options with new variables
342
- reobserveOptions.variables = this.options.variables = {
343
- ...this.options.variables,
344
- ...variables,
345
- };
356
+ reobserveOptions.variables = this.options.variables =
357
+ this.getVariablesWithDefaults({ ...this.variables, ...variables });
346
358
  }
347
- this.queryInfo.resetLastWrite();
348
- return this.reobserve({
349
- ...reobserveOptions,
350
- [newNetworkStatusSymbol]: networkStatus_js_1.NetworkStatus.refetch,
359
+ this._lastWrite = undefined;
360
+ return this._reobserve(reobserveOptions, {
361
+ newNetworkStatus: networkStatus_js_1.NetworkStatus.refetch,
351
362
  });
352
363
  }
353
364
  /**
354
365
  * 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/).
355
366
  */
356
- fetchMore(fetchMoreOptions) {
367
+ fetchMore({ query, variables, context, errorPolicy, updateQuery, }) {
368
+ (0, invariant_1.invariant)(
369
+ this.options.fetchPolicy !== "cache-only",
370
+ 80,
371
+ (0, internal_1.getOperationName)(this.query, "(anonymous)")
372
+ );
357
373
  const combinedOptions = {
358
- ...(fetchMoreOptions.query ? fetchMoreOptions : ({
359
- ...this.options,
360
- query: this.options.query,
361
- ...fetchMoreOptions,
362
- variables: {
363
- ...this.options.variables,
364
- ...fetchMoreOptions.variables,
365
- },
374
+ ...(0, internal_1.compact)(this.options, { errorPolicy: "none" }, {
375
+ query,
376
+ context,
377
+ errorPolicy,
378
+ }),
379
+ variables: (query ? variables : ({
380
+ ...this.variables,
381
+ ...variables,
366
382
  })),
367
383
  // The fetchMore request goes immediately to the network and does
368
384
  // not automatically write its result to the cache (hence no-cache
@@ -373,36 +389,34 @@ class ObservableQuery {
373
389
  notifyOnNetworkStatusChange: this.options.notifyOnNetworkStatusChange,
374
390
  };
375
391
  combinedOptions.query = this.transformDocument(combinedOptions.query);
376
- const qid = this.queryManager.generateQueryId();
377
392
  // If a temporary query is passed to `fetchMore`, we don't want to store
378
393
  // it as the last query result since it may be an optimized query for
379
394
  // pagination. We will however run the transforms on the original document
380
395
  // as well as the document passed in `fetchMoreOptions` to ensure the cache
381
396
  // uses the most up-to-date document which may rely on runtime conditionals.
382
397
  this.lastQuery =
383
- fetchMoreOptions.query ?
398
+ query ?
384
399
  this.transformDocument(this.options.query)
385
400
  : combinedOptions.query;
386
- // Simulate a loading result for the original query with
387
- // result.networkStatus === NetworkStatus.fetchMore.
388
- const originalNetworkStatus = this.networkStatus;
389
- this.networkStatus = networkStatus_js_1.NetworkStatus.fetchMore;
390
- if (combinedOptions.notifyOnNetworkStatusChange) {
391
- this.observe();
392
- }
393
- const updatedQuerySet = new Set();
394
- const updateQuery = fetchMoreOptions?.updateQuery;
401
+ let wasUpdated = false;
395
402
  const isCached = this.options.fetchPolicy !== "no-cache";
396
403
  if (!isCached) {
397
- (0, invariant_1.invariant)(updateQuery, 68);
404
+ (0, invariant_1.invariant)(updateQuery, 81);
398
405
  }
406
+ const { finalize, pushNotification } = this.pushOperation(networkStatus_js_1.NetworkStatus.fetchMore);
407
+ pushNotification({
408
+ source: "newNetworkStatus",
409
+ kind: "N",
410
+ value: {},
411
+ }, { shouldEmit: 3 /* EmitBehavior.networkStatusChange */ });
399
412
  return this.queryManager
400
- .fetchQuery(qid, combinedOptions, networkStatus_js_1.NetworkStatus.fetchMore)
413
+ .fetchQuery(combinedOptions, networkStatus_js_1.NetworkStatus.fetchMore)
401
414
  .then((fetchMoreResult) => {
402
- this.queryManager.removeQuery(qid);
403
- if (this.networkStatus === networkStatus_js_1.NetworkStatus.fetchMore) {
404
- this.networkStatus = originalNetworkStatus;
405
- }
415
+ // disable the `fetchMore` override that is currently active
416
+ // the next updates caused by this should not be `fetchMore` anymore,
417
+ // but `ready` or whatever other calculated loading state is currently
418
+ // appropriate
419
+ finalize();
406
420
  if (isCached) {
407
421
  // Performing this cache update inside a cache.batch transaction ensures
408
422
  // any affected cache.watch watchers are notified at most once about any
@@ -411,7 +425,6 @@ class ObservableQuery {
411
425
  // fetchMore cache results back to this ObservableQuery.
412
426
  this.queryManager.cache.batch({
413
427
  update: (cache) => {
414
- const { updateQuery } = fetchMoreOptions;
415
428
  if (updateQuery) {
416
429
  cache.updateQuery({
417
430
  query: this.query,
@@ -437,9 +450,9 @@ class ObservableQuery {
437
450
  }
438
451
  },
439
452
  onWatchUpdated: (watch) => {
440
- // Record the DocumentNode associated with any watched query whose
441
- // data were updated by the cache writes above.
442
- updatedQuerySet.add(watch.query);
453
+ if (watch.watcher === this) {
454
+ wasUpdated = true;
455
+ }
443
456
  },
444
457
  });
445
458
  }
@@ -458,28 +471,41 @@ class ObservableQuery {
458
471
  // adjustment to the types on `updateQuery` since that function
459
472
  // expects that the first argument always contains previous result
460
473
  // data, but not `undefined`.
461
- const lastResult = this.getLast("result");
474
+ const lastResult = this.getCurrentResult();
462
475
  const data = updateQuery(lastResult.data, {
463
476
  fetchMoreResult: fetchMoreResult.data,
464
477
  variables: combinedOptions.variables,
465
478
  });
466
- this.reportResult({
467
- ...lastResult,
468
- networkStatus: originalNetworkStatus,
469
- loading: (0, networkStatus_js_1.isNetworkRequestInFlight)(originalNetworkStatus),
470
- data: data,
471
- }, this.variables);
479
+ // was reportResult
480
+ pushNotification({
481
+ kind: "N",
482
+ value: {
483
+ ...lastResult,
484
+ networkStatus: networkStatus_js_1.NetworkStatus.ready,
485
+ // will be overwritten anyways, just here for types sake
486
+ loading: false,
487
+ data: data,
488
+ dataState: lastResult.dataState === "streaming" ? "streaming" : "complete",
489
+ },
490
+ source: "network",
491
+ });
472
492
  }
473
493
  return this.maskResult(fetchMoreResult);
474
494
  })
475
495
  .finally(() => {
496
+ // call `finalize` a second time in case the `.then` case above was not reached
497
+ finalize();
476
498
  // In case the cache writes above did not generate a broadcast
477
499
  // notification (which would have been intercepted by onWatchUpdated),
478
500
  // likely because the written data were the same as what was already in
479
501
  // the cache, we still want fetchMore to deliver its final loading:false
480
502
  // result with the unchanged data.
481
- if (isCached && !updatedQuerySet.has(this.query)) {
482
- this.reobserveCacheFirst();
503
+ if (isCached && !wasUpdated) {
504
+ pushNotification({
505
+ kind: "N",
506
+ source: "newNetworkStatus",
507
+ value: {},
508
+ }, { shouldEmit: 1 /* EmitBehavior.force */ });
483
509
  }
484
510
  });
485
511
  }
@@ -507,7 +533,7 @@ class ObservableQuery {
507
533
  onError(error);
508
534
  }
509
535
  else {
510
- __DEV__ && invariant_1.invariant.error(69, error);
536
+ __DEV__ && invariant_1.invariant.error(82, error);
511
537
  }
512
538
  return;
513
539
  }
@@ -526,10 +552,15 @@ class ObservableQuery {
526
552
  }
527
553
  };
528
554
  }
529
- /** @internal */
530
- silentSetOptions(newOptions) {
531
- const mergedOptions = (0, utilities_1.compact)(this.options, newOptions || {});
555
+ /**
556
+ * @internal
557
+ *
558
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
559
+ */
560
+ applyOptions(newOptions) {
561
+ const mergedOptions = (0, internal_1.compact)(this.options, newOptions || {});
532
562
  assign(this.options, mergedOptions);
563
+ this.updatePolling();
533
564
  }
534
565
  /**
535
566
  * Update the variables of this observable query, and fetch the new results
@@ -550,23 +581,23 @@ class ObservableQuery {
550
581
  * the previous values of those variables will be used.
551
582
  */
552
583
  async setVariables(variables) {
584
+ variables = this.getVariablesWithDefaults(variables);
553
585
  if ((0, equality_1.equal)(this.variables, variables)) {
554
586
  // If we have no observers, then we don't actually want to make a network
555
587
  // request. As soon as someone observes the query, the request will kick
556
588
  // off. For now, we just store any changes. (See #1077)
557
- return (0, internal_1.toQueryResult)(this.subject.getValue());
589
+ return (0, internal_1.toQueryResult)(this.getCurrentResult());
558
590
  }
559
591
  this.options.variables = variables;
560
592
  // See comment above
561
593
  if (!this.hasObservers()) {
562
- return (0, internal_1.toQueryResult)(this.subject.getValue());
594
+ return (0, internal_1.toQueryResult)(this.getCurrentResult());
563
595
  }
564
- return this.reobserve({
596
+ return this._reobserve({
565
597
  // Reset options.fetchPolicy to its original value.
566
598
  fetchPolicy: this.options.initialFetchPolicy,
567
599
  variables,
568
- [newNetworkStatusSymbol]: networkStatus_js_1.NetworkStatus.setVariables,
569
- });
600
+ }, { newNetworkStatus: networkStatus_js_1.NetworkStatus.setVariables });
570
601
  }
571
602
  /**
572
603
  * A function that enables you to update the query's cached result without executing a followup GraphQL operation.
@@ -575,12 +606,7 @@ class ObservableQuery {
575
606
  */
576
607
  updateQuery(mapFn) {
577
608
  const { queryManager } = this;
578
- const { result, complete } = queryManager.cache.diff({
579
- query: this.options.query,
580
- variables: this.variables,
581
- returnPartialData: true,
582
- optimistic: false,
583
- });
609
+ const { result, complete } = this.getCacheDiff({ optimistic: false });
584
610
  const newResult = mapFn(result, {
585
611
  variables: this.variables,
586
612
  complete: !!complete,
@@ -632,12 +658,7 @@ class ObservableQuery {
632
658
  // that end, the options.nextFetchPolicy option provides an easy way to
633
659
  // update options.fetchPolicy after the initial network request, without
634
660
  // having to call observableQuery.reobserve.
635
- options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {
636
- reason,
637
- options,
638
- observable: this,
639
- initialFetchPolicy,
640
- });
661
+ options.fetchPolicy = options.nextFetchPolicy.call(options, fetchPolicy, { reason, options, observable: this, initialFetchPolicy });
641
662
  }
642
663
  else if (reason === "variables-changed") {
643
664
  options.fetchPolicy = initialFetchPolicy;
@@ -648,35 +669,133 @@ class ObservableQuery {
648
669
  }
649
670
  return options.fetchPolicy;
650
671
  }
651
- fetch(options, newNetworkStatus, emitLoadingState, query) {
672
+ fetch(options, networkStatus, fetchQuery, operator) {
652
673
  // TODO Make sure we update the networkStatus (and infer fetchVariables)
653
674
  // before actually committing to the fetch.
654
- const queryInfo = this.queryManager.getOrCreateQuery(this.queryId);
655
- queryInfo.setObservableQuery(this);
656
- return this.queryManager.fetchObservableWithInfo(queryInfo, options, newNetworkStatus, query, emitLoadingState);
675
+ const initialFetchPolicy = this.options.fetchPolicy;
676
+ options.context ??= {};
677
+ let synchronouslyEmitted = false;
678
+ const onCacheHit = () => {
679
+ synchronouslyEmitted = true;
680
+ };
681
+ const fetchQueryOperator = // we cannot use `tap` here, since it allows only for a "before subscription"
682
+
683
+ // hook with `subscribe` and we care for "directly before and after subscription"
684
+ (source) => new rxjs_1.Observable((subscriber) => {
685
+ try {
686
+ return source.subscribe({
687
+ next(value) {
688
+ synchronouslyEmitted = true;
689
+ subscriber.next(value);
690
+ },
691
+ error: (error) => subscriber.error(error),
692
+ complete: () => subscriber.complete(),
693
+ });
694
+ }
695
+ finally {
696
+ if (!synchronouslyEmitted) {
697
+ operation.override = networkStatus;
698
+ this.input.next({
699
+ kind: "N",
700
+ source: "newNetworkStatus",
701
+ value: {
702
+ resetError: true,
703
+ },
704
+ query,
705
+ variables,
706
+ meta: {
707
+ shouldEmit: 3 /* EmitBehavior.networkStatusChange */,
708
+ /*
709
+ * The moment this notification is emitted, `nextFetchPolicy`
710
+ * might already have switched from a `network-only` to a
711
+ * `cache-something` policy, so we want to ensure that the
712
+ * loading state emit doesn't accidentally read from the cache
713
+ * in those cases.
714
+ */
715
+ fetchPolicy: initialFetchPolicy,
716
+ },
717
+ });
718
+ }
719
+ }
720
+ });
721
+ let { observable, fromLink } = this.queryManager.fetchObservableWithInfo(options, {
722
+ networkStatus,
723
+ query: fetchQuery,
724
+ onCacheHit,
725
+ fetchQueryOperator,
726
+ observableQuery: this,
727
+ });
728
+ // track query and variables from the start of the operation
729
+ const { query, variables } = this;
730
+ const operation = {
731
+ abort: () => {
732
+ subscription.unsubscribe();
733
+ },
734
+ query,
735
+ variables,
736
+ };
737
+ this.activeOperations.add(operation);
738
+ let forceFirstValueEmit = networkStatus == networkStatus_js_1.NetworkStatus.refetch ||
739
+ networkStatus == networkStatus_js_1.NetworkStatus.setVariables;
740
+ observable = observable.pipe(operator, (0, rxjs_1.share)());
741
+ const subscription = observable
742
+ .pipe((0, rxjs_1.tap)({
743
+ next: (notification) => {
744
+ if (notification.source === "newNetworkStatus" ||
745
+ (notification.kind === "N" && notification.value.loading)) {
746
+ operation.override = networkStatus;
747
+ }
748
+ else {
749
+ delete operation.override;
750
+ }
751
+ },
752
+ finalize: () => this.activeOperations.delete(operation),
753
+ }))
754
+ .subscribe({
755
+ next: (value) => {
756
+ const meta = {};
757
+ if (forceFirstValueEmit &&
758
+ value.kind === "N" &&
759
+ "loading" in value.value &&
760
+ !value.value.loading) {
761
+ forceFirstValueEmit = false;
762
+ meta.shouldEmit = 1 /* EmitBehavior.force */;
763
+ }
764
+ this.input.next({ ...value, query, variables, meta });
765
+ },
766
+ });
767
+ return { fromLink, subscription, observable };
657
768
  }
658
769
  // Turns polling on or off based on this.options.pollInterval.
770
+ didWarnCacheOnlyPolling = false;
659
771
  updatePolling() {
660
772
  // Avoid polling in SSR mode
661
773
  if (this.queryManager.ssrMode) {
662
774
  return;
663
775
  }
664
- const { pollingInfo, options: { pollInterval }, } = this;
665
- if (!pollInterval || !this.hasObservers()) {
776
+ const { pollingInfo, options: { fetchPolicy, pollInterval }, } = this;
777
+ if (!pollInterval || !this.hasObservers() || fetchPolicy === "cache-only") {
778
+ if (environment_1.__DEV__) {
779
+ if (!this.didWarnCacheOnlyPolling &&
780
+ pollInterval &&
781
+ fetchPolicy === "cache-only") {
782
+ __DEV__ && invariant_1.invariant.warn(83, (0, internal_1.getOperationName)(this.query, "(anonymous)"));
783
+ this.didWarnCacheOnlyPolling = true;
784
+ }
785
+ }
666
786
  this.cancelPolling();
667
787
  return;
668
788
  }
669
- if (pollingInfo && pollingInfo.interval === pollInterval) {
789
+ if (pollingInfo?.interval === pollInterval) {
670
790
  return;
671
791
  }
672
- (0, invariant_1.invariant)(pollInterval, 70);
673
792
  const info = pollingInfo || (this.pollingInfo = {});
674
793
  info.interval = pollInterval;
675
794
  const maybeFetch = () => {
676
795
  if (this.pollingInfo) {
677
796
  if (!(0, networkStatus_js_1.isNetworkRequestInFlight)(this.networkStatus) &&
678
797
  !this.options.skipPollAttempt?.()) {
679
- this.reobserve({
798
+ this._reobserve({
680
799
  // Most fetchPolicy options don't make sense to use in a polling context, as
681
800
  // users wouldn't want to be polling the cache directly. However, network-only and
682
801
  // no-cache are both useful for when the user wants to control whether or not the
@@ -684,7 +803,8 @@ class ObservableQuery {
684
803
  fetchPolicy: this.options.initialFetchPolicy === "no-cache" ?
685
804
  "no-cache"
686
805
  : "network-only",
687
- [newNetworkStatusSymbol]: networkStatus_js_1.NetworkStatus.poll,
806
+ }, {
807
+ newNetworkStatus: networkStatus_js_1.NetworkStatus.poll,
688
808
  }).then(poll, poll);
689
809
  }
690
810
  else {
@@ -708,47 +828,29 @@ class ObservableQuery {
708
828
  delete this.pollingInfo;
709
829
  }
710
830
  }
711
- updateLastResult(newResult, variables = this.variables) {
712
- let error = this.getLastError();
713
- // Preserve this.last.error unless the variables have changed.
714
- if (error && this.last && !(0, equality_1.equal)(variables, this.last.variables)) {
715
- error = void 0;
716
- }
717
- return (this.last = {
718
- result: this.queryManager.assumeImmutableResults ?
719
- newResult
720
- : (0, utilities_1.cloneDeep)(newResult),
721
- variables,
722
- ...(error ? { error } : null),
723
- });
724
- }
725
831
  /**
726
832
  * Reevaluate the query, optionally against new options. New options will be
727
833
  * merged with the current options when given.
728
834
  */
729
835
  reobserve(newOptions) {
836
+ return this._reobserve(newOptions);
837
+ }
838
+ _reobserve(newOptions, internalOptions) {
730
839
  this.isTornDown = false;
731
- let newNetworkStatus;
732
- if (newOptions) {
733
- newNetworkStatus = newOptions[newNetworkStatusSymbol];
734
- // Avoid setting the symbol option in this.options
735
- delete newOptions[newNetworkStatusSymbol];
736
- }
840
+ let { newNetworkStatus } = internalOptions || {};
841
+ this.queryManager.obsQueries.add(this);
737
842
  const useDisposableObservable =
738
843
  // Refetching uses a disposable Observable to allow refetches using different
739
- // options/variables, without permanently altering the options of the
844
+ // options, without permanently altering the options of the
740
845
  // original ObservableQuery.
741
846
  newNetworkStatus === networkStatus_js_1.NetworkStatus.refetch ||
742
- // The fetchMore method does not actually call the reobserve method, but,
743
- // if it did, it would definitely use a disposable Observable.
744
- newNetworkStatus === networkStatus_js_1.NetworkStatus.fetchMore ||
745
847
  // Polling uses a disposable Observable so the polling options (which force
746
848
  // fetchPolicy to be "network-only" or "no-cache") won't override the original options.
747
849
  newNetworkStatus === networkStatus_js_1.NetworkStatus.poll;
748
850
  // Save the old variables, since Object.assign may modify them below.
749
- const oldVariables = this.options.variables;
851
+ const oldVariables = this.variables;
750
852
  const oldFetchPolicy = this.options.fetchPolicy;
751
- const mergedOptions = (0, utilities_1.compact)(this.options, newOptions || {});
853
+ const mergedOptions = (0, internal_1.compact)(this.options, newOptions || {});
752
854
  const options = useDisposableObservable ?
753
855
  // Disposable Observable fetches receive a shallow copy of this.options
754
856
  // (merged with newOptions), leaving this.options unmodified.
@@ -759,8 +861,17 @@ class ObservableQuery {
759
861
  // We want to ensure we can re-run the custom document transforms the next
760
862
  // time a request is made against the original query.
761
863
  const query = this.transformDocument(options.query);
762
- const { fetchPolicy } = options;
763
864
  this.lastQuery = query;
865
+ // Reevaluate variables to allow resetting variables with variables: undefined,
866
+ // otherwise `compact` will ignore the `variables` key in `newOptions`. We
867
+ // do this after we run the query transform to ensure we get default
868
+ // variables from the transformed query.
869
+ //
870
+ // Note: updating options.variables may mutate this.options.variables
871
+ // in the case of a non-disposable query. This is intentional.
872
+ if (newOptions && "variables" in newOptions) {
873
+ options.variables = this.getVariablesWithDefaults(newOptions.variables);
874
+ }
764
875
  if (!useDisposableObservable) {
765
876
  // We can skip calling updatePolling if we're not changing this.options.
766
877
  this.updatePolling();
@@ -770,13 +881,14 @@ class ObservableQuery {
770
881
  newOptions.variables &&
771
882
  !(0, equality_1.equal)(newOptions.variables, oldVariables) &&
772
883
  // Don't mess with the fetchPolicy if it's currently "standby".
773
- fetchPolicy !== "standby" &&
884
+ options.fetchPolicy !== "standby" &&
774
885
  // If we're changing the fetchPolicy anyway, don't try to change it here
775
886
  // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.
776
- (fetchPolicy === oldFetchPolicy ||
887
+ (options.fetchPolicy === oldFetchPolicy ||
777
888
  // A `nextFetchPolicy` function has even higher priority, though,
778
889
  // so in that case `applyNextFetchPolicy` must be called.
779
890
  typeof options.nextFetchPolicy === "function")) {
891
+ // This might mutate options.fetchPolicy
780
892
  this.applyNextFetchPolicy("variables-changed", options);
781
893
  if (newNetworkStatus === void 0) {
782
894
  newNetworkStatus = networkStatus_js_1.NetworkStatus.setVariables;
@@ -793,187 +905,334 @@ class ObservableQuery {
793
905
  }
794
906
  // QueryManager does not emit any values for standby fetch policies so we
795
907
  // want ensure that the networkStatus remains ready.
796
- if (fetchPolicy === "standby") {
908
+ if (options.fetchPolicy === "standby") {
797
909
  newNetworkStatus = networkStatus_js_1.NetworkStatus.ready;
798
910
  }
799
911
  }
800
- if (fetchPolicy === "standby") {
912
+ if (options.fetchPolicy === "standby") {
801
913
  this.cancelPolling();
802
914
  }
803
- this.networkStatus = newNetworkStatus;
804
- this.waitForOwnResult &&= skipCacheDataFor(options.fetchPolicy);
805
- const finishWaitingForOwnResult = () => {
806
- if (this.linkObservable === observable) {
807
- this.waitForOwnResult = false;
915
+ this.resubscribeCache();
916
+ const { promise, operator: promiseOperator } = getTrackingOperatorPromise((value) => {
917
+ switch (value.kind) {
918
+ case "E":
919
+ throw value.error;
920
+ case "N":
921
+ if (value.source !== "newNetworkStatus" && !value.value.loading)
922
+ return value.value;
808
923
  }
809
- };
810
- const variables = options.variables && { ...options.variables };
811
- const { notifyOnNetworkStatusChange = true } = options;
812
- const { observable, fromLink } = this.fetch(options, newNetworkStatus, notifyOnNetworkStatusChange &&
813
- oldNetworkStatus !== newNetworkStatus &&
814
- (0, networkStatus_js_1.isNetworkRequestInFlight)(newNetworkStatus), query);
815
- const observer = {
816
- next: (result) => {
817
- if ((0, equality_1.equal)(this.variables, variables)) {
818
- finishWaitingForOwnResult();
819
- this.reportResult(result, variables);
820
- }
821
- },
822
- error: (error) => {
823
- if ((0, equality_1.equal)(this.variables, variables)) {
824
- finishWaitingForOwnResult();
825
- this.reportError(error, variables);
826
- }
827
- },
828
- };
924
+ },
925
+ // This default value should only be used when using a `fetchPolicy` of
926
+ // `standby` since that fetch policy completes without emitting a
927
+ // result. Since we are converting this to a QueryResult type, we
928
+ // omit the extra fields from ApolloQueryResult in the default value.
929
+ options.fetchPolicy === "standby" ?
930
+ { data: undefined }
931
+ : undefined);
932
+ const { subscription, observable, fromLink } = this.fetch(options, newNetworkStatus, query, promiseOperator);
829
933
  if (!useDisposableObservable && (fromLink || !this.linkSubscription)) {
830
934
  if (this.linkSubscription) {
831
935
  this.linkSubscription.unsubscribe();
832
936
  }
833
- this.linkObservable = observable;
834
- this.linkSubscription = observable.subscribe(observer);
937
+ this.linkSubscription = subscription;
835
938
  }
836
- else {
837
- observable.subscribe(observer);
838
- }
839
- return (0, utilities_1.preventUnhandledRejection)(
840
- // Note: lastValueFrom will create a separate subscription to the
841
- // observable which means that terminating this ObservableQuery will not
842
- // cancel the request from the link chain.
843
- (0, rxjs_1.lastValueFrom)(observable, {
844
- // This default value should only be used when using a `fetchPolicy` of
845
- // `standby` since that fetch policy completes without emitting a
846
- // result. Since we are converting this to a QueryResult type, we
847
- // omit the extra fields from ApolloQueryResult in the default value.
848
- defaultValue: { data: undefined },
849
- }).then((result) => (0, internal_1.toQueryResult)(this.maskResult(result))));
850
- }
851
- // (Re)deliver the current result to this.observers without applying fetch
852
- // policies or making network requests.
853
- observe() {
854
- this.reportResult(
855
- // Passing false is important so that this.getCurrentResult doesn't
856
- // save the fetchMore result as this.lastResult, causing it to be
857
- // ignored due to the this.isDifferentFromLastResult check in
858
- // this.reportResult.
859
- this.getCurrentFullResult(false), this.variables);
860
- }
861
- reportResult(result, variables) {
862
- const lastError = this.getLastError();
863
- const isDifferent = this.isDifferentFromLastResult(result, variables);
864
- // Update the last result even when isDifferentFromLastResult returns false,
865
- // because the query may be using the @nonreactive directive, and we want to
866
- // save the the latest version of any nonreactive subtrees (in case
867
- // getCurrentResult is called), even though we skip broadcasting changes.
868
- this.updateLastResult(result, variables);
869
- this.networkStatus = result.networkStatus;
870
- if (lastError || isDifferent) {
871
- this.subject.next(this.maskResult(result));
872
- }
873
- }
874
- reportError(error, variables) {
875
- // Since we don't get the current result on errors, only the error, we
876
- // must mirror the updates that occur in QueryStore.markQueryError here
877
- const errorResult = {
878
- data: undefined,
879
- partial: true,
880
- ...this.getLastResult(),
881
- error,
882
- networkStatus: networkStatus_js_1.NetworkStatus.error,
883
- loading: false,
884
- };
885
- this.updateLastResult(errorResult, variables);
886
- this.networkStatus = networkStatus_js_1.NetworkStatus.error;
887
- this.last.error = error;
888
- this.subject.next(errorResult);
939
+ const ret = Object.assign((0, internal_1.preventUnhandledRejection)(promise
940
+ .then((result) => (0, internal_1.toQueryResult)(this.maskResult(result)))
941
+ .finally(() => {
942
+ if (!this.hasObservers() && this.activeOperations.size === 0) {
943
+ // If `reobserve` was called on a query without any obervers,
944
+ // the teardown logic would never be called, so we need to
945
+ // call it here to ensure the query is properly torn down.
946
+ this.tearDownQuery();
947
+ }
948
+ })), {
949
+ retain: () => {
950
+ const subscription = observable.subscribe({});
951
+ const unsubscribe = () => subscription.unsubscribe();
952
+ promise.then(unsubscribe, unsubscribe);
953
+ return ret;
954
+ },
955
+ });
956
+ return ret;
889
957
  }
890
958
  hasObservers() {
891
959
  return this.subject.observed;
892
960
  }
961
+ /**
962
+ * Tears down the `ObservableQuery` and stops all active operations by sending a `complete` notification.
963
+ */
964
+ stop() {
965
+ this.subject.complete();
966
+ this.initializeObservablesQueue();
967
+ this.tearDownQuery();
968
+ }
893
969
  tearDownQuery() {
894
970
  if (this.isTornDown)
895
971
  return;
896
- if (this.linkObservable && this.linkSubscription) {
972
+ this.resetNotifications();
973
+ this.unsubscribeFromCache?.();
974
+ if (this.linkSubscription) {
897
975
  this.linkSubscription.unsubscribe();
898
- delete this.linkObservable;
899
976
  delete this.linkSubscription;
900
977
  }
901
978
  this.stopPolling();
902
979
  // stop all active GraphQL subscriptions
903
980
  this.subscriptions.forEach((sub) => sub.unsubscribe());
904
981
  this.subscriptions.clear();
905
- this.queryManager.stopQuery(this.queryId);
982
+ this.queryManager.obsQueries.delete(this);
906
983
  this.isTornDown = true;
984
+ this.abortActiveOperations();
985
+ this._lastWrite = undefined;
907
986
  }
908
987
  transformDocument(document) {
909
988
  return this.queryManager.transform(document);
910
989
  }
911
990
  maskResult(result) {
912
- return result && "data" in result ?
913
- {
914
- ...result,
915
- data: this.queryManager.maskOperation({
916
- document: this.query,
917
- data: result.data,
918
- fetchPolicy: this.options.fetchPolicy,
919
- id: this.queryId,
920
- }),
921
- }
922
- : result;
991
+ const masked = this.queryManager.maskOperation({
992
+ document: this.query,
993
+ data: result.data,
994
+ fetchPolicy: this.options.fetchPolicy,
995
+ cause: this,
996
+ });
997
+ // Maintain object identity as much as possible
998
+ return masked === result.data ? result : { ...result, data: masked };
923
999
  }
924
1000
  dirty = false;
925
1001
  notifyTimeout;
926
- /** @internal */
1002
+ /**
1003
+ * @internal
1004
+ *
1005
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1006
+ */
927
1007
  resetNotifications() {
928
- this.cancelNotifyTimeout();
929
- this.dirty = false;
930
- }
931
- cancelNotifyTimeout() {
932
1008
  if (this.notifyTimeout) {
933
1009
  clearTimeout(this.notifyTimeout);
934
1010
  this.notifyTimeout = void 0;
935
1011
  }
1012
+ this.dirty = false;
936
1013
  }
937
- /** @internal */
1014
+ /**
1015
+ * @internal
1016
+ *
1017
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1018
+ */
938
1019
  scheduleNotify() {
939
1020
  if (this.dirty)
940
1021
  return;
941
1022
  this.dirty = true;
942
1023
  if (!this.notifyTimeout) {
943
- this.notifyTimeout = setTimeout(() => this.notify(), 0);
1024
+ this.notifyTimeout = setTimeout(() => this.notify(true), 0);
944
1025
  }
945
1026
  }
946
- /** @internal */
947
- notify() {
948
- this.cancelNotifyTimeout();
949
- if (this.dirty) {
950
- if (this.options.fetchPolicy == "cache-only" ||
1027
+ /**
1028
+ * @internal
1029
+ *
1030
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1031
+ */
1032
+ notify(scheduled = false) {
1033
+ if (!scheduled) {
1034
+ // For queries with client exports or forced resolvers, we don't want to
1035
+ // synchronously reobserve the cache on broadcast,
1036
+ // but actually wait for the `scheduleNotify` timeout triggered by the
1037
+ // `cache.watch` callback from `resubscribeCache`.
1038
+ const info = this.queryManager.getDocumentInfo(this.query);
1039
+ if (info.hasClientExports || info.hasForcedResolvers) {
1040
+ return;
1041
+ }
1042
+ }
1043
+ const { dirty } = this;
1044
+ this.resetNotifications();
1045
+ if (dirty &&
1046
+ (this.options.fetchPolicy == "cache-only" ||
951
1047
  this.options.fetchPolicy == "cache-and-network" ||
952
- !(0, networkStatus_js_1.isNetworkRequestInFlight)(this.networkStatus)) {
953
- const diff = this.queryInfo.getDiff();
954
- if (diff.fromOptimisticTransaction) {
955
- // If this diff came from an optimistic transaction, deliver the
956
- // current cache data to the ObservableQuery, but don't perform a
957
- // reobservation, since oq.reobserveCacheFirst might make a network
958
- // request, and we never want to trigger network requests in the
959
- // middle of optimistic updates.
960
- this.observe();
961
- }
962
- else {
963
- // Otherwise, make the ObservableQuery "reobserve" the latest data
964
- // using a temporary fetch policy of "cache-first", so complete cache
965
- // results have a chance to be delivered without triggering additional
966
- // network requests, even when options.fetchPolicy is "network-only"
967
- // or "cache-and-network". All other fetch policies are preserved by
968
- // this method, and are handled by calling oq.reobserve(). If this
969
- // reobservation is spurious, isDifferentFromLastResult still has a
970
- // chance to catch it before delivery to ObservableQuery subscribers.
971
- this.reobserveCacheFirst();
972
- }
1048
+ !this.activeOperations.size)) {
1049
+ const diff = this.getCacheDiff();
1050
+ if (
1051
+ // `fromOptimisticTransaction` is not avaiable through the `cache.diff`
1052
+ // code path, so we need to check it this way
1053
+ (0, equality_1.equal)(diff.result, this.getCacheDiff({ optimistic: false }).result)) {
1054
+ //If this diff did not come from an optimistic transaction
1055
+ // make the ObservableQuery "reobserve" the latest data
1056
+ // using a temporary fetch policy of "cache-first", so complete cache
1057
+ // results have a chance to be delivered without triggering additional
1058
+ // network requests, even when options.fetchPolicy is "network-only"
1059
+ // or "cache-and-network". All other fetch policies are preserved by
1060
+ // this method, and are handled by calling oq.reobserve(). If this
1061
+ // reobservation is spurious, distinctUntilChanged still has a
1062
+ // chance to catch it before delivery to ObservableQuery subscribers.
1063
+ this.reobserveCacheFirst();
1064
+ }
1065
+ else {
1066
+ // If this diff came from an optimistic transaction, deliver the
1067
+ // current cache data to the ObservableQuery, but don't perform a
1068
+ // reobservation, since oq.reobserveCacheFirst might make a network
1069
+ // request, and we never want to trigger network requests in the
1070
+ // middle of optimistic updates.
1071
+ this.input.next({
1072
+ kind: "N",
1073
+ value: {
1074
+ data: diff.result,
1075
+ dataState: diff.complete ? "complete"
1076
+ : diff.result ? "partial"
1077
+ : "empty",
1078
+ networkStatus: networkStatus_js_1.NetworkStatus.ready,
1079
+ loading: false,
1080
+ error: undefined,
1081
+ partial: !diff.complete,
1082
+ },
1083
+ source: "cache",
1084
+ query: this.query,
1085
+ variables: this.variables,
1086
+ meta: {},
1087
+ });
973
1088
  }
974
1089
  }
975
- this.dirty = false;
976
1090
  }
1091
+ activeOperations = new Set();
1092
+ pushOperation(networkStatus) {
1093
+ let aborted = false;
1094
+ // track query and variables from the start of the operation
1095
+ const { query, variables } = this;
1096
+ const finalize = () => {
1097
+ this.activeOperations.delete(operation);
1098
+ };
1099
+ const operation = {
1100
+ override: networkStatus,
1101
+ abort: () => {
1102
+ aborted = true;
1103
+ finalize();
1104
+ },
1105
+ query,
1106
+ variables,
1107
+ };
1108
+ this.activeOperations.add(operation);
1109
+ return {
1110
+ finalize,
1111
+ pushNotification: (notification, additionalMeta) => {
1112
+ if (!aborted) {
1113
+ this.input.next({
1114
+ ...notification,
1115
+ query,
1116
+ variables,
1117
+ meta: { ...additionalMeta },
1118
+ });
1119
+ }
1120
+ },
1121
+ };
1122
+ }
1123
+ calculateNetworkStatus(baseNetworkStatus) {
1124
+ if (baseNetworkStatus === networkStatus_js_1.NetworkStatus.streaming) {
1125
+ return baseNetworkStatus;
1126
+ }
1127
+ // in the future, this could be more complex logic, e.g. "refetch" and
1128
+ // "fetchMore" having priority over "polling" or "loading" network statuses
1129
+ // as for now we just take the "latest" operation that is still active,
1130
+ // as that lines up best with previous behavior[]
1131
+ const operation = Array.from(this.activeOperations.values()).findLast((operation) => isEqualQuery(operation, this) && operation.override !== undefined);
1132
+ return operation?.override ?? baseNetworkStatus;
1133
+ }
1134
+ abortActiveOperations() {
1135
+ this.activeOperations.forEach((operation) => operation.abort());
1136
+ }
1137
+ /**
1138
+ * @internal
1139
+ * Called from `clearStore`.
1140
+ * * resets the query to its initial state
1141
+ * * cancels all active operations and their subscriptions
1142
+ *
1143
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1144
+ */
1145
+ reset() {
1146
+ // exception for cache-only queries - we reset them into a "ready" state
1147
+ // as we won't trigger a refetch for them
1148
+ const resetToEmpty = this.options.fetchPolicy === "cache-only";
1149
+ this.setResult(resetToEmpty ? empty : uninitialized, {
1150
+ shouldEmit: resetToEmpty ? 1 /* EmitBehavior.force */ : 2 /* EmitBehavior.never */,
1151
+ });
1152
+ this.abortActiveOperations();
1153
+ }
1154
+ /**
1155
+ * @internal
1156
+ *
1157
+ * @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
1158
+ */
1159
+ setResult(result, additionalMeta) {
1160
+ this.input.next({
1161
+ source: "setResult",
1162
+ kind: "N",
1163
+ value: result,
1164
+ query: this.query,
1165
+ variables: this.variables,
1166
+ meta: { ...additionalMeta },
1167
+ });
1168
+ }
1169
+ operator = (0, internal_1.filterMap)((notification) => {
1170
+ const { query, variables, meta } = notification;
1171
+ if (notification.source === "setResult") {
1172
+ return { query, variables, result: notification.value, meta };
1173
+ }
1174
+ if (notification.kind === "C" || !isEqualQuery(notification, this)) {
1175
+ return;
1176
+ }
1177
+ let result;
1178
+ const previous = this.subject.getValue();
1179
+ if (notification.source === "cache") {
1180
+ result = notification.value;
1181
+ if (result.networkStatus === networkStatus_js_1.NetworkStatus.ready &&
1182
+ result.partial &&
1183
+ (!this.options.returnPartialData ||
1184
+ previous.result.networkStatus === networkStatus_js_1.NetworkStatus.error) &&
1185
+ this.options.fetchPolicy !== "cache-only") {
1186
+ return;
1187
+ }
1188
+ }
1189
+ else if (notification.source === "network") {
1190
+ if (this.waitForNetworkResult) {
1191
+ this.waitForNetworkResult = false;
1192
+ this.resubscribeCache();
1193
+ }
1194
+ result =
1195
+ notification.kind === "E" ?
1196
+ {
1197
+ ...(isEqualQuery(previous, notification) ?
1198
+ previous.result
1199
+ : { data: undefined, dataState: "empty", partial: true }),
1200
+ error: notification.error,
1201
+ networkStatus: networkStatus_js_1.NetworkStatus.error,
1202
+ loading: false,
1203
+ }
1204
+ : notification.value;
1205
+ if (notification.kind === "E" && result.dataState === "streaming") {
1206
+ result.dataState = "complete";
1207
+ }
1208
+ if (result.error) {
1209
+ meta.shouldEmit = 1 /* EmitBehavior.force */;
1210
+ }
1211
+ }
1212
+ else if (notification.source === "newNetworkStatus") {
1213
+ const baseResult = isEqualQuery(previous, notification) ?
1214
+ previous.result
1215
+ : this.getInitialResult(meta.fetchPolicy);
1216
+ const { resetError } = notification.value;
1217
+ const error = resetError ? undefined : baseResult.error;
1218
+ const networkStatus = error ? networkStatus_js_1.NetworkStatus.error : networkStatus_js_1.NetworkStatus.ready;
1219
+ result = {
1220
+ ...baseResult,
1221
+ error,
1222
+ networkStatus,
1223
+ };
1224
+ }
1225
+ // every code path until here should have either returned or set a result,
1226
+ // but typescript needs a little help
1227
+ (0, invariant_1.invariant)(result);
1228
+ // normalize result shape
1229
+ if (!result.error)
1230
+ delete result.error;
1231
+ result.networkStatus = this.calculateNetworkStatus(result.networkStatus);
1232
+ result.loading = (0, networkStatus_js_1.isNetworkRequestInFlight)(result.networkStatus);
1233
+ result = this.maskResult(result);
1234
+ return { query, variables, result, meta };
1235
+ });
977
1236
  // Reobserve with fetchPolicy effectively set to "cache-first", triggering
978
1237
  // delivery of any new data from the cache, possibly falling back to the network
979
1238
  // if any cache data are missing. This allows _complete_ cache results to be
@@ -984,7 +1243,7 @@ class ObservableQuery {
984
1243
  reobserveCacheFirst() {
985
1244
  const { fetchPolicy, nextFetchPolicy } = this.options;
986
1245
  if (fetchPolicy === "cache-and-network" || fetchPolicy === "network-only") {
987
- return this.reobserve({
1246
+ this.reobserve({
988
1247
  fetchPolicy: "cache-first",
989
1248
  // Use a temporary nextFetchPolicy function that replaces itself with the
990
1249
  // previous nextFetchPolicy value and returns the original fetchPolicy.
@@ -1002,18 +1261,59 @@ class ObservableQuery {
1002
1261
  },
1003
1262
  });
1004
1263
  }
1005
- return this.reobserve();
1264
+ else {
1265
+ this.reobserve();
1266
+ }
1267
+ }
1268
+ getVariablesWithDefaults(variables) {
1269
+ return this.queryManager.getVariables(this.query, variables);
1006
1270
  }
1007
1271
  }
1008
1272
  exports.ObservableQuery = ObservableQuery;
1009
1273
  function logMissingFieldErrors(missing) {
1010
1274
  if (environment_1.__DEV__ && missing) {
1011
- __DEV__ && invariant_1.invariant.debug(71, missing);
1275
+ __DEV__ && invariant_1.invariant.debug(84, missing);
1012
1276
  }
1013
1277
  }
1014
- function skipCacheDataFor(fetchPolicy /* `undefined` would mean `"cache-first"` */) {
1015
- return (fetchPolicy === "network-only" ||
1016
- fetchPolicy === "no-cache" ||
1017
- fetchPolicy === "standby");
1278
+ function isEqualQuery(a, b) {
1279
+ return !!(a && b && a.query === b.query && (0, equality_1.equal)(a.variables, b.variables));
1280
+ }
1281
+ function getTrackingOperatorPromise(filterMapCb, defaultValue) {
1282
+ let lastValue = defaultValue, resolve, reject;
1283
+ const promise = new Promise((res, rej) => {
1284
+ resolve = res;
1285
+ reject = rej;
1286
+ });
1287
+ const operator = (0, rxjs_1.tap)({
1288
+ next(value) {
1289
+ try {
1290
+ const newValue = filterMapCb(value);
1291
+ if (newValue !== undefined) {
1292
+ lastValue = newValue;
1293
+ }
1294
+ }
1295
+ catch (error) {
1296
+ reject(error);
1297
+ }
1298
+ },
1299
+ finalize: () => {
1300
+ if (lastValue) {
1301
+ resolve(lastValue);
1302
+ }
1303
+ else {
1304
+ const message = "The operation was aborted.";
1305
+ const name = "AbortError";
1306
+ reject(typeof DOMException !== "undefined" ?
1307
+ new DOMException(message, name)
1308
+ // some environments do not have `DOMException`, e.g. node
1309
+ // uses a normal `Error` with a `name` property instead: https://github.com/phryneas/node/blob/d0579b64f0f6b722f8e49bf8a471dd0d0604a21e/lib/internal/errors.js#L964
1310
+ // error.code is a legacy property that is not used anymore,
1311
+ // and also inconsistent across environments (in supporting
1312
+ // browsers it is `20`, in node `'ABORT_ERR'`) so we omit that.
1313
+ : Object.assign(new Error(message), { name }));
1314
+ }
1315
+ },
1316
+ });
1317
+ return { promise, operator };
1018
1318
  }
1019
1319
  //# sourceMappingURL=ObservableQuery.cjs.map