nstarter-http-request 0.1.12 → 0.1.14

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/adapter/axios.adapter.js +93 -1
  3. package/dist/cjs/adapter/axios.adapter.js.map +1 -1
  4. package/dist/cjs/adapter/base.js +20 -1
  5. package/dist/cjs/adapter/base.js.map +1 -1
  6. package/dist/cjs/adapter/undici.adapter.js +85 -73
  7. package/dist/cjs/adapter/undici.adapter.js.map +1 -1
  8. package/dist/cjs/client.js +99 -56
  9. package/dist/cjs/client.js.map +1 -1
  10. package/dist/cjs/const/config.const.js +7 -1
  11. package/dist/cjs/const/config.const.js.map +1 -1
  12. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  13. package/dist/cjs/types/errors.js +47 -2
  14. package/dist/cjs/types/errors.js.map +1 -1
  15. package/dist/cjs/utils/index.js +2 -1
  16. package/dist/cjs/utils/index.js.map +1 -1
  17. package/dist/cjs/utils/redirect.js +138 -0
  18. package/dist/cjs/utils/redirect.js.map +1 -0
  19. package/dist/esm/adapter/axios.adapter.js +95 -3
  20. package/dist/esm/adapter/axios.adapter.js.map +1 -1
  21. package/dist/esm/adapter/base.js +20 -1
  22. package/dist/esm/adapter/base.js.map +1 -1
  23. package/dist/esm/adapter/undici.adapter.js +86 -74
  24. package/dist/esm/adapter/undici.adapter.js.map +1 -1
  25. package/dist/esm/client.js +100 -57
  26. package/dist/esm/client.js.map +1 -1
  27. package/dist/esm/const/config.const.js +6 -0
  28. package/dist/esm/const/config.const.js.map +1 -1
  29. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  30. package/dist/esm/types/errors.js +44 -1
  31. package/dist/esm/types/errors.js.map +1 -1
  32. package/dist/esm/utils/index.js +1 -0
  33. package/dist/esm/utils/index.js.map +1 -1
  34. package/dist/esm/utils/redirect.js +133 -0
  35. package/dist/esm/utils/redirect.js.map +1 -0
  36. package/dist/types/adapter/axios.adapter.d.ts +22 -0
  37. package/dist/types/adapter/axios.adapter.d.ts.map +1 -1
  38. package/dist/types/adapter/base.d.ts +6 -0
  39. package/dist/types/adapter/base.d.ts.map +1 -1
  40. package/dist/types/adapter/undici.adapter.d.ts +20 -11
  41. package/dist/types/adapter/undici.adapter.d.ts.map +1 -1
  42. package/dist/types/client.d.ts +11 -0
  43. package/dist/types/client.d.ts.map +1 -1
  44. package/dist/types/const/config.const.d.ts +6 -0
  45. package/dist/types/const/config.const.d.ts.map +1 -1
  46. package/dist/types/types/errors.d.ts +39 -1
  47. package/dist/types/types/errors.d.ts.map +1 -1
  48. package/dist/types/utils/index.d.ts +1 -0
  49. package/dist/types/utils/index.d.ts.map +1 -1
  50. package/dist/types/utils/redirect.d.ts +26 -0
  51. package/dist/types/utils/redirect.d.ts.map +1 -0
  52. package/package.json +1 -1
  53. package/src/adapter/axios.adapter.ts +124 -3
  54. package/src/adapter/base.ts +22 -1
  55. package/src/adapter/undici.adapter.ts +99 -92
  56. package/src/client.ts +114 -63
  57. package/src/const/config.const.ts +7 -0
  58. package/src/types/errors.ts +64 -1
  59. package/src/utils/index.ts +1 -0
  60. package/src/utils/redirect.ts +163 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ * 0.1.14
4
+ * `undici` 适配器的整次请求超时附加底层错误信息.
5
+ * 0.1.13
6
+ * 第三方请求库不再自行跟跳 3XX,由客户端逐跳重新做 SSRF 校验,避免重定向绕过防护.
7
+ * `undici` 适配器的 `maxResponseBodySize` 改为下载期限制:预检 `Content-Length` 并逐分块累计字节数,超限立即中断,不再先读入内存再比较;`axios` 适配器同步补充 `Content-Length` 预检.
8
+ * 新增 `HttpError` 子类 `ResponseTooLargeError`(错误码与文案不变,不再携带 `response`),`HttpError` 新增 `retriable` 属性(默认 `true`),为 `false` 时不再重试,响应体超限不再重试.
9
+ * 修复 `undici` 适配器在 HEAD / 204 / 304 携带 `Content-Length` 时挂起,以及请求结束后未关闭 `Agent` / `ProxyAgent` 的问题.
10
+
3
11
  * 0.1.11
