@apollo/client 4.0.0-rc.4 → 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 (528) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +40 -40
  3. package/__cjs/cache/core/cache.cjs +4 -12
  4. package/__cjs/cache/core/cache.cjs.map +1 -1
  5. package/__cjs/cache/core/cache.d.cts +96 -66
  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 +28 -31
  15. package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
  16. package/__cjs/cache/inmemory/entityStore.d.cts +18 -17
  17. package/__cjs/cache/inmemory/inMemoryCache.cjs +1 -1
  18. package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
  19. package/__cjs/cache/inmemory/inMemoryCache.d.cts +4 -4
  20. package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
  21. package/__cjs/cache/inmemory/policies.cjs +4 -4
  22. package/__cjs/cache/inmemory/policies.cjs.map +1 -1
  23. package/__cjs/cache/inmemory/policies.d.cts +3 -2
  24. package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
  25. package/__cjs/cache/inmemory/types.d.cts +1 -1
  26. package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
  27. package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
  28. package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
  29. package/__cjs/core/ApolloClient.cjs +137 -117
  30. package/__cjs/core/ApolloClient.cjs.map +1 -1
  31. package/__cjs/core/ApolloClient.d.cts +790 -183
  32. package/__cjs/core/ObservableQuery.cjs +50 -20
  33. package/__cjs/core/ObservableQuery.cjs.map +1 -1
  34. package/__cjs/core/ObservableQuery.d.cts +184 -68
  35. package/__cjs/core/QueryInfo.cjs.map +1 -1
  36. package/__cjs/core/QueryInfo.d.cts +5 -4
  37. package/__cjs/core/QueryManager.cjs +15 -13
  38. package/__cjs/core/QueryManager.cjs.map +1 -1
  39. package/__cjs/core/QueryManager.d.cts +17 -17
  40. package/__cjs/core/deprecated.cjs +3 -0
  41. package/__cjs/core/deprecated.cjs.map +1 -0
  42. package/__cjs/core/deprecated.d.cts +29 -0
  43. package/__cjs/core/index.cjs.map +1 -1
  44. package/__cjs/core/index.d.cts +9 -5
  45. package/__cjs/core/types.d.cts +81 -104
  46. package/__cjs/core/watchQueryOptions.d.cts +8 -297
  47. package/__cjs/dev/setErrorMessageHandler.cjs.map +1 -1
  48. package/__cjs/dev/setErrorMessageHandler.d.cts +4 -4
  49. package/__cjs/errors/CombinedGraphQLErrors.cjs +59 -11
  50. package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
  51. package/__cjs/errors/CombinedGraphQLErrors.d.cts +146 -11
  52. package/__cjs/errors/CombinedProtocolErrors.cjs +48 -1
  53. package/__cjs/errors/CombinedProtocolErrors.cjs.map +1 -1
  54. package/__cjs/errors/CombinedProtocolErrors.d.cts +126 -2
  55. package/__cjs/errors/LinkError.cjs +45 -2
  56. package/__cjs/errors/LinkError.cjs.map +1 -1
  57. package/__cjs/errors/LinkError.d.cts +45 -2
  58. package/__cjs/errors/LocalStateError.cjs +35 -5
  59. package/__cjs/errors/LocalStateError.cjs.map +1 -1
  60. package/__cjs/errors/LocalStateError.d.cts +41 -5
  61. package/__cjs/errors/ServerError.cjs +50 -8
  62. package/__cjs/errors/ServerError.cjs.map +1 -1
  63. package/__cjs/errors/ServerError.d.cts +70 -11
  64. package/__cjs/errors/ServerParseError.cjs +45 -8
  65. package/__cjs/errors/ServerParseError.cjs.map +1 -1
  66. package/__cjs/errors/ServerParseError.d.cts +71 -16
  67. package/__cjs/errors/UnconventionalError.cjs +46 -2
  68. package/__cjs/errors/UnconventionalError.cjs.map +1 -1
  69. package/__cjs/errors/UnconventionalError.d.cts +46 -2
  70. package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
  71. package/__cjs/invariantErrorCodes.cjs +72 -80
  72. package/__cjs/link/batch/batchLink.cjs.map +1 -1
  73. package/__cjs/link/batch-http/batchHttpLink.cjs +2 -2
  74. package/__cjs/link/batch-http/batchHttpLink.cjs.map +1 -1
  75. package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
  76. package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +4 -4
  77. package/__cjs/link/context/index.cjs +1 -1
  78. package/__cjs/link/context/index.cjs.map +1 -1
  79. package/__cjs/link/context/index.d.cts +1 -1
  80. package/__cjs/link/core/ApolloLink.cjs +2 -2
  81. package/__cjs/link/core/types.d.cts +2 -2
  82. package/__cjs/link/error/index.cjs.map +1 -1
  83. package/__cjs/link/error/index.d.cts +16 -1
  84. package/__cjs/link/http/HttpLink.cjs.map +1 -1
  85. package/__cjs/link/http/HttpLink.d.cts +13 -2
  86. package/__cjs/link/http/checkFetcher.cjs +1 -1
  87. package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
  88. package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
  89. package/__cjs/link/persisted-queries/index.cjs +2 -2
  90. package/__cjs/link/persisted-queries/index.cjs.map +1 -1
  91. package/__cjs/link/persisted-queries/index.d.cts +11 -11
  92. package/__cjs/link/retry/delayFunction.cjs.map +1 -1
  93. package/__cjs/link/retry/delayFunction.d.cts +1 -1
  94. package/__cjs/link/retry/retryFunction.cjs.map +1 -1
  95. package/__cjs/link/retry/retryFunction.d.cts +1 -1
  96. package/__cjs/link/retry/retryLink.cjs.map +1 -1
  97. package/__cjs/link/schema/index.cjs.map +1 -1
  98. package/__cjs/link/utils/validateOperation.cjs +1 -1
  99. package/__cjs/link/ws/index.cjs.map +1 -1
  100. package/__cjs/local-state/LocalState.cjs +55 -9
  101. package/__cjs/local-state/LocalState.cjs.map +1 -1
  102. package/__cjs/local-state/LocalState.d.cts +94 -0
  103. package/__cjs/masking/GraphQLCodegenDataMasking.d.cts +6 -7
  104. package/__cjs/masking/internal/types.d.cts +70 -70
  105. package/__cjs/masking/maskDefinition.cjs +2 -2
  106. package/__cjs/masking/maskFragment.cjs +2 -2
  107. package/__cjs/masking/maskOperation.cjs +1 -1
  108. package/__cjs/masking/utils.cjs +3 -3
  109. package/__cjs/react/context/ApolloContext.cjs +1 -1
  110. package/__cjs/react/context/ApolloProvider.cjs +1 -1
  111. package/__cjs/react/hooks/internal/useDeepMemo.cjs +0 -3
  112. package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
  113. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.cjs.map +1 -1
  114. package/__cjs/react/hooks/internal/validateSuspenseHookOptions.d.cts +2 -2
  115. package/__cjs/react/hooks/internal/wrapHook.cjs +1 -0
  116. package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
  117. package/__cjs/react/hooks/internal/wrapHook.d.cts +8 -7
  118. package/__cjs/react/hooks/useApolloClient.cjs +2 -2
  119. package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
  120. package/__cjs/react/hooks/useApolloClient.d.cts +2 -2
  121. package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
  122. package/__cjs/react/hooks/useBackgroundQuery.d.cts +814 -82
  123. package/__cjs/react/hooks/useFragment.cjs +11 -9
  124. package/__cjs/react/hooks/useFragment.cjs.map +1 -1
  125. package/__cjs/react/hooks/useFragment.d.cts +53 -2
  126. package/__cjs/react/hooks/useLazyQuery.cjs +0 -38
  127. package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
  128. package/__cjs/react/hooks/useLazyQuery.d.cts +313 -119
  129. package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
  130. package/__cjs/react/hooks/useLoadableQuery.d.cts +230 -44
  131. package/__cjs/react/hooks/useMutation.cjs +6 -7
  132. package/__cjs/react/hooks/useMutation.cjs.map +1 -1
  133. package/__cjs/react/hooks/useMutation.d.cts +57 -17
  134. package/__cjs/react/hooks/useQuery.cjs +1 -35
  135. package/__cjs/react/hooks/useQuery.cjs.map +1 -1
  136. package/__cjs/react/hooks/useQuery.d.cts +407 -238
  137. package/__cjs/react/hooks/useQueryRefHandlers.cjs +2 -1
  138. package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
  139. package/__cjs/react/hooks/useQueryRefHandlers.d.cts +25 -1
  140. package/__cjs/react/hooks/useReactiveVar.cjs +2 -1
  141. package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
  142. package/__cjs/react/hooks/useReactiveVar.d.cts +2 -1
  143. package/__cjs/react/hooks/useReadQuery.cjs +29 -0
  144. package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
  145. package/__cjs/react/hooks/useReadQuery.d.cts +95 -16
  146. package/__cjs/react/hooks/useSubscription.cjs +8 -9
  147. package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
  148. package/__cjs/react/hooks/useSubscription.d.cts +153 -69
  149. package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
  150. package/__cjs/react/hooks/useSuspenseFragment.d.cts +61 -29
  151. package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -1
  152. package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
  153. package/__cjs/react/hooks/useSuspenseQuery.d.cts +605 -160
  154. package/__cjs/react/index.cjs +1 -5
  155. package/__cjs/react/index.cjs.map +1 -1
  156. package/__cjs/react/index.d.cts +0 -2
  157. package/__cjs/react/index.react-server.cjs +1 -3
  158. package/__cjs/react/index.react-server.cjs.map +1 -1
  159. package/__cjs/react/index.react-server.d.cts +0 -1
  160. package/__cjs/react/internal/cache/FragmentReference.cjs +1 -1
  161. package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
  162. package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -3
  163. package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
  164. package/__cjs/react/internal/cache/QueryReference.d.cts +11 -11
  165. package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
  166. package/__cjs/react/internal/cache/SuspenseCache.d.cts +2 -2
  167. package/__cjs/react/internal/cache/getSuspenseCache.cjs.map +1 -1
  168. package/__cjs/react/internal/cache/getSuspenseCache.d.cts +6 -4
  169. package/__cjs/react/internal/index.cjs +1 -0
  170. package/__cjs/react/internal/index.cjs.map +1 -1
  171. package/__cjs/react/internal/index.d.cts +1 -1
  172. package/__cjs/react/internal/types.d.cts +3 -3
  173. package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -1
  174. package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
  175. package/__cjs/react/query-preloader/createQueryPreloader.d.cts +31 -31
  176. package/__cjs/react/ssr/prerenderStatic.cjs +5 -4
  177. package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
  178. package/__cjs/react/ssr/prerenderStatic.d.cts +11 -9
  179. package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
  180. package/__cjs/react/types/deprecated.d.cts +1 -1
  181. package/__cjs/react/types/types.documentation.d.cts +22 -11
  182. package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
  183. package/__cjs/testing/core/mocking/mockLink.d.cts +3 -2
  184. package/__cjs/testing/core/types/deprecated.d.cts +3 -2
  185. package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
  186. package/__cjs/testing/react/MockedProvider.d.cts +2 -3
  187. package/__cjs/utilities/HKT.d.cts +8 -7
  188. package/__cjs/utilities/caching/sizes.cjs +3 -3
  189. package/__cjs/utilities/caching/sizes.cjs.map +1 -1
  190. package/__cjs/utilities/caching/sizes.d.cts +4 -6
  191. package/__cjs/utilities/graphql/DocumentTransform.cjs +2 -2
  192. package/__cjs/utilities/graphql/DocumentTransform.cjs.map +1 -1
  193. package/__cjs/utilities/index.cjs +2 -3
  194. package/__cjs/utilities/index.cjs.map +1 -1
  195. package/__cjs/utilities/index.d.cts +1 -2
  196. package/__cjs/utilities/{shared → internal}/canonicalStringify.cjs +5 -7
  197. package/__cjs/utilities/internal/canonicalStringify.cjs.map +1 -0
  198. package/__cjs/utilities/{shared → internal}/canonicalStringify.d.cts +1 -1
  199. package/__cjs/utilities/internal/checkDocument.cjs +2 -2
  200. package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
  201. package/__cjs/utilities/internal/createFragmentMap.cjs.map +1 -1
  202. package/__cjs/{core → utilities/internal}/equalByQuery.cjs +13 -7
  203. package/__cjs/utilities/internal/equalByQuery.cjs.map +1 -0
  204. package/__cjs/utilities/internal/equalByQuery.d.cts +5 -0
  205. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs +13 -3
  206. package/__cjs/utilities/internal/getFragmentQueryDocument.cjs.map +1 -1
  207. package/__cjs/utilities/internal/getFragmentQueryDocument.d.cts +13 -3
  208. package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
  209. package/__cjs/utilities/internal/getStoreKeyName.cjs +9 -7
  210. package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
  211. package/__cjs/utilities/internal/index.cjs +8 -2
  212. package/__cjs/utilities/internal/index.cjs.map +1 -1
  213. package/__cjs/utilities/internal/index.d.cts +4 -0
  214. package/__cjs/utilities/internal/mergeOptions.cjs.map +1 -1
  215. package/__cjs/utilities/internal/mergeOptions.d.cts +2 -2
  216. package/__cjs/utilities/internal/removeFragmentSpreads.cjs +14 -0
  217. package/__cjs/utilities/internal/removeFragmentSpreads.cjs.map +1 -0
  218. package/__cjs/utilities/internal/removeFragmentSpreads.d.cts +3 -0
  219. package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
  220. package/__cjs/utilities/internal/toQueryResult.d.cts +2 -2
  221. package/__cjs/utilities/internal/types/DocumentationTypes.cjs +3 -0
  222. package/__cjs/utilities/internal/types/DocumentationTypes.cjs.map +1 -0
  223. package/__cjs/utilities/internal/types/DocumentationTypes.d.cts +96 -0
  224. package/__cjs/utilities/internal/types/NoInfer.d.cts +31 -25
  225. package/__cjs/utilities/subscriptions/relay/index.cjs +2 -0
  226. package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
  227. package/__cjs/version.cjs +1 -1
  228. package/cache/core/cache.d.ts +96 -66
  229. package/cache/core/cache.js +5 -13
  230. package/cache/core/cache.js.map +1 -1
  231. package/cache/core/types/Cache.d.ts +200 -15
  232. package/cache/core/types/Cache.js +1 -3
  233. package/cache/core/types/Cache.js.map +1 -1
  234. package/cache/deprecated.d.ts +6 -0
  235. package/cache/deprecated.js +2 -0
  236. package/cache/deprecated.js.map +1 -0
  237. package/cache/index.d.ts +2 -2
  238. package/cache/index.js.map +1 -1
  239. package/cache/inmemory/entityStore.d.ts +18 -17
  240. package/cache/inmemory/entityStore.js +28 -31
  241. package/cache/inmemory/entityStore.js.map +1 -1
  242. package/cache/inmemory/inMemoryCache.d.ts +4 -4
  243. package/cache/inmemory/inMemoryCache.js +1 -1
  244. package/cache/inmemory/inMemoryCache.js.map +1 -1
  245. package/cache/inmemory/key-extractor.js +1 -1
  246. package/cache/inmemory/policies.d.ts +3 -2
  247. package/cache/inmemory/policies.js +4 -4
  248. package/cache/inmemory/policies.js.map +1 -1
  249. package/cache/inmemory/readFromStore.js +2 -2
  250. package/cache/inmemory/types.d.ts +1 -1
  251. package/cache/inmemory/types.js.map +1 -1
  252. package/cache/inmemory/writeToStore.d.ts +1 -1
  253. package/cache/inmemory/writeToStore.js +4 -4
  254. package/cache/inmemory/writeToStore.js.map +1 -1
  255. package/core/ApolloClient.d.ts +790 -183
  256. package/core/ApolloClient.js +138 -118
  257. package/core/ApolloClient.js.map +1 -1
  258. package/core/ObservableQuery.d.ts +184 -68
  259. package/core/ObservableQuery.js +50 -20
  260. package/core/ObservableQuery.js.map +1 -1
  261. package/core/QueryInfo.d.ts +5 -4
  262. package/core/QueryInfo.js.map +1 -1
  263. package/core/QueryManager.d.ts +17 -17
  264. package/core/QueryManager.js +15 -13
  265. package/core/QueryManager.js.map +1 -1
  266. package/core/deprecated.d.ts +29 -0
  267. package/core/deprecated.js +2 -0
  268. package/core/deprecated.js.map +1 -0
  269. package/core/index.d.ts +9 -5
  270. package/core/index.js.map +1 -1
  271. package/core/types.d.ts +81 -104
  272. package/core/types.js.map +1 -1
  273. package/core/watchQueryOptions.d.ts +9 -298
  274. package/core/watchQueryOptions.js.map +1 -1
  275. package/dev/setErrorMessageHandler.d.ts +4 -4
  276. package/dev/setErrorMessageHandler.js.map +1 -1
  277. package/errors/CombinedGraphQLErrors.d.ts +147 -12
  278. package/errors/CombinedGraphQLErrors.js +60 -12
  279. package/errors/CombinedGraphQLErrors.js.map +1 -1
  280. package/errors/CombinedProtocolErrors.d.ts +127 -3
  281. package/errors/CombinedProtocolErrors.js +49 -2
  282. package/errors/CombinedProtocolErrors.js.map +1 -1
  283. package/errors/LinkError.d.ts +45 -2
  284. package/errors/LinkError.js +45 -2
  285. package/errors/LinkError.js.map +1 -1
  286. package/errors/LocalStateError.d.ts +42 -6
  287. package/errors/LocalStateError.js +36 -6
  288. package/errors/LocalStateError.js.map +1 -1
  289. package/errors/ServerError.d.ts +71 -12
  290. package/errors/ServerError.js +51 -9
  291. package/errors/ServerError.js.map +1 -1
  292. package/errors/ServerParseError.d.ts +72 -17
  293. package/errors/ServerParseError.js +46 -9
  294. package/errors/ServerParseError.js.map +1 -1
  295. package/errors/UnconventionalError.d.ts +46 -2
  296. package/errors/UnconventionalError.js +46 -2
  297. package/errors/UnconventionalError.js.map +1 -1
  298. package/incremental/handlers/notImplemented.js +1 -1
  299. package/invariantErrorCodes.js +72 -80
  300. package/link/batch/batchLink.js.map +1 -1
  301. package/link/batch-http/batchHttpLink.js +1 -1
  302. package/link/batch-http/batchHttpLink.js.map +1 -1
  303. package/link/client-awareness/ClientAwarenessLink.d.ts +4 -4
  304. package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
  305. package/link/context/index.d.ts +1 -1
  306. package/link/context/index.js +1 -1
  307. package/link/context/index.js.map +1 -1
  308. package/link/core/ApolloLink.js +2 -2
  309. package/link/core/types.d.ts +2 -2
  310. package/link/core/types.js.map +1 -1
  311. package/link/error/index.d.ts +16 -1
  312. package/link/error/index.js.map +1 -1
  313. package/link/http/HttpLink.d.ts +13 -2
  314. package/link/http/HttpLink.js.map +1 -1
  315. package/link/http/checkFetcher.js +1 -1
  316. package/link/http/parseAndCheckHttpResponse.js +1 -1
  317. package/link/http/serializeFetchParameter.js +1 -1
  318. package/link/persisted-queries/index.d.ts +11 -11
  319. package/link/persisted-queries/index.js +2 -2
  320. package/link/persisted-queries/index.js.map +1 -1
  321. package/link/retry/delayFunction.d.ts +1 -1
  322. package/link/retry/delayFunction.js.map +1 -1
  323. package/link/retry/retryFunction.d.ts +1 -1
  324. package/link/retry/retryFunction.js.map +1 -1
  325. package/link/retry/retryLink.js.map +1 -1
  326. package/link/schema/index.js.map +1 -1
  327. package/link/utils/validateOperation.js +1 -1
  328. package/link/ws/index.js.map +1 -1
  329. package/local-state/LocalState.d.ts +94 -0
  330. package/local-state/LocalState.js +55 -9
  331. package/local-state/LocalState.js.map +1 -1
  332. package/masking/GraphQLCodegenDataMasking.d.ts +6 -7
  333. package/masking/GraphQLCodegenDataMasking.js.map +1 -1
  334. package/masking/internal/types.d.ts +70 -70
  335. package/masking/internal/types.js.map +1 -1
  336. package/masking/maskDefinition.js +2 -2
  337. package/masking/maskFragment.js +2 -2
  338. package/masking/maskOperation.js +1 -1
  339. package/masking/types.js.map +1 -1
  340. package/masking/utils.js +3 -3
  341. package/package.json +1 -1
  342. package/react/context/ApolloContext.js +1 -1
  343. package/react/context/ApolloProvider.js +1 -1
  344. package/react/hooks/internal/useDeepMemo.js +0 -3
  345. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  346. package/react/hooks/internal/validateSuspenseHookOptions.d.ts +2 -2
  347. package/react/hooks/internal/validateSuspenseHookOptions.js.map +1 -1
  348. package/react/hooks/internal/wrapHook.d.ts +8 -7
  349. package/react/hooks/internal/wrapHook.js +1 -0
  350. package/react/hooks/internal/wrapHook.js.map +1 -1
  351. package/react/hooks/useApolloClient.d.ts +2 -2
  352. package/react/hooks/useApolloClient.js +2 -2
  353. package/react/hooks/useApolloClient.js.map +1 -1
  354. package/react/hooks/useBackgroundQuery.d.ts +814 -82
  355. package/react/hooks/useBackgroundQuery.js.map +1 -1
  356. package/react/hooks/useFragment.d.ts +54 -3
  357. package/react/hooks/useFragment.js +11 -9
  358. package/react/hooks/useFragment.js.map +1 -1
  359. package/react/hooks/useLazyQuery.d.ts +313 -119
  360. package/react/hooks/useLazyQuery.js +0 -38
  361. package/react/hooks/useLazyQuery.js.map +1 -1
  362. package/react/hooks/useLoadableQuery.d.ts +230 -44
  363. package/react/hooks/useLoadableQuery.js.map +1 -1
  364. package/react/hooks/useMutation.d.ts +57 -17
  365. package/react/hooks/useMutation.js +6 -7
  366. package/react/hooks/useMutation.js.map +1 -1
  367. package/react/hooks/useQuery.d.ts +407 -238
  368. package/react/hooks/useQuery.js +1 -35
  369. package/react/hooks/useQuery.js.map +1 -1
  370. package/react/hooks/useQueryRefHandlers.d.ts +25 -1
  371. package/react/hooks/useQueryRefHandlers.js +2 -1
  372. package/react/hooks/useQueryRefHandlers.js.map +1 -1
  373. package/react/hooks/useReactiveVar.d.ts +2 -1
  374. package/react/hooks/useReactiveVar.js +2 -1
  375. package/react/hooks/useReactiveVar.js.map +1 -1
  376. package/react/hooks/useReadQuery.d.ts +96 -17
  377. package/react/hooks/useReadQuery.js +29 -0
  378. package/react/hooks/useReadQuery.js.map +1 -1
  379. package/react/hooks/useSubscription.d.ts +153 -69
  380. package/react/hooks/useSubscription.js +8 -9
  381. package/react/hooks/useSubscription.js.map +1 -1
  382. package/react/hooks/useSuspenseFragment.d.ts +62 -30
  383. package/react/hooks/useSuspenseFragment.js.map +1 -1
  384. package/react/hooks/useSuspenseQuery.d.ts +605 -160
  385. package/react/hooks/useSuspenseQuery.js +4 -1
  386. package/react/hooks/useSuspenseQuery.js.map +1 -1
  387. package/react/hooks-compiled/internal/useDeepMemo.js +0 -3
  388. package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
  389. package/react/hooks-compiled/internal/validateSuspenseHookOptions.d.ts +2 -2
  390. package/react/hooks-compiled/internal/validateSuspenseHookOptions.js.map +1 -1
  391. package/react/hooks-compiled/internal/wrapHook.d.ts +8 -7
  392. package/react/hooks-compiled/internal/wrapHook.js +1 -0
  393. package/react/hooks-compiled/internal/wrapHook.js.map +1 -1
  394. package/react/hooks-compiled/useApolloClient.d.ts +2 -2
  395. package/react/hooks-compiled/useApolloClient.js +2 -2
  396. package/react/hooks-compiled/useApolloClient.js.map +1 -1
  397. package/react/hooks-compiled/useBackgroundQuery.d.ts +814 -82
  398. package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
  399. package/react/hooks-compiled/useFragment.d.ts +54 -3
  400. package/react/hooks-compiled/useFragment.js +11 -9
  401. package/react/hooks-compiled/useFragment.js.map +1 -1
  402. package/react/hooks-compiled/useLazyQuery.d.ts +313 -119
  403. package/react/hooks-compiled/useLazyQuery.js +0 -38
  404. package/react/hooks-compiled/useLazyQuery.js.map +1 -1
  405. package/react/hooks-compiled/useLoadableQuery.d.ts +230 -44
  406. package/react/hooks-compiled/useLoadableQuery.js.map +1 -1
  407. package/react/hooks-compiled/useMutation.d.ts +57 -17
  408. package/react/hooks-compiled/useMutation.js +6 -7
  409. package/react/hooks-compiled/useMutation.js.map +1 -1
  410. package/react/hooks-compiled/useQuery.d.ts +407 -238
  411. package/react/hooks-compiled/useQuery.js +1 -35
  412. package/react/hooks-compiled/useQuery.js.map +1 -1
  413. package/react/hooks-compiled/useQueryRefHandlers.d.ts +25 -1
  414. package/react/hooks-compiled/useQueryRefHandlers.js +2 -1
  415. package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
  416. package/react/hooks-compiled/useReactiveVar.d.ts +2 -1
  417. package/react/hooks-compiled/useReactiveVar.js +2 -1
  418. package/react/hooks-compiled/useReactiveVar.js.map +1 -1
  419. package/react/hooks-compiled/useReadQuery.d.ts +96 -17
  420. package/react/hooks-compiled/useReadQuery.js +29 -0
  421. package/react/hooks-compiled/useReadQuery.js.map +1 -1
  422. package/react/hooks-compiled/useSubscription.d.ts +153 -69
  423. package/react/hooks-compiled/useSubscription.js +8 -9
  424. package/react/hooks-compiled/useSubscription.js.map +1 -1
  425. package/react/hooks-compiled/useSuspenseFragment.d.ts +62 -30
  426. package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
  427. package/react/hooks-compiled/useSuspenseQuery.d.ts +605 -160
  428. package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
  429. package/react/index.compiled.d.ts +0 -2
  430. package/react/index.compiled.js +0 -2
  431. package/react/index.compiled.js.map +1 -1
  432. package/react/index.d.ts +0 -2
  433. package/react/index.js +0 -2
  434. package/react/index.js.map +1 -1
  435. package/react/index.react-server.d.ts +0 -1
  436. package/react/index.react-server.js +0 -2
  437. package/react/index.react-server.js.map +1 -1
  438. package/react/internal/cache/FragmentReference.d.ts +2 -3
  439. package/react/internal/cache/FragmentReference.js +1 -1
  440. package/react/internal/cache/FragmentReference.js.map +1 -1
  441. package/react/internal/cache/QueryReference.d.ts +11 -11
  442. package/react/internal/cache/QueryReference.js.map +1 -1
  443. package/react/internal/cache/SuspenseCache.d.ts +2 -2
  444. package/react/internal/cache/SuspenseCache.js.map +1 -1
  445. package/react/internal/cache/getSuspenseCache.d.ts +6 -4
  446. package/react/internal/cache/getSuspenseCache.js.map +1 -1
  447. package/react/internal/index.d.ts +1 -1
  448. package/react/internal/index.js +1 -0
  449. package/react/internal/index.js.map +1 -1
  450. package/react/internal/types.d.ts +3 -3
  451. package/react/internal/types.js.map +1 -1
  452. package/react/query-preloader/createQueryPreloader.d.ts +31 -31
  453. package/react/query-preloader/createQueryPreloader.js +1 -1
  454. package/react/query-preloader/createQueryPreloader.js.map +1 -1
  455. package/react/ssr/prerenderStatic.d.ts +11 -9
  456. package/react/ssr/prerenderStatic.js +5 -4
  457. package/react/ssr/prerenderStatic.js.map +1 -1
  458. package/react/ssr/useSSRQuery.js.map +1 -1
  459. package/react/types/deprecated.d.ts +1 -1
  460. package/react/types/deprecated.js.map +1 -1
  461. package/react/types/types.documentation.d.ts +22 -11
  462. package/react/types/types.documentation.js.map +1 -1
  463. package/testing/core/mocking/mockLink.d.ts +3 -2
  464. package/testing/core/mocking/mockLink.js.map +1 -1
  465. package/testing/core/types/deprecated.d.ts +3 -2
  466. package/testing/core/types/deprecated.js.map +1 -1
  467. package/testing/react/MockedProvider.d.ts +2 -3
  468. package/testing/react/MockedProvider.js.map +1 -1
  469. package/utilities/HKT.d.ts +8 -7
  470. package/utilities/HKT.js.map +1 -1
  471. package/utilities/caching/sizes.d.ts +4 -6
  472. package/utilities/caching/sizes.js +3 -3
  473. package/utilities/caching/sizes.js.map +1 -1
  474. package/utilities/graphql/DocumentTransform.js +1 -1
  475. package/utilities/graphql/DocumentTransform.js.map +1 -1
  476. package/utilities/index.d.ts +1 -2
  477. package/utilities/index.js +1 -2
  478. package/utilities/index.js.map +1 -1
  479. package/utilities/{shared → internal}/canonicalStringify.d.ts +1 -1
  480. package/utilities/{shared → internal}/canonicalStringify.js +4 -6
  481. package/utilities/internal/canonicalStringify.js.map +1 -0
  482. package/utilities/internal/checkDocument.js +1 -1
  483. package/utilities/internal/checkDocument.js.map +1 -1
  484. package/utilities/internal/createFragmentMap.js.map +1 -1
  485. package/utilities/internal/equalByQuery.d.ts +5 -0
  486. package/{core → utilities/internal}/equalByQuery.js +7 -1
  487. package/utilities/internal/equalByQuery.js.map +1 -0
  488. package/utilities/internal/getFragmentQueryDocument.d.ts +13 -3
  489. package/utilities/internal/getFragmentQueryDocument.js +13 -3
  490. package/utilities/internal/getFragmentQueryDocument.js.map +1 -1
  491. package/utilities/internal/getMemoryInternals.js.map +1 -1
  492. package/utilities/internal/getStoreKeyName.js +9 -7
  493. package/utilities/internal/getStoreKeyName.js.map +1 -1
  494. package/utilities/internal/index.d.ts +4 -0
  495. package/utilities/internal/index.js +3 -0
  496. package/utilities/internal/index.js.map +1 -1
  497. package/utilities/internal/mergeOptions.d.ts +2 -2
  498. package/utilities/internal/mergeOptions.js.map +1 -1
  499. package/utilities/internal/removeFragmentSpreads.d.ts +3 -0
  500. package/utilities/internal/removeFragmentSpreads.js +11 -0
  501. package/utilities/internal/removeFragmentSpreads.js.map +1 -0
  502. package/utilities/internal/toQueryResult.d.ts +2 -2
  503. package/utilities/internal/toQueryResult.js.map +1 -1
  504. package/utilities/internal/types/DocumentationTypes.d.ts +96 -0
  505. package/utilities/internal/types/DocumentationTypes.js +2 -0
  506. package/utilities/internal/types/DocumentationTypes.js.map +1 -0
  507. package/utilities/internal/types/NoInfer.d.ts +31 -25
  508. package/utilities/internal/types/NoInfer.js.map +1 -1
  509. package/utilities/subscriptions/relay/index.js +2 -0
  510. package/utilities/subscriptions/relay/index.js.map +1 -1
  511. package/version.js +1 -1
  512. package/__cjs/cache/core/types/DataProxy.cjs.map +0 -1
  513. package/__cjs/cache/core/types/DataProxy.d.cts +0 -140
  514. package/__cjs/core/equalByQuery.cjs.map +0 -1
  515. package/__cjs/core/equalByQuery.d.cts +0 -4
  516. package/__cjs/react/context/ApolloConsumer.cjs +0 -16
  517. package/__cjs/react/context/ApolloConsumer.cjs.map +0 -1
  518. package/__cjs/react/context/ApolloConsumer.d.cts +0 -10
  519. package/__cjs/utilities/shared/canonicalStringify.cjs.map +0 -1
  520. package/cache/core/types/DataProxy.d.ts +0 -140
  521. package/cache/core/types/DataProxy.js +0 -2
  522. package/cache/core/types/DataProxy.js.map +0 -1
  523. package/core/equalByQuery.d.ts +0 -4
  524. package/core/equalByQuery.js.map +0 -1
  525. package/react/context/ApolloConsumer.d.ts +0 -10
  526. package/react/context/ApolloConsumer.js +0 -11
  527. package/react/context/ApolloConsumer.js.map +0 -1
  528. package/utilities/shared/canonicalStringify.js.map +0 -1
