@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,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
  }
@@ -1,20 +1,25 @@
1
1
  import { equal } from "@wry/equality";
2
- import { Observable } from "rxjs";
2
+ import { Observable, throwError } from "rxjs";
3
3
  import { ApolloLink } from "@apollo/client/link/core";
4
- import { addTypenameToDocument, checkDocument, cloneDeep, getDefaultValues, getOperationDefinition, makeUniqueId, print, removeClientSetsFromDocument, removeDirectivesFromDocument, } from "@apollo/client/utilities";
4
+ import { addTypenameToDocument, checkDocument, cloneDeep, getDefaultValues, getOperationDefinition, isDocumentNode, makeUniqueId, print, removeClientSetsFromDocument, removeDirectivesFromDocument, } from "@apollo/client/utilities";
5
5
  import { invariant } from "@apollo/client/utilities/invariant";
6
- function requestToKey(request) {
7
- const queryString = request.query && print(addTypenameToDocument(request.query));
8
- const requestKey = { query: queryString };
9
- return JSON.stringify(requestKey);
6
+ export function realisticDelay({ min = 20, max = 50, } = {}) {
7
+ invariant(max > min, 24);
8
+ return () => Math.floor(Math.random() * (max - min) + min);
10
9
  }
11
10
  export class MockLink extends ApolloLink {
12
11
  operation;
13
12
  showWarnings = true;
13
+ defaultDelay;
14
14
  mockedResponsesByKey = {};
15
+ static defaultOptions = {
16
+ delay: realisticDelay(),
17
+ };
15
18
  constructor(mockedResponses, options = {}) {
16
19
  super();
20
+ const defaultOptions = options.defaultOptions ?? MockLink.defaultOptions;
17
21
  this.showWarnings = options.showWarnings ?? true;
22
+ this.defaultDelay = defaultOptions?.delay ?? realisticDelay();
18
23
  if (mockedResponses) {
19
24
  mockedResponses.forEach((mockedResponse) => {
20
25
  this.addMockedResponse(mockedResponse);
@@ -22,139 +27,135 @@ export class MockLink extends ApolloLink {
22
27
  }
23
28
  }
24
29
  addMockedResponse(mockedResponse) {
25
- const normalizedMockedResponse = this.normalizeMockedResponse(mockedResponse);
26
- const key = requestToKey(normalizedMockedResponse.request);
27
- let mockedResponses = this.mockedResponsesByKey[key];
28
- if (!mockedResponses) {
29
- mockedResponses = [];
30
- this.mockedResponsesByKey[key] = mockedResponses;
31
- }
32
- mockedResponses.push(normalizedMockedResponse);
30
+ validateMockedResponse(mockedResponse);
31
+ const normalized = this.normalizeMockedResponse(mockedResponse);
32
+ this.getMockedResponses(normalized.request).push(normalized);
33
33
  }
34
34
  request(operation) {
35
35
  this.operation = operation;
36
- const key = requestToKey(operation);
37
36
  const unmatchedVars = [];
38
- const requestVariables = operation.variables || {};
39
- const mockedResponses = this.mockedResponsesByKey[key];
40
- const responseIndex = mockedResponses ?
41
- mockedResponses.findIndex((res, index) => {
42
- const mockedResponseVars = res.request.variables || {};
43
- if (equal(requestVariables, mockedResponseVars)) {
44
- return true;
37
+ const mocks = this.getMockedResponses(operation);
38
+ const index = mocks.findIndex((mock) => {
39
+ const { variables } = mock.request;
40
+ if (typeof variables === "function") {
41
+ const matched = variables(operation.variables);
42
+ if (!matched) {
43
+ unmatchedVars.push(`<function ${variables.name}>`);
45
44
  }
46
- if (res.variableMatcher && res.variableMatcher(operation.variables)) {
47
- return true;
48
- }
49
- unmatchedVars.push(mockedResponseVars);
50
- return false;
51
- })
52
- : -1;
53
- const response = responseIndex >= 0 ? mockedResponses[responseIndex] : void 0;
54
- // There have been platform- and engine-dependent differences with
55
- // setInterval(fn, Infinity), so we pass 0 instead (but detect
56
- // Infinity where we call observer.error or observer.next to pend
57
- // indefinitely in those cases.)
58
- const delay = response?.delay === Infinity ? 0 : response?.delay ?? 0;
59
- let configError;
60
- if (!response) {
61
- configError = new Error(`No more mocked responses for the query: ${print(operation.query)}
62
- Expected variables: ${stringifyForDebugging(operation.variables)}
63
- ${unmatchedVars.length > 0 ?
64
- `
65
- Failed to match ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The mocked response had the following variables:
66
- ${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
67
- `
68
- : ""}`);
45
+ return matched;
46
+ }
47
+ const withDefaults = mock.variablesWithDefaults;
48
+ if (equal(withDefaults, operation.variables)) {
49
+ return true;
50
+ }
51
+ unmatchedVars.push(
52
+ // Include default variables from the query in unmatched variables
53
+ // output
54
+ Object.keys(withDefaults).length > 0 ?
55
+ withDefaults
56
+ : variables || "<undefined>");
57
+ return false;
58
+ });
59
+ const matched = index >= 0 ? mocks[index] : void 0;
60
+ if (!matched) {
61
+ const message = getErrorMessage(operation, unmatchedVars);
69
62
  if (this.showWarnings) {
70
- console.warn(configError.message +
63
+ console.warn(message +
71
64
  "\nThis typically indicates a configuration error in your mocks " +
72
65
  "setup, usually due to a typo or mismatched variable.");
73
66
  }
67
+ return throwError(() => new Error(message));
68
+ }
69
+ if (matched.maxUsageCount > 1) {
70
+ matched.maxUsageCount--;
74
71
  }
75
72
  else {
76
- if (response.maxUsageCount && response.maxUsageCount > 1) {
77
- response.maxUsageCount--;
78
- }
79
- else {
80
- mockedResponses.splice(responseIndex, 1);
81
- }
82
- const { newData } = response;
83
- if (newData) {
84
- response.result = newData(operation.variables);
85
- mockedResponses.push(response);
86
- }
87
- if (!response.result && !response.error && response.delay !== Infinity) {
88
- configError = new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`: ${key}`);
89
- }
73
+ mocks.splice(index, 1);
74
+ }
75
+ const delay = typeof matched.delay === "function" ?
76
+ matched.delay(operation)
77
+ : matched.delay;
78
+ if (!matched.result && !matched.error && delay !== Infinity) {
79
+ return throwError(() => new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`:\n${stringifyMockedResponse(matched.original)}`));
80
+ }
81
+ if (matched.delay === Infinity) {
82
+ return new Observable();
90
83
  }
91
84
  return new Observable((observer) => {
92
85
  const timer = setTimeout(() => {
93
- if (configError) {
94
- try {
95
- // The onError function can return false to indicate that
96
- // configError need not be passed to observer.error. For
97
- // example, the default implementation of onError calls
98
- // observer.error(configError) and then returns false to
99
- // prevent this extra (harmless) observer.error call.
100
- if (this.onError(configError, observer) !== false) {
101
- throw configError;
102
- }
103
- }
104
- catch (error) {
105
- observer.error(error);
106
- }
86
+ if (matched.error) {
87
+ return observer.error(matched.error);
107
88
  }
108
- else if (response && response.delay !== Infinity) {
109
- if (response.error) {
110
- observer.error(response.error);
111
- }
112
- else {
113
- if (response.result) {
114
- observer.next(typeof response.result === "function" ?
115
- response.result(operation.variables)
116
- : response.result);
117
- }
118
- observer.complete();
119
- }
89
+ if (matched.result) {
90
+ observer.next(typeof matched.result === "function" ?
91
+ matched.result(operation.variables)
92
+ : matched.result);
120
93
  }
94
+ observer.complete();
121
95
  }, delay);
122
96
  return () => {
123
97
  clearTimeout(timer);
124
98
  };
125
99
  });
126
100
  }
127
- normalizeMockedResponse(mockedResponse) {
128
- const newMockedResponse = cloneDeep(mockedResponse);
129
- const queryWithoutClientOnlyDirectives = removeDirectivesFromDocument([{ name: "connection" }, { name: "nonreactive" }, { name: "unmask" }], checkDocument(newMockedResponse.request.query));
130
- invariant(queryWithoutClientOnlyDirectives, 23);
131
- newMockedResponse.request.query = queryWithoutClientOnlyDirectives;
132
- const query = removeClientSetsFromDocument(newMockedResponse.request.query);
133
- if (query) {
134
- newMockedResponse.request.query = query;
101
+ getMockedResponses(request) {
102
+ const key = JSON.stringify({
103
+ query: print(addTypenameToDocument(request.query)),
104
+ });
105
+ let mockedResponses = this.mockedResponsesByKey[key];
106
+ if (!mockedResponses) {
107
+ mockedResponses = this.mockedResponsesByKey[key] = [];
135
108
  }
136
- mockedResponse.maxUsageCount = mockedResponse.maxUsageCount ?? 1;
137
- invariant(mockedResponse.maxUsageCount > 0, 24, mockedResponse.maxUsageCount);
138
- this.normalizeVariableMatching(newMockedResponse);
139
- return newMockedResponse;
109
+ return mockedResponses;
110
+ }
111
+ normalizeMockedResponse(mockedResponse) {
112
+ const { request } = mockedResponse;
113
+ const response = cloneDeep(mockedResponse);
114
+ response.original = mockedResponse;
115
+ response.request.query = getServerQuery(request.query);
116
+ response.maxUsageCount ??= 1;
117
+ response.variablesWithDefaults = {
118
+ ...getDefaultValues(getOperationDefinition(request.query)),
119
+ ...request.variables,
120
+ };
121
+ response.delay ??= this.defaultDelay;
122
+ return response;
140
123
  }
141
- normalizeVariableMatching(mockedResponse) {
142
- const request = mockedResponse.request;
143
- if (mockedResponse.variableMatcher && request.variables) {
144
- throw new Error("Mocked response should contain either variableMatcher or request.variables");
124
+ }
125
+ function getErrorMessage(operation, unmatchedVars) {
126
+ return `No more mocked responses for the query:
127
+ ${print(operation.query)}
128
+
129
+ Request variables: ${stringifyForDebugging(operation.variables)}
130
+ ${unmatchedVars.length > 0 ?
131
+ `
132
+ Failed to match variables against ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The available mocks had the following variables:
133
+ ${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
134
+ `
135
+ : ""}`;
136
+ }
137
+ function getServerQuery(query) {
138
+ const queryWithoutClientOnlyDirectives = removeDirectivesFromDocument([{ name: "connection" }, { name: "nonreactive" }, { name: "unmask" }], query);
139
+ invariant(queryWithoutClientOnlyDirectives, 25);
140
+ const serverQuery = removeClientSetsFromDocument(queryWithoutClientOnlyDirectives);
141
+ invariant(serverQuery, 26);
142
+ return serverQuery;
143
+ }
144
+ function validateMockedResponse(mock) {
145
+ checkDocument(mock.request.query);
146
+ invariant((mock.maxUsageCount ?? 1) > 0, 27, mock.maxUsageCount);
147
+ }
148
+ /** @internal */
149
+ export function stringifyMockedResponse(mockedResponse) {
150
+ return JSON.stringify(mockedResponse, (_, value) => {
151
+ if (isDocumentNode(value)) {
152
+ return print(value);
145
153
  }
146
- if (!mockedResponse.variableMatcher) {
147
- request.variables = {
148
- ...getDefaultValues(getOperationDefinition(request.query)),
149
- ...request.variables,
150
- };
151
- mockedResponse.variableMatcher = (vars) => {
152
- const requestVariables = vars || {};
153
- const mockedResponseVariables = request.variables || {};
154
- return equal(requestVariables, mockedResponseVariables);
155
- };
154
+ if (typeof value === "function") {
155
+ return "<function>";
156
156
  }
157
- }
157
+ return value;
158
+ }, 2);
158
159
  }
159
160
  // Pass in multiple mocked responses, so that you can test flows that end up
160
161
  // making multiple queries to the server.
@@ -166,6 +167,9 @@ export function mockSingleLink(...mockedResponses) {
166
167
  // future. This is not added to the primary stringifyForDisplay helper since it
167
168
  // is used for the cache and other purposes. We need this for debuggging only.
168
169
  function stringifyForDebugging(value, space = 0) {
170
+ if (typeof value === "string") {
171
+ return value;
172
+ }
169
173
  const undefId = makeUniqueId("undefined");
170
174
  const nanId = makeUniqueId("NaN");
171
175
  return JSON.stringify(value, (_, value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mockLink.js","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":"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A,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAA/B,CAAA,CAAA,CAAA,CAAA,EAA2C,CAA3C,CAAA,CAAA,CAAA,EAAA,EAAmD,CAAnD,EAAA;IACE,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAkB,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAC;IACzC,CAAF,CAAA,CAAA,CAAA,EAAQ,CAAR,CAAA,CAAA,CAAA,EAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAkC,CAAC;IAEjC,CAAF,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAA,CAAA,CAAa,CAAC,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CACnB,CADJ,CAAA,CAAA,CAAA,CACS,EACL,CAAC,CAAC,EAAE,CAFR,CAAA,CAAA,CAAA,CAEa,EAAE,CAFf,EAAA;QAGM,CAAN,EAAA,CAAU,CAAV,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAoB,CAApB,CAAA,CAAA,EAAyB,CAAC,EAAE;YACpB,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB;QAChB;QAEA,CAAN,EAAA,CAAU,CAAV,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAjB,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAvB,CAAA,CAAA,CAAA,CAA4B,CAAC,EAAE;YACvB,CAAR,CAAA,CAAA,CAAA,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAoB;QACd;QAEA,CAAN,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAkB;IACd,CAAC,EACD,CADJ,CAAA,CAAA,CAAA,CACS;QAET,CAAK,CAAL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC,CAAvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8C,CAAC,EAAE,CAAjD,CAAA,CAAoD,CAAC,EAAE,CAAvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoE;QACpE,CAAK,CAAL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAb,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAA4B,CAAC,CAA7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC,CAAvC,CAAA,CAAA,CAAA,CAA4C,CAAC,EAAE,CAA/C,CAAA,CAAkD,CAAC,EAAE,CAArD,CAAA,CAAA,CAAA,CAA0D,CAAC;AAC3D;"}
1
+ {"version":3,"file":"mockLink.js","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":"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"}
@@ -1,7 +1,7 @@
1
1
  import { execute, GraphQLError, validate } from "graphql";
2
- import { gql } from "@apollo/client/core";
2
+ import { gql } from "@apollo/client";
3
3
  import { wait } from "@apollo/client/testing";
4
- import { withCleanup } from "../internal/index.js";
4
+ import { withCleanup } from "@apollo/client/testing/internal";
5
5
  /**
6
6
  * A function that accepts a static `schema` and a `mockFetchOpts` object and
7
7
  * returns a disposable object with `mock` and `restore` functions.
@@ -1 +1 @@
1
- {"version":3,"file":"createSchemaFetch.js","sources":["../../../src/testing/experimental/createSchemaFetch.ts"],"sourcesContent":["import type { GraphQLFormattedError, GraphQLSchema } from \"graphql\";\nimport { execute, GraphQLError, validate } from \"graphql\";\n\nimport { gql } from \"@apollo/client/core\";\nimport { wait } from \"@apollo/client/testing\";\n\nimport { withCleanup } from \"../internal/index.js\";\n\n/**\n * A function that accepts a static `schema` and a `mockFetchOpts` object and\n * returns a disposable object with `mock` and `restore` functions.\n *\n * The `mock` function is a mock fetch function that is set on the global\n * `window` object. This function intercepts any fetch requests and\n * returns a response by executing the operation against the provided schema.\n *\n * The `restore` function is a cleanup function that will restore the previous\n * `fetch`. It is automatically called if the function's return value is\n * declared with `using`. If your environment does not support the language\n * feature `using`, you should manually invoke the `restore` function.\n *\n * @param schema - A `GraphQLSchema`.\n * @param mockFetchOpts - Configuration options.\n * @returns An object with both `mock` and `restore` functions.\n *\n * @example\n * ```js\n * using _fetch = createSchemaFetch(schema); // automatically restores fetch after exiting the block\n *\n * const { restore } = createSchemaFetch(schema);\n * restore(); // manually restore fetch if `using` is not supported\n * ```\n * @since 3.10.0\n * @alpha\n * @deprecated `createSchemaFetch` is deprecated and will be removed in 3.12.0.\n * Please migrate to [`@apollo/graphql-testing-library`](https://github.com/apollographql/graphql-testing-library).\n */\nconst createSchemaFetch = (\n schema: GraphQLSchema,\n mockFetchOpts: {\n validate?: boolean;\n delay?: { min: number; max: number };\n } = { validate: true }\n) => {\n const prevFetch = window.fetch;\n const delayMin = mockFetchOpts.delay?.min ?? 3;\n const delayMax = mockFetchOpts.delay?.max ?? delayMin + 2;\n\n if (delayMin > delayMax) {\n throw new Error(\n \"Please configure a minimum delay that is less than the maximum delay. The default minimum delay is 3ms.\"\n );\n }\n\n const mockFetch: (uri?: any, options?: any) => Promise<Response> = async (\n _uri,\n options\n ) => {\n if (delayMin > 0) {\n const randomDelay = Math.random() * (delayMax - delayMin) + delayMin;\n await wait(randomDelay);\n }\n\n const body = JSON.parse(options.body);\n const document = gql(body.query);\n\n if (mockFetchOpts.validate) {\n let validationErrors: readonly GraphQLFormattedError[] = [];\n\n try {\n validationErrors = validate(schema, document);\n } catch (e) {\n validationErrors = [\n e instanceof Error ?\n GraphQLError.prototype.toJSON.apply(e)\n : (e as any),\n ];\n }\n\n if (validationErrors?.length > 0) {\n return new Response(JSON.stringify({ errors: validationErrors }));\n }\n }\n\n const result = await execute({\n schema,\n document,\n variableValues: body.variables,\n operationName: body.operationName,\n });\n\n const stringifiedResult = JSON.stringify(result);\n\n return new Response(stringifiedResult);\n };\n\n function mockGlobal() {\n window.fetch = mockFetch;\n\n const restore = () => {\n if (window.fetch === mockFetch) {\n window.fetch = prevFetch;\n }\n };\n\n return withCleanup({ restore }, restore);\n }\n\n return Object.assign(mockFetch, {\n mockGlobal,\n // if https://github.com/rbuckton/proposal-using-enforcement lands\n // [Symbol.enter]: mockGlobal\n });\n};\n\nexport { createSchemaFetch };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSchemaFetch.js","sources":["../../../src/testing/experimental/createSchemaFetch.ts"],"sourcesContent":["import type { GraphQLFormattedError, GraphQLSchema } from \"graphql\";\nimport { execute, GraphQLError, validate } from \"graphql\";\n\nimport { gql } from \"@apollo/client\";\nimport { wait } from \"@apollo/client/testing\";\nimport { withCleanup } from \"@apollo/client/testing/internal\";\n\n/**\n * A function that accepts a static `schema` and a `mockFetchOpts` object and\n * returns a disposable object with `mock` and `restore` functions.\n *\n * The `mock` function is a mock fetch function that is set on the global\n * `window` object. This function intercepts any fetch requests and\n * returns a response by executing the operation against the provided schema.\n *\n * The `restore` function is a cleanup function that will restore the previous\n * `fetch`. It is automatically called if the function's return value is\n * declared with `using`. If your environment does not support the language\n * feature `using`, you should manually invoke the `restore` function.\n *\n * @param schema - A `GraphQLSchema`.\n * @param mockFetchOpts - Configuration options.\n * @returns An object with both `mock` and `restore` functions.\n *\n * @example\n * ```js\n * using _fetch = createSchemaFetch(schema); // automatically restores fetch after exiting the block\n *\n * const { restore } = createSchemaFetch(schema);\n * restore(); // manually restore fetch if `using` is not supported\n * ```\n * @since 3.10.0\n * @alpha\n * @deprecated `createSchemaFetch` is deprecated and will be removed in 3.12.0.\n * Please migrate to [`@apollo/graphql-testing-library`](https://github.com/apollographql/graphql-testing-library).\n */\nconst createSchemaFetch = (\n schema: GraphQLSchema,\n mockFetchOpts: {\n validate?: boolean;\n delay?: { min: number; max: number };\n } = { validate: true }\n) => {\n const prevFetch = window.fetch;\n const delayMin = mockFetchOpts.delay?.min ?? 3;\n const delayMax = mockFetchOpts.delay?.max ?? delayMin + 2;\n\n if (delayMin > delayMax) {\n throw new Error(\n \"Please configure a minimum delay that is less than the maximum delay. The default minimum delay is 3ms.\"\n );\n }\n\n const mockFetch: (uri?: any, options?: any) => Promise<Response> = async (\n _uri,\n options\n ) => {\n if (delayMin > 0) {\n const randomDelay = Math.random() * (delayMax - delayMin) + delayMin;\n await wait(randomDelay);\n }\n\n const body = JSON.parse(options.body);\n const document = gql(body.query);\n\n if (mockFetchOpts.validate) {\n let validationErrors: readonly GraphQLFormattedError[] = [];\n\n try {\n validationErrors = validate(schema, document);\n } catch (e) {\n validationErrors = [\n e instanceof Error ?\n GraphQLError.prototype.toJSON.apply(e)\n : (e as any),\n ];\n }\n\n if (validationErrors?.length > 0) {\n return new Response(JSON.stringify({ errors: validationErrors }));\n }\n }\n\n const result = await execute({\n schema,\n document,\n variableValues: body.variables,\n operationName: body.operationName,\n });\n\n const stringifiedResult = JSON.stringify(result);\n\n return new Response(stringifiedResult);\n };\n\n function mockGlobal() {\n window.fetch = mockFetch;\n\n const restore = () => {\n if (window.fetch === mockFetch) {\n window.fetch = prevFetch;\n }\n };\n\n return withCleanup({ restore }, restore);\n }\n\n return Object.assign(mockFetch, {\n mockGlobal,\n // if https://github.com/rbuckton/proposal-using-enforcement lands\n // [Symbol.enter]: mockGlobal\n });\n};\n\nexport { createSchemaFetch };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { GraphQLSchema } from "graphql";
2
- import type { Resolvers } from "@apollo/client/core";
2
+ import type { Resolvers } from "@apollo/client";
3
3
  type ProxiedSchema = GraphQLSchema & TestSchemaFns;
4
4
  interface TestSchemaFns {
5
5
  add: (addOptions: {