@absolutejs/absolute 0.20.0-beta.72 → 0.20.0-beta.73

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.
@@ -33,13 +33,20 @@ var init_bootLifecycle = __esm(() => {
33
33
  var exports_earlyListener = {};
34
34
  __export(exports_earlyListener, {
35
35
  BOOT_STATUS_HEADER: () => BOOT_STATUS_HEADER,
36
+ PARENT_HANDOFF_MARKER: () => PARENT_HANDOFF_MARKER,
37
+ PARENT_LISTENER_ENV: () => PARENT_LISTENER_ENV,
36
38
  bootStatusSnapshot: () => bootStatusSnapshot,
37
39
  buildingResponse: () => buildingResponse,
38
40
  installEarlyListenerServeGuard: () => installEarlyListenerServeGuard,
41
+ installParentPortHandoffGuard: () => installParentPortHandoffGuard,
42
+ parentListenerSupported: () => parentListenerSupported,
43
+ parentOwnsDevPort: () => parentOwnsDevPort,
39
44
  releaseEarlyListener: () => releaseEarlyListener,
45
+ signalParentPortHandoff: () => signalParentPortHandoff,
40
46
  startEarlyListener: () => startEarlyListener
41
47
  });
42
- var HTTP_SERVICE_UNAVAILABLE = 503, RETRY_AFTER_SECONDS = 2, BIND_RETRY_INTERVAL_MS = 250, BIND_RETRY_LIMIT = 40, POLL_INTERVAL_MS, NOSCRIPT_REFRESH_SECONDS = 10, BOOT_STATUS_HEADER = "X-Absolute-Boot", bindingPlaceholder = false, escapeHtml = (value) => value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;"), bootStatusSnapshot = (startedAt) => {
48
+ import { writeSync } from "fs";
49
+ var HTTP_SERVICE_UNAVAILABLE = 503, RETRY_AFTER_SECONDS = 2, BIND_RETRY_INTERVAL_MS = 250, BIND_RETRY_LIMIT = 40, POLL_INTERVAL_MS, NOSCRIPT_REFRESH_SECONDS = 10, BOOT_STATUS_HEADER = "X-Absolute-Boot", PARENT_HANDOFF_MARKER = "absolute:listening", PARENT_LISTENER_ENV = "ABSOLUTE_PARENT_LISTENER", PARENT_HANDOFF_FD = 3, bindingPlaceholder = false, escapeHtml = (value) => value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;"), bootStatusSnapshot = (startedAt) => {
43
50
  const elapsedMs = Math.max(0, Date.now() - startedAt);
44
51
  return {
45
52
  elapsedMs,
@@ -128,7 +135,23 @@ setTimeout(poll,${POLL_INTERVAL_MS});
128
135
  if (Reflect.set(Bun, "serve", guardedServe)) {
129
136
  globalThis.__absoluteEarlyListenerServeGuard = true;
130
137
  }
131
- }, releaseEarlyListener = () => {
138
+ }, installParentPortHandoffGuard = (port) => {
139
+ if (globalThis.__absoluteParentPortHandoffGuard)
140
+ return;
141
+ const originalServe = Bun.serve;
142
+ const guardedServe = (serveOptions) => {
143
+ if (Number(serveOptions.port) !== port) {
144
+ return originalServe.call(Bun, serveOptions);
145
+ }
146
+ Reflect.set(serveOptions, "reusePort", true);
147
+ const server = originalServe.call(Bun, serveOptions);
148
+ signalParentPortHandoff(port);
149
+ return server;
150
+ };
151
+ if (Reflect.set(Bun, "serve", guardedServe)) {
152
+ globalThis.__absoluteParentPortHandoffGuard = true;
153
+ }
154
+ }, parentListenerSupported = () => process.platform !== "win32", parentOwnsDevPort = () => process.env[PARENT_LISTENER_ENV] === "1", releaseEarlyListener = () => {
132
155
  const listener = globalThis.__absoluteEarlyListener;
133
156
  if (!listener)
134
157
  return false;
@@ -136,6 +159,14 @@ setTimeout(poll,${POLL_INTERVAL_MS});
136
159
  listener.release();
137
160
  globalThis.__absoluteEarlyListener = undefined;
138
161
  return hadServer;
162
+ }, signalParentPortHandoff = (port) => {
163
+ if (globalThis.__absoluteParentHandoffSignalled)
164
+ return;
165
+ globalThis.__absoluteParentHandoffSignalled = true;
166
+ try {
167
+ writeSync(PARENT_HANDOFF_FD, `${PARENT_HANDOFF_MARKER} ${port}
168
+ `);
169
+ } catch {}
139
170
  }, startEarlyListener = (options) => {
140
171
  const startedAt = Date.now();
141
172
  let server = null;
@@ -152,6 +183,7 @@ setTimeout(poll,${POLL_INTERVAL_MS});
152
183
  hostname: options.host,
153
184
  port: options.port,
154
185
  fetch: (request) => buildingResponse(request, startedAt),
186
+ ...options.reusePort ? { reusePort: true } : {},
155
187
  ...options.tls ? { tls: options.tls } : {}
156
188
  });
157
189
  } catch {
@@ -637,7 +669,12 @@ if (!globalThis.__absoluteEntryCleanupRegistered) {
637
669
  });
638
670
  }
639
671
  if (!isHotReevaluation && !globalThis.__absoluteBunServer && process.env.ABSOLUTE_EARLY_LISTEN !== "0") {
640
- const { startEarlyListener: startEarlyListener2, installEarlyListenerServeGuard: installEarlyListenerServeGuard2 } = await Promise.resolve().then(() => (init_earlyListener(), exports_earlyListener));
672
+ const {
673
+ installEarlyListenerServeGuard: installEarlyListenerServeGuard2,
674
+ installParentPortHandoffGuard: installParentPortHandoffGuard2,
675
+ parentOwnsDevPort: parentOwnsDevPort2,
676
+ startEarlyListener: startEarlyListener2
677
+ } = await Promise.resolve().then(() => (init_earlyListener(), exports_earlyListener));
641
678
  const earlyHost = process.env.ABSOLUTE_HOST ?? process.env.HOST ?? "localhost";
642
679
  const earlyPort = Number(process.env.ABSOLUTE_PORT ?? process.env.PORT ?? DEFAULT_PORT);
643
680
  const loadEarlyTls = async () => {
@@ -653,16 +690,21 @@ if (!isHotReevaluation && !globalThis.__absoluteBunServer && process.env.ABSOLUT
653
690
  }
654
691
  };
655
692
  if (Number.isInteger(earlyPort) && earlyPort > 0) {
656
- startEarlyListener2({
657
- host: earlyHost,
658
- port: earlyPort,
659
- tls: await loadEarlyTls()
660
- });
661
- installEarlyListenerServeGuard2(earlyPort);
662
- markBoot("early listener bound");
693
+ if (parentOwnsDevPort2()) {
694
+ installParentPortHandoffGuard2(earlyPort);
695
+ markBoot("parent listener adopted");
696
+ } else {
697
+ startEarlyListener2({
698
+ host: earlyHost,
699
+ port: earlyPort,
700
+ tls: await loadEarlyTls()
701
+ });
702
+ installEarlyListenerServeGuard2(earlyPort);
703
+ markBoot("early listener bound");
704
+ }
663
705
  }
664
706
  }
665
- if (!isHotReevaluation && true && process.env.ABSOLUTE_DEV_PREBUILD !== "0") {
707
+ if (!isHotReevaluation && true && process.env.ABSOLUTE_DEV_PREBUILD !== "0" && process.env.ABSOLUTE_DEV_IMPORT_COST !== "1") {
666
708
  const compiledRuntime = join2(import.meta.dir, "..", "index.js");
667
709
  const runtimeEntry = existsSync2(compiledRuntime) ? compiledRuntime : join2(import.meta.dir, "..", "index.ts");
668
710
  markBoot("prebuild import issued");
@@ -673,6 +715,13 @@ if (!isHotReevaluation && true && process.env.ABSOLUTE_DEV_PREBUILD !== "0") {
673
715
  console.error(`[dev] boot prebuild failed: ${error instanceof Error ? error.message : String(error)}`);
674
716
  });
675
717
  }
