@apollo/client 3.9.0-alpha.3 → 3.9.0-alpha.5

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 (716) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/beige-geese-wink.md +5 -0
  3. package/.changeset/breezy-spiders-tap.md +38 -0
  4. package/.changeset/clean-items-smash.md +5 -0
  5. package/.changeset/cold-llamas-turn.md +8 -0
  6. package/.changeset/config.json +14 -0
  7. package/.changeset/dirty-kids-crash.md +5 -0
  8. package/.changeset/forty-cups-shop.md +5 -0
  9. package/.changeset/friendly-clouds-laugh.md +7 -0
  10. package/.changeset/hot-ducks-burn.md +5 -0
  11. package/.changeset/polite-avocados-warn.md +5 -0
  12. package/.changeset/pre.json +29 -0
  13. package/.changeset/quick-hats-marry.md +5 -0
  14. package/.changeset/shaggy-ears-scream.md +5 -0
  15. package/.changeset/shaggy-sheep-pull.md +5 -0
  16. package/.changeset/sixty-boxes-rest.md +8 -0
  17. package/.changeset/sour-sheep-walk.md +7 -0
  18. package/.changeset/strong-terms-perform.md +46 -0
  19. package/.changeset/thick-mice-collect.md +5 -0
  20. package/.changeset/thirty-ties-arrive.md +26 -0
  21. package/.changeset/violet-lions-draw.md +5 -0
  22. package/.changeset/wild-dolphins-jog.md +5 -0
  23. package/.changeset/yellow-flies-repeat.md +5 -0
  24. package/CHANGELOG.md +3535 -0
  25. package/apollo-client.cjs +484 -401
  26. package/apollo-client.cjs.map +1 -1
  27. package/apollo-client.min.cjs +1 -1
  28. package/cache/cache.cjs +136 -153
  29. package/cache/cache.cjs.map +1 -1
  30. package/cache/cache.cjs.native.js +136 -153
  31. package/cache/core/cache.d.ts +10 -0
  32. package/cache/core/cache.js +17 -5
  33. package/cache/core/cache.js.map +1 -1
  34. package/cache/core/types/Cache.d.ts +1 -1
  35. package/cache/core/types/Cache.js.map +1 -1
  36. package/cache/core/types/DataProxy.d.ts +92 -0
  37. package/cache/core/types/common.d.ts +1 -1
  38. package/cache/core/types/common.js +4 -1
  39. package/cache/core/types/common.js.map +1 -1
  40. package/cache/inmemory/entityStore.d.ts +10 -1
  41. package/cache/inmemory/entityStore.js +190 -29
  42. package/cache/inmemory/entityStore.js.map +1 -1
  43. package/cache/inmemory/fixPolyfills.js +9 -0
  44. package/cache/inmemory/fixPolyfills.js.map +1 -1
  45. package/cache/inmemory/fixPolyfills.native.js +12 -0
  46. package/cache/inmemory/fixPolyfills.native.js.map +1 -1
  47. package/cache/inmemory/fragmentRegistry.d.ts +1 -0
  48. package/cache/inmemory/fragmentRegistry.js +23 -14
  49. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  50. package/cache/inmemory/helpers.js +20 -11
  51. package/cache/inmemory/helpers.js.map +1 -1
  52. package/cache/inmemory/inMemoryCache.js +166 -9
  53. package/cache/inmemory/inMemoryCache.js.map +1 -1
  54. package/cache/inmemory/key-extractor.js +72 -4
  55. package/cache/inmemory/key-extractor.js.map +1 -1
  56. package/cache/inmemory/object-canon.js +87 -3
  57. package/cache/inmemory/object-canon.js.map +1 -1
  58. package/cache/inmemory/policies.js +190 -43
  59. package/cache/inmemory/policies.js.map +1 -1
  60. package/cache/inmemory/reactiveVars.js +20 -2
  61. package/cache/inmemory/reactiveVars.js.map +1 -1
  62. package/cache/inmemory/readFromStore.d.ts +4 -0
  63. package/cache/inmemory/readFromStore.js +58 -9
  64. package/cache/inmemory/readFromStore.js.map +1 -1
  65. package/cache/inmemory/types.d.ts +28 -0
  66. package/cache/inmemory/types.js.map +1 -1
  67. package/cache/inmemory/writeToStore.js +152 -25
  68. package/cache/inmemory/writeToStore.js.map +1 -1
  69. package/config/jest/setup.js +2 -0
  70. package/config/jest/setup.js.map +1 -1
  71. package/core/ApolloClient.d.ts +264 -3
  72. package/core/ApolloClient.js +235 -7
  73. package/core/ApolloClient.js.map +1 -1
  74. package/core/LocalState.d.ts +4 -6
  75. package/core/LocalState.js +56 -18
  76. package/core/LocalState.js.map +1 -1
  77. package/core/ObservableQuery.d.ts +25 -0
  78. package/core/ObservableQuery.js +239 -30
  79. package/core/ObservableQuery.js.map +1 -1
  80. package/core/QueryInfo.d.ts +3 -3
  81. package/core/QueryInfo.js +118 -13
  82. package/core/QueryInfo.js.map +1 -1
  83. package/core/QueryManager.d.ts +8 -1
  84. package/core/QueryManager.js +247 -46
  85. package/core/QueryManager.js.map +1 -1
  86. package/core/core.cjs +127 -114
  87. package/core/core.cjs.map +1 -1
  88. package/core/core.cjs.native.js +127 -114
  89. package/core/equalByQuery.js +20 -1
  90. package/core/equalByQuery.js.map +1 -1
  91. package/core/index.d.ts +1 -1
  92. package/core/index.js +19 -0
  93. package/core/index.js.map +1 -1
  94. package/core/networkStatus.d.ts +39 -0
  95. package/core/networkStatus.js +39 -0
  96. package/core/networkStatus.js.map +1 -1
  97. package/core/types.d.ts +9 -0
  98. package/core/types.js.map +1 -1
  99. package/core/watchQueryOptions.d.ts +225 -1
  100. package/core/watchQueryOptions.js.map +1 -1
  101. package/dev/dev.cjs +10 -119
  102. package/dev/dev.cjs.map +1 -1
  103. package/dev/dev.cjs.native.js +10 -119
  104. package/dev/loadErrorMessageHandler.js.map +1 -1
  105. package/errors/errors.cjs +1 -1
  106. package/errors/errors.cjs.map +1 -1
  107. package/errors/errors.cjs.native.js +1 -1
  108. package/errors/index.js +14 -1
  109. package/errors/index.js.map +1 -1
  110. package/invariantErrorCodes.js +6 -8
  111. package/link/batch/batch.cjs +2 -2
  112. package/link/batch/batch.cjs.map +1 -1
  113. package/link/batch/batch.cjs.native.js +2 -2
  114. package/link/batch/batchLink.d.ts +21 -0
  115. package/link/batch/batchLink.js +2 -1
  116. package/link/batch/batchLink.js.map +1 -1
  117. package/link/batch/batching.js +24 -1
  118. package/link/batch/batching.js.map +1 -1
  119. package/link/batch-http/batch-http.cjs +3 -2
  120. package/link/batch-http/batch-http.cjs.map +1 -1
  121. package/link/batch-http/batch-http.cjs.native.js +3 -2
  122. package/link/batch-http/batchHttpLink.d.ts +4 -0
  123. package/link/batch-http/batchHttpLink.js +53 -2
  124. package/link/batch-http/batchHttpLink.js.map +1 -1
  125. package/link/context/context.cjs.map +1 -1
  126. package/link/context/index.js +1 -0
  127. package/link/context/index.js.map +1 -1
  128. package/link/core/ApolloLink.js +12 -5
  129. package/link/core/ApolloLink.js.map +1 -1
  130. package/link/core/core.cjs +5 -5
  131. package/link/core/core.cjs.map +1 -1
  132. package/link/core/core.cjs.native.js +5 -5
  133. package/link/error/error.cjs +1 -1
  134. package/link/error/error.cjs.map +1 -1
  135. package/link/error/error.cjs.native.js +1 -1
  136. package/link/error/index.d.ts +3 -0
  137. package/link/error/index.js +4 -1
  138. package/link/error/index.js.map +1 -1
  139. package/link/http/HttpLink.d.ts +0 -2
  140. package/link/http/HttpLink.js +1 -1
  141. package/link/http/HttpLink.js.map +1 -1
  142. package/link/http/checkFetcher.js.map +1 -1
  143. package/link/http/createHttpLink.js +23 -1
  144. package/link/http/createHttpLink.js.map +1 -1
  145. package/link/http/createSignalIfSupported.d.ts +5 -0
  146. package/link/http/createSignalIfSupported.js +5 -0
  147. package/link/http/createSignalIfSupported.js.map +1 -1
  148. package/link/http/http.cjs +14 -12
  149. package/link/http/http.cjs.map +1 -1
  150. package/link/http/http.cjs.native.js +14 -12
  151. package/link/http/index.js +2 -1
  152. package/link/http/index.js.map +1 -1
  153. package/link/http/iterators/async.d.ts +4 -0
  154. package/link/http/iterators/async.js +4 -0
  155. package/link/http/iterators/async.js.map +1 -1
  156. package/link/http/iterators/nodeStream.d.ts +4 -0
  157. package/link/http/iterators/nodeStream.js +4 -0
  158. package/link/http/iterators/nodeStream.js.map +1 -1
  159. package/link/http/iterators/promise.d.ts +4 -0
  160. package/link/http/iterators/promise.js +4 -0
  161. package/link/http/iterators/promise.js.map +1 -1
  162. package/link/http/iterators/reader.d.ts +4 -0
  163. package/link/http/iterators/reader.js +4 -0
  164. package/link/http/iterators/reader.js.map +1 -1
  165. package/link/http/parseAndCheckHttpResponse.js +51 -10
  166. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  167. package/link/http/responseIterator.d.ts +4 -0
  168. package/link/http/responseIterator.js +6 -0
  169. package/link/http/responseIterator.js.map +1 -1
  170. package/link/http/rewriteURIForGET.d.ts +1 -1
  171. package/link/http/rewriteURIForGET.js +10 -0
  172. package/link/http/rewriteURIForGET.js.map +1 -1
  173. package/link/http/selectHttpOptionsAndBody.d.ts +45 -0
  174. package/link/http/selectHttpOptionsAndBody.js +23 -0
  175. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  176. package/link/http/selectURI.js.map +1 -1
  177. package/link/http/serializeFetchParameter.js.map +1 -1
  178. package/link/persisted-queries/index.js +34 -4
  179. package/link/persisted-queries/index.js.map +1 -1
  180. package/link/persisted-queries/persisted-queries.cjs +4 -4
  181. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  182. package/link/persisted-queries/persisted-queries.cjs.native.js +4 -4
  183. package/link/remove-typename/remove-typename.cjs +12 -9
  184. package/link/remove-typename/remove-typename.cjs.map +1 -1
  185. package/link/remove-typename/remove-typename.cjs.native.js +12 -9
  186. package/link/remove-typename/removeTypenameFromVariables.js +12 -9
  187. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  188. package/link/retry/delayFunction.d.ts +29 -0
  189. package/link/retry/delayFunction.js +6 -0
  190. package/link/retry/delayFunction.js.map +1 -1
  191. package/link/retry/retry.cjs +5 -5
  192. package/link/retry/retry.cjs.map +1 -1
  193. package/link/retry/retry.cjs.native.js +5 -5
  194. package/link/retry/retryFunction.d.ts +20 -0
  195. package/link/retry/retryLink.d.ts +6 -0
  196. package/link/retry/retryLink.js +31 -6
  197. package/link/retry/retryLink.js.map +1 -1
  198. package/link/schema/index.d.ts +13 -0
  199. package/link/schema/index.js +3 -3
  200. package/link/schema/index.js.map +1 -1
  201. package/link/schema/schema.cjs +3 -3
  202. package/link/schema/schema.cjs.map +1 -1
  203. package/link/schema/schema.cjs.native.js +3 -3
  204. package/link/subscriptions/index.js +35 -2
  205. package/link/subscriptions/index.js.map +1 -1
  206. package/link/subscriptions/subscriptions.cjs +3 -2
  207. package/link/subscriptions/subscriptions.cjs.map +1 -1
  208. package/link/subscriptions/subscriptions.cjs.native.js +3 -2
  209. package/link/utils/createOperation.js.map +1 -1
  210. package/link/utils/filterOperationVariables.js +4 -0
  211. package/link/utils/filterOperationVariables.js.map +1 -1
  212. package/link/utils/toPromise.js.map +1 -1
  213. package/link/utils/transformOperation.js +3 -2
  214. package/link/utils/transformOperation.js.map +1 -1
  215. package/link/utils/utils.cjs +2 -2
  216. package/link/utils/utils.cjs.map +1 -1
  217. package/link/utils/utils.cjs.native.js +2 -2
  218. package/link/utils/validateOperation.js.map +1 -1
  219. package/link/ws/index.d.ts +12 -0
  220. package/link/ws/index.js +1 -1
  221. package/link/ws/index.js.map +1 -1
  222. package/link/ws/ws.cjs +1 -1
  223. package/link/ws/ws.cjs.map +1 -1
  224. package/link/ws/ws.cjs.native.js +1 -1
  225. package/package.json +51 -38
  226. package/react/cache/QueryReference.d.ts +18 -10
  227. package/react/cache/QueryReference.js +52 -8
  228. package/react/cache/QueryReference.js.map +1 -1
  229. package/react/cache/SuspenseCache.d.ts +10 -0
  230. package/react/cache/SuspenseCache.js +1 -2
  231. package/react/cache/SuspenseCache.js.map +1 -1
  232. package/react/cache/getSuspenseCache.js.map +1 -1
  233. package/react/cache/types.d.ts +3 -0
  234. package/react/cache/types.js.map +1 -1
  235. package/react/components/Mutation.d.ts +2 -2
  236. package/react/components/Mutation.js.map +1 -1
  237. package/react/components/Query.d.ts +2 -2
  238. package/react/components/Query.js.map +1 -1
  239. package/react/components/Subscription.d.ts +2 -2
  240. package/react/components/Subscription.js.map +1 -1
  241. package/react/components/types.d.ts +4 -4
  242. package/react/components/types.js.map +1 -1
  243. package/react/context/ApolloConsumer.d.ts +3 -3
  244. package/react/context/ApolloConsumer.js +1 -1
  245. package/react/context/ApolloConsumer.js.map +1 -1
  246. package/react/context/ApolloContext.d.ts +7 -2
  247. package/react/context/ApolloContext.js +11 -4
  248. package/react/context/ApolloContext.js.map +1 -1
  249. package/react/context/ApolloProvider.d.ts +3 -3
  250. package/react/context/ApolloProvider.js +1 -1
  251. package/react/context/ApolloProvider.js.map +1 -1
  252. package/react/context/context.cjs +2 -4
  253. package/react/context/context.cjs.map +1 -1
  254. package/react/context/context.cjs.native.js +2 -4
  255. package/react/hoc/graphql.d.ts +2 -2
  256. package/react/hoc/graphql.js.map +1 -1
  257. package/react/hoc/hoc-utils.d.ts +2 -1
  258. package/react/hoc/hoc-utils.js +4 -2
  259. package/react/hoc/hoc-utils.js.map +1 -1
  260. package/react/hoc/hoc.cjs +10 -18
  261. package/react/hoc/hoc.cjs.map +1 -1
  262. package/react/hoc/hoc.cjs.native.js +10 -18
  263. package/react/hoc/mutation-hoc.d.ts +2 -2
  264. package/react/hoc/mutation-hoc.js +10 -5
  265. package/react/hoc/mutation-hoc.js.map +1 -1
  266. package/react/hoc/query-hoc.d.ts +2 -2
  267. package/react/hoc/query-hoc.js +11 -5
  268. package/react/hoc/query-hoc.js.map +1 -1
  269. package/react/hoc/subscription-hoc.d.ts +2 -2
  270. package/react/hoc/subscription-hoc.js +11 -5
  271. package/react/hoc/subscription-hoc.js.map +1 -1
  272. package/react/hoc/withApollo.d.ts +2 -2
  273. package/react/hoc/withApollo.js +4 -5
  274. package/react/hoc/withApollo.js.map +1 -1
  275. package/react/hooks/hooks.cjs +139 -67
  276. package/react/hooks/hooks.cjs.map +1 -1
  277. package/react/hooks/hooks.cjs.native.js +139 -67
  278. package/react/hooks/index.d.ts +2 -0
  279. package/react/hooks/index.js +1 -0
  280. package/react/hooks/index.js.map +1 -1
  281. package/react/hooks/internal/__use.js +6 -1
  282. package/react/hooks/internal/__use.js.map +1 -1
  283. package/react/hooks/internal/index.d.ts +1 -0
  284. package/react/hooks/internal/index.js +2 -0
  285. package/react/hooks/internal/index.js.map +1 -1
  286. package/react/hooks/internal/useDeepMemo.js +1 -1
  287. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  288. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts +2 -1
  289. package/react/hooks/internal/useIsomorphicLayoutEffect.js +7 -4
  290. package/react/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -1
  291. package/react/hooks/internal/useRenderGuard.d.ts +2 -0
  292. package/react/hooks/internal/useRenderGuard.js +17 -0
  293. package/react/hooks/internal/useRenderGuard.js.map +1 -0
  294. package/react/hooks/useApolloClient.js +1 -1
  295. package/react/hooks/useApolloClient.js.map +1 -1
  296. package/react/hooks/useBackgroundQuery.js +15 -12
  297. package/react/hooks/useBackgroundQuery.js.map +1 -1
  298. package/react/hooks/useFragment.js +5 -4
  299. package/react/hooks/useFragment.js.map +1 -1
  300. package/react/hooks/useLazyQuery.js +14 -5
  301. package/react/hooks/useLazyQuery.js.map +1 -1
  302. package/react/hooks/useLoadableQuery.d.ts +30 -0
  303. package/react/hooks/useLoadableQuery.js +61 -0
  304. package/react/hooks/useLoadableQuery.js.map +1 -0
  305. package/react/hooks/useMutation.js +9 -4
  306. package/react/hooks/useMutation.js.map +1 -1
  307. package/react/hooks/useQuery.d.ts +11 -0
  308. package/react/hooks/useQuery.js +139 -7
  309. package/react/hooks/useQuery.js.map +1 -1
  310. package/react/hooks/useReactiveVar.js +6 -1
  311. package/react/hooks/useReactiveVar.js.map +1 -1
  312. package/react/hooks/useReadQuery.d.ts +19 -0
  313. package/react/hooks/useReadQuery.js +5 -11
  314. package/react/hooks/useReadQuery.js.map +1 -1
  315. package/react/hooks/useSubscription.js +6 -1
  316. package/react/hooks/useSubscription.js.map +1 -1
  317. package/react/hooks/useSuspenseQuery.js +23 -23
  318. package/react/hooks/useSuspenseQuery.js.map +1 -1
  319. package/react/hooks/useSyncExternalStore.js +54 -2
  320. package/react/hooks/useSyncExternalStore.js.map +1 -1
  321. package/react/parser/index.d.ts +3 -0
  322. package/react/parser/index.js +13 -6
  323. package/react/parser/index.js.map +1 -1
  324. package/react/parser/parser.cjs +11 -5
  325. package/react/parser/parser.cjs.map +1 -1
  326. package/react/parser/parser.cjs.native.js +11 -5
  327. package/react/ssr/RenderPromises.d.ts +3 -3
  328. package/react/ssr/RenderPromises.js +21 -1
  329. package/react/ssr/RenderPromises.js.map +1 -1
  330. package/react/ssr/getDataFromTree.d.ts +4 -4
  331. package/react/ssr/getDataFromTree.js +19 -4
  332. package/react/ssr/getDataFromTree.js.map +1 -1
  333. package/react/ssr/renderToStringWithData.d.ts +2 -2
  334. package/react/ssr/renderToStringWithData.js.map +1 -1
  335. package/react/ssr/ssr.cjs +7 -5
  336. package/react/ssr/ssr.cjs.map +1 -1
  337. package/react/ssr/ssr.cjs.native.js +7 -5
  338. package/react/types/types.d.ts +125 -3
  339. package/react/types/types.js.map +1 -1
  340. package/testing/core/core.cjs +14 -11
  341. package/testing/core/core.cjs.map +1 -1
  342. package/testing/core/core.cjs.native.js +14 -11
  343. package/testing/core/itAsync.d.ts +1 -1
  344. package/testing/core/itAsync.js.map +1 -1
  345. package/testing/core/mocking/mockFetch.d.ts +2 -2
  346. package/testing/core/mocking/mockFetch.js +8 -4
  347. package/testing/core/mocking/mockFetch.js.map +1 -1
  348. package/testing/core/mocking/mockLink.d.ts +1 -1
  349. package/testing/core/mocking/mockLink.js +17 -7
  350. package/testing/core/mocking/mockLink.js.map +1 -1
  351. package/testing/core/mocking/mockQueryManager.js +2 -0
  352. package/testing/core/mocking/mockQueryManager.js.map +1 -1
  353. package/testing/core/mocking/mockSubscriptionLink.d.ts +1 -1
  354. package/testing/core/mocking/mockSubscriptionLink.js +1 -1
  355. package/testing/core/mocking/mockSubscriptionLink.js.map +1 -1
  356. package/testing/core/mocking/mockWatchQuery.js +1 -1
  357. package/testing/core/mocking/mockWatchQuery.js.map +1 -1
  358. package/testing/core/observableToPromise.d.ts +17 -3
  359. package/testing/core/observableToPromise.js +5 -0
  360. package/testing/core/observableToPromise.js.map +1 -1
  361. package/testing/core/subscribeAndCount.js +3 -0
  362. package/testing/core/subscribeAndCount.js.map +1 -1
  363. package/testing/core/wait.js +2 -2
  364. package/testing/core/wait.js.map +1 -1
  365. package/testing/core/withConsoleSpy.d.ts +3 -0
  366. package/testing/core/withConsoleSpy.js +7 -1
  367. package/testing/core/withConsoleSpy.js.map +1 -1
  368. package/testing/core/wrap.js +2 -0
  369. package/testing/core/wrap.js.map +1 -1
  370. package/testing/internal/ObservableStream.js +14 -14
  371. package/testing/internal/ObservableStream.js.map +1 -1
  372. package/testing/internal/disposables/disableActWarnings.d.ts +10 -0
  373. package/testing/internal/disposables/disableActWarnings.js +15 -0
  374. package/testing/internal/disposables/disableActWarnings.js.map +1 -0
  375. package/testing/internal/disposables/index.d.ts +1 -0
  376. package/testing/internal/disposables/index.js +1 -0
  377. package/testing/internal/disposables/index.js.map +1 -1
  378. package/testing/internal/disposables/spyOnConsole.d.ts +1 -0
  379. package/testing/internal/disposables/spyOnConsole.js +2 -0
  380. package/testing/internal/disposables/spyOnConsole.js.map +1 -1
  381. package/testing/internal/disposables/withCleanup.d.ts +1 -0
  382. package/testing/internal/disposables/withCleanup.js +3 -0
  383. package/testing/internal/disposables/withCleanup.js.map +1 -1
  384. package/testing/internal/profile/Render.d.ts +32 -1
  385. package/testing/internal/profile/Render.js +14 -2
  386. package/testing/internal/profile/Render.js.map +1 -1
  387. package/testing/internal/profile/context.d.ts +10 -0
  388. package/testing/internal/profile/context.js +14 -0
  389. package/testing/internal/profile/context.js.map +1 -0
  390. package/testing/internal/profile/index.d.ts +2 -2
  391. package/testing/internal/profile/index.js +1 -1
  392. package/testing/internal/profile/index.js.map +1 -1
  393. package/testing/internal/profile/profile.d.ts +67 -13
  394. package/testing/internal/profile/profile.js +153 -79
  395. package/testing/internal/profile/profile.js.map +1 -1
  396. package/testing/internal/profile/traces.d.ts +4 -0
  397. package/testing/internal/profile/traces.js +9 -5
  398. package/testing/internal/profile/traces.js.map +1 -1
  399. package/testing/matchers/ProfiledComponent.js +29 -26
  400. package/testing/matchers/ProfiledComponent.js.map +1 -1
  401. package/testing/matchers/index.js +2 -0
  402. package/testing/matchers/index.js.map +1 -1
  403. package/testing/matchers/toBeGarbageCollected.d.ts +8 -0
  404. package/testing/matchers/toBeGarbageCollected.js +48 -0
  405. package/testing/matchers/toBeGarbageCollected.js.map +1 -0
  406. package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
  407. package/testing/matchers/toMatchDocument.js.map +1 -1
  408. package/testing/react/MockedProvider.d.ts +5 -1
  409. package/testing/react/MockedProvider.js +6 -2
  410. package/testing/react/MockedProvider.js.map +1 -1
  411. package/testing/testing.cjs +4 -2
  412. package/testing/testing.cjs.map +1 -1
  413. package/testing/testing.cjs.native.js +4 -2
  414. package/utilities/common/arrays.js +1 -0
  415. package/utilities/common/arrays.js.map +1 -1
  416. package/utilities/common/canUse.js +16 -1
  417. package/utilities/common/canUse.js.map +1 -1
  418. package/utilities/common/canonicalStringify.d.ts +17 -0
  419. package/utilities/common/canonicalStringify.js +41 -0
  420. package/utilities/common/canonicalStringify.js.map +1 -1
  421. package/utilities/common/cloneDeep.d.ts +3 -0
  422. package/utilities/common/cloneDeep.js +5 -0
  423. package/utilities/common/cloneDeep.js.map +1 -1
  424. package/utilities/common/compact.d.ts +4 -0
  425. package/utilities/common/compact.js +4 -0
  426. package/utilities/common/compact.js.map +1 -1
  427. package/utilities/common/errorHandling.js +1 -3
  428. package/utilities/common/errorHandling.js.map +1 -1
  429. package/utilities/common/incrementalResult.js +3 -0
  430. package/utilities/common/incrementalResult.js.map +1 -1
  431. package/utilities/common/makeUniqueId.js +2 -0
  432. package/utilities/common/makeUniqueId.js.map +1 -1
  433. package/utilities/common/maybeDeepFreeze.js +3 -0
  434. package/utilities/common/maybeDeepFreeze.js.map +1 -1
  435. package/utilities/common/mergeDeep.js +12 -1
  436. package/utilities/common/mergeDeep.js.map +1 -1
  437. package/utilities/common/mergeOptions.d.ts +1 -1
  438. package/utilities/common/mergeOptions.js.map +1 -1
  439. package/utilities/common/omitDeep.js.map +1 -1
  440. package/utilities/globals/global.js +7 -1
  441. package/utilities/globals/global.js.map +1 -1
  442. package/utilities/globals/globals.cjs +4 -5
  443. package/utilities/globals/globals.cjs.map +1 -1
  444. package/utilities/globals/globals.cjs.native.js +4 -5
  445. package/utilities/globals/index.d.ts +4 -0
  446. package/utilities/globals/index.js +7 -0
  447. package/utilities/globals/index.js.map +1 -1
  448. package/utilities/globals/invariantWrappers.d.ts +40 -0
  449. package/utilities/globals/invariantWrappers.js +11 -3
  450. package/utilities/globals/invariantWrappers.js.map +1 -1
  451. package/utilities/globals/maybe.js.map +1 -1
  452. package/utilities/graphql/DocumentTransform.d.ts +6 -5
  453. package/utilities/graphql/DocumentTransform.js +48 -27
  454. package/utilities/graphql/DocumentTransform.js.map +1 -1
  455. package/utilities/graphql/directives.js +3 -0
  456. package/utilities/graphql/directives.js.map +1 -1
  457. package/utilities/graphql/fragments.d.ts +25 -0
  458. package/utilities/graphql/fragments.js +36 -0
  459. package/utilities/graphql/fragments.js.map +1 -1
  460. package/utilities/graphql/getFromAST.d.ts +5 -0
  461. package/utilities/graphql/getFromAST.js +9 -0
  462. package/utilities/graphql/getFromAST.js.map +1 -1
  463. package/utilities/graphql/print.d.ts +4 -2
  464. package/utilities/graphql/print.js +11 -7
  465. package/utilities/graphql/print.js.map +1 -1
  466. package/utilities/graphql/storeUtils.d.ts +14 -0
  467. package/utilities/graphql/storeUtils.js +8 -2
  468. package/utilities/graphql/storeUtils.js.map +1 -1
  469. package/utilities/graphql/transform.js +106 -7
  470. package/utilities/graphql/transform.js.map +1 -1
  471. package/utilities/index.d.ts +2 -0
  472. package/utilities/index.js.map +1 -1
  473. package/utilities/observables/Concast.d.ts +1 -1
  474. package/utilities/observables/Concast.js +85 -2
  475. package/utilities/observables/Concast.js.map +1 -1
  476. package/utilities/observables/Observable.js +6 -0
  477. package/utilities/observables/Observable.js.map +1 -1
  478. package/utilities/observables/asyncMap.js +12 -3
  479. package/utilities/observables/asyncMap.js.map +1 -1
  480. package/utilities/observables/iteration.js +3 -0
  481. package/utilities/observables/iteration.js.map +1 -1
  482. package/utilities/observables/subclassing.js +14 -0
  483. package/utilities/observables/subclassing.js.map +1 -1
  484. package/utilities/policies/pagination.js +47 -3
  485. package/utilities/policies/pagination.js.map +1 -1
  486. package/utilities/promises/decoration.js +1 -0
  487. package/utilities/promises/decoration.js.map +1 -1
  488. package/utilities/subscriptions/relay/index.js.map +1 -1
  489. package/utilities/subscriptions/relay/relay.cjs +9 -8
  490. package/utilities/subscriptions/relay/relay.cjs.map +1 -1
  491. package/utilities/subscriptions/relay/relay.cjs.native.js +9 -8
  492. package/utilities/subscriptions/urql/index.js.map +1 -1
  493. package/utilities/subscriptions/urql/urql.cjs +9 -8
  494. package/utilities/subscriptions/urql/urql.cjs.map +1 -1
  495. package/utilities/subscriptions/urql/urql.cjs.native.js +9 -8
  496. package/utilities/types/DeepOmit.js.map +1 -1
  497. package/utilities/types/DeepPartial.d.ts +1 -1
  498. package/utilities/types/DeepPartial.js +4 -0
  499. package/utilities/types/DeepPartial.js.map +1 -1
  500. package/utilities/types/IsStrictlyAny.js.map +1 -1
  501. package/utilities/types/OnlyRequiredProperties.d.ts +7 -0
  502. package/utilities/types/OnlyRequiredProperties.js +2 -0
  503. package/utilities/types/OnlyRequiredProperties.js.map +1 -0
  504. package/utilities/types/TODO.d.ts +3 -0
  505. package/utilities/types/TODO.js +2 -0
  506. package/utilities/types/TODO.js.map +1 -0
  507. package/utilities/utilities.cjs +68 -55
  508. package/utilities/utilities.cjs.map +1 -1
  509. package/utilities/utilities.cjs.native.js +68 -55
  510. package/version.js +1 -1
  511. package/cache/core/cache.d.ts.map +0 -1
  512. package/cache/core/types/Cache.d.ts.map +0 -1
  513. package/cache/core/types/DataProxy.d.ts.map +0 -1
  514. package/cache/core/types/common.d.ts.map +0 -1
  515. package/cache/index.d.ts.map +0 -1
  516. package/cache/inmemory/entityStore.d.ts.map +0 -1
  517. package/cache/inmemory/fixPolyfills.d.ts.map +0 -1
  518. package/cache/inmemory/fixPolyfills.native.d.ts.map +0 -1
  519. package/cache/inmemory/fragmentRegistry.d.ts.map +0 -1
  520. package/cache/inmemory/helpers.d.ts.map +0 -1
  521. package/cache/inmemory/inMemoryCache.d.ts.map +0 -1
  522. package/cache/inmemory/key-extractor.d.ts.map +0 -1
  523. package/cache/inmemory/object-canon.d.ts.map +0 -1
  524. package/cache/inmemory/policies.d.ts.map +0 -1
  525. package/cache/inmemory/reactiveVars.d.ts.map +0 -1
  526. package/cache/inmemory/readFromStore.d.ts.map +0 -1
  527. package/cache/inmemory/types.d.ts.map +0 -1
  528. package/cache/inmemory/writeToStore.d.ts.map +0 -1
  529. package/config/jest/setup.d.ts.map +0 -1
  530. package/core/ApolloClient.d.ts.map +0 -1
  531. package/core/LocalState.d.ts.map +0 -1
  532. package/core/ObservableQuery.d.ts.map +0 -1
  533. package/core/QueryInfo.d.ts.map +0 -1
  534. package/core/QueryManager.d.ts.map +0 -1
  535. package/core/equalByQuery.d.ts.map +0 -1
  536. package/core/index.d.ts.map +0 -1
  537. package/core/networkStatus.d.ts.map +0 -1
  538. package/core/types.d.ts.map +0 -1
  539. package/core/watchQueryOptions.d.ts.map +0 -1
  540. package/dev/index.d.ts.map +0 -1
  541. package/dev/loadDevMessages.d.ts.map +0 -1
  542. package/dev/loadErrorMessageHandler.d.ts.map +0 -1
  543. package/dev/loadErrorMessages.d.ts.map +0 -1
  544. package/errors/index.d.ts.map +0 -1
  545. package/index.d.ts.map +0 -1
  546. package/invariantErrorCodes.d.ts.map +0 -1
  547. package/link/batch/batchLink.d.ts.map +0 -1
  548. package/link/batch/batching.d.ts.map +0 -1
  549. package/link/batch/index.d.ts.map +0 -1
  550. package/link/batch-http/batchHttpLink.d.ts.map +0 -1
  551. package/link/batch-http/index.d.ts.map +0 -1
  552. package/link/context/index.d.ts.map +0 -1
  553. package/link/core/ApolloLink.d.ts.map +0 -1
  554. package/link/core/concat.d.ts.map +0 -1
  555. package/link/core/empty.d.ts.map +0 -1
  556. package/link/core/execute.d.ts.map +0 -1
  557. package/link/core/from.d.ts.map +0 -1
  558. package/link/core/index.d.ts.map +0 -1
  559. package/link/core/split.d.ts.map +0 -1
  560. package/link/core/types.d.ts.map +0 -1
  561. package/link/error/index.d.ts.map +0 -1
  562. package/link/http/HttpLink.d.ts.map +0 -1
  563. package/link/http/checkFetcher.d.ts.map +0 -1
  564. package/link/http/createHttpLink.d.ts.map +0 -1
  565. package/link/http/createSignalIfSupported.d.ts.map +0 -1
  566. package/link/http/index.d.ts.map +0 -1
  567. package/link/http/iterators/async.d.ts.map +0 -1
  568. package/link/http/iterators/nodeStream.d.ts.map +0 -1
  569. package/link/http/iterators/promise.d.ts.map +0 -1
  570. package/link/http/iterators/reader.d.ts.map +0 -1
  571. package/link/http/parseAndCheckHttpResponse.d.ts.map +0 -1
  572. package/link/http/responseIterator.d.ts.map +0 -1
  573. package/link/http/rewriteURIForGET.d.ts.map +0 -1
  574. package/link/http/selectHttpOptionsAndBody.d.ts.map +0 -1
  575. package/link/http/selectURI.d.ts.map +0 -1
  576. package/link/http/serializeFetchParameter.d.ts.map +0 -1
  577. package/link/persisted-queries/index.d.ts.map +0 -1
  578. package/link/remove-typename/index.d.ts.map +0 -1
  579. package/link/remove-typename/removeTypenameFromVariables.d.ts.map +0 -1
  580. package/link/retry/delayFunction.d.ts.map +0 -1
  581. package/link/retry/index.d.ts.map +0 -1
  582. package/link/retry/retryFunction.d.ts.map +0 -1
  583. package/link/retry/retryLink.d.ts.map +0 -1
  584. package/link/schema/index.d.ts.map +0 -1
  585. package/link/subscriptions/index.d.ts.map +0 -1
  586. package/link/utils/createOperation.d.ts.map +0 -1
  587. package/link/utils/filterOperationVariables.d.ts.map +0 -1
  588. package/link/utils/fromError.d.ts.map +0 -1
  589. package/link/utils/fromPromise.d.ts.map +0 -1
  590. package/link/utils/index.d.ts.map +0 -1
  591. package/link/utils/throwServerError.d.ts.map +0 -1
  592. package/link/utils/toPromise.d.ts.map +0 -1
  593. package/link/utils/transformOperation.d.ts.map +0 -1
  594. package/link/utils/validateOperation.d.ts.map +0 -1
  595. package/link/ws/index.d.ts.map +0 -1
  596. package/react/cache/QueryReference.d.ts.map +0 -1
  597. package/react/cache/SuspenseCache.d.ts.map +0 -1
  598. package/react/cache/getSuspenseCache.d.ts.map +0 -1
  599. package/react/cache/index.d.ts.map +0 -1
  600. package/react/cache/types.d.ts.map +0 -1
  601. package/react/components/Mutation.d.ts.map +0 -1
  602. package/react/components/Query.d.ts.map +0 -1
  603. package/react/components/Subscription.d.ts.map +0 -1
  604. package/react/components/index.d.ts.map +0 -1
  605. package/react/components/types.d.ts.map +0 -1
  606. package/react/context/ApolloConsumer.d.ts.map +0 -1
  607. package/react/context/ApolloContext.d.ts.map +0 -1
  608. package/react/context/ApolloProvider.d.ts.map +0 -1
  609. package/react/context/index.d.ts.map +0 -1
  610. package/react/hoc/graphql.d.ts.map +0 -1
  611. package/react/hoc/hoc-utils.d.ts.map +0 -1
  612. package/react/hoc/index.d.ts.map +0 -1
  613. package/react/hoc/mutation-hoc.d.ts.map +0 -1
  614. package/react/hoc/query-hoc.d.ts.map +0 -1
  615. package/react/hoc/subscription-hoc.d.ts.map +0 -1
  616. package/react/hoc/types.d.ts.map +0 -1
  617. package/react/hoc/withApollo.d.ts.map +0 -1
  618. package/react/hooks/constants.d.ts.map +0 -1
  619. package/react/hooks/index.d.ts.map +0 -1
  620. package/react/hooks/internal/__use.d.ts.map +0 -1
  621. package/react/hooks/internal/index.d.ts.map +0 -1
  622. package/react/hooks/internal/useDeepMemo.d.ts.map +0 -1
  623. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts.map +0 -1
  624. package/react/hooks/useApolloClient.d.ts.map +0 -1
  625. package/react/hooks/useBackgroundQuery.d.ts.map +0 -1
  626. package/react/hooks/useFragment.d.ts.map +0 -1
  627. package/react/hooks/useLazyQuery.d.ts.map +0 -1
  628. package/react/hooks/useMutation.d.ts.map +0 -1
  629. package/react/hooks/useQuery.d.ts.map +0 -1
  630. package/react/hooks/useReactiveVar.d.ts.map +0 -1
  631. package/react/hooks/useReadQuery.d.ts.map +0 -1
  632. package/react/hooks/useSubscription.d.ts.map +0 -1
  633. package/react/hooks/useSuspenseQuery.d.ts.map +0 -1
  634. package/react/hooks/useSyncExternalStore.d.ts.map +0 -1
  635. package/react/index.d.ts.map +0 -1
  636. package/react/parser/index.d.ts.map +0 -1
  637. package/react/ssr/RenderPromises.d.ts.map +0 -1
  638. package/react/ssr/getDataFromTree.d.ts.map +0 -1
  639. package/react/ssr/index.d.ts.map +0 -1
  640. package/react/ssr/renderToStringWithData.d.ts.map +0 -1
  641. package/react/types/types.d.ts.map +0 -1
  642. package/testing/core/index.d.ts.map +0 -1
  643. package/testing/core/itAsync.d.ts.map +0 -1
  644. package/testing/core/mocking/mockClient.d.ts.map +0 -1
  645. package/testing/core/mocking/mockFetch.d.ts.map +0 -1
  646. package/testing/core/mocking/mockLink.d.ts.map +0 -1
  647. package/testing/core/mocking/mockQueryManager.d.ts.map +0 -1
  648. package/testing/core/mocking/mockSubscriptionLink.d.ts.map +0 -1
  649. package/testing/core/mocking/mockWatchQuery.d.ts.map +0 -1
  650. package/testing/core/observableToPromise.d.ts.map +0 -1
  651. package/testing/core/subscribeAndCount.d.ts.map +0 -1
  652. package/testing/core/wait.d.ts.map +0 -1
  653. package/testing/core/withConsoleSpy.d.ts.map +0 -1
  654. package/testing/core/wrap.d.ts.map +0 -1
  655. package/testing/index.d.ts.map +0 -1
  656. package/testing/internal/ObservableStream.d.ts.map +0 -1
  657. package/testing/internal/disposables/index.d.ts.map +0 -1
  658. package/testing/internal/disposables/spyOnConsole.d.ts.map +0 -1
  659. package/testing/internal/disposables/withCleanup.d.ts.map +0 -1
  660. package/testing/internal/index.d.ts.map +0 -1
  661. package/testing/internal/profile/Render.d.ts.map +0 -1
  662. package/testing/internal/profile/index.d.ts.map +0 -1
  663. package/testing/internal/profile/profile.d.ts.map +0 -1
  664. package/testing/internal/profile/traces.d.ts.map +0 -1
  665. package/testing/matchers/ProfiledComponent.d.ts.map +0 -1
  666. package/testing/matchers/index.d.ts.map +0 -1
  667. package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts.map +0 -1
  668. package/testing/matchers/toMatchDocument.d.ts.map +0 -1
  669. package/testing/react/MockedProvider.d.ts.map +0 -1
  670. package/utilities/common/arrays.d.ts.map +0 -1
  671. package/utilities/common/canUse.d.ts.map +0 -1
  672. package/utilities/common/canonicalStringify.d.ts.map +0 -1
  673. package/utilities/common/cloneDeep.d.ts.map +0 -1
  674. package/utilities/common/compact.d.ts.map +0 -1
  675. package/utilities/common/errorHandling.d.ts.map +0 -1
  676. package/utilities/common/filterInPlace.d.ts +0 -2
  677. package/utilities/common/filterInPlace.d.ts.map +0 -1
  678. package/utilities/common/filterInPlace.js +0 -11
  679. package/utilities/common/filterInPlace.js.map +0 -1
  680. package/utilities/common/incrementalResult.d.ts.map +0 -1
  681. package/utilities/common/makeUniqueId.d.ts.map +0 -1
  682. package/utilities/common/maybeDeepFreeze.d.ts.map +0 -1
  683. package/utilities/common/mergeDeep.d.ts.map +0 -1
  684. package/utilities/common/mergeOptions.d.ts.map +0 -1
  685. package/utilities/common/objects.d.ts.map +0 -1
  686. package/utilities/common/omitDeep.d.ts.map +0 -1
  687. package/utilities/common/stringifyForDisplay.d.ts.map +0 -1
  688. package/utilities/common/stripTypename.d.ts.map +0 -1
  689. package/utilities/globals/global.d.ts.map +0 -1
  690. package/utilities/globals/index.d.ts.map +0 -1
  691. package/utilities/globals/invariantWrappers.d.ts.map +0 -1
  692. package/utilities/globals/maybe.d.ts.map +0 -1
  693. package/utilities/graphql/DocumentTransform.d.ts.map +0 -1
  694. package/utilities/graphql/directives.d.ts.map +0 -1
  695. package/utilities/graphql/fragments.d.ts.map +0 -1
  696. package/utilities/graphql/getFromAST.d.ts.map +0 -1
  697. package/utilities/graphql/operations.d.ts.map +0 -1
  698. package/utilities/graphql/print.d.ts.map +0 -1
  699. package/utilities/graphql/storeUtils.d.ts.map +0 -1
  700. package/utilities/graphql/transform.d.ts.map +0 -1
  701. package/utilities/index.d.ts.map +0 -1
  702. package/utilities/observables/Concast.d.ts.map +0 -1
  703. package/utilities/observables/Observable.d.ts.map +0 -1
  704. package/utilities/observables/asyncMap.d.ts.map +0 -1
  705. package/utilities/observables/iteration.d.ts.map +0 -1
  706. package/utilities/observables/subclassing.d.ts.map +0 -1
  707. package/utilities/policies/pagination.d.ts.map +0 -1
  708. package/utilities/promises/decoration.d.ts.map +0 -1
  709. package/utilities/subscriptions/relay/index.d.ts.map +0 -1
  710. package/utilities/subscriptions/shared.d.ts.map +0 -1
  711. package/utilities/subscriptions/urql/index.d.ts.map +0 -1
  712. package/utilities/types/DeepOmit.d.ts.map +0 -1
  713. package/utilities/types/DeepPartial.d.ts.map +0 -1
  714. package/utilities/types/IsStrictlyAny.d.ts.map +0 -1
  715. package/utilities/types/Primitive.d.ts.map +0 -1
  716. package/version.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProfiledComponent.js","sourceRoot":"","sources":["../../../src/testing/matchers/ProfiledComponent.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,MAAM,CAAC,IAAM,UAAU,GACrB,UACE,SAA+D,EAC/D,OAA2B;;;;;;oBAErB,QAAQ,GACZ,mBAAmB,IAAI,SAAS;wBAC9B,CAAC,CAAC,SAAS,CAAC,iBAAiB;wBAC7B,CAAC,CAAC,SAAS,CAAC;oBACV,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,GAAG,IAAI,CAAC;;;;oBAEd,WAAM,QAAQ,CAAC,UAAU,YAAG,OAAO,EAAE,GAAG,IAAK,OAAO,EAAG,EAAA;;oBAAvD,SAAuD,CAAC;;;;oBAExD,IAAI,GAAC,YAAY,yBAAyB,EAAE;wBAC1C,IAAI,GAAG,KAAK,CAAC;qBACd;yBAAM;wBACL,MAAM,GAAC,CAAC;qBACT;;wBAEH,WAAO;wBACL,IAAI,MAAA;wBACJ,OAAO;4BACL,OAAO,CACL,IAAI;gCACJ,gCAAyB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAa;gCACxD,oBAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAG,CACnC,CAAC;wBACJ,CAAC;qBACF,EAAC;;;;CACH,CAAC;AAGJ,IAAM,MAAM,GAAG,EAAE,CAAC;AAElB,MAAM,CAAC,IAAM,oBAAoB,GAE7B,UACF,SAA+D,EAC/D,KAAa,EACb,gBAAoC;;;;;;oBAE9B,QAAQ,GACZ,mBAAmB,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;oBACvE,OAAO,cAAK,OAAO,EAAE,GAAG,IAAK,gBAAgB,CAAE,CAAC;oBAChD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACxD,IAAI,GAAG,IAAI,CAAC;;;;oBAEd,IAAI,QAAQ,CAAC,kBAAkB,EAAE,GAAG,KAAK,EAAE;wBACzC,MAAM,MAAM,CAAC;qBACd;;;;;;yBAEQ,CAAA,QAAQ,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAA;oBAC1C,WAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;oBAAzC,SAAyC,CAAC;;;;;oBAI5C,MAAM,GAAC,YAAY,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,CAAC;;;oBAG1D,WAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;oBAAzC,SAAyC,CAAC;;;;oBAG1C,IAAI,CAAC,CAAC,GAAC,YAAY,yBAAyB,CAAC,EAAE;wBAC7C,MAAM,GAAC,CAAC;qBACT;;;;;oBAGH,IAAI,GAAC,KAAK,MAAM,EAAE;wBAChB,IAAI,GAAG,KAAK,CAAC;qBACd;yBAAM;wBACL,MAAM,GAAC,CAAC;qBACT;;yBAEH,WAAO;wBACL,IAAI,MAAA;wBACJ,OAAO;4BACL,OAAO,CACL,IAAI;gCACJ,gCAAyB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,6BAAmB,KAAK,MAAG;gCACtE,uBAAgB,QAAQ,CAAC,kBAAkB,EAAE,YAAS,CACvD,CAAC;wBACJ,CAAC;qBACF,EAAC;;;;CACH,CAAC","sourcesContent":["import type { MatcherFunction } from \"expect\";\nimport { WaitForRenderTimeoutError } from \"../internal/index.js\";\nimport type {\n NextRenderOptions,\n ProfiledComponent,\n ProfiledHook,\n} from \"../internal/index.js\";\nexport const toRerender: MatcherFunction<[options?: NextRenderOptions]> =\n async function (\n _profiled: ProfiledComponent<any, any> | ProfiledHook<any, any>,\n options?: NextRenderOptions\n ) {\n const profiled =\n \"ProfiledComponent\" in _profiled\n ? _profiled.ProfiledComponent\n : _profiled;\n const hint = this.utils.matcherHint(\"toRerender\");\n let pass = true;\n try {\n await profiled.peekRender({ timeout: 100, ...options });\n } catch (e) {\n if (e instanceof WaitForRenderTimeoutError) {\n pass = false;\n } else {\n throw e;\n }\n }\n return {\n pass,\n message() {\n return (\n hint +\n ` Expected component to${pass ? \" not\" : \"\"} rerender, ` +\n `but it did${pass ? \"\" : \" not\"}.`\n );\n },\n };\n };\n\n/** to be thrown to \"break\" test execution and fail it */\nconst failed = {};\n\nexport const toRenderExactlyTimes: MatcherFunction<\n [times: number, options?: NextRenderOptions]\n> = async function (\n _profiled: ProfiledComponent<any, any> | ProfiledHook<any, any>,\n times: number,\n optionsPerRender?: NextRenderOptions\n) {\n const profiled =\n \"ProfiledComponent\" in _profiled ? _profiled.ProfiledComponent : _profiled;\n const options = { timeout: 100, ...optionsPerRender };\n const hint = this.utils.matcherHint(\"toRenderExactlyTimes\");\n let pass = true;\n try {\n if (profiled.currentRenderCount() > times) {\n throw failed;\n }\n try {\n while (profiled.currentRenderCount() < times) {\n await profiled.waitForNextRender(options);\n }\n } catch (e) {\n // timeouts here should just fail the test, rethrow other errors\n throw e instanceof WaitForRenderTimeoutError ? failed : e;\n }\n try {\n await profiled.waitForNextRender(options);\n } catch (e) {\n // we are expecting a timeout here, so swallow that error, rethrow others\n if (!(e instanceof WaitForRenderTimeoutError)) {\n throw e;\n }\n }\n } catch (e) {\n if (e === failed) {\n pass = false;\n } else {\n throw e;\n }\n }\n return {\n pass,\n message() {\n return (\n hint +\n ` Expected component to${pass ? \" not\" : \"\"} render exactly ${times}.` +\n ` It rendered ${profiled.currentRenderCount()} times.`\n );\n },\n };\n};\n"]}
