@zixt/host 0.0.34 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +46 -17
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@ import { homedir } from "node:os";
|
|
|
31
31
|
// package.json
|
|
32
32
|
var package_default = {
|
|
33
33
|
name: "@zixt/host",
|
|
34
|
-
version: "0.0.
|
|
34
|
+
version: "0.0.35",
|
|
35
35
|
type: "module",
|
|
36
36
|
exports: {
|
|
37
37
|
".": "./src/client.ts",
|
|
@@ -19437,6 +19437,25 @@ var heartbeatActive = false;
|
|
|
19437
19437
|
var heartbeatUsesIpc = false;
|
|
19438
19438
|
var heartbeatHasDurableOwner = false;
|
|
19439
19439
|
var readinessReporter = null;
|
|
19440
|
+
function createWorkerWatchdogSendDrain() {
|
|
19441
|
+
let pending = 0;
|
|
19442
|
+
const drained = [];
|
|
19443
|
+
return {
|
|
19444
|
+
begin: () => {
|
|
19445
|
+
pending++;
|
|
19446
|
+
let completed = false;
|
|
19447
|
+
return () => {
|
|
19448
|
+
if (completed) return;
|
|
19449
|
+
completed = true;
|
|
19450
|
+
pending--;
|
|
19451
|
+
if (pending === 0) drained.splice(0).forEach((resolve14) => resolve14());
|
|
19452
|
+
};
|
|
19453
|
+
},
|
|
19454
|
+
drain: async () => {
|
|
19455
|
+
if (pending > 0) await new Promise((resolve14) => drained.push(resolve14));
|
|
19456
|
+
}
|
|
19457
|
+
};
|
|
19458
|
+
}
|
|
19440
19459
|
function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.slice(2)) {
|
|
19441
19460
|
const ownership = consumeWorkerOwnershipArguments(argv, env);
|
|
19442
19461
|
const nonce = env[WORKER_WATCHDOG_NONCE_ENV];
|
|
@@ -19445,7 +19464,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19445
19464
|
heartbeatUsesIpc = false;
|
|
19446
19465
|
heartbeatHasDurableOwner = false;
|
|
19447
19466
|
readinessReporter = null;
|
|
19448
|
-
return { active: false, argv: ownership.argv, stop() {
|
|
19467
|
+
return { active: false, argv: ownership.argv, async stop() {
|
|
19449
19468
|
} };
|
|
19450
19469
|
}
|
|
19451
19470
|
const heartbeatFile = env[WORKER_WATCHDOG_FILE_ENV];
|
|
@@ -19456,7 +19475,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19456
19475
|
heartbeatUsesIpc = false;
|
|
19457
19476
|
heartbeatHasDurableOwner = false;
|
|
19458
19477
|
readinessReporter = null;
|
|
19459
|
-
return { active: false, argv: ownership.argv, stop() {
|
|
19478
|
+
return { active: false, argv: ownership.argv, async stop() {
|
|
19460
19479
|
} };
|
|
19461
19480
|
}
|
|
19462
19481
|
const boundaryPidValue = !ipc ? env[WORKER_WATCHDOG_BOUNDARY_PID_ENV] : void 0;
|
|
@@ -19467,7 +19486,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19467
19486
|
heartbeatUsesIpc = false;
|
|
19468
19487
|
heartbeatHasDurableOwner = false;
|
|
19469
19488
|
readinessReporter = null;
|
|
19470
|
-
return { active: false, argv: ownership.argv, stop() {
|
|
19489
|
+
return { active: false, argv: ownership.argv, async stop() {
|
|
19471
19490
|
} };
|
|
19472
19491
|
}
|
|
19473
19492
|
if (ipc && (!ownership.requested || !ownership.valid || !recordWorkerOwnership(env[WORKER_OWNERSHIP_FILE_ENV], nonce))) {
|
|
@@ -19475,11 +19494,12 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19475
19494
|
heartbeatUsesIpc = false;
|
|
19476
19495
|
heartbeatHasDurableOwner = false;
|
|
19477
19496
|
readinessReporter = null;
|
|
19478
|
-
return { active: false, argv: ownership.argv, stop() {
|
|
19497
|
+
return { active: false, argv: ownership.argv, async stop() {
|
|
19479
19498
|
} };
|
|
19480
19499
|
}
|
|
19481
19500
|
let stopped = false;
|
|
19482
19501
|
let sendPending = false;
|
|
19502
|
+
const sendDrain = createWorkerWatchdogSendDrain();
|
|
19483
19503
|
let sequence = 0;
|
|
19484
19504
|
let readinessSequence = 0;
|
|
19485
19505
|
const reportReadiness = () => {
|
|
@@ -19493,26 +19513,32 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19493
19513
|
sequence: ++readinessSequence,
|
|
19494
19514
|
heartbeatSequence: sequence
|
|
19495
19515
|
};
|
|
19516
|
+
const sendComplete = sendDrain.begin();
|
|
19496
19517
|
try {
|
|
19497
19518
|
process.send(message, (error52) => {
|
|
19519
|
+
sendComplete();
|
|
19498
19520
|
if (error52) stop();
|
|
19499
19521
|
});
|
|
19500
19522
|
return true;
|
|
19501
19523
|
} catch {
|
|
19524
|
+
sendComplete();
|
|
19502
19525
|
stop();
|
|
19503
19526
|
return false;
|
|
19504
19527
|
}
|
|
19505
19528
|
};
|
|
19506
|
-
const stop = () => {
|
|
19507
|
-
if (stopped)
|
|
19508
|
-
|
|
19509
|
-
|
|
19510
|
-
|
|
19511
|
-
|
|
19512
|
-
|
|
19513
|
-
|
|
19514
|
-
|
|
19529
|
+
const stop = async () => {
|
|
19530
|
+
if (!stopped) {
|
|
19531
|
+
stopped = true;
|
|
19532
|
+
heartbeatActive = false;
|
|
19533
|
+
heartbeatUsesIpc = false;
|
|
19534
|
+
heartbeatHasDurableOwner = false;
|
|
19535
|
+
if (readinessReporter === reportReadiness) readinessReporter = null;
|
|
19536
|
+
clearInterval(timer);
|
|
19537
|
+
process.off("disconnect", onDisconnect);
|
|
19538
|
+
}
|
|
19539
|
+
await sendDrain.drain();
|
|
19515
19540
|
};
|
|
19541
|
+
const onDisconnect = () => void stop();
|
|
19516
19542
|
const send = () => {
|
|
19517
19543
|
if (stopped || sendPending) return;
|
|
19518
19544
|
sendPending = true;
|
|
@@ -19528,12 +19554,15 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19528
19554
|
stop();
|
|
19529
19555
|
return;
|
|
19530
19556
|
}
|
|
19557
|
+
const sendComplete = sendDrain.begin();
|
|
19531
19558
|
try {
|
|
19532
19559
|
process.send(message, (error52) => {
|
|
19560
|
+
sendComplete();
|
|
19533
19561
|
sendPending = false;
|
|
19534
19562
|
if (error52) stop();
|
|
19535
19563
|
});
|
|
19536
19564
|
} catch {
|
|
19565
|
+
sendComplete();
|
|
19537
19566
|
sendPending = false;
|
|
19538
19567
|
stop();
|
|
19539
19568
|
}
|
|
@@ -19550,9 +19579,9 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
|
|
|
19550
19579
|
const timer = setInterval(send, WORKER_HEARTBEAT_MS);
|
|
19551
19580
|
timer.unref?.();
|
|
19552
19581
|
send();
|
|
19553
|
-
if (stopped) return { active: false, argv: ownership.argv, stop() {
|
|
19582
|
+
if (stopped) return { active: false, argv: ownership.argv, async stop() {
|
|
19554
19583
|
} };
|
|
19555
|
-
if (ipc) process.once("disconnect",
|
|
19584
|
+
if (ipc) process.once("disconnect", onDisconnect);
|
|
19556
19585
|
heartbeatUsesIpc = ipc;
|
|
19557
19586
|
heartbeatHasDurableOwner = ipc;
|
|
19558
19587
|
heartbeatActive = true;
|
|
@@ -37451,7 +37480,7 @@ function shutdown(exitCode = 0) {
|
|
|
37451
37480
|
},
|
|
37452
37481
|
recoveringLiveRuns ? 3e4 : 2e3
|
|
37453
37482
|
).unref();
|
|
37454
|
-
void client.stop().then(() => process.exit(exitCode));
|
|
37483
|
+
void workerWatchdog.stop().then(() => client.stop()).then(() => process.exit(exitCode));
|
|
37455
37484
|
}
|
|
37456
37485
|
stopUpdateWatch = !packagedBuild ? () => {
|
|
37457
37486
|
} : watchForUpdates({
|