718
+ var importCostRecorder = globalThis.__absoluteImportCost;
719
+ if (importCostRecorder !== undefined) {
720
+ importCostRecorder.entryModule = bootstrapCopy;
721
+ importCostRecorder.entryOriginalModule = entryPath;
722
+ importCostRecorder.rootModule = import.meta.path;
723
+ }
676
724
  markBoot("server entry import start");
677
725
  await import(bootstrapCopy);
678
726
  markBoot("server entry import done");
727
+ await globalThis.__absoluteImportCostReport?.();
package/dist/index.js CHANGED
@@ -36698,8 +36698,13 @@ var loadDevCert = (hosts = []) => {
36698
36698
  // src/dev/earlyListener.ts
36699
36699
  init_constants();
36700
36700
  init_bootLifecycle();
36701
+ import { writeSync } from "fs";
36701
36702
  var RETRY_AFTER_SECONDS = 2;
36702
36703
  var POLL_INTERVAL_MS2 = RETRY_AFTER_SECONDS * MILLISECONDS_IN_A_SECOND;
36704
+ var PARENT_HANDOFF_MARKER = "absolute:listening";
36705
+ var PARENT_LISTENER_ENV = "ABSOLUTE_PARENT_LISTENER";
36706
+ var PARENT_HANDOFF_FD = 3;
36707
+ var parentOwnsDevPort = () => process.env[PARENT_LISTENER_ENV] === "1";
36703
36708
  var releaseEarlyListener = () => {
36704
36709
  const listener = globalThis.__absoluteEarlyListener;
36705
36710
  if (!listener)
@@ -36709,6 +36714,15 @@ var releaseEarlyListener = () => {
36709
36714
  globalThis.__absoluteEarlyListener = undefined;
36710
36715
  return hadServer;
36711
36716
  };
36717
+ var signalParentPortHandoff = (port) => {
36718
+ if (globalThis.__absoluteParentHandoffSignalled)
36719
+ return;
36720
+ globalThis.__absoluteParentHandoffSignalled = true;
36721
+ try {
36722
+ writeSync(PARENT_HANDOFF_FD, `${PARENT_HANDOFF_MARKER} ${port}
36723
+ `);
36724
+ } catch {}
36725
+ };
36712
36726
 
36713
36727
  // src/utils/instanceRegistry.ts
36714
36728
  import {
@@ -36878,11 +36892,13 @@ var networking = (app) => {
36878
36892
  return app;
36879
36893
  }
36880
36894
  releaseEarlyListener();
36895
+ const parentHandoff = parentOwnsDevPort();
36881
36896
  markBoot("listen() called");
36882
36897
  const listened = app.listen({
36883
36898
  hostname: host2,
36884
36899
  idleTimeout: httpIdleTimeout,
36885
36900
  port,
36901
+ ...parentHandoff ? { reusePort: true } : {},
36886
36902
  ...tls ? {
36887
36903
  tls: {
36888
36904
  cert: tls.cert,
@@ -36891,6 +36907,8 @@ var networking = (app) => {
36891
36907
  } : {}
36892
36908
  }, () => {
36893
36909
  markBoot("server listening");
36910
+ if (parentHandoff)
36911
+ signalParentPortHandoff(Number(port));
36894
36912
  selfRegisterInstance();
36895
36913
  runDeferredBootTasks();
36896
36914
  if (visibility === "internal" || managedByWorkspace) {
@@ -43466,5 +43484,5 @@ export {
43466
43484
  wrapPageHandlerWithStreamingSlots
43467
43485
  };
43468
43486
 
43469
- //# debugId=B9DEF78926403CF064756E2164756E21
43487
+ //# debugId=26428A74DF256E4764756E2164756E21
43470
43488
  //# sourceMappingURL=index.js.map