@hyperttp/core 1.3.3 → 1.4.1

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 (46) hide show
  1. package/Core/HyperCore.d.ts +142 -152
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +289 -286
  4. package/Core/HyperCore.js.map +1 -1
  5. package/README.md +279 -134
  6. package/package.json +14 -8
  7. package/transports/browser.d.ts +228 -0
  8. package/transports/browser.d.ts.map +1 -0
  9. package/transports/browser.js +451 -0
  10. package/transports/browser.js.map +1 -0
  11. package/transports/manager.d.ts +7 -67
  12. package/transports/manager.d.ts.map +1 -1
  13. package/transports/manager.js +138 -145
  14. package/transports/manager.js.map +1 -1
  15. package/transports/node.d.ts +0 -20
  16. package/transports/node.d.ts.map +1 -1
  17. package/transports/node.js +104 -48
  18. package/transports/node.js.map +1 -1
  19. package/utils/decompress.d.ts +16 -18
  20. package/utils/decompress.d.ts.map +1 -1
  21. package/utils/decompress.js +143 -63
  22. package/utils/decompress.js.map +1 -1
  23. package/utils/errors.d.ts +0 -10
  24. package/utils/errors.d.ts.map +1 -1
  25. package/utils/errors.js +1 -11
  26. package/utils/errors.js.map +1 -1
  27. package/utils/merge.d.ts +0 -3
  28. package/utils/merge.d.ts.map +1 -1
  29. package/utils/merge.js +0 -4
  30. package/utils/merge.js.map +1 -1
  31. package/utils/normalize.d.ts +40 -20
  32. package/utils/normalize.d.ts.map +1 -1
  33. package/utils/normalize.js +197 -63
  34. package/utils/normalize.js.map +1 -1
  35. package/utils/pipeline.d.ts +10 -30
  36. package/utils/pipeline.d.ts.map +1 -1
  37. package/utils/pipeline.js +44 -44
  38. package/utils/pipeline.js.map +1 -1
  39. package/utils/response.d.ts +35 -44
  40. package/utils/response.d.ts.map +1 -1
  41. package/utils/response.js +228 -69
  42. package/utils/response.js.map +1 -1
  43. package/utils/retryUtils.d.ts +2 -10
  44. package/utils/retryUtils.d.ts.map +1 -1
  45. package/utils/retryUtils.js +17 -21
  46. package/utils/retryUtils.js.map +1 -1
@@ -1,5 +1,11 @@
1
+ /**
2
+ * @ru Карта заголовков, которые должны содержать только одно значение (не массив).
3
+ * Использует `Object.create(null)` для быстрого доступа без прототипа.
4
+ * @en Map of headers that should contain only a single value (not an array).
5
+ * Uses `Object.create(null)` for fast prototype-less access.
6
+ */
1
7
  const SINGLE_VALUE_HEADERS = Object.create(null);
