@apollo/client 4.0.0-rc.5 → 4.0.0-rc.6

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 (512) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +40 -40
  3. package/__cjs/cache/core/cache.cjs +2 -6
  4. package/__cjs/cache/core/cache.cjs.map +1 -1
  5. package/__cjs/cache/core/cache.d.cts +65 -64
  6. package/__cjs/cache/core/types/Cache.cjs +0 -4
  7. package/__cjs/cache/core/types/Cache.cjs.map +1 -1
  8. package/__cjs/cache/core/types/Cache.d.cts +200 -15
  9. package/__cjs/cache/{core/types/DataProxy.cjs → deprecated.cjs} +1 -1
  10. package/__cjs/cache/deprecated.cjs.map +1 -0
  11. package/__cjs/cache/deprecated.d.cts +6 -0
  12. package/__cjs/cache/index.cjs.map +1 -1
  13. package/__cjs/cache/index.d.cts +2 -2
  14. package/__cjs/cache/inmemory/entityStore.cjs +25 -28
  15. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  16. package/__cjs/cache/inmemory/entityStore.d.cts +17 -16
  17. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  18. package/__cjs/cache/inmemory/inMemoryCache.d.cts +4 -4
  19. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  20. package/__cjs/cache/inmemory/policies.cjs +4 -4
  21. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  22. package/__cjs/cache/inmemory/policies.d.cts +3 -2
  23. package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
  24. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  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 +92 -110
  28. package/__cjs/core/ApolloClient.cjs.map +1 -1
  29. package/__cjs/core/ApolloClient.d.cts +774 -180
  30. package/__cjs/core/ObservableQuery.cjs +10 -10
  31. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  32. package/__cjs/core/ObservableQuery.d.cts +120 -68
  33. package/__cjs/core/QueryInfo.cjs.map +1 -1
  34. package/__cjs/core/QueryInfo.d.cts +5 -4
  35. package/__cjs/core/QueryManager.cjs +15 -13
  36. package/__cjs/core/QueryManager.cjs.map +1 -1
  37. package/__cjs/core/QueryManager.d.cts +17 -17
  38. package/__cjs/core/deprecated.cjs +3 -0
  39. package/__cjs/core/deprecated.cjs.map +1 -0
  40. package/__cjs/core/deprecated.d.cts +29 -0
  41. package/__cjs/core/index.cjs.map +1 -1
  42. package/__cjs/core/index.d.cts +9 -5
  43. package/__cjs/core/types.d.cts +29 -129
  44. package/__cjs/core/watchQueryOptions.d.cts +8 -297
  45. package/__cjs/dev/setErrorMessageHandler.cjs.map +1 -1
  46. package/__cjs/dev/setErrorMessageHandler.d.cts +4 -4
  47. package/__cjs/errors/CombinedGraphQLErrors.cjs +59 -11
  48. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  49. package/__cjs/errors/CombinedGraphQLErrors.d.cts +146 -11
  50. package/__cjs/errors/CombinedProtocolErrors.cjs +48 -1
  51. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  52. package/__cjs/errors/CombinedProtocolErrors.d.cts +126 -2
  53. package/__cjs/errors/LinkError.cjs +45 -2
  54. package/__cjs/errors/LinkError.cjs.map +1 -1
  55. package/__cjs/errors/LinkError.d.cts +45 -2
  56. package/__cjs/errors/LocalStateError.cjs +35 -5
  57. package/__cjs/errors/LocalStateError.cjs.map +1 -1
  58. package/__cjs/errors/LocalStateError.d.cts +41 -5
  59. package/__cjs/errors/ServerError.cjs +50 -8
  60. package/__cjs/errors/ServerError.cjs.map +1 -1
  61. package/__cjs/errors/ServerError.d.cts +70 -11
  62. package/__cjs/errors/ServerParseError.cjs +45 -8
  63. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  64. package/__cjs/errors/ServerParseError.d.cts +71 -16
  65. package/__cjs/errors/UnconventionalError.cjs +46 -2
  66. package/__cjs/errors/UnconventionalError.cjs.map +1 -1
  67. package/__cjs/errors/UnconventionalError.d.cts +46 -2
  68. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  69. package/__cjs/invariantErrorCodes.cjs +72 -80
  70. package/__cjs/link/batch/batchLink.cjs.map +1 -1
  71. package/__cjs/link/batch-http/batchHttpLink.cjs +2 -2
  72. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  73. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
  74. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +4 -4
  75. package/__cjs/link/context/index.cjs +1 -1
  76. package/__cjs/link/context/index.cjs.map +1 -1
  77. package/__cjs/link/context/index.d.cts +1 -1
  78. package/__cjs/link/core/ApolloLink.cjs +2 -2
  79. package/__cjs/link/core/types.d.cts +2 -2
  80. package/__cjs/link/error/index.cjs.map +1 -1
  81. package/__cjs/link/error/index.d.cts +16 -1
  82. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  83. package/__cjs/link/http/HttpLink.d.cts +2 -1
  84. package/__cjs/link/http/checkFetcher.cjs +1 -1
  85. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  86. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  87. package/__cjs/link/persisted-queries/index.cjs +2 -2
  88. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  89. package/__cjs/link/persisted-queries/index.d.cts +11 -11
  90. package/__cjs/link/retry/delayFunction.cjs.map +1 -1
  91. package/__cjs/link/retry/delayFunction.d.cts +1 -1
  92. package/__cjs/link/retry/retryFunction.cjs.map +1 -1
  93. package/__cjs/link/retry/retryFunction.d.cts +1 -1
  94. package/__cjs/link/retry/retryLink.cjs.map +1 -1
  95. package/__cjs/link/schema/index.cjs.map +1 -1
  96. package/__cjs/link/utils/validateOperation.cjs +1 -1
  97. package/__cjs/link/ws/index.cjs.map +1 -1
  98. package/__cjs/local-state/LocalState.cjs +55 -9
  99. package/__cjs/local-state/LocalState.cjs.map +1 -1
  100. package/__cjs/local-state/LocalState.d.cts +94 -0
  101. package/__cjs/masking/GraphQLCodegenDataMasking.d.cts +6 -7
  102. package/__cjs/masking/internal/types.d.cts +70 -70
  103. package/__cjs/masking/maskDefinition.cjs +2 -2
  104. package/__cjs/masking/maskFragment.cjs +2 -2
  105. package/__cjs/masking/maskOperation.cjs +1 -1
  106. package/__cjs/masking/utils.cjs +3 -3
  107. package/__cjs/react/context/ApolloContext.cjs +1 -1
  108. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  109. package/__cjs/react/hooks/internal/useDeepMemo.cjs +0 -3
  110. package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
  111. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -1
  112. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +2 -2
  113. package/__cjs/react/hooks/internal/wrapHook.cjs +1 -0
  114. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  115. package/__cjs/react/hooks/internal/wrapHook.d.cts +8 -7
  116. package/__cjs/react/hooks/useApolloClient.cjs +2 -2
  117. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  118. package/__cjs/react/hooks/useApolloClient.d.cts +2 -2
  119. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  120. package/__cjs/react/hooks/useBackgroundQuery.d.cts +814 -86
  121. package/__cjs/react/hooks/useFragment.cjs +7 -0
  122. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  123. package/__cjs/react/hooks/useFragment.d.cts +53 -2
  124. package/__cjs/react/hooks/useLazyQuery.cjs +0 -38
  125. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  126. package/__cjs/react/hooks/useLazyQuery.d.cts +309 -119
  127. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  128. package/__cjs/react/hooks/useLoadableQuery.d.cts +113 -126
  129. package/__cjs/react/hooks/useMutation.cjs +6 -7
  130. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  131. package/__cjs/react/hooks/useMutation.d.cts +57 -17
  132. package/__cjs/react/hooks/useQuery.cjs +1 -35
  133. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  134. package/__cjs/react/hooks/useQuery.d.cts +163 -18
  135. package/__cjs/react/hooks/useQueryRefHandlers.cjs +2 -1
  136. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  137. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +21 -1
  138. package/__cjs/react/hooks/useReactiveVar.cjs +2 -1
  139. package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
  140. package/__cjs/react/hooks/useReactiveVar.d.cts +2 -1
  141. package/__cjs/react/hooks/useReadQuery.cjs +29 -0
  142. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  143. package/__cjs/react/hooks/useReadQuery.d.cts +95 -16
  144. package/__cjs/react/hooks/useSubscription.cjs +8 -9
  145. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  146. package/__cjs/react/hooks/useSubscription.d.cts +99 -32
  147. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  148. package/__cjs/react/hooks/useSuspenseFragment.d.cts +61 -29
  149. package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -1
  150. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  151. package/__cjs/react/hooks/useSuspenseQuery.d.cts +438 -17
  152. package/__cjs/react/index.cjs +1 -3
  153. package/__cjs/react/index.cjs.map +1 -1
  154. package/__cjs/react/index.d.cts +0 -1
  155. package/__cjs/react/index.react-server.cjs +1 -3
  156. package/__cjs/react/index.react-server.cjs.map +1 -1
  157. package/__cjs/react/index.react-server.d.cts +0 -1
  158. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  159. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -3
  160. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  161. package/__cjs/react/internal/cache/QueryReference.d.cts +11 -11
  162. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  163. package/__cjs/react/internal/cache/SuspenseCache.d.cts +2 -2
  164. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  165. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +6 -4
  166. package/__cjs/react/internal/index.cjs +1 -0
  167. package/__cjs/react/internal/index.cjs.map +1 -1
  168. package/__cjs/react/internal/index.d.cts +1 -1
  169. package/__cjs/react/internal/types.d.cts +3 -3
  170. package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -1
  171. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  172. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +31 -31
  173. package/__cjs/react/ssr/prerenderStatic.cjs +5 -4
  174. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  175. package/__cjs/react/ssr/prerenderStatic.d.cts +11 -9
  176. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  177. package/__cjs/react/types/deprecated.d.cts +1 -1
  178. package/__cjs/react/types/types.documentation.d.cts +10 -10
  179. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  180. package/__cjs/testing/core/mocking/mockLink.d.cts +3 -2
  181. package/__cjs/testing/core/types/deprecated.d.cts +3 -2
  182. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  183. package/__cjs/testing/react/MockedProvider.d.cts +2 -3
  184. package/__cjs/utilities/HKT.d.cts +8 -7
  185. package/__cjs/utilities/caching/sizes.cjs +3 -3
  186. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  187. package/__cjs/utilities/caching/sizes.d.cts +4 -6
  188. package/__cjs/utilities/graphql/DocumentTransform.cjs +2 -2
  189. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  190. package/__cjs/utilities/index.cjs +2 -3
  191. package/__cjs/utilities/index.cjs.map +1 -1
  192. package/__cjs/utilities/index.d.cts +1 -2
  193. package/__cjs/utilities/{shared → internal}/canonicalStringify.cjs +5 -7
  194. package/__cjs/utilities/internal/canonicalStringify.cjs.map +1 -0
  195. package/__cjs/utilities/{shared → internal}/canonicalStringify.d.cts +1 -1
  196. package/__cjs/utilities/internal/checkDocument.cjs +2 -2
  197. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  198. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -1
  199. package/__cjs/{core → utilities/internal}/equalByQuery.cjs +13 -7
  200. package/__cjs/utilities/internal/equalByQuery.cjs.map +1 -0
  201. package/__cjs/utilities/internal/equalByQuery.d.cts +5 -0
  202. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +13 -3
  203. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -1
  204. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +13 -3
  205. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  206. package/__cjs/utilities/internal/getStoreKeyName.cjs +1 -2
  207. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  208. package/__cjs/utilities/internal/index.cjs +6 -2
  209. package/__cjs/utilities/internal/index.cjs.map +1 -1
  210. package/__cjs/utilities/internal/index.d.cts +2 -0
  211. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -1
  212. package/__cjs/utilities/internal/mergeOptions.d.cts +2 -2
  213. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  214. package/__cjs/utilities/internal/toQueryResult.d.cts +2 -2
  215. package/__cjs/utilities/internal/types/DocumentationTypes.d.cts +16 -2
  216. package/__cjs/utilities/internal/types/NoInfer.d.cts +31 -25
  217. package/__cjs/utilities/subscriptions/relay/index.cjs +2 -0
  218. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  219. package/__cjs/version.cjs +1 -1
  220. package/cache/core/cache.d.ts +65 -64
  221. package/cache/core/cache.js +3 -7
  222. package/cache/core/cache.js.map +1 -1
  223. package/cache/core/types/Cache.d.ts +200 -15
  224. package/cache/core/types/Cache.js +1 -3
  225. package/cache/core/types/Cache.js.map +1 -1
  226. package/cache/deprecated.d.ts +6 -0
  227. package/cache/deprecated.js +2 -0
  228. package/cache/deprecated.js.map +1 -0
  229. package/cache/index.d.ts +2 -2
  230. package/cache/index.js.map +1 -1
  231. package/cache/inmemory/entityStore.d.ts +17 -16
  232. package/cache/inmemory/entityStore.js +25 -28
  233. package/cache/inmemory/entityStore.js.map +1 -1
  234. package/cache/inmemory/inMemoryCache.d.ts +4 -4
  235. package/cache/inmemory/inMemoryCache.js.map +1 -1
  236. package/cache/inmemory/key-extractor.js +1 -1
  237. package/cache/inmemory/policies.d.ts +3 -2
  238. package/cache/inmemory/policies.js +4 -4
  239. package/cache/inmemory/policies.js.map +1 -1
  240. package/cache/inmemory/readFromStore.js +2 -2
  241. package/cache/inmemory/writeToStore.d.ts +1 -1
  242. package/cache/inmemory/writeToStore.js +4 -4
  243. package/cache/inmemory/writeToStore.js.map +1 -1
  244. package/core/ApolloClient.d.ts +774 -180
  245. package/core/ApolloClient.js +92 -110
  246. package/core/ApolloClient.js.map +1 -1
  247. package/core/ObservableQuery.d.ts +120 -68
  248. package/core/ObservableQuery.js +10 -10
  249. package/core/ObservableQuery.js.map +1 -1
  250. package/core/QueryInfo.d.ts +5 -4
  251. package/core/QueryInfo.js.map +1 -1
  252. package/core/QueryManager.d.ts +17 -17
  253. package/core/QueryManager.js +15 -13
  254. package/core/QueryManager.js.map +1 -1
  255. package/core/deprecated.d.ts +29 -0
  256. package/core/deprecated.js +2 -0
  257. package/core/deprecated.js.map +1 -0
  258. package/core/index.d.ts +9 -5
  259. package/core/index.js.map +1 -1
  260. package/core/types.d.ts +29 -129
  261. package/core/types.js.map +1 -1
  262. package/core/watchQueryOptions.d.ts +9 -298
  263. package/core/watchQueryOptions.js.map +1 -1
  264. package/dev/setErrorMessageHandler.d.ts +4 -4
  265. package/dev/setErrorMessageHandler.js.map +1 -1
  266. package/errors/CombinedGraphQLErrors.d.ts +147 -12
  267. package/errors/CombinedGraphQLErrors.js +60 -12
  268. package/errors/CombinedGraphQLErrors.js.map +1 -1
  269. package/errors/CombinedProtocolErrors.d.ts +127 -3
  270. package/errors/CombinedProtocolErrors.js +49 -2
  271. package/errors/CombinedProtocolErrors.js.map +1 -1
  272. package/errors/LinkError.d.ts +45 -2
  273. package/errors/LinkError.js +45 -2
  274. package/errors/LinkError.js.map +1 -1
  275. package/errors/LocalStateError.d.ts +42 -6
  276. package/errors/LocalStateError.js +36 -6
  277. package/errors/LocalStateError.js.map +1 -1
  278. package/errors/ServerError.d.ts +71 -12
  279. package/errors/ServerError.js +51 -9
  280. package/errors/ServerError.js.map +1 -1
  281. package/errors/ServerParseError.d.ts +72 -17
  282. package/errors/ServerParseError.js +46 -9
  283. package/errors/ServerParseError.js.map +1 -1
  284. package/errors/UnconventionalError.d.ts +46 -2
  285. package/errors/UnconventionalError.js +46 -2
  286. package/errors/UnconventionalError.js.map +1 -1
  287. package/incremental/handlers/notImplemented.js +1 -1
  288. package/invariantErrorCodes.js +72 -80
  289. package/link/batch/batchLink.js.map +1 -1
  290. package/link/batch-http/batchHttpLink.js +1 -1
  291. package/link/batch-http/batchHttpLink.js.map +1 -1
  292. package/link/client-awareness/ClientAwarenessLink.d.ts +4 -4
  293. package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
  294. package/link/context/index.d.ts +1 -1
  295. package/link/context/index.js +1 -1
  296. package/link/context/index.js.map +1 -1
  297. package/link/core/ApolloLink.js +2 -2
  298. package/link/core/types.d.ts +2 -2
  299. package/link/core/types.js.map +1 -1
  300. package/link/error/index.d.ts +16 -1
  301. package/link/error/index.js.map +1 -1
  302. package/link/http/HttpLink.d.ts +2 -1
  303. package/link/http/HttpLink.js.map +1 -1
  304. package/link/http/checkFetcher.js +1 -1
  305. package/link/http/parseAndCheckHttpResponse.js +1 -1
  306. package/link/http/serializeFetchParameter.js +1 -1
  307. package/link/persisted-queries/index.d.ts +11 -11
  308. package/link/persisted-queries/index.js +2 -2
  309. package/link/persisted-queries/index.js.map +1 -1
  310. package/link/retry/delayFunction.d.ts +1 -1
  311. package/link/retry/delayFunction.js.map +1 -1
  312. package/link/retry/retryFunction.d.ts +1 -1
  313. package/link/retry/retryFunction.js.map +1 -1
  314. package/link/retry/retryLink.js.map +1 -1
  315. package/link/schema/index.js.map +1 -1
  316. package/link/utils/validateOperation.js +1 -1
  317. package/link/ws/index.js.map +1 -1
  318. package/local-state/LocalState.d.ts +94 -0
  319. package/local-state/LocalState.js +55 -9
  320. package/local-state/LocalState.js.map +1 -1
  321. package/masking/GraphQLCodegenDataMasking.d.ts +6 -7
  322. package/masking/GraphQLCodegenDataMasking.js.map +1 -1
  323. package/masking/internal/types.d.ts +70 -70
  324. package/masking/internal/types.js.map +1 -1
  325. package/masking/maskDefinition.js +2 -2
  326. package/masking/maskFragment.js +2 -2
  327. package/masking/maskOperation.js +1 -1
  328. package/masking/types.js.map +1 -1
  329. package/masking/utils.js +3 -3
  330. package/package.json +1 -1
  331. package/react/context/ApolloContext.js +1 -1
  332. package/react/context/ApolloProvider.js +1 -1
  333. package/react/hooks/internal/useDeepMemo.js +0 -3
  334. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  335. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +2 -2
  336. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -1
  337. package/react/hooks/internal/wrapHook.d.ts +8 -7
  338. package/react/hooks/internal/wrapHook.js +1 -0
  339. package/react/hooks/internal/wrapHook.js.map +1 -1
  340. package/react/hooks/useApolloClient.d.ts +2 -2
  341. package/react/hooks/useApolloClient.js +2 -2
  342. package/react/hooks/useApolloClient.js.map +1 -1
  343. package/react/hooks/useBackgroundQuery.d.ts +814 -86
  344. package/react/hooks/useBackgroundQuery.js.map +1 -1
  345. package/react/hooks/useFragment.d.ts +54 -3
  346. package/react/hooks/useFragment.js +7 -0
  347. package/react/hooks/useFragment.js.map +1 -1
  348. package/react/hooks/useLazyQuery.d.ts +309 -119
  349. package/react/hooks/useLazyQuery.js +0 -38
  350. package/react/hooks/useLazyQuery.js.map +1 -1
  351. package/react/hooks/useLoadableQuery.d.ts +113 -126
  352. package/react/hooks/useLoadableQuery.js.map +1 -1
  353. package/react/hooks/useMutation.d.ts +57 -17
  354. package/react/hooks/useMutation.js +6 -7
  355. package/react/hooks/useMutation.js.map +1 -1
  356. package/react/hooks/useQuery.d.ts +163 -18
  357. package/react/hooks/useQuery.js +1 -35
  358. package/react/hooks/useQuery.js.map +1 -1
  359. package/react/hooks/useQueryRefHandlers.d.ts +21 -1
  360. package/react/hooks/useQueryRefHandlers.js +2 -1
  361. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  362. package/react/hooks/useReactiveVar.d.ts +2 -1
  363. package/react/hooks/useReactiveVar.js +2 -1
  364. package/react/hooks/useReactiveVar.js.map +1 -1
  365. package/react/hooks/useReadQuery.d.ts +96 -17
  366. package/react/hooks/useReadQuery.js +29 -0
  367. package/react/hooks/useReadQuery.js.map +1 -1
  368. package/react/hooks/useSubscription.d.ts +99 -32
  369. package/react/hooks/useSubscription.js +8 -9
  370. package/react/hooks/useSubscription.js.map +1 -1
  371. package/react/hooks/useSuspenseFragment.d.ts +62 -30
  372. package/react/hooks/useSuspenseFragment.js.map +1 -1
  373. package/react/hooks/useSuspenseQuery.d.ts +438 -17
  374. package/react/hooks/useSuspenseQuery.js +4 -1
  375. package/react/hooks/useSuspenseQuery.js.map +1 -1
  376. package/react/hooks-compiled/internal/useDeepMemo.js +0 -3
  377. package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
  378. package/react/hooks-compiled/internal/validateSuspenseHookOptions.d.ts +2 -2
  379. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js.map +1 -1
  380. package/react/hooks-compiled/internal/wrapHook.d.ts +8 -7
  381. package/react/hooks-compiled/internal/wrapHook.js +1 -0
  382. package/react/hooks-compiled/internal/wrapHook.js.map +1 -1
  383. package/react/hooks-compiled/useApolloClient.d.ts +2 -2
  384. package/react/hooks-compiled/useApolloClient.js +2 -2
  385. package/react/hooks-compiled/useApolloClient.js.map +1 -1
  386. package/react/hooks-compiled/useBackgroundQuery.d.ts +814 -86
  387. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  388. package/react/hooks-compiled/useFragment.d.ts +54 -3
  389. package/react/hooks-compiled/useFragment.js +7 -0
  390. package/react/hooks-compiled/useFragment.js.map +1 -1
  391. package/react/hooks-compiled/useLazyQuery.d.ts +309 -119
  392. package/react/hooks-compiled/useLazyQuery.js +0 -38
  393. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  394. package/react/hooks-compiled/useLoadableQuery.d.ts +113 -126
  395. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  396. package/react/hooks-compiled/useMutation.d.ts +57 -17
  397. package/react/hooks-compiled/useMutation.js +6 -7
  398. package/react/hooks-compiled/useMutation.js.map +1 -1
  399. package/react/hooks-compiled/useQuery.d.ts +163 -18
  400. package/react/hooks-compiled/useQuery.js +1 -35
  401. package/react/hooks-compiled/useQuery.js.map +1 -1
  402. package/react/hooks-compiled/useQueryRefHandlers.d.ts +21 -1
  403. package/react/hooks-compiled/useQueryRefHandlers.js +2 -1
  404. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  405. package/react/hooks-compiled/useReactiveVar.d.ts +2 -1
  406. package/react/hooks-compiled/useReactiveVar.js +2 -1
  407. package/react/hooks-compiled/useReactiveVar.js.map +1 -1
  408. package/react/hooks-compiled/useReadQuery.d.ts +96 -17
  409. package/react/hooks-compiled/useReadQuery.js +29 -0
  410. package/react/hooks-compiled/useReadQuery.js.map +1 -1
  411. package/react/hooks-compiled/useSubscription.d.ts +99 -32
  412. package/react/hooks-compiled/useSubscription.js +8 -9
  413. package/react/hooks-compiled/useSubscription.js.map +1 -1
  414. package/react/hooks-compiled/useSuspenseFragment.d.ts +62 -30
  415. package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  416. package/react/hooks-compiled/useSuspenseQuery.d.ts +438 -17
  417. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  418. package/react/index.compiled.d.ts +0 -1
  419. package/react/index.compiled.js +0 -1
  420. package/react/index.compiled.js.map +1 -1
  421. package/react/index.d.ts +0 -1
  422. package/react/index.js +0 -1
  423. package/react/index.js.map +1 -1
  424. package/react/index.react-server.d.ts +0 -1
  425. package/react/index.react-server.js +0 -2
  426. package/react/index.react-server.js.map +1 -1
  427. package/react/internal/cache/FragmentReference.d.ts +2 -3
  428. package/react/internal/cache/FragmentReference.js.map +1 -1
  429. package/react/internal/cache/QueryReference.d.ts +11 -11
  430. package/react/internal/cache/QueryReference.js.map +1 -1
  431. package/react/internal/cache/SuspenseCache.d.ts +2 -2
  432. package/react/internal/cache/SuspenseCache.js.map +1 -1
  433. package/react/internal/cache/getSuspenseCache.d.ts +6 -4
  434. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  435. package/react/internal/index.d.ts +1 -1
  436. package/react/internal/index.js +1 -0
  437. package/react/internal/index.js.map +1 -1
  438. package/react/internal/types.d.ts +3 -3
  439. package/react/internal/types.js.map +1 -1
  440. package/react/query-preloader/createQueryPreloader.d.ts +31 -31
  441. package/react/query-preloader/createQueryPreloader.js +1 -1
  442. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  443. package/react/ssr/prerenderStatic.d.ts +11 -9
  444. package/react/ssr/prerenderStatic.js +5 -4
  445. package/react/ssr/prerenderStatic.js.map +1 -1
  446. package/react/ssr/useSSRQuery.js.map +1 -1
  447. package/react/types/deprecated.d.ts +1 -1
  448. package/react/types/deprecated.js.map +1 -1
  449. package/react/types/types.documentation.d.ts +10 -10
  450. package/react/types/types.documentation.js.map +1 -1
  451. package/testing/core/mocking/mockLink.d.ts +3 -2
  452. package/testing/core/mocking/mockLink.js.map +1 -1
  453. package/testing/core/types/deprecated.d.ts +3 -2
  454. package/testing/core/types/deprecated.js.map +1 -1
  455. package/testing/react/MockedProvider.d.ts +2 -3
  456. package/testing/react/MockedProvider.js.map +1 -1
  457. package/utilities/HKT.d.ts +8 -7
  458. package/utilities/HKT.js.map +1 -1
  459. package/utilities/caching/sizes.d.ts +4 -6
  460. package/utilities/caching/sizes.js +3 -3
  461. package/utilities/caching/sizes.js.map +1 -1
  462. package/utilities/graphql/DocumentTransform.js +1 -1
  463. package/utilities/graphql/DocumentTransform.js.map +1 -1
  464. package/utilities/index.d.ts +1 -2
  465. package/utilities/index.js +1 -2
  466. package/utilities/index.js.map +1 -1
  467. package/utilities/{shared → internal}/canonicalStringify.d.ts +1 -1
  468. package/utilities/{shared → internal}/canonicalStringify.js +4 -6
  469. package/utilities/internal/canonicalStringify.js.map +1 -0
  470. package/utilities/internal/checkDocument.js +1 -1
  471. package/utilities/internal/checkDocument.js.map +1 -1
  472. package/utilities/internal/createFragmentMap.js.map +1 -1
  473. package/utilities/internal/equalByQuery.d.ts +5 -0
  474. package/{core → utilities/internal}/equalByQuery.js +7 -1
  475. package/utilities/internal/equalByQuery.js.map +1 -0
  476. package/utilities/internal/getFragmentQueryDocument.d.ts +13 -3
  477. package/utilities/internal/getFragmentQueryDocument.js +13 -3
  478. package/utilities/internal/getFragmentQueryDocument.js.map +1 -1
  479. package/utilities/internal/getMemoryInternals.js.map +1 -1
  480. package/utilities/internal/getStoreKeyName.js +1 -2
  481. package/utilities/internal/getStoreKeyName.js.map +1 -1
  482. package/utilities/internal/index.d.ts +2 -0
  483. package/utilities/internal/index.js +2 -0
  484. package/utilities/internal/index.js.map +1 -1
  485. package/utilities/internal/mergeOptions.d.ts +2 -2
  486. package/utilities/internal/mergeOptions.js.map +1 -1
  487. package/utilities/internal/toQueryResult.d.ts +2 -2
  488. package/utilities/internal/toQueryResult.js.map +1 -1
  489. package/utilities/internal/types/DocumentationTypes.d.ts +16 -2
  490. package/utilities/internal/types/DocumentationTypes.js.map +1 -1
  491. package/utilities/internal/types/NoInfer.d.ts +31 -25
  492. package/utilities/internal/types/NoInfer.js.map +1 -1
  493. package/utilities/subscriptions/relay/index.js +2 -0
  494. package/utilities/subscriptions/relay/index.js.map +1 -1
  495. package/version.js +1 -1
  496. package/__cjs/cache/core/types/DataProxy.cjs.map +0 -1
  497. package/__cjs/cache/core/types/DataProxy.d.cts +0 -140
  498. package/__cjs/core/equalByQuery.cjs.map +0 -1
  499. package/__cjs/core/equalByQuery.d.cts +0 -4
  500. package/__cjs/react/context/ApolloConsumer.cjs +0 -16
  501. package/__cjs/react/context/ApolloConsumer.cjs.map +0 -1
  502. package/__cjs/react/context/ApolloConsumer.d.cts +0 -10
  503. package/__cjs/utilities/shared/canonicalStringify.cjs.map +0 -1
  504. package/cache/core/types/DataProxy.d.ts +0 -140
  505. package/cache/core/types/DataProxy.js +0 -2
  506. package/cache/core/types/DataProxy.js.map +0 -1
  507. package/core/equalByQuery.d.ts +0 -4
  508. package/core/equalByQuery.js.map +0 -1
  509. package/react/context/ApolloConsumer.d.ts +0 -10
  510. package/react/context/ApolloConsumer.js +0 -11
  511. package/react/context/ApolloConsumer.js.map +0 -1
  512. package/utilities/shared/canonicalStringify.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @apollo/client
