@chrischall/mcp-utils 2.8.0 → 2.10.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 +70 -5
- package/dist/auth/index.d.ts +5 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +33 -3
- package/dist/auth/index.js.map +1 -1
- package/dist/fetchproxy/index.d.ts +10 -2
- package/dist/fetchproxy/index.d.ts.map +1 -1
- package/dist/fetchproxy/index.js +42 -2
- package/dist/fetchproxy/index.js.map +1 -1
- package/dist/healthcheck/index.d.ts +6 -0
- package/dist/healthcheck/index.d.ts.map +1 -1
- package/dist/healthcheck/index.js +39 -13
- package/dist/healthcheck/index.js.map +1 -1
- package/dist/http/index.d.ts +50 -2
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +172 -13
- package/dist/http/index.js.map +1 -1
- package/dist/internal/edge-block.d.ts +28 -0
- package/dist/internal/edge-block.d.ts.map +1 -0
- package/dist/internal/edge-block.js +86 -0
- package/dist/internal/edge-block.js.map +1 -0
- package/dist/session/index.d.ts +10 -2
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +28 -4
- package/dist/session/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { truncateErrorMessage, messageOf } from '../errors/index.js';
|
|
2
|
+
import { EdgeBlockedError, detectEdgeBlock } from '../http/index.js';
|
|
3
|
+
import { edgeBlockOf } from '../internal/edge-block.js';
|
|
2
4
|
import { z } from 'zod';
|
|
3
5
|
/** HTTP status off a thrown error, when the thrower attached one. */
|
|
4
6
|
function statusOf(err) {
|
|
@@ -12,6 +14,7 @@ const CREDENTIAL_ARMS = new Set([
|
|
|
12
14
|
'ok',
|
|
13
15
|
'no_credential',
|
|
14
16
|
'credential_rejected',
|
|
17
|
+
'edge_blocked',
|
|
15
18
|
'session_expired',
|
|
16
19
|
'verification_pending',
|
|
17
20
|
'timeout',
|
|
@@ -31,6 +34,8 @@ function credentialHint(arm, prefix, hostLabel, source) {
|
|
|
31
34
|
return `No credential resolved. Nothing was available to authenticate with — sign in and reconnect the connector so ${prefix} receives a token, or set the documented environment variable.`;
|
|
32
35
|
case 'credential_rejected':
|
|
33
36
|
return `${hostLabel} rejected the credential from '${source}'. It is present but no longer valid — most often expired or revoked upstream. Re-authenticate and reconnect; retrying will not fix it.`;
|
|
37
|
+
case 'edge_blocked':
|
|
38
|
+
return `${hostLabel} refused the request at its CDN/WAF before it reached the API, so the credential${source !== null ? ` from '${source}'` : ''} was never judged — re-signing in or rotating it will not help. This is usually a block on this host's IP address or request fingerprint: route through the ContextMint Bridge if this connector supports it, or retry later from a different network.`;
|
|
34
39
|
case 'session_expired':
|
|
35
40
|
return `The credential from '${source}' is configured, but no session is live — ${hostLabel} served a sign-in page rather than the data. Sign in again; a cookie-session portal expires these on its own, so this recurs between uses.`;
|
|
36
41
|
case 'verification_pending':
|
|
@@ -93,7 +98,13 @@ export async function runCredentialHealthcheck(args) {
|
|
|
93
98
|
// to someone whose variables are already set. So the consumer's
|
|
94
99
|
// classifier is consulted here as it already is for a probe failure;
|
|
95
100
|
// declining it (or not supplying one) keeps the old behaviour exactly.
|
|
96
|
-
|
|
101
|
+
// A resolver that went over the network (a token refresh) can meet the
|
|
102
|
+
// same CDN block as the probe. That is not a missing credential either,
|
|
103
|
+
// so it is named before the `no_credential` fallback — after the
|
|
104
|
+
// consumer's own classifier, which still decides first.
|
|
105
|
+
const edge = edgeBlockOf(e);
|
|
106
|
+
const classified = classifyThrown?.(e) ??
|
|
107
|
+
(edge !== null ? { kind: 'edge_blocked', detail: { vendor: edge.vendor } } : undefined);
|
|
97
108
|
const result = {
|
|
98
109
|
ok: false,
|
|
99
110
|
// Still false, and still no source: a classification explains WHY
|
|
@@ -156,23 +167,31 @@ export async function runCredentialHealthcheck(args) {
|
|
|
156
167
|
// bare AbortController abort carries it there and NOT in the message,
|
|
157
168
|
// so matching the text alone classified those as 'unknown'.
|
|
158
169
|
const aborted = e instanceof Error && e.name === 'AbortError';
|
|
170
|
+
// An edge block comes first: it answers 403 (or 503, or 429) exactly as a
|
|
171
|
+
// rejecting API or a struggling one does, and the status alone would send
|
|
172
|
+
// somebody to re-sign in with a credential that was never looked at.
|
|
173
|
+
const edge = edgeBlockOf(e);
|
|
159
174
|
arm =
|
|
160
|
-
|
|
161
|
-
? '
|
|
162
|
-
: status
|
|
163
|
-
? '
|
|
164
|
-
:
|
|
165
|
-
? '
|
|
166
|
-
: /
|
|
167
|
-
? '
|
|
168
|
-
:
|
|
175
|
+
edge !== null
|
|
176
|
+
? 'edge_blocked'
|
|
177
|
+
: status === 401 || status === 403
|
|
178
|
+
? 'credential_rejected'
|
|
179
|
+
: status !== undefined
|
|
180
|
+
? 'http'
|
|
181
|
+
: aborted || /timeout|timed out|ETIMEDOUT/i.test(messageOf(e))
|
|
182
|
+
? 'timeout'
|
|
183
|
+
: /fetch failed|ENOTFOUND|ECONNREFUSED|ECONNRESET|network/i.test(messageOf(e))
|
|
184
|
+
? 'transport'
|
|
185
|
+
: 'unknown';
|
|
169
186
|
let kind = arm;
|
|
170
|
-
let detail;
|
|
187
|
+
let detail = edge !== null ? { vendor: edge.vendor } : undefined;
|
|
171
188
|
const custom = classifyThrown?.(e);
|
|
172
189
|
if (custom) {
|
|
173
190
|
kind = custom.kind;
|
|
174
191
|
customHint = custom.hint;
|
|
175
|
-
detail
|
|
192
|
+
// The consumer's detail wins when it gave one; otherwise the edge vendor
|
|
193
|
+
// seen above is kept, since it is a fact about the response either way.
|
|
194
|
+
detail = custom.detail ?? detail;
|
|
176
195
|
// The hint has to follow the KIND, exactly as it does on the
|
|
177
196
|
// resolveCredential path above. `arm` was derived from the HTTP status
|
|
178
197
|
// and, left alone, selected copy that the classified kind contradicts:
|
|
@@ -279,8 +298,15 @@ export function sessionProbe(opts) {
|
|
|
279
298
|
if (status >= 300 && status < 400) {
|
|
280
299
|
throw new SessionNotLiveError(host, `redirected with ${status}`);
|
|
281
300
|
}
|
|
282
|
-
if (status < 200 || status >= 300)
|
|
301
|
+
if (status < 200 || status >= 300) {
|
|
302
|
+
// A CDN/WAF refusal page is not the far side's answer: name it, so the
|
|
303
|
+
// healthcheck reports edge_blocked rather than an upstream error or a
|
|
304
|
+
// dead session. `sessionClassifier` passes it through to that ladder.
|
|
305
|
+
const edge = detectEdgeBlock({ body, status });
|
|
306
|
+
if (edge !== null)
|
|
307
|
+
throw new EdgeBlockedError(status, edge.vendor, { service: host });
|
|
283
308
|
throw new ProbeHttpError(host, status);
|
|
309
|
+
}
|
|
284
310
|
if (opts.signedOut(body))
|
|
285
311
|
throw new SessionNotLiveError(host, 'sign-in or verification page');
|
|
286
312
|
return body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/healthcheck/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/healthcheck/index.ts"],"names":[],"mappings":"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"}
|
package/dist/http/index.d.ts
CHANGED
|
@@ -106,7 +106,8 @@ export interface ApiClientOptions {
|
|
|
106
106
|
* message (e.g. `TEMPO_API_TOKEN is invalid or expired`) without wrapping the
|
|
107
107
|
* client in a try/catch. The factory receives no arguments — it is never
|
|
108
108
|
* passed the token, preserving the no-token-in-message guarantee. Defaults to
|
|
109
|
-
* {@link UnauthorizedError}.
|
|
109
|
+
* {@link UnauthorizedError}. Not called for a 401 that is a CDN/WAF refusal
|
|
110
|
+
* page: that throws {@link EdgeBlockedError}, since no credential was judged.
|
|
110
111
|
*/
|
|
111
112
|
onUnauthorized?: () => Error;
|
|
112
113
|
/**
|
|
@@ -218,6 +219,52 @@ export declare class ApiError extends Error {
|
|
|
218
219
|
export declare class UpstreamHttpError extends ApiError {
|
|
219
220
|
constructor(status: number, message: string);
|
|
220
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* The request was refused by a CDN or WAF IN FRONT of the API — a CloudFront
|
|
224
|
+
* "request could not be satisfied" page, a Cloudflare block or challenge, an
|
|
225
|
+
* Akamai or Imperva denial — so it never reached the origin and the credential
|
|
226
|
+
* was never evaluated (chrischall/mcp-host#1015).
|
|
227
|
+
*
|
|
228
|
+
* It extends {@link ApiError} and keeps the real status, so every existing
|
|
229
|
+
* `err instanceof ApiError && err.status === 403` branch behaves exactly as
|
|
230
|
+
* before; what it adds is the vendor and a message that does not send someone
|
|
231
|
+
* to re-sign in. The page itself is left out of the message: it is HTML noise,
|
|
232
|
+
* and {@link detectEdgeBlock} has already said what it was.
|
|
233
|
+
*/
|
|
234
|
+
export declare class EdgeBlockedError extends ApiError {
|
|
235
|
+
/** Which edge refused the request, e.g. `'CloudFront'` or `'Cloudflare'`. */
|
|
236
|
+
readonly vendor: string;
|
|
237
|
+
/**
|
|
238
|
+
* @param where The service the request was for, and — when the thrower knows
|
|
239
|
+
* it — the method and path, which the message names.
|
|
240
|
+
*/
|
|
241
|
+
constructor(status: number, vendor: string, where: {
|
|
242
|
+
service: string;
|
|
243
|
+
method?: string;
|
|
244
|
+
path?: string;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/** The headers {@link detectEdgeBlock} reads: a `Headers` or a plain record. */
|
|
248
|
+
export type EdgeBlockHeaders = Headers | Record<string, string | undefined>;
|
|
249
|
+
/**
|
|
250
|
+
* Was this response refused by a CDN/WAF in front of the API rather than by
|
|
251
|
+
* the API itself? Returns the vendor, or `null` when nothing definitive says
|
|
252
|
+
* so — a `null` is "not shown to be an edge block", never "the origin
|
|
253
|
+
* answered". Reads `cf-mitigated` from the headers (Cloudflare sets it only on
|
|
254
|
+
* a response it mitigated) and each vendor's own page markers from the body,
|
|
255
|
+
* which may be a truncated excerpt such as an error message.
|
|
256
|
+
*
|
|
257
|
+
* Used by {@link createApiClient} to throw {@link EdgeBlockedError}, and by the
|
|
258
|
+
* credential healthcheck so a block is not reported as a rejected credential.
|
|
259
|
+
*/
|
|
260
|
+
export declare function detectEdgeBlock(input: {
|
|
261
|
+
body?: string;
|
|
262
|
+
headers?: EdgeBlockHeaders;
|
|
263
|
+
/** The response status, when known. A 5xx admits only challenge markers. */
|
|
264
|
+
status?: number;
|
|
265
|
+
}): {
|
|
266
|
+
vendor: string;
|
|
267
|
+
} | null;
|
|
221
268
|
/**
|
|
222
269
|
* Build a bearer-auth fetch client with one-shot 429 retry, 401 mapping, 204 /
|
|
223
270
|
* empty-body handling, and redacted error formatting.
|
|
@@ -225,7 +272,8 @@ export declare class UpstreamHttpError extends ApiError {
|
|
|
225
272
|
* Consolidates the structurally-identical `client.ts#doRequest` across
|
|
226
273
|
* splitwise/tempo/ioffice/app-store-connect/zola. The retry/401/429 behavior is
|
|
227
274
|
* the hardened superset: 401 → {@link UnauthorizedError} (never echoing the
|
|
228
|
-
* token)
|
|
275
|
+
* token) unless the 401 is a CDN/WAF refusal page, which is an
|
|
276
|
+
* {@link EdgeBlockedError} like any other blocked status, 429 → sleep(`delayMs`) and replay up to `count` times then
|
|
229
277
|
* {@link RateLimitedError}, 204/empty → `undefined`, other non-2xx →
|
|
230
278
|
* {@link formatApiError}.
|
|
231
279
|
*/
|
package/dist/http/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"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"}
|
package/dist/http/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { withAmbientCancellation } from '../cancel/index.js';
|
|
20
20
|
import { truncateErrorMessage } from '../errors/index.js';
|
|
21
|
+
import { isCloudflareChallenge } from '../scrape/index.js';
|
|
21
22
|
export * from './throttle.js';
|
|
22
23
|
export * from './response-cache.js';
|
|
23
24
|
export * from './net-atoms.js';
|
|
@@ -90,6 +91,135 @@ export class UpstreamHttpError extends ApiError {
|
|
|
90
91
|
Object.setPrototypeOf(this, new.target.prototype);
|
|
91
92
|
}
|
|
92
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* The request was refused by a CDN or WAF IN FRONT of the API — a CloudFront
|
|
96
|
+
* "request could not be satisfied" page, a Cloudflare block or challenge, an
|
|
97
|
+
* Akamai or Imperva denial — so it never reached the origin and the credential
|
|
98
|
+
* was never evaluated (chrischall/mcp-host#1015).
|
|
99
|
+
*
|
|
100
|
+
* It extends {@link ApiError} and keeps the real status, so every existing
|
|
101
|
+
* `err instanceof ApiError && err.status === 403` branch behaves exactly as
|
|
102
|
+
* before; what it adds is the vendor and a message that does not send someone
|
|
103
|
+
* to re-sign in. The page itself is left out of the message: it is HTML noise,
|
|
104
|
+
* and {@link detectEdgeBlock} has already said what it was.
|
|
105
|
+
*/
|
|
106
|
+
export class EdgeBlockedError extends ApiError {
|
|
107
|
+
/** Which edge refused the request, e.g. `'CloudFront'` or `'Cloudflare'`. */
|
|
108
|
+
vendor;
|
|
109
|
+
/**
|
|
110
|
+
* @param where The service the request was for, and — when the thrower knows
|
|
111
|
+
* it — the method and path, which the message names.
|
|
112
|
+
*/
|
|
113
|
+
constructor(status, vendor, where) {
|
|
114
|
+
const request = where.method !== undefined && where.path !== undefined
|
|
115
|
+
? ` (${where.method.toUpperCase()} ${where.path})`
|
|
116
|
+
: '';
|
|
117
|
+
super(status, `Request to ${where.service}${request} was blocked at its CDN/WAF (${vendor}) before reaching the API ` +
|
|
118
|
+
`(HTTP ${status}); the credential was not evaluated. This is usually a block on this host's IP address or request ` +
|
|
119
|
+
`fingerprint, not a bad token — re-signing in will not fix it.`);
|
|
120
|
+
this.name = 'EdgeBlockedError';
|
|
121
|
+
this.vendor = vendor;
|
|
122
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function headerOf(headers, name) {
|
|
126
|
+
if (headers === undefined)
|
|
127
|
+
return undefined;
|
|
128
|
+
if (typeof headers.get === 'function')
|
|
129
|
+
return headers.get(name) ?? undefined;
|
|
130
|
+
const wanted = name.toLowerCase();
|
|
131
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
132
|
+
if (key.toLowerCase() === wanted)
|
|
133
|
+
return value;
|
|
134
|
+
}
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
/** How much of a body {@link detectEdgeBlock} reads; see the comment there. */
|
|
138
|
+
const EDGE_BLOCK_SCAN_MAX = 8 * 1024;
|
|
139
|
+
/**
|
|
140
|
+
* Each vendor's DEFINITIVE marker — a string only that edge's own refusal page
|
|
141
|
+
* carries. Ordered as checked.
|
|
142
|
+
*
|
|
143
|
+
* `anyStatus: false` markers count only on a 4xx (or when no status is known):
|
|
144
|
+
* CloudFront shows the same "request could not be satisfied" page on its 502
|
|
145
|
+
* and 504, and Cloudflare its `cf-error-details` on 52x — and those say the
|
|
146
|
+
* ORIGIN is down, which the `http` diagnosis already describes, not that this
|
|
147
|
+
* host is blocked. A challenge is a block at whatever status it arrives with.
|
|
148
|
+
*
|
|
149
|
+
* Deliberately absent:
|
|
150
|
+
*
|
|
151
|
+
* - `x-cache: Error from cloudfront` and `via: … (CloudFront)`: CloudFront
|
|
152
|
+
* stamps those on EVERY error it relays, the origin's own 401 included, so
|
|
153
|
+
* they would turn a genuinely rejected credential into a "CDN block".
|
|
154
|
+
* - a bare `Access Denied` or `403 Forbidden` title: origins serve those too.
|
|
155
|
+
* - "an HTML body on an API endpoint": a sign-in page is exactly that, and it
|
|
156
|
+
* is the `session_expired` case, not this one.
|
|
157
|
+
*
|
|
158
|
+
* The CloudFront rule must hold on the page's TITLE alone, because
|
|
159
|
+
* `formatApiError` cuts a body at 500 characters and the page's
|
|
160
|
+
* `Generated by cloudfront` footer is past the cut.
|
|
161
|
+
*/
|
|
162
|
+
const EDGE_BLOCK_MARKERS = [
|
|
163
|
+
{
|
|
164
|
+
vendor: 'Cloudflare',
|
|
165
|
+
anyStatus: true,
|
|
166
|
+
test: (b) => isCloudflareChallenge(b),
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
vendor: 'CloudFront',
|
|
170
|
+
anyStatus: false,
|
|
171
|
+
test: (b) => /ERROR:\s*The request could not be satisfied/i.test(b) || /Generated by cloudfront \(CloudFront\)/i.test(b),
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
vendor: 'Cloudflare',
|
|
175
|
+
anyStatus: false,
|
|
176
|
+
test: (b) => /<title[^>]{0,40}>\s*Attention Required! \| Cloudflare/i.test(b) || /id=["']cf-error-details["']/i.test(b),
|
|
177
|
+
},
|
|
178
|
+
{ vendor: 'Akamai', anyStatus: false, test: (b) => /errors(?:\.|.)edgesuite(?:\.|.)net/i.test(b) },
|
|
179
|
+
{
|
|
180
|
+
vendor: 'Imperva',
|
|
181
|
+
anyStatus: false,
|
|
182
|
+
test: (b) => /Incapsula incident ID/i.test(b) || /_Incapsula_Resource/.test(b),
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
/**
|
|
186
|
+
* Was this response refused by a CDN/WAF in front of the API rather than by
|
|
187
|
+
* the API itself? Returns the vendor, or `null` when nothing definitive says
|
|
188
|
+
* so — a `null` is "not shown to be an edge block", never "the origin
|
|
189
|
+
* answered". Reads `cf-mitigated` from the headers (Cloudflare sets it only on
|
|
190
|
+
* a response it mitigated) and each vendor's own page markers from the body,
|
|
191
|
+
* which may be a truncated excerpt such as an error message.
|
|
192
|
+
*
|
|
193
|
+
* Used by {@link createApiClient} to throw {@link EdgeBlockedError}, and by the
|
|
194
|
+
* credential healthcheck so a block is not reported as a rejected credential.
|
|
195
|
+
*/
|
|
196
|
+
export function detectEdgeBlock(input) {
|
|
197
|
+
if (headerOf(input.headers, 'cf-mitigated') !== undefined)
|
|
198
|
+
return { vendor: 'Cloudflare' };
|
|
199
|
+
// Only the head of the body is read. A refusal page is a few KB with its
|
|
200
|
+
// marker near the top, while this runs on EVERY non-2xx body a client sees,
|
|
201
|
+
// and `isCloudflareChallenge`'s `<title[^>]*>` is quadratic over a body of
|
|
202
|
+
// repeated `<title` — the one-response DoS the redaction chain guards against.
|
|
203
|
+
const body = input.body?.slice(0, EDGE_BLOCK_SCAN_MAX);
|
|
204
|
+
if (!body)
|
|
205
|
+
return null;
|
|
206
|
+
const refusal = input.status === undefined || (input.status >= 400 && input.status < 500);
|
|
207
|
+
for (const marker of EDGE_BLOCK_MARKERS) {
|
|
208
|
+
if ((marker.anyStatus || refusal) && marker.test(body))
|
|
209
|
+
return { vendor: marker.vendor };
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The error a non-2xx response becomes: {@link EdgeBlockedError} when an edge
|
|
215
|
+
* refused it, otherwise the {@link ApiError} the client has always thrown.
|
|
216
|
+
*/
|
|
217
|
+
function httpError(res, text, method, path, service) {
|
|
218
|
+
const edge = detectEdgeBlock({ body: text, headers: res.headers, status: res.status });
|
|
219
|
+
if (edge)
|
|
220
|
+
return new EdgeBlockedError(res.status, edge.vendor, { service, method, path });
|
|
221
|
+
return new ApiError(res.status, formatApiError(res.status, method, path, text, { service }));
|
|
222
|
+
}
|
|
93
223
|
function hostOf(baseUrl) {
|
|
94
224
|
try {
|
|
95
225
|
return new URL(baseUrl).host;
|
|
@@ -105,7 +235,8 @@ function hostOf(baseUrl) {
|
|
|
105
235
|
* Consolidates the structurally-identical `client.ts#doRequest` across
|
|
106
236
|
* splitwise/tempo/ioffice/app-store-connect/zola. The retry/401/429 behavior is
|
|
107
237
|
* the hardened superset: 401 → {@link UnauthorizedError} (never echoing the
|
|
108
|
-
* token)
|
|
238
|
+
* token) unless the 401 is a CDN/WAF refusal page, which is an
|
|
239
|
+
* {@link EdgeBlockedError} like any other blocked status, 429 → sleep(`delayMs`) and replay up to `count` times then
|
|
109
240
|
* {@link RateLimitedError}, 204/empty → `undefined`, other non-2xx →
|
|
110
241
|
* {@link formatApiError}.
|
|
111
242
|
*/
|
|
@@ -277,20 +408,48 @@ export function createApiClient(opts) {
|
|
|
277
408
|
return current;
|
|
278
409
|
}
|
|
279
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* The error a 401 becomes. Usually {@link UnauthorizedError} (or the
|
|
413
|
+
* consumer's `onUnauthorized`), exactly as before — but CloudFront, Akamai
|
|
414
|
+
* and Imperva sometimes refuse at the edge WITH a 401, and calling that a
|
|
415
|
+
* bad token sends somebody to re-sign in with a credential nothing ever
|
|
416
|
+
* looked at. So the refusal is checked for first, by the same
|
|
417
|
+
* {@link detectEdgeBlock} rule every other status gets.
|
|
418
|
+
*
|
|
419
|
+
* A JSON 401 is the API's own answer, so its body is not read at all (no
|
|
420
|
+
* refusal page is JSON); `cf-mitigated` is still honoured from the headers.
|
|
421
|
+
* Any other body is read under the request's timeout, and a body that cannot
|
|
422
|
+
* be read is treated as no evidence of a block. The body is only scanned,
|
|
423
|
+
* never echoed, so the token cannot leak through it.
|
|
424
|
+
*/
|
|
425
|
+
async function unauthorizedOrEdge(attempt, method, path) {
|
|
426
|
+
const res = attempt.res;
|
|
427
|
+
let text = '';
|
|
428
|
+
if (/json/i.test(res.headers.get('content-type') ?? '')) {
|
|
429
|
+
attempt.done();
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
text = await readBody(attempt, (r) => r.text()).catch(() => '');
|
|
433
|
+
}
|
|
434
|
+
const edge = detectEdgeBlock({ body: text, headers: res.headers, status: res.status });
|
|
435
|
+
if (edge)
|
|
436
|
+
return new EdgeBlockedError(res.status, edge.vendor, { service, method, path });
|
|
437
|
+
return unauthorized();
|
|
438
|
+
}
|
|
280
439
|
async function fetchJson(method, path, opt = {}) {
|
|
281
440
|
const attempt = await send(method, path, opt);
|
|
282
441
|
const res = attempt.res;
|
|
283
|
-
if (res.status === 401 || res.status === 429 || res.status === 204)
|
|
284
|
-
attempt.done();
|
|
285
442
|
if (res.status === 401)
|
|
286
|
-
throw
|
|
443
|
+
throw await unauthorizedOrEdge(attempt, method, path);
|
|
444
|
+
if (res.status === 429 || res.status === 204)
|
|
445
|
+
attempt.done();
|
|
287
446
|
if (res.status === 429)
|
|
288
447
|
throw rateLimited();
|
|
289
448
|
if (res.status === 204)
|
|
290
449
|
return undefined;
|
|
291
450
|
const text = await readBody(attempt, (r) => r.text());
|
|
292
451
|
if (!res.ok) {
|
|
293
|
-
throw
|
|
452
|
+
throw httpError(res, text, method, path, service);
|
|
294
453
|
}
|
|
295
454
|
if (text.length === 0)
|
|
296
455
|
return undefined;
|
|
@@ -300,15 +459,15 @@ export function createApiClient(opts) {
|
|
|
300
459
|
const headers = { Accept: 'text/html,*/*', ...opt.headers };
|
|
301
460
|
const attempt = await send(method, path, { ...opt, headers });
|
|
302
461
|
const res = attempt.res;
|
|
303
|
-
if (res.status === 401 || res.status === 429)
|
|
304
|
-
attempt.done();
|
|
305
462
|
if (res.status === 401)
|
|
306
|
-
throw
|
|
463
|
+
throw await unauthorizedOrEdge(attempt, method, path);
|
|
464
|
+
if (res.status === 429)
|
|
465
|
+
attempt.done();
|
|
307
466
|
if (res.status === 429)
|
|
308
467
|
throw rateLimited();
|
|
309
468
|
const text = await readBody(attempt, (r) => r.text());
|
|
310
469
|
if (!res.ok) {
|
|
311
|
-
throw
|
|
470
|
+
throw httpError(res, text, method, path, service);
|
|
312
471
|
}
|
|
313
472
|
return text;
|
|
314
473
|
}
|
|
@@ -316,10 +475,10 @@ export function createApiClient(opts) {
|
|
|
316
475
|
const headers = { Accept: '*/*', ...opt.headers };
|
|
317
476
|
const attempt = await send(method, path, { ...opt, headers });
|
|
318
477
|
const res = attempt.res;
|
|
319
|
-
if (res.status === 401 || res.status === 429)
|
|
320
|
-
attempt.done();
|
|
321
478
|
if (res.status === 401)
|
|
322
|
-
throw
|
|
479
|
+
throw await unauthorizedOrEdge(attempt, method, path);
|
|
480
|
+
if (res.status === 429)
|
|
481
|
+
attempt.done();
|
|
323
482
|
if (res.status === 429)
|
|
324
483
|
throw rateLimited();
|
|
325
484
|
if (!res.ok) {
|
|
@@ -328,7 +487,7 @@ export function createApiClient(opts) {
|
|
|
328
487
|
throw err;
|
|
329
488
|
return '';
|
|
330
489
|
});
|
|
331
|
-
throw
|
|
490
|
+
throw httpError(res, text, method, path, service);
|
|
332
491
|
}
|
|
333
492
|
const bytes = new Uint8Array(await readBody(attempt, (r) => r.arrayBuffer()));
|
|
334
493
|
return {
|
package/dist/http/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAuKnD,MAAM,aAAa,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE/D,MAAM,YAAY,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1F,uFAAuF;AACvF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,MAAM,GAAG,GAAG,CAAC;IACtB,YAAY,OAAe;QACzB,KAAK,CAAC,2BAA2B,OAAO,+CAA+C,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,MAAM,GAAG,GAAG,CAAC;IACtB,YAAY,OAAe;QACzB,KAAK,CAAC,yBAAyB,OAAO,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,SAAS,CAAS;IAC3B,YAAY,OAAe,EAAE,SAAiB;QAC5C,KAAK,CAAC,cAAc,OAAO,oBAAoB,SAAS,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,MAAM,CAAS;IACxB,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,SAAS,MAAM,CAAC,OAAe;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC;IACzC,MAAM,YAAY,GAAG,GAAU,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACjH,MAAM,WAAW,GAAG,GAAU,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7G,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAE/B,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,UAAU,GAAG,CAAC,KAAyB,EAA0B,EAAE,CACvE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;IAiBxG,gFAAgF;IAChF,sEAAsE;IACtE,+BAA+B;IAC/B,KAAK,UAAU,WAAW,CAAC,GAAgD;QACzE,0DAA0D;QAC1D,uEAAuE;QACvE,mEAAmE;QACnE,iEAAiE;QACjE,kEAAkE;QAClE,wDAAwD;QACxD,EAAE;QACF,wEAAwE;QACxE,qEAAqE;QACrE,0DAA0D;QAC1D,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,qEAAqE;YACrE,oEAAoE;YACpE,kEAAkE;YAClE,kEAAkE;YAClE,kCAAkC;YAClC,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnF,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE;gBACrG,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,2EAA2E;QAC3E,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,QAAQ,CAAI,OAAgB,EAAE,IAAmC;QAC9E,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,SAAS,GAAG,CAAC,GAAuE,EAAE;QAC1F,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC;IAErC;;;;;;;OAOG;IACH,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;QAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,CAAC,+CAA+C;QACzF,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7G,CAAC;QACD,IACE,MAAM,CAAC,MAAM,KAAK,UAAU;YAC5B,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,QAAQ;YACvC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,QAAQ,EACvC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,uBAAuB,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,UAAU,IAAI;gBAC7G,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,UAAU,IAAI,CAAC,MAAc,EAAE,IAAY,EAAE,GAAmB;QACnE,iFAAiF;QACjF,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;QAC3D,MAAM,OAAO,GAAkC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/H,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,SAAS,GAAG,CAAC,KAAyB,EAAE,MAAoB,EAAqB,EAAE,CACvF,OAAO,CAAC,GAAG,EAAE;YACX,MAAM;YACN,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,IAAI,CAAC,WAAW;gBACnB,GAAG,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC;gBACjC,GAAG,GAAG,CAAC,OAAO;aACf;YACD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,QAAQ;SACZ,CAAC,CAAC;QAEL,+EAA+E;QAC/E,4EAA4E;QAC5E,0CAA0C;QAC1C,MAAM,IAAI,GAAG,GAAqB,EAAE,CAClC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,IAAI,CAAC,YAAY;YACf,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,CAC9E,CAAC;QAEJ,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,iFAAiF;QACjF,SAAS,CAAC;YACR,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAExB,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,CAAC;gBACb,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe;oBACjC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;wBAChD,SAAS,EAAE,KAAK,CAAC,OAAO;wBACxB,KAAK,EAAE,KAAK,CAAC,eAAe,IAAI,MAAM;qBACvC,CAAC;oBACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,SAAS,CAAI,MAAc,EAAE,IAAY,EAAE,GAAG,GAAmB,EAAE;QAChF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAExB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACnF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,YAAY,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,WAAW,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAE9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAc,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,GAAG,GAAmB,EAAE;QAC7E,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAExB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,YAAY,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,WAAW,EAAE,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,GAAG,GAAmB,EAAE;QAC5E,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAExB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,YAAY,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,WAAW,EAAE,CAAC;QAE5C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC3E,IAAI,GAAG,YAAY,mBAAmB;oBAAE,MAAM,GAAG,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC5C,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK;SACN,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;oBAAE,SAAS;gBACjE,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAO,EACP,cAA4B;IAE5B,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAcD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,MAAc,EACd,IAAY,EACZ,SAAiB,EACjB,IAAI,GAA0B,EAAE;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,OAAO,UAAU,MAAM,QAAQ,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,oBAAoB,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAgBD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiC;IAC/D,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAkBD,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAChE,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAEtD;;sEAEsE;AACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,EAAE,GAAG,qBAAqB,CAAC;IAC1F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mFAAmF;AACnF,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9F,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,gBAAsD;IACnF,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,gBAAgB,CAAC,KAAK,CAAC;YAAE,SAAS;QACtC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QACnC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS,CAAC,kCAAkC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS,CAAC,6BAA6B;QACxD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAeD,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,SAAS;IACH,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,8EAA8E;IAC9E,MAAM,CAAC,UAA2B;QAChC,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,8CAA8C;IAC9C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;CACF;AAED,sFAAsF;AACtF,SAAS,cAAc,CAAC,MAAc;IACpC,4EAA4E;IAC5E,OAAO,MAAM;SACV,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjE,OAAO,OAAkC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAYD,2EAA2E;AAC3E,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC;IACtG,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC;IAC/B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACzF,CAAC;IACD,IAAI,SAAS,IAAI,oBAAoB,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS;YACT,OAAO,EAAE,oBAAoB,SAAS,kBAAkB;SACzD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC;AA6CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAU,EACV,MAAqD,EACrD,IAAkC;IAElC,MAAM,KAAK,GAAyB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,MAAM,OAAO,GAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,OAAO,GAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAErD,wDAAwD;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAkC,CAAC,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,KAAK,GACT,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAEnB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;YACvC,SAAS,CAAC;gBACR,mEAAmE;gBACnE,uEAAuE;gBACvE,sEAAsE;gBACtE,8DAA8D;gBAC9D,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC;gBACrB,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;oBAAE,OAAO;gBAClC,qEAAqE;gBACrE,sEAAsE;gBACtE,oDAAoD;gBACpD,IAAI,CAAC;oBACH,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACxB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBACtB,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,mEAAmE;YACnE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAO,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1F,OAAO,CACL,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACxB,IAAI,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,KAAK,CAAM,CAAC;gBAC7C,IAAI,OAAO,CAAC,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEjD,0EAA0E;QAC1E,0DAA0D;QAC1D,KAAK,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"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"}
|