4
12
  * 去掉 DNS 校验通过后自动补充 `Host` 头的重绑定防护逻辑,避免非默认端口请求被改写为裸域名后命中错误网关路由.
5
13
 
@@ -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);
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 };
95
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 配置
@@ -105,6 +164,9 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
105
164
  url,
106
165
  headers: options.headers || {},
107
166
  maxRedirects: this.requestConfig.maxRedirects,
167
+ validateStatus: (status) => {
168
+ return (status >= 200 && status < 300) || status === 304 || utils_1.RedirectUtils.isRedirectStatus(status);
169
+ },
108
170
  maxContentLength: this.requestConfig.maxResponseBodySize,
109
171
  maxBodyLength: this.requestConfig.maxRequestBodySize,
110
172
  httpsAgent: new https.Agent({
@@ -192,6 +254,11 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
192
254
  * @param options 请求选项
193
255
  */
194
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
+ }
195
262
  if (error.isAxiosError) {
196
263
  return new types_1.HttpError(error.message, error.code || 'AXIOS_ERROR', error.response?.status, error.response ? {
197
264
  status: error.response.status,
@@ -221,6 +288,31 @@ class AxiosAdapter extends base_1.BaseHttpAdapter {
221
288
  }
222
289
  return config;
223
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
+ }
224
316
  }
225
317
  exports.AxiosAdapter = AxiosAdapter;
226
318
  //# sourceMappingURL=axios.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"axios.adapter.js","sourceRoot":"","sources":["../../../src/adapter/axios.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axios.adapter.js","sourceRoot":"","sources":["../../../src/adapter/axios.adapter.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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
  */
@@ -83,7 +84,8 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
83
84
  if (options.responseType === 'stream') {
84
85
  timeoutState.cleanup();
85
86
  }
86
- const data = await this.readResponseBody(response, options.responseType);
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,18 +93,19 @@ 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
  }
98
99
  catch (error) {
99
100
  if (timeoutState.timedOut) {
100
- throw new types_1.HttpError(`timeout of ${timeoutState.timeout}ms exceeded`, 'ECONNABORTED', undefined, undefined, options);
101
+ throw new types_1.RequestTimeoutError(timeoutState.timeout, options, error);
101
102
  }
102
103
  throw this.handleUndiciError(error, options);
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
  /**
@@ -191,7 +194,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
191
194
  const agent = new undici_1.ProxyAgent({
192
195
  uri: proxyUrl,
193
196
  connectTimeout: timeout,
194
- connect: {
197
+ requestTls: {
195
198
  rejectUnauthorized: this.securityConfig.rejectUnauthorized
196
199
  }
197
200
  });
@@ -212,7 +215,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
212
215
  const agent = new undici_1.ProxyAgent({
213
216
  uri: proxyUrl,
214
217
  connectTimeout: timeout,
215
- connect: {
218
+ requestTls: {
216
219
  rejectUnauthorized: this.securityConfig.rejectUnauthorized
217
220
  }
218
221
  });
@@ -302,117 +305,126 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
302
305
  return new types_1.HttpError(errorMessage, errorCode, undefined, undefined, options);
303
306
  }
304
307
  /**
305
- * 按 axios 默认行为处理非 2xx 状态码。
308
+ * 2xx 和 304 作为成功结果返回。undici 未跟跳的 3xx 交回调用方。
306
309
  */
307
310
  ensureSuccessStatus(response) {
308
- 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)) {
309
314
  return;
310
315
  }
311
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);
312
317
  }
313
318
  /**
314
- * 按 axios maxContentLength 行为限制非流式响应体大小。
319
+ * 解析 Content-Length 响应头。仅接受合法的非负整数,重复头/非法值视为未知。
315
320
  */
