@hyperttp/core 1.1.11 → 1.2.0

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 (95) hide show
  1. package/Core/HyperCore.d.ts +174 -9
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +337 -110
  4. package/Core/HyperCore.js.map +1 -1
  5. package/Core/index.d.ts +0 -1
  6. package/Core/index.d.ts.map +1 -1
  7. package/Core/index.js +0 -1
  8. package/Core/index.js.map +1 -1
  9. package/LICENSE +21 -0
  10. package/README.md +178 -0
  11. package/defaultConfig.d.ts +1 -1
  12. package/defaultConfig.d.ts.map +1 -1
  13. package/defaultConfig.js +0 -1
  14. package/defaultConfig.js.map +1 -1
  15. package/index.d.ts +1 -4
  16. package/index.d.ts.map +1 -1
  17. package/index.js +1 -1
  18. package/index.js.map +1 -1
  19. package/package.json +20 -6
  20. package/transports/node.d.ts +19 -5
  21. package/transports/node.d.ts.map +1 -1
  22. package/transports/node.js +254 -126
  23. package/transports/node.js.map +1 -1
  24. package/utils/errors.d.ts +49 -0
  25. package/utils/errors.d.ts.map +1 -0
  26. package/utils/errors.js +63 -0
  27. package/utils/errors.js.map +1 -0
  28. package/utils/merge.d.ts +8 -1
  29. package/utils/merge.d.ts.map +1 -1
  30. package/utils/merge.js +27 -13
  31. package/utils/merge.js.map +1 -1
  32. package/utils/response.d.ts +40 -0
  33. package/utils/response.d.ts.map +1 -0
  34. package/utils/response.js +79 -0
  35. package/utils/response.js.map +1 -0
  36. package/utils/retryUtils.d.ts +5 -0
  37. package/utils/retryUtils.d.ts.map +1 -0
  38. package/utils/retryUtils.js +35 -0
  39. package/utils/retryUtils.js.map +1 -0
  40. package/Core/RequestExecutor.d.ts +0 -64
  41. package/Core/RequestExecutor.d.ts.map +0 -1
  42. package/Core/RequestExecutor.js +0 -213
  43. package/Core/RequestExecutor.js.map +0 -1
  44. package/transports/bun.d.ts +0 -14
  45. package/transports/bun.d.ts.map +0 -1
  46. package/transports/bun.js +0 -164
  47. package/transports/bun.js.map +0 -1
  48. package/types/errors.d.ts +0 -20
  49. package/types/errors.d.ts.map +0 -1
  50. package/types/errors.js +0 -28
  51. package/types/errors.js.map +0 -1
  52. package/types/http.d.ts +0 -5
  53. package/types/http.d.ts.map +0 -1
  54. package/types/http.js +0 -2
  55. package/types/http.js.map +0 -1
  56. package/types/hyper.d.ts +0 -34
  57. package/types/hyper.d.ts.map +0 -1
  58. package/types/hyper.js +0 -2
  59. package/types/hyper.js.map +0 -1
  60. package/types/index.d.ts +0 -12
  61. package/types/index.d.ts.map +0 -1
  62. package/types/index.js +0 -12
  63. package/types/index.js.map +0 -1
  64. package/types/metrics.d.ts +0 -65
  65. package/types/metrics.d.ts.map +0 -1
  66. package/types/metrics.js +0 -2
  67. package/types/metrics.js.map +0 -1
  68. package/types/network.d.ts +0 -65
  69. package/types/network.d.ts.map +0 -1
  70. package/types/network.js +0 -2
  71. package/types/network.js.map +0 -1
  72. package/types/options.d.ts +0 -51
  73. package/types/options.d.ts.map +0 -1
  74. package/types/options.js +0 -2
  75. package/types/options.js.map +0 -1
  76. package/types/plugins.d.ts +0 -47
  77. package/types/plugins.d.ts.map +0 -1
  78. package/types/plugins.js +0 -2
  79. package/types/plugins.js.map +0 -1
  80. package/types/request.d.ts +0 -114
  81. package/types/request.d.ts.map +0 -1
  82. package/types/request.js +0 -2
  83. package/types/request.js.map +0 -1
  84. package/types/retry.d.ts +0 -28
  85. package/types/retry.d.ts.map +0 -1
  86. package/types/retry.js +0 -2
  87. package/types/retry.js.map +0 -1
  88. package/types/stream.d.ts +0 -39
  89. package/types/stream.d.ts.map +0 -1
  90. package/types/stream.js +0 -2
  91. package/types/stream.js.map +0 -1
  92. package/types/transport.d.ts +0 -20
  93. package/types/transport.d.ts.map +0 -1
  94. package/types/transport.js +0 -2
  95. package/types/transport.js.map +0 -1
