@hyperttp/transport-bun 0.2.1 → 0.2.2

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/bun.d.ts CHANGED
@@ -1,29 +1,92 @@
1
1
  import type { HttpClientOptions, HyperTransport, TransportRequest, TransportResponse } from "@hyperttp/types";
2
- export declare function fastGetHostname(url: string): string;
3
- export declare function getAbortError(signal?: AbortSignal): unknown;
2
+ /**
3
+ * @ru Конфигурация транспорта Bun.
4
+ * @en Bun transport configuration.
5
+ */
6
+ export interface BunTransportConfig extends HttpClientOptions {
7
+ /**
8
+ * @ru Базовый URL для всех запросов.
9
+ * @en Base URL for all requests.
10
+ */
11
+ baseUrl?: string;
12
+ }
13
+ /**
14
+ * @ru Высокопроизводительный HTTP-транспорт для Bun с нативными оптимизациями.
15
+ * Поддерживает cookies, concurrency control, таймауты, keepalive и TLS конфигурацию.
16
+ * @en High-performance HTTP transport for Bun with native optimizations.
17
+ * Supports cookies, concurrency control, timeouts, keepalive, and TLS configuration.
18
+ */
4
19
  export declare class BunTransport implements HyperTransport {
5
- config: HttpClientOptions;
6
- private readonly cookieJar;
7
- private readonly cookieCache;
20
+ config: BunTransportConfig;
21
+ private cookieJar;
22
+ private readonly cookieDomains;
23
+ private cookieCache;
24
+ private cookieCacheSize;
8
25
  private activeRequests;
9
- private readonly concurrencyQueue;
26
+ private concurrencyQueue;
10
27
  private queueHead;
28
+ private queueTail;
11
29
  private hasCookies;
12
30
  private _maxConcurrent;
13
31
  private _timeout;
14
32
  private _userAgent;
15
33
  private _keepalive;
16
34
  private _tlsConfig;
17
- constructor(config: HttpClientOptions);
35
+ /**
36
+ * @ru Создаёт экземпляр BunTransport.
37
+ * @en Creates a BunTransport instance.
38
+ * @param config - Transport configuration.
39
+ */
40
+ constructor(config: BunTransportConfig);
41
+ /**
42
+ * @ru Инвалидирует кэшированные настройки при изменении конфигурации.
43
+ * @en Invalidates cached settings when configuration changes.
44
+ */
18
45
  private invalidateConfig;
46
+ /**
47
+ * @ru Выполняет HTTP-запрос через нативный fetch Bun.
48
+ * @en Executes an HTTP request via Bun's native fetch.
49
+ * @param req - The normalized transport request.
50
+ * @returns Promise resolving to the transport response.
51
+ */
19
52
  execute(req: TransportRequest): Promise<TransportResponse>;
53
+ /**
54
+ * @ru Подготавливает заголовки запроса, добавляя User-Agent и cookies.
55
+ * @en Prepares request headers, adding User-Agent and cookies.
56
+ * @param req - The transport request.
57
+ * @returns The prepared headers or undefined.
58
+ */
59
+ private prepareHeaders;
60
+ /**
61
+ * @ru Ожидает свободный слот в очереди concurrency.
62
+ * @en Waits for an available slot in the concurrency queue.
63
+ * @param signal - Optional abort signal.
64
+ * @returns Promise that resolves when a slot is available.
65
+ */
20
66
  private waitForSlot;
67
+ /**
68
+ * @ru Освобождает слот и уведомляет следующий запрос в очереди.
69
+ * @en Releases a slot and notifies the next request in the queue.
70
+ */
21
71
  private releaseSlot;
22
- private prepareHeaders;
23
- private maybeStoreCookies;
72
+ /**
73
+ * @ru Извлекает cookies для указанного домена из cookie jar.
74
+ * @en Retrieves cookies for the specified domain from the cookie jar.
75
+ * @param requestDomain - The domain to get cookies for.
76
+ * @returns The cookie string or empty string.
77
+ */
24
78
  private getCookiesForDomain;
25
- private updateCookies;
79
+ /**
80
+ * @ru Мягко закрывает транспорт, очищая очереди и cookies.
81
+ * @en Gracefully closes the transport, clearing queues and cookies.
82
+ * @returns Promise that resolves when the transport is closed.
83
+ */
26
84
  close(): Promise<void>;
85
+ /**
86
+ * @ru Принудительно уничтожает транспорт и все активные соединения.
87
+ * @en Immediately destroys the transport and all active connections.
88
+ * @returns Promise that resolves when the transport is destroyed.
89
+ */
27
90
  destroy(): Promise<void>;
28
91
  }
