@hyperttp/core 1.1.12 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/Core/HyperCore.d.ts +173 -8
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +329 -100
  4. package/Core/HyperCore.js.map +1 -1
  5. package/Core/index.d.ts +0 -1
  6. package/Core/index.d.ts.map +1 -1
  7. package/Core/index.js +0 -1
  8. package/Core/index.js.map +1 -1
  9. package/LICENSE +21 -0
  10. package/README.md +178 -0
  11. package/defaultConfig.d.ts +1 -1
  12. package/defaultConfig.d.ts.map +1 -1
  13. package/defaultConfig.js +0 -1
  14. package/defaultConfig.js.map +1 -1
  15. package/index.d.ts +1 -4
  16. package/index.d.ts.map +1 -1
  17. package/index.js +1 -1
  18. package/index.js.map +1 -1
  19. package/package.json +20 -6
  20. package/transports/node.d.ts +18 -7
  21. package/transports/node.d.ts.map +1 -1
  22. package/transports/node.js +255 -142
  23. package/transports/node.js.map +1 -1
  24. package/utils/errors.d.ts +49 -0
  25. package/utils/errors.d.ts.map +1 -0
  26. package/utils/errors.js +63 -0
  27. package/utils/errors.js.map +1 -0
  28. package/utils/merge.d.ts +8 -1
  29. package/utils/merge.d.ts.map +1 -1
  30. package/utils/merge.js +27 -13
  31. package/utils/merge.js.map +1 -1
  32. package/utils/response.d.ts +40 -0
  33. package/utils/response.d.ts.map +1 -0
  34. package/utils/response.js +79 -0
  35. package/utils/response.js.map +1 -0
  36. package/utils/retryUtils.d.ts +5 -0
  37. package/utils/retryUtils.d.ts.map +1 -0
  38. package/utils/retryUtils.js +35 -0
  39. package/utils/retryUtils.js.map +1 -0
  40. package/Core/RequestExecutor.d.ts +0 -64
  41. package/Core/RequestExecutor.d.ts.map +0 -1
  42. package/Core/RequestExecutor.js +0 -213
  43. package/Core/RequestExecutor.js.map +0 -1
  44. package/transports/bun.d.ts +0 -16
  45. package/transports/bun.d.ts.map +0 -1
  46. package/transports/bun.js +0 -181
  47. package/transports/bun.js.map +0 -1
  48. package/types/errors.d.ts +0 -20
  49. package/types/errors.d.ts.map +0 -1
  50. package/types/errors.js +0 -28
  51. package/types/errors.js.map +0 -1
  52. package/types/http.d.ts +0 -5
  53. package/types/http.d.ts.map +0 -1
  54. package/types/http.js +0 -2
  55. package/types/http.js.map +0 -1
  56. package/types/hyper.d.ts +0 -34
  57. package/types/hyper.d.ts.map +0 -1
  58. package/types/hyper.js +0 -2
  59. package/types/hyper.js.map +0 -1
  60. package/types/index.d.ts +0 -12
  61. package/types/index.d.ts.map +0 -1
  62. package/types/index.js +0 -12
  63. package/types/index.js.map +0 -1
  64. package/types/metrics.d.ts +0 -65
  65. package/types/metrics.d.ts.map +0 -1
  66. package/types/metrics.js +0 -2
  67. package/types/metrics.js.map +0 -1
  68. package/types/network.d.ts +0 -65
  69. package/types/network.d.ts.map +0 -1
  70. package/types/network.js +0 -2
  71. package/types/network.js.map +0 -1
  72. package/types/options.d.ts +0 -51
  73. package/types/options.d.ts.map +0 -1
  74. package/types/options.js +0 -2
  75. package/types/options.js.map +0 -1
  76. package/types/plugins.d.ts +0 -47
  77. package/types/plugins.d.ts.map +0 -1
  78. package/types/plugins.js +0 -2
  79. package/types/plugins.js.map +0 -1
  80. package/types/request.d.ts +0 -114
  81. package/types/request.d.ts.map +0 -1
  82. package/types/request.js +0 -2
  83. package/types/request.js.map +0 -1
  84. package/types/retry.d.ts +0 -28
  85. package/types/retry.d.ts.map +0 -1
  86. package/types/retry.js +0 -2
  87. package/types/retry.js.map +0 -1
  88. package/types/stream.d.ts +0 -39
  89. package/types/stream.d.ts.map +0 -1
  90. package/types/stream.js +0 -2
  91. package/types/stream.js.map +0 -1
  92. package/types/transport.d.ts +0 -25
  93. package/types/transport.d.ts.map +0 -1
  94. package/types/transport.js +0 -2
  95. package/types/transport.js.map +0 -1