@@ -11,29 +11,77 @@ function defaultFormatMessage(errors) {
11
11
  }
12
12
  /**
13
13
  * Represents the combined list of GraphQL errors returned from the server in a
14
- * GraphQL response.
14
+ * GraphQL response. This error type is used when your GraphQL operation returns
15
+ * errors in the `errors` field of the response.
16
+ *
17
+ * @remarks
18
+ *
19
+ * When your GraphQL operation encounters errors on the server side (such as
20
+ * resolver errors, validation errors, or syntax errors), the server returns
21
+ * these errors in the `errors` array of the GraphQL response. Apollo Client
22
+ * wraps these errors in a `CombinedGraphQLErrors` object, which provides access
23
+ * to the individual errors while maintaining additional context about the
24
+ * response.
25
+ *
26
+ * @example
27
+ *
28
+ * ```ts
29
+ * import { CombinedGraphQLErrors } from "@apollo/client/errors";
30
+ *
31
+ * // Check if an error is a CombinedGraphQLErrors object
32
+ * if (CombinedGraphQLErrors.is(error)) {
33
+ * // Access individual GraphQL errors
34
+ * error.errors.forEach((graphQLError) => {
35
+ * console.log(graphQLError.message);
36
+ * console.log(graphQLError.path);
37
+ * console.log(graphQLError.locations);
38
+ * });
39
+ *
40
+ * // Access the original GraphQL result
41
+ * console.log(error.result);
42
+ * }
43
+ * ```
15
44
  */
