hyperttp 0.2.4 → 0.2.6

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 (110) hide show
  1. package/README.md +129 -16
  2. package/dist/Hyperttp/Core/CacheManager.d.ts +63 -40
  3. package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
  4. package/dist/Hyperttp/Core/CacheManager.js +64 -62
  5. package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
  6. package/dist/Hyperttp/Core/HttpClientImproved.d.ts +55 -33
  7. package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
  8. package/dist/Hyperttp/Core/HttpClientImproved.js +315 -211
  9. package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
  10. package/dist/Hyperttp/Core/InterceptorManager.d.ts +11 -11
  11. package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +1 -1
  12. package/dist/Hyperttp/Core/InterceptorManager.js +10 -10
  13. package/dist/Hyperttp/Core/InterceptorManager.js.map +1 -1
  14. package/dist/Hyperttp/Core/MetricsManager.d.ts +33 -42
  15. package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -1
  16. package/dist/Hyperttp/Core/MetricsManager.js +165 -59
  17. package/dist/Hyperttp/Core/MetricsManager.js.map +1 -1
  18. package/dist/Hyperttp/Core/QueueManager.d.ts +6 -4
  19. package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
  20. package/dist/Hyperttp/Core/QueueManager.js +42 -34
  21. package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
  22. package/dist/Hyperttp/Core/RateLimiter.d.ts +29 -36
  23. package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
  24. package/dist/Hyperttp/Core/RateLimiter.js +100 -36
  25. package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
  26. package/dist/Hyperttp/Core/RequestBuilder.d.ts +4 -2
  27. package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
  28. package/dist/Hyperttp/Core/RequestBuilder.js +10 -3
  29. package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
  30. package/dist/Hyperttp/Core/RequestExecutor.d.ts +7 -34
  31. package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +1 -1
  32. package/dist/Hyperttp/Core/RequestExecutor.js +121 -114
  33. package/dist/Hyperttp/Core/RequestExecutor.js.map +1 -1
  34. package/dist/Hyperttp/Core/RequestProfiler.d.ts +10 -0
  35. package/dist/Hyperttp/Core/RequestProfiler.d.ts.map +1 -0
  36. package/dist/Hyperttp/Core/RequestProfiler.js +55 -0
  37. package/dist/Hyperttp/Core/RequestProfiler.js.map +1 -0
  38. package/dist/Hyperttp/Core/ResponseConverter.d.ts +23 -0
  39. package/dist/Hyperttp/Core/ResponseConverter.d.ts.map +1 -0
  40. package/dist/Hyperttp/Core/ResponseConverter.js +369 -0
  41. package/dist/Hyperttp/Core/ResponseConverter.js.map +1 -0
  42. package/dist/Hyperttp/Core/index.d.ts +8 -10
  43. package/dist/Hyperttp/Core/index.d.ts.map +1 -1
  44. package/dist/Hyperttp/Core/index.js +28 -15
  45. package/dist/Hyperttp/Core/index.js.map +1 -1
  46. package/dist/Hyperttp/UrlExtractor.d.ts +1 -1
  47. package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
  48. package/dist/Hyperttp/index.d.ts +1 -3
  49. package/dist/Hyperttp/index.d.ts.map +1 -1
  50. package/dist/Hyperttp/index.js +8 -8
  51. package/dist/Hyperttp/index.js.map +1 -1
  52. package/dist/Types/cache.d.ts +10 -0
  53. package/dist/Types/cache.d.ts.map +1 -0
  54. package/dist/Types/cache.js +3 -0
  55. package/dist/Types/cache.js.map +1 -0
  56. package/dist/Types/errors.d.ts +15 -0
  57. package/dist/Types/errors.d.ts.map +1 -0
  58. package/dist/Types/errors.js +34 -0
  59. package/dist/Types/errors.js.map +1 -0
  60. package/dist/Types/http-client.d.ts +39 -0
  61. package/dist/Types/http-client.d.ts.map +1 -0
  62. package/dist/Types/http-client.js +3 -0
  63. package/dist/Types/http-client.js.map +1 -0
  64. package/dist/Types/http.d.ts +5 -0
  65. package/dist/Types/http.d.ts.map +1 -0
  66. package/dist/Types/http.js +3 -0
  67. package/dist/Types/http.js.map +1 -0
  68. package/dist/Types/index.d.ts +12 -127
  69. package/dist/Types/index.d.ts.map +1 -1
  70. package/dist/Types/index.js +12 -39
  71. package/dist/Types/index.js.map +1 -1
  72. package/dist/Types/interceptors.d.ts +13 -0
  73. package/dist/Types/interceptors.d.ts.map +1 -0
  74. package/dist/Types/interceptors.js +3 -0
  75. package/dist/Types/interceptors.js.map +1 -0
  76. package/dist/Types/metrics.d.ts +90 -0
  77. package/dist/Types/metrics.d.ts.map +1 -0
  78. package/dist/Types/metrics.js +3 -0
  79. package/dist/Types/metrics.js.map +1 -0
  80. package/dist/Types/options.d.ts +233 -0
  81. package/dist/Types/options.d.ts.map +1 -0
  82. package/dist/Types/options.js +3 -0
  83. package/dist/Types/options.js.map +1 -0
  84. package/dist/Types/queue.d.ts +8 -0
  85. package/dist/Types/queue.d.ts.map +1 -0
  86. package/dist/Types/queue.js +3 -0
  87. package/dist/Types/queue.js.map +1 -0
  88. package/dist/Types/request.d.ts +148 -9
  89. package/dist/Types/request.d.ts.map +1 -1
  90. package/dist/Types/response.d.ts +28 -0
  91. package/dist/Types/response.d.ts.map +1 -0
  92. package/dist/Types/response.js +3 -0
  93. package/dist/Types/response.js.map +1 -0
  94. package/dist/Types/stream.d.ts +39 -0
  95. package/dist/Types/stream.d.ts.map +1 -0
  96. package/dist/Types/stream.js +3 -0
  97. package/dist/Types/stream.js.map +1 -0
  98. package/dist/Types/url-extractor.d.ts +10 -0
  99. package/dist/Types/url-extractor.d.ts.map +1 -0
  100. package/dist/Types/url-extractor.js +3 -0
  101. package/dist/Types/url-extractor.js.map +1 -0
  102. package/dist/index.d.ts +1 -2
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +8 -3
  105. package/dist/index.js.map +1 -1
  106. package/package.json +7 -5
  107. package/dist/Hyperttp/Core/ResponseTransformer.d.ts +0 -35
  108. package/dist/Hyperttp/Core/ResponseTransformer.d.ts.map +0 -1
  109. package/dist/Hyperttp/Core/ResponseTransformer.js +0 -171
  110. package/dist/Hyperttp/Core/ResponseTransformer.js.map +0 -1
