@subsquid/http-client 1.6.0-portal-api.c2dfdd → 1.7.0-2-0.3887d2
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/lib/client.d.ts +14 -5
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +73 -58
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +1 -1
- package/package.json +4 -5
- package/src/client.ts +130 -98
- package/src/index.ts +0 -1
- package/esm.d.ts +0 -2
- package/esm.js +0 -3
- package/lib/agent.d.ts +0 -17
- package/lib/agent.d.ts.map +0 -1
- package/lib/agent.js +0 -57
- package/lib/agent.js.map +0 -1
- package/lib/client.test.d.ts +0 -2
- package/lib/client.test.d.ts.map +0 -1
- package/lib/client.test.js +0 -14
- package/lib/client.test.js.map +0 -1
- package/lib/request.d.ts +0 -9
- package/lib/request.d.ts.map +0 -1
- package/lib/request.js +0 -32
- package/lib/request.js.map +0 -1
- package/src/agent.ts +0 -39
- package/src/client.test.ts +0 -10
- package/src/request.ts +0 -29
package/lib/client.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { Logger } from '@subsquid/logger';
|
|
2
|
-
import type { Headers, RequestInit, Response } from 'node-fetch';
|
|
3
|
-
import { AgentProvider } from './agent';
|
|
4
2
|
import { HttpBody } from './body';
|
|
5
3
|
export { HttpBody };
|
|
6
4
|
export interface HttpClientOptions {
|
|
7
|
-
agent?: AgentProvider;
|
|
8
5
|
baseUrl?: string;
|
|
9
6
|
headers?: Record<string, string | number | bigint>;
|
|
10
7
|
/**
|
|
@@ -14,9 +11,12 @@ export interface HttpClientOptions {
|
|
|
14
11
|
* Overall request processing time might be much larger due to retries.
|
|
15
12
|
*/
|
|
16
13
|
httpTimeout?: number;
|
|
14
|
+
bodyTimeout?: number;
|
|
17
15
|
retryAttempts?: number;
|
|
18
16
|
retrySchedule?: number[];
|
|
17
|
+
keepalive?: boolean;
|
|
19
18
|
log?: Logger | null;
|
|
19
|
+
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
20
20
|
}
|
|
21
21
|
export interface RequestOptions {
|
|
22
22
|
query?: Record<string, string | number | bigint>;
|
|
@@ -24,8 +24,10 @@ export interface RequestOptions {
|
|
|
24
24
|
retryAttempts?: number;
|
|
25
25
|
retrySchedule?: number[];
|
|
26
26
|
httpTimeout?: number;
|
|
27
|
+
bodyTimeout?: number;
|
|
27
28
|
abort?: AbortSignal;
|
|
28
29
|
stream?: boolean;
|
|
30
|
+
keepalive?: boolean;
|
|
29
31
|
}
|
|
30
32
|
export interface GraphqlRequestOptions extends RequestOptions {
|
|
31
33
|
variables?: Record<string, any>;
|
|
@@ -38,6 +40,7 @@ export interface FetchRequest extends RequestInit {
|
|
|
38
40
|
url: string;
|
|
39
41
|
headers: Headers;
|
|
40
42
|
timeout?: number;
|
|
43
|
+
bodyTimeout?: number;
|
|
41
44
|
signal?: AbortSignal;
|
|
42
45
|
stream?: boolean;
|
|
43
46
|
}
|
|
@@ -46,11 +49,13 @@ export declare class HttpClient {
|
|
|
46
49
|
protected log?: Logger;
|
|
47
50
|
protected headers?: Record<string, string | number | bigint>;
|
|
48
51
|
private baseUrl?;
|
|
49
|
-
private agent;
|
|
50
52
|
private retrySchedule;
|
|
51
53
|
private retryAttempts;
|
|
52
54
|
private httpTimeout;
|
|
55
|
+
private bodyTimeout?;
|
|
53
56
|
private requestCounter;
|
|
57
|
+
private keepalive?;
|
|
58
|
+
private fetch;
|
|
54
59
|
constructor(options?: HttpClientOptions);
|
|
55
60
|
get<T = any>(url: string, options?: RequestOptions): Promise<T>;
|
|
56
61
|
post<T = any>(url: string, options?: RequestOptions & HttpBody): Promise<T>;
|
|
@@ -97,6 +102,10 @@ export declare class HttpTimeoutError extends Error {
|
|
|
97
102
|
constructor(ms: number);
|
|
98
103
|
get name(): string;
|
|
99
104
|
}
|
|
105
|
+
export declare class HttpBodyTimeoutError extends Error {
|
|
106
|
+
constructor(ms: number);
|
|
107
|
+
get name(): string;
|
|
108
|
+
}
|
|
100
109
|
export interface GraphqlMessage {
|
|
101
110
|
message: string;
|
|
102
111
|
path?: (string | number)[];
|
|
@@ -106,6 +115,6 @@ export declare class GraphqlError extends Error {
|
|
|
106
115
|
constructor(messages: GraphqlMessage[]);
|
|
107
116
|
get name(): string;
|
|
108
117
|
}
|
|
109
|
-
export declare function isHttpConnectionError(err: unknown): boolean;
|
|
110
118
|
export declare function asRetryAfterPause(res: HttpResponse | Error): number | undefined;
|
|
119
|
+
export declare function isHttpConnectionError(error: unknown): boolean;
|
|
111
120
|
//# 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,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/client.js
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.GraphqlError = exports.HttpBodyTimeoutError = exports.HttpTimeoutError = exports.HttpError = exports.HttpResponse = exports.HttpClient = void 0;
|
|
4
|
+
exports.asRetryAfterPause = asRetryAfterPause;
|
|
5
|
+
exports.isHttpConnectionError = isHttpConnectionError;
|
|
5
6
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
6
|
-
const
|
|
7
|
-
const request_1 = require("./request");
|
|
7
|
+
const util_timeout_1 = require("@subsquid/util-timeout");
|
|
8
8
|
class HttpClient {
|
|
9
9
|
constructor(options = {}) {
|
|
10
10
|
this.requestCounter = 0;
|
|
11
|
-
this.log = options.log === null ? undefined : options.log
|
|
11
|
+
this.log = options.log === null ? undefined : options.log;
|
|
12
12
|
this.headers = options.headers;
|
|
13
13
|
this.setBaseUrl(options.baseUrl);
|
|
14
|
-
this.agent = options.agent || agent_1.defaultAgentProvider;
|
|
15
14
|
this.retrySchedule = options.retrySchedule || [10, 100, 500, 2000, 10000, 20000];
|
|
16
15
|
this.retryAttempts = options.retryAttempts || 0;
|
|
17
16
|
this.httpTimeout = options.httpTimeout ?? 20000;
|
|
17
|
+
this.bodyTimeout = options.bodyTimeout;
|
|
18
|
+
this.keepalive = options.keepalive;
|
|
19
|
+
this.fetch = options.fetch || fetch;
|
|
18
20
|
}
|
|
19
21
|
get(url, options) {
|
|
20
|
-
return this.request('GET', url, options).then(res => res.body);
|
|
22
|
+
return this.request('GET', url, options).then((res) => res.body);
|
|
21
23
|
}
|
|
22
24
|
post(url, options) {
|
|
23
|
-
return this.request('POST', url, options).then(res => res.body);
|
|
25
|
+
return this.request('POST', url, options).then((res) => res.body);
|
|
24
26
|
}
|
|
25
27
|
async request(method, url, options = {}) {
|
|
26
28
|
let req = await this.prepareRequest(method, url, options);
|
|
@@ -34,11 +36,8 @@ class HttpClient {
|
|
|
34
36
|
if (retryAttempts > retries && this.isRetryableError(res, req)) {
|
|
35
37
|
let pause = asRetryAfterPause(res);
|
|
36
38
|
if (pause == null) {
|
|
37
|
-
pause = retrySchedule.length
|
|
38
|
-
? retrySchedule[Math.min(retries, retrySchedule.length - 1)]
|
|
39
|
-
: 1000;
|
|
39
|
+
pause = retrySchedule.length ? retrySchedule[Math.min(retries, retrySchedule.length - 1)] : 1000;
|
|
40
40
|
}
|
|
41
|
-
// FIXME: should we count retries if there is retry-after header in response?
|
|
42
41
|
retries += 1;
|
|
43
42
|
this.beforeRetryPause(req, res, pause);
|
|
44
43
|
await (0, util_internal_1.wait)(pause, req.signal);
|
|
@@ -62,7 +61,7 @@ class HttpClient {
|
|
|
62
61
|
httpRequestUrl: req.url,
|
|
63
62
|
httpRequestMethod: req.method,
|
|
64
63
|
httpRequestHeaders: Array.from(req.headers),
|
|
65
|
-
httpRequestBody: req.body
|
|
64
|
+
httpRequestBody: req.body,
|
|
66
65
|
}, 'http request');
|
|
67
66
|
}
|
|
68
67
|
}
|
|
@@ -71,7 +70,8 @@ class HttpClient {
|
|
|
71
70
|
let info = {
|
|
72
71
|
httpRequestId: req.id,
|
|
73
72
|
httpRequestUrl: req.url,
|
|
74
|
-
httpRequestMethod: req.method
|
|
73
|
+
httpRequestMethod: req.method,
|
|
74
|
+
httpRequestBody: req.body,
|
|
75
75
|
};
|
|
76
76
|
if (reason instanceof Error) {
|
|
77
77
|
info.reason = reason.toString();
|
|
@@ -92,7 +92,7 @@ class HttpClient {
|
|
|
92
92
|
httpRequestId: req.id,
|
|
93
93
|
httpResponseUrl: url,
|
|
94
94
|
httpResponseStatus: status,
|
|
95
|
-
httpResponseHeaders: Array.from(headers)
|
|
95
|
+
httpResponseHeaders: Array.from(headers),
|
|
96
96
|
}, 'http headers');
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -106,21 +106,21 @@ class HttpClient {
|
|
|
106
106
|
}
|
|
107
107
|
this.log.debug({
|
|
108
108
|
httpRequestId: req.id,
|
|
109
|
-
httpResponseBody
|
|
109
|
+
httpResponseBody,
|
|
110
110
|
}, 'http body');
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
async prepareRequest(method, url, options) {
|
|
114
|
-
await request_1.nodeFetch.load();
|
|
115
114
|
let req = {
|
|
116
115
|
id: this.requestCounter++,
|
|
117
116
|
method,
|
|
118
|
-
headers: new
|
|
117
|
+
headers: new Headers(options.headers),
|
|
119
118
|
url: this.getAbsUrl(url),
|
|
120
119
|
signal: options.abort,
|
|
121
|
-
compress: true,
|
|
122
120
|
timeout: options.httpTimeout ?? this.httpTimeout,
|
|
123
|
-
|
|
121
|
+
bodyTimeout: options.bodyTimeout ?? this.bodyTimeout,
|
|
122
|
+
stream: options.stream,
|
|
123
|
+
keepalive: options.keepalive ?? this.keepalive,
|
|
124
124
|
};
|
|
125
125
|
this.handleBasicAuth(req);
|
|
126
126
|
if (options.query) {
|
|
@@ -132,7 +132,6 @@ class HttpClient {
|
|
|
132
132
|
req.url += '?' + qs;
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
req.agent = this.agent.getNativeAgent(req.url);
|
|
136
135
|
if (options.content !== undefined) {
|
|
137
136
|
if (typeof options.content == 'string') {
|
|
138
137
|
req.body = options.content;
|
|
@@ -140,11 +139,8 @@ class HttpClient {
|
|
|
140
139
|
req.headers.set('content-type', 'text/plain');
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
|
-
else if (Buffer.isBuffer(options.content)) {
|
|
144
|
-
req.body = options.content;
|
|
145
|
-
}
|
|
146
142
|
else {
|
|
147
|
-
req.body =
|
|
143
|
+
req.body = options.content;
|
|
148
144
|
}
|
|
149
145
|
}
|
|
150
146
|
if (options.json !== undefined) {
|
|
@@ -183,7 +179,7 @@ class HttpClient {
|
|
|
183
179
|
}, req.timeout);
|
|
184
180
|
let res;
|
|
185
181
|
try {
|
|
186
|
-
return res = await this.performRequest({ ...req, signal: ac.signal });
|
|
182
|
+
return (res = await this.performRequest({ ...req, signal: ac.signal }));
|
|
187
183
|
}
|
|
188
184
|
catch (err) {
|
|
189
185
|
if (timer == null) {
|
|
@@ -194,36 +190,27 @@ class HttpClient {
|
|
|
194
190
|
}
|
|
195
191
|
}
|
|
196
192
|
finally {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
if (req.signal && res?.stream) {
|
|
201
|
-
// FIXME: is `close` always emitted?
|
|
202
|
-
res.body.on('close', () => {
|
|
203
|
-
req.signal.removeEventListener('abort', abort);
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
req.signal?.removeEventListener('abort', abort);
|
|
208
|
-
}
|
|
193
|
+
clearTimeout(timer);
|
|
194
|
+
req.signal?.removeEventListener('abort', abort);
|
|
209
195
|
}
|
|
210
196
|
}
|
|
211
197
|
async performRequest(req) {
|
|
212
|
-
let res = await
|
|
198
|
+
let res = await this.fetch(req.url, req);
|
|
213
199
|
this.afterResponseHeaders(req, res.url, res.status, res.headers);
|
|
214
|
-
let
|
|
215
|
-
|
|
216
|
-
httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, res.body, res.body != null);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
let body = await this.handleResponseBody(req, res);
|
|
220
|
-
httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, body, false);
|
|
221
|
-
}
|
|
200
|
+
let body = await this.handleResponseBody(req, res);
|
|
201
|
+
let httpResponse = new HttpResponse(req.id, res.url, res.status, res.headers, body, body instanceof ReadableStream);
|
|
222
202
|
this.afterResponse(req, httpResponse);
|
|
223
203
|
return httpResponse;
|
|
224
204
|
}
|
|
225
205
|
async handleResponseBody(req, res) {
|
|
226
206
|
let contentType = (res.headers.get('content-type') || '').split(';')[0];
|
|
207
|
+
if (req.bodyTimeout != null && res.body != null) {
|
|
208
|
+
let body = (0, util_timeout_1.addStreamTimeout)(res.body, req.bodyTimeout, () => new HttpBodyTimeoutError(req.bodyTimeout));
|
|
209
|
+
res = new Response(body, res);
|
|
210
|
+
}
|
|
211
|
+
if (req.stream && res.ok && res.body != null) {
|
|
212
|
+
return res.body;
|
|
213
|
+
}
|
|
227
214
|
if (contentType == 'application/json') {
|
|
228
215
|
return res.json();
|
|
229
216
|
}
|
|
@@ -233,7 +220,7 @@ class HttpClient {
|
|
|
233
220
|
let arrayBuffer = await res.arrayBuffer();
|
|
234
221
|
if (arrayBuffer.byteLength == 0)
|
|
235
222
|
return undefined;
|
|
236
|
-
return
|
|
223
|
+
return arrayBuffer;
|
|
237
224
|
}
|
|
238
225
|
isRetryableError(error, req) {
|
|
239
226
|
if (isHttpConnectionError(error))
|
|
@@ -310,7 +297,7 @@ class HttpClient {
|
|
|
310
297
|
else {
|
|
311
298
|
req.json = {
|
|
312
299
|
query: gql,
|
|
313
|
-
variables
|
|
300
|
+
variables,
|
|
314
301
|
};
|
|
315
302
|
}
|
|
316
303
|
let res = await this.request(method, url, req);
|
|
@@ -345,7 +332,7 @@ class HttpResponse {
|
|
|
345
332
|
status: this.status,
|
|
346
333
|
headers: Array.from(this.headers),
|
|
347
334
|
body: this.stream ? undefined : this.body,
|
|
348
|
-
url: this.url
|
|
335
|
+
url: this.url,
|
|
349
336
|
};
|
|
350
337
|
}
|
|
351
338
|
}
|
|
@@ -370,6 +357,15 @@ class HttpTimeoutError extends Error {
|
|
|
370
357
|
}
|
|
371
358
|
}
|
|
372
359
|
exports.HttpTimeoutError = HttpTimeoutError;
|
|
360
|
+
class HttpBodyTimeoutError extends Error {
|
|
361
|
+
constructor(ms) {
|
|
362
|
+
super(`request body timed out after ${ms} ms`);
|
|
363
|
+
}
|
|
364
|
+
get name() {
|
|
365
|
+
return 'HttpBodyTimeoutError';
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
exports.HttpBodyTimeoutError = HttpBodyTimeoutError;
|
|
373
369
|
class GraphqlError extends Error {
|
|
374
370
|
constructor(messages) {
|
|
375
371
|
super(`GraphQL error: ${messages[0].message}`);
|
|
@@ -380,13 +376,13 @@ class GraphqlError extends Error {
|
|
|
380
376
|
}
|
|
381
377
|
}
|
|
382
378
|
exports.GraphqlError = GraphqlError;
|
|
383
|
-
function isHttpConnectionError(err) {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
379
|
+
// export function isHttpConnectionError(err: unknown): boolean {
|
|
380
|
+
// return false
|
|
381
|
+
// nodeFetch.isLoaded
|
|
382
|
+
// && err instanceof nodeFetch.FetchError
|
|
383
|
+
// && err.type == 'system'
|
|
384
|
+
// && (err.message.startsWith('request to') || err.code == 'ERR_STREAM_PREMATURE_CLOSE')
|
|
385
|
+
// }
|
|
390
386
|
function asRetryAfterPause(res) {
|
|
391
387
|
if (res instanceof HttpError) {
|
|
392
388
|
res = res.response;
|
|
@@ -402,6 +398,25 @@ function asRetryAfterPause(res) {
|
|
|
402
398
|
}
|
|
403
399
|
return undefined;
|
|
404
400
|
}
|
|
405
|
-
exports.asRetryAfterPause = asRetryAfterPause;
|
|
406
401
|
const HTTP_DATE_REGEX = /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/;
|
|
402
|
+
// ref: https://github.com/sindresorhus/is-network-error/blob/main/index.js
|
|
403
|
+
const errorMessages = new Set([
|
|
404
|
+
'network error', // Chrome
|
|
405
|
+
'Failed to fetch', // Chrome
|
|
406
|
+
'NetworkError when attempting to fetch resource.', // Firefox
|
|
407
|
+
'The Internet connection appears to be offline.', // Safari 16
|
|
408
|
+
'Load failed', // Safari 17+
|
|
409
|
+
'Network request failed', // `cross-fetch`
|
|
410
|
+
'fetch failed', // Undici (Node.js)
|
|
411
|
+
'terminated', // Undici (Node.js)
|
|
412
|
+
]);
|
|
413
|
+
function isHttpConnectionError(error) {
|
|
414
|
+
if (error instanceof TypeError) {
|
|
415
|
+
if (error.message === 'Load failed') {
|
|
416
|
+
return error.stack === undefined;
|
|
417
|
+
}
|
|
418
|
+
return errorMessages.has(error.message);
|
|
419
|
+
}
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
407
422
|
//# sourceMappingURL=client.js.map
|
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":";;;AA6eA,8CAYC;AAiBD,sDAUC;AAnhBD,2DAA0E;AAE1E,yDAAuD;AAsDvD,MAAa,UAAU;IAYnB,YAAY,UAA6B,EAAE;QAJnC,mBAAc,GAAG,CAAC,CAAA;QAKtB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAChF,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAA;IACvC,CAAC;IAED,GAAG,CAAU,GAAW,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,CAAU,GAAW,EAAE,OAAmC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CACT,MAAc,EACd,GAAW,EACX,UAAqC,EAAE;QAEvC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAEzD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAEvB,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAA;QAC/D,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAA;QAC/D,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,GAAyB,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2BAAW,CAAC,CAAA;YAC5F,IAAI,GAAG,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC7D,IAAI,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;oBAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAChB,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBACpG,CAAC;oBACD,OAAO,IAAI,CAAC,CAAA;oBACZ,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;oBACtC,MAAM,IAAA,oBAAI,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;gBACjC,CAAC;qBAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAA,+BAAe,EAAC,GAAG,EAAE,EAAC,aAAa,EAAE,GAAG,CAAC,EAAE,EAAC,CAAC,CAAA;gBACvD,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;gBAC5B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,CAAA;YACd,CAAC;QACL,CAAC;IACL,CAAC;IAES,aAAa,CAAC,GAAiB;QACrC,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV;gBACI,aAAa,EAAE,GAAG,CAAC,EAAE;gBACrB,cAAc,EAAE,GAAG,CAAC,GAAG;gBACvB,iBAAiB,EAAE,GAAG,CAAC,MAAM;gBAC7B,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC3C,eAAe,EAAE,GAAG,CAAC,IAAI;aAC5B,EACD,cAAc,CACjB,CAAA;QACL,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,GAAiB,EAAE,MAA4B,EAAE,KAAa;QACrF,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;YACrB,IAAI,IAAI,GAAQ;gBACZ,aAAa,EAAE,GAAG,CAAC,EAAE;gBACrB,cAAc,EAAE,GAAG,CAAC,GAAG;gBACvB,iBAAiB,EAAE,GAAG,CAAC,MAAM;gBAC7B,eAAe,EAAE,GAAG,CAAC,IAAI;aAC5B,CAAA;YACD,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,CAAA;gBACpC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;gBACjC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;gBACvC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAA;YACvC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,8BAA8B,KAAK,KAAK,CAAC,CAAA;QACjE,CAAC;IACL,CAAC;IAES,oBAAoB,CAAC,GAAiB,EAAE,GAAW,EAAE,MAAc,EAAE,OAAgB;QAC3F,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV;gBACI,aAAa,EAAE,GAAG,CAAC,EAAE;gBACrB,eAAe,EAAE,GAAG;gBACpB,kBAAkB,EAAE,MAAM;gBAC1B,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aAC3C,EACD,cAAc,CACjB,CAAA;QACL,CAAC;IACL,CAAC;IAES,aAAa,CAAC,GAAiB,EAAE,GAAiB;QACxD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YACrC,IAAI,gBAAgB,GAAQ,GAAG,CAAC,IAAI,CAAA;YACpC,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,QAAQ,IAAI,GAAG,CAAC,IAAI,YAAY,UAAU,EAAE,CAAC;gBAChE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;oBAChC,gBAAgB,GAAG,kCAAkC,CAAA;gBACzD,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV;gBACI,aAAa,EAAE,GAAG,CAAC,EAAE;gBACrB,gBAAgB;aACnB,EACD,WAAW,CACd,CAAA;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,GAAW,EACX,OAAkC;QAElC,IAAI,GAAG,GAAiB;YACpB,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE;YACzB,MAAM;YACN,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;YACpD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;SACjD,CAAA;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAEzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,EAAE,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,KAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC7D,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;YACvB,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;gBACjD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;YAC9B,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACvD,CAAC;QACL,CAAC;QAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YAClD,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAEO,eAAe,CAAC,GAAiB;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAChF,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAA;YACf,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAA;YACf,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,GAAiB;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QAEjD,IAAI,EAAE,GAAG,IAAI,eAAe,EAAE,CAAA;QAE9B,SAAS,KAAK;YACV,EAAE,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAE5C,IAAI,KAAK,GAAe,UAAU,CAAC,GAAG,EAAE;YACpC,KAAK,GAAG,IAAI,CAAA;YACZ,KAAK,EAAE,CAAA;QACX,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAEf,IAAI,GAA6B,CAAA;QACjC,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAC,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAC,CAAC,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,CAAA;YACb,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAiB;QAC1C,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAChE,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAClD,IAAI,YAAY,GAAG,IAAI,YAAY,CAC/B,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,OAAO,EACX,IAAI,EACJ,IAAI,YAAY,cAAc,CACjC,CAAA;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QACrC,OAAO,YAAY,CAAA;IACvB,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,GAAiB,EAAE,GAAkB;QACpE,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvE,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI,GAAG,IAAA,+BAAgB,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,WAAY,CAAC,CAAC,CAAA;YACxG,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,IAAI,CAAA;QACnB,CAAC;QAED,IAAI,WAAW,IAAI,kBAAkB,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;QAED,IAAI,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;QACzC,IAAI,WAAW,CAAC,UAAU,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QACjD,OAAO,WAAW,CAAA;IACtB,CAAC;IAED,gBAAgB,CAAC,KAA2B,EAAE,GAAkB;QAC5D,IAAI,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7C,IAAI,KAAK,YAAY,gBAAgB;YAAE,OAAO,IAAI,CAAA;QAClD,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC7B,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC1B,CAAC;QACD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAChC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACJ,OAAO,IAAI,CAAA;gBACf;oBACI,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,oBAAoB,CAAC,GAAW;QACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;YAC/C,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAA;YACf,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAA;YACf,OAAO,EAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,EAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAA;QAC9B,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAW;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAA;QAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAA;QACnC,IAAI,GAAG,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QACnC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAC5C,OAAO,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,CAAA;IACnC,CAAC;IAEO,UAAU,CAAC,GAAY;QAC3B,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;YACX,CAAC,CAAC,MAAM,GAAG,EAAE,CAAA;YACb,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;YAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QACtB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAC5B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAU,GAAW,EAAE,UAAiC,EAAE;QAC1E,IAAI,EAAC,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,UAAU,EAAC,GAAG,OAAO,CAAA;QACpE,IAAI,GAAG,GAAkC,UAAU,CAAA;QACnD,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,GAAG;gBACR,GAAG,GAAG,CAAC,KAAK;gBACZ,KAAK,EAAE,GAAG;aACb,CAAA;YACD,IAAI,SAAS,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,IAAI,GAAG;gBACP,KAAK,EAAE,GAAG;gBACV,SAAS;aACZ,CAAA;QACL,CAAC;QACD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACpF,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;QACxB,CAAC;IACL,CAAC;CACJ;AAhWD,gCAgWC;AAED,MAAa,YAAY;IACrB,YACoB,SAAiB,EACjB,GAAW,EACX,MAAc,EACd,OAAgB,EAChB,IAAO,EACP,MAAe;QALf,cAAS,GAAT,SAAS,CAAQ;QACjB,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;QAChB,SAAI,GAAJ,IAAI,CAAG;QACP,WAAM,GAAN,MAAM,CAAS;IAChC,CAAC;IAEJ,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IAClD,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,EAAE;YAAE,OAAM;QACnB,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM;QACF,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YACzC,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAA;IACL,CAAC;CACJ;AA3BD,oCA2BC;AAED,MAAa,SAAU,SAAQ,KAAK;IAChC,YAA4B,QAAsB;QAC9C,KAAK,CAAC,OAAO,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QAD5B,aAAQ,GAAR,QAAQ,CAAc;IAElD,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,WAAW,CAAA;IACtB,CAAC;CACJ;AARD,8BAQC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IACvC,YAA4B,EAAU;QAClC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;QADjB,OAAE,GAAF,EAAE,CAAQ;IAEtC,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,kBAAkB,CAAA;IAC7B,CAAC;CACJ;AARD,4CAQC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC3C,YAAY,EAAU;QAClB,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,sBAAsB,CAAA;IACjC,CAAC;CACJ;AARD,oDAQC;AAOD,MAAa,YAAa,SAAQ,KAAK;IACnC,YAA4B,QAA0B;QAClD,KAAK,CAAC,kBAAkB,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QADtB,aAAQ,GAAR,QAAQ,CAAkB;IAEtD,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,cAAc,CAAA;IACzB,CAAC;CACJ;AARD,oCAQC;AAED,iEAAiE;AACjE,mBAAmB;AACnB,qBAAqB;AACrB,6CAA6C;AAC7C,8BAA8B;AAC9B,4FAA4F;AAC5F,IAAI;AAEJ,SAAgB,iBAAiB,CAAC,GAAyB;IACvD,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;QAC3B,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC/C,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;QACpE,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACzG,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,MAAM,eAAe,GACjB,kIAAkI,CAAA;AAEtI,2EAA2E;AAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC1B,eAAe,EAAE,SAAS;IAC1B,iBAAiB,EAAE,SAAS;IAC5B,iDAAiD,EAAE,UAAU;IAC7D,gDAAgD,EAAE,YAAY;IAC9D,aAAa,EAAE,aAAa;IAC5B,wBAAwB,EAAE,gBAAgB;IAC1C,cAAc,EAAE,mBAAmB;IACnC,YAAY,EAAE,mBAAmB;CACpC,CAAC,CAAA;AAEF,SAAgB,qBAAqB,CAAC,KAAc;IAChD,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;QACpC,CAAC;QAED,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -14,8 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.HttpAgent = void 0;
|
|
18
17
|
__exportStar(require("./client"), exports);
|
|
19
|
-
var agent_1 = require("./agent");
|
|
20
|
-
Object.defineProperty(exports, "HttpAgent", { enumerable: true, get: function () { return agent_1.HttpAgent; } });
|
|
21
18
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/http-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-2-0.3887d2",
|
|
4
4
|
"description": "Small convenience layer on top of fetch",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"repository": "git@github.com:subsquid/squid.git",
|
|
@@ -16,12 +16,11 @@
|
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@subsquid/logger": "^1.3.3",
|
|
19
|
-
"@subsquid/util-internal": "3.3.0-
|
|
20
|
-
"
|
|
19
|
+
"@subsquid/util-internal": "3.3.0-2-0.3887d2",
|
|
20
|
+
"@subsquid/util-timeout": "2.3.3-2-0.3887d2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"
|
|
24
|
-
"typescript": "~5.3.2"
|
|
23
|
+
"typescript": "~5.5.4"
|
|
25
24
|
},
|
|
26
25
|
"scripts": {
|
|
27
26
|
"build": "rm -rf lib && tsc"
|
package/src/client.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import type {Logger} from '@subsquid/logger'
|
|
2
|
-
import {createLogger} from '@subsquid/logger'
|
|
3
2
|
import {addErrorContext, ensureError, wait} from '@subsquid/util-internal'
|
|
4
|
-
import type {Headers, RequestInit, Response} from 'node-fetch'
|
|
5
|
-
import {AgentProvider, defaultAgentProvider} from './agent'
|
|
6
3
|
import {HttpBody} from './body'
|
|
7
|
-
import {
|
|
8
|
-
|
|
4
|
+
import {addStreamTimeout} from '@subsquid/util-timeout'
|
|
9
5
|
|
|
10
6
|
export {HttpBody}
|
|
11
7
|
|
|
12
|
-
|
|
13
8
|
export interface HttpClientOptions {
|
|
14
|
-
agent?: AgentProvider
|
|
15
9
|
baseUrl?: string
|
|
16
10
|
headers?: Record<string, string | number | bigint>
|
|
17
11
|
/**
|
|
@@ -21,23 +15,27 @@ export interface HttpClientOptions {
|
|
|
21
15
|
* Overall request processing time might be much larger due to retries.
|
|
22
16
|
*/
|
|
23
17
|
httpTimeout?: number
|
|
18
|
+
bodyTimeout?: number
|
|
24
19
|
retryAttempts?: number
|
|
25
20
|
retrySchedule?: number[]
|
|
21
|
+
keepalive?: boolean
|
|
22
|
+
|
|
26
23
|
log?: Logger | null
|
|
24
|
+
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
|
|
30
27
|
export interface RequestOptions {
|
|
31
28
|
query?: Record<string, string | number | bigint>
|
|
32
29
|
headers?: HeadersInit
|
|
33
30
|
retryAttempts?: number
|
|
34
31
|
retrySchedule?: number[]
|
|
35
32
|
httpTimeout?: number
|
|
33
|
+
bodyTimeout?: number
|
|
36
34
|
abort?: AbortSignal
|
|
37
35
|
stream?: boolean
|
|
36
|
+
keepalive?: boolean
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
|
|
41
39
|
export interface GraphqlRequestOptions extends RequestOptions {
|
|
42
40
|
variables?: Record<string, any>
|
|
43
41
|
url?: string
|
|
@@ -45,52 +43,54 @@ export interface GraphqlRequestOptions extends RequestOptions {
|
|
|
45
43
|
stream?: false
|
|
46
44
|
}
|
|
47
45
|
|
|
48
|
-
|
|
49
46
|
export interface FetchRequest extends RequestInit {
|
|
50
47
|
id: number
|
|
51
48
|
url: string
|
|
52
49
|
headers: Headers
|
|
53
50
|
timeout?: number
|
|
51
|
+
bodyTimeout?: number
|
|
54
52
|
signal?: AbortSignal
|
|
55
53
|
stream?: boolean
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
|
|
59
56
|
export type FetchResponse = Response
|
|
60
57
|
|
|
61
|
-
|
|
62
58
|
export class HttpClient {
|
|
63
59
|
protected log?: Logger
|
|
64
60
|
protected headers?: Record<string, string | number | bigint>
|
|
65
61
|
private baseUrl?: string
|
|
66
|
-
private agent: AgentProvider
|
|
67
62
|
private retrySchedule: number[]
|
|
68
63
|
private retryAttempts: number
|
|
69
64
|
private httpTimeout: number
|
|
65
|
+
private bodyTimeout?: number
|
|
70
66
|
private requestCounter = 0
|
|
67
|
+
private keepalive?: boolean
|
|
68
|
+
private fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>
|
|
71
69
|
|
|
72
70
|
constructor(options: HttpClientOptions = {}) {
|
|
73
|
-
this.log = options.log === null ? undefined : options.log
|
|
71
|
+
this.log = options.log === null ? undefined : options.log
|
|
74
72
|
this.headers = options.headers
|
|
75
73
|
this.setBaseUrl(options.baseUrl)
|
|
76
|
-
this.agent = options.agent || defaultAgentProvider
|
|
77
74
|
this.retrySchedule = options.retrySchedule || [10, 100, 500, 2000, 10000, 20000]
|
|
78
75
|
this.retryAttempts = options.retryAttempts || 0
|
|
79
76
|
this.httpTimeout = options.httpTimeout ?? 20000
|
|
77
|
+
this.bodyTimeout = options.bodyTimeout
|
|
78
|
+
this.keepalive = options.keepalive
|
|
79
|
+
this.fetch = options.fetch || fetch
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
get<T=any>(url: string, options?: RequestOptions): Promise<T> {
|
|
83
|
-
return this.request('GET', url, options).then(res => res.body)
|
|
82
|
+
get<T = any>(url: string, options?: RequestOptions): Promise<T> {
|
|
83
|
+
return this.request('GET', url, options).then((res) => res.body)
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
post<T=any>(url: string, options?: RequestOptions & HttpBody): Promise<T> {
|
|
87
|
-
return this.request('POST', url, options).then(res => res.body)
|
|
86
|
+
post<T = any>(url: string, options?: RequestOptions & HttpBody): Promise<T> {
|
|
87
|
+
return this.request('POST', url, options).then((res) => res.body)
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
async request<T=any>(
|
|
90
|
+
async request<T = any>(
|
|
91
91
|
method: string,
|
|
92
92
|
url: string,
|
|
93
|
-
options: RequestOptions & HttpBody = {}
|
|
93
|
+
options: RequestOptions & HttpBody = {}
|
|
94
94
|
): Promise<HttpResponse<T>> {
|
|
95
95
|
let req = await this.prepareRequest(method, url, options)
|
|
96
96
|
|
|
@@ -106,11 +106,8 @@ export class HttpClient {
|
|
|
106
106
|
if (retryAttempts > retries && this.isRetryableError(res, req)) {
|
|
107
107
|
let pause = asRetryAfterPause(res)
|
|
108
108
|
if (pause == null) {
|
|
109
|
-
pause = retrySchedule.length
|
|
110
|
-
? retrySchedule[Math.min(retries, retrySchedule.length - 1)]
|
|
111
|
-
: 1000
|
|
109
|
+
pause = retrySchedule.length ? retrySchedule[Math.min(retries, retrySchedule.length - 1)] : 1000
|
|
112
110
|
}
|
|
113
|
-
// FIXME: should we count retries if there is retry-after header in response?
|
|
114
111
|
retries += 1
|
|
115
112
|
this.beforeRetryPause(req, res, pause)
|
|
116
113
|
await wait(pause, req.signal)
|
|
@@ -127,13 +124,16 @@ export class HttpClient {
|
|
|
127
124
|
|
|
128
125
|
protected beforeRequest(req: FetchRequest): void {
|
|
129
126
|
if (this.log?.isDebug()) {
|
|
130
|
-
this.log.debug(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
127
|
+
this.log.debug(
|
|
128
|
+
{
|
|
129
|
+
httpRequestId: req.id,
|
|
130
|
+
httpRequestUrl: req.url,
|
|
131
|
+
httpRequestMethod: req.method,
|
|
132
|
+
httpRequestHeaders: Array.from(req.headers),
|
|
133
|
+
httpRequestBody: req.body,
|
|
134
|
+
},
|
|
135
|
+
'http request'
|
|
136
|
+
)
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -142,7 +142,8 @@ export class HttpClient {
|
|
|
142
142
|
let info: any = {
|
|
143
143
|
httpRequestId: req.id,
|
|
144
144
|
httpRequestUrl: req.url,
|
|
145
|
-
httpRequestMethod: req.method
|
|
145
|
+
httpRequestMethod: req.method,
|
|
146
|
+
httpRequestBody: req.body,
|
|
146
147
|
}
|
|
147
148
|
if (reason instanceof Error) {
|
|
148
149
|
info.reason = reason.toString()
|
|
@@ -159,12 +160,15 @@ export class HttpClient {
|
|
|
159
160
|
|
|
160
161
|
protected afterResponseHeaders(req: FetchRequest, url: string, status: number, headers: Headers): void {
|
|
161
162
|
if (this.log?.isDebug()) {
|
|
162
|
-
this.log.debug(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
163
|
+
this.log.debug(
|
|
164
|
+
{
|
|
165
|
+
httpRequestId: req.id,
|
|
166
|
+
httpResponseUrl: url,
|
|
167
|
+
httpResponseStatus: status,
|
|
168
|
+
httpResponseHeaders: Array.from(headers),
|
|
169
|
+
},
|
|
170
|
+
'http headers'
|
|
171
|
+
)
|
|
168
172
|
}
|
|
169
173
|
}
|
|
170
174
|
|
|
@@ -176,10 +180,13 @@ export class HttpClient {
|
|
|
176
180
|
httpResponseBody = '...body is too long to be logged'
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
|
-
this.log.debug(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
+
this.log.debug(
|
|
184
|
+
{
|
|
185
|
+
httpRequestId: req.id,
|
|
186
|
+
httpResponseBody,
|
|
187
|
+
},
|
|
188
|
+
'http body'
|
|
189
|
+
)
|
|
183
190
|
}
|
|
184
191
|
}
|
|
185
192
|
|
|
@@ -188,17 +195,16 @@ export class HttpClient {
|
|
|
188
195
|
url: string,
|
|
189
196
|
options: RequestOptions & HttpBody
|
|
190
197
|
): Promise<FetchRequest> {
|
|
191
|
-
await nodeFetch.load()
|
|
192
|
-
|
|
193
198
|
let req: FetchRequest = {
|
|
194
199
|
id: this.requestCounter++,
|
|
195
200
|
method,
|
|
196
|
-
headers: new
|
|
201
|
+
headers: new Headers(options.headers),
|
|
197
202
|
url: this.getAbsUrl(url),
|
|
198
203
|
signal: options.abort,
|
|
199
|
-
compress: true,
|
|
200
204
|
timeout: options.httpTimeout ?? this.httpTimeout,
|
|
201
|
-
|
|
205
|
+
bodyTimeout: options.bodyTimeout ?? this.bodyTimeout,
|
|
206
|
+
stream: options.stream,
|
|
207
|
+
keepalive: options.keepalive ?? this.keepalive,
|
|
202
208
|
}
|
|
203
209
|
|
|
204
210
|
this.handleBasicAuth(req)
|
|
@@ -212,18 +218,14 @@ export class HttpClient {
|
|
|
212
218
|
}
|
|
213
219
|
}
|
|
214
220
|
|
|
215
|
-
req.agent = this.agent.getNativeAgent(req.url)
|
|
216
|
-
|
|
217
221
|
if (options.content !== undefined) {
|
|
218
222
|
if (typeof options.content == 'string') {
|
|
219
223
|
req.body = options.content
|
|
220
224
|
if (!req.headers.has('content-type')) {
|
|
221
225
|
req.headers.set('content-type', 'text/plain')
|
|
222
226
|
}
|
|
223
|
-
} else if (Buffer.isBuffer(options.content)) {
|
|
224
|
-
req.body = options.content
|
|
225
227
|
} else {
|
|
226
|
-
req.body =
|
|
228
|
+
req.body = options.content
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
231
|
|
|
@@ -236,7 +238,7 @@ export class HttpClient {
|
|
|
236
238
|
|
|
237
239
|
for (let name in this.headers) {
|
|
238
240
|
if (!req.headers.has(name)) {
|
|
239
|
-
req.headers.set(name, ''+this.headers[name])
|
|
241
|
+
req.headers.set(name, '' + this.headers[name])
|
|
240
242
|
}
|
|
241
243
|
}
|
|
242
244
|
|
|
@@ -271,38 +273,31 @@ export class HttpClient {
|
|
|
271
273
|
|
|
272
274
|
let res: HttpResponse | undefined
|
|
273
275
|
try {
|
|
274
|
-
return res = await this.performRequest({...req, signal: ac.signal})
|
|
275
|
-
} catch(err: any) {
|
|
276
|
+
return (res = await this.performRequest({...req, signal: ac.signal}))
|
|
277
|
+
} catch (err: any) {
|
|
276
278
|
if (timer == null) {
|
|
277
279
|
throw new HttpTimeoutError(req.timeout)
|
|
278
280
|
} else {
|
|
279
281
|
throw err
|
|
280
282
|
}
|
|
281
283
|
} finally {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
285
|
-
if (req.signal && res?.stream) {
|
|
286
|
-
// FIXME: is `close` always emitted?
|
|
287
|
-
(res.body as NodeJS.ReadableStream).on('close', () => {
|
|
288
|
-
req.signal!.removeEventListener('abort', abort)
|
|
289
|
-
})
|
|
290
|
-
} else {
|
|
291
|
-
req.signal?.removeEventListener('abort', abort)
|
|
292
|
-
}
|
|
284
|
+
clearTimeout(timer)
|
|
285
|
+
req.signal?.removeEventListener('abort', abort)
|
|
293
286
|
}
|
|
294
287
|
}
|
|
295
288
|
|
|
296
289
|
private async performRequest(req: FetchRequest): Promise<HttpResponse> {
|
|
297
|
-
let res = await
|
|
290
|
+
let res = await this.fetch(req.url, req)
|
|
298
291
|
this.afterResponseHeaders(req, res.url, res.status, res.headers)
|
|
299
|
-
let
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
292
|
+
let body = await this.handleResponseBody(req, res)
|
|
293
|
+
let httpResponse = new HttpResponse(
|
|
294
|
+
req.id,
|
|
295
|
+
res.url,
|
|
296
|
+
res.status,
|
|
297
|
+
res.headers,
|
|
298
|
+
body,
|
|
299
|
+
body instanceof ReadableStream
|
|
300
|
+
)
|
|
306
301
|
this.afterResponse(req, httpResponse)
|
|
307
302
|
return httpResponse
|
|
308
303
|
}
|
|
@@ -310,6 +305,15 @@ export class HttpClient {
|
|
|
310
305
|
protected async handleResponseBody(req: FetchRequest, res: FetchResponse): Promise<any> {
|
|
311
306
|
let contentType = (res.headers.get('content-type') || '').split(';')[0]
|
|
312
307
|
|
|
308
|
+
if (req.bodyTimeout != null && res.body != null) {
|
|
309
|
+
let body = addStreamTimeout(res.body, req.bodyTimeout, () => new HttpBodyTimeoutError(req.bodyTimeout!))
|
|
310
|
+
res = new Response(body, res)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (req.stream && res.ok && res.body != null) {
|
|
314
|
+
return res.body
|
|
315
|
+
}
|
|
316
|
+
|
|
313
317
|
if (contentType == 'application/json') {
|
|
314
318
|
return res.json()
|
|
315
319
|
}
|
|
@@ -320,7 +324,7 @@ export class HttpClient {
|
|
|
320
324
|
|
|
321
325
|
let arrayBuffer = await res.arrayBuffer()
|
|
322
326
|
if (arrayBuffer.byteLength == 0) return undefined
|
|
323
|
-
return
|
|
327
|
+
return arrayBuffer
|
|
324
328
|
}
|
|
325
329
|
|
|
326
330
|
isRetryableError(error: HttpResponse | Error, req?: FetchRequest): boolean {
|
|
@@ -330,7 +334,7 @@ export class HttpClient {
|
|
|
330
334
|
error = error.response
|
|
331
335
|
}
|
|
332
336
|
if (error instanceof HttpResponse) {
|
|
333
|
-
switch(error.status) {
|
|
337
|
+
switch (error.status) {
|
|
334
338
|
case 429:
|
|
335
339
|
case 502:
|
|
336
340
|
case 503:
|
|
@@ -344,7 +348,7 @@ export class HttpClient {
|
|
|
344
348
|
return false
|
|
345
349
|
}
|
|
346
350
|
|
|
347
|
-
private getRequestUrlAndAuth(url: string): {url: string
|
|
351
|
+
private getRequestUrlAndAuth(url: string): {url: string; basic?: string} {
|
|
348
352
|
let u = new URL(this.getAbsUrl(url))
|
|
349
353
|
if (u.username || u.password) {
|
|
350
354
|
let basic = btoa(u.username + ':' + u.password)
|
|
@@ -379,7 +383,7 @@ export class HttpClient {
|
|
|
379
383
|
}
|
|
380
384
|
}
|
|
381
385
|
|
|
382
|
-
async graphqlRequest<T=any>(gql: string, options: GraphqlRequestOptions = {}): Promise<T> {
|
|
386
|
+
async graphqlRequest<T = any>(gql: string, options: GraphqlRequestOptions = {}): Promise<T> {
|
|
383
387
|
let {method = 'POST', url = '/', variables, ...reqOptions} = options
|
|
384
388
|
let req: RequestOptions & {json?: any} = reqOptions
|
|
385
389
|
if (method == 'GET') {
|
|
@@ -393,10 +397,10 @@ export class HttpClient {
|
|
|
393
397
|
} else {
|
|
394
398
|
req.json = {
|
|
395
399
|
query: gql,
|
|
396
|
-
variables
|
|
400
|
+
variables,
|
|
397
401
|
}
|
|
398
402
|
}
|
|
399
|
-
let res = await this.request<{data: T
|
|
403
|
+
let res = await this.request<{data: T; errors?: GraphqlMessage[]}>(method, url, req)
|
|
400
404
|
if (res.body.errors?.length) {
|
|
401
405
|
throw new GraphqlError(res.body.errors)
|
|
402
406
|
} else {
|
|
@@ -405,8 +409,7 @@ export class HttpClient {
|
|
|
405
409
|
}
|
|
406
410
|
}
|
|
407
411
|
|
|
408
|
-
|
|
409
|
-
export class HttpResponse<T=any> {
|
|
412
|
+
export class HttpResponse<T = any> {
|
|
410
413
|
constructor(
|
|
411
414
|
public readonly requestId: number,
|
|
412
415
|
public readonly url: string,
|
|
@@ -414,8 +417,7 @@ export class HttpResponse<T=any> {
|
|
|
414
417
|
public readonly headers: Headers,
|
|
415
418
|
public readonly body: T,
|
|
416
419
|
public readonly stream: boolean
|
|
417
|
-
) {
|
|
418
|
-
}
|
|
420
|
+
) {}
|
|
419
421
|
|
|
420
422
|
get ok(): boolean {
|
|
421
423
|
return this.status >= 200 && this.status < 300
|
|
@@ -431,12 +433,11 @@ export class HttpResponse<T=any> {
|
|
|
431
433
|
status: this.status,
|
|
432
434
|
headers: Array.from(this.headers),
|
|
433
435
|
body: this.stream ? undefined : this.body,
|
|
434
|
-
url: this.url
|
|
436
|
+
url: this.url,
|
|
435
437
|
}
|
|
436
438
|
}
|
|
437
439
|
}
|
|
438
440
|
|
|
439
|
-
|
|
440
441
|
export class HttpError extends Error {
|
|
441
442
|
constructor(public readonly response: HttpResponse) {
|
|
442
443
|
super(`Got ${response.status} from ${response.url}`)
|
|
@@ -447,7 +448,6 @@ export class HttpError extends Error {
|
|
|
447
448
|
}
|
|
448
449
|
}
|
|
449
450
|
|
|
450
|
-
|
|
451
451
|
export class HttpTimeoutError extends Error {
|
|
452
452
|
constructor(public readonly ms: number) {
|
|
453
453
|
super(`request timed out after ${ms} ms`)
|
|
@@ -458,13 +458,21 @@ export class HttpTimeoutError extends Error {
|
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
|
|
461
|
+
export class HttpBodyTimeoutError extends Error {
|
|
462
|
+
constructor(ms: number) {
|
|
463
|
+
super(`request body timed out after ${ms} ms`)
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
get name(): string {
|
|
467
|
+
return 'HttpBodyTimeoutError'
|
|
468
|
+
}
|
|
469
|
+
}
|
|
461
470
|
|
|
462
471
|
export interface GraphqlMessage {
|
|
463
472
|
message: string
|
|
464
473
|
path?: (string | number)[]
|
|
465
474
|
}
|
|
466
475
|
|
|
467
|
-
|
|
468
476
|
export class GraphqlError extends Error {
|
|
469
477
|
constructor(public readonly messages: GraphqlMessage[]) {
|
|
470
478
|
super(`GraphQL error: ${messages[0].message}`)
|
|
@@ -475,14 +483,13 @@ export class GraphqlError extends Error {
|
|
|
475
483
|
}
|
|
476
484
|
}
|
|
477
485
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
+
// export function isHttpConnectionError(err: unknown): boolean {
|
|
487
|
+
// return false
|
|
488
|
+
// nodeFetch.isLoaded
|
|
489
|
+
// && err instanceof nodeFetch.FetchError
|
|
490
|
+
// && err.type == 'system'
|
|
491
|
+
// && (err.message.startsWith('request to') || err.code == 'ERR_STREAM_PREMATURE_CLOSE')
|
|
492
|
+
// }
|
|
486
493
|
|
|
487
494
|
export function asRetryAfterPause(res: HttpResponse | Error): number | undefined {
|
|
488
495
|
if (res instanceof HttpError) {
|
|
@@ -498,4 +505,29 @@ export function asRetryAfterPause(res: HttpResponse | Error): number | undefined
|
|
|
498
505
|
return undefined
|
|
499
506
|
}
|
|
500
507
|
|
|
501
|
-
const HTTP_DATE_REGEX =
|
|
508
|
+
const HTTP_DATE_REGEX =
|
|
509
|
+
/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/
|
|
510
|
+
|
|
511
|
+
// ref: https://github.com/sindresorhus/is-network-error/blob/main/index.js
|
|
512
|
+
const errorMessages = new Set([
|
|
513
|
+
'network error', // Chrome
|
|
514
|
+
'Failed to fetch', // Chrome
|
|
515
|
+
'NetworkError when attempting to fetch resource.', // Firefox
|
|
516
|
+
'The Internet connection appears to be offline.', // Safari 16
|
|
517
|
+
'Load failed', // Safari 17+
|
|
518
|
+
'Network request failed', // `cross-fetch`
|
|
519
|
+
'fetch failed', // Undici (Node.js)
|
|
520
|
+
'terminated', // Undici (Node.js)
|
|
521
|
+
])
|
|
522
|
+
|
|
523
|
+
export function isHttpConnectionError(error: unknown) {
|
|
524
|
+
if (error instanceof TypeError) {
|
|
525
|
+
if (error.message === 'Load failed') {
|
|
526
|
+
return error.stack === undefined
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
return errorMessages.has(error.message)
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
return false
|
|
533
|
+
}
|
package/src/index.ts
CHANGED
package/esm.d.ts
DELETED
package/esm.js
DELETED
package/lib/agent.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import * as http from 'http';
|
|
4
|
-
import * as https from 'https';
|
|
5
|
-
export interface AgentProvider {
|
|
6
|
-
getNativeAgent(url: string): http.Agent;
|
|
7
|
-
}
|
|
8
|
-
export declare const defaultAgentProvider: AgentProvider;
|
|
9
|
-
export declare class HttpAgent implements AgentProvider {
|
|
10
|
-
private options;
|
|
11
|
-
private http?;
|
|
12
|
-
private https?;
|
|
13
|
-
constructor(options: https.AgentOptions);
|
|
14
|
-
getNativeAgent(url: string): http.Agent;
|
|
15
|
-
close(): void;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=agent.d.ts.map
|
package/lib/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,aAAa;IAC1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;CAC1C;AAGD,eAAO,MAAM,oBAAoB,EAAE,aAQlC,CAAA;AAGD,qBAAa,SAAU,YAAW,aAAa;IAI/B,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,KAAK,CAAC,CAAa;gBAEP,OAAO,EAAE,KAAK,CAAC,YAAY;IAE/C,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK;IAQvC,KAAK;CAIR"}
|
package/lib/agent.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.HttpAgent = exports.defaultAgentProvider = void 0;
|
|
27
|
-
const http = __importStar(require("http"));
|
|
28
|
-
const https = __importStar(require("https"));
|
|
29
|
-
exports.defaultAgentProvider = {
|
|
30
|
-
getNativeAgent(url) {
|
|
31
|
-
if (url.startsWith('https://')) {
|
|
32
|
-
return https.globalAgent;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return http.globalAgent;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
class HttpAgent {
|
|
40
|
-
constructor(options) {
|
|
41
|
-
this.options = options;
|
|
42
|
-
}
|
|
43
|
-
getNativeAgent(url) {
|
|
44
|
-
if (url.startsWith('https://')) {
|
|
45
|
-
return this.https || (this.https = new https.Agent(this.options));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return this.http || (this.http = new http.Agent(this.options));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
close() {
|
|
52
|
-
this.http?.destroy();
|
|
53
|
-
this.https?.destroy();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.HttpAgent = HttpAgent;
|
|
57
|
-
//# sourceMappingURL=agent.js.map
|
package/lib/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,6CAA8B;AAQjB,QAAA,oBAAoB,GAAkB;IAC/C,cAAc,CAAC,GAAW;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,WAAW,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3B,CAAC;IACL,CAAC;CACJ,CAAA;AAGD,MAAa,SAAS;IAIlB,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD,cAAc,CAAC,GAAW;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAClE,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ;AAlBD,8BAkBC"}
|
package/lib/client.test.d.ts
DELETED
package/lib/client.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":""}
|
package/lib/client.test.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const assert_1 = __importDefault(require("assert"));
|
|
7
|
-
const node_test_1 = require("node:test");
|
|
8
|
-
const client_1 = require("./client");
|
|
9
|
-
(0, node_test_1.it)('basic auth', async () => {
|
|
10
|
-
let client = new client_1.HttpClient();
|
|
11
|
-
let credentials = await client.get('http://hello:world@httpbin.org/basic-auth/hello/world');
|
|
12
|
-
assert_1.default.deepStrictEqual(credentials, { authenticated: true, user: 'hello' });
|
|
13
|
-
});
|
|
14
|
-
//# sourceMappingURL=client.test.js.map
|
package/lib/client.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,yCAA4B;AAC5B,qCAAmC;AAGnC,IAAA,cAAE,EAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IACxB,IAAI,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAA;IAC7B,IAAI,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IAC3F,gBAAM,CAAC,eAAe,CAAC,WAAW,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA"}
|
package/lib/request.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { RequestInit, Response } from 'node-fetch';
|
|
2
|
-
export declare const nodeFetch: {
|
|
3
|
-
load(): Promise<typeof import('node-fetch')>;
|
|
4
|
-
readonly Headers: typeof import("node-fetch").Headers;
|
|
5
|
-
readonly FetchError: typeof import("node-fetch").FetchError;
|
|
6
|
-
readonly isLoaded: boolean;
|
|
7
|
-
request(url: string, init?: RequestInit): Promise<Response>;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=request.d.ts.map
|
package/lib/request.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAA;AAOrD,eAAO,MAAM,SAAS;YACJ,QAAQ,cAAc,YAAY,CAAC,CAAC;;;;iBAe/B,MAAM,SAAS,WAAW,GAAG,QAAQ,QAAQ,CAAC;CAIpE,CAAA"}
|
package/lib/request.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.nodeFetch = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const esm_1 = require("../esm");
|
|
9
|
-
let mod;
|
|
10
|
-
exports.nodeFetch = {
|
|
11
|
-
async load() {
|
|
12
|
-
if (mod)
|
|
13
|
-
return mod;
|
|
14
|
-
return mod = await (0, esm_1.esm)('node-fetch');
|
|
15
|
-
},
|
|
16
|
-
get Headers() {
|
|
17
|
-
(0, assert_1.default)(mod, 'node-fetch ESM is not loaded');
|
|
18
|
-
return mod.Headers;
|
|
19
|
-
},
|
|
20
|
-
get FetchError() {
|
|
21
|
-
(0, assert_1.default)(mod, 'node-fetch ESM is not loaded');
|
|
22
|
-
return mod.FetchError;
|
|
23
|
-
},
|
|
24
|
-
get isLoaded() {
|
|
25
|
-
return !!mod;
|
|
26
|
-
},
|
|
27
|
-
async request(url, init) {
|
|
28
|
-
let m = await exports.nodeFetch.load();
|
|
29
|
-
return m.default(url, init);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=request.js.map
|
package/lib/request.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,gCAA0B;AAG1B,IAAI,GAA4C,CAAA;AAGnC,QAAA,SAAS,GAAG;IACrB,KAAK,CAAC,IAAI;QACN,IAAI,GAAG;YAAE,OAAO,GAAG,CAAA;QACnB,OAAO,GAAG,GAAG,MAAM,IAAA,SAAG,EAA+B,YAAY,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,OAAO;QACP,IAAA,gBAAM,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAC,OAAO,CAAA;IACtB,CAAC;IACD,IAAI,UAAU;QACV,IAAA,gBAAM,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;QAC3C,OAAO,GAAG,CAAC,UAAU,CAAA;IACzB,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,CAAC,CAAC,GAAG,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAkB;QACzC,IAAI,CAAC,GAAG,MAAM,iBAAS,CAAC,IAAI,EAAE,CAAA;QAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;CACJ,CAAA"}
|
package/src/agent.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as http from 'http'
|
|
2
|
-
import * as https from 'https'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export interface AgentProvider {
|
|
6
|
-
getNativeAgent(url: string): http.Agent
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export const defaultAgentProvider: AgentProvider = {
|
|
11
|
-
getNativeAgent(url: string): http.Agent {
|
|
12
|
-
if (url.startsWith('https://')) {
|
|
13
|
-
return https.globalAgent
|
|
14
|
-
} else {
|
|
15
|
-
return http.globalAgent
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export class HttpAgent implements AgentProvider {
|
|
22
|
-
private http?: http.Agent
|
|
23
|
-
private https?: https.Agent
|
|
24
|
-
|
|
25
|
-
constructor(private options: https.AgentOptions) {}
|
|
26
|
-
|
|
27
|
-
getNativeAgent(url: string): http.Agent {
|
|
28
|
-
if (url.startsWith('https://')) {
|
|
29
|
-
return this.https || (this.https = new https.Agent(this.options))
|
|
30
|
-
} else {
|
|
31
|
-
return this.http || (this.http = new http.Agent(this.options))
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
close() {
|
|
36
|
-
this.http?.destroy()
|
|
37
|
-
this.https?.destroy()
|
|
38
|
-
}
|
|
39
|
-
}
|
package/src/client.test.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import {it} from 'node:test'
|
|
3
|
-
import {HttpClient} from './client'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
it('basic auth', async () => {
|
|
7
|
-
let client = new HttpClient()
|
|
8
|
-
let credentials = await client.get('http://hello:world@httpbin.org/basic-auth/hello/world')
|
|
9
|
-
assert.deepStrictEqual(credentials, {authenticated: true, user: 'hello'})
|
|
10
|
-
})
|
package/src/request.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import type {RequestInit, Response} from 'node-fetch'
|
|
3
|
-
import {esm} from '../esm'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
let mod: typeof import('node-fetch') | undefined
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export const nodeFetch = {
|
|
10
|
-
async load(): Promise<typeof import('node-fetch')> {
|
|
11
|
-
if (mod) return mod
|
|
12
|
-
return mod = await esm<typeof import('node-fetch') >('node-fetch')
|
|
13
|
-
},
|
|
14
|
-
get Headers() {
|
|
15
|
-
assert(mod, 'node-fetch ESM is not loaded')
|
|
16
|
-
return mod.Headers
|
|
17
|
-
},
|
|
18
|
-
get FetchError() {
|
|
19
|
-
assert(mod, 'node-fetch ESM is not loaded')
|
|
20
|
-
return mod.FetchError
|
|
21
|
-
},
|
|
22
|
-
get isLoaded() {
|
|
23
|
-
return !!mod
|
|
24
|
-
},
|
|
25
|
-
async request(url: string, init?: RequestInit): Promise<Response> {
|
|
26
|
-
let m = await nodeFetch.load()
|
|
27
|
-
return m.default(url, init)
|
|
28
|
-
}
|
|
29
|
-
}
|