16
45
  class CombinedGraphQLErrors extends Error {
17
- /** Determine if an error is a `CombinedGraphQLErrors` instance */
46
+ /**
47
+ * A method that determines whether an error is a `CombinedGraphQLErrors`
48
+ * object. This method enables TypeScript to narrow the error type.
49
+ *
50
+ * @example
51
+ *
52
+ * ```ts
53
+ * if (CombinedGraphQLErrors.is(error)) {
54
+ * // TypeScript now knows `error` is a CombinedGraphQLErrors object
55
+ * console.log(error.errors);
56
+ * }
57
+ * ```
58
+ */
18
59
  static is(error) {
19
60
  return (0, utils_js_1.isBranded)(error, "CombinedGraphQLErrors");
20
61
  }
21
62
  /**
22
- * Formats the error message used for the error `message` property. Override
23
- * to provide your own formatting.
24
- */
63
+ * A function that formats the error message used for the error's `message` property. Override this method to provide your own formatting.
64
+ *
65
+ * @remarks
66
+ *
67
+ * The `formatMessage` function is called by the `CombinedGraphQLErrors` constructor to provide a formatted message as the `message` property of the `CombinedGraphQLErrors` object. Follow the ["Providing a custom message formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
68
+ *
69
+ * @param errors - The array of GraphQL errors returned from the server in the `errors` field of the response.
70
+ *
71
+ * @param options - Additional context that could be useful when formatting the message.
72
+ */
25
73
  static formatMessage = defaultFormatMessage;
26
74
  /**
27
- * The raw list of GraphQL errors returned in a GraphQL response.
28
- */
75
+ * The raw list of GraphQL errors returned by the `errors` field in the GraphQL response.
76
+ */
29
77
  errors;
30
78
  /**
31
- * Partial data returned in the GraphQL response.
32
- */
79
+ * Partial data returned in the `data` field of the GraphQL response.
80
+ */
33
81
  data;
34
82
  /**
35
- * Extensions added to the result.
36
- */
83
+ * Extensions returned by the `extensions` field in the GraphQL response.
84
+ */
37
85
  extensions;
38
86
  constructor(result, errors = result.errors || []) {
39
87
  super(CombinedGraphQLErrors.formatMessage(errors, {
@@ -1 +1 @@
1
- {"version":3,"file":"CombinedGraphQLErrors.cjs","sources":["../../../src/errors/CombinedGraphQLErrors.ts"],"sourcesContent":["import type { FormattedExecutionResult, GraphQLFormattedError } from \"graphql\";\n\nimport type { FetchResult } from \"@apollo/client\";\n\nimport { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace CombinedGraphQLErrors {\n export interface MessageFormatterOptions {\n result: FetchResult<unknown>;\n defaultFormatMessage: (\n errors: ReadonlyArray<GraphQLFormattedError>\n ) => string;\n }\n\n export type MessageFormatter = (\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ) => string;\n}\n\nfunction defaultFormatMessage(errors: ReadonlyArray<GraphQLFormattedError>) {\n return (\n errors\n // Handle non-spec-compliant servers: See #1185\n .filter((e) => e)\n .map((e) => e.message || \"Error message not found.\")\n .join(\"\\n\")\n );\n}\n\n/**\n * Represents the combined list of GraphQL errors returned from the server in a\n * GraphQL response.\n */\nexport class CombinedGraphQLErrors extends Error {\n /** Determine if an error is a `CombinedGraphQLErrors` instance */\n static is(error: unknown): error is CombinedGraphQLErrors {\n return isBranded(error, \"CombinedGraphQLErrors\");\n }\n\n /**\n * Formats the error message used for the error `message` property. Override\n * to provide your own formatting.\n */\n static formatMessage: CombinedGraphQLErrors.MessageFormatter =\n defaultFormatMessage;\n\n /**\n * The raw list of GraphQL errors returned in a GraphQL response.\n */\n readonly errors: ReadonlyArray<GraphQLFormattedError>;\n\n /**\n * Partial data returned in the GraphQL response.\n */\n readonly data: Record<string, unknown> | null | undefined;\n\n /**\n * Extensions added to the result.\n */\n readonly extensions: Record<string, unknown> | undefined;\n\n constructor(result: FormattedExecutionResult<any>);\n constructor(\n result: FetchResult<any>,\n errors: ReadonlyArray<GraphQLFormattedError>\n );\n\n constructor(\n result: FetchResult<any> | FormattedExecutionResult<any>,\n errors = (result as FormattedExecutionResult<any>).errors || []\n ) {\n super(\n CombinedGraphQLErrors.formatMessage(errors, {\n result,\n defaultFormatMessage,\n })\n );\n this.errors = errors;\n this.data = (result as Partial<FormattedExecutionResult>).data;\n this.extensions = (result as Partial<FormattedExecutionResult>).extensions;\n this.name = \"CombinedGraphQLErrors\";\n\n brand(this);\n Object.setPrototypeOf(this, CombinedGraphQLErrors.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CombinedGraphQLErrors.cjs","sources":["../../../src/errors/CombinedGraphQLErrors.ts"],"sourcesContent":["import type { FormattedExecutionResult, GraphQLFormattedError } from \"graphql\";\n\nimport type { FetchResult } from \"@apollo/client\";\n\nimport { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace CombinedGraphQLErrors {\n export interface MessageFormatterOptions {\n /**\n * The raw result returned from the server.\n */\n result: FetchResult<unknown>;\n\n /**\n * The default message formatter. Call this to get a string with the default\n * formatted message.\n *\n * @remarks\n * To format part of the message using the default message formatter, call\n * the `defaultFormatMessage` function provided to the `options` argument of\n * your message formatter.\n *\n * @example\n *\n * The following example prepends a string to the message and uses the\n * default message formatter to format the error messages.\n *\n * ```ts\n * CombinedGraphQLErrors.formatMessage = (errors, { defaultFormatMessage }) => {\n * return `[GraphQL errors]: ${defaultFormatMessage(errors)}`;\n * };\n * ```\n */\n defaultFormatMessage: (\n errors: ReadonlyArray<GraphQLFormattedError>\n ) => string;\n }\n\n /**\n * By default, `CombinedGraphQLErrors` formats the `message` property by\n * joining each error's `message` field with a newline. To customize the\n * format of the `message`, such as changing the delimiter or adding a message\n * prefix, override the static `formatMessage` method.\n *\n * @example\n *\n * The following example demonstrates how to format the error message by\n * joining each error with a comma.\n *\n * ```ts\n * import { CombinedGraphQLErrors } from \"@apollo/client/errors\";\n *\n * CombinedGraphQLErrors.formatMessage = (errors) => {\n * return errors.map((error) => error.message).join(\", \");\n * };\n * ```\n *\n * @remarks\n *\n * See the [`formatMessage`](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#formatmessage) docs for details about the parameters provided to the `formatMessage` function.\n *\n * > [!NOTE]\n * > The message formatter needs to be configured before any operation is executed by Apollo Client, otherwise the default message formatter is used. We recommend configuring the message formatter before initializing your `ApolloClient` instance.\n *\n * @param errors - The array of GraphQL errors returned from the server in the\n * `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n export type MessageFormatter = (\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ) => string;\n\n namespace DocumentationTypes {\n /**\n * A function that formats the error message used for the error's `message`\n * property. Override this method to provide your own formatting.\n *\n * @remarks\n *\n * The `formatMessage` function is called by the `CombinedGraphQLErrors`\n * constructor to provide a formatted message as the `message` property of the\n * `CombinedGraphQLErrors` object. Follow the [\"Providing a custom message\n * formatter\"](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.\n *\n * @param errors - The array of GraphQL errors returned from the server in\n * the `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n function formatMessage(\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ): string;\n\n interface InstanceProperties {\n /**\n * The raw list of GraphQL errors returned by the `errors` field in the GraphQL response.\n */\n readonly errors: ReadonlyArray<GraphQLFormattedError>;\n\n /**\n * Partial data returned in the `data` field of the GraphQL response.\n */\n readonly data: Record<string, unknown> | null | undefined;\n\n /**\n * Extensions returned by the `extensions` field in the GraphQL response.\n */\n readonly extensions: Record<string, unknown> | undefined;\n }\n }\n}\n\nfunction defaultFormatMessage(errors: ReadonlyArray<GraphQLFormattedError>) {\n return (\n errors\n // Handle non-spec-compliant servers: See #1185\n .filter((e) => e)\n .map((e) => e.message || \"Error message not found.\")\n .join(\"\\n\")\n );\n}\n\n/**\n * Represents the combined list of GraphQL errors returned from the server in a\n * GraphQL response. This error type is used when your GraphQL operation returns\n * errors in the `errors` field of the response.\n *\n * @remarks\n *\n * When your GraphQL operation encounters errors on the server side (such as\n * resolver errors, validation errors, or syntax errors), the server returns\n * these errors in the `errors` array of the GraphQL response. Apollo Client\n * wraps these errors in a `CombinedGraphQLErrors` object, which provides access\n * to the individual errors while maintaining additional context about the\n * response.\n *\n * @example\n *\n * ```ts\n * import { CombinedGraphQLErrors } from \"@apollo/client/errors\";\n *\n * // Check if an error is a CombinedGraphQLErrors object\n * if (CombinedGraphQLErrors.is(error)) {\n * // Access individual GraphQL errors\n * error.errors.forEach((graphQLError) => {\n * console.log(graphQLError.message);\n * console.log(graphQLError.path);\n * console.log(graphQLError.locations);\n * });\n *\n * // Access the original GraphQL result\n * console.log(error.result);\n * }\n * ```\n */\nexport class CombinedGraphQLErrors extends Error {\n /**\n * A method that determines whether an error is a `CombinedGraphQLErrors`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (CombinedGraphQLErrors.is(error)) {\n * // TypeScript now knows `error` is a CombinedGraphQLErrors object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error: unknown): error is CombinedGraphQLErrors {\n return isBranded(error, \"CombinedGraphQLErrors\");\n }\n\n /** {@inheritDoc @apollo/client!CombinedGraphQLErrors.DocumentationTypes.formatMessage:function(1)} */\n static formatMessage: CombinedGraphQLErrors.MessageFormatter =\n defaultFormatMessage;\n\n /** {@inheritDoc @apollo/client!CombinedGraphQLErrors.DocumentationTypes.InstanceProperties#errors:member} */\n readonly errors: ReadonlyArray<GraphQLFormattedError>;\n\n /** {@inheritDoc @apollo/client!CombinedGraphQLErrors.DocumentationTypes.InstanceProperties#data:member} */\n readonly data: Record<string, unknown> | null | undefined;\n\n /** {@inheritDoc @apollo/client!CombinedGraphQLErrors.DocumentationTypes.InstanceProperties#extensions:member} */\n readonly extensions: Record<string, unknown> | undefined;\n\n constructor(result: FormattedExecutionResult<any>);\n constructor(\n result: FetchResult<any>,\n errors: ReadonlyArray<GraphQLFormattedError>\n );\n\n constructor(\n result: FetchResult<any> | FormattedExecutionResult<any>,\n errors = (result as FormattedExecutionResult<any>).errors || []\n ) {\n super(\n CombinedGraphQLErrors.formatMessage(errors, {\n result,\n defaultFormatMessage,\n })\n );\n this.errors = errors;\n this.data = (result as Partial<FormattedExecutionResult>).data;\n this.extensions = (result as Partial<FormattedExecutionResult>).extensions;\n this.name = \"CombinedGraphQLErrors\";\n\n brand(this);\n Object.setPrototypeOf(this, CombinedGraphQLErrors.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -2,34 +2,169 @@ import type { FormattedExecutionResult, GraphQLFormattedError } from "graphql";
2
2
  import type { FetchResult } from "@apollo/client";
3
3
  export declare namespace CombinedGraphQLErrors {
4
4
  interface MessageFormatterOptions {
5
+ /**
6
+ * The raw result returned from the server.
7
+ */
5
8
  result: FetchResult<unknown>;
9
+ /**
10
+ * The default message formatter. Call this to get a string with the default
11
+ * formatted message.
12
+ *
13
+ * @remarks
14
+ * To format part of the message using the default message formatter, call
15
+ * the `defaultFormatMessage` function provided to the `options` argument of
16
+ * your message formatter.
17
+ *
18
+ * @example
19
+ *
20
+ * The following example prepends a string to the message and uses the
21
+ * default message formatter to format the error messages.
22
+ *
23
+ * ```ts
24
+ * CombinedGraphQLErrors.formatMessage = (errors, { defaultFormatMessage }) => {
25
+ * return `[GraphQL errors]: ${defaultFormatMessage(errors)}`;
26
+ * };
27
+ * ```
28
+ */
6
29
  defaultFormatMessage: (errors: ReadonlyArray<GraphQLFormattedError>) => string;
7
30
  }
31
+ /**
32
+ * By default, `CombinedGraphQLErrors` formats the `message` property by
33
+ * joining each error's `message` field with a newline. To customize the
34
+ * format of the `message`, such as changing the delimiter or adding a message
35
+ * prefix, override the static `formatMessage` method.
36
+ *
37
+ * @example
38
+ *
39
+ * The following example demonstrates how to format the error message by
40
+ * joining each error with a comma.
41
+ *
42
+ * ```ts
43
+ * import { CombinedGraphQLErrors } from "@apollo/client/errors";
44
+ *
45
+ * CombinedGraphQLErrors.formatMessage = (errors) => {
46
+ * return errors.map((error) => error.message).join(", ");
47
+ * };
48
+ * ```
49
+ *
50
+ * @remarks
51
+ *
52
+ * See the [`formatMessage`](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#formatmessage) docs for details about the parameters provided to the `formatMessage` function.
53
+ *
54
+ * > [!NOTE]
55
+ * > The message formatter needs to be configured before any operation is executed by Apollo Client, otherwise the default message formatter is used. We recommend configuring the message formatter before initializing your `ApolloClient` instance.
56
+ *
57
+ * @param errors - The array of GraphQL errors returned from the server in the
58
+ * `errors` field of the response.
59
+ * @param options - Additional context that could be useful when formatting
60
+ * the message.
61
+ */
8
62
  type MessageFormatter = (errors: ReadonlyArray<GraphQLFormattedError>, options: MessageFormatterOptions) => string;
63
+ namespace DocumentationTypes {
64
+ /**
65
+ * A function that formats the error message used for the error's `message`
66
+ * property. Override this method to provide your own formatting.
67
+ *
68
+ * @remarks
69
+ *
70
+ * The `formatMessage` function is called by the `CombinedGraphQLErrors`
71
+ * constructor to provide a formatted message as the `message` property of the
72
+ * `CombinedGraphQLErrors` object. Follow the ["Providing a custom message
73
+ * formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
74
+ *
75
+ * @param errors - The array of GraphQL errors returned from the server in
76
+ * the `errors` field of the response.
77
+ * @param options - Additional context that could be useful when formatting
78
+ * the message.
79
+ */
80
+ function formatMessage(errors: ReadonlyArray<GraphQLFormattedError>, options: MessageFormatterOptions): string;
81
+ interface InstanceProperties {
82
+ /**
83
+ * The raw list of GraphQL errors returned by the `errors` field in the GraphQL response.
84
+ */
85
+ readonly errors: ReadonlyArray<GraphQLFormattedError>;
86
+ /**
87
+ * Partial data returned in the `data` field of the GraphQL response.
88
+ */
89
+ readonly data: Record<string, unknown> | null | undefined;
90
+ /**
91
+ * Extensions returned by the `extensions` field in the GraphQL response.
92
+ */
93
+ readonly extensions: Record<string, unknown> | undefined;
94
+ }
95
+ }
9
96
  }
10
97
  /**
11
98
  * Represents the combined list of GraphQL errors returned from the server in a
12
- * GraphQL response.
99
+ * GraphQL response. This error type is used when your GraphQL operation returns
100
+ * errors in the `errors` field of the response.
101
+ *
102
+ * @remarks
103
+ *
104
+ * When your GraphQL operation encounters errors on the server side (such as
105
+ * resolver errors, validation errors, or syntax errors), the server returns
106
+ * these errors in the `errors` array of the GraphQL response. Apollo Client
107
+ * wraps these errors in a `CombinedGraphQLErrors` object, which provides access
108
+ * to the individual errors while maintaining additional context about the
109
+ * response.
110
+ *
111
+ * @example
112
+ *
113
+ * ```ts
114
+ * import { CombinedGraphQLErrors } from "@apollo/client/errors";
115
+ *
116
+ * // Check if an error is a CombinedGraphQLErrors object
117
+ * if (CombinedGraphQLErrors.is(error)) {
118
+ * // Access individual GraphQL errors
119
+ * error.errors.forEach((graphQLError) => {
120
+ * console.log(graphQLError.message);
121
+ * console.log(graphQLError.path);
122
+ * console.log(graphQLError.locations);
123
+ * });
124
+ *
125
+ * // Access the original GraphQL result
126
+ * console.log(error.result);
127
+ * }
128
+ * ```
13
129
  */
14
130
  export declare class CombinedGraphQLErrors extends Error {
15
- /** Determine if an error is a `CombinedGraphQLErrors` instance */
16
- static is(error: unknown): error is CombinedGraphQLErrors;
17
131
  /**
18
- * Formats the error message used for the error `message` property. Override
19
- * to provide your own formatting.
132
+ * A method that determines whether an error is a `CombinedGraphQLErrors`
133
+ * object. This method enables TypeScript to narrow the error type.
134
+ *
135
+ * @example
136
+ *
137
+ * ```ts
138
+ * if (CombinedGraphQLErrors.is(error)) {
139
+ * // TypeScript now knows `error` is a CombinedGraphQLErrors object
140
+ * console.log(error.errors);
141
+ * }
142
+ * ```
20
143
  */
144
+ static is(error: unknown): error is CombinedGraphQLErrors;
145
+ /**
146
+ * A function that formats the error message used for the error's `message` property. Override this method to provide your own formatting.
147
+ *
148
+ * @remarks
149
+ *
150
+ * The `formatMessage` function is called by the `CombinedGraphQLErrors` constructor to provide a formatted message as the `message` property of the `CombinedGraphQLErrors` object. Follow the ["Providing a custom message formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedGraphQLErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
151
+ *
152
+ * @param errors - The array of GraphQL errors returned from the server in the `errors` field of the response.
153
+ *
154
+ * @param options - Additional context that could be useful when formatting the message.
155
+ */
21
156
  static formatMessage: CombinedGraphQLErrors.MessageFormatter;
22
157
  /**
23
- * The raw list of GraphQL errors returned in a GraphQL response.
24
- */
158
+ * The raw list of GraphQL errors returned by the `errors` field in the GraphQL response.
159
+ */
25
160
  readonly errors: ReadonlyArray<GraphQLFormattedError>;
26
161
  /**
27
- * Partial data returned in the GraphQL response.
28
- */
162
+ * Partial data returned in the `data` field of the GraphQL response.
163
+ */
29
164
  readonly data: Record<string, unknown> | null | undefined;
30
165
  /**
31
- * Extensions added to the result.
32
- */
166
+ * Extensions returned by the `extensions` field in the GraphQL response.
167
+ */
33
168
  readonly extensions: Record<string, unknown> | undefined;
34
169
  constructor(result: FormattedExecutionResult<any>);
35
170
  constructor(result: FetchResult<any>, errors: ReadonlyArray<GraphQLFormattedError>);
@@ -9,13 +9,60 @@ function defaultFormatMessage(errors) {
9
9
  * Fatal transport-level errors returned when executing a subscription using the
10
10
  * multipart HTTP subscription protocol. See the documentation on the
11
11
  * [multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol) for more information on these errors.
12
+ *
13
+ * @remarks
14
+ *
15
+ * These errors indicate issues with the subscription transport itself, rather
16
+ * than GraphQL-level errors. They typically occur when there are problems
17
+ * communicating with subgraphs from the Apollo Router.
18
+ *
19
+ * @example
20
+ *
21
+ * ```ts
22
+ * import { CombinedProtocolErrors } from "@apollo/client/errors";
23
+ *
24
+ * // Check if an error is a CombinedProtocolErrors instance
25
+ * if (CombinedProtocolErrors.is(error)) {
26
+ * // Access individual protocol errors
27
+ * error.errors.forEach((protocolError) => {
28
+ * console.log(protocolError.message);
29
+ * console.log(protocolError.extensions);
30
+ * });
31
+ * }
32
+ * ```
12
33
  */
13
34
  class CombinedProtocolErrors extends Error {
14
- /** Determine if an error is a `CombinedProtocolErrors` instance */
35
+ /**
36
+ * A method that determines whether an error is a `CombinedProtocolErrors`
37
+ * object. This method enables TypeScript to narrow the error type.
38
+ *
39
+ * @example
40
+ *
41
+ * ```ts
42
+ * if (CombinedProtocolErrors.is(error)) {
43
+ * // TypeScript now knows `error` is a CombinedProtocolErrors object
44
+ * console.log(error.errors);
45
+ * }
46
+ * ```
47
+ */
15
48
  static is(error) {
16
49
  return (0, utils_js_1.isBranded)(error, "CombinedProtocolErrors");
17
50
  }
51
+ /**
52
+ * A function that formats the error message used for the error's `message` property. Override this method to provide your own formatting.
53
+ *
54
+ * @remarks
55
+ *
56
+ * The `formatMessage` function is called by the `CombinedProtocolErrors` constructor to provide a formatted message as the `message` property of the `CombinedProtocolErrors` object. Follow the ["Providing a custom message formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
57
+ *
58
+ * @param errors - The array of GraphQL errors returned from the server in the `errors` field of the response.
59
+ *
60
+ * @param options - Additional context that could be useful when formatting the message.
61
+ */
18
62
  static formatMessage = defaultFormatMessage;
63
+ /**
64
+ * The raw list of errors returned by the top-level `errors` field in the multipart HTTP subscription response.
65
+ */
19
66
  errors;
20
67
  constructor(protocolErrors) {
21
68
  super(CombinedProtocolErrors.formatMessage(protocolErrors, {
@@ -1 +1 @@
1
- {"version":3,"file":"CombinedProtocolErrors.cjs","sources":["../../../src/errors/CombinedProtocolErrors.ts"],"sourcesContent":["import type { GraphQLFormattedError } from \"graphql\";\n\nimport { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace CombinedProtocolErrors {\n export interface MessageFormatterOptions {\n defaultFormatMessage: (\n errors: ReadonlyArray<GraphQLFormattedError>\n ) => string;\n }\n\n export type MessageFormatter = (\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ) => string;\n}\n\nfunction defaultFormatMessage(errors: ReadonlyArray<GraphQLFormattedError>) {\n return errors.map((e) => e.message || \"Error message not found.\").join(\"\\n\");\n}\n\n/**\n * Fatal transport-level errors returned when executing a subscription using the\n * multipart HTTP subscription protocol. See the documentation on the\n * [multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol) for more information on these errors.\n */\nexport class CombinedProtocolErrors extends Error {\n /** Determine if an error is a `CombinedProtocolErrors` instance */\n static is(error: unknown): error is CombinedProtocolErrors {\n return isBranded(error, \"CombinedProtocolErrors\");\n }\n\n static formatMessage: CombinedProtocolErrors.MessageFormatter =\n defaultFormatMessage;\n\n errors: ReadonlyArray<GraphQLFormattedError>;\n\n constructor(\n protocolErrors:\n | Array<GraphQLFormattedError>\n | ReadonlyArray<GraphQLFormattedError>\n ) {\n super(\n CombinedProtocolErrors.formatMessage(protocolErrors, {\n defaultFormatMessage,\n })\n );\n this.name = \"CombinedProtocolErrors\";\n this.errors = protocolErrors;\n\n brand(this);\n Object.setPrototypeOf(this, CombinedProtocolErrors.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CombinedProtocolErrors.cjs","sources":["../../../src/errors/CombinedProtocolErrors.ts"],"sourcesContent":["import type { GraphQLFormattedError } from \"graphql\";\n\nimport { brand, isBranded } from \"./utils.js\";\n\nexport declare namespace CombinedProtocolErrors {\n export interface MessageFormatterOptions {\n /**\n * The default message formatter. Call this to get a string with the default\n * formatted message.\n *\n * @remarks\n * To format part of the message using the default message formatter, call\n * the `defaultFormatMessage` function provided to the `options` argument of\n * your message formatter.\n *\n * @example\n *\n * The following example prepends a string to the message and uses the\n * default message formatter to format the error messages.\n *\n * ```ts\n * CombinedProtocolErrors.formatMessage = (errors, { defaultFormatMessage }) => {\n * return `[Protocol errors]: ${defaultFormatMessage(errors)}`;\n * };\n * ```\n */\n defaultFormatMessage: (\n errors: ReadonlyArray<GraphQLFormattedError>\n ) => string;\n }\n\n /**\n * By default, `CombinedProtocolErrors` formats the `message` property by\n * joining each error's `message` field with a newline. To customize the\n * format of the `message`, such as changing the delimiter or adding a message\n * prefix, override the static `formatMessage` method.\n *\n * @remarks\n *\n * See the [`formatMessage`](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors) section for details about the parameters provided to the `formatMessage` function.\n *\n * > [!NOTE]\n * > The message formatter needs to be configured before any operation is executed by Apollo Client, otherwise the default message formatter is used. We recommend configuring the message formatter before initializing your `ApolloClient` instance.\n *\n * @example\n *\n * The following example demonstrates how to format the error message by\n * joining each error with a comma.\n *\n * ```ts\n * import { CombinedProtocolErrors } from \"@apollo/client/errors\";\n *\n * CombinedProtocolErrors.formatMessage = (errors) => {\n * return errors.map((error) => error.message).join(\", \");\n * };\n * ```\n *\n * @param errors - The array of GraphQL errors returned from the server in the\n * `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n export type MessageFormatter = (\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ) => string;\n\n namespace DocumentationTypes {\n /**\n * A function that formats the error message used for the error's `message`\n * property. Override this method to provide your own formatting.\n *\n * @remarks\n *\n * The `formatMessage` function is called by the `CombinedProtocolErrors`\n * constructor to provide a formatted message as the `message` property of the\n * `CombinedProtocolErrors` object. Follow the [\"Providing a custom message\n * formatter\"](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.\n *\n * @param errors - The array of GraphQL errors returned from the server in the\n * `errors` field of the response.\n * @param options - Additional context that could be useful when formatting\n * the message.\n */\n function formatMessage(\n errors: ReadonlyArray<GraphQLFormattedError>,\n options: MessageFormatterOptions\n ): string;\n\n interface InstanceProperties {\n /**\n * The raw list of errors returned by the top-level `errors` field in the\n * multipart HTTP subscription response.\n */\n readonly errors: ReadonlyArray<GraphQLFormattedError>;\n }\n }\n}\n\nfunction defaultFormatMessage(errors: ReadonlyArray<GraphQLFormattedError>) {\n return errors.map((e) => e.message || \"Error message not found.\").join(\"\\n\");\n}\n\n/**\n * Fatal transport-level errors returned when executing a subscription using the\n * multipart HTTP subscription protocol. See the documentation on the\n * [multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol) for more information on these errors.\n *\n * @remarks\n *\n * These errors indicate issues with the subscription transport itself, rather\n * than GraphQL-level errors. They typically occur when there are problems\n * communicating with subgraphs from the Apollo Router.\n *\n * @example\n *\n * ```ts\n * import { CombinedProtocolErrors } from \"@apollo/client/errors\";\n *\n * // Check if an error is a CombinedProtocolErrors instance\n * if (CombinedProtocolErrors.is(error)) {\n * // Access individual protocol errors\n * error.errors.forEach((protocolError) => {\n * console.log(protocolError.message);\n * console.log(protocolError.extensions);\n * });\n * }\n * ```\n */\nexport class CombinedProtocolErrors extends Error {\n /**\n * A method that determines whether an error is a `CombinedProtocolErrors`\n * object. This method enables TypeScript to narrow the error type.\n *\n * @example\n *\n * ```ts\n * if (CombinedProtocolErrors.is(error)) {\n * // TypeScript now knows `error` is a CombinedProtocolErrors object\n * console.log(error.errors);\n * }\n * ```\n */\n static is(error: unknown): error is CombinedProtocolErrors {\n return isBranded(error, \"CombinedProtocolErrors\");\n }\n\n /** {@inheritDoc @apollo/client!CombinedProtocolErrors.DocumentationTypes.formatMessage:function(1)} */\n static formatMessage: CombinedProtocolErrors.MessageFormatter =\n defaultFormatMessage;\n\n /** {@inheritDoc @apollo/client!CombinedProtocolErrors.DocumentationTypes.InstanceProperties#errors:member} */\n readonly errors: ReadonlyArray<GraphQLFormattedError>;\n\n constructor(\n protocolErrors:\n | Array<GraphQLFormattedError>\n | ReadonlyArray<GraphQLFormattedError>\n ) {\n super(\n CombinedProtocolErrors.formatMessage(protocolErrors, {\n defaultFormatMessage,\n })\n );\n this.name = \"CombinedProtocolErrors\";\n this.errors = protocolErrors;\n\n brand(this);\n Object.setPrototypeOf(this, CombinedProtocolErrors.prototype);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,20 +1,144 @@
1
1
  import type { GraphQLFormattedError } from "graphql";
2
2
  export declare namespace CombinedProtocolErrors {
3
3
  interface MessageFormatterOptions {
4
+ /**
5
+ * The default message formatter. Call this to get a string with the default
6
+ * formatted message.
7
+ *
8
+ * @remarks
9
+ * To format part of the message using the default message formatter, call
10
+ * the `defaultFormatMessage` function provided to the `options` argument of
11
+ * your message formatter.
12
+ *
13
+ * @example
14
+ *
15
+ * The following example prepends a string to the message and uses the
16
+ * default message formatter to format the error messages.
17
+ *
18
+ * ```ts
19
+ * CombinedProtocolErrors.formatMessage = (errors, { defaultFormatMessage }) => {
20
+ * return `[Protocol errors]: ${defaultFormatMessage(errors)}`;
21
+ * };
22
+ * ```
23
+ */
4
24
  defaultFormatMessage: (errors: ReadonlyArray<GraphQLFormattedError>) => string;
5
25
  }
26
+ /**
27
+ * By default, `CombinedProtocolErrors` formats the `message` property by
28
+ * joining each error's `message` field with a newline. To customize the
29
+ * format of the `message`, such as changing the delimiter or adding a message
30
+ * prefix, override the static `formatMessage` method.
31
+ *
32
+ * @remarks
33
+ *
34
+ * See the [`formatMessage`](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors) section for details about the parameters provided to the `formatMessage` function.
35
+ *
36
+ * > [!NOTE]
37
+ * > The message formatter needs to be configured before any operation is executed by Apollo Client, otherwise the default message formatter is used. We recommend configuring the message formatter before initializing your `ApolloClient` instance.
38
+ *
39
+ * @example
40
+ *
41
+ * The following example demonstrates how to format the error message by
42
+ * joining each error with a comma.
43
+ *
44
+ * ```ts
45
+ * import { CombinedProtocolErrors } from "@apollo/client/errors";
46
+ *
47
+ * CombinedProtocolErrors.formatMessage = (errors) => {
48
+ * return errors.map((error) => error.message).join(", ");
49
+ * };
50
+ * ```
51
+ *
52
+ * @param errors - The array of GraphQL errors returned from the server in the
53
+ * `errors` field of the response.
54
+ * @param options - Additional context that could be useful when formatting
55
+ * the message.
56
+ */
6
57
  type MessageFormatter = (errors: ReadonlyArray<GraphQLFormattedError>, options: MessageFormatterOptions) => string;
58
+ namespace DocumentationTypes {
59
+ /**
60
+ * A function that formats the error message used for the error's `message`
61
+ * property. Override this method to provide your own formatting.
62
+ *
63
+ * @remarks
64
+ *
65
+ * The `formatMessage` function is called by the `CombinedProtocolErrors`
66
+ * constructor to provide a formatted message as the `message` property of the
67
+ * `CombinedProtocolErrors` object. Follow the ["Providing a custom message
68
+ * formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
69
+ *
70
+ * @param errors - The array of GraphQL errors returned from the server in the
71
+ * `errors` field of the response.
72
+ * @param options - Additional context that could be useful when formatting
73
+ * the message.
74
+ */
75
+ function formatMessage(errors: ReadonlyArray<GraphQLFormattedError>, options: MessageFormatterOptions): string;
76
+ interface InstanceProperties {
77
+ /**
78
+ * The raw list of errors returned by the top-level `errors` field in the
79
+ * multipart HTTP subscription response.
80
+ */
81
+ readonly errors: ReadonlyArray<GraphQLFormattedError>;
82
+ }
83
+ }
7
84
  }
8
85
  /**
9
86
  * Fatal transport-level errors returned when executing a subscription using the
10
87
  * multipart HTTP subscription protocol. See the documentation on the
11
88
  * [multipart HTTP protocol for GraphQL Subscriptions](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol) for more information on these errors.
89
+ *
90
+ * @remarks
91
+ *
92
+ * These errors indicate issues with the subscription transport itself, rather
93
+ * than GraphQL-level errors. They typically occur when there are problems
94
+ * communicating with subgraphs from the Apollo Router.
95
+ *
96
+ * @example
97
+ *
98
+ * ```ts
99
+ * import { CombinedProtocolErrors } from "@apollo/client/errors";
100
+ *
101
+ * // Check if an error is a CombinedProtocolErrors instance
102
+ * if (CombinedProtocolErrors.is(error)) {
103
+ * // Access individual protocol errors
104
+ * error.errors.forEach((protocolError) => {
105
+ * console.log(protocolError.message);
106
+ * console.log(protocolError.extensions);
107
+ * });
108
+ * }
109
+ * ```
12
110
  */
13
111
  export declare class CombinedProtocolErrors extends Error {
14
- /** Determine if an error is a `CombinedProtocolErrors` instance */
112
+ /**
113
+ * A method that determines whether an error is a `CombinedProtocolErrors`
114
+ * object. This method enables TypeScript to narrow the error type.
115
+ *
116
+ * @example
117
+ *
118
+ * ```ts
119
+ * if (CombinedProtocolErrors.is(error)) {
120
+ * // TypeScript now knows `error` is a CombinedProtocolErrors object
121
+ * console.log(error.errors);
122
+ * }
123
+ * ```
124
+ */
15
125
  static is(error: unknown): error is CombinedProtocolErrors;
126
+ /**
127
+ * A function that formats the error message used for the error's `message` property. Override this method to provide your own formatting.
128
+ *
129
+ * @remarks
130
+ *
131
+ * The `formatMessage` function is called by the `CombinedProtocolErrors` constructor to provide a formatted message as the `message` property of the `CombinedProtocolErrors` object. Follow the ["Providing a custom message formatter"](https://www.apollographql.com/docs/react/api/errors/CombinedProtocolErrors#providing-a-custom-message-formatter) guide to learn how to modify the message format.
132
+ *
133
+ * @param errors - The array of GraphQL errors returned from the server in the `errors` field of the response.
134
+ *
135
+ * @param options - Additional context that could be useful when formatting the message.
136
+ */
16
137
  static formatMessage: CombinedProtocolErrors.MessageFormatter;
17
- errors: ReadonlyArray<GraphQLFormattedError>;
138
+ /**
139
+ * The raw list of errors returned by the top-level `errors` field in the multipart HTTP subscription response.
140
+ */
141
+ readonly errors: ReadonlyArray<GraphQLFormattedError>;
18
142
  constructor(protocolErrors: Array<GraphQLFormattedError> | ReadonlyArray<GraphQLFormattedError>);
19
143
  }
20
144
  //# sourceMappingURL=CombinedProtocolErrors.d.cts.map
@@ -13,11 +13,54 @@ function registerLinkError(error) {
13
13
  }
14
14
  /**
15
15
  * A facade error type that keeps a registry of errors emitted from the link
16
- * chain. Determine if an error is from the link chain using `NetworkError.is`.
16
+ * chain. `LinkError` is not an error class itself but rather a utility to
17
+ * detect whether an error originated from the link chain.
18
+ *
19
+ * @remarks
20
+ *
21
+ * Use `LinkError` to distinguish between errors from the link chain and custom
22
+ * errors. This is helpful for retrying an operation at the call site only when
23
+ * the error originates from the link chain.
24
+ *
25
+ * @example
26
+ *
27
+ * The following example creates a custom wrapped query function that detects
28
+ * whether the query includes an operation name and throws if not.
29
+ *
30
+ * ```ts
31
+ * import { LinkError } from "@apollo/client/errors";
32
+ *
33
+ * async function runQuery<TData>(query: TypedDocumentNode<TData>) {
34
+ * if (!hasOperationName(query)) {
35
+ * throw new Error("Queries should have operation names.");
36
+ * }
37
+ *
38
+ * return client.watchQuery({ query });
39
+ * }
40
+ *
41
+ * try {
42
+ * const result = await runQuery(query);
43
+ * } catch (error) {
44
+ * // Only log the error if the error wasn't our own custom thrown error
45
+ * if (LinkError.is(error)) {
46
+ * console.log("Got network error:", error.message);
47
+ * }
48
+ * }
49
+ * ```
17
50
  */
18
51
  exports.LinkError = {
19
52
  /**
20
- * Determine if the error is an error emitted from the link chain.
53
+ * A method that determines whether an error originated from the link chain.
54
+ * `is` does not provide any type narrowing.
55
+ *
56
+ * @example
57
+ *
58
+ * ```ts
59
+ * if (LinkError.is(error)) {
60
+ * // The error originated from the link chain
61
+ * console.log("Got network error:", error.message);
62
+ * }
63
+ * ```
21
64
  */
22
65
  is: (error) => registry.has(error),
23
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LinkError.cjs","sources":["../../../src/errors/LinkError.ts"],"sourcesContent":["import type { ErrorLike } from \"@apollo/client\";\n\nconst registry = new WeakSet<ErrorLike>();\n\n/** @internal Please do not use directly. */\nexport function registerLinkError(error: ErrorLike) {\n registry.add(error);\n}\n\n/**\n * A facade error type that keeps a registry of errors emitted from the link\n * chain. Determine if an error is from the link chain using `NetworkError.is`.\n */\nexport const LinkError = {\n /**\n * Determine if the error is an error emitted from the link chain.\n */\n is: (error: unknown) => registry.has(error as ErrorLike),\n};\n"],"names":[],"mappings":";;;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAHA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAiB,CAAjB,CAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAA5B,CAAyC;;;;;;AAGzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAlC,CAAA,CAAA,CAAA,CAAkD,EAAlD;IACE,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAX,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAA,CAAoB,CAAC;AACrB;AAEA,CAAA,CAAA;;;CAGA,CAAA;AACa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAyB;IACvB,CAAF,CAAA;;KAEA,CAAA;IACE,CAAF,CAAI,EAAE,CAAC,CAAP,CAAA,CAAA,CAAA,CAAqB,EAAE,CAAvB,EAA0B,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAnC,CAAA,CAAsC,CAAC,CAAvC,CAAA,CAAA,CAAA,CAAyD,CAAC;AAC1D,CAAC;"}
1
+ {"version":3,"file":"LinkError.cjs","sources":["../../../src/errors/LinkError.ts"],"sourcesContent":["import type { ErrorLike } from \"@apollo/client\";\n\nconst registry = new WeakSet<ErrorLike>();\n\n/** @internal Please do not use directly. */\nexport function registerLinkError(error: ErrorLike) {\n registry.add(error);\n}\n\n/**\n * A facade error type that keeps a registry of errors emitted from the link\n * chain. `LinkError` is not an error class itself but rather a utility to\n * detect whether an error originated from the link chain.\n *\n * @remarks\n *\n * Use `LinkError` to distinguish between errors from the link chain and custom\n * errors. This is helpful for retrying an operation at the call site only when\n * the error originates from the link chain.\n *\n * @example\n *\n * The following example creates a custom wrapped query function that detects\n * whether the query includes an operation name and throws if not.\n *\n * ```ts\n * import { LinkError } from \"@apollo/client/errors\";\n *\n * async function runQuery<TData>(query: TypedDocumentNode<TData>) {\n * if (!hasOperationName(query)) {\n * throw new Error(\"Queries should have operation names.\");\n * }\n *\n * return client.watchQuery({ query });\n * }\n *\n * try {\n * const result = await runQuery(query);\n * } catch (error) {\n * // Only log the error if the error wasn't our own custom thrown error\n * if (LinkError.is(error)) {\n * console.log(\"Got network error:\", error.message);\n * }\n * }\n * ```\n */\nexport const LinkError = {\n /**\n * A method that determines whether an error originated from the link chain.\n * `is` does not provide any type narrowing.\n *\n * @example\n *\n * ```ts\n * if (LinkError.is(error)) {\n * // The error originated from the link chain\n * console.log(\"Got network error:\", error.message);\n * }\n * ```\n */\n is: (error: unknown) => registry.has(error as ErrorLike),\n};\n"],"names":[],"mappings":";;;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAHA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAiB,CAAjB,CAAA,EAAqB,CAArB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAA5B,CAAyC;;;;;;AAGzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAlC,CAAA,CAAA,CAAA,CAAkD,EAAlD;IACE,CAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAX,CAAA,CAAc,CAAC,CAAf,CAAA,CAAA,CAAA,CAAoB,CAAC;AACrB;AAEA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCA,CAAA;AACa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAyB;IACvB,CAAF,CAAA;;;;;;;;;;;;KAYA,CAAA;IACE,CAAF,CAAI,EAAE,CAAC,CAAP,CAAA,CAAA,CAAA,CAAqB,EAAE,CAAvB,EAA0B,CAA1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAnC,CAAA,CAAsC,CAAC,CAAvC,CAAA,CAAA,CAAA,CAAyD,CAAC;AAC1D,CAAC;"}