2
- const svh = [
8
+ for (const h of [
3
9
  "content-type",
4
10
  "content-length",
5
11
  "content-encoding",
@@ -13,10 +19,13 @@ const svh = [
13
19
  "location",
14
20
  "etag",
15
21
  "last-modified",
16
- ];
17
- for (let i = 0; i < svh.length; i++) {
18
- SINGLE_VALUE_HEADERS[svh[i]] = true;
22
+ ]) {
23
+ SINGLE_VALUE_HEADERS[h] = 1;
19
24
  }
25
+ /**
26
+ * @ru Кэш нормализованных HTTP-методов для избежания повторных вызовов `toUpperCase()`.
27
+ * @en Cache of normalized HTTP methods to avoid repeated `toUpperCase()` calls.
28
+ */
20
29
  const METHOD_CACHE = {
21
30
  get: "GET",
22
31
  GET: "GET",
@@ -34,49 +43,129 @@ const METHOD_CACHE = {
34
43
  OPTIONS: "OPTIONS",
35
44
  };
36
45
  /**
37
- * @ru Нормализует строку HTTP-метода в стандартную заглавную форму (например, "get" → "GET").
38
- * @en Normalizes an HTTP method string to its standard uppercase form (e.g., "get" → "GET").
39
- * @param method - Raw method string.
40
- * @returns Normalized method (e.g., "GET", "POST", etc.).
46
+ * @ru Кэш для нормализации ключей заголовков (lowercase).
47
+ * Ограничен размером HEADER_CACHE_LIMIT для предотвращения утечек памяти.
48
+ * @en Cache for header key normalization (lowercase).
49
+ * Limited by HEADER_CACHE_LIMIT to prevent memory leaks.
50
+ */
51
+ const HEADER_CACHE_LIMIT = 2048;
52
+ const HEADER_KEY_CACHE = Object.create(null);
53
+ /**
54
+ * @ru Список наиболее распространённых HTTP-заголовков для предзаполнения кэша.
55
+ * @en List of most common HTTP headers for cache pre-population.
56
+ */
57
+ const COMMON_HEADERS = [
58
+ "accept",
59
+ "accept-encoding",
60
+ "accept-language",
61
+ "authorization",
62
+ "cache-control",
63
+ "connection",
64
+ "content-encoding",
65
+ "content-length",
66
+ "content-type",
67
+ "cookie",
68
+ "date",
69
+ "etag",
70
+ "host",
71
+ "if-modified-since",
72
+ "if-none-match",
73
+ "keep-alive",
74
+ "location",
75
+ "origin",
76
+ "pragma",
77
+ "proxy-authorization",
78
+ "referer",
79
+ "sec-ch-ua",
80
+ "server",
81
+ "set-cookie",
82
+ "transfer-encoding",
83
+ "user-agent",
84
+ "x-forwarded-for",
85
+ "x-requested-with",
86
+ ];
87
+ for (let i = 0; i < COMMON_HEADERS.length; i++) {
88
+ const lower = COMMON_HEADERS[i];
89
+ HEADER_KEY_CACHE[lower] = lower;
90
+ }
91
+ let cacheSize = COMMON_HEADERS.length;
92
+ /**
93
+ * @ru Быстрая нормализация ключа заголовка в нижний регистр с кэшированием.
94
+ * @en Fast header key normalization to lowercase with caching.
95
+ * @param key - The header key to normalize.
96
+ * @returns The lowercase version of the key.
97
+ */
98
+ function fastLowercaseKey(key) {
99
+ const cached = HEADER_KEY_CACHE[key];
100
+ if (cached !== undefined)
101
+ return cached;
102
+ const lower = key.toLowerCase();
103
+ if (cacheSize < HEADER_CACHE_LIMIT) {
104
+ HEADER_KEY_CACHE[key] = lower;
105
+ cacheSize++;
106
+ }
107
+ return lower;
108
+ }
109
+ /**
110
+ * @ru Нормализует HTTP-метод в верхний регистр с кэшированием.
111
+ * @en Normalizes HTTP method to uppercase with caching.
112
+ * @param method - The HTTP method string (e.g., 'get', 'POST').
113
+ * @returns The normalized HTTP method in uppercase.
41
114
  */
42
115
  export function normalizeMethod(method) {
43
116
  const cached = METHOD_CACHE[method];
44
117
  return cached !== undefined ? cached : method.toUpperCase();
45
118
  }
46
119
  /**
47
- * @ru Извлекает и нормализует URL из строки или объекта запроса (поддерживает поля url, _url, или комбинацию scheme/host/path).
48
- * @en Extracts and normalizes a URL from a string or request object (supports url, _url fields, or scheme/host/path combination).
49
- * @param req - Request object or plain URL string.
50
- * @returns Normalized URL string.
51
- * @throws If URL cannot be determined.
120
+ * @ru Извлекает URL из объекта запроса или строки.
121
+ * Поддерживает различные форматы: строка, объект с полем `url`, `_url`, или `scheme/host/path`.
122
+ * @en Extracts URL from a request object or string.
123
+ * Supports various formats: string, object with `url`, `_url`, or `scheme/host/path` fields.
124
+ * @param req - The request object or URL string.
125
+ * @returns The extracted URL string.
126
+ * @throws Error if URL is missing in the request.
52
127
  */
53
128
  export function normalizeUrl(req) {
54
129
  if (typeof req === "string")
55
130
  return req;
56
- if (req.url)
57
- return typeof req.url === "string" ? req.url : String(req.url);
58
- if (req._url)
59
- return typeof req._url === "string" ? req._url : String(req._url);
60
- if (req.scheme && req.host && req.path) {
61
- return `${req.scheme}://${req.host}${req.path}`;
131
+ if (req && typeof req === "object") {
132
+ const r = req;
133
+ const url = r.url;
134
+ if (typeof url === "string")
135
+ return url;
136
+ if (url != null)
137
+ return String(url);
138
+ const u = r._url;
139
+ if (typeof u === "string")
140
+ return u;
141
+ if (u != null)
142
+ return String(u);
143
+ const scheme = r.scheme;
144
+ const host = r.host;
145
+ const path = r.path;
146
+ if (typeof scheme === "string" && typeof host === "string" && typeof path === "string") {
147
+ return `${scheme}://${host}${path}`;
148
+ }
62
149
  }
63
150
  throw new Error("URL missing in request");
64
151
  }
65
152
  /**
66
- * @ru Вспомогательная функция для добавления заголовка в результирующий объект с учётом правил объединения (одиночные, множественные, cookie, set-cookie).
67
- * @en Helper function to append a header to the result object, respecting merging rules (single-value, multi-value, cookie, set-cookie).
68
- * @param out - Target object accumulating headers.
69
- * @param lowerKey - Header name in lower case.
70
- * @param value - Header value as a string.
153
+ * @ru Добавляет значение заголовка к нормализованному объекту заголовков.
154
+ * Учитывает специальные правила для `set-cookie`, `cookie`, и других заголовков.
155
+ * @en Appends a header value to the normalized headers object.
156
+ * Accounts for special rules for `set-cookie`, `cookie`, and other headers.
157
+ * @param out - The normalized headers object to modify.
158
+ * @param lowerKey - The lowercase header key.
159
+ * @param value - The header value to append.
71
160
  */
72
161
  function appendHeader(out, lowerKey, value) {
73
- if (SINGLE_VALUE_HEADERS[lowerKey] !== undefined) {
162
+ if (SINGLE_VALUE_HEADERS[lowerKey] === 1) {
74
163
  out[lowerKey] = value;
75
164
  return;
76
165
  }
77
166
  const existing = out[lowerKey];
78
167
  if (existing === undefined) {
79
- out[lowerKey] = value;
168
+ out[lowerKey] = lowerKey === "set-cookie" ? [value] : value;
80
169
  return;
81
170
  }
82
171
  if (lowerKey === "set-cookie") {
@@ -89,63 +178,108 @@ function appendHeader(out, lowerKey, value) {
89
178
  return;
90
179
  }
91
180
  if (lowerKey === "cookie" || lowerKey === "cookie2") {
92
- out[lowerKey] = `${existing}; ${value}`;
181
+ out[lowerKey] = existing + "; " + value;
93
182
  return;
94
183
  }
95
- out[lowerKey] = `${existing}, ${value}`;
184
+ out[lowerKey] = existing + ", " + value;
96
185
  }
97
186
  /**
98
- * @ru Нормализует входные заголовки (объект, массив пар) в стандартный объект с ключами в нижнем регистре и правильным объединением значений.
99
- * @en Normalizes input headers (object, array of pairs) into a standard object with lower‑case keys and proper value merging.
100
- * @param headers - Raw headers (plain object, array of [key, value] pairs, or null/undefined).
101
- * @returns Normalized headers object (keys are lower‑case, values are strings or arrays for set-cookie).
187
+ * @ru Добавляет сырое значение заголовка к нормализованному объекту.
188
+ * Обрабатывает массивы значений и преобразует нестроковые значения в строки.
189
+ * @en Appends a raw header value to the normalized headers object.
190
+ * Handles arrays of values and converts non-string values to strings.
191
+ * @param out - The normalized headers object to modify.
192
+ * @param lower - The lowercase header key.
193
+ * @param raw - The raw header value (string, array, or other).
194
+ */
195
+ function appendRawValue(out, lower, raw) {
196
+ if (raw === undefined || raw === null)
197
+ return;
198
+ if (Array.isArray(raw)) {
199
+ const len = raw.length;
200
+ for (let i = 0; i < len; i++) {
201
+ const item = raw[i];
202
+ if (item !== undefined && item !== null) {
203
+ appendHeader(out, lower, typeof item === "string" ? item : String(item));
204
+ }
205
+ }
206
+ return;
207
+ }
208
+ appendHeader(out, lower, typeof raw === "string" ? raw : String(raw));
209
+ }
210
+ /**
211
+ * @ru Нормализует заголовки запроса в единый формат с ключами в нижнем регистре.
212
+ * Поддерживает различные входные форматы: объект, массив пар, плоский массив.
213
+ *
214
+ * Специальные правила:
215
+ * - `set-cookie` всегда хранится как массив
216
+ * - `cookie`/`cookie2` объединяются через `; `
217
+ * - Остальные множественные заголовки объединяются через `, `
218
+ * - Заголовки из SINGLE_VALUE_HEADERS перезаписываются (не объединяются)
219
+ *
220
+ * @en Normalizes request headers into a unified format with lowercase keys.
221
+ * Supports various input formats: object, array of pairs, flat array.
222
+ *
223
+ * Special rules:
224
+ * - `set-cookie` is always stored as an array
225
+ * - `cookie`/`cookie2` are joined with `; `
226
+ * - Other multiple headers are joined with `, `
227
+ * - Headers from SINGLE_VALUE_HEADERS are overwritten (not merged)
228
+ *
229
+ * @param headers - The headers to normalize (object, array of pairs, or flat array).
230
+ * @returns Normalized headers object with lowercase keys.
102
231
  */
103
232
  export function normalizeHeaders(headers) {
104
233
  const out = Object.create(null);
105
234
  if (!headers || typeof headers !== "object")
106
235
  return out;
107
- if (Array.isArray(headers)) {
108
- const len = headers.length;
109
- for (let i = 0; i < len; i += 2) {
110
- const key = headers[i];
111
- if (typeof key !== "string" || !key)
236
+ if (!Array.isArray(headers)) {
237
+ for (const key in headers) {
238
+ if (Object.prototype.hasOwnProperty.call(headers, key)) {
239
+ const val = headers[key];
240
+ if (val !== undefined && val !== null) {
241
+ appendRawValue(out, fastLowercaseKey(key), val);
242
+ }
243
+ }
244
+ }
245
+ return out;
246
+ }
247
+ const len = headers.length;
248
+ if (len === 0)
249
+ return out;
250
+ if (Array.isArray(headers[0])) {
251
+ for (let i = 0; i < len; i++) {
252
+ const pair = headers[i];
253
+ if (!Array.isArray(pair))
112
254
  continue;
113
- const rawValue = headers[i + 1];
255
+ const key = pair[0];
256
+ if (typeof key !== "string" || key.length === 0)
257
+ continue;
258
+ const rawValue = pair[1];
114
259
  if (rawValue === undefined || rawValue === null)
115
260
  continue;
116
- appendHeader(out, key.toLowerCase(), typeof rawValue === "string" ? rawValue : String(rawValue));
261
+ appendHeader(out, fastLowercaseKey(key), typeof rawValue === "string" ? rawValue : String(rawValue));
117
262
  }
118
- return out;
119
263
  }
120
- const headerObj = headers;
121
- for (const key in headerObj) {
122
- if (Object.prototype.hasOwnProperty.call(headerObj, key)) {
123
- const val = headerObj[key];
124
- if (val === undefined || val === null)
264
+ else {
265
+ for (let i = 0; i < len; i += 2) {
266
+ const key = headers[i];
267
+ if (typeof key !== "string" || key.length === 0)
125
268
  continue;
126
- const lower = key.toLowerCase();
127
- if (Array.isArray(val)) {
128
- const vLen = val.length;
129
- for (let i = 0; i < vLen; i++) {
130
- const rawValue = val[i];
131
- if (rawValue !== undefined && rawValue !== null) {
132
- appendHeader(out, lower, typeof rawValue === "string" ? rawValue : String(rawValue));
133
- }
134
- }
135
- }
136
- else {
137
- appendHeader(out, lower, typeof val === "string" ? val : String(val));
138
- }
269
+ const rawValue = headers[i + 1];
270
+ if (rawValue === undefined || rawValue === null)
271
+ continue;
272
+ appendHeader(out, fastLowercaseKey(key), typeof rawValue === "string" ? rawValue : String(rawValue));
139
273
  }
140
274
  }
141
275
  return out;
142
276
  }
143
277
  /**
144
- * @ru Возвращает тело запроса только для методов, поддерживающих тело (не GET/HEAD), иначе undefined.
145
- * @en Returns the request body only for methods that support a body (not GET/HEAD), otherwise undefined.
146
- * @param method - HTTP method.
147
- * @param body - Original request body (if any).
148
- * @returns The body for allowed methods, or undefined for GET/HEAD.
278
+ * @ru Нормализует тело запроса, удаляя его для методов GET и HEAD.
279
+ * @en Normalizes request body by removing it for GET and HEAD methods.
280
+ * @param method - The HTTP method.
281
+ * @param body - The request body data.
282
+ * @returns The body for methods that support it, or undefined for GET/HEAD.
149
283
  */
150
284
  export function normalizeBody(method, body) {
151
285
  return method === "GET" || method === "HEAD" ? undefined : body;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"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"}
@@ -41,43 +41,23 @@ export declare function createPipelines(): PipelineContainer;
41
41
  */
42
42
  export declare function insertHookSorted<T>(list: HookRecord<T>[], hook: HookRecord<T>): void;
43
43
  /**
44
- * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit (ранний возврат ответа). Использует Fast-Path для синхронных хуков без аллокации микротасок.
45
- * @en Executes the pre-request pipeline. Supports short-circuiting with fast-path for sync hooks.
46
- * @param hooks - Array of request hooks.
47
- * @param req - Internal request object.
48
- * @param ctx - Plugin context.
49
- * @returns A response if short-circuited, null otherwise, or a promise.
44
+ * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit.
45
+ * @en Executes the pre-request pipeline. Supports short-circuiting.
50
46
  */
51
- export declare function executeRequestPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onRequest"]>[], req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null | void;
47
+ export declare function executeRequestPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onRequest"]>[], req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null;
52
48
  /**
53
- * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA). Если хук возвращает измененный TransportResponse, он передается дальше по цепочке.
54
- * @en Executes low-level transport data transformation pipeline (DATA phase). If a hook returns a modified TransportResponse, it is passed along the chain.
55
- * @param hooks - Array of response data hooks.
56
- * @param res - Current transport response.
57
- * @param ctx - Plugin context.
58
- * @returns The (possibly transformed) transport response, either directly or wrapped in a promise.
49
+ * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA).
50
+ * @en Executes low-level transport data transformation pipeline (DATA phase).
59
51
  */
60
52
  export declare function executeResponseDataPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onResponseData"]>[], res: TransportResponse, ctx: PluginContext): Promise<TransportResponse> | TransportResponse;
61
53
  /**
62
- * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы (последовательно) и сайд-эффекты (в фоне). Оптимизирован для минимизации выделения памяти под замыкания логгера.
63
- * @en Executes the post-response pipeline. Split into mutators (sequential) and side-effects (background). Optimized to minimize memory allocations for logger closures.
64
- * @param mutators - Hooks that mutate the response (executed sequentially).
65
- * @param sideEffects - Hooks that run in background, errors are logged but do not break the main flow.
66
- * @param res - HTTP response object.
67
- * @param req - Internal request object.
68
- * @param ctx - Plugin context.
69
- * @param logger - Optional logger for side-effect errors.
70
- * @returns A promise if any mutator returns a promise, otherwise void.
54
+ * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы и сайд-эффекты.
55
+ * @en Executes the post-response pipeline. Split into mutators and side-effects.
71
56
  */
72
57
  export declare function executeResponsePipeline(mutators: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], sideEffects: readonly HookRecord<Required<HyperPlugin>["onResponse"]>[], res: HttpResponse<unknown>, req: InternalRequest, ctx: PluginContext, logger?: HttpClientOptions["logger"]): Promise<void> | void;
73
58
  /**
74
- * @ru Выполняет конвейер перехвата ошибок. Первый вернувший HttpResponse плагин прерывает панику.
75
- * @en Executes the error interception pipeline. The first plugin that returns HttpResponse stops the panic.
76
- * @param hooks - Array of error hooks.
77
- * @param error - The error that occurred.
78
- * @param req - Internal request object.
79
- * @param ctx - Plugin context.
80
- * @returns A response if recovered, null otherwise, or a promise.
59
+ * @ru Выполняет конвейер перехвата ошибок.
60
+ * @en Executes the error interception pipeline.
81
61
  */
82
- export declare function executeErrorPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onError"]>[], error: HyperttpError, req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null | void;
62
+ export declare function executeErrorPipeline(hooks: readonly HookRecord<Required<HyperPlugin>["onError"]>[], error: HyperttpError, req: InternalRequest, ctx: PluginContext): Promise<HttpResponse<unknown> | null> | HttpResponse<unknown> | null;
83
63
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wHAAwH;IACxH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oGAAoG;IACpG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;IACnE,iGAAiG;IACjG,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAC7E,2HAA2H;IAC3H,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAC7E,+GAA+G;IAC/G,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAChF,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CAChE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAQnD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAOpF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAChE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAWtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,EACrE,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAchD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACpE,WAAW,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EACvE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,EAC1B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAwBtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC9D,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAWtE"}
package/utils/pipeline.js CHANGED
@@ -27,12 +27,8 @@ export function insertHookSorted(list, hook) {
27
27
  list.splice(i, 0, hook);
28
28
  }
29
29
  /**
30
- * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit (ранний возврат ответа). Использует Fast-Path для синхронных хуков без аллокации микротасок.
31
- * @en Executes the pre-request pipeline. Supports short-circuiting with fast-path for sync hooks.
32
- * @param hooks - Array of request hooks.
33
- * @param req - Internal request object.
34
- * @param ctx - Plugin context.
35
- * @returns A response if short-circuited, null otherwise, or a promise.
30
+ * @ru Выполняет конвейер пред-запроса. Поддерживает short-circuit.
31
+ * @en Executes the pre-request pipeline. Supports short-circuiting.
36
32
  */
37
33
  export function executeRequestPipeline(hooks, req, ctx) {
38
34
  const len = hooks.length;
@@ -49,12 +45,8 @@ export function executeRequestPipeline(hooks, req, ctx) {
49
45
  return null;
50
46
  }
51
47
  /**
52
- * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA). Если хук возвращает измененный TransportResponse, он передается дальше по цепочке.
53
- * @en Executes low-level transport data transformation pipeline (DATA phase). If a hook returns a modified TransportResponse, it is passed along the chain.
54
- * @param hooks - Array of response data hooks.
55
- * @param res - Current transport response.
56
- * @param ctx - Plugin context.
57
- * @returns The (possibly transformed) transport response, either directly or wrapped in a promise.
48
+ * @ru Выполняет низкоуровневый конвейер трансформации сырых данных транспорта (фаза DATA).
49
+ * @en Executes low-level transport data transformation pipeline (DATA phase).
58
50
  */
59
51
  export function executeResponseDataPipeline(hooks, res, ctx) {
60
52
  const len = hooks.length;
@@ -73,15 +65,8 @@ export function executeResponseDataPipeline(hooks, res, ctx) {
73
65
  return currentRes;
74
66
  }
75
67
  /**
76
- * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы (последовательно) и сайд-эффекты (в фоне). Оптимизирован для минимизации выделения памяти под замыкания логгера.
77
- * @en Executes the post-response pipeline. Split into mutators (sequential) and side-effects (background). Optimized to minimize memory allocations for logger closures.
78
- * @param mutators - Hooks that mutate the response (executed sequentially).
79
- * @param sideEffects - Hooks that run in background, errors are logged but do not break the main flow.
80
- * @param res - HTTP response object.
81
- * @param req - Internal request object.
82
- * @param ctx - Plugin context.
83
- * @param logger - Optional logger for side-effect errors.
84
- * @returns A promise if any mutator returns a promise, otherwise void.
68
+ * @ru Выполняет конвейер пост-ответа. Разделен на мутаторы и сайд-эффекты.
69
+ * @en Executes the post-response pipeline. Split into mutators and side-effects.
85
70
  */
86
71
  export function executeResponsePipeline(mutators, sideEffects, res, req, ctx, logger) {
87
72
  const seLen = sideEffects.length;
@@ -91,7 +76,7 @@ export function executeResponsePipeline(mutators, sideEffects, res, req, ctx, lo
91
76
  try {
92
77
  const promise = effect.run(res, req, ctx);
93
78
  if (promise instanceof Promise) {
94
- promise.catch((err) => handleSideEffectError(err, effect.name, logger));
79
+ safelyAttachSideEffectCatch(promise, effect.name, logger);
95
80
  }
96
81
  }
97
82
  catch (err) {
@@ -110,13 +95,8 @@ export function executeResponsePipeline(mutators, sideEffects, res, req, ctx, lo
110
95
  }
111
96
  }
112
97
  /**
113
- * @ru Выполняет конвейер перехвата ошибок. Первый вернувший HttpResponse плагин прерывает панику.
114
- * @en Executes the error interception pipeline. The first plugin that returns HttpResponse stops the panic.
115
- * @param hooks - Array of error hooks.
116
- * @param error - The error that occurred.
117
- * @param req - Internal request object.
118
- * @param ctx - Plugin context.
119
- * @returns A response if recovered, null otherwise, or a promise.
98
+ * @ru Выполняет конвейер перехвата ошибок.
99
+ * @en Executes the error interception pipeline.
120
100
  */
121
101
  export function executeErrorPipeline(hooks, error, req, ctx) {
122
102
  const len = hooks.length;
@@ -138,9 +118,15 @@ async function executeRequestPipelineAsync(hooks, req, ctx, startIndex, initialP
138
118
  return shortCircuit;
139
119
  const len = hooks.length;
140
120
  for (let i = startIndex + 1; i < len; i++) {
141
- const res = await hooks[i].run(req, ctx);
142
- if (res != null)
121
+ const res = hooks[i].run(req, ctx);
122
+ if (res instanceof Promise) {
123
+ const asyncRes = await res;
124
+ if (asyncRes != null)
125
+ return asyncRes;
126
+ }
127
+ else if (res != null) {
143
128
  return res;
129
+ }
144
130
  }
145
131
  return null;
146
132
  }
@@ -152,8 +138,14 @@ async function executeResponseDataPipelineAsync(hooks, ctx, startIndex, initialP
152
138
  }
153
139
  const len = hooks.length;
154
140
  for (let i = startIndex + 1; i < len; i++) {
155
- const result = await hooks[i].run(currentRes, ctx);
156
- if (result != null) {
141
+ const result = hooks[i].run(currentRes, ctx);
142
+ if (result instanceof Promise) {
143
+ const asyncResult = await result;
144
+ if (asyncResult != null) {
145
+ currentRes = asyncResult;
146
+ }
147
+ }
148
+ else if (result != null) {
157
149
  currentRes = result;
158
150
  }
159
151
  }
@@ -163,7 +155,10 @@ async function executeMutatorsAsync(mutators, res, req, ctx, startIndex, initial
163
155
  await initialPromise;
164
156
  const len = mutators.length;
165
157
  for (let i = startIndex + 1; i < len; i++) {
166
- await mutators[i].run(res, req, ctx);
158
+ const result = mutators[i].run(res, req, ctx);
159
+ if (result instanceof Promise) {
160
+ await result;
161
+ }
167
162
  }
168
163
  }
169
164
  async function executeErrorPipelineAsync(hooks, error, req, ctx, startIndex, initialPromise) {
@@ -172,20 +167,25 @@ async function executeErrorPipelineAsync(hooks, error, req, ctx, startIndex, ini
172
167
  return recovered;
173
168
  const len = hooks.length;
174
169
  for (let i = startIndex + 1; i < len; i++) {
175
- const res = await hooks[i].run(error, req, ctx);
176
- if (res != null)
170
+ const res = hooks[i].run(error, req, ctx);
171
+ if (res instanceof Promise) {
172
+ const asyncRes = await res;
173
+ if (asyncRes != null)
174
+ return asyncRes;
175
+ }
176
+ else if (res != null) {
177
177
  return res;
178
+ }
178
179
  }
179
180
  return null;
180
181
  }
181
- /**
182
- * @ru Статический обработчик падений фоновых хуков. Изолирован для предотвращения регенерации замыканий.
183
- * @en Static handler for background hook crashes. Isolated to prevent closure regeneration.
184
- * @param err - Caught error.
185
- * @param hookName - Name of the hook that failed.
186
- * @param logger - Optional logger.
187
- */
182
+ function safelyAttachSideEffectCatch(promise, hookName, logger) {
183
+ promise.catch((err) => handleSideEffectError(err, hookName, logger));
184
+ }
188
185
  function handleSideEffectError(err, hookName, logger) {
189
- logger?.("warn", `Background hook ${hookName} crashed: ${err instanceof Error ? err.message : String(err)}`);
186
+ if (!logger)
187
+ return;
188
+ const errorObject = err instanceof Error ? err : new Error(String(err));
189
+ logger("warn", `Background hook "${hookName}" crashed: ${errorObject.message}`, errorObject);
190
190
  }
191
191
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/utils/pipeline.ts"],"names":[],"mappings":"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"}