@vertesia/api-fetch-client 1.4.0-dev.20260615.051508Z → 1.4.0-dev.20260629.130134Z
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 +26 -0
- package/lib/base.d.ts +34 -0
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js +112 -5
- package/lib/base.js.map +1 -1
- package/lib/client.d.ts +1 -0
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +3 -0
- package/lib/client.js.map +1 -1
- package/package.json +7 -6
- package/src/base.ts +142 -7
- package/src/client.ts +4 -0
package/README.md
CHANGED
|
@@ -165,6 +165,29 @@ await client.post('/workflow/execute', {
|
|
|
165
165
|
await client.get('/no-retry', { retryPolicy: false });
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
## Timeouts
|
|
169
|
+
|
|
170
|
+
No request timeout is applied by default. Set a default on the client (applies to every request) and/or override it per request. The timeout aborts the **whole** request — connection, response headers, **and** body consumption (JSON parse) — using a browser-standard `AbortSignal`, so it behaves the same in the browser and in Node (no `undici`-specific configuration).
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// Default timeout (ms) for every request on this client.
|
|
174
|
+
const client = new FetchClient('https://api.example.com').withTimeout(60_000);
|
|
175
|
+
|
|
176
|
+
// Override for a single slow request (e.g. one that blocks on an LLM).
|
|
177
|
+
await client.post('/long-running', { payload, timeoutMs: 30 * 60_000 });
|
|
178
|
+
|
|
179
|
+
// Disable the client default for one request.
|
|
180
|
+
await client.get('/no-timeout', { timeoutMs: false });
|
|
181
|
+
|
|
182
|
+
// Combine with a caller-supplied AbortSignal — whichever aborts first wins.
|
|
183
|
+
await client.get('/data', { signal: controller.signal, timeoutMs: 5_000 });
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
- `timeoutMs`: a positive number sets the timeout; `false`/`null`/`0` disables it for that request (overriding the client default); omitted falls back to the client default (`withTimeout` / `defaultTimeoutMs`).
|
|
187
|
+
- On timeout the request rejects as a connection failure. When a retry policy is enabled, a timed-out attempt is retried like any other connection error, with a **fresh deadline per attempt**.
|
|
188
|
+
- SSE requests (`reader: 'sse'`) are never given a total-request timeout — they are long-lived by design; apply your own idle/close handling to the stream.
|
|
189
|
+
- `ApiTopic` sub-clients inherit the parent client's default timeout, so setting it once on the root client covers all topics.
|
|
190
|
+
|
|
168
191
|
### Custom Error Factory
|
|
169
192
|
|
|
170
193
|
Transform errors before they're thrown:
|
|
@@ -281,6 +304,9 @@ The main client class for making HTTP requests.
|
|
|
281
304
|
| `payload` | `object \| BodyInit` | Request body |
|
|
282
305
|
| `reader` | `'sse' \| function` | Custom response reader |
|
|
283
306
|
| `jsonPayload` | `boolean` | Auto-serialize payload as JSON (default: true) |
|
|
307
|
+
| `retryPolicy` | `IRequestRetryPolicy \| false` | Per-request retry policy; `false` disables the client default |
|
|
308
|
+
| `timeoutMs` | `number \| false \| null` | Per-request timeout (ms). Positive sets it; `false`/`null`/`0` disables; omitted uses the client default |
|
|
309
|
+
| `signal` | `AbortSignal` | Caller abort signal, merged with the timeout signal |
|
|
284
310
|
|
|
285
311
|
### Error Classes
|
|
286
312
|
|
package/lib/base.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export interface IRequestRetryPolicy {
|
|
|
15
15
|
* HTTP response statuses that should be retried. Defaults to 502, 503, and 504.
|
|
16
16
|
*/
|
|
17
17
|
statuses?: number[];
|
|
18
|
+
/**
|
|
19
|
+
* Also retry any 5xx whose body is not JSON — e.g. an HTML error page from a load balancer,
|
|
20
|
+
* gateway, or Cloud Run ("no available instance" / "try again in 30 seconds"). These originate
|
|
21
|
+
* at the edge, not the application (which serializes its errors as JSON), so they are transient
|
|
22
|
+
* and safe to retry even when the exact status (often 500) is not in `statuses`. Defaults to true.
|
|
23
|
+
*/
|
|
24
|
+
retryNonJsonServerErrors?: boolean;
|
|
18
25
|
/**
|
|
19
26
|
* Retry network failures thrown by fetch. Defaults to true.
|
|
20
27
|
*/
|
|
@@ -36,6 +43,7 @@ type NormalizedRetryPolicy = {
|
|
|
36
43
|
attempts: number;
|
|
37
44
|
methods: Set<string>;
|
|
38
45
|
statuses: Set<number>;
|
|
46
|
+
retryNonJsonServerErrors: boolean;
|
|
39
47
|
retryOnConnectionError: boolean;
|
|
40
48
|
baseDelayMs: number;
|
|
41
49
|
maxDelayMs: number;
|
|
@@ -55,6 +63,18 @@ export interface IRequestParams {
|
|
|
55
63
|
* Set to false to disable a client-level retry policy for this request.
|
|
56
64
|
*/
|
|
57
65
|
retryPolicy?: IRequestRetryPolicy | false | null;
|
|
66
|
+
/**
|
|
67
|
+
* Per-request timeout in milliseconds. Aborts the whole request — connection, response headers,
|
|
68
|
+
* AND body consumption (JSON parse) — via a browser-standard AbortSignal. A positive number sets
|
|
69
|
+
* the timeout; `false`/`null`/`0` disables it for this request (overriding any client default).
|
|
70
|
+
* When omitted, the client-level default (`withTimeout` / `defaultTimeoutMs`) applies.
|
|
71
|
+
* Not applied to SSE (`reader: 'sse'`) requests, which are long-lived by design.
|
|
72
|
+
*/
|
|
73
|
+
timeoutMs?: number | false | null;
|
|
74
|
+
/**
|
|
75
|
+
* Caller-supplied AbortSignal. Merged with the timeout signal — whichever aborts first wins.
|
|
76
|
+
*/
|
|
77
|
+
signal?: AbortSignal;
|
|
58
78
|
}
|
|
59
79
|
export interface IRequestParamsWithPayload extends IRequestParams {
|
|
60
80
|
payload?: object | BodyInit | null;
|
|
@@ -66,6 +86,7 @@ export declare abstract class ClientBase {
|
|
|
66
86
|
errorFactory: (err: RequestError) => Error;
|
|
67
87
|
verboseErrors: boolean;
|
|
68
88
|
retryPolicy?: IRequestRetryPolicy;
|
|
89
|
+
defaultTimeoutMs?: number;
|
|
69
90
|
abstract get headers(): Record<string, string>;
|
|
70
91
|
constructor(baseUrl: string, fetchImpl?: FETCH_FN | Promise<FETCH_FN>);
|
|
71
92
|
/**
|
|
@@ -75,6 +96,19 @@ export declare abstract class ClientBase {
|
|
|
75
96
|
throwError(err: RequestError): never;
|
|
76
97
|
withRetryPolicy(policy?: IRequestRetryPolicy | null): this;
|
|
77
98
|
getRetryPolicy(): IRequestRetryPolicy | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Set a default request timeout (ms) applied to every request unless overridden per-request via
|
|
101
|
+
* `timeoutMs`. Pass `false`/`null`/`0` to clear it. The timeout aborts the whole request
|
|
102
|
+
* (connection + response headers + body consumption) via AbortSignal.
|
|
103
|
+
*/
|
|
104
|
+
withTimeout(timeoutMs?: number | false | null): this;
|
|
105
|
+
getTimeout(): number | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Resolve the effective timeout for a request: per-request `timeoutMs` wins (a positive number
|
|
108
|
+
* sets it; `false`/`null`/`0` disables it), otherwise the client default applies. SSE streams are
|
|
109
|
+
* never given a total-request timeout.
|
|
110
|
+
*/
|
|
111
|
+
protected resolveTimeout(params: IRequestParams | undefined): number | undefined;
|
|
78
112
|
/**
|
|
79
113
|
* Resolve a path to a full URL. If the path is already an absolute URL
|
|
80
114
|
* (starts with http:// or https://), it is returned as-is.
|
package/lib/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAe,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,KAAK,eAAe,EAAO,MAAM,gBAAgB,CAAC;AAG3D,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrF,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAElG,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,qBAAqB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAYF,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAUxC,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACnD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,mBAAmB,GAAG,KAAK,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/lib/base.js
CHANGED
|
@@ -29,6 +29,19 @@ function isInvalidJsonPayload(payload) {
|
|
|
29
29
|
function isReplayableBody(body) {
|
|
30
30
|
return !body || typeof ReadableStream === 'undefined' || !(body instanceof ReadableStream);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* True for a 5xx whose Content-Type is not JSON. The application serializes its errors as JSON, so a
|
|
34
|
+
* non-JSON 5xx (HTML/text, or no content-type) is an edge/LB/gateway failure — e.g. a Cloud Run
|
|
35
|
+
* "no available instance" or GFE "try again in 30 seconds" page — which is transient and retryable.
|
|
36
|
+
* Reads only headers (no body consumption), so it is safe to call before deciding to retry.
|
|
37
|
+
*/
|
|
38
|
+
function isNonJsonServerError(res) {
|
|
39
|
+
if (res.status < 500) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const contentType = (res.headers.get('content-type') ?? '').toLowerCase();
|
|
43
|
+
return !contentType.includes('json');
|
|
44
|
+
}
|
|
32
45
|
function normalizeRetryPolicy(policy) {
|
|
33
46
|
const attempts = Math.max(1, Math.floor(policy.attempts ?? DEFAULT_RETRY_ATTEMPTS));
|
|
34
47
|
const baseDelayMs = Math.max(0, policy.baseDelayMs ?? DEFAULT_RETRY_BASE_DELAY_MS);
|
|
@@ -37,6 +50,7 @@ function normalizeRetryPolicy(policy) {
|
|
|
37
50
|
attempts,
|
|
38
51
|
methods: new Set((policy.methods ?? DEFAULT_RETRY_METHODS).map((method) => method.toUpperCase())),
|
|
39
52
|
statuses: new Set(policy.statuses ?? DEFAULT_RETRY_STATUSES),
|
|
53
|
+
retryNonJsonServerErrors: policy.retryNonJsonServerErrors ?? true,
|
|
40
54
|
retryOnConnectionError: policy.retryOnConnectionError ?? true,
|
|
41
55
|
baseDelayMs,
|
|
42
56
|
maxDelayMs,
|
|
@@ -66,6 +80,55 @@ function retryDelayMs(policy, attempt, res) {
|
|
|
66
80
|
function toError(err) {
|
|
67
81
|
return err instanceof Error ? err : new Error(String(err));
|
|
68
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* True for an AbortSignal-driven failure (caller abort or our timeout). Checks `name` rather than
|
|
85
|
+
* `instanceof Error` because runtimes surface these as a `DOMException` (`TimeoutError`/`AbortError`),
|
|
86
|
+
* which is not always an `Error` subclass in browsers.
|
|
87
|
+
*/
|
|
88
|
+
function isAbortError(err) {
|
|
89
|
+
return (typeof err === 'object' &&
|
|
90
|
+
err !== null &&
|
|
91
|
+
'name' in err &&
|
|
92
|
+
(err.name === 'TimeoutError' || err.name === 'AbortError'));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Browser + Node safe `AbortSignal.timeout(ms)`, with a fallback for runtimes that lack it.
|
|
96
|
+
*/
|
|
97
|
+
function timeoutSignal(ms) {
|
|
98
|
+
const timeoutFn = AbortSignal.timeout;
|
|
99
|
+
if (typeof timeoutFn === 'function') {
|
|
100
|
+
return timeoutFn(ms);
|
|
101
|
+
}
|
|
102
|
+
const controller = new AbortController();
|
|
103
|
+
setTimeout(() => controller.abort(new DOMException('The operation timed out', 'TimeoutError')), ms);
|
|
104
|
+
return controller.signal;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Merge abort signals (caller + timeout). Uses the standard `AbortSignal.any` when available, with a
|
|
108
|
+
* manual fallback for older runtimes. Returns undefined when there is nothing to combine.
|
|
109
|
+
*/
|
|
110
|
+
function combineAbortSignals(signals) {
|
|
111
|
+
const list = signals.filter((s) => !!s);
|
|
112
|
+
if (list.length === 0) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
if (list.length === 1) {
|
|
116
|
+
return list[0];
|
|
117
|
+
}
|
|
118
|
+
const anyFn = AbortSignal.any;
|
|
119
|
+
if (typeof anyFn === 'function') {
|
|
120
|
+
return anyFn(list);
|
|
121
|
+
}
|
|
122
|
+
const controller = new AbortController();
|
|
123
|
+
for (const s of list) {
|
|
124
|
+
if (s.aborted) {
|
|
125
|
+
controller.abort(s.reason);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
s.addEventListener('abort', () => controller.abort(s.reason), { once: true });
|
|
129
|
+
}
|
|
130
|
+
return controller.signal;
|
|
131
|
+
}
|
|
69
132
|
async function discardBody(res) {
|
|
70
133
|
try {
|
|
71
134
|
await res.body?.cancel();
|
|
@@ -80,6 +143,7 @@ export class ClientBase {
|
|
|
80
143
|
errorFactory = (err) => err;
|
|
81
144
|
verboseErrors = true;
|
|
82
145
|
retryPolicy;
|
|
146
|
+
defaultTimeoutMs;
|
|
83
147
|
constructor(baseUrl, fetchImpl) {
|
|
84
148
|
this.baseUrl = removeTrailingSlash(baseUrl);
|
|
85
149
|
this._fetch = fetchPromise(fetchImpl);
|
|
@@ -98,6 +162,37 @@ export class ClientBase {
|
|
|
98
162
|
getRetryPolicy() {
|
|
99
163
|
return this.retryPolicy;
|
|
100
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Set a default request timeout (ms) applied to every request unless overridden per-request via
|
|
167
|
+
* `timeoutMs`. Pass `false`/`null`/`0` to clear it. The timeout aborts the whole request
|
|
168
|
+
* (connection + response headers + body consumption) via AbortSignal.
|
|
169
|
+
*/
|
|
170
|
+
withTimeout(timeoutMs) {
|
|
171
|
+
this.defaultTimeoutMs = typeof timeoutMs === 'number' && timeoutMs > 0 ? timeoutMs : undefined;
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
getTimeout() {
|
|
175
|
+
return this.defaultTimeoutMs;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Resolve the effective timeout for a request: per-request `timeoutMs` wins (a positive number
|
|
179
|
+
* sets it; `false`/`null`/`0` disables it), otherwise the client default applies. SSE streams are
|
|
180
|
+
* never given a total-request timeout.
|
|
181
|
+
*/
|
|
182
|
+
resolveTimeout(params) {
|
|
183
|
+
if (params?.reader === 'sse') {
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
const requestTimeout = params?.timeoutMs;
|
|
187
|
+
if (requestTimeout === false || requestTimeout === null) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
if (typeof requestTimeout === 'number') {
|
|
191
|
+
return requestTimeout > 0 ? requestTimeout : undefined;
|
|
192
|
+
}
|
|
193
|
+
const clientTimeout = this.getTimeout();
|
|
194
|
+
return clientTimeout && clientTimeout > 0 ? clientTimeout : undefined;
|
|
195
|
+
}
|
|
101
196
|
/**
|
|
102
197
|
* Resolve a path to a full URL. If the path is already an absolute URL
|
|
103
198
|
* (starts with http:// or https://), it is returned as-is.
|
|
@@ -186,6 +281,11 @@ export class ClientBase {
|
|
|
186
281
|
}
|
|
187
282
|
})
|
|
188
283
|
.catch((err) => {
|
|
284
|
+
// A timeout/abort during body consumption is a real failure — surface it instead of
|
|
285
|
+
// swallowing it into an error payload that would otherwise be returned as the result.
|
|
286
|
+
if (isAbortError(err)) {
|
|
287
|
+
throw err;
|
|
288
|
+
}
|
|
189
289
|
return {
|
|
190
290
|
status: res.status,
|
|
191
291
|
error: 'Unable to load response content',
|
|
@@ -247,12 +347,21 @@ export class ClientBase {
|
|
|
247
347
|
headers.accept = 'text/event-stream';
|
|
248
348
|
}
|
|
249
349
|
const normalizedMethod = method.toUpperCase();
|
|
350
|
+
// Resolved once; createRequestInit() then mints a FRESH timeout signal per attempt so each
|
|
351
|
+
// retry gets its own deadline. The signal is set on the Request, so it bounds the connection,
|
|
352
|
+
// the wait for response headers, AND body consumption (handleResponse reads res.text()).
|
|
353
|
+
const timeoutMs = this.resolveTimeout(params);
|
|
250
354
|
const createRequestInit = () => {
|
|
251
|
-
|
|
355
|
+
const signal = combineAbortSignals([params?.signal, timeoutMs ? timeoutSignal(timeoutMs) : undefined]);
|
|
356
|
+
const init = {
|
|
252
357
|
method: normalizedMethod,
|
|
253
358
|
headers: Object.assign({}, headers),
|
|
254
359
|
body: body,
|
|
255
360
|
};
|
|
361
|
+
if (signal) {
|
|
362
|
+
init.signal = signal;
|
|
363
|
+
}
|
|
364
|
+
return init;
|
|
256
365
|
};
|
|
257
366
|
const retryPolicy = this.resolveRetryPolicy(params);
|
|
258
367
|
const fetch = await this._fetch;
|
|
@@ -315,10 +424,8 @@ export class ClientBase {
|
|
|
315
424
|
return policy.attempts > 1 ? policy : undefined;
|
|
316
425
|
}
|
|
317
426
|
shouldRetryResponse(policy, method, attempt, replayableBody, res) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
policy.methods.has(method) &&
|
|
321
|
-
policy.statuses.has(res.status));
|
|
427
|
+
const retryableStatus = policy.statuses.has(res.status) || (policy.retryNonJsonServerErrors && isNonJsonServerError(res));
|
|
428
|
+
return attempt < policy.attempts - 1 && replayableBody && policy.methods.has(method) && retryableStatus;
|
|
322
429
|
}
|
|
323
430
|
shouldRetryConnectionError(policy, method, attempt, replayableBody) {
|
|
324
431
|
return (attempt < policy.attempts - 1 &&
|
package/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAqB,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAwB,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAsDzE,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1E,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AA2CD,MAAM,UAAU,YAAY,CAAC,SAAwC;IACjE,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACJ,wBAAwB;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,0BAA0B,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAA0B;IAChD,OAAO,CAAC,IAAI,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,YAAY,cAAc,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,GAAa;IACvC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1E,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA2B;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,sBAAsB,CAAC,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,IAAI,0BAA0B,CAAC,CAAC;IAC1F,OAAO;QACH,QAAQ;QACR,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACjG,QAAQ,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,sBAAsB,CAAC;QAC5D,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,IAAI;QACjE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,IAAI;QAC7D,WAAW;QACX,UAAU;QACV,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;KAChC,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,MAA6B,EAAE,OAAe,EAAE,GAAc;IAChF,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IAC3F,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrE,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IACzB,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAY;IAC9B,OAAO,CACH,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,CAAE,GAAyB,CAAC,IAAI,KAAK,cAAc,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,CAAC,CAC3G,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,EAAU;IAC7B,MAAM,SAAS,GAAI,WAAoE,CAAC,OAAO,CAAC;IAChG,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpG,OAAO,UAAU,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,OAAuC;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAI,WAAsE,CAAC,GAAG,CAAC;IAC1F,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM;QACV,CAAC;QACD,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAa;IACpC,IAAI,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACL,oEAAoE;IACxE,CAAC;AACL,CAAC;AAED,MAAM,OAAgB,UAAU;IAC5B,MAAM,CAAoB;IAC1B,OAAO,CAAS;IAChB,YAAY,GAAiC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;IAC1D,aAAa,GAAG,IAAI,CAAC;IACrB,WAAW,CAAuB;IAClC,gBAAgB,CAAU;IAI1B,YAAY,OAAe,EAAE,SAAwC;QACjE,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAiB;QACxB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,MAAmC;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,SAAS,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,SAAiC;QACzC,IAAI,CAAC,gBAAgB,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,MAAkC;QACvD,IAAI,MAAM,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,EAAE,SAAS,CAAC;QACzC,IAAI,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,aAAa,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAY;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAc,IAAY,EAAE,MAAuB;QAClD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAc,IAAY,EAAE,MAAuB;QAClD,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,MAAuB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAc,IAAY,EAAE,MAAkC;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAc,IAAY,EAAE,MAAkC;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,GAAW,EAAE,IAAiB;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,IAAa,EAAE,IAAc,IAAS,CAAC;IAE3D,iBAAiB,CAAC,GAAY,EAAE,GAAa,EAAE,OAAgB;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,OAAO,GAAG,iBAAiB,MAAM,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,qBAAqB,CAAC;YACrC,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC5C,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC9E,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAa;QAC/B,OAAO,GAAG;aACL,IAAI,EAAE;aACN,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,SAAS,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,OAAO;wBACH,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,KAAK,EAAE,0BAA0B;wBACjC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACzD,IAAI,EAAE,IAAI;qBACb,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,oFAAoF;YACpF,sFAAsF;YACtF,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,GAAG,CAAC;YACd,CAAC;YACD,OAAO;gBACH,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,iCAAiC;gBACxC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC5D,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,cAAc,CACV,GAAY,EACZ,GAAa,EACb,MAA6C;QAE7C,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1B,OAAO,GAAG,CAAC,GAAG,CAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAmB,CAAC;YAC3D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACT,OAAO,OAAY,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,MAAc,EAAE,IAAY,EAAE,MAAkC;QACvF,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,GAAG,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC;QACtC,IAAI,aAAa,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QACD,IAAI,IAA0B,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBACzC,IAAI,GAAG,OAAmB,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBACjD,CAAC;YACL,CAAC;QACL,CAAC;QACD,wEAAwE;QACxE,IAAI,MAAM,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,GAAG,mBAAmB,CAAC;QACzC,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9C,2FAA2F;QAC3F,8FAA8F;QAC9F,yFAAyF;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,GAAgB,EAAE;YACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACvG,MAAM,IAAI,GAAgB;gBACtB,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;gBACnC,IAAI,EAAE,IAAI;aACb,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC/D,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,OAA4B,CAAC;QACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC/D,OAAO,GAAG,GAAG,CAAC;YACd,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACD,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;oBAC3F,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACjD,SAAS;YACb,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxF,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtD,SAAS;YACb,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,CACX,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,gCAAgC,gBAAgB,IAAI,GAAG,EAAE,CAAC,CAAC,CACrG,CAAC;QACN,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,gBAAgB,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IAES,kBAAkB,CAAC,MAA6C;QACtE,IAAI,MAAM,EAAE,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE,WAAW,KAAK,KAAK,IAAI,MAAM,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5F,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,EAAE,WAAW,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,oBAAoB,CAAC;YAChC,GAAG,YAAY;YACf,GAAG,aAAa;SACnB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAEO,mBAAmB,CACvB,MAA6B,EAC7B,MAAc,EACd,OAAe,EACf,cAAuB,EACvB,GAAa;QAEb,MAAM,eAAe,GACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,OAAO,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,cAAc,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC;IAC5G,CAAC;IAEO,0BAA0B,CAC9B,MAA6B,EAC7B,MAAc,EACd,OAAe,EACf,cAAuB;QAEvB,OAAO,CACH,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC;YAC7B,cAAc;YACd,MAAM,CAAC,sBAAsB;YAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAC7B,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,MAA6B,EAAE,OAAe,EAAE,GAAc;QAClF,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACZ,MAAc,EACd,IAAY,EACZ,MAA6C,EAC7C,OAAyC;QAEzC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;YAC7C,GAAG,MAAM;YACT,MAAM,EAAE,KAAK;SAChB,CAAC,CAAoC,CAAC;QAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,SAAsC,CAAC;QAE3C,IAAI,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;gBACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,SAAS,GAAG,KAAK,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAkB,EAAE,IAAkB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ"}
|
package/lib/client.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export declare abstract class ApiTopic extends ClientBase {
|
|
|
30
30
|
handleResponse<T = unknown>(req: Request, res: Response, params: IRequestParamsWithPayload | undefined): T | Promise<T>;
|
|
31
31
|
handleFetchResponse(req: Request, res: Response): void;
|
|
32
32
|
getRetryPolicy(): import("./base.js").IRequestRetryPolicy | undefined;
|
|
33
|
+
getTimeout(): number | undefined;
|
|
33
34
|
get headers(): Record<string, string>;
|
|
34
35
|
}
|
|
35
36
|
//# sourceMappingURL=client.d.ts.map
|
package/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqBhD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAE,SAAQ,UAAU;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnD,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAER,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMrE,IAAI,cAAc,2BAMjB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAKxD,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,KAAK,GAExB,CAAC;IAG/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAMZ,CAAC;IAG/B,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAQb,CAAC;IAG/B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAQ1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;IAelD,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;CAIzD;AAED,qBAAa,WAAY,SAAQ,mBAAmB,CAAC,WAAW,CAAC;CAAG;AAEpE,8BAAsB,QAAS,SAAQ,UAAU;IAElC,MAAM,EAAE,UAAU;gBAAlB,MAAM,EAAE,UAAU,EACzB,QAAQ,EAAE,MAAM;IAUpB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,cAAc,CAAC,CAAC,GAAG,OAAO,EACtB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,yBAAyB,GAAG,SAAS,GAC9C,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAItD,cAAc;IAId,IAAI,OAAO,2BAEV;CACJ"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqBhD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAE,SAAQ,UAAU;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnD,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAER,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMrE,IAAI,cAAc,2BAMjB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAKxD,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,KAAK,GAExB,CAAC;IAG/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAMZ,CAAC;IAG/B,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAQb,CAAC;IAG/B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAQ1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;IAelD,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;CAIzD;AAED,qBAAa,WAAY,SAAQ,mBAAmB,CAAC,WAAW,CAAC;CAAG;AAEpE,8BAAsB,QAAS,SAAQ,UAAU;IAElC,MAAM,EAAE,UAAU;gBAAlB,MAAM,EAAE,UAAU,EACzB,QAAQ,EAAE,MAAM;IAUpB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,cAAc,CAAC,CAAC,GAAG,OAAO,EACtB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,yBAAyB,GAAG,SAAS,GAC9C,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI;IAItD,cAAc;IAId,UAAU;IAIV,IAAI,OAAO,2BAEV;CACJ"}
|
package/lib/client.js
CHANGED
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiD,MAAM,WAAW,CAAC;AAGtF,SAAS,wBAAwB,CAAC,OAAgC;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,eAAe,IAAI,OAAO,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB;IACzB,MAAM,OAAO,GAAG,UAIf,CAAC;IACF,OAAO,CACH,OAAO,OAAO,CAAC,MAAM,KAAK,WAAW;QACrC,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ;YAChD,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,QAAQ;YAClD,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,CAAC,CAC1C,CAAC;AACN,CAAC;AAED,MAAM,OAAO,mBAAsD,SAAQ,UAAU;IACjF,OAAO,CAAyB;IAChC,KAAK,CAAyB;IAC9B,iDAAiD;IACjD,SAAS,CAA0B;IACnC,UAAU,CAAyC;IACnD,iEAAiE;IACjE,QAAQ,CAAY;IAEpB,YAAY,OAAe,EAAE,SAAwC;QACjE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACxG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACd,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACvE,IAAI,oBAAoB,EAAE,EAAE,CAAC;YACzB,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,MAAuC;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,OAAqC;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,MAAiC;QACtC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,OAA+B;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAChB,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAyB;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,IAAiB;QAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAA2B,CAAC;YAC7E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YACtC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB,CAAC,GAAY,EAAE,GAAa;QAC3C,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,sBAAsB;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ;AAED,MAAM,OAAO,WAAY,SAAQ,mBAAgC;CAAG;AAEpE,MAAM,OAAgB,QAAS,SAAQ,UAAU;IAElC;IADX,YACW,MAAkB,EACzB,QAAgB;QAEhB,oEAAoE;QACpE,sCAAsC;QACtC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QALvC,WAAM,GAAN,MAAM,CAAY;QAMzB,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,IAAiB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,cAAc,CACV,GAAY,EACZ,GAAa,EACb,MAA6C;QAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAI,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB,CAAC,GAAY,EAAE,GAAa;QAC3C,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/api-fetch-client",
|
|
3
|
-
"version": "1.4.0-dev.
|
|
3
|
+
"version": "1.4.0-dev.20260629.130134Z",
|
|
4
4
|
"description": "HTTP client which wraps a fetch implementation and simplify the creation of REST API clients. Works both in browser and in node.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/koa": "^3.0.3",
|
|
42
42
|
"@types/mocha": "^10.0.10",
|
|
43
|
-
"@types/node": "^24.
|
|
43
|
+
"@types/node": "^24.13.2",
|
|
44
44
|
"koa": "^3.2.1",
|
|
45
45
|
"mocha": "^11.7.6",
|
|
46
46
|
"tsx": "^4.22.4",
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
|
-
"@koa-stack/
|
|
48
|
+
"@koa-stack/router": "0.25.0-dev.20260629.122506Z",
|
|
49
49
|
"@vertesia/tsconfig": "0.1.0",
|
|
50
|
-
"@koa-stack/
|
|
50
|
+
"@koa-stack/server": "0.25.0-dev.20260629.122506Z"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"eventsource-parser": "^3.1.0"
|
|
@@ -56,7 +56,8 @@
|
|
|
56
56
|
"test": "ESBK_TSCONFIG_PATH=./test/tsconfig.json pnpm exec mocha -r tsx --exit ./test/**/*.ts",
|
|
57
57
|
"lint": "biome lint src",
|
|
58
58
|
"typecheck:test": "tsc -p test/tsconfig.json --noEmit",
|
|
59
|
-
"
|
|
60
|
-
"
|
|
59
|
+
"clean:lib": "rimraf ./lib ./tsconfig.tsbuildinfo",
|
|
60
|
+
"build": "pnpm run clean:lib && tsc -p tsconfig.json",
|
|
61
|
+
"clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
|
|
61
62
|
}
|
|
62
63
|
}
|
package/src/base.ts
CHANGED
|
@@ -18,6 +18,13 @@ export interface IRequestRetryPolicy {
|
|
|
18
18
|
* HTTP response statuses that should be retried. Defaults to 502, 503, and 504.
|
|
19
19
|
*/
|
|
20
20
|
statuses?: number[];
|
|
21
|
+
/**
|
|
22
|
+
* Also retry any 5xx whose body is not JSON — e.g. an HTML error page from a load balancer,
|
|
23
|
+
* gateway, or Cloud Run ("no available instance" / "try again in 30 seconds"). These originate
|
|
24
|
+
* at the edge, not the application (which serializes its errors as JSON), so they are transient
|
|
25
|
+
* and safe to retry even when the exact status (often 500) is not in `statuses`. Defaults to true.
|
|
26
|
+
*/
|
|
27
|
+
retryNonJsonServerErrors?: boolean;
|
|
21
28
|
/**
|
|
22
29
|
* Retry network failures thrown by fetch. Defaults to true.
|
|
23
30
|
*/
|
|
@@ -40,6 +47,7 @@ type NormalizedRetryPolicy = {
|
|
|
40
47
|
attempts: number;
|
|
41
48
|
methods: Set<string>;
|
|
42
49
|
statuses: Set<number>;
|
|
50
|
+
retryNonJsonServerErrors: boolean;
|
|
43
51
|
retryOnConnectionError: boolean;
|
|
44
52
|
baseDelayMs: number;
|
|
45
53
|
maxDelayMs: number;
|
|
@@ -79,6 +87,18 @@ export interface IRequestParams {
|
|
|
79
87
|
* Set to false to disable a client-level retry policy for this request.
|
|
80
88
|
*/
|
|
81
89
|
retryPolicy?: IRequestRetryPolicy | false | null;
|
|
90
|
+
/**
|
|
91
|
+
* Per-request timeout in milliseconds. Aborts the whole request — connection, response headers,
|
|
92
|
+
* AND body consumption (JSON parse) — via a browser-standard AbortSignal. A positive number sets
|
|
93
|
+
* the timeout; `false`/`null`/`0` disables it for this request (overriding any client default).
|
|
94
|
+
* When omitted, the client-level default (`withTimeout` / `defaultTimeoutMs`) applies.
|
|
95
|
+
* Not applied to SSE (`reader: 'sse'`) requests, which are long-lived by design.
|
|
96
|
+
*/
|
|
97
|
+
timeoutMs?: number | false | null;
|
|
98
|
+
/**
|
|
99
|
+
* Caller-supplied AbortSignal. Merged with the timeout signal — whichever aborts first wins.
|
|
100
|
+
*/
|
|
101
|
+
signal?: AbortSignal;
|
|
82
102
|
}
|
|
83
103
|
|
|
84
104
|
export interface IRequestParamsWithPayload extends IRequestParams {
|
|
@@ -106,6 +126,20 @@ function isReplayableBody(body: BodyInit | undefined) {
|
|
|
106
126
|
return !body || typeof ReadableStream === 'undefined' || !(body instanceof ReadableStream);
|
|
107
127
|
}
|
|
108
128
|
|
|
129
|
+
/**
|
|
130
|
+
* True for a 5xx whose Content-Type is not JSON. The application serializes its errors as JSON, so a
|
|
131
|
+
* non-JSON 5xx (HTML/text, or no content-type) is an edge/LB/gateway failure — e.g. a Cloud Run
|
|
132
|
+
* "no available instance" or GFE "try again in 30 seconds" page — which is transient and retryable.
|
|
133
|
+
* Reads only headers (no body consumption), so it is safe to call before deciding to retry.
|
|
134
|
+
*/
|
|
135
|
+
function isNonJsonServerError(res: Response): boolean {
|
|
136
|
+
if (res.status < 500) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
const contentType = (res.headers.get('content-type') ?? '').toLowerCase();
|
|
140
|
+
return !contentType.includes('json');
|
|
141
|
+
}
|
|
142
|
+
|
|
109
143
|
function normalizeRetryPolicy(policy: IRequestRetryPolicy): NormalizedRetryPolicy {
|
|
110
144
|
const attempts = Math.max(1, Math.floor(policy.attempts ?? DEFAULT_RETRY_ATTEMPTS));
|
|
111
145
|
const baseDelayMs = Math.max(0, policy.baseDelayMs ?? DEFAULT_RETRY_BASE_DELAY_MS);
|
|
@@ -114,6 +148,7 @@ function normalizeRetryPolicy(policy: IRequestRetryPolicy): NormalizedRetryPolic
|
|
|
114
148
|
attempts,
|
|
115
149
|
methods: new Set((policy.methods ?? DEFAULT_RETRY_METHODS).map((method) => method.toUpperCase())),
|
|
116
150
|
statuses: new Set(policy.statuses ?? DEFAULT_RETRY_STATUSES),
|
|
151
|
+
retryNonJsonServerErrors: policy.retryNonJsonServerErrors ?? true,
|
|
117
152
|
retryOnConnectionError: policy.retryOnConnectionError ?? true,
|
|
118
153
|
baseDelayMs,
|
|
119
154
|
maxDelayMs,
|
|
@@ -147,6 +182,60 @@ function toError(err: unknown): Error {
|
|
|
147
182
|
return err instanceof Error ? err : new Error(String(err));
|
|
148
183
|
}
|
|
149
184
|
|
|
185
|
+
/**
|
|
186
|
+
* True for an AbortSignal-driven failure (caller abort or our timeout). Checks `name` rather than
|
|
187
|
+
* `instanceof Error` because runtimes surface these as a `DOMException` (`TimeoutError`/`AbortError`),
|
|
188
|
+
* which is not always an `Error` subclass in browsers.
|
|
189
|
+
*/
|
|
190
|
+
function isAbortError(err: unknown): boolean {
|
|
191
|
+
return (
|
|
192
|
+
typeof err === 'object' &&
|
|
193
|
+
err !== null &&
|
|
194
|
+
'name' in err &&
|
|
195
|
+
((err as { name: unknown }).name === 'TimeoutError' || (err as { name: unknown }).name === 'AbortError')
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Browser + Node safe `AbortSignal.timeout(ms)`, with a fallback for runtimes that lack it.
|
|
201
|
+
*/
|
|
202
|
+
function timeoutSignal(ms: number): AbortSignal {
|
|
203
|
+
const timeoutFn = (AbortSignal as unknown as { timeout?: (ms: number) => AbortSignal }).timeout;
|
|
204
|
+
if (typeof timeoutFn === 'function') {
|
|
205
|
+
return timeoutFn(ms);
|
|
206
|
+
}
|
|
207
|
+
const controller = new AbortController();
|
|
208
|
+
setTimeout(() => controller.abort(new DOMException('The operation timed out', 'TimeoutError')), ms);
|
|
209
|
+
return controller.signal;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Merge abort signals (caller + timeout). Uses the standard `AbortSignal.any` when available, with a
|
|
214
|
+
* manual fallback for older runtimes. Returns undefined when there is nothing to combine.
|
|
215
|
+
*/
|
|
216
|
+
function combineAbortSignals(signals: Array<AbortSignal | undefined>): AbortSignal | undefined {
|
|
217
|
+
const list = signals.filter((s): s is AbortSignal => !!s);
|
|
218
|
+
if (list.length === 0) {
|
|
219
|
+
return undefined;
|
|
220
|
+
}
|
|
221
|
+
if (list.length === 1) {
|
|
222
|
+
return list[0];
|
|
223
|
+
}
|
|
224
|
+
const anyFn = (AbortSignal as unknown as { any?: (s: AbortSignal[]) => AbortSignal }).any;
|
|
225
|
+
if (typeof anyFn === 'function') {
|
|
226
|
+
return anyFn(list);
|
|
227
|
+
}
|
|
228
|
+
const controller = new AbortController();
|
|
229
|
+
for (const s of list) {
|
|
230
|
+
if (s.aborted) {
|
|
231
|
+
controller.abort(s.reason);
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
s.addEventListener('abort', () => controller.abort(s.reason), { once: true });
|
|
235
|
+
}
|
|
236
|
+
return controller.signal;
|
|
237
|
+
}
|
|
238
|
+
|
|
150
239
|
async function discardBody(res: Response) {
|
|
151
240
|
try {
|
|
152
241
|
await res.body?.cancel();
|
|
@@ -161,6 +250,7 @@ export abstract class ClientBase {
|
|
|
161
250
|
errorFactory: (err: RequestError) => Error = (err) => err;
|
|
162
251
|
verboseErrors = true;
|
|
163
252
|
retryPolicy?: IRequestRetryPolicy;
|
|
253
|
+
defaultTimeoutMs?: number;
|
|
164
254
|
|
|
165
255
|
abstract get headers(): Record<string, string>;
|
|
166
256
|
|
|
@@ -186,6 +276,40 @@ export abstract class ClientBase {
|
|
|
186
276
|
return this.retryPolicy;
|
|
187
277
|
}
|
|
188
278
|
|
|
279
|
+
/**
|
|
280
|
+
* Set a default request timeout (ms) applied to every request unless overridden per-request via
|
|
281
|
+
* `timeoutMs`. Pass `false`/`null`/`0` to clear it. The timeout aborts the whole request
|
|
282
|
+
* (connection + response headers + body consumption) via AbortSignal.
|
|
283
|
+
*/
|
|
284
|
+
withTimeout(timeoutMs?: number | false | null): this {
|
|
285
|
+
this.defaultTimeoutMs = typeof timeoutMs === 'number' && timeoutMs > 0 ? timeoutMs : undefined;
|
|
286
|
+
return this;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
getTimeout(): number | undefined {
|
|
290
|
+
return this.defaultTimeoutMs;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Resolve the effective timeout for a request: per-request `timeoutMs` wins (a positive number
|
|
295
|
+
* sets it; `false`/`null`/`0` disables it), otherwise the client default applies. SSE streams are
|
|
296
|
+
* never given a total-request timeout.
|
|
297
|
+
*/
|
|
298
|
+
protected resolveTimeout(params: IRequestParams | undefined): number | undefined {
|
|
299
|
+
if (params?.reader === 'sse') {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
const requestTimeout = params?.timeoutMs;
|
|
303
|
+
if (requestTimeout === false || requestTimeout === null) {
|
|
304
|
+
return undefined;
|
|
305
|
+
}
|
|
306
|
+
if (typeof requestTimeout === 'number') {
|
|
307
|
+
return requestTimeout > 0 ? requestTimeout : undefined;
|
|
308
|
+
}
|
|
309
|
+
const clientTimeout = this.getTimeout();
|
|
310
|
+
return clientTimeout && clientTimeout > 0 ? clientTimeout : undefined;
|
|
311
|
+
}
|
|
312
|
+
|
|
189
313
|
/**
|
|
190
314
|
* Resolve a path to a full URL. If the path is already an absolute URL
|
|
191
315
|
* (starts with http:// or https://), it is returned as-is.
|
|
@@ -279,6 +403,11 @@ export abstract class ClientBase {
|
|
|
279
403
|
}
|
|
280
404
|
})
|
|
281
405
|
.catch((err: unknown) => {
|
|
406
|
+
// A timeout/abort during body consumption is a real failure — surface it instead of
|
|
407
|
+
// swallowing it into an error payload that would otherwise be returned as the result.
|
|
408
|
+
if (isAbortError(err)) {
|
|
409
|
+
throw err;
|
|
410
|
+
}
|
|
282
411
|
return {
|
|
283
412
|
status: res.status,
|
|
284
413
|
error: 'Unable to load response content',
|
|
@@ -343,12 +472,21 @@ export abstract class ClientBase {
|
|
|
343
472
|
}
|
|
344
473
|
|
|
345
474
|
const normalizedMethod = method.toUpperCase();
|
|
475
|
+
// Resolved once; createRequestInit() then mints a FRESH timeout signal per attempt so each
|
|
476
|
+
// retry gets its own deadline. The signal is set on the Request, so it bounds the connection,
|
|
477
|
+
// the wait for response headers, AND body consumption (handleResponse reads res.text()).
|
|
478
|
+
const timeoutMs = this.resolveTimeout(params);
|
|
346
479
|
const createRequestInit = (): RequestInit => {
|
|
347
|
-
|
|
480
|
+
const signal = combineAbortSignals([params?.signal, timeoutMs ? timeoutSignal(timeoutMs) : undefined]);
|
|
481
|
+
const init: RequestInit = {
|
|
348
482
|
method: normalizedMethod,
|
|
349
483
|
headers: Object.assign({}, headers),
|
|
350
484
|
body: body,
|
|
351
485
|
};
|
|
486
|
+
if (signal) {
|
|
487
|
+
init.signal = signal;
|
|
488
|
+
}
|
|
489
|
+
return init;
|
|
352
490
|
};
|
|
353
491
|
const retryPolicy = this.resolveRetryPolicy(params);
|
|
354
492
|
const fetch = await this._fetch;
|
|
@@ -422,12 +560,9 @@ export abstract class ClientBase {
|
|
|
422
560
|
replayableBody: boolean,
|
|
423
561
|
res: Response,
|
|
424
562
|
) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
policy.methods.has(method) &&
|
|
429
|
-
policy.statuses.has(res.status)
|
|
430
|
-
);
|
|
563
|
+
const retryableStatus =
|
|
564
|
+
policy.statuses.has(res.status) || (policy.retryNonJsonServerErrors && isNonJsonServerError(res));
|
|
565
|
+
return attempt < policy.attempts - 1 && replayableBody && policy.methods.has(method) && retryableStatus;
|
|
431
566
|
}
|
|
432
567
|
|
|
433
568
|
private shouldRetryConnectionError(
|
package/src/client.ts
CHANGED