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

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 (631) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/README.md +40 -40
  3. package/__cjs/cache/core/cache.cjs +14 -13
  4. package/__cjs/cache/core/cache.cjs.map +1 -1
  5. package/__cjs/cache/core/cache.d.cts +77 -71
  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 +94 -112
  28. package/__cjs/core/ApolloClient.cjs.map +1 -1
  29. package/__cjs/core/ApolloClient.d.cts +758 -182
  30. package/__cjs/core/ObservableQuery.cjs +10 -10
  31. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  32. package/__cjs/core/ObservableQuery.d.cts +131 -112
  33. package/__cjs/core/QueryInfo.cjs.map +1 -1
  34. package/__cjs/core/QueryInfo.d.cts +8 -7
  35. package/__cjs/core/QueryManager.cjs +15 -15
  36. package/__cjs/core/QueryManager.cjs.map +1 -1
  37. package/__cjs/core/QueryManager.d.cts +20 -20
  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 +10 -6
  43. package/__cjs/core/types.d.cts +69 -157
  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 +64 -11
  48. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  49. package/__cjs/errors/CombinedGraphQLErrors.d.cts +168 -14
  50. package/__cjs/errors/CombinedProtocolErrors.cjs +54 -1
  51. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  52. package/__cjs/errors/CombinedProtocolErrors.d.cts +132 -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 +51 -8
  60. package/__cjs/errors/ServerError.cjs.map +1 -1
  61. package/__cjs/errors/ServerError.d.cts +71 -11
  62. package/__cjs/errors/ServerParseError.cjs +46 -8
  63. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  64. package/__cjs/errors/ServerParseError.d.cts +72 -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/defer20220824.cjs.map +1 -1
  69. package/__cjs/incremental/handlers/defer20220824.d.cts +4 -4
  70. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  71. package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -1
  72. package/__cjs/incremental/handlers/notImplemented.d.cts +2 -2
  73. package/__cjs/incremental/types.d.cts +4 -4
  74. package/__cjs/invariantErrorCodes.cjs +81 -85
  75. package/__cjs/link/batch/batchLink.cjs +3 -9
  76. package/__cjs/link/batch/batchLink.cjs.map +1 -1
  77. package/__cjs/link/batch/batchLink.d.cts +2 -3
  78. package/__cjs/link/batch/batching.cjs +1 -1
  79. package/__cjs/link/batch/batching.cjs.map +1 -1
  80. package/__cjs/link/batch/batching.d.cts +7 -7
  81. package/__cjs/link/batch-http/batchHttpLink.cjs +8 -5
  82. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  83. package/__cjs/link/batch-http/batchHttpLink.d.cts +1 -2
  84. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
  85. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +4 -4
  86. package/__cjs/link/context/index.cjs +1 -1
  87. package/__cjs/link/context/index.cjs.map +1 -1
  88. package/__cjs/link/context/index.d.cts +4 -5
  89. package/__cjs/link/core/ApolloLink.cjs +227 -55
  90. package/__cjs/link/core/ApolloLink.cjs.map +1 -1
  91. package/__cjs/link/core/ApolloLink.d.cts +355 -9
  92. package/__cjs/link/core/concat.cjs +4 -0
  93. package/__cjs/link/core/concat.cjs.map +1 -1
  94. package/__cjs/link/core/concat.d.cts +4 -0
  95. package/__cjs/link/core/deprecated.cjs +3 -0
  96. package/__cjs/link/core/deprecated.cjs.map +1 -0
  97. package/__cjs/link/core/deprecated.d.cts +10 -0
  98. package/__cjs/link/core/empty.cjs +4 -0
  99. package/__cjs/link/core/empty.cjs.map +1 -1
  100. package/__cjs/link/core/empty.d.cts +4 -0
  101. package/__cjs/link/core/from.cjs +4 -0
  102. package/__cjs/link/core/from.cjs.map +1 -1
  103. package/__cjs/link/core/from.d.cts +4 -0
  104. package/__cjs/link/core/split.cjs +4 -0
  105. package/__cjs/link/core/split.cjs.map +1 -1
  106. package/__cjs/link/core/split.d.cts +4 -0
  107. package/__cjs/link/core/types.d.cts +2 -33
  108. package/__cjs/link/error/index.cjs.map +1 -1
  109. package/__cjs/link/error/index.d.cts +20 -6
  110. package/__cjs/link/http/BaseHttpLink.cjs +2 -2
  111. package/__cjs/link/http/BaseHttpLink.cjs.map +1 -1
  112. package/__cjs/link/http/HttpLink.cjs +4 -1
  113. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  114. package/__cjs/link/http/HttpLink.d.cts +3 -3
  115. package/__cjs/link/http/checkFetcher.cjs +1 -1
  116. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +41 -26
  117. package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
  118. package/__cjs/link/http/parseAndCheckHttpResponse.d.cts +2 -2
  119. package/__cjs/link/http/selectHttpOptionsAndBody.cjs.map +1 -1
  120. package/__cjs/link/http/selectHttpOptionsAndBody.d.cts +3 -3
  121. package/__cjs/link/http/selectURI.cjs.map +1 -1
  122. package/__cjs/link/http/selectURI.d.cts +2 -2
  123. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  124. package/__cjs/link/index.cjs.map +1 -1
  125. package/__cjs/link/index.d.cts +2 -1
  126. package/__cjs/link/persisted-queries/index.cjs +2 -2
  127. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  128. package/__cjs/link/persisted-queries/index.d.cts +11 -12
  129. package/__cjs/link/retry/delayFunction.cjs.map +1 -1
  130. package/__cjs/link/retry/delayFunction.d.cts +3 -3
  131. package/__cjs/link/retry/retryFunction.cjs.map +1 -1
  132. package/__cjs/link/retry/retryFunction.d.cts +4 -4
  133. package/__cjs/link/retry/retryLink.cjs +2 -2
  134. package/__cjs/link/retry/retryLink.cjs.map +1 -1
  135. package/__cjs/link/retry/retryLink.d.cts +1 -2
  136. package/__cjs/link/schema/index.cjs.map +1 -1
  137. package/__cjs/link/schema/index.d.cts +2 -3
  138. package/__cjs/link/subscriptions/index.cjs.map +1 -1
  139. package/__cjs/link/subscriptions/index.d.cts +1 -2
  140. package/__cjs/link/utils/createOperation.cjs +12 -4
  141. package/__cjs/link/utils/createOperation.cjs.map +1 -1
  142. package/__cjs/link/utils/createOperation.d.cts +2 -2
  143. package/__cjs/link/utils/index.cjs +1 -5
  144. package/__cjs/link/utils/index.cjs.map +1 -1
  145. package/__cjs/link/utils/index.d.cts +0 -2
  146. package/__cjs/link/ws/index.cjs.map +1 -1
  147. package/__cjs/link/ws/index.d.cts +1 -2
  148. package/__cjs/local-state/LocalState.cjs +55 -9
  149. package/__cjs/local-state/LocalState.cjs.map +1 -1
  150. package/__cjs/local-state/LocalState.d.cts +94 -0
  151. package/__cjs/masking/GraphQLCodegenDataMasking.d.cts +6 -7
  152. package/__cjs/masking/internal/types.d.cts +70 -70
  153. package/__cjs/masking/maskDefinition.cjs +2 -2
  154. package/__cjs/masking/maskFragment.cjs +2 -2
  155. package/__cjs/masking/maskOperation.cjs +1 -1
  156. package/__cjs/masking/utils.cjs +3 -3
  157. package/__cjs/react/context/ApolloContext.cjs +1 -1
  158. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  159. package/__cjs/react/hooks/internal/useDeepMemo.cjs +0 -3
  160. package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
  161. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -1
  162. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +2 -2
  163. package/__cjs/react/hooks/internal/wrapHook.cjs +1 -0
  164. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  165. package/__cjs/react/hooks/internal/wrapHook.d.cts +8 -7
  166. package/__cjs/react/hooks/useApolloClient.cjs +2 -2
  167. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  168. package/__cjs/react/hooks/useApolloClient.d.cts +2 -2
  169. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  170. package/__cjs/react/hooks/useBackgroundQuery.d.cts +850 -90
  171. package/__cjs/react/hooks/useFragment.cjs +7 -0
  172. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  173. package/__cjs/react/hooks/useFragment.d.cts +53 -2
  174. package/__cjs/react/hooks/useLazyQuery.cjs +0 -38
  175. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  176. package/__cjs/react/hooks/useLazyQuery.d.cts +317 -165
  177. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  178. package/__cjs/react/hooks/useLoadableQuery.d.cts +153 -175
  179. package/__cjs/react/hooks/useMutation.cjs +6 -7
  180. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  181. package/__cjs/react/hooks/useMutation.d.cts +87 -65
  182. package/__cjs/react/hooks/useQuery.cjs +1 -35
  183. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  184. package/__cjs/react/hooks/useQuery.d.cts +207 -103
  185. package/__cjs/react/hooks/useQueryRefHandlers.cjs +2 -1
  186. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  187. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +34 -5
  188. package/__cjs/react/hooks/useReactiveVar.cjs +2 -1
  189. package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
  190. package/__cjs/react/hooks/useReactiveVar.d.cts +2 -1
  191. package/__cjs/react/hooks/useReadQuery.cjs +29 -0
  192. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  193. package/__cjs/react/hooks/useReadQuery.d.cts +92 -16
  194. package/__cjs/react/hooks/useSubscription.cjs +8 -9
  195. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  196. package/__cjs/react/hooks/useSubscription.d.cts +108 -33
  197. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  198. package/__cjs/react/hooks/useSuspenseFragment.d.cts +61 -29
  199. package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -1
  200. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  201. package/__cjs/react/hooks/useSuspenseQuery.d.cts +471 -69
  202. package/__cjs/react/index.cjs +1 -3
  203. package/__cjs/react/index.cjs.map +1 -1
  204. package/__cjs/react/index.d.cts +0 -1
  205. package/__cjs/react/index.react-server.cjs +1 -3
  206. package/__cjs/react/index.react-server.cjs.map +1 -1
  207. package/__cjs/react/index.react-server.d.cts +0 -1
  208. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  209. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -3
  210. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  211. package/__cjs/react/internal/cache/QueryReference.d.cts +14 -12
  212. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  213. package/__cjs/react/internal/cache/SuspenseCache.d.cts +2 -2
  214. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  215. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +6 -4
  216. package/__cjs/react/internal/index.cjs +1 -0
  217. package/__cjs/react/internal/index.cjs.map +1 -1
  218. package/__cjs/react/internal/index.d.cts +1 -1
  219. package/__cjs/react/internal/types.d.cts +3 -3
  220. package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -1
  221. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  222. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +60 -51
  223. package/__cjs/react/ssr/prerenderStatic.cjs +5 -4
  224. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  225. package/__cjs/react/ssr/prerenderStatic.d.cts +11 -9
  226. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  227. package/__cjs/react/types/deprecated.d.cts +1 -1
  228. package/__cjs/react/types/types.documentation.d.cts +15 -15
  229. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  230. package/__cjs/testing/core/mocking/mockLink.d.cts +8 -8
  231. package/__cjs/testing/core/mocking/mockSubscriptionLink.cjs.map +1 -1
  232. package/__cjs/testing/core/mocking/mockSubscriptionLink.d.cts +3 -4
  233. package/__cjs/testing/core/types/deprecated.d.cts +3 -2
  234. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  235. package/__cjs/testing/react/MockedProvider.d.cts +2 -3
  236. package/__cjs/utilities/HKT.d.cts +8 -7
  237. package/__cjs/utilities/caching/sizes.cjs +3 -3
  238. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  239. package/__cjs/utilities/caching/sizes.d.cts +4 -6
  240. package/__cjs/utilities/graphql/DocumentTransform.cjs +2 -2
  241. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  242. package/__cjs/utilities/index.cjs +2 -3
  243. package/__cjs/utilities/index.cjs.map +1 -1
  244. package/__cjs/utilities/index.d.cts +1 -2
  245. package/__cjs/utilities/{shared → internal}/canonicalStringify.cjs +5 -7
  246. package/__cjs/utilities/internal/canonicalStringify.cjs.map +1 -0
  247. package/__cjs/utilities/{shared → internal}/canonicalStringify.d.cts +1 -1
  248. package/__cjs/utilities/internal/checkDocument.cjs +2 -2
  249. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  250. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -1
  251. package/__cjs/{core → utilities/internal}/equalByQuery.cjs +13 -7
  252. package/__cjs/utilities/internal/equalByQuery.cjs.map +1 -0
  253. package/__cjs/utilities/internal/equalByQuery.d.cts +5 -0
  254. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +13 -3
  255. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -1
  256. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +13 -3
  257. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  258. package/__cjs/utilities/internal/getStoreKeyName.cjs +1 -2
  259. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  260. package/__cjs/utilities/internal/index.cjs +6 -2
  261. package/__cjs/utilities/internal/index.cjs.map +1 -1
  262. package/__cjs/utilities/internal/index.d.cts +2 -0
  263. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -1
  264. package/__cjs/utilities/internal/mergeOptions.d.cts +2 -2
  265. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  266. package/__cjs/utilities/internal/toQueryResult.d.cts +2 -2
  267. package/__cjs/utilities/internal/types/DocumentationTypes.d.cts +32 -26
  268. package/__cjs/utilities/internal/types/NoInfer.d.cts +31 -25
  269. package/__cjs/utilities/internal/types/VariablesOption.d.cts +2 -6
  270. package/__cjs/utilities/subscriptions/relay/index.cjs +2 -0
  271. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  272. package/__cjs/version.cjs +1 -1
  273. package/cache/core/cache.d.ts +77 -71
  274. package/cache/core/cache.js +15 -14
  275. package/cache/core/cache.js.map +1 -1
  276. package/cache/core/types/Cache.d.ts +200 -15
  277. package/cache/core/types/Cache.js +1 -3
  278. package/cache/core/types/Cache.js.map +1 -1
  279. package/cache/deprecated.d.ts +6 -0
  280. package/cache/deprecated.js +2 -0
  281. package/cache/deprecated.js.map +1 -0
  282. package/cache/index.d.ts +2 -2
  283. package/cache/index.js.map +1 -1
  284. package/cache/inmemory/entityStore.d.ts +17 -16
  285. package/cache/inmemory/entityStore.js +25 -28
  286. package/cache/inmemory/entityStore.js.map +1 -1
  287. package/cache/inmemory/inMemoryCache.d.ts +4 -4
  288. package/cache/inmemory/inMemoryCache.js.map +1 -1
  289. package/cache/inmemory/key-extractor.js +1 -1
  290. package/cache/inmemory/policies.d.ts +3 -2
  291. package/cache/inmemory/policies.js +4 -4
  292. package/cache/inmemory/policies.js.map +1 -1
  293. package/cache/inmemory/readFromStore.js +2 -2
  294. package/cache/inmemory/writeToStore.d.ts +1 -1
  295. package/cache/inmemory/writeToStore.js +4 -4
  296. package/cache/inmemory/writeToStore.js.map +1 -1
  297. package/core/ApolloClient.d.ts +758 -182
  298. package/core/ApolloClient.js +94 -112
  299. package/core/ApolloClient.js.map +1 -1
  300. package/core/ObservableQuery.d.ts +131 -112
  301. package/core/ObservableQuery.js +10 -10
  302. package/core/ObservableQuery.js.map +1 -1
  303. package/core/QueryInfo.d.ts +8 -7
  304. package/core/QueryInfo.js.map +1 -1
  305. package/core/QueryManager.d.ts +20 -20
  306. package/core/QueryManager.js +15 -15
  307. package/core/QueryManager.js.map +1 -1
  308. package/core/deprecated.d.ts +29 -0
  309. package/core/deprecated.js +2 -0
  310. package/core/deprecated.js.map +1 -0
  311. package/core/index.d.ts +10 -6
  312. package/core/index.js.map +1 -1
  313. package/core/types.d.ts +69 -157
  314. package/core/types.js.map +1 -1
  315. package/core/watchQueryOptions.d.ts +9 -298
  316. package/core/watchQueryOptions.js.map +1 -1
  317. package/dev/setErrorMessageHandler.d.ts +4 -4
  318. package/dev/setErrorMessageHandler.js.map +1 -1
  319. package/errors/CombinedGraphQLErrors.d.ts +169 -15
  320. package/errors/CombinedGraphQLErrors.js +65 -12
  321. package/errors/CombinedGraphQLErrors.js.map +1 -1
  322. package/errors/CombinedProtocolErrors.d.ts +133 -3
  323. package/errors/CombinedProtocolErrors.js +55 -2
  324. package/errors/CombinedProtocolErrors.js.map +1 -1
  325. package/errors/LinkError.d.ts +45 -2
  326. package/errors/LinkError.js +45 -2
  327. package/errors/LinkError.js.map +1 -1
  328. package/errors/LocalStateError.d.ts +42 -6
  329. package/errors/LocalStateError.js +36 -6
  330. package/errors/LocalStateError.js.map +1 -1
  331. package/errors/ServerError.d.ts +72 -12
  332. package/errors/ServerError.js +52 -9
  333. package/errors/ServerError.js.map +1 -1
  334. package/errors/ServerParseError.d.ts +73 -17
  335. package/errors/ServerParseError.js +47 -9
  336. package/errors/ServerParseError.js.map +1 -1
  337. package/errors/UnconventionalError.d.ts +46 -2
  338. package/errors/UnconventionalError.js +46 -2
  339. package/errors/UnconventionalError.js.map +1 -1
  340. package/incremental/handlers/defer20220824.d.ts +4 -4
  341. package/incremental/handlers/defer20220824.js.map +1 -1
  342. package/incremental/handlers/notImplemented.d.ts +2 -2
  343. package/incremental/handlers/notImplemented.js +1 -1
  344. package/incremental/handlers/notImplemented.js.map +1 -1
  345. package/incremental/types.d.ts +4 -4
  346. package/incremental/types.js.map +1 -1
  347. package/invariantErrorCodes.js +81 -85
  348. package/link/batch/batchLink.d.ts +2 -3
  349. package/link/batch/batchLink.js +3 -9
  350. package/link/batch/batchLink.js.map +1 -1
  351. package/link/batch/batching.d.ts +7 -7
  352. package/link/batch/batching.js +2 -2
  353. package/link/batch/batching.js.map +1 -1
  354. package/link/batch-http/batchHttpLink.d.ts +1 -2
  355. package/link/batch-http/batchHttpLink.js +7 -4
  356. package/link/batch-http/batchHttpLink.js.map +1 -1
  357. package/link/client-awareness/ClientAwarenessLink.d.ts +4 -4
  358. package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
  359. package/link/context/index.d.ts +4 -5
  360. package/link/context/index.js +1 -1
  361. package/link/context/index.js.map +1 -1
  362. package/link/core/ApolloLink.d.ts +355 -9
  363. package/link/core/ApolloLink.js +228 -57
  364. package/link/core/ApolloLink.js.map +1 -1
  365. package/link/core/concat.d.ts +4 -0
  366. package/link/core/concat.js +4 -0
  367. package/link/core/concat.js.map +1 -1
  368. package/link/core/deprecated.d.ts +10 -0
  369. package/link/core/deprecated.js +2 -0
  370. package/link/core/deprecated.js.map +1 -0
  371. package/link/core/empty.d.ts +4 -0
  372. package/link/core/empty.js +4 -0
  373. package/link/core/empty.js.map +1 -1
  374. package/link/core/from.d.ts +4 -0
  375. package/link/core/from.js +4 -0
  376. package/link/core/from.js.map +1 -1
  377. package/link/core/split.d.ts +4 -0
  378. package/link/core/split.js +4 -0
  379. package/link/core/split.js.map +1 -1
  380. package/link/core/types.d.ts +2 -33
  381. package/link/core/types.js.map +1 -1
  382. package/link/error/index.d.ts +20 -6
  383. package/link/error/index.js.map +1 -1
  384. package/link/http/BaseHttpLink.js +2 -2
  385. package/link/http/BaseHttpLink.js.map +1 -1
  386. package/link/http/HttpLink.d.ts +3 -3
  387. package/link/http/HttpLink.js +4 -1
  388. package/link/http/HttpLink.js.map +1 -1
  389. package/link/http/checkFetcher.js +1 -1
  390. package/link/http/parseAndCheckHttpResponse.d.ts +2 -2
  391. package/link/http/parseAndCheckHttpResponse.js +41 -26
  392. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  393. package/link/http/selectHttpOptionsAndBody.d.ts +3 -3
  394. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  395. package/link/http/selectURI.d.ts +2 -2
  396. package/link/http/selectURI.js.map +1 -1
  397. package/link/http/serializeFetchParameter.js +1 -1
  398. package/link/index.d.ts +2 -1
  399. package/link/index.js.map +1 -1
  400. package/link/persisted-queries/index.d.ts +11 -12
  401. package/link/persisted-queries/index.js +2 -2
  402. package/link/persisted-queries/index.js.map +1 -1
  403. package/link/retry/delayFunction.d.ts +3 -3
  404. package/link/retry/delayFunction.js.map +1 -1
  405. package/link/retry/retryFunction.d.ts +4 -4
  406. package/link/retry/retryFunction.js.map +1 -1
  407. package/link/retry/retryLink.d.ts +1 -2
  408. package/link/retry/retryLink.js +2 -2
  409. package/link/retry/retryLink.js.map +1 -1
  410. package/link/schema/index.d.ts +2 -3
  411. package/link/schema/index.js.map +1 -1
  412. package/link/subscriptions/index.d.ts +1 -2
  413. package/link/subscriptions/index.js.map +1 -1
  414. package/link/utils/createOperation.d.ts +2 -2
  415. package/link/utils/createOperation.js +12 -4
  416. package/link/utils/createOperation.js.map +1 -1
  417. package/link/utils/index.d.ts +0 -2
  418. package/link/utils/index.js +0 -2
  419. package/link/utils/index.js.map +1 -1
  420. package/link/ws/index.d.ts +1 -2
  421. package/link/ws/index.js.map +1 -1
  422. package/local-state/LocalState.d.ts +94 -0
  423. package/local-state/LocalState.js +55 -9
  424. package/local-state/LocalState.js.map +1 -1
  425. package/masking/GraphQLCodegenDataMasking.d.ts +6 -7
  426. package/masking/GraphQLCodegenDataMasking.js.map +1 -1
  427. package/masking/internal/types.d.ts +70 -70
  428. package/masking/internal/types.js.map +1 -1
  429. package/masking/maskDefinition.js +2 -2
  430. package/masking/maskFragment.js +2 -2
  431. package/masking/maskOperation.js +1 -1
  432. package/masking/types.js.map +1 -1
  433. package/masking/utils.js +3 -3
  434. package/package.json +1 -1
  435. package/react/context/ApolloContext.js +1 -1
  436. package/react/context/ApolloProvider.js +1 -1
  437. package/react/hooks/internal/useDeepMemo.js +0 -3
  438. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  439. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +2 -2
  440. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -1
  441. package/react/hooks/internal/wrapHook.d.ts +8 -7
  442. package/react/hooks/internal/wrapHook.js +1 -0
  443. package/react/hooks/internal/wrapHook.js.map +1 -1
  444. package/react/hooks/useApolloClient.d.ts +2 -2
  445. package/react/hooks/useApolloClient.js +2 -2
  446. package/react/hooks/useApolloClient.js.map +1 -1
  447. package/react/hooks/useBackgroundQuery.d.ts +850 -90
  448. package/react/hooks/useBackgroundQuery.js.map +1 -1
  449. package/react/hooks/useFragment.d.ts +54 -3
  450. package/react/hooks/useFragment.js +7 -0
  451. package/react/hooks/useFragment.js.map +1 -1
  452. package/react/hooks/useLazyQuery.d.ts +317 -165
  453. package/react/hooks/useLazyQuery.js +0 -38
  454. package/react/hooks/useLazyQuery.js.map +1 -1
  455. package/react/hooks/useLoadableQuery.d.ts +153 -175
  456. package/react/hooks/useLoadableQuery.js.map +1 -1
  457. package/react/hooks/useMutation.d.ts +87 -65
  458. package/react/hooks/useMutation.js +6 -7
  459. package/react/hooks/useMutation.js.map +1 -1
  460. package/react/hooks/useQuery.d.ts +207 -103
  461. package/react/hooks/useQuery.js +1 -35
  462. package/react/hooks/useQuery.js.map +1 -1
  463. package/react/hooks/useQueryRefHandlers.d.ts +34 -5
  464. package/react/hooks/useQueryRefHandlers.js +2 -1
  465. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  466. package/react/hooks/useReactiveVar.d.ts +2 -1
  467. package/react/hooks/useReactiveVar.js +2 -1
  468. package/react/hooks/useReactiveVar.js.map +1 -1
  469. package/react/hooks/useReadQuery.d.ts +93 -17
  470. package/react/hooks/useReadQuery.js +29 -0
  471. package/react/hooks/useReadQuery.js.map +1 -1
  472. package/react/hooks/useSubscription.d.ts +108 -33
  473. package/react/hooks/useSubscription.js +8 -9
  474. package/react/hooks/useSubscription.js.map +1 -1
  475. package/react/hooks/useSuspenseFragment.d.ts +62 -30
  476. package/react/hooks/useSuspenseFragment.js.map +1 -1
  477. package/react/hooks/useSuspenseQuery.d.ts +471 -69
  478. package/react/hooks/useSuspenseQuery.js +4 -1
  479. package/react/hooks/useSuspenseQuery.js.map +1 -1
  480. package/react/hooks-compiled/internal/useDeepMemo.js +0 -3
  481. package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
  482. package/react/hooks-compiled/internal/validateSuspenseHookOptions.d.ts +2 -2
  483. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js.map +1 -1
  484. package/react/hooks-compiled/internal/wrapHook.d.ts +8 -7
  485. package/react/hooks-compiled/internal/wrapHook.js +1 -0
  486. package/react/hooks-compiled/internal/wrapHook.js.map +1 -1
  487. package/react/hooks-compiled/useApolloClient.d.ts +2 -2
  488. package/react/hooks-compiled/useApolloClient.js +2 -2
  489. package/react/hooks-compiled/useApolloClient.js.map +1 -1
  490. package/react/hooks-compiled/useBackgroundQuery.d.ts +850 -90
  491. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  492. package/react/hooks-compiled/useFragment.d.ts +54 -3
  493. package/react/hooks-compiled/useFragment.js +7 -0
  494. package/react/hooks-compiled/useFragment.js.map +1 -1
  495. package/react/hooks-compiled/useLazyQuery.d.ts +317 -165
  496. package/react/hooks-compiled/useLazyQuery.js +0 -38
  497. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  498. package/react/hooks-compiled/useLoadableQuery.d.ts +153 -175
  499. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  500. package/react/hooks-compiled/useMutation.d.ts +87 -65
  501. package/react/hooks-compiled/useMutation.js +6 -7
  502. package/react/hooks-compiled/useMutation.js.map +1 -1
  503. package/react/hooks-compiled/useQuery.d.ts +207 -103
  504. package/react/hooks-compiled/useQuery.js +1 -35
  505. package/react/hooks-compiled/useQuery.js.map +1 -1
  506. package/react/hooks-compiled/useQueryRefHandlers.d.ts +34 -5
  507. package/react/hooks-compiled/useQueryRefHandlers.js +2 -1
  508. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  509. package/react/hooks-compiled/useReactiveVar.d.ts +2 -1
  510. package/react/hooks-compiled/useReactiveVar.js +2 -1
  511. package/react/hooks-compiled/useReactiveVar.js.map +1 -1
  512. package/react/hooks-compiled/useReadQuery.d.ts +93 -17
  513. package/react/hooks-compiled/useReadQuery.js +29 -0
  514. package/react/hooks-compiled/useReadQuery.js.map +1 -1
  515. package/react/hooks-compiled/useSubscription.d.ts +108 -33
  516. package/react/hooks-compiled/useSubscription.js +8 -9
  517. package/react/hooks-compiled/useSubscription.js.map +1 -1
  518. package/react/hooks-compiled/useSuspenseFragment.d.ts +62 -30
  519. package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  520. package/react/hooks-compiled/useSuspenseQuery.d.ts +471 -69
  521. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  522. package/react/index.compiled.d.ts +0 -1
  523. package/react/index.compiled.js +0 -1
  524. package/react/index.compiled.js.map +1 -1
  525. package/react/index.d.ts +0 -1
  526. package/react/index.js +0 -1
  527. package/react/index.js.map +1 -1
  528. package/react/index.react-server.d.ts +0 -1
  529. package/react/index.react-server.js +0 -2
  530. package/react/index.react-server.js.map +1 -1
  531. package/react/internal/cache/FragmentReference.d.ts +2 -3
  532. package/react/internal/cache/FragmentReference.js.map +1 -1
  533. package/react/internal/cache/QueryReference.d.ts +14 -12
  534. package/react/internal/cache/QueryReference.js.map +1 -1
  535. package/react/internal/cache/SuspenseCache.d.ts +2 -2
  536. package/react/internal/cache/SuspenseCache.js.map +1 -1
  537. package/react/internal/cache/getSuspenseCache.d.ts +6 -4
  538. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  539. package/react/internal/index.d.ts +1 -1
  540. package/react/internal/index.js +1 -0
  541. package/react/internal/index.js.map +1 -1
  542. package/react/internal/types.d.ts +3 -3
  543. package/react/internal/types.js.map +1 -1
  544. package/react/query-preloader/createQueryPreloader.d.ts +60 -51
  545. package/react/query-preloader/createQueryPreloader.js +1 -1
  546. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  547. package/react/ssr/prerenderStatic.d.ts +11 -9
  548. package/react/ssr/prerenderStatic.js +5 -4
  549. package/react/ssr/prerenderStatic.js.map +1 -1
  550. package/react/ssr/useSSRQuery.js.map +1 -1
  551. package/react/types/deprecated.d.ts +1 -1
  552. package/react/types/deprecated.js.map +1 -1
  553. package/react/types/types.documentation.d.ts +15 -15
  554. package/react/types/types.documentation.js.map +1 -1
  555. package/testing/core/mocking/mockLink.d.ts +8 -8
  556. package/testing/core/mocking/mockLink.js.map +1 -1
  557. package/testing/core/mocking/mockSubscriptionLink.d.ts +3 -4
  558. package/testing/core/mocking/mockSubscriptionLink.js.map +1 -1
  559. package/testing/core/types/deprecated.d.ts +3 -2
  560. package/testing/core/types/deprecated.js.map +1 -1
  561. package/testing/react/MockedProvider.d.ts +2 -3
  562. package/testing/react/MockedProvider.js.map +1 -1
  563. package/utilities/HKT.d.ts +8 -7
  564. package/utilities/HKT.js.map +1 -1
  565. package/utilities/caching/sizes.d.ts +4 -6
  566. package/utilities/caching/sizes.js +3 -3
  567. package/utilities/caching/sizes.js.map +1 -1
  568. package/utilities/graphql/DocumentTransform.js +1 -1
  569. package/utilities/graphql/DocumentTransform.js.map +1 -1
  570. package/utilities/index.d.ts +1 -2
  571. package/utilities/index.js +1 -2
  572. package/utilities/index.js.map +1 -1
  573. package/utilities/{shared → internal}/canonicalStringify.d.ts +1 -1
  574. package/utilities/{shared → internal}/canonicalStringify.js +4 -6
  575. package/utilities/internal/canonicalStringify.js.map +1 -0
  576. package/utilities/internal/checkDocument.js +1 -1
  577. package/utilities/internal/checkDocument.js.map +1 -1
  578. package/utilities/internal/createFragmentMap.js.map +1 -1
  579. package/utilities/internal/equalByQuery.d.ts +5 -0
  580. package/{core → utilities/internal}/equalByQuery.js +7 -1
  581. package/utilities/internal/equalByQuery.js.map +1 -0
  582. package/utilities/internal/getFragmentQueryDocument.d.ts +13 -3
  583. package/utilities/internal/getFragmentQueryDocument.js +13 -3
  584. package/utilities/internal/getFragmentQueryDocument.js.map +1 -1
  585. package/utilities/internal/getMemoryInternals.js.map +1 -1
  586. package/utilities/internal/getStoreKeyName.js +1 -2
  587. package/utilities/internal/getStoreKeyName.js.map +1 -1
  588. package/utilities/internal/index.d.ts +2 -0
  589. package/utilities/internal/index.js +2 -0
  590. package/utilities/internal/index.js.map +1 -1
  591. package/utilities/internal/mergeOptions.d.ts +2 -2
  592. package/utilities/internal/mergeOptions.js.map +1 -1
  593. package/utilities/internal/toQueryResult.d.ts +2 -2
  594. package/utilities/internal/toQueryResult.js.map +1 -1
  595. package/utilities/internal/types/DocumentationTypes.d.ts +32 -26
  596. package/utilities/internal/types/DocumentationTypes.js.map +1 -1
  597. package/utilities/internal/types/NoInfer.d.ts +31 -25
  598. package/utilities/internal/types/NoInfer.js.map +1 -1
  599. package/utilities/internal/types/VariablesOption.d.ts +2 -6
  600. package/utilities/subscriptions/relay/index.js +2 -0
  601. package/utilities/subscriptions/relay/index.js.map +1 -1
  602. package/version.js +1 -1
  603. package/__cjs/cache/core/types/DataProxy.cjs.map +0 -1
  604. package/__cjs/cache/core/types/DataProxy.d.cts +0 -140
  605. package/__cjs/core/equalByQuery.cjs.map +0 -1
  606. package/__cjs/core/equalByQuery.d.cts +0 -4
  607. package/__cjs/link/utils/transformOperation.cjs +0 -22
  608. package/__cjs/link/utils/transformOperation.cjs.map +0 -1
  609. package/__cjs/link/utils/transformOperation.d.cts +0 -3
  610. package/__cjs/link/utils/validateOperation.cjs +0 -21
  611. package/__cjs/link/utils/validateOperation.cjs.map +0 -1
  612. package/__cjs/link/utils/validateOperation.d.cts +0 -3
  613. package/__cjs/react/context/ApolloConsumer.cjs +0 -16
  614. package/__cjs/react/context/ApolloConsumer.cjs.map +0 -1
  615. package/__cjs/react/context/ApolloConsumer.d.cts +0 -10
  616. package/__cjs/utilities/shared/canonicalStringify.cjs.map +0 -1
  617. package/cache/core/types/DataProxy.d.ts +0 -140
  618. package/cache/core/types/DataProxy.js +0 -2
  619. package/cache/core/types/DataProxy.js.map +0 -1
  620. package/core/equalByQuery.d.ts +0 -4
  621. package/core/equalByQuery.js.map +0 -1
  622. package/link/utils/transformOperation.d.ts +0 -3
  623. package/link/utils/transformOperation.js +0 -19
  624. package/link/utils/transformOperation.js.map +0 -1
  625. package/link/utils/validateOperation.d.ts +0 -3
  626. package/link/utils/validateOperation.js +0 -18
  627. package/link/utils/validateOperation.js.map +0 -1
  628. package/react/context/ApolloConsumer.d.ts +0 -10
  629. package/react/context/ApolloConsumer.js +0 -11
  630. package/react/context/ApolloConsumer.js.map +0 -1
  631. package/utilities/shared/canonicalStringify.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStateError.js","sourceRoot":"","sources":["../../src/errors/LocalStateError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS9C;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACM,IAAI,CAA0B;IAEvC,YAAY,OAAe,EAAE,UAAmC,EAAE;QAChE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF","sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace LocalStateError {\n export interface Options {\n path?: Array<string | number>;\n sourceError?: unknown;\n }\n}\n\n/**\n * Represents an error when executing `@client` fields from `LocalState`.\n */\nexport class LocalStateError extends Error {\n /** Determine if an error is a `LocalStateError` instance */\n static is(error: unknown): error is LocalStateError {\n return isBranded(error, \"LocalStateError\");\n }\n\n /**\n * The path to the field that caused the error, if the error is caused by a\n * field.\n */\n readonly path?: Array<string | number>;\n\n constructor(message: string, options: LocalStateError.Options = {}) {\n super(message, { cause: options.sourceError });\n this.name = \"LocalStateError\";\n this.path = options.path;\n\n brand(this);\n Object.setPrototypeOf(this, LocalStateError.prototype);\n }\n}\n"]}
1
+ {"version":3,"file":"LocalStateError.js","sources":["../../src/errors/LocalStateError.ts"],"sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace LocalStateError {\n export interface Options {\n path?: Array<string | number>;\n sourceError?: unknown;\n }\n\n namespace DocumentationTypes {\n interface InstanceProperties {\n /** The path to the field that caused the error. */\n readonly path?: Array<string | number>;\n }\n }\n}\n\n/**\n * Represents a fatal error when executing `@client` fields from `LocalState`,\n * typically to indicate a problem with the `LocalState` configuration or\n * incorrect usage of a resolver function. This error does not represent user\n * errors thrown in a local resolver when resolving `@client` fields.\n *\n * @example\n *\n * ```ts\n * import { LocalStateError } from \"@apollo/client/errors\";\n *\n * // Check if an error is a LocalStateError instance\n * if (LocalStateError.is(error)) {\n * console.log(\"Original error:\", error.cause);\n *\n * // Determine which field caused the error\n * if (error.path) {\n * console.log(\"Error occurred at field path:\", error.path.join(\".\"));\n * }\n * }\n * ```\n */\nexport class LocalStateError extends Error {\n /**\n * A method that determines whether an error is a `LocalStateError`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (LocalStateError.is(error)) {\n * // TypeScript now knows `error` is a LocalStateError object\n * console.log(error.path);\n * }\n * ```\n */\n static is(error: unknown): error is LocalStateError {\n return isBranded(error, \"LocalStateError\");\n }\n\n /** {@inheritDoc @apollo/client!LocalStateError.DocumentationTypes.InstanceProperties#path:member} */\n readonly path?: Array<string | number>;\n\n constructor(message: string, options: LocalStateError.Options = {}) {\n super(message, { cause: options.sourceError });\n this.name = \"LocalStateError\";\n this.path = options.path;\n\n brand(this);\n Object.setPrototypeOf(this, LocalStateError.prototype);\n }\n}\n"],"names":[],"mappings":"AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAA,CAAc,EAAE,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAiC,CAAjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6C;AAgB7C,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;CAqBA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAqC,CAArC,CAAA,CAAA,CAAA,EAAA;IACE,CAAF,CAAA;;;;;;;;;;;;KAYA,CAAA;IACE,CAAF,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAW,CAAC,CAAZ,CAAA,CAAA,CAAA,CAA0B,EAA1B;QACI,CAAJ,CAAA,CAAA,CAAA,CAAA,EAAW,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAArB,CAAA,CAAA,CAAA,CAA0B,EAAE,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6C,CAAC;IAC5C;;;;IAGS,CAAX,CAAA,CAAA,CAAe;IAEb,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAd,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,EAAE,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAkE,CAAlE,CAAoE,EAApE;QACI,CAAJ,CAAA,CAAA,CAAA,CAAS,CAAC,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,EAAE,CAArB,CAAA,CAAA,CAAA,CAA0B,EAAE,CAA5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAC,CAApC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAiD,CAAC;QAC9C,CAAJ,CAAA,CAAA,CAAQ,CAAC,CAAT,CAAA,CAAA,EAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC;QAC7B,CAAJ,CAAA,CAAA,CAAQ,CAAC,CAAT,CAAA,CAAA,EAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAxB,CAAA,CAAA,CAA4B;QAExB,CAAJ,CAAA,CAAA,CAAA,CAAS,CAAC,CAAV,CAAA,CAAA,CAAc,CAAC;QACX,CAAJ,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAA1B,CAAA,CAAA,CAA8B,EAAE,CAAhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+C,CAAC,CAAhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAC;IACxD;AACF;"}
@@ -3,25 +3,85 @@ export declare namespace ServerError {
3
3
  response: Response;
4
4
  bodyText: string;
5
5
  }
