@hyperttp/core 1.4.6 → 1.4.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.
@@ -10,34 +10,112 @@ export type Runtime = "bun" | "node" | "deno" | "browser";
10
10
  */
11
11
  type TransportDef = {
12
12
  /** @ru Имя транспорта для логирования. @en Transport name for logging. */
13
- name: string;
13
+ readonly name: string;
14
14
  /** @ru Список сред, в которых транспорт может работать. @en List of runtimes where the transport can operate. */
15
- runtime: Runtime[];
15
+ readonly runtime: readonly Runtime[];
16
16
  /** @ru Имя пакета npm или относительный путь для встроенных транспортов. @en npm package name or relative path for built-in transports. */
17
- pkg: string;
17
+ readonly pkg: string;
18
18
  /** @ru Имя экспортируемого класса транспорта. @en Exported transport class name. */
19
- export: string;
19
+ readonly export: string;
20
20
  /** @ru Приоритет выбора (выше значение = раньше попытка загрузки). @en Selection priority (higher value = earlier load attempt). */
21
- priority: number;
21
+ readonly priority: number;
22
22
  };
23
+ /**
24
+ * @ru Определяет текущую среду выполнения при загрузке модуля.
25
+ * Порядок проверки: Bun → Deno → Node.js → Browser.
26
+ * @en Detects the current runtime at module load time.
27
+ * Detection order: Bun → Deno → Node.js → Browser.
28
+ */
23
29
  export declare const CURRENT_RUNTIME: Runtime;
24
- export declare const TRANSPORTS: TransportDef[];
25
30
  /**
26
- * @ru Динамический импорт, изолированный от статического анализа сборщиков.
27
- * Используется как ядром, так и модулем декомпрессии.
28
- * @en Dynamic import isolated from bundlers' static analysis.
31
+ * @ru Возвращает список зарегистрированных транспортов (readonly для безопасности).
32
+ * @en Returns the list of registered transports (readonly for safety).
33
+ * @returns Readonly array of transport definitions.
34
+ */
35
+ export declare const getRegisteredTransports: () => readonly TransportDef[];
36
+ /**
37
+ * @ru Динамический импорт, изолированный от статического анализа сборщиков (Vite, Webpack).
38
+ * Используется как ядром, так и модулем декомпрессии для ленивой загрузки node:zlib/node:stream.
39
+ * @en Dynamic import isolated from bundlers' static analysis (Vite, Webpack).
40
+ * Used by both the core and decompression module for lazy loading of node:zlib/node:stream.
41
+ * @template T - Expected module type.
42
+ * @param specifier - Module specifier string.
43
+ * @returns Promise resolving to the imported module.
29
44
  */
30
45
  export declare const runtimeImport: <T = unknown>(specifier: string) => Promise<T>;
46
+ /**
47
+ * @ru Разрешает и создаёт оптимальный транспорт для текущей среды.
48
+ * Перебирает кандидатов по приоритету, кэширует первый успешный результат.
49
+ * @en Resolves and creates the optimal transport for the current runtime.
50
+ * Iterates candidates by priority, caches the first successful result.
51
+ * @param config - Client configuration options.
52
+ * @returns Promise resolving to the instantiated transport.
53
+ * @throws Error if no compatible transport is found.
54
+ */
31
55
  export declare function resolveTransport(config: HttpClientOptions): Promise<HyperTransport>;
