@apollo/client 3.8.0-alpha.1 → 3.8.0-alpha.11

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 (373) hide show
  1. package/README.md +3 -1
  2. package/apollo-client.cjs +661 -468
  3. package/apollo-client.cjs.map +1 -1
  4. package/apollo-client.min.cjs +1 -1
  5. package/cache/cache.cjs +56 -44
  6. package/cache/cache.cjs.map +1 -1
  7. package/cache/cache.cjs.native.js +56 -44
  8. package/cache/core/cache.d.ts +2 -1
  9. package/cache/core/cache.d.ts.map +1 -1
  10. package/cache/core/cache.js +1 -0
  11. package/cache/core/cache.js.map +1 -1
  12. package/cache/core/types/DataProxy.d.ts +3 -2
  13. package/cache/core/types/DataProxy.d.ts.map +1 -1
  14. package/cache/core/types/DataProxy.js.map +1 -1
  15. package/cache/core/types/common.d.ts +7 -7
  16. package/cache/core/types/common.d.ts.map +1 -1
  17. package/cache/inmemory/entityStore.d.ts +1 -1
  18. package/cache/inmemory/entityStore.d.ts.map +1 -1
  19. package/cache/inmemory/entityStore.js +1 -1
  20. package/cache/inmemory/helpers.d.ts +2 -2
  21. package/cache/inmemory/helpers.d.ts.map +1 -1
  22. package/cache/inmemory/helpers.js +2 -2
  23. package/cache/inmemory/helpers.js.map +1 -1
  24. package/cache/inmemory/inMemoryCache.d.ts +4 -2
  25. package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
  26. package/cache/inmemory/inMemoryCache.js +2 -1
  27. package/cache/inmemory/inMemoryCache.js.map +1 -1
  28. package/cache/inmemory/key-extractor.js +1 -1
  29. package/cache/inmemory/object-canon.d.ts +0 -1
  30. package/cache/inmemory/object-canon.d.ts.map +1 -1
  31. package/cache/inmemory/object-canon.js +1 -1
  32. package/cache/inmemory/object-canon.js.map +1 -1
  33. package/cache/inmemory/policies.d.ts +12 -12
  34. package/cache/inmemory/policies.d.ts.map +1 -1
  35. package/cache/inmemory/policies.js +15 -4
  36. package/cache/inmemory/policies.js.map +1 -1
  37. package/cache/inmemory/reactiveVars.d.ts +1 -1
  38. package/cache/inmemory/reactiveVars.d.ts.map +1 -1
  39. package/cache/inmemory/readFromStore.d.ts +2 -2
  40. package/cache/inmemory/readFromStore.d.ts.map +1 -1
  41. package/cache/inmemory/readFromStore.js +1 -1
  42. package/cache/inmemory/readFromStore.js.map +1 -1
  43. package/cache/inmemory/types.d.ts +4 -4
  44. package/cache/inmemory/types.d.ts.map +1 -1
  45. package/cache/inmemory/writeToStore.d.ts +1 -1
  46. package/cache/inmemory/writeToStore.d.ts.map +1 -1
  47. package/cache/inmemory/writeToStore.js +1 -1
  48. package/cache/inmemory/writeToStore.js.map +1 -1
  49. package/core/ApolloClient.d.ts +10 -9
  50. package/core/ApolloClient.d.ts.map +1 -1
  51. package/core/ApolloClient.js +17 -11
  52. package/core/ApolloClient.js.map +1 -1
  53. package/core/LocalState.d.ts +12 -7
  54. package/core/LocalState.d.ts.map +1 -1
  55. package/core/LocalState.js +71 -17
  56. package/core/LocalState.js.map +1 -1
  57. package/core/ObservableQuery.d.ts +6 -7
  58. package/core/ObservableQuery.d.ts.map +1 -1
  59. package/core/ObservableQuery.js +6 -10
  60. package/core/ObservableQuery.js.map +1 -1
  61. package/core/QueryInfo.d.ts +1 -1
  62. package/core/QueryInfo.d.ts.map +1 -1
  63. package/core/QueryInfo.js +1 -1
  64. package/core/QueryInfo.js.map +1 -1
  65. package/core/QueryManager.d.ts +7 -7
  66. package/core/QueryManager.d.ts.map +1 -1
  67. package/core/QueryManager.js +24 -14
  68. package/core/QueryManager.js.map +1 -1
  69. package/core/core.cjs +142 -83
  70. package/core/core.cjs.map +1 -1
  71. package/core/core.cjs.native.js +142 -83
  72. package/core/index.js +2 -2
  73. package/core/index.js.map +1 -1
  74. package/core/networkStatus.d.ts +1 -0
  75. package/core/networkStatus.d.ts.map +1 -1
  76. package/core/networkStatus.js +3 -0
  77. package/core/networkStatus.js.map +1 -1
  78. package/core/types.d.ts +24 -17
  79. package/core/types.d.ts.map +1 -1
  80. package/core/types.js +1 -0
  81. package/core/types.js.map +1 -1
  82. package/core/watchQueryOptions.d.ts +11 -12
  83. package/core/watchQueryOptions.d.ts.map +1 -1
  84. package/core/watchQueryOptions.js.map +1 -1
  85. package/errors/index.d.ts +2 -2
  86. package/errors/index.d.ts.map +1 -1
  87. package/invariantErrorCodes.js +58 -52
  88. package/link/batch/batch.cjs +5 -3
  89. package/link/batch/batch.cjs.map +1 -1
  90. package/link/batch/batch.cjs.native.js +5 -3
  91. package/link/batch/batching.d.ts +2 -2
  92. package/link/batch/batching.d.ts.map +1 -1
  93. package/link/batch/batching.js +5 -3
  94. package/link/batch/batching.js.map +1 -1
  95. package/link/batch-http/batch-http.cjs +12 -2
  96. package/link/batch-http/batch-http.cjs.map +1 -1
  97. package/link/batch-http/batch-http.cjs.native.js +12 -2
  98. package/link/batch-http/batchHttpLink.d.ts.map +1 -1
  99. package/link/batch-http/batchHttpLink.js +13 -3
  100. package/link/batch-http/batchHttpLink.js.map +1 -1
  101. package/link/context/index.d.ts +2 -1
  102. package/link/context/index.d.ts.map +1 -1
  103. package/link/context/index.js.map +1 -1
  104. package/link/core/ApolloLink.js +2 -2
  105. package/link/core/core.cjs +2 -2
  106. package/link/core/core.cjs.map +1 -1
  107. package/link/core/core.cjs.native.js +2 -2
  108. package/link/core/types.d.ts +15 -15
  109. package/link/core/types.d.ts.map +1 -1
  110. package/link/core/types.js.map +1 -1
  111. package/link/http/checkFetcher.js +2 -2
  112. package/link/http/createHttpLink.d.ts +0 -1
  113. package/link/http/createHttpLink.d.ts.map +1 -1
  114. package/link/http/createHttpLink.js +10 -2
  115. package/link/http/createHttpLink.js.map +1 -1
  116. package/link/http/http.cjs +20 -38
  117. package/link/http/http.cjs.map +1 -1
  118. package/link/http/http.cjs.native.js +20 -38
  119. package/link/http/iterators/async.js.map +1 -1
  120. package/link/http/iterators/nodeStream.js.map +1 -1
  121. package/link/http/iterators/promise.js.map +1 -1
  122. package/link/http/iterators/reader.js.map +1 -1
  123. package/link/http/parseAndCheckHttpResponse.d.ts +2 -2
  124. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  125. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  126. package/link/http/responseIterator.js +1 -1
  127. package/link/http/responseIterator.js.map +1 -1
  128. package/link/http/selectHttpOptionsAndBody.d.ts +2 -2
  129. package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
  130. package/link/http/selectHttpOptionsAndBody.js +3 -1
  131. package/link/http/selectHttpOptionsAndBody.js.map +1 -1
  132. package/link/http/serializeFetchParameter.d.ts +1 -1
  133. package/link/http/serializeFetchParameter.d.ts.map +1 -1
  134. package/link/http/serializeFetchParameter.js +2 -2
  135. package/link/persisted-queries/index.d.ts +2 -2
  136. package/link/persisted-queries/index.d.ts.map +1 -1
  137. package/link/persisted-queries/index.js +3 -3
  138. package/link/persisted-queries/persisted-queries.cjs +3 -3
  139. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  140. package/link/persisted-queries/persisted-queries.cjs.native.js +3 -3
  141. package/link/utils/throwServerError.d.ts +1 -1
  142. package/link/utils/throwServerError.d.ts.map +1 -1
  143. package/link/utils/toPromise.js +1 -1
  144. package/link/utils/utils.cjs +2 -2
  145. package/link/utils/utils.cjs.map +1 -1
  146. package/link/utils/utils.cjs.native.js +2 -2
  147. package/link/utils/validateOperation.js +2 -2
  148. package/package.json +26 -24
  149. package/react/cache/QuerySubscription.d.ts +26 -0
  150. package/react/cache/QuerySubscription.d.ts.map +1 -0
  151. package/react/cache/QuerySubscription.js +88 -0
  152. package/react/cache/QuerySubscription.js.map +1 -0
  153. package/react/cache/SuspenseCache.d.ts +9 -13
  154. package/react/cache/SuspenseCache.d.ts.map +1 -1
  155. package/react/cache/SuspenseCache.js +17 -40
  156. package/react/cache/SuspenseCache.js.map +1 -1
  157. package/react/components/Query.d.ts +2 -2
  158. package/react/components/Query.d.ts.map +1 -1
  159. package/react/components/Query.js.map +1 -1
  160. package/react/components/Subscription.d.ts +2 -2
  161. package/react/components/Subscription.d.ts.map +1 -1
  162. package/react/components/Subscription.js.map +1 -1
  163. package/react/components/types.d.ts +2 -2
  164. package/react/components/types.d.ts.map +1 -1
  165. package/react/components/types.js.map +1 -1
  166. package/react/context/ApolloConsumer.js +2 -2
  167. package/react/context/ApolloProvider.js +2 -2
  168. package/react/context/context.cjs +4 -4
  169. package/react/context/context.cjs.map +1 -1
  170. package/react/context/context.cjs.native.js +4 -4
  171. package/react/hoc/graphql.d.ts +2 -1
  172. package/react/hoc/graphql.d.ts.map +1 -1
  173. package/react/hoc/graphql.js.map +1 -1
  174. package/react/hoc/hoc-utils.d.ts +1 -1
  175. package/react/hoc/hoc-utils.d.ts.map +1 -1
  176. package/react/hoc/hoc-utils.js +2 -2
  177. package/react/hoc/hoc.cjs +4 -4
  178. package/react/hoc/hoc.cjs.map +1 -1
  179. package/react/hoc/hoc.cjs.native.js +4 -4
  180. package/react/hoc/mutation-hoc.d.ts +2 -2
  181. package/react/hoc/mutation-hoc.d.ts.map +1 -1
  182. package/react/hoc/mutation-hoc.js.map +1 -1
  183. package/react/hoc/query-hoc.d.ts +1 -1
  184. package/react/hoc/query-hoc.d.ts.map +1 -1
  185. package/react/hoc/query-hoc.js.map +1 -1
  186. package/react/hoc/subscription-hoc.d.ts +1 -1
  187. package/react/hoc/subscription-hoc.d.ts.map +1 -1
  188. package/react/hoc/subscription-hoc.js.map +1 -1
  189. package/react/hoc/types.d.ts +6 -6
  190. package/react/hoc/types.d.ts.map +1 -1
  191. package/react/hoc/types.js.map +1 -1
  192. package/react/hoc/withApollo.js +2 -2
  193. package/react/hooks/hooks.cjs +190 -174
  194. package/react/hooks/hooks.cjs.map +1 -1
  195. package/react/hooks/hooks.cjs.native.js +190 -174
  196. package/react/hooks/internal/__use.d.ts +2 -0
  197. package/react/hooks/internal/__use.d.ts.map +1 -0
  198. package/react/hooks/internal/__use.js +13 -0
  199. package/react/hooks/internal/__use.js.map +1 -0
  200. package/react/hooks/internal/index.d.ts +3 -0
  201. package/react/hooks/internal/index.d.ts.map +1 -1
  202. package/react/hooks/internal/index.js +3 -0
  203. package/react/hooks/internal/index.js.map +1 -1
  204. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts +3 -0
  205. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts.map +1 -0
  206. package/react/hooks/internal/useIsomorphicLayoutEffect.js +6 -0
  207. package/react/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -0
  208. package/react/hooks/internal/useStrictModeSafeCleanupEffect.d.ts +2 -0
  209. package/react/hooks/internal/useStrictModeSafeCleanupEffect.d.ts.map +1 -0
  210. package/react/hooks/internal/useStrictModeSafeCleanupEffect.js +11 -0
  211. package/react/hooks/internal/useStrictModeSafeCleanupEffect.js.map +1 -0
  212. package/react/hooks/useApolloClient.js +2 -2
  213. package/react/hooks/useFragment.d.ts +4 -2
  214. package/react/hooks/useFragment.d.ts.map +1 -1
  215. package/react/hooks/useFragment.js +9 -8
  216. package/react/hooks/useFragment.js.map +1 -1
  217. package/react/hooks/useLazyQuery.d.ts +2 -2
  218. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  219. package/react/hooks/useLazyQuery.js +22 -8
  220. package/react/hooks/useLazyQuery.js.map +1 -1
  221. package/react/hooks/useMutation.d.ts +2 -2
  222. package/react/hooks/useMutation.d.ts.map +1 -1
  223. package/react/hooks/useMutation.js +9 -8
  224. package/react/hooks/useMutation.js.map +1 -1
  225. package/react/hooks/useQuery.d.ts +6 -5
  226. package/react/hooks/useQuery.d.ts.map +1 -1
  227. package/react/hooks/useQuery.js +21 -7
  228. package/react/hooks/useQuery.js.map +1 -1
  229. package/react/hooks/useSubscription.d.ts +2 -3
  230. package/react/hooks/useSubscription.d.ts.map +1 -1
  231. package/react/hooks/useSubscription.js +1 -2
  232. package/react/hooks/useSubscription.js.map +1 -1
  233. package/react/hooks/useSuspenseCache.d.ts +2 -1
  234. package/react/hooks/useSuspenseCache.d.ts.map +1 -1
  235. package/react/hooks/useSuspenseCache.js +7 -5
  236. package/react/hooks/useSuspenseCache.js.map +1 -1
  237. package/react/hooks/useSuspenseQuery.d.ts +16 -4
  238. package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
  239. package/react/hooks/useSuspenseQuery.js +73 -136
  240. package/react/hooks/useSuspenseQuery.js.map +1 -1
  241. package/react/hooks/useSyncExternalStore.d.ts +1 -1
  242. package/react/hooks/useSyncExternalStore.d.ts.map +1 -1
  243. package/react/hooks/useSyncExternalStore.js +1 -1
  244. package/react/hooks/useSyncExternalStore.js.map +1 -1
  245. package/react/parser/index.js +6 -6
  246. package/react/parser/parser.cjs +10 -10
  247. package/react/parser/parser.cjs.map +1 -1
  248. package/react/parser/parser.cjs.native.js +10 -10
  249. package/react/react.cjs +112 -38
  250. package/react/react.cjs.map +1 -1
  251. package/react/react.cjs.native.js +112 -38
  252. package/react/ssr/RenderPromises.d.ts +4 -4
  253. package/react/ssr/RenderPromises.d.ts.map +1 -1
  254. package/react/ssr/RenderPromises.js.map +1 -1
  255. package/react/ssr/getDataFromTree.d.ts +1 -1
  256. package/react/ssr/getDataFromTree.d.ts.map +1 -1
  257. package/react/types/types.d.ts +26 -25
  258. package/react/types/types.d.ts.map +1 -1
  259. package/react/types/types.js.map +1 -1
  260. package/testing/core/core.cjs +30 -3
  261. package/testing/core/core.cjs.map +1 -1
  262. package/testing/core/core.cjs.native.js +30 -3
  263. package/testing/core/index.d.ts +2 -1
  264. package/testing/core/index.d.ts.map +1 -1
  265. package/testing/core/index.js +1 -0
  266. package/testing/core/index.js.map +1 -1
  267. package/testing/core/itAsync.js.map +1 -1
  268. package/testing/core/mocking/mockFetch.js.map +1 -1
  269. package/testing/core/mocking/mockLink.d.ts +8 -4
  270. package/testing/core/mocking/mockLink.d.ts.map +1 -1
  271. package/testing/core/mocking/mockLink.js +14 -4
  272. package/testing/core/mocking/mockLink.js.map +1 -1
  273. package/testing/core/mocking/mockQueryManager.d.ts +1 -1
  274. package/testing/core/mocking/mockQueryManager.d.ts.map +1 -1
  275. package/testing/core/mocking/mockQueryManager.js +3 -3
  276. package/testing/core/mocking/mockQueryManager.js.map +1 -1
  277. package/testing/core/mocking/mockWatchQuery.d.ts +1 -1
  278. package/testing/core/mocking/mockWatchQuery.d.ts.map +1 -1
  279. package/testing/core/mocking/mockWatchQuery.js +4 -5
  280. package/testing/core/mocking/mockWatchQuery.js.map +1 -1
  281. package/testing/core/observableToPromise.d.ts +2 -2
  282. package/testing/core/observableToPromise.d.ts.map +1 -1
  283. package/testing/core/observableToPromise.js.map +1 -1
  284. package/testing/core/wait.d.ts +3 -0
  285. package/testing/core/wait.d.ts.map +1 -0
  286. package/testing/core/wait.js +16 -0
  287. package/testing/core/wait.js.map +1 -0
  288. package/testing/react/MockedProvider.d.ts +1 -0
  289. package/testing/react/MockedProvider.d.ts.map +1 -1
  290. package/testing/react/MockedProvider.js +2 -2
  291. package/testing/react/MockedProvider.js.map +1 -1
  292. package/testing/testing.cjs +112 -40
  293. package/testing/testing.cjs.map +1 -1
  294. package/testing/testing.cjs.native.js +112 -40
  295. package/utilities/common/arrays.d.ts +1 -0
  296. package/utilities/common/arrays.d.ts.map +1 -1
  297. package/utilities/common/arrays.js +1 -0
  298. package/utilities/common/arrays.js.map +1 -1
  299. package/utilities/common/cloneDeep.js.map +1 -1
  300. package/utilities/common/errorHandling.d.ts +2 -2
  301. package/utilities/common/errorHandling.d.ts.map +1 -1
  302. package/utilities/common/errorHandling.js.map +1 -1
  303. package/utilities/common/incrementalResult.d.ts +4 -4
  304. package/utilities/common/incrementalResult.d.ts.map +1 -1
  305. package/utilities/common/incrementalResult.js.map +1 -1
  306. package/utilities/common/maybeDeepFreeze.d.ts +0 -1
  307. package/utilities/common/maybeDeepFreeze.d.ts.map +1 -1
  308. package/utilities/common/maybeDeepFreeze.js +1 -1
  309. package/utilities/common/maybeDeepFreeze.js.map +1 -1
  310. package/utilities/common/mergeDeep.d.ts +2 -2
  311. package/utilities/common/mergeDeep.d.ts.map +1 -1
  312. package/utilities/common/mergeOptions.d.ts +3 -3
  313. package/utilities/common/mergeOptions.d.ts.map +1 -1
  314. package/utilities/common/mergeOptions.js +1 -1
  315. package/utilities/common/mergeOptions.js.map +1 -1
  316. package/utilities/globals/DEV.d.ts +1 -1
  317. package/utilities/globals/DEV.d.ts.map +1 -1
  318. package/utilities/globals/DEV.js +1 -17
  319. package/utilities/globals/DEV.js.map +1 -1
  320. package/utilities/globals/global.d.ts +5 -2
  321. package/utilities/globals/global.d.ts.map +1 -1
  322. package/utilities/globals/global.js.map +1 -1
  323. package/utilities/globals/globals.cjs +5 -22
  324. package/utilities/globals/globals.cjs.map +1 -1
  325. package/utilities/globals/globals.cjs.native.js +5 -22
  326. package/utilities/globals/index.d.ts +1 -1
  327. package/utilities/globals/index.d.ts.map +1 -1
  328. package/utilities/globals/index.js +1 -4
  329. package/utilities/globals/index.js.map +1 -1
  330. package/utilities/graphql/directives.d.ts +2 -2
  331. package/utilities/graphql/directives.d.ts.map +1 -1
  332. package/utilities/graphql/directives.js +5 -5
  333. package/utilities/graphql/directives.js.map +1 -1
  334. package/utilities/graphql/fragments.d.ts +1 -1
  335. package/utilities/graphql/fragments.d.ts.map +1 -1
  336. package/utilities/graphql/fragments.js +4 -4
  337. package/utilities/graphql/getFromAST.d.ts.map +1 -1
  338. package/utilities/graphql/getFromAST.js +16 -12
  339. package/utilities/graphql/getFromAST.js.map +1 -1
  340. package/utilities/graphql/storeUtils.d.ts +3 -3
  341. package/utilities/graphql/storeUtils.d.ts.map +1 -1
  342. package/utilities/graphql/storeUtils.js +2 -2
  343. package/utilities/graphql/storeUtils.js.map +1 -1
  344. package/utilities/graphql/transform.d.ts +9 -9
  345. package/utilities/graphql/transform.d.ts.map +1 -1
  346. package/utilities/graphql/transform.js +168 -91
  347. package/utilities/graphql/transform.js.map +1 -1
  348. package/utilities/index.d.ts +2 -0
  349. package/utilities/index.d.ts.map +1 -1
  350. package/utilities/index.js +2 -0
  351. package/utilities/index.js.map +1 -1
  352. package/utilities/observables/Concast.d.ts +5 -5
  353. package/utilities/observables/Concast.d.ts.map +1 -1
  354. package/utilities/observables/Concast.js +2 -2
  355. package/utilities/observables/Concast.js.map +1 -1
  356. package/utilities/observables/asyncMap.js.map +1 -1
  357. package/utilities/policies/pagination.d.ts +7 -7
  358. package/utilities/policies/pagination.d.ts.map +1 -1
  359. package/utilities/policies/pagination.js.map +1 -1
  360. package/utilities/promises/decoration.d.ts +15 -0
  361. package/utilities/promises/decoration.d.ts.map +1 -0
  362. package/utilities/promises/decoration.js +25 -0
  363. package/utilities/promises/decoration.js.map +1 -0
  364. package/utilities/types/IsStrictlyAny.d.ts +3 -3
  365. package/utilities/types/IsStrictlyAny.d.ts.map +1 -1
  366. package/utilities/utilities.cjs +256 -128
  367. package/utilities/utilities.cjs.map +1 -1
  368. package/utilities/utilities.cjs.native.js +256 -128
  369. package/version.js +1 -1
  370. package/cache/inmemory/__mocks__/optimism.d.ts +0 -2
  371. package/cache/inmemory/__mocks__/optimism.d.ts.map +0 -1
  372. package/cache/inmemory/__mocks__/optimism.js +0 -14
  373. package/cache/inmemory/__mocks__/optimism.js.map +0 -1
