@spine-event-engine/server 2.0.0-snapshot.21 → 2.0.0-snapshot.22

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 (52) hide show
  1. package/REFERENCE.md +5 -0
  2. package/dist/context/entity-inbox.d.ts.map +1 -1
  3. package/dist/context/entity-inbox.js +5 -5
  4. package/dist/context/entity-inbox.js.map +1 -1
  5. package/dist/context/projection-handoff.d.ts.map +1 -1
  6. package/dist/context/projection-handoff.js +2 -1
  7. package/dist/context/projection-handoff.js.map +1 -1
  8. package/dist/delivery/delivery.d.ts.map +1 -1
  9. package/dist/delivery/delivery.js +4 -3
  10. package/dist/delivery/delivery.js.map +1 -1
  11. package/dist/delivery/inbox-records.d.ts +13 -0
  12. package/dist/delivery/inbox-records.d.ts.map +1 -1
  13. package/dist/delivery/inbox-records.js +204 -30
  14. package/dist/delivery/inbox-records.js.map +1 -1
  15. package/dist/delivery/inbox-storage.d.ts.map +1 -1
  16. package/dist/delivery/inbox-storage.js +26 -5
  17. package/dist/delivery/inbox-storage.js.map +1 -1
  18. package/dist/delivery/inbox.d.ts +7 -7
  19. package/dist/delivery/inbox.d.ts.map +1 -1
  20. package/dist/delivery/inbox.js +1 -2
  21. package/dist/delivery/inbox.js.map +1 -1
  22. package/dist/delivery/sharded-work-registry.d.ts +1 -0
  23. package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
  24. package/dist/delivery/sharded-work-registry.js +3 -1
  25. package/dist/delivery/sharded-work-registry.js.map +1 -1
  26. package/dist/entity/entity-transaction.d.ts.map +1 -1
  27. package/dist/entity/entity-transaction.js +2 -6
  28. package/dist/entity/entity-transaction.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/integration/third-party-context.d.ts +5 -0
  34. package/dist/integration/third-party-context.d.ts.map +1 -1
  35. package/dist/integration/third-party-context.js +7 -6
  36. package/dist/integration/third-party-context.js.map +1 -1
  37. package/dist/repository/repository.d.ts.map +1 -1
  38. package/dist/repository/repository.js +7 -15
  39. package/dist/repository/repository.js.map +1 -1
  40. package/dist/runtime/signal-metadata.d.ts +7 -47
  41. package/dist/runtime/signal-metadata.d.ts.map +1 -1
  42. package/dist/runtime/signal-metadata.js +8 -62
  43. package/dist/runtime/signal-metadata.js.map +1 -1
  44. package/dist/server/managed-server-application.d.ts +36 -6
  45. package/dist/server/managed-server-application.d.ts.map +1 -1
  46. package/dist/server/managed-server-application.js +257 -4
  47. package/dist/server/managed-server-application.js.map +1 -1
  48. package/dist/stand/subscription-registry.d.ts.map +1 -1
  49. package/dist/stand/subscription-registry.js +9 -8
  50. package/dist/stand/subscription-registry.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +12 -12
@@ -11,6 +11,7 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
+ import { Time } from "@spine-event-engine/core/time";
14
15
  import { fork } from "node:child_process";
15
16
  import { randomUUID } from "node:crypto";
16
17
  import { fileURLToPath } from "node:url";
