hyperttp 0.1.7 → 0.1.8
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.
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +14 -246
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +137 -112
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.js +0 -2
- package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
- package/dist/Hyperttp/Core/index.d.ts +7 -7
- package/dist/Hyperttp/Core/index.d.ts.map +1 -1
- package/dist/Hyperttp/Core/index.js +8 -8
- package/dist/Hyperttp/Core/index.js.map +1 -1
- package/dist/Hyperttp/Request.d.ts.map +1 -1
- package/dist/Hyperttp/Request.js +0 -1
- package/dist/Hyperttp/Request.js.map +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
- package/dist/Hyperttp/UrlExtractor.js +0 -1
- package/dist/Hyperttp/UrlExtractor.js.map +1 -1
- package/dist/Hyperttp/index.d.ts +4 -4
- package/dist/Hyperttp/index.d.ts.map +1 -1
- package/dist/Hyperttp/index.js +11 -11
- package/dist/Hyperttp/index.js.map +1 -1
- package/dist/Types/index.d.ts +256 -0
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Types/index.js +47 -0
- package/dist/Types/index.js.map +1 -1
- package/dist/Types/request.d.ts +1 -1
- package/dist/Types/request.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,246 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ResponseType } from "../../Types";
|
|
3
|
-
/**
|
|
4
|
-
* Base error class for HTTP client operations.
|
|
5
|
-
* Contains additional context about the failed request including status code, URL, and method.
|
|
6
|
-
*/
|
|
7
|
-
export declare class HttpClientError extends Error {
|
|
8
|
-
statusCode?: number | undefined;
|
|
9
|
-
originalError?: Error | undefined;
|
|
10
|
-
url?: string | undefined;
|
|
11
|
-
method?: string | undefined;
|
|
12
|
-
constructor(message: string, statusCode?: number | undefined, originalError?: Error | undefined, url?: string | undefined, method?: string | undefined);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Error thrown when an HTTP request exceeds the configured timeout duration.
|
|
16
|
-
* Contains information about the URL and timeout value that caused the failure.
|
|
17
|
-
*/
|
|
18
|
-
export declare class TimeoutError extends HttpClientError {
|
|
19
|
-
constructor(url: string, timeout: number);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Error thrown when an HTTP request is rate limited by the server.
|
|
23
|
-
* Contains information about the URL and optional retry-after duration.
|
|
24
|
-
*/
|
|
25
|
-
export declare class RateLimitError extends HttpClientError {
|
|
26
|
-
retryAfter?: number | undefined;
|
|
27
|
-
constructor(url: string, retryAfter?: number | undefined);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Log level for HTTP client logging.
|
|
31
|
-
* Defines the verbosity of log output from the client.
|
|
32
|
-
*/
|
|
33
|
-
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
34
|
-
/**
|
|
35
|
-
* Function type for logging HTTP client events.
|
|
36
|
-
* Used to customize how the client logs various events like requests, responses, and errors.
|
|
37
|
-
*
|
|
38
|
-
* @param level - The severity level of the log message
|
|
39
|
-
* @param message - The log message content
|
|
40
|
-
* @param meta - Optional additional context or metadata
|
|
41
|
-
*/
|
|
42
|
-
export type LoggerFunction = (level: LogLevel, message: string, meta?: any) => void;
|
|
43
|
-
/**
|
|
44
|
-
* Configuration options for HTTP request retry behavior.
|
|
45
|
-
* Defines how the client should handle failed requests and when to retry them.
|
|
46
|
-
*/
|
|
47
|
-
export interface RetryOptions {
|
|
48
|
-
/** Maximum number of retry attempts before giving up */
|
|
49
|
-
maxRetries: number;
|
|
50
|
-
/** Base delay in milliseconds between retry attempts (exponential backoff) */
|
|
51
|
-
baseDelay: number;
|
|
52
|
-
/** Maximum delay in milliseconds between retry attempts */
|
|
53
|
-
maxDelay: number;
|
|
54
|
-
/** HTTP status codes that should trigger a retry */
|
|
55
|
-
retryStatusCodes: number[];
|
|
56
|
-
/** Whether to add random jitter to retry delays to prevent thundering herd */
|
|
57
|
-
jitter: boolean;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Function type for intercepting and modifying HTTP requests before they are sent.
|
|
61
|
-
* Request interceptors can modify the URL, method, headers, or body of outgoing requests.
|
|
62
|
-
*
|
|
63
|
-
* @param config - The request configuration object
|
|
64
|
-
* @returns A promise that resolves to the modified request configuration
|
|
65
|
-
*/
|
|
66
|
-
export type RequestInterceptor = (config: {
|
|
67
|
-
url: string;
|
|
68
|
-
method: string;
|
|
69
|
-
headers: Record<string, string>;
|
|
70
|
-
body?: string | Buffer;
|
|
71
|
-
}) => Promise<{
|
|
72
|
-
url: string;
|
|
73
|
-
method: string;
|
|
74
|
-
headers: Record<string, string>;
|
|
75
|
-
body?: string | Buffer;
|
|
76
|
-
}>;
|
|
77
|
-
/**
|
|
78
|
-
* Function type for intercepting and modifying HTTP responses before they are processed.
|
|
79
|
-
* Response interceptors can modify the status, headers, body, or URL of incoming responses.
|
|
80
|
-
*
|
|
81
|
-
* @param response - The response object containing status, headers, body, and URL
|
|
82
|
-
* @returns A promise that resolves to the modified response object
|
|
83
|
-
*/
|
|
84
|
-
export type ResponseInterceptor = (response: {
|
|
85
|
-
status: number;
|
|
86
|
-
headers: Record<string, any>;
|
|
87
|
-
body: Buffer;
|
|
88
|
-
url: string;
|
|
89
|
-
}) => Promise<{
|
|
90
|
-
status: number;
|
|
91
|
-
headers: Record<string, any>;
|
|
92
|
-
body: Buffer;
|
|
93
|
-
url: string;
|
|
94
|
-
}>;
|
|
95
|
-
/**
|
|
96
|
-
* Configuration options for the HttpClientImproved instance.
|
|
97
|
-
* Defines all the behavior settings for HTTP requests including timeouts, retries, caching, and more.
|
|
98
|
-
*/
|
|
99
|
-
export interface HttpClientOptions {
|
|
100
|
-
/** Request timeout in milliseconds (default: 15000) */
|
|
101
|
-
timeout?: number;
|
|
102
|
-
/** Maximum number of concurrent requests (default: 50) */
|
|
103
|
-
maxConcurrent?: number;
|
|
104
|
-
/** Maximum number of retry attempts for failed requests (default: 3) */
|
|
105
|
-
maxRetries?: number;
|
|
106
|
-
/** Cache time-to-live in milliseconds (default: 300000) */
|
|
107
|
-
cacheTTL?: number;
|
|
108
|
-
/** Maximum number of cached entries (default: 500) */
|
|
109
|
-
cacheMaxSize?: number;
|
|
110
|
-
/** Rate limiting configuration to prevent overwhelming servers */
|
|
111
|
-
rateLimit?: RateLimiterConfig;
|
|
112
|
-
/** User-Agent string for HTTP requests (default: "Hyperttp/0.1.0 Node.js") */
|
|
113
|
-
userAgent?: string;
|
|
114
|
-
/** Custom logger function for HTTP client events */
|
|
115
|
-
logger?: LoggerFunction;
|
|
116
|
-
/** Retry behavior configuration */
|
|
117
|
-
retryOptions?: Partial<RetryOptions>;
|
|
118
|
-
/** Whether to automatically follow HTTP redirects (default: true) */
|
|
119
|
-
followRedirects?: boolean;
|
|
120
|
-
/** Maximum number of redirects to follow (default: 5) */
|
|
121
|
-
maxRedirects?: number;
|
|
122
|
-
/** Maximum response size in bytes (default: 1MB) */
|
|
123
|
-
maxResponseBytes?: number;
|
|
124
|
-
/** Function to validate HTTP status codes (default: 200-299) */
|
|
125
|
-
validateStatus?: (status: number) => boolean;
|
|
126
|
-
/** HTTP methods that should be cached (default: ["GET", "HEAD"]) */
|
|
127
|
-
cacheMethods?: string[];
|
|
128
|
-
/** Maximum number of request metrics to store (default: 10000) */
|
|
129
|
-
maxMetricsSize?: number;
|
|
130
|
-
/** Whether to enable verbose logging (default: false) */
|
|
131
|
-
verbose?: boolean;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Interface for defining HTTP request parameters.
|
|
135
|
-
* Used to encapsulate URL, headers, and body data for HTTP requests.
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```ts
|
|
139
|
-
* class ApiRequest implements RequestInterface {
|
|
140
|
-
* constructor(
|
|
141
|
-
* private url: string,
|
|
142
|
-
* private headers: Record<string, string> = {},
|
|
143
|
-
* private body?: any
|
|
144
|
-
* ) {}
|
|
145
|
-
*
|
|
146
|
-
* getURL(): string { return this.url; }
|
|
147
|
-
* getHeaders(): Record<string, string> { return this.headers; }
|
|
148
|
-
* getBodyData(): any { return this.body; }
|
|
149
|
-
* }
|
|
150
|
-
* ```
|
|
151
|
-
*/
|
|
152
|
-
export interface RequestInterface {
|
|
153
|
-
/** Returns the full URL for the HTTP request */
|
|
154
|
-
getURL(): string;
|
|
155
|
-
/** Returns the request body data (string, Buffer, or any serializable object) */
|
|
156
|
-
getBodyData(): any;
|
|
157
|
-
/** Returns the HTTP headers for the request */
|
|
158
|
-
getHeaders(): Record<string, string>;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Interface defining the contract for HTTP client implementations.
|
|
162
|
-
* Provides methods for making HTTP requests with various HTTP methods.
|
|
163
|
-
*/
|
|
164
|
-
export interface HttpClientInterface {
|
|
165
|
-
/**
|
|
166
|
-
* Makes an HTTP GET request
|
|
167
|
-
* @param req - Request configuration or URL string
|
|
168
|
-
* @param responseType - Expected response type (default: "json")
|
|
169
|
-
* @returns Promise resolving to the response data
|
|
170
|
-
*/
|
|
171
|
-
get<T = any>(req: RequestInterface, responseType?: ResponseType): Promise<T>;
|
|
172
|
-
/**
|
|
173
|
-
* Makes an HTTP POST request
|
|
174
|
-
* @param req - Request configuration or URL string
|
|
175
|
-
* @param body - Request body data
|
|
176
|
-
* @param responseType - Expected response type (default: "json")
|
|
177
|
-
* @returns Promise resolving to the response data
|
|
178
|
-
*/
|
|
179
|
-
post<T = any>(req: RequestInterface, body?: any, responseType?: ResponseType): Promise<T>;
|
|
180
|
-
/**
|
|
181
|
-
* Makes an HTTP PUT request
|
|
182
|
-
* @param req - Request configuration or URL string
|
|
183
|
-
* @param body - Request body data
|
|
184
|
-
* @param responseType - Expected response type (default: "json")
|
|
185
|
-
* @returns Promise resolving to the response data
|
|
186
|
-
*/
|
|
187
|
-
put<T = any>(req: RequestInterface, body?: any, responseType?: ResponseType): Promise<T>;
|
|
188
|
-
/**
|
|
189
|
-
* Makes an HTTP DELETE request
|
|
190
|
-
* @param req - Request configuration or URL string
|
|
191
|
-
* @param responseType - Expected response type (default: "json")
|
|
192
|
-
* @returns Promise resolving to the response data
|
|
193
|
-
*/
|
|
194
|
-
delete<T = any>(req: RequestInterface, responseType?: ResponseType): Promise<T>;
|
|
195
|
-
/**
|
|
196
|
-
* Makes an HTTP PATCH request
|
|
197
|
-
* @param req - Request configuration
|
|
198
|
-
* @param responseType - Expected response type (default: "json")
|
|
199
|
-
* @returns Promise resolving to the response data
|
|
200
|
-
*/
|
|
201
|
-
patch<T = any>(req: RequestInterface, responseType?: ResponseType): Promise<T>;
|
|
202
|
-
/**
|
|
203
|
-
* Makes an HTTP HEAD request
|
|
204
|
-
* @param req - Request configuration or URL string
|
|
205
|
-
* @returns Promise resolving to status and headers
|
|
206
|
-
*/
|
|
207
|
-
head(req: RequestInterface): Promise<{
|
|
208
|
-
status: number;
|
|
209
|
-
headers: Record<string, any>;
|
|
210
|
-
}>;
|
|
211
|
-
/**
|
|
212
|
-
* Clears the internal cache of the HTTP client
|
|
213
|
-
*/
|
|
214
|
-
clearCache(): void;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Metrics collected for HTTP requests to monitor performance and behavior.
|
|
218
|
-
* Contains timing information, response details, and caching information.
|
|
219
|
-
*/
|
|
220
|
-
export interface RequestMetrics {
|
|
221
|
-
/** Timestamp when the request started */
|
|
222
|
-
startTime: number;
|
|
223
|
-
/** Timestamp when the request completed */
|
|
224
|
-
endTime: number;
|
|
225
|
-
/** Total duration of the request in milliseconds */
|
|
226
|
-
duration: number;
|
|
227
|
-
/** HTTP status code of the response (if available) */
|
|
228
|
-
statusCode?: number;
|
|
229
|
-
/** Number of bytes received in the response */
|
|
230
|
-
bytesReceived: number;
|
|
231
|
-
/** Number of bytes sent in the request body */
|
|
232
|
-
bytesSent: number;
|
|
233
|
-
/** Number of retry attempts made for this request */
|
|
234
|
-
retries: number;
|
|
235
|
-
/** Whether the response was served from cache */
|
|
236
|
-
cached: boolean;
|
|
237
|
-
/** URL of the request */
|
|
238
|
-
url: string;
|
|
239
|
-
/** HTTP method used (GET, POST, etc.) */
|
|
240
|
-
method: string;
|
|
241
|
-
/** Hash of the request body for cache key generation */
|
|
242
|
-
bodyHash?: string;
|
|
243
|
-
}
|
|
1
|
+
import { HttpClientInterface, HttpClientOptions, RequestInterface, RequestMetrics, ResponseType, StreamResponse } from "../../Types";
|
|
244
2
|
/**
|
|
245
3
|
* @ru
|
|
246
4
|
* Улучшенный HTTP-клиент с кэшированием, ограничением скорости, логикой повторных попыток и расширенными функциями.
|
|
@@ -298,9 +56,9 @@ export interface RequestMetrics {
|
|
|
298
56
|
export default class HttpClientImproved implements HttpClientInterface {
|
|
299
57
|
private cookieJar;
|
|
300
58
|
private agent;
|
|
301
|
-
private cache
|
|
302
|
-
private queue
|
|
303
|
-
private limiter
|
|
59
|
+
private cache?;
|
|
60
|
+
private queue?;
|
|
61
|
+
private limiter?;
|
|
304
62
|
private inflight;
|
|
305
63
|
private retryOptions;
|
|
306
64
|
private defaultHeaders;
|
|
@@ -443,6 +201,11 @@ export default class HttpClientImproved implements HttpClientInterface {
|
|
|
443
201
|
* @returns Promise resolving to the response data
|
|
444
202
|
*/
|
|
445
203
|
put<T = any>(req: RequestInterface | string, body?: any, responseType?: ResponseType): Promise<T>;
|
|
204
|
+
/**
|
|
205
|
+
* @ru Получает потоковый ответ (для SSE, больших файлов).
|
|
206
|
+
* @en Gets streaming response (for SSE, large files).
|
|
207
|
+
*/
|
|
208
|
+
stream(req: RequestInterface | string): Promise<StreamResponse>;
|
|
446
209
|
/**
|
|
447
210
|
* Makes an HTTP DELETE request.
|
|
448
211
|
* Supports both RequestInterface objects and direct URL strings.
|
|
@@ -570,6 +333,11 @@ declare class RequestBuilder<T = any> {
|
|
|
570
333
|
* @returns The builder instance for chaining
|
|
571
334
|
*/
|
|
572
335
|
post(): this;
|
|
336
|
+
/**
|
|
337
|
+
* @ru Устанавливает потоковый режим ответа.
|
|
338
|
+
* @en Sets streaming response mode.
|
|
339
|
+
*/
|
|
340
|
+
stream(): this;
|
|
573
341
|
/**
|
|
574
342
|
* Sets the HTTP method to PUT.
|
|
575
343
|
* @returns The builder instance for chaining
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
|