1
+ {"version":3,"file":"ProfiledComponent.js","sourceRoot":"","sources":["../../../src/testing/matchers/ProfiledComponent.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQjE,MAAM,CAAC,IAAM,UAAU,GACrB,UAAgB,MAAM,EAAE,OAAO;;;;;;oBACvB,SAAS,GAAG,MAGQ,CAAC;oBACrB,QAAQ,GAAG,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;oBACvE,IAAI,GAAG,IAAI,CAAC;;;;oBAEd,qBAAM,QAAQ,CAAC,UAAU,YAAG,OAAO,EAAE,GAAG,IAAK,OAAO,EAAG,EAAA;;oBAAvD,SAAuD,CAAC;;;;oBAExD,IAAI,GAAC,YAAY,yBAAyB,EAAE,CAAC;wBAC3C,IAAI,GAAG,KAAK,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAC,CAAC;oBACV,CAAC;;wBAGH,sBAAO;wBACL,IAAI,MAAA;wBACJ,OAAO;4BACL,OAAO,CACL,IAAI;gCACJ,mCAA4B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAa;gCAC3D,oBAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAG,CACnC,CAAC;wBACJ,CAAC;qBACF,EAAC;;;;CACH,CAAC;AAEJ,yDAAyD;AACzD,IAAM,MAAM,GAAG,EAAE,CAAC;AAElB,MAAM,CAAC,IAAM,oBAAoB,GAE7B,UAAgB,MAAM,EAAE,KAAK,EAAE,gBAAgB;;;;;;oBAC3C,SAAS,GAAG,MAGQ,CAAC;oBACrB,QAAQ,GAAG,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,OAAO,cAAK,OAAO,EAAE,GAAG,IAAK,gBAAgB,CAAE,CAAC;oBAChD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBACxD,IAAI,GAAG,IAAI,CAAC;;;;oBAEd,IAAI,QAAQ,CAAC,gBAAgB,EAAE,GAAG,KAAK,EAAE,CAAC;wBACxC,MAAM,MAAM,CAAC;oBACf,CAAC;;;;;;yBAEQ,CAAA,QAAQ,CAAC,gBAAgB,EAAE,GAAG,KAAK,CAAA;oBACxC,qBAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;oBAAzC,SAAyC,CAAC;;;;;oBAG5C,gEAAgE;oBAChE,MAAM,GAAC,YAAY,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,CAAC;;;oBAG1D,qBAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;oBAAzC,SAAyC,CAAC;;;;oBAE1C,yEAAyE;oBACzE,IAAI,CAAC,CAAC,GAAC,YAAY,yBAAyB,CAAC,EAAE,CAAC;wBAC9C,MAAM,GAAC,CAAC;oBACV,CAAC;;;;;oBAGH,IAAI,GAAC,KAAK,MAAM,EAAE,CAAC;wBACjB,IAAI,GAAG,KAAK,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAC,CAAC;oBACV,CAAC;;yBAEH,sBAAO;wBACL,IAAI,MAAA;wBACJ,OAAO;4BACL,OAAO,CACL,IAAI;gCACJ,gCAAyB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,6BAAmB,KAAK,MAAG;gCACtE,uBAAgB,QAAQ,CAAC,gBAAgB,EAAE,YAAS,CACrD,CAAC;wBACJ,CAAC;qBACF,EAAC;;;;CACH,CAAC","sourcesContent":["import type { MatcherFunction } from \"expect\";\nimport { WaitForRenderTimeoutError } from \"../internal/index.js\";\nimport type {\n NextRenderOptions,\n Profiler,\n ProfiledComponent,\n ProfiledHook,\n} from \"../internal/index.js\";\n\nexport const toRerender: MatcherFunction<[options?: NextRenderOptions]> =\n async function (actual, options) {\n const _profiler = actual as\n | Profiler<any>\n | ProfiledComponent<any, any>\n | ProfiledHook<any, any>;\n const profiler = \"Profiler\" in _profiler ? _profiler.Profiler : _profiler;\n const hint = this.utils.matcherHint(\"toRerender\", \"ProfiledComponent\", \"\");\n let pass = true;\n try {\n await profiler.peekRender({ timeout: 100, ...options });\n } catch (e) {\n if (e instanceof WaitForRenderTimeoutError) {\n pass = false;\n } else {\n throw e;\n }\n }\n\n return {\n pass,\n message() {\n return (\n hint +\n `\\n\\nExpected component to${pass ? \" not\" : \"\"} rerender, ` +\n `but it did${pass ? \"\" : \" not\"}.`\n );\n },\n };\n };\n\n/** to be thrown to \"break\" test execution and fail it */\nconst failed = {};\n\nexport const toRenderExactlyTimes: MatcherFunction<\n [times: number, options?: NextRenderOptions]\n> = async function (actual, times, optionsPerRender) {\n const _profiler = actual as\n | Profiler<any>\n | ProfiledComponent<any, any>\n | ProfiledHook<any, any>;\n const profiler = \"Profiler\" in _profiler ? _profiler.Profiler : _profiler;\n const options = { timeout: 100, ...optionsPerRender };\n const hint = this.utils.matcherHint(\"toRenderExactlyTimes\");\n let pass = true;\n try {\n if (profiler.totalRenderCount() > times) {\n throw failed;\n }\n try {\n while (profiler.totalRenderCount() < times) {\n await profiler.waitForNextRender(options);\n }\n } catch (e) {\n // timeouts here should just fail the test, rethrow other errors\n throw e instanceof WaitForRenderTimeoutError ? failed : e;\n }\n try {\n await profiler.waitForNextRender(options);\n } catch (e) {\n // we are expecting a timeout here, so swallow that error, rethrow others\n if (!(e instanceof WaitForRenderTimeoutError)) {\n throw e;\n }\n }\n } catch (e) {\n if (e === failed) {\n pass = false;\n } else {\n throw e;\n }\n }\n return {\n pass,\n message() {\n return (\n hint +\n ` Expected component to${pass ? \" not\" : \"\"} render exactly ${times}.` +\n ` It rendered ${profiler.totalRenderCount()} times.`\n );\n },\n };\n};\n"]}
@@ -2,10 +2,12 @@ import { expect } from "@jest/globals";
2
2
  import { toMatchDocument } from "./toMatchDocument.js";
3
3
  import { toHaveSuspenseCacheEntryUsing } from "./toHaveSuspenseCacheEntryUsing.js";
4
4
  import { toRerender, toRenderExactlyTimes } from "./ProfiledComponent.js";
5
+ import { toBeGarbageCollected } from "./toBeGarbageCollected.js";
5
6
  expect.extend({
6
7
  toHaveSuspenseCacheEntryUsing: toHaveSuspenseCacheEntryUsing,
7
8
  toMatchDocument: toMatchDocument,
8
9
  toRerender: toRerender,
9
10
  toRenderExactlyTimes: toRenderExactlyTimes,
11
+ toBeGarbageCollected: toBeGarbageCollected,
10
12
  });
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/matchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE1E,MAAM,CAAC,MAAM,CAAC;IACZ,6BAA6B,+BAAA;IAC7B,eAAe,iBAAA;IACf,UAAU,YAAA;IACV,oBAAoB,sBAAA;CACrB,CAAC,CAAC","sourcesContent":["import { expect } from \"@jest/globals\";\nimport { toMatchDocument } from \"./toMatchDocument.js\";\nimport { toHaveSuspenseCacheEntryUsing } from \"./toHaveSuspenseCacheEntryUsing.js\";\nimport { toRerender, toRenderExactlyTimes } from \"./ProfiledComponent.js\";\n\nexpect.extend({\n toHaveSuspenseCacheEntryUsing,\n toMatchDocument,\n toRerender,\n toRenderExactlyTimes,\n});\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/matchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,CAAC,MAAM,CAAC;IACZ,6BAA6B,+BAAA;IAC7B,eAAe,iBAAA;IACf,UAAU,YAAA;IACV,oBAAoB,sBAAA;IACpB,oBAAoB,sBAAA;CACrB,CAAC,CAAC","sourcesContent":["import { expect } from \"@jest/globals\";\nimport { toMatchDocument } from \"./toMatchDocument.js\";\nimport { toHaveSuspenseCacheEntryUsing } from \"./toHaveSuspenseCacheEntryUsing.js\";\nimport { toRerender, toRenderExactlyTimes } from \"./ProfiledComponent.js\";\nimport { toBeGarbageCollected } from \"./toBeGarbageCollected.js\";\n\nexpect.extend({\n toHaveSuspenseCacheEntryUsing,\n toMatchDocument,\n toRerender,\n toRenderExactlyTimes,\n toBeGarbageCollected,\n});\n"]}
@@ -0,0 +1,8 @@
1
+ import type { MatcherFunction } from "expect";
2
+ declare class WeakRef<T extends WeakKey> {
3
+ constructor(target: T);
4
+ deref(): T | undefined;
5
+ }
6
+ export declare const toBeGarbageCollected: MatcherFunction<[weakRef: WeakRef<any>]>;
7
+ export {};
8
+ //# sourceMappingURL=toBeGarbageCollected.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ export var toBeGarbageCollected = function (actual) {
3
+ return __awaiter(this, void 0, void 0, function () {
4
+ var hint, pass, interval, timeout;
5
+ return __generator(this, function (_a) {
6
+ switch (_a.label) {
7
+ case 0:
8
+ hint = this.utils.matcherHint("toBeGarbageCollected");
9
+ if (!(actual instanceof WeakRef)) {
10
+ throw new Error(hint +
11
+ "\n\n" +
12
+ "Expected value to be a WeakRef, but it was a ".concat(typeof actual, "."));
13
+ }
14
+ pass = false;
15
+ return [4 /*yield*/, Promise.race([
16
+ new Promise(function (resolve) {
17
+ timeout = setTimeout(resolve, 1000);
18
+ }),
19
+ new Promise(function (resolve) {
20
+ interval = setInterval(function () {
21
+ global.gc();
22
+ pass = actual.deref() === undefined;
23
+ if (pass) {
24
+ resolve();
25
+ }
26
+ }, 1);
27
+ }),
28
+ ])];
29
+ case 1:
30
+ _a.sent();
31
+ clearInterval(interval);
32
+ clearTimeout(timeout);
33
+ return [2 /*return*/, {
34
+ pass: pass,
35
+ message: function () {
36
+ if (pass) {
37
+ return (hint +
38
+ "\n\n" +
39
+ "Expected value to not be cache-collected, but it was.");
40
+ }
41
+ return (hint + "\n\n Expected value to be cache-collected, but it was not.");
42
+ },
43
+ }];
44
+ }
45
+ });
46
+ });
47
+ };
48
+ //# sourceMappingURL=toBeGarbageCollected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBeGarbageCollected.js","sourceRoot":"","sources":["../../../src/testing/matchers/toBeGarbageCollected.ts"],"names":[],"mappings":";AASA,MAAM,CAAC,IAAM,oBAAoB,GAC/B,UAAgB,MAAM;;;;;;oBACd,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;oBAE5D,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,EAAE,CAAC;wBACjC,MAAM,IAAI,KAAK,CACb,IAAI;4BACF,MAAM;4BACN,uDAAgD,OAAO,MAAM,MAAG,CACnE,CAAC;oBACJ,CAAC;oBAEG,IAAI,GAAG,KAAK,CAAC;oBAGjB,qBAAM,OAAO,CAAC,IAAI,CAAC;4BACjB,IAAI,OAAO,CAAO,UAAC,OAAO;gCACxB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BACtC,CAAC,CAAC;4BACF,IAAI,OAAO,CAAO,UAAC,OAAO;gCACxB,QAAQ,GAAG,WAAW,CAAC;oCACrB,MAAM,CAAC,EAAG,EAAE,CAAC;oCACb,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC;oCACpC,IAAI,IAAI,EAAE,CAAC;wCACT,OAAO,EAAE,CAAC;oCACZ,CAAC;gCACH,CAAC,EAAE,CAAC,CAAC,CAAC;4BACR,CAAC,CAAC;yBACH,CAAC,EAAA;;oBAbF,SAaE,CAAC;oBAEH,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,YAAY,CAAC,OAAO,CAAC,CAAC;oBAEtB,sBAAO;4BACL,IAAI,MAAA;4BACJ,OAAO,EAAE;gCACP,IAAI,IAAI,EAAE,CAAC;oCACT,OAAO,CACL,IAAI;wCACJ,MAAM;wCACN,uDAAuD,CACxD,CAAC;gCACJ,CAAC;gCAED,OAAO,CACL,IAAI,GAAG,4DAA4D,CACpE,CAAC;4BACJ,CAAC;yBACF,EAAC;;;;CACH,CAAC","sourcesContent":["import type { MatcherFunction } from \"expect\";\n\n// this is necessary because this file is picked up by `tsc` (it's not a test),\n// but our main `tsconfig.json` doesn't include `\"ES2021.WeakRef\"` on purpose\ndeclare class WeakRef<T extends WeakKey> {\n constructor(target: T);\n deref(): T | undefined;\n}\n\nexport const toBeGarbageCollected: MatcherFunction<[weakRef: WeakRef<any>]> =\n async function (actual) {\n const hint = this.utils.matcherHint(\"toBeGarbageCollected\");\n\n if (!(actual instanceof WeakRef)) {\n throw new Error(\n hint +\n \"\\n\\n\" +\n `Expected value to be a WeakRef, but it was a ${typeof actual}.`\n );\n }\n\n let pass = false;\n let interval: NodeJS.Timeout | undefined;\n let timeout: NodeJS.Timeout | undefined;\n await Promise.race([\n new Promise<void>((resolve) => {\n timeout = setTimeout(resolve, 1000);\n }),\n new Promise<void>((resolve) => {\n interval = setInterval(() => {\n global.gc!();\n pass = actual.deref() === undefined;\n if (pass) {\n resolve();\n }\n }, 1);\n }),\n ]);\n\n clearInterval(interval);\n clearTimeout(timeout);\n\n return {\n pass,\n message: () => {\n if (pass) {\n return (\n hint +\n \"\\n\\n\" +\n \"Expected value to not be cache-collected, but it was.\"\n );\n }\n\n return (\n hint + \"\\n\\n Expected value to be cache-collected, but it was not.\"\n );\n },\n };\n };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"toHaveSuspenseCacheEntryUsing.js","sourceRoot":"","sources":["../../../src/testing/matchers/toHaveSuspenseCacheEntryUsing.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,MAAM,CAAC,IAAM,6BAA6B,GAQtC,UACF,MAAM,EACN,KAAK,EACL,EAAkD;;QAAlD,qBAA+B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAA,EAAhD,SAAS,eAAA,EAAE,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA;IAE1B,IAAI,CAAC,CAAC,MAAM,YAAY,YAAY,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAM,QAAQ;QACZ,KAAK;QACL,kBAAkB,CAAC,SAAS,CAAC;OACzB,EAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAClC,CAAC;IACF,IAAM,QAAQ,GAAG,MAAA,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,0CAAE,OAAO,CAAC;IAE3E,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,OAAO,EAAE;YACP,OAAO,kCACL,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kCACO,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { MatcherFunction } from \"expect\";\nimport type { DocumentNode } from \"graphql\";\nimport type { OperationVariables } from \"../../core/index.js\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { canonicalStringify } from \"../../cache/index.js\";\nimport { getSuspenseCache } from \"../../react/cache/index.js\";\nimport type { CacheKey } from \"../../react/cache/types.js\";\n\nexport const toHaveSuspenseCacheEntryUsing: MatcherFunction<\n [\n query: DocumentNode,\n options: {\n variables?: OperationVariables;\n queryKey?: string | number | any[];\n },\n ]\n> = function (\n client,\n query,\n { variables, queryKey = [] } = Object.create(null)\n) {\n if (!(client instanceof ApolloClient)) {\n throw new Error(\"Actual must be an instance of `ApolloClient`\");\n }\n\n const suspenseCache = getSuspenseCache(client);\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n const queryRef = suspenseCache[\"queryRefs\"].lookupArray(cacheKey)?.current;\n\n return {\n pass: !!queryRef,\n message: () => {\n return `Expected suspense cache ${\n queryRef ? \"not \" : \"\"\n }to have cache entry using key`;\n },\n };\n};\n"]}
1
+ {"version":3,"file":"toHaveSuspenseCacheEntryUsing.js","sourceRoot":"","sources":["../../../src/testing/matchers/toHaveSuspenseCacheEntryUsing.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,MAAM,CAAC,IAAM,6BAA6B,GAQtC,UACF,MAAM,EACN,KAAK,EACL,EAAkD;;QAAlD,qBAA+B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAA,EAAhD,SAAS,eAAA,EAAE,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA;IAE1B,IAAI,CAAC,CAAC,MAAM,YAAY,YAAY,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAM,QAAQ;QACZ,KAAK;QACL,kBAAkB,CAAC,SAAS,CAAC;OACzB,EAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAClC,CAAC;IACF,IAAM,QAAQ,GAAG,MAAA,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,0CAAE,OAAO,CAAC;IAE3E,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,OAAO,EAAE;YACP,OAAO,kCACL,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kCACO,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { MatcherFunction } from \"expect\";\nimport type { DocumentNode } from \"graphql\";\nimport type { OperationVariables } from \"../../core/index.js\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { canonicalStringify } from \"../../cache/index.js\";\nimport { getSuspenseCache } from \"../../react/cache/index.js\";\nimport type { CacheKey } from \"../../react/cache/types.js\";\n\nexport const toHaveSuspenseCacheEntryUsing: MatcherFunction<\n [\n query: DocumentNode,\n options: {\n variables?: OperationVariables;\n queryKey?: string | number | any[];\n },\n ]\n> = function (\n client,\n query,\n { variables, queryKey = [] } = Object.create(null)\n) {\n if (!(client instanceof ApolloClient)) {\n throw new Error(\"Actual must be an instance of `ApolloClient`\");\n }\n\n const suspenseCache = getSuspenseCache(client);\n\n const cacheKey: CacheKey = [\n query,\n canonicalStringify(variables),\n ...([] as any[]).concat(queryKey),\n ];\n const queryRef = suspenseCache[\"queryRefs\"].lookupArray(cacheKey)?.current;\n\n return {\n pass: !!queryRef,\n message: () => {\n return `Expected suspense cache ${\n queryRef ? \"not \" : \"\"\n }to have cache entry using key`;\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"toMatchDocument.js","sourceRoot":"","sources":["../../../src/testing/matchers/toMatchDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIhE,MAAM,CAAC,IAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,QAAQ;IAA1B,iBA+CC;IA9CC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACvD,IAAM,cAAc,GAAG,KAAK,CAC1B,gBAAgB,CACd,MAAM,EACN,IAAI;QACF,cAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAC9B,UAAU,CACX,yCAAsC,CAC1C,CACF,CAAC;IACF,IAAM,gBAAgB,GAAG,KAAK,CAC5B,gBAAgB,CACd,QAAQ,EACR,IAAI;QACF,cAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAC9B,UAAU,CACX,yCAAsC,CAC1C,CACF,CAAC;IAEF,IAAM,IAAI,GAAG,cAAc,KAAK,gBAAgB,CAAC;IAEjD,OAAO;QACL,IAAI,MAAA;QACJ,OAAO,EAAE;YACP,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,WAAW,CACjC,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,EAAE,CACtB,CAAC;YAEF,IAAI,IAAI,EAAE;gBACR,OAAO,CACL,IAAI;oBACJ,MAAM;oBACN,eAAe;oBACf,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAC1C,CAAC;aACH;YAED,OAAO,CACL,IAAI,GAAG,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAClE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEJ,SAAS,gBAAgB,CAAC,QAAiB,EAAE,OAAe;IAC1D,IAAI;QACF,aAAa,CAAC,QAAwB,CAAC,CAAC;KACzC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,OAAO,QAAwB,CAAC;AAClC,CAAC","sourcesContent":["import { checkDocument, print } from \"../../utilities/index.js\";\nimport type { DocumentNode } from \"../../core/index.js\";\nimport type { MatcherFunction } from \"expect\";\n\nexport const toMatchDocument: MatcherFunction<[document: DocumentNode]> =\n function (actual, document) {\n const hint = this.utils.matcherHint(\"toMatchDocument\");\n const actualDocument = print(\n validateDocument(\n actual,\n hint +\n `\\n\\n${this.utils.RECEIVED_COLOR(\n \"received\"\n )} document must be a parsed document.`\n )\n );\n const expectedDocument = print(\n validateDocument(\n document,\n hint +\n `\\n\\n${this.utils.EXPECTED_COLOR(\n \"expected\"\n )} document must be a parsed document.`\n )\n );\n\n const pass = actualDocument === expectedDocument;\n\n return {\n pass,\n message: () => {\n const hint = this.utils.matcherHint(\n \"toMatchDocument\",\n undefined,\n undefined,\n { isNot: this.isNot }\n );\n\n if (pass) {\n return (\n hint +\n \"\\n\\n\" +\n \"Received:\\n\\n\" +\n this.utils.RECEIVED_COLOR(actualDocument)\n );\n }\n\n return (\n hint + \"\\n\\n\" + this.utils.diff(expectedDocument, actualDocument)\n );\n },\n };\n };\n\nfunction validateDocument(document: unknown, message: string) {\n try {\n checkDocument(document as DocumentNode);\n } catch (e) {\n throw new Error(message);\n }\n\n return document as DocumentNode;\n}\n"]}
1
+ {"version":3,"file":"toMatchDocument.js","sourceRoot":"","sources":["../../../src/testing/matchers/toMatchDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIhE,MAAM,CAAC,IAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,QAAQ;IAA1B,iBA+CC;IA9CC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACvD,IAAM,cAAc,GAAG,KAAK,CAC1B,gBAAgB,CACd,MAAM,EACN,IAAI;QACF,cAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAC9B,UAAU,CACX,yCAAsC,CAC1C,CACF,CAAC;IACF,IAAM,gBAAgB,GAAG,KAAK,CAC5B,gBAAgB,CACd,QAAQ,EACR,IAAI;QACF,cAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAC9B,UAAU,CACX,yCAAsC,CAC1C,CACF,CAAC;IAEF,IAAM,IAAI,GAAG,cAAc,KAAK,gBAAgB,CAAC;IAEjD,OAAO;QACL,IAAI,MAAA;QACJ,OAAO,EAAE;YACP,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,WAAW,CACjC,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,EAAE,CACtB,CAAC;YAEF,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CACL,IAAI;oBACJ,MAAM;oBACN,eAAe;oBACf,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAC1C,CAAC;YACJ,CAAC;YAED,OAAO,CACL,IAAI,GAAG,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAClE,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEJ,SAAS,gBAAgB,CAAC,QAAiB,EAAE,OAAe;IAC1D,IAAI,CAAC;QACH,aAAa,CAAC,QAAwB,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAwB,CAAC;AAClC,CAAC","sourcesContent":["import { checkDocument, print } from \"../../utilities/index.js\";\nimport type { DocumentNode } from \"../../core/index.js\";\nimport type { MatcherFunction } from \"expect\";\n\nexport const toMatchDocument: MatcherFunction<[document: DocumentNode]> =\n function (actual, document) {\n const hint = this.utils.matcherHint(\"toMatchDocument\");\n const actualDocument = print(\n validateDocument(\n actual,\n hint +\n `\\n\\n${this.utils.RECEIVED_COLOR(\n \"received\"\n )} document must be a parsed document.`\n )\n );\n const expectedDocument = print(\n validateDocument(\n document,\n hint +\n `\\n\\n${this.utils.EXPECTED_COLOR(\n \"expected\"\n )} document must be a parsed document.`\n )\n );\n\n const pass = actualDocument === expectedDocument;\n\n return {\n pass,\n message: () => {\n const hint = this.utils.matcherHint(\n \"toMatchDocument\",\n undefined,\n undefined,\n { isNot: this.isNot }\n );\n\n if (pass) {\n return (\n hint +\n \"\\n\\n\" +\n \"Received:\\n\\n\" +\n this.utils.RECEIVED_COLOR(actualDocument)\n );\n }\n\n return (\n hint + \"\\n\\n\" + this.utils.diff(expectedDocument, actualDocument)\n );\n },\n };\n };\n\nfunction validateDocument(document: unknown, message: string) {\n try {\n checkDocument(document as DocumentNode);\n } catch (e) {\n throw new Error(message);\n }\n\n return document as DocumentNode;\n}\n"]}
@@ -6,7 +6,7 @@ import type { ApolloLink } from "../../link/core/index.js";
6
6
  import type { Resolvers } from "../../core/index.js";
7
7
  import type { ApolloCache } from "../../cache/index.js";
8
8
  export interface MockedProviderProps<TSerializedCache = {}> {
9
- mocks?: ReadonlyArray<MockedResponse>;
9
+ mocks?: ReadonlyArray<MockedResponse<any, any>>;
10
10
  addTypename?: boolean;
11
11
  defaultOptions?: DefaultOptions;
12
12
  cache?: ApolloCache<TSerializedCache>;
@@ -15,6 +15,10 @@ export interface MockedProviderProps<TSerializedCache = {}> {
15
15
  children?: any;
16
16
  link?: ApolloLink;
17
17
  showWarnings?: boolean;
18
+ /**
19
+ * If set to true, the MockedProvider will try to connect to the Apollo DevTools.
20
+ * Defaults to false.
21
+ */
18
22
  connectToDevTools?: boolean;
19
23
  }
20
24
  export interface MockedProviderState {
@@ -4,7 +4,7 @@ import { ApolloClient } from "../../core/index.js";
4
4
  import { InMemoryCache as Cache } from "../../cache/index.js";
5
5
  import { ApolloProvider } from "../../react/context/index.js";
6
6
  import { MockLink } from "../core/index.js";
7
- var MockedProvider = (function (_super) {
7
+ var MockedProvider = /** @class */ (function (_super) {
8
8
  __extends(MockedProvider, _super);
9
9
  function MockedProvider(props) {
10
10
  var _this = _super.call(this, props) || this;
@@ -24,9 +24,13 @@ var MockedProvider = (function (_super) {
24
24
  MockedProvider.prototype.render = function () {
25
25
  var _a = this.props, children = _a.children, childProps = _a.childProps;
26
26
  var client = this.state.client;
27
- return React.isValidElement(children) ? (React.createElement(ApolloProvider, { client: client }, React.cloneElement(React.Children.only(children), __assign({}, childProps)))) : null;
27
+ return React.isValidElement(children) ?
28
+ React.createElement(ApolloProvider, { client: client }, React.cloneElement(React.Children.only(children), __assign({}, childProps)))
29
+ : null;
28
30
  };
29
31
  MockedProvider.prototype.componentWillUnmount = function () {
32
+ // Since this.state.client was created in the constructor, it's this
33
+ // MockedProvider's responsibility to terminate it.
30
34
  this.state.client.stop();
31
35
  };
32
36
  MockedProvider.defaultProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"MockedProvider.js","sourceRoot":"","sources":["../../../src/testing/react/MockedProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA0B5C;IAAoC,kCAGnC;IAKC,wBAAY,KAA0B;QAAtC,YACE,kBAAM,KAAK,CAAC,SAuBb;QArBO,IAAA,KASF,KAAI,CAAC,KAAK,EARZ,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,cAAc,oBAAA,EACd,KAAK,WAAA,EACL,SAAS,eAAA,EACT,IAAI,UAAA,EACJ,YAAY,kBAAA,EACZ,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KACb,CAAC;QACf,IAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,KAAK,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC;YAC1C,cAAc,gBAAA;YACd,iBAAiB,mBAAA;YACjB,IAAI,EAAE,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,YAAY,cAAA,EAAE,CAAC;YACtE,SAAS,WAAA;SACV,CAAC,CAAC;QAEH,KAAI,CAAC,KAAK,GAAG;YACX,MAAM,QAAA;SACP,CAAC;;IACJ,CAAC;IAEM,+BAAM,GAAb;QACQ,IAAA,KAA2B,IAAI,CAAC,KAAK,EAAnC,QAAQ,cAAA,EAAE,UAAU,gBAAe,CAAC;QACpC,IAAA,MAAM,GAAK,IAAI,CAAC,KAAK,OAAf,CAAgB;QAE9B,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACtC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM,IAC3B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAO,UAAU,EAAG,CACtD,CAClB,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAEM,6CAAoB,GAA3B;QAGE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IA7Ca,2BAAY,GAAwB;QAChD,WAAW,EAAE,IAAI;KAClB,CAAC;IA4CJ,qBAAC;CAAA,AAlDD,CAAoC,KAAK,CAAC,SAAS,GAkDlD;SAlDY,cAAc","sourcesContent":["import * as React from \"react\";\n\nimport type { DefaultOptions } from \"../../core/index.js\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { InMemoryCache as Cache } from \"../../cache/index.js\";\nimport { ApolloProvider } from \"../../react/context/index.js\";\nimport type { MockedResponse } from \"../core/index.js\";\nimport { MockLink } from \"../core/index.js\";\nimport type { ApolloLink } from \"../../link/core/index.js\";\nimport type { Resolvers } from \"../../core/index.js\";\nimport type { ApolloCache } from \"../../cache/index.js\";\n\nexport interface MockedProviderProps<TSerializedCache = {}> {\n mocks?: ReadonlyArray<MockedResponse>;\n addTypename?: boolean;\n defaultOptions?: DefaultOptions;\n cache?: ApolloCache<TSerializedCache>;\n resolvers?: Resolvers;\n childProps?: object;\n children?: any;\n link?: ApolloLink;\n showWarnings?: boolean;\n /**\n * If set to true, the MockedProvider will try to connect to the Apollo DevTools.\n * Defaults to false.\n */\n connectToDevTools?: boolean;\n}\n\nexport interface MockedProviderState {\n client: ApolloClient<any>;\n}\n\nexport class MockedProvider extends React.Component<\n MockedProviderProps,\n MockedProviderState\n> {\n public static defaultProps: MockedProviderProps = {\n addTypename: true,\n };\n\n constructor(props: MockedProviderProps) {\n super(props);\n\n const {\n mocks,\n addTypename,\n defaultOptions,\n cache,\n resolvers,\n link,\n showWarnings,\n connectToDevTools = false,\n } = this.props;\n const client = new ApolloClient({\n cache: cache || new Cache({ addTypename }),\n defaultOptions,\n connectToDevTools,\n link: link || new MockLink(mocks || [], addTypename, { showWarnings }),\n resolvers,\n });\n\n this.state = {\n client,\n };\n }\n\n public render() {\n const { children, childProps } = this.props;\n const { client } = this.state;\n\n return React.isValidElement(children) ? (\n <ApolloProvider client={client}>\n {React.cloneElement(React.Children.only(children), { ...childProps })}\n </ApolloProvider>\n ) : null;\n }\n\n public componentWillUnmount() {\n // Since this.state.client was created in the constructor, it's this\n // MockedProvider's responsibility to terminate it.\n this.state.client.stop();\n }\n}\n"]}
1
+ {"version":3,"file":"MockedProvider.js","sourceRoot":"","sources":["../../../src/testing/react/MockedProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA0B5C;IAAoC,kCAGnC;IAKC,wBAAY,KAA0B;QACpC,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QAEP,IAAA,KASF,KAAI,CAAC,KAAK,EARZ,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,cAAc,oBAAA,EACd,KAAK,WAAA,EACL,SAAS,eAAA,EACT,IAAI,UAAA,EACJ,YAAY,kBAAA,EACZ,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KACb,CAAC;QACf,IAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,KAAK,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC;YAC1C,cAAc,gBAAA;YACd,iBAAiB,mBAAA;YACjB,IAAI,EAAE,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,YAAY,cAAA,EAAE,CAAC;YACtE,SAAS,WAAA;SACV,CAAC,CAAC;QAEH,KAAI,CAAC,KAAK,GAAG;YACX,MAAM,QAAA;SACP,CAAC;;IACJ,CAAC;IAEM,+BAAM,GAAb;QACQ,IAAA,KAA2B,IAAI,CAAC,KAAK,EAAnC,QAAQ,cAAA,EAAE,UAAU,gBAAe,CAAC;QACpC,IAAA,MAAM,GAAK,IAAI,CAAC,KAAK,OAAf,CAAgB;QAE9B,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,oBAAC,cAAc,IAAC,MAAM,EAAE,MAAM,IAC3B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAO,UAAU,EAAG,CACtD;YACnB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAEM,6CAAoB,GAA3B;QACE,oEAAoE;QACpE,mDAAmD;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IA7Ca,2BAAY,GAAwB;QAChD,WAAW,EAAE,IAAI;KAClB,CAAC;IA4CJ,qBAAC;CAAA,AAlDD,CAAoC,KAAK,CAAC,SAAS,GAkDlD;SAlDY,cAAc","sourcesContent":["import * as React from \"react\";\n\nimport type { DefaultOptions } from \"../../core/index.js\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { InMemoryCache as Cache } from \"../../cache/index.js\";\nimport { ApolloProvider } from \"../../react/context/index.js\";\nimport type { MockedResponse } from \"../core/index.js\";\nimport { MockLink } from \"../core/index.js\";\nimport type { ApolloLink } from \"../../link/core/index.js\";\nimport type { Resolvers } from \"../../core/index.js\";\nimport type { ApolloCache } from \"../../cache/index.js\";\n\nexport interface MockedProviderProps<TSerializedCache = {}> {\n mocks?: ReadonlyArray<MockedResponse<any, any>>;\n addTypename?: boolean;\n defaultOptions?: DefaultOptions;\n cache?: ApolloCache<TSerializedCache>;\n resolvers?: Resolvers;\n childProps?: object;\n children?: any;\n link?: ApolloLink;\n showWarnings?: boolean;\n /**\n * If set to true, the MockedProvider will try to connect to the Apollo DevTools.\n * Defaults to false.\n */\n connectToDevTools?: boolean;\n}\n\nexport interface MockedProviderState {\n client: ApolloClient<any>;\n}\n\nexport class MockedProvider extends React.Component<\n MockedProviderProps,\n MockedProviderState\n> {\n public static defaultProps: MockedProviderProps = {\n addTypename: true,\n };\n\n constructor(props: MockedProviderProps) {\n super(props);\n\n const {\n mocks,\n addTypename,\n defaultOptions,\n cache,\n resolvers,\n link,\n showWarnings,\n connectToDevTools = false,\n } = this.props;\n const client = new ApolloClient({\n cache: cache || new Cache({ addTypename }),\n defaultOptions,\n connectToDevTools,\n link: link || new MockLink(mocks || [], addTypename, { showWarnings }),\n resolvers,\n });\n\n this.state = {\n client,\n };\n }\n\n public render() {\n const { children, childProps } = this.props;\n const { client } = this.state;\n\n return React.isValidElement(children) ?\n <ApolloProvider client={client}>\n {React.cloneElement(React.Children.only(children), { ...childProps })}\n </ApolloProvider>\n : null;\n }\n\n public componentWillUnmount() {\n // Since this.state.client was created in the constructor, it's this\n // MockedProvider's responsibility to terminate it.\n this.state.client.stop();\n }\n}\n"]}
@@ -24,7 +24,7 @@ function _interopNamespace(e) {
24
24
 
25
25
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
- var MockedProvider = (function (_super) {
27
+ var MockedProvider = (function (_super) {
28
28
  tslib.__extends(MockedProvider, _super);
29
29
  function MockedProvider(props) {
30
30
  var _this = _super.call(this, props) || this;
@@ -44,7 +44,9 @@ var MockedProvider = (function (_super) {
44
44
  MockedProvider.prototype.render = function () {
45
45
  var _a = this.props, children = _a.children, childProps = _a.childProps;
46
46
  var client = this.state.client;
47
- return React__namespace.isValidElement(children) ? (React__namespace.createElement(context.ApolloProvider, { client: client }, React__namespace.cloneElement(React__namespace.Children.only(children), tslib.__assign({}, childProps)))) : null;
47
+ return React__namespace.isValidElement(children) ?
48
+ React__namespace.createElement(context.ApolloProvider, { client: client }, React__namespace.cloneElement(React__namespace.Children.only(children), tslib.__assign({}, childProps)))
49
+ : null;
48
50
  };
49
51
  MockedProvider.prototype.componentWillUnmount = function () {
50
52
  this.state.client.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"testing.cjs","sources":["react/MockedProvider.js"],"sourcesContent":["import { __assign, __extends } from \"tslib\";\nimport * as React from \"react\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { InMemoryCache as Cache } from \"../../cache/index.js\";\nimport { ApolloProvider } from \"../../react/context/index.js\";\nimport { MockLink } from \"../core/index.js\";\nvar MockedProvider = (function (_super) {\n __extends(MockedProvider, _super);\n function MockedProvider(props) {\n var _this = _super.call(this, props) || this;\n var _a = _this.props, mocks = _a.mocks, addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings, _b = _a.connectToDevTools, connectToDevTools = _b === void 0 ? false : _b;\n var client = new ApolloClient({\n cache: cache || new Cache({ addTypename: addTypename }),\n defaultOptions: defaultOptions,\n connectToDevTools: connectToDevTools,\n link: link || new MockLink(mocks || [], addTypename, { showWarnings: showWarnings }),\n resolvers: resolvers,\n });\n _this.state = {\n client: client,\n };\n return _this;\n }\n MockedProvider.prototype.render = function () {\n var _a = this.props, children = _a.children, childProps = _a.childProps;\n var client = this.state.client;\n return React.isValidElement(children) ? (React.createElement(ApolloProvider, { client: client }, React.cloneElement(React.Children.only(children), __assign({}, childProps)))) : null;\n };\n MockedProvider.prototype.componentWillUnmount = function () {\n this.state.client.stop();\n };\n MockedProvider.defaultProps = {\n addTypename: true,\n };\n return MockedProvider;\n}(React.Component));\nexport { MockedProvider };\n//# sourceMappingURL=MockedProvider.js.map"],"names":["__extends","cache","ApolloClient","Cache","MockLink","React","ApolloProvider","__assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMG,IAAC,cAAc,IAAI,UAAU,MAAM,EAAE;AACxC,IAAIA,eAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtC,IAAI,SAAS,cAAc,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;AACrD,QAAQ,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG,EAAE,CAAC,cAAc,EAAEC,OAAK,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AACxR,QAAQ,IAAI,MAAM,GAAG,IAAIC,mBAAY,CAAC;AACtC,YAAY,KAAK,EAAED,OAAK,IAAI,IAAIE,mBAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnE,YAAY,cAAc,EAAE,cAAc;AAC1C,YAAY,iBAAiB,EAAE,iBAAiB;AAChD,YAAY,IAAI,EAAE,IAAI,IAAI,IAAIC,aAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAChG,YAAY,SAAS,EAAE,SAAS;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,KAAK,CAAC,KAAK,GAAG;AACtB,YAAY,MAAM,EAAE,MAAM;AAC1B,SAAS,CAAC;AACV,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AAChF,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAOC,gBAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAIA,gBAAK,CAAC,aAAa,CAACC,sBAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAED,gBAAK,CAAC,YAAY,CAACA,gBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAEE,cAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9L,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,oBAAoB,GAAG,YAAY;AAChE,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,YAAY,GAAG;AAClC,QAAQ,WAAW,EAAE,IAAI;AACzB,KAAK,CAAC;AACN,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC,CAACF,gBAAK,CAAC,SAAS,CAAC;;;;;;;"}
1
+ {"version":3,"file":"testing.cjs","sources":["react/MockedProvider.js"],"sourcesContent":["import { __assign, __extends } from \"tslib\";\nimport * as React from \"react\";\nimport { ApolloClient } from \"../../core/index.js\";\nimport { InMemoryCache as Cache } from \"../../cache/index.js\";\nimport { ApolloProvider } from \"../../react/context/index.js\";\nimport { MockLink } from \"../core/index.js\";\nvar MockedProvider = /** @class */ (function (_super) {\n __extends(MockedProvider, _super);\n function MockedProvider(props) {\n var _this = _super.call(this, props) || this;\n var _a = _this.props, mocks = _a.mocks, addTypename = _a.addTypename, defaultOptions = _a.defaultOptions, cache = _a.cache, resolvers = _a.resolvers, link = _a.link, showWarnings = _a.showWarnings, _b = _a.connectToDevTools, connectToDevTools = _b === void 0 ? false : _b;\n var client = new ApolloClient({\n cache: cache || new Cache({ addTypename: addTypename }),\n defaultOptions: defaultOptions,\n connectToDevTools: connectToDevTools,\n link: link || new MockLink(mocks || [], addTypename, { showWarnings: showWarnings }),\n resolvers: resolvers,\n });\n _this.state = {\n client: client,\n };\n return _this;\n }\n MockedProvider.prototype.render = function () {\n var _a = this.props, children = _a.children, childProps = _a.childProps;\n var client = this.state.client;\n return React.isValidElement(children) ?\n React.createElement(ApolloProvider, { client: client }, React.cloneElement(React.Children.only(children), __assign({}, childProps)))\n : null;\n };\n MockedProvider.prototype.componentWillUnmount = function () {\n // Since this.state.client was created in the constructor, it's this\n // MockedProvider's responsibility to terminate it.\n this.state.client.stop();\n };\n MockedProvider.defaultProps = {\n addTypename: true,\n };\n return MockedProvider;\n}(React.Component));\nexport { MockedProvider };\n//# sourceMappingURL=MockedProvider.js.map"],"names":["__extends","cache","ApolloClient","Cache","MockLink","React","ApolloProvider","__assign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMG,IAAC,cAAc,KAAkB,UAAU,MAAM,EAAE;AACtD,IAAIA,eAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtC,IAAI,SAAS,cAAc,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;AACrD,QAAQ,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG,EAAE,CAAC,cAAc,EAAEC,OAAK,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AACxR,QAAQ,IAAI,MAAM,GAAG,IAAIC,mBAAY,CAAC;AACtC,YAAY,KAAK,EAAED,OAAK,IAAI,IAAIE,mBAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnE,YAAY,cAAc,EAAE,cAAc;AAC1C,YAAY,iBAAiB,EAAE,iBAAiB;AAChD,YAAY,IAAI,EAAE,IAAI,IAAI,IAAIC,aAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAChG,YAAY,SAAS,EAAE,SAAS;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,KAAK,CAAC,KAAK,GAAG;AACtB,YAAY,MAAM,EAAE,MAAM;AAC1B,SAAS,CAAC;AACV,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AAChF,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAOC,gBAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7C,YAAYA,gBAAK,CAAC,aAAa,CAACC,sBAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAED,gBAAK,CAAC,YAAY,CAACA,gBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAEE,cAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAChJ,cAAc,IAAI,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,oBAAoB,GAAG,YAAY;AAGhE,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,YAAY,GAAG;AAClC,QAAQ,WAAW,EAAE,IAAI;AACzB,KAAK,CAAC;AACN,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC,CAACF,gBAAK,CAAC,SAAS,CAAC;;;;;;;"}
@@ -24,7 +24,7 @@ function _interopNamespace(e) {
24
24
 
25
25
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
- var MockedProvider = (function (_super) {
27
+ var MockedProvider = (function (_super) {
28
28
  tslib.__extends(MockedProvider, _super);
29
29
  function MockedProvider(props) {
30
30
  var _this = _super.call(this, props) || this;
@@ -44,7 +44,9 @@ var MockedProvider = (function (_super) {
44
44
  MockedProvider.prototype.render = function () {
45
45
  var _a = this.props, children = _a.children, childProps = _a.childProps;
46
46
  var client = this.state.client;
47
- return React__namespace.isValidElement(children) ? (React__namespace.createElement(context.ApolloProvider, { client: client }, React__namespace.cloneElement(React__namespace.Children.only(children), tslib.__assign({}, childProps)))) : null;
47
+ return React__namespace.isValidElement(children) ?
48
+ React__namespace.createElement(context.ApolloProvider, { client: client }, React__namespace.cloneElement(React__namespace.Children.only(children), tslib.__assign({}, childProps)))
49
+ : null;
48
50
  };
49
51
  MockedProvider.prototype.componentWillUnmount = function () {
50
52
  this.state.client.stop();
@@ -1,3 +1,4 @@
1
+ // A version of Array.isArray that works better with readonly arrays.
1
2
  export var isArray = Array.isArray;
2
3
  export function isNonEmptyArray(value) {
3
4
  return Array.isArray(value) && value.length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../src/utilities/common/arrays.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,OAAO,GAA4C,KAAK,CAAC,OAAO,CAAC;AAE9E,MAAM,UAAU,eAAe,CAAI,KAAoB;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,CAAC","sourcesContent":["// A version of Array.isArray that works better with readonly arrays.\nexport const isArray: (a: any) => a is any[] | readonly any[] = Array.isArray;\n\nexport function isNonEmptyArray<T>(value?: ArrayLike<T>): value is Array<T> {\n return Array.isArray(value) && value.length > 0;\n}\n"]}
1
+ {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../src/utilities/common/arrays.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,IAAM,OAAO,GAA4C,KAAK,CAAC,OAAO,CAAC;AAE9E,MAAM,UAAU,eAAe,CAAI,KAAoB;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,CAAC","sourcesContent":["// A version of Array.isArray that works better with readonly arrays.\nexport const isArray: (a: any) => a is any[] | readonly any[] = Array.isArray;\n\nexport function isNonEmptyArray<T>(value?: ArrayLike<T>): value is Array<T> {\n return Array.isArray(value) && value.length > 0;\n}\n"]}
@@ -5,6 +5,21 @@ export var canUseWeakSet = typeof WeakSet === "function";
5
5
  export var canUseSymbol = typeof Symbol === "function" && typeof Symbol.for === "function";
6
6
  export var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
7
7
  export var canUseDOM = typeof maybe(function () { return window.document.createElement; }) === "function";
8
- var usingJSDOM = maybe(function () { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false;
8
+ var usingJSDOM =
9
+ // Following advice found in this comment from @domenic (maintainer of jsdom):
10
+ // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327
11
+ //
12
+ // Since we control the version of Jest and jsdom used when running Apollo
13
+ // Client tests, and that version is recent enought to include " jsdom/x.y.z"
14
+ // at the end of the user agent string, I believe this case is all we need to
15
+ // check. Testing for "Node.js" was recommended for backwards compatibility
16
+ // with older version of jsdom, but we don't have that problem.
17
+ maybe(function () { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false;
18
+ // Our tests should all continue to pass if we remove this !usingJSDOM
19
+ // condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,
20
+ // if we allow useLayoutEffect, then useSyncExternalStore generates many
21
+ // warnings about useLayoutEffect doing nothing on the server. While these
22
+ // warnings are harmless, this !usingJSDOM condition seems to be the best way to
23
+ // prevent them (i.e. skipping useLayoutEffect when using jsdom).
9
24
  export var canUseLayoutEffect = canUseDOM && !usingJSDOM;
10
25
  //# sourceMappingURL=canUse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,IAAM,aAAa,GACxB,OAAO,OAAO,KAAK,UAAU;IAC7B,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,KAAK,aAAa,CAAC;AAEnD,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;AAEnE,MAAM,CAAC,IAAM,yBAAyB,GAAG,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC;AAE9E,MAAM,CAAC,IAAM,SAAS,GACpB,OAAO,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,aAAa,EAA7B,CAA6B,CAAC,KAAK,UAAU,CAAC;AAEnE,IAAM,UAAU,GASd,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,IAAI,KAAK,CAAC;AAQlE,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC","sourcesContent":["import { maybe } from \"../globals/index.js\";\n\nexport const canUseWeakMap =\n typeof WeakMap === \"function\" &&\n maybe(() => navigator.product) !== \"ReactNative\";\n\nexport const canUseWeakSet = typeof WeakSet === \"function\";\n\nexport const canUseSymbol =\n typeof Symbol === \"function\" && typeof Symbol.for === \"function\";\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n"]}
1
+ {"version":3,"file":"canUse.js","sourceRoot":"","sources":["../../../src/utilities/common/canUse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,CAAC,IAAM,aAAa,GACxB,OAAO,OAAO,KAAK,UAAU;IAC7B,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,KAAK,aAAa,CAAC;AAEnD,MAAM,CAAC,IAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;AAEnE,MAAM,CAAC,IAAM,yBAAyB,GAAG,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC;AAE9E,MAAM,CAAC,IAAM,SAAS,GACpB,OAAO,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,aAAa,EAA7B,CAA6B,CAAC,KAAK,UAAU,CAAC;AAEnE,IAAM,UAAU;AACd,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,+DAA+D;AAC/D,KAAK,CAAC,cAAM,OAAA,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,IAAI,KAAK,CAAC;AAElE,sEAAsE;AACtE,+EAA+E;AAC/E,wEAAwE;AACxE,0EAA0E;AAC1E,gFAAgF;AAChF,iEAAiE;AACjE,MAAM,CAAC,IAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC","sourcesContent":["import { maybe } from \"../globals/index.js\";\n\nexport const canUseWeakMap =\n typeof WeakMap === \"function\" &&\n maybe(() => navigator.product) !== \"ReactNative\";\n\nexport const canUseWeakSet = typeof WeakSet === \"function\";\n\nexport const canUseSymbol =\n typeof Symbol === \"function\" && typeof Symbol.for === \"function\";\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n"]}
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Like JSON.stringify, but with object keys always sorted in the same order.
3
+ *
4
+ * To achieve performant sorting, this function uses a Map from JSON-serialized
5
+ * arrays of keys (in any order) to sorted arrays of the same keys, with a
6
+ * single sorted array reference shared by all permutations of the keys.
7
+ *
8
+ * As a drawback, this function will add a little bit more memory for every
9
+ * object encountered that has different (more, less, a different order of) keys
10
+ * than in the past.
11
+ *
12
+ * In a typical application, this extra memory usage should not play a
13
+ * significant role, as `canonicalStringify` will be called for only a limited
14
+ * number of object shapes, and the cache will not grow beyond a certain point.
15
+ * But in some edge cases, this could be a problem, so we provide
16
+ * canonicalStringify.reset() as a way of clearing the cache.
17
+ * */
1
18
  export declare const canonicalStringify: ((value: any) => string) & {
2
19
  reset(): void;
3
20
  };
@@ -1,16 +1,49 @@
1
+ /**
2
+ * Like JSON.stringify, but with object keys always sorted in the same order.
3
+ *
4
+ * To achieve performant sorting, this function uses a Map from JSON-serialized
5
+ * arrays of keys (in any order) to sorted arrays of the same keys, with a
6
+ * single sorted array reference shared by all permutations of the keys.
7
+ *
8
+ * As a drawback, this function will add a little bit more memory for every
9
+ * object encountered that has different (more, less, a different order of) keys
10
+ * than in the past.
11
+ *
12
+ * In a typical application, this extra memory usage should not play a
13
+ * significant role, as `canonicalStringify` will be called for only a limited
14
+ * number of object shapes, and the cache will not grow beyond a certain point.
15
+ * But in some edge cases, this could be a problem, so we provide
16
+ * canonicalStringify.reset() as a way of clearing the cache.
17
+ * */
1
18
  export var canonicalStringify = Object.assign(function canonicalStringify(value) {
2
19
  return JSON.stringify(value, stableObjectReplacer);
3
20
  }, {
4
21
  reset: function () {
22
+ // Clearing the sortingMap will reclaim all cached memory, without
23
+ // affecting the logical results of canonicalStringify, but potentially
24
+ // sacrificing performance until the cache is refilled.
5
25
  sortingMap.clear();
6
26
  },
7
27
  });
28
+ // Values are JSON-serialized arrays of object keys (in any order), and values
29
+ // are sorted arrays of the same keys.
8
30
  var sortingMap = new Map();
31
+ // The JSON.stringify function takes an optional second argument called a
32
+ // replacer function. This function is called for each key-value pair in the
33
+ // object being stringified, and its return value is used instead of the
34
+ // original value. If the replacer function returns a new value, that value is
35
+ // stringified as JSON instead of the original value of the property.
36
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter
9
37
  function stableObjectReplacer(key, value) {
10
38
  if (value && typeof value === "object") {
11
39
  var proto = Object.getPrototypeOf(value);
40
+ // We don't want to mess with objects that are not "plain" objects, which
41
+ // means their prototype is either Object.prototype or null. This check also
42
+ // prevents needlessly rearranging the indices of arrays.
12
43
  if (proto === Object.prototype || proto === null) {
13
44
  var keys = Object.keys(value);
45
+ // If keys is already sorted, let JSON.stringify serialize the original
46
+ // value instead of creating a new object with keys in the same order.
14
47
  if (keys.every(everyKeyInOrder))
15
48
  return value;
16
49
  var unsortedKey = JSON.stringify(keys);
@@ -18,11 +51,15 @@ function stableObjectReplacer(key, value) {
18
51
  if (!sortedKeys) {
19
52
  keys.sort();
20
53
  var sortedKey = JSON.stringify(keys);
54
+ // Checking for sortedKey in the sortingMap allows us to share the same
55
+ // sorted array reference for all permutations of the same set of keys.
21
56
  sortedKeys = sortingMap.get(sortedKey) || keys;
22
57
  sortingMap.set(unsortedKey, sortedKeys);
23
58
  sortingMap.set(sortedKey, sortedKeys);
24
59
  }
25
60
  var sortedObject_1 = Object.create(proto);
61
+ // Reassigning the keys in sorted order will cause JSON.stringify to
62
+ // serialize them in sorted order.
26
63
  sortedKeys.forEach(function (key) {
27
64
  sortedObject_1[key] = value[key];
28
65
  });
@@ -31,6 +68,10 @@ function stableObjectReplacer(key, value) {
31
68
  }
32
69
  return value;
33
70
  }
71
+ // Since everything that happens in stableObjectReplacer benefits from being as
72
+ // efficient as possible, we use a static function as the callback for
73
+ // keys.every in order to test if the provided keys are already sorted without
74
+ // allocating extra memory for a callback.
34
75
  function everyKeyInOrder(key, i, keys) {
35
76
  return i === 0 || keys[i - 1] <= key;
36
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalStringify.js","sourceRoot":"","sources":["../../../src/utilities/common/canonicalStringify.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,IAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAC7C,SAAS,kBAAkB,CAAC,KAAU;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACrD,CAAC,EACD;IACE,KAAK;QAIH,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF,CACF,CAAC;AAIF,IAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAQxD,SAAS,oBAAoB,CAAC,GAAW,EAAE,KAAU;IACnD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACtC,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAI3C,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YAChD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAGhC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAGvC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;gBAC/C,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACxC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;aACvC;YACD,IAAM,cAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAG1C,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrB,cAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,OAAO,cAAY,CAAC;SACrB;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,SAAS,eAAe,CACtB,GAAW,EACX,CAAS,EACT,IAAuB;IAEvB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Like JSON.stringify, but with object keys always sorted in the same order.\n *\n * To achieve performant sorting, this function uses a Map from JSON-serialized\n * arrays of keys (in any order) to sorted arrays of the same keys, with a\n * single sorted array reference shared by all permutations of the keys.\n *\n * As a drawback, this function will add a little bit more memory for every\n * object encountered that has different (more, less, a different order of) keys\n * than in the past.\n *\n * In a typical application, this extra memory usage should not play a\n * significant role, as `canonicalStringify` will be called for only a limited\n * number of object shapes, and the cache will not grow beyond a certain point.\n * But in some edge cases, this could be a problem, so we provide\n * canonicalStringify.reset() as a way of clearing the cache.\n * */\nexport const canonicalStringify = Object.assign(\n function canonicalStringify(value: any): string {\n return JSON.stringify(value, stableObjectReplacer);\n },\n {\n reset() {\n // Clearing the sortingMap will reclaim all cached memory, without\n // affecting the logical results of canonicalStringify, but potentially\n // sacrificing performance until the cache is refilled.\n sortingMap.clear();\n },\n }\n);\n\n// Values are JSON-serialized arrays of object keys (in any order), and values\n// are sorted arrays of the same keys.\nconst sortingMap = new Map<string, readonly string[]>();\n\n// The JSON.stringify function takes an optional second argument called a\n// replacer function. This function is called for each key-value pair in the\n// object being stringified, and its return value is used instead of the\n// original value. If the replacer function returns a new value, that value is\n// stringified as JSON instead of the original value of the property.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter\nfunction stableObjectReplacer(key: string, value: any) {\n if (value && typeof value === \"object\") {\n const proto = Object.getPrototypeOf(value);\n // We don't want to mess with objects that are not \"plain\" objects, which\n // means their prototype is either Object.prototype or null. This check also\n // prevents needlessly rearranging the indices of arrays.\n if (proto === Object.prototype || proto === null) {\n const keys = Object.keys(value);\n // If keys is already sorted, let JSON.stringify serialize the original\n // value instead of creating a new object with keys in the same order.\n if (keys.every(everyKeyInOrder)) return value;\n const unsortedKey = JSON.stringify(keys);\n let sortedKeys = sortingMap.get(unsortedKey);\n if (!sortedKeys) {\n keys.sort();\n const sortedKey = JSON.stringify(keys);\n // Checking for sortedKey in the sortingMap allows us to share the same\n // sorted array reference for all permutations of the same set of keys.\n sortedKeys = sortingMap.get(sortedKey) || keys;\n sortingMap.set(unsortedKey, sortedKeys);\n sortingMap.set(sortedKey, sortedKeys);\n }\n const sortedObject = Object.create(proto);\n // Reassigning the keys in sorted order will cause JSON.stringify to\n // serialize them in sorted order.\n sortedKeys.forEach((key) => {\n sortedObject[key] = value[key];\n });\n return sortedObject;\n }\n }\n return value;\n}\n\n// Since everything that happens in stableObjectReplacer benefits from being as\n// efficient as possible, we use a static function as the callback for\n// keys.every in order to test if the provided keys are already sorted without\n// allocating extra memory for a callback.\nfunction everyKeyInOrder(\n key: string,\n i: number,\n keys: readonly string[]\n): boolean {\n return i === 0 || keys[i - 1] <= key;\n}\n"]}
1
+ {"version":3,"file":"canonicalStringify.js","sourceRoot":"","sources":["../../../src/utilities/common/canonicalStringify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;KAgBK;AACL,MAAM,CAAC,IAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAC7C,SAAS,kBAAkB,CAAC,KAAU;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACrD,CAAC,EACD;IACE,KAAK;QACH,kEAAkE;QAClE,uEAAuE;QACvE,uDAAuD;QACvD,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF,CACF,CAAC;AAEF,8EAA8E;AAC9E,sCAAsC;AACtC,IAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAExD,yEAAyE;AACzE,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,qEAAqE;AACrE,yHAAyH;AACzH,SAAS,oBAAoB,CAAC,GAAW,EAAE,KAAU;IACnD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,yEAAyE;QACzE,4EAA4E;QAC5E,yDAAyD;QACzD,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,uEAAuE;YACvE,sEAAsE;YACtE,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvC,uEAAuE;gBACvE,uEAAuE;gBACvE,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;gBAC/C,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACxC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,IAAM,cAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,oEAAoE;YACpE,kCAAkC;YAClC,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrB,cAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,OAAO,cAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,sEAAsE;AACtE,8EAA8E;AAC9E,0CAA0C;AAC1C,SAAS,eAAe,CACtB,GAAW,EACX,CAAS,EACT,IAAuB;IAEvB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AACvC,CAAC","sourcesContent":["/**\n * Like JSON.stringify, but with object keys always sorted in the same order.\n *\n * To achieve performant sorting, this function uses a Map from JSON-serialized\n * arrays of keys (in any order) to sorted arrays of the same keys, with a\n * single sorted array reference shared by all permutations of the keys.\n *\n * As a drawback, this function will add a little bit more memory for every\n * object encountered that has different (more, less, a different order of) keys\n * than in the past.\n *\n * In a typical application, this extra memory usage should not play a\n * significant role, as `canonicalStringify` will be called for only a limited\n * number of object shapes, and the cache will not grow beyond a certain point.\n * But in some edge cases, this could be a problem, so we provide\n * canonicalStringify.reset() as a way of clearing the cache.\n * */\nexport const canonicalStringify = Object.assign(\n function canonicalStringify(value: any): string {\n return JSON.stringify(value, stableObjectReplacer);\n },\n {\n reset() {\n // Clearing the sortingMap will reclaim all cached memory, without\n // affecting the logical results of canonicalStringify, but potentially\n // sacrificing performance until the cache is refilled.\n sortingMap.clear();\n },\n }\n);\n\n// Values are JSON-serialized arrays of object keys (in any order), and values\n// are sorted arrays of the same keys.\nconst sortingMap = new Map<string, readonly string[]>();\n\n// The JSON.stringify function takes an optional second argument called a\n// replacer function. This function is called for each key-value pair in the\n// object being stringified, and its return value is used instead of the\n// original value. If the replacer function returns a new value, that value is\n// stringified as JSON instead of the original value of the property.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter\nfunction stableObjectReplacer(key: string, value: any) {\n if (value && typeof value === \"object\") {\n const proto = Object.getPrototypeOf(value);\n // We don't want to mess with objects that are not \"plain\" objects, which\n // means their prototype is either Object.prototype or null. This check also\n // prevents needlessly rearranging the indices of arrays.\n if (proto === Object.prototype || proto === null) {\n const keys = Object.keys(value);\n // If keys is already sorted, let JSON.stringify serialize the original\n // value instead of creating a new object with keys in the same order.\n if (keys.every(everyKeyInOrder)) return value;\n const unsortedKey = JSON.stringify(keys);\n let sortedKeys = sortingMap.get(unsortedKey);\n if (!sortedKeys) {\n keys.sort();\n const sortedKey = JSON.stringify(keys);\n // Checking for sortedKey in the sortingMap allows us to share the same\n // sorted array reference for all permutations of the same set of keys.\n sortedKeys = sortingMap.get(sortedKey) || keys;\n sortingMap.set(unsortedKey, sortedKeys);\n sortingMap.set(sortedKey, sortedKeys);\n }\n const sortedObject = Object.create(proto);\n // Reassigning the keys in sorted order will cause JSON.stringify to\n // serialize them in sorted order.\n sortedKeys.forEach((key) => {\n sortedObject[key] = value[key];\n });\n return sortedObject;\n }\n }\n return value;\n}\n\n// Since everything that happens in stableObjectReplacer benefits from being as\n// efficient as possible, we use a static function as the callback for\n// keys.every in order to test if the provided keys are already sorted without\n// allocating extra memory for a callback.\nfunction everyKeyInOrder(\n key: string,\n i: number,\n keys: readonly string[]\n): boolean {\n return i === 0 || keys[i - 1] <= key;\n}\n"]}
@@ -1,2 +1,5 @@
1
+ /**
2
+ * Deeply clones a value to create a new instance.
3
+ */
1
4
  export declare function cloneDeep<T>(value: T): T;
2
5
  //# sourceMappingURL=cloneDeep.d.ts.map
@@ -1,4 +1,7 @@
1
1
  var toString = Object.prototype.toString;
2
+ /**
3
+ * Deeply clones a value to create a new instance.
4
+ */
2
5
  export function cloneDeep(value) {
3
6
  return cloneDeepHelper(value);
4
7
  }
@@ -19,6 +22,8 @@ function cloneDeepHelper(val, seen) {
19
22
  seen = seen || new Map();
20
23
  if (seen.has(val))
21
24
  return seen.get(val);
25
+ // High fidelity polyfills of Object.create and Object.getPrototypeOf are
26
+ // possible in all JS environments, so we will assume they exist/work.
22
27
  var copy_2 = Object.create(Object.getPrototypeOf(val));
23
28
  seen.set(val, copy_2);
24
29
  Object.keys(val).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"file":"cloneDeep.js","sourceRoot":"","sources":["../../../src/utilities/common/cloneDeep.ts"],"names":[],"mappings":"AAAQ,IAAA,QAAQ,GAAK,MAAM,CAAC,SAAS,SAArB,CAAsB;AAKtC,MAAM,UAAU,SAAS,CAAI,KAAQ;IACnC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAI,GAAM,EAAE,IAAoB;IACtD,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC1B,KAAK,gBAAgB,CAAC,CAAC;YACrB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAM,MAAI,GAAe,GAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAI,CAAC,CAAC;YACpB,MAAI,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;gBAC7B,MAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO,MAAI,CAAC;SACb;QAED,KAAK,iBAAiB,CAAC,CAAC;YACtB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAGxC,IAAM,MAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAI,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACtD,MAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAE,GAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,OAAO,MAAI,CAAC;SACb;QAED;YACE,OAAO,GAAG,CAAC;KACd;AACH,CAAC","sourcesContent":["const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep<T>(value: T): T {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper<T>(val: T, seen?: Map<any, any>): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val as T & Record<string, any>).forEach((key) => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n"]}
1
+ {"version":3,"file":"cloneDeep.js","sourceRoot":"","sources":["../../../src/utilities/common/cloneDeep.ts"],"names":[],"mappings":"AAAQ,IAAA,QAAQ,GAAK,MAAM,CAAC,SAAS,SAArB,CAAsB;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,KAAQ;IACnC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAI,GAAM,EAAE,IAAoB;IACtD,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAM,MAAI,GAAe,GAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAI,CAAC,CAAC;YACpB,MAAI,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;gBAC7B,MAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO,MAAI,CAAC;QACd,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,yEAAyE;YACzE,sEAAsE;YACtE,IAAM,MAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAI,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACtD,MAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAE,GAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,OAAO,MAAI,CAAC;QACd,CAAC;QAED;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep<T>(value: T): T {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper<T>(val: T, seen?: Map<any, any>): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val as T & Record<string, any>).forEach((key) => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n"]}
@@ -1,3 +1,7 @@
1
1
  import type { TupleToIntersection } from "./mergeDeep.js";
2
+ /**
3
+ * Merges the provided objects shallowly and removes
4
+ * all properties with an `undefined` value
5
+ */
2
6
  export declare function compact<TArgs extends any[]>(...objects: TArgs): TupleToIntersection<TArgs>;
3
7
  //# sourceMappingURL=compact.d.ts.map
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Merges the provided objects shallowly and removes
3
+ * all properties with an `undefined` value
4
+ */
1
5
  export function compact() {
2
6
  var objects = [];
3
7
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/utilities/common/compact.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,OAAO;IACrB,iBAAiB;SAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;QAAjB,4BAAiB;;IAEjB,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;QAClB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC3B,IAAM,KAAK,GAAI,GAAW,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;gBACpB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { TupleToIntersection } from \"./mergeDeep.js\";\n\n/**\n * Merges the provided objects shallowly and removes\n * all properties with an `undefined` value\n */\nexport function compact<TArgs extends any[]>(\n ...objects: TArgs\n): TupleToIntersection<TArgs> {\n const result = Object.create(null);\n\n objects.forEach((obj) => {\n if (!obj) return;\n Object.keys(obj).forEach((key) => {\n const value = (obj as any)[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n\n return result;\n}\n"]}
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/utilities/common/compact.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,iBAAiB;SAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;QAAjB,4BAAiB;;IAEjB,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;QAClB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC3B,IAAM,KAAK,GAAI,GAAW,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { TupleToIntersection } from \"./mergeDeep.js\";\n\n/**\n * Merges the provided objects shallowly and removes\n * all properties with an `undefined` value\n */\nexport function compact<TArgs extends any[]>(\n ...objects: TArgs\n): TupleToIntersection<TArgs> {\n const result = Object.create(null);\n\n objects.forEach((obj) => {\n if (!obj) return;\n Object.keys(obj).forEach((key) => {\n const value = (obj as any)[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n\n return result;\n}\n"]}
@@ -5,9 +5,7 @@ export function graphQLResultHasError(result) {
5
5
  return isNonEmptyArray(errors);
6
6
  }
7
7
  export function getGraphQLErrorsFromResult(result) {
8
- var graphQLErrors = isNonEmptyArray(result.errors)
9
- ? result.errors.slice(0)
10
- : [];
8
+ var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];
11
9
  if (isExecutionPatchIncrementalResult(result) &&
12
10
  isNonEmptyArray(result.incremental)) {
13
11
  result.incremental.forEach(function (incrementalResult) {
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,UAAU,qBAAqB,CAAI,MAAsB;IAC7D,IAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAI,MAAsB;IAClE,IAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,EAAE,CAAC;IAEP,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC;QACA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,iBAAiB;YAC3C,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAC5B,aAAa,CAAC,IAAI,OAAlB,aAAa,EAAS,iBAAiB,CAAC,MAAM,EAAE;aACjD;QACH,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { FetchResult } from \"../../link/core/index.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\n\nexport function graphQLResultHasError<T>(result: FetchResult<T>): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult<T>(result: FetchResult<T>) {\n const graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n"]}
1
+ {"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../../src/utilities/common/errorHandling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,UAAU,qBAAqB,CAAI,MAAsB;IAC7D,IAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAI,MAAsB;IAClE,IAAM,aAAa,GACjB,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,iBAAiB;YAC3C,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC7B,aAAa,CAAC,IAAI,OAAlB,aAAa,EAAS,iBAAiB,CAAC,MAAM,EAAE;YAClD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { FetchResult } from \"../../link/core/index.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\n\nexport function graphQLResultHasError<T>(result: FetchResult<T>): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult<T>(result: FetchResult<T>) {\n const graphQLErrors =\n isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n"]}
@@ -11,6 +11,9 @@ export function isExecutionPatchResult(value) {
11
11
  return (isExecutionPatchIncrementalResult(value) ||
12
12
  isExecutionPatchInitialResult(value));
13
13
  }
14
+ // This function detects an Apollo payload result before it is transformed
15
+ // into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult
16
+ // once it leaves the link chain.
14
17
  export function isApolloPayloadResult(value) {
15
18
  return isNonNullObject(value) && "payload" in value;
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"incrementalResult.js","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,iCAAiC,CAC/C,KAAqB;IAErB,OAAO,aAAa,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAqB;IAErB,OAAO,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAqB;IAErB,OAAO,CACL,iCAAiC,CAAC,KAAK,CAAC;QACxC,6BAA6B,CAAC,KAAK,CAAC,CACrC,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,qBAAqB,CACnC,KAAc;IAEd,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAiB,EACjB,MAAmC;IAEnC,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC;QACA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,EAAc;gBAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;YACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;gBACzC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAM,QAAM,GAAiC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,QAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,IAAI,GAAG,QAAqB,CAAC;aAC9B;YACD,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,UAAmB,CAAC;AAC7B,CAAC","sourcesContent":["import type {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n ApolloPayloadResult,\n FetchResult,\n} from \"../../link/core/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\n\nexport function isExecutionPatchIncrementalResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchInitialResult<T> {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchResult<T> {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(\n value: unknown\n): value is ApolloPayloadResult {\n return isNonNullObject(value) && \"payload\" in value;\n}\n\nexport function mergeIncrementalData<TData extends object>(\n prevResult: TData,\n result: ExecutionPatchResult<TData>\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\n"]}
1
+ {"version":3,"file":"incrementalResult.js","sourceRoot":"","sources":["../../../src/utilities/common/incrementalResult.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,iCAAiC,CAC/C,KAAqB;IAErB,OAAO,aAAa,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAqB;IAErB,OAAO,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAqB;IAErB,OAAO,CACL,iCAAiC,CAAC,KAAK,CAAC;QACxC,6BAA6B,CAAC,KAAK,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,iCAAiC;AACjC,MAAM,UAAU,qBAAqB,CACnC,KAAc;IAEd,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAiB,EACjB,MAAmC;IAEnC,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,IACE,iCAAiC,CAAC,MAAM,CAAC;QACzC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,EACnC,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,EAAc;gBAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;YACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAM,QAAM,GAAiC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,QAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACnB,IAAI,GAAG,QAAqB,CAAC;YAC/B,CAAC;YACD,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAmB,CAAC;AAC7B,CAAC","sourcesContent":["import type {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n ApolloPayloadResult,\n FetchResult,\n} from \"../../link/core/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\n\nexport function isExecutionPatchIncrementalResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchInitialResult<T> {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchResult<T> {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(\n value: unknown\n): value is ApolloPayloadResult {\n return isNonNullObject(value) && \"payload\" in value;\n}\n\nexport function mergeIncrementalData<TData extends object>(\n prevResult: TData,\n result: ExecutionPatchResult<TData>\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  var prefixCounts = new Map();
2
+ // These IDs won't be globally unique, but they will be unique within this
3
+ // process, thanks to the counter, and unguessable thanks to the random suffix.
2
4
  export function makeUniqueId(prefix) {
3
5
  var count = prefixCounts.get(prefix) || 1;
4
6
  prefixCounts.set(prefix, count + 1);