@@ -48,14 +49,33 @@ const lifecycleLogger = new LogLayer({
48
49
  * Starts a managed parent and its complete-replica child processes.
49
50
  */
50
51
  export const ManagedServerApplication = Object.freeze({
52
+ /**
53
+ * Validates replica count and port, then starts the parent coordinator or child application.
54
+ *
55
+ * @param options The replica count, listener, child module, and assembly callback.
56
+ * @returns The started application handle.
57
+ */
51
58
  async start(options) {
52
59
  return ManagedServerValues.start(options, false);
53
60
  },
61
+ /**
62
+ * Starts managed replicas and installs process signal handling.
63
+ *
64
+ * @param options The replica count, listener, and child assembly settings.
65
+ * @returns The started application handle.
66
+ */
54
67
  async run(options) {
55
68
  return ManagedServerValues.start(options, true);
56
69
  },
57
70
  });
58
71
  const ManagedServerValues = Object.freeze({
72
+ /**
73
+ * Validates replica count and port, then starts the parent coordinator or child application.
74
+ *
75
+ * @param options The replica count, listener, child module, and assembly callback.
76
+ * @param manageProcessSignals Whether the parent installs SIGINT and SIGTERM handlers.
77
+ * @returns The started application handle.
78
+ */
59
79
  async start(options, manageProcessSignals) {
60
80
  if (!Number.isSafeInteger(options.processCount) || options.processCount < 1) {
61
81
  throw new Error("Managed server processCount must be a positive safe integer.");
@@ -65,6 +85,12 @@ const ManagedServerValues = Object.freeze({
65
85
  return ManagedServerValues.child(options);
66
86
  return ManagedServerValues.parent(options, manageProcessSignals);
67
87
  },
88
+ /**
89
+ * Creates a child server, checks volatile registries, synchronizes, and participates in parent IPC.
90
+ *
91
+ * @param options The child server assembly and synchronization settings.
92
+ * @returns The active child application handle.
93
+ */
68
94
  async child(options) {
69
95
  const server = await options.createServer({ host: "127.0.0.1", port: 0 });
70
96
  try {
@@ -81,7 +107,7 @@ const ManagedServerValues = Object.freeze({
81
107
  throw error;
82
108
  }
83
109
  // Node may emit an IPC EPIPE after a parent has already disappeared. The
84
- // disconnect handler below owns shutdown; this listener prevents that
110
+ // disconnect handler below handles shutdown; this listener prevents that
85
111
  // transport detail from becoming an unhandled child-process exception.
86
112
  const containIpcError = () => undefined;
87
113
  process.on("error", containIpcError);
@@ -190,9 +216,21 @@ const ManagedServerValues = Object.freeze({
190
216
  close,
191
217
  };
192
218
  },
219
+ /**
220
+ * Starts a coordinator for the configured complete-replica cohort.
221
+ *
222
+ * @param options The parent cohort and listener settings.
223
+ * @param manageProcessSignals Whether the parent installs SIGINT and SIGTERM handlers.
224
+ * @returns The started parent cohort handle.
225
+ */
193
226
  parent(options, manageProcessSignals) {
194
227
  return new ManagedServerCoordinator({ ...options, manageProcessSignals }).start();
195
228
  },
229
+ /**
230
+ * Starts child shutdown after an IPC close or disconnect event and logs failure.
231
+ *
232
+ * @param close The child shutdown callback.
233
+ */
196
234
  closeFromEvent(close) {
197
235
  // spine-log-boundary: server.managed_replica_child_close
198
236
  void close().catch(() => {
@@ -202,12 +240,23 @@ const ManagedServerValues = Object.freeze({
202
240
  });
203
241
  });
204
242
  },
243
+ /**
244
+ * Rejects child servers without exclusively in-memory subscription registries.
245
+ *
246
+ * @param server The assembled child server to inspect.
247
+ */
205
248
  requireVolatileRegistries(server) {
206
249
  const registries = runningServerAccess.subscriptionRegistries(server) ?? managedTestRegistries.get(server);
207
250
  if (registries === undefined ||
208
251
  registries.some((registry) => !(registry instanceof InMemorySubscriptionRegistry)))
209
252
  throw new Error("Managed application replicas require an in-memory Stand subscription registry.");
210
253
  },
254
+ /**
255
+ * Sends a child lifecycle notification over the connected parent IPC channel.
256
+ *
257
+ * @param message The child lifecycle notification to send.
258
+ * @returns Completion after the parent IPC channel acknowledges the send.
259
+ */
211
260
  send(message) {
212
261
  return new Promise((resolve, reject) => {
213
262
  if (process.send === undefined || !process.connected) {
@@ -312,6 +361,11 @@ export class ManagedServerCoordinator {
312
361
  handleMembers.set(handle, this);
313
362
  return handle;
314
363
  }
364
+ /**
365
+ * Starts a child for an available slot while respecting the concurrent-start limit.
366
+ *
367
+ * @param slot The replica slot to start or update.
368
+ */
315
369
  #start(slot) {
316
370
  if (this.#closing ||
317
371
  slot.starting ||
@@ -366,6 +420,13 @@ export class ManagedServerCoordinator {
366
420
  this.#onError(slot, replica);
367
421
  });
368
422
  }
423
+ /**
424
+ * Processes a matching child lifecycle notification and updates readiness or shutdown state.
425
+ *
426
+ * @param slot The replica slot to start or update.
427
+ * @param replica The child incarnation associated with the event.
428
+ * @param message The untrusted child IPC notification.
429
+ */
369
430
  #onMessage(slot, replica, message) {
370
431
  const closeResult = ManagedServerCoordinatorValues.closeResultMessage(message, slot.slot, replica.incarnation);
371
432
  if (closeResult !== undefined) {
@@ -419,6 +480,12 @@ export class ManagedServerCoordinator {
419
480
  this.#notifyReadyMembers();
420
481
  this.#drainStarts();
421
482
  }
483
+ /**
484
+ * Retires an exited incarnation and schedules replacement after an unexpected exit.
485
+ *
486
+ * @param slot The replica slot to start or update.
487
+ * @param replica The child incarnation associated with the event.
488
+ */
422
489
  #onExit(slot, replica) {
423
490
  if (slot.replica !== replica || replica.terminal)
424
491
  return;
@@ -447,6 +514,12 @@ export class ManagedServerCoordinator {
447
514
  this.#scheduleReplacement(slot);
448
515
  this.#drainStarts();
449
516
  }
517
+ /**
518
+ * Retires a child after a process error and starts bounded termination.
519
+ *
520
+ * @param slot The replica slot to start or update.
521
+ * @param replica The child incarnation associated with the event.
522
+ */
450
523
  #onError(slot, replica) {
451
524
  if (slot.replica !== replica || replica.terminal)
452
525
  return;
@@ -455,6 +528,11 @@ export class ManagedServerCoordinator {
455
528
  this.#onExit(slot, replica);
456
529
  this.#terminateUnexpected(replica);
457
530
  }
531
+ /**
532
+ * Schedules exponential replacement delay capped by the configured maximum.
533
+ *
534
+ * @param slot The replica slot to start or update.
535
+ */
458
536
  #scheduleReplacement(slot) {
459
537
  slot.failures++;
460
538
  const delay = Math.min(this.#restart.initialDelayMs * 2 ** Math.max(0, slot.failures - 1), this.#restart.maximumDelayMs);
@@ -471,6 +549,10 @@ export class ManagedServerCoordinator {
471
549
  delay: String(delay),
472
550
  });
473
551
  }
552
+ /**
553
+ * Fills available concurrent-start capacity with unscheduled empty slots.
554
+ *
555
+ */
474
556
  #drainStarts() {
475
557
  for (const slot of this.#slots) {
476
558
  if (this.#starts >= this.#restart.concurrentStarts)
@@ -527,18 +609,41 @@ export class ManagedServerCoordinator {
527
609
  });
528
610
  return close;
529
611
  }
612
+ /**
613
+ * Closes the current replica through the bounded child shutdown procedure.
614
+ *
615
+ * @param replica The child incarnation associated with the event.
616
+ * @returns Completion after child shutdown.
617
+ */
530
618
  #closeReplica(replica) {
531
619
  return ManagedServerCoordinatorValues.close(replica, this.#dependencies.clock);
532
620
  }
621
+ /**
622
+ * Terminates a retired replica and removes it from the pending set.
623
+ *
624
+ * @param replica The child incarnation associated with the event.
625
+ * @returns Completion after the retired process exits.
626
+ */
533
627
  async #closeRetired(replica) {
534
628
  replica.expectedExit = true;
535
629
  await this.#terminateRetired(replica);
536
630
  this.#retired.delete(replica);
537
631
  }
632
+ /**
633
+ * Records a failed child for bounded background termination.
634
+ *
635
+ * @param replica The child incarnation associated with the event.
636
+ */
538
637
  #terminateUnexpected(replica) {
539
638
  this.#retired.add(replica);
540
639
  void this.#terminateRetired(replica);
541
640
  }
641
+ /**
642
+ * Reuses or starts bounded termination for one retired incarnation.
643
+ *
644
+ * @param replica The child incarnation associated with the event.
645
+ * @returns The shared termination attempt for this child.
646
+ */
542
647
  #terminateRetired(replica) {
543
648
  const prior = this.#retireTerminations.get(replica);
544
649
  if (prior !== undefined)
@@ -581,7 +686,7 @@ export class ManagedServerCoordinator {
581
686
  /**
582
687
  * Records an exact native subscription whose activation started for a member.
583
688
  *
584
- * @param member Supplies the member that owns the child subscription.
689
+ * @param member Identifies the member whose child subscription is activating.
585
690
  * @param subscription Supplies the activating native subscription.
586
691
  */
587
692
  onChildSubscriptionActivated(member, subscription) {
@@ -594,7 +699,7 @@ export class ManagedServerCoordinator {
594
699
  /**
595
700
  * Clears a pending child-installation wait after cancellation.
596
701
  *
597
- * @param member Supplies the member that owns the cancelled subscription.
702
+ * @param member Identifies the member whose child subscription was cancelled.
598
703
  * @param subscription Supplies the cancelled native subscription.
599
704
  */
600
705
  onChildSubscriptionCancelled(member, subscription) {
@@ -617,15 +722,33 @@ export class ManagedServerCoordinator {
617
722
  if (!replica.terminal && replica.synchronizing && replica.readyAt === undefined)
618
723
  replica.child.send({ type: "activate" }, () => undefined);
619
724
  }
725
+ /**
726
+ * Finds the current replica only when both slot and incarnation match.
727
+ *
728
+ * @param member The member slot and incarnation to resolve.
729
+ * @returns The matching current replica, if any.
730
+ */
620
731
  #replica(member) {
621
732
  const replica = this.#slots[member.slot]?.replica;
622
733
  return replica?.incarnation === member.incarnation ? replica : undefined;
623
734
  }
735
+ /**
736
+ * Rejects pending subscription installation waits after a child exits.
737
+ *
738
+ * @param replica The child incarnation associated with the event.
739
+ * @param error The error reported to pending subscription waits.
740
+ */
624
741
  #clearSubscriptionWaiters(replica, error) {
625
742
  for (const waiter of replica.subscriptionWaiters.values())
626
743
  waiter.reject(error);
627
744
  replica.subscriptionWaiters.clear();
628
745
  }
746
+ /**
747
+ * Completes and removes the pending installation wait for a subscription ID.
748
+ *
749
+ * @param replica The child incarnation associated with the event.
750
+ * @param id The installed subscription identifier.
751
+ */
629
752
  #settleSubscriptionWaiter(replica, id) {
630
753
  const waiter = replica.subscriptionWaiters.get(id);
631
754
  if (waiter === undefined)
@@ -633,6 +756,12 @@ export class ManagedServerCoordinator {
633
756
  replica.subscriptionWaiters.delete(id);
634
757
  waiter.resolve(undefined);
635
758
  }
759
+ /**
760
+ * Collects active child facts eligible for routing or relay synchronization.
761
+ *
762
+ * @param includeDraining Whether synchronizing and draining replicas may participate in relay membership.
763
+ * @returns The eligible child members with endpoint and process ID.
764
+ */
636
765
  #members(includeDraining) {
637
766
  return this.#slots.flatMap((slot) => {
638
767
  const replica = slot.replica;
@@ -680,10 +809,18 @@ export class ManagedServerCoordinator {
680
809
  coordinatorEndpoint() {
681
810
  return this.#nodeCoordinator?.baseUrl;
682
811
  }
812
+ /**
813
+ * Calls listeners after the available child membership changes.
814
+ *
815
+ */
683
816
  #notifyReadyMembers() {
684
817
  for (const listener of this.#memberListeners)
685
818
  listener();
686
819
  }
820
+ /**
821
+ * Registers managed shutdown handlers for SIGINT and SIGTERM once.
822
+ *
823
+ */
687
824
  #installSignalHandlers() {
688
825
  if (this.#onSignal !== undefined)
689
826
  return;
@@ -704,6 +841,10 @@ export class ManagedServerCoordinator {
704
841
  process.on("SIGINT", this.#onSignal);
705
842
  process.on("SIGTERM", this.#onSignal);
706
843
  }
844
+ /**
845
+ * Unregisters managed shutdown handlers when the coordinator closes.
846
+ *
847
+ */
707
848
  #removeSignalHandlers() {
708
849
  if (this.#onSignal === undefined)
709
850
  return;
@@ -719,9 +860,21 @@ export class ManagedServerCoordinator {
719
860
  * @internal
720
861
  */
721
862
  export const managedServerCoordinatorAccess = Object.freeze({
863
+ /**
864
+ * Returns currently ready members for private coordinator inspection.
865
+ *
866
+ * @param coordinator The managed coordinator to inspect.
867
+ * @returns The currently ready coordinator members.
868
+ */
722
869
  readyMembers(coordinator) {
723
870
  return coordinator.readyMembers();
724
871
  },
872
+ /**
873
+ * Returns the private coordinator endpoint when available.
874
+ *
875
+ * @param coordinator The managed coordinator to inspect.
876
+ * @returns The loopback endpoint when the coordinator is open.
877
+ */
725
878
  coordinatorEndpoint(coordinator) {
726
879
  return coordinator.coordinatorEndpoint();
727
880
  },
@@ -733,17 +886,41 @@ export const managedServerCoordinatorAccess = Object.freeze({
733
886
  * @internal
734
887
  */
735
888
  export const managedServerApplicationAccess = Object.freeze({
889
+ /**
890
+ * Returns currently ready members for private coordinator inspection.
891
+ *
892
+ * @param handle The application handle to inspect.
893
+ * @returns The currently ready coordinator members.
894
+ */
736
895
  readyMembers(handle) {
737
896
  return handleMembers.get(handle)?.readyMembers() ?? [];
738
897
  },
898
+ /**
899
+ * Returns the private coordinator endpoint when available.
900
+ *
901
+ * @param handle The application handle to inspect.
902
+ * @returns The loopback endpoint when the coordinator is open.
903
+ */
739
904
  coordinatorEndpoint(handle) {
740
905
  return handleMembers.get(handle)?.coordinatorEndpoint();
741
906
  },
907
+ /**
908
+ * Associates in-memory registries with an assembled test server.
909
+ *
910
+ * @param server The assembled child server to inspect.
911
+ * @param registries The registries supplied by a test server.
912
+ */
742
913
  installRegistriesForTest(server, registries) {
743
914
  managedTestRegistries.set(server, registries);
744
915
  },
745
916
  });
746
917
  const ManagedServerCoordinatorValues = Object.freeze({
918
+ /**
919
+ * Creates a promise with separately accessible resolve and reject callbacks.
920
+ *
921
+ * @typeParam Value The eventual result carried by the deferred promise.
922
+ * @returns The promise and its settlement callbacks.
923
+ */
747
924
  deferred() {
748
925
  let resolve;
749
926
  let reject;
@@ -753,6 +930,12 @@ const ManagedServerCoordinatorValues = Object.freeze({
753
930
  });
754
931
  return { promise, resolve, reject };
755
932
  },
933
+ /**
934
+ * Checks that the front-facing listener port is a safe integer from zero through 65535.
935
+ *
936
+ * @param value The candidate front-facing listener port.
937
+ * @returns The validated listener port.
938
+ */
756
939
  coordinatorPort(value) {
757
940
  if (!Number.isSafeInteger(value) || value < 0 || value > 65_535)
758
941
  throw new Error("Managed server Coordinator port must be a safe integer between 0 and 65535.");
@@ -760,7 +943,7 @@ const ManagedServerCoordinatorValues = Object.freeze({
760
943
  },
761
944
  dependencies: {
762
945
  clock: {
763
- now: () => Date.now(),
946
+ now: () => Time.currentTimeMillis(),
764
947
  setTimeout: (onTimeout, delay) => setTimeout(onTimeout, delay),
765
948
  clearTimeout: (timer) => {
766
949
  clearTimeout(timer);
@@ -777,6 +960,12 @@ const ManagedServerCoordinatorValues = Object.freeze({
777
960
  }),
778
961
  openCoordinator: (options) => NodeCoordinator.open(options),
779
962
  },
963
+ /**
964
+ * Validates restart delays and concurrent-start bounds after applying defaults.
965
+ *
966
+ * @param options The requested process count and restart settings.
967
+ * @returns The validated restart policy with defaults applied.
968
+ */
780
969
  restart(options) {
781
970
  const restart = {
782
971
  initialDelayMs: options.restart?.initialDelayMs ?? initialRestartDelayMs,
@@ -794,6 +983,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
794
983
  throw new Error("Managed server restart concurrentStarts must not exceed processCount.");
795
984
  return restart;
796
985
  },
986
+ /**
987
+ * Checks a READY notification against the expected slot, incarnation, and loopback endpoint.
988
+ *
989
+ * @param message The candidate child IPC notification.
990
+ * @param slot The expected replica slot.
991
+ * @param incarnation The expected child incarnation token.
992
+ * @returns Whether the message is a valid READY notification.
993
+ */
797
994
  readyMessage(message, slot, incarnation) {
798
995
  if (typeof message !== "object" || message === null)
799
996
  return false;
@@ -804,6 +1001,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
804
1001
  typeof candidate.endpoint === "string" &&
805
1002
  canonicalLoopbackEndpoint(candidate.endpoint) !== undefined);
806
1003
  },
1004
+ /**
1005
+ * Checks a SYNCHRONIZING notification against the expected child and endpoint.
1006
+ *
1007
+ * @param message The candidate child IPC notification.
1008
+ * @param slot The expected replica slot.
1009
+ * @param incarnation The expected child incarnation token.
1010
+ * @returns Whether the message is a valid SYNCHRONIZING notification.
1011
+ */
807
1012
  synchronizingMessage(message, slot, incarnation) {
808
1013
  if (typeof message !== "object" || message === null)
809
1014
  return false;
@@ -814,6 +1019,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
814
1019
  typeof candidate.endpoint === "string" &&
815
1020
  canonicalLoopbackEndpoint(candidate.endpoint) !== undefined);
816
1021
  },
1022
+ /**
1023
+ * Checks a subscription-installed notification for the expected child and nonblank ID.
1024
+ *
1025
+ * @param message The candidate child IPC notification.
1026
+ * @param slot The expected replica slot.
1027
+ * @param incarnation The expected child incarnation token.
1028
+ * @returns Whether the message is a matching subscription notification.
1029
+ */
817
1030
  subscriptionInstalledMessage(message, slot, incarnation) {
818
1031
  if (typeof message !== "object" || message === null)
819
1032
  return false;
@@ -824,6 +1037,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
824
1037
  typeof candidate.subscriptionId === "string" &&
825
1038
  candidate.subscriptionId.length > 0);
826
1039
  },
1040
+ /**
1041
+ * Checks a DRAINING notification against the expected slot and incarnation.
1042
+ *
1043
+ * @param message The candidate child IPC notification.
1044
+ * @param slot The expected replica slot.
1045
+ * @param incarnation The expected child incarnation token.
1046
+ * @returns Whether the message is a matching DRAINING notification.
1047
+ */
827
1048
  drainingMessage(message, slot, incarnation) {
828
1049
  if (typeof message !== "object" || message === null)
829
1050
  return false;
@@ -832,6 +1053,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
832
1053
  candidate.slot === String(slot) &&
833
1054
  candidate.incarnation === incarnation);
834
1055
  },
1056
+ /**
1057
+ * Matches a CLOSED or CLOSE-FAILED notification from the expected child.
1058
+ *
1059
+ * @param message The candidate child IPC notification.
1060
+ * @param slot The expected replica slot.
1061
+ * @param incarnation The expected child incarnation token.
1062
+ * @returns The close outcome for a matching notification, or undefined.
1063
+ */
835
1064
  closeResultMessage(message, slot, incarnation) {
836
1065
  if (typeof message !== "object" || message === null)
837
1066
  return undefined;
@@ -842,6 +1071,13 @@ const ManagedServerCoordinatorValues = Object.freeze({
842
1071
  return undefined;
843
1072
  return candidate.type;
844
1073
  },
1074
+ /**
1075
+ * Closes a child after bounded graceful shutdown and signal escalation.
1076
+ *
1077
+ * @param replica The replica to close, if still present.
1078
+ * @param clock The clock and timer adapter for bounded waits.
1079
+ * @returns Completion after the child exits or a shutdown error is reported.
1080
+ */
845
1081
  async close(replica, clock) {
846
1082
  if (replica === undefined)
847
1083
  return;
@@ -883,6 +1119,15 @@ const ManagedServerCoordinatorValues = Object.freeze({
883
1119
  replica.closeAttempt = undefined;
884
1120
  }
885
1121
  },
1122
+ /**
1123
+ * Waits for child exit, then escalates through SIGTERM and SIGKILL within bounded intervals.
1124
+ *
1125
+ * @param child The child process to terminate.
1126
+ * @param clock The clock and timer adapter for bounded waits.
1127
+ * @param knownExit An existing promise for child exit, when available.
1128
+ * @param allowGrace Whether to wait for graceful exit before signaling.
1129
+ * @returns Completion after child exit or failure to terminate.
1130
+ */
886
1131
  async terminate(child, clock, knownExit, allowGrace = true) {
887
1132
  if (child.exitCode !== null || child.signalCode !== null)
888
1133
  return;
@@ -900,6 +1145,14 @@ const ManagedServerCoordinatorValues = Object.freeze({
900
1145
  return;
901
1146
  throw new Error("Managed child did not exit after SIGKILL.");
902
1147
  },
1148
+ /**
1149
+ * Checks whether a promise settles before the supplied timer fires.
1150
+ *
1151
+ * @param promise The asynchronous operation to await.
1152
+ * @param delay The maximum wait in milliseconds.
1153
+ * @param clock The clock and timer adapter for bounded waits.
1154
+ * @returns Whether the promise settled within the delay.
1155
+ */
903
1156
  within(promise, delay, clock) {
904
1157
  return new Promise((resolve) => {
905
1158
  const timer = clock.setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"managed-server-application.js","sourceRoot":"","sources":["../../src/server/managed-server-application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-server-application.js","sourceRoot":"","sources":["../../src/server/managed-server-application.ts"],"names":[],"mappings":"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"}