@zixt/host 0.0.34 → 0.0.36

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 (2) hide show
  1. package/dist/index.js +49 -17
  2. 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",
34
+ version: "0.0.36",
35
35
  type: "module",
36
36
  exports: {
37
37
  ".": "./src/client.ts",
@@ -16021,6 +16021,9 @@ var CreateTaskInput = external_exports.object({
16021
16021
  }
16022
16022
  });
16023
16023
  var CreateTaskRequest = CreateTaskInput.safeExtend({ requestId: external_exports.uuid() });
16024
+ var RenameTaskRequest = external_exports.object({
16025
+ title: Task.shape.title.trim()
16026
+ });
16024
16027
  var PostTaskMessageRequest = external_exports.object({
16025
16028
  /** May be empty only when the message carries attachments (TS-15). */
16026
16029
  text: external_exports.string().max(1e5),
@@ -19437,6 +19440,25 @@ var heartbeatActive = false;
19437
19440
  var heartbeatUsesIpc = false;
19438
19441
  var heartbeatHasDurableOwner = false;
19439
19442
  var readinessReporter = null;
19443
+ function createWorkerWatchdogSendDrain() {
19444
+ let pending = 0;
19445
+ const drained = [];
19446
+ return {
19447
+ begin: () => {
19448
+ pending++;
19449
+ let completed = false;
19450
+ return () => {
19451
+ if (completed) return;
19452
+ completed = true;
19453
+ pending--;
19454
+ if (pending === 0) drained.splice(0).forEach((resolve14) => resolve14());
19455
+ };
19456
+ },
19457
+ drain: async () => {
19458
+ if (pending > 0) await new Promise((resolve14) => drained.push(resolve14));
19459
+ }
19460
+ };
19461
+ }
19440
19462
  function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.slice(2)) {
19441
19463
  const ownership = consumeWorkerOwnershipArguments(argv, env);
19442
19464
  const nonce = env[WORKER_WATCHDOG_NONCE_ENV];
@@ -19445,7 +19467,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19445
19467
  heartbeatUsesIpc = false;
19446
19468
  heartbeatHasDurableOwner = false;
19447
19469
  readinessReporter = null;
19448
- return { active: false, argv: ownership.argv, stop() {
19470
+ return { active: false, argv: ownership.argv, async stop() {
19449
19471
  } };
19450
19472
  }
19451
19473
  const heartbeatFile = env[WORKER_WATCHDOG_FILE_ENV];
@@ -19456,7 +19478,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19456
19478
  heartbeatUsesIpc = false;
19457
19479
  heartbeatHasDurableOwner = false;
19458
19480
  readinessReporter = null;
19459
- return { active: false, argv: ownership.argv, stop() {
19481
+ return { active: false, argv: ownership.argv, async stop() {
19460
19482
  } };
19461
19483
  }
19462
19484
  const boundaryPidValue = !ipc ? env[WORKER_WATCHDOG_BOUNDARY_PID_ENV] : void 0;
@@ -19467,7 +19489,7 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19467
19489
  heartbeatUsesIpc = false;
19468
19490
  heartbeatHasDurableOwner = false;
19469
19491
  readinessReporter = null;
19470
- return { active: false, argv: ownership.argv, stop() {
19492
+ return { active: false, argv: ownership.argv, async stop() {
19471
19493
  } };
19472
19494
  }
19473
19495
  if (ipc && (!ownership.requested || !ownership.valid || !recordWorkerOwnership(env[WORKER_OWNERSHIP_FILE_ENV], nonce))) {
@@ -19475,11 +19497,12 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19475
19497
  heartbeatUsesIpc = false;
19476
19498
  heartbeatHasDurableOwner = false;
19477
19499
  readinessReporter = null;
19478
- return { active: false, argv: ownership.argv, stop() {
19500
+ return { active: false, argv: ownership.argv, async stop() {
19479
19501
  } };
19480
19502
  }
19481
19503
  let stopped = false;
19482
19504
  let sendPending = false;
19505
+ const sendDrain = createWorkerWatchdogSendDrain();
19483
19506
  let sequence = 0;
19484
19507
  let readinessSequence = 0;
19485
19508
  const reportReadiness = () => {
@@ -19493,26 +19516,32 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19493
19516
  sequence: ++readinessSequence,
19494
19517
  heartbeatSequence: sequence
19495
19518
  };
19519
+ const sendComplete = sendDrain.begin();
19496
19520
  try {
19497
19521
  process.send(message, (error52) => {
19522
+ sendComplete();
19498
19523
  if (error52) stop();
19499
19524
  });
19500
19525
  return true;
19501
19526
  } catch {
19527
+ sendComplete();
19502
19528
  stop();
19503
19529
  return false;
19504
19530
  }
19505
19531
  };
19506
- const stop = () => {
19507
- if (stopped) return;
19508
- stopped = true;
19509
- heartbeatActive = false;
19510
- heartbeatUsesIpc = false;
19511
- heartbeatHasDurableOwner = false;
19512
- if (readinessReporter === reportReadiness) readinessReporter = null;
19513
- clearInterval(timer);
19514
- process.off("disconnect", stop);
19532
+ const stop = async () => {
19533
+ if (!stopped) {
19534
+ stopped = true;
19535
+ heartbeatActive = false;
19536
+ heartbeatUsesIpc = false;
19537
+ heartbeatHasDurableOwner = false;
19538
+ if (readinessReporter === reportReadiness) readinessReporter = null;
19539
+ clearInterval(timer);
19540
+ process.off("disconnect", onDisconnect);
19541
+ }
19542
+ await sendDrain.drain();
19515
19543
  };
19544
+ const onDisconnect = () => void stop();
19516
19545
  const send = () => {
19517
19546
  if (stopped || sendPending) return;
19518
19547
  sendPending = true;
@@ -19528,12 +19557,15 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19528
19557
  stop();
19529
19558
  return;
19530
19559
  }
19560
+ const sendComplete = sendDrain.begin();
19531
19561
  try {
19532
19562
  process.send(message, (error52) => {
19563
+ sendComplete();
19533
19564
  sendPending = false;
19534
19565
  if (error52) stop();
19535
19566
  });
19536
19567
  } catch {
19568
+ sendComplete();
19537
19569
  sendPending = false;
19538
19570
  stop();
19539
19571
  }
@@ -19550,9 +19582,9 @@ function startWorkerWatchdogHeartbeat(env = process.env, argv = process.argv.sli
19550
19582
  const timer = setInterval(send, WORKER_HEARTBEAT_MS);
19551
19583
  timer.unref?.();
19552
19584
  send();
19553
- if (stopped) return { active: false, argv: ownership.argv, stop() {
19585
+ if (stopped) return { active: false, argv: ownership.argv, async stop() {
19554
19586
  } };
19555
- if (ipc) process.once("disconnect", stop);
19587
+ if (ipc) process.once("disconnect", onDisconnect);
19556
19588
  heartbeatUsesIpc = ipc;
19557
19589
  heartbeatHasDurableOwner = ipc;
19558
19590
  heartbeatActive = true;
@@ -37451,7 +37483,7 @@ function shutdown(exitCode = 0) {
37451
37483
  },
37452
37484
  recoveringLiveRuns ? 3e4 : 2e3
37453
37485
  ).unref();
37454
- void client.stop().then(() => process.exit(exitCode));
37486
+ void workerWatchdog.stop().then(() => client.stop()).then(() => process.exit(exitCode));
37455
37487
  }
37456
37488
  stopUpdateWatch = !packagedBuild ? () => {
37457
37489
  } : watchForUpdates({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zixt/host",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./src/client.ts",