6
+ namespace DocumentationTypes {
7
+ interface InstanceProperties {
8
+ /**
9
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
10
+ */
11
+ readonly response: Response;
12
+ /**
13
+ * The status code returned by the server in the response. This is provided as
14
+ * a shortcut for `response.status`.
15
+ */
16
+ readonly statusCode: number;
17
+ /**
18
+ * The raw response body text.
19
+ */
20
+ readonly bodyText: string;
21
+ }
22
+ }
6
23
  }
7
24
  /**
8
- * Thrown when a non-200 response is returned from the server.
25
+ * Represents an error when a non-200 HTTP status code is returned from the
26
+ * server according to the [GraphQL Over HTTP specification](https://graphql.github.io/graphql-over-http/draft/). This error
27
+ * contains the full server response, including status code and body text.
28
+ *
29
+ * @remarks
30
+ *
31
+ * This error occurs when your GraphQL server responds with an HTTP status code
32
+ * other than 200 (such as 4xx or 5xx status codes) with any media type other
33
+ * than [`application/graphql-response+json`](https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json).
34
+ *
35
+ * Servers that return non-200 status codes with other media types are not
36
+ * guaranteed to contain a well-formed GraphQL response and may indicate issues
37
+ * at the HTTP level, such as authentication failures, server unavailability,
38
+ * or other HTTP-level problems.
39
+ *
40
+ * @example
41
+ *
42
+ * ```ts
43
+ * import { ServerError } from "@apollo/client/errors";
44
+ *
45
+ * // Check if an error is a ServerError instance
46
+ * if (ServerError.is(error)) {
47
+ * console.log(`Server returned status: ${error.statusCode}`);
48
+ * console.log(`Response body: ${error.bodyText}`);
49
+ *
50
+ * // Handle specific status codes
51
+ * if (error.statusCode === 401) {
52
+ * // Handle unauthorized access
53
+ * }
54
+ * }
55
+ * ```
9
56
  */
