@serfab/cadre-core 1.17.0 → 1.18.0

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 (144) hide show
  1. package/README.md +3 -2
  2. package/dist/cadre-invite-protocol.d.ts +35 -13
  3. package/dist/cadre-invite-protocol.js +90 -25
  4. package/dist/cadre-invite-protocol.js.map +1 -1
  5. package/dist/cadre-node.d.ts +586 -255
  6. package/dist/cadre-node.js +1176 -564
  7. package/dist/cadre-node.js.map +1 -1
  8. package/dist/control-cohort.d.ts +66 -9
  9. package/dist/control-cohort.js +67 -9
  10. package/dist/control-cohort.js.map +1 -1
  11. package/dist/control-database.d.ts +451 -193
  12. package/dist/control-database.js +701 -359
  13. package/dist/control-database.js.map +1 -1
  14. package/dist/control-formation-recorder.d.ts +46 -43
  15. package/dist/control-formation-recorder.js +77 -78
  16. package/dist/control-formation-recorder.js.map +1 -1
  17. package/dist/control-protocol-guard.d.ts +6 -0
  18. package/dist/control-protocol-guard.js +14 -2
  19. package/dist/control-protocol-guard.js.map +1 -1
  20. package/dist/control-schema-version.d.ts +48 -31
  21. package/dist/control-schema-version.js +67 -45
  22. package/dist/control-schema-version.js.map +1 -1
  23. package/dist/control-schema.d.ts +8 -8
  24. package/dist/control-schema.js +16 -16
  25. package/dist/control-schema.js.map +1 -1
  26. package/dist/control-write-retry.d.ts +42 -7
  27. package/dist/control-write-retry.js +87 -19
  28. package/dist/control-write-retry.js.map +1 -1
  29. package/dist/enrolled-machine-store.d.ts +3 -3
  30. package/dist/enrolled-machine-store.js +3 -3
  31. package/dist/formation-token.d.ts +48 -0
  32. package/dist/formation-token.js +26 -0
  33. package/dist/formation-token.js.map +1 -0
  34. package/dist/index.d.ts +14 -13
  35. package/dist/index.js +16 -13
  36. package/dist/index.js.map +1 -1
  37. package/dist/joined-strand-store.d.ts +26 -9
  38. package/dist/joined-strand-store.js +63 -24
  39. package/dist/joined-strand-store.js.map +1 -1
  40. package/dist/link-budget.d.ts +9 -7
  41. package/dist/link-budget.js +9 -7
  42. package/dist/link-budget.js.map +1 -1
  43. package/dist/member-redemption.d.ts +15 -9
  44. package/dist/member-redemption.js +13 -8
  45. package/dist/member-redemption.js.map +1 -1
  46. package/dist/membership-view.d.ts +91 -0
  47. package/dist/membership-view.js +110 -0
  48. package/dist/membership-view.js.map +1 -0
  49. package/dist/owner-grant-protocol.d.ts +11 -7
  50. package/dist/owner-grant-protocol.js +31 -17
  51. package/dist/owner-grant-protocol.js.map +1 -1
  52. package/dist/peer-addr-book.d.ts +10 -1
  53. package/dist/peer-addr-book.js +4 -3
  54. package/dist/peer-addr-book.js.map +1 -1
  55. package/dist/peer-join-backfill.d.ts +89 -20
  56. package/dist/peer-join-backfill.js +265 -108
  57. package/dist/peer-join-backfill.js.map +1 -1
  58. package/dist/pending-join-runner.d.ts +48 -18
  59. package/dist/pending-join-runner.js +74 -56
  60. package/dist/pending-join-runner.js.map +1 -1
  61. package/dist/seed-bootstrap.d.ts +47 -40
  62. package/dist/seed-bootstrap.js +66 -61
  63. package/dist/seed-bootstrap.js.map +1 -1
  64. package/dist/strand-database.d.ts +23 -2
  65. package/dist/strand-database.js +26 -6
  66. package/dist/strand-database.js.map +1 -1
  67. package/dist/strand-first-sync-gate.d.ts +176 -89
  68. package/dist/strand-first-sync-gate.js +288 -122
  69. package/dist/strand-first-sync-gate.js.map +1 -1
  70. package/dist/strand-formation-deadlines.d.ts +9 -9
  71. package/dist/strand-formation-deadlines.js +9 -9
  72. package/dist/strand-formation-manager.d.ts +23 -17
  73. package/dist/strand-formation-manager.js +46 -44
  74. package/dist/strand-formation-manager.js.map +1 -1
  75. package/dist/strand-formation-protocol.d.ts +5 -8
  76. package/dist/strand-formation-protocol.js +101 -16
  77. package/dist/strand-formation-protocol.js.map +1 -1
  78. package/dist/strand-instance-manager.d.ts +26 -17
  79. package/dist/strand-instance-manager.js +119 -50
  80. package/dist/strand-instance-manager.js.map +1 -1
  81. package/dist/strand-membership-reconciler.d.ts +16 -13
  82. package/dist/strand-membership-reconciler.js +30 -22
  83. package/dist/strand-membership-reconciler.js.map +1 -1
  84. package/dist/strand-membership-writer.d.ts +40 -28
  85. package/dist/strand-membership-writer.js +212 -153
  86. package/dist/strand-membership-writer.js.map +1 -1
  87. package/dist/strand-move.js +5 -2
  88. package/dist/strand-move.js.map +1 -1
  89. package/dist/strand-revocation-enforcer.d.ts +134 -60
  90. package/dist/strand-revocation-enforcer.js +144 -71
  91. package/dist/strand-revocation-enforcer.js.map +1 -1
  92. package/dist/strand-solicitation.d.ts +50 -39
  93. package/dist/strand-solicitation.js +10 -3
  94. package/dist/strand-solicitation.js.map +1 -1
  95. package/dist/strand-watcher.d.ts +80 -13
  96. package/dist/strand-watcher.js +152 -48
  97. package/dist/strand-watcher.js.map +1 -1
  98. package/dist/table-change-watch.d.ts +63 -0
  99. package/dist/table-change-watch.js +209 -0
  100. package/dist/table-change-watch.js.map +1 -0
  101. package/dist/timeout-scheduler.d.ts +4 -3
  102. package/dist/timeout-scheduler.js +4 -3
  103. package/dist/timeout-scheduler.js.map +1 -1
  104. package/dist/types.d.ts +90 -49
  105. package/dist/types.js +4 -4
  106. package/dist/types.js.map +1 -1
  107. package/package.json +8 -8
  108. package/src/cadre-invite-protocol.ts +119 -31
  109. package/src/cadre-node.ts +1282 -584
  110. package/src/control-cohort.ts +86 -9
  111. package/src/control-database.ts +848 -403
  112. package/src/control-formation-recorder.ts +359 -353
  113. package/src/control-protocol-guard.ts +16 -2
  114. package/src/control-schema-version.ts +101 -51
  115. package/src/control-schema.ts +16 -16
  116. package/src/control-write-retry.ts +91 -19
  117. package/src/delegate-admission.ts +351 -351
  118. package/src/enrolled-machine-store.ts +3 -3
  119. package/src/formation-token.ts +63 -0
  120. package/src/index.ts +30 -17
  121. package/src/joined-strand-store.ts +69 -24
  122. package/src/link-budget.ts +9 -7
  123. package/src/member-redemption.ts +20 -13
  124. package/src/membership-view.ts +144 -0
  125. package/src/owner-grant-protocol.ts +33 -18
  126. package/src/peer-addr-book.ts +4 -3
  127. package/src/peer-join-backfill.ts +971 -761
  128. package/src/pending-join-runner.ts +76 -53
  129. package/src/seed-bootstrap.ts +72 -67
  130. package/src/strand-database.ts +352 -322
  131. package/src/strand-first-sync-gate.ts +334 -134
  132. package/src/strand-formation-deadlines.ts +227 -227
  133. package/src/strand-formation-manager.ts +731 -725
  134. package/src/strand-formation-protocol.ts +122 -24
  135. package/src/strand-instance-manager.ts +2092 -2026
  136. package/src/strand-membership-reconciler.ts +33 -25
  137. package/src/strand-membership-writer.ts +2093 -2019
  138. package/src/strand-move.ts +5 -2
  139. package/src/strand-revocation-enforcer.ts +740 -654
  140. package/src/strand-solicitation.ts +61 -34
  141. package/src/strand-watcher.ts +175 -56
  142. package/src/table-change-watch.ts +285 -0
  143. package/src/timeout-scheduler.ts +29 -28
  144. package/src/types.ts +89 -51
