hyperttp 0.2.3 → 0.2.5
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/CacheManager.d.ts +63 -40
- package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/CacheManager.js +64 -62
- package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts +55 -33
- package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
- package/dist/Hyperttp/Core/HttpClientImproved.js +313 -219
- package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
- package/dist/Hyperttp/Core/InterceptorManager.d.ts +11 -11
- package/dist/Hyperttp/Core/InterceptorManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/InterceptorManager.js +10 -10
- package/dist/Hyperttp/Core/InterceptorManager.js.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.d.ts +33 -42
- package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/MetricsManager.js +147 -58
- package/dist/Hyperttp/Core/MetricsManager.js.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.d.ts +6 -4
- package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
- package/dist/Hyperttp/Core/QueueManager.js +36 -34
- package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.d.ts +29 -36
- package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RateLimiter.js +96 -36
- package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts +3 -1
- package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestBuilder.js +10 -3
- package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
- package/dist/Hyperttp/Core/RequestExecutor.d.ts +7 -34
- package/dist/Hyperttp/Core/RequestExecutor.d.ts.map +1 -1
- package/dist/Hyperttp/Core/RequestExecutor.js +120 -114
- package/dist/Hyperttp/Core/RequestExecutor.js.map +1 -1
- package/dist/Hyperttp/Core/ResponseConverter.d.ts +23 -0
- package/dist/Hyperttp/Core/ResponseConverter.d.ts.map +1 -0
- package/dist/Hyperttp/Core/ResponseConverter.js +368 -0
- package/dist/Hyperttp/Core/ResponseConverter.js.map +1 -0
- package/dist/Hyperttp/Core/index.d.ts +7 -10
- package/dist/Hyperttp/Core/index.d.ts.map +1 -1
- package/dist/Hyperttp/Core/index.js +26 -15
- package/dist/Hyperttp/Core/index.js.map +1 -1
- package/dist/Hyperttp/Request.d.ts +9 -20
- package/dist/Hyperttp/Request.d.ts.map +1 -1
- package/dist/Hyperttp/Request.js +93 -85
- package/dist/Hyperttp/Request.js.map +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts +1 -1
- package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
- package/dist/Hyperttp/index.d.ts +1 -3
- package/dist/Hyperttp/index.d.ts.map +1 -1
- package/dist/Hyperttp/index.js +7 -8
- package/dist/Hyperttp/index.js.map +1 -1
- package/dist/Types/cache.d.ts +10 -0
- package/dist/Types/cache.d.ts.map +1 -0
- package/dist/Types/cache.js +3 -0
- package/dist/Types/cache.js.map +1 -0
- package/dist/Types/errors.d.ts +15 -0
- package/dist/Types/errors.d.ts.map +1 -0
- package/dist/Types/errors.js +34 -0
- package/dist/Types/errors.js.map +1 -0
- package/dist/Types/http-client.d.ts +39 -0
- package/dist/Types/http-client.d.ts.map +1 -0
- package/dist/Types/http-client.js +3 -0
- package/dist/Types/http-client.js.map +1 -0
- package/dist/Types/http.d.ts +5 -0
- package/dist/Types/http.d.ts.map +1 -0
- package/dist/Types/http.js +3 -0
- package/dist/Types/http.js.map +1 -0
- package/dist/Types/index.d.ts +12 -126
- package/dist/Types/index.d.ts.map +1 -1
- package/dist/Types/index.js +12 -39
- package/dist/Types/index.js.map +1 -1
- package/dist/Types/interceptors.d.ts +13 -0
- package/dist/Types/interceptors.d.ts.map +1 -0
- package/dist/Types/interceptors.js +3 -0
- package/dist/Types/interceptors.js.map +1 -0
- package/dist/Types/metrics.d.ts +67 -0
- package/dist/Types/metrics.d.ts.map +1 -0
- package/dist/Types/metrics.js +3 -0
- package/dist/Types/metrics.js.map +1 -0
- package/dist/Types/options.d.ts +233 -0
- package/dist/Types/options.d.ts.map +1 -0
- package/dist/Types/options.js +3 -0
- package/dist/Types/options.js.map +1 -0
- package/dist/Types/queue.d.ts +8 -0
- package/dist/Types/queue.d.ts.map +1 -0
- package/dist/Types/queue.js +3 -0
- package/dist/Types/queue.js.map +1 -0
- package/dist/Types/request.d.ts +150 -12
- package/dist/Types/request.d.ts.map +1 -1
- package/dist/Types/response.d.ts +28 -0
- package/dist/Types/response.d.ts.map +1 -0
- package/dist/Types/response.js +3 -0
- package/dist/Types/response.js.map +1 -0
- package/dist/Types/stream.d.ts +39 -0
- package/dist/Types/stream.d.ts.map +1 -0
- package/dist/Types/stream.js +3 -0
- package/dist/Types/stream.js.map +1 -0
- package/dist/Types/url-extractor.d.ts +10 -0
- package/dist/Types/url-extractor.d.ts.map +1 -0
- package/dist/Types/url-extractor.js +3 -0
- package/dist/Types/url-extractor.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts +0 -35
- package/dist/Hyperttp/Core/ResponseTransformer.d.ts.map +0 -1
- package/dist/Hyperttp/Core/ResponseTransformer.js +0 -171
- package/dist/Hyperttp/Core/ResponseTransformer.js.map +0 -1
package/dist/Types/request.d.ts
CHANGED
|
@@ -1,51 +1,189 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @ru Представляет HTTP заголовки запроса
|
|
3
|
+
* @en Represents HTTP request headers
|
|
3
4
|
*/
|
|
4
5
|
export type RequestHeaders = Record<string, string>;
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* @ru Представляет параметры URL query
|
|
8
|
+
* @en Represents URL query parameters
|
|
7
9
|
*/
|
|
8
|
-
export type RequestQuery = Record<string, string | number | boolean | undefined | null>;
|
|
10
|
+
export type RequestQuery = Record<string, string | string[] | number | boolean | undefined | null>;
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
12
|
+
* @ru Данные тела запроса
|
|
13
|
+
* @en Request body data
|
|
11
14
|
*/
|
|
12
15
|
export type RequestBodyData = any | null | undefined;
|
|
13
16
|
/**
|
|
14
|
-
* Конфигурация для создания запроса
|
|
17
|
+
* @ru Конфигурация для создания запроса
|
|
18
|
+
* @en Configuration for request creation
|
|
15
19
|
*/
|
|
16
20
|
export type RequestConfig = {
|
|
21
|
+
/**
|
|
22
|
+
* @ru Схема протокола (http/https)
|
|
23
|
+
* @en Protocol scheme (http/https)
|
|
24
|
+
*/
|
|
17
25
|
scheme: string;
|
|
26
|
+
/**
|
|
27
|
+
* @ru Хост сервера
|
|
28
|
+
* @en Server host
|
|
29
|
+
*/
|
|
18
30
|
host: string;
|
|
19
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @ru Порт сервера
|
|
33
|
+
* @en Server port
|
|
34
|
+
*/
|
|
35
|
+
port?: number;
|
|
36
|
+
/**
|
|
37
|
+
* @ru Путь ресурса
|
|
38
|
+
* @en Resource path
|
|
39
|
+
*/
|
|
20
40
|
path?: string;
|
|
41
|
+
/**
|
|
42
|
+
* @ru Заголовки запроса
|
|
43
|
+
* @en Request headers
|
|
44
|
+
*/
|
|
21
45
|
headers?: RequestHeaders;
|
|
46
|
+
/**
|
|
47
|
+
* @ru Параметры query строки
|
|
48
|
+
* @en Query string parameters
|
|
49
|
+
*/
|
|
22
50
|
query?: RequestQuery;
|
|
51
|
+
/**
|
|
52
|
+
* @ru Данные тела запроса
|
|
53
|
+
* @en Request body data
|
|
54
|
+
*/
|
|
23
55
|
bodyData?: RequestBodyData;
|
|
24
56
|
};
|
|
25
|
-
export type Method = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD";
|
|
26
57
|
/**
|
|
27
|
-
* Основной интерфейс
|
|
28
|
-
*
|
|
29
|
-
* в HttpClient соответствовали этому интерфейсу.
|
|
58
|
+
* @ru Основной интерфейс запроса
|
|
59
|
+
* @en Main request interface
|
|
30
60
|
*/
|
|
31
61
|
export interface RequestInterface {
|
|
62
|
+
/**
|
|
63
|
+
* @ru Возвращает полный URL запроса
|
|
64
|
+
* @en Returns full request URL
|
|
65
|
+
* @returns constructed URL string
|
|
66
|
+
*/
|
|
32
67
|
getURL(): string;
|
|
68
|
+
/**
|
|
69
|
+
* @ru Возвращает заголовки запроса
|
|
70
|
+
* @en Returns request headers
|
|
71
|
+
* @returns headers object
|
|
72
|
+
*/
|
|
33
73
|
getHeaders(): RequestHeaders;
|
|
74
|
+
/**
|
|
75
|
+
* @ru Возвращает данные тела запроса
|
|
76
|
+
* @en Returns request body data
|
|
77
|
+
* @returns body data
|
|
78
|
+
*/
|
|
34
79
|
getBodyData(): RequestBodyData;
|
|
80
|
+
/**
|
|
81
|
+
* @ru Устанавливает путь ресурса
|
|
82
|
+
* @en Sets resource path
|
|
83
|
+
* @param path - new path
|
|
84
|
+
* @returns this for chaining
|
|
85
|
+
*/
|
|
35
86
|
setPath?(path: string): RequestInterface;
|
|
87
|
+
/**
|
|
88
|
+
* @ru Устанавливает хост сервера
|
|
89
|
+
* @en Sets server host
|
|
90
|
+
* @param host - server host
|
|
91
|
+
* @returns this for chaining
|
|
92
|
+
*/
|
|
36
93
|
setHost?(host: string): RequestInterface;
|
|
94
|
+
/**
|
|
95
|
+
* @ru Устанавливает заголовки запроса
|
|
96
|
+
* @en Sets request headers
|
|
97
|
+
* @param headers - headers object
|
|
98
|
+
* @returns this for chaining
|
|
99
|
+
*/
|
|
37
100
|
setHeaders?(headers: RequestHeaders): RequestInterface;
|
|
101
|
+
/**
|
|
102
|
+
* @ru Добавляет заголовки к существующим
|
|
103
|
+
* @en Adds headers to existing ones
|
|
104
|
+
* @param headers - headers to add
|
|
105
|
+
* @returns this for chaining
|
|
106
|
+
*/
|
|
38
107
|
addHeaders?(headers: RequestHeaders): RequestInterface;
|
|
108
|
+
/**
|
|
109
|
+
* @ru Возвращает query параметры
|
|
110
|
+
* @en Returns query parameters
|
|
111
|
+
* @returns query object
|
|
112
|
+
*/
|
|
39
113
|
getQuery?(): RequestQuery;
|
|
114
|
+
/**
|
|
115
|
+
* @ru Устанавливает query параметры
|
|
116
|
+
* @en Sets query parameters
|
|
117
|
+
* @param query - query object
|
|
118
|
+
* @returns this for chaining
|
|
119
|
+
*/
|
|
40
120
|
setQuery?(query: RequestQuery): RequestInterface;
|
|
121
|
+
/**
|
|
122
|
+
* @ru Добавляет query параметры
|
|
123
|
+
* @en Adds query parameters
|
|
124
|
+
* @param query - query to add
|
|
125
|
+
* @returns this for chaining
|
|
126
|
+
*/
|
|
41
127
|
addQuery?(query: RequestQuery): RequestInterface;
|
|
128
|
+
/**
|
|
129
|
+
* @ru Возвращает query строку
|
|
130
|
+
* @en Returns query string
|
|
131
|
+
* @returns encoded query string
|
|
132
|
+
*/
|
|
42
133
|
getQueryAsString?(): string;
|
|
134
|
+
/**
|
|
135
|
+
* @ru Возвращает тело запроса как строку
|
|
136
|
+
* @en Returns body data as string
|
|
137
|
+
* @returns body string representation
|
|
138
|
+
*/
|
|
43
139
|
getBodyDataString?(): string;
|
|
140
|
+
/**
|
|
141
|
+
* @ru Устанавливает данные тела запроса
|
|
142
|
+
* @en Sets request body data
|
|
143
|
+
* @param bodyData - body data
|
|
144
|
+
* @returns this for chaining
|
|
145
|
+
*/
|
|
44
146
|
setBodyData?(bodyData: RequestBodyData): RequestInterface;
|
|
147
|
+
/**
|
|
148
|
+
* @ru Добавляет данные к телу запроса
|
|
149
|
+
* @en Adds data to request body
|
|
150
|
+
* @param bodyData - data to add
|
|
151
|
+
* @returns this for chaining
|
|
152
|
+
*/
|
|
45
153
|
addBodyData?(bodyData: RequestBodyData): RequestInterface;
|
|
46
|
-
|
|
154
|
+
/**
|
|
155
|
+
* @ru Устанавливает AbortSignal для отмены
|
|
156
|
+
* @en Sets AbortSignal for cancellation
|
|
157
|
+
* @param signal - AbortSignal instance
|
|
158
|
+
* @returns this for chaining
|
|
159
|
+
*/
|
|
47
160
|
setSignal?(signal: AbortSignal): RequestInterface;
|
|
161
|
+
/**
|
|
162
|
+
* @ru Возвращает AbortSignal
|
|
163
|
+
* @en Returns AbortSignal
|
|
164
|
+
* @returns AbortSignal or undefined
|
|
165
|
+
*/
|
|
48
166
|
getSignal?(): AbortSignal | undefined;
|
|
49
167
|
}
|
|
50
|
-
|
|
168
|
+
/**
|
|
169
|
+
* @ru Метаданные для конвертации ответа
|
|
170
|
+
* @en Response conversion metadata
|
|
171
|
+
*/
|
|
172
|
+
export interface ConversionMeta {
|
|
173
|
+
/**
|
|
174
|
+
* @ru Content-Type заголовок
|
|
175
|
+
* @en Content-Type header
|
|
176
|
+
*/
|
|
177
|
+
contentType?: string;
|
|
178
|
+
/**
|
|
179
|
+
* @ru Content-Encoding заголовок
|
|
180
|
+
* @en Content-Encoding header
|
|
181
|
+
*/
|
|
182
|
+
contentEncoding?: string;
|
|
183
|
+
/**
|
|
184
|
+
* @ru URL запроса
|
|
185
|
+
* @en Request URL
|
|
186
|
+
*/
|
|
187
|
+
url?: string;
|
|
188
|
+
}
|
|
51
189
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/Types/request.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/Types/request.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CACxD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,IAAI,cAAc,CAAC;IAE7B;;;;OAIG;IACH,WAAW,IAAI,eAAe,CAAC;IAE/B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;;;;OAKG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAEvD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,YAAY,CAAC;IAE1B;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAEjD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB,CAAC;IAEjD;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,MAAM,CAAC;IAE5B;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,eAAe,GAAG,gBAAgB,CAAC;IAE1D;;;;;OAKG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,eAAe,GAAG,gBAAgB,CAAC;IAE1D;;;;;OAKG;IACH,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CAAC;IAElD;;;;OAIG;IACH,SAAS,CAAC,IAAI,WAAW,GAAG,SAAS,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface ResponseConverterOptions {
|
|
2
|
+
/**
|
|
3
|
+
* @ru Максимальный размер тела ответа (байты), 0 = без ограничений
|
|
4
|
+
* @en Maximum response body size (bytes), 0 = unlimited
|
|
5
|
+
*/
|
|
6
|
+
maxBodySize?: number;
|
|
7
|
+
/**
|
|
8
|
+
* @ru Парсить HTML в DOM структуру
|
|
9
|
+
* @en Parse HTML into DOM structure
|
|
10
|
+
*/
|
|
11
|
+
parseHTML?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* @ru Режим парсинга HTML
|
|
14
|
+
* @en HTML parsing mode
|
|
15
|
+
*/
|
|
16
|
+
htmlMode?: "simple" | "full";
|
|
17
|
+
/**
|
|
18
|
+
* @ru Кодировка текста (ascii|utf8|utf-8|utf16le|ucs2|base64|latin1|binary|hex)
|
|
19
|
+
* @en Text encoding (ascii|utf8|utf-8|utf16le|ucs2|base64|latin1|binary|hex)
|
|
20
|
+
*/
|
|
21
|
+
charset?: BufferEncoding;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @ru Парсированный ответ сервера
|
|
25
|
+
* @en Parsed server response
|
|
26
|
+
*/
|
|
27
|
+
export type ParsedResponse = string | Buffer | Record<string, any> | any[] | null;
|
|
28
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/Types/response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,GAAG,EAAE,GACL,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/Types/response.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Readable } from "node:stream";
|
|
2
|
+
export interface StreamResponse<TBody = Readable> {
|
|
3
|
+
/**
|
|
4
|
+
* @ru HTTP статус код ответа
|
|
5
|
+
* @en HTTP status code
|
|
6
|
+
*/
|
|
7
|
+
status: number;
|
|
8
|
+
/**
|
|
9
|
+
* @ru Заголовки ответа (сырые)
|
|
10
|
+
* @en Response headers (raw)
|
|
11
|
+
*/
|
|
12
|
+
headers: Record<string, string | string[] | undefined>;
|
|
13
|
+
/**
|
|
14
|
+
* @ru Потоковое тело (низкоуровневые чанки)
|
|
15
|
+
* @en Streamed body (low-level chunks)
|
|
16
|
+
*/
|
|
17
|
+
body: TBody;
|
|
18
|
+
/**
|
|
19
|
+
* @ru Финальный URL (после редиректов)
|
|
20
|
+
* @en Final resolved URL (after redirects)
|
|
21
|
+
*/
|
|
22
|
+
url: string;
|
|
23
|
+
/**
|
|
24
|
+
* @ru Сигнал для отслеживания abort (pipeline control)
|
|
25
|
+
* @en Optional signal for abort tracking (useful for pipeline control)
|
|
26
|
+
*/
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
/**
|
|
29
|
+
* @ru Content-Length если известен (zero-copy оптимизации)
|
|
30
|
+
* @en Content-Length if known (zero-copy optimizations)
|
|
31
|
+
*/
|
|
32
|
+
contentLength?: number;
|
|
33
|
+
/**
|
|
34
|
+
* @ru Hint кодировки (gzip/br/etc)
|
|
35
|
+
* @en Encoding hint (gzip/br/etc)
|
|
36
|
+
*/
|
|
37
|
+
encoding?: string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/Types/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,QAAQ;IAC9C;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAEvD;;;OAGG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/Types/stream.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface UrlPattern<T extends string = string> {
|
|
2
|
+
entity: string;
|
|
3
|
+
regex: RegExp;
|
|
4
|
+
groupNames: T[];
|
|
5
|
+
}
|
|
6
|
+
export interface UrlExtractorInterface {
|
|
7
|
+
registerPlatform(platform: string, patterns: UrlPattern[]): void;
|
|
8
|
+
extractId<T extends string | number>(url: string, entity: string, platform: string): Record<string, T>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=url-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-extractor.d.ts","sourceRoot":"","sources":["../../src/Types/url-extractor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEjE,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-extractor.js","sourceRoot":"","sources":["../../src/Types/url-extractor.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { HttpClientImproved,
|
|
1
|
+
export { CacheManager, HttpClientImproved, InterceptorManager, MetricsManager, QueueManager, RateLimiter, RequestBuilder, RequestExecutor, ResponseConverter, Request, PreparedRequest, UrlExtractor, } from "./Hyperttp/index.js";
|
|
2
2
|
export type * from "./Types/index.js";
|
|
3
|
-
export type * from "./Types/request.js";
|
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,mBAAmB,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UrlExtractor = exports.PreparedRequest = exports.Request = exports.
|
|
3
|
+
exports.UrlExtractor = exports.PreparedRequest = exports.Request = exports.ResponseConverter = exports.RequestExecutor = exports.RequestBuilder = exports.RateLimiter = exports.QueueManager = exports.MetricsManager = exports.InterceptorManager = exports.HttpClientImproved = exports.CacheManager = void 0;
|
|
4
4
|
var index_js_1 = require("./Hyperttp/index.js");
|
|
5
|
+
Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return index_js_1.CacheManager; } });
|
|
5
6
|
Object.defineProperty(exports, "HttpClientImproved", { enumerable: true, get: function () { return index_js_1.HttpClientImproved; } });
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
+
Object.defineProperty(exports, "InterceptorManager", { enumerable: true, get: function () { return index_js_1.InterceptorManager; } });
|
|
8
|
+
Object.defineProperty(exports, "MetricsManager", { enumerable: true, get: function () { return index_js_1.MetricsManager; } });
|
|
7
9
|
Object.defineProperty(exports, "QueueManager", { enumerable: true, get: function () { return index_js_1.QueueManager; } });
|
|
8
|
-
Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return index_js_1.CacheManager; } });
|
|
9
10
|
Object.defineProperty(exports, "RateLimiter", { enumerable: true, get: function () { return index_js_1.RateLimiter; } });
|
|
11
|
+
Object.defineProperty(exports, "RequestBuilder", { enumerable: true, get: function () { return index_js_1.RequestBuilder; } });
|
|
12
|
+
Object.defineProperty(exports, "RequestExecutor", { enumerable: true, get: function () { return index_js_1.RequestExecutor; } });
|
|
13
|
+
Object.defineProperty(exports, "ResponseConverter", { enumerable: true, get: function () { return index_js_1.ResponseConverter; } });
|
|
10
14
|
Object.defineProperty(exports, "Request", { enumerable: true, get: function () { return index_js_1.Request; } });
|
|
11
15
|
Object.defineProperty(exports, "PreparedRequest", { enumerable: true, get: function () { return index_js_1.PreparedRequest; } });
|
|
12
16
|
Object.defineProperty(exports, "UrlExtractor", { enumerable: true, get: function () { return index_js_1.UrlExtractor; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gDAa6B;AAZ3B,wGAAA,YAAY,OAAA;AACZ,8GAAA,kBAAkB,OAAA;AAClB,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AACjB,mGAAA,OAAO,OAAA;AACP,2GAAA,eAAe,OAAA;AACf,wGAAA,YAAY,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hyperttp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "A high-performance, universal HTTP client for Node.js with caching, retries, queueing, rate limiting, cookies and logging.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,10 +23,12 @@
|
|
|
23
23
|
"logger"
|
|
24
24
|
],
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"
|
|
26
|
+
"cheerio": "^1.2.0",
|
|
27
|
+
"fast-xml-builder": "^1.2.0",
|
|
28
|
+
"fast-xml-parser": "^5.8.0",
|
|
29
|
+
"http-cookie-agent": "^8.0.0",
|
|
30
|
+
"lru-cache": "^11.3.6",
|
|
27
31
|
"tough-cookie": "^6.0.1",
|
|
28
|
-
"
|
|
29
|
-
"fast-xml-parser": "^5.7.2",
|
|
30
|
-
"lru-cache": "^11.3.5"
|
|
32
|
+
"undici": "^8.2.0"
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ResponseType, LogLevel } from "../../Types";
|
|
2
|
-
/**
|
|
3
|
-
* @class ResponseTransformer
|
|
4
|
-
* @en Handles stream reading, decompression (Gzip/Brotli), and parsing (JSON/XML/Text).
|
|
5
|
-
* @ru Обрабатывает чтение стримов, декомпрессию (Gzip/Brotli) и парсинг (JSON/XML/Text).
|
|
6
|
-
*/
|
|
7
|
-
export declare class ResponseTransformer {
|
|
8
|
-
private maxResponseBytes;
|
|
9
|
-
private logger?;
|
|
10
|
-
private xmlParser;
|
|
11
|
-
constructor(maxResponseBytes?: number, logger?: ((level: LogLevel, message: string, meta?: any) => void) | undefined);
|
|
12
|
-
/**
|
|
13
|
-
* @en Reads the response stream into a Buffer while respecting the byte limit.
|
|
14
|
-
* @ru Читает поток ответа в Buffer с соблюдением лимита байтов.
|
|
15
|
-
* @throws {HttpClientError} If response size exceeds maxResponseBytes.
|
|
16
|
-
*/
|
|
17
|
-
readBodyWithLimit(body: any): Promise<Buffer>;
|
|
18
|
-
/**
|
|
19
|
-
* @en Decompresses the buffer based on the Content-Encoding header.
|
|
20
|
-
* @ru Декомпрессия данных (gzip, deflate, br) на основе заголовка Content-Encoding.
|
|
21
|
-
*/
|
|
22
|
-
decompress(buf: Buffer, enc?: string, charset?: BufferEncoding): Promise<string>;
|
|
23
|
-
/**
|
|
24
|
-
* @en Parses the decompressed text content into the requested format.
|
|
25
|
-
* @ru Основной метод парсинга ответа в указанный формат.
|
|
26
|
-
* @param res - Object containing status, headers and raw body buffer.
|
|
27
|
-
* @param responseType - Targeted format (json, xml, text, buffer, auto).
|
|
28
|
-
*/
|
|
29
|
-
parseResponse(res: {
|
|
30
|
-
status: number;
|
|
31
|
-
headers: Record<string, any>;
|
|
32
|
-
body: Buffer;
|
|
33
|
-
}, responseType?: ResponseType): Promise<any>;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=ResponseTransformer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseTransformer.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/ResponseTransformer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMtE;;;;GAIG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,SAAS,CAAY;gBAGnB,gBAAgB,GAAE,MAAoB,EACtC,MAAM,CAAC,GAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,aAAA;IAQzE;;;;OAIG;IACG,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBnD;;;OAGG;IACG,UAAU,CACd,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,GAAE,cAAwB,GAChC,OAAO,CAAC,MAAM,CAAC;IAoBlB;;;;;OAKG;IACG,aAAa,CACjB,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EACnE,YAAY,GAAE,YAAqB,GAClC,OAAO,CAAC,GAAG,CAAC;CAkEhB"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.ResponseTransformer = void 0;
|
|
40
|
-
const zlib = __importStar(require("zlib"));
|
|
41
|
-
const util_1 = require("util");
|
|
42
|
-
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
43
|
-
const fast_xml_builder_1 = __importDefault(require("fast-xml-builder"));
|
|
44
|
-
const Types_1 = require("../../Types");
|
|
45
|
-
const gunzip = (0, util_1.promisify)(zlib.gunzip);
|
|
46
|
-
const inflate = (0, util_1.promisify)(zlib.inflate);
|
|
47
|
-
const brotliDecompress = (0, util_1.promisify)(zlib.brotliDecompress);
|
|
48
|
-
/**
|
|
49
|
-
* @class ResponseTransformer
|
|
50
|
-
* @en Handles stream reading, decompression (Gzip/Brotli), and parsing (JSON/XML/Text).
|
|
51
|
-
* @ru Обрабатывает чтение стримов, декомпрессию (Gzip/Brotli) и парсинг (JSON/XML/Text).
|
|
52
|
-
*/
|
|
53
|
-
class ResponseTransformer {
|
|
54
|
-
maxResponseBytes;
|
|
55
|
-
logger;
|
|
56
|
-
xmlParser;
|
|
57
|
-
constructor(maxResponseBytes = 1024 * 1024, logger) {
|
|
58
|
-
this.maxResponseBytes = maxResponseBytes;
|
|
59
|
-
this.logger = logger;
|
|
60
|
-
this.xmlParser = new fast_xml_parser_1.XMLParser({
|
|
61
|
-
ignoreAttributes: false,
|
|
62
|
-
allowBooleanAttributes: true,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @en Reads the response stream into a Buffer while respecting the byte limit.
|
|
67
|
-
* @ru Читает поток ответа в Buffer с соблюдением лимита байтов.
|
|
68
|
-
* @throws {HttpClientError} If response size exceeds maxResponseBytes.
|
|
69
|
-
*/
|
|
70
|
-
async readBodyWithLimit(body) {
|
|
71
|
-
const chunks = [];
|
|
72
|
-
let receivedBytes = 0;
|
|
73
|
-
for await (const chunk of body) {
|
|
74
|
-
receivedBytes += chunk.length;
|
|
75
|
-
if (this.maxResponseBytes > 0 && receivedBytes > this.maxResponseBytes) {
|
|
76
|
-
if (typeof body.destroy === "function")
|
|
77
|
-
body.destroy();
|
|
78
|
-
throw new Types_1.HttpClientError(`Response size limit exceeded (${this.maxResponseBytes} bytes)`, "HTTP_ERROR", 0);
|
|
79
|
-
}
|
|
80
|
-
chunks.push(Buffer.from(chunk));
|
|
81
|
-
}
|
|
82
|
-
return Buffer.concat(chunks);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* @en Decompresses the buffer based on the Content-Encoding header.
|
|
86
|
-
* @ru Декомпрессия данных (gzip, deflate, br) на основе заголовка Content-Encoding.
|
|
87
|
-
*/
|
|
88
|
-
async decompress(buf, enc, charset = "utf-8") {
|
|
89
|
-
if (!enc || buf.length === 0)
|
|
90
|
-
return buf.toString(charset);
|
|
91
|
-
try {
|
|
92
|
-
switch (enc.toLowerCase()) {
|
|
93
|
-
case "gzip":
|
|
94
|
-
return (await gunzip(buf)).toString(charset);
|
|
95
|
-
case "deflate":
|
|
96
|
-
return (await inflate(buf)).toString(charset);
|
|
97
|
-
case "br":
|
|
98
|
-
return (await brotliDecompress(buf)).toString(charset);
|
|
99
|
-
default:
|
|
100
|
-
return buf.toString(charset);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
this.logger?.("error", `Decompression failed for encoding ${enc}`, error);
|
|
105
|
-
return buf.toString(charset);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* @en Parses the decompressed text content into the requested format.
|
|
110
|
-
* @ru Основной метод парсинга ответа в указанный формат.
|
|
111
|
-
* @param res - Object containing status, headers and raw body buffer.
|
|
112
|
-
* @param responseType - Targeted format (json, xml, text, buffer, auto).
|
|
113
|
-
*/
|
|
114
|
-
async parseResponse(res, responseType = "auto") {
|
|
115
|
-
try {
|
|
116
|
-
const text = await this.decompress(res.body, res.headers["content-encoding"]);
|
|
117
|
-
const trimmed = text.trim();
|
|
118
|
-
switch (responseType) {
|
|
119
|
-
case "json": {
|
|
120
|
-
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
121
|
-
return JSON.parse(trimmed);
|
|
122
|
-
}
|
|
123
|
-
if (trimmed.startsWith("<")) {
|
|
124
|
-
return this.xmlParser.parse(trimmed);
|
|
125
|
-
}
|
|
126
|
-
return { data: trimmed };
|
|
127
|
-
}
|
|
128
|
-
case "xml": {
|
|
129
|
-
if (trimmed.startsWith("<"))
|
|
130
|
-
return trimmed;
|
|
131
|
-
try {
|
|
132
|
-
const obj = JSON.parse(trimmed);
|
|
133
|
-
const builder = new fast_xml_builder_1.default({
|
|
134
|
-
format: true,
|
|
135
|
-
indentBy: " ",
|
|
136
|
-
ignoreAttributes: false,
|
|
137
|
-
});
|
|
138
|
-
return builder.build(obj);
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
return text;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
case "text":
|
|
145
|
-
return text;
|
|
146
|
-
case "buffer":
|
|
147
|
-
return res.body;
|
|
148
|
-
case "auto":
|
|
149
|
-
default: {
|
|
150
|
-
const contentType = (res.headers["content-type"] || "").toLowerCase();
|
|
151
|
-
if (contentType.includes("json") ||
|
|
152
|
-
trimmed.startsWith("{") ||
|
|
153
|
-
trimmed.startsWith("[")) {
|
|
154
|
-
try {
|
|
155
|
-
return JSON.parse(trimmed);
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
return text;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return text;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch (err) {
|
|
166
|
-
throw new Types_1.HttpClientError(`Parsing failed: ${err?.message ?? String(err)}`, "PARSING_ERROR", res.status);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
exports.ResponseTransformer = ResponseTransformer;
|
|
171
|
-
//# sourceMappingURL=ResponseTransformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseTransformer.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/ResponseTransformer.ts"],"names":[],"mappings":"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"}
|