29
92
  //# sourceMappingURL=bun.d.ts.map
package/bun.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AA0BzB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkDnD;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAK3D;AAED,qBAAa,YAAa,YAAW,cAAc;IAC1C,MAAM,EAAE,iBAAiB,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0C;IACpE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAmC;gBAEzC,MAAM,EAAE,iBAAiB;IAKrC,OAAO,CAAC,gBAAgB;IASX,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAgEzD,WAAW;IAkBzB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,aAAa;IA8CR,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
1
+ {"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AA4HzB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,cAAc;IAC1C,MAAM,EAAE,kBAAkB,CAAC;IAElC,OAAO,CAAC,SAAS,CAA+D;IAChF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAgD;IAElE;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAKtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;OAKG;IACU,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsEvE;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;;;OAKG;YACW,WAAW;IAmBzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
package/bun.js CHANGED
@@ -1,36 +1,42 @@
1
- const hostnameCache = new Map();
2
- async function streamDump() {
3
- return this.cancel().catch(() => { });
4
- }
5
- function attachDump(stream) {
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- stream.dump = streamDump;
8
- return stream;
9
- }
10
- export function fastGetHostname(url) {
1
+ /**
2
+ * @ru Кэш hostname'ов для быстрого извлечения домена из URL.
3
+ * @en Hostname cache for fast domain extraction from URLs.
4
+ */
5
+ let hostnameCacheSize = 0;
6
+ let hostnameCache = Object.create(null);
7
+ let lastUrl = "";
8
+ let lastHost = "";
9
+ /**
10
+ * @ru Быстрое извлечение hostname из URL с кэшированием.
11
+ * @en Fast hostname extraction from URL with caching.
12
+ * @param url - The URL to extract hostname from.
13
+ * @returns The extracted hostname.
14
+ */
15
+ function fastGetHostname(url) {
16
+ if (url === lastUrl)
17
+ return lastHost;
11
18
  if (!url)
12
19
  return "localhost";
13
- const cached = hostnameCache.get(url);
14
- if (cached)
20
+ const cached = hostnameCache[url];
21
+ if (cached !== undefined) {
22
+ lastUrl = url;
23
+ lastHost = cached;
15
24
  return cached;
25
+ }
16
26
  let start = 0;
17
- if (url.charCodeAt(0) === 47) {
18
- if (url.charCodeAt(1) === 47) {
19
- start = 2;
20
- }
21
- else {
22
- hostnameCache.set(url, "localhost");
27
+ const first = url.charCodeAt(0);
28
+ if (first === 47) {
29
+ start = url.charCodeAt(1) === 47 ? 2 : 0;
30
+ if (start === 0)
23
31
  return "localhost";
24
- }
25
32
  }
26
33
  else {
27
34
  const schemeIdx = url.indexOf("://");
28
- if (schemeIdx !== -1) {
35
+ if (schemeIdx !== -1)
29
36
  start = schemeIdx + 3;
30
- }
31
37
  }
32
38
  let end = url.length;
33
- for (let i = start; i < url.length; i++) {
39
+ for (let i = start; i < end; i++) {
34
40
  const code = url.charCodeAt(i);
35
41
  if (code === 47 || code === 63 || code === 35) {
36
42
  end = i;
@@ -38,257 +44,332 @@ export function fastGetHostname(url) {
38
44
  }
39
45
  }
40
46
  const atIdx = url.indexOf("@", start);
41
- if (atIdx !== -1 && atIdx < end) {
47
+ if (atIdx !== -1 && atIdx < end)
42
48
  start = atIdx + 1;
43
- }
44
49
  const colonIdx = url.indexOf(":", start);
45
- if (colonIdx !== -1 && colonIdx < end) {
50
+ if (colonIdx !== -1 && colonIdx < end)
46
51
  end = colonIdx;
47
- }
48
52
  const host = url.slice(start, end) || "localhost";
49
- if (hostnameCache.size > 512) {
50
- hostnameCache.clear();
53
+ if (hostnameCacheSize > 1024) {
54
+ hostnameCache = Object.create(null);
55
+ hostnameCacheSize = 0;
51
56
  }
52
- hostnameCache.set(url, host);
57
+ hostnameCache[url] = host;
58
+ hostnameCacheSize++;
59
+ lastUrl = url;
60
+ lastHost = host;
53
61
  return host;
54
62
  }
55
- export function getAbortError(signal) {
56
- return (signal?.reason ??
57
- new DOMException("The operation was aborted.", "AbortError"));
63
+ /**
64
+ * @ru Разрешает относительный URL относительно baseUrl.
65
+ * @en Resolves a relative URL against a baseUrl.
66
+ * @param baseUrl - The base URL.
67
+ * @param url - The URL to resolve.
68
+ * @returns The resolved absolute URL.
69
+ */
70
+ function resolveUrl(baseUrl, url) {
71
+ if (url.charCodeAt(0) === 47)
72
+ return baseUrl + url;
73
+ if (url.startsWith("http://") || url.startsWith("https://"))
74
+ return url;
75
+ return baseUrl + "/" + url;
76
+ }
77
+ /**
78
+ * @ru Кэшированные DOMException для частых ошибок abort/timeout.
79
+ * @en Cached DOMException for frequent abort/timeout errors.
80
+ */
81
+ const ABORT_ERROR = new DOMException("The operation was aborted.", "AbortError");
82
+ const TIMEOUT_ERROR = new DOMException("The operation was aborted due to timeout.", "TimeoutError");
83
+ /**
84
+ * @ru Извлекает причину abort из signal или возвращает кэшированную ошибку.
85
+ * @en Extracts abort reason from signal or returns cached error.
86
+ * @param signal - Optional abort signal.
87
+ * @returns The abort error or reason.
88
+ */
89
+ function getAbortError(signal) {
90
+ return signal?.reason ?? ABORT_ERROR;
58
91
  }
92
+ /**
93
+ * @ru Нормализует тело запроса в формат, совместимый с fetch.
94
+ * @en Normalizes request body to fetch-compatible format.
95
+ * @param body - The request body to normalize.
96
+ * @returns The normalized body or undefined.
97
+ */
98
+ function normalizeBody(body) {
99
+ if (body == null)
100
+ return undefined;
101
+ if (typeof body === "string")
102
+ return body;
103
+ if (body instanceof Uint8Array)
104
+ return body;
105
+ if (body instanceof ArrayBuffer)
106
+ return body;
107
+ if (ArrayBuffer.isView(body))
108
+ return body;
109
+ if (typeof ReadableStream !== "undefined" && body instanceof ReadableStream)
110
+ return body;
111
+ if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams)
112
+ return body;
113
+ if (typeof FormData !== "undefined" && body instanceof FormData)
114
+ return body;
115
+ if (typeof Blob !== "undefined" && body instanceof Blob)
116
+ return body;
117
+ if (typeof body === "object")
118
+ return JSON.stringify(body);
119
+ return String(body);
120
+ }
121
+ /**
122
+ * @ru Высокопроизводительный HTTP-транспорт для Bun с нативными оптимизациями.
123
+ * Поддерживает cookies, concurrency control, таймауты, keepalive и TLS конфигурацию.
124
+ * @en High-performance HTTP transport for Bun with native optimizations.
125
+ * Supports cookies, concurrency control, timeouts, keepalive, and TLS configuration.
126
+ */
59
127
  export class BunTransport {
60
128
  config;
61
- cookieJar = new Map();
62
- cookieCache = new Map();
129
+ cookieJar = Object.create(null);
130
+ cookieDomains = [];
131
+ cookieCache = Object.create(null);
132
+ cookieCacheSize = 0;
63
133
  activeRequests = 0;
64
- concurrencyQueue = [];
134
+ concurrencyQueue = Object.create(null);
65
135
  queueHead = 0;
136
+ queueTail = 0;
66
137
  hasCookies = false;
67
138
  _maxConcurrent = 0;
68
139
  _timeout = 0;
69
140
  _userAgent = undefined;
70
141
  _keepalive = false;
71
- _tlsConfig;
142
+ _tlsConfig = null;
143
+ /**
144
+ * @ru Создаёт экземпляр BunTransport.
145
+ * @en Creates a BunTransport instance.
146
+ * @param config - Transport configuration.
147
+ */
72
148
  constructor(config) {
73
149
  this.config = config;
74
150
  this.invalidateConfig();
75
151
  }
152
+ /**
153
+ * @ru Инвалидирует кэшированные настройки при изменении конфигурации.
154
+ * @en Invalidates cached settings when configuration changes.
155
+ */
76
156
  invalidateConfig() {
77
- const net = this.config.network;
157
+ const net = this.config?.network;
78
158
  this._maxConcurrent = net?.maxConcurrent ?? 0;
79
159
  this._timeout = net?.timeout ?? 0;
80
160
  this._userAgent = net?.userAgent;
81
161
  this._keepalive = !!net?.keepAliveTimeout;
82
- this._tlsConfig = { rejectUnauthorized: net?.rejectUnauthorized ?? true };
162
+ this._tlsConfig = (net?.rejectUnauthorized ?? true) ? null : { rejectUnauthorized: false };
83
163
  }
164
+ /**
165
+ * @ru Выполняет HTTP-запрос через нативный fetch Bun.
166
+ * @en Executes an HTTP request via Bun's native fetch.
167
+ * @param req - The normalized transport request.
168
+ * @returns Promise resolving to the transport response.
169
+ */
84
170
  async execute(req) {
85
171
  const maxConcurrent = this._maxConcurrent;
86
172
  const timeoutMs = this._timeout;
87
173
  let signal = req.signal;
174
+ let timer = null;
88
175
  if (timeoutMs > 0) {
89
- const timeoutSignal = AbortSignal.timeout(timeoutMs);
90
- signal = req.signal
91
- ? AbortSignal.any([req.signal, timeoutSignal])
92
- : timeoutSignal;
176
+ if (!signal) {
177
+ signal = AbortSignal.timeout(timeoutMs);
178
+ }
179
+ else if (signal.aborted) {
180
+ throw getAbortError(signal);
181
+ }
182
+ else {
183
+ const controller = new AbortController();
184
+ const originalSignal = signal;
185
+ originalSignal.addEventListener("abort", () => controller.abort(originalSignal.reason), {
186
+ once: true,
187
+ });
188
+ timer = setTimeout(() => controller.abort(TIMEOUT_ERROR), timeoutMs);
189
+ signal = controller.signal;
190
+ }
93
191
  }
94
192
  if (signal?.aborted)
95
193
  throw getAbortError(signal);
96
194
  if (maxConcurrent > 0 && this.activeRequests >= maxConcurrent) {
97
195
  await this.waitForSlot(signal);
196
+ if (signal?.aborted)
197
+ throw getAbortError(signal);
98
198
  }
99
- if (signal?.aborted)
100
- throw getAbortError(signal);
101
199
  this.activeRequests++;
102
200
  try {
201
+ const headers = this.prepareHeaders(req);
202
+ const fullUrl = resolveUrl(this.config?.baseUrl ?? "", req.url);
103
203
  const init = {
104
204
  method: req.method,
105
- headers: this.prepareHeaders(req),
106
- body: req.body,
107
- signal,
108
- keepalive: this._keepalive,
109
205
  redirect: "manual",
110
- tls: this._tlsConfig,
111
206
  };
112
- const nativeRes = await fetch(req.url, init);
113
- if (nativeRes.headers.has("set-cookie")) {
114
- this.maybeStoreCookies(req.url, nativeRes.headers);
207
+ if (headers !== undefined)
208
+ init.headers = headers;
209
+ if (req.body !== undefined)
210
+ init.body = normalizeBody(req.body);
211
+ if (signal !== undefined)
212
+ init.signal = signal;
213
+ if (this._keepalive)
214
+ init.keepalive = true;
215
+ if (this._tlsConfig !== null)
216
+ init.tls = this._tlsConfig;
217
+ const nativeRes = await fetch(fullUrl, init);
218
+ if (timer !== null) {
219
+ clearTimeout(timer);
220
+ timer = null;
115
221
  }
116
- const body = nativeRes.body ? attachDump(nativeRes.body) : null;
117
- // ОПТИМИЗАЦИЯ: Высокопроизводительный нативный экспорт без Proxy.
118
- // Коллбэк внутри `.forEach()` в Bun вызывается напрямую из C++ обертки.
119
- // На выходе получаем чистый, полностью мутабельный объект со склеенными заголовками.
120
- const headers = {};
121
- nativeRes.headers.forEach((value, key) => {
122
- headers[key] = value;
123
- });
124
222
  return {
125
223
  status: nativeRes.status,
126
- headers,
127
224
  url: nativeRes.url,
128
- body,
225
+ body: nativeRes.body,
226
+ headers: nativeRes.headers,
129
227
  };
130
228
  }
229
+ catch (err) {
230
+ if (timer !== null)
231
+ clearTimeout(timer);
232
+ throw err;
233
+ }
131
234
  finally {
132
235
  this.activeRequests--;
133
- if (maxConcurrent > 0) {
236
+ if (maxConcurrent > 0)
134
237
  this.releaseSlot();
238
+ }
239
+ }
240
+ /**
241
+ * @ru Подготавливает заголовки запроса, добавляя User-Agent и cookies.
242
+ * @en Prepares request headers, adding User-Agent and cookies.
243
+ * @param req - The transport request.
244
+ * @returns The prepared headers or undefined.
245
+ */
246
+ prepareHeaders(req) {
247
+ const original = req.headers;
248
+ const needUA = this._userAgent !== undefined;
249
+ const needCookies = this.hasCookies;
250
+ if (!needUA && !needCookies)
251
+ return original;
252
+ if (original == null) {
253
+ const headers = Object.create(null);
254
+ if (needUA)
255
+ headers["user-agent"] = this._userAgent;
256
+ if (needCookies) {
257
+ const savedCookies = this.getCookiesForDomain(fastGetHostname(req.url));
258
+ if (savedCookies.length > 0)
259
+ headers["cookie"] = savedCookies;
260
+ }
261
+ return headers;
262
+ }
263
+ if (needUA && original["user-agent"] === undefined) {
264
+ original["user-agent"] = this._userAgent;
265
+ }
266
+ if (needCookies) {
267
+ const savedCookies = this.getCookiesForDomain(fastGetHostname(req.url));
268
+ if (savedCookies.length > 0) {
269
+ const currentCookie = original["cookie"];
270
+ original["cookie"] = currentCookie ? currentCookie + "; " + savedCookies : savedCookies;
135
271
  }
136
272
  }
273
+ return original;
137
274
  }
275
+ /**
276
+ * @ru Ожидает свободный слот в очереди concurrency.
277
+ * @en Waits for an available slot in the concurrency queue.
278
+ * @param signal - Optional abort signal.
279
+ * @returns Promise that resolves when a slot is available.
280
+ */
138
281
  async waitForSlot(signal) {
139
282
  return new Promise((resolve, reject) => {
283
+ const currentTail = this.queueTail++;
140
284
  const onAbort = () => {
141
285
  signal?.removeEventListener("abort", onAbort);
286
+ delete this.concurrencyQueue[currentTail];
142
287
  reject(getAbortError(signal));
143
288
  };
144
- if (signal) {
289
+ if (signal)
145
290
  signal.addEventListener("abort", onAbort, { once: true });
146
- }
147
- this.concurrencyQueue.push(() => {
291
+ this.concurrencyQueue[currentTail] = () => {
148
292
  signal?.removeEventListener("abort", onAbort);
149
293
  resolve();
150
- });
294
+ };
151
295
  });
152
296
  }
297
+ /**
298
+ * @ru Освобождает слот и уведомляет следующий запрос в очереди.
299
+ * @en Releases a slot and notifies the next request in the queue.
300
+ */
153
301
  releaseSlot() {
154
- const len = this.concurrencyQueue.length;
155
- while (this.queueHead < len) {
156
- const next = this.concurrencyQueue[this.queueHead++];
157
- if (next) {
302
+ while (this.queueHead < this.queueTail) {
303
+ const next = this.concurrencyQueue[this.queueHead];
304
+ if (next !== undefined) {
305
+ delete this.concurrencyQueue[this.queueHead];
306
+ this.queueHead++;
158
307
  next();
159
- break;
308
+ return;
160
309
  }
310
+ this.queueHead++;
161
311
  }
162
- if (this.queueHead === len) {
163
- this.concurrencyQueue.length = 0;
164
- this.queueHead = 0;
165
- }
166
- else if (this.queueHead > 128) {
167
- this.concurrencyQueue.splice(0, this.queueHead);
312
+ if (this.queueHead === this.queueTail) {
168
313
  this.queueHead = 0;
314
+ this.queueTail = 0;
169
315
  }
170
316
  }
171
- prepareHeaders(req) {
172
- const headers = {};
173
- const original = req.headers;
174
- if (original != null) {
175
- for (const key in original) {
176
- const value = original[key];
177
- if (value == null)
178
- continue;
179
- if (typeof value === "string") {
180
- headers[key] = value;
181
- }
182
- else {
183
- headers[key] =
184
- key.length === 6 && (key === "Cookie" || key === "cookie")
185
- ? value.join("; ")
186
- : value.join(", ");
187
- }
188
- }
189
- }
190
- const ua = this._userAgent;
191
- if (ua !== undefined &&
192
- headers["User-Agent"] === undefined &&
193
- headers["user-agent"] === undefined) {
194
- headers["User-Agent"] = ua;
195
- }
196
- if (!this.hasCookies) {
197
- const userCookie = headers["Cookie"];
198
- if (userCookie !== undefined) {
199
- headers["Cookie"] = userCookie.trim();
200
- }
201
- return headers;
202
- }
203
- const domain = fastGetHostname(req.url);
204
- const savedCookies = this.getCookiesForDomain(domain);
205
- const hasSavedCookies = savedCookies.length > 0;
206
- const userCookie = headers["Cookie"];
207
- const hasUserCookie = userCookie !== undefined && userCookie.length > 0;
208
- if (hasUserCookie && hasSavedCookies) {
209
- headers["Cookie"] = `${userCookie.trim()}; ${savedCookies}`;
210
- }
211
- else if (hasUserCookie) {
212
- headers["Cookie"] = userCookie.trim();
213
- }
214
- else if (hasSavedCookies) {
215
- headers["Cookie"] = savedCookies;
216
- }
217
- return headers;
218
- }
219
- maybeStoreCookies(requestUrl, headers) {
220
- const setCookies = headers.getSetCookie?.();
221
- if (!setCookies || setCookies.length === 0)
222
- return;
223
- this.updateCookies(fastGetHostname(requestUrl), setCookies);
224
- }
317
+ /**
318
+ * @ru Извлекает cookies для указанного домена из cookie jar.
319
+ * @en Retrieves cookies for the specified domain from the cookie jar.
320
+ * @param requestDomain - The domain to get cookies for.
321
+ * @returns The cookie string or empty string.
322
+ */
225
323
  getCookiesForDomain(requestDomain) {
226
- const cached = this.cookieCache.get(requestDomain);
324
+ const cached = this.cookieCache[requestDomain];
227
325
  if (cached !== undefined)
228
326
  return cached;
229
- const matchedCookies = [];
230
- for (const [storedDomain, cookiesMap] of this.cookieJar) {
231
- if (requestDomain === storedDomain ||
232
- requestDomain.endsWith("." + storedDomain)) {
233
- for (const [key, val] of cookiesMap) {
234
- matchedCookies.push(`${key}=${val}`);
235
- }
236
- }
237
- }
238
- const result = matchedCookies.length > 0 ? matchedCookies.join("; ") : "";
239
- this.cookieCache.set(requestDomain, result);
240
- return result;
241
- }
242
- updateCookies(requestDomain, setCookies) {
243
- this.hasCookies = true;
244
- for (const cookieStr of setCookies) {
245
- if (!cookieStr)
327
+ let result = "";
328
+ const domainsLen = this.cookieDomains.length;
329
+ for (let i = 0; i < domainsLen; i++) {
330
+ const storedDomain = this.cookieDomains[i];
331
+ if (!storedDomain)
246
332
  continue;
247
- const parts = cookieStr.split(";");
248
- const rawPair = parts[0];
249
- if (!rawPair)
333
+ if (requestDomain !== storedDomain && !requestDomain.endsWith("." + storedDomain))
250
334
  continue;
251
- const equalIdx = rawPair.indexOf("=");
252
- if (equalIdx === -1)
335
+ const cookiesMap = this.cookieJar[storedDomain];
336
+ if (!cookiesMap)
253
337
  continue;
254
- const key = rawPair.slice(0, equalIdx).trim();
255
- const val = rawPair.slice(equalIdx + 1).trim();
256
- if (!key)
257
- continue;
258
- let targetDomain = requestDomain;
259
- for (let i = 1; i < parts.length; i++) {
260
- const attr = parts[i];
261
- if (!attr)
262
- continue;
263
- const trimmed = attr.trim();
264
- if (trimmed.toLowerCase().startsWith("domain=")) {
265
- let domVal = trimmed.slice(7).trim();
266
- if (domVal.startsWith("."))
267
- domVal = domVal.slice(1);
268
- if (domVal)
269
- targetDomain = domVal;
270
- break;
271
- }
272
- }
273
- let domainMap = this.cookieJar.get(targetDomain);
274
- if (!domainMap) {
275
- domainMap = new Map();
276
- this.cookieJar.set(targetDomain, domainMap);
338
+ for (const key in cookiesMap) {
339
+ if (result.length > 0)
340
+ result += "; ";
341
+ result += key + "=" + cookiesMap[key];
277
342
  }
278
- domainMap.set(key, val);
279
343
  }
280
- if (this.cookieCache.size > 0) {
281
- this.cookieCache.clear();
344
+ if (this.cookieCacheSize > 1024) {
345
+ this.cookieCache = Object.create(null);
346
+ this.cookieCacheSize = 0;
282
347
  }
348
+ this.cookieCache[requestDomain] = result;
349
+ this.cookieCacheSize++;
350
+ return result;
283
351
  }
352
+ /**
353
+ * @ru Мягко закрывает транспорт, очищая очереди и cookies.
354
+ * @en Gracefully closes the transport, clearing queues and cookies.
355
+ * @returns Promise that resolves when the transport is closed.
356
+ */
284
357
  async close() {
285
- this.concurrencyQueue.length = 0;
358
+ this.concurrencyQueue = Object.create(null);
286
359
  this.queueHead = 0;
287
- this.cookieJar.clear();
288
- this.cookieCache.clear();
360
+ this.queueTail = 0;
361
+ this.cookieJar = Object.create(null);
362
+ this.cookieDomains.length = 0;
363
+ this.cookieCache = Object.create(null);
364
+ this.cookieCacheSize = 0;
289
365
  this.activeRequests = 0;
290
366
  this.hasCookies = false;
291
367
  }
368
+ /**
369
+ * @ru Принудительно уничтожает транспорт и все активные соединения.
370
+ * @en Immediately destroys the transport and all active connections.
371
+ * @returns Promise that resolves when the transport is destroyed.
372
+ */
292
373
  async destroy() {
293
374
  await this.close();
294
375
  }
package/bun.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAkBA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,KAAK,UAAU,UAAU;IACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,MAAkC;IAElC,8DAA8D;IAC7D,MAAc,CAAC,IAAI,GAAG,UAAU,CAAC;IAClC,OAAO,MAA6C,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAE7B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC7B,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACpC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAC9C,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAChC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACtC,GAAG,GAAG,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC;IAElD,IAAI,aAAa,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;QAC7B,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,OAAO,CACL,MAAM,EAAE,MAAM;QACd,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAY;IAChB,MAAM,CAAoB;IAEhB,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,cAAc,GAAG,CAAC,CAAC;IACV,gBAAgB,GAAsB,EAAE,CAAC;IAClD,SAAS,GAAG,CAAC,CAAC;IAEd,UAAU,GAAG,KAAK,CAAC;IAEnB,cAAc,GAAG,CAAC,CAAC;IACnB,QAAQ,GAAG,CAAC,CAAC;IACb,UAAU,GAAuB,SAAS,CAAC;IAC3C,UAAU,GAAG,KAAK,CAAC;IACnB,UAAU,CAAmC;IAErD,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,aAAa,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,SAAS,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,IAAI,IAAI,EAAE,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAqB;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAExB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,CAAC,MAAM;gBACjB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC9C,CAAC,CAAC,aAAa,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,aAAa,EAAE,CAAC;YAC9D,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAmB;gBAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBACjC,IAAI,EAAE,GAAG,CAAC,IAAuB;gBACjC,MAAM;gBACN,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,QAAQ,EAAE,QAAQ;gBAClB,GAAG,EAAE,IAAI,CAAC,UAAU;aACrB,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEhE,kEAAkE;YAClE,wEAAwE;YACxE,qFAAqF;YACrF,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,OAAO;gBACP,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,IAAI;aACL,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAoB;QAC5C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAqB;QAC1C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAE7B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,KAAK,IAAI,IAAI;oBAAE,SAAS;gBAE5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC;wBACV,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,CAAC;4BACxD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;4BAClB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,IACE,EAAE,KAAK,SAAS;YAChB,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS;YACnC,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EACnC,CAAC;YACD,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAExE,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;YACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,UAAkB,EAAE,OAAgB;QAC5D,MAAM,UAAU,GAAI,OAAsB,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAEO,mBAAmB,CAAC,aAAqB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxD,IACE,aAAa,KAAK,YAAY;gBAC9B,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC,EAC1C,CAAC;gBACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;oBACpC,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,aAAqB,EAAE,UAAoB;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,SAAS;YAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG;gBAAE,SAAS;YAEnB,IAAI,YAAY,GAAG,aAAa,CAAC;YAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChD,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,MAAM;wBAAE,YAAY,GAAG,MAAM,CAAC;oBAClC,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { fastGetHostname, BunTransport } from "./bun.js";
1
+ export { BunTransport } from "./bun.js";
2
2
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { fastGetHostname, BunTransport } from "./bun.js";
1
+ export { BunTransport } from "./bun.js";
2
2
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,22 +1,24 @@
1
1
  {
2
2
  "name": "@hyperttp/transport-bun",
3
- "version": "0.2.1",
4
- "description": "High-performance, extensible HTTP client for Bun",
3
+ "version": "0.2.2",
4
+ "description": "High-performance HTTP transport for Bun with native fetch optimizations",
5
5
  "type": "module",
6
+ "sideEffects": false,
7
+ "main": "./index.js",
8
+ "types": "./index.d.ts",
6
9
  "exports": {
7
10
  ".": {
8
11
  "types": "./index.d.ts",
9
- "import": "./index.js",
10
- "require": "./index.js"
11
- },
12
- "./package.json": "./package.json"
12
+ "import": "./index.js"
13
+ }
13
14
  },
14
15
  "keywords": [
15
16
  "http",
16
- "client",
17
+ "transport",
17
18
  "high-performance",
18
19
  "fetch",
19
- "bun"
20
+ "bun",
21
+ "hyperttp"
20
22
  ],
21
23
  "author": "dirold2",
22
24
  "license": "MIT",
@@ -25,7 +27,7 @@
25
27
  "url": "git+https://github.com/IT-IF-OR/hyperttp-transport-bun.git"
26
28
  },
27
29
  "peerDependencies": {
28
- "@hyperttp/types": "^0.2.0"
30
+ "@hyperttp/types": "^0.2.1"
29
31
  },
30
32
  "private": false
31
33
  }