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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/.changeset/afraid-moons-arrive.md +5 -0
  2. package/.changeset/beige-mirrors-talk.md +15 -0
  3. package/.changeset/cool-kiwis-hunt.md +15 -0
  4. package/.changeset/cuddly-spiders-tie.md +5 -0
  5. package/.changeset/dirty-eagles-poke.md +5 -0
  6. package/.changeset/early-eggs-develop.md +22 -0
  7. package/.changeset/eighty-squids-fix.md +15 -0
  8. package/.changeset/eleven-kangaroos-jump.md +5 -0
  9. package/.changeset/forty-shrimps-fry.md +5 -0
  10. package/.changeset/forty-tomatoes-punch.md +5 -0
  11. package/.changeset/four-countries-clean.md +24 -0
  12. package/.changeset/four-ghosts-watch.md +5 -0
  13. package/.changeset/funny-jeans-invent.md +16 -0
  14. package/.changeset/funny-terms-deny.md +5 -0
  15. package/.changeset/fuzzy-tips-sit.md +5 -0
  16. package/.changeset/gentle-badgers-train.md +5 -0
  17. package/.changeset/giant-apes-thank.md +5 -0
  18. package/.changeset/giant-bags-share.md +5 -0
  19. package/.changeset/gorgeous-chefs-tap.md +5 -0
  20. package/.changeset/great-roses-jog.md +15 -0
  21. package/.changeset/grumpy-vans-type.md +5 -0
  22. package/.changeset/hip-vans-act.md +5 -0
  23. package/.changeset/hungry-bikes-cough.md +5 -0
  24. package/.changeset/itchy-chefs-run.md +23 -0
  25. package/.changeset/khaki-keys-deliver.md +5 -0
  26. package/.changeset/khaki-spies-work.md +11 -0
  27. package/.changeset/large-plants-know.md +5 -0
  28. package/.changeset/light-apes-rescue.md +5 -0
  29. package/.changeset/little-spoons-kick.md +7 -0
  30. package/.changeset/loud-cows-raise.md +7 -0
  31. package/.changeset/many-buses-allow.md +5 -0
  32. package/.changeset/mean-lizards-think.md +5 -0
  33. package/.changeset/nervous-fireants-bow.md +5 -0
  34. package/.changeset/nervous-goats-allow.md +5 -0
  35. package/.changeset/nice-dots-matter.md +5 -0
  36. package/.changeset/ninety-bags-bake.md +17 -0
  37. package/.changeset/odd-chicken-hide.md +17 -0
  38. package/.changeset/odd-lemons-relax.md +5 -0
  39. package/.changeset/perfect-vans-give.md +7 -0
  40. package/.changeset/poor-eels-punch.md +5 -0
  41. package/.changeset/pre.json +63 -0
  42. package/.changeset/purple-bears-flash.md +5 -0
  43. package/.changeset/real-teachers-peel.md +5 -0
  44. package/.changeset/serious-moons-juggle.md +5 -0
  45. package/.changeset/seven-dragons-repair.md +14 -0
  46. package/.changeset/shaggy-pugs-add.md +52 -0
  47. package/.changeset/short-months-complain.md +5 -0
  48. package/.changeset/slimy-chicken-melt.md +5 -0
  49. package/.changeset/slimy-maps-press.md +5 -0
  50. package/.changeset/small-buttons-rhyme.md +5 -0
  51. package/.changeset/swift-rivers-share.md +13 -0
  52. package/.changeset/tall-bikes-develop.md +5 -0
  53. package/.changeset/tame-points-work.md +11 -0
  54. package/.changeset/tender-swans-flash.md +16 -0
  55. package/.changeset/thick-books-grin.md +5 -0
  56. package/.changeset/thin-peas-hear.md +16 -0
  57. package/.changeset/tidy-pandas-punch.md +5 -0
  58. package/.changeset/tough-rockets-allow.md +5 -0
  59. package/.changeset/tricky-tables-shave.md +5 -0
  60. package/.changeset/unlucky-kiwis-sell.md +5 -0
  61. package/.changeset/warm-ties-sit.md +7 -0
  62. package/.changeset/wicked-forks-double.md +33 -0
  63. package/.changeset/young-phones-fold.md +5 -0
  64. package/.changeset/young-snails-grin.md +5 -0
  65. package/CHANGELOG.md +476 -0
  66. package/__cjs/cache/core/cache.cjs +2 -2
  67. package/__cjs/cache/core/cache.cjs.map +1 -1
  68. package/__cjs/cache/core/cache.d.cts +18 -18
  69. package/__cjs/cache/core/types/Cache.cjs.map +1 -1
  70. package/__cjs/cache/core/types/Cache.d.cts +9 -16
  71. package/__cjs/cache/core/types/DataProxy.d.cts +8 -23
  72. package/__cjs/cache/core/types/common.cjs +1 -0
  73. package/__cjs/cache/core/types/common.cjs.map +1 -1
  74. package/__cjs/cache/index.cjs +4 -4
  75. package/__cjs/cache/index.cjs.map +1 -1
  76. package/__cjs/cache/index.d.cts +3 -3
  77. package/__cjs/cache/inmemory/entityStore.cjs +9 -8
  78. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  79. package/__cjs/cache/inmemory/entityStore.d.cts +3 -2
  80. package/__cjs/cache/inmemory/fragmentRegistry.cjs +3 -3
  81. package/__cjs/cache/inmemory/fragmentRegistry.cjs.map +1 -1
  82. package/__cjs/cache/inmemory/helpers.cjs +0 -8
  83. package/__cjs/cache/inmemory/helpers.cjs.map +1 -1
  84. package/__cjs/cache/inmemory/helpers.d.cts +3 -4
  85. package/__cjs/cache/inmemory/inMemoryCache.cjs +4 -12
  86. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  87. package/__cjs/cache/inmemory/inMemoryCache.d.cts +8 -9
  88. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  89. package/__cjs/cache/inmemory/policies.cjs +9 -9
  90. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  91. package/__cjs/cache/inmemory/policies.d.cts +1 -1
  92. package/__cjs/cache/inmemory/reactiveVars.cjs.map +1 -1
  93. package/__cjs/cache/inmemory/reactiveVars.d.cts +7 -7
  94. package/__cjs/cache/inmemory/readFromStore.cjs +14 -56
  95. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  96. package/__cjs/cache/inmemory/readFromStore.d.cts +1 -6
  97. package/__cjs/cache/inmemory/types.d.cts +3 -17
  98. package/__cjs/cache/inmemory/writeToStore.cjs +8 -8
  99. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  100. package/__cjs/cache/inmemory/writeToStore.d.cts +2 -2
  101. package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs +6 -4
  102. package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs.map +1 -1
  103. package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs +3 -3
  104. package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs.map +1 -1
  105. package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs +2 -3
  106. package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs.map +1 -1
  107. package/__cjs/config/jest/areServerErrorsEqual.cjs +22 -0
  108. package/__cjs/config/jest/areServerErrorsEqual.cjs.map +1 -0
  109. package/__cjs/config/jest/areServerErrorsEqual.d.cts +3 -0
  110. package/__cjs/config/jest/resolver.cjs +11 -0
  111. package/__cjs/config/jest/resolver.cjs.map +1 -1
  112. package/__cjs/config/jest/setup.cjs +18 -1
  113. package/__cjs/config/jest/setup.cjs.map +1 -1
  114. package/__cjs/core/ApolloClient.cjs +34 -17
  115. package/__cjs/core/ApolloClient.cjs.map +1 -1
  116. package/__cjs/core/ApolloClient.d.cts +35 -25
  117. package/__cjs/core/LocalState.cjs +2 -2
  118. package/__cjs/core/LocalState.cjs.map +1 -1
  119. package/__cjs/core/LocalState.d.cts +8 -8
  120. package/__cjs/core/ObservableQuery.cjs +268 -104
  121. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  122. package/__cjs/core/ObservableQuery.d.cts +156 -17
  123. package/__cjs/core/QueryInfo.cjs +12 -86
  124. package/__cjs/core/QueryInfo.cjs.map +1 -1
  125. package/__cjs/core/QueryInfo.d.cts +2 -11
  126. package/__cjs/core/QueryManager.cjs +148 -104
  127. package/__cjs/core/QueryManager.cjs.map +1 -1
  128. package/__cjs/core/QueryManager.d.cts +45 -24
  129. package/__cjs/core/index.cjs +42 -21
  130. package/__cjs/core/index.cjs.map +1 -1
  131. package/__cjs/core/index.d.cts +12 -11
  132. package/__cjs/core/types.d.cts +60 -7
  133. package/__cjs/core/watchQueryOptions.d.cts +32 -119
  134. package/__cjs/errors/CombinedGraphQLErrors.cjs +30 -11
  135. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  136. package/__cjs/errors/CombinedGraphQLErrors.d.cts +21 -2
  137. package/__cjs/errors/CombinedProtocolErrors.cjs +13 -6
  138. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  139. package/__cjs/errors/CombinedProtocolErrors.d.cts +9 -0
  140. package/__cjs/errors/LinkError.cjs +20 -0
  141. package/__cjs/errors/LinkError.cjs.map +1 -0
  142. package/__cjs/errors/LinkError.d.cts +14 -0
  143. package/__cjs/errors/ServerError.cjs +6 -0
  144. package/__cjs/errors/ServerError.cjs.map +1 -1
  145. package/__cjs/errors/ServerError.d.cts +2 -0
  146. package/__cjs/errors/ServerParseError.cjs +6 -0
  147. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  148. package/__cjs/errors/ServerParseError.d.cts +2 -0
  149. package/__cjs/errors/UnconventionalError.cjs +6 -0
  150. package/__cjs/errors/UnconventionalError.cjs.map +1 -1
  151. package/__cjs/errors/UnconventionalError.d.cts +2 -0
  152. package/__cjs/errors/index.cjs +19 -4
  153. package/__cjs/errors/index.cjs.map +1 -1
  154. package/__cjs/errors/index.d.cts +2 -3
  155. package/__cjs/errors/isErrorLike.cjs +12 -0
  156. package/__cjs/errors/isErrorLike.cjs.map +1 -0
  157. package/__cjs/errors/isErrorLike.d.cts +3 -0
  158. package/__cjs/errors/utils.cjs +18 -0
  159. package/__cjs/errors/utils.cjs.map +1 -0
  160. package/__cjs/errors/utils.d.cts +3 -0
  161. package/__cjs/invariantErrorCodes.cjs +131 -138
  162. package/__cjs/link/batch/index.cjs +4 -2
  163. package/__cjs/link/batch/index.cjs.map +1 -1
  164. package/__cjs/link/batch/index.d.cts +2 -1
  165. package/__cjs/link/batch-http/index.cjs +3 -2
  166. package/__cjs/link/batch-http/index.cjs.map +1 -1
  167. package/__cjs/link/batch-http/index.d.cts +1 -1
  168. package/__cjs/link/context/index.cjs.map +1 -1
  169. package/__cjs/link/context/index.d.cts +1 -1
  170. package/__cjs/link/core/ApolloLink.cjs +2 -20
  171. package/__cjs/link/core/ApolloLink.cjs.map +1 -1
  172. package/__cjs/link/core/ApolloLink.d.cts +1 -3
  173. package/__cjs/link/core/index.cjs.map +1 -1
  174. package/__cjs/link/core/index.d.cts +1 -1
  175. package/__cjs/link/core/types.d.cts +1 -1
  176. package/__cjs/link/error/index.cjs +13 -28
  177. package/__cjs/link/error/index.cjs.map +1 -1
  178. package/__cjs/link/error/index.d.cts +4 -15
  179. package/__cjs/link/http/checkFetcher.cjs +1 -1
  180. package/__cjs/link/http/createHttpLink.cjs +1 -1
  181. package/__cjs/link/http/createHttpLink.d.cts +2 -1
  182. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  183. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  184. package/__cjs/link/persisted-queries/index.cjs +3 -3
  185. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  186. package/__cjs/link/persisted-queries/index.d.cts +14 -3
  187. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs +1 -1
  188. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs.map +1 -1
  189. package/__cjs/link/remove-typename/removeTypenameFromVariables.d.cts +10 -1
  190. package/__cjs/link/retry/index.cjs +3 -2
  191. package/__cjs/link/retry/index.cjs.map +1 -1
  192. package/__cjs/link/retry/index.d.cts +1 -1
  193. package/__cjs/link/subscriptions/index.cjs +3 -1
  194. package/__cjs/link/subscriptions/index.cjs.map +1 -1
  195. package/__cjs/link/utils/validateOperation.cjs +1 -1
  196. package/__cjs/masking/maskDefinition.cjs +2 -2
  197. package/__cjs/masking/maskDefinition.cjs.map +1 -1
  198. package/__cjs/masking/maskDefinition.d.cts +1 -1
  199. package/__cjs/masking/maskFragment.cjs +2 -2
  200. package/__cjs/masking/maskFragment.cjs.map +1 -1
  201. package/__cjs/masking/maskFragment.d.cts +2 -2
  202. package/__cjs/masking/maskOperation.cjs +1 -1
  203. package/__cjs/masking/maskOperation.cjs.map +1 -1
  204. package/__cjs/masking/maskOperation.d.cts +2 -2
  205. package/__cjs/masking/utils.cjs +1 -1
  206. package/__cjs/react/context/ApolloConsumer.cjs +1 -1
  207. package/__cjs/react/context/ApolloConsumer.cjs.map +1 -1
  208. package/__cjs/react/context/ApolloConsumer.d.cts +7 -4
  209. package/__cjs/react/context/ApolloContext.cjs +1 -1
  210. package/__cjs/react/context/ApolloContext.cjs.map +1 -1
  211. package/__cjs/react/context/ApolloContext.d.cts +4 -4
  212. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  213. package/__cjs/react/context/ApolloProvider.cjs.map +1 -1
  214. package/__cjs/react/context/ApolloProvider.d.cts +7 -5
  215. package/__cjs/react/hooks/internal/__use.d.cts +3 -1
  216. package/__cjs/react/hooks/internal/useIsomorphicLayoutEffect.d.cts +1 -1
  217. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs +28 -0
  218. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -0
  219. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +3 -0
  220. package/__cjs/react/hooks/internal/wrapHook.cjs +26 -5
  221. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  222. package/__cjs/react/hooks/internal/wrapHook.d.cts +7 -5
  223. package/__cjs/react/hooks/useApolloClient.cjs +2 -2
  224. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  225. package/__cjs/react/hooks/useApolloClient.d.cts +2 -2
  226. package/__cjs/react/hooks/useBackgroundQuery.cjs +2 -2
  227. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  228. package/__cjs/react/hooks/useBackgroundQuery.d.cts +143 -46
  229. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  230. package/__cjs/react/hooks/useFragment.d.cts +51 -26
  231. package/__cjs/react/hooks/useLazyQuery.cjs +31 -32
  232. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  233. package/__cjs/react/hooks/useLazyQuery.d.cts +278 -276
  234. package/__cjs/react/hooks/useLoadableQuery.cjs +21 -2
  235. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  236. package/__cjs/react/hooks/useLoadableQuery.d.cts +106 -34
  237. package/__cjs/react/hooks/useMutation.cjs +14 -21
  238. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  239. package/__cjs/react/hooks/useMutation.d.cts +198 -4
  240. package/__cjs/react/hooks/useQuery.cjs +87 -206
  241. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  242. package/__cjs/react/hooks/useQuery.d.cts +274 -4
  243. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  244. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +23 -22
  245. package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
  246. package/__cjs/react/hooks/useReactiveVar.d.cts +1 -1
  247. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  248. package/__cjs/react/hooks/useReadQuery.d.cts +27 -25
  249. package/__cjs/react/hooks/useSubscription.cjs +9 -60
  250. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  251. package/__cjs/react/hooks/useSubscription.d.cts +94 -3
  252. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  253. package/__cjs/react/hooks/useSuspenseFragment.d.cts +40 -38
  254. package/__cjs/react/hooks/useSuspenseQuery.cjs +7 -32
  255. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  256. package/__cjs/react/hooks/useSuspenseQuery.d.cts +199 -38
  257. package/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
  258. package/__cjs/react/index.cjs +35 -11
  259. package/__cjs/react/index.cjs.map +1 -1
  260. package/__cjs/react/index.d.cts +21 -6
  261. package/__cjs/react/index.react-server.cjs +1 -5
  262. package/__cjs/react/index.react-server.cjs.map +1 -1
  263. package/__cjs/react/index.react-server.d.cts +0 -1
  264. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  265. package/__cjs/react/internal/cache/FragmentReference.d.cts +3 -3
  266. package/__cjs/react/internal/cache/QueryReference.cjs +3 -14
  267. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  268. package/__cjs/react/internal/cache/QueryReference.d.cts +7 -7
  269. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  270. package/__cjs/react/internal/cache/SuspenseCache.d.cts +3 -3
  271. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  272. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +4 -4
  273. package/__cjs/react/internal/index.cjs +3 -1
  274. package/__cjs/react/internal/index.cjs.map +1 -1
  275. package/__cjs/react/internal/index.d.cts +2 -0
  276. package/__cjs/react/internal/types.d.cts +9 -0
  277. package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -0
  278. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  279. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +6 -45
  280. package/__cjs/react/ssr/getDataFromTree.cjs +24 -30
  281. package/__cjs/react/ssr/getDataFromTree.cjs.map +1 -1
  282. package/__cjs/react/ssr/getDataFromTree.d.cts +12 -1
  283. package/__cjs/react/ssr/index.cjs +3 -3
  284. package/__cjs/react/ssr/index.cjs.map +1 -1
  285. package/__cjs/react/ssr/index.d.cts +1 -1
  286. package/__cjs/react/ssr/prerenderStatic.cjs +151 -0
  287. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -0
  288. package/__cjs/react/ssr/prerenderStatic.d.cts +122 -0
  289. package/__cjs/react/ssr/renderToStringWithData.cjs +11 -5
  290. package/__cjs/react/ssr/renderToStringWithData.cjs.map +1 -1
  291. package/__cjs/react/ssr/renderToStringWithData.d.cts +5 -0
  292. package/__cjs/react/ssr/useSSRQuery.cjs +60 -0
  293. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -0
  294. package/__cjs/react/ssr/useSSRQuery.d.cts +5 -0
  295. package/__cjs/{utilities/types/TODO.cjs → react/types/deprecated.cjs} +1 -1
  296. package/__cjs/react/types/deprecated.cjs.map +1 -0
  297. package/__cjs/react/types/deprecated.d.cts +75 -0
  298. package/__cjs/react/types/types.documentation.d.cts +6 -34
  299. package/__cjs/testing/core/index.cjs +6 -3
  300. package/__cjs/testing/core/index.cjs.map +1 -1
  301. package/__cjs/testing/core/index.d.cts +3 -3
  302. package/__cjs/testing/core/mocking/mockClient.cjs +3 -4
  303. package/__cjs/testing/core/mocking/mockClient.cjs.map +1 -1
  304. package/__cjs/testing/core/mocking/mockClient.d.cts +2 -3
  305. package/__cjs/testing/core/mocking/mockLink.cjs +118 -112
  306. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  307. package/__cjs/testing/core/mocking/mockLink.d.cts +26 -7
  308. package/__cjs/testing/experimental/createSchemaFetch.cjs +4 -4
  309. package/__cjs/testing/experimental/createSchemaFetch.cjs.map +1 -1
  310. package/__cjs/testing/experimental/createTestSchema.cjs.map +1 -1
  311. package/__cjs/testing/experimental/createTestSchema.d.cts +1 -1
  312. package/__cjs/testing/index.cjs +13 -2
  313. package/__cjs/testing/index.cjs.map +1 -1
  314. package/__cjs/testing/index.d.cts +2 -1
  315. package/__cjs/testing/internal/disposables/spyOnConsole.cjs +0 -1
  316. package/__cjs/testing/internal/disposables/spyOnConsole.cjs.map +1 -1
  317. package/__cjs/testing/internal/disposables/spyOnConsole.d.cts +0 -1
  318. package/__cjs/testing/internal/disposables/withProdMode.d.cts +1 -1
  319. package/__cjs/testing/internal/incremental.cjs.map +1 -1
  320. package/__cjs/testing/internal/incremental.d.cts +4 -3
  321. package/__cjs/testing/internal/index.cjs +14 -8
  322. package/__cjs/testing/internal/index.cjs.map +1 -1
  323. package/__cjs/testing/internal/index.d.cts +4 -3
  324. package/__cjs/testing/internal/renderHelpers.cjs.map +1 -1
  325. package/__cjs/testing/internal/renderHelpers.d.cts +3 -3
  326. package/__cjs/testing/internal/resetApolloContext.cjs +24 -0
  327. package/__cjs/testing/internal/resetApolloContext.cjs.map +1 -0
  328. package/__cjs/testing/internal/resetApolloContext.d.cts +10 -0
  329. package/__cjs/testing/internal/scenarios/index.cjs +9 -7
  330. package/__cjs/testing/internal/scenarios/index.cjs.map +1 -1
  331. package/__cjs/testing/internal/scenarios/index.d.cts +14 -5
  332. package/__cjs/testing/matchers/arrayWithLength.cjs +15 -0
  333. package/__cjs/testing/matchers/arrayWithLength.cjs.map +1 -0
  334. package/__cjs/testing/matchers/arrayWithLength.d.cts +3 -0
  335. package/__cjs/testing/matchers/index.cjs +6 -18
  336. package/__cjs/testing/matchers/index.cjs.map +1 -1
  337. package/__cjs/testing/matchers/toComplete.cjs.map +1 -1
  338. package/__cjs/testing/matchers/toEmitAnything.cjs.map +1 -1
  339. package/__cjs/testing/matchers/toEmitError.cjs.map +1 -1
  340. package/__cjs/testing/matchers/toEmitNext.cjs.map +1 -1
  341. package/__cjs/testing/matchers/{toEmitFetchResult.cjs → toEmitTypedValue.cjs} +9 -7
  342. package/__cjs/testing/matchers/toEmitTypedValue.cjs.map +1 -0
  343. package/__cjs/testing/matchers/{toEmitValueStrict.d.cts → toEmitTypedValue.d.cts} +2 -2
  344. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs +2 -2
  345. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs.map +1 -1
  346. package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.d.cts +1 -1
  347. package/__cjs/testing/matchers/toMatchDocument.cjs.map +1 -1
  348. package/__cjs/testing/matchers/toMatchDocument.d.cts +1 -1
  349. package/__cjs/testing/matchers/toStrictEqualTyped.cjs +26 -0
  350. package/__cjs/testing/matchers/toStrictEqualTyped.cjs.map +1 -0
  351. package/__cjs/testing/matchers/toStrictEqualTyped.d.cts +3 -0
  352. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs +23 -0
  353. package/__cjs/testing/matchers/utils/getSerializableProperties.cjs.map +1 -0
  354. package/__cjs/testing/matchers/utils/getSerializableProperties.d.cts +2 -0
  355. package/__cjs/testing/react/MockedProvider.cjs +11 -7
  356. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  357. package/__cjs/testing/react/MockedProvider.d.cts +8 -6
  358. package/__cjs/utilities/caching/sizes.cjs +2 -2
  359. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  360. package/__cjs/utilities/caching/sizes.d.cts +2 -20
  361. package/__cjs/utilities/common/errorHandling.d.cts +1 -1
  362. package/__cjs/utilities/common/mergeOptions.cjs.map +1 -1
  363. package/__cjs/utilities/common/mergeOptions.d.cts +1 -1
  364. package/__cjs/utilities/graphql/getFromAST.cjs +15 -6
  365. package/__cjs/utilities/graphql/getFromAST.cjs.map +1 -1
  366. package/__cjs/utilities/graphql/getFromAST.d.cts +2 -2
  367. package/__cjs/utilities/graphql/operations.cjs.map +1 -1
  368. package/__cjs/utilities/graphql/operations.d.cts +1 -1
  369. package/__cjs/utilities/graphql/storeUtils.cjs +1 -1
  370. package/__cjs/utilities/graphql/transform.cjs +2 -2
  371. package/__cjs/utilities/index.cjs +39 -19
  372. package/__cjs/utilities/index.cjs.map +1 -1
  373. package/__cjs/utilities/index.d.cts +16 -15
  374. package/__cjs/utilities/internal/getMemoryInternals.cjs +0 -2
  375. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  376. package/__cjs/utilities/internal/getMemoryInternals.d.cts +1 -2
  377. package/__cjs/utilities/internal/index.cjs +3 -1
  378. package/__cjs/utilities/internal/index.cjs.map +1 -1
  379. package/__cjs/utilities/internal/index.d.cts +1 -0
  380. package/__cjs/utilities/internal/index.production.cjs +1 -0
  381. package/__cjs/utilities/internal/index.production.cjs.map +1 -1
  382. package/__cjs/utilities/internal/toQueryResult.cjs +13 -0
  383. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -0
  384. package/__cjs/utilities/internal/toQueryResult.d.cts +3 -0
  385. package/__cjs/utilities/invariant/index.development.cjs +1 -0
  386. package/__cjs/utilities/invariant/index.development.cjs.map +1 -1
  387. package/__cjs/utilities/subscriptions/relay/index.cjs +2 -2
  388. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  389. package/__cjs/utilities/subscriptions/relay/index.d.cts +1 -1
  390. package/__cjs/utilities/types/NoInfer.d.cts +1 -1
  391. package/__cjs/utilities/types/{OnlyRequiredProperties.cjs → VariablesOption.cjs} +1 -1
  392. package/__cjs/utilities/types/VariablesOption.cjs.map +1 -0
  393. package/__cjs/utilities/types/VariablesOption.d.cts +25 -0
  394. package/__cjs/version.cjs +1 -1
  395. package/__cjs/version.cjs.map +1 -1
  396. package/__cjs/version.d.cts +1 -1
  397. package/cache/core/cache.d.ts +18 -18
  398. package/cache/core/cache.js +1 -1
  399. package/cache/core/cache.js.map +1 -1
  400. package/cache/core/types/Cache.d.ts +9 -16
  401. package/cache/core/types/Cache.js.map +1 -1
  402. package/cache/core/types/DataProxy.d.ts +8 -23
  403. package/cache/core/types/common.js +1 -0
  404. package/cache/core/types/common.js.map +1 -1
  405. package/cache/index.d.ts +3 -3
  406. package/cache/index.js +1 -1
  407. package/cache/index.js.map +1 -1
  408. package/cache/inmemory/entityStore.d.ts +3 -2
  409. package/cache/inmemory/entityStore.js +9 -8
  410. package/cache/inmemory/entityStore.js.map +1 -1
  411. package/cache/inmemory/fragmentRegistry.js +1 -1
  412. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  413. package/cache/inmemory/helpers.d.ts +0 -1
  414. package/cache/inmemory/helpers.js +0 -7
  415. package/cache/inmemory/helpers.js.map +1 -1
  416. package/cache/inmemory/inMemoryCache.d.ts +8 -9
  417. package/cache/inmemory/inMemoryCache.js +4 -12
  418. package/cache/inmemory/inMemoryCache.js.map +1 -1
  419. package/cache/inmemory/key-extractor.js +1 -1
  420. package/cache/inmemory/policies.d.ts +1 -1
  421. package/cache/inmemory/policies.js +9 -9
  422. package/cache/inmemory/policies.js.map +1 -1
  423. package/cache/inmemory/reactiveVars.d.ts +7 -7
  424. package/cache/inmemory/reactiveVars.js.map +1 -1
  425. package/cache/inmemory/readFromStore.d.ts +1 -6
  426. package/cache/inmemory/readFromStore.js +14 -56
  427. package/cache/inmemory/readFromStore.js.map +1 -1
  428. package/cache/inmemory/types.d.ts +3 -17
  429. package/cache/inmemory/writeToStore.d.ts +2 -2
  430. package/cache/inmemory/writeToStore.js +8 -8
  431. package/cache/inmemory/writeToStore.js.map +1 -1
  432. package/config/jest/areCombinedGraphQLErrorsEqual.js +6 -4
  433. package/config/jest/areCombinedGraphQLErrorsEqual.js.map +1 -1
  434. package/config/jest/areCombinedProtocolErrorsEqual.js +3 -3
  435. package/config/jest/areCombinedProtocolErrorsEqual.js.map +1 -1
  436. package/config/jest/areMissingFieldErrorsEqual.js +2 -3
  437. package/config/jest/areMissingFieldErrorsEqual.js.map +1 -1
  438. package/config/jest/areServerErrorsEqual.d.ts +3 -0
  439. package/config/jest/areServerErrorsEqual.js +18 -0
  440. package/config/jest/areServerErrorsEqual.js.map +1 -0
  441. package/config/jest/resolver.js +12 -1
  442. package/config/jest/resolver.js.map +1 -1
  443. package/config/jest/setup.js +19 -2
  444. package/config/jest/setup.js.map +1 -1
  445. package/core/ApolloClient.d.ts +35 -25
  446. package/core/ApolloClient.js +35 -18
  447. package/core/ApolloClient.js.map +1 -1
  448. package/core/LocalState.d.ts +6 -6
  449. package/core/LocalState.js +2 -2
  450. package/core/LocalState.js.map +1 -1
  451. package/core/ObservableQuery.d.ts +156 -17
  452. package/core/ObservableQuery.js +267 -102
  453. package/core/ObservableQuery.js.map +1 -1
  454. package/core/QueryInfo.d.ts +2 -11
  455. package/core/QueryInfo.js +12 -86
  456. package/core/QueryInfo.js.map +1 -1
  457. package/core/QueryManager.d.ts +32 -21
  458. package/core/QueryManager.js +151 -107
  459. package/core/QueryManager.js.map +1 -1
  460. package/core/index.d.ts +12 -11
  461. package/core/index.js +9 -6
  462. package/core/index.js.map +1 -1
  463. package/core/types.d.ts +60 -7
  464. package/core/watchQueryOptions.d.ts +32 -119
  465. package/errors/CombinedGraphQLErrors.d.ts +21 -2
  466. package/errors/CombinedGraphQLErrors.js +30 -11
  467. package/errors/CombinedGraphQLErrors.js.map +1 -1
  468. package/errors/CombinedProtocolErrors.d.ts +9 -0
  469. package/errors/CombinedProtocolErrors.js +13 -6
  470. package/errors/CombinedProtocolErrors.js.map +1 -1
  471. package/errors/LinkError.d.ts +14 -0
  472. package/errors/LinkError.js +16 -0
  473. package/errors/LinkError.js.map +1 -0
  474. package/errors/ServerError.d.ts +2 -0
  475. package/errors/ServerError.js +6 -0
  476. package/errors/ServerError.js.map +1 -1
  477. package/errors/ServerParseError.d.ts +2 -0
  478. package/errors/ServerParseError.js +6 -0
  479. package/errors/ServerParseError.js.map +1 -1
  480. package/errors/UnconventionalError.d.ts +2 -0
  481. package/errors/UnconventionalError.js +6 -0
  482. package/errors/UnconventionalError.js.map +1 -1
  483. package/errors/index.d.ts +2 -3
  484. package/errors/index.js +13 -1
  485. package/errors/index.js.map +1 -1
  486. package/errors/isErrorLike.d.ts +3 -0
  487. package/errors/isErrorLike.js +9 -0
  488. package/errors/isErrorLike.js.map +1 -0
  489. package/errors/utils.d.ts +3 -0
  490. package/errors/utils.js +14 -0
  491. package/errors/utils.js.map +1 -0
  492. package/invariantErrorCodes.js +131 -138
  493. package/legacyEntryPoints/testing/internal/index.d.ts +1 -0
  494. package/legacyEntryPoints/testing/internal/index.js +1 -0
  495. package/legacyEntryPoints/testing/internal/internal.cjs +1 -0
  496. package/legacyEntryPoints/testing/internal/internal.d.cts +1 -0
  497. package/link/batch/index.d.ts +2 -1
  498. package/link/batch/index.js +1 -1
  499. package/link/batch/index.js.map +1 -1
  500. package/link/batch-http/index.d.ts +1 -1
  501. package/link/batch-http/index.js +1 -1
  502. package/link/batch-http/index.js.map +1 -1
  503. package/link/context/index.d.ts +1 -1
  504. package/link/context/index.js.map +1 -1
  505. package/link/core/ApolloLink.d.ts +1 -3
  506. package/link/core/ApolloLink.js +2 -20
  507. package/link/core/ApolloLink.js.map +1 -1
  508. package/link/core/index.d.ts +1 -1
  509. package/link/core/index.js.map +1 -1
  510. package/link/core/types.d.ts +1 -1
  511. package/link/error/index.d.ts +4 -15
  512. package/link/error/index.js +14 -29
  513. package/link/error/index.js.map +1 -1
  514. package/link/http/checkFetcher.js +1 -1
  515. package/link/http/createHttpLink.js +1 -1
  516. package/link/http/parseAndCheckHttpResponse.js +1 -1
  517. package/link/http/serializeFetchParameter.js +1 -1
  518. package/link/persisted-queries/index.d.ts +2 -2
  519. package/link/persisted-queries/index.js +3 -3
  520. package/link/persisted-queries/index.js.map +1 -1
  521. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  522. package/link/retry/index.d.ts +1 -1
  523. package/link/retry/index.js +1 -1
  524. package/link/retry/index.js.map +1 -1
  525. package/link/subscriptions/index.js +3 -1
  526. package/link/subscriptions/index.js.map +1 -1
  527. package/link/utils/validateOperation.js +1 -1
  528. package/masking/maskDefinition.d.ts +1 -1
  529. package/masking/maskDefinition.js +2 -2
  530. package/masking/maskDefinition.js.map +1 -1
  531. package/masking/maskFragment.d.ts +2 -2
  532. package/masking/maskFragment.js +2 -2
  533. package/masking/maskFragment.js.map +1 -1
  534. package/masking/maskOperation.d.ts +2 -2
  535. package/masking/maskOperation.js +1 -1
  536. package/masking/maskOperation.js.map +1 -1
  537. package/masking/utils.js +1 -1
  538. package/package.json +20 -40
  539. package/react/context/ApolloConsumer.d.ts +7 -4
  540. package/react/context/ApolloConsumer.js +1 -1
  541. package/react/context/ApolloConsumer.js.map +1 -1
  542. package/react/context/ApolloContext.d.ts +4 -4
  543. package/react/context/ApolloContext.js +1 -1
  544. package/react/context/ApolloContext.js.map +1 -1
  545. package/react/context/ApolloProvider.d.ts +7 -5
  546. package/react/context/ApolloProvider.js +1 -1
  547. package/react/context/ApolloProvider.js.map +1 -1
  548. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +3 -0
  549. package/react/hooks/internal/validateSuspenseHookOptions.js +22 -0
  550. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -0
  551. package/react/hooks/internal/wrapHook.d.ts +7 -5
  552. package/react/hooks/internal/wrapHook.js +24 -5
  553. package/react/hooks/internal/wrapHook.js.map +1 -1
  554. package/react/hooks/useApolloClient.d.ts +2 -2
  555. package/react/hooks/useApolloClient.js +1 -1
  556. package/react/hooks/useApolloClient.js.map +1 -1
  557. package/react/hooks/useBackgroundQuery.d.ts +143 -46
  558. package/react/hooks/useBackgroundQuery.js +2 -2
  559. package/react/hooks/useBackgroundQuery.js.map +1 -1
  560. package/react/hooks/useFragment.d.ts +51 -26
  561. package/react/hooks/useFragment.js.map +1 -1
  562. package/react/hooks/useLazyQuery.d.ts +278 -276
  563. package/react/hooks/useLazyQuery.js +30 -31
  564. package/react/hooks/useLazyQuery.js.map +1 -1
  565. package/react/hooks/useLoadableQuery.d.ts +106 -34
  566. package/react/hooks/useLoadableQuery.js +21 -2
  567. package/react/hooks/useLoadableQuery.js.map +1 -1
  568. package/react/hooks/useMutation.d.ts +198 -4
  569. package/react/hooks/useMutation.js +14 -21
  570. package/react/hooks/useMutation.js.map +1 -1
  571. package/react/hooks/useQuery.d.ts +274 -4
  572. package/react/hooks/useQuery.js +86 -205
  573. package/react/hooks/useQuery.js.map +1 -1
  574. package/react/hooks/useQueryRefHandlers.d.ts +23 -22
  575. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  576. package/react/hooks/useReactiveVar.d.ts +1 -1
  577. package/react/hooks/useReactiveVar.js.map +1 -1
  578. package/react/hooks/useReadQuery.d.ts +27 -25
  579. package/react/hooks/useReadQuery.js.map +1 -1
  580. package/react/hooks/useSubscription.d.ts +94 -9
  581. package/react/hooks/useSubscription.js +8 -56
  582. package/react/hooks/useSubscription.js.map +1 -1
  583. package/react/hooks/useSuspenseFragment.d.ts +40 -38
  584. package/react/hooks/useSuspenseFragment.js.map +1 -1
  585. package/react/hooks/useSuspenseQuery.d.ts +199 -38
  586. package/react/hooks/useSuspenseQuery.js +5 -26
  587. package/react/hooks/useSuspenseQuery.js.map +1 -1
  588. package/react/hooks/useSyncExternalStore.js +1 -1
  589. package/react/index.d.ts +21 -6
  590. package/react/index.js +17 -3
  591. package/react/index.js.map +1 -1
  592. package/react/index.react-server.d.ts +0 -1
  593. package/react/index.react-server.js +0 -1
  594. package/react/index.react-server.js.map +1 -1
  595. package/react/internal/cache/FragmentReference.d.ts +3 -3
  596. package/react/internal/cache/FragmentReference.js.map +1 -1
  597. package/react/internal/cache/QueryReference.d.ts +5 -5
  598. package/react/internal/cache/QueryReference.js +3 -14
  599. package/react/internal/cache/QueryReference.js.map +1 -1
  600. package/react/internal/cache/SuspenseCache.d.ts +3 -3
  601. package/react/internal/cache/SuspenseCache.js.map +1 -1
  602. package/react/internal/cache/getSuspenseCache.d.ts +3 -3
  603. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  604. package/react/internal/index.d.ts +2 -0
  605. package/react/internal/index.js +2 -1
  606. package/react/internal/index.js.map +1 -1
  607. package/react/internal/types.d.ts +9 -0
  608. package/react/query-preloader/createQueryPreloader.d.ts +6 -45
  609. package/react/query-preloader/createQueryPreloader.js +1 -0
  610. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  611. package/react/ssr/getDataFromTree.d.ts +12 -1
  612. package/react/ssr/getDataFromTree.js +24 -29
  613. package/react/ssr/getDataFromTree.js.map +1 -1
  614. package/react/ssr/index.d.ts +1 -1
  615. package/react/ssr/index.js +1 -1
  616. package/react/ssr/index.js.map +1 -1
  617. package/react/ssr/prerenderStatic.d.ts +122 -0
  618. package/react/ssr/prerenderStatic.js +147 -0
  619. package/react/ssr/prerenderStatic.js.map +1 -0
  620. package/react/ssr/renderToStringWithData.d.ts +5 -0
  621. package/react/ssr/renderToStringWithData.js +11 -5
  622. package/react/ssr/renderToStringWithData.js.map +1 -1
  623. package/react/ssr/useSSRQuery.d.ts +5 -0
  624. package/react/ssr/useSSRQuery.js +56 -0
  625. package/react/ssr/useSSRQuery.js.map +1 -0
  626. package/react/types/deprecated.d.ts +75 -0
  627. package/react/types/deprecated.js +2 -0
  628. package/react/types/deprecated.js.map +1 -0
  629. package/react/types/types.documentation.d.ts +6 -34
  630. package/testing/core/index.d.ts +3 -3
  631. package/testing/core/index.js +2 -2
  632. package/testing/core/index.js.map +1 -1
  633. package/testing/core/mocking/mockClient.d.ts +2 -3
  634. package/testing/core/mocking/mockClient.js +2 -3
  635. package/testing/core/mocking/mockClient.js.map +1 -1
  636. package/testing/core/mocking/mockLink.d.ts +26 -7
  637. package/testing/core/mocking/mockLink.js +117 -113
  638. package/testing/core/mocking/mockLink.js.map +1 -1
  639. package/testing/experimental/createSchemaFetch.js +2 -2
  640. package/testing/experimental/createSchemaFetch.js.map +1 -1
  641. package/testing/experimental/createTestSchema.d.ts +1 -1
  642. package/testing/experimental/createTestSchema.js.map +1 -1
  643. package/testing/index.d.ts +2 -1
  644. package/testing/index.js +1 -1
  645. package/testing/index.js.map +1 -1
  646. package/testing/internal/disposables/spyOnConsole.d.ts +0 -1
  647. package/testing/internal/disposables/spyOnConsole.js +0 -1
  648. package/testing/internal/disposables/spyOnConsole.js.map +1 -1
  649. package/testing/internal/incremental.d.ts +1 -1
  650. package/testing/internal/incremental.js.map +1 -1
  651. package/testing/internal/index.d.ts +4 -3
  652. package/testing/internal/index.js +4 -3
  653. package/testing/internal/index.js.map +1 -1
  654. package/testing/internal/renderHelpers.d.ts +3 -3
  655. package/testing/internal/renderHelpers.js.map +1 -1
  656. package/testing/internal/resetApolloContext.d.ts +10 -0
  657. package/testing/internal/resetApolloContext.js +20 -0
  658. package/testing/internal/resetApolloContext.js.map +1 -0
  659. package/testing/internal/scenarios/index.d.ts +6 -8
  660. package/testing/internal/scenarios/index.js +4 -2
  661. package/testing/internal/scenarios/index.js.map +1 -1
  662. package/testing/matchers/arrayWithLength.d.ts +3 -0
  663. package/testing/matchers/arrayWithLength.js +11 -0
  664. package/testing/matchers/arrayWithLength.js.map +1 -0
  665. package/testing/matchers/index.js +6 -18
  666. package/testing/matchers/index.js.map +1 -1
  667. package/testing/matchers/toComplete.js.map +1 -1
  668. package/testing/matchers/toEmitAnything.js.map +1 -1
  669. package/testing/matchers/toEmitError.js.map +1 -1
  670. package/testing/matchers/toEmitNext.js.map +1 -1
  671. package/testing/matchers/{toEmitValueStrict.d.ts → toEmitTypedValue.d.ts} +2 -2
  672. package/testing/matchers/{toEmitFetchResult.js → toEmitTypedValue.js} +7 -5
  673. package/testing/matchers/toEmitTypedValue.js.map +1 -0
  674. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +1 -1
  675. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +1 -1
  676. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
  677. package/testing/matchers/toMatchDocument.d.ts +1 -1
  678. package/testing/matchers/toMatchDocument.js.map +1 -1
  679. package/testing/matchers/toStrictEqualTyped.d.ts +3 -0
  680. package/testing/matchers/toStrictEqualTyped.js +22 -0
  681. package/testing/matchers/toStrictEqualTyped.js.map +1 -0
  682. package/testing/matchers/utils/getSerializableProperties.d.ts +2 -0
  683. package/testing/matchers/utils/getSerializableProperties.js +20 -0
  684. package/testing/matchers/utils/getSerializableProperties.js.map +1 -0
  685. package/testing/react/MockedProvider.d.ts +8 -6
  686. package/testing/react/MockedProvider.js +8 -4
  687. package/testing/react/MockedProvider.js.map +1 -1
  688. package/utilities/caching/sizes.d.ts +2 -20
  689. package/utilities/caching/sizes.js +2 -2
  690. package/utilities/caching/sizes.js.map +1 -1
  691. package/utilities/common/mergeOptions.d.ts +1 -1
  692. package/utilities/common/mergeOptions.js.map +1 -1
  693. package/utilities/graphql/getFromAST.d.ts +2 -2
  694. package/utilities/graphql/getFromAST.js +15 -6
  695. package/utilities/graphql/getFromAST.js.map +1 -1
  696. package/utilities/graphql/operations.d.ts +1 -1
  697. package/utilities/graphql/operations.js.map +1 -1
  698. package/utilities/graphql/storeUtils.js +1 -1
  699. package/utilities/graphql/transform.js +2 -2
  700. package/utilities/index.d.ts +16 -15
  701. package/utilities/index.js +12 -12
  702. package/utilities/index.js.map +1 -1
  703. package/utilities/internal/getMemoryInternals.d.ts +0 -1
  704. package/utilities/internal/getMemoryInternals.js +0 -2
  705. package/utilities/internal/getMemoryInternals.js.map +1 -1
  706. package/utilities/internal/index.d.ts +1 -0
  707. package/utilities/internal/index.js +2 -1
  708. package/utilities/internal/index.js.map +1 -1
  709. package/utilities/internal/index.production.js +1 -0
  710. package/utilities/internal/index.production.js.map +1 -1
  711. package/utilities/internal/toQueryResult.d.ts +3 -0
  712. package/utilities/internal/toQueryResult.js +10 -0
  713. package/utilities/internal/toQueryResult.js.map +1 -0
  714. package/utilities/invariant/index.development.js +1 -0
  715. package/utilities/invariant/index.development.js.map +1 -1
  716. package/utilities/subscriptions/relay/index.d.ts +1 -1
  717. package/utilities/subscriptions/relay/index.js +1 -1
  718. package/utilities/subscriptions/relay/index.js.map +1 -1
  719. package/utilities/types/NoInfer.d.ts +1 -1
  720. package/utilities/types/VariablesOption.d.ts +25 -0
  721. package/utilities/types/VariablesOption.js +2 -0
  722. package/utilities/types/VariablesOption.js.map +1 -0
  723. package/version.d.ts +1 -1
  724. package/version.js +1 -1
  725. package/version.js.map +1 -1
  726. package/__cjs/cache/inmemory/object-canon.cjs +0 -180
  727. package/__cjs/cache/inmemory/object-canon.cjs.map +0 -1
  728. package/__cjs/cache/inmemory/object-canon.d.cts +0 -12
  729. package/__cjs/index.cjs +0 -8
  730. package/__cjs/index.cjs.map +0 -1
  731. package/__cjs/index.d.cts +0 -3
  732. package/__cjs/react/context/index.cjs +0 -10
  733. package/__cjs/react/context/index.cjs.map +0 -1
  734. package/__cjs/react/context/index.d.cts +0 -7
  735. package/__cjs/react/hooks/index.cjs +0 -27
  736. package/__cjs/react/hooks/index.cjs.map +0 -1
  737. package/__cjs/react/hooks/index.d.cts +0 -22
  738. package/__cjs/react/parser/index.cjs +0 -115
  739. package/__cjs/react/parser/index.cjs.map +0 -1
  740. package/__cjs/react/parser/index.d.cts +0 -18
  741. package/__cjs/react/ssr/RenderPromises.cjs +0 -104
  742. package/__cjs/react/ssr/RenderPromises.cjs.map +0 -1
  743. package/__cjs/react/ssr/RenderPromises.d.cts +0 -22
  744. package/__cjs/react/types/types.d.cts +0 -689
  745. package/__cjs/testing/matchers/toEmitApolloQueryResult.cjs +0 -40
  746. package/__cjs/testing/matchers/toEmitApolloQueryResult.cjs.map +0 -1
  747. package/__cjs/testing/matchers/toEmitApolloQueryResult.d.cts +0 -8
  748. package/__cjs/testing/matchers/toEmitFetchResult.cjs.map +0 -1
  749. package/__cjs/testing/matchers/toEmitFetchResult.d.cts +0 -8
  750. package/__cjs/testing/matchers/toEmitMatchedValue.cjs +0 -40
  751. package/__cjs/testing/matchers/toEmitMatchedValue.cjs.map +0 -1
  752. package/__cjs/testing/matchers/toEmitMatchedValue.d.cts +0 -7
  753. package/__cjs/testing/matchers/toEmitValue.cjs +0 -41
  754. package/__cjs/testing/matchers/toEmitValue.cjs.map +0 -1
  755. package/__cjs/testing/matchers/toEmitValue.d.cts +0 -4
  756. package/__cjs/testing/matchers/toEmitValueStrict.cjs +0 -46
  757. package/__cjs/testing/matchers/toEmitValueStrict.cjs.map +0 -1
  758. package/__cjs/testing/matchers/toEqualApolloQueryResult.cjs +0 -24
  759. package/__cjs/testing/matchers/toEqualApolloQueryResult.cjs.map +0 -1
  760. package/__cjs/testing/matchers/toEqualApolloQueryResult.d.cts +0 -6
  761. package/__cjs/testing/matchers/toEqualFetchResult.cjs +0 -24
  762. package/__cjs/testing/matchers/toEqualFetchResult.cjs.map +0 -1
  763. package/__cjs/testing/matchers/toEqualFetchResult.d.cts +0 -4
  764. package/__cjs/testing/matchers/toEqualLazyQueryResult.cjs +0 -40
  765. package/__cjs/testing/matchers/toEqualLazyQueryResult.cjs.map +0 -1
  766. package/__cjs/testing/matchers/toEqualLazyQueryResult.d.cts +0 -10
  767. package/__cjs/testing/matchers/toEqualQueryResult.cjs +0 -40
  768. package/__cjs/testing/matchers/toEqualQueryResult.cjs.map +0 -1
  769. package/__cjs/testing/matchers/toEqualQueryResult.d.cts +0 -9
  770. package/__cjs/utilities/types/OnlyRequiredProperties.cjs.map +0 -1
  771. package/__cjs/utilities/types/OnlyRequiredProperties.d.cts +0 -7
  772. package/__cjs/utilities/types/TODO.cjs.map +0 -1
  773. package/__cjs/utilities/types/TODO.d.cts +0 -3
  774. package/cache/inmemory/object-canon.d.ts +0 -12
  775. package/cache/inmemory/object-canon.js +0 -176
  776. package/cache/inmemory/object-canon.js.map +0 -1
  777. package/index.d.ts +0 -3
  778. package/index.js +0 -3
  779. package/index.js.map +0 -1
  780. package/legacyEntryPoints/react/context/context.cjs +0 -1
  781. package/legacyEntryPoints/react/context/context.d.cts +0 -1
  782. package/legacyEntryPoints/react/context/index.d.ts +0 -1
  783. package/legacyEntryPoints/react/context/index.js +0 -1
  784. package/legacyEntryPoints/react/hooks/hooks.cjs +0 -1
  785. package/legacyEntryPoints/react/hooks/hooks.d.cts +0 -1
  786. package/legacyEntryPoints/react/hooks/index.d.ts +0 -1
  787. package/legacyEntryPoints/react/hooks/index.js +0 -1
  788. package/legacyEntryPoints/react/parser/index.d.ts +0 -1
  789. package/legacyEntryPoints/react/parser/index.js +0 -1
  790. package/legacyEntryPoints/react/parser/parser.cjs +0 -1
  791. package/legacyEntryPoints/react/parser/parser.d.cts +0 -1
  792. package/react/context/index.d.ts +0 -7
  793. package/react/context/index.js +0 -4
  794. package/react/context/index.js.map +0 -1
  795. package/react/hooks/index.d.ts +0 -22
  796. package/react/hooks/index.js +0 -15
  797. package/react/hooks/index.js.map +0 -1
  798. package/react/parser/index.d.ts +0 -18
  799. package/react/parser/index.js +0 -109
  800. package/react/parser/index.js.map +0 -1
  801. package/react/ssr/RenderPromises.d.ts +0 -22
  802. package/react/ssr/RenderPromises.js +0 -100
  803. package/react/ssr/RenderPromises.js.map +0 -1
  804. package/react/types/types.d.ts +0 -689
  805. package/testing/matchers/toEmitApolloQueryResult.d.ts +0 -8
  806. package/testing/matchers/toEmitApolloQueryResult.js +0 -36
  807. package/testing/matchers/toEmitApolloQueryResult.js.map +0 -1
  808. package/testing/matchers/toEmitFetchResult.d.ts +0 -8
  809. package/testing/matchers/toEmitFetchResult.js.map +0 -1
  810. package/testing/matchers/toEmitMatchedValue.d.ts +0 -7
  811. package/testing/matchers/toEmitMatchedValue.js +0 -36
  812. package/testing/matchers/toEmitMatchedValue.js.map +0 -1
  813. package/testing/matchers/toEmitValue.d.ts +0 -4
  814. package/testing/matchers/toEmitValue.js +0 -37
  815. package/testing/matchers/toEmitValue.js.map +0 -1
  816. package/testing/matchers/toEmitValueStrict.js +0 -42
  817. package/testing/matchers/toEmitValueStrict.js.map +0 -1
  818. package/testing/matchers/toEqualApolloQueryResult.d.ts +0 -6
  819. package/testing/matchers/toEqualApolloQueryResult.js +0 -20
  820. package/testing/matchers/toEqualApolloQueryResult.js.map +0 -1
  821. package/testing/matchers/toEqualFetchResult.d.ts +0 -4
  822. package/testing/matchers/toEqualFetchResult.js +0 -20
  823. package/testing/matchers/toEqualFetchResult.js.map +0 -1
  824. package/testing/matchers/toEqualLazyQueryResult.d.ts +0 -10
  825. package/testing/matchers/toEqualLazyQueryResult.js +0 -36
  826. package/testing/matchers/toEqualLazyQueryResult.js.map +0 -1
  827. package/testing/matchers/toEqualQueryResult.d.ts +0 -9
  828. package/testing/matchers/toEqualQueryResult.js +0 -36
  829. package/testing/matchers/toEqualQueryResult.js.map +0 -1
  830. package/utilities/types/OnlyRequiredProperties.d.ts +0 -7
  831. package/utilities/types/OnlyRequiredProperties.js +0 -2
  832. package/utilities/types/OnlyRequiredProperties.js.map +0 -1
  833. package/utilities/types/TODO.d.ts +0 -3
  834. package/utilities/types/TODO.js +0 -2
  835. package/utilities/types/TODO.js.map +0 -1
  836. /package/__cjs/react/{types → internal}/types.cjs +0 -0
  837. /package/__cjs/react/{types → internal}/types.cjs.map +0 -0
  838. /package/react/{types → internal}/types.js +0 -0
  839. /package/react/{types → internal}/types.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mockClient.cjs","sources":["../../../../../src/testing/core/mocking/mockClient.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport type { NormalizedCacheObject } from \"@apollo/client/cache\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { ApolloClient } from \"@apollo/client/core\";\n\nimport { mockSingleLink } from \"./mockLink.js\";\n\nexport function createMockClient<TData>(\n data: TData,\n query: DocumentNode,\n variables = {}\n): ApolloClient<NormalizedCacheObject> {\n return new ApolloClient({\n link: mockSingleLink({\n request: { query, variables },\n result: { data },\n }).setOnError((error) => {\n throw error;\n }),\n cache: new InMemoryCache(),\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockClient.cjs","sources":["../../../../../src/testing/core/mocking/mockClient.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport { ApolloClient } from \"@apollo/client\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\n\nimport { mockSingleLink } from \"./mockLink.js\";\n\n// TODO: Deprecate this function\nexport function createMockClient<TData>(\n data: TData,\n query: DocumentNode,\n variables = {}\n): ApolloClient {\n return new ApolloClient({\n link: mockSingleLink({\n request: { query, variables },\n result: { data },\n }),\n cache: new InMemoryCache(),\n });\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { DocumentNode } from "graphql";
2
- import type { NormalizedCacheObject } from "@apollo/client/cache";
3
- import { ApolloClient } from "@apollo/client/core";
4
- export declare function createMockClient<TData>(data: TData, query: DocumentNode, variables?: {}): ApolloClient<NormalizedCacheObject>;
2
+ import { ApolloClient } from "@apollo/client";
3
+ export declare function createMockClient<TData>(data: TData, query: DocumentNode, variables?: {}): ApolloClient;
5
4
  //# sourceMappingURL=mockClient.d.cts.map
@@ -1,24 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MockLink = void 0;
4
+ exports.realisticDelay = realisticDelay;
5
+ exports.stringifyMockedResponse = stringifyMockedResponse;
4
6
  exports.mockSingleLink = mockSingleLink;
5
7
  const equality_1 = require("@wry/equality");
6
8
  const rxjs_1 = require("rxjs");
7
9
  const core_1 = require("@apollo/client/link/core");
8
10
  const utilities_1 = require("@apollo/client/utilities");
9
11
  const invariant_1 = require("@apollo/client/utilities/invariant");
10
- function requestToKey(request) {
11
- const queryString = request.query && (0, utilities_1.print)((0, utilities_1.addTypenameToDocument)(request.query));
12
- const requestKey = { query: queryString };
13
- return JSON.stringify(requestKey);
12
+ function realisticDelay({ min = 20, max = 50, } = {}) {
13
+ (0, invariant_1.invariant)(max > min, 24);
14
+ return () => Math.floor(Math.random() * (max - min) + min);
14
15
  }
15
16
  class MockLink extends core_1.ApolloLink {
16
17
  operation;
17
18
  showWarnings = true;
19
+ defaultDelay;
18
20
  mockedResponsesByKey = {};
21
+ static defaultOptions = {
22
+ delay: realisticDelay(),
23
+ };
19
24
  constructor(mockedResponses, options = {}) {
20
25
  super();
26
+ const defaultOptions = options.defaultOptions ?? MockLink.defaultOptions;
21
27
  this.showWarnings = options.showWarnings ?? true;
28
+ this.defaultDelay = defaultOptions?.delay ?? realisticDelay();
22
29
  if (mockedResponses) {
23
30
  mockedResponses.forEach((mockedResponse) => {
24
31
  this.addMockedResponse(mockedResponse);
@@ -26,141 +33,137 @@ class MockLink extends core_1.ApolloLink {
26
33
  }
27
34
  }
28
35
  addMockedResponse(mockedResponse) {
29
- const normalizedMockedResponse = this.normalizeMockedResponse(mockedResponse);
30
- const key = requestToKey(normalizedMockedResponse.request);
31
- let mockedResponses = this.mockedResponsesByKey[key];
32
- if (!mockedResponses) {
33
- mockedResponses = [];
34
- this.mockedResponsesByKey[key] = mockedResponses;
35
- }
36
- mockedResponses.push(normalizedMockedResponse);
36
+ validateMockedResponse(mockedResponse);
37
+ const normalized = this.normalizeMockedResponse(mockedResponse);
38
+ this.getMockedResponses(normalized.request).push(normalized);
37
39
  }
38
40
  request(operation) {
39
41
  this.operation = operation;
40
- const key = requestToKey(operation);
41
42
  const unmatchedVars = [];
42
- const requestVariables = operation.variables || {};
43
- const mockedResponses = this.mockedResponsesByKey[key];
44
- const responseIndex = mockedResponses ?
45
- mockedResponses.findIndex((res, index) => {
46
- const mockedResponseVars = res.request.variables || {};
47
- if ((0, equality_1.equal)(requestVariables, mockedResponseVars)) {
48
- return true;
43
+ const mocks = this.getMockedResponses(operation);
44
+ const index = mocks.findIndex((mock) => {
45
+ const { variables } = mock.request;
46
+ if (typeof variables === "function") {
47
+ const matched = variables(operation.variables);
48
+ if (!matched) {
49
+ unmatchedVars.push(`<function ${variables.name}>`);
49
50
  }
50
- if (res.variableMatcher && res.variableMatcher(operation.variables)) {
51
- return true;
52
- }
53
- unmatchedVars.push(mockedResponseVars);
54
- return false;
55
- })
56
- : -1;
57
- const response = responseIndex >= 0 ? mockedResponses[responseIndex] : void 0;
58
- // There have been platform- and engine-dependent differences with
59
- // setInterval(fn, Infinity), so we pass 0 instead (but detect
60
- // Infinity where we call observer.error or observer.next to pend
61
- // indefinitely in those cases.)
62
- const delay = response?.delay === Infinity ? 0 : response?.delay ?? 0;
63
- let configError;
64
- if (!response) {
65
- configError = new Error(`No more mocked responses for the query: ${(0, utilities_1.print)(operation.query)}
66
- Expected variables: ${stringifyForDebugging(operation.variables)}
67
- ${unmatchedVars.length > 0 ?
68
- `
69
- Failed to match ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The mocked response had the following variables:
70
- ${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
71
- `
72
- : ""}`);
51
+ return matched;
52
+ }
53
+ const withDefaults = mock.variablesWithDefaults;
54
+ if ((0, equality_1.equal)(withDefaults, operation.variables)) {
55
+ return true;
56
+ }
57
+ unmatchedVars.push(
58
+ // Include default variables from the query in unmatched variables
59
+ // output
60
+ Object.keys(withDefaults).length > 0 ?
61
+ withDefaults
62
+ : variables || "<undefined>");
63
+ return false;
64
+ });
65
+ const matched = index >= 0 ? mocks[index] : void 0;
66
+ if (!matched) {
67
+ const message = getErrorMessage(operation, unmatchedVars);
73
68
  if (this.showWarnings) {
74
- console.warn(configError.message +
69
+ console.warn(message +
75
70
  "\nThis typically indicates a configuration error in your mocks " +
76
71
  "setup, usually due to a typo or mismatched variable.");
77
72
  }
73
+ return (0, rxjs_1.throwError)(() => new Error(message));
74
+ }
75
+ if (matched.maxUsageCount > 1) {
76
+ matched.maxUsageCount--;
78
77
  }
79
78
  else {
80
- if (response.maxUsageCount && response.maxUsageCount > 1) {
81
- response.maxUsageCount--;
82
- }
83
- else {
84
- mockedResponses.splice(responseIndex, 1);
85
- }
86
- const { newData } = response;
87
- if (newData) {
88
- response.result = newData(operation.variables);
89
- mockedResponses.push(response);
90
- }
91
- if (!response.result && !response.error && response.delay !== Infinity) {
92
- configError = new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`: ${key}`);
93
- }
79
+ mocks.splice(index, 1);
80
+ }
81
+ const delay = typeof matched.delay === "function" ?
82
+ matched.delay(operation)
83
+ : matched.delay;
84
+ if (!matched.result && !matched.error && delay !== Infinity) {
85
+ return (0, rxjs_1.throwError)(() => new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`:\n${stringifyMockedResponse(matched.original)}`));
86
+ }
87
+ if (matched.delay === Infinity) {
88
+ return new rxjs_1.Observable();
94
89
  }
95
90
  return new rxjs_1.Observable((observer) => {
96
91
  const timer = setTimeout(() => {
97
- if (configError) {
98
- try {
99
- // The onError function can return false to indicate that
100
- // configError need not be passed to observer.error. For
101
- // example, the default implementation of onError calls
102
- // observer.error(configError) and then returns false to
103
- // prevent this extra (harmless) observer.error call.
104
- if (this.onError(configError, observer) !== false) {
105
- throw configError;
106
- }
107
- }
108
- catch (error) {
109
- observer.error(error);
110
- }
92
+ if (matched.error) {
93
+ return observer.error(matched.error);
111
94
  }
112
- else if (response && response.delay !== Infinity) {
113
- if (response.error) {
114
- observer.error(response.error);
115
- }
116
- else {
117
- if (response.result) {
118
- observer.next(typeof response.result === "function" ?
119
- response.result(operation.variables)
120
- : response.result);
121
- }
122
- observer.complete();
123
- }
95
+ if (matched.result) {
96
+ observer.next(typeof matched.result === "function" ?
97
+ matched.result(operation.variables)
98
+ : matched.result);
124
99
  }
100
+ observer.complete();
125
101
  }, delay);
126
102
  return () => {
127
103
  clearTimeout(timer);
128
104
  };
129
105
  });
130
106
  }
131
- normalizeMockedResponse(mockedResponse) {
132
- const newMockedResponse = (0, utilities_1.cloneDeep)(mockedResponse);
133
- const queryWithoutClientOnlyDirectives = (0, utilities_1.removeDirectivesFromDocument)([{ name: "connection" }, { name: "nonreactive" }, { name: "unmask" }], (0, utilities_1.checkDocument)(newMockedResponse.request.query));
134
- (0, invariant_1.invariant)(queryWithoutClientOnlyDirectives, 23);
135
- newMockedResponse.request.query = queryWithoutClientOnlyDirectives;
136
- const query = (0, utilities_1.removeClientSetsFromDocument)(newMockedResponse.request.query);
137
- if (query) {
138
- newMockedResponse.request.query = query;
107
+ getMockedResponses(request) {
108
+ const key = JSON.stringify({
109
+ query: (0, utilities_1.print)((0, utilities_1.addTypenameToDocument)(request.query)),
110
+ });
111
+ let mockedResponses = this.mockedResponsesByKey[key];
112
+ if (!mockedResponses) {
113
+ mockedResponses = this.mockedResponsesByKey[key] = [];
139
114
  }
140
- mockedResponse.maxUsageCount = mockedResponse.maxUsageCount ?? 1;
141
- (0, invariant_1.invariant)(mockedResponse.maxUsageCount > 0, 24, mockedResponse.maxUsageCount);
142
- this.normalizeVariableMatching(newMockedResponse);
143
- return newMockedResponse;
115
+ return mockedResponses;
144
116
  }
145
- normalizeVariableMatching(mockedResponse) {
146
- const request = mockedResponse.request;
147
- if (mockedResponse.variableMatcher && request.variables) {
148
- throw new Error("Mocked response should contain either variableMatcher or request.variables");
149
- }
150
- if (!mockedResponse.variableMatcher) {
151
- request.variables = {
152
- ...(0, utilities_1.getDefaultValues)((0, utilities_1.getOperationDefinition)(request.query)),
153
- ...request.variables,
154
- };
155
- mockedResponse.variableMatcher = (vars) => {
156
- const requestVariables = vars || {};
157
- const mockedResponseVariables = request.variables || {};
158
- return (0, equality_1.equal)(requestVariables, mockedResponseVariables);
159
- };
160
- }
117
+ normalizeMockedResponse(mockedResponse) {
118
+ const { request } = mockedResponse;
119
+ const response = (0, utilities_1.cloneDeep)(mockedResponse);
120
+ response.original = mockedResponse;
121
+ response.request.query = getServerQuery(request.query);
122
+ response.maxUsageCount ??= 1;
123
+ response.variablesWithDefaults = {
124
+ ...(0, utilities_1.getDefaultValues)((0, utilities_1.getOperationDefinition)(request.query)),
125
+ ...request.variables,
126
+ };
127
+ response.delay ??= this.defaultDelay;
128
+ return response;
161
129
  }
162
130
  }
163
131
  exports.MockLink = MockLink;
132
+ function getErrorMessage(operation, unmatchedVars) {
133
+ return `No more mocked responses for the query:
134
+ ${(0, utilities_1.print)(operation.query)}
135
+
136
+ Request variables: ${stringifyForDebugging(operation.variables)}
137
+ ${unmatchedVars.length > 0 ?
138
+ `
139
+ Failed to match variables against ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The available mocks had the following variables:
140
+ ${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
141
+ `
142
+ : ""}`;
143
+ }
144
+ function getServerQuery(query) {
145
+ const queryWithoutClientOnlyDirectives = (0, utilities_1.removeDirectivesFromDocument)([{ name: "connection" }, { name: "nonreactive" }, { name: "unmask" }], query);
146
+ (0, invariant_1.invariant)(queryWithoutClientOnlyDirectives, 25);
147
+ const serverQuery = (0, utilities_1.removeClientSetsFromDocument)(queryWithoutClientOnlyDirectives);
148
+ (0, invariant_1.invariant)(serverQuery, 26);
149
+ return serverQuery;
150
+ }
151
+ function validateMockedResponse(mock) {
152
+ (0, utilities_1.checkDocument)(mock.request.query);
153
+ (0, invariant_1.invariant)((mock.maxUsageCount ?? 1) > 0, 27, mock.maxUsageCount);
154
+ }
155
+ /** @internal */
156
+ function stringifyMockedResponse(mockedResponse) {
157
+ return JSON.stringify(mockedResponse, (_, value) => {
158
+ if ((0, utilities_1.isDocumentNode)(value)) {
159
+ return (0, utilities_1.print)(value);
160
+ }
161
+ if (typeof value === "function") {
162
+ return "<function>";
163
+ }
164
+ return value;
165
+ }, 2);
166
+ }
164
167
  // Pass in multiple mocked responses, so that you can test flows that end up
165
168
  // making multiple queries to the server.
166
169
  function mockSingleLink(...mockedResponses) {
@@ -171,6 +174,9 @@ function mockSingleLink(...mockedResponses) {
171
174
  // future. This is not added to the primary stringifyForDisplay helper since it
172
175
  // is used for the cache and other purposes. We need this for debuggging only.
173
176
  function stringifyForDebugging(value, space = 0) {
177
+ if (typeof value === "string") {
178
+ return value;
179
+ }
174
180
  const undefId = (0, utilities_1.makeUniqueId)("undefined");
175
181
  const nanId = (0, utilities_1.makeUniqueId)("NaN");
176
182
  return JSON.stringify(value, (_, value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mockLink.cjs","sources":["../../../../../src/testing/core/mocking/mockLink.ts"],"sourcesContent":["import { equal } from \"@wry/equality\";\nimport { Observable } from \"rxjs\";\n\nimport type {\n FetchResult,\n GraphQLRequest,\n Operation,\n} from \"@apollo/client/link/core\";\nimport { ApolloLink } from \"@apollo/client/link/core\";\nimport type { Unmasked } from \"@apollo/client/masking\";\nimport {\n addTypenameToDocument,\n checkDocument,\n cloneDeep,\n getDefaultValues,\n getOperationDefinition,\n makeUniqueId,\n print,\n removeClientSetsFromDocument,\n removeDirectivesFromDocument,\n} from \"@apollo/client/utilities\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\n/** @internal */\ntype CovariantUnaryFunction<out Arg, out Ret> = { fn(arg: Arg): Ret }[\"fn\"];\n\nexport type ResultFunction<T, V = Record<string, any>> = CovariantUnaryFunction<\n V,\n T\n>;\n\ntype VariableMatcher<V = Record<string, any>> = CovariantUnaryFunction<\n V,\n boolean\n>;\n\nexport interface MockedResponse<\n // @ts-ignore\n out TData = Record<string, any>,\n out TVariables = Record<string, any>,\n> {\n request: GraphQLRequest<TVariables>;\n maxUsageCount?: number;\n result?:\n | FetchResult<Unmasked<TData>>\n | ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;\n error?: Error;\n delay?: number;\n variableMatcher?: VariableMatcher<TVariables>;\n newData?: ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;\n}\n\nexport interface MockLinkOptions {\n showWarnings?: boolean;\n}\n\nfunction requestToKey(request: GraphQLRequest): string {\n const queryString =\n request.query && print(addTypenameToDocument(request.query));\n const requestKey = { query: queryString };\n return JSON.stringify(requestKey);\n}\n\nexport class MockLink extends ApolloLink {\n public operation!: Operation;\n public showWarnings: boolean = true;\n private mockedResponsesByKey: { [key: string]: MockedResponse[] } = {};\n\n constructor(\n mockedResponses: ReadonlyArray<MockedResponse<any, any>>,\n options: MockLinkOptions = {}\n ) {\n super();\n this.showWarnings = options.showWarnings ?? true;\n\n if (mockedResponses) {\n mockedResponses.forEach((mockedResponse) => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n const normalizedMockedResponse =\n this.normalizeMockedResponse(mockedResponse);\n const key = requestToKey(normalizedMockedResponse.request);\n let mockedResponses = this.mockedResponsesByKey[key];\n if (!mockedResponses) {\n mockedResponses = [];\n this.mockedResponsesByKey[key] = mockedResponses;\n }\n mockedResponses.push(normalizedMockedResponse);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const key = requestToKey(operation);\n const unmatchedVars: Array<Record<string, any>> = [];\n const requestVariables = operation.variables || {};\n const mockedResponses = this.mockedResponsesByKey[key];\n const responseIndex =\n mockedResponses ?\n mockedResponses.findIndex((res, index) => {\n const mockedResponseVars = res.request.variables || {};\n if (equal(requestVariables, mockedResponseVars)) {\n return true;\n }\n if (res.variableMatcher && res.variableMatcher(operation.variables)) {\n return true;\n }\n unmatchedVars.push(mockedResponseVars);\n return false;\n })\n : -1;\n\n const response =\n responseIndex >= 0 ? mockedResponses[responseIndex] : void 0;\n\n // There have been platform- and engine-dependent differences with\n // setInterval(fn, Infinity), so we pass 0 instead (but detect\n // Infinity where we call observer.error or observer.next to pend\n // indefinitely in those cases.)\n const delay = response?.delay === Infinity ? 0 : response?.delay ?? 0;\n\n let configError: Error;\n\n if (!response) {\n configError = new Error(\n `No more mocked responses for the query: ${print(operation.query)}\nExpected variables: ${stringifyForDebugging(operation.variables)}\n${\n unmatchedVars.length > 0 ?\n `\nFailed to match ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n } for this query. The mocked response had the following variables:\n${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join(\"\\n\")}\n`\n : \"\"\n}`\n );\n\n if (this.showWarnings) {\n console.warn(\n configError.message +\n \"\\nThis typically indicates a configuration error in your mocks \" +\n \"setup, usually due to a typo or mismatched variable.\"\n );\n }\n } else {\n if (response.maxUsageCount && response.maxUsageCount > 1) {\n response.maxUsageCount--;\n } else {\n mockedResponses.splice(responseIndex, 1);\n }\n const { newData } = response;\n if (newData) {\n response.result = newData(operation.variables);\n mockedResponses.push(response);\n }\n\n if (!response.result && !response.error && response.delay !== Infinity) {\n configError = new Error(\n `Mocked response should contain either \\`result\\`, \\`error\\` or a \\`delay\\` of \\`Infinity\\`: ${key}`\n );\n }\n }\n\n return new Observable((observer) => {\n const timer = setTimeout(() => {\n if (configError) {\n try {\n // The onError function can return false to indicate that\n // configError need not be passed to observer.error. For\n // example, the default implementation of onError calls\n // observer.error(configError) and then returns false to\n // prevent this extra (harmless) observer.error call.\n if (this.onError(configError, observer) !== false) {\n throw configError;\n }\n } catch (error) {\n observer.error(error);\n }\n } else if (response && response.delay !== Infinity) {\n if (response.error) {\n observer.error(response.error);\n } else {\n if (response.result) {\n observer.next(\n typeof response.result === \"function\" ?\n response.result(operation.variables)\n : response.result\n );\n }\n observer.complete();\n }\n }\n }, delay);\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): MockedResponse {\n const newMockedResponse = cloneDeep(mockedResponse);\n const queryWithoutClientOnlyDirectives = removeDirectivesFromDocument(\n [{ name: \"connection\" }, { name: \"nonreactive\" }, { name: \"unmask\" }],\n checkDocument(newMockedResponse.request.query)\n );\n invariant(queryWithoutClientOnlyDirectives, \"query is required\");\n newMockedResponse.request.query = queryWithoutClientOnlyDirectives!;\n const query = removeClientSetsFromDocument(newMockedResponse.request.query);\n if (query) {\n newMockedResponse.request.query = query;\n }\n\n mockedResponse.maxUsageCount = mockedResponse.maxUsageCount ?? 1;\n invariant(\n mockedResponse.maxUsageCount > 0,\n `Mock response maxUsageCount must be greater than 0, %s given`,\n mockedResponse.maxUsageCount\n );\n\n this.normalizeVariableMatching(newMockedResponse);\n return newMockedResponse;\n }\n\n private normalizeVariableMatching(mockedResponse: MockedResponse) {\n const request = mockedResponse.request;\n if (mockedResponse.variableMatcher && request.variables) {\n throw new Error(\n \"Mocked response should contain either variableMatcher or request.variables\"\n );\n }\n\n if (!mockedResponse.variableMatcher) {\n request.variables = {\n ...getDefaultValues(getOperationDefinition(request.query)),\n ...request.variables,\n };\n mockedResponse.variableMatcher = (vars) => {\n const requestVariables = vars || {};\n const mockedResponseVariables = request.variables || {};\n return equal(requestVariables, mockedResponseVariables);\n };\n }\n }\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\nexport function mockSingleLink(\n ...mockedResponses: Array<MockedResponse<any, any>>\n): MockApolloLink {\n return new MockLink(mockedResponses);\n}\n\n// This is similiar to the stringifyForDisplay utility we ship, but includes\n// support for NaN in addition to undefined. More values may be handled in the\n// future. This is not added to the primary stringifyForDisplay helper since it\n// is used for the cache and other purposes. We need this for debuggging only.\nfunction stringifyForDebugging(value: any, space = 0): string {\n const undefId = makeUniqueId(\"undefined\");\n const nanId = makeUniqueId(\"NaN\");\n\n return JSON.stringify(\n value,\n (_, value) => {\n if (value === void 0) {\n return undefId;\n }\n\n if (Number.isNaN(value)) {\n return nanId;\n }\n\n return value;\n },\n space\n )\n .replace(new RegExp(JSON.stringify(undefId), \"g\"), \"<undefined>\")\n .replace(new RegExp(JSON.stringify(nanId), \"g\"), \"NaN\");\n}\n"],"names":[],"mappings":";;;AAmQA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAnQA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAWA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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"}
1
+ {"version":3,"file":"mockLink.cjs","sources":["../../../../../src/testing/core/mocking/mockLink.ts"],"sourcesContent":["import { equal } from \"@wry/equality\";\nimport type { DocumentNode } from \"graphql\";\nimport { Observable, throwError } from \"rxjs\";\n\nimport type { FetchResult, Operation } from \"@apollo/client/link/core\";\nimport { ApolloLink } from \"@apollo/client/link/core\";\nimport type { Unmasked } from \"@apollo/client/masking\";\nimport {\n addTypenameToDocument,\n checkDocument,\n cloneDeep,\n getDefaultValues,\n getOperationDefinition,\n isDocumentNode,\n makeUniqueId,\n print,\n removeClientSetsFromDocument,\n removeDirectivesFromDocument,\n} from \"@apollo/client/utilities\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\n/** @internal */\ntype CovariantUnaryFunction<out Arg, out Ret> = { fn(arg: Arg): Ret }[\"fn\"];\n\nexport type ResultFunction<T, V = Record<string, any>> = CovariantUnaryFunction<\n V,\n T\n>;\n\ntype VariableMatcher<V = Record<string, any>> = CovariantUnaryFunction<\n V,\n boolean\n>;\n\nexport interface MockedRequest<TVariables = Record<string, any>> {\n query: DocumentNode;\n variables?: TVariables | VariableMatcher<TVariables>;\n}\n\nexport interface MockedResponse<\n // @ts-ignore\n out TData = Record<string, any>,\n out TVariables = Record<string, any>,\n> {\n request: MockedRequest<TVariables>;\n maxUsageCount?: number;\n result?:\n | FetchResult<Unmasked<TData>>\n | ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;\n error?: Error;\n delay?: number | MockLink.DelayFunction;\n}\n\ninterface NormalizedMockedResponse {\n original: MockedResponse;\n request: MockedRequest;\n variablesWithDefaults: Record<string, any>;\n maxUsageCount: number;\n result?: FetchResult | ResultFunction<FetchResult, any>;\n error?: Error;\n delay: number | MockLink.DelayFunction;\n}\n\ntype UnmatchedVariables = Array<\n Record<string, any> | \"<undefined>\" | `<function ${string}>`\n>;\n\nexport interface MockLinkOptions {\n showWarnings?: boolean;\n defaultOptions?: MockLink.DefaultOptions;\n}\n\nexport declare namespace MockLink {\n export type DelayFunction = (operation: Operation) => number;\n export type Delay = number | DelayFunction;\n export interface DefaultOptions {\n delay?: MockLink.Delay;\n }\n}\n\nexport function realisticDelay({\n min = 20,\n max = 50,\n}: { min?: number; max?: number } = {}): MockLink.DelayFunction {\n invariant(max > min, \"realisticDelay: `min` must be less than `max`\");\n\n return () => Math.floor(Math.random() * (max - min) + min);\n}\n\nexport class MockLink extends ApolloLink {\n public operation!: Operation;\n public showWarnings: boolean = true;\n\n private defaultDelay: MockLink.Delay;\n private mockedResponsesByKey: { [key: string]: NormalizedMockedResponse[] } =\n {};\n\n public static defaultOptions: MockLink.DefaultOptions = {\n delay: realisticDelay(),\n };\n\n constructor(\n mockedResponses: ReadonlyArray<\n MockedResponse<Record<string, any>, Record<string, any>>\n >,\n options: MockLinkOptions = {}\n ) {\n super();\n const defaultOptions = options.defaultOptions ?? MockLink.defaultOptions;\n\n this.showWarnings = options.showWarnings ?? true;\n this.defaultDelay = defaultOptions?.delay ?? realisticDelay();\n\n if (mockedResponses) {\n mockedResponses.forEach((mockedResponse) => {\n this.addMockedResponse(mockedResponse);\n });\n }\n }\n\n public addMockedResponse(mockedResponse: MockedResponse) {\n validateMockedResponse(mockedResponse);\n\n const normalized = this.normalizeMockedResponse(mockedResponse);\n this.getMockedResponses(normalized.request).push(normalized);\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n this.operation = operation;\n const unmatchedVars: UnmatchedVariables = [];\n const mocks = this.getMockedResponses(operation);\n\n const index = mocks.findIndex((mock) => {\n const { variables } = mock.request;\n\n if (typeof variables === \"function\") {\n const matched = variables(operation.variables);\n\n if (!matched) {\n unmatchedVars.push(`<function ${variables.name}>`);\n }\n\n return matched;\n }\n\n const withDefaults = mock.variablesWithDefaults;\n\n if (equal(withDefaults, operation.variables)) {\n return true;\n }\n\n unmatchedVars.push(\n // Include default variables from the query in unmatched variables\n // output\n Object.keys(withDefaults).length > 0 ?\n withDefaults\n : variables || \"<undefined>\"\n );\n return false;\n });\n\n const matched = index >= 0 ? mocks[index] : void 0;\n\n if (!matched) {\n const message = getErrorMessage(operation, unmatchedVars);\n\n if (this.showWarnings) {\n console.warn(\n message +\n \"\\nThis typically indicates a configuration error in your mocks \" +\n \"setup, usually due to a typo or mismatched variable.\"\n );\n }\n\n return throwError(() => new Error(message));\n }\n\n if (matched.maxUsageCount > 1) {\n matched.maxUsageCount--;\n } else {\n mocks.splice(index, 1);\n }\n\n const delay =\n typeof matched.delay === \"function\" ?\n matched.delay(operation)\n : matched.delay;\n\n if (!matched.result && !matched.error && delay !== Infinity) {\n return throwError(\n () =>\n new Error(\n `Mocked response should contain either \\`result\\`, \\`error\\` or a \\`delay\\` of \\`Infinity\\`:\\n${stringifyMockedResponse(\n matched.original\n )}`\n )\n );\n }\n\n if (matched.delay === Infinity) {\n return new Observable();\n }\n\n return new Observable((observer) => {\n const timer = setTimeout(() => {\n if (matched.error) {\n return observer.error(matched.error);\n }\n\n if (matched.result) {\n observer.next(\n typeof matched.result === \"function\" ?\n matched.result(operation.variables)\n : matched.result\n );\n }\n observer.complete();\n }, delay);\n\n return () => {\n clearTimeout(timer);\n };\n });\n }\n\n private getMockedResponses(request: MockedRequest) {\n const key = JSON.stringify({\n query: print(addTypenameToDocument(request.query)),\n });\n\n let mockedResponses = this.mockedResponsesByKey[key];\n\n if (!mockedResponses) {\n mockedResponses = this.mockedResponsesByKey[key] = [];\n }\n\n return mockedResponses;\n }\n\n private normalizeMockedResponse(\n mockedResponse: MockedResponse\n ): NormalizedMockedResponse {\n const { request } = mockedResponse;\n const response = cloneDeep(mockedResponse) as NormalizedMockedResponse;\n\n response.original = mockedResponse;\n response.request.query = getServerQuery(request.query);\n response.maxUsageCount ??= 1;\n response.variablesWithDefaults = {\n ...getDefaultValues(getOperationDefinition(request.query)),\n ...request.variables,\n };\n response.delay ??= this.defaultDelay;\n\n return response;\n }\n}\n\nfunction getErrorMessage(\n operation: Operation,\n unmatchedVars: UnmatchedVariables\n) {\n return `No more mocked responses for the query:\n${print(operation.query)}\n\nRequest variables: ${stringifyForDebugging(operation.variables)}\n${\n unmatchedVars.length > 0 ?\n `\nFailed to match variables against ${unmatchedVars.length} mock${\n unmatchedVars.length === 1 ? \"\" : \"s\"\n } for this query. The available mocks had the following variables:\n${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join(\"\\n\")}\n`\n : \"\"\n}`;\n}\n\nfunction getServerQuery(query: DocumentNode) {\n const queryWithoutClientOnlyDirectives = removeDirectivesFromDocument(\n [{ name: \"connection\" }, { name: \"nonreactive\" }, { name: \"unmask\" }],\n query\n );\n\n invariant(queryWithoutClientOnlyDirectives, \"query is required\");\n\n const serverQuery = removeClientSetsFromDocument(\n queryWithoutClientOnlyDirectives\n );\n\n invariant(\n serverQuery,\n \"Cannot mock a client-only query. Mocked responses should contain at least one non-client field.\"\n );\n\n return serverQuery;\n}\n\nfunction validateMockedResponse(mock: MockedResponse) {\n checkDocument(mock.request.query);\n\n invariant(\n (mock.maxUsageCount ?? 1) > 0,\n \"Mocked response `maxUsageCount` must be greater than 0. Given %s\",\n mock.maxUsageCount\n );\n}\n\n/** @internal */\nexport function stringifyMockedResponse(mockedResponse: MockedResponse) {\n return JSON.stringify(\n mockedResponse,\n (_, value) => {\n if (isDocumentNode(value)) {\n return print(value);\n }\n\n if (typeof value === \"function\") {\n return \"<function>\";\n }\n\n return value;\n },\n 2\n );\n}\n\nexport interface MockApolloLink extends ApolloLink {\n operation?: Operation;\n}\n\n// Pass in multiple mocked responses, so that you can test flows that end up\n// making multiple queries to the server.\nexport function mockSingleLink(\n ...mockedResponses: Array<MockedResponse<any, any>>\n): MockApolloLink {\n return new MockLink(mockedResponses);\n}\n\n// This is similiar to the stringifyForDisplay utility we ship, but includes\n// support for NaN in addition to undefined. More values may be handled in the\n// future. This is not added to the primary stringifyForDisplay helper since it\n// is used for the cache and other purposes. We need this for debuggging only.\nfunction stringifyForDebugging(value: any, space = 0): string {\n if (typeof value === \"string\") {\n return value;\n }\n\n const undefId = makeUniqueId(\"undefined\");\n const nanId = makeUniqueId(\"NaN\");\n\n return JSON.stringify(\n value,\n (_, value) => {\n if (value === void 0) {\n return undefId;\n }\n\n if (Number.isNaN(value)) {\n return nanId;\n }\n\n return value;\n },\n space\n )\n .replace(new RegExp(JSON.stringify(undefId), \"g\"), \"<undefined>\")\n .replace(new RegExp(JSON.stringify(nanId), \"g\"), \"NaN\");\n}\n"],"names":[],"mappings":";;;AAgFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAqOA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAwBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA7UA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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"}
@@ -1,5 +1,6 @@
1
+ import type { DocumentNode } from "graphql";
1
2
  import { Observable } from "rxjs";
2
- import type { FetchResult, GraphQLRequest, Operation } from "@apollo/client/link/core";
3
+ import type { FetchResult, Operation } from "@apollo/client/link/core";
3
4
  import { ApolloLink } from "@apollo/client/link/core";
4
5
  import type { Unmasked } from "@apollo/client/masking";
5
6
  /** @internal */
@@ -8,28 +9,46 @@ type CovariantUnaryFunction<out Arg, out Ret> = {
8
9
  }["fn"];
9
10
  export type ResultFunction<T, V = Record<string, any>> = CovariantUnaryFunction<V, T>;
10
11
  type VariableMatcher<V = Record<string, any>> = CovariantUnaryFunction<V, boolean>;
12
+ export interface MockedRequest<TVariables = Record<string, any>> {
13
+ query: DocumentNode;
14
+ variables?: TVariables | VariableMatcher<TVariables>;
15
+ }
11
16
  export interface MockedResponse<out TData = Record<string, any>, out TVariables = Record<string, any>> {
12
- request: GraphQLRequest<TVariables>;
17
+ request: MockedRequest<TVariables>;
13
18
  maxUsageCount?: number;
14
19
  result?: FetchResult<Unmasked<TData>> | ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;
15
20
  error?: Error;
16
- delay?: number;
17
- variableMatcher?: VariableMatcher<TVariables>;
18
- newData?: ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;
21
+ delay?: number | MockLink.DelayFunction;
19
22
  }
20
23
  export interface MockLinkOptions {
21
24
  showWarnings?: boolean;
25
+ defaultOptions?: MockLink.DefaultOptions;
26
+ }
27
+ export declare namespace MockLink {
28
+ type DelayFunction = (operation: Operation) => number;
29
+ type Delay = number | DelayFunction;
30
+ interface DefaultOptions {
31
+ delay?: MockLink.Delay;
32
+ }
22
33
  }
34
+ export declare function realisticDelay({ min, max, }?: {
35
+ min?: number;
36
+ max?: number;
37
+ }): MockLink.DelayFunction;
23
38
  export declare class MockLink extends ApolloLink {
24
39
  operation: Operation;
25
40
  showWarnings: boolean;
41
+ private defaultDelay;
26
42
  private mockedResponsesByKey;
27
- constructor(mockedResponses: ReadonlyArray<MockedResponse<any, any>>, options?: MockLinkOptions);
43
+ static defaultOptions: MockLink.DefaultOptions;
44
+ constructor(mockedResponses: ReadonlyArray<MockedResponse<Record<string, any>, Record<string, any>>>, options?: MockLinkOptions);
28
45
  addMockedResponse(mockedResponse: MockedResponse): void;
29
46
  request(operation: Operation): Observable<FetchResult> | null;
47
+ private getMockedResponses;
30
48
  private normalizeMockedResponse;
31
- private normalizeVariableMatching;
32
49
  }
50
+ /** @internal */
51
+ export declare function stringifyMockedResponse(mockedResponse: MockedResponse): string;
33
52
  export interface MockApolloLink extends ApolloLink {
34
53
  operation?: Operation;
35
54
  }
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSchemaFetch = void 0;
4
4
  const graphql_1 = require("graphql");
5
- const core_1 = require("@apollo/client/core");
5
+ const client_1 = require("@apollo/client");
6
6
  const testing_1 = require("@apollo/client/testing");
7
- const index_js_1 = require("../internal/index.cjs");
7
+ const internal_1 = require("@apollo/client/testing/internal");
8
8
  /**
9
9
  * A function that accepts a static `schema` and a `mockFetchOpts` object and
10
10
  * returns a disposable object with `mock` and `restore` functions.
@@ -47,7 +47,7 @@ const createSchemaFetch = (schema, mockFetchOpts = { validate: true }) => {
47
47
  await (0, testing_1.wait)(randomDelay);
48
48
  }
49
49
  const body = JSON.parse(options.body);
50
- const document = (0, core_1.gql)(body.query);
50
+ const document = (0, client_1.gql)(body.query);
51
51
  if (mockFetchOpts.validate) {
52
52
  let validationErrors = [];
53
53
  try {
@@ -80,7 +80,7 @@ const createSchemaFetch = (schema, mockFetchOpts = { validate: true }) => {
80
80
  window.fetch = prevFetch;
81
81
  }
82
82
  };
83
- return (0, index_js_1.withCleanup)({ restore }, restore);
83
+ return (0, internal_1.withCleanup)({ restore }, restore);
84
84
  }
85
85
  return Object.assign(mockFetch, {
86
86
  mockGlobal,