@@ -1,145 +1,273 @@
1
- import { pipeline, Readable } from "node:stream";
2
- import zlib from "node:zlib";
3
- import { CookieAgent } from "http-cookie-agent/undici";
4
- import { RequestExecutor } from "../Core/RequestExecutor.js";
1
+ import http from "node:http";
2
+ import https from "node:https";
3
+ import { Readable } from "node:stream";
4
+ const REDIRECT_STATUS_CODES = new Set([301, 302, 303, 307, 308]);
5
+ const DEFAULT_RETRY_STATUS_CODES = [502, 503, 504];
6
+ export function isRedirect(status) {
7
+ return REDIRECT_STATUS_CODES.has(status);
8
+ }
9
+ export function combineSignal(signal, timeoutMs) {
10
+ if (timeoutMs <= 0) {
11
+ return {
12
+ signal,
13
+ cancelTimer: () => { },
14
+ isTimeoutAbort: () => false,
15
+ };
16
+ }
17
+ const timeoutController = new AbortController();
18
+ const timer = setTimeout(() => timeoutController.abort(), timeoutMs);
19
+ let combinedSignal;
20
+ if (signal) {
21
+ if (typeof AbortSignal.any === "function") {
22
+ combinedSignal = AbortSignal.any([signal, timeoutController.signal]);
23
+ }
24
+ else {
25
+ const onAbort = () => timeoutController.abort();
26
+ signal.addEventListener("abort", onAbort, { once: true });
27
+ combinedSignal = timeoutController.signal;
28
+ }
29
+ }
30
+ else {
31
+ combinedSignal = timeoutController.signal;
32
+ }
33
+ return {
34
+ signal: combinedSignal,
35
+ cancelTimer: () => clearTimeout(timer),
36
+ isTimeoutAbort: () => timeoutController.signal.aborted,
37
+ };
38
+ }
39
+ export function shouldRetry(status, retryOptions) {
40
+ const codes = retryOptions.retryStatusCodes;
41
+ if (codes && codes.length > 0) {
42
+ return codes.includes(status);
43
+ }
44
+ return DEFAULT_RETRY_STATUS_CODES.includes(status);
45
+ }
46
+ export function sleep(ms) {
47
+ return new Promise((resolve) => setTimeout(resolve, ms));
48
+ }
49
+ export function calcDelay(attempt, retryOptions) {
50
+ const { baseDelay = 1000, maxDelay = 10000, jitter = true } = retryOptions;
51
+ const base = Math.min(baseDelay * 2 ** attempt, maxDelay);
52
+ return jitter ? base * (0.75 + Math.random() * 0.5) : base;
53
+ }
54
+ /**
55
+ * @ru Реализация ответа для стандартного Node.js транспорта.
56
+ */
57
+ class NodeTransportResponse {
58
+ status;
59
+ headers;
60
+ url;
61
+ body;
62
+ baseUrl;
63
+ _rawBody;
64
+ _cachedText;
65
+ _cachedJson;
66
+ _cachedJsonReady = false;
67
+ constructor(status, headers, url, rawBody) {
68
+ this.status = status;
69
+ this.headers = headers;
70
+ this.url = url;
71
+ this._rawBody = rawBody;
72
+ this.baseUrl = url;
73
+ const stream = Readable.from([rawBody]);
74
+ Object.defineProperty(stream, "dump", {
75
+ value: () => Promise.resolve(),
76
+ writable: false,
77
+ enumerable: false,
78
+ configurable: true,
79
+ });
80
+ this.body = stream;
81
+ }
82
+ async text() {
83
+ if (this._cachedText === undefined) {
84
+ this._cachedText = this._rawBody.toString("utf-8");
85
+ }
86
+ return this._cachedText;
87
+ }
88
+ async json() {
89
+ if (this._cachedJsonReady) {
90
+ return this._cachedJson;
91
+ }
92
+ const text = await this.text();
93
+ if (!text.trim()) {
94
+ this._cachedJson = null;
95
+ this._cachedJsonReady = true;
96
+ return null;
97
+ }
98
+ this._cachedJson = JSON.parse(text);
99
+ this._cachedJsonReady = true;
100
+ return this._cachedJson;
101
+ }
102
+ }
103
+ /**
104
+ * @ru Высокопроизводительный транспорт на базе классических модулей http/https Node.js.
105
+ */
5
106
  export class NodeTransport {
6
- agent;
7
- executor;
107
+ config;
108
+ httpAgent;
109
+ httpsAgent;
8
110
  constructor(config) {
9
- const concurrency = config.network?.maxConcurrent === 0
10
- ? Infinity
11
- : (config.network?.maxConcurrent ?? 500);
12
- const allowH2 = config.network?.allowHttp2 ?? true;
13
- const pipelining = config.network?.pipelining !== undefined
14
- ? config.network.pipelining === 0
15
- ? 256
16
- : config.network.pipelining
17
- : allowH2
18
- ? 100
19
- : 1;
20
- this.agent = new CookieAgent({
21
- connections: concurrency === Infinity ? null : concurrency,
22
- pipelining,
23
- keepAliveTimeout: config.network?.keepAliveTimeout ?? 30000,
24
- keepAliveMaxTimeout: config.network?.keepAliveTimeout ?? 30000,
25
- clientTtl: 60000,
26
- connect: { rejectUnauthorized: config.network?.rejectUnauthorized },
27
- allowH2,
28
- });
29
- const retryOptions = {
30
- maxRetries: config.retry?.maxRetries ?? 3,
31
- ...config.retry,
111
+ this.config = config;
112
+ const agentOptions = {
113
+ keepAlive: true,
114
+ keepAliveMsecs: config.network?.keepAliveTimeout ?? 30000,
115
+ maxSockets: config.network?.maxConcurrent ?? 500,
116
+ maxFreeSockets: Math.min(256, Math.floor((config.network?.maxConcurrent ?? 500) / 2)),
117
+ scheduling: "lifo",
32
118
  };
33
- this.executor = new RequestExecutor(this.agent, {
34
- timeout: config.network?.timeout ?? 30000,
35
- maxRetries: retryOptions.maxRetries ?? 3,
36
- followRedirects: config.network?.followRedirects ?? true,
37
- maxRedirects: config.network?.maxRedirects ?? 5,
38
- retryOptions: retryOptions,
39
- verbose: config.verbose ?? false,
40
- logger: config.logger,
41
- });
119
+ this.httpAgent = new http.Agent(agentOptions);
120
+ this.httpsAgent = new https.Agent(agentOptions);
121
+ }
122
+ get timeout() {
123
+ return this.config.network?.timeout ?? 30000;
42
124
  }
43
125
  async execute(req) {
44
- const rawResponse = await this.executor.execute(req.method, req.url, req.headers, req.body, req.signal);
45
- const normalizedHeaders = {};
46
- const rawHeaders = rawResponse.headers;
47
- const keys = Object.keys(rawHeaders);
48
- let contentEncoding = undefined;
49
- for (let i = 0; i < keys.length; i++) {
50
- const key = keys[i];
51
- const value = rawHeaders[key];
52
- if (value === undefined)
53
- continue;
54
- const lowerKey = key.toLowerCase();
55
- if (lowerKey === "content-encoding") {
56
- contentEncoding = Array.isArray(value) ? value[0] : value;
126
+ let currentUrl = req.url;
127
+ let currentMethod = req.method;
128
+ let currentHeaders = { ...req.headers };
129
+ let currentBody = req.body;
130
+ let redirects = 0;
131
+ let attempt = 0;
132
+ const maxRedirects = this.config.network?.maxRedirects ?? 5;
133
+ const maxRetries = this.config.retry?.maxRetries ?? 3;
134
+ const isStreamBody = currentBody instanceof Readable;
135
+ while (true) {
136
+ const { signal, cancelTimer, isTimeoutAbort } = combineSignal(req.signal, this.timeout);
137
+ try {
138
+ const fullUrl = new URL(currentUrl);
139
+ const result = await this.dispatchOnce(fullUrl, {
140
+ method: currentMethod,
141
+ headers: currentHeaders,
142
+ body: currentBody,
143
+ signal,
144
+ });
145
+ if ((this.config.network?.followRedirects ?? true) &&
146
+ isRedirect(result.status)) {
147
+ if (redirects >= maxRedirects) {
148
+ throw new Error("Too many redirects");
149
+ }
150
+ const location = result.headers["location"];
151
+ if (location && typeof location === "string") {
152
+ const nextUrl = new URL(location, fullUrl.toString()).toString();
153
+ let nextMethod = currentMethod;
154
+ if (result.status === 303 ||
155
+ ((result.status === 301 || result.status === 302) &&
156
+ currentMethod === "POST")) {
157
+ nextMethod = "GET";
158
+ }
159
+ currentUrl = nextUrl;
160
+ currentMethod = nextMethod;
161
+ currentBody =
162
+ nextMethod === "GET" || isStreamBody ? undefined : currentBody;
163
+ const nextHeaders = { ...currentHeaders };
164
+ if (nextMethod === "GET") {
165
+ delete nextHeaders["content-type"];
166
+ delete nextHeaders["content-length"];
167
+ }
168
+ currentHeaders = nextHeaders;
169
+ redirects += 1;
170
+ continue;
171
+ }
172
+ }
173
+ if (!isStreamBody &&
174
+ shouldRetry(result.status, this.config.retry ?? {})) {
175
+ if (attempt < maxRetries) {
176
+ await sleep(calcDelay(attempt, this.config.retry ?? {}));
177
+ attempt += 1;
178
+ continue;
179
+ }
180
+ }
181
+ return new NodeTransportResponse(result.status, result.headers, fullUrl.toString(), result.body);
57
182
  }
58
- if (Array.isArray(value)) {
59
- normalizedHeaders[key] =
60
- lowerKey === "set-cookie" ? value.join("\n") : value.join(", ");
183
+ catch (err) {
184
+ if (err.name === "AbortError" || isTimeoutAbort()) {
185
+ if (req.signal?.aborted)
186
+ throw err;
187
+ if (isTimeoutAbort()) {
188
+ throw new Error(`Request timeout after ${this.timeout}ms`, {
189
+ cause: err,
190
+ });
191
+ }
192
+ throw new Error("Transport closed or aborted", { cause: err });
193
+ }
194
+ const retryableCodes = [
195
+ "ECONNREFUSED",
196
+ "ETIMEDOUT",
197
+ "ECONNRESET",
198
+ "EPIPE",
199
+ ];
200
+ if (!isStreamBody &&
201
+ attempt < maxRetries &&
202
+ retryableCodes.includes(err.code)) {
203
+ await sleep(calcDelay(attempt, this.config.retry ?? {}));
204
+ attempt += 1;
205
+ continue;
206
+ }
207
+ throw err;
61
208
  }
62
- else {
63
- normalizedHeaders[key] = value;
209
+ finally {
210
+ cancelTimer();
64
211
  }
65
212
  }
66
- const decompressedBody = this.wrapDecompress(rawResponse.body, contentEncoding);
67
- if (decompressedBody instanceof Readable) {
68
- Object.defineProperty(decompressedBody, "dump", {
69
- value: function () {
70
- return new Promise((resolve, reject) => {
71
- if (this.destroyed || this.readableEnded || this.closed) {
72
- return resolve();
73
- }
74
- if (typeof this.resume === "function") {
75
- this.on("data", () => { });
76
- this.on("end", resolve);
77
- this.on("error", reject);
78
- this.resume();
79
- }
80
- else {
81
- resolve();
82
- }
213
+ }
214
+ dispatchOnce(url, options) {
215
+ return new Promise((resolve, reject) => {
216
+ const isHttps = url.protocol === "https:";
217
+ const requestFn = isHttps ? https.request : http.request;
218
+ const agent = isHttps ? this.httpsAgent : this.httpAgent;
219
+ const reqOptions = {
220
+ method: options.method,
221
+ headers: options.headers,
222
+ agent,
223
+ signal: options.signal,
224
+ };
225
+ if (options.signal?.aborted) {
226
+ const abortError = new Error("The operation was aborted.");
227
+ abortError.name = "AbortError";
228
+ return reject(abortError);
229
+ }
230
+ const req = requestFn(url, reqOptions, (res) => {
231
+ const chunks = [];
232
+ res.on("data", (chunk) => {
233
+ chunks.push(chunk);
234
+ });
235
+ res.on("end", () => {
236
+ const body = chunks.length === 0 ? Buffer.alloc(0) : Buffer.concat(chunks);
237
+ resolve({
238
+ status: res.statusCode ?? 200,
239
+ headers: res.headers,
240
+ body,
83
241
  });
84
- },
85
- writable: true,
86
- configurable: true,
87
- enumerable: false,
242
+ });
243
+ res.on("error", (err) => {
244
+ reject(err);
245
+ });
88
246
  });
89
- }
90
- return {
91
- status: rawResponse.status,
92
- headers: normalizedHeaders,
93
- body: decompressedBody,
94
- url: rawResponse.url,
95
- };
96
- }
97
- wrapDecompress(body, contentEncoding) {
98
- if (!(body instanceof Readable))
99
- return body;
100
- const encoding = contentEncoding?.toLowerCase().trim();
101
- if (!encoding || encoding === "none" || encoding === "identity") {
102
- return body;
103
- }
104
- let decompressor = null;
105
- if (encoding === "gzip") {
106
- decompressor = zlib.createGunzip({ flush: zlib.constants.Z_SYNC_FLUSH });
107
- }
108
- else if (encoding === "deflate") {
109
- decompressor = zlib.createInflate();
110
- }
111
- else if (encoding === "br") {
112
- decompressor = zlib.createBrotliDecompress();
113
- }
114
- if (!decompressor) {
115
- return body;
116
- }
117
- const decompressedStream = pipeline(body, decompressor, (err) => {
118
- if (err) {
119
- decompressedStream.emit("error", err);
120
- if (this.executor.verbose) {
121
- console.error?.(`[Hyperttp] Decompression failed: ${err.message}`);
247
+ req.on("error", (err) => {
248
+ reject(err);
249
+ });
250
+ if (options.body !== undefined && options.body !== null) {
251
+ if (Buffer.isBuffer(options.body) || typeof options.body === "string") {
252
+ req.write(options.body);
253
+ }
254
+ else if (options.body instanceof Readable) {
255
+ options.body.pipe(req);
256
+ return; // Управление потоком передано pipe
257
+ }
258
+ else {
259
+ req.write(JSON.stringify(options.body));
122
260
  }
123
261
  }
262
+ req.end();
124
263
  });
125
- return decompressedStream;
264
+ }
265
+ async close() {
266
+ this.httpAgent.destroy();
267
+ this.httpsAgent.destroy();
126
268
  }
127
269
  async destroy() {
128
- await new Promise((resolve) => setImmediate(resolve));
129
- try {
130
- const structuralAgent = this.agent;
131
- if (typeof structuralAgent.close === "function") {
132
- await structuralAgent.close();
133
- }
134
- else if (typeof structuralAgent.destroy === "function") {
135
- await structuralAgent.destroy();
136
- }
137
- }
138
- catch (err) {
139
- if (this.executor.verbose) {
140
- console.warn("Transport destroy error (likely race condition):", err);
141
- }
142
- }
270
+ await this.close();
143
271
  }
144
272
  }
145
273
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AACjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAgB7D,MAAM,OAAO,aAAa;IAChB,KAAK,CAAc;IACnB,QAAQ,CAAkB;IAElC,YAAY,MAAyB;QACnC,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,EAAE,aAAa,KAAK,CAAC;YACjC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,GAAG,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QAEnD,MAAM,UAAU,GACd,MAAM,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS;YACtC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC;gBAC/B,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;YAC7B,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC;YAC3B,WAAW,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;YAC1D,UAAU;YACV,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,KAAK;YAC3D,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,KAAK;YAC9D,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE;YACnE,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC;YACzC,GAAG,MAAM,CAAC,KAAK;SAChB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9C,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK;YACzC,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,CAAC;YACxC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI;YACxD,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;YAC/C,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAqB;QACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAC7C,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,MAAM,iBAAiB,GAA2B,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,eAAe,GAAuB,SAAS,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAElC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEnC,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACpC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC;YACxE,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,iBAAiB,CAAC,GAAG,CAAC;oBACpB,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAe,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAC1C,WAAW,CAAC,IAAI,EAChB,eAAe,CAChB,CAAC;QAEF,IAAI,gBAAgB,YAAY,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;gBAC9C,KAAK,EAAE;oBACL,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC3C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BACxD,OAAO,OAAO,EAAE,CAAC;wBACnB,CAAC;wBAED,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BACtC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;4BAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;4BACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACzB,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,CAAC;wBACZ,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,WAAW,CAAC,GAAG;SACrB,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,IAAa,EACb,eAAmC;QAEnC,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,MAAM,QAAQ,GAAG,eAAe,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,YAAY,GAAqB,IAAI,CAAC;QAE1C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9D,IAAI,GAAG,EAAE,CAAC;gBACR,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAEtC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,EAAE,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,CAAC,KAG5B,CAAC;YAEF,IAAI,OAAO,eAAe,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChD,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,eAAe,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACzD,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @ru Базовый класс ошибок клиента Hyperttp, агрегирующий контекст неудачного сетевого запроса.
3
+ * @en Base error class for the Hyperttp client, providing explicit layout context for failed requests.
4
+ */
5
+ export declare class HttpClientError extends Error {
6
+ code: string;
7
+ statusCode?: number | undefined;
8
+ originalError?: Error | undefined;
9
+ url?: string | undefined;
10
+ method?: string | undefined;
11
+ /**
12
+ * @ru Создает новый экземпляр HttpClientError.
13
+ * @en Creates a new HttpClientError instance.
14
+ * @param message - Human-readable error message text.
15
+ * @param code - Internal stringified error state identifier code.
16
+ * @param statusCode - Numerical HTTP response status code received from the server.
17
+ * @param originalError - Raw captured exception instance causing this failure.
18
+ * @param url - Targeted request URL destination string.
19
+ * @param method - HTTP method verb utilized for the request.
20
+ */
21
+ constructor(message: string, code?: string, statusCode?: number | undefined, originalError?: Error | undefined, url?: string | undefined, method?: string | undefined);
22
+ }
23
+ /**
24
+ * @ru Ошибка, возникающая при превышении лимита времени ожидания ответа от сервера.
25
+ * @en Error thrown when a network request exceeds its allocated execution timeout threshold.
26
+ */
27
+ export declare class TimeoutError extends HttpClientError {
28
+ /**
29
+ * @ru Создает новый экземпляр TimeoutError.
30
+ * @en Creates a new TimeoutError instance.
31
+ * @param url - Targeted request URL destination string.
32
+ * @param timeout - Threshold duration statement in milliseconds.
33
+ */
34
+ constructor(url: string, timeout: number);
35
+ }
36
+ /**
37
+ * @ru Ошибка, генерируемая при получении HTTP-статуса 429 (превышение лимита частоты запросов).
38
+ * @en Error triggered when encountering an HTTP 429 status code indicating rate limit exhaustion.
39
+ */
40
+ export declare class RateLimitError extends HttpClientError {
41
+ /**
42
+ * @ru Создает новый экземпляр RateLimitError.
43
+ * @en Creates a new RateLimitError instance.
44
+ * @param url - Targeted request URL destination string.
45
+ * @param retryAfter - Optional cool-down period duration in milliseconds before the next retry attempt.
46
+ */
47
+ constructor(url: string, retryAfter?: number);
48
+ }
49
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAa/B,IAAI,EAAE,MAAM;IACZ,UAAU,CAAC,EAAE,MAAM;IACnB,aAAa,CAAC,EAAE,KAAK;IACrB,GAAG,CAAC,EAAE,MAAM;IACZ,MAAM,CAAC,EAAE,MAAM;IAhBxB;;;;;;;;;OASG;gBAED,OAAO,EAAE,MAAM,EACR,IAAI,GAAE,MAAqB,EAC3B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,aAAa,CAAC,EAAE,KAAK,YAAA,EACrB,GAAG,CAAC,EAAE,MAAM,YAAA,EACZ,MAAM,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIzC;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAU7C"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @ru Базовый класс ошибок клиента Hyperttp, агрегирующий контекст неудачного сетевого запроса.
3
+ * @en Base error class for the Hyperttp client, providing explicit layout context for failed requests.
4
+ */
5
+ export class HttpClientError extends Error {
6
+ code;
7
+ statusCode;
8
+ originalError;
9
+ url;
10
+ method;
11
+ /**
12
+ * @ru Создает новый экземпляр HttpClientError.
13
+ * @en Creates a new HttpClientError instance.
14
+ * @param message - Human-readable error message text.
15
+ * @param code - Internal stringified error state identifier code.
16
+ * @param statusCode - Numerical HTTP response status code received from the server.
17
+ * @param originalError - Raw captured exception instance causing this failure.
18
+ * @param url - Targeted request URL destination string.
19
+ * @param method - HTTP method verb utilized for the request.
20
+ */
21
+ constructor(message, code = "HTTP_ERROR", statusCode, originalError, url, method) {
22
+ super(message);
23
+ this.code = code;
24
+ this.statusCode = statusCode;
25
+ this.originalError = originalError;
26
+ this.url = url;
27
+ this.method = method;
28
+ this.name = "HttpClientError";
29
+ }
30
+ }
31
+ /**
32
+ * @ru Ошибка, возникающая при превышении лимита времени ожидания ответа от сервера.
33
+ * @en Error thrown when a network request exceeds its allocated execution timeout threshold.
34
+ */
35
+ export class TimeoutError extends HttpClientError {
36
+ /**
37
+ * @ru Создает новый экземпляр TimeoutError.
38
+ * @en Creates a new TimeoutError instance.
39
+ * @param url - Targeted request URL destination string.
40
+ * @param timeout - Threshold duration statement in milliseconds.
41
+ */
42
+ constructor(url, timeout) {
43
+ super(`Timeout after ${timeout}ms`, "TIMEOUT", 408, undefined, url);
44
+ this.name = "TimeoutError";
45
+ }
46
+ }
47
+ /**
48
+ * @ru Ошибка, генерируемая при получении HTTP-статуса 429 (превышение лимита частоты запросов).
49
+ * @en Error triggered when encountering an HTTP 429 status code indicating rate limit exhaustion.
50
+ */
51
+ export class RateLimitError extends HttpClientError {
52
+ /**
53
+ * @ru Создает новый экземпляр RateLimitError.
54
+ * @en Creates a new RateLimitError instance.
55
+ * @param url - Targeted request URL destination string.
56
+ * @param retryAfter - Optional cool-down period duration in milliseconds before the next retry attempt.
57
+ */
58
+ constructor(url, retryAfter) {
59
+ super(`Rate limited${retryAfter ? ` retry in ${retryAfter}ms` : ""}`, "RATE_LIMIT", 429, undefined, url);
60
+ this.name = "RateLimitError";
61
+ }
62
+ }
63
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAa/B;IACA;IACA;IACA;IACA;IAhBT;;;;;;;;;OASG;IACH,YACE,OAAe,EACR,OAAe,YAAY,EAC3B,UAAmB,EACnB,aAAqB,EACrB,GAAY,EACZ,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QANR,SAAI,GAAJ,IAAI,CAAuB;QAC3B,eAAU,GAAV,UAAU,CAAS;QACnB,kBAAa,GAAb,aAAa,CAAQ;QACrB,QAAG,GAAH,GAAG,CAAS;QACZ,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C;;;;;OAKG;IACH,YAAY,GAAW,EAAE,OAAe;QACtC,KAAK,CAAC,iBAAiB,OAAO,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD;;;;;OAKG;IACH,YAAY,GAAW,EAAE,UAAmB;QAC1C,KAAK,CACH,eAAe,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9D,YAAY,EACZ,GAAG,EACH,SAAS,EACT,GAAG,CACJ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
package/utils/merge.d.ts CHANGED
@@ -1,2 +1,9 @@
1
- export declare function deepMerge<T extends Record<string, any>, S extends Record<string, any>>(target: T, source: S): T & S;
1
+ /**
2
+ * @ru Рекурсивно объединяет два объекта. Избегает лишних аллокаций памяти и защищает от разделения ссылок nested-структур.
3
+ * @en Recursively merges two objects. Avoids redundant memory allocations and prevents shared reference leakage for nested structures.
4
+ * @param target - Foundational target base object layout.
5
+ * @param source - High-priority source object containing overrides.
6
+ * @returns New deeply merged intersection object.
7
+ */
8
+ export declare function deepMerge<T extends Record<string, unknown>, S extends Record<string, unknown>>(target: T, source: S): T & S;
2
9
  //# sourceMappingURL=merge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/utils/merge.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAqB7B"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/utils/merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAuB7B"}