@apollo/client 3.9.0-alpha.2 → 3.9.0-alpha.4

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 (226) hide show
  1. package/apollo-client.cjs +136 -81
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/cache/cache.cjs +47 -11
  5. package/cache/cache.cjs.map +1 -1
  6. package/cache/cache.cjs.native.js +47 -11
  7. package/cache/core/types/common.d.ts +2 -2
  8. package/cache/core/types/common.d.ts.map +1 -1
  9. package/cache/core/types/common.js.map +1 -1
  10. package/cache/inmemory/entityStore.d.ts.map +1 -1
  11. package/cache/inmemory/entityStore.js +35 -0
  12. package/cache/inmemory/entityStore.js.map +1 -1
  13. package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
  14. package/cache/inmemory/inMemoryCache.js +2 -1
  15. package/cache/inmemory/inMemoryCache.js.map +1 -1
  16. package/cache/inmemory/key-extractor.js +1 -1
  17. package/cache/inmemory/policies.js +4 -4
  18. package/cache/inmemory/readFromStore.js +2 -2
  19. package/cache/inmemory/writeToStore.js +4 -4
  20. package/core/ApolloClient.d.ts +2 -0
  21. package/core/ApolloClient.d.ts.map +1 -1
  22. package/core/ApolloClient.js +12 -4
  23. package/core/ApolloClient.js.map +1 -1
  24. package/core/LocalState.js +2 -2
  25. package/core/ObservableQuery.js +5 -5
  26. package/core/QueryManager.d.ts +4 -2
  27. package/core/QueryManager.d.ts.map +1 -1
  28. package/core/QueryManager.js +13 -12
  29. package/core/QueryManager.js.map +1 -1
  30. package/core/core.cjs +32 -23
  31. package/core/core.cjs.map +1 -1
  32. package/core/core.cjs.native.js +32 -23
  33. package/dev/dev.cjs +98 -83
  34. package/dev/dev.cjs.map +1 -1
  35. package/dev/dev.cjs.native.js +98 -83
  36. package/dev/loadErrorMessageHandler.js +1 -1
  37. package/dev/loadErrorMessageHandler.js.map +1 -1
  38. package/invariantErrorCodes.js +96 -81
  39. package/link/core/ApolloLink.js +2 -2
  40. package/link/core/core.cjs +2 -2
  41. package/link/core/core.cjs.map +1 -1
  42. package/link/core/core.cjs.native.js +2 -2
  43. package/link/http/checkFetcher.js +1 -1
  44. package/link/http/createHttpLink.js +1 -1
  45. package/link/http/http.cjs +3 -3
  46. package/link/http/http.cjs.map +1 -1
  47. package/link/http/http.cjs.native.js +3 -3
  48. package/link/http/serializeFetchParameter.js +1 -1
  49. package/link/persisted-queries/index.js +2 -2
  50. package/link/persisted-queries/persisted-queries.cjs +2 -2
  51. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  52. package/link/persisted-queries/persisted-queries.cjs.native.js +2 -2
  53. package/link/utils/toPromise.js +1 -1
  54. package/link/utils/utils.cjs +2 -2
  55. package/link/utils/utils.cjs.map +1 -1
  56. package/link/utils/utils.cjs.native.js +2 -2
  57. package/link/utils/validateOperation.js +1 -1
  58. package/package.json +27 -25
  59. package/react/cache/QueryReference.d.ts.map +1 -1
  60. package/react/cache/QueryReference.js +7 -2
  61. package/react/cache/QueryReference.js.map +1 -1
  62. package/react/components/Mutation.d.ts +2 -2
  63. package/react/components/Mutation.d.ts.map +1 -1
  64. package/react/components/Mutation.js.map +1 -1
  65. package/react/components/Query.d.ts +2 -2
  66. package/react/components/Query.d.ts.map +1 -1
  67. package/react/components/Query.js.map +1 -1
  68. package/react/components/Subscription.d.ts +2 -2
  69. package/react/components/Subscription.d.ts.map +1 -1
  70. package/react/components/Subscription.js.map +1 -1
  71. package/react/components/types.d.ts +4 -4
  72. package/react/components/types.d.ts.map +1 -1
  73. package/react/components/types.js.map +1 -1
  74. package/react/context/ApolloConsumer.d.ts +3 -3
  75. package/react/context/ApolloConsumer.d.ts.map +1 -1
  76. package/react/context/ApolloConsumer.js +2 -2
  77. package/react/context/ApolloConsumer.js.map +1 -1
  78. package/react/context/ApolloContext.d.ts +2 -2
  79. package/react/context/ApolloContext.d.ts.map +1 -1
  80. package/react/context/ApolloContext.js +2 -2
  81. package/react/context/ApolloContext.js.map +1 -1
  82. package/react/context/ApolloProvider.d.ts +3 -3
  83. package/react/context/ApolloProvider.d.ts.map +1 -1
  84. package/react/context/ApolloProvider.js +2 -2
  85. package/react/context/ApolloProvider.js.map +1 -1
  86. package/react/context/context.cjs +4 -4
  87. package/react/context/context.cjs.map +1 -1
  88. package/react/context/context.cjs.native.js +4 -4
  89. package/react/hoc/graphql.d.ts +2 -2
  90. package/react/hoc/graphql.d.ts.map +1 -1
  91. package/react/hoc/graphql.js.map +1 -1
  92. package/react/hoc/hoc-utils.d.ts +2 -1
  93. package/react/hoc/hoc-utils.d.ts.map +1 -1
  94. package/react/hoc/hoc-utils.js +2 -2
  95. package/react/hoc/hoc-utils.js.map +1 -1
  96. package/react/hoc/hoc.cjs +3 -3
  97. package/react/hoc/hoc.cjs.map +1 -1
  98. package/react/hoc/hoc.cjs.native.js +3 -3
  99. package/react/hoc/mutation-hoc.d.ts +2 -2
  100. package/react/hoc/mutation-hoc.d.ts.map +1 -1
  101. package/react/hoc/mutation-hoc.js +1 -1
  102. package/react/hoc/mutation-hoc.js.map +1 -1
  103. package/react/hoc/query-hoc.d.ts +2 -2
  104. package/react/hoc/query-hoc.d.ts.map +1 -1
  105. package/react/hoc/query-hoc.js +1 -1
  106. package/react/hoc/query-hoc.js.map +1 -1
  107. package/react/hoc/subscription-hoc.d.ts +2 -2
  108. package/react/hoc/subscription-hoc.d.ts.map +1 -1
  109. package/react/hoc/subscription-hoc.js +1 -1
  110. package/react/hoc/subscription-hoc.js.map +1 -1
  111. package/react/hoc/withApollo.d.ts +2 -2
  112. package/react/hoc/withApollo.d.ts.map +1 -1
  113. package/react/hoc/withApollo.js +2 -2
  114. package/react/hoc/withApollo.js.map +1 -1
  115. package/react/hooks/hooks.cjs +16 -11
  116. package/react/hooks/hooks.cjs.map +1 -1
  117. package/react/hooks/hooks.cjs.native.js +16 -11
  118. package/react/hooks/index.d.ts +1 -0
  119. package/react/hooks/index.d.ts.map +1 -1
  120. package/react/hooks/index.js.map +1 -1
  121. package/react/hooks/internal/__use.js +1 -1
  122. package/react/hooks/internal/__use.js.map +1 -1
  123. package/react/hooks/internal/useDeepMemo.js +1 -1
  124. package/react/hooks/internal/useDeepMemo.js.map +1 -1
  125. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts +2 -1
  126. package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts.map +1 -1
  127. package/react/hooks/internal/useIsomorphicLayoutEffect.js +1 -1
  128. package/react/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -1
  129. package/react/hooks/useApolloClient.js +2 -2
  130. package/react/hooks/useApolloClient.js.map +1 -1
  131. package/react/hooks/useBackgroundQuery.js +1 -1
  132. package/react/hooks/useBackgroundQuery.js.map +1 -1
  133. package/react/hooks/useFragment.js +1 -1
  134. package/react/hooks/useFragment.js.map +1 -1
  135. package/react/hooks/useLazyQuery.js +1 -1
  136. package/react/hooks/useLazyQuery.js.map +1 -1
  137. package/react/hooks/useMutation.js +1 -1
  138. package/react/hooks/useMutation.js.map +1 -1
  139. package/react/hooks/useQuery.js +2 -2
  140. package/react/hooks/useQuery.js.map +1 -1
  141. package/react/hooks/useReactiveVar.js +1 -1
  142. package/react/hooks/useReactiveVar.js.map +1 -1
  143. package/react/hooks/useReadQuery.d.ts +7 -4
  144. package/react/hooks/useReadQuery.d.ts.map +1 -1
  145. package/react/hooks/useReadQuery.js +2 -2
  146. package/react/hooks/useReadQuery.js.map +1 -1
  147. package/react/hooks/useSubscription.js +3 -3
  148. package/react/hooks/useSubscription.js.map +1 -1
  149. package/react/hooks/useSuspenseQuery.js +3 -3
  150. package/react/hooks/useSuspenseQuery.js.map +1 -1
  151. package/react/hooks/useSyncExternalStore.js +2 -2
  152. package/react/hooks/useSyncExternalStore.js.map +1 -1
  153. package/react/parser/index.js +5 -5
  154. package/react/parser/parser.cjs +5 -5
  155. package/react/parser/parser.cjs.map +1 -1
  156. package/react/parser/parser.cjs.native.js +5 -5
  157. package/react/ssr/RenderPromises.d.ts +3 -3
  158. package/react/ssr/RenderPromises.d.ts.map +1 -1
  159. package/react/ssr/RenderPromises.js.map +1 -1
  160. package/react/ssr/getDataFromTree.d.ts +4 -4
  161. package/react/ssr/getDataFromTree.d.ts.map +1 -1
  162. package/react/ssr/getDataFromTree.js +1 -1
  163. package/react/ssr/getDataFromTree.js.map +1 -1
  164. package/react/ssr/renderToStringWithData.d.ts +2 -2
  165. package/react/ssr/renderToStringWithData.d.ts.map +1 -1
  166. package/react/ssr/renderToStringWithData.js.map +1 -1
  167. package/react/ssr/ssr.cjs +1 -1
  168. package/react/ssr/ssr.cjs.map +1 -1
  169. package/react/ssr/ssr.cjs.native.js +1 -1
  170. package/react/types/types.d.ts +2 -2
  171. package/react/types/types.d.ts.map +1 -1
  172. package/react/types/types.js.map +1 -1
  173. package/testing/core/core.cjs +2 -2
  174. package/testing/core/core.cjs.map +1 -1
  175. package/testing/core/core.cjs.native.js +2 -2
  176. package/testing/core/mocking/mockLink.js +2 -2
  177. package/testing/react/MockedProvider.d.ts +1 -0
  178. package/testing/react/MockedProvider.d.ts.map +1 -1
  179. package/testing/react/MockedProvider.js +2 -1
  180. package/testing/react/MockedProvider.js.map +1 -1
  181. package/testing/testing.cjs +2 -1
  182. package/testing/testing.cjs.map +1 -1
  183. package/testing/testing.cjs.native.js +2 -1
  184. package/utilities/globals/globals.cjs +1 -1
  185. package/utilities/globals/globals.cjs.map +1 -1
  186. package/utilities/globals/globals.cjs.native.js +1 -1
  187. package/utilities/graphql/DocumentTransform.js +1 -1
  188. package/utilities/graphql/directives.js +4 -4
  189. package/utilities/graphql/fragments.js +3 -3
  190. package/utilities/graphql/getFromAST.js +8 -8
  191. package/utilities/graphql/print.d.ts +4 -2
  192. package/utilities/graphql/print.d.ts.map +1 -1
  193. package/utilities/graphql/print.js +8 -3
  194. package/utilities/graphql/print.js.map +1 -1
  195. package/utilities/graphql/storeUtils.d.ts +5 -0
  196. package/utilities/graphql/storeUtils.d.ts.map +1 -1
  197. package/utilities/graphql/storeUtils.js +1 -1
  198. package/utilities/graphql/storeUtils.js.map +1 -1
  199. package/utilities/graphql/transform.js +2 -2
  200. package/utilities/index.d.ts +1 -1
  201. package/utilities/index.d.ts.map +1 -1
  202. package/utilities/index.js.map +1 -1
  203. package/utilities/subscriptions/relay/index.d.ts +6 -0
  204. package/utilities/subscriptions/relay/index.d.ts.map +1 -0
  205. package/utilities/subscriptions/relay/index.js +43 -0
  206. package/utilities/subscriptions/relay/index.js.map +1 -0
  207. package/utilities/subscriptions/relay/package.json +8 -0
  208. package/utilities/subscriptions/relay/relay.cjs +368 -0
  209. package/utilities/subscriptions/relay/relay.cjs.map +1 -0
  210. package/utilities/subscriptions/relay/relay.cjs.native.js +368 -0
  211. package/utilities/subscriptions/shared.d.ts +9 -0
  212. package/utilities/subscriptions/shared.d.ts.map +1 -0
  213. package/utilities/subscriptions/shared.js +7 -0
  214. package/utilities/subscriptions/shared.js.map +1 -0
  215. package/utilities/subscriptions/urql/index.d.ts +7 -0
  216. package/utilities/subscriptions/urql/index.d.ts.map +1 -0
  217. package/utilities/subscriptions/urql/index.js +40 -0
  218. package/utilities/subscriptions/urql/index.js.map +1 -0
  219. package/utilities/subscriptions/urql/package.json +8 -0
  220. package/utilities/subscriptions/urql/urql.cjs +364 -0
  221. package/utilities/subscriptions/urql/urql.cjs.map +1 -0
  222. package/utilities/subscriptions/urql/urql.cjs.native.js +364 -0
  223. package/utilities/utilities.cjs +27 -22
  224. package/utilities/utilities.cjs.map +1 -1
  225. package/utilities/utilities.cjs.native.js +27 -22
  226. package/version.js +1 -1
