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.cjs CHANGED
@@ -20,41 +20,78 @@ var __copyProps = (to, from, except, desc) => {
20
20
  };
21
21
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
22
 
23
- // src/runtime.ts
24
- var runtime, isNode, isBun, isDeno;
25
- var init_runtime = __esm({
26
- "src/runtime.ts"() {
27
- "use strict";
28
- runtime = (() => {
29
- if (typeof Deno !== "undefined") return "deno";
30
- if (typeof Bun !== "undefined") return "bun";
31
- return "node";
32
- })();
33
- isNode = runtime === "node";
34
- isBun = runtime === "bun";
35
- isDeno = runtime === "deno";
36
- }
37
- });
38
-
39
- // src/http.ts
40
- var http_exports = {};
41
- __export(http_exports, {
42
- Agent: () => Agent,
43
- ClientRequest: () => ClientRequest,
44
- IncomingMessage: () => IncomingMessage,
45
- METHODS: () => METHODS,
46
- STATUS_CODES: () => STATUS_CODES,
47
- Server: () => Server,
48
- ServerResponse: () => ServerResponse,
49
- createServer: () => createServer,
50
- default: () => http_default,
51
- get: () => get,
52
- getRuntime: () => getRuntime,
53
- request: () => request
54
- });
23
+ // src/server/http/utils.ts
55
24
  function queueCallback(callback) {
56
25
  if (callback) queueMicrotask(callback);
57
26
  }
