elit 3.6.7 → 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 (42) hide show
  1. package/Cargo.lock +1 -1
  2. package/Cargo.toml +1 -1
  3. package/README.md +20 -1
  4. package/dist/cli.cjs +2496 -303
  5. package/dist/cli.mjs +2501 -308
  6. package/dist/config.d.ts +6 -6
  7. package/dist/{contracts-BeW9k0yZ.d.ts → contracts-_0p1-15U.d.ts} +1 -1
  8. package/dist/coverage.d.ts +1 -1
  9. package/dist/dev-build.d.ts +3 -3
  10. package/dist/http.cjs +160 -41
  11. package/dist/http.d.ts +5 -11
  12. package/dist/http.js +160 -41
  13. package/dist/http.mjs +160 -41
  14. package/dist/https.cjs +194 -46
  15. package/dist/https.d.ts +3 -6
  16. package/dist/https.js +194 -46
  17. package/dist/https.mjs +194 -46
  18. package/dist/pm-node-shared-listener-bootstrap.cjs +75 -0
  19. package/dist/pm.cjs +2101 -134
  20. package/dist/pm.d.ts +83 -8
  21. package/dist/pm.js +2095 -158
  22. package/dist/pm.mjs +2091 -139
  23. package/dist/preview-build.d.ts +3 -3
  24. package/dist/server.cjs +417 -168
  25. package/dist/server.d.ts +4 -4
  26. package/dist/server.js +453 -179
  27. package/dist/server.mjs +417 -168
  28. package/dist/smtp-server.js +37 -12
  29. package/dist/test-reporter.d.ts +1 -1
  30. package/dist/test-runtime.d.ts +1 -1
  31. package/dist/{types-tJn88E1N.d.ts → types-BayMVo_k.d.ts} +39 -3
  32. package/dist/{types-CIhpN1-K.d.ts → types-C70T-42Z.d.ts} +1 -1
  33. package/dist/{types-DAisuVr5.d.ts → types-DPOgoGs-.d.ts} +7 -1
  34. package/dist/{state-DvEkDehk.d.ts → types-fiLday0L.d.ts} +96 -92
  35. package/dist/types.d.ts +4 -0
  36. package/dist/{websocket-XfyK23zD.d.ts → websocket-BLBEAnhp.d.ts} +1 -1
  37. package/dist/ws.d.ts +3 -3
  38. package/dist/wss.cjs +194 -46
  39. package/dist/wss.d.ts +3 -3
  40. package/dist/wss.js +194 -46
  41. package/dist/wss.mjs +194 -46
  42. package/package.json +11 -6