@@ -0,0 +1,364 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utilities = require('../..');
6
+ var tslib = require('tslib');
7
+ var utils = require('../../../link/utils');
8
+ var errors = require('../../../errors');
9
+ var core = require('../../../core');
10
+
11
+ function asyncIterator(source) {
12
+ var _a;
13
+ var iterator = source[Symbol.asyncIterator]();
14
+ return _a = {
15
+ next: function () {
16
+ return iterator.next();
17
+ }
18
+ },
19
+ _a[Symbol.asyncIterator] = function () {
20
+ return this;
21
+ },
22
+ _a;
23
+ }
24
+
25
+ function nodeStreamIterator(stream) {
26
+ var cleanup = null;
27
+ var error = null;
28
+ var done = false;
29
+ var data = [];
30
+ var waiting = [];
31
+ function onData(chunk) {
32
+ if (error)
33
+ return;
34
+ if (waiting.length) {
35
+ var shiftedArr = waiting.shift();
36
+ if (Array.isArray(shiftedArr) && shiftedArr[0]) {
37
+ return shiftedArr[0]({ value: chunk, done: false });
38
+ }
39
+ }
40
+ data.push(chunk);
41
+ }
42
+ function onError(err) {
43
+ error = err;
44
+ var all = waiting.slice();
45
+ all.forEach(function (pair) {
46
+ pair[1](err);
47
+ });
48
+ !cleanup || cleanup();
49
+ }
50
+ function onEnd() {
51
+ done = true;
52
+ var all = waiting.slice();
53
+ all.forEach(function (pair) {
54
+ pair[0]({ value: undefined, done: true });
55
+ });
56
+ !cleanup || cleanup();
57
+ }
58
+ cleanup = function () {
59
+ cleanup = null;
60
+ stream.removeListener("data", onData);
61
+ stream.removeListener("error", onError);
62
+ stream.removeListener("end", onEnd);
63
+ stream.removeListener("finish", onEnd);
64
+ stream.removeListener("close", onEnd);
65
+ };
66
+ stream.on("data", onData);
67
+ stream.on("error", onError);
68
+ stream.on("end", onEnd);
69
+ stream.on("finish", onEnd);
70
+ stream.on("close", onEnd);
71
+ function getNext() {
72
+ return new Promise(function (resolve, reject) {
73
+ if (error)
74
+ return reject(error);
75
+ if (data.length)
76
+ return resolve({ value: data.shift(), done: false });
77
+ if (done)
78
+ return resolve({ value: undefined, done: true });
79
+ waiting.push([resolve, reject]);
80
+ });
81
+ }
82
+ var iterator = {
83
+ next: function () {
84
+ return getNext();
85
+ },
86
+ };
87
+ if (utilities.canUseAsyncIteratorSymbol) {
88
+ iterator[Symbol.asyncIterator] = function () {
89
+ return this;
90
+ };
91
+ }
92
+ return iterator;
93
+ }
94
+
95
+ function promiseIterator(promise) {
96
+ var resolved = false;
97
+ var iterator = {
98
+ next: function () {
99
+ if (resolved)
100
+ return Promise.resolve({
101
+ value: undefined,
102
+ done: true,
103
+ });
104
+ resolved = true;
105
+ return new Promise(function (resolve, reject) {
106
+ promise
107
+ .then(function (value) {
108
+ resolve({ value: value, done: false });
109
+ })
110
+ .catch(reject);
111
+ });
112
+ },
113
+ };
114
+ if (utilities.canUseAsyncIteratorSymbol) {
115
+ iterator[Symbol.asyncIterator] = function () {
116
+ return this;
117
+ };
118
+ }
119
+ return iterator;
120
+ }
121
+
122
+ function readerIterator(reader) {
123
+ var iterator = {
124
+ next: function () {
125
+ return reader.read();
126
+ },
127
+ };
128
+ if (utilities.canUseAsyncIteratorSymbol) {
129
+ iterator[Symbol.asyncIterator] = function () {
130
+ return this;
131
+ };
132
+ }
133
+ return iterator;
134
+ }
135
+
136
+ function isNodeResponse(value) {
137
+ return !!value.body;
138
+ }
139
+ function isReadableStream(value) {
140
+ return !!value.getReader;
141
+ }
142
+ function isAsyncIterableIterator(value) {
143
+ return !!(utilities.canUseAsyncIteratorSymbol &&
144
+ value[Symbol.asyncIterator]);
145
+ }
146
+ function isStreamableBlob(value) {
147
+ return !!value.stream;
148
+ }
149
+ function isBlob(value) {
150
+ return !!value.arrayBuffer;
151
+ }
152
+ function isNodeReadableStream(value) {
153
+ return !!value.pipe;
154
+ }
155
+ function responseIterator(response) {
156
+ var body = response;
157
+ if (isNodeResponse(response))
158
+ body = response.body;
159
+ if (isAsyncIterableIterator(body))
160
+ return asyncIterator(body);
161
+ if (isReadableStream(body))
162
+ return readerIterator(body.getReader());
163
+ if (isStreamableBlob(body)) {
164
+ return readerIterator(body.stream().getReader());
165
+ }
166
+ if (isBlob(body))
167
+ return promiseIterator(body.arrayBuffer());
168
+ if (isNodeReadableStream(body))
169
+ return nodeStreamIterator(body);
170
+ throw new Error("Unknown body type for responseIterator. Please pass a streamable response.");
171
+ }
172
+
173
+ function isNonNullObject(obj) {
174
+ return obj !== null && typeof obj === "object";
175
+ }
176
+
177
+ function isApolloPayloadResult(value) {
178
+ return isNonNullObject(value) && "payload" in value;
179
+ }
180
+
181
+ function readMultipartBody(response, nextValue) {
182
+ var _a;
183
+ return tslib.__awaiter(this, void 0, void 0, function () {
184
+ var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _b, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;
185
+ var _c, _d;
186
+ return tslib.__generator(this, function (_e) {
187
+ switch (_e.label) {
188
+ case 0:
189
+ if (TextDecoder === undefined) {
190
+ throw new Error("TextDecoder must be defined in the environment: please import a polyfill.");
191
+ }
192
+ decoder = new TextDecoder("utf-8");
193
+ contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get("content-type");
194
+ delimiter = "boundary=";
195
+ boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter))
196
+ ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['"]/g, "").replace(/\;(.*)/gm, "").trim()
197
+ : "-";
198
+ boundary = "\r\n--".concat(boundaryVal);
199
+ buffer = "";
200
+ iterator = responseIterator(response);
201
+ running = true;
202
+ _e.label = 1;
203
+ case 1:
204
+ if (!running) return [3, 3];
205
+ return [4, iterator.next()];
206
+ case 2:
207
+ _b = _e.sent(), value = _b.value, done = _b.done;
208
+ chunk = typeof value === "string" ? value : decoder.decode(value);
209
+ searchFrom = buffer.length - boundary.length + 1;
210
+ running = !done;
211
+ buffer += chunk;
212
+ bi = buffer.indexOf(boundary, searchFrom);
213
+ while (bi > -1) {
214
+ message = void 0;
215
+ _c = [
216
+ buffer.slice(0, bi),
217
+ buffer.slice(bi + boundary.length),
218
+ ], message = _c[0], buffer = _c[1];
219
+ i = message.indexOf("\r\n\r\n");
220
+ headers = parseHeaders(message.slice(0, i));
221
+ contentType_1 = headers["content-type"];
222
+ if (contentType_1 &&
223
+ contentType_1.toLowerCase().indexOf("application/json") === -1) {
224
+ throw new Error("Unsupported patch content type: application/json is required.");
225
+ }
226
+ body = message.slice(i);
227
+ if (body) {
228
+ result = parseJsonBody(response, body);
229
+ if (Object.keys(result).length > 1 ||
230
+ "data" in result ||
231
+ "incremental" in result ||
232
+ "errors" in result ||
233
+ "payload" in result) {
234
+ if (isApolloPayloadResult(result)) {
235
+ next = {};
236
+ if ("payload" in result) {
237
+ next = tslib.__assign({}, result.payload);
238
+ }
239
+ if ("errors" in result) {
240
+ next = tslib.__assign(tslib.__assign({}, next), { extensions: tslib.__assign(tslib.__assign({}, ("extensions" in next ? next.extensions : null)), (_d = {}, _d[errors.PROTOCOL_ERRORS_SYMBOL] = result.errors, _d)) });
241
+ }
242
+ nextValue(next);
243
+ }
244
+ else {
245
+ nextValue(result);
246
+ }
247
+ }
248
+ else if (Object.keys(result).length === 1 &&
249
+ "hasNext" in result &&
250
+ !result.hasNext) {
251
+ return [2];
252
+ }
253
+ }
254
+ bi = buffer.indexOf(boundary);
255
+ }
256
+ return [3, 1];
257
+ case 3: return [2];
258
+ }
259
+ });
260
+ });
261
+ }
262
+ function parseHeaders(headerText) {
263
+ var headersInit = {};
264
+ headerText.split("\n").forEach(function (line) {
265
+ var i = line.indexOf(":");
266
+ if (i > -1) {
267
+ var name_1 = line.slice(0, i).trim().toLowerCase();
268
+ var value = line.slice(i + 1).trim();
269
+ headersInit[name_1] = value;
270
+ }
271
+ });
272
+ return headersInit;
273
+ }
274
+ function parseJsonBody(response, bodyText) {
275
+ if (response.status >= 300) {
276
+ var getResult = function () {
277
+ try {
278
+ return JSON.parse(bodyText);
279
+ }
280
+ catch (err) {
281
+ return bodyText;
282
+ }
283
+ };
284
+ utils.throwServerError(response, getResult(), "Response not successful: Received status code ".concat(response.status));
285
+ }
286
+ try {
287
+ return JSON.parse(bodyText);
288
+ }
289
+ catch (err) {
290
+ var parseError = err;
291
+ parseError.name = "ServerParseError";
292
+ parseError.response = response;
293
+ parseError.statusCode = response.status;
294
+ parseError.bodyText = bodyText;
295
+ throw parseError;
296
+ }
297
+ }
298
+ function handleError(err, observer) {
299
+ if (err.result && err.result.errors && err.result.data) {
300
+ observer.next(err.result);
301
+ }
302
+ observer.error(err);
303
+ }
304
+
305
+ var defaultHttpOptions = {
306
+ includeQuery: true,
307
+ includeExtensions: false,
308
+ preserveHeaderCase: false,
309
+ };
310
+ var defaultHeaders = {
311
+ accept: "*/*",
312
+ "content-type": "application/json",
313
+ };
314
+ var defaultOptions = {
315
+ method: "POST",
316
+ };
317
+ var fallbackHttpConfig = {
318
+ http: defaultHttpOptions,
319
+ headers: defaultHeaders,
320
+ options: defaultOptions,
321
+ };
322
+
323
+ function generateOptionsForMultipartSubscription(headers) {
324
+ var options = tslib.__assign(tslib.__assign({}, fallbackHttpConfig.options), { headers: tslib.__assign(tslib.__assign(tslib.__assign({}, (headers || {})), fallbackHttpConfig.headers), { accept: "multipart/mixed;boundary=graphql;subscriptionSpec=1.0,application/json" }) });
325
+ return options;
326
+ }
327
+
328
+ var backupFetch = utilities.maybe(function () { return fetch; });
329
+ function createFetchMultipartSubscription(uri, _a) {
330
+ var _b = _a === void 0 ? {} : _a, preferredFetch = _b.fetch, headers = _b.headers;
331
+ return function multipartSubscriptionForwarder(_a) {
332
+ var query = _a.query, variables = _a.variables;
333
+ var body = { variables: variables, query: query };
334
+ var options = generateOptionsForMultipartSubscription(headers || {});
335
+ return new utilities.Observable(function (observer) {
336
+ try {
337
+ options.body = core.serializeFetchParameter(body, "Payload");
338
+ }
339
+ catch (parseError) {
340
+ observer.error(parseError);
341
+ }
342
+ var currentFetch = preferredFetch || utilities.maybe(function () { return fetch; }) || backupFetch;
343
+ var observerNext = observer.next.bind(observer);
344
+ currentFetch(uri, options)
345
+ .then(function (response) {
346
+ var _a;
347
+ var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get("content-type");
348
+ if (ctype !== null && /^multipart\/mixed/i.test(ctype)) {
349
+ return readMultipartBody(response, observerNext);
350
+ }
351
+ observer.error(new Error("Expected multipart response"));
352
+ })
353
+ .then(function () {
354
+ observer.complete();
355
+ })
356
+ .catch(function (err) {
357
+ handleError(err, observer);
358
+ });
359
+ });
360
+ };
361
+ }
362
+
363
+ exports.createFetchMultipartSubscription = createFetchMultipartSubscription;
364
+ //# sourceMappingURL=urql.cjs.map
@@ -20,7 +20,7 @@ function shouldInclude(_a, variables) {
20
20
  if (ifArgument.value.kind === "Variable") {
21
21
  evaledValue =
22
22
  variables && variables[ifArgument.value.name.value];
23
- globals.invariant(evaledValue !== void 0, 65, directive.name.value);
23
+ globals.invariant(evaledValue !== void 0, 67, directive.name.value);
24
24
  }
25
25
  else {
26
26
  evaledValue = ifArgument.value.value;
@@ -70,12 +70,12 @@ function getInclusionDirectives(directives) {
70
70
  return;
71
71
  var directiveArguments = directive.arguments;
72
72
  var directiveName = directive.name.value;
73
- globals.invariant(directiveArguments && directiveArguments.length === 1, 66, directiveName);
73
+ globals.invariant(directiveArguments && directiveArguments.length === 1, 68, directiveName);
74
74
  var ifArgument = directiveArguments[0];
75
- globals.invariant(ifArgument.name && ifArgument.name.value === "if", 67, directiveName);
75
+ globals.invariant(ifArgument.name && ifArgument.name.value === "if", 69, directiveName);
76
76
  var ifValue = ifArgument.value;
77
77
  globals.invariant(ifValue &&
78
- (ifValue.kind === "Variable" || ifValue.kind === "BooleanValue"), 68, directiveName);
78
+ (ifValue.kind === "Variable" || ifValue.kind === "BooleanValue"), 70, directiveName);
79
79
  result.push({ directive: directive, ifArgument: ifArgument });
80
80
  });