10
57
  export declare class ServerError extends Error {
11
- /** Determine if an error is a `ServerError` instance */
12
- static is(error: unknown): error is ServerError;
13
58
  /**
14
- * The server response.
59
+ * A method that determines whether an error is a `ServerError` object. This
60
+ * method enables TypeScript to narrow the error type.
61
+ *
62
+ * @example
63
+ *
64
+ * ```ts
65
+ * if (ServerError.is(error)) {
66
+ * // TypeScript now knows `error` is a ServerError object
67
+ * console.log(error.errors);
68
+ * }
69
+ * ```
15
70
  */
16
- response: Response;
71
+ static is(error: unknown): error is ServerError;
17
72
  /**
18
- * The status code returned from the server.
19
- */
20
- statusCode: number;
73
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
74
+ */
75
+ readonly response: Response;
21
76
  /**
22
- * The raw response body text.
23
- */
24
- bodyText: string;
77
+ * The status code returned by the server in the response. This is provided as
78
+ * a shortcut for `response.status`.
79
+ */
80
+ readonly statusCode: number;
81
+ /**
82
+ * The raw response body text.
83
+ */
84
+ readonly bodyText: string;
25
85
  constructor(message: string, options: ServerError.Options);
26
86
  }
27
- //# sourceMappingURL=ServerError.d.ts.map
87
+ //# sourceMappingURL=ServerError.d.ts.map
@@ -1,23 +1,66 @@
1
1
  import { brand, isBranded } from "./utils.js";
