nstarter-http-request 0.1.12 → 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.
Files changed (60) hide show
  1. package/CHANGELOG.md +6 -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 +82 -70
  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 +30 -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 +83 -71
  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 +28 -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 +26 -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 +95 -83
  56. package/src/client.ts +114 -63
  57. package/src/const/config.const.ts +7 -0
  58. package/src/types/errors.ts +39 -1
  59. package/src/utils/index.ts +1 -0
  60. package/src/utils/redirect.ts +163 -0
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Axios 适配器实现
3
3
  */
4
- import { HttpError } from '../types';
4
+ import { HttpError, ResponseTooLargeError } from '../types';
5
5
  import { BaseHttpAdapter } from './base';
6
6
  import axios from 'axios';
7
7
  import { HttpsProxyAgent } from 'https-proxy-agent';
8
8
  import * as https from 'https';
9
- import { EClientAdapter } from '../const';
9
+ import { MAX_RESPONSE_SIZE_TOLERANCE_RATIO, EClientAdapter } from '../const';
10
+ import { RedirectUtils } from '../utils';
10
11
  /**
11
12
  * Axios 适配器
12
13
  */
@@ -30,7 +31,9 @@ export class AxiosAdapter extends BaseHttpAdapter {
30
31
  throw new Error('Axios is not available. Please install it: npm install axios');
31
32
  }
32
33
  const url = this.buildUrl(options.url, options.params);
34
+ const timeout = options.timeout ?? this.requestConfig.timeout;
33
35
  const axiosConfig = this.buildAxiosConfig(options, url);
36
+ const signalState = this.buildAxiosSignals(axiosConfig, options, timeout);
34
37
  try {
35
38
  const startTime = Date.now();
36
39
  const axiosResponse = await axios(axiosConfig);
@@ -52,8 +55,64 @@ export class AxiosAdapter extends BaseHttpAdapter {
52
55
  return response;
53
56
  }
54
57
  catch (error) {
55
- throw this.handleAxiosError(error, options);
58
+ throw signalState.abortError() ?? this.handleAxiosError(error, options);
59
+ }
60
+ finally {
61
+ signalState.cleanup();
62
+ }
63
+ }
64
+ /**
65
+ * 创建整次请求超时与响应体超限两个中止信号,合并后写入 axiosConfig(原地修改)。
66
+ * 返回 catch 中还原中止原因的 abortError(非本方法中止时返回 undefined),以及 finally 中清理定时器的 cleanup。
67
+ */
68
+ buildAxiosSignals(axiosConfig, options, timeout) {
69
+ // maxRedirects 为 0 时 axios 使用原生 http 而不是 follow-redirects。
70
+ // 原生 timeout 是套接字空闲超时,在比如持续上传的场景下会被不断重置,需要使用中止信号来结束请求。
71
+ const deadline = this.createDeadline(timeout);
72
+ const bodySizeGuard = this.createBodySizeGuard(options);
73
+ const signals = [deadline.signal, bodySizeGuard.signal].filter((item) => !!item);
74
+ axiosConfig.signal = signals.length > 1 ? AbortSignal.any(signals) : signals[0];
75
+ axiosConfig.onDownloadProgress = bodySizeGuard.onDownloadProgress;
76
+ return {
77
+ abortError: () => {
78
+ if (deadline.timedOut()) {
79
+ return new HttpError(`timeout of ${timeout}ms exceeded`, 'ECONNABORTED', undefined, undefined, options);
80
+ }
81
+ if (bodySizeGuard.exceeded()) {
82
+ return new ResponseTooLargeError(this.requestConfig.maxResponseBodySize, options);
83
+ }
84
+ return undefined;
85
+ },
86
+ cleanup: deadline.cleanup
87
+ };
88
+ }
89
+ /**
90
+ * 创建 Content-Length 预检。
91
+ *
92
+ * axios 的 Node http 适配器只按已收到的分块累计 maxContentLength,响应头已声明超限时仍会下载到上限才中断。
93
+ * 这里借助 onDownloadProgress 的 total(响应头 Content-Length),在首个分块到达时就中止请求。
94
+ * - 无 Content-Length(chunked)时不触发,由 axios 的分块累计兜底;
95
+ * - stream 响应不启用,避免额外插入转换流;
96
+ * - total 是线上字节,对几乎不可压缩的 gzip 响应可能略大于解压后的大小,
97
+ * 因此比较时保留 MAX_RESPONSE_SIZE_TOLERANCE_RATIO 的容差。
98
+ */
99
+ createBodySizeGuard(options) {
100
+ const maxRespBodySize = this.resolveMaxResponseBodySize();
101
+ if (options.responseType === 'stream' || maxRespBodySize === undefined) {
102
+ return { exceeded: () => false };
56
103
  }
104
+ const controller = new AbortController();
105
+ let exceeded = false;
106
+ return {
107
+ signal: controller.signal,
108
+ onDownloadProgress: (event) => {
109
+ if (typeof event.total === 'number' && event.total > maxRespBodySize + Math.ceil(maxRespBodySize * MAX_RESPONSE_SIZE_TOLERANCE_RATIO)) {
110
+ exceeded = true;
111
+ controller.abort();
112
+ }
113
+ },
114
+ exceeded: () => exceeded
115
+ };
57
116
  }