package/README.md CHANGED
@@ -20,16 +20,16 @@ Advanced HTTP client for Node.js with caching, rate limiting, request queuing, a
20
20
  npm install hyperttp
21
21
  ```
22
22
 
23
- ## Basic Usage
23
+ ---
24
+
25
+ ## 🚀 Simple Usage
26
+
27
+ Get started in seconds — just import and make requests:
24
28
 
25
29
  ```typescript
26
30
  import HttpClientImproved from "hyperttp";
27
31
 
28
- const client = new HttpClientImproved({
29
- timeout: 10000,
30
- maxConcurrent: 10,
31
- logger: (level, msg) => console.log(`[${level}] ${msg}`),
32
- });
32
+ const client = new HttpClientImproved();
33
33
 
34
34
  // Simple GET request
35
35
  const data = await client.get("https://api.example.com/data");
@@ -40,18 +40,112 @@ const postData = await client.post("https://api.example.com/items", {
40
40
  name: "Item 1",
41
41
  });
42
42
  console.log(postData);
43
+ ```
44
+
45
+ **That's it!** Caching, request queuing, and retries are enabled by default.
46
+
47
+ ---
48
+
49
+ ## ⚙️ Advanced Configuration
50
+
51
+ Configure all components for your specific needs:
52
+
53
+ ```typescript
54
+ import HttpClientImproved from "hyperttp";
55
+
56
+ const client = new HttpClientImproved({
57
+ // 🌐 Network settings
58
+ network: {
59
+ timeout: 10000, // Request timeout (ms)
60
+ maxConcurrent: 50, // Max concurrent requests
61
+ maxRedirects: 5, // Max redirects to follow
62
+ followRedirects: true, // Follow redirects automatically
63
+ userAgent: "MyApp/1.0", // User-Agent header
64
+ allowHttp2: true, // Enable HTTP/2
65
+ pipelining: 10, // Request pipelining
66
+ keepAliveTimeout: 30000, // Keep-alive timeout
67
+ rejectUnauthorized: false, // Skip SSL certificate validation
68
+ },
69
+
70
+ // 💾 Caching (LRU cache)
71
+ cache: {
72
+ enabled: true, // Enable caching
73
+ ttl: 1000 * 60 * 5, // Cache TTL (5 minutes)
74
+ maxSize: 500, // Max cache size (entries)
75
+ },
76
+
77
+ // 🚦 Rate Limiting (Token Bucket)
78
+ rateLimit: {
79
+ enabled: true, // Enable rate limiting
80
+ maxRequests: 100, // Max requests per window
81
+ windowMs: 60000, // Time window (ms)
82
+ },
83
+
84
+ // 📊 Request Queue
85
+ queue: {
86
+ enabled: true, // Enable request queue
87
+ },
88
+
89
+ // 🔄 Retry Logic
90
+ retry: {
91
+ maxRetries: 3, // Max retry attempts
92
+ baseDelay: 1000, // Base delay between retries (ms)
93
+ maxDelay: 10000, // Max delay (ms)
94
+ jitter: true, // Add randomization to delays
95
+ retryStatusCodes: [408, 429, 500, 502, 503, 504],
96
+ },
97
+
98
+ // 📈 Metrics
99
+ metrics: {
100
+ enabled: true, // Enable metrics collection
101
+ maxHistory: 1000, // Metrics history size
102
+ },
103
+
104
+ // 🔍 Logging
105
+ verbose: true, // Enable verbose logging
106
+ logger: (level, msg) => console.log(`[${level}] ${msg}`),
107
+ });
108
+ ```
43
109
 
44
- // Using fluent RequestBuilder
45
- const builderData = await client
110
+ ### Using Advanced Features
111
+
112
+ ```typescript
113
+ // Using Fluent RequestBuilder
114
+ const result = await client
46
115
  .request("https://api.example.com/search")