2
2
  /**
3
- * Thrown when a non-200 response is returned from the server.
3
+ * Represents an error when a non-200 HTTP status code is returned from the
4
+ * server according to the [GraphQL Over HTTP specification](https://graphql.github.io/graphql-over-http/draft/). This error
5
+ * contains the full server response, including status code and body text.
6
+ *
7
+ * @remarks
8
+ *
9
+ * This error occurs when your GraphQL server responds with an HTTP status code
10
+ * other than 200 (such as 4xx or 5xx status codes) with any media type other
11
+ * than [`application/graphql-response+json`](https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json).
12
+ *
13
+ * Servers that return non-200 status codes with other media types are not
14
+ * guaranteed to contain a well-formed GraphQL response and may indicate issues
15
+ * at the HTTP level, such as authentication failures, server unavailability,
16
+ * or other HTTP-level problems.
17
+ *
18
+ * @example
19
+ *
20
+ * ```ts
21
+ * import { ServerError } from "@apollo/client/errors";
22
+ *
23
+ * // Check if an error is a ServerError instance
24
+ * if (ServerError.is(error)) {
25
+ * console.log(`Server returned status: ${error.statusCode}`);
26
+ * console.log(`Response body: ${error.bodyText}`);
27
+ *
28
+ * // Handle specific status codes
29
+ * if (error.statusCode === 401) {
30
+ * // Handle unauthorized access
31
+ * }
32
+ * }
33
+ * ```
4
34
  */
5
35
  export class ServerError extends Error {
6
- /** Determine if an error is a `ServerError` instance */
36
+ /**
37
+ * A method that determines whether an error is a `ServerError` object. This
38
+ * method enables TypeScript to narrow the error type.
39
+ *
40
+ * @example
41
+ *
42
+ * ```ts
43
+ * if (ServerError.is(error)) {
44
+ * // TypeScript now knows `error` is a ServerError object
45
+ * console.log(error.errors);
46
+ * }
47
+ * ```
48
+ */
7
49
  static is(error) {
8
50
  return isBranded(error, "ServerError");
9
51
  }
10
52
  /**
11
- * The server response.
12
- */
53
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
54
+ */
13
55
  response;
14
56
  /**
15
- * The status code returned from the server.
16
- */
57
+ * The status code returned by the server in the response. This is provided as
58
+ * a shortcut for `response.status`.
59
+ */
17
60
  statusCode;
18
61
  /**
19
- * The raw response body text.
20
- */
62
+ * The raw response body text.
63
+ */
21
64
  bodyText;
22
65
  constructor(message, options) {
23
66
  super(message);
@@ -29,4 +72,4 @@ export class ServerError extends Error {
29
72
  Object.setPrototypeOf(this, ServerError.prototype);
30
73
  }
31
74
  }
32
- //# sourceMappingURL=ServerError.js.map
75
+ //# sourceMappingURL=ServerError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../src/errors/ServerError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS9C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAW;IACnB;;OAEG;IACH,UAAU,CAAS;IAEnB;;OAEG;IACH,QAAQ,CAAS;IAEjB,YAAY,OAAe,EAAE,OAA4B;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF","sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace ServerError {\n export interface Options {\n response: Response;\n bodyText: string;\n }\n}\n\n/**\n * Thrown when a non-200 response is returned from the server.\n */\nexport class ServerError extends Error {\n /** Determine if an error is a `ServerError` instance */\n static is(error: unknown): error is ServerError {\n return isBranded(error, \"ServerError\");\n }\n\n /**\n * The server response.\n */\n response: Response;\n /**\n * The status code returned from the server.\n */\n statusCode: number;\n\n /**\n * The raw response body text.\n */\n bodyText: string;\n\n constructor(message: string, options: ServerError.Options) {\n super(message);\n this.name = \"ServerError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n\n brand(this);\n Object.setPrototypeOf(this, ServerError.prototype);\n }\n}\n"]}
1
+ {"version":3,"file":"ServerError.js","sources":["../../src/errors/ServerError.ts"],"sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace ServerError {\n export interface Options {\n response: Response;\n bodyText: string;\n }\n\n namespace DocumentationTypes {\n interface InstanceProperties {\n /**\n * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n readonly response: Response;\n /**\n * The status code returned by the server in the response. This is provided as\n * a shortcut for `response.status`.\n */\n readonly statusCode: number;\n\n /**\n * The raw response body text.\n */\n readonly bodyText: string;\n }\n }\n}\n\n/**\n * Represents an error when a non-200 HTTP status code is returned from the\n * server according to the [GraphQL Over HTTP specification](https://graphql.github.io/graphql-over-http/draft/). This error\n * contains the full server response, including status code and body text.\n *\n * @remarks\n *\n * This error occurs when your GraphQL server responds with an HTTP status code\n * other than 200 (such as 4xx or 5xx status codes) with any media type other\n * than [`application/graphql-response+json`](https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json).\n *\n * Servers that return non-200 status codes with other media types are not\n * guaranteed to contain a well-formed GraphQL response and may indicate issues\n * at the HTTP level, such as authentication failures, server unavailability,\n * or other HTTP-level problems.\n *\n * @example\n *\n * ```ts\n * import { ServerError } from \"@apollo/client/errors\";\n *\n * // Check if an error is a ServerError instance\n * if (ServerError.is(error)) {\n * console.log(`Server returned status: ${error.statusCode}`);\n * console.log(`Response body: ${error.bodyText}`);\n *\n * // Handle specific status codes\n * if (error.statusCode === 401) {\n * // Handle unauthorized access\n * }\n * }\n * ```\n */\nexport class ServerError extends Error {\n /**\n * A method that determines whether an error is a `ServerError` object. This\n * method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (ServerError.is(error)) {\n * // TypeScript now knows `error` is a ServerError object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error: unknown): error is ServerError {\n return isBranded(error, \"ServerError\");\n }\n\n /** {@inheritDoc @apollo/client!ServerError.DocumentationTypes.InstanceProperties#response:member} */\n readonly response: Response;\n\n /** {@inheritDoc @apollo/client!ServerError.DocumentationTypes.InstanceProperties#statusCode:member} */\n readonly statusCode: number;\n\n /** {@inheritDoc @apollo/client!ServerError.DocumentationTypes.InstanceProperties#bodyText:member} */\n readonly bodyText: string;\n\n constructor(message: string, options: ServerError.Options) {\n super(message);\n this.name = \"ServerError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n\n brand(this);\n Object.setPrototypeOf(this, ServerError.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,26 +1,82 @@
1
- interface ServerParseErrorOptions {
2
- response: Response;
3
- bodyText: string;
1
+ export declare namespace ServerParseError {
2
+ interface Options {
3
+ response: Response;
4
+ bodyText: string;
5
+ }
6
+ namespace DocumentationTypes {
7
+ interface InstanceProperties {
8
+ /**
9
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
10
+ */
11
+ readonly response: Response;
12
+ /**
13
+ * The status code returned by the server in the response. This is provided
14
+ * as a shortcut for `response.status`.
15
+ */
16
+ readonly statusCode: number;
17
+ /**
18
+ * The raw response body text.
19
+ */
20
+ readonly bodyText: string;
21
+ }
22
+ }
4
23
  }
5
24
  /**
6
- * Thrown when failing to parse the response as JSON from the server.
25
+ * Represents a failure to parse the response as JSON from the server. This
26
+ * error helps debug issues where the server returns malformed JSON or non-JSON
27
+ * content.
28
+ *
29
+ * @remarks
30
+ *
31
+ * This error occurs when Apollo Client receives a response from the server but
32
+ * cannot parse it as valid JSON. This typically happens when the server returns
33
+ * HTML error pages, plain text responses, or malformed JSON instead of the
34
+ * expected GraphQL JSON response format.
35
+ *
36
+ * @example
37
+ *
38
+ * ```ts
39
+ * import { ServerParseError } from "@apollo/client/errors";
40
+ *
41
+ * // Check if an error is a ServerParseError instance
42
+ * if (ServerParseError.is(error)) {
43
+ * console.log(`Failed to parse response from ${error.response.url}`);
44
+ * console.log(`Raw response: ${error.bodyText}`);
45
+ * console.log(`Status code: ${error.statusCode}`);
46
+ *
47
+ * // Access the original parse error
48
+ * console.log(`Parse error: ${error.cause}`);
49
+ * }
50
+ * ```
7
51
  */
8
52
  export declare class ServerParseError extends Error {
9
- /** Determine if an error is an `ServerParseError` instance */
10
- static is(error: unknown): error is ServerParseError;
11
53
  /**
12
- * The server response.
54
+ * A method that determines whether an error is a `ServerParseError`
55
+ * object. This method enables TypeScript to narrow the error type.
56
+ *
57
+ * @example
58
+ *
59
+ * ```ts
60
+ * if (ServerParseError.is(error)) {
61
+ * // TypeScript now knows `error` is a ServerParseError object
62
+ * console.log(error.statusCode);
63
+ * }
64
+ * ```
13
65
  */
14
- response: Response;
66
+ static is(error: unknown): error is ServerParseError;
15
67
  /**
16
- * The status code returned from the server.
17
- */
18
- statusCode: number;
68
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
69
+ */
70
+ readonly response: Response;
19
71
  /**
20
- * The raw body text returned in the server response.
21
- */
22
- bodyText: string;
23
- constructor(originalParseError: unknown, options: ServerParseErrorOptions);
72
+ * The status code returned by the server in the response. This is provided
73
+ * as a shortcut for `response.status`.
74
+ */
75
+ readonly statusCode: number;
76
+ /**
77
+ * The raw response body text.
78
+ */
79
+ readonly bodyText: string;
80
+ constructor(originalParseError: unknown, options: ServerParseError.Options);
24
81
  }
25
- export {};
26
- //# sourceMappingURL=ServerParseError.d.ts.map
82
+ //# sourceMappingURL=ServerParseError.d.ts.map
@@ -1,23 +1,61 @@
1
1
  import { brand, isBranded } from "./utils.js";
2
2
  /**
3
- * Thrown when failing to parse the response as JSON from the server.
3
+ * Represents a failure to parse the response as JSON from the server. This
4
+ * error helps debug issues where the server returns malformed JSON or non-JSON
5
+ * content.
6
+ *
7
+ * @remarks
8
+ *
9
+ * This error occurs when Apollo Client receives a response from the server but
10
+ * cannot parse it as valid JSON. This typically happens when the server returns
11
+ * HTML error pages, plain text responses, or malformed JSON instead of the
12
+ * expected GraphQL JSON response format.
13
+ *
14
+ * @example
15
+ *
16
+ * ```ts
17
+ * import { ServerParseError } from "@apollo/client/errors";
18
+ *
19
+ * // Check if an error is a ServerParseError instance
20
+ * if (ServerParseError.is(error)) {
21
+ * console.log(`Failed to parse response from ${error.response.url}`);
22
+ * console.log(`Raw response: ${error.bodyText}`);
23
+ * console.log(`Status code: ${error.statusCode}`);
24
+ *
25
+ * // Access the original parse error
26
+ * console.log(`Parse error: ${error.cause}`);
27
+ * }
28
+ * ```
4
29
  */
5
30
  export class ServerParseError extends Error {
6
- /** Determine if an error is an `ServerParseError` instance */
31
+ /**
32
+ * A method that determines whether an error is a `ServerParseError`
33
+ * object. This method enables TypeScript to narrow the error type.
34
+ *
35
+ * @example
36
+ *
37
+ * ```ts
38
+ * if (ServerParseError.is(error)) {
39
+ * // TypeScript now knows `error` is a ServerParseError object
40
+ * console.log(error.statusCode);
41
+ * }
42
+ * ```
43
+ */
7
44
  static is(error) {
8
45
  return isBranded(error, "ServerParseError");
9
46
  }
10
47
  /**
11
- * The server response.
12
- */
48
+ * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
49
+ */
13
50
  response;
14
51
  /**
15
- * The status code returned from the server.
16
- */
52
+ * The status code returned by the server in the response. This is provided
53
+ * as a shortcut for `response.status`.
54
+ */
17
55
  statusCode;
18
56
  /**
19
- * The raw body text returned in the server response.
20
- */
57
+ * The raw response body text.
58
+ */
21
59
  bodyText;
22
60
  constructor(originalParseError, options) {
23
61
  super(originalParseError instanceof Error ?
@@ -31,4 +69,4 @@ export class ServerParseError extends Error {
31
69
  Object.setPrototypeOf(this, ServerParseError.prototype);
32
70
  }
33
71
  }
34
- //# sourceMappingURL=ServerParseError.js.map
72
+ //# sourceMappingURL=ServerParseError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerParseError.js","sourceRoot":"","sources":["../../src/errors/ServerParseError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO9C;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IACD;;OAEG;IACH,QAAQ,CAAW;IACnB;;OAEG;IACH,UAAU,CAAS;IACnB;;OAEG;IACH,QAAQ,CAAS;IAEjB,YAAY,kBAA2B,EAAE,OAAgC;QACvE,KAAK,CACH,kBAAkB,YAAY,KAAK,CAAC,CAAC;YACnC,kBAAkB,CAAC,OAAO;YAC5B,CAAC,CAAC,iCAAiC,EACnC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAC9B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF","sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\ninterface ServerParseErrorOptions {\n response: Response;\n bodyText: string;\n}\n\n/**\n * Thrown when failing to parse the response as JSON from the server.\n */\nexport class ServerParseError extends Error {\n /** Determine if an error is an `ServerParseError` instance */\n static is(error: unknown): error is ServerParseError {\n return isBranded(error, \"ServerParseError\");\n }\n /**\n * The server response.\n */\n response: Response;\n /**\n * The status code returned from the server.\n */\n statusCode: number;\n /**\n * The raw body text returned in the server response.\n */\n bodyText: string;\n\n constructor(originalParseError: unknown, options: ServerParseErrorOptions) {\n super(\n originalParseError instanceof Error ?\n originalParseError.message\n : \"Could not parse server response\",\n { cause: originalParseError }\n );\n this.name = \"ServerParseError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n\n brand(this);\n Object.setPrototypeOf(this, ServerParseError.prototype);\n }\n}\n"]}
1
+ {"version":3,"file":"ServerParseError.js","sources":["../../src/errors/ServerParseError.ts"],"sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace ServerParseError {\n export interface Options {\n response: Response;\n bodyText: string;\n }\n\n namespace DocumentationTypes {\n interface InstanceProperties {\n /**\n * The raw [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object provided by the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n readonly response: Response;\n /**\n * The status code returned by the server in the response. This is provided\n * as a shortcut for `response.status`.\n */\n readonly statusCode: number;\n /**\n * The raw response body text.\n */\n readonly bodyText: string;\n }\n }\n}\n\n/**\n * Represents a failure to parse the response as JSON from the server. This\n * error helps debug issues where the server returns malformed JSON or non-JSON\n * content.\n *\n * @remarks\n *\n * This error occurs when Apollo Client receives a response from the server but\n * cannot parse it as valid JSON. This typically happens when the server returns\n * HTML error pages, plain text responses, or malformed JSON instead of the\n * expected GraphQL JSON response format.\n *\n * @example\n *\n * ```ts\n * import { ServerParseError } from \"@apollo/client/errors\";\n *\n * // Check if an error is a ServerParseError instance\n * if (ServerParseError.is(error)) {\n * console.log(`Failed to parse response from ${error.response.url}`);\n * console.log(`Raw response: ${error.bodyText}`);\n * console.log(`Status code: ${error.statusCode}`);\n *\n * // Access the original parse error\n * console.log(`Parse error: ${error.cause}`);\n * }\n * ```\n */\nexport class ServerParseError extends Error {\n /**\n * A method that determines whether an error is a `ServerParseError`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (ServerParseError.is(error)) {\n * // TypeScript now knows `error` is a ServerParseError object\n * console.log(error.statusCode);\n * }\n * ```\n */\n static is(error: unknown): error is ServerParseError {\n return isBranded(error, \"ServerParseError\");\n }\n /** {@inheritDoc @apollo/client!ServerParseError.DocumentationTypes.InstanceProperties#response:member} */\n readonly response: Response;\n\n /** {@inheritDoc @apollo/client!ServerParseError.DocumentationTypes.InstanceProperties#statusCode:member} */\n readonly statusCode: number;\n\n /** {@inheritDoc @apollo/client!ServerParseError.DocumentationTypes.InstanceProperties#bodyText:member} */\n readonly bodyText: string;\n\n constructor(originalParseError: unknown, options: ServerParseError.Options) {\n super(\n originalParseError instanceof Error ?\n originalParseError.message\n : \"Could not parse server response\",\n { cause: originalParseError }\n );\n this.name = \"ServerParseError\";\n this.response = options.response;\n this.statusCode = options.response.status;\n this.bodyText = options.bodyText;\n\n brand(this);\n Object.setPrototypeOf(this, ServerParseError.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,54 @@
1
1
  /**
2
2
  * A wrapper error type that represents a non-standard error thrown from a
3
- * response, such as a symbol or plain object. Read the `cause` property to
3
+ * A wrapper error type that represents a non-error value thrown from the
4
+ * link chain, such as a symbol, primitive or plain object. Read the `cause` property to
4
5
  * determine the source of the error.
6
+ *
7
+ * @remarks
8
+ *
9
+ * This error is used to standardize error handling when non-Error values are
10
+ * thrown in the Apollo Client link chain or other parts of the system.
11
+ * JavaScript allows throwing any value (not just Error instances), and this
12
+ * wrapper ensures that all thrown values can be handled consistently as
13
+ * Error-like objects while preserving the original thrown value.
14
+ *
15
+ * > [!NOTE]
16
+ * > Plain strings thrown as errors are wrapped in regular [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) objects instead of `UnconventionalError` objects since strings can be safely used as the error's `message`.
17
+ *
18
+ * @example
19
+ *
20
+ * ```ts
21
+ * import { UnconventionalError } from "@apollo/client/errors";
22
+ *
23
+ * // Check if an error is an UnconventionalError instance
24
+ * if (UnconventionalError.is(error)) {
25
+ * console.log("Non-standard error thrown:", error.cause);
26
+ *
27
+ * // Check the type of the original thrown value
28
+ * if (typeof error.cause === "symbol") {
29
+ * console.log("A symbol was thrown:", error.cause.toString());
30
+ * } else if (typeof error.cause === "object") {
31
+ * console.log("An object was thrown:", error.cause);
32
+ * } else {
33
+ * console.log("Unexpected value thrown:", error.cause);
34
+ * }
35
+ * }
36
+ * ```
5
37
  */
6
38
  export declare class UnconventionalError extends Error {
7
- /** Determine if an error is an `UnconventionalError` instance */
39
+ /**
40
+ * A method that determines whether an error is an `UnconventionalError`
41
+ * object. This method enables TypeScript to narrow the error type.
42
+ *
43
+ * @example
44
+ *
45
+ * ```ts
46
+ * if (UnconventionalError.is(error)) {
47
+ * // TypeScript now knows `error` is a UnconventionalError object
48
+ * console.log("What caused this?", error.cause);
49
+ * }
50
+ * ```
51
+ */
8
52
  static is(error: unknown): error is UnconventionalError;
9
53
  constructor(errorType: unknown);
10
54
  }
@@ -1,11 +1,55 @@
1
1
  import { brand, isBranded } from "./utils.js";
2
2
  /**
3
3
  * A wrapper error type that represents a non-standard error thrown from a
4
- * response, such as a symbol or plain object. Read the `cause` property to
4
+ * A wrapper error type that represents a non-error value thrown from the
5
+ * link chain, such as a symbol, primitive or plain object. Read the `cause` property to
5
6
  * determine the source of the error.
7
+ *
8
+ * @remarks
9
+ *
10
+ * This error is used to standardize error handling when non-Error values are
11
+ * thrown in the Apollo Client link chain or other parts of the system.
12
+ * JavaScript allows throwing any value (not just Error instances), and this
13
+ * wrapper ensures that all thrown values can be handled consistently as
14
+ * Error-like objects while preserving the original thrown value.
15
+ *
16
+ * > [!NOTE]
17
+ * > Plain strings thrown as errors are wrapped in regular [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) objects instead of `UnconventionalError` objects since strings can be safely used as the error's `message`.
18
+ *
19
+ * @example
20
+ *
21
+ * ```ts
22
+ * import { UnconventionalError } from "@apollo/client/errors";
23
+ *
24
+ * // Check if an error is an UnconventionalError instance
25
+ * if (UnconventionalError.is(error)) {
26
+ * console.log("Non-standard error thrown:", error.cause);
27
+ *
28
+ * // Check the type of the original thrown value
29
+ * if (typeof error.cause === "symbol") {
30
+ * console.log("A symbol was thrown:", error.cause.toString());
31
+ * } else if (typeof error.cause === "object") {
32
+ * console.log("An object was thrown:", error.cause);
33
+ * } else {
34
+ * console.log("Unexpected value thrown:", error.cause);
35
+ * }
36
+ * }
37
+ * ```
6
38
  */
7
39
  export class UnconventionalError extends Error {
8
- /** Determine if an error is an `UnconventionalError` instance */
40
+ /**
41
+ * A method that determines whether an error is an `UnconventionalError`
42
+ * object. This method enables TypeScript to narrow the error type.
43
+ *
44
+ * @example
45
+ *
46
+ * ```ts
47
+ * if (UnconventionalError.is(error)) {
48
+ * // TypeScript now knows `error` is a UnconventionalError object
49
+ * console.log("What caused this?", error.cause);
50
+ * }
51
+ * ```
52
+ */
9
53
  static is(error) {
10
54
  return isBranded(error, "UnconventionalError");
11
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UnconventionalError.js","sourceRoot":"","sources":["../../src/errors/UnconventionalError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,iEAAiE;IACjE,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,SAAS,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,SAAkB;QAC5B,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAElC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\n/**\n * A wrapper error type that represents a non-standard error thrown from a\n * response, such as a symbol or plain object. Read the `cause` property to\n * determine the source of the error.\n */\nexport class UnconventionalError extends Error {\n /** Determine if an error is an `UnconventionalError` instance */\n static is(error: unknown): error is UnconventionalError {\n return isBranded(error, \"UnconventionalError\");\n }\n\n constructor(errorType: unknown) {\n super(\"An error of unexpected shape occurred.\", { cause: errorType });\n this.name = \"UnconventionalError\";\n\n brand(this);\n Object.setPrototypeOf(this, UnconventionalError.prototype);\n }\n}\n"]}
1
+ {"version":3,"file":"UnconventionalError.js","sourceRoot":"","sources":["../../src/errors/UnconventionalError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,SAAS,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,SAAkB;QAC5B,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAElC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { brand, isBranded } from \"./utils.js\";\n\n/**\n * A wrapper error type that represents a non-standard error thrown from a\n * A wrapper error type that represents a non-error value thrown from the\n * link chain, such as a symbol, primitive or plain object. Read the `cause` property to\n * determine the source of the error.\n *\n * @remarks\n *\n * This error is used to standardize error handling when non-Error values are\n * thrown in the Apollo Client link chain or other parts of the system.\n * JavaScript allows throwing any value (not just Error instances), and this\n * wrapper ensures that all thrown values can be handled consistently as\n * Error-like objects while preserving the original thrown value.\n *\n * > [!NOTE]\n * > Plain strings thrown as errors are wrapped in regular [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) objects instead of `UnconventionalError` objects since strings can be safely used as the error's `message`.\n *\n * @example\n *\n * ```ts\n * import { UnconventionalError } from \"@apollo/client/errors\";\n *\n * // Check if an error is an UnconventionalError instance\n * if (UnconventionalError.is(error)) {\n * console.log(\"Non-standard error thrown:\", error.cause);\n *\n * // Check the type of the original thrown value\n * if (typeof error.cause === \"symbol\") {\n * console.log(\"A symbol was thrown:\", error.cause.toString());\n * } else if (typeof error.cause === \"object\") {\n * console.log(\"An object was thrown:\", error.cause);\n * } else {\n * console.log(\"Unexpected value thrown:\", error.cause);\n * }\n * }\n * ```\n */\nexport class UnconventionalError extends Error {\n /**\n * A method that determines whether an error is an `UnconventionalError`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (UnconventionalError.is(error)) {\n * // TypeScript now knows `error` is a UnconventionalError object\n * console.log(\"What caused this?\", error.cause);\n * }\n * ```\n */\n static is(error: unknown): error is UnconventionalError {\n return isBranded(error, \"UnconventionalError\");\n }\n\n constructor(errorType: unknown) {\n super(\"An error of unexpected shape occurred.\", { cause: errorType });\n this.name = \"UnconventionalError\";\n\n brand(this);\n Object.setPrototypeOf(this, UnconventionalError.prototype);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { DocumentNode, FormattedExecutionResult, GraphQLFormattedError } from "graphql";
2
- import type { FetchResult, GraphQLRequest } from "@apollo/client";
2
+ import type { ApolloLink } from "@apollo/client/link";
3
3
  import type { DeepPartial } from "@apollo/client/utilities";
4
4
  import type { Incremental } from "../types.js";
5
5
  export declare namespace Defer20220824Handler {
@@ -26,7 +26,7 @@ export declare namespace Defer20220824Handler {
26
26
  };
27
27
  }
28
28
  declare module "@apollo/client/link" {
29
- interface AdditionalFetchResultTypes {
29
+ interface AdditionalApolloLinkResultTypes {
30
30
  Defer20220824Handler: Defer20220824Handler.Chunk<Record<string, unknown>>;
31
31
  }
32
32
  }
@@ -44,8 +44,8 @@ declare class DeferRequest<TData extends Record<string, unknown>> implements Inc
44
44
  */
45
45
  export declare class Defer20220824Handler implements Incremental.Handler<Defer20220824Handler.Chunk<any>> {
46
46
  isIncrementalResult(result: Record<string, any>): result is Defer20220824Handler.SubsequentResult | Defer20220824Handler.InitialResult;
47
- extractErrors(result: FetchResult<any>): GraphQLFormattedError[] | undefined;
48
- prepareRequest(request: GraphQLRequest): GraphQLRequest;
47
+ extractErrors(result: ApolloLink.Result<any>): GraphQLFormattedError[] | undefined;
48
+ prepareRequest(request: ApolloLink.Request): ApolloLink.Request;
49
49
  startRequest<TData extends Record<string, unknown>>(_: {
50
50
  query: DocumentNode;
51
51
  }): DeferRequest<TData>;
@@ -1 +1 @@
1
- {"version":3,"file":"defer20220824.js","sourceRoot":"","sources":["../../../src/incremental/handlers/defer20220824.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { FetchResult, GraphQLRequest } from \"@apollo/client\";\nimport type { DeepPartial } from \"@apollo/client/utilities\";\nimport {\n DeepMerger,\n hasDirectives,\n isNonEmptyArray,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { Incremental } from \"../types.js\";\n\nexport declare namespace Defer20220824Handler {\n export type InitialResult<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n hasNext: boolean;\n };\n\n export type SubsequentResult<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n hasNext: boolean;\n incremental?: Array<IncrementalDeferPayload<TData>>;\n };\n\n export type Chunk<TData extends Record<string, unknown>> =\n | InitialResult<TData>\n | SubsequentResult<TData>;\n\n export type IncrementalDeferPayload<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n path?: Incremental.Path;\n label?: string;\n };\n}\n\ndeclare module \"@apollo/client/link\" {\n export interface AdditionalFetchResultTypes {\n Defer20220824Handler: Defer20220824Handler.Chunk<Record<string, unknown>>;\n }\n}\n\nclass DeferRequest<TData extends Record<string, unknown>>\n implements\n Incremental.IncrementalRequest<Defer20220824Handler.Chunk<TData>, TData>\n{\n public hasNext = true;\n\n private errors: Array<GraphQLFormattedError> = [];\n private extensions: Record<string, any> = {};\n private data: any = {};\n\n private mergeIn(\n normalized: FormattedExecutionResult<TData>,\n merger: DeepMerger<any[]>\n ) {\n if (normalized.data !== undefined) {\n this.data = merger.merge(this.data, normalized.data);\n }\n if (normalized.errors) {\n this.errors.push(...normalized.errors);\n }\n Object.assign(this.extensions, normalized.extensions);\n }\n\n handle(\n // we'll get `undefined` here in case of a `no-cache` fetch policy,\n // so we'll continue with the last value this request had accumulated\n cacheData: TData | DeepPartial<TData> | null | undefined = this.data,\n chunk: Defer20220824Handler.Chunk<TData>\n ): FormattedExecutionResult<TData> {\n this.hasNext = chunk.hasNext;\n this.data = cacheData;\n\n this.mergeIn(chunk, new DeepMerger());\n\n if (hasIncrementalChunks(chunk)) {\n const merger = new DeepMerger();\n for (const incremental of chunk.incremental) {\n let { data, path, errors, extensions } = incremental;\n if (data && path) {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n }\n this.mergeIn(\n {\n errors,\n extensions,\n data: data ? (data as TData) : undefined,\n },\n merger\n );\n }\n }\n\n const result: FormattedExecutionResult<TData> = { data: this.data };\n\n if (isNonEmptyArray(this.errors)) {\n result.errors = this.errors;\n }\n\n if (Object.keys(this.extensions).length > 0) {\n result.extensions = this.extensions;\n }\n\n return result;\n }\n}\n\n/**\n * This handler implements the `@defer` directive as specified in this historical commit:\n * https://github.com/graphql/graphql-spec/tree/48cf7263a71a683fab03d45d309fd42d8d9a6659/spec\n */\nexport class Defer20220824Handler\n implements Incremental.Handler<Defer20220824Handler.Chunk<any>>\n{\n isIncrementalResult(\n result: Record<string, any>\n ): result is\n | Defer20220824Handler.SubsequentResult\n | Defer20220824Handler.InitialResult {\n return \"hasNext\" in result;\n }\n\n extractErrors(result: FetchResult<any>) {\n const acc: GraphQLFormattedError[] = [];\n const push = ({\n errors,\n }: {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }) => {\n if (errors) {\n acc.push(...errors);\n }\n };\n if (this.isIncrementalResult(result)) {\n push(result);\n if (hasIncrementalChunks(result)) {\n result.incremental.forEach(push);\n }\n }\n if (acc.length) {\n return acc;\n }\n }\n\n prepareRequest(request: GraphQLRequest): GraphQLRequest {\n if (hasDirectives([\"defer\"], request.query)) {\n const context = request.context ?? {};\n const http = (context.http ??= {});\n http.accept = [\n \"multipart/mixed;deferSpec=20220824\",\n ...(http.accept || []),\n ];\n }\n\n return request;\n }\n startRequest<TData extends Record<string, unknown>>(_: {\n query: DocumentNode;\n }) {\n return new DeferRequest<TData>();\n }\n}\n\n// only exported for use in tests\nexport function hasIncrementalChunks(\n result: Record<string, any>\n): result is Required<Defer20220824Handler.SubsequentResult> {\n return isNonEmptyArray(result.incremental);\n}\n"]}
1
+ {"version":3,"file":"defer20220824.js","sourceRoot":"","sources":["../../../src/incremental/handlers/defer20220824.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { ApolloLink } from \"@apollo/client/link\";\nimport type { DeepPartial } from \"@apollo/client/utilities\";\nimport {\n DeepMerger,\n hasDirectives,\n isNonEmptyArray,\n} from \"@apollo/client/utilities/internal\";\n\nimport type { Incremental } from \"../types.js\";\n\nexport declare namespace Defer20220824Handler {\n export type InitialResult<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n hasNext: boolean;\n };\n\n export type SubsequentResult<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n hasNext: boolean;\n incremental?: Array<IncrementalDeferPayload<TData>>;\n };\n\n export type Chunk<TData extends Record<string, unknown>> =\n | InitialResult<TData>\n | SubsequentResult<TData>;\n\n export type IncrementalDeferPayload<TData = Record<string, unknown>> = {\n data?: TData | null | undefined;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n extensions?: Record<string, unknown>;\n path?: Incremental.Path;\n label?: string;\n };\n}\n\ndeclare module \"@apollo/client/link\" {\n export interface AdditionalApolloLinkResultTypes {\n Defer20220824Handler: Defer20220824Handler.Chunk<Record<string, unknown>>;\n }\n}\n\nclass DeferRequest<TData extends Record<string, unknown>>\n implements\n Incremental.IncrementalRequest<Defer20220824Handler.Chunk<TData>, TData>\n{\n public hasNext = true;\n\n private errors: Array<GraphQLFormattedError> = [];\n private extensions: Record<string, any> = {};\n private data: any = {};\n\n private mergeIn(\n normalized: FormattedExecutionResult<TData>,\n merger: DeepMerger<any[]>\n ) {\n if (normalized.data !== undefined) {\n this.data = merger.merge(this.data, normalized.data);\n }\n if (normalized.errors) {\n this.errors.push(...normalized.errors);\n }\n Object.assign(this.extensions, normalized.extensions);\n }\n\n handle(\n // we'll get `undefined` here in case of a `no-cache` fetch policy,\n // so we'll continue with the last value this request had accumulated\n cacheData: TData | DeepPartial<TData> | null | undefined = this.data,\n chunk: Defer20220824Handler.Chunk<TData>\n ): FormattedExecutionResult<TData> {\n this.hasNext = chunk.hasNext;\n this.data = cacheData;\n\n this.mergeIn(chunk, new DeepMerger());\n\n if (hasIncrementalChunks(chunk)) {\n const merger = new DeepMerger();\n for (const incremental of chunk.incremental) {\n let { data, path, errors, extensions } = incremental;\n if (data && path) {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n }\n this.mergeIn(\n {\n errors,\n extensions,\n data: data ? (data as TData) : undefined,\n },\n merger\n );\n }\n }\n\n const result: FormattedExecutionResult<TData> = { data: this.data };\n\n if (isNonEmptyArray(this.errors)) {\n result.errors = this.errors;\n }\n\n if (Object.keys(this.extensions).length > 0) {\n result.extensions = this.extensions;\n }\n\n return result;\n }\n}\n\n/**\n * This handler implements the `@defer` directive as specified in this historical commit:\n * https://github.com/graphql/graphql-spec/tree/48cf7263a71a683fab03d45d309fd42d8d9a6659/spec\n */\nexport class Defer20220824Handler\n implements Incremental.Handler<Defer20220824Handler.Chunk<any>>\n{\n isIncrementalResult(\n result: Record<string, any>\n ): result is\n | Defer20220824Handler.SubsequentResult\n | Defer20220824Handler.InitialResult {\n return \"hasNext\" in result;\n }\n\n extractErrors(result: ApolloLink.Result<any>) {\n const acc: GraphQLFormattedError[] = [];\n const push = ({\n errors,\n }: {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }) => {\n if (errors) {\n acc.push(...errors);\n }\n };\n if (this.isIncrementalResult(result)) {\n push(result);\n if (hasIncrementalChunks(result)) {\n result.incremental.forEach(push);\n }\n }\n if (acc.length) {\n return acc;\n }\n }\n\n prepareRequest(request: ApolloLink.Request): ApolloLink.Request {\n if (hasDirectives([\"defer\"], request.query)) {\n const context = request.context ?? {};\n const http = (context.http ??= {});\n http.accept = [\n \"multipart/mixed;deferSpec=20220824\",\n ...(http.accept || []),\n ];\n }\n\n return request;\n }\n startRequest<TData extends Record<string, unknown>>(_: {\n query: DocumentNode;\n }) {\n return new DeferRequest<TData>();\n }\n}\n\n// only exported for use in tests\nexport function hasIncrementalChunks(\n result: Record<string, any>\n): result is Required<Defer20220824Handler.SubsequentResult> {\n return isNonEmptyArray(result.incremental);\n}\n"]}
@@ -1,8 +1,8 @@
1
- import type { GraphQLRequest } from "@apollo/client";
1
+ import type { ApolloLink } from "@apollo/client/link";
2
2
  import type { Incremental } from "../types.js";
3
3
  export declare class NotImplementedHandler implements Incremental.Handler<never> {
4
4
  isIncrementalResult(_: any): _ is never;
5
- prepareRequest(request: GraphQLRequest): GraphQLRequest<Record<string, any>>;
5
+ prepareRequest(request: ApolloLink.Request): ApolloLink.Request;
6
6
  extractErrors(): void;
7
7
  startRequest: any;
8
8
  }
@@ -5,7 +5,7 @@ export class NotImplementedHandler {
5
5
  return false;
6
6
  }
7
7
  prepareRequest(request) {
8
- invariant(!hasDirectives(["defer"], request.query), 65);
8
+ invariant(!hasDirectives(["defer"], request.query), 64);
9
9
  return request;
10
10
  }
11
11
  extractErrors() { }