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.
Files changed (72) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -2
  3. package/dist/cjs/adapter/axios.adapter.js +97 -2
  4. package/dist/cjs/adapter/axios.adapter.js.map +1 -1
  5. package/dist/cjs/adapter/base.js +20 -1
  6. package/dist/cjs/adapter/base.js.map +1 -1
  7. package/dist/cjs/adapter/undici.adapter.js +97 -77
  8. package/dist/cjs/adapter/undici.adapter.js.map +1 -1
  9. package/dist/cjs/client.js +99 -56
  10. package/dist/cjs/client.js.map +1 -1
  11. package/dist/cjs/config.js +1 -1
  12. package/dist/cjs/config.js.map +1 -1
  13. package/dist/cjs/const/config.const.js +8 -3
  14. package/dist/cjs/const/config.const.js.map +1 -1
  15. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  16. package/dist/cjs/types/errors.js +30 -2
  17. package/dist/cjs/types/errors.js.map +1 -1
  18. package/dist/cjs/utils/index.js +2 -1
  19. package/dist/cjs/utils/index.js.map +1 -1
  20. package/dist/cjs/utils/redirect.js +138 -0
  21. package/dist/cjs/utils/redirect.js.map +1 -0
  22. package/dist/esm/adapter/axios.adapter.js +99 -4
  23. package/dist/esm/adapter/axios.adapter.js.map +1 -1
  24. package/dist/esm/adapter/base.js +20 -1
  25. package/dist/esm/adapter/base.js.map +1 -1
  26. package/dist/esm/adapter/undici.adapter.js +98 -78
  27. package/dist/esm/adapter/undici.adapter.js.map +1 -1
  28. package/dist/esm/client.js +100 -57
  29. package/dist/esm/client.js.map +1 -1
  30. package/dist/esm/config.js +1 -1
  31. package/dist/esm/config.js.map +1 -1
  32. package/dist/esm/const/config.const.js +7 -2
  33. package/dist/esm/const/config.const.js.map +1 -1
  34. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  35. package/dist/esm/types/errors.js +28 -1
  36. package/dist/esm/types/errors.js.map +1 -1
  37. package/dist/esm/utils/index.js +1 -0
  38. package/dist/esm/utils/index.js.map +1 -1
  39. package/dist/esm/utils/redirect.js +133 -0
  40. package/dist/esm/utils/redirect.js.map +1 -0
  41. package/dist/types/adapter/axios.adapter.d.ts +22 -0
  42. package/dist/types/adapter/axios.adapter.d.ts.map +1 -1
  43. package/dist/types/adapter/base.d.ts +6 -0
  44. package/dist/types/adapter/base.d.ts.map +1 -1
  45. package/dist/types/adapter/undici.adapter.d.ts +24 -12
  46. package/dist/types/adapter/undici.adapter.d.ts.map +1 -1
  47. package/dist/types/client.d.ts +11 -0
  48. package/dist/types/client.d.ts.map +1 -1
  49. package/dist/types/const/config.const.d.ts +6 -0
  50. package/dist/types/const/config.const.d.ts.map +1 -1
  51. package/dist/types/types/config.d.ts +2 -2
  52. package/dist/types/types/config.d.ts.map +1 -1
  53. package/dist/types/types/errors.d.ts +26 -1
  54. package/dist/types/types/errors.d.ts.map +1 -1
  55. package/dist/types/types/request_response.d.ts +1 -1
  56. package/dist/types/types/request_response.d.ts.map +1 -1
  57. package/dist/types/utils/index.d.ts +1 -0
  58. package/dist/types/utils/index.d.ts.map +1 -1
  59. package/dist/types/utils/redirect.d.ts +26 -0
  60. package/dist/types/utils/redirect.d.ts.map +1 -0
  61. package/package.json +1 -1
  62. package/src/adapter/axios.adapter.ts +128 -4
  63. package/src/adapter/base.ts +22 -1
  64. package/src/adapter/undici.adapter.ts +112 -91
  65. package/src/client.ts +114 -63
  66. package/src/config.ts +1 -1
  67. package/src/const/config.const.ts +8 -2
  68. package/src/types/config.ts +2 -3
  69. package/src/types/errors.ts +39 -1
  70. package/src/types/request_response.ts +1 -2
  71. package/src/utils/index.ts +1 -0
  72. 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":"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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
  */