81
81
  }
@@ -107,7 +107,7 @@ function getFragmentQueryDocument(document, fragmentName) {
107
107
  document.definitions.forEach(function (definition) {
108
108
  if (definition.kind === "OperationDefinition") {
109
109
  throw globals.newInvariantError(
110
- 69,
110
+ 71,
111
111
  definition.operation,
112
112
  definition.name ? " named '".concat(definition.name.value, "'") : ""
113
113
  );
@@ -117,7 +117,7 @@ function getFragmentQueryDocument(document, fragmentName) {
117
117
  }
118
118
  });
119
119
  if (typeof actualFragmentName === "undefined") {
120
- globals.invariant(fragments.length === 1, 70, fragments.length);
120
+ globals.invariant(fragments.length === 1, 72, fragments.length);
121
121
  actualFragmentName = fragments[0].name.value;
122
122
  }
123
123
  var query = tslib.__assign(tslib.__assign({}, document), { definitions: tslib.__spreadArray([
@@ -158,7 +158,7 @@ function getFragmentFromSelection(selection, fragmentMap) {
158
158
  return fragmentMap(fragmentName);
159
159
  }
160
160
  var fragment = fragmentMap && fragmentMap[fragmentName];
161
- globals.invariant(fragment, 71, fragmentName);
161
+ globals.invariant(fragment, 73, fragmentName);
162
162
  return fragment || null;
163
163
  }
164
164
  default:
@@ -273,7 +273,7 @@ function valueToObjectRepresentation(argObj, name, value, variables) {
273
273
  argObj[name.value] = null;
274
274
  }
275
275
  else {
276
- throw globals.newInvariantError(80, name.value, value.kind);
276
+ throw globals.newInvariantError(82, name.value, value.kind);
277
277
  }
278
278
  }
279
279
  function storeKeyNameFromField(field, variables) {
@@ -407,16 +407,16 @@ function isInlineFragment(selection) {
407
407
  }
408
408
 
409
409
  function checkDocument(doc) {
410
- globals.invariant(doc && doc.kind === "Document", 72);
410
+ globals.invariant(doc && doc.kind === "Document", 74);
411
411
  var operations = doc.definitions
412
412
  .filter(function (d) { return d.kind !== "FragmentDefinition"; })
413
413
  .map(function (definition) {
414
414
  if (definition.kind !== "OperationDefinition") {
415
- throw globals.newInvariantError(73, definition.kind);
415
+ throw globals.newInvariantError(75, definition.kind);
416
416
  }
417
417
  return definition;
418
418
  });
419
- globals.invariant(operations.length <= 1, 74, operations.length);
419
+ globals.invariant(operations.length <= 1, 76, operations.length);
420
420
  return doc;
421
421
  }
422
422
  function getOperationDefinition(doc) {
@@ -439,14 +439,14 @@ function getFragmentDefinitions(doc) {
439
439
  }
440
440
  function getQueryDefinition(doc) {
441
441
  var queryDef = getOperationDefinition(doc);
442
- globals.invariant(queryDef && queryDef.operation === "query", 75);
442
+ globals.invariant(queryDef && queryDef.operation === "query", 77);
443
443
  return queryDef;
444
444
  }
445
445
  function getFragmentDefinition(doc) {
446
- globals.invariant(doc.kind === "Document", 76);
447
- globals.invariant(doc.definitions.length <= 1, 77);
446
+ globals.invariant(doc.kind === "Document", 78);
447
+ globals.invariant(doc.definitions.length <= 1, 79);
448
448
  var fragmentDef = doc.definitions[0];
449
- globals.invariant(fragmentDef.kind === "FragmentDefinition", 78);
449
+ globals.invariant(fragmentDef.kind === "FragmentDefinition", 80);
450
450
  return fragmentDef;
451
451
  }
452
452
  function getMainDefinition(queryDoc) {
@@ -469,7 +469,7 @@ function getMainDefinition(queryDoc) {
469
469
  if (fragmentDefinition) {
470
470
  return fragmentDefinition;
471
471
  }
472
- throw globals.newInvariantError(79);
472
+ throw globals.newInvariantError(81);
473
473
  }
474
474
  function getDefaultValues(definition) {
475
475
  var defaultValues = Object.create(null);
@@ -541,15 +541,15 @@ var DocumentTransform = (function () {
541
541
  return;
542
542
  var cacheKeys = this.getCacheKey(document);
543
543
  if (cacheKeys) {
544
- globals.invariant(Array.isArray(cacheKeys), 64);
544
+ globals.invariant(Array.isArray(cacheKeys), 66);
545
545
  return this.stableCacheKeys.lookupArray(cacheKeys);
546
546
  }
547
547
  };
548
548
  return DocumentTransform;
549
549
  }());
550
550
 
551
- var printCache = canUseWeakMap ? new WeakMap() : undefined;
552
- var print = function (ast) {
551
+ var printCache;
552
+ var print = Object.assign(function (ast) {
553
553
  var result;
554
554
  result = printCache === null || printCache === void 0 ? void 0 : printCache.get(ast);
555
555
  if (!result) {
@@ -557,7 +557,12 @@ var print = function (ast) {
557
557
  printCache === null || printCache === void 0 ? void 0 : printCache.set(ast, result);
558
558
  }
559
559
  return result;
560
- };
560
+ }, {
561
+ reset: function () {
562
+ printCache = canUseWeakMap ? new WeakMap() : undefined;
563
+ },
564
+ });
565
+ print.reset();
561
566
 
562
567
  var isArray = Array.isArray;
563
568
  function isNonEmptyArray(value) {
@@ -637,7 +642,7 @@ function removeDirectivesFromDocument(directives, doc) {
637
642
  return getInUseByFragmentName(ancestor.name.value);
638
643
  }
639
644
  }
640
- globalThis.__DEV__ !== false && globals.invariant.error(81);
645
+ globalThis.__DEV__ !== false && globals.invariant.error(83);
641
646
  return null;
642
647
  };
643
648
  var operationCount = 0;
@@ -824,7 +829,7 @@ var connectionRemoveConfig = {
824
829
  if (willRemove) {
825
830
  if (!directive.arguments ||
826
831
  !directive.arguments.some(function (arg) { return arg.name.value === "key"; })) {
827
- globalThis.__DEV__ !== false && globals.invariant.warn(82);
832
+ globalThis.__DEV__ !== false && globals.invariant.warn(84);
828
833
  }
829
834
  }
830
835
  return willRemove;