@apollo/client 4.0.9 → 4.1.2

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 (370) hide show
  1. package/CHANGELOG.md +445 -0
  2. package/__cjs/cache/core/cache.cjs +217 -52
  3. package/__cjs/cache/core/cache.cjs.map +1 -1
  4. package/__cjs/cache/core/cache.d.cts +141 -25
  5. package/__cjs/cache/core/types/Cache.d.cts +78 -17
  6. package/__cjs/cache/index.cjs.map +1 -1
  7. package/__cjs/cache/index.d.cts +1 -1
  8. package/__cjs/cache/inmemory/entityStore.cjs +6 -4
  9. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  10. package/__cjs/cache/inmemory/fragmentRegistry.cjs +5 -0
  11. package/__cjs/cache/inmemory/fragmentRegistry.cjs.map +1 -1
  12. package/__cjs/cache/inmemory/helpers.d.cts +1 -1
  13. package/__cjs/cache/inmemory/inMemoryCache.cjs +62 -1
  14. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  15. package/__cjs/cache/inmemory/inMemoryCache.d.cts +48 -0
  16. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  17. package/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
  18. package/__cjs/cache/inmemory/policies.cjs +76 -17
  19. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  20. package/__cjs/cache/inmemory/policies.d.cts +33 -6
  21. package/__cjs/cache/inmemory/readFromStore.cjs +9 -8
  22. package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
  23. package/__cjs/cache/inmemory/types.d.cts +3 -0
  24. package/__cjs/cache/inmemory/writeToStore.cjs +25 -10
  25. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  26. package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
  27. package/__cjs/core/ApolloClient.cjs +31 -49
  28. package/__cjs/core/ApolloClient.cjs.map +1 -1
  29. package/__cjs/core/ApolloClient.d.cts +159 -18
  30. package/__cjs/core/ObservableQuery.cjs +178 -131
  31. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  32. package/__cjs/core/ObservableQuery.d.cts +2 -0
  33. package/__cjs/core/QueryInfo.cjs +9 -1
  34. package/__cjs/core/QueryInfo.cjs.map +1 -1
  35. package/__cjs/core/QueryInfo.d.cts +4 -3
  36. package/__cjs/core/QueryManager.cjs +47 -25
  37. package/__cjs/core/QueryManager.cjs.map +1 -1
  38. package/__cjs/core/QueryManager.d.cts +19 -2
  39. package/__cjs/incremental/handlers/defer20220824.cjs +44 -19
  40. package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
  41. package/__cjs/incremental/handlers/defer20220824.d.cts +15 -7
  42. package/__cjs/incremental/handlers/graphql17Alpha9.cjs +227 -0
  43. package/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -0
  44. package/__cjs/incremental/handlers/graphql17Alpha9.d.cts +98 -0
  45. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  46. package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -1
  47. package/__cjs/incremental/index.cjs +3 -1
  48. package/__cjs/incremental/index.cjs.map +1 -1
  49. package/__cjs/incremental/index.d.cts +1 -0
  50. package/__cjs/incremental/types.d.cts +9 -0
  51. package/__cjs/invariantErrorCodes.cjs +83 -61
  52. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs +13 -1
  53. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
  54. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +1 -1
  55. package/__cjs/link/core/ApolloLink.cjs +3 -3
  56. package/__cjs/link/error/index.cjs +1 -1
  57. package/__cjs/link/error/index.cjs.map +1 -1
  58. package/__cjs/link/error/index.d.cts +1 -1
  59. package/__cjs/link/http/checkFetcher.cjs +1 -1
  60. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +2 -2
  61. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  62. package/__cjs/link/persisted-queries/index.cjs +2 -2
  63. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs +51 -50
  64. package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs.map +1 -1
  65. package/__cjs/link/remove-typename/removeTypenameFromVariables.d.cts +3 -0
  66. package/__cjs/link/schema/index.cjs +1 -1
  67. package/__cjs/link/schema/index.cjs.map +1 -1
  68. package/__cjs/link/schema/index.d.cts +1 -1
  69. package/__cjs/link/ws/index.cjs +1 -1
  70. package/__cjs/local-state/LocalState.cjs +29 -15
  71. package/__cjs/local-state/LocalState.cjs.map +1 -1
  72. package/__cjs/local-state/LocalState.d.cts +3 -2
  73. package/__cjs/masking/types.d.cts +2 -1
  74. package/__cjs/react/hooks/internal/useDeepMemo.cjs +2 -0
  75. package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
  76. package/__cjs/react/hooks/useApolloClient.cjs +1 -1
  77. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  78. package/__cjs/react/hooks/useApolloClient.d.cts +1 -1
  79. package/__cjs/react/hooks/useBackgroundQuery.cjs +1 -3
  80. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  81. package/__cjs/react/hooks/useFragment.cjs +38 -87
  82. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  83. package/__cjs/react/hooks/useFragment.d.cts +65 -6
  84. package/__cjs/react/hooks/useLazyQuery.cjs +3 -0
  85. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  86. package/__cjs/react/hooks/useMutation.cjs +7 -1
  87. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  88. package/__cjs/react/hooks/useMutation.d.cts +13 -1
  89. package/__cjs/react/hooks/useQuery.cjs +8 -8
  90. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  91. package/__cjs/react/hooks/useQuery.d.cts +1 -1
  92. package/__cjs/react/hooks/useQueryRefHandlers.cjs +1 -3
  93. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  94. package/__cjs/react/hooks/useReadQuery.cjs +1 -3
  95. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  96. package/__cjs/react/hooks/useSubscription.cjs +1 -1
  97. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  98. package/__cjs/react/hooks/useSuspenseFragment.cjs +16 -16
  99. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  100. package/__cjs/react/hooks/useSuspenseFragment.d.cts +33 -7
  101. package/__cjs/react/hooks/useSuspenseQuery.cjs +6 -4
  102. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  103. package/__cjs/react/internal/cache/FragmentReference.cjs +3 -22
  104. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  105. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -4
  106. package/__cjs/react/internal/cache/QueryReference.cjs +16 -0
  107. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  108. package/__cjs/react/internal/cache/QueryReference.d.cts +5 -0
  109. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  110. package/__cjs/react/internal/cache/SuspenseCache.d.cts +1 -1
  111. package/__cjs/react/internal/cache/types.d.cts +2 -2
  112. package/__cjs/react/query-preloader/createQueryPreloader.cjs +41 -1
  113. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  114. package/__cjs/react/ssr/prerenderStatic.cjs +17 -4
  115. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  116. package/__cjs/react/ssr/prerenderStatic.d.cts +23 -4
  117. package/__cjs/react/ssr/useSSRQuery.cjs +7 -4
  118. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  119. package/__cjs/react/ssr/useSSRQuery.d.cts +2 -1
  120. package/__cjs/utilities/DeepPartial.cjs.map +1 -1
  121. package/__cjs/utilities/DeepPartial.d.cts +1 -1
  122. package/__cjs/utilities/internal/DeepMerger.cjs +36 -4
  123. package/__cjs/utilities/internal/DeepMerger.cjs.map +1 -1
  124. package/__cjs/utilities/internal/DeepMerger.d.cts +20 -4
  125. package/__cjs/utilities/internal/bindCacheKey.cjs +21 -0
  126. package/__cjs/utilities/internal/bindCacheKey.cjs.map +1 -0
  127. package/__cjs/utilities/internal/bindCacheKey.d.cts +15 -0
  128. package/__cjs/utilities/internal/checkDocument.cjs +2 -4
  129. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  130. package/__cjs/utilities/internal/combineLatestBatched.cjs +71 -0
  131. package/__cjs/utilities/internal/combineLatestBatched.cjs.map +1 -0
  132. package/__cjs/utilities/internal/combineLatestBatched.d.cts +14 -0
  133. package/__cjs/utilities/internal/compact.cjs +1 -1
  134. package/__cjs/utilities/internal/compact.cjs.map +1 -1
  135. package/__cjs/utilities/internal/constants.cjs +26 -0
  136. package/__cjs/utilities/internal/constants.cjs.map +1 -0
  137. package/__cjs/utilities/internal/constants.d.cts +23 -0
  138. package/__cjs/utilities/internal/getStoreKeyName.cjs +1 -0
  139. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  140. package/__cjs/utilities/internal/index.cjs +12 -2
  141. package/__cjs/utilities/internal/index.cjs.map +1 -1
  142. package/__cjs/utilities/internal/index.d.cts +6 -0
  143. package/__cjs/utilities/internal/mapObservableFragment.cjs +27 -0
  144. package/__cjs/utilities/internal/mapObservableFragment.cjs.map +1 -0
  145. package/__cjs/utilities/internal/mapObservableFragment.d.cts +3 -0
  146. package/__cjs/utilities/internal/memoize.cjs +31 -0
  147. package/__cjs/utilities/internal/memoize.cjs.map +1 -0
  148. package/__cjs/utilities/internal/memoize.d.cts +8 -0
  149. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs +61 -0
  150. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs.map +1 -0
  151. package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.d.cts +11 -0
  152. package/__cjs/utilities/internal/ponyfills/index.cjs +6 -0
  153. package/__cjs/utilities/internal/ponyfills/index.cjs.map +1 -0
  154. package/__cjs/utilities/internal/ponyfills/index.d.cts +3 -0
  155. package/__cjs/utilities/internal/ponyfills/index.react-native.cjs +6 -0
  156. package/__cjs/utilities/internal/ponyfills/index.react-native.cjs.map +1 -0
  157. package/__cjs/utilities/internal/ponyfills/index.react-native.d.cts +2 -0
  158. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs +3 -0
  159. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs.map +1 -0
  160. package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.d.cts +12 -0
  161. package/__cjs/utilities/internal/types/StreamInfoTrie.cjs +3 -0
  162. package/__cjs/utilities/internal/types/StreamInfoTrie.cjs.map +1 -0
  163. package/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +16 -0
  164. package/__cjs/version.cjs +1 -1
  165. package/cache/core/cache.d.ts +141 -25
  166. package/cache/core/cache.js +220 -55
  167. package/cache/core/cache.js.map +1 -1
  168. package/cache/core/types/Cache.d.ts +78 -17
  169. package/cache/core/types/Cache.js.map +1 -1
  170. package/cache/index.d.ts +1 -1
  171. package/cache/index.js.map +1 -1
  172. package/cache/inmemory/entityStore.js +6 -4
  173. package/cache/inmemory/entityStore.js.map +1 -1
  174. package/cache/inmemory/fragmentRegistry.js +6 -1
  175. package/cache/inmemory/fragmentRegistry.js.map +1 -1
  176. package/cache/inmemory/helpers.d.ts +1 -1
  177. package/cache/inmemory/inMemoryCache.d.ts +48 -0
  178. package/cache/inmemory/inMemoryCache.js +62 -1
  179. package/cache/inmemory/inMemoryCache.js.map +1 -1
  180. package/cache/inmemory/key-extractor.js +1 -1
  181. package/cache/inmemory/key-extractor.js.map +1 -1
  182. package/cache/inmemory/policies.d.ts +33 -6
  183. package/cache/inmemory/policies.js +65 -7
  184. package/cache/inmemory/policies.js.map +1 -1
  185. package/cache/inmemory/readFromStore.js +9 -8
  186. package/cache/inmemory/readFromStore.js.map +1 -1
  187. package/cache/inmemory/types.d.ts +3 -0
  188. package/cache/inmemory/types.js.map +1 -1
  189. package/cache/inmemory/writeToStore.d.ts +1 -1
  190. package/cache/inmemory/writeToStore.js +27 -12
  191. package/cache/inmemory/writeToStore.js.map +1 -1
  192. package/core/ApolloClient.d.ts +159 -18
  193. package/core/ApolloClient.js +32 -50
  194. package/core/ApolloClient.js.map +1 -1
  195. package/core/ObservableQuery.d.ts +2 -0
  196. package/core/ObservableQuery.js +181 -134
  197. package/core/ObservableQuery.js.map +1 -1
  198. package/core/QueryInfo.d.ts +4 -3
  199. package/core/QueryInfo.js +10 -2
  200. package/core/QueryInfo.js.map +1 -1
  201. package/core/QueryManager.d.ts +19 -2
  202. package/core/QueryManager.js +48 -26
  203. package/core/QueryManager.js.map +1 -1
  204. package/incremental/handlers/defer20220824.d.ts +15 -7
  205. package/incremental/handlers/defer20220824.js +44 -19
  206. package/incremental/handlers/defer20220824.js.map +1 -1
  207. package/incremental/handlers/graphql17Alpha9.d.ts +98 -0
  208. package/incremental/handlers/graphql17Alpha9.js +223 -0
  209. package/incremental/handlers/graphql17Alpha9.js.map +1 -0
  210. package/incremental/handlers/notImplemented.js +1 -1
  211. package/incremental/handlers/notImplemented.js.map +1 -1
  212. package/incremental/index.d.ts +1 -0
  213. package/incremental/index.js +3 -2
  214. package/incremental/index.js.map +1 -1
  215. package/incremental/types.d.ts +9 -0
  216. package/incremental/types.js.map +1 -1
  217. package/invariantErrorCodes.js +83 -61
  218. package/legacyEntryPoints/utilities/internal/ponyfills/index.d.ts +1 -0
  219. package/legacyEntryPoints/utilities/internal/ponyfills/index.js +1 -0
  220. package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.cjs +1 -0
  221. package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.d.cts +1 -0
  222. package/link/client-awareness/ClientAwarenessLink.d.ts +1 -1
  223. package/link/client-awareness/ClientAwarenessLink.js +13 -1
  224. package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
  225. package/link/core/ApolloLink.js +3 -3
  226. package/link/error/index.d.ts +1 -1
  227. package/link/error/index.js +1 -1
  228. package/link/error/index.js.map +1 -1
  229. package/link/http/checkFetcher.js +1 -1
  230. package/link/http/parseAndCheckHttpResponse.js +2 -2
  231. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  232. package/link/persisted-queries/index.js +2 -2
  233. package/link/remove-typename/removeTypenameFromVariables.d.ts +3 -0
  234. package/link/remove-typename/removeTypenameFromVariables.js +51 -50
  235. package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
  236. package/link/schema/index.d.ts +1 -1
  237. package/link/schema/index.js +1 -1
  238. package/link/schema/index.js.map +1 -1
  239. package/link/ws/index.js +1 -1
  240. package/local-state/LocalState.d.ts +3 -2
  241. package/local-state/LocalState.js +29 -15
  242. package/local-state/LocalState.js.map +1 -1
  243. package/masking/types.d.ts +2 -1
  244. package/masking/types.js.map +1 -1
  245. package/package.json +15 -1
  246. package/react/hooks/internal/useDeepMemo.js +2 -0
  247. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  248. package/react/hooks/useApolloClient.d.ts +1 -1
  249. package/react/hooks/useApolloClient.js +1 -1
  250. package/react/hooks/useApolloClient.js.map +1 -1
  251. package/react/hooks/useBackgroundQuery.js +1 -3
  252. package/react/hooks/useBackgroundQuery.js.map +1 -1
  253. package/react/hooks/useFragment.d.ts +65 -6
  254. package/react/hooks/useFragment.js +38 -87
  255. package/react/hooks/useFragment.js.map +1 -1
  256. package/react/hooks/useLazyQuery.js +4 -1
  257. package/react/hooks/useLazyQuery.js.map +1 -1
  258. package/react/hooks/useMutation.d.ts +13 -1
  259. package/react/hooks/useMutation.js +7 -1
  260. package/react/hooks/useMutation.js.map +1 -1
  261. package/react/hooks/useQuery.js +9 -9
  262. package/react/hooks/useQuery.js.map +1 -1
  263. package/react/hooks/useQueryRefHandlers.js +1 -3
  264. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  265. package/react/hooks/useReadQuery.js +1 -3
  266. package/react/hooks/useReadQuery.js.map +1 -1
  267. package/react/hooks/useSubscription.js +1 -1
  268. package/react/hooks/useSubscription.js.map +1 -1
  269. package/react/hooks/useSuspenseFragment.d.ts +33 -7
  270. package/react/hooks/useSuspenseFragment.js +17 -17
  271. package/react/hooks/useSuspenseFragment.js.map +1 -1
  272. package/react/hooks/useSuspenseQuery.js +6 -4
  273. package/react/hooks/useSuspenseQuery.js.map +1 -1
  274. package/react/hooks-compiled/internal/useDeepMemo.js +2 -0
  275. package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
  276. package/react/hooks-compiled/internal/useSuspenseHookCacheKey.js +0 -2
  277. package/react/hooks-compiled/internal/useSuspenseHookCacheKey.js.map +1 -1
  278. package/react/hooks-compiled/useApolloClient.d.ts +1 -1
  279. package/react/hooks-compiled/useApolloClient.js +1 -1
  280. package/react/hooks-compiled/useApolloClient.js.map +1 -1
  281. package/react/hooks-compiled/useBackgroundQuery.js +1 -3
  282. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  283. package/react/hooks-compiled/useFragment.d.ts +65 -6
  284. package/react/hooks-compiled/useFragment.js +110 -88
  285. package/react/hooks-compiled/useFragment.js.map +1 -1
  286. package/react/hooks-compiled/useLazyQuery.js +4 -1
  287. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  288. package/react/hooks-compiled/useLoadableQuery.js +69 -75
  289. package/react/hooks-compiled/useMutation.d.ts +13 -1
  290. package/react/hooks-compiled/useMutation.js +5 -13
  291. package/react/hooks-compiled/useMutation.js.map +1 -1
  292. package/react/hooks-compiled/useQuery.js +53 -61
  293. package/react/hooks-compiled/useQuery.js.map +1 -1
  294. package/react/hooks-compiled/useQueryRefHandlers.js +1 -5
  295. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  296. package/react/hooks-compiled/useReadQuery.js +77 -14
  297. package/react/hooks-compiled/useReadQuery.js.map +1 -1
  298. package/react/hooks-compiled/useSubscription.js +237 -93
  299. package/react/hooks-compiled/useSubscription.js.map +1 -1
  300. package/react/hooks-compiled/useSuspenseFragment.d.ts +33 -7
  301. package/react/hooks-compiled/useSuspenseFragment.js +17 -17
  302. package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  303. package/react/hooks-compiled/useSuspenseQuery.js +7 -9
  304. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  305. package/react/index.compiled.d.ts +1 -1
  306. package/react/index.compiled.js +1 -1
  307. package/react/index.compiled.js.map +1 -1
  308. package/react/internal/cache/FragmentReference.d.ts +2 -4
  309. package/react/internal/cache/FragmentReference.js +3 -22
  310. package/react/internal/cache/FragmentReference.js.map +1 -1
  311. package/react/internal/cache/QueryReference.d.ts +5 -0
  312. package/react/internal/cache/QueryReference.js +16 -0
  313. package/react/internal/cache/QueryReference.js.map +1 -1
  314. package/react/internal/cache/SuspenseCache.d.ts +1 -1
  315. package/react/internal/cache/SuspenseCache.js.map +1 -1
  316. package/react/internal/cache/types.d.ts +2 -2
  317. package/react/internal/cache/types.js.map +1 -1
  318. package/react/query-preloader/createQueryPreloader.js +41 -1
  319. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  320. package/react/ssr/prerenderStatic.d.ts +24 -5
  321. package/react/ssr/prerenderStatic.js +17 -4
  322. package/react/ssr/prerenderStatic.js.map +1 -1
  323. package/react/ssr/useSSRQuery.d.ts +2 -1
  324. package/react/ssr/useSSRQuery.js +8 -5
  325. package/react/ssr/useSSRQuery.js.map +1 -1
  326. package/utilities/DeepPartial.d.ts +1 -1
  327. package/utilities/DeepPartial.js.map +1 -1
  328. package/utilities/internal/DeepMerger.d.ts +20 -4
  329. package/utilities/internal/DeepMerger.js +36 -4
  330. package/utilities/internal/DeepMerger.js.map +1 -1
  331. package/utilities/internal/bindCacheKey.d.ts +15 -0
  332. package/utilities/internal/bindCacheKey.js +18 -0
  333. package/utilities/internal/bindCacheKey.js.map +1 -0
  334. package/utilities/internal/checkDocument.js +2 -4
  335. package/utilities/internal/checkDocument.js.map +1 -1
  336. package/utilities/internal/combineLatestBatched.d.ts +14 -0
  337. package/utilities/internal/combineLatestBatched.js +68 -0
  338. package/utilities/internal/combineLatestBatched.js.map +1 -0
  339. package/utilities/internal/compact.js +1 -1
  340. package/utilities/internal/compact.js.map +1 -1
  341. package/utilities/internal/constants.d.ts +23 -0
  342. package/utilities/internal/constants.js +23 -0
  343. package/utilities/internal/constants.js.map +1 -0
  344. package/utilities/internal/getStoreKeyName.js +1 -0
  345. package/utilities/internal/getStoreKeyName.js.map +1 -1
  346. package/utilities/internal/index.d.ts +6 -0
  347. package/utilities/internal/index.js +4 -0
  348. package/utilities/internal/index.js.map +1 -1
  349. package/utilities/internal/mapObservableFragment.d.ts +3 -0
  350. package/utilities/internal/mapObservableFragment.js +24 -0
  351. package/utilities/internal/mapObservableFragment.js.map +1 -0
  352. package/utilities/internal/memoize.d.ts +8 -0
  353. package/utilities/internal/memoize.js +28 -0
  354. package/utilities/internal/memoize.js.map +1 -0
  355. package/utilities/internal/ponyfills/FinalizationRegistry.d.ts +11 -0
  356. package/utilities/internal/ponyfills/FinalizationRegistry.js +57 -0
  357. package/utilities/internal/ponyfills/FinalizationRegistry.js.map +1 -0
  358. package/utilities/internal/ponyfills/index.d.ts +3 -0
  359. package/utilities/internal/ponyfills/index.js +3 -0
  360. package/utilities/internal/ponyfills/index.js.map +1 -0
  361. package/utilities/internal/ponyfills/index.react-native.d.ts +2 -0
  362. package/utilities/internal/ponyfills/index.react-native.js +2 -0
  363. package/utilities/internal/ponyfills/index.react-native.js.map +1 -0
  364. package/utilities/internal/types/ExtensionsWithStreamDetails.d.ts +12 -0
  365. package/utilities/internal/types/ExtensionsWithStreamDetails.js +2 -0
  366. package/utilities/internal/types/ExtensionsWithStreamDetails.js.map +1 -0
  367. package/utilities/internal/types/StreamInfoTrie.d.ts +16 -0
  368. package/utilities/internal/types/StreamInfoTrie.js +2 -0
  369. package/utilities/internal/types/StreamInfoTrie.js.map +1 -0
  370. package/version.js +1 -1