47
116
  .query({ q: "hyperttp", limit: 10 })
48
117
  .headers({ Authorization: "Bearer TOKEN" })
49
118
  .json()
50
119
  .send();
51
120
 
52
- console.log(builderData);
121
+ console.log(result);
122
+
123
+ // Get client statistics
124
+ const stats = client.getStats();
125
+ console.log({
126
+ cacheSize: stats.cacheSize, // Current cache size
127
+ inflightRequests: stats.inflightRequests, // Active requests
128
+ queuedRequests: stats.queuedRequests, // Requests waiting in queue
129
+ activeRequests: stats.activeRequests, // Currently executing
130
+ currentRateLimit: stats.currentRateLimit, // Used rate limit slots
131
+ });
132
+
133
+ // Work with metrics
134
+ const metrics = client.getMetrics("https://api.example.com/data");
135
+ console.log(metrics); // Timing, bytes, retries, cache hits
136
+
137
+ // Clear cache
138
+ client.clearCache();
139
+
140
+ // Clear metrics
141
+ client.clearMetrics();
142
+
143
+ // Graceful shutdown
144
+ await client.destroy();
53
145
  ```
54
146
 
147
+ ---
148
+
55
149
  ## Fluent Builder API
56
150
 
57
151
  ```typescript
@@ -65,18 +159,37 @@ client
65
159
  .then(console.log);