@@ -1,7 +1,7 @@
1
1
  import type { Libp2p } from '@libp2p/interface';
2
2
  import { type PeerDialBudget } from './peer-dial.js';
3
- import type { ControlNetworkSeed, SeedPeer, SeedAckMessage, SeedDeliveryTarget, AuthorizePeerOptions, ApplySeedResult, AddDroneOptions, DroneInitResult, CadreInviteRow, OwnerGrantRow, PeerAddressRecord, DeviceTokenRecord, RevocationRow, RevocationLedgerOpenResult, MachineRemovalResult } from './types.js';
4
- import type { ControlDatabase } from './control-database.js';
3
+ import type { ControlNetworkSeed, SeedPeer, SeedDialTarget, SeedAckMessage, SeedDeliveryTarget, AuthorizePeerOptions, ApplySeedResult, AddDroneOptions, DroneInitResult, CadreInviteRow, OwnerGrantRow, PeerAddressRecord, DeviceTokenRecord, RevocationRow, MachineRemovalResult } from './types.js';
4
+ import type { CadrePeerRetouchMode, CadrePeerRetouchOutcome, ControlDatabase } from './control-database.js';
5
5
  import { type SeedTrustPolicy } from './seed-trust-policy.js';
6
6
  import type { TrustedOwnerStore } from './trusted-owner-store.js';
7
7
  import { type OwnerSign, type OwnerSigner } from './owner-signer.js';
@@ -33,6 +33,15 @@ export declare function canonicalSeedPayload(seed: Pick<ControlNetworkSeed, 'par
33
33
  * proof to one seed through this value) all name the same bytes.
34
34
  */
35
35
  export declare function seedDigest(seed: Pick<ControlNetworkSeed, 'partyId' | 'peers'>): string;
36
+ /**
37
+ * The peers `seed` nominates for dialing: its preferred peers (`SeedPeer.preferred`: the machine
38
+ * that minted it and every always-on machine) that have an address and are not `selfPeerId`.
39
+ *
40
+ * Self is dropped because `createSeed` projects every non-revoked CadrePeer row, so a preferred
41
+ * machine applying a seed minted after it joined finds itself in the list, and a dial of self
42
+ * always throws. An undefined `selfPeerId` matches nothing.
43
+ */
44
+ export declare function seedDialTargets(seed: ControlNetworkSeed, selfPeerId: string | undefined): SeedDialTarget[];
36
45
  /**
37
46
  * Merge a peer list's addresses into `node`'s peer store, so the node can dial them: the
38
47
  * seed's peers after its signature and trust checks, the dial hints a member returns on
@@ -133,7 +142,8 @@ export interface SeedEventCallbacks {
133
142
  /** Called when a seed is received via the protocol */
134
143
  onSeedReceived?: (partyId: string, peerId: string) => void;