@@ -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, timeoutState.timeout);
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
- 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,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, timeout) {
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
- ...(this.isPositiveTimeout(timeout) ? { connectTimeout: timeout } : {}),
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
- ...(this.isPositiveTimeout(timeout) ? { connectTimeout: timeout } : {}),
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
- ...(this.isPositiveTimeout(timeout) ? { connectTimeout: timeout } : {}),
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.resolveTimeout(options);
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
- * 按 axios 默认行为处理非 2xx 状态码。
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
- * 按 axios maxContentLength 行为限制非流式响应体大小。
319
+ * 解析 Content-Length 响应头。仅接受合法的非负整数,重复头/非法值视为未知。
307
320
  */
308
- ensureResponseBodySize(response, responseType) {
309
- if (responseType === 'stream') {
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
- 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;
324
327
  }
325
328
  /**
326
- * 计算已读取响应体的字节大小。
329
+ * 丢弃未读完的响应体并终止下载。
330
+ * undici 的 BodyReadable.destroy() 不带错误时会以 RequestAbortedError 触发 error 事件,
331
+ * 没有监听器会变成未捕获异常,因此先挂空监听器。
327
332
  */
328
- getBodySize(body) {
329
- if (body === undefined || body === null) {
330
- return 0;
331
- }
332
- if (Buffer.isBuffer(body)) {
333
- return body.byteLength;
334
- }
335
- if (body instanceof ArrayBuffer) {
336
- return body.byteLength;
337
- }
338
- if (ArrayBuffer.isView(body)) {
339
- 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);
340
351
  }
341
- if (typeof Blob !== 'undefined' && body instanceof Blob) {
342
- 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
+ }
343
358
  }
344
- if (typeof body === 'string') {
345
- 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);
346
369
  }
347
- 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
+ });
348
380
  }
349
381
  /**
350
382
  * 读取响应体
351
383
  * @param response Undici 响应对象
352
- * @param responseType 响应类型
384
+ * @param options 请求选项
353
385
  */
354
- 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
+ }
355
391
  try {
356
- switch (responseType) {
392
+ const buffer = await this.readBodyWithLimit(response, options);
393
+ const decoder = new TextDecoder();
394
+ switch (options.responseType) {
357
395
  case 'text': {
358
- return (await response.body.text());
396
+ return decoder.decode(buffer);
359
397
  }
360
398
  case 'arraybuffer': {
361
- return Buffer.from(await response.body.arrayBuffer());
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.body.blob());
402
+ return (await this.toFetchResponse(buffer, response).blob());
369
403
  }
370
404
  case 'formdata': {
371
- return (await response.body.formData());
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
- const text = await response.body.text();
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":"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"}
1
+ {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMH,oCAGkB;AAClB,iCAAyC;AACzC,iDAIgB;AAChB,+BAAoC;AACpC,oCAA0C;AAC1C,oCAAyC;AASzC;;GAEG;AACH,MAAa,aAAc,SAAQ,sBAAe;IAAlD;;QACoB,SAAI,GAAG,sBAAc,CAAC,MAAe,CAAC;IAwc1D,CAAC;IAtcG;;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,CAAC,CAAC;QACjD,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,sDAAsD;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE/D,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,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;YACvB,+EAA+E;YAC/E,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,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;;;OAGG;IACK,eAAe,CAAC,OAA2B;QAC/C,IAAI,UAAkC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEnD,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;YAC1C,UAAU,GAAG,IAAI,cAAK,CAAC;gBACnB,cAAc,EAAE,OAAO;gBACvB,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,cAAc,EAAE,OAAO;YACvB,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,cAAc,EAAE,OAAO;YACvB,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,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnD,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,OAAO;gBACP,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,oBAAoB,CAAC,OAA2B;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,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,IACI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;eAC9C,QAAQ,CAAC,MAAM,KAAK,GAAG;eACvB,qBAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EACpD,CAAC;YACC,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,kBAAkB,CAAC,KAAoC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,QAAiC;QACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAiC,EAAE,OAA2B;QAC1F,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAE1D,4DAA4D;QAC5D,oDAAoD;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC1F,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClF,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,eAAe,EAAE,CAAC;gBACjE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,IAAI,6BAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnF,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC;YAC3B,IAAI,eAAe,KAAK,SAAS,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,IAAI,6BAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAc,EAAE,QAAiC;QACrE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;YACxB,OAAO,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;SACzF,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAI,QAAiC,EAAE,OAA2B;QAC5F,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACpC,uFAAuF;YACvF,OAAO,QAAQ,CAAC,IAAS,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,QAAQ,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAM,CAAC;gBACvC,CAAC;gBACD,KAAK,aAAa,CAAC,CAAC,CAAC;oBACjB,OAAO,MAAW,CAAC;gBACvB,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACV,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAM,CAAC;gBACtE,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBACd,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAM,CAAC;gBAC1E,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,OAAO,CAAC,CAAC,CAAC;oBACN,qDAAqD;oBACrD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpC,IAAI,CAAC;wBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;oBACjC,CAAC;oBAAC,MAAM,CAAC;wBACL,OAAO,IAAS,CAAC;oBACrB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gCAAgC;YAChC,IAAI,KAAK,YAAY,6BAAqB,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,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,aAAa,CAAC,UAAkB;QACpC,OAAO,mBAAY,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IACjD,CAAC;CACJ;AAzcD,sCAycC"}