2
2
 
3
+ ## 4.0.0-rc.6
4
+
5
+ ### Major Changes
6
+
7
+ - [#12787](https://github.com/apollographql/apollo-client/pull/12787) [`8ce31fa`](https://github.com/apollographql/apollo-client/commit/8ce31fae54b1ae76c557f361cc946858cb2ff66b) Thanks [@phryneas](https://github.com/phryneas)! - Remove `DataProxy` namespace and interface.
8
+
9
+ - [#12788](https://github.com/apollographql/apollo-client/pull/12788) [`4179446`](https://github.com/apollographql/apollo-client/commit/417944677d2e79606b0f6cabd8d5d8b2063c876b) Thanks [@phryneas](https://github.com/phryneas)! - `TVariables` now always `extends OperationVariables` in all interfaces.
10
+
11
+ - [#12802](https://github.com/apollographql/apollo-client/pull/12802) [`e2b51b3`](https://github.com/apollographql/apollo-client/commit/e2b51b30acbd360253100f9d2a91fe7e0c57be4c) Thanks [@jerelmiller](https://github.com/jerelmiller)! - Disallow the `mutation` option for the `mutate` function returned from `useMutation`.
12
+
13
+ - [#12787](https://github.com/apollographql/apollo-client/pull/12787) [`8ce31fa`](https://github.com/apollographql/apollo-client/commit/8ce31fae54b1ae76c557f361cc946858cb2ff66b) Thanks [@phryneas](https://github.com/phryneas)! - Generic arguments for `Cache.ReadOptions` were flipped from `TVariables, TData` to `TData, TVariables`.
14
+
15
+ - [#12793](https://github.com/apollographql/apollo-client/pull/12793) [`24e98a1`](https://github.com/apollographql/apollo-client/commit/24e98a16648d4c21f37ba51a678a8849f88174ea) Thanks [@phryneas](https://github.com/phryneas)! - `ApolloConsumer` has been removed - please use `useApolloClient` instead.
16
+
17
+ ### Patch Changes
18
+
19
+ - [#12782](https://github.com/apollographql/apollo-client/pull/12782) [`742b3a0`](https://github.com/apollographql/apollo-client/commit/742b3a0ed65d28818974e56225c86ab7e350e677) Thanks [@jerelmiller](https://github.com/jerelmiller)! - Move `ApolloClient`, `ObservableQuery`, and `ApolloCache.watchFragment` method options and result types into namespaces. The old types are now exported as deprecated.
20
+
3
21
  ## 4.0.0-rc.5
4
22
 
5
23
  ### Major Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <a href="https://www.apollographql.com?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme"><img src="https://raw.githubusercontent.com/apollographql/apollo-client-devtools/main/assets/apollo-wordmark.svg" height="100" alt="Apollo Logo"></a>
4
4
  </div>
5
5
  <h1 align="center">Apollo Client</h1>
6
-
6
+
7
7
  **The industry-leading GraphQL client for TypeScript, JavaScript, React, Vue, Angular, and more.** Apollo Client delivers powerful caching, intuitive APIs, and comprehensive developer tools to accelerate your app development.
8
8
 
9
9
  ➡️ [**Get Started with Apollo Client →**](https://www.apollographql.com/docs/react/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
@@ -17,55 +17,55 @@
17
17
 
18
18
  ## ❓ Why Choose Apollo Client?
19
19
 
20
- ✅ Zero-config caching - Intelligent caching out of the box<br>
21
- ✅ Framework agnostic - Works with React, Vue, Angular, Svelte, and vanilla JavaScript<br>
22
- ✅ TypeScript-first - Full type safety and IntelliSense support<br>
23
- ✅ React 19 ready - Supports Suspense, RSC, Compiler, and more<br>
24
- ✅ Production-tested - Powers countless apps worldwide that serve millions of end users<br>
25
-
26
- ## 🚀 Quick Start
27
-
20
+ ✅ Zero-config caching - Intelligent caching out of the box<br>
21
+ ✅ Framework agnostic - Works with React, Vue, Angular, Svelte, and vanilla JavaScript<br>
22
+ ✅ TypeScript-first - Full type safety and IntelliSense support<br>
23
+ ✅ React 19 ready - Supports Suspense, RSC, Compiler, and more<br>
24
+ ✅ Production-tested - Powers countless apps worldwide that serve millions of end users<br>
25
+
26
+ ## 🚀 Quick Start
27
+
28
28
  ```sh
29
29
  npm install @apollo/client graphql
30
30
  ```
31
31
 
32
32
  ## 💡 Resources
33
33
 
34
- | Resource | Description | Link |
35
- | ----- | ----- | ----- |
36
- | **Getting Started Guide** | Complete setup and first query | [Start Here →](https://www.apollographql.com/docs/react/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
37
- | **Full Documentation** | Comprehensive guides and examples | [Read Docs →](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
38
- | **API Reference** | Complete API documentation | [Browse API →](https://www.apollographql.com/docs/react/api/apollo-client?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
39
- | **VS Code Extension** | Enhanced development experience | [Install Extension →](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) |
40
- | **DevTools** | Debug your GraphQL apps | [Chrome](https://chrome.google.com/webstore/detail/apollo-client-devtools/jdkknkkbebbapilgoeccciglkfbmbnfm) \| [Firefox](https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/) |
41
- | **Free Course** | Learn GraphQL and Apollo Client | [Take Course →](https://odyssey.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
34
+ | Resource | Description | Link |
35
+ | ------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
36
+ | **Getting Started Guide** | Complete setup and first query | [Start Here →](https://www.apollographql.com/docs/react/get-started?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
37
+ | **Full Documentation** | Comprehensive guides and examples | [Read Docs →](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
38
+ | **API Reference** | Complete API documentation | [Browse API →](https://www.apollographql.com/docs/react/api/apollo-client?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
39
+ | **VS Code Extension** | Enhanced development experience | [Install Extension →](https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo) |
40
+ | **DevTools** | Debug your GraphQL apps | [Chrome](https://chrome.google.com/webstore/detail/apollo-client-devtools/jdkknkkbebbapilgoeccciglkfbmbnfm) \| [Firefox](https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/) |
41
+ | **Free Course** | Learn GraphQL and Apollo Client | [Take Course →](https://odyssey.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) |
42
42
 
43
43
  ## 💬 Get Support
44
44
 
45
45
  **Need help?** We're here for you:
46
46
 
47
- * [**Community Forum**](https://community.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Q\&A and discussions
48
- * [**GraphQL Discord**](https://discord.graphql.org) \- Real-time chat with the community
47
+ - [**Community Forum**](https://community.apollographql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Q\&A and discussions
48
+ - [**GraphQL Discord**](https://discord.graphql.org) \- Real-time chat with the community
49
49
 
50
- ## 🧑‍🚀 About Apollo
50
+ ## 🧑‍🚀 About Apollo
51
51
 
52
52
  Deliver tomorrow's roadmap today with our comprehensive suite of API orchestration tools:
53
53
 
54
- * [**Apollo Client**](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Type-safe apps with GraphQL-powered on-device caching ([React](https://www.apollographql.com/docs/react?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme))
55
- * [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Compose all your GraphQL and REST APIs into one GraphQL endpoint
56
- * [**Apollo MCP Server**](https://www.apollographql.com/ai?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- AI needs APIs. The fastest way to ship reliable AI experiences
57
- * [**Apollo Router**](https://www.apollographql.com/docs/router?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Scale your APIs seamlessly with GraphQL Federation, Security, Auth, and more
58
- * [**GraphOS**](https://www.apollographql.com/graphos?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Deploy, manage, govern, and explore your APIs ([start for free, no credit card needed](https://www.apollographql.com/pricing?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme))
54
+ - [**Apollo Client**](https://www.apollographql.com/docs/react?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Type-safe apps with GraphQL-powered on-device caching ([React](https://www.apollographql.com/docs/react?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [iOS](https://www.apollographql.com/docs/ios?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme), [Kotlin](https://www.apollographql.com/docs/kotlin?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme))
55
+ - [**Apollo Connectors**](https://www.apollographql.com/connectors?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Compose all your GraphQL and REST APIs into one GraphQL endpoint
56
+ - [**Apollo MCP Server**](https://www.apollographql.com/ai?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- AI needs APIs. The fastest way to ship reliable AI experiences
57
+ - [**Apollo Router**](https://www.apollographql.com/docs/router?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Scale your APIs seamlessly with GraphQL Federation, Security, Auth, and more
58
+ - [**GraphOS**](https://www.apollographql.com/graphos?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme) \- Deploy, manage, govern, and explore your APIs ([start for free, no credit card needed](https://www.apollographql.com/pricing?utm_medium=github&utm_source=apollographql_apollo-client&utm_campaign=readme))
59
59
 
60
60
  [**Explore the Complete Apollo Platform →**](https://www.apollographql.com/?utm_source=github&utm_medium=apollographql-_apollo-client&utm_campaign=readme)
61
61
 
62
62
  ## 🛠️ Maintained by
63
63
 
64
- |Name|Username|
65
- |---|---|
66
- |Jeff Auriemma|[@bignimbus](https://github.com/bignimbus)|
67
- |Jerel Miller|[@jerelmiller](https://github.com/jerelmiller)|
68
- |Lenz Weber-Tronic|[@phryneas](https://github.com/phryneas)|
64
+ | Name | Username |
65
+ | ----------------- | ---------------------------------------------- |
66
+ | Jeff Auriemma | [@bignimbus](https://github.com/bignimbus) |
67
+ | Jerel Miller | [@jerelmiller](https://github.com/jerelmiller) |
68
+ | Lenz Weber-Tronic | [@phryneas](https://github.com/phryneas) |
69
69
 
70
70
  ## 🗺️ Roadmap
71
71
 
@@ -73,27 +73,27 @@ We regularly update our [public roadmap](https://github.com/apollographql/apollo
73
73
 
74
74
  ## 📣 Tell us what you think
75
75
 
76
- | ☑️ Apollo Client User Survey |
77
- | :----- |
76
+ | ☑️ Apollo Client User Survey |
77
+ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
78
78
  | What do you like best about Apollo Client? What needs to be improved? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+Client&entry.204965213=Readme). Your responses will help us understand Apollo Client usage and allow us to serve you better. |
79
79
 
80
80
  ## 🗓️ Events
81
81
 
82
- Join these live events to meet other GraphQL users and learn more:
82
+ Join these live events to meet other GraphQL users and learn more:
83
83
 
84
- 🎪 [**GraphQL Summit 2025**](https://summit.graphql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
85
- Oct 6-8, 2025 • San Francisco
86
- *1000+ engineers, talks, workshops, and office hours*
84
+ 🎪 [**GraphQL Summit 2025**](https://summit.graphql.com?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
85
+ Oct 6-8, 2025 • San Francisco
86
+ _1000+ engineers, talks, workshops, and office hours_
87
87
 
88
88
  🌟 [**GraphQLConf 2025**](https://graphql.org/conf/2025)
89
- Sep 8-10, 2025 • Amsterdam
90
- *Celebrating 10 Years of GraphQL*
89
+ Sep 8-10, 2025 • Amsterdam
90
+ _Celebrating 10 Years of GraphQL_
91
91
 
92
92
  [**View All Events →**](https://www.apollographql.com/events?utm_source=github&utm_medium=apollographql_apollo-client&utm_campaign=readme)
93
93
 
94
94
  ## 🏆 Contributing
95
95
 
96
- Thank you for your interest in submitting a Pull Request to Apollo Client! Read our [guidelines](https://github.com/apollographql/apollo-client/blob/main/CONTRIBUTING.md) first, and don't hesitate to get in touch.
96
+ Thank you for your interest in submitting a Pull Request to Apollo Client! Read our [guidelines](https://github.com/apollographql/apollo-client/blob/main/CONTRIBUTING.md) first, and don't hesitate to get in touch.
97
97
 
98
98
  **New to open source?** Check out our [**Good First Issues**](https://github.com/apollographql/apollo-client/issues?q=is%3Aopen%20label%3A%22%3Abooks%3A%20good-first-issue%22) to get started.
99
99
 
@@ -103,4 +103,4 @@ Please read our [Code of Conduct](https://community.apollographql.com/faq). This
103
103
 
104
104
  ## 🪪 License
105
105
 
106
- Source code in this repository is available under the terms of the MIT License. Read the full text [here](https://github.com/apollographql/apollo-client/blob/main/LICENSE).
106
+ Source code in this repository is available under the terms of the MIT License. Read the full text [here](https://github.com/apollographql/apollo-client/blob/main/LICENSE).
@@ -12,7 +12,6 @@ const utilities_1 = require("@apollo/client/utilities");
12
12
  const environment_1 = require("@apollo/client/utilities/environment");
13
13
  const internal_1 = require("@apollo/client/utilities/internal");
14
14
  const invariant_1 = require("@apollo/client/utilities/invariant");
15
- const equalByQuery_js_1 = require("../../core/equalByQuery.cjs");
16
15
  class ApolloCache {
17
16
  assumeImmutableResults = false;
18
17
  // Function used to lookup a fragment when a fragment definition is not part
@@ -91,7 +90,7 @@ class ApolloCache {
91
90
  if (environment_1.__DEV__) {
92
91
  const actualFragmentName = fragmentName || (0, internal_1.getFragmentDefinition)(fragment).name.value;
93
92
  if (!id) {
94
- __DEV__ && invariant_1.invariant.warn(110, actualFragmentName);
93
+ __DEV__ && invariant_1.invariant.warn(109, actualFragmentName);
95
94
  }
96
95
  }
97
96
  const diffOptions = {
@@ -116,10 +115,7 @@ class ApolloCache {
116
115
  if (
117
116
  // Always ensure we deliver the first result
118
117
  latestDiff &&
119
- (0, equalByQuery_js_1.equalByQuery)(query, { data: latestDiff.result }, { data },
120
- // TODO: Fix the type on WatchFragmentOptions so that TVars
121
- // extends OperationVariables
122
- options.variables)) {
118
+ (0, internal_1.equalByQuery)(query, { data: latestDiff.result }, { data }, options.variables)) {
123
119
  return;
124
120
  }
125
121
  const result = {
@@ -1 +1 @@
1
- {"version":3,"file":"cache.cjs","sources":["../../../../src/cache/core/cache.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport { wrap } from \"optimism\";\nimport { Observable } from \"rxjs\";\n\nimport type {\n GetDataState,\n OperationVariables,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport type { FragmentType, Unmasked } from \"@apollo/client/masking\";\nimport type { Reference, StoreObject } from \"@apollo/client/utilities\";\nimport { cacheSizes } from \"@apollo/client/utilities\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type { NoInfer } from \"@apollo/client/utilities/internal\";\nimport {\n getApolloCacheMemoryInternals,\n getFragmentDefinition,\n getFragmentQueryDocument,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { equalByQuery } from \"../../core/equalByQuery.js\";\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\n\nimport type { Cache } from \"./types/Cache.js\";\nimport type { MissingTree } from \"./types/common.js\";\nimport type { DataProxy } from \"./types/DataProxy.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\n/**\n * Watched fragment options.\n */\nexport interface WatchFragmentOptions<TData, TVars> {\n /**\n * A GraphQL fragment document parsed into an AST with the `gql`\n * template literal.\n *\n * @docGroup 1. Required options\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVars>;\n /**\n * An object containing a `__typename` and primary key fields\n * (such as `id`) identifying the entity object from which the fragment will\n * be retrieved, or a `{ __ref: \"...\" }` reference, or a `string` ID\n * (uncommon).\n *\n * @docGroup 1. Required options\n */\n from: StoreObject | Reference | FragmentType<NoInfer<TData>> | string;\n /**\n * Any variables that the GraphQL fragment may depend on.\n *\n * @docGroup 2. Cache options\n */\n variables?: TVars;\n /**\n * The name of the fragment defined in the fragment document.\n *\n * Required if the fragment document includes more than one fragment,\n * optional otherwise.\n *\n * @docGroup 2. Cache options\n */\n fragmentName?: string;\n /**\n * If `true`, `watchFragment` returns optimistic results.\n *\n * The default value is `true`.\n *\n * @docGroup 2. Cache options\n */\n optimistic?: boolean;\n}\n\n/**\n * Watched fragment results.\n */\nexport type WatchFragmentResult<TData> =\n | ({\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">)\n | ({\n complete: false;\n missing: MissingTree;\n } & GetDataState<TData, \"partial\">);\n\nexport abstract class ApolloCache implements DataProxy {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read<TData = unknown, TVariables = OperationVariables>(\n query: Cache.ReadOptions<TVariables, TData>\n ): Unmasked<TData> | null;\n public abstract write<TData = unknown, TVariables = OperationVariables>(\n write: Cache.WriteOptions<TData, TVariables>\n ): Reference | undefined;\n\n /**\n * Returns data read from the cache for a given query along with information\n * about the cache result such as whether the result is complete and details\n * about missing fields.\n *\n * Will return `complete` as `true` if it can fulfill the full cache result or\n * `false` if not. When no data can be fulfilled from the cache, `null` is\n * returned. When `returnPartialData` is `true`, non-null partial results are\n * returned if it contains at least one field that can be fulfilled from the\n * cache.\n */\n public abstract diff<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.DiffOptions<TData, TVariables>): Cache.DiffResult<TData>;\n public abstract watch<TData = unknown, TVariables = OperationVariables>(\n watch: Cache.WatchOptions<TData, TVariables>\n ): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise<void>;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(serializedState: unknown): this;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): unknown;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Used by data masking to determine if an inline fragment with a type\n // condition matches a given typename. Also used by local resolvers to match a\n // fragment against a typename.\n //\n // If not implemented by a cache subclass, data masking will effectively be\n // disabled since we will not be able to accurately determine if a given type\n // condition for a union or interface matches a particular type.\n public abstract fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string\n ): boolean;\n\n // Function used to lookup a fragment when a fragment definition is not part\n // of the GraphQL document. This is useful for caches, such as InMemoryCache,\n // that register fragments ahead of time so they can be referenced by name.\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return null;\n }\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch<U>(options: Cache.BatchOptions<this, U>): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify<Entity extends Record<string, any> = Record<string, any>>(\n options: Cache.ModifyOptions<Entity>\n ): boolean {\n return false;\n }\n\n /**\n * Read data from the cache for the specified query.\n */\n public readQuery<TData = unknown, TVariables = OperationVariables>({\n // spread in type definitions for discoverability in the docs\n query,\n variables,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;\n /**\n * {@inheritDoc @apollo/client!ApolloCache#readQuery:member(1)}\n */\n public readQuery<TData = unknown, TVariables = OperationVariables>(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readQuery<TData = unknown, TVariables = OperationVariables>(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: WatchFragmentOptions<TData, TVariables>\n ): Observable<WatchFragmentResult<Unmasked<TData>>> {\n const {\n fragment,\n fragmentName,\n from,\n optimistic = true,\n ...otherOptions\n } = options;\n const query = this.getFragmentDoc(fragment, fragmentName);\n // While our TypeScript types do not allow for `undefined` as a valid\n // `from`, its possible `useFragment` gives us an `undefined` since it\n // calls` cache.identify` and provides that value to `from`. We are\n // adding this fix here however to ensure those using plain JavaScript\n // and using `cache.identify` themselves will avoid seeing the obscure\n // warning.\n const id =\n typeof from === \"undefined\" || typeof from === \"string\" ?\n from\n : this.identify(from);\n\n if (__DEV__) {\n const actualFragmentName =\n fragmentName || getFragmentDefinition(fragment).name.value;\n\n if (!id) {\n invariant.warn(\n \"Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object.\",\n actualFragmentName\n );\n }\n }\n\n const diffOptions: Cache.DiffOptions<TData, TVariables> = {\n ...otherOptions,\n returnPartialData: true,\n id,\n query,\n optimistic,\n };\n\n let latestDiff: DataProxy.DiffResult<TData> | undefined;\n\n return new Observable((observer) => {\n return this.watch<TData, TVariables>({\n ...diffOptions,\n immediate: true,\n callback: (diff) => {\n let data = diff.result;\n\n // TODO: Remove this once `watchFragment` supports `null` as valid\n // value emitted\n if (data === null) {\n data = {} as any;\n }\n\n if (\n // Always ensure we deliver the first result\n latestDiff &&\n equalByQuery(\n query,\n { data: latestDiff.result },\n { data },\n // TODO: Fix the type on WatchFragmentOptions so that TVars\n // extends OperationVariables\n options.variables as OperationVariables\n )\n ) {\n return;\n }\n\n const result = {\n data,\n dataState: diff.complete ? \"complete\" : \"partial\",\n complete: !!diff.complete,\n } as WatchFragmentResult<Unmasked<TData>>;\n\n if (diff.missing) {\n result.missing = diff.missing.missing;\n }\n\n latestDiff = { ...diff, result: data } as DataProxy.DiffResult<TData>;\n observer.next(result);\n },\n });\n });\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n /**\n * Read data from the cache for the specified fragment.\n */\n public readFragment<TData = unknown, TVariables = OperationVariables>({\n // spread in type definitions for discoverability in the docs\n fragment,\n variables,\n fragmentName,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;\n public readFragment<TData = unknown, TVariables = OperationVariables>(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readFragment<TData = unknown, TVariables = OperationVariables>(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic,\n });\n }\n\n /**\n * Writes data to the root of the cache using the specified query to validate that\n * the shape of the data you’re writing to the cache is the same as the shape of\n * the data required by the query. Great for prepping the cache with initial data.\n */\n public writeQuery<TData = unknown, TVariables = OperationVariables>({\n // spread in type definitions for discoverability in the docs\n data,\n query,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;\n public writeQuery<TData = unknown, TVariables = OperationVariables>({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n /**\n * Similar to `writeQuery` (writes data to the cache) but uses the specified\n * fragment to validate that the shape of the data you’re writing to the cache\n * is the same as the shape of the data required by the fragment.\n */\n public writeFragment<TData = unknown, TVariables = OperationVariables>({\n // spread in type definitions for discoverability in the docs\n data,\n fragment,\n fragmentName,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;\n public writeFragment<TData = unknown, TVariables = OperationVariables>({\n id,\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery<TData = unknown, TVariables = OperationVariables>(\n options: Cache.UpdateQueryOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment<TData = unknown, TVariables = OperationVariables>(\n options: Cache.UpdateFragmentOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n"],"names":[],"mappings":";;;;;;;AAAA,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;AAMA,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;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AASA,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;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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;AAKA,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,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,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;AAmEA,CAAA,CAAA,CAAA,CAAA,EAAsB,CAAtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;IACkB,CAAlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAoD,CAApD,CAAA,CAAA,CAAA,CAAyD;IAwEvD,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C,EAA5C;QACI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAe;IACb;IAEA,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;IAEE,CAAF,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,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,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA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EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;QACI,CAAJ,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;QACI,CAAJ,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACI,CAAJ,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACI,CAAJ,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACI,CAAJ,CAAA,CAAA,CAAA,EAAU,CAAV,EAAA,EACM,CADN,CAAA,CAAA,CAAA,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"}
1
+ {"version":3,"file":"cache.cjs","sources":["../../../../src/cache/core/cache.ts"],"sourcesContent":["import { WeakCache } from \"@wry/caches\";\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n} from \"graphql\";\nimport { wrap } from \"optimism\";\nimport { Observable } from \"rxjs\";\n\nimport type {\n GetDataState,\n OperationVariables,\n TypedDocumentNode,\n} from \"@apollo/client\";\nimport type { FragmentType, Unmasked } from \"@apollo/client/masking\";\nimport type { Reference, StoreObject } from \"@apollo/client/utilities\";\nimport { cacheSizes } from \"@apollo/client/utilities\";\nimport { __DEV__ } from \"@apollo/client/utilities/environment\";\nimport type { NoInfer } from \"@apollo/client/utilities/internal\";\nimport {\n equalByQuery,\n getApolloCacheMemoryInternals,\n getFragmentDefinition,\n getFragmentQueryDocument,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport { defaultCacheSizes } from \"../../utilities/caching/sizes.js\";\n\nimport type { Cache } from \"./types/Cache.js\";\nimport type { MissingTree } from \"./types/common.js\";\n\nexport type Transaction = (c: ApolloCache) => void;\n\nexport declare namespace ApolloCache {\n /**\n * Watched fragment options.\n */\n export interface WatchFragmentOptions<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n > {\n /**\n * A GraphQL fragment document parsed into an AST with the `gql`\n * template literal.\n *\n * @docGroup 1. Required options\n */\n fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;\n /**\n * An object containing a `__typename` and primary key fields\n * (such as `id`) identifying the entity object from which the fragment will\n * be retrieved, or a `{ __ref: \"...\" }` reference, or a `string` ID\n * (uncommon).\n *\n * @docGroup 1. Required options\n */\n from: StoreObject | Reference | FragmentType<NoInfer<TData>> | string;\n /**\n * Any variables that the GraphQL fragment may depend on.\n *\n * @docGroup 2. Cache options\n */\n variables?: TVariables;\n /**\n * The name of the fragment defined in the fragment document.\n *\n * Required if the fragment document includes more than one fragment,\n * optional otherwise.\n *\n * @docGroup 2. Cache options\n */\n fragmentName?: string;\n /**\n * If `true`, `watchFragment` returns optimistic results.\n *\n * The default value is `true`.\n *\n * @docGroup 2. Cache options\n */\n optimistic?: boolean;\n }\n\n /**\n * Watched fragment results.\n */\n export type WatchFragmentResult<TData = unknown> =\n | ({\n complete: true;\n missing?: never;\n } & GetDataState<TData, \"complete\">)\n | ({\n complete: false;\n missing: MissingTree;\n } & GetDataState<TData, \"partial\">);\n}\n\nexport abstract class ApolloCache {\n public readonly assumeImmutableResults: boolean = false;\n\n // required to implement\n // core API\n public abstract read<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.ReadOptions<TData, TVariables>): Unmasked<TData> | null;\n public abstract write<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(write: Cache.WriteOptions<TData, TVariables>): Reference | undefined;\n\n /**\n * Returns data read from the cache for a given query along with information\n * about the cache result such as whether the result is complete and details\n * about missing fields.\n *\n * Will return `complete` as `true` if it can fulfill the full cache result or\n * `false` if not. When no data can be fulfilled from the cache, `null` is\n * returned. When `returnPartialData` is `true`, non-null partial results are\n * returned if it contains at least one field that can be fulfilled from the\n * cache.\n */\n public abstract diff<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(query: Cache.DiffOptions<TData, TVariables>): Cache.DiffResult<TData>;\n public abstract watch<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(watch: Cache.WatchOptions<TData, TVariables>): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise<void>;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(serializedState: unknown): this;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): unknown;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Used by data masking to determine if an inline fragment with a type\n // condition matches a given typename. Also used by local resolvers to match a\n // fragment against a typename.\n //\n // If not implemented by a cache subclass, data masking will effectively be\n // disabled since we will not be able to accurately determine if a given type\n // condition for a union or interface matches a particular type.\n public abstract fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string\n ): boolean;\n\n // Function used to lookup a fragment when a fragment definition is not part\n // of the GraphQL document. This is useful for caches, such as InMemoryCache,\n // that register fragments ahead of time so they can be referenced by name.\n public lookupFragment(fragmentName: string): FragmentDefinitionNode | null {\n return null;\n }\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch<U>(options: Cache.BatchOptions<this, U>): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic\n : options.optimistic === false ? null\n : void 0;\n let updateResult: U;\n this.performTransaction(\n () => (updateResult = options.update(this)),\n optimisticId\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n optimisticId: string\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify<Entity extends Record<string, any> = Record<string, any>>(\n options: Cache.ModifyOptions<Entity>\n ): boolean {\n return false;\n }\n\n /**\n * Read data from the cache for the specified query.\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n query,\n variables,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;\n /**\n * {@inheritDoc @apollo/client!ApolloCache#readQuery:member(1)}\n */\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadQueryOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n rootId: options.id || \"ROOT_QUERY\",\n optimistic,\n });\n }\n\n /** {@inheritDoc @apollo/client!ApolloClient#watchFragment:member(1)} */\n public watchFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: ApolloCache.WatchFragmentOptions<TData, TVariables>\n ): Observable<ApolloCache.WatchFragmentResult<Unmasked<TData>>> {\n const {\n fragment,\n fragmentName,\n from,\n optimistic = true,\n ...otherOptions\n } = options;\n const query = this.getFragmentDoc(fragment, fragmentName);\n // While our TypeScript types do not allow for `undefined` as a valid\n // `from`, its possible `useFragment` gives us an `undefined` since it\n // calls` cache.identify` and provides that value to `from`. We are\n // adding this fix here however to ensure those using plain JavaScript\n // and using `cache.identify` themselves will avoid seeing the obscure\n // warning.\n const id =\n typeof from === \"undefined\" || typeof from === \"string\" ?\n from\n : this.identify(from);\n\n if (__DEV__) {\n const actualFragmentName =\n fragmentName || getFragmentDefinition(fragment).name.value;\n\n if (!id) {\n invariant.warn(\n \"Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object.\",\n actualFragmentName\n );\n }\n }\n\n const diffOptions: Cache.DiffOptions<TData, TVariables> = {\n ...otherOptions,\n returnPartialData: true,\n id,\n query,\n optimistic,\n };\n\n let latestDiff: Cache.DiffResult<TData> | undefined;\n\n return new Observable((observer) => {\n return this.watch<TData, TVariables>({\n ...diffOptions,\n immediate: true,\n callback: (diff) => {\n let data = diff.result;\n\n // TODO: Remove this once `watchFragment` supports `null` as valid\n // value emitted\n if (data === null) {\n data = {} as any;\n }\n\n if (\n // Always ensure we deliver the first result\n latestDiff &&\n equalByQuery(\n query,\n { data: latestDiff.result },\n { data },\n options.variables\n )\n ) {\n return;\n }\n\n const result = {\n data,\n dataState: diff.complete ? \"complete\" : \"partial\",\n complete: !!diff.complete,\n } as ApolloCache.WatchFragmentResult<Unmasked<TData>>;\n\n if (diff.missing) {\n result.missing = diff.missing.missing;\n }\n\n latestDiff = { ...diff, result: data } as Cache.DiffResult<TData>;\n observer.next(result);\n },\n });\n });\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument, {\n max:\n cacheSizes[\"cache.fragmentQueryDocuments\"] ||\n defaultCacheSizes[\"cache.fragmentQueryDocuments\"],\n cache: WeakCache,\n });\n\n /**\n * Read data from the cache for the specified fragment.\n */\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n fragment,\n variables,\n fragmentName,\n id,\n optimistic,\n returnPartialData,\n }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n /**\n * @deprecated Pass the `optimistic` argument as part of the first argument\n * instead of passing it as a separate option.\n */\n optimistic: boolean\n ): Unmasked<TData> | null;\n public readFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.ReadFragmentOptions<TData, TVariables>,\n optimistic = !!options.optimistic\n ): Unmasked<TData> | null {\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic,\n });\n }\n\n /**\n * Writes data to the root of the cache using the specified query to validate that\n * the shape of the data you’re writing to the cache is the same as the shape of\n * the data required by the query. Great for prepping the cache with initial data.\n */\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n query,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;\n public writeQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n dataId: id || \"ROOT_QUERY\",\n result: data,\n })\n );\n }\n\n /**\n * Similar to `writeQuery` (writes data to the cache) but uses the specified\n * fragment to validate that the shape of the data you’re writing to the cache\n * is the same as the shape of the data required by the fragment.\n */\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n // spread in type definitions for discoverability in the docs\n data,\n fragment,\n fragmentName,\n variables,\n overwrite,\n id,\n broadcast,\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;\n public writeFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >({\n id,\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined {\n return this.write(\n Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n })\n );\n }\n\n public updateQuery<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateQueryOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment<\n TData = unknown,\n TVariables extends OperationVariables = OperationVariables,\n >(\n options: Cache.UpdateFragmentOptions<TData, TVariables>,\n update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void\n ): Unmasked<TData> | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n /**\n * @experimental\n * @internal\n * This is not a stable API - it is used in development builds to expose\n * information to the DevTools.\n * Use at your own risk!\n */\n public getMemoryInternals?: typeof getApolloCacheMemoryInternals;\n}\n\nif (__DEV__) {\n ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals;\n}\n"],"names":[],"mappings":";;;;;;;AAAA,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;AAMA,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;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AASA,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;AACA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,CAA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA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"}
@@ -7,66 +7,67 @@ import type { NoInfer } from "@apollo/client/utilities/internal";
7
7
  import { getApolloCacheMemoryInternals } from "@apollo/client/utilities/internal";
8
8
  import type { Cache } from "./types/Cache.cjs";
9
9
  import type { MissingTree } from "./types/common.cjs";
10
- import type { DataProxy } from "./types/DataProxy.cjs";
11
10
  export type Transaction = (c: ApolloCache) => void;
12
- /**
13
- * Watched fragment options.
14
- */
15
- export interface WatchFragmentOptions<TData, TVars> {
11
+ export declare namespace ApolloCache {
16
12
  /**
17
- * A GraphQL fragment document parsed into an AST with the `gql`
18
- * template literal.
19
- *
20
- * @docGroup 1. Required options
21
- */
22
- fragment: DocumentNode | TypedDocumentNode<TData, TVars>;
23
- /**
24
- * An object containing a `__typename` and primary key fields
25
- * (such as `id`) identifying the entity object from which the fragment will
26
- * be retrieved, or a `{ __ref: "..." }` reference, or a `string` ID
27
- * (uncommon).
28
- *
29
- * @docGroup 1. Required options
30
- */
31
- from: StoreObject | Reference | FragmentType<NoInfer<TData>> | string;
32
- /**
33
- * Any variables that the GraphQL fragment may depend on.
34
- *
35
- * @docGroup 2. Cache options
13
+ * Watched fragment options.
36
14
  */
37
- variables?: TVars;
38
- /**
39
- * The name of the fragment defined in the fragment document.
40
- *
41
- * Required if the fragment document includes more than one fragment,
42
- * optional otherwise.
43
- *
44
- * @docGroup 2. Cache options
45
- */
46
- fragmentName?: string;
47
- /**
48
- * If `true`, `watchFragment` returns optimistic results.
49
- *
50
- * The default value is `true`.
51
- *
52
- * @docGroup 2. Cache options
15
+ interface WatchFragmentOptions<TData = unknown, TVariables extends OperationVariables = OperationVariables> {
16
+ /**
17
+ * A GraphQL fragment document parsed into an AST with the `gql`
18
+ * template literal.
19
+ *
20
+ * @docGroup 1. Required options
21
+ */
22
+ fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;
23
+ /**
24
+ * An object containing a `__typename` and primary key fields
25
+ * (such as `id`) identifying the entity object from which the fragment will
26
+ * be retrieved, or a `{ __ref: "..." }` reference, or a `string` ID
27
+ * (uncommon).
28
+ *
29
+ * @docGroup 1. Required options
30
+ */
31
+ from: StoreObject | Reference | FragmentType<NoInfer<TData>> | string;
32
+ /**
33
+ * Any variables that the GraphQL fragment may depend on.
34
+ *
35
+ * @docGroup 2. Cache options
36
+ */
37
+ variables?: TVariables;
38
+ /**
39
+ * The name of the fragment defined in the fragment document.
40
+ *
41
+ * Required if the fragment document includes more than one fragment,
42
+ * optional otherwise.
43
+ *
44
+ * @docGroup 2. Cache options
45
+ */
46
+ fragmentName?: string;
47
+ /**
48
+ * If `true`, `watchFragment` returns optimistic results.
49
+ *
50
+ * The default value is `true`.
51
+ *
52
+ * @docGroup 2. Cache options
53
+ */
54
+ optimistic?: boolean;
55
+ }
56
+ /**
57
+ * Watched fragment results.
53
58
  */
54
- optimistic?: boolean;
59
+ type WatchFragmentResult<TData = unknown> = ({
60
+ complete: true;
61
+ missing?: never;
62
+ } & GetDataState<TData, "complete">) | ({
63
+ complete: false;
64
+ missing: MissingTree;
65
+ } & GetDataState<TData, "partial">);
55
66
  }
56
- /**
57
- * Watched fragment results.
58
- */
59
- export type WatchFragmentResult<TData> = ({
60
- complete: true;
61
- missing?: never;
62
- } & GetDataState<TData, "complete">) | ({
63
- complete: false;
64
- missing: MissingTree;
65
- } & GetDataState<TData, "partial">);
66
- export declare abstract class ApolloCache implements DataProxy {
67
+ export declare abstract class ApolloCache {
67
68
  readonly assumeImmutableResults: boolean;
68
- abstract read<TData = unknown, TVariables = OperationVariables>(query: Cache.ReadOptions<TVariables, TData>): Unmasked<TData> | null;
69
- abstract write<TData = unknown, TVariables = OperationVariables>(write: Cache.WriteOptions<TData, TVariables>): Reference | undefined;
69
+ abstract read<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: Cache.ReadOptions<TData, TVariables>): Unmasked<TData> | null;
70
+ abstract write<TData = unknown, TVariables extends OperationVariables = OperationVariables>(write: Cache.WriteOptions<TData, TVariables>): Reference | undefined;
70
71
  /**
71
72
  * Returns data read from the cache for a given query along with information
72
73
  * about the cache result such as whether the result is complete and details
@@ -79,7 +80,7 @@ export declare abstract class ApolloCache implements DataProxy {
79
80
  * cache.
80
81
  */
81
82
  abstract diff<TData = unknown, TVariables extends OperationVariables = OperationVariables>(query: Cache.DiffOptions<TData, TVariables>): Cache.DiffResult<TData>;
82
- abstract watch<TData = unknown, TVariables = OperationVariables>(watch: Cache.WatchOptions<TData, TVariables>): () => void;
83
+ abstract watch<TData = unknown, TVariables extends OperationVariables = OperationVariables>(watch: Cache.WatchOptions<TData, TVariables>): () => void;
83
84
  abstract reset(options?: Cache.ResetOptions): Promise<void>;
84
85
  abstract evict(options: Cache.EvictOptions): boolean;
85
86
  /**
@@ -108,11 +109,11 @@ export declare abstract class ApolloCache implements DataProxy {
108
109
  /**
109
110
  * Read data from the cache for the specified query.
110
111
  */
111
- readQuery<TData = unknown, TVariables = OperationVariables>({ query, variables, id, optimistic, returnPartialData, }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;
112
+ readQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>({ query, variables, id, optimistic, returnPartialData, }: Cache.ReadQueryOptions<TData, TVariables>): Unmasked<TData> | null;
112
113
  /**
113
114
  * Read data from the cache for the specified query.
114
115
  */
115
- readQuery<TData = unknown, TVariables = OperationVariables>(options: Cache.ReadQueryOptions<TData, TVariables>,
116
+ readQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: Cache.ReadQueryOptions<TData, TVariables>,
116
117
  /**
117
118
  * @deprecated Pass the `optimistic` argument as part of the first argument
118
119
  * instead of passing it as a separate option.
@@ -129,13 +130,13 @@ export declare abstract class ApolloCache implements DataProxy {
129
130
  *
130
131
  * 3.10.0
131
132
  */
132
- watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: WatchFragmentOptions<TData, TVariables>): Observable<WatchFragmentResult<Unmasked<TData>>>;
133
+ watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloCache.WatchFragmentOptions<TData, TVariables>): Observable<ApolloCache.WatchFragmentResult<Unmasked<TData>>>;
133
134
  private getFragmentDoc;
134
135
  /**
135
136
  * Read data from the cache for the specified fragment.
136
137
  */
137
- readFragment<TData = unknown, TVariables = OperationVariables>({ fragment, variables, fragmentName, id, optimistic, returnPartialData, }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;
138
- readFragment<TData = unknown, TVariables = OperationVariables>(options: Cache.ReadFragmentOptions<TData, TVariables>,
138
+ readFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>({ fragment, variables, fragmentName, id, optimistic, returnPartialData, }: Cache.ReadFragmentOptions<TData, TVariables>): Unmasked<TData> | null;
139
+ readFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: Cache.ReadFragmentOptions<TData, TVariables>,
139
140
  /**
140
141
  * @deprecated Pass the `optimistic` argument as part of the first argument
141
142
  * instead of passing it as a separate option.
@@ -146,15 +147,15 @@ export declare abstract class ApolloCache implements DataProxy {
146
147
  * the shape of the data you’re writing to the cache is the same as the shape of
147
148
  * the data required by the query. Great for prepping the cache with initial data.
148
149
  */
149
- writeQuery<TData = unknown, TVariables = OperationVariables>({ data, query, variables, overwrite, id, broadcast, }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;
150
+ writeQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>({ data, query, variables, overwrite, id, broadcast, }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined;
150
151
  /**
151
152
  * Similar to `writeQuery` (writes data to the cache) but uses the specified
152
153
  * fragment to validate that the shape of the data you’re writing to the cache
153
154
  * is the same as the shape of the data required by the fragment.
154
155
  */
155
- writeFragment<TData = unknown, TVariables = OperationVariables>({ data, fragment, fragmentName, variables, overwrite, id, broadcast, }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;
156
- updateQuery<TData = unknown, TVariables = OperationVariables>(options: Cache.UpdateQueryOptions<TData, TVariables>, update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void): Unmasked<TData> | null;
157
- updateFragment<TData = unknown, TVariables = OperationVariables>(options: Cache.UpdateFragmentOptions<TData, TVariables>, update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void): Unmasked<TData> | null;
156
+ writeFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>({ data, fragment, fragmentName, variables, overwrite, id, broadcast, }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined;
157
+ updateQuery<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: Cache.UpdateQueryOptions<TData, TVariables>, update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void): Unmasked<TData> | null;
158
+ updateFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: Cache.UpdateFragmentOptions<TData, TVariables>, update: (data: Unmasked<TData> | null) => Unmasked<TData> | null | void): Unmasked<TData> | null;
158
159
  /**
159
160
  * @experimental
160
161
  * @internal
@@ -1,7 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cache = void 0;
4
- var Cache;
5
- (function (Cache) {
6
- })(Cache || (exports.Cache = Cache = {}));
7
3
  //# sourceMappingURL=Cache.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.cjs","sources":["../../../../../src/cache/core/types/Cache.ts"],"sourcesContent":["import type { OperationVariables } from \"@apollo/client\";\nimport type { Unmasked } from \"@apollo/client/masking\";\n\nimport type { ApolloCache } from \"../cache.js\";\n\nimport type { AllFieldsModifier, Modifiers } from \"./common.js\";\nimport { DataProxy } from \"./DataProxy.js\";\n\nexport namespace Cache {\n export type WatchCallback<TData = unknown> = (\n diff: Cache.DiffResult<TData>,\n lastDiff?: Cache.DiffResult<TData>\n ) => void;\n\n export interface ReadOptions<TVariables = OperationVariables, TData = unknown>\n extends DataProxy.Query<TVariables, TData> {\n rootId?: string;\n previousResult?: any;\n optimistic: boolean;\n returnPartialData?: boolean;\n }\n\n export interface WriteOptions<\n TData = unknown,\n TVariables = OperationVariables,\n > extends Omit<DataProxy.Query<TVariables, TData>, \"id\">,\n Omit<DataProxy.WriteOptions<TData>, \"data\"> {\n dataId?: string;\n result: Unmasked<TData>;\n }\n\n export interface DiffOptions<TData = unknown, TVariables = OperationVariables>\n extends Omit<ReadOptions<TVariables, TData>, \"rootId\"> {\n // The DiffOptions interface is currently just an alias for\n // ReadOptions, though DiffOptions used to be responsible for\n // declaring the returnPartialData option.\n }\n\n export interface WatchOptions<\n TData = unknown,\n TVariables = OperationVariables,\n > extends DiffOptions<TData, TVariables> {\n watcher?: object;\n immediate?: boolean;\n callback: WatchCallback<TData>;\n lastDiff?: DiffResult<TData>;\n }\n\n export interface EvictOptions {\n id?: string;\n fieldName?: string;\n args?: Record<string, any>;\n broadcast?: boolean;\n }\n\n // Although you can call cache.reset() without options, its behavior can be\n // configured by passing a Cache.ResetOptions object.\n export interface ResetOptions {\n discardWatches?: boolean;\n }\n\n export interface ModifyOptions<\n Entity extends Record<string, any> = Record<string, any>,\n > {\n id?: string;\n fields: Modifiers<Entity> | AllFieldsModifier<Entity>;\n optimistic?: boolean;\n broadcast?: boolean;\n }\n\n export interface BatchOptions<\n TCache extends ApolloCache,\n TUpdateResult = void,\n > {\n // Same as the first parameter of performTransaction, except the cache\n // argument will have the subclass type rather than ApolloCache.\n update(cache: TCache): TUpdateResult;\n\n // Passing a string for this option creates a new optimistic layer, with the\n // given string as its layer.id, just like passing a string for the\n // optimisticId parameter of performTransaction. Passing true is the same as\n // passing undefined to performTransaction (running the batch operation\n // against the current top layer of the cache), and passing false is the\n // same as passing null (running the operation against root/non-optimistic\n // cache data).\n optimistic?: string | boolean;\n\n // If you specify the ID of an optimistic layer using this option, that\n // layer will be removed as part of the batch transaction, triggering at\n // most one broadcast for both the transaction and the removal of the layer.\n // Note: this option is needed because calling cache.removeOptimistic during\n // the transaction function may not be not safe, since any modifications to\n // cache layers may be discarded after the transaction finishes.\n removeOptimistic?: string;\n\n // If you want to find out which watched queries were invalidated during\n // this batch operation, pass this optional callback function. Returning\n // false from the callback will prevent broadcasting this result.\n onWatchUpdated?: (\n this: TCache,\n watch: Cache.WatchOptions,\n diff: Cache.DiffResult<any>,\n lastDiff?: Cache.DiffResult<any> | undefined\n ) => any;\n }\n\n export import DiffResult = DataProxy.DiffResult;\n export import ReadQueryOptions = DataProxy.ReadQueryOptions;\n export import ReadFragmentOptions = DataProxy.ReadFragmentOptions;\n export import WriteQueryOptions = DataProxy.WriteQueryOptions;\n export import WriteFragmentOptions = DataProxy.WriteFragmentOptions;\n export import UpdateQueryOptions = DataProxy.UpdateQueryOptions;\n export import UpdateFragmentOptions = DataProxy.UpdateFragmentOptions;\n export import Fragment = DataProxy.Fragment;\n}\n"],"names":[],"mappings":";;;AAQA,CAAA,CAAA,EAAiB,CAAjB,CAAA,CAAA,CAAA,CAAsB;AAAtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAiB,CAAjB,CAAA,CAAA,CAAA,CAAsB,EAAtB;AA0GA,CAAC,CAAD,CA1GiB,CA0GjB,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EA1GiB,CA0GjB,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"Cache.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}