package/transports/bun.js DELETED
@@ -1,181 +0,0 @@
1
- function fastGetHostname(url) {
2
- const start = url.indexOf("//") + 2;
3
- if (start === 1)
4
- return "localhost";
5
- let end = url.indexOf("/", start);
6
- if (end === -1)
7
- end = url.indexOf("?", start);
8
- if (end === -1)
9
- end = url.length;
10
- const host = url.slice(start, end);
11
- const portIdx = host.indexOf(":");
12
- return portIdx !== -1 ? host.slice(0, portIdx) : host;
13
- }
14
- export class BunTransport {
15
- cookieJar = new Map();
16
- config;
17
- cookieCache = new Map();
18
- activeRequests = 0;
19
- concurrencyQueue = [];
20
- constructor(config) {
21
- this.config = config;
22
- }
23
- async execute(req) {
24
- const netConfig = this.config.network;
25
- const maxConcurrent = netConfig?.maxConcurrent ?? 0;
26
- if (maxConcurrent > 0 && this.activeRequests >= maxConcurrent) {
27
- await new Promise((resolve) => {
28
- this.concurrencyQueue.push(resolve);
29
- });
30
- }
31
- this.activeRequests++;
32
- try {
33
- const domain = fastGetHostname(req.url);
34
- let headers = req.headers;
35
- let hasCloned = false;
36
- if (netConfig?.userAgent &&
37
- !headers["User-Agent"] &&
38
- !headers["user-agent"]) {
39
- headers = { ...headers, "User-Agent": netConfig.userAgent };
40
- hasCloned = true;
41
- }
42
- const savedCookies = this.getCookiesForDomain(domain);
43
- if (savedCookies) {
44
- if (!hasCloned)
45
- headers = { ...headers };
46
- const currentCookie = headers["Cookie"];
47
- headers["Cookie"] = currentCookie
48
- ? `${Array.isArray(currentCookie) ? currentCookie.join("; ") : currentCookie}; ${savedCookies}`
49
- : savedCookies;
50
- }
51
- let signal = req.signal;
52
- if (netConfig?.timeout && netConfig.timeout > 0) {
53
- const timeoutSignal = AbortSignal.timeout(netConfig.timeout);
54
- signal = req.signal
55
- ? AbortSignal.any([req.signal, timeoutSignal])
56
- : timeoutSignal;
57
- }
58
- const fetchHeaders = {};
59
- for (const key in headers) {
60
- const val = headers[key];
61
- if (val !== undefined) {
62
- fetchHeaders[key] = Array.isArray(val) ? val.join(", ") : val;
63
- }
64
- }
65
- const response = await fetch(req.url, {
66
- method: req.method,
67
- headers: fetchHeaders,
68
- body: req.body,
69
- signal: signal,
70
- keepalive: !!netConfig?.keepAliveTimeout,
71
- redirect: "manual",
72
- });
73
- const setCookies = response.headers.getSetCookie();
74
- if (setCookies && setCookies.length > 0) {
75
- this.updateCookies(domain, setCookies);
76
- }
77
- const responseHeaders = {};
78
- response.headers.forEach((value, key) => {
79
- responseHeaders[key] = value;
80
- });
81
- const body = response.body;
82
- if (body) {
83
- Object.defineProperty(body, "dump", {
84
- value: async function () {
85
- if (this.locked)
86
- return;
87
- const reader = this.getReader();
88
- try {
89
- while (!(await reader.read()).done) {
90
- for await (const chunk of this) {
91
- void chunk;
92
- }
93
- }
94
- }
95
- catch {
96
- // ignore
97
- }
98
- finally {
99
- await reader.cancel();
100
- }
101
- },
102
- writable: true,
103
- configurable: true,
104
- enumerable: false,
105
- });
106
- }
107
- return {
108
- status: response.status,
109
- headers: responseHeaders,
110
- body: body,
111
- url: response.url,
112
- };
113
- }
114
- finally {
115
- this.activeRequests--;
116
- const nextResolver = this.concurrencyQueue.shift();
117
- if (nextResolver)
118
- nextResolver();
119
- }
120
- }
121
- getCookiesForDomain(requestDomain) {
122
- if (this.cookieCache.has(requestDomain)) {
123
- return this.cookieCache.get(requestDomain);
124
- }
125
- const matchedCookies = [];
126
- for (const [storedDomain, cookiesMap] of this.cookieJar) {
127
- if (requestDomain === storedDomain ||
128
- requestDomain.endsWith("." + storedDomain)) {
129
- for (const [key, val] of cookiesMap) {
130
- matchedCookies.push(`${key}=${val}`);
131
- }
132
- }
133
- }
134
- const result = matchedCookies.length > 0 ? matchedCookies.join("; ") : "";
135
- this.cookieCache.set(requestDomain, result);
136
- return result;
137
- }
138
- updateCookies(requestDomain, setCookies) {
139
- for (let i = 0; i < setCookies.length; i++) {
140
- const cookieStr = setCookies[i];
141
- const parts = cookieStr.split(";");
142
- const rawPair = parts[0];
143
- const equalIdx = rawPair.indexOf("=");
144
- if (equalIdx === -1)
145
- continue;
146
- const key = rawPair.slice(0, equalIdx).trim();
147
- const val = rawPair.slice(equalIdx + 1).trim();
148
- if (!key)
149
- continue;
150
- let targetDomain = requestDomain;
151
- for (let j = 1; j < parts.length; j++) {
152
- const attr = parts[j].trim();
153
- if (attr.toLowerCase().startsWith("domain=")) {
154
- let domVal = attr.slice(7).trim();
155
- if (domVal.startsWith(".")) {
156
- domVal = domVal.slice(1);
157
- }
158
- if (domVal)
159
- targetDomain = domVal;
160
- break;
161
- }
162
- }
163
- let domainMap = this.cookieJar.get(targetDomain);
164
- if (!domainMap) {
165
- domainMap = new Map();
166
- this.cookieJar.set(targetDomain, domainMap);
167
- }
168
- domainMap.set(key, val);
169
- this.cookieCache.clear();
170
- }
171
- }
172
- async close() {
173
- this.concurrencyQueue = [];
174
- this.cookieJar.clear();
175
- this.cookieCache.clear();
176
- }
177
- async destroy() {
178
- await this.close();
179
- }
180
- }
181
- //# sourceMappingURL=bun.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/transports/bun.ts"],"names":[],"mappings":"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"}
package/types/errors.d.ts DELETED
@@ -1,20 +0,0 @@
1
- export declare class HttpClientError extends Error {
2
- code: string;
3
- statusCode?: number | undefined;
4
- originalError?: Error | undefined;
5
- url?: string | undefined;
6
- method?: string | undefined;
7
- constructor(message: string, code?: string, statusCode?: number | undefined, originalError?: Error | undefined, url?: string | undefined, method?: string | undefined);
8
- }
9
- export declare class TimeoutError extends HttpClientError {
10
- constructor(url: string, timeout: number);
11
- }
12
- export declare class RateLimitError extends HttpClientError {
13
- constructor(url: string, retryAfter?: number);
14
- }
15
- export interface HyperttpError extends Error {
16
- code?: string;
17
- status?: number;
18
- statusCode?: number;
19
- }
20
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,IAAI,EAAE,MAAM;IACZ,UAAU,CAAC,EAAE,MAAM;IACnB,aAAa,CAAC,EAAE,KAAK;IACrB,GAAG,CAAC,EAAE,MAAM;IACZ,MAAM,CAAC,EAAE,MAAM;gBALtB,OAAO,EAAE,MAAM,EACR,IAAI,GAAE,MAAqB,EAC3B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,aAAa,CAAC,EAAE,KAAK,YAAA,EACrB,GAAG,CAAC,EAAE,MAAM,YAAA,EACZ,MAAM,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED,qBAAa,YAAa,SAAQ,eAAe;gBACnC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIzC;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAS7C;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
package/types/errors.js DELETED
@@ -1,28 +0,0 @@
1
- export class HttpClientError extends Error {
2
- code;
3
- statusCode;
4
- originalError;
5
- url;
6
- method;
7
- constructor(message, code = "HTTP_ERROR", statusCode, originalError, url, method) {
8
- super(message);
9
- this.code = code;
10
- this.statusCode = statusCode;
11
- this.originalError = originalError;
12
- this.url = url;
13
- this.method = method;
14
- this.name = "HttpClientError";
15
- }
16
- }
17
- export class TimeoutError extends HttpClientError {
18
- constructor(url, timeout) {
19
- super(`Timeout after ${timeout}ms`, "TIMEOUT", 408, undefined, url);
20
- this.name = "TimeoutError";
21
- }
22
- }
23
- export class RateLimitError extends HttpClientError {
24
- constructor(url, retryAfter) {
25
- super(`Rate limited${retryAfter ? ` retry in ${retryAfter}ms` : ""}`, "RATE_LIMIT", 429, undefined, url);
26
- }
27
- }
28
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAG/B;IACA;IACA;IACA;IACA;IANT,YACE,OAAe,EACR,OAAe,YAAY,EAC3B,UAAmB,EACnB,aAAqB,EACrB,GAAY,EACZ,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QANR,SAAI,GAAJ,IAAI,CAAuB;QAC3B,eAAU,GAAV,UAAU,CAAS;QACnB,kBAAa,GAAb,aAAa,CAAQ;QACrB,QAAG,GAAH,GAAG,CAAS;QACZ,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C,YAAY,GAAW,EAAE,OAAe;QACtC,KAAK,CAAC,iBAAiB,OAAO,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD,YAAY,GAAW,EAAE,UAAmB;QAC1C,KAAK,CACH,eAAe,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9D,YAAY,EACZ,GAAG,EACH,SAAS,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;CACF"}
package/types/http.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export type LogLevel = "debug" | "info" | "warn" | "error";
2
- export type Method = "GET" | "POST" | "PUT" | "PATCH" | "OPTIONS" | "DELETE" | "HEAD";
3
- export type ResponseType = "auto" | "json" | "text" | "xml" | "html" | "buffer" | "stream" | "blob";
4
- export type SourceType = "json" | "xml" | "html" | "text" | "buffer";
5
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/types/http.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,MAAM,GACd,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC"}
package/types/http.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=http.js.map
package/types/http.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/types/http.ts"],"names":[],"mappings":""}
package/types/hyper.d.ts DELETED
@@ -1,34 +0,0 @@
1
- import type { Method, ResponseType } from "./http.js";
2
- import type { RequestBodyData } from "./request.js";
3
- export interface InternalRequest {
4
- method: Method;
5
- url: string;
6
- headers: Record<string, string | string[]>;
7
- body?: RequestBodyData;
8
- signal?: AbortSignal;
9
- meta?: {
10
- timings?: {
11
- networkMs?: number;
12
- };
13
- responseType?: ResponseType;
14
- };
15
- }
16
- export interface Cloneable<T> {
17
- clone(): T;
18
- }
19
- export interface HttpResponse<T = any> extends Cloneable<HttpResponse<T>> {
20
- status: number;
21
- headers: Record<string, any>;
22
- url?: string;
23
- body: T;
24
- clone(): HttpResponse<T>;
25
- }
26
- export interface HyperStats {
27
- inflightRequests?: number;
28
- cacheSize?: number;
29
- queuedRequests?: number;
30
- activeQueue?: number;
31
- rateLimitHits?: number;
32
- [key: string]: any;
33
- }
34
- //# sourceMappingURL=hyper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyper.d.ts","sourceRoot":"","sources":["../../src/types/hyper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC,EAAE,eAAe,CAAC;IAEvB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
package/types/hyper.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hyper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyper.js","sourceRoot":"","sources":["../../src/types/hyper.ts"],"names":[],"mappings":""}
package/types/index.d.ts DELETED
@@ -1,12 +0,0 @@
1
- export * from "./errors.js";
2
- export * from "./http.js";
3
- export * from "./hyper.js";
4
- export * from "./metrics.js";
5
- export * from "./network.js";
6
- export * from "./options.js";
7
- export * from "./plugins.js";
8
- export * from "./request.js";
9
- export * from "./retry.js";
10
- export * from "./stream.js";
11
- export * from "./transport.js";
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
package/types/index.js DELETED
@@ -1,12 +0,0 @@
1
- export * from "./errors.js";
2
- export * from "./http.js";
3
- export * from "./hyper.js";
4
- export * from "./metrics.js";
5
- export * from "./network.js";
6
- export * from "./options.js";
7
- export * from "./plugins.js";
8
- export * from "./request.js";
9
- export * from "./retry.js";
10
- export * from "./stream.js";
11
- export * from "./transport.js";
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
@@ -1,65 +0,0 @@
1
- import { HyperPlugin } from "./plugins.js";
2
- export interface RequestMetrics {
3
- /**
4
- * @ru Время начала запроса (timestamp)
5
- * @en Request start time (timestamp)
6
- */
7
- startTime: number;
8
- /**
9
- * @ru Время окончания запроса (timestamp)
10
- * @en Request end time (timestamp)
11
- */
12
- endTime: number;
13
- /**
14
- * @ru Длительность запроса (мс)
15
- * @en Request duration (ms)
16
- */
17
- duration: number;
18
- /**
19
- * @ru HTTP статус код ответа
20
- * @en HTTP status code of response
21
- */
22
- statusCode?: number;
23
- /**
24
- * @ru Количество полученных байт
25
- * @en Bytes received
26
- */
27
- bytesReceived: number;
28
- /**
29
- * @ru Количество отправленных байт
30
- * @en Bytes sent
31
- */
32
- bytesSent: number;
33
- /**
34
- * @ru Количество повторных попыток
35
- * @en Number of retries performed
36
- */
37
- retries: number;
38
- /**
39
- * @ru Ответ из кэша
40
- * @en Response served from cache
41
- */
42
- cached: boolean;
43
- /**
44
- * @ru URL запроса
45
- * @en Request URL
46
- */
47
- url: string;
48
- /**
49
- * @ru HTTP метод запроса
50
- * @en HTTP method
51
- */
52
- method: string;
53
- /**
54
- * @ru Хэш тела запроса (для кэширования)
55
- * @en Request body hash (for caching)
56
- */
57
- bodyHash?: string;
58
- plugins?: Map<string, HyperPlugin>;
59
- stages?: {
60
- serializationMs?: number;
61
- networkMs?: number;
62
- parsingMs?: number;
63
- };
64
- }
65
- //# sourceMappingURL=metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/types/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEnC,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
package/types/metrics.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/types/metrics.ts"],"names":[],"mappings":""}
@@ -1,65 +0,0 @@
1
- export interface NetworkOptions {
2
- /**
3
- * @ru Таймаут запроса (мс)
4
- * @en Request timeout in milliseconds
5
- */
6
- timeout?: number;
7
- /**
8
- * @ru Максимум одновременных запросов. 0 = без лимита
9
- * @en Maximum concurrent requests. 0 = unlimited
10
- */
11
- maxConcurrent?: number;
12
- /**
13
- * @ru Количество pipelined запросов на соединение
14
- * @en Number of pipelined requests per connection
15
- */
16
- pipelining?: number;
17
- /**
18
- * @ru Таймаут keep-alive соединения (мс)
19
- * @en Keep-alive connection timeout in milliseconds
20
- */
21
- keepAliveTimeout?: number;
22
- /**
23
- * @ru Отклонять недоверенные SSL сертификаты
24
- * @en Reject unauthorized SSL certificates
25
- */
26
- rejectUnauthorized?: boolean;
27
- /**
28
- * @ru Следовать за редиректами
29
- * @en Follow HTTP redirects
30
- */
31
- followRedirects?: boolean;
32
- /**
33
- * @ru Максимум редиректов
34
- * @en Maximum number of redirects to follow
35
- */
36
- maxRedirects?: number;
37
- /**
38
- * @ru Максимальный размер ответа (байты)
39
- * @en Maximum response body size in bytes
40
- */
41
- maxResponseBytes?: number;
42
- /**
43
- * @ru Переключение режима HTTP/2 и HTTP/1.1
44
- * @en Switching between HTTP/2 and HTTP/1.1 modes
45
- */
46
- allowHttp2?: boolean;
47
- /**
48
- * @ru User-Agent заголовок
49
- * @en User-Agent header string
50
- */
51
- userAgent?: string;
52
- /**
53
- * @ru Базовые заголовки по умолчанию для всех запросов
54
- * @en Default base headers sent with every request
55
- */
56
- headers?: Record<string, string | string[]>;
57
- /**
58
- * @ru Функция валидации HTTP статуса
59
- * @en Function to validate HTTP status code
60
- * @param status - HTTP status code
61
- * @returns `true` if status is valid
62
- */
63
- validateStatus?: (status: number) => boolean;
64
- }
65
- //# sourceMappingURL=network.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/types/network.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C"}
package/types/network.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=network.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/types/network.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
1
- import type { LogLevel } from "./http.js";
2
- import type { NetworkOptions } from "./network.js";
3
- import type { HyperPlugin } from "./plugins.js";
4
- import { RetryOptions } from "./retry.js";
5
- /**
6
- * @ru Интерфейс-расширение для модулей экосистемы Hyperttp.
7
- * @en Extension interface for Hyperttp ecosystem modules.
8
- */
9
- export interface HyperttpPluginsExtension {
10
- /** Internal brand to prevent empty interface lint errors */
11
- readonly _hyperttpBrand?: never;
12
- }
13
- /**
14
- * @ru Базовые настройки HTTP-клиента, входящие в состав основного ядра.
15
- * @en Core HTTP client configuration options always available in the engine.
16
- */
17
- export interface BaseHttpClientOptions {
18
- /**
19
- * @ru Базовые настройки сети (таймауты, заголовки, keep-alive)
20
- * @en Base network configuration (timeouts, headers, keep-alive)
21
- */
22
- network?: Partial<NetworkOptions>;
23
- retry?: Partial<RetryOptions>;
24
- /**
25
- * @ru Кастомная функция логирования работы клиента
26
- * @en Custom logging function for client operations
27
- * @param level - @ru Уровень логирования @en Log level
28
- * @param message - @ru Текст лога @en Log message
29
- * @param meta - @ru Дополнительные метаданные @en Additional metadata
30
- */
31
- logger?: (level: LogLevel, message: string, meta?: unknown) => void;
32
- /**
33
- * @ru Режим подробного (verbose) логирования в консоль
34
- * @en Enable verbose logging output to the console
35
- */
36
- verbose?: boolean;
37
- /**
38
- * @ru Список путей к папкам для автоматического сканирования и ленивой загрузки локальных плагинов
39
- * @en List of directory paths for automatic scanning and lazy loading of local plugins
40
- */
41
- pluginDirs?: string[];
42
- /**
43
- * @ru Список явно подключенных плагинов (готовые объекты или строки с именами npm-пакетов)
44
- * @en List of explicitly registered plugins (direct objects or npm package name strings)
45
- */
46
- plugins?: (HyperPlugin | string)[];
47
- trackMetrics?: any;
48
- }
49
- export interface HttpClientOptions extends BaseHttpClientOptions, HyperttpPluginsExtension {
50
- }
51
- //# sourceMappingURL=options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAElC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;IAEnC,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,iBACf,SAAQ,qBAAqB,EAAE,wBAAwB;CAAG"}
package/types/options.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- import type { HttpClientOptions } from "./options.js";
2
- import type { HttpResponse, InternalRequest } from "./hyper.js";
3
- import { HyperCore } from "../Core/HyperCore.js";
4
- /**
5
- * Фазы жизненного цикла, определяющие строгий порядок выполнения в "луковичной" (onion) архитектуре.
6
- * Запрос движется снаружи внутрь: от мониторинга к сети (START -> PREPARE -> CONTROL -> FORMAT -> NETWORK).
7
- * Ответ возвращается в обратном порядке: изнутри наружу (NETWORK -> FORMAT -> CONTROL -> PREPARE -> START).
8
- */
9
- export type PluginPhase = "START" | "PREPARE" | "CONTROL" | "FORMAT" | "NETWORK";
10
- /**
11
- * Единый неизменяемый контекст для плагина.
12
- * Передача одного и того же ссылочного объекта экономит аллокации при сборке луковицы.
13
- */
14
- export interface PluginContext {
15
- readonly config: HttpClientOptions;
16
- readonly core: HyperCore;
17
- }
18
- /**
19
- * Сигнатура функции диспетчеризации запроса.
20
- */
21
- export type DispatchFn = <T = unknown>(req: InternalRequest) => Promise<HttpResponse<T>>;
22
- /**
23
- * Функция-обертка (декоратор) для диспетчера.
24
- * Принимает ссылку на следующий слой луковицы (`next`) и контекст клиента.
25
- */
26
- export type WrapDispatch = (next: DispatchFn, ctx: PluginContext) => DispatchFn;
27
- /**
28
- * Единый интерфейс для создания плагинов Hyperttp.
29
- * Любой внешний пакет (cache, metrics) обязан реализовать этот контракт.
30
- */
31
- export interface HyperPlugin {
32
- /** Уникальное имя плагина для логирования и предотвращения дублирования */
33
- readonly name: string;
34
- /** Фаза, определяющая место плагина в конвейере выполнения */
35
- readonly phase: PluginPhase;
36
- /** Динамическая проверка: должен ли плагин активироваться на основе переданного конфига */
37
- enabled: (config: HttpClientOptions) => boolean;
38
- /**
39
- * Хук инициализации. Теперь принимает тот же PluginContext, что и wrapDispatch.
40
- */
41
- setup?: (ctx: PluginContext) => void;
42
- /**
43
- * Чистая функция-обертка для конвейера запросов.
44
- */
45
- wrapDispatch?: WrapDispatch;
46
- }
47
- //# sourceMappingURL=plugins.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/types/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,OAAO,EACnC,GAAG,EAAE,eAAe,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,KAAK,UAAU,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B,2FAA2F;IAC3F,OAAO,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAErC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B"}
package/types/plugins.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/types/plugins.ts"],"names":[],"mappings":""}