@sixtyninecommerce/client 0.26.0 → 0.28.0
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.
- package/README.md +21 -5
- package/dist/admin/http.d.ts.map +1 -1
- package/dist/admin/http.js +51 -69
- package/dist/admin/http.js.map +1 -1
- package/dist/commerce/quotes.d.ts.map +1 -1
- package/dist/commerce/quotes.js +14 -1
- package/dist/commerce/quotes.js.map +1 -1
- package/dist/content/forms.d.ts.map +1 -1
- package/dist/content/forms.js +13 -5
- package/dist/content/forms.js.map +1 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +91 -34
- package/dist/core/context.js.map +1 -1
- package/dist/core/http.d.ts +11 -0
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/http.js +139 -363
- package/dist/core/http.js.map +1 -1
- package/dist/errors.d.ts +85 -24
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +93 -31
- package/dist/errors.js.map +1 -1
- package/dist/events/envelope.d.ts +4 -80
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/envelope.js +6 -12
- package/dist/events/envelope.js.map +1 -1
- package/dist/events/payloads.d.ts +11 -172
- package/dist/events/payloads.d.ts.map +1 -1
- package/dist/events/payloads.js +10 -12
- package/dist/events/payloads.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
- package/dist/core/headers.d.ts +0 -5
- package/dist/core/headers.d.ts.map +0 -1
- package/dist/core/headers.js +0 -29
- package/dist/core/headers.js.map +0 -1
package/dist/core/http.js
CHANGED
|
@@ -1,32 +1,17 @@
|
|
|
1
|
-
import { ORDER_SCOPE_HEADER, REQUEST_TIMEOUT_MS, SHOP_API_PATH } from '../constants.js';
|
|
2
|
-
import { StorefrontError } from '../errors.js';
|
|
3
|
-
import { buildCmsHeaders, buildPluginsHeaders, buildVendureHeaders } from './headers.js';
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* The storefront SDK's HTTP layer, on `@sixtyninecommerce/core`'s transport.
|
|
3
|
+
*
|
|
4
|
+
* Everything generic — header stamping, the retry policy, the abort/timeout
|
|
5
|
+
* link, RFC 9457 and Vendure error mapping, the session-token rotation, the
|
|
6
|
+
* `traceparent` — is `core`'s. What stays here is what is genuinely the
|
|
7
|
+
* STOREFRONT's: the `next: { tags }` cache tagging, the `onAuthExpired`
|
|
8
|
+
* disambiguation probe, and the wire shapes this package's modules read
|
|
9
|
+
* (`createdAt` is `created_at` here and always has been, so case conversion is
|
|
10
|
+
* off).
|
|
8
11
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const parsed = await response.json();
|
|
13
|
-
if (parsed && typeof parsed === 'object') {
|
|
14
|
-
body = parsed;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
// Non-JSON error body — fall back to the status line.
|
|
19
|
-
}
|
|
20
|
-
const rawMessage = body.message;
|
|
21
|
-
const message = Array.isArray(rawMessage)
|
|
22
|
-
? rawMessage.join('; ')
|
|
23
|
-
: typeof rawMessage === 'string' && rawMessage.length > 0
|
|
24
|
-
? rawMessage
|
|
25
|
-
: `CMS returned ${String(response.status)}: ${response.statusText}`;
|
|
26
|
-
const details = Array.isArray(body.details) ? body.details : undefined;
|
|
27
|
-
const retryAfterSeconds = typeof body.retry_after_seconds === 'number' ? body.retry_after_seconds : undefined;
|
|
28
|
-
return new StorefrontError(message, 'cms', response.status, undefined, details, retryAfterSeconds);
|
|
29
|
-
}
|
|
12
|
+
import { createTransport, } from '@sixtyninecommerce/core';
|
|
13
|
+
import { REQUEST_TIMEOUT_MS } from '../constants.js';
|
|
14
|
+
import { StorefrontError, toStorefrontError } from '../errors.js';
|
|
30
15
|
/** Mark a request as a taggable catalogue read, keeping the caller's own options. */
|
|
31
16
|
export function tagRequest(options, operation, tags = []) {
|
|
32
17
|
return { ...options, cacheTagging: { operation, tags } };
|
|
@@ -53,31 +38,18 @@ function fetchCacheTags(ctx, options) {
|
|
|
53
38
|
}
|
|
54
39
|
return resolved.length > 0 ? [...resolved] : null;
|
|
55
40
|
}
|
|
56
|
-
const RETRYABLE_STATUS_CODES = new Set([502, 503, 504]);
|
|
57
|
-
function isMutation(query) {
|
|
58
|
-
return /^\s*mutation\b/i.test(query);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* HTTP status to attach to a StorefrontError built from a Vendure GraphQL
|
|
62
|
-
* error code (Vendure returns these over HTTP 200 as ErrorResult/extensions).
|
|
63
|
-
* Only the auth codes have a meaningful mapping; other codes leave statusCode
|
|
64
|
-
* undefined but still carry `errorCode` for the caller to discriminate.
|
|
65
|
-
*/
|
|
66
|
-
const GRAPHQL_ERROR_STATUS = {
|
|
67
|
-
UNAUTHORIZED: 401,
|
|
68
|
-
FORBIDDEN: 403,
|
|
69
|
-
};
|
|
70
41
|
/**
|
|
71
42
|
* UNAUTHORIZED is Vendure's unambiguous "session token expired/invalid" signal,
|
|
72
43
|
* so it always means the stored session is dead. FORBIDDEN is ambiguous (see
|
|
73
|
-
*
|
|
74
|
-
*
|
|
44
|
+
* below) and is disambiguated by a session-validity probe rather than treated
|
|
45
|
+
* as expiry on its own.
|
|
46
|
+
*
|
|
47
|
+
* The codes reach us on `error.code`: `core` maps a GraphQL `errors[]` array to
|
|
48
|
+
* the first entry that names a code, so a response carrying both reports the
|
|
49
|
+
* first — and a FORBIDDEN read that way still ends up probing, which is the
|
|
50
|
+
* conservative half of this logic anyway.
|
|
75
51
|
*/
|
|
76
|
-
|
|
77
|
-
if (!json.errors?.length)
|
|
78
|
-
return false;
|
|
79
|
-
return json.errors.some((e) => e.extensions?.code === 'UNAUTHORIZED');
|
|
80
|
-
}
|
|
52
|
+
const SESSION_EXPIRED_CODE = 'UNAUTHORIZED';
|
|
81
53
|
/**
|
|
82
54
|
* Vendure's Shop API `AuthGuard` throws `ForbiddenError` (code `FORBIDDEN`) for
|
|
83
55
|
* BOTH a genuinely expired/invalid session AND a real permission denial on a
|
|
@@ -86,11 +58,7 @@ function isSessionExpiredError(json) {
|
|
|
86
58
|
* alone can't tell the two apart, so a FORBIDDEN is disambiguated by probing
|
|
87
59
|
* session validity — fire `onAuthExpired` only when the session is dead.
|
|
88
60
|
*/
|
|
89
|
-
|
|
90
|
-
if (!json.errors?.length)
|
|
91
|
-
return false;
|
|
92
|
-
return json.errors.some((e) => e.extensions?.code === 'FORBIDDEN');
|
|
93
|
-
}
|
|
61
|
+
const FORBIDDEN_CODE = 'FORBIDDEN';
|
|
94
62
|
/**
|
|
95
63
|
* Session-validity probe. `activeCustomer` is nullable and NOT permission-
|
|
96
64
|
* guarded: it returns the logged-in customer, or `null` when there is no active
|
|
@@ -98,83 +66,87 @@ function isForbiddenError(json) {
|
|
|
98
66
|
* (Vendure reports both as FORBIDDEN).
|
|
99
67
|
*/
|
|
100
68
|
const ACTIVE_CUSTOMER_PROBE_QUERY = 'query { activeCustomer { id } }';
|
|
101
|
-
/** First Vendure error code present in the response, for StorefrontError. */
|
|
102
|
-
function firstErrorCode(json) {
|
|
103
|
-
for (const e of json.errors ?? []) {
|
|
104
|
-
const code = e.extensions?.code;
|
|
105
|
-
if (typeof code === 'string' && code.length > 0)
|
|
106
|
-
return code;
|
|
107
|
-
}
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
69
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
70
|
+
* The resolver the transport re-resolves the channel through.
|
|
71
|
+
*
|
|
72
|
+
* `createStoreContext` builds a real `createChannelResolver`, which is what
|
|
73
|
+
* makes the CHANNEL_NOT_FOUND self-heal work: a refused request invalidates the
|
|
74
|
+
* cached entry and goes back to the CMS once, so a channel whose token rotated
|
|
75
|
+
* under a running storefront recovers instead of failing until the process
|
|
76
|
+
* restarts.
|
|
77
|
+
*
|
|
78
|
+
* A context assembled BY HAND has none, and falls back to the channel it
|
|
79
|
+
* carries as a fixed snapshot — every header is stamped from it exactly as
|
|
80
|
+
* before, there is simply nothing to re-resolve.
|
|
113
81
|
*/
|
|
114
|
-
function
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (externalSignal.aborted) {
|
|
120
|
-
controller.abort();
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
externalListener = () => controller.abort();
|
|
124
|
-
externalSignal.addEventListener('abort', externalListener);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
controller,
|
|
129
|
-
cleanup: () => {
|
|
130
|
-
clearTimeout(timeoutId);
|
|
131
|
-
if (externalListener && externalSignal) {
|
|
132
|
-
externalSignal.removeEventListener('abort', externalListener);
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Run a request function with retry on transient failures. Only retries on
|
|
139
|
-
* network errors and 502/503/504. Never retries on 4xx, never retries
|
|
140
|
-
* mutations, never retries when the external signal is aborted.
|
|
141
|
-
*/
|
|
142
|
-
async function withRetry(ctx, externalSignal, shouldRetry, fn) {
|
|
143
|
-
const maxAttempts = shouldRetry ? Math.max(1, ctx.retry.attempts) : 1;
|
|
144
|
-
let lastError;
|
|
145
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
146
|
-
try {
|
|
147
|
-
return await fn();
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
lastError = error;
|
|
151
|
-
if (externalSignal?.aborted)
|
|
152
|
-
throw error;
|
|
153
|
-
if (attempt === maxAttempts)
|
|
154
|
-
throw error;
|
|
155
|
-
if (!isRetryable(error))
|
|
156
|
-
throw error;
|
|
157
|
-
const delay = ctx.retry.baseDelayMs * 2 ** (attempt - 1);
|
|
158
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
throw lastError;
|
|
162
|
-
}
|
|
163
|
-
function isRetryable(error) {
|
|
164
|
-
if (error instanceof StorefrontError) {
|
|
165
|
-
return error.statusCode !== undefined && RETRYABLE_STATUS_CODES.has(error.statusCode);
|
|
166
|
-
}
|
|
167
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
168
|
-
// Internal timeout — retry. External aborts are caught upstream.
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
// Network errors (TypeError on fetch failure) — retry.
|
|
172
|
-
return error instanceof TypeError;
|
|
82
|
+
function channelResolverFor(ctx) {
|
|
83
|
+
return (ctx.channels ?? {
|
|
84
|
+
resolve: () => Promise.resolve(ctx.channel),
|
|
85
|
+
invalidate: () => undefined,
|
|
86
|
+
});
|
|
173
87
|
}
|
|
174
88
|
export function createHttpClient(ctx) {
|
|
89
|
+
const shared = {
|
|
90
|
+
urls: { vendureUrl: ctx.vendureUrl, cmsUrl: ctx.cmsUrl, pluginsUrl: ctx.pluginsUrl },
|
|
91
|
+
// Read per call, never captured: `setLanguage`, `setAuthToken` and
|
|
92
|
+
// `setOrderScope` mutate the context after the client is built, and a
|
|
93
|
+
// snapshot here would pin every later request to the startup values.
|
|
94
|
+
tenant: () => ({
|
|
95
|
+
scope: { kind: 'channel', code: ctx.channel.code },
|
|
96
|
+
...(ctx.languageCode ? { language: ctx.languageCode } : {}),
|
|
97
|
+
...(ctx.orderScope ? { orderScope: ctx.orderScope } : {}),
|
|
98
|
+
}),
|
|
99
|
+
channels: channelResolverFor(ctx),
|
|
100
|
+
fetch: ctx.fetch,
|
|
101
|
+
// `attempts: 0` used to mean one attempt here (`Math.max(1, …)`); core
|
|
102
|
+
// treats a value below 1 as unset and would fall back to its own default,
|
|
103
|
+
// so the floor is applied before it gets there.
|
|
104
|
+
retry: {
|
|
105
|
+
attempts: Math.max(1, ctx.retry.attempts),
|
|
106
|
+
baseDelayMs: ctx.retry.baseDelayMs,
|
|
107
|
+
},
|
|
108
|
+
timeoutMs: REQUEST_TIMEOUT_MS,
|
|
109
|
+
// This package's modules were written against the CMS and plugins wire
|
|
110
|
+
// shapes — `created_at`, `default_language_code`, `prices_include_tax` —
|
|
111
|
+
// and each maps its own response. Converting underneath them would rename
|
|
112
|
+
// every key they read.
|
|
113
|
+
convertCase: false,
|
|
114
|
+
};
|
|
115
|
+
/** Vendure: the shopper's session, when there is one. */
|
|
116
|
+
const vendureTransport = createTransport({
|
|
117
|
+
...shared,
|
|
118
|
+
principal: () => ({
|
|
119
|
+
kind: 'bearer',
|
|
120
|
+
// An empty token sends no Authorization header, which is what an
|
|
121
|
+
// anonymous storefront wants.
|
|
122
|
+
token: ctx.authToken ?? '',
|
|
123
|
+
onToken: (token) => {
|
|
124
|
+
ctx.authToken = token;
|
|
125
|
+
ctx.onAuthToken?.(token);
|
|
126
|
+
},
|
|
127
|
+
}),
|
|
128
|
+
});
|
|
129
|
+
/**
|
|
130
|
+
* CMS and plugins: ALWAYS anonymous. A separate transport rather than a flag,
|
|
131
|
+
* so the credential boundary cannot be crossed by editing one line.
|
|
132
|
+
*
|
|
133
|
+
* The shopper's Vendure session token is a VALID principal to the CMS — its
|
|
134
|
+
* `AuthGuard` runs optional auth on every `@Public()` route and validates a
|
|
135
|
+
* storefront token through the Shop API — and the routes this SDK reads widen
|
|
136
|
+
* their response when they see one: `GET /forms/:id` answers with the RAW
|
|
137
|
+
* entity (`notificationEmails`, the honeypot slug and rate limits in
|
|
138
|
+
* `settings`, `removedAt`) instead of `toPublicForm`'s projection, and the
|
|
139
|
+
* collection item routes return drafts and archived items instead of
|
|
140
|
+
* published ones. Nothing fails — the shop simply starts rendering
|
|
141
|
+
* merchant-internal data, and only once a customer signs in.
|
|
142
|
+
*/
|
|
143
|
+
const restTransport = createTransport({
|
|
144
|
+
...shared,
|
|
145
|
+
principal: { kind: 'anonymous' },
|
|
146
|
+
});
|
|
175
147
|
/**
|
|
176
148
|
* Decide whether the stored session is genuinely dead and fire `onAuthExpired`
|
|
177
|
-
* if so, given a Vendure
|
|
149
|
+
* if so, given the error a Vendure call failed with while an auth token was
|
|
178
150
|
* attached.
|
|
179
151
|
*
|
|
180
152
|
* - UNAUTHORIZED ⇒ unambiguous dead session ⇒ fire.
|
|
@@ -189,14 +161,14 @@ export function createHttpClient(ctx) {
|
|
|
189
161
|
* issue a nested probe — the recursion guard. The probe is therefore issued
|
|
190
162
|
* at most once per originating FORBIDDEN failure.
|
|
191
163
|
*/
|
|
192
|
-
async function maybeSignalAuthExpired(
|
|
164
|
+
async function maybeSignalAuthExpired(error, isProbe) {
|
|
193
165
|
if (isProbe || !ctx.authToken)
|
|
194
166
|
return;
|
|
195
|
-
if (
|
|
167
|
+
if (error.errorCode === SESSION_EXPIRED_CODE) {
|
|
196
168
|
ctx.onAuthExpired?.();
|
|
197
169
|
return;
|
|
198
170
|
}
|
|
199
|
-
if (
|
|
171
|
+
if (error.errorCode !== FORBIDDEN_CODE)
|
|
200
172
|
return;
|
|
201
173
|
const sessionAlive = await probeSessionAlive();
|
|
202
174
|
if (sessionAlive === false) {
|
|
@@ -219,251 +191,55 @@ export function createHttpClient(ctx) {
|
|
|
219
191
|
return null;
|
|
220
192
|
}
|
|
221
193
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
ctx.authToken = authToken;
|
|
246
|
-
ctx.onAuthToken?.(authToken);
|
|
247
|
-
}
|
|
248
|
-
const json = (await response.json());
|
|
249
|
-
if (json.errors?.length) {
|
|
250
|
-
await maybeSignalAuthExpired(json, isProbe);
|
|
251
|
-
const messages = json.errors.map((e) => e.message).join('; ');
|
|
252
|
-
const errorCode = firstErrorCode(json);
|
|
253
|
-
throw new StorefrontError(`GraphQL error: ${messages}`, 'vendure', errorCode ? GRAPHQL_ERROR_STATUS[errorCode] : undefined, errorCode);
|
|
254
|
-
}
|
|
255
|
-
return json.data;
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
if (error instanceof StorefrontError)
|
|
259
|
-
throw error;
|
|
260
|
-
if (error.name === 'AbortError') {
|
|
261
|
-
if (options?.signal?.aborted) {
|
|
262
|
-
throw new StorefrontError('Request aborted by caller', 'vendure');
|
|
263
|
-
}
|
|
264
|
-
throw new StorefrontError('Request timed out (15s)', 'vendure');
|
|
265
|
-
}
|
|
266
|
-
throw new StorefrontError(`Vendure request failed: ${error.message}`, 'vendure');
|
|
267
|
-
}
|
|
268
|
-
finally {
|
|
269
|
-
cleanup();
|
|
270
|
-
}
|
|
271
|
-
});
|
|
194
|
+
/** The per-call options `core` takes, plus this SDK's cache tagging. */
|
|
195
|
+
function callOptions(options, extra) {
|
|
196
|
+
const tags = fetchCacheTags(ctx, options);
|
|
197
|
+
return {
|
|
198
|
+
...(options?.signal ? { signal: options.signal } : {}),
|
|
199
|
+
// Next.js reads `next.tags` off the fetch init for `revalidateTag`; other
|
|
200
|
+
// fetch implementations ignore keys they do not know. No cache policy is set.
|
|
201
|
+
...(tags ? { fetchInit: { next: { tags } } } : {}),
|
|
202
|
+
...extra,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
async function graphqlRequest(query, variables, options, isProbe, files) {
|
|
206
|
+
try {
|
|
207
|
+
return await vendureTransport.graphql({ query, variables, api: 'shop', ...(files ? { files } : {}) },
|
|
208
|
+
// An upload streams a file body; 15s is the read timeout for a JSON
|
|
209
|
+
// document, not for a photo on a phone connection.
|
|
210
|
+
callOptions(options, files ? { timeoutMs: REQUEST_TIMEOUT_MS * 4 } : undefined));
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
const converted = toStorefrontError(error, 'vendure');
|
|
214
|
+
await maybeSignalAuthExpired(converted, isProbe);
|
|
215
|
+
throw converted;
|
|
216
|
+
}
|
|
272
217
|
}
|
|
273
218
|
function graphql(query, variables, options) {
|
|
274
219
|
return graphqlRequest(query, variables, options, false);
|
|
275
220
|
}
|
|
276
|
-
|
|
277
|
-
return
|
|
278
|
-
const url = new URL(`${ctx.cmsUrl}${path}`);
|
|
279
|
-
if (params) {
|
|
280
|
-
for (const [key, value] of Object.entries(params)) {
|
|
281
|
-
url.searchParams.set(key, value);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
// Auto-add locale from context
|
|
285
|
-
if (ctx.languageCode && !url.searchParams.has('locale')) {
|
|
286
|
-
url.searchParams.set('locale', ctx.languageCode);
|
|
287
|
-
}
|
|
288
|
-
const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS);
|
|
289
|
-
try {
|
|
290
|
-
const response = await ctx.fetch(url.toString(), {
|
|
291
|
-
method: 'GET',
|
|
292
|
-
headers: buildCmsHeaders(ctx),
|
|
293
|
-
signal: controller.signal,
|
|
294
|
-
});
|
|
295
|
-
if (!response.ok) {
|
|
296
|
-
throw await cmsError(response);
|
|
297
|
-
}
|
|
298
|
-
return (await response.json());
|
|
299
|
-
}
|
|
300
|
-
catch (error) {
|
|
301
|
-
if (error instanceof StorefrontError)
|
|
302
|
-
throw error;
|
|
303
|
-
if (error.name === 'AbortError') {
|
|
304
|
-
if (options?.signal?.aborted) {
|
|
305
|
-
throw new StorefrontError('Request aborted by caller', 'cms');
|
|
306
|
-
}
|
|
307
|
-
throw new StorefrontError('Request timed out (15s)', 'cms');
|
|
308
|
-
}
|
|
309
|
-
throw new StorefrontError(`CMS request failed: ${error.message}`, 'cms');
|
|
310
|
-
}
|
|
311
|
-
finally {
|
|
312
|
-
cleanup();
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
async function cmsPost(path, body, options) {
|
|
317
|
-
// POSTs are not retried — they're treated as mutations.
|
|
318
|
-
return withRetry(ctx, options?.signal, false, async () => {
|
|
319
|
-
const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS);
|
|
320
|
-
try {
|
|
321
|
-
const response = await ctx.fetch(`${ctx.cmsUrl}${path}`, {
|
|
322
|
-
method: 'POST',
|
|
323
|
-
headers: {
|
|
324
|
-
...buildCmsHeaders(ctx),
|
|
325
|
-
'Content-Type': 'application/json',
|
|
326
|
-
},
|
|
327
|
-
body: JSON.stringify(body),
|
|
328
|
-
signal: controller.signal,
|
|
329
|
-
});
|
|
330
|
-
if (!response.ok) {
|
|
331
|
-
throw await cmsError(response);
|
|
332
|
-
}
|
|
333
|
-
return (await response.json());
|
|
334
|
-
}
|
|
335
|
-
catch (error) {
|
|
336
|
-
if (error instanceof StorefrontError)
|
|
337
|
-
throw error;
|
|
338
|
-
if (error.name === 'AbortError') {
|
|
339
|
-
if (options?.signal?.aborted) {
|
|
340
|
-
throw new StorefrontError('Request aborted by caller', 'cms');
|
|
341
|
-
}
|
|
342
|
-
throw new StorefrontError('Request timed out (15s)', 'cms');
|
|
343
|
-
}
|
|
344
|
-
throw new StorefrontError(`CMS request failed: ${error.message}`, 'cms');
|
|
345
|
-
}
|
|
346
|
-
finally {
|
|
347
|
-
cleanup();
|
|
348
|
-
}
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
async function pluginsGet(path, params, options) {
|
|
352
|
-
return withRetry(ctx, options?.signal, true, async () => {
|
|
353
|
-
const url = new URL(`${ctx.pluginsUrl}${path}`);
|
|
354
|
-
if (params) {
|
|
355
|
-
for (const [key, value] of Object.entries(params)) {
|
|
356
|
-
url.searchParams.set(key, value);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
// Auto-add language_code from context
|
|
360
|
-
if (ctx.languageCode && !url.searchParams.has('language_code')) {
|
|
361
|
-
url.searchParams.set('language_code', ctx.languageCode);
|
|
362
|
-
}
|
|
363
|
-
const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS);
|
|
364
|
-
try {
|
|
365
|
-
const response = await ctx.fetch(url.toString(), {
|
|
366
|
-
method: 'GET',
|
|
367
|
-
headers: buildPluginsHeaders(ctx),
|
|
368
|
-
signal: controller.signal,
|
|
369
|
-
});
|
|
370
|
-
if (!response.ok) {
|
|
371
|
-
throw new StorefrontError(`Plugins returned ${String(response.status)}: ${response.statusText}`, 'plugins', response.status);
|
|
372
|
-
}
|
|
373
|
-
return (await response.json());
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
if (error instanceof StorefrontError)
|
|
377
|
-
throw error;
|
|
378
|
-
if (error.name === 'AbortError') {
|
|
379
|
-
if (options?.signal?.aborted) {
|
|
380
|
-
throw new StorefrontError('Request aborted by caller', 'plugins');
|
|
381
|
-
}
|
|
382
|
-
throw new StorefrontError('Request timed out (15s)', 'plugins');
|
|
383
|
-
}
|
|
384
|
-
throw new StorefrontError(`Plugins request failed: ${error.message}`, 'plugins');
|
|
385
|
-
}
|
|
386
|
-
finally {
|
|
387
|
-
cleanup();
|
|
388
|
-
}
|
|
389
|
-
});
|
|
221
|
+
function graphqlUpload(query, variables, files, options) {
|
|
222
|
+
return graphqlRequest(query, variables, options, false, files);
|
|
390
223
|
}
|
|
391
|
-
async function
|
|
392
|
-
// Uploads are mutations — no retry.
|
|
393
|
-
const formData = new FormData();
|
|
394
|
-
// Build the operations JSON with null placeholders for file variables
|
|
395
|
-
formData.append('operations', JSON.stringify({ query, variables }));
|
|
396
|
-
// Build the map: { "0": ["variables.files.0"], "1": ["variables.files.1"], ... }
|
|
397
|
-
const fileMap = {};
|
|
398
|
-
let fileIndex = 0;
|
|
399
|
-
for (const [variablePath] of files) {
|
|
400
|
-
fileMap[String(fileIndex)] = [variablePath];
|
|
401
|
-
fileIndex++;
|
|
402
|
-
}
|
|
403
|
-
formData.append('map', JSON.stringify(fileMap));
|
|
404
|
-
// Append files
|
|
405
|
-
fileIndex = 0;
|
|
406
|
-
for (const [, file] of files) {
|
|
407
|
-
formData.append(String(fileIndex), file);
|
|
408
|
-
fileIndex++;
|
|
409
|
-
}
|
|
410
|
-
// Build headers without Content-Type (let browser set multipart boundary).
|
|
411
|
-
// Deliberately mirrors buildVendureHeaders minus Content-Type — including
|
|
412
|
-
// the order scope, or an upload mutation would resolve a different cart
|
|
413
|
-
// than every other request this client makes.
|
|
414
|
-
const headers = {
|
|
415
|
-
'vendure-token': ctx.channel.token,
|
|
416
|
-
};
|
|
417
|
-
if (ctx.languageCode) {
|
|
418
|
-
headers.languageCode = ctx.languageCode;
|
|
419
|
-
}
|
|
420
|
-
if (ctx.authToken) {
|
|
421
|
-
headers.Authorization = `Bearer ${ctx.authToken}`;
|
|
422
|
-
}
|
|
423
|
-
if (ctx.orderScope) {
|
|
424
|
-
headers[ORDER_SCOPE_HEADER] = ctx.orderScope;
|
|
425
|
-
}
|
|
426
|
-
const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS * 4 // longer timeout for uploads
|
|
427
|
-
);
|
|
224
|
+
async function rest(service, method, path, params, body, options) {
|
|
428
225
|
try {
|
|
429
|
-
|
|
430
|
-
method
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
});
|
|
435
|
-
if (!response.ok) {
|
|
436
|
-
throw new StorefrontError(`Vendure upload returned ${String(response.status)}: ${response.statusText}`, 'vendure', response.status);
|
|
437
|
-
}
|
|
438
|
-
const authToken = response.headers.get('vendure-auth-token');
|
|
439
|
-
if (authToken) {
|
|
440
|
-
ctx.authToken = authToken;
|
|
441
|
-
ctx.onAuthToken?.(authToken);
|
|
442
|
-
}
|
|
443
|
-
const json = (await response.json());
|
|
444
|
-
if (json.errors?.length) {
|
|
445
|
-
await maybeSignalAuthExpired(json, false);
|
|
446
|
-
const messages = json.errors.map((e) => e.message).join('; ');
|
|
447
|
-
const errorCode = firstErrorCode(json);
|
|
448
|
-
throw new StorefrontError(`GraphQL upload error: ${messages}`, 'vendure', errorCode ? GRAPHQL_ERROR_STATUS[errorCode] : undefined, errorCode);
|
|
449
|
-
}
|
|
450
|
-
return json.data;
|
|
226
|
+
return await restTransport.rest(service, {
|
|
227
|
+
method,
|
|
228
|
+
path,
|
|
229
|
+
...(params ? { query: params } : {}),
|
|
230
|
+
...(body !== undefined ? { body } : {}),
|
|
231
|
+
}, callOptions(options));
|
|
451
232
|
}
|
|
452
233
|
catch (error) {
|
|
453
|
-
|
|
454
|
-
throw error;
|
|
455
|
-
if (error.name === 'AbortError') {
|
|
456
|
-
if (options?.signal?.aborted) {
|
|
457
|
-
throw new StorefrontError('Upload aborted by caller', 'vendure');
|
|
458
|
-
}
|
|
459
|
-
throw new StorefrontError('Upload timed out (60s)', 'vendure');
|
|
460
|
-
}
|
|
461
|
-
throw new StorefrontError(`Upload failed: ${error.message}`, 'vendure');
|
|
462
|
-
}
|
|
463
|
-
finally {
|
|
464
|
-
cleanup();
|
|
234
|
+
throw toStorefrontError(error, service);
|
|
465
235
|
}
|
|
466
236
|
}
|
|
467
|
-
return {
|
|
237
|
+
return {
|
|
238
|
+
graphql,
|
|
239
|
+
graphqlUpload,
|
|
240
|
+
cmsGet: (path, params, options) => rest('cms', 'GET', path, params, undefined, options),
|
|
241
|
+
cmsPost: (path, body, options) => rest('cms', 'POST', path, undefined, body, options),
|
|
242
|
+
pluginsGet: (path, params, options) => rest('plugins', 'GET', path, params, undefined, options),
|
|
243
|
+
};
|
|
468
244
|
}
|
|
469
245
|
//# sourceMappingURL=http.js.map
|
package/dist/core/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzF;;;;GAIG;AACH,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACvD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,OAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,iBAAiB,GACrB,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtF,OAAO,IAAI,eAAe,CACxB,OAAO,EACP,KAAK,EACL,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,OAAO,EACP,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAeD,qFAAqF;AACrF,MAAM,UAAU,UAAU,CACxB,OAAmC,EACnC,SAAiB,EACjB,OAA0B,EAAE;IAE5B,OAAO,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAiB,EAAE,OAAmC;IAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;IACtC,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,EAAE,YAAY,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,UAAU;QAC3B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC;QACjE,CAAC,CAAC,MAAM,CAAC;IACb,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EACnE,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,kEAAkE,EAClE,SAAS,CACV,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AA2BD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAExD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAA2B;IACnD,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;CACf,CAAC;AAEF;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,IAA8B;IAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,cAAc,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,IAA8B;IACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,iCAAiC,CAAC;AAEtE,6EAA6E;AAC7E,SAAS,cAAc,CAAC,IAA8B;IACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,cAAuC,EACvC,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,gBAAgB,GAAwB,IAAI,CAAC;IACjD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC5C,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO,EAAE,GAAG,EAAE;YACZ,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;gBACvC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACtB,GAAiB,EACjB,cAAuC,EACvC,WAAoB,EACpB,EAAoB;IAEpB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAElB,IAAI,cAAc,EAAE,OAAO;gBAAE,MAAM,KAAK,CAAC;YACzC,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM,KAAK,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAErC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1D,iEAAiE;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,uDAAuD;IACvD,OAAO,KAAK,YAAY,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,UAAU,sBAAsB,CACnC,IAA8B,EAC9B,OAAgB;QAEhB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO;QACtC,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACpC,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC/C,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,iBAAiB;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,2BAA2B,EAC3B,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CACrB,KAAa,EACb,SAA8C,EAC9C,OAAmC,EACnC,OAAgB;QAEhB,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAE5F,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,0EAA0E;gBAC1E,0EAA0E;gBAC1E,MAAM,IAAI,GAAgD;oBACxD,MAAM,EAAE,MAAM;oBACd,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBAC1C,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpC,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;gBAE5E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,eAAe,CACvB,6BAA6B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,EAC9E,SAAS,EACT,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACJ,CAAC;gBAED,gDAAgD;gBAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC1B,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;gBAE3D,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;oBACxB,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM,IAAI,eAAe,CACvB,kBAAkB,QAAQ,EAAE,EAC5B,SAAS,EACT,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,CACV,CAAC;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe;oBAAE,MAAM,KAAK,CAAC;gBAClD,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7B,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;oBACpE,CAAC;oBACD,MAAM,IAAI,eAAe,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9F,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,OAAO,CACd,KAAa,EACb,SAAmC,EACnC,OAAwB;QAExB,OAAO,cAAc,CAAI,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,IAAY,EACZ,MAA+B,EAC/B,OAAwB;QAExB,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,+BAA+B;YAC/B,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAE5F,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;oBAC/C,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC;oBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe;oBAAE,MAAM,KAAK,CAAC;gBAClD,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7B,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;oBAChE,CAAC;oBACD,MAAM,IAAI,eAAe,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,uBAAwB,KAAe,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,IAAa,EACb,OAAwB;QAExB,wDAAwD;QACxD,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAE5F,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,EAAE;oBACvD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,GAAG,eAAe,CAAC,GAAG,CAAC;wBACvB,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe;oBAAE,MAAM,KAAK,CAAC;gBAClD,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7B,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;oBAChE,CAAC;oBACD,MAAM,IAAI,eAAe,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,uBAAwB,KAAe,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,MAA+B,EAC/B,OAAwB;QAExB,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,sCAAsC;YACtC,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAE5F,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;oBAC/C,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBACjC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,eAAe,CACvB,oBAAoB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,EACrE,SAAS,EACT,QAAQ,CAAC,MAAM,CAChB,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,eAAe;oBAAE,MAAM,KAAK,CAAC;gBAClD,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3C,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7B,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;oBACpE,CAAC;oBACD,MAAM,IAAI,eAAe,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9F,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,aAAa,CAC1B,KAAa,EACb,SAAkC,EAClC,KAAwB,EACxB,OAAwB;QAExB,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,sEAAsE;QACtE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEpE,iFAAiF;QACjF,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC5C,SAAS,EAAE,CAAC;QACd,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAEhD,eAAe;QACf,SAAS,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,SAAS,EAAE,CAAC;QACd,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,8CAA8C;QAC9C,MAAM,OAAO,GAA2B;YACtC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;SACnC,CAAC;QACF,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QAC1C,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,aAAa,GAAG,UAAU,GAAG,CAAC,SAAS,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;QAC/C,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,sBAAsB,CACpD,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAG,CAAC,CAAC,6BAA6B;SACrD,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,aAAa,EAAE,EAAE;gBACpE,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,eAAe,CACvB,2BAA2B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE,EAC5E,SAAS,EACT,QAAQ,CAAC,MAAM,CAChB,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC7D,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC1B,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;YAE3D,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACxB,MAAM,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,eAAe,CACvB,yBAAyB,QAAQ,EAAE,EACnC,SAAS,EACT,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,CACV,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe;gBAAE,MAAM,KAAK,CAAC;YAClD,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3C,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC7B,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,kBAAmB,KAAe,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACrF,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjE,CAAC"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
|