316
- ensureResponseBodySize(response, responseType) {
317
- if (responseType === 'stream') {
318
- return;
319
- }
320
- const maxResponseBodySize = this.requestConfig.maxResponseBodySize;
321
- if (typeof maxResponseBodySize !== 'number' ||
322
- !Number.isFinite(maxResponseBodySize) ||
323
- maxResponseBodySize <= 0) {
324
- // NsHttpClient 会先做配置合并和校验;这里防御直接实例化 Adapter 的异常配置。
325
- return;
326
- }
327
- const bodySize = this.getBodySize(response.data);
328
- if (bodySize <= maxResponseBodySize) {
329
- return;
321
+ parseContentLength(value) {
322
+ if (typeof value !== 'string' || !/^\d+$/.test(value.trim())) {
323
+ return undefined;
330
324
  }
331
- throw new types_1.HttpError(`maxContentLength size of ${maxResponseBodySize} exceeded`, 'ERR_BAD_RESPONSE', response.status, response, response.config);
325
+ const length = Number(value.trim());
326
+ return Number.isSafeInteger(length) ? length : undefined;
332
327
  }
333
328
  /**
334
- * 计算已读取响应体的字节大小。
329
+ * 丢弃未读完的响应体并终止下载。
330
+ * undici 的 BodyReadable.destroy() 不带错误时会以 RequestAbortedError 触发 error 事件,
331
+ * 没有监听器会变成未捕获异常,因此先挂空监听器。
335
332
  */
336
- getBodySize(body) {
337
- if (body === undefined || body === null) {
338
- return 0;
339
- }
340
- if (Buffer.isBuffer(body)) {
341
- return body.byteLength;
342
- }
343
- if (body instanceof ArrayBuffer) {
344
- return body.byteLength;
345
- }
346
- if (ArrayBuffer.isView(body)) {
347
- return body.byteLength;
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);
348
351
  }
349
- if (typeof Blob !== 'undefined' && body instanceof Blob) {
350
- return body.size;
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
+ }
351
358
  }
352
- if (typeof body === 'string') {
353
- return Buffer.byteLength(body);
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);
354
369
  }
355
- return Buffer.byteLength(JSON.stringify(body));
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
+ });
356
380
  }
357
381
  /**
358
382
  * 读取响应体
359
383
  * @param response Undici 响应对象
360
- * @param responseType 响应类型
384
+ * @param options 请求选项
361
385
  */
362
- async readResponseBody(response, responseType) {
386
+ async readResponseBody(response, options) {
387
+ if (options.responseType === 'stream') {
388
+ // undici 返回 BodyReadable (继承自 Node.js Readable),流式响应由调用方自行消费,不受 maxResponseBodySize 限制
389
+ return response.body;
390
+ }
363
391
  try {
364
- switch (responseType) {
392
+ const buffer = await this.readBodyWithLimit(response, options);
393
+ const decoder = new TextDecoder();
394
+ switch (options.responseType) {
365
395
  case 'text': {
366
- return (await response.body.text());
396
+ return decoder.decode(buffer);
367
397
  }
368
398
  case 'arraybuffer': {
369
- return Buffer.from(await response.body.arrayBuffer());
370
- }
371
- case 'stream': {
372
- // undici 返回 BodyReadable (继承自 Node.js Readable)
373
- return response.body;
399
+ return buffer;
374
400
  }
375
401
  case 'blob': {
376
- return (await response.body.blob());
402
+ return (await this.toFetchResponse(buffer, response).blob());
377
403
  }
378
404
  case 'formdata': {
379
- return (await response.body.formData());
380
- }
381
- case 'json': {
382
- return await this.readJsonResponseBody(response);
405
+ return (await this.toFetchResponse(buffer, response).formData());
383
406
  }
407
+ case 'json':
384
408
  default: {
385
- const text = await response.body.text();
409
+ // 按 axios 的默认兼容行为:空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常
410
+ const text = decoder.decode(buffer);
386
411
  try {
387
412
  return JSON.parse(text);
388
413
  }
389
414
  catch {
390
- // 如果不是有效的 JSON,返回原文本
391
415
  return text;
392
416
  }
393
417
  }
394
418
  }
395
419
  }
396
420
  catch (error) {
421
+ // 响应体超限错误需要原样抛出,保留错误码、文案与不可重试标记
422
+ if (error instanceof types_1.ResponseTooLargeError) {
423
+ throw error;
424
+ }
397
425
  throw new Error(`Failed to read response body: ${error instanceof Error ? error.message : String(error)}`);
398
426
  }
399
427
  }
400
- /**
401
- * 按 axios 的默认兼容行为读取 JSON 响应。
402
- * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
403
- */
404
- async readJsonResponseBody(response) {
405
- const text = await response.body.text();
406
- if (!text) {
407
- return text;
408
- }
409
- try {
410
- return JSON.parse(text);
411
- }
412
- catch {
413
- return text;
414
- }
415
- }
416
428
  /**
417
429
  * 获取状态文本
418
430
  * @param statusCode 状态码
@@ -1 +1 @@
1
- {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}