@@ -46,8 +46,18 @@ var BatchHttpLink = (function (_super) {
46
46
  credentials: context.credentials,
47
47
  headers: tslib.__assign(tslib.__assign({}, clientAwarenessHeaders), context.headers),
48
48
  };
49
- var optsAndBody = operations.map(function (operation) {
50
- return http.selectHttpOptionsAndBodyInternal(operation, print, http.fallbackHttpConfig, linkConfig, contextConfig);
49
+ var queries = operations.map(function (_a) {
50
+ var query = _a.query;
51
+ if (utilities.hasDirectives(['client'], query)) {
52
+ return utilities.removeClientSetsFromDocument(query);
53
+ }
54
+ return query;
55
+ });
56
+ if (queries.some(function (query) { return !query; })) {
57
+ return utils.fromError(new Error('BatchHttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or enable the `transformOptions.removeClientFields` option.'));
58
+ }
59
+ var optsAndBody = operations.map(function (operation, index) {
60
+ return http.selectHttpOptionsAndBodyInternal(tslib.__assign(tslib.__assign({}, operation), { query: queries[index] }), print, http.fallbackHttpConfig, linkConfig, contextConfig);
51
61
  });
52
62
  var loadedBody = optsAndBody.map(function (_a) {
53
63
  var body = _a.body;
@@ -1 +1 @@
1
- {"version":3,"file":"batchHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/batch-http/batchHttpLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAQL,WAAW,EAEZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,yBAAiB,aAAa,CAAC;IAC7B,KAAY,OAAO,GAAG,IAAI,CACxB,SAAS,CAAC,OAAO,EACjB,UAAU,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAC5D,GAAG,WAAW,CAAC;CACjB;AAMD,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,CAAC,EAAE,aAAa,CAAC,OAAO;IA2LxC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;CAGrE"}
1
+ {"version":3,"file":"batchHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/batch-http/batchHttpLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EACL,UAAU,EAGX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAQL,WAAW,EAEZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,yBAAiB,aAAa,CAAC;IAC7B,KAAY,OAAO,GAAG,IAAI,CACxB,SAAS,CAAC,OAAO,EACjB,UAAU,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAC5D,GAAG,WAAW,CAAC;CACjB;AAMD,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,CAAC,EAAE,aAAa,CAAC,OAAO;IA6MxC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;CAGrE"}
@@ -1,6 +1,6 @@
1
1
  import { __assign, __extends, __rest } from "tslib";
2
2
  import { ApolloLink } from "../core/index.js";
3
- import { Observable } from "../../utilities/index.js";
3
+ import { Observable, hasDirectives, removeClientSetsFromDocument } from "../../utilities/index.js";
4
4
  import { fromError } from "../utils/index.js";
5
5
  import { serializeFetchParameter, selectURI, parseAndCheckHttpResponse, checkFetcher, selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, createSignalIfSupported, } from "../http/index.js";
6
6
  import { BatchLink } from "../batch/index.js";
@@ -41,8 +41,18 @@ var BatchHttpLink = (function (_super) {
41
41
  credentials: context.credentials,
42
42
  headers: __assign(__assign({}, clientAwarenessHeaders), context.headers),
43
43
  };
44
- var optsAndBody = operations.map(function (operation) {
45
- return selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig);
44
+ var queries = operations.map(function (_a) {
45
+ var query = _a.query;
46
+ if (hasDirectives(['client'], query)) {
47
+ return removeClientSetsFromDocument(query);
48
+ }
49
+ return query;
50
+ });
51
+ if (queries.some(function (query) { return !query; })) {
52
+ return fromError(new Error('BatchHttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or enable the `transformOptions.removeClientFields` option.'));
53
+ }
54
+ var optsAndBody = operations.map(function (operation, index) {
55
+ return selectHttpOptionsAndBodyInternal(__assign(__assign({}, operation), { query: queries[index] }), print, fallbackHttpConfig, linkConfig, contextConfig);
46
56
  });
47
57
  var loadedBody = optsAndBody.map(function (_a) {
48
58
  var body = _a.body;
@@ -1 +1 @@
1
- {"version":3,"file":"batchHttpLink.js","sourceRoot":"","sources":["../../../src/link/batch-http/batchHttpLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApolloLink, Operation, FetchResult } from '../core';\nimport { Observable } from '../../utilities';\nimport { fromError } from '../utils';\nimport {\n serializeFetchParameter,\n selectURI,\n parseAndCheckHttpResponse,\n checkFetcher,\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n HttpOptions,\n createSignalIfSupported,\n} from '../http';\nimport { BatchLink } from '../batch';\n\nexport namespace BatchHttpLink {\n export type Options = Pick<\n BatchLink.Options,\n 'batchMax' | 'batchDebounce' | 'batchInterval' | 'batchKey'\n > & HttpOptions;\n}\n\n/**\n * Transforms Operation for into HTTP results.\n * context can include the headers property, which will be passed to the fetch function\n */\nexport class BatchHttpLink extends ApolloLink {\n private batchDebounce?: boolean;\n private batchInterval: number;\n private batchMax: number;\n private batcher: ApolloLink;\n\n constructor(fetchParams?: BatchHttpLink.Options) {\n super();\n\n let {\n uri = '/graphql',\n // use default global fetch if nothing is passed in\n fetch: fetcher,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n batchInterval,\n batchDebounce,\n batchMax,\n batchKey,\n ...requestOptions\n } = fetchParams || ({} as BatchHttpLink.Options);\n\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n this.batchDebounce = batchDebounce;\n this.batchInterval = batchInterval || 10;\n this.batchMax = batchMax || 10;\n\n const batchHandler = (operations: Operation[]) => {\n const chosenURI = selectURI(operations[0], uri);\n\n const context = operations[0].getContext();\n\n const clientAwarenessHeaders: {\n 'apollographql-client-name'?: string;\n 'apollographql-client-version'?: string;\n } = {};\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: { ...clientAwarenessHeaders, ...context.headers },\n };\n\n //uses fallback, link, and then context to build options\n const optsAndBody = operations.map(operation =>\n selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n ),\n );\n\n const loadedBody = optsAndBody.map(({ body }) => body);\n const options = optsAndBody[0].options;\n\n // There's no spec for using GET with batches.\n if (options.method === 'GET') {\n return fromError<FetchResult[]>(\n new Error('apollo-link-batch-http does not support GET requests'),\n );\n }\n\n try {\n (options as any).body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError<FetchResult[]>(parseError);\n }\n\n let controller: any;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n return new Observable<FetchResult[]>(observer => {\n fetcher!(chosenURI, options)\n .then(response => {\n // Make the raw response available in the context.\n operations.forEach(operation => operation.setContext({ response }));\n return response;\n })\n .then(parseAndCheckHttpResponse(operations))\n .then(result => {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(err => {\n // fetch was cancelled so its already been cleaned up in the unsubscribe\n if (err.name === 'AbortError') return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networkErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we dont' call next, the UI can only show networkError because AC didn't\n // get andy graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n };\n\n batchKey =\n batchKey ||\n ((operation: Operation) => {\n const context = operation.getContext();\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers,\n };\n\n //may throw error if config not serializable\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n });\n\n this.batcher = new BatchLink({\n batchDebounce: this.batchDebounce,\n batchInterval: this.batchInterval,\n batchMax: this.batchMax,\n batchKey,\n batchHandler,\n });\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n return this.batcher.request(operation);\n }\n}\n"]}
1
+ {"version":3,"file":"batchHttpLink.js","sourceRoot":"","sources":["../../../src/link/batch-http/batchHttpLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApolloLink, Operation, FetchResult } from '../core';\nimport {\n Observable,\n hasDirectives,\n removeClientSetsFromDocument\n} from '../../utilities';\nimport { fromError } from '../utils';\nimport {\n serializeFetchParameter,\n selectURI,\n parseAndCheckHttpResponse,\n checkFetcher,\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n HttpOptions,\n createSignalIfSupported,\n} from '../http';\nimport { BatchLink } from '../batch';\n\nexport namespace BatchHttpLink {\n export type Options = Pick<\n BatchLink.Options,\n 'batchMax' | 'batchDebounce' | 'batchInterval' | 'batchKey'\n > & HttpOptions;\n}\n\n/**\n * Transforms Operation for into HTTP results.\n * context can include the headers property, which will be passed to the fetch function\n */\nexport class BatchHttpLink extends ApolloLink {\n private batchDebounce?: boolean;\n private batchInterval: number;\n private batchMax: number;\n private batcher: ApolloLink;\n\n constructor(fetchParams?: BatchHttpLink.Options) {\n super();\n\n let {\n uri = '/graphql',\n // use default global fetch if nothing is passed in\n fetch: fetcher,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n batchInterval,\n batchDebounce,\n batchMax,\n batchKey,\n ...requestOptions\n } = fetchParams || ({} as BatchHttpLink.Options);\n\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n this.batchDebounce = batchDebounce;\n this.batchInterval = batchInterval || 10;\n this.batchMax = batchMax || 10;\n\n const batchHandler = (operations: Operation[]) => {\n const chosenURI = selectURI(operations[0], uri);\n\n const context = operations[0].getContext();\n\n const clientAwarenessHeaders: {\n 'apollographql-client-name'?: string;\n 'apollographql-client-version'?: string;\n } = {};\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: { ...clientAwarenessHeaders, ...context.headers },\n };\n\n const queries = operations.map(({ query }) => {\n if (hasDirectives(['client'], query)) {\n return removeClientSetsFromDocument(query);\n }\n\n return query;\n });\n\n // If we have a query that returned `null` after removing client-only\n // fields, it indicates a query that is using all client-only fields.\n if (queries.some(query => !query)) {\n return fromError<FetchResult[]>(\n new Error(\n 'BatchHttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or enable the `transformOptions.removeClientFields` option.'\n )\n );\n }\n\n //uses fallback, link, and then context to build options\n const optsAndBody = operations.map((operation, index) =>\n selectHttpOptionsAndBodyInternal(\n { ...operation, query: queries[index]! },\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n ),\n );\n\n const loadedBody = optsAndBody.map(({ body }) => body);\n const options = optsAndBody[0].options;\n\n // There's no spec for using GET with batches.\n if (options.method === 'GET') {\n return fromError<FetchResult[]>(\n new Error('apollo-link-batch-http does not support GET requests'),\n );\n }\n\n try {\n (options as any).body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError<FetchResult[]>(parseError);\n }\n\n let controller: any;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n return new Observable<FetchResult[]>(observer => {\n fetcher!(chosenURI, options)\n .then(response => {\n // Make the raw response available in the context.\n operations.forEach(operation => operation.setContext({ response }));\n return response;\n })\n .then(parseAndCheckHttpResponse(operations))\n .then(result => {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(err => {\n // fetch was cancelled so its already been cleaned up in the unsubscribe\n if (err.name === 'AbortError') return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networkErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we dont' call next, the UI can only show networkError because AC didn't\n // get andy graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n };\n\n batchKey =\n batchKey ||\n ((operation: Operation) => {\n const context = operation.getContext();\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers,\n };\n\n //may throw error if config not serializable\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n });\n\n this.batcher = new BatchLink({\n batchDebounce: this.batchDebounce,\n batchInterval: this.batchInterval,\n batchMax: this.batchMax,\n batchKey,\n batchHandler,\n });\n }\n\n public request(operation: Operation): Observable<FetchResult> | null {\n return this.batcher.request(operation);\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { ApolloLink, GraphQLRequest } from '../core';
2
- export declare type ContextSetter = (operation: GraphQLRequest, prevContext: any) => Promise<any> | any;
2
+ import { DefaultContext } from '../../core';
3
+ export type ContextSetter = (operation: GraphQLRequest, prevContext: DefaultContext) => Promise<DefaultContext> | DefaultContext;
3
4
  export declare function setContext(setter: ContextSetter): ApolloLink;
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAY,MAAM,SAAS,CAAC;AAG1E,oBAAY,aAAa,GAAG,CAC1B,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,GAAG,KACb,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAExB,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CA2B5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAY,MAAM,SAAS,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,cAAc,KACxB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;AAE9C,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CA2B5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/context/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAA0B,MAAM,iBAAiB,CAAC;AAOrE,MAAM,UAAU,UAAU,CAAC,MAAqB;IAC9C,OAAO,IAAI,UAAU,CAAC,UAAC,SAAoB,EAAE,OAAiB;QAC5D,IAAW,OAAO,UAAK,SAAS,EAA1B,EAAc,CAAY,CAAC;QAEjC,OAAO,IAAI,UAAU,CAAC,UAAA,QAAQ;YAC5B,IAAI,MAA8B,CAAC;YACnC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,EAAnC,CAAmC,CAAC;iBAChD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iBAC1B,IAAI,CAAC;gBAEJ,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;oBACpC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAClC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAExC,OAAO;gBACL,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,MAAM;oBAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { ApolloLink, Operation, GraphQLRequest, NextLink } from '../core';\nimport { Observable, ObservableSubscription } from '../../utilities';\n\nexport type ContextSetter = (\n operation: GraphQLRequest,\n prevContext: any,\n) => Promise<any> | any;\n\nexport function setContext(setter: ContextSetter): ApolloLink {\n return new ApolloLink((operation: Operation, forward: NextLink) => {\n const { ...request } = operation;\n\n return new Observable(observer => {\n let handle: ObservableSubscription;\n let closed = false;\n Promise.resolve(request)\n .then(req => setter(req, operation.getContext()))\n .then(operation.setContext)\n .then(() => {\n // if the observer is already closed, no need to subscribe.\n if (closed) return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n\n return () => {\n closed = true;\n if (handle) handle.unsubscribe();\n };\n });\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/context/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuC,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAA0B,MAAM,iBAAiB,CAAC;AAQrE,MAAM,UAAU,UAAU,CAAC,MAAqB;IAC9C,OAAO,IAAI,UAAU,CAAC,UAAC,SAAoB,EAAE,OAAiB;QAC5D,IAAW,OAAO,UAAK,SAAS,EAA1B,EAAc,CAAY,CAAC;QAEjC,OAAO,IAAI,UAAU,CAAC,UAAA,QAAQ;YAC5B,IAAI,MAA8B,CAAC;YACnC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,EAAnC,CAAmC,CAAC;iBAChD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iBAC1B,IAAI,CAAC;gBAEJ,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;oBACpC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAClC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAExC,OAAO;gBACL,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,MAAM;oBAAE,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { ApolloLink, Operation, GraphQLRequest, NextLink } from '../core';\nimport { Observable, ObservableSubscription } from '../../utilities';\nimport { DefaultContext } from '../../core';\n\nexport type ContextSetter = (\n operation: GraphQLRequest,\n prevContext: DefaultContext,\n) => Promise<DefaultContext> | DefaultContext;\n\nexport function setContext(setter: ContextSetter): ApolloLink {\n return new ApolloLink((operation: Operation, forward: NextLink) => {\n const { ...request } = operation;\n\n return new Observable(observer => {\n let handle: ObservableSubscription;\n let closed = false;\n Promise.resolve(request)\n .then(req => setter(req, operation.getContext()))\n .then(operation.setContext)\n .then(() => {\n // if the observer is already closed, no need to subscribe.\n if (closed) return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n\n return () => {\n closed = true;\n if (handle) handle.unsubscribe();\n };\n });\n });\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { __extends } from "tslib";
2
- import { InvariantError, invariant } from "../../utilities/globals/index.js";
2
+ import { InvariantError, invariant, __DEV__ } from "../../utilities/globals/index.js";
3
3
  import { Observable } from "../../utilities/index.js";
4
4
  import { validateOperation, createOperation, transformOperation, } from "../utils/index.js";
5
5
  function passthrough(op, forward) {
@@ -81,7 +81,7 @@ var ApolloLink = (function () {
81
81
  return ApolloLink.concat(this, next);
82
82
  };
83
83
  ApolloLink.prototype.request = function (operation, forward) {
84
- throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(21);
84
+ throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(22);
85
85
  };
86
86
  ApolloLink.prototype.onError = function (error, observer) {
87
87
  if (observer && observer.error) {
@@ -62,7 +62,7 @@ var ApolloLink = (function () {
62
62
  ApolloLink.concat = function (first, second) {
63
63
  var firstLink = toLink(first);
64
64
  if (isTerminating(firstLink)) {
65
- __DEV__ && globals.invariant.warn(new LinkError("You are calling concat on a terminating link, which will have no effect", firstLink));
65
+ globals.__DEV__ && globals.invariant.warn(new LinkError("You are calling concat on a terminating link, which will have no effect", firstLink));
66
66
  return firstLink;
67
67
  }
68
68
  var nextLink = toLink(second);
@@ -86,7 +86,7 @@ var ApolloLink = (function () {
86
86
  return ApolloLink.concat(this, next);
87
87
  };
88
88
  ApolloLink.prototype.request = function (operation, forward) {
89
- throw __DEV__ ? new globals.InvariantError('request is not implemented') : new globals.InvariantError(21);
89
+ throw globals.__DEV__ ? new globals.InvariantError('request is not implemented') : new globals.InvariantError(22);
90
90
  };
91
91
  ApolloLink.prototype.onError = function (error, observer) {
92
92
  if (observer && observer.error) {
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs","sources":["ApolloLink.js","empty.js","from.js","split.js","concat.js","execute.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from '../../utilities/globals';\nimport { Observable } from '../../utilities';\nimport { validateOperation, createOperation, transformOperation, } from '../utils';\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(21);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { ApolloLink } from './ApolloLink';\nexport var empty = ApolloLink.empty;\n//# sourceMappingURL=empty.js.map","import { ApolloLink } from './ApolloLink';\nexport var from = ApolloLink.from;\n//# sourceMappingURL=from.js.map","import { ApolloLink } from './ApolloLink';\nexport var split = ApolloLink.split;\n//# sourceMappingURL=split.js.map","import { ApolloLink } from './ApolloLink';\nexport var concat = ApolloLink.concat;\n//# sourceMappingURL=concat.js.map","import { ApolloLink } from './ApolloLink';\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map"],"names":["Observable","__extends","createOperation","transformOperation","validateOperation","invariant","InvariantError"],"mappings":";;;;;;;;;AAIA,SAAS,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE;AAClC,IAAI,QAAQ,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,GAAGA,oBAAU,CAAC,EAAE,EAAE,EAAE;AACrD,CAAC;AACD,SAAS,MAAM,CAAC,OAAO,EAAE;AACzB,IAAI,OAAO,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAC7E,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;AACpC,CAAC;AACD,IAAI,SAAS,IAAI,UAAU,MAAM,EAAE;AACnC,IAAIC,eAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACjC,IAAI,SAAS,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;AACtC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;AACvD,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACP,IAAC,UAAU,IAAI,YAAY;AAC9B,IAAI,SAAS,UAAU,CAAC,OAAO,EAAE;AACjC,QAAQ,IAAI,OAAO;AACnB,YAAY,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACnC,KAAK;AACL,IAAI,UAAU,CAAC,KAAK,GAAG,YAAY;AACnC,QAAQ,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,OAAOD,oBAAU,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE;AACvC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,YAAY,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC;AACtC,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjF,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;AACjE,YAAY,OAAO,IAAI,UAAU,CAAC,UAAU,SAAS,EAAE;AACvD,gBAAgB,OAAO,IAAI,CAAC,SAAS,CAAC;AACtC,sBAAsB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE;AACpE,sBAAsB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE,CAAC;AACtE,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,UAAU,CAAC,UAAU,SAAS,EAAE,OAAO,EAAE;AAChE,gBAAgB,OAAO,IAAI,CAAC,SAAS,CAAC;AACtC,sBAAsB,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE;AAC7E,sBAAsB,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE,CAAC;AAC/E,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE,SAAS,EAAE;AACpD,QAAQ,QAAQ,IAAI,CAAC,OAAO,CAACE,qBAAe,CAAC,SAAS,CAAC,OAAO,EAAEC,wBAAkB,CAACC,uBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAIJ,oBAAU,CAAC,EAAE,EAAE,EAAE;AACvI,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AACjD,QAAQ,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACtC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;AACtC,YAAY,OAAO,IAAIK,iBAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,yEAAyE,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3I,YAAY,OAAO,SAAS,CAAC;AAC7B,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAY,OAAO,IAAI,UAAU,CAAC,UAAU,SAAS,EAAE;AACvD,gBAAgB,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAIL,oBAAU,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE,CAAC;AAC1I,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,UAAU,CAAC,UAAU,SAAS,EAAE,OAAO,EAAE;AAChE,gBAAgB,QAAQ,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;AACnE,oBAAoB,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE,CAAC;AAC5E,iBAAiB,CAAC,IAAIA,oBAAU,CAAC,EAAE,EAAE,EAAE;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AAC9D,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/F,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;AAClD,QAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,SAAS,EAAE,OAAO,EAAE;AACjE,QAAQ,MAAM,OAAO,GAAG,IAAIM,sBAAc,CAAC,4BAA4B,CAAC,GAAG,IAAIA,sBAAc,CAAC,EAAE,CAAC,CAAC;AAClG,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;AAC9D,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxC,YAAY,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,MAAM,KAAK,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,EAAE,EAAE;AACpD,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC,EAAE;;AChGO,IAAC,KAAK,GAAG,UAAU,CAAC;;ACApB,IAAC,IAAI,GAAG,UAAU,CAAC;;ACAnB,IAAC,KAAK,GAAG,UAAU,CAAC;;ACApB,IAAC,MAAM,GAAG,UAAU,CAAC;;ACArB,IAAC,OAAO,GAAG,UAAU,CAAC;;;;;;;;;"}
1
+ {"version":3,"file":"core.cjs","sources":["ApolloLink.js","empty.js","from.js","split.js","concat.js","execute.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport { InvariantError, invariant, __DEV__ } from '../../utilities/globals';\nimport { Observable } from '../../utilities';\nimport { validateOperation, createOperation, transformOperation, } from '../utils';\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(22);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { ApolloLink } from './ApolloLink';\nexport var empty = ApolloLink.empty;\n//# sourceMappingURL=empty.js.map","import { ApolloLink } from './ApolloLink';\nexport var from = ApolloLink.from;\n//# sourceMappingURL=from.js.map","import { ApolloLink } from './ApolloLink';\nexport var split = ApolloLink.split;\n//# sourceMappingURL=split.js.map","import { ApolloLink } from './ApolloLink';\nexport var concat = ApolloLink.concat;\n//# sourceMappingURL=concat.js.map","import { ApolloLink } from './ApolloLink';\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map"],"names":["Observable","__extends","createOperation","transformOperation","validateOperation","__DEV__","invariant","InvariantError"],"mappings":"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"}
@@ -62,7 +62,7 @@ var ApolloLink = (function () {
62
62
  ApolloLink.concat = function (first, second) {
63
63
  var firstLink = toLink(first);
64
64
  if (isTerminating(firstLink)) {
65
- __DEV__ && globals.invariant.warn(new LinkError("You are calling concat on a terminating link, which will have no effect", firstLink));
65
+ globals.__DEV__ && globals.invariant.warn(new LinkError("You are calling concat on a terminating link, which will have no effect", firstLink));
66
66
  return firstLink;
67
67
  }
68
68
  var nextLink = toLink(second);
@@ -86,7 +86,7 @@ var ApolloLink = (function () {
86
86
  return ApolloLink.concat(this, next);
87
87
  };
88
88
  ApolloLink.prototype.request = function (operation, forward) {
89
- throw __DEV__ ? new globals.InvariantError('request is not implemented') : new globals.InvariantError(21);
89
+ throw globals.__DEV__ ? new globals.InvariantError('request is not implemented') : new globals.InvariantError(22);
90
90
  };
91
91
  ApolloLink.prototype.onError = function (error, observer) {
92
92
  if (observer && observer.error) {
@@ -1,19 +1,19 @@
1
1
  import { DocumentNode, ExecutionResult, GraphQLError } from "graphql";
2
+ import { DefaultContext } from "../../core";
2
3
  export { DocumentNode };
3
4
  import { Observable } from "../../utilities";
4
- export declare type Path = ReadonlyArray<string | number>;
5
- declare type Data<T> = T | null | undefined;
5
+ export type Path = ReadonlyArray<string | number>;
6
6
  interface ExecutionPatchResultBase {
7
7
  hasNext?: boolean;
8
8
  }
9
9
  export interface ExecutionPatchInitialResult<TData = Record<string, any>, TExtensions = Record<string, any>> extends ExecutionPatchResultBase {
10
- data: Data<TData>;
10
+ data: TData | null | undefined;
11
11
  incremental?: never;
12
12
  errors?: ReadonlyArray<GraphQLError>;
13
13
  extensions?: TExtensions;
14
14
  }
15
15
  export interface IncrementalPayload<TData, TExtensions> {
16
- data: Data<TData>;
16
+ data: TData | null;
17
17
  label?: string;
18
18
  path: Path;
19
19
  errors?: ReadonlyArray<GraphQLError>;
@@ -25,12 +25,12 @@ export interface ExecutionPatchIncrementalResult<TData = Record<string, any>, TE
25
25
  errors?: never;
26
26
  extensions?: never;
27
27
  }
28
- export declare type ExecutionPatchResult<TData = Record<string, any>, TExtensions = Record<string, any>> = ExecutionPatchInitialResult<TData, TExtensions> | ExecutionPatchIncrementalResult<TData, TExtensions>;
29
- export interface GraphQLRequest {
28
+ export type ExecutionPatchResult<TData = Record<string, any>, TExtensions = Record<string, any>> = ExecutionPatchInitialResult<TData, TExtensions> | ExecutionPatchIncrementalResult<TData, TExtensions>;
29
+ export interface GraphQLRequest<TVariables = Record<string, any>> {
30
30
  query: DocumentNode;
31
- variables?: Record<string, any>;
31
+ variables?: TVariables;
32
32
  operationName?: string;
33
- context?: Record<string, any>;
33
+ context?: DefaultContext;
34
34
  extensions?: Record<string, any>;
35
35
  }
36
36
  export interface Operation {
@@ -38,14 +38,14 @@ export interface Operation {
38
38
  variables: Record<string, any>;
39
39
  operationName: string;
40
40
  extensions: Record<string, any>;
41
- setContext: (context: Record<string, any>) => Record<string, any>;
42
- getContext: () => Record<string, any>;
41
+ setContext: (context: DefaultContext) => DefaultContext;
42
+ getContext: () => DefaultContext;
43
43
  }
44
- export interface SingleExecutionResult<TData = Record<string, any>, TContext = Record<string, any>, TExtensions = Record<string, any>> extends ExecutionResult<TData, TExtensions> {
45
- data?: Data<TData>;
44
+ export interface SingleExecutionResult<TData = Record<string, any>, TContext = DefaultContext, TExtensions = Record<string, any>> extends ExecutionResult<TData, TExtensions> {
45
+ data?: TData | null;
46
46
  context?: TContext;
47
47
  }
48
- export declare type FetchResult<TData = Record<string, any>, TContext = Record<string, any>, TExtensions = Record<string, any>> = SingleExecutionResult<TData, TContext, TExtensions> | ExecutionPatchResult<TData, TExtensions>;
49
- export declare type NextLink = (operation: Operation) => Observable<FetchResult>;
50
- export declare type RequestHandler = (operation: Operation, forward: NextLink) => Observable<FetchResult> | null;
48
+ export type FetchResult<TData = Record<string, any>, TContext = Record<string, any>, TExtensions = Record<string, any>> = SingleExecutionResult<TData, TContext, TExtensions> | ExecutionPatchResult<TData, TExtensions>;
49
+ export type NextLink = (operation: Operation) => Observable<FetchResult>;
50
+ export type RequestHandler = (operation: Operation, forward: NextLink) => Observable<FetchResult> | null;
51
51
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,oBAAY,IAAI,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAClD,aAAK,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAGpC,UAAU,wBAAwB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B,CAC1C,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,wBAAwB;IAEhC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB,CACjC,KAAK,EACL,WAAW;IAIX,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,+BAA+B,CAC9C,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,wBAAwB;IAGhC,WAAW,CAAC,EAAE,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;IACvD,IAAI,CAAC,EAAE,KAAK,CAAC;IAGb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,oBAAY,oBAAoB,CAC9B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAE/B,2BAA2B,CAAC,KAAK,EAAE,WAAW,CAAC,GAC/C,+BAA+B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClE,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB,CACpC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,oBAAY,WAAW,CACrB,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAE/B,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GACnD,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE7C,oBAAY,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC;AAEzE,oBAAY,cAAc,GAAG,CAC3B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,KACd,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAElD,UAAU,wBAAwB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B,CAC1C,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,wBAAwB;IAEhC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB,CACjC,KAAK,EACL,WAAW;IAIX,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,+BAA+B,CAC9C,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,wBAAwB;IAGhC,WAAW,CAAC,EAAE,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;IACvD,IAAI,CAAC,EAAE,KAAK,CAAC;IAGb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,CAC9B,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAE/B,2BAA2B,CAAC,KAAK,EAAE,WAAW,CAAC,GAC/C,+BAA+B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAExD,MAAM,WAAW,cAAc,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,cAAc,CAAC;IACxD,UAAU,EAAE,MAAM,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB,CACpC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,GAAG,cAAc,EACzB,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACjC,SAAQ,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC;IAC3C,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,CACrB,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAE/B,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GACnD,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG,CAC3B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,KACd,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode, ExecutionResult, GraphQLError } from \"graphql\";\nexport { DocumentNode };\n\nimport { Observable } from \"../../utilities\";\n\nexport type Path = ReadonlyArray<string | number>;\ntype Data<T> = T | null | undefined;\n\n\ninterface ExecutionPatchResultBase {\n hasNext?: boolean;\n}\n\nexport interface ExecutionPatchInitialResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // if data is present, incremental is not\n data: Data<TData>;\n incremental?: never;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalPayload<\n TData,\n TExtensions,\n> {\n // data and path must both be present\n // https://github.com/graphql/graphql-spec/pull/742/files#diff-98d0cd153b72b63c417ad4238e8cc0d3385691ccbde7f7674bc0d2a718b896ecR288-R293\n data: Data<TData>;\n label?: string;\n path: Path;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface ExecutionPatchIncrementalResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // the reverse is also true: if incremental is present,\n // data (and errors and extensions) are not\n incremental?: IncrementalPayload<TData, TExtensions>[];\n data?: never;\n // Errors only exist for chunks, not at the top level\n // https://github.com/robrichard/defer-stream-wg/discussions/50#discussioncomment-3466739\n errors?: never;\n extensions?: never;\n}\n\nexport type ExecutionPatchResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | ExecutionPatchInitialResult<TData, TExtensions>\n | ExecutionPatchIncrementalResult<TData, TExtensions>;\n\nexport interface GraphQLRequest {\n query: DocumentNode;\n variables?: Record<string, any>;\n operationName?: string;\n context?: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface Operation {\n query: DocumentNode;\n variables: Record<string, any>;\n operationName: string;\n extensions: Record<string, any>;\n setContext: (context: Record<string, any>) => Record<string, any>;\n getContext: () => Record<string, any>;\n}\n\nexport interface SingleExecutionResult<\n TData = Record<string, any>,\n TContext = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionResult<TData, TExtensions> {\n data?: Data<TData>;\n context?: TContext;\n}\n\nexport type FetchResult<\n TData = Record<string, any>,\n TContext = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | SingleExecutionResult<TData, TContext, TExtensions>\n | ExecutionPatchResult<TData, TExtensions>;\n\nexport type NextLink = (operation: Operation) => Observable<FetchResult>;\n\nexport type RequestHandler = (\n operation: Operation,\n forward: NextLink\n) => Observable<FetchResult> | null;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/link/core/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentNode, ExecutionResult, GraphQLError } from \"graphql\";\nimport { DefaultContext } from \"../../core\";\nexport { DocumentNode };\n\nimport { Observable } from \"../../utilities\";\n\nexport type Path = ReadonlyArray<string | number>;\n\ninterface ExecutionPatchResultBase {\n hasNext?: boolean;\n}\n\nexport interface ExecutionPatchInitialResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // if data is present, incremental is not\n data: TData | null | undefined;\n incremental?: never;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalPayload<\n TData,\n TExtensions,\n> {\n // data and path must both be present\n // https://github.com/graphql/graphql-spec/pull/742/files#diff-98d0cd153b72b63c417ad4238e8cc0d3385691ccbde7f7674bc0d2a718b896ecR288-R293\n data: TData | null;\n label?: string;\n path: Path;\n errors?: ReadonlyArray<GraphQLError>;\n extensions?: TExtensions;\n}\n\nexport interface ExecutionPatchIncrementalResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> extends ExecutionPatchResultBase {\n // the reverse is also true: if incremental is present,\n // data (and errors and extensions) are not\n incremental?: IncrementalPayload<TData, TExtensions>[];\n data?: never;\n // Errors only exist for chunks, not at the top level\n // https://github.com/robrichard/defer-stream-wg/discussions/50#discussioncomment-3466739\n errors?: never;\n extensions?: never;\n}\n\nexport type ExecutionPatchResult<\n TData = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | ExecutionPatchInitialResult<TData, TExtensions>\n | ExecutionPatchIncrementalResult<TData, TExtensions>;\n\nexport interface GraphQLRequest<TVariables = Record<string, any>> {\n query: DocumentNode;\n variables?: TVariables;\n operationName?: string;\n context?: DefaultContext;\n extensions?: Record<string, any>;\n}\n\nexport interface Operation {\n query: DocumentNode;\n variables: Record<string, any>;\n operationName: string;\n extensions: Record<string, any>;\n setContext: (context: DefaultContext) => DefaultContext;\n getContext: () => DefaultContext;\n}\n\nexport interface SingleExecutionResult<\n TData = Record<string, any>,\n TContext = DefaultContext,\n TExtensions = Record<string, any>\n> extends ExecutionResult<TData, TExtensions> {\n data?: TData | null;\n context?: TContext;\n}\n\nexport type FetchResult<\n TData = Record<string, any>,\n TContext = Record<string, any>,\n TExtensions = Record<string, any>\n> =\n | SingleExecutionResult<TData, TContext, TExtensions>\n | ExecutionPatchResult<TData, TExtensions>;\n\nexport type NextLink = (operation: Operation) => Observable<FetchResult>;\n\nexport type RequestHandler = (\n operation: Operation,\n forward: NextLink\n) => Observable<FetchResult> | null;\n"]}
@@ -1,7 +1,7 @@
1
- import { InvariantError } from "../../utilities/globals/index.js";
1
+ import { InvariantError, __DEV__ } from "../../utilities/globals/index.js";
2
2
  export var checkFetcher = function (fetcher) {
3
3
  if (!fetcher && typeof fetch === 'undefined') {
4
- throw __DEV__ ? new InvariantError("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n ") : new InvariantError(22);
4
+ throw __DEV__ ? new InvariantError("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n ") : new InvariantError(23);
5
5
  }
6
6
  };
7
7
  //# sourceMappingURL=checkFetcher.js.map
@@ -1,4 +1,3 @@
1
- import '../../utilities/globals';
2
1
  import { ApolloLink } from '../core';
3
2
  import { HttpOptions } from './selectHttpOptionsAndBody';
4
3
  export declare const createHttpLink: (linkOptions?: HttpOptions) => ApolloLink;
@@ -1 +1 @@
1
- {"version":3,"file":"createHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAUrC,OAAO,EAIL,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAQpC,eAAO,MAAM,cAAc,iBAAiB,WAAW,eA8JtD,CAAC"}
1
+ {"version":3,"file":"createHttpLink.d.ts","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAUrC,OAAO,EAIL,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAQpC,eAAO,MAAM,cAAc,iBAAiB,WAAW,eA6KtD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { __assign, __rest } from "tslib";
2
- import "../../utilities/globals/index.js";
2
+ import { __DEV__ } from "../../utilities/globals/index.js";
3
3
  import { visit } from 'graphql';
4
4
  import { ApolloLink } from "../core/index.js";
5
5
  import { Observable, hasDirectives } from "../../utilities/index.js";
@@ -11,7 +11,7 @@ import { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig }
11
11
  import { createSignalIfSupported } from "./createSignalIfSupported.js";
12
12
  import { rewriteURIForGET } from "./rewriteURIForGET.js";
13
13
  import { fromError } from "../utils/index.js";
14
- import { maybe } from "../../utilities/index.js";
14
+ import { maybe, removeClientSetsFromDocument } from "../../utilities/index.js";
15
15
  var backupFetch = maybe(function () { return fetch; });
16
16
  export var createHttpLink = function (linkOptions) {
17
17
  if (linkOptions === void 0) { linkOptions = {}; }
@@ -45,6 +45,13 @@ export var createHttpLink = function (linkOptions) {
45
45
  credentials: context.credentials,
46
46
  headers: contextHeaders,
47
47
  };
48
+ if (hasDirectives(['client'], operation.query)) {
49
+ var transformedQuery = removeClientSetsFromDocument(operation.query);
50
+ if (!transformedQuery) {
51
+ return fromError(new Error('HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.'));
52
+ }
53
+ operation.query = transformedQuery;
54
+ }
48
55
  var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;
49
56
  if (body.variables && !includeUnusedVariables) {
50
57
  var unusedNames_1 = new Set(Object.keys(body.variables));
@@ -77,6 +84,7 @@ export var createHttpLink = function (linkOptions) {
77
84
  options.method = 'GET';
78
85
  }
79
86
  if (hasDirectives(['defer'], operation.query)) {
87
+ options.headers = options.headers || {};
80
88
  options.headers.accept = "multipart/mixed; deferSpec=20220824, application/json";
81
89
  }
82
90
  if (options.method === 'GET') {
@@ -1 +1 @@
1
- {"version":3,"file":"createHttpLink.js","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"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","sourcesContent":["import '../../utilities/globals';\n\nimport { visit, DefinitionNode, VariableDefinitionNode } from 'graphql';\n\nimport { ApolloLink } from '../core';\nimport { Observable, hasDirectives } from '../../utilities';\nimport { serializeFetchParameter } from './serializeFetchParameter';\nimport { selectURI } from './selectURI';\nimport {\n handleError,\n readMultipartBody,\n readJsonBody\n} from './parseAndCheckHttpResponse';\nimport { checkFetcher } from './checkFetcher';\nimport {\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n HttpOptions\n} from './selectHttpOptionsAndBody';\nimport { createSignalIfSupported } from './createSignalIfSupported';\nimport { rewriteURIForGET } from './rewriteURIForGET';\nimport { fromError } from '../utils';\nimport { maybe } from '../../utilities';\n\nconst backupFetch = maybe(() => fetch);\n\nexport const createHttpLink = (linkOptions: HttpOptions = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch if nothing passed in\n fetch: preferredFetch,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n useGETForQueries,\n includeUnusedVariables = false,\n ...requestOptions\n } = linkOptions;\n\n if (__DEV__) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders: {\n 'apollographql-client-name'?: string;\n 'apollographql-client-version'?: string;\n } = {};\n\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n if (body.variables && !includeUnusedVariables) {\n const unusedNames = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (parent && (parent as VariableDefinitionNode).kind !== 'VariableDefinition') {\n unusedNames.delete(node.name.value);\n }\n },\n });\n if (unusedNames.size) {\n // Make a shallow copy of body.variables (with keys in the same\n // order) and then delete unused variables from the copy.\n body.variables = { ...body.variables };\n unusedNames.forEach(name => {\n delete body.variables![name];\n });\n }\n }\n\n let controller: any;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n // does not match custom directives beginning with @defer\n if (hasDirectives(['defer'], operation.query)) {\n options.headers.accept = \"multipart/mixed; deferSpec=20220824, application/json\";\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n const currentFetch = preferredFetch || maybe(() => fetch) || backupFetch;\n\n currentFetch!(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n const ctype = response.headers?.get('content-type');\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n } else {\n return readJsonBody(response, operation, observer);\n }\n })\n .catch(err => handleError(err, observer));\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n"]}
1
+ {"version":3,"file":"createHttpLink.js","sourceRoot":"","sources":["../../../src/link/http/createHttpLink.ts"],"names":[],"mappings":"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","sourcesContent":["import { __DEV__ } from '../../utilities/globals';\n\nimport { visit, DefinitionNode, VariableDefinitionNode } from 'graphql';\n\nimport { ApolloLink } from '../core';\nimport { Observable, hasDirectives } from '../../utilities';\nimport { serializeFetchParameter } from './serializeFetchParameter';\nimport { selectURI } from './selectURI';\nimport {\n handleError,\n readMultipartBody,\n readJsonBody\n} from './parseAndCheckHttpResponse';\nimport { checkFetcher } from './checkFetcher';\nimport {\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n HttpOptions\n} from './selectHttpOptionsAndBody';\nimport { createSignalIfSupported } from './createSignalIfSupported';\nimport { rewriteURIForGET } from './rewriteURIForGET';\nimport { fromError } from '../utils';\nimport { maybe, removeClientSetsFromDocument } from '../../utilities';\n\nconst backupFetch = maybe(() => fetch);\n\nexport const createHttpLink = (linkOptions: HttpOptions = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch if nothing passed in\n fetch: preferredFetch,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n useGETForQueries,\n includeUnusedVariables = false,\n ...requestOptions\n } = linkOptions;\n\n if (__DEV__) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders: {\n 'apollographql-client-name'?: string;\n 'apollographql-client-version'?: string;\n } = {};\n\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n if (hasDirectives(['client'], operation.query)) {\n const transformedQuery = removeClientSetsFromDocument(operation.query);\n\n if (!transformedQuery) {\n return fromError(\n new Error(\n 'HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.'\n )\n );\n }\n\n operation.query = transformedQuery;\n }\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n if (body.variables && !includeUnusedVariables) {\n const unusedNames = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (parent && (parent as VariableDefinitionNode).kind !== 'VariableDefinition') {\n unusedNames.delete(node.name.value);\n }\n },\n });\n if (unusedNames.size) {\n // Make a shallow copy of body.variables (with keys in the same\n // order) and then delete unused variables from the copy.\n body.variables = { ...body.variables };\n unusedNames.forEach(name => {\n delete body.variables![name];\n });\n }\n }\n\n let controller: any;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n // does not match custom directives beginning with @defer\n if (hasDirectives(['defer'], operation.query)) {\n options.headers = options.headers || {};\n options.headers.accept = \"multipart/mixed; deferSpec=20220824, application/json\";\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n const currentFetch = preferredFetch || maybe(() => fetch) || backupFetch;\n\n currentFetch!(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n const ctype = response.headers?.get('content-type');\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n } else {\n return readJsonBody(response, operation, observer);\n }\n })\n .catch(err => handleError(err, observer));\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n"]}
@@ -9,34 +9,6 @@ var utils = require('../utils');
9
9
  var graphql = require('graphql');
10
10
  var core = require('../core');
11
11
 
12
- typeof WeakMap === 'function' &&
13
- globals.maybe(function () { return navigator.product; }) !== 'ReactNative';
14
- var canUseSymbol = typeof Symbol === 'function' &&
15
- typeof Symbol.for === 'function';
16
- var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
17
- typeof globals.maybe(function () { return window.document.createElement; }) === "function";
18
- globals.maybe(function () { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false;
19
-
20
- function isNodeResponse(value) {
21
- return !!value.body;
22
- }
23
- function isReadableStream(value) {
24
- return !!value.getReader;
25
- }
26
- function isAsyncIterableIterator(value) {
27
- return !!(canUseAsyncIteratorSymbol &&
28
- value[Symbol.asyncIterator]);
29
- }
30
- function isStreamableBlob(value) {
31
- return !!value.stream;
32
- }
33
- function isBlob(value) {
34
- return !!value.arrayBuffer;
35
- }
36
- function isNodeReadableStream(value) {
37
- return !!value.pipe;
38
- }
39
-
40
12
  function asyncIterator(source) {
41
13
  var _a;
42
14
  var iterator = source[Symbol.asyncIterator]();
@@ -164,18 +136,18 @@ function readerIterator(reader) {
164
136
 
165
137
  function responseIterator(response) {
166
138
  var body = response;
167
- if (isNodeResponse(response))
139
+ if (utilities.isNodeResponse(response))
168
140
  body = response.body;
169
- if (isAsyncIterableIterator(body))
141
+ if (utilities.isAsyncIterableIterator(body))
170
142
  return asyncIterator(body);
171
- if (isReadableStream(body))
143
+ if (utilities.isReadableStream(body))
172
144
  return readerIterator(body.getReader());
173
- if (isStreamableBlob(body)) {
145
+ if (utilities.isStreamableBlob(body)) {
174
146
  return readerIterator(body.stream().getReader());
175
147
  }
176
- if (isBlob(body))
148
+ if (utilities.isBlob(body))
177
149
  return promiseIterator(body.arrayBuffer());
178
- if (isNodeReadableStream(body))
150
+ if (utilities.isNodeReadableStream(body))
179
151
  return nodeStreamIterator(body);
180
152
  throw new Error("Unknown body type for responseIterator. Please pass a streamable response.");
181
153
  }
@@ -331,7 +303,7 @@ var serializeFetchParameter = function (p, label) {
331
303
  serialized = JSON.stringify(p);
332
304
  }
333
305
  catch (e) {
334
- var parseError = __DEV__ ? new globals.InvariantError("Network request failed. ".concat(label, " is not serializable: ").concat(e.message)) : new globals.InvariantError(23);
306
+ var parseError = globals.__DEV__ ? new globals.InvariantError("Network request failed. ".concat(label, " is not serializable: ").concat(e.message)) : new globals.InvariantError(24);
335
307
  parseError.parseError = e;
336
308
  throw parseError;
337
309
  }
@@ -379,7 +351,9 @@ function selectHttpOptionsAndBodyInternal(operation, printer) {
379
351
  }
380
352
  http = tslib.__assign(tslib.__assign({}, http), config.http);
381
353
  });
382
- options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);
354
+ if (options.headers) {
355
+ options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);
356
+ }
383
357
  var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;
384
358
  var body = { operationName: operationName, variables: variables };
385
359
  if (http.includeExtensions)
@@ -412,7 +386,7 @@ function removeDuplicateHeaders(headers, preserveHeaderCase) {
412
386
 
413
387
  var checkFetcher = function (fetcher) {
414
388
  if (!fetcher && typeof fetch === 'undefined') {
415
- throw __DEV__ ? new globals.InvariantError("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n ") : new globals.InvariantError(22);
389
+ throw globals.__DEV__ ? new globals.InvariantError("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n ") : new globals.InvariantError(23);
416
390
  }
417
391
  };
418
392
 
@@ -484,7 +458,7 @@ var backupFetch = utilities.maybe(function () { return fetch; });
484
458
  var createHttpLink = function (linkOptions) {
485
459
  if (linkOptions === void 0) { linkOptions = {}; }
486
460
  var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = tslib.__rest(linkOptions, ["uri", "fetch", "print", "includeExtensions", "preserveHeaderCase", "useGETForQueries", "includeUnusedVariables"]);
487
- if (__DEV__) {
461
+ if (globals.__DEV__) {
488
462
  checkFetcher(preferredFetch || backupFetch);
489
463
  }
490
464
  var linkConfig = {
@@ -513,6 +487,13 @@ var createHttpLink = function (linkOptions) {
513
487
  credentials: context.credentials,
514
488
  headers: contextHeaders,
515
489
  };
490
+ if (utilities.hasDirectives(['client'], operation.query)) {
491
+ var transformedQuery = utilities.removeClientSetsFromDocument(operation.query);
492
+ if (!transformedQuery) {
493
+ return utils.fromError(new Error('HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.'));
494
+ }
495
+ operation.query = transformedQuery;
496
+ }
516
497
  var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;
517
498
  if (body.variables && !includeUnusedVariables) {
518
499
  var unusedNames_1 = new Set(Object.keys(body.variables));
@@ -545,6 +526,7 @@ var createHttpLink = function (linkOptions) {
545
526
  options.method = 'GET';
546
527
  }
547
528
  if (utilities.hasDirectives(['defer'], operation.query)) {
529
+ options.headers = options.headers || {};
548
530
  options.headers.accept = "multipart/mixed; deferSpec=20220824, application/json";
549
531
  }
550
532
  if (options.method === 'GET') {