56
+ /**
57
+ * @ru Менеджер транспорта с ленивой инициализацией и кэшированием.
58
+ * Поддерживает синхронный доступ, отложенную инициализацию и корректное завершение.
59
+ * @en Transport manager with lazy initialization and caching.
60
+ * Supports synchronous access, deferred initialization, and graceful shutdown.
61
+ */
32
62
  export declare class TransportManager {
63
+ /**
64
+ * @ru Текущий экземпляр транспорта (null до инициализации).
65
+ * @en Current transport instance (null before initialization).
66
+ */
33
67
  transport: HyperTransport | null;
68
+ /**
69
+ * @ru Промис отложенной инициализации транспорта.
70
+ * @en Deferred transport initialization promise.
71
+ */
34
72
  private promise;
73
+ /**
74
+ * @ru Конфигурация клиента для создания транспорта.
75
+ * @en Client configuration for transport creation.
76
+ */
35
77
  private config;
78
+ /**
79
+ * @ru Создаёт менеджер транспорта с опциональным пользовательским транспортом.
80
+ * @en Creates a transport manager with an optional custom transport.
81
+ * @param config - Client configuration options.
82
+ * @param custom - Optional custom transport instance.
83
+ */
36
84
  constructor(config: HttpClientOptions, custom?: HyperTransport);
85
+ /**
86
+ * @ru Синхронно возвращает текущий транспорт или null, если не инициализирован.
87
+ * @en Synchronously returns the current transport or null if not initialized.
88
+ * @returns The transport instance or null.
89
+ */
37
90
  getSync(): HyperTransport | null;
91
+ /**
92
+ * @ru Гарантирует наличие транспорта, инициализируя его при необходимости.
93
+ * Повторные вызовы возвращают один и тот же промис.
94
+ * @en Ensures a transport exists, initializing it if necessary.
95
+ * Repeated calls return the same promise.
96
+ * @returns Promise resolving to the transport instance.
97
+ */
38
98
  ensure(): Promise<HyperTransport>;
99
+ /**
100
+ * @ru Возвращает транспорт синхронно или промис, если требуется инициализация.
101
+ * @en Returns the transport synchronously or a promise if initialization is needed.
102
+ * @returns The transport instance or a promise resolving to it.
103
+ */
39
104
  get(): HyperTransport | Promise<HyperTransport>;
105
+ /**
106
+ * @ru Обновляет конфигурацию транспорта, если он поддерживает setConfig.
107
+ * @en Updates the transport configuration if it supports setConfig.
108
+ * @param config - New client configuration options.
109
+ */
40
110
  setConfig(config: HttpClientOptions): void;
111
+ /**
112
+ * @ru Завершает работу транспорта и освобождает ресурсы.
113
+ * В graceful-режиме вызывает close(), иначе — destroy().
114
+ * @en Shuts down the transport and releases resources.
115
+ * In graceful mode calls close(), otherwise calls destroy().
116
+ * @param graceful - If true, waits for active requests to complete.
117
+ * @returns Promise that resolves when shutdown is complete.
118
+ */
41
119
  destroy(graceful?: boolean): Promise<void>;
42
120
  }
