nstarter-http-request 0.1.11 → 0.1.13
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/CHANGELOG.md +6 -0
- package/README.md +1 -2
- package/dist/cjs/adapter/axios.adapter.js +97 -2
- package/dist/cjs/adapter/axios.adapter.js.map +1 -1
- package/dist/cjs/adapter/base.js +20 -1
- package/dist/cjs/adapter/base.js.map +1 -1
- package/dist/cjs/adapter/undici.adapter.js +97 -77
- package/dist/cjs/adapter/undici.adapter.js.map +1 -1
- package/dist/cjs/client.js +99 -56
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/config.js +1 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/const/config.const.js +8 -3
- package/dist/cjs/const/config.const.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/types/errors.js +30 -2
- package/dist/cjs/types/errors.js.map +1 -1
- package/dist/cjs/utils/index.js +2 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/redirect.js +138 -0
- package/dist/cjs/utils/redirect.js.map +1 -0
- package/dist/esm/adapter/axios.adapter.js +99 -4
- package/dist/esm/adapter/axios.adapter.js.map +1 -1
- package/dist/esm/adapter/base.js +20 -1
- package/dist/esm/adapter/base.js.map +1 -1
- package/dist/esm/adapter/undici.adapter.js +98 -78
- package/dist/esm/adapter/undici.adapter.js.map +1 -1
- package/dist/esm/client.js +100 -57
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/config.js +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/const/config.const.js +7 -2
- package/dist/esm/const/config.const.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/types/errors.js +28 -1
- package/dist/esm/types/errors.js.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/redirect.js +133 -0
- package/dist/esm/utils/redirect.js.map +1 -0
- package/dist/types/adapter/axios.adapter.d.ts +22 -0
- package/dist/types/adapter/axios.adapter.d.ts.map +1 -1
- package/dist/types/adapter/base.d.ts +6 -0
- package/dist/types/adapter/base.d.ts.map +1 -1
- package/dist/types/adapter/undici.adapter.d.ts +24 -12
- package/dist/types/adapter/undici.adapter.d.ts.map +1 -1
- package/dist/types/client.d.ts +11 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/const/config.const.d.ts +6 -0
- package/dist/types/const/config.const.d.ts.map +1 -1
- package/dist/types/types/config.d.ts +2 -2
- package/dist/types/types/config.d.ts.map +1 -1
- package/dist/types/types/errors.d.ts +26 -1
- package/dist/types/types/errors.d.ts.map +1 -1
- package/dist/types/types/request_response.d.ts +1 -1
- package/dist/types/types/request_response.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/redirect.d.ts +26 -0
- package/dist/types/utils/redirect.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/adapter/axios.adapter.ts +128 -4
- package/src/adapter/base.ts +22 -1
- package/src/adapter/undici.adapter.ts +112 -91
- package/src/client.ts +114 -63
- package/src/config.ts +1 -1
- package/src/const/config.const.ts +8 -2
- package/src/types/config.ts +2 -3
- package/src/types/errors.ts +39 -1
- package/src/types/request_response.ts +1 -2
- package/src/utils/index.ts +1 -0
- package/src/utils/redirect.ts +163 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
* 0.1.13
|
|
4
|
+
* 第三方请求库不再自行跟跳 3XX,由客户端逐跳重新做 SSRF 校验,避免重定向绕过防护.
|
|
5
|
+
* `undici` 适配器的 `maxResponseBodySize` 改为下载期限制:预检 `Content-Length` 并逐分块累计字节数,超限立即中断,不再先读入内存再比较;`axios` 适配器同步补充 `Content-Length` 预检.
|
|
6
|
+
* 新增 `HttpError` 子类 `ResponseTooLargeError`(错误码与文案不变,不再携带 `response`),`HttpError` 新增 `retriable` 属性(默认 `true`),为 `false` 时不再重试,响应体超限不再重试.
|
|
7
|
+
* 修复 `undici` 适配器在 HEAD / 204 / 304 携带 `Content-Length` 时挂起,以及请求结束后未关闭 `Agent` / `ProxyAgent` 的问题.
|
|
8
|
+
|
|
3
9
|
* 0.1.11
|
|
4
10
|
* 去掉 DNS 校验通过后自动补充 `Host` 头的重绑定防护逻辑,避免非默认端口请求被改写为裸域名后命中错误网关路由.
|
|
5
11
|
|
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ const client = new NsHttpClient({
|
|
|
143
143
|
enabled: true
|
|
144
144
|
},
|
|
145
145
|
request: {
|
|
146
|
-
timeout: 30000,
|
|
146
|
+
timeout: 30000, // 显式设置 30 秒;默认不配置表示不限制请求超时
|
|
147
147
|
retries: 3
|
|
148
148
|
}
|
|
149
149
|
});
|
|
@@ -154,4 +154,3 @@ const client = new NsHttpClient({
|
|
|
154
154
|
完整配置、安全、日志、代理、适配器、W3C Trace Context 等说明已统一放在使用文档站点,请查看:
|
|
155
155
|
|
|
156
156
|
- [nstarter-http-request 插件文档](https://nstarter-docs.jdydevelop.com/docs/extension/plugins/http-request/)
|
|
157
|
-
|
|
@@ -46,6 +46,7 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
46
46
|
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
47
47
|
const https = __importStar(require("https"));
|
|
48
48
|
const const_1 = require("../const");
|
|
49
|
+
const utils_1 = require("../utils");
|
|
49
50
|
/**
|
|
50
51
|
* Axios 适配器
|
|
51
52
|
*/
|
|
@@ -69,7 +70,9 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
|
|
|
69
70
|
throw new Error('Axios is not available. Please install it: npm install axios');
|
|
70
71
|
}
|
|
71
72
|
const url = this.buildUrl(options.url, options.params);
|
|
73
|
+
const timeout = options.timeout ?? this.requestConfig.timeout;
|
|
72
74
|
const axiosConfig = this.buildAxiosConfig(options, url);
|
|
75
|
+
const signalState = this.buildAxiosSignals(axiosConfig, options, timeout);
|
|
73
76
|
try {
|
|
74
77
|
const startTime = Date.now();
|
|
75
78
|
const axiosResponse = await (0, axios_1.default)(axiosConfig);
|
|
@@ -91,8 +94,64 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
|
|
|
91
94
|
return response;
|
|
92
95
|
}
|
|
93
96
|
catch (error) {
|
|
94
|
-
throw this.handleAxiosError(error, options);
|
|
97
|
+
throw signalState.abortError() ?? this.handleAxiosError(error, options);
|
|
95
98
|
}
|
|
99
|
+
finally {
|
|
100
|
+
signalState.cleanup();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 创建整次请求超时与响应体超限两个中止信号,合并后写入 axiosConfig(原地修改)。
|
|
105
|
+
* 返回 catch 中还原中止原因的 abortError(非本方法中止时返回 undefined),以及 finally 中清理定时器的 cleanup。
|
|
106
|
+
*/
|
|
107
|
+
buildAxiosSignals(axiosConfig, options, timeout) {
|
|
108
|
+
// maxRedirects 为 0 时 axios 使用原生 http 而不是 follow-redirects。
|
|
109
|
+
// 原生 timeout 是套接字空闲超时,在比如持续上传的场景下会被不断重置,需要使用中止信号来结束请求。
|
|
110
|
+
const deadline = this.createDeadline(timeout);
|
|
111
|
+
const bodySizeGuard = this.createBodySizeGuard(options);
|
|
112
|
+
const signals = [deadline.signal, bodySizeGuard.signal].filter((item) => !!item);
|
|
113
|
+
axiosConfig.signal = signals.length > 1 ? AbortSignal.any(signals) : signals[0];
|
|
114
|
+
axiosConfig.onDownloadProgress = bodySizeGuard.onDownloadProgress;
|
|
115
|
+
return {
|
|
116
|
+
abortError: () => {
|
|
117
|
+
if (deadline.timedOut()) {
|
|
118
|
+
return new types_1.HttpError(`timeout of ${timeout}ms exceeded`, 'ECONNABORTED', undefined, undefined, options);
|
|
119
|
+
}
|
|
120
|
+
if (bodySizeGuard.exceeded()) {
|
|
121
|
+
return new types_1.ResponseTooLargeError(this.requestConfig.maxResponseBodySize, options);
|
|
122
|
+
}
|
|
123
|
+
return undefined;
|
|
124
|
+
},
|
|
125
|
+
cleanup: deadline.cleanup
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 创建 Content-Length 预检。
|
|
130
|
+
*
|
|
131
|
+
* axios 的 Node http 适配器只按已收到的分块累计 maxContentLength,响应头已声明超限时仍会下载到上限才中断。
|
|
132
|
+
* 这里借助 onDownloadProgress 的 total(响应头 Content-Length),在首个分块到达时就中止请求。
|
|
133
|
+
* - 无 Content-Length(chunked)时不触发,由 axios 的分块累计兜底;
|
|
134
|
+
* - stream 响应不启用,避免额外插入转换流;
|
|
135
|
+
* - total 是线上字节,对几乎不可压缩的 gzip 响应可能略大于解压后的大小,
|
|
136
|
+
* 因此比较时保留 MAX_RESPONSE_SIZE_TOLERANCE_RATIO 的容差。
|
|
137
|
+
*/
|
|
138
|
+
createBodySizeGuard(options) {
|
|
139
|
+
const maxRespBodySize = this.resolveMaxResponseBodySize();
|
|
140
|
+
if (options.responseType === 'stream' || maxRespBodySize === undefined) {
|
|
141
|
+
return { exceeded: () => false };
|
|
142
|
+
}
|
|
143
|
+
const controller = new AbortController();
|
|
144
|
+
let exceeded = false;
|
|
145
|
+
return {
|
|
146
|
+
signal: controller.signal,
|
|
147
|
+
onDownloadProgress: (event) => {
|
|
148
|
+
if (typeof event.total === 'number' && event.total > maxRespBodySize + Math.ceil(maxRespBodySize * const_1.MAX_RESPONSE_SIZE_TOLERANCE_RATIO)) {
|
|
149
|
+
exceeded = true;
|
|
150
|
+
controller.abort();
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
exceeded: () => exceeded
|
|
154
|
+
};
|
|
96
155
|
}
|
|
97
156
|
/**
|
|
98
157
|
* 构建 Axios 配置
|
|
@@ -104,14 +163,20 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
|
|
|
104
163
|
method: options.method.toLowerCase(),
|
|
105
164
|
url,
|
|
106
165
|
headers: options.headers || {},
|
|
107
|
-
timeout: options.timeout ?? this.requestConfig.timeout,
|
|
108
166
|
maxRedirects: this.requestConfig.maxRedirects,
|
|
167
|
+
validateStatus: (status) => {
|
|
168
|
+
return (status >= 200 && status < 300) || status === 304 || utils_1.RedirectUtils.isRedirectStatus(status);
|
|
169
|
+
},
|
|
109
170
|
maxContentLength: this.requestConfig.maxResponseBodySize,
|
|
110
171
|
maxBodyLength: this.requestConfig.maxRequestBodySize,
|
|
111
172
|
httpsAgent: new https.Agent({
|
|
112
173
|
rejectUnauthorized: this.securityConfig.rejectUnauthorized
|
|
113
174
|
})
|
|
114
175
|
};
|
|
176
|
+
const timeout = options.timeout ?? this.requestConfig.timeout;
|
|
177
|
+
if (timeout !== undefined) {
|
|
178
|
+
axiosConfig.timeout = timeout;
|
|
179
|
+
}
|
|
115
180
|
// 设置请求体
|
|
116
181
|
if (options.body !== undefined) {
|
|
117
182
|
axiosConfig.data = options.body;
|
|
@@ -189,6 +254,11 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
|
|
|
189
254
|
* @param options 请求选项
|
|
190
255
|
*/
|
|
191
256
|
handleAxiosError(error, options) {
|
|
257
|
+
// axios 没有为 maxContentLength 超限提供专用错误码(与 5xx 共用 ERR_BAD_RESPONSE),
|
|
258
|
+
// 只能靠固定的消息前缀识别,识别后转成不可重试的 ResponseTooLargeError。
|
|
259
|
+
if (error.isAxiosError && error.code === 'ERR_BAD_RESPONSE' && error.message.startsWith('maxContentLength size of')) {
|
|
260
|
+
return new types_1.ResponseTooLargeError(this.requestConfig.maxResponseBodySize, options);
|
|
261
|
+
}
|
|
192
262
|
if (error.isAxiosError) {
|
|
193
263
|
return new types_1.HttpError(error.message, error.code || 'AXIOS_ERROR', error.response?.status, error.response ? {
|
|
194
264
|
status: error.response.status,
|
|
@@ -218,6 +288,31 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
|
|
|
218
288
|
}
|
|
219
289
|
return config;
|
|
220
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* 按墙钟时间中止请求,到点后 timedOut 为 true
|
|
293
|
+
* @param timeout 超时时间,单位毫秒
|
|
294
|
+
* @returns 中止信号、是否超时、清理函数
|
|
295
|
+
*/
|
|
296
|
+
createDeadline(timeout) {
|
|
297
|
+
if (typeof timeout !== 'number' || !Number.isFinite(timeout) || timeout <= 0) {
|
|
298
|
+
return {
|
|
299
|
+
timedOut: () => false,
|
|
300
|
+
cleanup: () => undefined
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const controller = new AbortController();
|
|
304
|
+
let timedOut = false;
|
|
305
|
+
const timer = setTimeout(() => {
|
|
306
|
+
timedOut = true;
|
|
307
|
+
controller.abort();
|
|
308
|
+
}, timeout);
|
|
309
|
+
timer.unref?.();
|
|
310
|
+
return {
|
|
311
|
+
signal: controller.signal,
|
|
312
|
+
timedOut: () => timedOut,
|
|
313
|
+
cleanup: () => clearTimeout(timer)
|
|
314
|
+
};
|
|
315
|
+
}
|
|
221
316
|
}
|
|
222
317
|
exports.AxiosAdapter = AxiosAdapter;
|
|
223
318
|
//# sourceMappingURL=axios.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios.adapter.js","sourceRoot":"","sources":["../../../src/adapter/axios.adapter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOH,
|
|
1
|
+
{"version":3,"file":"axios.adapter.js","sourceRoot":"","sources":["../../../src/adapter/axios.adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/adapter/base.js
CHANGED
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BaseHttpAdapter = void 0;
|
|
7
|
+
const types_1 = require("../types");
|
|
7
8
|
const utils_1 = require("../utils");
|
|
8
9
|
/**
|
|
9
10
|
* HTTP 适配器抽象基类
|
|
11
|
+
*
|
|
12
|
+
* g-7114106599:不允许直接跟跳3XX,防止SSRF。调用方需要自行处理 3XX 响应。
|
|
10
13
|
*/
|
|
11
14
|
class BaseHttpAdapter {
|
|
12
15
|
constructor(requestConfig, securityConfig, logger) {
|
|
13
|
-
this.requestConfig = requestConfig;
|
|
16
|
+
this.requestConfig = { ...requestConfig, maxRedirects: 0 };
|
|
14
17
|
this.securityConfig = securityConfig;
|
|
15
18
|
this.logger = logger;
|
|
16
19
|
}
|
|
@@ -52,6 +55,15 @@ class BaseHttpAdapter {
|
|
|
52
55
|
url: options.url,
|
|
53
56
|
error: error instanceof Error ? error.message : String(error)
|
|
54
57
|
});
|
|
58
|
+
// 默认所有错误均可重试;仅在 HttpError 的 retriable 为 false 时终止重试
|
|
59
|
+
if (error instanceof types_1.HttpError && !error.retriable) {
|
|
60
|
+
this.logger?.debug('HTTP request error is not retriable, skip remaining retries', {
|
|
61
|
+
method: options.method,
|
|
62
|
+
url: options.url,
|
|
63
|
+
attempt: attempt + 1
|
|
64
|
+
});
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
55
67
|
// 最后一次尝试,不再重试
|
|
56
68
|
if (attempt === retries) {
|
|
57
69
|
break;
|
|
@@ -69,6 +81,13 @@ class BaseHttpAdapter {
|
|
|
69
81
|
});
|
|
70
82
|
throw lastError;
|
|
71
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* @returns 有效的响应体大小上限;不限制时返回 undefined
|
|
86
|
+
*/
|
|
87
|
+
resolveMaxResponseBodySize() {
|
|
88
|
+
const max = this.requestConfig.maxResponseBodySize;
|
|
89
|
+
return typeof max === 'number' && max > 0 ? max : undefined;
|
|
90
|
+
}
|
|
72
91
|
/**
|
|
73
92
|
* 更新请求配置
|
|
74
93
|
* @param config 新的请求配置
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/adapter/base.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAUH,oCAAuC;AAGvC
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/adapter/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ const base_1 = require("./base");
|
|
|
42
42
|
const undici_1 = __importStar(require("undici"));
|
|
43
43
|
const http_1 = require("http");
|
|
44
44
|
const const_1 = require("../const");
|
|
45
|
+
const utils_1 = require("../utils");
|
|
45
46
|
/**
|
|
46
47
|
* Undici 适配器
|
|
47
48
|
*/
|
|
@@ -68,7 +69,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
68
69
|
const headers = this.prepareHeaders(options.headers);
|
|
69
70
|
const body = this.prepareBody(options.body, headers);
|
|
70
71
|
const timeoutState = this.createRequestTimeoutState(options);
|
|
71
|
-
const dispatcher = this.buildDispatcher(options
|
|
72
|
+
const dispatcher = this.buildDispatcher(options);
|
|
72
73
|
const undiciOptions = this.buildUndiciOptions(options, headers, body, dispatcher, timeoutState);
|
|
73
74
|
try {
|
|
74
75
|
const startTime = Date.now();
|
|
@@ -83,7 +84,8 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
83
84
|
if (options.responseType === 'stream') {
|
|
84
85
|
timeoutState.cleanup();
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
+
// 读取过程中会按 maxResponseBodySize 提前拒绝/中断,超限时不会把完整响应体读入内存
|
|
88
|
+
const data = await this.readResponseBody(response, options);
|
|
87
89
|
const httpResponse = {
|
|
88
90
|
status: response.statusCode,
|
|
89
91
|
statusText: this.getStatusText(response.statusCode),
|
|
@@ -91,7 +93,6 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
91
93
|
data,
|
|
92
94
|
config: options
|
|
93
95
|
};
|
|
94
|
-
this.ensureResponseBodySize(httpResponse, options.responseType);
|
|
95
96
|
this.ensureSuccessStatus(httpResponse);
|
|
96
97
|
return httpResponse;
|
|
97
98
|
}
|
|
@@ -103,6 +104,8 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
103
104
|
}
|
|
104
105
|
finally {
|
|
105
106
|
timeoutState.cleanup();
|
|
107
|
+
// buildDispatcher 为每个请求单独创建 Agent/ProxyAgent,用完需要关闭,否则连接池与 keep-alive 连接会一直保留。
|
|
108
|
+
dispatcher?.close().catch(() => undefined);
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
/**
|
|
@@ -152,14 +155,14 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
152
155
|
/**
|
|
153
156
|
* 构建 Dispatcher(代理或 TLS 配置)
|
|
154
157
|
* @param options 请求选项
|
|
155
|
-
* @param timeout 请求总超时时间
|
|
156
158
|
*/
|
|
157
|
-
buildDispatcher(options
|
|
159
|
+
buildDispatcher(options) {
|
|
158
160
|
let dispatcher;
|
|
161
|
+
const timeout = this.resolveUndiciTimeout(options);
|
|
159
162
|
// 如果 rejectUnauthorized 为 false,需要创建 Agent 来设置 TLS 选项
|
|
160
163
|
if (!this.securityConfig.rejectUnauthorized) {
|
|
161
164
|
dispatcher = new undici_1.Agent({
|
|
162
|
-
|
|
165
|
+
connectTimeout: timeout,
|
|
163
166
|
connect: {
|
|
164
167
|
rejectUnauthorized: false
|
|
165
168
|
}
|
|
@@ -190,7 +193,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
190
193
|
}
|
|
191
194
|
const agent = new undici_1.ProxyAgent({
|
|
192
195
|
uri: proxyUrl,
|
|
193
|
-
|
|
196
|
+
connectTimeout: timeout,
|
|
194
197
|
connect: {
|
|
195
198
|
rejectUnauthorized: this.securityConfig.rejectUnauthorized
|
|
196
199
|
}
|
|
@@ -211,7 +214,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
211
214
|
createForwardProxyAgent(proxyUrl, timeout) {
|
|
212
215
|
const agent = new undici_1.ProxyAgent({
|
|
213
216
|
uri: proxyUrl,
|
|
214
|
-
|
|
217
|
+
connectTimeout: timeout,
|
|
215
218
|
connect: {
|
|
216
219
|
rejectUnauthorized: this.securityConfig.rejectUnauthorized
|
|
217
220
|
}
|
|
@@ -226,7 +229,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
226
229
|
* 构建 Undici 请求选项
|
|
227
230
|
*/
|
|
228
231
|
buildUndiciOptions(options, headers, body, dispatcher, timeoutState) {
|
|
229
|
-
const timeout = this.
|
|
232
|
+
const timeout = this.resolveUndiciTimeout(options);
|
|
230
233
|
return {
|
|
231
234
|
method: options.method,
|
|
232
235
|
headers,
|
|
@@ -246,6 +249,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
246
249
|
const timeout = this.resolveTimeout(options);
|
|
247
250
|
if (!this.isPositiveTimeout(timeout)) {
|
|
248
251
|
return {
|
|
252
|
+
timeout,
|
|
249
253
|
timedOut: false,
|
|
250
254
|
cleanup: () => { }
|
|
251
255
|
};
|
|
@@ -272,6 +276,13 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
272
276
|
resolveTimeout(options) {
|
|
273
277
|
return options.timeout ?? this.requestConfig.timeout;
|
|
274
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* 获取传给 undici 的阶段超时时间。0 用于内部禁用 undici 默认阶段超时。
|
|
281
|
+
*/
|
|
282
|
+
resolveUndiciTimeout(options) {
|
|
283
|
+
const timeout = this.resolveTimeout(options);
|
|
284
|
+
return this.isPositiveTimeout(timeout) ? timeout : 0;
|
|
285
|
+
}
|
|
275
286
|
/**
|
|
276
287
|
* 判断超时时间是否启用。
|
|
277
288
|
*/
|
|
@@ -294,117 +305,126 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
|
|
|
294
305
|
return new types_1.HttpError(errorMessage, errorCode, undefined, undefined, options);
|
|
295
306
|
}
|
|
296
307
|
/**
|
|
297
|
-
*
|
|
308
|
+
* 2xx 和 304 作为成功结果返回。undici 未跟跳的 3xx 交回调用方。
|
|
298
309
|
*/
|
|
299
310
|
ensureSuccessStatus(response) {
|
|
300
|
-
if (response.status >= 200 && response.status < 300)
|
|
311
|
+
if ((response.status >= 200 && response.status < 300)
|
|
312
|
+
|| response.status === 304
|
|
313
|
+
|| utils_1.RedirectUtils.isRedirectStatus(response.status)) {
|
|
301
314
|
return;
|
|
302
315
|
}
|
|
303
316
|
throw new types_1.HttpError(`Request failed with status code ${response.status}`, response.status >= 500 ? 'ERR_BAD_RESPONSE' : 'ERR_BAD_REQUEST', response.status, response, response.config);
|
|
304
317
|
}
|
|
305
318
|
/**
|
|
306
|
-
*
|
|
319
|
+
* 解析 Content-Length 响应头。仅接受合法的非负整数,重复头/非法值视为未知。
|
|
307
320
|
*/
|
|
308
|
-
|
|
309
|
-
if (
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
|
-
const maxResponseBodySize = this.requestConfig.maxResponseBodySize;
|
|
313
|
-
if (typeof maxResponseBodySize !== 'number' ||
|
|
314
|
-
!Number.isFinite(maxResponseBodySize) ||
|
|
315
|
-
maxResponseBodySize <= 0) {
|
|
316
|
-
// NsHttpClient 会先做配置合并和校验;这里防御直接实例化 Adapter 的异常配置。
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
const bodySize = this.getBodySize(response.data);
|
|
320
|
-
if (bodySize <= maxResponseBodySize) {
|
|
321
|
-
return;
|
|
321
|
+
parseContentLength(value) {
|
|
322
|
+
if (typeof value !== 'string' || !/^\d+$/.test(value.trim())) {
|
|
323
|
+
return undefined;
|
|
322
324
|
}
|
|
323
|
-
|
|
325
|
+
const length = Number(value.trim());
|
|
326
|
+
return Number.isSafeInteger(length) ? length : undefined;
|
|
324
327
|
}
|
|
325
328
|
/**
|
|
326
|
-
*
|
|
329
|
+
* 丢弃未读完的响应体并终止下载。
|
|
330
|
+
* undici 的 BodyReadable.destroy() 不带错误时会以 RequestAbortedError 触发 error 事件,
|
|
331
|
+
* 没有监听器会变成未捕获异常,因此先挂空监听器。
|
|
327
332
|
*/
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
333
|
+
discardBody(response) {
|
|
334
|
+
response.body.on('error', () => undefined);
|
|
335
|
+
response.body.destroy();
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* 带大小上限地读取非流式响应体。
|
|
339
|
+
*
|
|
340
|
+
* 1. Content-Length 预检:响应头已声明超限时,不读取响应体,直接销毁并拒绝。
|
|
341
|
+
* 2. 逐分块累计字节数,累计值超过上限(等于上限放行)立即销毁响应流并拒绝,后续数据不再下载;
|
|
342
|
+
* 该行为对齐 axios(Node http 适配器)的 maxContentLength。
|
|
343
|
+
*/
|
|
344
|
+
async readBodyWithLimit(response, options) {
|
|
345
|
+
const maxRespBodySize = this.resolveMaxResponseBodySize();
|
|
346
|
+
// HEAD / 204 / 304 没有响应体,其 Content-Length 描述的是对应实体而不是本次响应体:
|
|
347
|
+
// 不能用于预检;服务端携带时 undici 还会一直等待并不存在的响应体,因此不进入读取,直接丢弃。
|
|
348
|
+
if (options.method === 'HEAD' || response.statusCode === 204 || response.statusCode === 304) {
|
|
349
|
+
this.discardBody(response);
|
|
350
|
+
return Buffer.alloc(0);
|
|
340
351
|
}
|
|
341
|
-
if (
|
|
342
|
-
|
|
352
|
+
if (maxRespBodySize !== undefined) {
|
|
353
|
+
const contentLength = this.parseContentLength(response.headers['content-length']);
|
|
354
|
+
if (contentLength !== undefined && contentLength > maxRespBodySize) {
|
|
355
|
+
this.discardBody(response);
|
|
356
|
+
throw new types_1.ResponseTooLargeError(maxRespBodySize, options, response.statusCode);
|
|
357
|
+
}
|
|
343
358
|
}
|
|
344
|
-
|
|
345
|
-
|
|
359
|
+
const chunks = [];
|
|
360
|
+
let total = 0;
|
|
361
|
+
for await (const chunk of response.body) {
|
|
362
|
+
const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
363
|
+
total += buffer.byteLength;
|
|
364
|
+
if (maxRespBodySize !== undefined && total > maxRespBodySize) {
|
|
365
|
+
this.discardBody(response);
|
|
366
|
+
throw new types_1.ResponseTooLargeError(maxRespBodySize, options, response.statusCode);
|
|
367
|
+
}
|
|
368
|
+
chunks.push(buffer);
|
|
346
369
|
}
|
|
347
|
-
return Buffer.
|
|
370
|
+
return Buffer.concat(chunks, total);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* 基于已读取(已受大小限制)的字节构造 Response,复用运行时的 blob/formData 解析逻辑。
|
|
374
|
+
*/
|
|
375
|
+
toFetchResponse(buffer, response) {
|
|
376
|
+
const contentType = response.headers['content-type'];
|
|
377
|
+
return new Response(buffer, {
|
|
378
|
+
headers: typeof contentType === 'string' ? { 'content-type': contentType } : undefined
|
|
379
|
+
});
|
|
348
380
|
}
|
|
349
381
|
/**
|
|
350
382
|
* 读取响应体
|
|
351
383
|
* @param response Undici 响应对象
|
|
352
|
-
* @param
|
|
384
|
+
* @param options 请求选项
|
|
353
385
|
*/
|
|
354
|
-
async readResponseBody(response,
|
|
386
|
+
async readResponseBody(response, options) {
|
|
387
|
+
if (options.responseType === 'stream') {
|
|
388
|
+
// undici 返回 BodyReadable (继承自 Node.js Readable),流式响应由调用方自行消费,不受 maxResponseBodySize 限制
|
|
389
|
+
return response.body;
|
|
390
|
+
}
|
|
355
391
|
try {
|
|
356
|
-
|
|
392
|
+
const buffer = await this.readBodyWithLimit(response, options);
|
|
393
|
+
const decoder = new TextDecoder();
|
|
394
|
+
switch (options.responseType) {
|
|
357
395
|
case 'text': {
|
|
358
|
-
return
|
|
396
|
+
return decoder.decode(buffer);
|
|
359
397
|
}
|
|
360
398
|
case 'arraybuffer': {
|
|
361
|
-
return
|
|
362
|
-
}
|
|
363
|
-
case 'stream': {
|
|
364
|
-
// undici 返回 BodyReadable (继承自 Node.js Readable)
|
|
365
|
-
return response.body;
|
|
399
|
+
return buffer;
|
|
366
400
|
}
|
|
367
401
|
case 'blob': {
|
|
368
|
-
return (await response.
|
|
402
|
+
return (await this.toFetchResponse(buffer, response).blob());
|
|
369
403
|
}
|
|
370
404
|
case 'formdata': {
|
|
371
|
-
return (await response.
|
|
372
|
-
}
|
|
373
|
-
case 'json': {
|
|
374
|
-
return await this.readJsonResponseBody(response);
|
|
405
|
+
return (await this.toFetchResponse(buffer, response).formData());
|
|
375
406
|
}
|
|
407
|
+
case 'json':
|
|
376
408
|
default: {
|
|
377
|
-
|
|
409
|
+
// 按 axios 的默认兼容行为:空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常
|
|
410
|
+
const text = decoder.decode(buffer);
|
|
378
411
|
try {
|
|
379
412
|
return JSON.parse(text);
|
|
380
413
|
}
|
|
381
414
|
catch {
|
|
382
|
-
// 如果不是有效的 JSON,返回原文本
|
|
383
415
|
return text;
|
|
384
416
|
}
|
|
385
417
|
}
|
|
386
418
|
}
|
|
387
419
|
}
|
|
388
420
|
catch (error) {
|
|
421
|
+
// 响应体超限错误需要原样抛出,保留错误码、文案与不可重试标记
|
|
422
|
+
if (error instanceof types_1.ResponseTooLargeError) {
|
|
423
|
+
throw error;
|
|
424
|
+
}
|
|
389
425
|
throw new Error(`Failed to read response body: ${error instanceof Error ? error.message : String(error)}`);
|
|
390
426
|
}
|
|
391
427
|
}
|
|
392
|
-
/**
|
|
393
|
-
* 按 axios 的默认兼容行为读取 JSON 响应。
|
|
394
|
-
* 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
|
|
395
|
-
*/
|
|
396
|
-
async readJsonResponseBody(response) {
|
|
397
|
-
const text = await response.body.text();
|
|
398
|
-
if (!text) {
|
|
399
|
-
return text;
|
|
400
|
-
}
|
|
401
|
-
try {
|
|
402
|
-
return JSON.parse(text);
|
|
403
|
-
}
|
|
404
|
-
catch {
|
|
405
|
-
return text;
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
428
|
/**
|
|
409
429
|
* 获取状态文本
|
|
410
430
|
* @param statusCode 状态码
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOH,oCAAqC;AACrC,iCAAyC;AACzC,iDAIgB;AAChB,+BAAoC;AACpC,oCAA0C;AAS1C;;GAEG;AACH,MAAa,aAAc,SAAQ,sBAAe;IAAlD;;QACoB,SAAI,GAAG,sBAAc,CAAC,MAAe,CAAC;IAsb1D,CAAC;IApbG;;OAEG;IACI,WAAW;QACd,OAAO,CAAC,CAAC,gBAAM,CAAC;IACpB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,WAAW,CAAI,OAA2B;QACtD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEhG,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,gBAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,wBAAwB,EAAE;gBACzC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO;gBACZ,MAAM,EAAE,QAAQ,CAAC,UAAU;gBAC3B,QAAQ;aACX,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACpC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAI,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAE5E,MAAM,YAAY,GAAoB;gBAClC,MAAM,EAAE,QAAQ,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACnD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAChD,IAAI;gBACJ,MAAM,EAAE,OAAO;aAClB,CAAC;YAEF,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAChE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAEvC,OAAO,YAAY,CAAC;QACxB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,IAAI,iBAAS,CACf,cAAe,YAAY,CAAC,OAAQ,aAAa,EACjD,cAAc,EACd,SAAS,EACT,SAAS,EACT,OAAO,CACV,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,OAAoD;QACvE,MAAM,QAAQ,GAAsC,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACtE,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,IAAS,EAAE,OAA0C;QACrE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,oBAAoB;YACpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YACjD,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAS;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,OAA2B,EAAE,OAAgB;QACjE,IAAI,UAAkC,CAAC;QAEvC,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;YAC1C,UAAU,GAAG,IAAI,cAAK,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,OAAO,EAAE;oBACL,kBAAkB,EAAE,KAAK;iBAC5B;aACJ,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;QACtD,IAAI,gBAAgB,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,OAAgB;QAC3C,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAM,CAAC;QACjE,IAAI,QAAQ,GAAG,GAAI,QAAS,MAAO,IAAK,IAAK,IAAK,EAAE,CAAC;QAErD,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,QAAQ,GAAG,GAAI,QAAS,MAAO,eAAgB,IAAK,eAAgB,IAAK,IAAK,IAAK,IAAK,EAAE,CAAC;QAC/F,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC;YACzB,GAAG,EAAE,QAAQ;YACb,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE;gBACL,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;aAC7D;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2CAA2C,EAAE;YAC5D,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;SAC7D,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,QAAgB,EAAE,OAAgB;QAC9D,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC;YACzB,GAAG,EAAE,QAAQ;YACb,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE;gBACL,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;aAC7D;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,6DAA6D,EAAE;YAC9E,QAAQ;YACR,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;SAC7D,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CACtB,OAA2B,EAC3B,OAA0C,EAC1C,IAAwC,EACxC,UAAuB,EACvB,YAAkC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO;YACH,MAAM,EAAE,OAAO,CAAC,MAA+B;YAC/C,OAAO;YACP,IAAI;YACJ,WAAW,EAAE,OAAO;YACpB,cAAc,EAAE,OAAO;YACvB,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;YAChD,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5D,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;SACpC,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAAC,OAA2B;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO;gBACH,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aACpB,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,EAAE,OAAO,CAAC,CAAC;QACZ,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,OAAO;YACH,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;YACP,IAAI,QAAQ;gBACR,OAAO,QAAQ,CAAC;YACpB,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;SACrC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAA2B;QAC9C,OAAO,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAgB;QACtC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;IAClF,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,KAAc,EAAE,OAA2B;QACjE,IAAI,KAAK,YAAY,iBAAS,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACtF,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YACvG,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,cAAc,CAAC;QAErB,OAAO,IAAI,iBAAS,CAChB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,CACV,CAAC;IACN,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,QAAsB;QAC9C,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAClD,OAAO;QACX,CAAC;QAED,MAAM,IAAI,iBAAS,CACf,mCAAoC,QAAQ,CAAC,MAAO,EAAE,EACtD,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAC/D,QAAQ,CAAC,MAAM,EACf,QAAQ,EACR,QAAQ,CAAC,MAAM,CAClB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,QAAsB,EAAE,YAA2B;QAC9E,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;QACnE,IACI,OAAO,mBAAmB,KAAK,QAAQ;YACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrC,mBAAmB,IAAI,CAAC,EAC1B,CAAC;YACC,mDAAmD;YACnD,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QACD,MAAM,IAAI,iBAAS,CACf,4BAA6B,mBAAoB,WAAW,EAC5D,kBAAkB,EAClB,QAAQ,CAAC,MAAM,EACf,QAAQ,EACR,QAAQ,CAAC,MAAM,CAClB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAS;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAI,QAAiC,EAAE,YAA2B;QAC5F,IAAI,CAAC;YACD,QAAQ,YAAY,EAAE,CAAC;gBACnB,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAM,CAAC;gBAC7C,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAM,CAAC;gBAC/D,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,gDAAgD;oBAChD,OAAO,QAAQ,CAAC,IAAS,CAAC;gBAC9B,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAM,CAAC;gBAC7C,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBACd,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAM,CAAC;gBACjD,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAI,QAAQ,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxC,IAAI,CAAC;wBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;oBACjC,CAAC;oBAAC,MAAM,CAAC;wBACL,qBAAqB;wBACrB,OAAO,IAAS,CAAC;oBACrB,CAAC;gBACL,CAAC;YAEL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAE,EAAE,CAAC,CAAC;QACjH,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAI,QAAiC;QACnE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,UAAkB;QACpC,OAAO,mBAAY,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IACjD,CAAC;CACJ;AAvbD,sCAubC"}
|
|
1
|
+
{"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
|