package/dist/http.mjs CHANGED
@@ -540,9 +540,28 @@ var Server = class extends EventEmitter4 {
540
540
  unregisterWebSocketServer(wsServer) {
541
541
  this._bunWebSocketServers.delete(wsServer);
542
542
  }
543
+ resolvePmInheritedFd(explicitPort, explicitFd) {
544
+ if (typeof explicitFd === "number" && Number.isInteger(explicitFd) && explicitFd >= 0) {
545
+ return explicitFd;
546
+ }
547
+ const fdValue = process.env.ELIT_PM_LISTEN_FD;
548
+ if (!fdValue) {
549
+ return void 0;
550
+ }
551
+ const parsedFd = Number.parseInt(fdValue, 10);
552
+ if (!Number.isInteger(parsedFd) || parsedFd < 0) {
553
+ return void 0;
554
+ }
555
+ const publicPort = Number.parseInt(process.env.ELIT_PM_PUBLIC_PORT ?? process.env.ELIT_PM_PORT ?? "", 10);
556
+ if (Number.isInteger(explicitPort) && Number.isInteger(publicPort) && explicitPort !== publicPort) {
557
+ return void 0;
558
+ }
559
+ return parsedFd;
560
+ }
543
561
  listen(...args) {
544
562
  let port = 3e3;
545
563
  let hostname = "0.0.0.0";
564
+ let fd;
546
565
  let callback;
547
566
  const firstArg = args[0];
548
567
  if (typeof firstArg === "number") {
@@ -557,8 +576,10 @@ var Server = class extends EventEmitter4 {
557
576
  } else if (firstArg && typeof firstArg === "object") {
558
577
  port = firstArg.port || 3e3;
559
578
  hostname = firstArg.hostname || "0.0.0.0";
579
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
560
580
  callback = args[1];
561
581
  }
582
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
562
583
  const self = this;
563
584
  if (isNode) {
564
585
  this.nativeServer = http.createServer((req, res) => {
@@ -573,11 +594,19 @@ var Server = class extends EventEmitter4 {
573
594
  this.nativeServer.on("upgrade", (req, socket, head) => {
574
595
  self.emit("upgrade", req, socket, head);
575
596
  });
576
- this.nativeServer.listen(port, hostname, () => {
577
- this._listening = true;
578
- this.emit("listening");
579
- if (callback) callback();
580
- });
597
+ if (fd !== void 0) {
598
+ this.nativeServer.listen({ fd, exclusive: false }, () => {
599
+ this._listening = true;
600
+ this.emit("listening");
601
+ if (callback) callback();
602
+ });
603
+ } else {
604
+ this.nativeServer.listen(port, hostname, () => {
605
+ this._listening = true;
606
+ this.emit("listening");
607
+ if (callback) callback();
608
+ });
609
+ }
581
610
  this.nativeServer.on("error", (err) => this.emit("error", err));
582
611
  this.nativeServer.on("close", () => {
583
612
  this._listening = false;
@@ -696,7 +725,6 @@ var Server = class extends EventEmitter4 {
696
725
  this.writeHead(statusCode);
697
726
  }
698
727
  responseReady = true;
699
- return this;
700
728
  }
701
729
  };
702
730
  if (self.requestListener) {
@@ -704,51 +732,141 @@ var Server = class extends EventEmitter4 {
704
732
  } else {
705
733
  self.emit("request", incomingMessage, serverResponse);
706
734
  }
707
- if (responseReady) {
708
- return new Response(body, {
709
- status: statusCode,
710
- statusText: statusMessage,
711
- headers
712
- });
735
+ if (!responseReady) {
736
+ serverResponse.end();
713
737
  }
714
- return new Promise((resolve) => {
715
- serverResponse.end = (chunk) => {
716
- if (chunk !== void 0) {
717
- body += chunk;
718
- }
719
- resolve(new Response(body, {
720
- status: statusCode,
721
- statusText: statusMessage,
722
- headers
723
- }));
724
- };
738
+ return new Response(body, {
739
+ status: statusCode,
740
+ statusText: statusMessage,
741
+ headers
725
742
  });
726
743
  },
727
- error: createErrorResponse
744
+ error: (err) => {
745
+ this.emit("error", err);
746
+ return createErrorResponse();
747
+ }
728
748
  });
749
+ this._listening = true;
729
750
  emitListeningWithCallback(this, callback);
751
+ this.nativeServer.stop = this.nativeServer.stop || this.nativeServer.close;
752
+ this.nativeServer.close = this.nativeServer.close || this.nativeServer.stop;
753
+ this.nativeServer.on?.("close", () => {
754
+ this._listening = false;
755
+ this.emit("close");
756
+ });
730
757
  } else if (isDeno) {
758
+ const server = this;
731
759
  this.nativeServer = Deno.serve({
732
760
  port,
733
- hostname,
734
- handler: (req) => {
735
- return new Promise((resolve) => {
736
- const incomingMessage = new IncomingMessage(req);
737
- const serverResponse = new ServerResponse();
738
- serverResponse._setResolver(resolve);
739
- if (self.requestListener) {
740
- self.requestListener(incomingMessage, serverResponse);
741
- } else {
742
- self.emit("request", incomingMessage, serverResponse);
761
+ hostname
762
+ }, async (req) => {
763
+ const urlObj = new URL(req.url);
764
+ const requestUrl = urlObj.pathname + urlObj.search;
765
+ const incomingHeaders = headersToRecord(req.headers);
766
+ const rawHeaders = headersToRawHeaders(req.headers);
767
+ const bodyChunks = [];
768
+ const responseHeaders = new Headers();
769
+ let statusCode = 200;
770
+ let statusText = "OK";
771
+ let responseClosed = false;
772
+ const incomingMessage = {
773
+ method: req.method,
774
+ url: requestUrl,
775
+ headers: incomingHeaders,
776
+ httpVersion: "1.1",
777
+ rawHeaders,
778
+ _req: req,
779
+ text: () => req.text(),
780
+ json: () => req.json()
781
+ };
782
+ const serverResponse = {
783
+ statusCode: 200,
784
+ statusMessage: "OK",
785
+ headersSent: false,
786
+ setHeader(name, value) {
787
+ responseHeaders.set(name, Array.isArray(value) ? value.join(", ") : String(value));
788
+ return this;
789
+ },
790
+ getHeader(name) {
791
+ return responseHeaders.get(name) ?? void 0;
792
+ },
793
+ getHeaders() {
794
+ const headers = {};
795
+ responseHeaders.forEach((value, key) => {
796
+ headers[key] = value;
797
+ });
798
+ return headers;
799
+ },
800
+ writeHead(status, arg2, arg3) {
801
+ statusCode = status;
802
+ this.statusCode = status;
803
+ this.headersSent = true;
804
+ if (typeof arg2 === "string") {
805
+ statusText = arg2;
806
+ this.statusMessage = arg2;
807
+ if (arg3) {
808
+ Object.entries(arg3).forEach(([key, value]) => {
809
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
810
+ });
811
+ }
812
+ } else if (arg2) {
813
+ Object.entries(arg2).forEach(([key, value]) => {
814
+ responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : String(value));
815
+ });
743
816
  }
744
- });
745
- },
746
- onError: (error) => {
747
- this.emit("error", error);
748
- return createErrorResponse();
817
+ return this;
818
+ },
819
+ write(chunk) {
820
+ if (!this.headersSent) {
821
+ this.writeHead(statusCode);
822
+ }
823
+ if (typeof chunk === "string") {
824
+ bodyChunks.push(new TextEncoder().encode(chunk));
825
+ } else if (chunk instanceof Uint8Array) {
826
+ bodyChunks.push(chunk);
827
+ } else if (chunk !== void 0 && chunk !== null) {
828
+ bodyChunks.push(new TextEncoder().encode(String(chunk)));
829
+ }
830
+ return true;
831
+ },
832
+ end(chunk) {
833
+ if (chunk !== void 0) {
834
+ this.write(chunk);
835
+ }
836
+ if (!this.headersSent) {
837
+ this.writeHead(statusCode);
838
+ }
839
+ responseClosed = true;
840
+ }
841
+ };
842
+ if (server.requestListener) {
843
+ server.requestListener(incomingMessage, serverResponse);
844
+ } else {
845
+ server.emit("request", incomingMessage, serverResponse);
749
846
  }
847
+ if (!responseClosed) {
848
+ serverResponse.end();
849
+ }
850
+ const body = bodyChunks.length === 0 ? void 0 : (() => {
851
+ const totalLength = bodyChunks.reduce((sum, chunk) => sum + chunk.length, 0);
852
+ const output = new ArrayBuffer(totalLength);
853
+ const combined = new Uint8Array(output);
854
+ let offset = 0;
855
+ for (const chunk of bodyChunks) {
856
+ combined.set(chunk, offset);
857
+ offset += chunk.length;
858
+ }
859
+ return output;
860
+ })();
861
+ return new Response(body, {
862
+ status: statusCode,
863
+ statusText,
864
+ headers: responseHeaders
865
+ });
750
866
  });
867
+ this._listening = true;
751
868
  emitListeningWithCallback(this, callback);
869
+ this.nativeServer.finished.then(() => closeAndEmit(this)).catch((err) => this.emit("error", err));
752
870
  }
753
871
  return this;
754
872
  }
@@ -791,8 +909,9 @@ var Server = class extends EventEmitter4 {
791
909
  return this._listening;
792
910
  }
793
911
  };
794
- function createServer(optionsOrListener, requestListener) {
795
- return new Server(typeof optionsOrListener === "function" ? optionsOrListener : requestListener);
912
+ function createServer(arg1, arg2) {
913
+ const requestListener = typeof arg1 === "function" ? arg1 : arg2;
914
+ return new Server(requestListener);
796
915
  }
797
916
 
798
917
  // src/server/http/index.ts
package/dist/https.cjs CHANGED
@@ -603,8 +603,9 @@ var init_runtime2 = __esm({
603
603
  });
604
604
 
605
605
  // src/server/http/server-runtime.ts
606
- function createServer(optionsOrListener, requestListener) {
607
- return new Server(typeof optionsOrListener === "function" ? optionsOrListener : requestListener);
606
+ function createServer(arg1, arg2) {
607
+ const requestListener = typeof arg1 === "function" ? arg1 : arg2;
608
+ return new Server(requestListener);
608
609
  }
609
610
  var import_node_events5, Server;
610
611
  var init_server_runtime = __esm({
@@ -629,9 +630,28 @@ var init_server_runtime = __esm({
629
630
  unregisterWebSocketServer(wsServer) {
630
631
  this._bunWebSocketServers.delete(wsServer);
631
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
+ }
632
651
  listen(...args) {
633
652
  let port = 3e3;
634
653
  let hostname = "0.0.0.0";
654
+ let fd;
635
655
  let callback;
636
656
  const firstArg = args[0];
637
657
  if (typeof firstArg === "number") {
@@ -646,8 +666,10 @@ var init_server_runtime = __esm({
646
666
  } else if (firstArg && typeof firstArg === "object") {
647
667
  port = firstArg.port || 3e3;
648
668
  hostname = firstArg.hostname || "0.0.0.0";
669
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
649
670
  callback = args[1];
650
671
  }
672
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
651
673
  const self = this;
652
674
  if (isNode) {
653
675
  this.nativeServer = http.createServer((req, res) => {
@@ -662,11 +684,19 @@ var init_server_runtime = __esm({
662
684
  this.nativeServer.on("upgrade", (req, socket, head) => {
663
685
  self.emit("upgrade", req, socket, head);
664
686
  });
665
- this.nativeServer.listen(port, hostname, () => {
666
- this._listening = true;
667
- this.emit("listening");
668
- if (callback) callback();
669
- });
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
+ }
670
700
  this.nativeServer.on("error", (err) => this.emit("error", err));
671
701
  this.nativeServer.on("close", () => {
672
702
  this._listening = false;
@@ -785,7 +815,6 @@ var init_server_runtime = __esm({
785
815
  this.writeHead(statusCode);
786
816
  }
787
817
  responseReady = true;
788
- return this;
789
818
  }
790
819
  };
791
820
  if (self.requestListener) {
@@ -793,51 +822,141 @@ var init_server_runtime = __esm({
793
822
  } else {
794
823
  self.emit("request", incomingMessage, serverResponse);
795
824
  }
796
- if (responseReady) {
797
- return new Response(body, {
798
- status: statusCode,
799
- statusText: statusMessage,
800
- headers
801
- });
825
+ if (!responseReady) {
826
+ serverResponse.end();
802
827
  }
803
- return new Promise((resolve) => {
804
- serverResponse.end = (chunk) => {
805
- if (chunk !== void 0) {
806
- body += chunk;
807
- }
808
- resolve(new Response(body, {
809
- status: statusCode,
810
- statusText: statusMessage,
811
- headers
812
- }));
813
- };
828
+ return new Response(body, {
829
+ status: statusCode,
830
+ statusText: statusMessage,
831
+ headers
814
832
  });
815
833
  },
816
- error: createErrorResponse
834
+ error: (err) => {
835
+ this.emit("error", err);
836
+ return createErrorResponse();
837
+ }
817
838
  });
839
+ this._listening = true;
818
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
+ });
819
847
  } else if (isDeno) {
848
+ const server = this;
820
849
  this.nativeServer = Deno.serve({
821
850
  port,
822
- hostname,
823
- handler: (req) => {
824
- return new Promise((resolve) => {
825
- const incomingMessage = new IncomingMessage(req);
826
- const serverResponse = new ServerResponse();
827
- serverResponse._setResolver(resolve);
828
- if (self.requestListener) {
829
- self.requestListener(incomingMessage, serverResponse);
830
- } else {
831
- 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
+ });
832
906
  }
833
- });
834
- },
835
- onError: (error) => {
836
- this.emit("error", error);
837
- 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);
936
+ }
937
+ if (!responseClosed) {
938
+ serverResponse.end();
838
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
+ });
839
956
  });
957
+ this._listening = true;
840
958
  emitListeningWithCallback(this, callback);
959
+ this.nativeServer.finished.then(() => closeAndEmit(this)).catch((err) => this.emit("error", err));
841
960
  }
842
961
  return this;
843
962
  }
@@ -1102,9 +1221,28 @@ var Server2 = class extends import_node_events6.EventEmitter {
1102
1221
  this.options = options;
1103
1222
  this.requestListener = requestListener;
1104
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
+ }
1105
1242
  listen(...args) {
1106
1243
  let port = 3e3;
1107
1244
  let hostname = "0.0.0.0";
1245
+ let fd;
1108
1246
  let callback;
1109
1247
  const firstArg = args[0];
1110
1248
  if (typeof firstArg === "number") {
@@ -1119,8 +1257,10 @@ var Server2 = class extends import_node_events6.EventEmitter {
1119
1257
  } else if (firstArg && typeof firstArg === "object") {
1120
1258
  port = firstArg.port || 3e3;
1121
1259
  hostname = firstArg.hostname || "0.0.0.0";
1260
+ fd = typeof firstArg.fd === "number" ? firstArg.fd : void 0;
1122
1261
  callback = args[1];
1123
1262
  }
1263
+ fd = this.resolvePmInheritedFd(firstArg && typeof firstArg === "object" ? firstArg.port : port, fd);
1124
1264
  const self = this;
1125
1265
  if (isNode) {
1126
1266
  const { IncomingMessage: IncomingMessage2, ServerResponse: ServerResponse2 } = loadHttpClasses();
@@ -1133,11 +1273,19 @@ var Server2 = class extends import_node_events6.EventEmitter {
1133
1273
  self.emit("request", incomingMessage, serverResponse);
1134
1274
  }
1135
1275
  });
1136
- this.nativeServer.listen(port, hostname, () => {
1137
- this._listening = true;
1138
- this.emit("listening");
1139
- if (callback) callback();
1140
- });
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
+ }
1141
1289
  this.nativeServer.on("error", (err) => this.emit("error", err));
1142
1290
  this.nativeServer.on("close", () => {
1143
1291
  this._listening = false;
package/dist/https.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'node:events';
2
- import { I as IncomingMessage, S as ServerResponse, R as RequestOptions, a as RequestListener } from './types-DAisuVr5.js';
2
+ import { I as IncomingMessage, c as ServerResponse, R as RequestOptions, a as RequestListener, S as ServerListenOptions } from './types-DPOgoGs-.js';
3
3
 
4
4
  /**
5
5
  * HTTPS Agent
@@ -77,14 +77,11 @@ declare class Server extends EventEmitter {
77
77
  _listening: boolean;
78
78
  private options;
79
79
  constructor(options?: ServerOptions, requestListener?: RequestListener);
80
+ private resolvePmInheritedFd;
80
81
  listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;
81
82
  listen(port?: number, hostname?: string, listeningListener?: () => void): this;
82
83
  listen(port?: number, listeningListener?: () => void): this;
83
- listen(options?: {
84
- port?: number;
85
- hostname?: string;
86
- backlog?: number;
87
- }, listeningListener?: () => void): this;
84
+ listen(options?: ServerListenOptions, listeningListener?: () => void): this;
88
85
  close(callback?: (err?: Error) => void): this;
89
86
  address(): {
90
87
  port: number;