@@ -46,16 +46,21 @@ class FragmentRegistry {
46
46
  resetCaches() {
47
47
  const proto = FragmentRegistry.prototype;
48
48
  this.invalidate = (this.lookup = (0, optimism_1.wrap)(proto.lookup.bind(this), {
49
+ // This is intentionally an identity function - a string cannot be keyed weakly.
50
+ // This is not a memory leak, as lifetime is bound to the `FragmentRegistry` instance,
51
+ // and max size is configurable.
49
52
  makeCacheKey: (arg) => arg,
50
53
  max: utilities_1.cacheSizes["fragmentRegistry.lookup"] ||
51
54
  1000 /* defaultCacheSizes["fragmentRegistry.lookup"] */,
52
55
  })).dirty; // This dirty function is bound to the wrapped lookup method.
53
56
  this.transform = (0, optimism_1.wrap)(proto.transform.bind(this), {
57
+ makeCacheKey: (0, internal_1.bindCacheKey)(this),
54
58
  cache: caches_1.WeakCache,
55
59
  max: utilities_1.cacheSizes["fragmentRegistry.transform"] ||
56
60
  2000 /* defaultCacheSizes["fragmentRegistry.transform"] */,
57
61
  });
58
62
  this.findFragmentSpreads = (0, optimism_1.wrap)(proto.findFragmentSpreads.bind(this), {
63
+ makeCacheKey: (0, internal_1.bindCacheKey)(this),
59
64
  cache: caches_1.WeakCache,
60
65
  max: utilities_1.cacheSizes["fragmentRegistry.findFragmentSpreads"] ||
61
66
  4000 /* defaultCacheSizes["fragmentRegistry.findFragmentSpreads"] */,
@@ -1 +1 @@
1
- {"version":3,"file":"fragmentRegistry.cjs","sources":["../../../../src/cache/inmemory/fragmentRegistry.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n} from \"graphql\";\nimport { visit } from \"graphql\";\nimport { wrap } from \"optimism\";\n\nimport { cacheSizes } from \"@apollo/client/utilities\";\nimport type { FragmentMap } from \"@apollo/client/utilities/internal\";\nimport { getFragmentDefinitions } from \"@apollo/client/utilities/internal\";\n\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\nexport interface FragmentRegistryAPI {\n register(...fragments: DocumentNode[]): this;\n lookup(fragmentName: string): FragmentDefinitionNode | null;\n transform<D extends DocumentNode>(document: D): D;\n resetCaches(): void;\n}\n\n// As long as createFragmentRegistry is not imported or used, the\n// FragmentRegistry example implementation provided below should not be bundled\n// (by tree-shaking bundlers like Rollup), because the implementation of\n// InMemoryCache refers only to the TypeScript interface FragmentRegistryAPI,\n// never the concrete implementation FragmentRegistry (which is deliberately not\n// exported from this module).\nexport function createFragmentRegistry(\n ...fragments: DocumentNode[]\n): FragmentRegistryAPI {\n return new FragmentRegistry(...fragments);\n}\n\nclass FragmentRegistry implements FragmentRegistryAPI {\n private registry: FragmentMap = {};\n\n // Call `createFragmentRegistry` instead of invoking the\n // FragmentRegistry constructor directly. This reserves the constructor for\n // future configuration of the FragmentRegistry.\n constructor(...fragments: DocumentNode[]) {\n this.resetCaches();\n if (fragments.length) {\n this.register(...fragments);\n }\n }\n\n public register(...fragments: DocumentNode[]): this {\n const definitions = new Map<string, FragmentDefinitionNode>();\n fragments.forEach((doc: DocumentNode) => {\n getFragmentDefinitions(doc).forEach((node) => {\n definitions.set(node.name.value, node);\n });\n });\n\n definitions.forEach((node, name) => {\n if (node !== this.registry[name]) {\n this.registry[name] = node;\n this.invalidate(name);\n }\n });\n\n return this;\n }\n\n // Overridden in the resetCaches method below.\n private invalidate(name: string) {}\n\n public resetCaches() {\n const proto = FragmentRegistry.prototype;\n this.invalidate = (this.lookup = wrap(proto.lookup.bind(this), {\n makeCacheKey: (arg) => arg,\n max:\n cacheSizes[\"fragmentRegistry.lookup\"] ||\n defaultCacheSizes[\"fragmentRegistry.lookup\"],\n })).dirty; // This dirty function is bound to the wrapped lookup method.\n this.transform = wrap(proto.transform.bind(this), {\n cache: WeakCache,\n max:\n cacheSizes[\"fragmentRegistry.transform\"] ||\n defaultCacheSizes[\"fragmentRegistry.transform\"],\n });\n this.findFragmentSpreads = wrap(proto.findFragmentSpreads.bind(this), {\n cache: WeakCache,\n max:\n cacheSizes[\"fragmentRegistry.findFragmentSpreads\"] ||\n defaultCacheSizes[\"fragmentRegistry.findFragmentSpreads\"],\n });\n }\n\n /*\n * Note:\n * This method is only memoized so it can serve as a dependency to `transform`,\n * so calling `invalidate` will invalidate cache entries for `transform`.\n */\n public lookup(fragmentName: string): FragmentDefinitionNode | null {\n return this.registry[fragmentName] || null;\n }\n\n public transform<D extends DocumentNode>(document: D): D {\n const defined = new Map<string, FragmentDefinitionNode>();\n getFragmentDefinitions(document).forEach((def) => {\n defined.set(def.name.value, def);\n });\n\n const unbound = new Set<string>();\n const enqueue = (spreadName: string) => {\n if (!defined.has(spreadName)) {\n unbound.add(spreadName);\n }\n };\n\n const enqueueChildSpreads = (node: ASTNode) =>\n Object.keys(this.findFragmentSpreads(node)).forEach(enqueue);\n\n enqueueChildSpreads(document);\n\n const missing: string[] = [];\n const map: FragmentMap = {};\n\n // This Set forEach loop can be extended during iteration by adding\n // additional strings to the unbound set.\n unbound.forEach((fragmentName) => {\n const knownFragmentDef = defined.get(fragmentName);\n if (knownFragmentDef) {\n enqueueChildSpreads((map[fragmentName] = knownFragmentDef));\n } else {\n missing.push(fragmentName);\n const def = this.lookup(fragmentName);\n if (def) {\n enqueueChildSpreads((map[fragmentName] = def));\n }\n }\n });\n\n if (missing.length) {\n const defsToAppend: FragmentDefinitionNode[] = [];\n missing.forEach((name) => {\n const def = map[name];\n if (def) {\n defsToAppend.push(def);\n }\n });\n\n if (defsToAppend.length) {\n document = {\n ...document,\n definitions: document.definitions.concat(defsToAppend),\n };\n }\n }\n\n return document;\n }\n\n public findFragmentSpreads(root: ASTNode): FragmentSpreadMap {\n const spreads: FragmentSpreadMap = {};\n\n visit(root, {\n FragmentSpread(node) {\n spreads[node.name.value] = node;\n },\n });\n\n return spreads;\n }\n}\n\ninterface FragmentSpreadMap {\n [fragmentSpreadName: string]: FragmentSpreadNode;\n}\n"],"names":[],"mappings":";;AA4BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA5BA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAUA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,C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"}
1
+ {"version":3,"file":"fragmentRegistry.cjs","sources":["../../../../src/cache/inmemory/fragmentRegistry.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n} from \"graphql\";\nimport { visit } from \"graphql\";\nimport { wrap } from \"optimism\";\n\nimport { cacheSizes } from \"@apollo/client/utilities\";\nimport type { FragmentMap } from \"@apollo/client/utilities/internal\";\nimport {\n bindCacheKey,\n getFragmentDefinitions,\n} from \"@apollo/client/utilities/internal\";\n\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\nexport interface FragmentRegistryAPI {\n register(...fragments: DocumentNode[]): this;\n lookup(fragmentName: string): FragmentDefinitionNode | null;\n transform<D extends DocumentNode>(document: D): D;\n resetCaches(): void;\n}\n\n// As long as createFragmentRegistry is not imported or used, the\n// FragmentRegistry example implementation provided below should not be bundled\n// (by tree-shaking bundlers like Rollup), because the implementation of\n// InMemoryCache refers only to the TypeScript interface FragmentRegistryAPI,\n// never the concrete implementation FragmentRegistry (which is deliberately not\n// exported from this module).\nexport function createFragmentRegistry(\n ...fragments: DocumentNode[]\n): FragmentRegistryAPI {\n return new FragmentRegistry(...fragments);\n}\n\nclass FragmentRegistry implements FragmentRegistryAPI {\n private registry: FragmentMap = {};\n\n // Call `createFragmentRegistry` instead of invoking the\n // FragmentRegistry constructor directly. This reserves the constructor for\n // future configuration of the FragmentRegistry.\n constructor(...fragments: DocumentNode[]) {\n this.resetCaches();\n if (fragments.length) {\n this.register(...fragments);\n }\n }\n\n public register(...fragments: DocumentNode[]): this {\n const definitions = new Map<string, FragmentDefinitionNode>();\n fragments.forEach((doc: DocumentNode) => {\n getFragmentDefinitions(doc).forEach((node) => {\n definitions.set(node.name.value, node);\n });\n });\n\n definitions.forEach((node, name) => {\n if (node !== this.registry[name]) {\n this.registry[name] = node;\n this.invalidate(name);\n }\n });\n\n return this;\n }\n\n // Overridden in the resetCaches method below.\n private invalidate(name: string) {}\n\n public resetCaches() {\n const proto = FragmentRegistry.prototype;\n this.invalidate = (this.lookup = wrap(proto.lookup.bind(this), {\n // This is intentionally an identity function - a string cannot be keyed weakly.\n // This is not a memory leak, as lifetime is bound to the `FragmentRegistry` instance,\n // and max size is configurable.\n makeCacheKey: (arg) => arg,\n max:\n cacheSizes[\"fragmentRegistry.lookup\"] ||\n defaultCacheSizes[\"fragmentRegistry.lookup\"],\n })).dirty; // This dirty function is bound to the wrapped lookup method.\n this.transform = wrap(proto.transform.bind(this), {\n makeCacheKey: bindCacheKey(this),\n cache: WeakCache,\n max:\n cacheSizes[\"fragmentRegistry.transform\"] ||\n defaultCacheSizes[\"fragmentRegistry.transform\"],\n });\n this.findFragmentSpreads = wrap(proto.findFragmentSpreads.bind(this), {\n makeCacheKey: bindCacheKey(this),\n cache: WeakCache,\n max:\n cacheSizes[\"fragmentRegistry.findFragmentSpreads\"] ||\n defaultCacheSizes[\"fragmentRegistry.findFragmentSpreads\"],\n });\n }\n\n /*\n * Note:\n * This method is only memoized so it can serve as a dependency to `transform`,\n * so calling `invalidate` will invalidate cache entries for `transform`.\n */\n public lookup(fragmentName: string): FragmentDefinitionNode | null {\n return this.registry[fragmentName] || null;\n }\n\n public transform<D extends DocumentNode>(document: D): D {\n const defined = new Map<string, FragmentDefinitionNode>();\n getFragmentDefinitions(document).forEach((def) => {\n defined.set(def.name.value, def);\n });\n\n const unbound = new Set<string>();\n const enqueue = (spreadName: string) => {\n if (!defined.has(spreadName)) {\n unbound.add(spreadName);\n }\n };\n\n const enqueueChildSpreads = (node: ASTNode) =>\n Object.keys(this.findFragmentSpreads(node)).forEach(enqueue);\n\n enqueueChildSpreads(document);\n\n const missing: string[] = [];\n const map: FragmentMap = {};\n\n // This Set forEach loop can be extended during iteration by adding\n // additional strings to the unbound set.\n unbound.forEach((fragmentName) => {\n const knownFragmentDef = defined.get(fragmentName);\n if (knownFragmentDef) {\n enqueueChildSpreads((map[fragmentName] = knownFragmentDef));\n } else {\n missing.push(fragmentName);\n const def = this.lookup(fragmentName);\n if (def) {\n enqueueChildSpreads((map[fragmentName] = def));\n }\n }\n });\n\n if (missing.length) {\n const defsToAppend: FragmentDefinitionNode[] = [];\n missing.forEach((name) => {\n const def = map[name];\n if (def) {\n defsToAppend.push(def);\n }\n });\n\n if (defsToAppend.length) {\n document = {\n ...document,\n definitions: document.definitions.concat(defsToAppend),\n };\n }\n }\n\n return document;\n }\n\n public findFragmentSpreads(root: ASTNode): FragmentSpreadMap {\n const spreads: FragmentSpreadMap = {};\n\n visit(root, {\n FragmentSpread(node) {\n spreads[node.name.value] = node;\n },\n });\n\n return spreads;\n }\n}\n\ninterface FragmentSpreadMap {\n [fragmentSpreadName: string]: FragmentSpreadNode;\n}\n"],"names":[],"mappings":";;AA+BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA/BA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAaA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,C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"}
@@ -13,7 +13,7 @@ export declare const TypeOrFieldNameRegExp: RegExp;
13
13
  export declare function fieldNameFromStoreName(storeFieldName: string): string;
14
14
  export declare function selectionSetMatchesResult(selectionSet: SelectionSetNode, result: Record<string, any>, variables?: Record<string, any>): boolean;
15
15
  export declare function storeValueIsStoreObject(value: StoreValue): value is StoreObject;
16
- export declare function makeProcessedFieldsMerger(): DeepMerger<any[]>;
16
+ export declare function makeProcessedFieldsMerger(): DeepMerger;
17
17
  export declare function extractFragmentContext(document: DocumentNode, fragments?: FragmentRegistryAPI): {
18
18
  fragmentMap: FragmentMap;
19
19
  lookupFragment: FragmentMapFunction;
@@ -301,6 +301,53 @@ class InMemoryCache extends cache_js_1.ApolloCache {
301
301
  }
302
302
  }
303
303
  txCount = 0;
304
+ /**
305
+ * Executes multiple cache operations as a single batch, ensuring that
306
+ * watchers are only notified once after all operations complete. This is
307
+ * useful for improving performance when making multiple cache updates, as it
308
+ * prevents unnecessary re-renders or query refetches between individual
309
+ * operations.
310
+ *
311
+ * The `batch` method supports both optimistic and non-optimistic updates, and
312
+ * provides fine-grained control over which cache layer receives the updates
313
+ * and when watchers are notified.
314
+ *
315
+ * For usage instructions, see [Interacting with cached data: `cache.batch`](https://www.apollographql.com/docs/react/caching/cache-interaction#using-cachebatch).
316
+ *
317
+ * @example
318
+ *
319
+ * ```js
320
+ * cache.batch({
321
+ * update(cache) {
322
+ * cache.writeQuery({
323
+ * query: GET_TODOS,
324
+ * data: { todos: updatedTodos },
325
+ * });
326
+ * cache.evict({ id: "Todo:123" });
327
+ * },
328
+ * });
329
+ * ```
330
+ *
331
+ * @example
332
+ *
333
+ * ```js
334
+ * // Optimistic update with a custom layer ID
335
+ * cache.batch({
336
+ * optimistic: "add-todo-optimistic",
337
+ * update(cache) {
338
+ * cache.modify({
339
+ * fields: {
340
+ * todos(existing = []) {
341
+ * return [...existing, newTodoRef];
342
+ * },
343
+ * },
344
+ * });
345
+ * },
346
+ * });
347
+ * ```
348
+ *
349
+ * @returns The return value of the `update` function.
350
+ */
304
351
  batch(options) {
305
352
  const { update, optimistic = true, removeOptimistic, onWatchUpdated, } = options;
306
353
  let updateResult;
@@ -406,9 +453,23 @@ class InMemoryCache extends cache_js_1.ApolloCache {
406
453
  lookupFragment(fragmentName) {
407
454
  return this.config.fragments?.lookup(fragmentName) || null;
408
455
  }
456
+ resolvesClientField(typename, fieldName) {
457
+ return !!this.policies.getReadFunction(typename, fieldName);
458
+ }
409
459
  broadcastWatches(options) {
410
460
  if (!this.txCount) {
411
- this.watches.forEach((c) => this.maybeBroadcastWatch(c, options));
461
+ const prevOnAfter = this.onAfterBroadcast;
462
+ const callbacks = new Set();
463
+ this.onAfterBroadcast = (cb) => {
464
+ callbacks.add(cb);
465
+ };
466
+ try {
467
+ this.watches.forEach((c) => this.maybeBroadcastWatch(c, options));
468
+ callbacks.forEach((cb) => cb());
469
+ }
470
+ finally {
471
+ this.onAfterBroadcast = prevOnAfter;
472
+ }
412
473
  }
413
474
  }
414
475
  addFragmentsToDocument(document) {