58
117
  /**
59
118
  * 构建 Axios 配置
@@ -66,6 +125,9 @@ export class AxiosAdapter extends BaseHttpAdapter {
66
125
  url,
67
126
  headers: options.headers || {},
68
127
  maxRedirects: this.requestConfig.maxRedirects,
128
+ validateStatus: (status) => {
129
+ return (status >= 200 && status < 300) || status === 304 || RedirectUtils.isRedirectStatus(status);
130
+ },
69
131
  maxContentLength: this.requestConfig.maxResponseBodySize,
70
132
  maxBodyLength: this.requestConfig.maxRequestBodySize,
71
133
  httpsAgent: new https.Agent({
@@ -153,6 +215,11 @@ export class AxiosAdapter extends BaseHttpAdapter {
153
215
  * @param options 请求选项
154
216
  */
155
217
  handleAxiosError(error, options) {
218
+ // axios 没有为 maxContentLength 超限提供专用错误码(与 5xx 共用 ERR_BAD_RESPONSE),
219
+ // 只能靠固定的消息前缀识别,识别后转成不可重试的 ResponseTooLargeError。
220
+ if (error.isAxiosError && error.code === 'ERR_BAD_RESPONSE' && error.message.startsWith('maxContentLength size of')) {
221
+ return new ResponseTooLargeError(this.requestConfig.maxResponseBodySize, options);
222
+ }
156
223
  if (error.isAxiosError) {
157
224
  return new HttpError(error.message, error.code || 'AXIOS_ERROR', error.response?.status, error.response ? {
158
225
  status: error.response.status,
@@ -182,5 +249,30 @@ export class AxiosAdapter extends BaseHttpAdapter {
182
249
  }
183
250
  return config;
184
251
  }
252
+ /**
253
+ * 按墙钟时间中止请求,到点后 timedOut 为 true
254
+ * @param timeout 超时时间,单位毫秒
255
+ * @returns 中止信号、是否超时、清理函数
256
+ */
257
+ createDeadline(timeout) {
258
+ if (typeof timeout !== 'number' || !Number.isFinite(timeout) || timeout <= 0) {
259
+ return {
260
+ timedOut: () => false,
261
+ cleanup: () => undefined
262
+ };
263
+ }
264
+ const controller = new AbortController();
265
+ let timedOut = false;
266
+ const timer = setTimeout(() => {
267
+ timedOut = true;
268
+ controller.abort();
269
+ }, timeout);
270
+ timer.unref?.();
271
+ return {
272
+ signal: controller.signal,
273
+ timedOut: () => timedOut,
274
+ cleanup: () => clearTimeout(timer)
275
+ };
276
+ }
185
277
  }
186
278
  //# 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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"}
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * HTTP 适配器基础实现
3
3
  */
4
+ import { HttpError } from '../types';
4
5
  import { CommonUtils } from '../utils';
5
6
  /**
6
7
  * HTTP 适配器抽象基类
8
+ *
9
+ * g-7114106599:不允许直接跟跳3XX,防止SSRF。调用方需要自行处理 3XX 响应。
7
10
  */
8
11
  export class BaseHttpAdapter {
9
12
  constructor(requestConfig, securityConfig, logger) {
10
- this.requestConfig = requestConfig;
13
+ this.requestConfig = { ...requestConfig, maxRedirects: 0 };
11
14
  this.securityConfig = securityConfig;
12
15
  this.logger = logger;
13
16
  }
@@ -49,6 +52,15 @@ export class BaseHttpAdapter {
49
52
  url: options.url,
50
53
  error: error instanceof Error ? error.message : String(error)
51
54
  });
55
+ // 默认所有错误均可重试;仅在 HttpError 的 retriable 为 false 时终止重试
56
+ if (error instanceof HttpError && !error.retriable) {
57
+ this.logger?.debug('HTTP request error is not retriable, skip remaining retries', {
58
+ method: options.method,
59
+ url: options.url,
60
+ attempt: attempt + 1
61
+ });
62
+ break;
63
+ }
52
64
  // 最后一次尝试,不再重试
53
65
  if (attempt === retries) {
54
66
  break;
@@ -66,6 +78,13 @@ export class BaseHttpAdapter {
66
78
  });
67
79
  throw lastError;
68
80
  }
81
+ /**
82
+ * @returns 有效的响应体大小上限;不限制时返回 undefined
83
+ */
84
+ resolveMaxResponseBodySize() {
85
+ const max = this.requestConfig.maxResponseBodySize;
86
+ return typeof max === 'number' && max > 0 ? max : undefined;
87
+ }
69
88
  /**
70
89
  * 更新请求配置
71
90
  * @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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"}
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Undici 适配器实现
3
3
  */
4
- import { HttpError } from '../types';
4
+ import { HttpError, ResponseTooLargeError } from '../types';
5
5
  import { BaseHttpAdapter } from './base';
6
6
  import undici, { Agent, ProxyAgent } from 'undici';
7
7
  import { STATUS_CODES } from 'http';
8
8
  import { EClientAdapter } from '../const';
9
+ import { RedirectUtils } from '../utils';
9
10
  /**
10
11
  * Undici 适配器
11
12
  */
@@ -47,7 +48,8 @@ export class UndiciAdapter extends BaseHttpAdapter {
47
48
  if (options.responseType === 'stream') {
48
49
  timeoutState.cleanup();
49
50
  }
50
- const data = await this.readResponseBody(response, options.responseType);
51
+ // 读取过程中会按 maxResponseBodySize 提前拒绝/中断,超限时不会把完整响应体读入内存
52
+ const data = await this.readResponseBody(response, options);
51
53
  const httpResponse = {
52
54
  status: response.statusCode,
53
55
  statusText: this.getStatusText(response.statusCode),
@@ -55,7 +57,6 @@ export class UndiciAdapter extends BaseHttpAdapter {
55
57
  data,
56
58
  config: options
57
59
  };
58
- this.ensureResponseBodySize(httpResponse, options.responseType);
59
60
  this.ensureSuccessStatus(httpResponse);
60
61
  return httpResponse;
61
62
  }
@@ -67,6 +68,8 @@ export class UndiciAdapter extends BaseHttpAdapter {
67
68
  }
68
69
  finally {
69
70
  timeoutState.cleanup();
71
+ // buildDispatcher 为每个请求单独创建 Agent/ProxyAgent,用完需要关闭,否则连接池与 keep-alive 连接会一直保留。
72
+ dispatcher?.close().catch(() => undefined);
70
73
  }
71
74
  }
72
75
  /**
@@ -266,117 +269,126 @@ export class UndiciAdapter extends BaseHttpAdapter {
266
269
  return new HttpError(errorMessage, errorCode, undefined, undefined, options);
267
270
  }
268
271
  /**
269
- * 按 axios 默认行为处理非 2xx 状态码。
272
+ * 2xx 和 304 作为成功结果返回。undici 未跟跳的 3xx 交回调用方。
270
273
  */
271
274
  ensureSuccessStatus(response) {
272
- if (response.status >= 200 && response.status < 300) {
275
+ if ((response.status >= 200 && response.status < 300)
276
+ || response.status === 304
277
+ || RedirectUtils.isRedirectStatus(response.status)) {
273
278
  return;
274
279
  }
275
280
  throw new HttpError(`Request failed with status code ${response.status}`, response.status >= 500 ? 'ERR_BAD_RESPONSE' : 'ERR_BAD_REQUEST', response.status, response, response.config);
276
281
  }
277
282
  /**
278
- * 按 axios maxContentLength 行为限制非流式响应体大小。
283
+ * 解析 Content-Length 响应头。仅接受合法的非负整数,重复头/非法值视为未知。
279
284
  */
280
- ensureResponseBodySize(response, responseType) {
281
- if (responseType === 'stream') {
282
- return;
283
- }
284
- const maxResponseBodySize = this.requestConfig.maxResponseBodySize;
285
- if (typeof maxResponseBodySize !== 'number' ||
286
- !Number.isFinite(maxResponseBodySize) ||
287
- maxResponseBodySize <= 0) {
288
- // NsHttpClient 会先做配置合并和校验;这里防御直接实例化 Adapter 的异常配置。
289
- return;
290
- }
291
- const bodySize = this.getBodySize(response.data);
292
- if (bodySize <= maxResponseBodySize) {
293
- return;
285
+ parseContentLength(value) {
286
+ if (typeof value !== 'string' || !/^\d+$/.test(value.trim())) {
287
+ return undefined;
294
288
  }
295
- throw new HttpError(`maxContentLength size of ${maxResponseBodySize} exceeded`, 'ERR_BAD_RESPONSE', response.status, response, response.config);
289
+ const length = Number(value.trim());
290
+ return Number.isSafeInteger(length) ? length : undefined;
296
291
  }
297
292
  /**
298
- * 计算已读取响应体的字节大小。
293
+ * 丢弃未读完的响应体并终止下载。
294
+ * undici 的 BodyReadable.destroy() 不带错误时会以 RequestAbortedError 触发 error 事件,
295
+ * 没有监听器会变成未捕获异常,因此先挂空监听器。
299
296
  */
300
- getBodySize(body) {
301
- if (body === undefined || body === null) {
302
- return 0;
303
- }
304
- if (Buffer.isBuffer(body)) {
305
- return body.byteLength;
306
- }
307
- if (body instanceof ArrayBuffer) {
308
- return body.byteLength;
309
- }
310
- if (ArrayBuffer.isView(body)) {
311
- return body.byteLength;
297
+ discardBody(response) {
298
+ response.body.on('error', () => undefined);
299
+ response.body.destroy();
300
+ }
301
+ /**
302
+ * 带大小上限地读取非流式响应体。
303
+ *
304
+ * 1. Content-Length 预检:响应头已声明超限时,不读取响应体,直接销毁并拒绝。
305
+ * 2. 逐分块累计字节数,累计值超过上限(等于上限放行)立即销毁响应流并拒绝,后续数据不再下载;
306
+ * 该行为对齐 axios(Node http 适配器)的 maxContentLength。
307
+ */
308
+ async readBodyWithLimit(response, options) {
309
+ const maxRespBodySize = this.resolveMaxResponseBodySize();
310
+ // HEAD / 204 / 304 没有响应体,其 Content-Length 描述的是对应实体而不是本次响应体:
311
+ // 不能用于预检;服务端携带时 undici 还会一直等待并不存在的响应体,因此不进入读取,直接丢弃。
312
+ if (options.method === 'HEAD' || response.statusCode === 204 || response.statusCode === 304) {
313
+ this.discardBody(response);
314
+ return Buffer.alloc(0);
312
315
  }
313
- if (typeof Blob !== 'undefined' && body instanceof Blob) {
314
- return body.size;
316
+ if (maxRespBodySize !== undefined) {
317
+ const contentLength = this.parseContentLength(response.headers['content-length']);
318
+ if (contentLength !== undefined && contentLength > maxRespBodySize) {
319
+ this.discardBody(response);
320
+ throw new ResponseTooLargeError(maxRespBodySize, options, response.statusCode);
321
+ }
315
322
  }
316
- if (typeof body === 'string') {
317
- return Buffer.byteLength(body);
323
+ const chunks = [];
324
+ let total = 0;
325
+ for await (const chunk of response.body) {
326
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
327
+ total += buffer.byteLength;
328
+ if (maxRespBodySize !== undefined && total > maxRespBodySize) {
329
+ this.discardBody(response);
330
+ throw new ResponseTooLargeError(maxRespBodySize, options, response.statusCode);
331
+ }
332
+ chunks.push(buffer);
318
333
  }
319
- return Buffer.byteLength(JSON.stringify(body));
334
+ return Buffer.concat(chunks, total);
335
+ }
336
+ /**
337
+ * 基于已读取(已受大小限制)的字节构造 Response,复用运行时的 blob/formData 解析逻辑。
338
+ */
339
+ toFetchResponse(buffer, response) {
340
+ const contentType = response.headers['content-type'];
341
+ return new Response(buffer, {
342
+ headers: typeof contentType === 'string' ? { 'content-type': contentType } : undefined
343
+ });
320
344
  }
321
345
  /**
322
346
  * 读取响应体
323
347
  * @param response Undici 响应对象
324
- * @param responseType 响应类型
348
+ * @param options 请求选项
325
349
  */
326
- async readResponseBody(response, responseType) {
350
+ async readResponseBody(response, options) {
351
+ if (options.responseType === 'stream') {
352
+ // undici 返回 BodyReadable (继承自 Node.js Readable),流式响应由调用方自行消费,不受 maxResponseBodySize 限制
353
+ return response.body;
354
+ }
327
355
  try {
328
- switch (responseType) {
356
+ const buffer = await this.readBodyWithLimit(response, options);
357
+ const decoder = new TextDecoder();
358
+ switch (options.responseType) {
329
359
  case 'text': {
330
- return (await response.body.text());
360
+ return decoder.decode(buffer);
331
361
  }
332
362
  case 'arraybuffer': {
333
- return Buffer.from(await response.body.arrayBuffer());
334
- }
335
- case 'stream': {
336
- // undici 返回 BodyReadable (继承自 Node.js Readable)
337
- return response.body;
363
+ return buffer;
338
364
  }
339
365
  case 'blob': {
340
- return (await response.body.blob());
366
+ return (await this.toFetchResponse(buffer, response).blob());
341
367
  }
342
368
  case 'formdata': {
343
- return (await response.body.formData());
344
- }
345
- case 'json': {
346
- return await this.readJsonResponseBody(response);
369
+ return (await this.toFetchResponse(buffer, response).formData());
347
370
  }
371
+ case 'json':
348
372
  default: {
349
- const text = await response.body.text();
373
+ // 按 axios 的默认兼容行为:空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常
374
+ const text = decoder.decode(buffer);
350
375
  try {
351
376
  return JSON.parse(text);
352
377
  }
353
378
  catch {
354
- // 如果不是有效的 JSON,返回原文本
355
379
  return text;
356
380
  }
357
381
  }
358
382
  }
359
383
  }
360
384
  catch (error) {
385
+ // 响应体超限错误需要原样抛出,保留错误码、文案与不可重试标记
386
+ if (error instanceof ResponseTooLargeError) {
387
+ throw error;
388
+ }
361
389
  throw new Error(`Failed to read response body: ${error instanceof Error ? error.message : String(error)}`);
362
390
  }
363
391
  }
364
- /**
365
- * 按 axios 的默认兼容行为读取 JSON 响应。
366
- * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
367
- */
368
- async readJsonResponseBody(response) {
369
- const text = await response.body.text();
370
- if (!text) {
371
- return text;
372
- }
373
- try {
374
- return JSON.parse(text);
375
- }
376
- catch {
377
- return text;
378
- }
379
- }
380
392
  /**
381
393
  * 获取状态文本
382
394
  * @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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"}