43
121
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAQ1D;;;GAGG;AACH,KAAK,YAAY,GAAG;IAClB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,iHAAiH;IACjH,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,2IAA2I;IAC3I,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,oIAAoI;IACpI,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAK1B,CAAC;AAEL,eAAO,MAAM,UAAU,EAAE,YAAY,EAoCpC,CAAC;AAQF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAwC,CAAC,CAAC,GAAG,OAAO,EAC5E,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,CAAC,CAAC,CAAC;AA4DhB,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BzF;AAED,qBAAa,gBAAgB;IACpB,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC/C,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,cAAc;IAYvD,OAAO,IAAI,cAAc,GAAG,IAAI;IAIhC,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYjC,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/C,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAapC,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBrD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transports/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAQ1D;;;GAGG;AACH,KAAK,YAAY,GAAG;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iHAAiH;IACjH,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,2IAA2I;IAC3I,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oIAAoI;IACpI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,OAK1B,CAAC;AAuDL;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAO,SAAS,YAAY,EAAyB,CAAC;AAkB1F;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAwC,CAAC,CAAC,GAAG,OAAO,EAC5E,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,CAAC,CAAC,CAAC;AA4GhB;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BzF;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B;;;OAGG;IACI,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAE/C;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAwC;IAEvD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;;OAKG;gBACS,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,cAAc;IAY9D;;;;OAIG;IACI,OAAO,IAAI,cAAc,GAAG,IAAI;IAIvC;;;;;;OAMG;IACI,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYxC;;;;OAIG;IACI,GAAG,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAajD;;;;;;;OAOG;IACU,OAAO,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBrD"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @ru Определяет текущую среду выполнения при загрузке модуля.
3
+ * Порядок проверки: Bun → Deno → Node.js → Browser.
4
+ * @en Detects the current runtime at module load time.
5
+ * Detection order: Bun → Deno → Node.js → Browser.
6
+ */
1
7
  export const CURRENT_RUNTIME = (() => {
2
8
  if (typeof Bun !== "undefined")
3
9
  return "bun";
@@ -7,7 +13,13 @@ export const CURRENT_RUNTIME = (() => {
7
13
  return "node";
8
14
  return "browser";
9
15
  })();
10
- export const TRANSPORTS = [
16
+ /**
17
+ * @ru Внутренний реестр всех доступных транспортов с приоритетами.
18
+ * Заморожен для предотвращения модификаций в runtime.
19
+ * @en Internal registry of all available transports with priorities.
20
+ * Frozen to prevent runtime modifications.
21
+ */
22
+ const INTERNAL_TRANSPORTS = [
11
23
  {
12
24
  name: "Bun",
13
25
  runtime: ["bun"],
@@ -44,35 +56,105 @@ export const TRANSPORTS = [
44
56
  priority: 10,
45
57
  },
46
58
  ];
47
- const CANDIDATES = TRANSPORTS.filter((t) => t.runtime.includes(CURRENT_RUNTIME)).sort((a, b) => b.priority - a.priority);
59
+ INTERNAL_TRANSPORTS.forEach(Object.freeze);
60
+ Object.freeze(INTERNAL_TRANSPORTS);
61
+ /**
62
+ * @ru Белый список разрешённых пакетов для защиты от несанкционированного импорта.
63
+ * @en Whitelist of allowed packages to protect against unauthorized imports.
64
+ */
65
+ const ALLOWED_PACKAGES = new Set(INTERNAL_TRANSPORTS.map((t) => t.pkg));
66
+ /**
67
+ * @ru Возвращает список зарегистрированных транспортов (readonly для безопасности).
68
+ * @en Returns the list of registered transports (readonly for safety).
69
+ * @returns Readonly array of transport definitions.
70
+ */
71
+ export const getRegisteredTransports = () => INTERNAL_TRANSPORTS;
72
+ /**
73
+ * @ru Отфильтрованный и отсортированный список транспортов для текущей среды.
74
+ * Вычисляется один раз при загрузке модуля.
75
+ * @en Filtered and sorted list of transports for the current runtime.
76
+ * Computed once at module load time.
77
+ */
78
+ const CANDIDATES = INTERNAL_TRANSPORTS.filter((t) => t.runtime.includes(CURRENT_RUNTIME)).sort((a, b) => b.priority - a.priority);
79
+ /**
80
+ * @ru Кэш разрешённого конструктора транспорта для избежания повторного разрешения.
81
+ * @en Cached resolved transport constructor to avoid repeated resolution.
82
+ */
48
83
  let RESOLVED_RUNTIME_CTOR = null;
49
84
  /**
50
- * @ru Динамический импорт, изолированный от статического анализа сборщиков.
51
- * Используется как ядром, так и модулем декомпрессии.
52
- * @en Dynamic import isolated from bundlers' static analysis.
85
+ * @ru Динамический импорт, изолированный от статического анализа сборщиков (Vite, Webpack).
86
+ * Используется как ядром, так и модулем декомпрессии для ленивой загрузки node:zlib/node:stream.
87
+ * @en Dynamic import isolated from bundlers' static analysis (Vite, Webpack).
88
+ * Used by both the core and decompression module for lazy loading of node:zlib/node:stream.
89
+ * @template T - Expected module type.
90
+ * @param specifier - Module specifier string.
91
+ * @returns Promise resolving to the imported module.
53
92
  */
54
93
  export const runtimeImport = Function("s", "return import(s)");
94
+ /**
95
+ * @ru Проверяет, является ли ошибкой отсутствия модуля.
96
+ * Поддерживает коды ERR_MODULE_NOT_FOUND и MODULE_NOT_FOUND,
97
+ * а также сообщения об ошибках (для совместимости с Bun и Deno).
98
+ * @en Checks if the error is a module-not-found error.
99
+ * Supports ERR_MODULE_NOT_FOUND and MODULE_NOT_FOUND codes,
100
+ * as well as error messages (for Bun and Deno compatibility).
101
+ * @param err - The error to check.
102
+ * @returns True if the error indicates a missing module.
103
+ */
55
104
  function isModuleNotFoundError(err) {
56
105
  if (!err || typeof err !== "object")
57
106
  return false;
58
- const code = "code" in err ? err.code : undefined;
107
+ const e = err;
108
+ const code = e.code;
59
109
  if (code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND")
60
110
  return true;
61
- const msg = err instanceof Error ? err.message : "";
111
+ const msg = err instanceof Error ? err.message : String(e.message ?? "");
62
112
  return (msg.includes("Cannot find module") ||
63
113
  msg.includes("Failed to resolve") ||
64
114
  msg.includes("Failed to load"));
65
115
  }
66
- function logDebugFallback(pkg, err) {
116
+ /**
117
+ * @ru Логирует информацию о неудачной попытке загрузки транспорта.
118
+ * Активируется в режиме DEBUG=1 или при ошибке нативного транспорта в dev-окружении.
119
+ * @en Logs information about failed transport load attempts.
120
+ * Activated in DEBUG=1 mode or when native transport fails in dev environment.
121
+ * @param pkg - Package name that failed to load.
122
+ * @param err - The error that occurred.
123
+ * @param config - Optional client configuration for custom logger.
124
+ */
125
+ function logDebugFallback(pkg, err, config) {
126
+ const isDev = typeof process !== "undefined" && process.env?.NODE_ENV === "development";
127
+ const isDebug = typeof process !== "undefined" && process.env?.DEBUG === "1";
67
128
  const isNativeTransport = pkg.includes(CURRENT_RUNTIME);
68
- const isDebugEnabled = typeof process !== "undefined" && process.env?.HYPERTTP_DEBUG;
69
- if (isNativeTransport || isDebugEnabled) {
70
- console.warn(`\n⚠️ [Hyperttp Debug] Failed to load preferred transport "${pkg}":`);
71
- console.error(err);
72
- console.warn(`Falling back to alternative transport...\n`);
129
+ if (isDebug || (isDev && isNativeTransport)) {
130
+ const primaryMessage = `Failed to load preferred transport "${pkg}"`;
131
+ const fallbackMessage = `Falling back to alternative transport...`;
132
+ if (config?.logger) {
133
+ config.logger("warn", `[Hyperttp Debug] ${primaryMessage}`, err);
134
+ config.logger("warn", `[Hyperttp Debug] ${fallbackMessage}`);
135
+ }
136
+ else {
137
+ console.warn(`\n⚠️ [Hyperttp Debug] ${primaryMessage}:`);
138
+ console.error(err);
139
+ console.warn(`${fallbackMessage}\n`);
140
+ }
73
141
  }
74
142
  }
75
- async function loadCtor(pkg, exportName) {
143
+ /**
144
+ * @ru Загружает конструктор транспорта из пакета или относительного пути.
145
+ * Для браузерной среды использует статический импорт для совместимости с бандлерами.
146
+ * @en Loads a transport constructor from a package or relative path.
147
+ * For browser runtime, uses static import for bundler compatibility.
148
+ * @param pkg - Package name or relative path.
149
+ * @param exportName - Name of the exported transport class.
150
+ * @param config - Optional client configuration for debug logging.
151
+ * @returns Transport constructor or null if not found.
152
+ * @throws Error if the package is not in the whitelist.
153
+ */
154
+ async function loadCtor(pkg, exportName, config) {
155
+ if (!ALLOWED_PACKAGES.has(pkg)) {
156
+ throw new Error(`[Hyperttp Security] Blocked untrusted transport import attempt: ${pkg}`);
157
+ }
76
158
  if (CURRENT_RUNTIME === "browser") {
77
159
  if (pkg !== "./browser.js")
78
160
  return null;
@@ -83,12 +165,12 @@ async function loadCtor(pkg, exportName) {
83
165
  let specifier = pkg;
84
166
  try {
85
167
  if (typeof import.meta.resolve === "function") {
86
- specifier = import.meta.resolve(pkg);
168
+ specifier = import.meta.resolve(pkg, import.meta.url);
87
169
  }
88
170
  }
89
171
  catch (err) {
90
172
  if (isModuleNotFoundError(err)) {
91
- logDebugFallback(pkg, err);
173
+ logDebugFallback(pkg, err, config);
92
174
  return null;
93
175
  }
94
176
  }
@@ -99,12 +181,21 @@ async function loadCtor(pkg, exportName) {
99
181
  }
100
182
  catch (err) {
101
183
  if (isModuleNotFoundError(err)) {
102
- logDebugFallback(pkg, err);
184
+ logDebugFallback(pkg, err, config);
103
185
  return null;
104
186
  }
105
187
  throw err;
106
188
  }
107
189
  }
190
+ /**
191
+ * @ru Разрешает и создаёт оптимальный транспорт для текущей среды.
192
+ * Перебирает кандидатов по приоритету, кэширует первый успешный результат.
193
+ * @en Resolves and creates the optimal transport for the current runtime.
194
+ * Iterates candidates by priority, caches the first successful result.
195
+ * @param config - Client configuration options.
196
+ * @returns Promise resolving to the instantiated transport.
197
+ * @throws Error if no compatible transport is found.
198
+ */
108
199
  export async function resolveTransport(config) {
109
200
  if (config.customTransport)
110
201
  return config.customTransport;
@@ -114,7 +205,7 @@ export async function resolveTransport(config) {
114
205
  for (let i = 0; i < CANDIDATES.length; i++) {
115
206
  const t = CANDIDATES[i];
116
207
  try {
117
- const ctor = await loadCtor(t.pkg, t.export);
208
+ const ctor = await loadCtor(t.pkg, t.export, config);
118
209
  if (!ctor) {
119
210
  failures.push(`${t.pkg} (missing export or not installed)`);
120
211
  continue;
@@ -134,10 +225,34 @@ export async function resolveTransport(config) {
134
225
  }
135
226
  throw new Error(`No compatible transport for runtime="${CURRENT_RUNTIME}".\nFailures:\n- ${failures.join("\n- ")}`);
136
227
  }
228
+ /**
229
+ * @ru Менеджер транспорта с ленивой инициализацией и кэшированием.
230
+ * Поддерживает синхронный доступ, отложенную инициализацию и корректное завершение.
231
+ * @en Transport manager with lazy initialization and caching.
232
+ * Supports synchronous access, deferred initialization, and graceful shutdown.
233
+ */
137
234
  export class TransportManager {
235
+ /**
236
+ * @ru Текущий экземпляр транспорта (null до инициализации).
237
+ * @en Current transport instance (null before initialization).
238
+ */
138
239
  transport = null;
240
+ /**
241
+ * @ru Промис отложенной инициализации транспорта.
242
+ * @en Deferred transport initialization promise.
243
+ */
139
244
  promise = null;
245
+ /**
246
+ * @ru Конфигурация клиента для создания транспорта.
247
+ * @en Client configuration for transport creation.
248
+ */
140
249
  config;
250
+ /**
251
+ * @ru Создаёт менеджер транспорта с опциональным пользовательским транспортом.
252
+ * @en Creates a transport manager with an optional custom transport.
253
+ * @param config - Client configuration options.
254
+ * @param custom - Optional custom transport instance.
255
+ */
141
256
  constructor(config, custom) {
142
257
  this.config = config;
143
258
  if (custom) {
@@ -150,9 +265,21 @@ export class TransportManager {
150
265
  this.transport = new RESOLVED_RUNTIME_CTOR(config);
151
266
  }
152
267
  }
268
+ /**
269
+ * @ru Синхронно возвращает текущий транспорт или null, если не инициализирован.
270
+ * @en Synchronously returns the current transport or null if not initialized.
271
+ * @returns The transport instance or null.
272
+ */
153
273
  getSync() {
154
274
  return this.transport;
155
275
  }
276
+ /**
277
+ * @ru Гарантирует наличие транспорта, инициализируя его при необходимости.
278
+ * Повторные вызовы возвращают один и тот же промис.
279
+ * @en Ensures a transport exists, initializing it if necessary.
280
+ * Repeated calls return the same promise.
281
+ * @returns Promise resolving to the transport instance.
282
+ */
156
283
  ensure() {
157
284
  if (this.transport !== null) {
158
285
  return this.promise || (this.promise = Promise.resolve(this.transport));
@@ -164,9 +291,19 @@ export class TransportManager {
164
291
  return t;
165
292
  }));
166
293
  }
294
+ /**
295
+ * @ru Возвращает транспорт синхронно или промис, если требуется инициализация.
296
+ * @en Returns the transport synchronously or a promise if initialization is needed.
297
+ * @returns The transport instance or a promise resolving to it.
298
+ */
167
299
  get() {
168
300
  return this.transport ?? this.ensure();
169
301
  }
302
+ /**
303
+ * @ru Обновляет конфигурацию транспорта, если он поддерживает setConfig.
304
+ * @en Updates the transport configuration if it supports setConfig.
305
+ * @param config - New client configuration options.
306
+ */
170
307
  setConfig(config) {
171
308
  this.config = config;
172
309
  if (this.transport && "setConfig" in this.transport) {
@@ -176,6 +313,14 @@ export class TransportManager {
176
313
  }
177
314
  }
178
315
  }
316
+ /**
317
+ * @ru Завершает работу транспорта и освобождает ресурсы.
318
+ * В graceful-режиме вызывает close(), иначе — destroy().
319
+ * @en Shuts down the transport and releases resources.
320
+ * In graceful mode calls close(), otherwise calls destroy().
321
+ * @param graceful - If true, waits for active requests to complete.
322
+ * @returns Promise that resolves when shutdown is complete.
323
+ */
179
324
  async destroy(graceful = true) {
180
325
  const t = this.transport;
181
326
  if (!t)
@@ -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,10 +1,23 @@
1
- import type { HttpClientOptions, HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
1
+ import type { HttpClientOptions, HyperTransport, StealthOptions, TransportRequest, TransportResponse } from "@hyperttp/types";
2
+ /**
3
+ * @ru Конфигурация транспорта для Node.js с использованием нативных http/https модулей.
4
+ * @en Node.js transport configuration using native http/https modules.
5
+ */
2
6
  export interface NodeTransportConfig extends HttpClientOptions {
7
+ /**
8
+ * @ru Базовый URL для относительных путей.
9
+ * @en Base URL for relative paths.
10
+ */
3
11
  baseUrl?: string;
12
+ /**
13
+ * @ru Настройки stealth-маскировки на уровне транспорта.
14
+ * @en Stealth masking settings at the transport level.
15
+ */
16
+ stealth?: StealthOptions;
4
17
  }
5
18
  /**
6
- * @ru Реализация транспорта для Node.js с использованием fetch.
7
- * @en Node.js transport implementation using fetch.
19
+ * @ru Реализация транспорта для Node.js с использованием нативных http/https модулей.
20
+ * Поддерживает stealth-маскировку, фрагментацию TLS Client Hello и автоматическую декомпрессию.
8
21
  */
9
22
  export declare class NodeTransport implements HyperTransport {
10
23
  config: NodeTransportConfig;
@@ -12,5 +25,7 @@ export declare class NodeTransport implements HyperTransport {
12
25
  private readonly cleanBaseUrl;
13
26
  constructor(config: NodeTransportConfig);
14
27
  execute(req: TransportRequest): Promise<TransportResponse>;
28
+ close(): Promise<void>;
29
+ destroy(): Promise<void>;
15
30
  }
16
31
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/transports/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAQzB;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAyUD;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IACnC,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;IAqF1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}