@hyperttp/core 1.3.1 → 1.4.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 (46) hide show
  1. package/Core/HyperCore.d.ts +135 -77
  2. package/Core/HyperCore.d.ts.map +1 -1
  3. package/Core/HyperCore.js +280 -246
  4. package/Core/HyperCore.js.map +1 -1
  5. package/README.md +169 -96
  6. package/package.json +14 -8
  7. package/transports/browser.d.ts +228 -0
  8. package/transports/browser.d.ts.map +1 -0
  9. package/transports/browser.js +451 -0
  10. package/transports/browser.js.map +1 -0
  11. package/transports/manager.d.ts +9 -85
  12. package/transports/manager.d.ts.map +1 -1
  13. package/transports/manager.js +152 -222
  14. package/transports/manager.js.map +1 -1
  15. package/transports/node.d.ts +4 -36
  16. package/transports/node.d.ts.map +1 -1
  17. package/transports/node.js +119 -159
  18. package/transports/node.js.map +1 -1
  19. package/utils/decompress.d.ts +16 -20
  20. package/utils/decompress.d.ts.map +1 -1
  21. package/utils/decompress.js +151 -60
  22. package/utils/decompress.js.map +1 -1
  23. package/utils/errors.d.ts +0 -10
  24. package/utils/errors.d.ts.map +1 -1
  25. package/utils/errors.js +1 -11
  26. package/utils/errors.js.map +1 -1
  27. package/utils/merge.d.ts +0 -3
  28. package/utils/merge.d.ts.map +1 -1
  29. package/utils/merge.js +12 -22
  30. package/utils/merge.js.map +1 -1
  31. package/utils/normalize.d.ts +40 -21
  32. package/utils/normalize.d.ts.map +1 -1
  33. package/utils/normalize.js +217 -138
  34. package/utils/normalize.js.map +1 -1
  35. package/utils/pipeline.d.ts +10 -30
  36. package/utils/pipeline.d.ts.map +1 -1
  37. package/utils/pipeline.js +44 -44
  38. package/utils/pipeline.js.map +1 -1
  39. package/utils/response.d.ts +105 -23
  40. package/utils/response.d.ts.map +1 -1
  41. package/utils/response.js +308 -38
  42. package/utils/response.js.map +1 -1
  43. package/utils/retryUtils.d.ts +2 -10
  44. package/utils/retryUtils.d.ts.map +1 -1
  45. package/utils/retryUtils.js +17 -21
  46. package/utils/retryUtils.js.map +1 -1
@@ -1,23 +1,12 @@
1
- import { pathToFileURL } from "node:url";
2
- import resolveFrom from "resolve-from";
3
- import { mapResponseFast, mapStreamFast } from "../utils/response.js";
4
- /**
5
- * @ru Определение текущей среды выполнения (Bun или Node) на основе глобальных объектов.
6
- * @en Detects the current runtime (Bun or Node) based on global objects.
7
- */
8
- export const CURRENT_RUNTIME = typeof Bun !== "undefined" ? "bun" : "node";
9
- /**
10
- * @ru Возвращает текущую среду выполнения.
11
- * @en Returns the current runtime.
12
- * @returns The current runtime ('bun' or 'node').
13
- */
14
- export function getRuntime() {
15
- return CURRENT_RUNTIME;
16
- }
17
- /**
18
- * @ru Список доступных транспортов с приоритетами. Высший приоритет — предпочтительный транспорт для рантайма.
19
- * @en List of available transports with priorities. Higher priority means preferred transport for the runtime.
20
- */
1
+ export const CURRENT_RUNTIME = (() => {
2
+ if (typeof Bun !== "undefined")
3
+ return "bun";
4
+ if (typeof Deno !== "undefined")
5
+ return "deno";
6
+ if (typeof process !== "undefined" && process.versions?.node)
7
+ return "node";
8
+ return "browser";
9
+ })();
21
10
  export const TRANSPORTS = [
22
11
  {
23
12
  name: "Bun",
@@ -26,6 +15,13 @@ export const TRANSPORTS = [
26
15
  export: "BunTransport",
27
16
  priority: 100,
28
17
  },
18
+ {
19
+ name: "Deno",
20
+ runtime: ["deno"],
21
+ pkg: "@hyperttp/transport-deno",
22
+ export: "DenoTransport",
23
+ priority: 95,
24
+ },
29
25
  {
30
26
  name: "Undici",
31
27
  runtime: ["node"],
@@ -33,260 +29,194 @@ export const TRANSPORTS = [
33
29
  export: "UndiciTransport",
34
30
  priority: 90,
35
31
  },
32
+ {
33
+ name: "Browser",
34
+ runtime: ["browser"],
35
+ pkg: "../transports/browser.js",
36
+ export: "BrowserTransport",
37
+ priority: 80,
38
+ },
36
39
  {
37
40
  name: "Node",
38
- runtime: ["node", "bun"],
41
+ runtime: ["node", "bun", "deno"],
39
42
  pkg: "../transports/node.js",
40
43
  export: "NodeTransport",
41
44
  priority: 10,
42
45
  },
43
46
  ];
44
- /**
45
- * @ru Кэш кандидатов транспорта для каждого рантайма, отсортированных по убыванию приоритета.
46
- * @en Cache of transport candidates per runtime, sorted by descending priority.
47
- */
48
- const CANDIDATES_MAP = {
49
- node: TRANSPORTS.filter((t) => t.runtime.includes("node")).sort((a, b) => b.priority - a.priority),
50
- bun: TRANSPORTS.filter((t) => t.runtime.includes("bun")).sort((a, b) => b.priority - a.priority),
51
- };
52
- /**
53
- * @ru Глобальный кэш загруженных классов транспорта для каждого рантайма (избегаем повторной загрузки).
54
- * @en Global cache of loaded transport classes per runtime (avoids re-loading).
55
- */
56
- const GLOBAL_TRANSPORT_CLASS_CACHE = Object.create(null);
57
- /**
58
- * @ru Логирует ошибку в зависимости от конфигурации (verbose, logger).
59
- * @en Logs an error according to configuration (verbose, logger).
60
- * @param config - Client configuration.
61
- * @param message - Log message.
62
- * @param err - Error object.
63
- */
64
- function logError(config, message, err) {
65
- if (config.verbose) {
66
- console.error(message, err);
67
- }
68
- const logger = config.logger;
69
- if (logger) {
70
- if (typeof logger === "function") {
71
- logger(message, err);
72
- return;
73
- }
74
- const candidate = logger;
75
- if (typeof candidate.error === "function") {
76
- candidate.error(message, err);
77
- return;
78
- }
79
- }
80
- if (!config.verbose) {
81
- console.error(message, err);
82
- }
83
- }
84
- /**
85
- * @ru Проверяет, является ли ошибка "модуль не найден" (пропускаем такие транспорты).
86
- * @en Checks if the error indicates a missing module (skip such transports).
87
- * @param err - Error to check.
88
- * @returns True if module not found.
89
- */
47
+ const CANDIDATES = TRANSPORTS.filter((t) => t.runtime.includes(CURRENT_RUNTIME)).sort((a, b) => b.priority - a.priority);
48
+ let RESOLVED_RUNTIME_CTOR = null;
49
+ let NODE_RESOLVE_TOOLS = null;
50
+ let ATTEMPTED_TOOLS_LOAD = false;
51
+ export const runtimeImport = Function("s", "return import(s)");
90
52
  function isModuleNotFoundError(err) {
91
53
  if (!err || typeof err !== "object")
92
54
  return false;
93
55
  const code = err.code;
94
- const message = err instanceof Error ? err.message : "";
95
- return (code === "ERR_MODULE_NOT_FOUND" ||
96
- message.includes("Cannot find module") ||
97
- message.includes("Failed to resolve"));
56
+ if (code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND")
57
+ return true;
58
+ const msg = err instanceof Error ? err.message : "";
59
+ return (msg.includes("Cannot find module") ||
60
+ msg.includes("Failed to resolve") ||
61
+ msg.includes("Failed to load"));
98
62
  }
99
- /**
100
- * @ru Разрешает путь к модулю транспорта: для относительных путей использует import.meta.resolve, для пакетов — resolve-from + import.meta.resolve.
101
- * @en Resolves the module path for a transport: for relative paths uses import.meta.resolve, for packages uses resolve-from + import.meta.resolve.
102
- * @param pkg - Package name or relative path.
103
- * @returns Resolved URL string or null if not found.
104
- */
105
- async function resolveTransportModulePath(pkg) {
106
- if (pkg.startsWith(".")) {
107
- try {
63
+ async function resolveExternalModule(pkg) {
64
+ try {
65
+ if (typeof import.meta.resolve === "function") {
108
66
  return import.meta.resolve(pkg, import.meta.url);
109
67
  }
68
+ }
69
+ catch {
70
+ //
71
+ }
72
+ if (CURRENT_RUNTIME !== "browser") {
73
+ try {
74
+ if (!NODE_RESOLVE_TOOLS && !ATTEMPTED_TOOLS_LOAD) {
75
+ ATTEMPTED_TOOLS_LOAD = true;
76
+ NODE_RESOLVE_TOOLS = await Promise.all([
77
+ runtimeImport("resolve-from").catch(() => null),
78
+ runtimeImport("node:url").catch(() => null),
79
+ ]);
80
+ }
81
+ if (!NODE_RESOLVE_TOOLS || !NODE_RESOLVE_TOOLS[0] || !NODE_RESOLVE_TOOLS[1])
82
+ return null;
83
+ const resolveFrom = NODE_RESOLVE_TOOLS[0].default ?? NODE_RESOLVE_TOOLS[0];
84
+ const url = NODE_RESOLVE_TOOLS[1].default ?? NODE_RESOLVE_TOOLS[1];
85
+ let cwd = ".";
86
+ try {
87
+ cwd = process.cwd();
88
+ }
89
+ catch {
90
+ //
91
+ }
92
+ const physicalPath = resolveFrom.silent?.(cwd, pkg) ?? resolveFrom(cwd, pkg);
93
+ if (physicalPath) {
94
+ return url.pathToFileURL(physicalPath).href;
95
+ }
96
+ }
110
97
  catch {
98
+ //
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ async function loadCtor(pkg, exportName) {
104
+ if (CURRENT_RUNTIME === "browser") {
105
+ if (pkg !== "../transports/browser.js")
111
106
  return null;
107
+ const mod = (await import("../transports/browser.js"));
108
+ const candidate = mod[exportName] ?? mod.default;
109
+ return typeof candidate === "function" ? candidate : null;
110
+ }
111
+ let specifier = pkg;
112
+ if (pkg[0] === "." || pkg[0] === "/") {
113
+ try {
114
+ specifier = import.meta.resolve(pkg, import.meta.url);
115
+ }
116
+ catch {
117
+ //
112
118
  }
113
119
  }
114
- const physicalPath = resolveFrom.silent(process.cwd(), pkg);
115
- if (physicalPath) {
116
- return pathToFileURL(physicalPath).href;
120
+ else {
121
+ const resolved = await resolveExternalModule(pkg);
122
+ if (resolved)
123
+ specifier = resolved;
117
124
  }
118
125
  try {
119
- return import.meta.resolve(pkg, import.meta.url);
126
+ const mod = await runtimeImport(specifier);
127
+ const candidate = mod[exportName] ?? mod.default;
128
+ return typeof candidate === "function" ? candidate : null;
120
129
  }
121
- catch {
122
- return null;
130
+ catch (err) {
131
+ if (isModuleNotFoundError(err))
132
+ return null;
133
+ throw err;
123
134
  }
124
135
  }
125
- /**
126
- * @ru Загружает конструктор транспорта из указанного пакета и экспорта.
127
- * @en Loads a transport constructor from the given package and export.
128
- * @param pkg - Package name or path.
129
- * @param exportName - Export name.
130
- * @returns Transport constructor or null.
131
- */
132
- async function loadTransportCtor(pkg, exportName) {
133
- const path = await resolveTransportModulePath(pkg);
134
- if (!path)
135
- return null;
136
- const mod = (await import(path));
137
- const candidate = mod[exportName] ??
138
- mod.default?.[exportName] ??
139
- mod.default;
140
- if (typeof candidate !== "function")
141
- return null;
142
- return candidate;
143
- }
144
- /**
145
- * @ru Разрешает и создаёт экземпляр транспорта на основе конфигурации и текущей среды выполнения. Использует кэш классов.
146
- * @en Resolves and creates a transport instance based on configuration and the current runtime. Uses class cache.
147
- * @param config - Client configuration.
148
- * @returns Promise resolving to a transport instance.
149
- * @throws If no compatible transport is available.
150
- */
151
136
  export async function resolveTransport(config) {
152
- if (config.customTransport) {
153
- config.logger?.(`info`, "[Hyperttp] Using custom user-provided transport.", config);
137
+ if (config.customTransport)
154
138
  return config.customTransport;
155
- }
156
- const runtime = CURRENT_RUNTIME;
157
- const cachedCtor = GLOBAL_TRANSPORT_CLASS_CACHE[runtime];
158
- if (cachedCtor) {
159
- config.logger?.(`info`, `[Hyperttp] Using cached transport class for runtime: ${runtime}`, config);
160
- return new cachedCtor(config);
161
- }
162
- const candidates = CANDIDATES_MAP[runtime];
163
- for (const t of candidates) {
139
+ if (RESOLVED_RUNTIME_CTOR)
140
+ return new RESOLVED_RUNTIME_CTOR(config);
141
+ const failures = [];
142
+ for (let i = 0; i < CANDIDATES.length; i++) {
143
+ const t = CANDIDATES[i];
164
144
  try {
165
- config.logger?.(`debug`, `[Hyperttp] Attempting to load transport: ${t.name} (${t.pkg})...`, config);
166
- const Transport = await loadTransportCtor(t.pkg, t.export);
167
- if (!Transport) {
168
- config.logger?.(`debug`, `[Hyperttp] Export '${t.export}' not found in ${t.pkg}. Skipping...`, config);
145
+ const ctor = await loadCtor(t.pkg, t.export);
146
+ if (!ctor) {
147
+ failures.push(`${t.pkg} (missing export or not installed)`);
169
148
  continue;
170
149
  }
171
- config.logger?.(`debug`, `[Hyperttp] Successfully loaded transport: ${t.name}`, config);
172
- GLOBAL_TRANSPORT_CLASS_CACHE[runtime] = Transport;
173
- return new Transport(config);
150
+ RESOLVED_RUNTIME_CTOR = ctor;
151
+ return new ctor(config);
174
152
  }
175
153
  catch (err) {
176
154
  if (isModuleNotFoundError(err)) {
177
- config.logger?.(`info`, `[Hyperttp] Transport package '${t.pkg}' is not available. Skipping...`, config);
155
+ failures.push(`${t.pkg} (not installed)`);
178
156
  continue;
179
157
  }
180
- logError(config, `[Hyperttp] Critical error while loading transport ${t.pkg}:`, err);
181
- throw err;
158
+ throw new Error(`[Hyperttp] transport crash in ${t.pkg}: ${err?.message}`, {
159
+ cause: err,
160
+ });
182
161
  }
183
162
  }
184
- throw new Error(`No compatible transport implementation available for runtime: ${runtime}. Make sure one of ${candidates
185
- .map((c) => c.pkg)
186
- .join(", ")} is installed.`);
163
+ throw new Error(`No compatible transport for runtime="${CURRENT_RUNTIME}".\nFailures:\n- ${failures.join("\n- ")}`);
187
164
  }
188
- /**
189
- * @ru Менеджер транспорта: ленивая загрузка, кэширование, синхронизация конфигурации, выполнение запросов, уничтожение.
190
- * @en Transport manager: lazy loading, caching, config synchronization, request execution, destruction.
191
- */
192
165
  export class TransportManager {
193
166
  transport = null;
194
- transportPromise = null;
167
+ promise = null;
195
168
  config;
196
- /**
197
- * @ru Создаёт менеджер транспорта.
198
- * @en Creates a transport manager.
199
- * @param config - Client configuration.
200
- * @param customTransport - Optional pre-created transport instance.
201
- */
202
- constructor(config, customTransport) {
169
+ constructor(config, custom) {
203
170
  this.config = config;
204
- if (customTransport) {
205
- this.transport = customTransport;
206
- this.transportPromise = Promise.resolve(customTransport);
207
- this.syncConfig();
171
+ if (custom) {
172
+ this.transport = custom;
173
+ }
174
+ else if (config.customTransport) {
175
+ this.transport = config.customTransport;
176
+ }
177
+ else if (RESOLVED_RUNTIME_CTOR) {
178
+ this.transport = new RESOLVED_RUNTIME_CTOR(config);
208
179
  }
209
180
  }
210
- /**
211
- * @ru Обновляет конфигурацию клиента и синхронизирует её с активным транспортом (если есть).
212
- * @en Updates the client configuration and syncs it with the active transport (if any).
213
- * @param config - New configuration.
214
- */
215
- setConfig(config) {
216
- this.config = config;
217
- this.syncConfig();
218
- }
219
- /**
220
- * @ru Возвращает текущий экземпляр транспорта (если уже загружен).
221
- * @en Returns the current transport instance (if already loaded).
222
- */
223
- get instance() {
181
+ getSync() {
224
182
  return this.transport;
225
183
  }
226
- /**
227
- * @ru Асинхронно получает транспорт (ленивая загрузка).
228
- * @en Asynchronously gets the transport (lazy loading).
229
- * @returns Promise resolving to transport instance.
230
- */
231
- async get() {
232
- if (this.transport)
233
- return this.transport;
234
- if (this.transportPromise)
235
- return this.transportPromise;
236
- this.transportPromise = resolveTransport(this.config).then((t) => {
184
+ ensure() {
185
+ if (this.transport !== null) {
186
+ return this.promise || (this.promise = Promise.resolve(this.transport));
187
+ }
188
+ if (this.promise !== null)
189
+ return this.promise;
190
+ return (this.promise = resolveTransport(this.config).then((t) => {
237
191
  this.transport = t;
238
- this.syncConfig();
239
192
  return t;
240
- });
241
- return this.transportPromise;
193
+ }));
242
194
  }
243
- /**
244
- * @ru Синхронизирует конфигурацию с транспортом, если транспорт имеет свойство config.
245
- * @en Syncs configuration with the transport if the transport has a config property.
246
- */
247
- syncConfig() {
248
- if (this.transport && "config" in this.transport) {
249
- this.transport.config = this.config;
250
- }
251
- }
252
- /**
253
- * @ru Выполняет запрос и возвращает стандартный HttpResponse (не поток).
254
- * @en Executes a request and returns a standard HttpResponse (non-stream).
255
- * @param req - Request parameters for transport.
256
- * @returns Promise with HTTP response.
257
- */
258
- async execute(req) {
259
- const transport = this.transport || (await this.get());
260
- const rawResponse = await transport.execute(req);
261
- return mapResponseFast(rawResponse);
195
+ get() {
196
+ return this.transport ?? this.ensure();
262
197
  }
263
- /**
264
- * @ru Выполняет запрос и возвращает потоковый ответ (StreamResponse).
265
- * @en Executes a request and returns a stream response (StreamResponse).
266
- * @param req - Request parameters for transport.
267
- * @returns Promise with stream response.
268
- */
269
- async executeStream(req) {
270
- const transport = this.transport || (await this.get());
271
- const rawResponse = await transport.execute(req);
272
- return mapStreamFast(rawResponse);
198
+ setConfig(config) {
199
+ this.config = config;
200
+ if (this.transport && typeof this.transport.setConfig === "function") {
201
+ this.transport.setConfig(config);
202
+ }
273
203
  }
274
- /**
275
- * @ru Уничтожает транспорт: закрывает соединения (graceful) или принудительно разрушает.
276
- * @en Destroys the transport: closes connections (graceful) or forces destruction.
277
- * @param graceful - If true, attempts graceful shutdown via close(). Otherwise destroys.
278
- * @returns Promise that resolves when destruction is complete.
279
- */
280
204
  async destroy(graceful = true) {
281
- const transport = this.transport;
282
- if (!transport)
283
- return;
284
- if (graceful && typeof transport.close === "function") {
285
- await transport.close();
205
+ const t = this.transport;
206
+ if (!t)
286
207
  return;
208
+ try {
209
+ if (graceful && typeof t.close === "function") {
210
+ await t.close();
211
+ return;
212
+ }
213
+ if (typeof t.destroy === "function") {
214
+ await t.destroy();
215
+ }
287
216
  }
288
- if (typeof transport.destroy === "function") {
289
- await transport.destroy();
217
+ finally {
218
+ this.transport = null;
219
+ this.promise = null;
290
220
  }
291
221
  }
292
222
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,16 @@
1
1
  import type { HttpClientOptions, HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
2
2
  export interface NodeTransportConfig extends HttpClientOptions {
3
3
  baseUrl?: string;
4
- network?: {
5
- maxConcurrent?: number;
6
- keepAliveTimeout?: number;
7
- };
8
4
  }
9
5
  /**
10
- * @ru Реализация HTTP-транспорта на основе встроенных модулей Node.js (http/https). Поддерживает keep-alive, пулы соединений, автоматический Content-Length, обработку abort-сигналов.
11
- * @en HTTP transport implementation based on Node.js built-in modules (http/https). Supports keep-alive, connection pools, automatic Content-Length, and abort signal handling.
6
+ * @ru Реализация транспорта для Node.js с использованием fetch.
7
+ * @en Node.js transport implementation using fetch.
12
8
  */
13
9
  export declare class NodeTransport implements HyperTransport {
14
- /** @ru Конфигурация транспорта. @en Transport configuration. */
15
10
  config: NodeTransportConfig;
16
- private readonly httpAgent;
17
- private readonly httpsAgent;
18
- /**
19
- * @ru Создаёт экземпляр NodeTransport.
20
- * @en Creates a NodeTransport instance.
21
- * @param config - Transport configuration.
22
- */
11
+ private readonly isProduction;
12
+ private readonly cleanBaseUrl;
23
13
  constructor(config: NodeTransportConfig);
24
- private get baseUrl();
25
- /**
26
- * @ru Выполняет HTTP-запрос.
27
- * @en Executes an HTTP request.
28
- * @param req - Request parameters (url, method, headers, body, signal).
29
- * @returns Promise with the transport response.
30
- * @throws If the request is aborted (AbortError).
31
- * @throws If localhost URL is used in production environment.
32
- * @throws On network or protocol errors.
33
- */
34
14
  execute(req: TransportRequest): Promise<TransportResponse>;
35
- /**
36
- * @ru Закрывает все активные соединения (graceful shutdown). Уничтожает HTTP/HTTPS агенты.
37
- * @en Closes all active connections (graceful shutdown). Destroys HTTP/HTTPS agents.
38
- * @returns Promise that resolves after closing.
39
- */
40
- close(): Promise<void>;
41
- /**
42
- * @ru Принудительно уничтожает транспорт (аналог close).
43
- * @en Forcefully destroys the transport (alias for close).
44
- * @returns Promise that resolves after destruction.
45
- */
46
- destroy(): Promise<void>;
47
15
  }
48
16
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,gEAAgE;IACzD,MAAM,EAAE,mBAAmB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC;;;;OAIG;gBACS,MAAM,EAAE,mBAAmB;IAkBvC,OAAO,KAAK,OAAO,GAElB;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyIvE;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiHD;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,mBAAmB;IAQ1B,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA+BxE"}