elit 3.6.6 → 3.6.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.
Files changed (155) hide show
  1. package/Cargo.lock +1 -1
  2. package/Cargo.toml +1 -1
  3. package/README.md +20 -1
  4. package/dist/build.cjs +421 -331
  5. package/dist/build.d.ts +1 -19
  6. package/dist/build.js +420 -330
  7. package/dist/build.mjs +420 -330
  8. package/dist/chokidar.cjs +219 -182
  9. package/dist/chokidar.d.ts +25 -10
  10. package/dist/chokidar.js +217 -182
  11. package/dist/chokidar.mjs +218 -183
  12. package/dist/cli.cjs +25197 -22128
  13. package/dist/cli.d.ts +19 -37
  14. package/dist/cli.mjs +26668 -23614
  15. package/dist/config.cjs +357 -350
  16. package/dist/config.d.ts +17 -245
  17. package/dist/config.js +520 -515
  18. package/dist/config.mjs +346 -341
  19. package/dist/contracts-D7KIS-TK.d.ts +36 -0
  20. package/dist/contracts-_0p1-15U.d.ts +54 -0
  21. package/dist/coverage.cjs +448 -485
  22. package/dist/coverage.d.ts +13 -62
  23. package/dist/coverage.js +447 -484
  24. package/dist/coverage.mjs +447 -484
  25. package/dist/database.cjs +819 -828
  26. package/dist/database.d.ts +8 -24
  27. package/dist/database.js +818 -829
  28. package/dist/database.mjs +818 -829
  29. package/dist/desktop-auto-render.cjs +1700 -1523
  30. package/dist/desktop-auto-render.d.ts +4 -12
  31. package/dist/desktop-auto-render.js +1695 -1518
  32. package/dist/desktop-auto-render.mjs +1696 -1519
  33. package/dist/desktop.cjs +3 -1
  34. package/dist/desktop.d.ts +4 -1
  35. package/dist/desktop.js +1 -1
  36. package/dist/desktop.mjs +1 -1
  37. package/dist/dev-build.cjs +830 -0
  38. package/dist/dev-build.d.ts +53 -0
  39. package/dist/dev-build.js +3318 -0
  40. package/dist/dev-build.mjs +797 -0
  41. package/dist/dom.cjs +717 -591
  42. package/dist/dom.d.ts +2 -17
  43. package/dist/dom.js +714 -588
  44. package/dist/dom.mjs +716 -590
  45. package/dist/el.cjs +62 -52
  46. package/dist/el.d.ts +5 -12
  47. package/dist/el.js +60 -52
  48. package/dist/el.mjs +60 -52
  49. package/dist/fs.cjs +72 -63
  50. package/dist/fs.d.ts +22 -19
  51. package/dist/fs.js +71 -62
  52. package/dist/fs.mjs +71 -62
  53. package/dist/hmr.cjs +40 -14
  54. package/dist/hmr.d.ts +11 -23
  55. package/dist/hmr.js +38 -14
  56. package/dist/hmr.mjs +38 -14
  57. package/dist/http.cjs +411 -140
  58. package/dist/http.d.ts +40 -112
  59. package/dist/http.js +409 -140
  60. package/dist/http.mjs +409 -140
  61. package/dist/https.cjs +716 -272
  62. package/dist/https.d.ts +46 -41
  63. package/dist/https.js +712 -270
  64. package/dist/https.mjs +714 -272
  65. package/dist/index.cjs +7502 -7691
  66. package/dist/index.d.ts +6 -3
  67. package/dist/index.js +7486 -7677
  68. package/dist/index.mjs +7497 -7687
  69. package/dist/mime-types.cjs +10 -4
  70. package/dist/mime-types.d.ts +8 -11
  71. package/dist/mime-types.js +9 -3
  72. package/dist/mime-types.mjs +9 -3
  73. package/dist/native.cjs +8616 -8870
  74. package/dist/native.d.ts +7 -10
  75. package/dist/native.js +8682 -8936
  76. package/dist/native.mjs +8615 -8869
  77. package/dist/path.cjs +83 -77
  78. package/dist/path.d.ts +29 -29
  79. package/dist/path.js +82 -76
  80. package/dist/path.mjs +82 -76
  81. package/dist/pm-node-shared-listener-bootstrap.cjs +75 -0
  82. package/dist/pm.cjs +5267 -0
  83. package/dist/pm.d.ts +331 -0
  84. package/dist/pm.js +7575 -0
  85. package/dist/pm.mjs +5148 -0
  86. package/dist/preview-build.cjs +712 -0
  87. package/dist/preview-build.d.ts +59 -0
  88. package/dist/preview-build.js +3194 -0
  89. package/dist/preview-build.mjs +676 -0
  90. package/dist/render-context.cjs +13 -2
  91. package/dist/render-context.d.ts +9 -34
  92. package/dist/render-context.js +11 -2
  93. package/dist/render-context.mjs +11 -2
  94. package/dist/router.cjs +787 -646
  95. package/dist/router.d.ts +8 -14
  96. package/dist/router.js +786 -645
  97. package/dist/router.mjs +786 -645
  98. package/dist/runtime.cjs +1 -1
  99. package/dist/runtime.js +1 -1
  100. package/dist/runtime.mjs +1 -1
  101. package/dist/server.cjs +3702 -2883
  102. package/dist/server.d.ts +47 -5
  103. package/dist/server.js +4007 -3165
  104. package/dist/server.mjs +3665 -2848
  105. package/dist/smtp-server.cjs +16 -3
  106. package/dist/smtp-server.d.ts +12 -26
  107. package/dist/smtp-server.js +55 -17
  108. package/dist/smtp-server.mjs +16 -3
  109. package/dist/state.cjs +768 -659
  110. package/dist/state.d.ts +11 -71
  111. package/dist/state.js +760 -651
  112. package/dist/state.mjs +767 -658
  113. package/dist/style.cjs +1011 -968
  114. package/dist/style.d.ts +13 -127
  115. package/dist/style.js +1009 -970
  116. package/dist/style.mjs +1011 -971
  117. package/dist/test-reporter.cjs +332 -316
  118. package/dist/test-reporter.d.ts +28 -33
  119. package/dist/test-reporter.js +328 -312
  120. package/dist/test-reporter.mjs +328 -312
  121. package/dist/test-runtime.cjs +927 -968
  122. package/dist/test-runtime.d.ts +24 -99
  123. package/dist/test-runtime.js +922 -965
  124. package/dist/test-runtime.mjs +922 -965
  125. package/dist/test.cjs +4428 -4273
  126. package/dist/test.d.ts +2 -8
  127. package/dist/test.js +4307 -4154
  128. package/dist/test.mjs +4419 -4267
  129. package/dist/types-BONVzPtp.d.ts +59 -0
  130. package/dist/types-BR4wMiVx.d.ts +32 -0
  131. package/dist/types-BayMVo_k.d.ts +278 -0
  132. package/dist/types-C4gKykuG.d.ts +23 -0
  133. package/dist/types-C70T-42Z.d.ts +64 -0
  134. package/dist/types-Ckj8md_j.d.ts +84 -0
  135. package/dist/types-CpjQTAkX.d.ts +24 -0
  136. package/dist/types-D0LjrYjS.d.ts +14 -0
  137. package/dist/types-DPOgoGs-.d.ts +81 -0
  138. package/dist/types-fiLday0L.d.ts +199 -0
  139. package/dist/types.d.ts +54 -237
  140. package/dist/universal.cjs +1 -1
  141. package/dist/universal.d.ts +1 -7
  142. package/dist/universal.js +1 -1
  143. package/dist/universal.mjs +1 -1
  144. package/dist/websocket-BLBEAnhp.d.ts +119 -0
  145. package/dist/ws.cjs +129 -108
  146. package/dist/ws.d.ts +21 -131
  147. package/dist/ws.js +128 -109
  148. package/dist/ws.mjs +128 -109
  149. package/dist/wss.cjs +938 -512
  150. package/dist/wss.d.ts +31 -28
  151. package/dist/wss.js +932 -508
  152. package/dist/wss.mjs +936 -512
  153. package/package.json +18 -6
  154. package/vendor/epaint-0.31.1/src/image.rs +418 -0
  155. package/dist/server-uMQvZAll.d.ts +0 -458
package/dist/https.mjs CHANGED
@@ -26,42 +26,78 @@ var __copyProps = (to, from, except, desc) => {
26
26
  };
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
 
29
- // src/runtime.ts
30
- var runtime, isNode, isBun, isDeno;
31
- var init_runtime = __esm({
32
- "src/runtime.ts"() {
33
- "use strict";
34
- runtime = (() => {
35
- if (typeof Deno !== "undefined") return "deno";
36
- if (typeof Bun !== "undefined") return "bun";
37
- return "node";
38
- })();
39
- isNode = runtime === "node";
40
- isBun = runtime === "bun";
41
- isDeno = runtime === "deno";
42
- }
43
- });
44
-
45
- // src/http.ts
46
- var http_exports = {};
47
- __export(http_exports, {
48
- Agent: () => Agent,
49
- ClientRequest: () => ClientRequest,
50
- IncomingMessage: () => IncomingMessage,
51
- METHODS: () => METHODS,
52
- STATUS_CODES: () => STATUS_CODES,
53
- Server: () => Server,
54
- ServerResponse: () => ServerResponse,
55
- createServer: () => createServer,
56
- default: () => http_default,
57
- get: () => get,
58
- getRuntime: () => getRuntime,
59
- request: () => request
60
- });
61
- import { EventEmitter } from "events";
29
+ // src/server/http/utils.ts
62
30
  function queueCallback(callback) {
63
31
  if (callback) queueMicrotask(callback);
64
32
  }
33
+ function getRequestPath(url) {
34
+ if (!url) return "";
35
+ try {
36
+ const urlObj = new URL(url);
37
+ return urlObj.pathname + urlObj.search;
38
+ } catch {
39
+ return url;
40
+ }
41
+ }
42
+ function headersToRecord(headers) {
43
+ const result = /* @__PURE__ */ Object.create(null);
44
+ headers.forEach((value, key) => {
45
+ result[key] = value;
46
+ });
47
+ return result;
48
+ }
49
+ function headersToRawHeaders(headers) {
50
+ const rawHeaders = [];
51
+ headers.forEach((value, key) => {
52
+ rawHeaders.push(key, value);
53
+ });
54
+ return rawHeaders;
55
+ }
56
+ function normalizeRequestBodyChunk(chunk, encoding = "utf8") {
57
+ if (typeof chunk === "string") {
58
+ if (encoding !== "utf8" && typeof Buffer !== "undefined") {
59
+ return Buffer.from(chunk, encoding);
60
+ }
61
+ return chunk;
62
+ }
63
+ if (chunk instanceof Uint8Array) {
64
+ return chunk;
65
+ }
66
+ if (chunk instanceof ArrayBuffer) {
67
+ return new Uint8Array(chunk);
68
+ }
69
+ if (ArrayBuffer.isView(chunk)) {
70
+ return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
71
+ }
72
+ return new TextEncoder().encode(String(chunk));
73
+ }
74
+ function buildRequestBody(chunks) {
75
+ if (chunks.length === 0) {
76
+ return void 0;
77
+ }
78
+ if (chunks.length === 1) {
79
+ return chunks[0];
80
+ }
81
+ if (chunks.every((chunk) => typeof chunk === "string")) {
82
+ return chunks.join("");
83
+ }
84
+ const encoder = new TextEncoder();
85
+ const bodyParts = chunks.map((chunk) => typeof chunk === "string" ? encoder.encode(chunk) : chunk);
86
+ const totalLength = bodyParts.reduce((sum, part) => sum + part.byteLength, 0);
87
+ const body = new Uint8Array(totalLength);
88
+ let offset = 0;
89
+ for (const part of bodyParts) {
90
+ body.set(part, offset);
91
+ offset += part.byteLength;
92
+ }
93
+ return body;
94
+ }
95
+ function isFetchResponse(value) {
96
+ return typeof value?.status === "number" && typeof value?.statusText === "string" && typeof value?.headers?.forEach === "function";
97
+ }
98
+ function isNodeIncomingMessage(value) {
99
+ return typeof value?.on === "function" && typeof value?.headers === "object" && (typeof value?.httpVersion === "string" || value?.socket !== void 0);
100
+ }
65
101
  function headersToInit(headers) {
66
102
  const result = {};
67
103
  for (const key in headers) {
@@ -86,68 +122,119 @@ function closeAndEmit(server, callback) {
86
122
  server.emit("close");
87
123
  if (callback) queueMicrotask(() => callback());
88
124
  }
89
- function createServer(optionsOrListener, requestListener) {
90
- return new Server(typeof optionsOrListener === "function" ? optionsOrListener : requestListener);
91
- }
92
- function request(url, options, callback) {
93
- const urlString = typeof url === "string" ? url : url.toString();
94
- const req = new ClientRequest(urlString, options);
95
- if (isNode) {
96
- const urlObj = new URL(urlString);
97
- const client = urlObj.protocol === "https:" ? https : http;
98
- const nodeReq = client.request(urlString, {
99
- method: options?.method || "GET",
100
- headers: options?.headers,
101
- timeout: options?.timeout,
102
- signal: options?.signal
103
- }, (res) => {
104
- const incomingMessage = new IncomingMessage(res);
105
- if (callback) callback(incomingMessage);
106
- req.emit("response", incomingMessage);
107
- });
108
- nodeReq.on("error", (error) => req.emit("error", error));
109
- nodeReq.end();
110
- } else {
111
- queueMicrotask(async () => {
112
- try {
113
- const response = await fetch(urlString, {
114
- method: options?.method || "GET",
115
- headers: options?.headers,
116
- signal: options?.signal
117
- });
118
- const fetchRequest = new Request(urlString);
119
- const incomingMessage = new IncomingMessage(fetchRequest);
120
- incomingMessage.statusCode = response.status;
121
- incomingMessage.statusMessage = response.statusText;
122
- if (callback) callback(incomingMessage);
123
- req.emit("response", incomingMessage);
124
- } catch (error) {
125
- req.emit("error", error);
125
+ var init_utils = __esm({
126
+ "src/server/http/utils.ts"() {
127
+ "use strict";
128
+ }
129
+ });
130
+
131
+ // src/shares/runtime.ts
132
+ var runtime, isNode, isBun, isDeno;
133
+ var init_runtime = __esm({
134
+ "src/shares/runtime.ts"() {
135
+ "use strict";
136
+ runtime = (() => {
137
+ if (typeof Deno !== "undefined") return "deno";
138
+ if (typeof Bun !== "undefined") return "bun";
139
+ return "node";
140
+ })();
141
+ isNode = runtime === "node";
142
+ isBun = runtime === "bun";
143
+ isDeno = runtime === "deno";
144
+ }
145
+ });
146
+
147
+ // src/server/http/agent.ts
148
+ var Agent2;
149
+ var init_agent = __esm({
150
+ "src/server/http/agent.ts"() {
151
+ "use strict";
152
+ Agent2 = class {
153
+ constructor(options) {
154
+ this.options = options;
126
155
  }
127
- });
156
+ };
128
157
  }
129
- return req;
130
- }
131
- function get(url, options, callback) {
132
- return request(url, { ...options, method: "GET" }, callback);
133
- }
134
- function getRuntime() {
135
- return runtime;
136
- }
137
- var http, https, METHODS, STATUS_CODES, IncomingMessage, ServerResponse, Server, ClientRequest, Agent, http_default;
138
- var init_http = __esm({
139
- "src/http.ts"() {
158
+ });
159
+
160
+ // src/server/http/client-request.ts
161
+ import { EventEmitter as EventEmitter2 } from "events";
162
+ var ClientRequest2;
163
+ var init_client_request = __esm({
164
+ "src/server/http/client-request.ts"() {
140
165
  "use strict";
141
- init_runtime();
142
- if (isNode && typeof process !== "undefined") {
143
- try {
144
- http = __require("http");
145
- https = __require("https");
146
- } catch (e) {
147
- http = __require("http");
148
- https = __require("https");
166
+ init_utils();
167
+ ClientRequest2 = class extends EventEmitter2 {
168
+ constructor(_url, _options = {}) {
169
+ super();
170
+ this._bodyChunks = [];
171
+ this._ended = false;
149
172
  }
150
- }
173
+ _setNativeRequest(nativeRequest) {
174
+ this._nativeRequest = nativeRequest;
175
+ }
176
+ _setExecutor(executor) {
177
+ this._executor = executor;
178
+ }
179
+ write(chunk, encoding, callback) {
180
+ if (this._ended) {
181
+ throw new Error("Cannot write after end");
182
+ }
183
+ if (typeof encoding === "function") {
184
+ callback = encoding;
185
+ encoding = void 0;
186
+ }
187
+ if (this._nativeRequest) {
188
+ const actualEncoding2 = typeof encoding === "string" ? encoding : void 0;
189
+ return this._nativeRequest.write(chunk, actualEncoding2, callback);
190
+ }
191
+ const actualEncoding = typeof encoding === "string" ? encoding : "utf8";
192
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, actualEncoding));
193
+ queueCallback(callback);
194
+ return true;
195
+ }
196
+ end(chunk, encoding, callback) {
197
+ if (typeof chunk === "function") {
198
+ callback = chunk;
199
+ chunk = void 0;
200
+ encoding = void 0;
201
+ } else if (typeof encoding === "function") {
202
+ callback = encoding;
203
+ encoding = void 0;
204
+ }
205
+ if (this._ended) {
206
+ queueCallback(callback);
207
+ return;
208
+ }
209
+ this._ended = true;
210
+ if (this._nativeRequest) {
211
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
212
+ if (chunk !== void 0) {
213
+ this._nativeRequest.end(chunk, actualEncoding, callback);
214
+ } else {
215
+ this._nativeRequest.end(callback);
216
+ }
217
+ return;
218
+ }
219
+ if (chunk !== void 0) {
220
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
221
+ }
222
+ const executor = this._executor;
223
+ const body = buildRequestBody(this._bodyChunks);
224
+ if (executor) {
225
+ Promise.resolve().then(() => executor(body)).catch((error) => this.emit("error", error));
226
+ }
227
+ queueCallback(callback);
228
+ }
229
+ };
230
+ }
231
+ });
232
+
233
+ // src/server/http/constants.ts
234
+ var METHODS, STATUS_CODES;
235
+ var init_constants = __esm({
236
+ "src/server/http/constants.ts"() {
237
+ "use strict";
151
238
  METHODS = [
152
239
  "GET",
153
240
  "POST",
@@ -215,13 +302,30 @@ var init_http = __esm({
215
302
  510: "Not Extended",
216
303
  511: "Network Authentication Required"
217
304
  };
218
- IncomingMessage = class extends EventEmitter {
219
- constructor(req) {
305
+ }
306
+ });
307
+
308
+ // src/server/http/incoming-message.ts
309
+ import { EventEmitter as EventEmitter3 } from "events";
310
+ var IncomingMessage;
311
+ var init_incoming_message = __esm({
312
+ "src/server/http/incoming-message.ts"() {
313
+ "use strict";
314
+ init_utils();
315
+ IncomingMessage = class extends EventEmitter3 {
316
+ constructor(req, requestMethod) {
220
317
  super();
221
318
  this.httpVersion = "1.1";
222
319
  this.rawHeaders = [];
223
320
  this._req = req;
224
- if (isNode) {
321
+ if (isFetchResponse(req)) {
322
+ this.method = requestMethod || "GET";
323
+ this.url = getRequestPath(req.url);
324
+ this.headers = headersToRecord(req.headers);
325
+ this.statusCode = req.status;
326
+ this.statusMessage = req.statusText;
327
+ this.rawHeaders = headersToRawHeaders(req.headers);
328
+ } else if (isNodeIncomingMessage(req)) {
225
329
  this.method = req.method;
226
330
  this.url = req.url;
227
331
  this.headers = req.headers;
@@ -232,14 +336,13 @@ var init_http = __esm({
232
336
  this.socket = req.socket;
233
337
  } else {
234
338
  this.method = req.method;
235
- const urlObj = new URL(req.url);
236
- this.url = urlObj.pathname + urlObj.search;
237
- this.headers = req.headers;
238
- this.rawHeaders = [];
339
+ this.url = getRequestPath(req.url);
340
+ this.headers = headersToRecord(req.headers);
341
+ this.rawHeaders = headersToRawHeaders(req.headers);
239
342
  }
240
343
  }
241
344
  async text() {
242
- if (isNode) {
345
+ if (isNodeIncomingMessage(this._req)) {
243
346
  return new Promise((resolve, reject) => {
244
347
  const chunks = [];
245
348
  this._req.on("data", (chunk) => chunks.push(chunk));
@@ -250,14 +353,92 @@ var init_http = __esm({
250
353
  return this._req.text();
251
354
  }
252
355
  async json() {
253
- if (isNode) {
356
+ if (isNodeIncomingMessage(this._req)) {
254
357
  const text = await this.text();
255
358
  return JSON.parse(text);
256
359
  }
257
360
  return this._req.json();
258
361
  }
259
362
  };
260
- ServerResponse = class extends EventEmitter {
363
+ }
364
+ });
365
+
366
+ // src/server/http/node-modules.ts
367
+ var http, https;
368
+ var init_node_modules = __esm({
369
+ "src/server/http/node-modules.ts"() {
370
+ "use strict";
371
+ init_runtime();
372
+ if (isNode && typeof process !== "undefined") {
373
+ try {
374
+ http = __require("http");
375
+ https = __require("https");
376
+ } catch {
377
+ http = __require("http");
378
+ https = __require("https");
379
+ }
380
+ }
381
+ }
382
+ });
383
+
384
+ // src/server/http/request-api.ts
385
+ function request(url, options, callback) {
386
+ const urlString = typeof url === "string" ? url : url.toString();
387
+ const req = new ClientRequest2(urlString, options);
388
+ if (isNode) {
389
+ const urlObj = new URL(urlString);
390
+ const client = urlObj.protocol === "https:" ? https : http;
391
+ const nodeReq = client.request(urlString, {
392
+ method: options?.method || "GET",
393
+ headers: options?.headers,
394
+ timeout: options?.timeout,
395
+ signal: options?.signal
396
+ }, (res) => {
397
+ const incomingMessage = new IncomingMessage(res);
398
+ if (callback) callback(incomingMessage);
399
+ req.emit("response", incomingMessage);
400
+ });
401
+ req._setNativeRequest(nodeReq);
402
+ nodeReq.on("error", (error) => req.emit("error", error));
403
+ } else {
404
+ req._setExecutor(async (body) => {
405
+ const response = await fetch(urlString, {
406
+ method: options?.method || "GET",
407
+ headers: options?.headers,
408
+ body,
409
+ signal: options?.signal
410
+ });
411
+ const incomingMessage = new IncomingMessage(response, options?.method || "GET");
412
+ if (callback) callback(incomingMessage);
413
+ req.emit("response", incomingMessage);
414
+ });
415
+ }
416
+ return req;
417
+ }
418
+ function get(url, options, callback) {
419
+ const req = request(url, { ...options, method: "GET" }, callback);
420
+ req.end();
421
+ return req;
422
+ }
423
+ var init_request_api = __esm({
424
+ "src/server/http/request-api.ts"() {
425
+ "use strict";
426
+ init_runtime();
427
+ init_client_request();
428
+ init_incoming_message();
429
+ init_node_modules();
430
+ }
431
+ });
432
+
433
+ // src/server/http/response.ts
434
+ import { EventEmitter as EventEmitter4 } from "events";
435
+ var ServerResponse;
436
+ var init_response = __esm({
437
+ "src/server/http/response.ts"() {
438
+ "use strict";
439
+ init_runtime();
440
+ init_utils();
441
+ ServerResponse = class extends EventEmitter4 {
261
442
  constructor(_req, nodeRes) {
262
443
  super();
263
444
  this.statusCode = 200;
@@ -390,7 +571,6 @@ var init_http = __esm({
390
571
  _setResolver(resolve) {
391
572
  this._resolve = resolve;
392
573
  }
393
- // Express.js-like methods
394
574
  json(data, statusCode = 200) {
395
575
  if (!this.headersSent) {
396
576
  this.setHeader("Content-Type", "application/json");
@@ -414,7 +594,36 @@ var init_http = __esm({
414
594
  return this;
415
595
  }
416
596
  };
417
- Server = class extends EventEmitter {
597
+ }
598
+ });
599
+
600
+ // src/server/http/runtime.ts
601
+ function getRuntime() {
602
+ return runtime;
603
+ }
604
+ var init_runtime2 = __esm({
605
+ "src/server/http/runtime.ts"() {
606
+ "use strict";
607
+ init_runtime();
608
+ }
609
+ });
610
+
611
+ // src/server/http/server-runtime.ts
612
+ import { EventEmitter as EventEmitter5 } from "events";
613
+ function createServer(arg1, arg2) {
614
+ const requestListener = typeof arg1 === "function" ? arg1 : arg2;
615
+ return new Server(requestListener);
616
+ }
617
+ var Server;
618
+ var init_server_runtime = __esm({
619
+ "src/server/http/server-runtime.ts"() {
620
+ "use strict";
621
+ init_runtime();
622
+ init_node_modules();
623
+ init_incoming_message();
624
+ init_response();
625
+ init_utils();
626
+ Server = class extends EventEmitter5 {
418
627
  constructor(requestListener) {
419
628
  super();
420
629
  this._bunWebSocketServers = /* @__PURE__ */ new Set();
@@ -427,9 +636,28 @@ var init_http = __esm({
427
636
  unregisterWebSocketServer(wsServer) {
428
637
  this._bunWebSocketServers.delete(wsServer);
429
638
  }
639
+ resolvePmInheritedFd(explicitPort, explicitFd) {
640
+ if (typeof explicitFd === "number" && Number.isInteger(explicitFd) && explicitFd >= 0) {
641
+ return explicitFd;
642
+ }
643
+ const fdValue = process.env.ELIT_PM_LISTEN_FD;
644
+ if (!fdValue) {
645
+ return void 0;
646
+ }
647
+ const parsedFd = Number.parseInt(fdValue, 10);
648
+ if (!Number.isInteger(parsedFd) || parsedFd < 0) {
649
+ return void 0;
650
+ }
651
+ const publicPort = Number.parseInt(process.env.ELIT_PM_PUBLIC_PORT ?? process.env.ELIT_PM_PORT ?? "", 10);
652
+ if (Number.isInteger(explicitPort) && Number.isInteger(publicPort) && explicitPort !== publicPort) {
653
+ return void 0;
654
+ }
655
+ return parsedFd;
656
+ }
430
657
  listen(...args) {
431
658
  let port = 3e3;
432
659
  let hostname = "0.0.0.0";
660
+ let fd;
433
661
  let callback;
434
662
  const firstArg = args[0];
435
663
  if (typeof firstArg === "number") {
@@ -444,8 +672,10 @@ var init_http = __esm({
444
672
  } else if (firstArg && typeof firstArg === "object") {
445
673
  port = firstArg.port || 3e3;
446
674
  hostname = firstArg.hostname || "0.0.0.0";
675
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
447
676
  callback = args[1];
448
677
  }
678
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
449
679
  const self = this;
450
680
  if (isNode) {
451
681
  this.nativeServer = http.createServer((req, res) => {
@@ -460,11 +690,19 @@ var init_http = __esm({
460
690
  this.nativeServer.on("upgrade", (req, socket, head) => {
461
691
  self.emit("upgrade", req, socket, head);
462
692
  });
463
- this.nativeServer.listen(port, hostname, () => {
464
- this._listening = true;
465
- this.emit("listening");
466
- if (callback) callback();
467
- });
693
+ if (fd !== void 0) {
694
+ this.nativeServer.listen({ fd, exclusive: false }, () => {
695
+ this._listening = true;
696
+ this.emit("listening");
697
+ if (callback) callback();
698
+ });
699
+ } else {
700
+ this.nativeServer.listen(port, hostname, () => {
701
+ this._listening = true;
702
+ this.emit("listening");
703
+ if (callback) callback();
704
+ });
705
+ }
468
706
  this.nativeServer.on("error", (err) => this.emit("error", err));
469
707
  this.nativeServer.on("close", () => {
470
708
  this._listening = false;
@@ -489,6 +727,8 @@ var init_http = __esm({
489
727
  const urlObj = new URL(req.url);
490
728
  const pathname = urlObj.pathname;
491
729
  const requestUrl = urlObj.pathname + urlObj.search;
730
+ const incomingHeaders = headersToRecord(req.headers);
731
+ const rawHeaders = headersToRawHeaders(req.headers);
492
732
  const upgradeHeader = req.headers.get("upgrade");
493
733
  if (upgradeHeader && upgradeHeader.toLowerCase() === "websocket") {
494
734
  const matchingWebSocketServer = Array.from(this._bunWebSocketServers).find((wsServer) => {
@@ -525,9 +765,9 @@ var init_http = __esm({
525
765
  const incomingMessage = {
526
766
  method: req.method,
527
767
  url: requestUrl,
528
- headers: req.headers,
768
+ headers: incomingHeaders,
529
769
  httpVersion: "1.1",
530
- rawHeaders: [],
770
+ rawHeaders,
531
771
  _req: req,
532
772
  text: () => req.text(),
533
773
  json: () => req.json()
@@ -581,57 +821,148 @@ var init_http = __esm({
581
821
  this.writeHead(statusCode);
582
822
  }
583
823
  responseReady = true;
584
- return this;
585
824
  }
586
825
  };
587
826
  if (self.requestListener) {
588
827
  self.requestListener(incomingMessage, serverResponse);
828
+ } else {
829
+ self.emit("request", incomingMessage, serverResponse);
589
830
  }
590
- if (responseReady) {
591
- return new Response(body, {
592
- status: statusCode,
593
- statusText: statusMessage,
594
- headers
595
- });
831
+ if (!responseReady) {
832
+ serverResponse.end();
596
833
  }
597
- return new Promise((resolve) => {
598
- serverResponse.end = (chunk) => {
599
- if (chunk !== void 0) {
600
- body += chunk;
601
- }
602
- resolve(new Response(body, {
603
- status: statusCode,
604
- statusText: statusMessage,
605
- headers
606
- }));
607
- };
834
+ return new Response(body, {
835
+ status: statusCode,
836
+ statusText: statusMessage,
837
+ headers
608
838
  });
609
839
  },
610
- error: createErrorResponse
840
+ error: (err) => {
841
+ this.emit("error", err);
842
+ return createErrorResponse();
843
+ }
611
844
  });
845
+ this._listening = true;
612
846
  emitListeningWithCallback(this, callback);
847
+ this.nativeServer.stop = this.nativeServer.stop || this.nativeServer.close;
848
+ this.nativeServer.close = this.nativeServer.close || this.nativeServer.stop;
849
+ this.nativeServer.on?.("close", () => {
850
+ this._listening = false;
851
+ this.emit("close");
852
+ });
613
853
  } else if (isDeno) {
854
+ const server = this;
614
855
  this.nativeServer = Deno.serve({
615
856
  port,
616
- hostname,
617
- handler: (req) => {
618
- return new Promise((resolve) => {
619
- const incomingMessage = new IncomingMessage(req);
620
- const serverResponse = new ServerResponse();
621
- serverResponse._setResolver(resolve);
622
- if (self.requestListener) {
623
- self.requestListener(incomingMessage, serverResponse);
624
- } else {
625
- self.emit("request", incomingMessage, serverResponse);
857
+ hostname
858
+ }, async (req) => {
859
+ const urlObj = new URL(req.url);
860
+ const requestUrl = urlObj.pathname + urlObj.search;
861
+ const incomingHeaders = headersToRecord(req.headers);
862
+ const rawHeaders = headersToRawHeaders(req.headers);
863
+ const bodyChunks = [];
864
+ const responseHeaders = new Headers();
865
+ let statusCode = 200;
866
+ let statusText = "OK";
867
+ let responseClosed = false;
868
+ const incomingMessage = {
869
+ method: req.method,
870
+ url: requestUrl,
871
+ headers: incomingHeaders,
872
+ httpVersion: "1.1",
873
+ rawHeaders,
874
+ _req: req,
875
+ text: () => req.text(),
876
+ json: () => req.json()
877
+ };
878
+ const serverResponse = {
879
+ statusCode: 200,
880
+ statusMessage: "OK",
881
+ headersSent: false,
882
+ setHeader(name, value) {
883
+ responseHeaders.set(name, Array.isArray(value) ? value.join(", ") : String(value));
884
+ return this;
885
+ },
886
+ getHeader(name) {
887
+ return responseHeaders.get(name) ?? void 0;
888
+ },
889
+ getHeaders() {
890
+ const headers = {};
891
+ responseHeaders.forEach((value, key) => {
892
+ headers[key] = value;
893
+ });
894
+ return headers;
895
+ },
896
+ writeHead(status, arg2, arg3) {
897
+ statusCode = status;
898
+ this.statusCode = status;
899
+ this.headersSent = true;
900
+ if (typeof arg2 === "string") {
901
+ statusText = arg2;
902
+ this.statusMessage = arg2;
903
+ if (arg3) {
904
+ Object.entries(arg3).forEach(([key, value]) => {
905
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
906
+ });
907
+ }
908
+ } else if (arg2) {
909
+ Object.entries(arg2).forEach(([key, value]) => {
910
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
911
+ });
626
912
  }
627
- });
628
- },
629
- onError: (error) => {
630
- this.emit("error", error);
631
- return createErrorResponse();
913
+ return this;
914
+ },
915
+ write(chunk) {
916
+ if (!this.headersSent) {
917
+ this.writeHead(statusCode);
918
+ }
919
+ if (typeof chunk === "string") {
920
+ bodyChunks.push(new TextEncoder().encode(chunk));
921
+ } else if (chunk instanceof Uint8Array) {
922
+ bodyChunks.push(chunk);
923
+ } else if (chunk !== void 0 && chunk !== null) {
924
+ bodyChunks.push(new TextEncoder().encode(String(chunk)));
925
+ }
926
+ return true;
927
+ },
928
+ end(chunk) {
929
+ if (chunk !== void 0) {
930
+ this.write(chunk);
931
+ }
932
+ if (!this.headersSent) {
933
+ this.writeHead(statusCode);
934
+ }
935
+ responseClosed = true;
936
+ }
937
+ };
938
+ if (server.requestListener) {
939
+ server.requestListener(incomingMessage, serverResponse);
940
+ } else {
941
+ server.emit("request", incomingMessage, serverResponse);
632
942
  }
943
+ if (!responseClosed) {
944
+ serverResponse.end();
945
+ }
946
+ const body = bodyChunks.length === 0 ? void 0 : (() => {
947
+ const totalLength = bodyChunks.reduce((sum, chunk) => sum + chunk.length, 0);
948
+ const output = new ArrayBuffer(totalLength);
949
+ const combined = new Uint8Array(output);
950
+ let offset = 0;
951
+ for (const chunk of bodyChunks) {
952
+ combined.set(chunk, offset);
953
+ offset += chunk.length;
954
+ }
955
+ return output;
956
+ })();
957
+ return new Response(body, {
958
+ status: statusCode,
959
+ statusText,
960
+ headers: responseHeaders
961
+ });
633
962
  });
963
+ this._listening = true;
634
964
  emitListeningWithCallback(this, callback);
965
+ this.nativeServer.finished.then(() => closeAndEmit(this)).catch((err) => this.emit("error", err));
635
966
  }
636
967
  return this;
637
968
  }
@@ -660,9 +991,11 @@ var init_http = __esm({
660
991
  return createAddress(0, addr, "unix");
661
992
  }
662
993
  return addr;
663
- } else if (isBun) {
994
+ }
995
+ if (isBun) {
664
996
  return createAddress(this.nativeServer.port, this.nativeServer.hostname);
665
- } else if (isDeno) {
997
+ }
998
+ if (isDeno) {
666
999
  const addr = this.nativeServer.addr;
667
1000
  return createAddress(addr.port, addr.hostname);
668
1001
  }
@@ -672,22 +1005,45 @@ var init_http = __esm({
672
1005
  return this._listening;
673
1006
  }
674
1007
  };
675
- ClientRequest = class extends EventEmitter {
676
- constructor(_url, _options = {}) {
677
- super();
678
- }
679
- write(_chunk) {
680
- return true;
681
- }
682
- end(callback) {
683
- queueCallback(callback);
684
- }
685
- };
686
- Agent = class {
687
- constructor(options) {
688
- this.options = options;
689
- }
690
- };
1008
+ }
1009
+ });
1010
+
1011
+ // src/server/http/index.ts
1012
+ var http_exports = {};
1013
+ __export(http_exports, {
1014
+ Agent: () => Agent2,
1015
+ ClientRequest: () => ClientRequest2,
1016
+ IncomingMessage: () => IncomingMessage,
1017
+ METHODS: () => METHODS,
1018
+ STATUS_CODES: () => STATUS_CODES,
1019
+ Server: () => Server,
1020
+ ServerResponse: () => ServerResponse,
1021
+ createServer: () => createServer,
1022
+ default: () => http_default,
1023
+ get: () => get,
1024
+ getRuntime: () => getRuntime,
1025
+ request: () => request
1026
+ });
1027
+ var http_default;
1028
+ var init_http = __esm({
1029
+ "src/server/http/index.ts"() {
1030
+ "use strict";
1031
+ init_agent();
1032
+ init_client_request();
1033
+ init_constants();
1034
+ init_incoming_message();
1035
+ init_request_api();
1036
+ init_response();
1037
+ init_runtime2();
1038
+ init_server_runtime();
1039
+ init_agent();
1040
+ init_client_request();
1041
+ init_constants();
1042
+ init_incoming_message();
1043
+ init_request_api();
1044
+ init_response();
1045
+ init_runtime2();
1046
+ init_server_runtime();
691
1047
  http_default = {
692
1048
  createServer,
693
1049
  request,
@@ -695,8 +1051,8 @@ var init_http = __esm({
695
1051
  Server,
696
1052
  IncomingMessage,
697
1053
  ServerResponse,
698
- Agent,
699
- ClientRequest,
1054
+ Agent: Agent2,
1055
+ ClientRequest: ClientRequest2,
700
1056
  METHODS,
701
1057
  STATUS_CODES,
702
1058
  getRuntime
@@ -704,28 +1060,83 @@ var init_http = __esm({
704
1060
  }
705
1061
  });
706
1062
 
707
- // src/https.ts
1063
+ // src/server/https/agent.ts
1064
+ var Agent = class {
1065
+ constructor(options) {
1066
+ this.options = options;
1067
+ }
1068
+ };
1069
+
1070
+ // src/server/https/client-request.ts
1071
+ init_utils();
1072
+ import { EventEmitter } from "events";
1073
+ var ClientRequest = class extends EventEmitter {
1074
+ constructor(_url, _options = {}) {
1075
+ super();
1076
+ this._bodyChunks = [];
1077
+ this._ended = false;
1078
+ }
1079
+ _setNativeRequest(nativeRequest) {
1080
+ this._nativeRequest = nativeRequest;
1081
+ }
1082
+ _setExecutor(executor) {
1083
+ this._executor = executor;
1084
+ }
1085
+ write(chunk, encoding, callback) {
1086
+ if (this._ended) {
1087
+ throw new Error("Cannot write after end");
1088
+ }
1089
+ if (typeof encoding === "function") {
1090
+ callback = encoding;
1091
+ encoding = void 0;
1092
+ }
1093
+ if (this._nativeRequest) {
1094
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
1095
+ return this._nativeRequest.write(chunk, actualEncoding, callback);
1096
+ }
1097
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
1098
+ queueCallback(callback);
1099
+ return true;
1100
+ }
1101
+ end(chunk, encoding, callback) {
1102
+ if (typeof chunk === "function") {
1103
+ callback = chunk;
1104
+ chunk = void 0;
1105
+ encoding = void 0;
1106
+ } else if (typeof encoding === "function") {
1107
+ callback = encoding;
1108
+ encoding = void 0;
1109
+ }
1110
+ if (this._ended) {
1111
+ queueCallback(callback);
1112
+ return;
1113
+ }
1114
+ this._ended = true;
1115
+ if (this._nativeRequest) {
1116
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
1117
+ if (chunk !== void 0) {
1118
+ this._nativeRequest.end(chunk, actualEncoding, callback);
1119
+ } else {
1120
+ this._nativeRequest.end(callback);
1121
+ }
1122
+ return;
1123
+ }
1124
+ if (chunk !== void 0) {
1125
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
1126
+ }
1127
+ const executor = this._executor;
1128
+ const body = buildRequestBody(this._bodyChunks);
1129
+ if (executor) {
1130
+ Promise.resolve().then(() => executor(body)).catch((error) => this.emit("error", error));
1131
+ }
1132
+ queueCallback(callback);
1133
+ }
1134
+ };
1135
+
1136
+ // src/server/https/request-api.ts
708
1137
  init_runtime();
709
- import { EventEmitter as EventEmitter2 } from "events";
710
- function queueCallback2(callback) {
711
- if (callback) queueMicrotask(callback);
712
- }
713
- function createErrorResponse2() {
714
- return new Response("Internal Server Error", { status: 500 });
715
- }
716
- function createAddress2(port, address, family = "IPv4") {
717
- return { port, family, address };
718
- }
719
- function emitListeningWithCallback2(server, callback) {
720
- server._listening = true;
721
- server.emit("listening");
722
- queueCallback2(callback);
723
- }
724
- function closeAndEmit2(server, callback) {
725
- server._listening = false;
726
- server.emit("close");
727
- if (callback) queueMicrotask(() => callback());
728
- }
1138
+
1139
+ // src/server/https/http-classes.ts
729
1140
  function loadHttpClasses() {
730
1141
  const httpModule = (init_http(), __toCommonJS(http_exports));
731
1142
  return {
@@ -733,17 +1144,97 @@ function loadHttpClasses() {
733
1144
  ServerResponse: httpModule.ServerResponse
734
1145
  };
735
1146
  }
1147
+
1148
+ // src/server/https/node-modules.ts
1149
+ init_runtime();
736
1150
  var https2;
737
- var Server2 = class extends EventEmitter2 {
738
- constructor(options, requestListener) {
1151
+ if (isNode && typeof process !== "undefined") {
1152
+ try {
1153
+ https2 = __require("https");
1154
+ } catch {
1155
+ https2 = __require("https");
1156
+ }
1157
+ }
1158
+
1159
+ // src/server/https/request-api.ts
1160
+ function request2(url, options, callback) {
1161
+ const urlString = typeof url === "string" ? url : url.toString();
1162
+ const req = new ClientRequest(urlString, options);
1163
+ if (isNode) {
1164
+ const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
1165
+ const nodeReq = https2.request(urlString, {
1166
+ method: options?.method || "GET",
1167
+ headers: options?.headers,
1168
+ timeout: options?.timeout,
1169
+ signal: options?.signal
1170
+ }, (res) => {
1171
+ const incomingMessage = new IncomingMessage2(res);
1172
+ if (callback) callback(incomingMessage);
1173
+ req.emit("response", incomingMessage);
1174
+ });
1175
+ req._setNativeRequest(nodeReq);
1176
+ nodeReq.on("error", (error) => req.emit("error", error));
1177
+ } else {
1178
+ const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
1179
+ req._setExecutor(async (body) => {
1180
+ const response = await fetch(urlString, {
1181
+ method: options?.method || "GET",
1182
+ headers: options?.headers,
1183
+ body,
1184
+ signal: options?.signal
1185
+ });
1186
+ const incomingMessage = new IncomingMessage2(response, options?.method || "GET");
1187
+ if (callback) callback(incomingMessage);
1188
+ req.emit("response", incomingMessage);
1189
+ });
1190
+ }
1191
+ return req;
1192
+ }
1193
+ function get2(url, options, callback) {
1194
+ const req = request2(url, { ...options, method: "GET" }, callback);
1195
+ req.end();
1196
+ return req;
1197
+ }
1198
+
1199
+ // src/server/https/runtime.ts
1200
+ init_runtime();
1201
+ function getRuntime2() {
1202
+ return runtime;
1203
+ }
1204
+
1205
+ // src/server/https/server-runtime.ts
1206
+ init_runtime();
1207
+ init_utils();
1208
+ import { EventEmitter as EventEmitter6 } from "events";
1209
+ var Server2 = class extends EventEmitter6 {
1210
+ constructor(options = {}, requestListener) {
739
1211
  super();
740
1212
  this._listening = false;
741
1213
  this.options = options;
742
1214
  this.requestListener = requestListener;
743
1215
  }
1216
+ resolvePmInheritedFd(explicitPort, explicitFd) {
1217
+ if (typeof explicitFd === "number" && Number.isInteger(explicitFd) && explicitFd >= 0) {
1218
+ return explicitFd;
1219
+ }
1220
+ const fdValue = process.env.ELIT_PM_LISTEN_FD;
1221
+ if (!fdValue) {
1222
+ return void 0;
1223
+ }
1224
+ const parsedFd = Number.parseInt(fdValue, 10);
1225
+ if (!Number.isInteger(parsedFd) || parsedFd < 0) {
1226
+ return void 0;
1227
+ }
1228
+ const publicPort = Number.parseInt(process.env.ELIT_PM_PUBLIC_PORT ?? process.env.ELIT_PM_PORT ?? "", 10);
1229
+ if (Number.isInteger(explicitPort) && Number.isInteger(publicPort) && explicitPort !== publicPort) {
1230
+ return void 0;
1231
+ }
1232
+ return parsedFd;
1233
+ }
744
1234
  listen(...args) {
745
1235
  let port = 3e3;
746
1236
  let hostname = "0.0.0.0";
1237
+ let fd;
747
1238
  let callback;
748
1239
  const firstArg = args[0];
749
1240
  if (typeof firstArg === "number") {
@@ -758,12 +1249,13 @@ var Server2 = class extends EventEmitter2 {
758
1249
  } else if (firstArg && typeof firstArg === "object") {
759
1250
  port = firstArg.port || 3e3;
760
1251
  hostname = firstArg.hostname || "0.0.0.0";
1252
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
761
1253
  callback = args[1];
762
1254
  }
1255
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
763
1256
  const self = this;
764
1257
  if (isNode) {
765
1258
  const { IncomingMessage: IncomingMessage2, ServerResponse: ServerResponse2 } = loadHttpClasses();
766
- if (!https2) https2 = __require("https");
767
1259
  this.nativeServer = https2.createServer(this.options, (req, res) => {
768
1260
  const incomingMessage = new IncomingMessage2(req);
769
1261
  const serverResponse = new ServerResponse2(incomingMessage, res);
@@ -773,11 +1265,19 @@ var Server2 = class extends EventEmitter2 {
773
1265
  self.emit("request", incomingMessage, serverResponse);
774
1266
  }
775
1267
  });
776
- this.nativeServer.listen(port, hostname, () => {
777
- this._listening = true;
778
- this.emit("listening");
779
- if (callback) callback();
780
- });
1268
+ if (fd !== void 0) {
1269
+ this.nativeServer.listen({ fd, exclusive: false }, () => {
1270
+ this._listening = true;
1271
+ this.emit("listening");
1272
+ if (callback) callback();
1273
+ });
1274
+ } else {
1275
+ this.nativeServer.listen(port, hostname, () => {
1276
+ this._listening = true;
1277
+ this.emit("listening");
1278
+ if (callback) callback();
1279
+ });
1280
+ }
781
1281
  this.nativeServer.on("error", (err) => this.emit("error", err));
782
1282
  this.nativeServer.on("close", () => {
783
1283
  this._listening = false;
@@ -802,7 +1302,7 @@ var Server2 = class extends EventEmitter2 {
802
1302
  },
803
1303
  error: (error) => {
804
1304
  this.emit("error", error);
805
- return createErrorResponse2();
1305
+ return createErrorResponse();
806
1306
  }
807
1307
  };
808
1308
  if (this.options.key || this.options.cert) {
@@ -816,7 +1316,7 @@ var Server2 = class extends EventEmitter2 {
816
1316
  tlsOptions.tls = this.options.tls;
817
1317
  }
818
1318
  this.nativeServer = Bun.serve(tlsOptions);
819
- emitListeningWithCallback2(this, callback);
1319
+ emitListeningWithCallback(this, callback);
820
1320
  } else if (isDeno) {
821
1321
  const { IncomingMessage: IncomingMessage2, ServerResponse: ServerResponse2 } = loadHttpClasses();
822
1322
  const serveOptions = {
@@ -836,7 +1336,7 @@ var Server2 = class extends EventEmitter2 {
836
1336
  },
837
1337
  onError: (error) => {
838
1338
  this.emit("error", error);
839
- return createErrorResponse2();
1339
+ return createErrorResponse();
840
1340
  }
841
1341
  };
842
1342
  if (this.options.key && this.options.cert) {
@@ -844,23 +1344,23 @@ var Server2 = class extends EventEmitter2 {
844
1344
  serveOptions.key = this.options.key;
845
1345
  }
846
1346
  this.nativeServer = Deno.serve(serveOptions);
847
- emitListeningWithCallback2(this, callback);
1347
+ emitListeningWithCallback(this, callback);
848
1348
  }
849
1349
  return this;
850
1350
  }
851
1351
  close(callback) {
852
1352
  if (!this.nativeServer) {
853
- if (callback) queueMicrotask(() => callback());
1353
+ if (callback) queueCallback(() => callback());
854
1354
  return this;
855
1355
  }
856
1356
  if (isNode) {
857
1357
  this.nativeServer.close(callback);
858
1358
  } else if (isBun) {
859
1359
  this.nativeServer.stop();
860
- closeAndEmit2(this, callback);
1360
+ closeAndEmit(this, callback);
861
1361
  } else if (isDeno) {
862
1362
  this.nativeServer.shutdown();
863
- closeAndEmit2(this, callback);
1363
+ closeAndEmit(this, callback);
864
1364
  }
865
1365
  return this;
866
1366
  }
@@ -870,14 +1370,16 @@ var Server2 = class extends EventEmitter2 {
870
1370
  const addr = this.nativeServer.address();
871
1371
  if (!addr) return null;
872
1372
  if (typeof addr === "string") {
873
- return createAddress2(0, addr, "unix");
1373
+ return createAddress(0, addr, "unix");
874
1374
  }
875
1375
  return addr;
876
- } else if (isBun) {
877
- return createAddress2(this.nativeServer.port, this.nativeServer.hostname);
878
- } else if (isDeno) {
1376
+ }
1377
+ if (isBun) {
1378
+ return createAddress(this.nativeServer.port, this.nativeServer.hostname);
1379
+ }
1380
+ if (isDeno) {
879
1381
  const addr = this.nativeServer.addr;
880
- return createAddress2(addr.port, addr.hostname);
1382
+ return createAddress(addr.port, addr.hostname);
881
1383
  }
882
1384
  return null;
883
1385
  }
@@ -885,83 +1387,23 @@ var Server2 = class extends EventEmitter2 {
885
1387
  return this._listening;
886
1388
  }
887
1389
  };
888
- var ClientRequest2 = class extends EventEmitter2 {
889
- constructor(_url, _options = {}) {
890
- super();
891
- }
892
- write(_chunk) {
893
- return true;
894
- }
895
- end(callback) {
896
- queueCallback2(callback);
897
- }
898
- };
899
- var Agent2 = class {
900
- constructor(options) {
901
- this.options = options;
902
- }
903
- };
904
- function createServer2(options, requestListener) {
1390
+ function createServer2(options = {}, requestListener) {
905
1391
  return new Server2(options, requestListener);
906
1392
  }
907
- function request2(url, options, callback) {
908
- const urlString = typeof url === "string" ? url : url.toString();
909
- const req = new ClientRequest2(urlString, options);
910
- if (isNode) {
911
- const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
912
- if (!https2) https2 = __require("https");
913
- const nodeReq = https2.request(urlString, {
914
- method: options?.method || "GET",
915
- headers: options?.headers,
916
- timeout: options?.timeout,
917
- signal: options?.signal
918
- }, (res) => {
919
- const incomingMessage = new IncomingMessage2(res);
920
- if (callback) callback(incomingMessage);
921
- req.emit("response", incomingMessage);
922
- });
923
- nodeReq.on("error", (error) => req.emit("error", error));
924
- nodeReq.end();
925
- } else {
926
- const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
927
- queueMicrotask(async () => {
928
- try {
929
- const response = await fetch(urlString, {
930
- method: options?.method || "GET",
931
- headers: options?.headers,
932
- signal: options?.signal
933
- });
934
- const fetchRequest = new Request(urlString);
935
- const incomingMessage = new IncomingMessage2(fetchRequest);
936
- incomingMessage.statusCode = response.status;
937
- incomingMessage.statusMessage = response.statusText;
938
- if (callback) callback(incomingMessage);
939
- req.emit("response", incomingMessage);
940
- } catch (error) {
941
- req.emit("error", error);
942
- }
943
- });
944
- }
945
- return req;
946
- }
947
- function get2(url, options, callback) {
948
- return request2(url, { ...options, method: "GET" }, callback);
949
- }
950
- function getRuntime2() {
951
- return runtime;
952
- }
1393
+
1394
+ // src/server/https/index.ts
953
1395
  var https_default = {
954
1396
  createServer: createServer2,
955
1397
  request: request2,
956
1398
  get: get2,
957
1399
  Server: Server2,
958
- Agent: Agent2,
959
- ClientRequest: ClientRequest2,
1400
+ Agent,
1401
+ ClientRequest,
960
1402
  getRuntime: getRuntime2
961
1403
  };
962
1404
  export {
963
- Agent2 as Agent,
964
- ClientRequest2 as ClientRequest,
1405
+ Agent,
1406
+ ClientRequest,
965
1407
  Server2 as Server,
966
1408
  createServer2 as createServer,
967
1409
  https_default as default,