66
160
  ```
67
161
 
68
- ## Advanced Features
162
+ ---
163
+
164
+ ## Architecture Components
69
165
 
70
- - Caching: Automatically caches GET/HEAD responses, configurable TTL and max size
166
+ ### 💾 CacheManager
167
+ LRU cache with TTL and metadata support (etag, lastModified):
168
+ - Automatically caches GET/HEAD responses
169
+ - Configurable size and TTL
170
+ - Methods: `get()`, `set()`, `getWithMetadata()`, `setWithMetadata()`
71
171
 
72
- - Rate limiting: Prevents overwhelming servers
172
+ ### 📊 QueueManager
173
+ Request queue management:
174
+ - Concurrency control (maxConcurrent)
175
+ - FIFO processing of pending requests
176
+ - Methods: `enqueue()`, `activeCount`, `queuedCount`
73
177
 
74
- - Retries: Automatic retries for 408, 429, 500, 502, 503, 504 with exponential backoff
178
+ ### 🚦 RateLimiter
179
+ Token bucket algorithm with wait queue:
180
+ - Smooth rate limiting
181
+ - FIFO waiting when limit exceeded
182
+ - Methods: `wait()`, `tryConsume()`, `remainingRequests`
75
183
 
76
- - Cookies: Persistent cookie jar per client
184
+ ### 📈 MetricsManager
185
+ Performance metrics collection and analysis:
186
+ - Request timing
187
+ - Bytes sent/received
188
+ - Cache hits/misses
189
+ - Retry counts
77
190
 
78
- - Metrics: Track request timings, bytes sent/received, retries, and cache hits
191
+ ---
79
192
 
80
193
  ## Documentation
81
194
 
82
- - [Русский](https://github.com/Dirold2/hyperttp/blob/main/lang/ru/README.md)
195
+ - [Русский](https://github.com/Dirold2/hyperttp/blob/main/lang/ru/README.md)
@@ -1,61 +1,84 @@
1
- /**
2
- * @interface CacheEntry
3
- */
4
- export interface CacheEntry<T> {
5
- data: T;
6
- etag?: string;
7
- lastModified?: string;
8
- timestamp: number;
9
- }
10
- /**
11
- * @interface CacheManagerOptions
12
- */
13
- export interface CacheManagerOptions {
14
- cacheTTL?: number;
15
- cacheMaxSize?: number;
16
- }
1
+ import { CacheManagerOptions } from "../../Types/cache";
17
2
  /**
18
3
  * @class CacheManager
4
+ * @en High-performance in-memory cache based on LRU strategy.
5
+ * Provides TTL support, metadata storage (etag, lastModified) and fast key-value access.
6
+ *
7
+ * @ru Высокопроизводительный in-memory кэш на основе LRU стратегии.
8
+ * Поддерживает TTL, хранение метаданных (etag, lastModified) и быстрый доступ по ключу.
19
9
  */
20
10
  export declare class CacheManager {
21
- private cache;
22
- private ttl;
11
+ private readonly cache;
23
12
  constructor(options?: CacheManagerOptions);
24
13
  /**
25
- * @en Retrieves data along with HTTP validation metadata.
14
+ * @en Retrieves cached value by key.
15
+ * @ru Получает значение из кэша по ключу.
16
+ *
17
+ * @template T
18
+ * @param key Cache key
19
+ * @returns Cached value or undefined if not found
20
+ */
21
+ get<T>(key: string): T | undefined;
22
+ /**
23
+ * @en Stores value in cache.
24
+ * @ru Сохраняет значение в кэш.
25
+ *
26
+ * @template T
27
+ * @param key Cache key
28
+ * @param value Value to store
29
+ */
30
+ set<T>(key: string, value: T): void;
31
+ /**
32
+ * @en Retrieves cached entry with metadata (etag, lastModified).
33
+ * @ru Получает запись кэша вместе с метаданными (etag, lastModified).
34
+ *
35
+ * @template T
36
+ * @param key Cache key
37
+ * @returns Cached entry with metadata or undefined
26
38
  */
27
- getWithMetadata<T>(key: string): Promise<{
39
+ getWithMetadata<T>(key: string): {
28
40
  data: T;
29
41
  etag?: string;
30
42
  lastModified?: string;
31
- isExpired: boolean;
32
- } | null>;
43
+ } | undefined;
44
+ /**
45
+ * @en Stores value with optional HTTP metadata (etag, lastModified).
46
+ * @ru Сохраняет значение с дополнительными HTTP метаданными (etag, lastModified).
47
+ *
48
+ * @template T
49
+ * @param key Cache key
50
+ * @param data Value to store
51
+ * @param meta Optional HTTP metadata
52
+ */
53
+ setWithMetadata<T>(key: string, data: T, meta?: {
54
+ etag?: string;
55
+ lastModified?: string;
56
+ }): void;
33
57
  /**
34
- * @en Stores data with optional ETag and Last-Modified headers.
58
+ * @en Checks if key exists in cache.
59
+ * @ru Проверяет наличие ключа в кэше.
60
+ *
61
+ * @param key Cache key
62
+ * @returns true if exists, otherwise false
35
63
  */
36
- setWithMetadata<T>(key: string, data: T, meta: {
37
- etag?: unknown;
38
- lastModified?: unknown;
39
- }): Promise<void>;
64
+ has(key: string): boolean;
40
65
  /**
41
- * @en Gets an item from cache.
66
+ * @en Deletes value from cache by key.
67
+ * @ru Удаляет значение из кэша по ключу.
68
+ *
69
+ * @param key Cache key
70
+ * @returns true if value was removed
42
71
  */
43
- get<T>(key: string): Promise<T | undefined>;
72
+ delete(key: string): boolean;
44
73
  /**
45
- * @en Standard async set method.
74
+ * @en Clears entire cache.
75
+ * @ru Очищает весь кэш.
46
76
  */
47
- set<T>(key: string, value: T): Promise<void>;
77
+ clear(): void;
48
78
  /**
49
- * @en Checks if key exists and is not expired.
79
+ * @en Returns current cache size.
80
+ * @ru Возвращает текущий размер кэша.
50
81
  */
51
- has(key: string): Promise<boolean>;
52
- delete(key: string): Promise<boolean>;
53
- clear(): Promise<void>;
54
- getSync<T>(key: string): T | undefined;
55
- setSync<T>(key: string, value: T): void;
56
- hasSync(key: string): boolean;
57
- deleteSync(key: string): boolean;
58
- clearSync(): void;
59
82
  get size(): number;
60
83
  }
61
84
  //# sourceMappingURL=CacheManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,CAAC,EAAE,mBAAmB;IASzC;;OAEG;IACG,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;IAcT;;OAEG;IACG,eAAe,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAMjD;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAItC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;gBAE9C,OAAO,CAAC,EAAE,mBAAmB;IAQzC;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIlC;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAMnC;;;;;;;OAOG;IACH,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAC1B;QACE,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACD,SAAS;IAIb;;;;;;;;OAQG;IACH,eAAe,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,IAAI;IAQP;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -4,101 +4,103 @@ exports.CacheManager = void 0;
4
4
  const lru_cache_1 = require("lru-cache");
5
5
  /**
6
6
  * @class CacheManager
7
+ * @en High-performance in-memory cache based on LRU strategy.
8
+ * Provides TTL support, metadata storage (etag, lastModified) and fast key-value access.
9
+ *
10
+ * @ru Высокопроизводительный in-memory кэш на основе LRU стратегии.
11
+ * Поддерживает TTL, хранение метаданных (etag, lastModified) и быстрый доступ по ключу.
7
12
  */
8
13
  class CacheManager {
9
14
  cache;
10
- ttl;
11
15
  constructor(options) {
12
- this.ttl = options?.cacheTTL ?? 300_000;
13
16
  this.cache = new lru_cache_1.LRUCache({
14
17
  max: options?.cacheMaxSize ?? 500,
15
- ttl: this.ttl,
18
+ ttl: options?.cacheTTL ?? 300_000,
16
19
  updateAgeOnGet: true,
17
20
  });
18
21
  }
19
22
  /**
20
- * @en Retrieves data along with HTTP validation metadata.
23
+ * @en Retrieves cached value by key.
24
+ * @ru Получает значение из кэша по ключу.
25
+ *
26
+ * @template T
27
+ * @param key Cache key
28
+ * @returns Cached value or undefined if not found
21
29
  */
22
- async getWithMetadata(key) {
23
- const entry = this.cache.get(key);
24
- if (!entry)
25
- return null;
26
- const isExpired = Date.now() - entry.timestamp > this.ttl;
27
- return {
28
- data: entry.data,
29
- etag: entry.etag,
30
- lastModified: entry.lastModified,
31
- isExpired,
32
- };
30
+ get(key) {
31
+ return this.cache.get(key)?.data;
33
32
  }
34
33
  /**
35
- * @en Stores data with optional ETag and Last-Modified headers.
34
+ * @en Stores value in cache.
35
+ * @ru Сохраняет значение в кэш.
36
+ *
37
+ * @template T
38
+ * @param key Cache key
39
+ * @param value Value to store
36
40
  */
37
- async setWithMetadata(key, data, meta) {
41
+ set(key, value) {
38
42
  this.cache.set(key, {
39
- data,
40
- etag: typeof meta.etag === "string" ? meta.etag : undefined,
41
- lastModified: typeof meta.lastModified === "string" ? meta.lastModified : undefined,
42
- timestamp: Date.now(),
43
+ data: value,
43
44
  });
44
45
  }
45
46
  /**
46
- * @en Gets an item from cache.
47
+ * @en Retrieves cached entry with metadata (etag, lastModified).
48
+ * @ru Получает запись кэша вместе с метаданными (etag, lastModified).
49
+ *
50
+ * @template T
51
+ * @param key Cache key
52
+ * @returns Cached entry with metadata or undefined
47
53
  */
48
- async get(key) {
49
- const entry = this.cache.get(key);
50
- if (!entry)
51
- return undefined;
52
- return entry.data;
54
+ getWithMetadata(key) {
55
+ return this.cache.get(key);
53
56
  }
54
57
  /**
55
- * @en Standard async set method.
58
+ * @en Stores value with optional HTTP metadata (etag, lastModified).
59
+ * @ru Сохраняет значение с дополнительными HTTP метаданными (etag, lastModified).
60
+ *
61
+ * @template T
62
+ * @param key Cache key
63
+ * @param data Value to store
64
+ * @param meta Optional HTTP metadata
56
65
  */
57
- async set(key, value) {
66
+ setWithMetadata(key, data, meta) {
58
67
  this.cache.set(key, {
59
- data: value,
60
- timestamp: Date.now(),
68
+ data,
69
+ etag: meta?.etag,
70
+ lastModified: meta?.lastModified,
61
71
  });
62
72
  }
63
73
  /**
64
- * @en Checks if key exists and is not expired.
74
+ * @en Checks if key exists in cache.
75
+ * @ru Проверяет наличие ключа в кэше.
76
+ *
77
+ * @param key Cache key
78
+ * @returns true if exists, otherwise false
65
79
  */
66
- async has(key) {
67
- const entry = this.cache.get(key);
68
- if (!entry)
69
- return false;
70
- const isExpired = Date.now() - entry.timestamp > this.ttl;
71
- if (isExpired) {
72
- this.cache.delete(key);
73
- return false;
74
- }
75
- return true;
76
- }
77
- async delete(key) {
78
- return this.cache.delete(key);
79
- }
80
- async clear() {
81
- this.cache.clear();
82
- }
83
- // --- Synchronous Methods ---
84
- getSync(key) {
85
- return this.cache.get(key)?.data;
86
- }
87
- setSync(key, value) {
88
- this.cache.set(key, {
89
- data: value,
90
- timestamp: Date.now(),
91
- });
92
- }
93
- hasSync(key) {
80
+ has(key) {
94
81
  return this.cache.has(key);
95
82
  }
96
- deleteSync(key) {
83
+ /**
84
+ * @en Deletes value from cache by key.
85
+ * @ru Удаляет значение из кэша по ключу.
86
+ *
87
+ * @param key Cache key
88
+ * @returns true if value was removed
89
+ */
90
+ delete(key) {
97
91
  return this.cache.delete(key);
98
92
  }
99
- clearSync() {
93
+ /**
94
+ * @en Clears entire cache.
95
+ * @ru Очищает весь кэш.
96
+ */
97
+ clear() {
100
98
  this.cache.clear();
101
99
  }
100
+ /**
101
+ * @en Returns current cache size.
102
+ * @ru Возвращает текущий размер кэша.
103
+ */
102
104
  get size() {
103
105
  return this.cache.size;
104
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;GAOG;AACH,MAAa,YAAY;IACN,KAAK,CAAoC;IAE1D,YAAY,OAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAQ,CAAC;YACxB,GAAG,EAAE,OAAO,EAAE,YAAY,IAAI,GAAG;YACjC,GAAG,EAAE,OAAO,EAAE,QAAQ,IAAI,OAAO;YACjC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,GAAG,CAAI,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,GAAG,CAAI,GAAW,EAAE,KAAQ;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAI,GAAW;QAO5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CACb,GAAW,EACX,IAAO,EACP,IAGC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI,EAAE,YAAY;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AApHD,oCAoHC"}
@@ -1,5 +1,11 @@
1
1
  import { RequestBuilder } from "./RequestBuilder.js";
2
- import type { HttpClientInterface, HttpClientOptions, RequestInterface, RequestMetrics, ResponseType, StreamResponse } from "../../Types/index.js";
2
+ import { HttpClientInterface } from "../../Types/http-client.js";
3
+ import { HttpClientOptions } from "../../Types/options.js";
4
+ import { ResponseType } from "../../Types/http.js";
5
+ import { RequestInterface } from "../../Types/request.js";
6
+ import { RequestMetrics } from "../../Types/metrics.js";
7
+ import { StreamResponse } from "../../Types/stream.js";
8
+ import { Readable } from "node:stream";
3
9
  /**
4
10
  * @class HttpClientImproved
5
11
  * @en High-performance HTTP client with built-in caching, queuing, rate limiting, and metrics.
@@ -7,30 +13,22 @@ import type { HttpClientInterface, HttpClientOptions, RequestInterface, RequestM
7
13
  */
8
14
  export default class HttpClientImproved implements HttpClientInterface {
9
15
  private agent;
10
- private options;
16
+ readonly config: HttpClientOptions;
11
17
  private cache?;
12
18
  private queue?;
13
19
  private limiter?;
14
20
  private metricsManager;
15
21
  private interceptors;
16
- private transformer;
17
22
  private executor;
18
- /**
19
- * @en Internal map to track active requests for deduplication and cancellation.
20
- * @ru Внутренняя карта для отслеживания активных запросов (дедупликация и отмена).
21
- */
23
+ private converter;
22
24
  private inflight;
23
25
  private defaultHeaders;
24
- constructor(options?: HttpClientOptions);
25
- /**
26
- * @en Core internal method for handling all HTTP requests.
27
- * @ru Основной внутренний метод для обработки всех HTTP-запросов.
28
- * @param method HTTP method (GET, POST, etc.)
29
- * @param req Request object
30
- * @param useCache Whether to use caching for this request
31
- * @param responseType Expected response format
32
- */
33
- private requestInternal;
26
+ private readonly cacheEnabled;
27
+ private readonly queueEnabled;
28
+ private readonly limiterEnabled;
29
+ private readonly metricsEnabled;
30
+ private readonly verboseEnabled;
31
+ constructor(config?: HttpClientOptions);
34
32
  /**
35
33
  * @en Performs an HTTP GET request.
36
34
  * @ru Выполняет HTTP GET запрос.
@@ -62,16 +60,10 @@ export default class HttpClientImproved implements HttpClientInterface {
62
60
  */
63
61
  patch<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
64
62
  /**
65
- * @en Creates a RequestBuilder for a fluent API approach.
66
- * @ru Создает RequestBuilder для использования Fluent API.
67
- * @example client.request('url').get().send();
68
- */
69
- request<T = any>(url: string): RequestBuilder<T>;
70
- /**
71
- * @en Releases all resources, aborts active requests, and closes connections.
72
- * @ru Освобождает ресурсы клиента, отменяет активные запросы и закрывает соединения.
63
+ * @en Performs an HTTP OPTIONS request.
64
+ * @ru Выполняет HTTP OPTIONS запрос.
73
65
  */
74
- destroy(): Promise<void>;
66
+ options<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
75
67
  /**
76
68
  * @en Performs an HTTP HEAD request.
77
69
  * @ru Выполняет HTTP HEAD запрос.
@@ -80,15 +72,34 @@ export default class HttpClientImproved implements HttpClientInterface {
80
72
  status: number;
81
73
  headers: Record<string, any>;
82
74
  }>;
75
+ /**
76
+ * @en Creates a new HttpClient instance with merged configuration.
77
+ * @ru Создаёт новый экземпляр HttpClient с объединённой конфигурацией.
78
+ *
79
+ * @param options Partial configuration to override current settings
80
+ * @returns New HttpClientImproved instance
81
+ */
82
+ extend(options: Partial<HttpClientOptions>): HttpClientImproved;
83
+ /**
84
+ * @en Alias for extend(). Creates a new configured client instance.
85
+ * @ru Алиас для extend(). Создаёт новый настроенный экземпляр клиента.
86
+ *
87
+ * @param options Partial configuration overrides
88
+ * @returns New HttpClientImproved instance
89
+ */
90
+ create(options: Partial<HttpClientOptions>): HttpClientImproved;
83
91
  /**
84
92
  * @en Executes a request and returns an AsyncIterable stream.
85
93
  * @ru Выполняет запрос и возвращает итерируемый поток данных.
86
94
  */
87
- stream(req: RequestInterface | string): Promise<StreamResponse>;
95
+ stream(req: RequestInterface | string): Promise<StreamResponse<Readable>>;
88
96
  /**
89
- * @en Clears the internal cache.
90
- * @ru Полностью очищает внутренний кэш клиента.
97
+ * @en Creates a RequestBuilder for a fluent API approach.
98
+ * @ru Создает RequestBuilder для использования Fluent API.
99
+ * @example client.request('url').get().send();
91
100
  */
101
+ request(url: string): RequestBuilder;
102
+ destroy(): Promise<void>;
92
103
  clearCache(): void;
93
104
  /**
94
105
  * @en Clears all collected performance metrics.
@@ -113,12 +124,23 @@ export default class HttpClientImproved implements HttpClientInterface {
113
124
  getStats(): {
114
125
  cacheSize: number;
115
126
  inflightRequests: number;
116
- queuedRequests: number;
117
- activeRequests: number;
118
- currentRateLimit: number;
127
+ queuedRequests: any;
128
+ activeRequests: any;
129
+ currentRateLimit: any;
119
130
  };
131
+ warmup(urls: string[], count?: number): Promise<void>;
132
+ private mergeOptions;
120
133
  private normalizeRequest;
121
- private applyDefaultOptions;
134
+ private applyDefaulthcoptions;
135
+ /**
136
+ * @en Core internal method for handling all HTTP requests.
137
+ * @ru Основной внутренний метод для обработки всех HTTP-запросов.
138
+ * @param method HTTP method (GET, POST, etc.)
139
+ * @param req Request object
140
+ * @param useCache Whether to use caching for this request
141
+ * @param responseType Expected response format
142
+ */
143
+ private requestInternal;
122
144
  private prepareRequestData;
123
145
  private createInitialMetrics;
124
146
  private recordSuccess;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}