135
144
  /**
136
- * Called when a seed is successfully applied.
145
+ * Called when a seed delivered over the protocol has been verified, merged and
146
+ * acknowledged; the dials of its preferred peers follow, so this waits on no connection.
137
147
  *
138
148
  * `seed` is the applied seed itself: the inbound protocol handler applies it
139
149
  * INSIDE the service, so this callback is the only seam through which a
@@ -288,10 +298,10 @@ export declare class SeedBootstrapService {
288
298
  /**
289
299
  * Return the configured owner signer, or throw if none is set. The single precondition
290
300
  * gate for every owner-signed write. {@link removePeer} / {@link reauthorizePeer} read the
291
- * row's `StampId` from the DB BEFORE they sign, so they call this up front — otherwise a
292
- * signerless service would either surface the wrong "Control database not initialized"
293
- * error or, worse, silently no-op when the target row is absent (the early
294
- * `stampId === null` return) instead of rejecting.
301
+ * row from the DB BEFORE they sign, so they call this up front — otherwise a signerless
302
+ * service would either surface the wrong "Control database not initialized" error or,
303
+ * worse, silently no-op when the target row is absent (their early absent return) instead
304
+ * of rejecting.
295
305
  */
296
306
  private requireOwnerSigner;
297
307
  /** The control database {@link initialize} attached, or a throw. */