27
+ function getRequestPath(url) {
28
+ if (!url) return "";
29
+ try {
30
+ const urlObj = new URL(url);
31
+ return urlObj.pathname + urlObj.search;
32
+ } catch {
33
+ return url;
34
+ }
35
+ }
36
+ function headersToRecord(headers) {
37
+ const result = /* @__PURE__ */ Object.create(null);
38
+ headers.forEach((value, key) => {
39
+ result[key] = value;
40
+ });
41
+ return result;
42
+ }
43
+ function headersToRawHeaders(headers) {
44
+ const rawHeaders = [];
45
+ headers.forEach((value, key) => {
46
+ rawHeaders.push(key, value);
47
+ });
48
+ return rawHeaders;
49
+ }
50
+ function normalizeRequestBodyChunk(chunk, encoding = "utf8") {
51
+ if (typeof chunk === "string") {
52
+ if (encoding !== "utf8" && typeof Buffer !== "undefined") {
53
+ return Buffer.from(chunk, encoding);
54
+ }
55
+ return chunk;
56
+ }
57
+ if (chunk instanceof Uint8Array) {
58
+ return chunk;
59
+ }
60
+ if (chunk instanceof ArrayBuffer) {
61
+ return new Uint8Array(chunk);
62
+ }
63
+ if (ArrayBuffer.isView(chunk)) {
64
+ return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
65
+ }
66
+ return new TextEncoder().encode(String(chunk));
67
+ }
68
+ function buildRequestBody(chunks) {
69
+ if (chunks.length === 0) {
70
+ return void 0;
71
+ }
72
+ if (chunks.length === 1) {
73
+ return chunks[0];
74
+ }
75
+ if (chunks.every((chunk) => typeof chunk === "string")) {
76
+ return chunks.join("");
77
+ }
78
+ const encoder = new TextEncoder();
79
+ const bodyParts = chunks.map((chunk) => typeof chunk === "string" ? encoder.encode(chunk) : chunk);
80
+ const totalLength = bodyParts.reduce((sum, part) => sum + part.byteLength, 0);
81
+ const body = new Uint8Array(totalLength);
82
+ let offset = 0;
83
+ for (const part of bodyParts) {
84
+ body.set(part, offset);
85
+ offset += part.byteLength;
86
+ }
87
+ return body;
88
+ }
89
+ function isFetchResponse(value) {
90
+ return typeof value?.status === "number" && typeof value?.statusText === "string" && typeof value?.headers?.forEach === "function";
91
+ }
92
+ function isNodeIncomingMessage(value) {
93
+ return typeof value?.on === "function" && typeof value?.headers === "object" && (typeof value?.httpVersion === "string" || value?.socket !== void 0);
94
+ }
58
95
  function headersToInit(headers) {
59
96
  const result = {};
60
97
  for (const key in headers) {
@@ -79,69 +116,119 @@ function closeAndEmit(server, callback) {
79
116
  server.emit("close");
80
117
  if (callback) queueMicrotask(() => callback());
81
118
  }
82
- function createServer(optionsOrListener, requestListener) {
83
- return new Server(typeof optionsOrListener === "function" ? optionsOrListener : requestListener);
84
- }
85
- function request(url, options, callback) {
86
- const urlString = typeof url === "string" ? url : url.toString();
87
- const req = new ClientRequest(urlString, options);
88
- if (isNode) {
89
- const urlObj = new URL(urlString);
90
- const client = urlObj.protocol === "https:" ? https : http;
91
- const nodeReq = client.request(urlString, {
92
- method: options?.method || "GET",
93
- headers: options?.headers,
94
- timeout: options?.timeout,
95
- signal: options?.signal
96
- }, (res) => {
97
- const incomingMessage = new IncomingMessage(res);
98
- if (callback) callback(incomingMessage);
99
- req.emit("response", incomingMessage);
100
- });
101
- nodeReq.on("error", (error) => req.emit("error", error));
102
- nodeReq.end();
103
- } else {
104
- queueMicrotask(async () => {
105
- try {
106
- const response = await fetch(urlString, {
107
- method: options?.method || "GET",
108
- headers: options?.headers,
109
- signal: options?.signal
110
- });
111
- const fetchRequest = new Request(urlString);
112
- const incomingMessage = new IncomingMessage(fetchRequest);
113
- incomingMessage.statusCode = response.status;
114
- incomingMessage.statusMessage = response.statusText;
115
- if (callback) callback(incomingMessage);
116
- req.emit("response", incomingMessage);
117
- } catch (error) {
118
- req.emit("error", error);
119
+ var init_utils = __esm({
120
+ "src/server/http/utils.ts"() {
121
+ "use strict";
122
+ }
123
+ });
124
+
125
+ // src/shares/runtime.ts
126
+ var runtime, isNode, isBun, isDeno;
127
+ var init_runtime = __esm({
128
+ "src/shares/runtime.ts"() {
129
+ "use strict";
130
+ runtime = (() => {
131
+ if (typeof Deno !== "undefined") return "deno";
132
+ if (typeof Bun !== "undefined") return "bun";
133
+ return "node";
134
+ })();
135
+ isNode = runtime === "node";
136
+ isBun = runtime === "bun";
137
+ isDeno = runtime === "deno";
138
+ }
139
+ });
140
+
141
+ // src/server/http/agent.ts
142
+ var Agent2;
143
+ var init_agent = __esm({
144
+ "src/server/http/agent.ts"() {
145
+ "use strict";
146
+ Agent2 = class {
147
+ constructor(options) {
148
+ this.options = options;
119
149
  }
120
- });
150
+ };
121
151
  }
122
- return req;
123
- }
124
- function get(url, options, callback) {
125
- return request(url, { ...options, method: "GET" }, callback);
126
- }
127
- function getRuntime() {
128
- return runtime;
129
- }
130
- var import_node_events, http, https, METHODS, STATUS_CODES, IncomingMessage, ServerResponse, Server, ClientRequest, Agent, http_default;
131
- var init_http = __esm({
132
- "src/http.ts"() {
152
+ });
153
+
154
+ // src/server/http/client-request.ts
155
+ var import_node_events2, ClientRequest2;
156
+ var init_client_request = __esm({
157
+ "src/server/http/client-request.ts"() {
133
158
  "use strict";
134
- import_node_events = require("events");
135
- init_runtime();
136
- if (isNode && typeof process !== "undefined") {
137
- try {
138
- http = require("http");
139
- https = require("https");
140
- } catch (e) {
141
- http = require("http");
142
- https = require("https");
159
+ import_node_events2 = require("events");
160
+ init_utils();
161
+ ClientRequest2 = class extends import_node_events2.EventEmitter {
162
+ constructor(_url, _options = {}) {
163
+ super();
164
+ this._bodyChunks = [];
165
+ this._ended = false;
143
166
  }
144
- }
167
+ _setNativeRequest(nativeRequest) {
168
+ this._nativeRequest = nativeRequest;
169
+ }
170
+ _setExecutor(executor) {
171
+ this._executor = executor;
172
+ }
173
+ write(chunk, encoding, callback) {
174
+ if (this._ended) {
175
+ throw new Error("Cannot write after end");
176
+ }
177
+ if (typeof encoding === "function") {
178
+ callback = encoding;
179
+ encoding = void 0;
180
+ }
181
+ if (this._nativeRequest) {
182
+ const actualEncoding2 = typeof encoding === "string" ? encoding : void 0;
183
+ return this._nativeRequest.write(chunk, actualEncoding2, callback);
184
+ }
185
+ const actualEncoding = typeof encoding === "string" ? encoding : "utf8";
186
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, actualEncoding));
187
+ queueCallback(callback);
188
+ return true;
189
+ }
190
+ end(chunk, encoding, callback) {
191
+ if (typeof chunk === "function") {
192
+ callback = chunk;
193
+ chunk = void 0;
194
+ encoding = void 0;
195
+ } else if (typeof encoding === "function") {
196
+ callback = encoding;
197
+ encoding = void 0;
198
+ }
199
+ if (this._ended) {
200
+ queueCallback(callback);
201
+ return;
202
+ }
203
+ this._ended = true;
204
+ if (this._nativeRequest) {
205
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
206
+ if (chunk !== void 0) {
207
+ this._nativeRequest.end(chunk, actualEncoding, callback);
208
+ } else {
209
+ this._nativeRequest.end(callback);
210
+ }
211
+ return;
212
+ }
213
+ if (chunk !== void 0) {
214
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
215
+ }
216
+ const executor = this._executor;
217
+ const body = buildRequestBody(this._bodyChunks);
218
+ if (executor) {
219
+ Promise.resolve().then(() => executor(body)).catch((error) => this.emit("error", error));
220
+ }
221
+ queueCallback(callback);
222
+ }
223
+ };
224
+ }
225
+ });
226
+
227
+ // src/server/http/constants.ts
228
+ var METHODS, STATUS_CODES;
229
+ var init_constants = __esm({
230
+ "src/server/http/constants.ts"() {
231
+ "use strict";
145
232
  METHODS = [
146
233
  "GET",
147
234
  "POST",
@@ -209,13 +296,30 @@ var init_http = __esm({
209
296
  510: "Not Extended",
210
297
  511: "Network Authentication Required"
211
298
  };
212
- IncomingMessage = class extends import_node_events.EventEmitter {
213
- constructor(req) {
299
+ }
300
+ });
301
+
302
+ // src/server/http/incoming-message.ts
303
+ var import_node_events3, IncomingMessage;
304
+ var init_incoming_message = __esm({
305
+ "src/server/http/incoming-message.ts"() {
306
+ "use strict";
307
+ import_node_events3 = require("events");
308
+ init_utils();
309
+ IncomingMessage = class extends import_node_events3.EventEmitter {
310
+ constructor(req, requestMethod) {
214
311
  super();
215
312
  this.httpVersion = "1.1";
216
313
  this.rawHeaders = [];
217
314
  this._req = req;
218
- if (isNode) {
315
+ if (isFetchResponse(req)) {
316
+ this.method = requestMethod || "GET";
317
+ this.url = getRequestPath(req.url);
318
+ this.headers = headersToRecord(req.headers);
319
+ this.statusCode = req.status;
320
+ this.statusMessage = req.statusText;
321
+ this.rawHeaders = headersToRawHeaders(req.headers);
322
+ } else if (isNodeIncomingMessage(req)) {
219
323
  this.method = req.method;
220
324
  this.url = req.url;
221
325
  this.headers = req.headers;
@@ -226,14 +330,13 @@ var init_http = __esm({
226
330
  this.socket = req.socket;
227
331
  } else {
228
332
  this.method = req.method;
229
- const urlObj = new URL(req.url);
230
- this.url = urlObj.pathname + urlObj.search;
231
- this.headers = req.headers;
232
- this.rawHeaders = [];
333
+ this.url = getRequestPath(req.url);
334
+ this.headers = headersToRecord(req.headers);
335
+ this.rawHeaders = headersToRawHeaders(req.headers);
233
336
  }
234
337
  }
235
338
  async text() {
236
- if (isNode) {
339
+ if (isNodeIncomingMessage(this._req)) {
237
340
  return new Promise((resolve, reject) => {
238
341
  const chunks = [];
239
342
  this._req.on("data", (chunk) => chunks.push(chunk));
@@ -244,14 +347,92 @@ var init_http = __esm({
244
347
  return this._req.text();
245
348
  }
246
349
  async json() {
247
- if (isNode) {
350
+ if (isNodeIncomingMessage(this._req)) {
248
351
  const text = await this.text();
249
352
  return JSON.parse(text);
250
353
  }
251
354
  return this._req.json();
252
355
  }
253
356
  };
254
- ServerResponse = class extends import_node_events.EventEmitter {
357
+ }
358
+ });
359
+
360
+ // src/server/http/node-modules.ts
361
+ var http, https;
362
+ var init_node_modules = __esm({
363
+ "src/server/http/node-modules.ts"() {
364
+ "use strict";
365
+ init_runtime();
366
+ if (isNode && typeof process !== "undefined") {
367
+ try {
368
+ http = require("http");
369
+ https = require("https");
370
+ } catch {
371
+ http = require("http");
372
+ https = require("https");
373
+ }
374
+ }
375
+ }
376
+ });
377
+
378
+ // src/server/http/request-api.ts
379
+ function request(url, options, callback) {
380
+ const urlString = typeof url === "string" ? url : url.toString();
381
+ const req = new ClientRequest2(urlString, options);
382
+ if (isNode) {
383
+ const urlObj = new URL(urlString);
384
+ const client = urlObj.protocol === "https:" ? https : http;
385
+ const nodeReq = client.request(urlString, {
386
+ method: options?.method || "GET",
387
+ headers: options?.headers,
388
+ timeout: options?.timeout,
389
+ signal: options?.signal
390
+ }, (res) => {
391
+ const incomingMessage = new IncomingMessage(res);
392
+ if (callback) callback(incomingMessage);
393
+ req.emit("response", incomingMessage);
394
+ });
395
+ req._setNativeRequest(nodeReq);
396
+ nodeReq.on("error", (error) => req.emit("error", error));
397
+ } else {
398
+ req._setExecutor(async (body) => {
399
+ const response = await fetch(urlString, {
400
+ method: options?.method || "GET",
401
+ headers: options?.headers,
402
+ body,
403
+ signal: options?.signal
404
+ });
405
+ const incomingMessage = new IncomingMessage(response, options?.method || "GET");
406
+ if (callback) callback(incomingMessage);
407
+ req.emit("response", incomingMessage);
408
+ });
409
+ }
410
+ return req;
411
+ }
412
+ function get(url, options, callback) {
413
+ const req = request(url, { ...options, method: "GET" }, callback);
414
+ req.end();
415
+ return req;
416
+ }
417
+ var init_request_api = __esm({
418
+ "src/server/http/request-api.ts"() {
419
+ "use strict";
420
+ init_runtime();
421
+ init_client_request();
422
+ init_incoming_message();
423
+ init_node_modules();
424
+ }
425
+ });
426
+
427
+ // src/server/http/response.ts
428
+ var import_node_events4, ServerResponse;
429
+ var init_response = __esm({
430
+ "src/server/http/response.ts"() {
431
+ "use strict";
432
+ import_node_events4 = require("events");
433
+ init_runtime();
434
+ init_utils();
435
+ ServerResponse = class extends import_node_events4.EventEmitter {
255
436
  constructor(_req, nodeRes) {
256
437
  super();
257
438
  this.statusCode = 200;
@@ -384,7 +565,6 @@ var init_http = __esm({
384
565
  _setResolver(resolve) {
385
566
  this._resolve = resolve;
386
567
  }
387
- // Express.js-like methods
388
568
  json(data, statusCode = 200) {
389
569
  if (!this.headersSent) {
390
570
  this.setHeader("Content-Type", "application/json");
@@ -408,7 +588,36 @@ var init_http = __esm({
408
588
  return this;
409
589
  }
410
590
  };
411
- Server = class extends import_node_events.EventEmitter {
591
+ }
592
+ });
593
+
594
+ // src/server/http/runtime.ts
595
+ function getRuntime() {
596
+ return runtime;
597
+ }
598
+ var init_runtime2 = __esm({
599
+ "src/server/http/runtime.ts"() {
600
+ "use strict";
601
+ init_runtime();
602
+ }
603
+ });
604
+
605
+ // src/server/http/server-runtime.ts
606
+ function createServer(arg1, arg2) {
607
+ const requestListener = typeof arg1 === "function" ? arg1 : arg2;
608
+ return new Server(requestListener);
609
+ }
610
+ var import_node_events5, Server;
611
+ var init_server_runtime = __esm({
612
+ "src/server/http/server-runtime.ts"() {
613
+ "use strict";
614
+ import_node_events5 = require("events");
615
+ init_runtime();
616
+ init_node_modules();
617
+ init_incoming_message();
618
+ init_response();
619
+ init_utils();
620
+ Server = class extends import_node_events5.EventEmitter {
412
621
  constructor(requestListener) {
413
622
  super();
414
623
  this._bunWebSocketServers = /* @__PURE__ */ new Set();
@@ -421,9 +630,28 @@ var init_http = __esm({
421
630
  unregisterWebSocketServer(wsServer) {
422
631
  this._bunWebSocketServers.delete(wsServer);
423
632
  }
633
+ resolvePmInheritedFd(explicitPort, explicitFd) {
634
+ if (typeof explicitFd === "number" && Number.isInteger(explicitFd) && explicitFd >= 0) {
635
+ return explicitFd;
636
+ }
637
+ const fdValue = process.env.ELIT_PM_LISTEN_FD;
638
+ if (!fdValue) {
639
+ return void 0;
640
+ }
641
+ const parsedFd = Number.parseInt(fdValue, 10);
642
+ if (!Number.isInteger(parsedFd) || parsedFd < 0) {
643
+ return void 0;
644
+ }
645
+ const publicPort = Number.parseInt(process.env.ELIT_PM_PUBLIC_PORT ?? process.env.ELIT_PM_PORT ?? "", 10);
646
+ if (Number.isInteger(explicitPort) && Number.isInteger(publicPort) && explicitPort !== publicPort) {
647
+ return void 0;
648
+ }
649
+ return parsedFd;
650
+ }
424
651
  listen(...args) {
425
652
  let port = 3e3;
426
653
  let hostname = "0.0.0.0";
654
+ let fd;
427
655
  let callback;
428
656
  const firstArg = args[0];
429
657
  if (typeof firstArg === "number") {
@@ -438,8 +666,10 @@ var init_http = __esm({
438
666
  } else if (firstArg && typeof firstArg === "object") {
439
667
  port = firstArg.port || 3e3;
440
668
  hostname = firstArg.hostname || "0.0.0.0";
669
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
441
670
  callback = args[1];
442
671
  }
672
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
443
673
  const self = this;
444
674
  if (isNode) {
445
675
  this.nativeServer = http.createServer((req, res) => {
@@ -454,11 +684,19 @@ var init_http = __esm({
454
684
  this.nativeServer.on("upgrade", (req, socket, head) => {
455
685
  self.emit("upgrade", req, socket, head);
456
686
  });
457
- this.nativeServer.listen(port, hostname, () => {
458
- this._listening = true;
459
- this.emit("listening");
460
- if (callback) callback();
461
- });
687
+ if (fd !== void 0) {
688
+ this.nativeServer.listen({ fd, exclusive: false }, () => {
689
+ this._listening = true;
690
+ this.emit("listening");
691
+ if (callback) callback();
692
+ });
693
+ } else {
694
+ this.nativeServer.listen(port, hostname, () => {
695
+ this._listening = true;
696
+ this.emit("listening");
697
+ if (callback) callback();
698
+ });
699
+ }
462
700
  this.nativeServer.on("error", (err) => this.emit("error", err));
463
701
  this.nativeServer.on("close", () => {
464
702
  this._listening = false;
@@ -483,6 +721,8 @@ var init_http = __esm({
483
721
  const urlObj = new URL(req.url);
484
722
  const pathname = urlObj.pathname;
485
723
  const requestUrl = urlObj.pathname + urlObj.search;
724
+ const incomingHeaders = headersToRecord(req.headers);
725
+ const rawHeaders = headersToRawHeaders(req.headers);
486
726
  const upgradeHeader = req.headers.get("upgrade");
487
727
  if (upgradeHeader && upgradeHeader.toLowerCase() === "websocket") {
488
728
  const matchingWebSocketServer = Array.from(this._bunWebSocketServers).find((wsServer) => {
@@ -519,9 +759,9 @@ var init_http = __esm({
519
759
  const incomingMessage = {
520
760
  method: req.method,
521
761
  url: requestUrl,
522
- headers: req.headers,
762
+ headers: incomingHeaders,
523
763
  httpVersion: "1.1",
524
- rawHeaders: [],
764
+ rawHeaders,
525
765
  _req: req,
526
766
  text: () => req.text(),
527
767
  json: () => req.json()
@@ -575,57 +815,148 @@ var init_http = __esm({
575
815
  this.writeHead(statusCode);
576
816
  }
577
817
  responseReady = true;
578
- return this;
579
818
  }
580
819
  };
581
820
  if (self.requestListener) {
582
821
  self.requestListener(incomingMessage, serverResponse);
822
+ } else {
823
+ self.emit("request", incomingMessage, serverResponse);
583
824
  }
584
- if (responseReady) {
585
- return new Response(body, {
586
- status: statusCode,
587
- statusText: statusMessage,
588
- headers
589
- });
825
+ if (!responseReady) {
826
+ serverResponse.end();
590
827
  }
591
- return new Promise((resolve) => {
592
- serverResponse.end = (chunk) => {
593
- if (chunk !== void 0) {
594
- body += chunk;
595
- }
596
- resolve(new Response(body, {
597
- status: statusCode,
598
- statusText: statusMessage,
599
- headers
600
- }));
601
- };
828
+ return new Response(body, {
829
+ status: statusCode,
830
+ statusText: statusMessage,
831
+ headers
602
832
  });
603
833
  },
604
- error: createErrorResponse
834
+ error: (err) => {
835
+ this.emit("error", err);
836
+ return createErrorResponse();
837
+ }
605
838
  });
839
+ this._listening = true;
606
840
  emitListeningWithCallback(this, callback);
841
+ this.nativeServer.stop = this.nativeServer.stop || this.nativeServer.close;
842
+ this.nativeServer.close = this.nativeServer.close || this.nativeServer.stop;
843
+ this.nativeServer.on?.("close", () => {
844
+ this._listening = false;
845
+ this.emit("close");
846
+ });
607
847
  } else if (isDeno) {
848
+ const server = this;
608
849
  this.nativeServer = Deno.serve({
609
850
  port,
610
- hostname,
611
- handler: (req) => {
612
- return new Promise((resolve) => {
613
- const incomingMessage = new IncomingMessage(req);
614
- const serverResponse = new ServerResponse();
615
- serverResponse._setResolver(resolve);
616
- if (self.requestListener) {
617
- self.requestListener(incomingMessage, serverResponse);
618
- } else {
619
- self.emit("request", incomingMessage, serverResponse);
851
+ hostname
852
+ }, async (req) => {
853
+ const urlObj = new URL(req.url);
854
+ const requestUrl = urlObj.pathname + urlObj.search;
855
+ const incomingHeaders = headersToRecord(req.headers);
856
+ const rawHeaders = headersToRawHeaders(req.headers);
857
+ const bodyChunks = [];
858
+ const responseHeaders = new Headers();
859
+ let statusCode = 200;
860
+ let statusText = "OK";
861
+ let responseClosed = false;
862
+ const incomingMessage = {
863
+ method: req.method,
864
+ url: requestUrl,
865
+ headers: incomingHeaders,
866
+ httpVersion: "1.1",
867
+ rawHeaders,
868
+ _req: req,
869
+ text: () => req.text(),
870
+ json: () => req.json()
871
+ };
872
+ const serverResponse = {
873
+ statusCode: 200,
874
+ statusMessage: "OK",
875
+ headersSent: false,
876
+ setHeader(name, value) {
877
+ responseHeaders.set(name, Array.isArray(value) ? value.join(", ") : String(value));
878
+ return this;
879
+ },
880
+ getHeader(name) {
881
+ return responseHeaders.get(name) ?? void 0;
882
+ },
883
+ getHeaders() {
884
+ const headers = {};
885
+ responseHeaders.forEach((value, key) => {
886
+ headers[key] = value;
887
+ });
888
+ return headers;
889
+ },
890
+ writeHead(status, arg2, arg3) {
891
+ statusCode = status;
892
+ this.statusCode = status;
893
+ this.headersSent = true;
894
+ if (typeof arg2 === "string") {
895
+ statusText = arg2;
896
+ this.statusMessage = arg2;
897
+ if (arg3) {
898
+ Object.entries(arg3).forEach(([key, value]) => {
899
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
900
+ });
901
+ }
902
+ } else if (arg2) {
903
+ Object.entries(arg2).forEach(([key, value]) => {
904
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
905
+ });
620
906
  }
621
- });
622
- },
623
- onError: (error) => {
624
- this.emit("error", error);
625
- return createErrorResponse();
907
+ return this;
908
+ },
909
+ write(chunk) {
910
+ if (!this.headersSent) {
911
+ this.writeHead(statusCode);
912
+ }
913
+ if (typeof chunk === "string") {
914
+ bodyChunks.push(new TextEncoder().encode(chunk));
915
+ } else if (chunk instanceof Uint8Array) {
916
+ bodyChunks.push(chunk);
917
+ } else if (chunk !== void 0 && chunk !== null) {
918
+ bodyChunks.push(new TextEncoder().encode(String(chunk)));
919
+ }
920
+ return true;
921
+ },
922
+ end(chunk) {
923
+ if (chunk !== void 0) {
924
+ this.write(chunk);
925
+ }
926
+ if (!this.headersSent) {
927
+ this.writeHead(statusCode);
928
+ }
929
+ responseClosed = true;
930
+ }
931
+ };
932
+ if (server.requestListener) {
933
+ server.requestListener(incomingMessage, serverResponse);
934
+ } else {
935
+ server.emit("request", incomingMessage, serverResponse);
626
936
  }
937
+ if (!responseClosed) {
938
+ serverResponse.end();
939
+ }
940
+ const body = bodyChunks.length === 0 ? void 0 : (() => {
941
+ const totalLength = bodyChunks.reduce((sum, chunk) => sum + chunk.length, 0);
942
+ const output = new ArrayBuffer(totalLength);
943
+ const combined = new Uint8Array(output);
944
+ let offset = 0;
945
+ for (const chunk of bodyChunks) {
946
+ combined.set(chunk, offset);
947
+ offset += chunk.length;
948
+ }
949
+ return output;
950
+ })();
951
+ return new Response(body, {
952
+ status: statusCode,
953
+ statusText,
954
+ headers: responseHeaders
955
+ });
627
956
  });
957
+ this._listening = true;
628
958
  emitListeningWithCallback(this, callback);
959
+ this.nativeServer.finished.then(() => closeAndEmit(this)).catch((err) => this.emit("error", err));
629
960
  }
630
961
  return this;
631
962
  }
@@ -654,9 +985,11 @@ var init_http = __esm({
654
985
  return createAddress(0, addr, "unix");
655
986
  }
656
987
  return addr;
657
- } else if (isBun) {
988
+ }
989
+ if (isBun) {
658
990
  return createAddress(this.nativeServer.port, this.nativeServer.hostname);
659
- } else if (isDeno) {
991
+ }
992
+ if (isDeno) {
660
993
  const addr = this.nativeServer.addr;
661
994
  return createAddress(addr.port, addr.hostname);
662
995
  }
@@ -666,22 +999,45 @@ var init_http = __esm({
666
999
  return this._listening;
667
1000
  }
668
1001
  };
669
- ClientRequest = class extends import_node_events.EventEmitter {
670
- constructor(_url, _options = {}) {
671
- super();
672
- }
673
- write(_chunk) {
674
- return true;
675
- }
676
- end(callback) {
677
- queueCallback(callback);
678
- }
679
- };
680
- Agent = class {
681
- constructor(options) {
682
- this.options = options;
683
- }
684
- };
1002
+ }
1003
+ });
1004
+
1005
+ // src/server/http/index.ts
1006
+ var http_exports = {};
1007
+ __export(http_exports, {
1008
+ Agent: () => Agent2,
1009
+ ClientRequest: () => ClientRequest2,
1010
+ IncomingMessage: () => IncomingMessage,
1011
+ METHODS: () => METHODS,
1012
+ STATUS_CODES: () => STATUS_CODES,
1013
+ Server: () => Server,
1014
+ ServerResponse: () => ServerResponse,
1015
+ createServer: () => createServer,
1016
+ default: () => http_default,
1017
+ get: () => get,
1018
+ getRuntime: () => getRuntime,
1019
+ request: () => request
1020
+ });
1021
+ var http_default;
1022
+ var init_http = __esm({
1023
+ "src/server/http/index.ts"() {
1024
+ "use strict";
1025
+ init_agent();
1026
+ init_client_request();
1027
+ init_constants();
1028
+ init_incoming_message();
1029
+ init_request_api();
1030
+ init_response();
1031
+ init_runtime2();
1032
+ init_server_runtime();
1033
+ init_agent();
1034
+ init_client_request();
1035
+ init_constants();
1036
+ init_incoming_message();
1037
+ init_request_api();
1038
+ init_response();
1039
+ init_runtime2();
1040
+ init_server_runtime();
685
1041
  http_default = {
686
1042
  createServer,
687
1043
  request,
@@ -689,8 +1045,8 @@ var init_http = __esm({
689
1045
  Server,
690
1046
  IncomingMessage,
691
1047
  ServerResponse,
692
- Agent,
693
- ClientRequest,
1048
+ Agent: Agent2,
1049
+ ClientRequest: ClientRequest2,
694
1050
  METHODS,
695
1051
  STATUS_CODES,
696
1052
  getRuntime
@@ -698,11 +1054,11 @@ var init_http = __esm({
698
1054
  }
699
1055
  });
700
1056
 
701
- // src/https.ts
1057
+ // src/server/https/index.ts
702
1058
  var https_exports = {};
703
1059
  __export(https_exports, {
704
- Agent: () => Agent2,
705
- ClientRequest: () => ClientRequest2,
1060
+ Agent: () => Agent,
1061
+ ClientRequest: () => ClientRequest,
706
1062
  Server: () => Server2,
707
1063
  createServer: () => createServer2,
708
1064
  default: () => https_default,
@@ -711,27 +1067,84 @@ __export(https_exports, {
711
1067
  request: () => request2
712
1068
  });
713
1069
  module.exports = __toCommonJS(https_exports);
714
- var import_events = require("events");
1070
+
1071
+ // src/server/https/agent.ts
1072
+ var Agent = class {
1073
+ constructor(options) {
1074
+ this.options = options;
1075
+ }
1076
+ };
1077
+
1078
+ // src/server/https/client-request.ts
1079
+ var import_node_events = require("events");
1080
+ init_utils();
1081
+ var ClientRequest = class extends import_node_events.EventEmitter {
1082
+ constructor(_url, _options = {}) {
1083
+ super();
1084
+ this._bodyChunks = [];
1085
+ this._ended = false;
1086
+ }
1087
+ _setNativeRequest(nativeRequest) {
1088
+ this._nativeRequest = nativeRequest;
1089
+ }
1090
+ _setExecutor(executor) {
1091
+ this._executor = executor;
1092
+ }
1093
+ write(chunk, encoding, callback) {
1094
+ if (this._ended) {
1095
+ throw new Error("Cannot write after end");
1096
+ }
1097
+ if (typeof encoding === "function") {
1098
+ callback = encoding;
1099
+ encoding = void 0;
1100
+ }
1101
+ if (this._nativeRequest) {
1102
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
1103
+ return this._nativeRequest.write(chunk, actualEncoding, callback);
1104
+ }
1105
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
1106
+ queueCallback(callback);
1107
+ return true;
1108
+ }
1109
+ end(chunk, encoding, callback) {
1110
+ if (typeof chunk === "function") {
1111
+ callback = chunk;
1112
+ chunk = void 0;
1113
+ encoding = void 0;
1114
+ } else if (typeof encoding === "function") {
1115
+ callback = encoding;
1116
+ encoding = void 0;
1117
+ }
1118
+ if (this._ended) {
1119
+ queueCallback(callback);
1120
+ return;
1121
+ }
1122
+ this._ended = true;
1123
+ if (this._nativeRequest) {
1124
+ const actualEncoding = typeof encoding === "string" ? encoding : void 0;
1125
+ if (chunk !== void 0) {
1126
+ this._nativeRequest.end(chunk, actualEncoding, callback);
1127
+ } else {
1128
+ this._nativeRequest.end(callback);
1129
+ }
1130
+ return;
1131
+ }
1132
+ if (chunk !== void 0) {
1133
+ this._bodyChunks.push(normalizeRequestBodyChunk(chunk, typeof encoding === "string" ? encoding : "utf8"));
1134
+ }
1135
+ const executor = this._executor;
1136
+ const body = buildRequestBody(this._bodyChunks);
1137
+ if (executor) {
1138
+ Promise.resolve().then(() => executor(body)).catch((error) => this.emit("error", error));
1139
+ }
1140
+ queueCallback(callback);
1141
+ }
1142
+ };
1143
+
1144
+ // src/server/https/request-api.ts
715
1145
  init_runtime();
716
- function queueCallback2(callback) {
717
- if (callback) queueMicrotask(callback);
718
- }
719
- function createErrorResponse2() {
720
- return new Response("Internal Server Error", { status: 500 });
721
- }
722
- function createAddress2(port, address, family = "IPv4") {
723
- return { port, family, address };
724
- }
725
- function emitListeningWithCallback2(server, callback) {
726
- server._listening = true;
727
- server.emit("listening");
728
- queueCallback2(callback);
729
- }
730
- function closeAndEmit2(server, callback) {
731
- server._listening = false;
732
- server.emit("close");
733
- if (callback) queueMicrotask(() => callback());
734
- }
1146
+
1147
+ // src/server/https/http-classes.ts
735
1148
  function loadHttpClasses() {
736
1149
  const httpModule = (init_http(), __toCommonJS(http_exports));
737
1150
  return {
@@ -739,17 +1152,97 @@ function loadHttpClasses() {
739
1152
  ServerResponse: httpModule.ServerResponse
740
1153
  };
741
1154
  }
1155
+
1156
+ // src/server/https/node-modules.ts
1157
+ init_runtime();
742
1158
  var https2;
743
- var Server2 = class extends import_events.EventEmitter {
744
- constructor(options, requestListener) {
1159
+ if (isNode && typeof process !== "undefined") {
1160
+ try {
1161
+ https2 = require("https");
1162
+ } catch {
1163
+ https2 = require("https");
1164
+ }
1165
+ }
1166
+
1167
+ // src/server/https/request-api.ts
1168
+ function request2(url, options, callback) {
1169
+ const urlString = typeof url === "string" ? url : url.toString();
1170
+ const req = new ClientRequest(urlString, options);
1171
+ if (isNode) {
1172
+ const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
1173
+ const nodeReq = https2.request(urlString, {
1174
+ method: options?.method || "GET",
1175
+ headers: options?.headers,
1176
+ timeout: options?.timeout,
1177
+ signal: options?.signal
1178
+ }, (res) => {
1179
+ const incomingMessage = new IncomingMessage2(res);
1180
+ if (callback) callback(incomingMessage);
1181
+ req.emit("response", incomingMessage);
1182
+ });
1183
+ req._setNativeRequest(nodeReq);
1184
+ nodeReq.on("error", (error) => req.emit("error", error));
1185
+ } else {
1186
+ const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
1187
+ req._setExecutor(async (body) => {
1188
+ const response = await fetch(urlString, {
1189
+ method: options?.method || "GET",
1190
+ headers: options?.headers,
1191
+ body,
1192
+ signal: options?.signal
1193
+ });
1194
+ const incomingMessage = new IncomingMessage2(response, options?.method || "GET");
1195
+ if (callback) callback(incomingMessage);
1196
+ req.emit("response", incomingMessage);
1197
+ });
1198
+ }
1199
+ return req;
1200
+ }
1201
+ function get2(url, options, callback) {
1202
+ const req = request2(url, { ...options, method: "GET" }, callback);
1203
+ req.end();
1204
+ return req;
1205
+ }
1206
+
1207
+ // src/server/https/runtime.ts
1208
+ init_runtime();
1209
+ function getRuntime2() {
1210
+ return runtime;
1211
+ }
1212
+
1213
+ // src/server/https/server-runtime.ts
1214
+ var import_node_events6 = require("events");
1215
+ init_runtime();
1216
+ init_utils();
1217
+ var Server2 = class extends import_node_events6.EventEmitter {
1218
+ constructor(options = {}, requestListener) {
745
1219
  super();
746
1220
  this._listening = false;
747
1221
  this.options = options;
748
1222
  this.requestListener = requestListener;
749
1223
  }
1224
+ resolvePmInheritedFd(explicitPort, explicitFd) {
1225
+ if (typeof explicitFd === "number" && Number.isInteger(explicitFd) && explicitFd >= 0) {
1226
+ return explicitFd;
1227
+ }
1228
+ const fdValue = process.env.ELIT_PM_LISTEN_FD;
1229
+ if (!fdValue) {
1230
+ return void 0;
1231
+ }
1232
+ const parsedFd = Number.parseInt(fdValue, 10);
1233
+ if (!Number.isInteger(parsedFd) || parsedFd < 0) {
1234
+ return void 0;
1235
+ }
1236
+ const publicPort = Number.parseInt(process.env.ELIT_PM_PUBLIC_PORT ?? process.env.ELIT_PM_PORT ?? "", 10);
1237
+ if (Number.isInteger(explicitPort) && Number.isInteger(publicPort) && explicitPort !== publicPort) {
1238
+ return void 0;
1239
+ }
1240
+ return parsedFd;
1241
+ }
750
1242
  listen(...args) {
751
1243
  let port = 3e3;
752
1244
  let hostname = "0.0.0.0";
1245
+ let fd;
753
1246
  let callback;
754
1247
  const firstArg = args[0];
755
1248
  if (typeof firstArg === "number") {
@@ -764,12 +1257,13 @@ var Server2 = class extends import_events.EventEmitter {
764
1257
  } else if (firstArg && typeof firstArg === "object") {
765
1258
  port = firstArg.port || 3e3;
766
1259
  hostname = firstArg.hostname || "0.0.0.0";
1260
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
767
1261
  callback = args[1];
768
1262
  }
1263
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
769
1264
  const self = this;
770
1265
  if (isNode) {
771
1266
  const { IncomingMessage: IncomingMessage2, ServerResponse: ServerResponse2 } = loadHttpClasses();
772
- if (!https2) https2 = require("https");
773
1267
  this.nativeServer = https2.createServer(this.options, (req, res) => {
774
1268
  const incomingMessage = new IncomingMessage2(req);
775
1269
  const serverResponse = new ServerResponse2(incomingMessage, res);
@@ -779,11 +1273,19 @@ var Server2 = class extends import_events.EventEmitter {
779
1273
  self.emit("request", incomingMessage, serverResponse);
780
1274
  }
781
1275
  });
782
- this.nativeServer.listen(port, hostname, () => {
783
- this._listening = true;
784
- this.emit("listening");
785
- if (callback) callback();
786
- });
1276
+ if (fd !== void 0) {
1277
+ this.nativeServer.listen({ fd, exclusive: false }, () => {
1278
+ this._listening = true;
1279
+ this.emit("listening");
1280
+ if (callback) callback();
1281
+ });
1282
+ } else {
1283
+ this.nativeServer.listen(port, hostname, () => {
1284
+ this._listening = true;
1285
+ this.emit("listening");
1286
+ if (callback) callback();
1287
+ });
1288
+ }
787
1289
  this.nativeServer.on("error", (err) => this.emit("error", err));
788
1290
  this.nativeServer.on("close", () => {
789
1291
  this._listening = false;
@@ -808,7 +1310,7 @@ var Server2 = class extends import_events.EventEmitter {
808
1310
  },
809
1311
  error: (error) => {
810
1312
  this.emit("error", error);
811
- return createErrorResponse2();
1313
+ return createErrorResponse();
812
1314
  }
813
1315
  };
814
1316
  if (this.options.key || this.options.cert) {
@@ -822,7 +1324,7 @@ var Server2 = class extends import_events.EventEmitter {
822
1324
  tlsOptions.tls = this.options.tls;
823
1325
  }
824
1326
  this.nativeServer = Bun.serve(tlsOptions);
825
- emitListeningWithCallback2(this, callback);
1327
+ emitListeningWithCallback(this, callback);
826
1328
  } else if (isDeno) {
827
1329
  const { IncomingMessage: IncomingMessage2, ServerResponse: ServerResponse2 } = loadHttpClasses();
828
1330
  const serveOptions = {
@@ -842,7 +1344,7 @@ var Server2 = class extends import_events.EventEmitter {
842
1344
  },
843
1345
  onError: (error) => {
844
1346
  this.emit("error", error);
845
- return createErrorResponse2();
1347
+ return createErrorResponse();
846
1348
  }
847
1349
  };
848
1350
  if (this.options.key && this.options.cert) {
@@ -850,23 +1352,23 @@ var Server2 = class extends import_events.EventEmitter {
850
1352
  serveOptions.key = this.options.key;
851
1353
  }
852
1354
  this.nativeServer = Deno.serve(serveOptions);
853
- emitListeningWithCallback2(this, callback);
1355
+ emitListeningWithCallback(this, callback);
854
1356
  }
855
1357
  return this;
856
1358
  }
857
1359
  close(callback) {
858
1360
  if (!this.nativeServer) {
859
- if (callback) queueMicrotask(() => callback());
1361
+ if (callback) queueCallback(() => callback());
860
1362
  return this;
861
1363
  }
862
1364
  if (isNode) {
863
1365
  this.nativeServer.close(callback);
864
1366
  } else if (isBun) {
865
1367
  this.nativeServer.stop();
866
- closeAndEmit2(this, callback);
1368
+ closeAndEmit(this, callback);
867
1369
  } else if (isDeno) {
868
1370
  this.nativeServer.shutdown();
869
- closeAndEmit2(this, callback);
1371
+ closeAndEmit(this, callback);
870
1372
  }
871
1373
  return this;
872
1374
  }
@@ -876,14 +1378,16 @@ var Server2 = class extends import_events.EventEmitter {
876
1378
  const addr = this.nativeServer.address();
877
1379
  if (!addr) return null;
878
1380
  if (typeof addr === "string") {
879
- return createAddress2(0, addr, "unix");
1381
+ return createAddress(0, addr, "unix");
880
1382
  }
881
1383
  return addr;
882
- } else if (isBun) {
883
- return createAddress2(this.nativeServer.port, this.nativeServer.hostname);
884
- } else if (isDeno) {
1384
+ }
1385
+ if (isBun) {
1386
+ return createAddress(this.nativeServer.port, this.nativeServer.hostname);
1387
+ }
1388
+ if (isDeno) {
885
1389
  const addr = this.nativeServer.addr;
886
- return createAddress2(addr.port, addr.hostname);
1390
+ return createAddress(addr.port, addr.hostname);
887
1391
  }
888
1392
  return null;
889
1393
  }
@@ -891,78 +1395,18 @@ var Server2 = class extends import_events.EventEmitter {
891
1395
  return this._listening;
892
1396
  }
893
1397
  };
894
- var ClientRequest2 = class extends import_events.EventEmitter {
895
- constructor(_url, _options = {}) {
896
- super();
897
- }
898
- write(_chunk) {
899
- return true;
900
- }
901
- end(callback) {
902
- queueCallback2(callback);
903
- }
904
- };
905
- var Agent2 = class {
906
- constructor(options) {
907
- this.options = options;
908
- }
909
- };
910
- function createServer2(options, requestListener) {
1398
+ function createServer2(options = {}, requestListener) {
911
1399
  return new Server2(options, requestListener);
912
1400
  }
913
- function request2(url, options, callback) {
914
- const urlString = typeof url === "string" ? url : url.toString();
915
- const req = new ClientRequest2(urlString, options);
916
- if (isNode) {
917
- const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
918
- if (!https2) https2 = require("https");
919
- const nodeReq = https2.request(urlString, {
920
- method: options?.method || "GET",
921
- headers: options?.headers,
922
- timeout: options?.timeout,
923
- signal: options?.signal
924
- }, (res) => {
925
- const incomingMessage = new IncomingMessage2(res);
926
- if (callback) callback(incomingMessage);
927
- req.emit("response", incomingMessage);
928
- });
929
- nodeReq.on("error", (error) => req.emit("error", error));
930
- nodeReq.end();
931
- } else {
932
- const { IncomingMessage: IncomingMessage2 } = loadHttpClasses();
933
- queueMicrotask(async () => {
934
- try {
935
- const response = await fetch(urlString, {
936
- method: options?.method || "GET",
937
- headers: options?.headers,
938
- signal: options?.signal
939
- });
940
- const fetchRequest = new Request(urlString);
941
- const incomingMessage = new IncomingMessage2(fetchRequest);
942
- incomingMessage.statusCode = response.status;
943
- incomingMessage.statusMessage = response.statusText;
944
- if (callback) callback(incomingMessage);
945
- req.emit("response", incomingMessage);
946
- } catch (error) {
947
- req.emit("error", error);
948
- }
949
- });
950
- }
951
- return req;
952
- }
953
- function get2(url, options, callback) {
954
- return request2(url, { ...options, method: "GET" }, callback);
955
- }
956
- function getRuntime2() {
957
- return runtime;
958
- }
1401
+
1402
+ // src/server/https/index.ts
959
1403
  var https_default = {
960
1404
  createServer: createServer2,
961
1405
  request: request2,
962
1406
  get: get2,
963
1407
  Server: Server2,
964
- Agent: Agent2,
965
- ClientRequest: ClientRequest2,
1408
+ Agent,
1409
+ ClientRequest,
966
1410
  getRuntime: getRuntime2
967
1411
  };
968
1412
  // Annotate the CommonJS export names for ESM import in node: