hyperttp 0.2.5 → 0.3.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 (148) hide show
  1. package/Hyperttp/Client/HyperClient.d.ts +30 -0
  2. package/Hyperttp/Client/HyperClient.d.ts.map +1 -0
  3. package/Hyperttp/Client/HyperClient.js +215 -0
  4. package/Hyperttp/Client/HyperClient.js.map +1 -0
  5. package/{dist/Hyperttp → Hyperttp}/Request.d.ts +1 -1
  6. package/{dist/Hyperttp → Hyperttp}/Request.d.ts.map +1 -1
  7. package/{dist/Hyperttp → Hyperttp}/Request.js +2 -7
  8. package/Hyperttp/Request.js.map +1 -0
  9. package/{dist/Hyperttp → Hyperttp}/UrlExtractor.d.ts +1 -1
  10. package/{dist/Hyperttp → Hyperttp}/UrlExtractor.d.ts.map +1 -1
  11. package/{dist/Hyperttp → Hyperttp}/UrlExtractor.js +1 -4
  12. package/Hyperttp/UrlExtractor.js.map +1 -0
  13. package/Hyperttp/Utils/RequestBuilder.d.ts +32 -0
  14. package/Hyperttp/Utils/RequestBuilder.d.ts.map +1 -0
  15. package/Hyperttp/Utils/RequestBuilder.js +129 -0
  16. package/Hyperttp/Utils/RequestBuilder.js.map +1 -0
  17. package/Hyperttp/Utils/index.d.ts +2 -0
  18. package/Hyperttp/Utils/index.d.ts.map +1 -0
  19. package/Hyperttp/Utils/index.js +2 -0
  20. package/Hyperttp/Utils/index.js.map +1 -0
  21. package/Hyperttp/Utils/merge.d.ts +2 -0
  22. package/Hyperttp/Utils/merge.d.ts.map +1 -0
  23. package/Hyperttp/Utils/merge.js +25 -0
  24. package/Hyperttp/Utils/merge.js.map +1 -0
  25. package/Hyperttp/defaultConfig.d.ts +3 -0
  26. package/Hyperttp/defaultConfig.d.ts.map +1 -0
  27. package/Hyperttp/defaultConfig.js +39 -0
  28. package/Hyperttp/defaultConfig.js.map +1 -0
  29. package/Hyperttp/index.d.ts +6 -0
  30. package/Hyperttp/index.d.ts.map +1 -0
  31. package/Hyperttp/index.js +6 -0
  32. package/Hyperttp/index.js.map +1 -0
  33. package/{dist/Types → Types}/http-client.d.ts +3 -7
  34. package/Types/http-client.d.ts.map +1 -0
  35. package/Types/http-client.js +2 -0
  36. package/Types/index.d.ts +3 -0
  37. package/Types/index.d.ts.map +1 -0
  38. package/Types/index.js +3 -0
  39. package/Types/index.js.map +1 -0
  40. package/Types/url-extractor.js +2 -0
  41. package/index.d.ts +13 -0
  42. package/index.d.ts.map +1 -0
  43. package/index.js +12 -0
  44. package/index.js.map +1 -0
  45. package/package.json +22 -11
  46. package/LICENSE +0 -21
  47. package/README.md +0 -82
  48. package/dist/Hyperttp/Core/CacheManager.d.ts +0 -84
  49. package/dist/Hyperttp/Core/CacheManager.d.ts.map +0 -1
  50. package/dist/Hyperttp/Core/CacheManager.js +0 -109
  51. package/dist/Hyperttp/Core/CacheManager.js.map +0 -1
  52. package/dist/Hyperttp/Core/HttpClientImproved.d.ts +0 -149
  53. package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +0 -1
  54. package/dist/Hyperttp/Core/HttpClientImproved.js +0 -533
  55. package/dist/Hyperttp/Core/HttpClientImproved.js.map +0 -1
  56. package/dist/Hyperttp/Core/InterceptorManager.d.ts +0 -62
  57. package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +0 -1
  58. package/dist/Hyperttp/Core/InterceptorManager.js +0 -64
  59. package/dist/Hyperttp/Core/InterceptorManager.js.map +0 -1
  60. package/dist/Hyperttp/Core/MetricsManager.d.ts +0 -71
  61. package/dist/Hyperttp/Core/MetricsManager.d.ts.map +0 -1
  62. package/dist/Hyperttp/Core/MetricsManager.js +0 -229
  63. package/dist/Hyperttp/Core/MetricsManager.js.map +0 -1
  64. package/dist/Hyperttp/Core/QueueManager.d.ts +0 -16
  65. package/dist/Hyperttp/Core/QueueManager.d.ts.map +0 -1
  66. package/dist/Hyperttp/Core/QueueManager.js +0 -69
  67. package/dist/Hyperttp/Core/QueueManager.js.map +0 -1
  68. package/dist/Hyperttp/Core/RateLimiter.d.ts +0 -63
  69. package/dist/Hyperttp/Core/RateLimiter.d.ts.map +0 -1
  70. package/dist/Hyperttp/Core/RateLimiter.js +0 -166
  71. package/dist/Hyperttp/Core/RateLimiter.js.map +0 -1
  72. package/dist/Hyperttp/Core/RequestBuilder.d.ts +0 -83
  73. package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +0 -1
  74. package/dist/Hyperttp/Core/RequestBuilder.js +0 -169
  75. package/dist/Hyperttp/Core/RequestBuilder.js.map +0 -1
  76. package/dist/Hyperttp/Core/RequestExecutor.d.ts +0 -31
  77. package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +0 -1
  78. package/dist/Hyperttp/Core/RequestExecutor.js +0 -166
  79. package/dist/Hyperttp/Core/RequestExecutor.js.map +0 -1
  80. package/dist/Hyperttp/Core/ResponseConverter.d.ts +0 -23
  81. package/dist/Hyperttp/Core/ResponseConverter.d.ts.map +0 -1
  82. package/dist/Hyperttp/Core/ResponseConverter.js +0 -368
  83. package/dist/Hyperttp/Core/ResponseConverter.js.map +0 -1
  84. package/dist/Hyperttp/Core/index.d.ts +0 -26
  85. package/dist/Hyperttp/Core/index.d.ts.map +0 -1
  86. package/dist/Hyperttp/Core/index.js +0 -54
  87. package/dist/Hyperttp/Core/index.js.map +0 -1
  88. package/dist/Hyperttp/Request.js.map +0 -1
  89. package/dist/Hyperttp/UrlExtractor.js.map +0 -1
  90. package/dist/Hyperttp/index.d.ts +0 -5
  91. package/dist/Hyperttp/index.d.ts.map +0 -1
  92. package/dist/Hyperttp/index.js +0 -23
  93. package/dist/Hyperttp/index.js.map +0 -1
  94. package/dist/Types/cache.d.ts +0 -10
  95. package/dist/Types/cache.d.ts.map +0 -1
  96. package/dist/Types/cache.js +0 -3
  97. package/dist/Types/cache.js.map +0 -1
  98. package/dist/Types/errors.d.ts +0 -15
  99. package/dist/Types/errors.d.ts.map +0 -1
  100. package/dist/Types/errors.js +0 -34
  101. package/dist/Types/errors.js.map +0 -1
  102. package/dist/Types/http-client.d.ts.map +0 -1
  103. package/dist/Types/http-client.js +0 -3
  104. package/dist/Types/http.d.ts +0 -5
  105. package/dist/Types/http.d.ts.map +0 -1
  106. package/dist/Types/http.js +0 -3
  107. package/dist/Types/http.js.map +0 -1
  108. package/dist/Types/index.d.ts +0 -13
  109. package/dist/Types/index.d.ts.map +0 -1
  110. package/dist/Types/index.js +0 -29
  111. package/dist/Types/index.js.map +0 -1
  112. package/dist/Types/interceptors.d.ts +0 -13
  113. package/dist/Types/interceptors.d.ts.map +0 -1
  114. package/dist/Types/interceptors.js +0 -3
  115. package/dist/Types/interceptors.js.map +0 -1
  116. package/dist/Types/metrics.d.ts +0 -67
  117. package/dist/Types/metrics.d.ts.map +0 -1
  118. package/dist/Types/metrics.js +0 -3
  119. package/dist/Types/metrics.js.map +0 -1
  120. package/dist/Types/options.d.ts +0 -233
  121. package/dist/Types/options.d.ts.map +0 -1
  122. package/dist/Types/options.js +0 -3
  123. package/dist/Types/options.js.map +0 -1
  124. package/dist/Types/queue.d.ts +0 -8
  125. package/dist/Types/queue.d.ts.map +0 -1
  126. package/dist/Types/queue.js +0 -3
  127. package/dist/Types/queue.js.map +0 -1
  128. package/dist/Types/request.d.ts +0 -189
  129. package/dist/Types/request.d.ts.map +0 -1
  130. package/dist/Types/request.js +0 -3
  131. package/dist/Types/request.js.map +0 -1
  132. package/dist/Types/response.d.ts +0 -28
  133. package/dist/Types/response.d.ts.map +0 -1
  134. package/dist/Types/response.js +0 -3
  135. package/dist/Types/response.js.map +0 -1
  136. package/dist/Types/stream.d.ts +0 -39
  137. package/dist/Types/stream.d.ts.map +0 -1
  138. package/dist/Types/stream.js +0 -3
  139. package/dist/Types/stream.js.map +0 -1
  140. package/dist/Types/url-extractor.js +0 -3
  141. package/dist/index.d.ts +0 -3
  142. package/dist/index.d.ts.map +0 -1
  143. package/dist/index.js +0 -17
  144. package/dist/index.js.map +0 -1
  145. /package/{dist/Types → Types}/http-client.js.map +0 -0
  146. /package/{dist/Types → Types}/url-extractor.d.ts +0 -0
  147. /package/{dist/Types → Types}/url-extractor.d.ts.map +0 -0
  148. /package/{dist/Types → Types}/url-extractor.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
@@ -1,533 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const undici_1 = require("http-cookie-agent/undici");
4
- const CacheManager_js_1 = require("./CacheManager.js");
5
- const QueueManager_js_1 = require("./QueueManager.js");
6
- const RateLimiter_js_1 = require("./RateLimiter.js");
7
- const MetricsManager_js_1 = require("./MetricsManager.js");
8
- const RequestBuilder_js_1 = require("./RequestBuilder.js");
9
- const InterceptorManager_js_1 = require("./InterceptorManager.js");
10
- const RequestExecutor_js_1 = require("./RequestExecutor.js");
11
- const ResponseConverter_js_1 = require("./ResponseConverter.js");
12
- const errors_js_1 = require("../../Types/errors.js");
13
- const isProd = process.env.NODE_ENV === "production";
14
- /**
15
- * @class HttpClientImproved
16
- * @en High-performance HTTP client with built-in caching, queuing, rate limiting, and metrics.
17
- * @ru Высокопроизводительный HTTP-клиент со встроенным кэшированием, очередями, лимитами и метриками.
18
- */
19
- class HttpClientImproved {
20
- agent;
21
- config;
22
- cache;
23
- queue;
24
- limiter;
25
- metricsManager;
26
- interceptors;
27
- executor;
28
- converter;
29
- inflight = new Map();
30
- defaultHeaders = {};
31
- cacheEnabled;
32
- queueEnabled;
33
- limiterEnabled;
34
- metricsEnabled;
35
- verboseEnabled;
36
- constructor(config) {
37
- this.config = this.applyDefaulthcoptions(config);
38
- this.cacheEnabled = !!this.config.cache?.enabled;
39
- this.queueEnabled = !!this.config.queue?.enabled;
40
- this.limiterEnabled = !!this.config.rateLimit?.enabled;
41
- this.metricsEnabled = this.config.metrics?.enabled ?? true;
42
- this.verboseEnabled = !!this.config.verbose && !isProd;
43
- this.metricsManager = new MetricsManager_js_1.MetricsManager({
44
- maxHistory: this.config.metrics?.maxHistory,
45
- });
46
- this.converter = new ResponseConverter_js_1.ResponseConverter({
47
- maxBodySize: this.config.responseConverter?.maxBodySize,
48
- parseHTML: this.config.responseConverter?.parseHTML,
49
- htmlMode: this.config.responseConverter?.htmlMode,
50
- charset: this.config.responseConverter?.charset,
51
- });
52
- this.interceptors = new InterceptorManager_js_1.InterceptorManager();
53
- if (this.cacheEnabled) {
54
- this.cache = new CacheManager_js_1.CacheManager({
55
- cacheTTL: this.config.cache?.ttl,
56
- cacheMaxSize: this.config.cache?.maxSize,
57
- });
58
- }
59
- const concurrency = this.config.network?.maxConcurrent === 0
60
- ? Infinity
61
- : (this.config.network?.maxConcurrent ?? 500);
62
- if (this.queueEnabled) {
63
- this.queue = new QueueManager_js_1.QueueManager(concurrency);
64
- }
65
- if (this.config.rateLimit?.enabled) {
66
- this.limiter = new RateLimiter_js_1.RateLimiter(this.config.rateLimit);
67
- }
68
- this.agent = new undici_1.CookieAgent({
69
- connections: concurrency,
70
- pipelining: this.config.network?.pipelining ?? 10,
71
- keepAliveTimeout: this.config.network?.keepAliveTimeout ?? 30000,
72
- keepAliveMaxTimeout: this.config.network?.keepAliveTimeout ?? 30000,
73
- connect: {
74
- ciphers: "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384",
75
- rejectUnauthorized: !this.config.network?.rejectUnauthorized,
76
- },
77
- allowH2: this.config.network?.allowHttp2 ?? true,
78
- });
79
- this.executor = new RequestExecutor_js_1.RequestExecutor(this.agent, this.interceptors, {
80
- timeout: this.config.network?.timeout ?? 30000,
81
- maxRetries: this.config.retry?.maxRetries ?? 3,
82
- followRedirects: this.config.network?.followRedirects ?? true,
83
- maxRedirects: this.config.network?.maxRedirects ?? 5,
84
- retryOptions: {
85
- maxRetries: this.config.retry?.maxRetries ?? 3,
86
- baseDelay: this.config.retry?.baseDelay ?? 1000,
87
- maxDelay: this.config.retry?.maxDelay ?? 10000,
88
- retryStatusCodes: this.config.retry?.retryStatusCodes ?? [
89
- 408, 429, 500, 502, 503, 504,
90
- ],
91
- jitter: this.config.retry?.jitter ?? true,
92
- },
93
- verbose: this.verboseEnabled,
94
- logger: this.config.logger,
95
- });
96
- this.defaultHeaders = {
97
- Accept: "application/json, text/plain, */*",
98
- "Accept-Encoding": "gzip, deflate, br",
99
- "User-Agent": this.config.network?.userAgent,
100
- };
101
- }
102
- /**
103
- * @en Performs an HTTP GET request.
104
- * @ru Выполняет HTTP GET запрос.
105
- * @param req Request URL or Request object
106
- * @param responseType Expected response format
107
- */
108
- get(req, responseType = "auto") {
109
- const requestObj = this.normalizeRequest(req);
110
- return this.requestInternal("GET", requestObj, true, responseType);
111
- }
112
- /**
113
- * @en Performs an HTTP POST request.
114
- * @ru Выполняет HTTP POST запрос.
115
- * @param req Request URL or Request object
116
- * @param body Request body data
117
- * @param responseType Expected response format
118
- */
119
- post(req, body, responseType = "auto") {
120
- return this.requestInternal("POST", this.normalizeRequest(req, body), false, responseType);
121
- }
122
- /**
123
- * @en Performs an HTTP PUT request.
124
- * @ru Выполняет HTTP PUT запрос.
125
- */
126
- put(req, body, responseType = "auto") {
127
- return this.requestInternal("PUT", this.normalizeRequest(req, body), false, responseType);
128
- }
129
- /**
130
- * @en Performs an HTTP DELETE request.
131
- * @ru Выполняет HTTP DELETE запрос.
132
- */
133
- delete(req, responseType = "auto") {
134
- return this.requestInternal("DELETE", this.normalizeRequest(req), false, responseType);
135
- }
136
- /**
137
- * @en Performs an HTTP PATCH request.
138
- * @ru Выполняет HTTP PATCH запрос.
139
- */
140
- patch(req, body, responseType = "auto") {
141
- return this.requestInternal("PATCH", this.normalizeRequest(req, body), false, responseType);
142
- }
143
- /**
144
- * @en Performs an HTTP OPTIONS request.
145
- * @ru Выполняет HTTP OPTIONS запрос.
146
- */
147
- options(req, body, responseType = "auto") {
148
- return this.requestInternal("OPTIONS", this.normalizeRequest(req, body), false, responseType);
149
- }
150
- /**
151
- * @en Performs an HTTP HEAD request.
152
- * @ru Выполняет HTTP HEAD запрос.
153
- */
154
- async head(req) {
155
- return this.requestInternal("HEAD", this.normalizeRequest(req), false);
156
- }
157
- /**
158
- * @en Creates a new HttpClient instance with merged configuration.
159
- * @ru Создаёт новый экземпляр HttpClient с объединённой конфигурацией.
160
- *
161
- * @param options Partial configuration to override current settings
162
- * @returns New HttpClientImproved instance
163
- */
164
- extend(options) {
165
- return new HttpClientImproved(this.mergeOptions(this.config, options));
166
- }
167
- /**
168
- * @en Alias for extend(). Creates a new configured client instance.
169
- * @ru Алиас для extend(). Создаёт новый настроенный экземпляр клиента.
170
- *
171
- * @param options Partial configuration overrides
172
- * @returns New HttpClientImproved instance
173
- */
174
- create(options) {
175
- return this.extend(options);
176
- }
177
- /**
178
- * @en Executes a request and returns an AsyncIterable stream.
179
- * @ru Выполняет запрос и возвращает итерируемый поток данных.
180
- */
181
- async stream(req) {
182
- const requestObj = this.normalizeRequest(req);
183
- const url = requestObj.getURL();
184
- const { body, headers } = this.prepareRequestData("GET", requestObj);
185
- const controller = new AbortController();
186
- const userSignal = requestObj.getSignal?.();
187
- const signal = userSignal
188
- ? AbortSignal.any([userSignal, controller.signal])
189
- : controller.signal;
190
- const rawResponse = await this.executor.execute("GET", url, headers, body, undefined, signal);
191
- const cleanup = () => {
192
- this.inflight.delete(url);
193
- };
194
- rawResponse.body.once("close", cleanup);
195
- rawResponse.body.once("error", cleanup);
196
- rawResponse.body.once("end", cleanup);
197
- this.inflight.set(url, {
198
- promise: Promise.resolve(undefined),
199
- controller,
200
- });
201
- return {
202
- status: rawResponse.status,
203
- headers: rawResponse.headers,
204
- body: rawResponse.body,
205
- url: rawResponse.url,
206
- };
207
- }
208
- /**
209
- * @en Creates a RequestBuilder for a fluent API approach.
210
- * @ru Создает RequestBuilder для использования Fluent API.
211
- * @example client.request('url').get().send();
212
- */
213
- request(url) {
214
- return new RequestBuilder_js_1.RequestBuilder(url, this);
215
- }
216
- async destroy() {
217
- for (const { controller } of this.inflight.values()) {
218
- controller.abort();
219
- }
220
- this.inflight.clear();
221
- try {
222
- if (typeof this.agent.destroy === "function") {
223
- await this.agent.destroy();
224
- }
225
- else if (typeof this.agent.close === "function") {
226
- await this.agent.close();
227
- }
228
- }
229
- catch {
230
- /* ignore */
231
- }
232
- this.cache?.clear();
233
- }
234
- clearCache() {
235
- this.cache?.clear();
236
- }
237
- /**
238
- * @en Clears all collected performance metrics.
239
- * @ru Очищает все собранные метрики производительности.
240
- */
241
- clearMetrics() {
242
- this.metricsManager.clear();
243
- }
244
- /**
245
- * @en Retrieves metrics for a specific URL.
246
- * @ru Получает метрики для конкретного URL.
247
- */
248
- getMetrics(key) {
249
- return this.metricsManager.get(key);
250
- }
251
- /**
252
- * @en Retrieves all stored request metrics.
253
- * @ru Получает список всех сохраненных метрик.
254
- */
255
- getAllMetrics() {
256
- return Array.from(this.metricsManager.getAll());
257
- }
258
- /**
259
- * @en Returns real-time statistics about the client's internal state.
260
- * @ru Возвращает статистику состояния клиента в реальном времени.
261
- * @returns Cache size, active requests, queue state, etc.
262
- */
263
- getStats() {
264
- return {
265
- cacheSize: this.cache?.size ?? 0,
266
- inflightRequests: this.inflight.size,
267
- queuedRequests: this.queueEnabled && this.queue
268
- ? (this.queue.queuedCount ?? 0)
269
- : 0,
270
- activeRequests: this.queueEnabled && this.queue
271
- ? (this.queue.activeCount ?? 0)
272
- : 0,
273
- currentRateLimit: this.limiterEnabled && this.limiter
274
- ? (this.limiter.currentCount ?? 0)
275
- : 0,
276
- };
277
- }
278
- async warmup(urls, count = 10) {
279
- const tasks = [];
280
- for (let i = 0; i < count; i++) {
281
- const url = urls[i % urls.length];
282
- tasks.push(this.get(url, "text").catch(() => undefined));
283
- }
284
- await Promise.all(tasks);
285
- }
286
- mergeOptions(base, patch) {
287
- return {
288
- ...base,
289
- ...patch,
290
- network: { ...base.network, ...patch.network },
291
- retry: { ...base.retry, ...patch.retry },
292
- cache: { ...base.cache, ...patch.cache },
293
- rateLimit: { ...base.rateLimit, ...patch.rateLimit },
294
- metrics: { ...base.metrics, ...patch.metrics },
295
- queue: { ...base.queue, ...patch.queue },
296
- responseConverter: {
297
- ...base.responseConverter,
298
- ...patch.responseConverter,
299
- },
300
- };
301
- }
302
- normalizeRequest(req, body) {
303
- if (typeof req === "string") {
304
- return {
305
- getURL: () => req,
306
- getBodyData: () => body,
307
- getHeaders: () => ({}),
308
- };
309
- }
310
- return req;
311
- }
312
- applyDefaulthcoptions(opt) {
313
- const defaults = {
314
- network: {
315
- timeout: 30000,
316
- maxRedirects: 5,
317
- followRedirects: true,
318
- maxResponseBytes: 10 * 1024 * 1024,
319
- userAgent: "Hyperttp/2.0",
320
- allowHttp2: true,
321
- pipelining: 10,
322
- keepAliveTimeout: 30000,
323
- maxConcurrent: 0,
324
- rejectUnauthorized: false,
325
- },
326
- cache: {
327
- enabled: true,
328
- ttl: 1000 * 60 * 5,
329
- maxSize: 500,
330
- methods: [],
331
- },
332
- retry: {
333
- maxRetries: 3,
334
- baseDelay: 1000,
335
- maxDelay: 10000,
336
- retryStatusCodes: [408, 429, 500, 502, 503, 504],
337
- jitter: true,
338
- },
339
- rateLimit: {
340
- enabled: false,
341
- maxRequests: 100,
342
- windowMs: 60000,
343
- },
344
- metrics: {
345
- enabled: true,
346
- maxHistory: 1000,
347
- },
348
- queue: {
349
- enabled: true,
350
- },
351
- responseConverter: {
352
- maxBodySize: 0,
353
- parseHTML: false,
354
- htmlMode: "simple",
355
- charset: "utf-8",
356
- },
357
- };
358
- return {
359
- ...defaults,
360
- ...opt,
361
- network: { ...defaults.network, ...opt?.network },
362
- cache: { ...defaults.cache, ...opt?.cache },
363
- retry: { ...defaults.retry, ...opt?.retry },
364
- rateLimit: { ...defaults.rateLimit, ...opt?.rateLimit },
365
- metrics: { ...defaults.metrics, ...opt?.metrics },
366
- queue: { ...defaults.queue, ...opt?.queue },
367
- responseConverter: {
368
- ...defaults.responseConverter,
369
- ...opt?.responseConverter,
370
- },
371
- };
372
- }
373
- /**
374
- * @en Core internal method for handling all HTTP requests.
375
- * @ru Основной внутренний метод для обработки всех HTTP-запросов.
376
- * @param method HTTP method (GET, POST, etc.)
377
- * @param req Request object
378
- * @param useCache Whether to use caching for this request
379
- * @param responseType Expected response format
380
- */
381
- async requestInternal(method, req, useCache = true, responseType = "auto") {
382
- const url = req.getURL();
383
- if (this.metricsManager.isCircuitOpen(url)) {
384
- throw new errors_js_1.HttpClientError("Circuit Breaker is OPEN", "CIRCUIT_OPEN", 503, undefined, url, method);
385
- }
386
- if (this.limiter) {
387
- await this.limiter.wait();
388
- }
389
- const userSignal = req.getSignal?.();
390
- const { body, headers } = this.prepareRequestData(method, req);
391
- const key = method === "GET"
392
- ? `GET:${url}`
393
- : body !== undefined && body !== null
394
- ? `${method}:${url}:${typeof body === "string" ? body : JSON.stringify(body)}`
395
- : `${method}:${url}`;
396
- if (this.cache && method === "GET" && useCache) {
397
- const cached = this.cache.get(key);
398
- if (cached !== undefined) {
399
- return cached;
400
- }
401
- }
402
- const existing = this.inflight.get(key);
403
- if (existing) {
404
- return existing.promise;
405
- }
406
- const internalController = new AbortController();
407
- const abortHandler = () => internalController.abort();
408
- if (userSignal) {
409
- userSignal.addEventListener("abort", abortHandler, { once: true });
410
- }
411
- const run = () => (async () => {
412
- let metrics;
413
- const needMetrics = this.metricsEnabled;
414
- if (needMetrics) {
415
- metrics = this.createInitialMetrics(url, method);
416
- }
417
- try {
418
- if (method === "HEAD") {
419
- const rawResponse = await this.executor.execute(method, url, headers, body, metrics, internalController.signal);
420
- if (needMetrics && metrics) {
421
- this.recordSuccess(metrics, rawResponse.status);
422
- }
423
- return {
424
- status: rawResponse.status,
425
- headers: rawResponse.headers,
426
- };
427
- }
428
- const rawResponse = await this.executor.execute(method, url, headers, body, metrics, internalController.signal);
429
- const bufferBody = await this.converter.readBody(rawResponse.body);
430
- const parsed = await this.converter.convert(bufferBody, responseType, {
431
- contentType: rawResponse.headers["content-type"],
432
- contentEncoding: rawResponse.headers["content-encoding"],
433
- url: rawResponse.url,
434
- });
435
- if (this.cache &&
436
- method === "GET" &&
437
- useCache &&
438
- parsed !== undefined) {
439
- this.cache.set(key, parsed);
440
- }
441
- if (needMetrics && metrics) {
442
- this.recordSuccess(metrics, rawResponse.status);
443
- }
444
- return parsed;
445
- }
446
- catch (error) {
447
- if (needMetrics && metrics) {
448
- this.recordError(metrics, error);
449
- }
450
- throw error;
451
- }
452
- finally {
453
- if (userSignal) {
454
- userSignal.removeEventListener("abort", abortHandler);
455
- }
456
- this.inflight.delete(key);
457
- }
458
- })();
459
- const promise = this.queueEnabled && this.queue ? this.queue.enqueue(run) : run();
460
- this.inflight.set(key, { promise, controller: internalController });
461
- return promise;
462
- }
463
- prepareRequestData(method, req) {
464
- const headers = { ...this.defaultHeaders, ...req.getHeaders() };
465
- let rawBody = req.getBodyData();
466
- if (!["POST", "PUT", "PATCH", "DELETE"].includes(method)) {
467
- return { body: undefined, headers };
468
- }
469
- if (rawBody &&
470
- typeof rawBody === "object" &&
471
- !(rawBody instanceof Buffer)) {
472
- const contentType = (headers["content-type"] ||
473
- headers["Content-Type"] ||
474
- "").toLowerCase();
475
- if (contentType.includes("application/x-www-form-urlencoded")) {
476
- const params = new URLSearchParams();
477
- for (const [key, value] of Object.entries(rawBody)) {
478
- params.append(key, typeof value === "object" ? JSON.stringify(value) : String(value));
479
- }
480
- rawBody = params.toString();
481
- }
482
- else {
483
- rawBody = JSON.stringify(rawBody);
484
- if (!headers["content-type"]) {
485
- headers["content-type"] = "application/json; charset=utf-8";
486
- }
487
- }
488
- }
489
- return {
490
- body: rawBody === null || rawBody === undefined ? undefined : rawBody,
491
- headers,
492
- };
493
- }
494
- createInitialMetrics(url, method) {
495
- return {
496
- startTime: Date.now(),
497
- endTime: 0,
498
- duration: 0,
499
- bytesReceived: 0,
500
- bytesSent: 0,
501
- retries: 0,
502
- cached: false,
503
- url,
504
- method,
505
- };
506
- }
507
- recordSuccess(metrics, status) {
508
- metrics.endTime = Date.now();
509
- metrics.duration = metrics.endTime - metrics.startTime;
510
- metrics.statusCode = status;
511
- this.metricsManager.record(metrics);
512
- if (this.verboseEnabled) {
513
- this.config.logger?.("info", `Request successful: ${metrics.method} ${metrics.url}`, {
514
- duration: metrics.duration,
515
- status: metrics.statusCode,
516
- });
517
- }
518
- }
519
- recordError(metrics, error) {
520
- metrics.endTime = Date.now();
521
- metrics.duration = metrics.endTime - metrics.startTime;
522
- metrics.statusCode = error?.statusCode || 0;
523
- this.metricsManager.record(metrics);
524
- if (this.verboseEnabled) {
525
- this.config.logger?.("error", `Request failed: ${metrics.method} ${metrics.url}`, {
526
- error: error?.message,
527
- code: error?.code,
528
- });
529
- }
530
- }
531
- }
532
- exports.default = HttpClientImproved;
533
- //# sourceMappingURL=HttpClientImproved.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpClientImproved.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { RequestInterceptor, ResponseInterceptor } from "../../Types/interceptors";
2
- /**
3
- * @class InterceptorManager
4
- * @en Manages registration and sequential execution of request and response interceptors.
5
- * @ru Управляет регистрацией и последовательным выполнением перехватчиков запроса и ответа.
6
- */
7
- export declare class InterceptorManager {
8
- private requestInterceptors;
9
- private responseInterceptors;
10
- /**
11
- * @en Adds a request interceptor to the chain.
12
- * @ru Добавляет перехватчик запроса в цепочку.
13
- * @param interceptor Function that modifies request config before execution.
14
- */
15
- addRequest(interceptor: RequestInterceptor): void;
16
- /**
17
- * @en Adds a response interceptor to the chain.
18
- * @ru Добавляет перехватчик ответа в цепочку.
19
- * @param interceptor Function that modifies response after execution.
20
- */
21
- addResponse(interceptor: ResponseInterceptor): void;
22
- /**
23
- * @en Sequentially applies all registered request interceptors.
24
- * @ru Последовательно применяет все перехватчики к конфигурации запроса.
25
- * @param config Initial request configuration.
26
- * @returns Modified request configuration after all interceptors.
27
- */
28
- applyRequest(config: {
29
- url: string;
30
- method: string;
31
- headers: Record<string, string>;
32
- body?: string | Buffer;
33
- }): Promise<{
34
- url: string;
35
- method: string;
36
- headers: Record<string, string>;
37
- body?: string | Buffer;
38
- }>;
39
- /**
40
- * @en Sequentially applies all registered response interceptors.
41
- * @ru Последовательно применяет все перехватчики к ответу.
42
- * @param response Raw HTTP response object.
43
- * @returns Modified response after all interceptors.
44
- */
45
- applyResponse(response: {
46
- status: number;
47
- headers: Record<string, any>;
48
- body: Buffer;
49
- url: string;
50
- }): Promise<{
51
- status: number;
52
- headers: Record<string, any>;
53
- body: Buffer;
54
- url: string;
55
- }>;
56
- /**
57
- * @en Removes all registered interceptors.
58
- * @ru Очищает все зарегистрированные перехватчики.
59
- */
60
- clear(): void;
61
- }
62
- //# sourceMappingURL=InterceptorManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterceptorManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/InterceptorManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,oBAAoB,CAA6B;IAEzD;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAInD;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;aAJM,MAAM;gBACH,MAAM;iBACL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM,GAAG,MAAM;;IAWxB;;;;;OAKG;IACG,aAAa,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb;gBAJS,MAAM;iBACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;cACtB,MAAM;aACP,MAAM;;IAWb;;;OAGG;IACH,KAAK,IAAI,IAAI;CAId"}