@@ -365,24 +375,28 @@ export declare class SeedBootstrapService {
365
375
  */
366
376
  removeMachine(target: Parameters<ControlDatabase['removeMachine']>[0], sign?: OwnerSign): Promise<MachineRemovalResult>;
367
377
  /**
368
- * Owner "re-touch" of an existing `CadrePeer` membership row: bump `UpdatedAt` and
369
- * re-vouch the row so it is re-emitted as a fresh, broadcasting transaction. This is
370
- * the write-while-alone re-replication primitive (`control-write-ensure-replicated`):
371
- * a membership row that committed local-only (its block's cluster ≤1 at insert) is
372
- * pushed to the cohort once it grows.
373
- *
374
- * The stamp read, the voucher signature, the write lock and the membership notify are
378
+ * Owner "re-touch" of an existing `CadrePeer` membership row, in one of two modes
379
+ * ({@link CadrePeerRetouchMode}): `'rebroadcast'` bumps `UpdatedAt` and re-vouches the row so
380
+ * it is re-emitted as a fresh, broadcasting transaction — the write-while-alone re-replication
381
+ * primitive (`control-write-ensure-replicated`): a membership row that committed local-only
382
+ * (its block's cluster ≤1 at insert) is pushed to the cohort once it grows — and writes only
383
+ * while the machine has not self-published; `'revouch'` rebinds the voucher to this node's
384
+ * owner key, leaving `UpdatedAt` alone, whether or not the machine has self-published
385
+ * (`CadreNode.removeOwner`).
386
+ *
387
+ * The row read, the mode's decision, the stamp bump, the voucher signature, the write lock,
388
+ * the lost-update retry and the membership notify are
375
389
  * {@link ControlDatabase.reauthorizeCadrePeer}'s — including the caveat that it rebinds
376
390
  * `VouchOwner` to this node's owner key. What stays here is the owner-signer precondition.
377
391
  *
378
- * A no-op (no throw, no notify) when the row does not exist.
379
- *
380
392
  * @param peerId - the membership row to re-touch.
381
- * @param updatedAt - the strictly-increasing freshness stamp to write.
393
+ * @param mode - re-broadcast or re-vouch.
394
+ * @returns what was found and done ({@link CadrePeerRetouchOutcome}); an absent row, or a
395
+ * self-published one in `'rebroadcast'` mode, writes nothing and does not throw.
382
396
  * @throws if no owner signer is configured (a non-owner cannot
383
397
  * re-sign another peer's row) or the control database is not initialized.
384
398
  */
385
- reauthorizePeer(peerId: string, updatedAt: number, sign?: OwnerSign): Promise<void>;
399
+ reauthorizePeer(peerId: string, mode: CadrePeerRetouchMode, sign?: OwnerSign): Promise<CadrePeerRetouchOutcome>;
386
400
  /**
387
401
  * Owner re-issue of a batch of `Revocation` tombstones: bump each row's
388
402
  * `ReissuedAt` so the storage layer re-broadcasts a tombstone that committed
@@ -400,18 +414,6 @@ export declare class SeedBootstrapService {
400
414
  * initialized.
401
415
  */
402
416
  reissueRevocations(rows: readonly RevocationRow[], reissuedAt: number, sign?: OwnerSign): Promise<number>;
403
- /**
404
- * Owner filing of the singleton `Revocation` ledger marker, so the table is never a
405
- * never-written block that the storage layer re-consults on every read.
406
- *
407
- * The signature, the insert-if-absent guard and the `'already-open'` mapping are
408
- * {@link ControlDatabase.openRevocationLedger}'s. What stays here is the owner-signer
409
- * precondition.
410
- *
411
- * @throws if no owner signer is configured or the control database is not
412
- * initialized.
413
- */
414
- openRevocationLedger(sign?: OwnerSign): Promise<RevocationLedgerOpenResult>;
415
417
  /**
416
418
  * Owner-signed INSERT of a `CadreInvite` row — an invitation any member machine can redeem
417
419
  * on this owner's behalf ({@link ControlDatabase.insertCadreInvite}). The keypair mint, the
@@ -505,8 +507,11 @@ export declare class SeedBootstrapService {
505
507
  * `CadreNode.dialColdStartBootstrap` retries these same addresses on every control-cohort
506
508
  * reconcile pass until the control database has siblings.
507
509
  *
508
- * The inbound handler runs this AFTER it has acked and closed the stream
509
- * ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
510
+ * The inbound handler runs this AFTER it has acked, closed the stream and reported the seed
511
+ * applied ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
512
+ * The node may stop while these dials are in flight (cadre-cli restarts a claimed node on
513
+ * `seed:applied`): the node's stop aborts the dial in flight and every later one is refused
514
+ * at once (`dialAddr`), and each is counted as failed here.
510
515
  */
511
516
  private dialPreferredPeers;
512
517
  /**
@@ -635,14 +640,16 @@ export declare class SeedBootstrapService {
635
640
  private registerProtocolHandler;
636
641
  /**
637
642
  * Read one inbound seed frame, verify and merge it, write the ack and close the
638
- * stream, then dial the seed's preferred peers.
639
- *
640
- * The ack and the close come BEFORE those dials: an unreachable peer can hold
641
- * a dial for `dialBudget.totalMs` (86 s at the default declared link), which is not
642
- * link time and does not belong inside the sender's delivery deadline. The close is
643
- * what releases the sender, which reads the ack to end-of-stream. The stream stays
644
- * counted in {@link activeStreams} through the dials, so {@link maxConcurrentSeeds}
645
- * still bounds concurrent dial phases.
643
+ * stream, report the seed applied, then dial the seed's preferred peers.
644
+ *
645
+ * The ack, the close and `onSeedApplied` come BEFORE those dials: an unreachable peer
646
+ * can hold a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
647
+ * not link time and does not belong inside the sender's delivery deadline, nor ahead of
648
+ * a claimed node's restart (which stops this node, so its dials would be wasted). The
649
+ * close is what releases the sender, which reads the ack to end-of-stream, and it is
650
+ * awaited before `onSeedApplied`, so the ack is flushed before anything the callback
651
+ * starts. The stream stays counted in {@link activeStreams} through the dials, so
652
+ * {@link maxConcurrentSeeds} still bounds concurrent dial phases.
646
653
  *
647
654
  * Hardened against a buggy/compromised own-cadre node: a concurrency cap (over
648
655
  * {@link maxConcurrentSeeds}, reply without applying), a read timeout (a peer
@@ -72,6 +72,19 @@ export function canonicalSeedPayload(seed) {
72
72
  export function seedDigest(seed) {
73
73
  return digest([canonicalSeedPayload(seed)], 'sha256', 'base64url');
74
74
  }
75
+ /**
76
+ * The peers `seed` nominates for dialing: its preferred peers (`SeedPeer.preferred`: the machine
77
+ * that minted it and every always-on machine) that have an address and are not `selfPeerId`.
78
+ *
79
+ * Self is dropped because `createSeed` projects every non-revoked CadrePeer row, so a preferred
80
+ * machine applying a seed minted after it joined finds itself in the list, and a dial of self
81
+ * always throws. An undefined `selfPeerId` matches nothing.
82
+ */
83
+ export function seedDialTargets(seed, selfPeerId) {
84
+ return seed.peers
85
+ .filter((peer) => peer.preferred && peer.multiaddrs.length > 0 && peer.peerId !== selfPeerId)
86
+ .map(({ peerId, multiaddrs }) => ({ peerId, multiaddrs }));
87
+ }
75
88
  /** Add `relayAddr` to the entry for `selfPeerId` in `peers`, when that entry exists and lacks it. */
76
89
  function addSelfRelayAddr(peers, selfPeerId, relayAddr) {
77
90
  const self = peers.find((peer) => peer.peerId === selfPeerId);
@@ -354,10 +367,10 @@ export class SeedBootstrapService {
354
367
  /**
355
368
  * Return the configured owner signer, or throw if none is set. The single precondition
356
369
  * gate for every owner-signed write. {@link removePeer} / {@link reauthorizePeer} read the
357
- * row's `StampId` from the DB BEFORE they sign, so they call this up front — otherwise a
358
- * signerless service would either surface the wrong "Control database not initialized"
359
- * error or, worse, silently no-op when the target row is absent (the early
360
- * `stampId === null` return) instead of rejecting.
370
+ * row from the DB BEFORE they sign, so they call this up front — otherwise a signerless
371
+ * service would either surface the wrong "Control database not initialized" error or,
372
+ * worse, silently no-op when the target row is absent (their early absent return) instead
373
+ * of rejecting.
361
374
  */
362
375
  requireOwnerSigner() {
363
376
  if (!this.config.ownerSigner) {
@@ -482,34 +495,46 @@ export class SeedBootstrapService {
482
495
  return await this.withOwnerSign(`Remove the machine ${target.peerId} from the cadre`, sign, (approved) => controlDatabase.removeMachine(target, ownerKey, approved));
483
496
  }
484
497
  /**
485
- * Owner "re-touch" of an existing `CadrePeer` membership row: bump `UpdatedAt` and
486
- * re-vouch the row so it is re-emitted as a fresh, broadcasting transaction. This is
487
- * the write-while-alone re-replication primitive (`control-write-ensure-replicated`):
488
- * a membership row that committed local-only (its block's cluster ≤1 at insert) is
489
- * pushed to the cohort once it grows.
498
+ * Owner "re-touch" of an existing `CadrePeer` membership row, in one of two modes
499
+ * ({@link CadrePeerRetouchMode}): `'rebroadcast'` bumps `UpdatedAt` and re-vouches the row so
500
+ * it is re-emitted as a fresh, broadcasting transaction — the write-while-alone re-replication
501
+ * primitive (`control-write-ensure-replicated`): a membership row that committed local-only
502
+ * (its block's cluster ≤1 at insert) is pushed to the cohort once it grows — and writes only
503
+ * while the machine has not self-published; `'revouch'` rebinds the voucher to this node's
504
+ * owner key, leaving `UpdatedAt` alone, whether or not the machine has self-published
505
+ * (`CadreNode.removeOwner`).
490
506
  *
491
- * The stamp read, the voucher signature, the write lock and the membership notify are
507
+ * The row read, the mode's decision, the stamp bump, the voucher signature, the write lock,
508
+ * the lost-update retry and the membership notify are
492
509
  * {@link ControlDatabase.reauthorizeCadrePeer}'s — including the caveat that it rebinds
493
510
  * `VouchOwner` to this node's owner key. What stays here is the owner-signer precondition.
494
511
  *
495
- * A no-op (no throw, no notify) when the row does not exist.
496
- *
497
512
  * @param peerId - the membership row to re-touch.
498
- * @param updatedAt - the strictly-increasing freshness stamp to write.
513
+ * @param mode - re-broadcast or re-vouch.
514
+ * @returns what was found and done ({@link CadrePeerRetouchOutcome}); an absent row, or a
515
+ * self-published one in `'rebroadcast'` mode, writes nothing and does not throw.
499
516
  * @throws if no owner signer is configured (a non-owner cannot
500
517
  * re-sign another peer's row) or the control database is not initialized.
501
518
  */
502
- async reauthorizePeer(peerId, updatedAt, sign) {
519
+ async reauthorizePeer(peerId, mode, sign) {
503
520
  // Fail fast on a signerless service before any DB read (see removePeer): a non-owner
504
521
  // cannot re-sign the voucher, and must not silently no-op on an absent row.
505
522
  const ownerKey = this.requireOwnerSigner().publicKey;
506
523
  const controlDatabase = this.requireControlDatabase();
507
- const retouched = await this.withOwnerSign(`Re-issue the membership of ${peerId}`, sign, (approved) => controlDatabase.reauthorizeCadrePeer(peerId, updatedAt, ownerKey, approved));
508
- if (!retouched) {
509
- log('reauthorizePeer: no CadrePeer row for %s (nothing to re-touch)', peerId);
510
- return;
524
+ const action = mode === 'revouch' ? `Re-vouch the machine ${peerId}` : `Re-issue the membership of ${peerId}`;
525
+ const outcome = await this.withOwnerSign(action, sign, (approved) => controlDatabase.reauthorizeCadrePeer(peerId, mode, ownerKey, approved));
526
+ switch (outcome) {
527
+ case 'absent':
528
+ log('reauthorizePeer(%s): no CadrePeer row for %s (nothing to re-touch)', mode, peerId);
529
+ break;
530
+ case 'self-published':
531
+ log('reauthorizePeer(%s): %s has self-published; its row is its own to refresh', mode, peerId);
532
+ break;
533
+ case 'retouched':
534
+ log('Peer %s re-authorized (%s)', peerId, mode);
535
+ break;
511
536
  }
512
- log('Peer %s re-authorized (UpdatedAt=%d) for write-while-alone re-replication', peerId, updatedAt);
537
+ return outcome;
513
538
  }
514
539
  /**
515
540
  * Owner re-issue of a batch of `Revocation` tombstones: bump each row's
@@ -534,24 +559,6 @@ export class SeedBootstrapService {
534
559
  const controlDatabase = this.requireControlDatabase();
535
560
  return await this.withOwnerSign(`Re-send ${rows.length} removal record(s) to the cadre`, sign, (approved) => controlDatabase.reissueRevocations(rows, reissuedAt, ownerKey, approved));
536
561
  }
537
- /**
538
- * Owner filing of the singleton `Revocation` ledger marker, so the table is never a
539
- * never-written block that the storage layer re-consults on every read.
540
- *
541
- * The signature, the insert-if-absent guard and the `'already-open'` mapping are
542
- * {@link ControlDatabase.openRevocationLedger}'s. What stays here is the owner-signer
543
- * precondition.
544
- *
545
- * @throws if no owner signer is configured or the control database is not
546
- * initialized.
547
- */
548
- async openRevocationLedger(sign) {
549
- // Fail fast on a signerless service before any DB work (see removePeer): a
550
- // non-owner cannot sign the marker's append digest.
551
- const ownerKey = this.requireOwnerSigner().publicKey;
552
- const controlDatabase = this.requireControlDatabase();
553
- return await this.withOwnerSign('Open the cadre\'s removal ledger', sign, (approved) => controlDatabase.openRevocationLedger(ownerKey, approved));
554
- }
555
562
  /**
556
563
  * Owner-signed INSERT of a `CadreInvite` row — an invitation any member machine can redeem
557
564
  * on this owner's behalf ({@link ControlDatabase.insertCadreInvite}). The keypair mint, the
@@ -747,8 +754,11 @@ export class SeedBootstrapService {
747
754
  * `CadreNode.dialColdStartBootstrap` retries these same addresses on every control-cohort
748
755
  * reconcile pass until the control database has siblings.
749
756
  *
750
- * The inbound handler runs this AFTER it has acked and closed the stream
751
- * ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
757
+ * The inbound handler runs this AFTER it has acked, closed the stream and reported the seed
758
+ * applied ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
759
+ * The node may stop while these dials are in flight (cadre-cli restarts a claimed node on
760
+ * `seed:applied`): the node's stop aborts the dial in flight and every later one is refused
761
+ * at once (`dialAddr`), and each is counted as failed here.
752
762
  */
753
763
  async dialPreferredPeers(seed) {
754
764
  const node = this.libp2pNode;
@@ -756,23 +766,16 @@ export class SeedBootstrapService {
756
766
  log('Seed service shut down before its dials; none attempted');
757
767
  return { preferredDialsAttempted: 0, preferredDialsFailed: 0 };
758
768
  }
759
- // `createSeed` projects every non-revoked CadrePeer row, so a preferred machine applying
760
- // a seed minted after it joined finds ITSELF in the list. Dialing self always throws,
761
- // which would report a healthy node as "seeded but stranded".
762
- // Optional-chained: partial libp2p handles (unit-test doubles) omit `peerId`,
763
- // and an undefined self simply matches nothing.
769
+ // Self is not dialed: dialing self always throws, which would report a healthy node as
770
+ // "seeded but stranded". Optional-chained: partial libp2p handles (unit-test doubles)
771
+ // omit `peerId`.
764
772
  // Every one of a peer's addresses is a candidate, each on its own time limit
765
773
  // (`dialPeerAddrs`), so a peer whose first address never answers neither
766
774
  // stalls seed application nor goes undialed at its other addresses. The seed's
767
775
  // addresses carry no peer id; the dial binds each to the peer's.
768
- const selfPeerId = node.peerId?.toString();
769
- let preferredDialsAttempted = 0;
776
+ const targets = seedDialTargets(seed, node.peerId?.toString());
770
777
  let preferredDialsFailed = 0;
771
- for (const peer of seed.peers.filter(p => p.preferred)) {
772
- if (peer.multiaddrs.length === 0 || peer.peerId === selfPeerId) {
773
- continue;
774
- }
775
- preferredDialsAttempted++;
778
+ for (const peer of targets) {
776
779
  try {
777
780
  const addrs = parseDialAddrs(peer.multiaddrs);
778
781
  log('Dialing preferred seed peer: %s (%d addr(s))', peer.peerId, addrs.length);
@@ -791,8 +794,8 @@ export class SeedBootstrapService {
791
794
  // Continue - not all peers need to be reachable
792
795
  }
793
796
  }
794
- log('Dialed preferred seed peers: %d/%d dial(s) failed', preferredDialsFailed, preferredDialsAttempted);
795
- return { preferredDialsAttempted, preferredDialsFailed };
797
+ log('Dialed preferred seed peers: %d/%d dial(s) failed', preferredDialsFailed, targets.length);
798
+ return { preferredDialsAttempted: targets.length, preferredDialsFailed };
796
799
  }
797
800
  /**
798
801
  * Persist a signer that a pin/TOFU accepted into the node-local anchor, so a
@@ -1022,14 +1025,16 @@ export class SeedBootstrapService {
1022
1025
  }
1023
1026
  /**
1024
1027
  * Read one inbound seed frame, verify and merge it, write the ack and close the
1025
- * stream, then dial the seed's preferred peers.
1028
+ * stream, report the seed applied, then dial the seed's preferred peers.
1026
1029
  *
1027
- * The ack and the close come BEFORE those dials: an unreachable peer can hold
1028
- * a dial for `dialBudget.totalMs` (86 s at the default declared link), which is not
1029
- * link time and does not belong inside the sender's delivery deadline. The close is
1030
- * what releases the sender, which reads the ack to end-of-stream. The stream stays
1031
- * counted in {@link activeStreams} through the dials, so {@link maxConcurrentSeeds}
1032
- * still bounds concurrent dial phases.
1030
+ * The ack, the close and `onSeedApplied` come BEFORE those dials: an unreachable peer
1031
+ * can hold a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
1032
+ * not link time and does not belong inside the sender's delivery deadline, nor ahead of
1033
+ * a claimed node's restart (which stops this node, so its dials would be wasted). The
1034
+ * close is what releases the sender, which reads the ack to end-of-stream, and it is
1035
+ * awaited before `onSeedApplied`, so the ack is flushed before anything the callback
1036
+ * starts. The stream stays counted in {@link activeStreams} through the dials, so
1037
+ * {@link maxConcurrentSeeds} still bounds concurrent dial phases.
1033
1038
  *
1034
1039
  * Hardened against a buggy/compromised own-cadre node: a concurrency cap (over
1035
1040
  * {@link maxConcurrentSeeds}, reply without applying), a read timeout (a peer
@@ -1058,8 +1063,8 @@ export class SeedBootstrapService {
1058
1063
  acked = true;
1059
1064
  await replyAndClose(stream, { accepted: merged.success, reason: merged.error, code: merged.code }, 'Seed');
1060
1065
  if (merged.success) {
1061
- await this.dialPreferredPeers(seed);
1062
1066
  this.eventCallbacks.onSeedApplied?.(seed.partyId, merged.peersAdded, seed);
1067
+ await this.dialPreferredPeers(seed);
1063
1068
  }
1064
1069
  else {
1065
1070
  this.eventCallbacks.onSeedError?.(seed.partyId, merged.error ?? 'Unknown error');
@@ -1 +1 @@
1
- {"version":3,"file":"seed-bootstrap.js","sourceRoot":"","sources":["../src/seed-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed-bootstrap.js","sourceRoot":"","sources":["../src/seed-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAkB,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAsB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EAExB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAsB1D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAoC,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,GAAG,GAAG,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAEjD,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAElD,sCAAsC;AACtC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AAElC;;;GAGG;AACH,8MAA8M;AAC9M,MAAM,4BAA4B,GAAG,KAAM,CAAC;AAE5C,iFAAiF;AACjF,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAgB,EAAE,SAAS,GAAG,aAAa;IACnF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,MAAM,mCAAmC,CAAC,CAAC;IAC3F,CAAC;IACD,+EAA+E;IAC/E,yEAAyE;IACzE,wBAAwB;IACxB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,kBAAkB,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,aAAa,SAAS,qBAAqB,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAmD;IAEnD,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAmD;IAC5E,OAAO,MAAM,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAW,CAAC;AAC/E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE,UAA8B;IACtF,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;SAC5F,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,qGAAqG;AACrG,SAAS,gBAAgB,CAAC,KAAiB,EAAE,UAAkB,EAAE,SAAiB;IAChF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,IAAsB;IACzD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,KAAK;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,uBAAuB,EAAE,CAAC;QAC1B,oBAAoB,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAeD;;;GAGG;AACH,SAAS,cAAc,CAAC,KAAwB;IAC9C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,wCAAwC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,KAA0B;IAC3E,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAKD;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAwB;IACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,aAAa,IAAI,qBAAqB,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AA2GD;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAa/B,YAAY,MAA2B;QAX/B,eAAU,GAAkB,IAAI,CAAC;QACjC,oBAAe,GAA2B,IAAI,CAAC;QAMvD,kFAAkF;QAC1E,kBAAa,GAAG,CAAC,CAAC;QAClB,mBAAc,GAAuB,EAAE,CAAC;QAG9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,mBAAmB,EAAE,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,4BAA4B,CAAC;QAClF,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,4BAA4B,CAAC;QACpF,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,wBAAwB,CAAC;QAChE,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,SAA6B;QAC7C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,yFAAyF;IACzF,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,UAAU,CACd,UAAkB,EAClB,eAAgC,EAChC,OAAuC;QAEvC,kFAAkF;QAClF,IAAI,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,IAAgB;QACjE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACvC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACpC,iFAAiF;QACjF,MAAM,YAAY,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC5B,MAAM;YACN,SAAS,EAAE,6BAA6B,CAAC,MAAM,CAAC;YAChD,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,IAAI;SACd,EAAE,mBAAmB,MAAM,eAAe,EAAE,IAAI,CAAC,CAAC;QACnD,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAAyB,EAAE,IAAgB;QACpE,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,EAAE,4CAA4C,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAOhC,EAAE,MAAc,EAAE,IAA2B;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzD,eAAe,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAyB,EAAE,IAAgB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACzH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oCAAoC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5H,MAAM,eAAe,CAAC,SAAS,CAAC;;;;KAI/B,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACtI,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,IAAgB;QACtD,gFAAgF;QAChF,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,aAAa,CAAC,2BAA2B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC/E,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,oEAAoE;IAC5D,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAI,MAAc,EAAE,IAA2B,EAAE,IAAqC;QAC/G,OAAO,MAAM,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,IAAgB;QAC/C,oFAAoF;QACpF,iFAAiF;QACjF,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,uFAAuF;QACvF,oFAAoF;QACpF,mFAAmF;QACnF,2CAA2C;QAC3C,kFAAkF;QAClF,sFAAsF;QACtF,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,sDAAsD,EAAE,MAAM,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,MAAM,iBAAiB,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzF,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE/D,GAAG,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ,CAAC,cAAsB,EAAE,KAAc,EAAE,IAAgB;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,6FAA6F;QAC7F,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,aAAa,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAChH,eAAe,CAAC,qBAAqB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,IAAgB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACvF,eAAe,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,IAAgB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzF,eAAe,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,MAAuD,EAAE,IAAgB;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,MAAM,CAAC,MAAM,iBAAiB,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACvG,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,IAA0B,EAAE,IAAgB;QAChF,qFAAqF;QACrF,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC,CAAC,8BAA8B,MAAM,EAAE,CAAC;QAC9G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAClE,eAAe,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACX,GAAG,CAAC,oEAAoE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxF,MAAM;YACR,KAAK,gBAAgB;gBACnB,GAAG,CAAC,2EAA2E,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/F,MAAM;YACR,KAAK,WAAW;gBACd,GAAG,CAAC,4BAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChD,MAAM;QACV,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAA8B,EAAE,UAAkB,EAAE,IAAgB;QAC3F,2EAA2E;QAC3E,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,MAAM,iCAAiC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC1G,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAA2D,EAAE,IAAgB;QACnG,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,0CAA0C,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7F,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAW,EAAE,IAAgB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iCAAiC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzF,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAyD,EAAE,IAAgB;QAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,KAAK,GAAG,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,qDAAqD,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACvH,eAAe,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,IAAgB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CACpF,eAAe,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,QAAQ,CAAC,IAA2B,EAAE,aAA4B;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExD,4CAA4C;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC;QAED,2CAA2C;QAC3C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,KAAK;SACN,CAAC;QAEF,uDAAuD;QACvD,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,6CAA6C,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAErI,MAAM,IAAI,GAAuB;YAC/B,GAAG,QAAQ;YACX,SAAS;YACT,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QAEF,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,SAAS,CACb,IAAwB,EACxB,OAA2C;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAC9B,IAAwB,EACxB,OAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,YAAY,CAAC,yBAAyB,CAAC,CAAC;QACjD,CAAC;QAED,oFAAoF;QACpF,gFAAgF;QAChF,qFAAqF;QACrF,kFAAkF;QAClF,sFAAsF;QACtF,iFAAiF;QACjF,6EAA6E;QAC7E,+EAA+E;QAC/E,yBAAyB;QACzB,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,gFAAgF;QAChF,iEAAiE;QACjE,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YACjD,OAAO,YAAY,CAAC,wBAAwB,CAAC,CAAC;QAChD,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,eAAe;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,IAAI,GAAG,EAAU,CAAC;QAC7E,MAAM,MAAM,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc;YACd,yFAAyF;YACzF,qFAAqF;YACrF,6CAA6C;YAC7C,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,IAAI,wCAAwC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,kBAAkB,CAAC,IAAwB;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,yDAAyD,CAAC,CAAC;YAC/D,OAAO,EAAE,uBAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,uFAAuF;QACvF,sFAAsF;QACtF,iBAAiB;QACjB,6EAA6E;QAC7E,yEAAyE;QACzE,+EAA+E;QAC/E,iEAAiE;QACjE,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE9C,GAAG,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/E,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uFAAuF;gBACvF,iFAAiF;gBACjF,oBAAoB,EAAE,CAAC;gBACvB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;oBACxC,GAAG,CAAC,2FAA2F,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACxD,CAAC;gBACD,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,GAAG,CAAC,mDAAmD,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/F,OAAO,EAAE,uBAAuB,EAAE,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,QAA2B;QAC/E,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpE,GAAG,CAAC,+BAA+B,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,0EAA0E,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAwB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,kBAAkB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,WAAW,CACf,MAA0B,EAC1B,IAAwB,EACxB,OAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAClE,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAErC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxE,OAAO,MAAM,YAAY,CACvB,IAAI,CAAC,oBAAoB,EACzB,oBAAoB,KAAK,EAAE,EAC3B,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CACzE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,MAA0B;QACrE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/B,2FAA2F;YAC3F,4FAA4F;YAC5F,2FAA2F;YAC3F,sFAAsF;YACtF,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACzG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,MAAc,EAAE,KAA2B;QACxF,wFAAwF;QACxF,0FAA0F;QAC1F,2FAA2F;QAC3F,0CAA0C;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,yBAAyB,MAAM,EAAE,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,QAAQ,CACpB,UAA4B,EAC5B,IAAwB,EACxB,UAA8B,EAC9B,MAAmB;QAEnB,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAgB;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,SAAqC,EACrC,MAAM,EACN,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EACpC,kCAAkC,CACnC,CAAC;QAEF,GAAG,CAAC,qCAAqC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW,CAAC,MAAqB;QAC7C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;YACzC,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,IAAI,CAAC,oBAAoB;YACpC,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAmB,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAE9C,+BAA+B;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAEhF,OAAO,SAAS,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,IAAwB,EAAE,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;QAC1E,IAAI,CAAC;YACH,sEAAsE;YACtE,0EAA0E;YAC1E,sBAAsB;YACtB,OAAO,MAAM,CACX,SAAS,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,YAAoB;QAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CAAC,UAAkB;QACtD,MAAM,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,SAAkB,EAAE,aAAsB,EAAE,EAAE;YAC1F,MAAM,YAAY,GAAI,aAA4B,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAA0B,EAAE,YAAY,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,sCAAsC,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACK,KAAK,CAAC,gBAAgB,CAAC,MAAqB,EAAE,YAAoB;QACxE,GAAG,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC;QAErD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,GAAG,CAAC,yDAAyD,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1H,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAA2B,EAAE,MAAM,CAAC,CAAC;YACjI,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;YACjF,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,aAAa,CACjB,MAAM,EACN,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAA2B,EAC9F,MAAM,CACP,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACrE,4EAA4E;YAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAA2B,EAAE,MAAM,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,MAAqB;QAC/C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;YACzC,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,IAAI,CAAC,iBAAiB;YACjC,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAgB,CAAC;QACrG,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;YACD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACvC,CAAC;IAED,+EAA+E;IAC/E,wCAAwC;IACxC,+EAA+E;IAE/E;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAwB,EAAE,IAAgB;QACvD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAEjD,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,WAAW,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC5G,kCAAkC;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;YACzF,oCAAoC;YACpC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1C,GAAG,CAAC,4CAA4C,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,IAAgB;QAC3D,GAAG,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,WAAW,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC1G,0DAA0D;YAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC5D,6EAA6E;YAC7E,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE1C,GAAG,CAAC,yCAAyC,EAAE,WAAW,CAAC,CAAC;QAE5D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;CACF"}
@@ -4,6 +4,7 @@ import type { Libp2p } from '@libp2p/interface';
4
4
  import type { IRepo } from '@optimystic/db-core';
5
5
  import type { SAppConfig } from './types.js';
6
6
  import type { StrandCommitDurability, StrandCommitListeners } from './strand-commit-durability.js';
7
+ import type { TableChangeWatch, TableChangeWatchOptions } from './table-change-watch.js';
7
8
  export interface StrandDatabaseConfig extends StrandCommitListeners {
8
9
  /** The strand ID */
9
10
  strandId: string;
@@ -45,6 +46,14 @@ export interface StrandDatabaseConfig extends StrandCommitListeners {
45
46
  * leave this false and write nothing (rows arrive via sync). Defaults to false.
46
47
  */
47
48
  founder?: boolean;
49
+ /**
50
+ * Whether a closed strand's founder bootstrap also writes this machine's `Strand.MemberPeer`
51
+ * binding (for `libp2pNode`'s peer id) in the founding transaction. That binding is the
52
+ * membership reconciler's job; the founding run that seats the founding `Member` writes it
53
+ * too, which saves the reconciler's commit. False whenever the reconciler is disarmed, so a
54
+ * fixture that hand-drives the membership writers sees only the rows it wrote. Defaults to false.
55
+ */
56
+ bindFounderPeer?: boolean;
48
57
  }
49
58
  /**
50
59
  * StrandDatabase manages the sApp schema for a strand using Quereus with the
@@ -71,6 +80,8 @@ export declare class StrandDatabase {
71
80
  private initialized;
72
81
  private readonly commits;
73
82
  private unsubscribeCommits;
83
+ /** Subscriptions handed out by {@link watchTables}. */
84
+ private readonly tableWatches;
74
85
  constructor(config: StrandDatabaseConfig);
75
86
  /**
76
87
  * Initialize the database — create the `Database` and delegate the strand
@@ -88,8 +99,10 @@ export declare class StrandDatabase {
88
99
  * therefore use to forge the founder's identity. A closed strand with no
89
100
  * `partyMemberPrivateKey` throws, because it could never seat a founding manager.
90
101
  * The shared key's public half IS passed, but only so the bootstrap can refuse a strand
91
- * founded under it before the split (`PreSplitStrandIdentityError`). Open strands derive
92
- * no keypair (Header only). Idempotent — see {@link bootstrapFounderMembership}.
102
+ * founded under it before the split (`PreSplitStrandIdentityError`). The strand node's
103
+ * peer id is passed under {@link StrandDatabaseConfig.bindFounderPeer}: the same node, so
104
+ * the same id, the membership reconciler binds. Open strands derive no keypair (Header
105
+ * only). Idempotent — see {@link bootstrapFounderMembership}.
93
106
  */
94
107
  private bootstrapFounder;
95
108
  /**
@@ -133,6 +146,14 @@ export declare class StrandDatabase {
133
146
  * Get the underlying database for queries
134
147
  */
135
148
  getDatabase(): Database;
149
+ /**
150
+ * Subscribe `onChange` to changes in this strand's tables (`'Strand.Member'`, …): commits
151
+ * made here and changes replicated into this node's storage alike, on the single-flight
152
+ * schedule `table-change-watch.ts` describes. {@link close} disposes every subscription
153
+ * still live; a hibernated strand's database is closed and rebuilt on wake, so a consumer
154
+ * subscribes again on the new instance.
155
+ */
156
+ watchTables(tables: readonly string[], onChange: () => Promise<void>, options: TableChangeWatchOptions): TableChangeWatch;
136
157
  /**
137
158
  * The durability of a recent commit on this database, by its `StampId()` — the id a single
138
159
  * `insert … returning StampId() as Tx` statement returns. Read it after that statement