@serfab/cadre-core 1.3.0 → 1.5.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 (90) hide show
  1. package/README.md +5 -3
  2. package/dist/cadre-node.d.ts +70 -34
  3. package/dist/cadre-node.js +197 -60
  4. package/dist/cadre-node.js.map +1 -1
  5. package/dist/control-database.d.ts +24 -10
  6. package/dist/control-database.js +48 -16
  7. package/dist/control-database.js.map +1 -1
  8. package/dist/control-formation-recorder.d.ts +4 -4
  9. package/dist/control-formation-recorder.js +6 -6
  10. package/dist/control-formation-recorder.js.map +1 -1
  11. package/dist/control-read-retry.d.ts +12 -0
  12. package/dist/control-read-retry.js +12 -0
  13. package/dist/control-read-retry.js.map +1 -1
  14. package/dist/control-write-retry.d.ts +5 -4
  15. package/dist/control-write-retry.js +24 -7
  16. package/dist/control-write-retry.js.map +1 -1
  17. package/dist/index.d.ts +5 -4
  18. package/dist/index.js +10 -5
  19. package/dist/index.js.map +1 -1
  20. package/dist/link-budget.d.ts +182 -0
  21. package/dist/link-budget.js +195 -0
  22. package/dist/link-budget.js.map +1 -0
  23. package/dist/membership-connection-gater.d.ts +18 -5
  24. package/dist/membership-connection-gater.js +50 -10
  25. package/dist/membership-connection-gater.js.map +1 -1
  26. package/dist/peer-dial.d.ts +36 -17
  27. package/dist/peer-dial.js +37 -17
  28. package/dist/peer-dial.js.map +1 -1
  29. package/dist/peer-join-backfill.d.ts +58 -4
  30. package/dist/peer-join-backfill.js +165 -20
  31. package/dist/peer-join-backfill.js.map +1 -1
  32. package/dist/relay-reservation.d.ts +59 -11
  33. package/dist/relay-reservation.js +169 -43
  34. package/dist/relay-reservation.js.map +1 -1
  35. package/dist/seed-bootstrap.js +2 -1
  36. package/dist/seed-bootstrap.js.map +1 -1
  37. package/dist/storage-scope.d.ts +50 -12
  38. package/dist/storage-scope.js +85 -12
  39. package/dist/storage-scope.js.map +1 -1
  40. package/dist/strand-first-sync-gate.d.ts +43 -5
  41. package/dist/strand-first-sync-gate.js +55 -7
  42. package/dist/strand-first-sync-gate.js.map +1 -1
  43. package/dist/strand-formation-manager.js +2 -1
  44. package/dist/strand-formation-manager.js.map +1 -1
  45. package/dist/strand-id.d.ts +35 -0
  46. package/dist/strand-id.js +46 -0
  47. package/dist/strand-id.js.map +1 -0
  48. package/dist/strand-instance-manager.d.ts +27 -2
  49. package/dist/strand-instance-manager.js +75 -15
  50. package/dist/strand-instance-manager.js.map +1 -1
  51. package/dist/strand-membership-reconciler.d.ts +200 -45
  52. package/dist/strand-membership-reconciler.js +302 -86
  53. package/dist/strand-membership-reconciler.js.map +1 -1
  54. package/dist/strand-membership-writer.d.ts +3 -2
  55. package/dist/strand-membership-writer.js +67 -90
  56. package/dist/strand-membership-writer.js.map +1 -1
  57. package/dist/strand-network-config.d.ts +3 -3
  58. package/dist/strand-network-config.js +3 -3
  59. package/dist/strand-solicitation.js +2 -1
  60. package/dist/strand-solicitation.js.map +1 -1
  61. package/dist/strand-watcher.d.ts +45 -0
  62. package/dist/strand-watcher.js +74 -13
  63. package/dist/strand-watcher.js.map +1 -1
  64. package/dist/types.d.ts +190 -24
  65. package/dist/types.js +73 -4
  66. package/dist/types.js.map +1 -1
  67. package/package.json +8 -8
  68. package/src/cadre-node.ts +7445 -7302
  69. package/src/control-database.ts +48 -16
  70. package/src/control-formation-recorder.ts +6 -6
  71. package/src/control-read-retry.ts +214 -202
  72. package/src/control-write-retry.ts +24 -7
  73. package/src/index.ts +29 -2
  74. package/src/link-budget.ts +217 -0
  75. package/src/membership-connection-gater.ts +56 -11
  76. package/src/peer-dial.ts +39 -17
  77. package/src/peer-join-backfill.ts +192 -23
  78. package/src/relay-reservation.ts +1119 -951
  79. package/src/seed-bootstrap.ts +2 -1
  80. package/src/storage-scope.ts +163 -78
  81. package/src/strand-first-sync-gate.ts +55 -7
  82. package/src/strand-formation-manager.ts +647 -646
  83. package/src/strand-id.ts +48 -0
  84. package/src/strand-instance-manager.ts +1516 -1440
  85. package/src/strand-membership-reconciler.ts +334 -92
  86. package/src/strand-membership-writer.ts +1962 -1987
  87. package/src/strand-network-config.ts +250 -250
  88. package/src/strand-solicitation.ts +500 -499
  89. package/src/strand-watcher.ts +388 -325
  90. package/src/types.ts +192 -23
@@ -0,0 +1,46 @@
1
+ /**
2
+ * strand-id.ts — the only places cadre-core mints a strand id.
3
+ *
4
+ * A strand id is not just a key in the control database: it is the strand's storage
5
+ * scope key (a directory, a LevelDB filename, an IndexedDB database name — whatever
6
+ * the embedder's provider makes of it) and the strand node's libp2p network name,
7
+ * `strand-<id>`, which becomes the protocol prefix `/optimystic/strand-<id>`. It also
8
+ * replicates to every other node in the party, which will turn it into those same
9
+ * names on their own disks.
10
+ *
11
+ * So a generator that emits a shape `isValidStrandScopeKey` rejects does not fail
12
+ * here — it fails later, on a peer, at launch. Minting in one module and asserting the
13
+ * predicate on the way out is what keeps that impossible: a future edit to either shape
14
+ * fails at its own call site rather than on someone else's machine.
15
+ */
16
+ import { randomBytes } from '@optimystic/quereus-plugin-crypto';
17
+ import { assertStrandScopeKey } from './storage-scope.js';
18
+ /**
19
+ * Mint a fresh, unguessable strand id: `strand-` plus 32 hex characters (128 bits).
20
+ *
21
+ * Uses {@link randomBytes} — the same cross-platform CSPRNG `control-database`'s
22
+ * `generateStampId` uses — NOT `crypto.randomUUID` / `Date.now` / `Math.random`, none
23
+ * of which are uniformly available across node/browser/React Native. Unguessability is
24
+ * the point for a responder-provisioned strand: the id is what an invite redemption
25
+ * hands back, so a predictable one would let a third party name a strand before its
26
+ * founder published it.
27
+ */
28
+ export function mintStrandId() {
29
+ const strandId = `strand-${randomBytes(128, 'hex')}`;
30
+ assertStrandScopeKey(strandId);
31
+ return strandId;
32
+ }
33
+ /**
34
+ * Mint a structural placeholder strand id: `strand-<ms since epoch>-<6 base36 chars>`.
35
+ *
36
+ * For the no-node / no-recorder fallbacks, where the caller needs a well-shaped id an
37
+ * initiator can validate but no strand is actually provisioned. NOT unguessable —
38
+ * `Math.random` is not a CSPRNG — so never use it where {@link mintStrandId}'s
39
+ * unpredictability is load-bearing.
40
+ */
41
+ export function mintPlaceholderStrandId() {
42
+ const strandId = `strand-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
43
+ assertStrandScopeKey(strandId);
44
+ return strandId;
45
+ }
46
+ //# sourceMappingURL=strand-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strand-id.js","sourceRoot":"","sources":["../src/strand-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY;IAC3B,MAAM,QAAQ,GAAG,UAAU,WAAW,CAAC,GAAG,EAAE,KAAK,CAAW,EAAE,CAAC;IAC/D,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACtC,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAClF,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -157,6 +157,18 @@ export interface StartStrandConfig {
157
157
  * this node's behalf — what to do about it is the app's call.
158
158
  */
159
159
  onSelfRevoked?: (strandId: string) => void;
160
+ /**
161
+ * Called when the membership reconciler reports a blocked re-join — this node holds a
162
+ * staged membership invitation for the strand that its writes cannot redeem, which is
163
+ * what a REMOVED party handed a fresh invitation hits (see "Reporting a blocked
164
+ * re-join" in `strand-membership-reconciler.ts` for the two triggers, one of them a
165
+ * suspicion rather than a verdict). At most once per re-arm of the loop — a further
166
+ * invitation staged while the loop is still running does not reset the report — and
167
+ * only for closed strands with a party key. `CadreNode` wires it to its `strand:rejoin-blocked`
168
+ * event; nothing is stopped or torn down — a remaining manager admitting this party's
169
+ * key directly is the remedy, and the loop finishes the join by itself once that lands.
170
+ */
171
+ onRejoinBlocked?: (strandId: string) => void;
160
172
  /**
161
173
  * Tuning for the JOINING machine's first-sync write gate (`strand-first-sync-gate.ts`),
162
174
  * forwarded from {@link CadreNodeConfig.strandFirstSync}: the Header probe cadence while
@@ -370,8 +382,11 @@ export declare class StrandInstanceManager {
370
382
  /**
371
383
  * One {@link superviseRelayReservation} per relay dial addr, each over exactly
372
384
  * that relay so "held" is judged per relay (`circuitMultiaddrsVia`) and losing
373
- * one relay re-drives only that one. Default timings — the control node's (2 s
374
- * doubling to 60 s between failed attempts, a 5 s liveness check while held).
385
+ * one relay re-drives only that one. Default retry timings — the control node's (2 s
386
+ * doubling to 60 s between failed attempts, a 5 s liveness check while held). Each DRIVE's
387
+ * own deadline is counted in link round trips at this host's declared
388
+ * `network.linkRoundTripMs` (`link-budget.ts`), so the same declaration that lengthens the
389
+ * control node's drive lengthens these.
375
390
  *
376
391
  * Each supervisor's `beforeRedrive` is the caller's
377
392
  * {@link StartStrandConfig.announceDelegateToRelay} for THIS relay and THIS
@@ -416,6 +431,16 @@ export declare class StrandInstanceManager {
416
431
  * finished.
417
432
  */
418
433
  refreshRevocationEnforcement(strandId: string): Promise<void>;
434
+ /**
435
+ * A fresh membership invitation was staged for `strandId` (`CadreNode`'s
436
+ * `adoptFormationMembershipInvite`): re-arm the strand's membership reconciler so the
437
+ * invitation is attempted now rather than never — the loop finished during the first
438
+ * join and would otherwise stay stopped until a relaunch. Quiet no-op when no reconciler
439
+ * is armed: a first formation stages before the strand is added, and bring-up then arms
440
+ * a loop that finds the invitation by itself. Returns at once; the pass runs on the
441
+ * loop's own serialized chain and never rejects.
442
+ */
443
+ notifyMembershipInviteStaged(strandId: string): void;
419
444
  /**
420
445
  * Best-effort removal of THIS machine's own `Strand.MemberPeer` binding — the
421
446
  * self arm of `removeMemberPeer`, signed with the retained launch config's party
@@ -8,10 +8,12 @@ import { StrandMembershipReconciler } from './strand-membership-reconciler.js';
8
8
  import { removeMemberPeer } from './strand-membership-writer.js';
9
9
  import { strandMemberKeyPair } from './strand-member-key.js';
10
10
  import { assertSchemaSignature } from './schema-verification.js';
11
+ import { assertStrandScopeKey } from './storage-scope.js';
11
12
  import { StrandFirstSyncGate, StrandAwaitingFirstSyncError, strandFirstSyncComplete, DEFAULT_STRAND_FIRST_SYNC_TIMEOUT_MS } from './strand-first-sync-gate.js';
12
- import { resolveStrandClusterSize, strandClusterPolicy } from './types.js';
13
+ import { DEFAULT_CONNECTION_MONITOR, resolveStrandClusterSize, strandClusterPolicy } from './types.js';
13
14
  import { strandNodeAddrs } from './strand-network-config.js';
14
15
  import { superviseRelayReservation } from './relay-reservation.js';
16
+ import { peerJoinPushBudget, relayReservationBudgetMs, resolveLinkRoundTripMs } from './link-budget.js';
15
17
  const log = debug('sereus:cadre:strand-manager');
16
18
  const timing = debug('sereus:cadre:timing');
17
19
  /**
@@ -76,7 +78,10 @@ export function getStrandStoragePath(basePath, strandId) {
76
78
  * If the provider is a factory function, call it with the strandId.
77
79
  *
78
80
  * Called only from {@link StrandInstanceManager.startStrand}, which owns the result
79
- * for the instance's lifetime — see `strandStorages`.
81
+ * for the instance's lifetime — see `strandStorages`, and which has already asserted
82
+ * the id is usable as a scope key. Do not move that assertion here: this function
83
+ * returns early when no provider is configured, and the id becomes a libp2p protocol
84
+ * prefix on that path too.
80
85
  *
81
86
  * @param provider - Storage provider (instance or factory)
82
87
  * @param strandId - The strand ID to create storage for
@@ -237,6 +242,14 @@ export class StrandInstanceManager {
237
242
  }
238
243
  log('Starting strand instance: %s (sApp: %s v%s)', strandId, sAppConfig.id, sAppConfig.version);
239
244
  const tTotal = performance.now();
245
+ // The id becomes two names below: the storage scope key the embedder's provider
246
+ // turns into a directory or database name, and `networkName` in buildStrandRuntime,
247
+ // from which the libp2p protocol prefix `/optimystic/strand-<id>` is built. A
248
+ // replicated strand row carries whatever id the founding node wrote, so neither is
249
+ // safe unchecked. Asserted HERE rather than in `resolveStrandStorage` because that
250
+ // function returns early when no provider is configured — a node with no storage
251
+ // still reaches buildStrandRuntime and still mints the protocol prefix.
252
+ assertStrandScopeKey(strandId);
240
253
  // Verify schema signature before proceeding (fail-closed by default)
241
254
  const requireSignature = config.requireSignedSchemas ?? true;
242
255
  assertSchemaSignature(sAppConfig, { requireSignature });
@@ -307,6 +320,11 @@ export class StrandInstanceManager {
307
320
  async buildStrandRuntime(instance, config) {
308
321
  const strandId = instance.strandId;
309
322
  const { sAppConfig } = config;
323
+ // Refuse a bad `linkRoundTripMs` before any strand bring-up, for the reason
324
+ // `CadreNode.start()` does: every budget derived from it here is behind a condition
325
+ // (backfill disabled, no relay addrs), so a zero or NaN declaration would otherwise
326
+ // surface later inside a path that logs and carries on. `link-budget.ts`.
327
+ resolveLinkRoundTripMs(config.network?.linkRoundTripMs);
310
328
  // The store the instance OWNS (resolved once in `startStrand`), not a fresh
311
329
  // resolution: a rebuild must reach the same backend through the same warm cache.
312
330
  const strandStorage = this.strandStorages.get(strandId);
@@ -398,13 +416,23 @@ export class StrandInstanceManager {
398
416
  // returns the frozen STRAND_CLUSTER_POLICY itself, declaring nothing. Resolved
399
417
  // HERE rather than at `startStrand`, so a wake from hibernation would pick up a
400
418
  // serving set that changed while the strand slept.
401
- clusterPolicy: strandClusterPolicy(strandClusterSize, config.servingMachines),
419
+ // The read deadline is the same field the control node reads, because the two
420
+ // networks ride one link; absent, the base policy's COHORT_READ_DEADLINE_MS stands.
421
+ clusterPolicy: strandClusterPolicy(strandClusterSize, {
422
+ servingMachines: config.servingMachines,
423
+ cohortQueryTimeoutMs: config.network?.cohortQueryTimeoutMs
424
+ }),
402
425
  arachnode: {
403
426
  enableRingZulu: config.profile === 'storage'
404
427
  },
405
428
  ...(config.privateKey && { privateKey: config.privateKey }),
406
429
  ...(config.network?.transports && { transports: config.network.transports }),
407
430
  ...(config.network?.noiseCrypto && { noiseCrypto: config.network.noiseCrypto }),
431
+ // Unconditional, and the same default the control node takes: every node of
432
+ // every party runs the monitor over its connection to a slow phone, so the
433
+ // widened ping deadline has to reach the strand nodes too (see
434
+ // DEFAULT_CONNECTION_MONITOR).
435
+ connectionMonitor: config.network?.connectionMonitor ?? DEFAULT_CONNECTION_MONITOR,
408
436
  // Listen entries plus the WebSocket transport switch they imply — a strand node
409
437
  // announces nothing the operator configured (`strand-network-config.ts`), and
410
438
  // spreads AFTER `transports` above because the switch is a no-op whenever the
@@ -508,7 +536,8 @@ export class StrandInstanceManager {
508
536
  const ownPeerId = instance.libp2pNode?.peerId.toString();
509
537
  return ownPeerId !== undefined && revocationEnforcer.isRevoked(ownPeerId);
510
538
  }
511
- : undefined
539
+ : undefined,
540
+ onRejoinBlocked: () => config.onRejoinBlocked?.(strandId)
512
541
  }, {
513
542
  pollIntervalMs: config.membershipReconciliation?.pollIntervalMs
514
543
  ?? config.revocationEnforcement?.pollIntervalMs
@@ -547,7 +576,15 @@ export class StrandInstanceManager {
547
576
  // The same prefix the receiver registered its block-transfer handler
548
577
  // under — derived from networkName above, never re-spelled here.
549
578
  protocolPrefix
550
- }, config.backfill);
579
+ }, {
580
+ // Dial and response deadlines counted in link round trips, not fixed milliseconds:
581
+ // a relayed dial costs a fixed number of exchanges, so a fixed budget has a link
582
+ // speed above which this catch-up can never reach the peer at all. See
583
+ // `link-budget.ts`. Spread BEFORE the host's own config so an explicit
584
+ // `strandBackfill.dialTimeoutMs` still wins.
585
+ ...peerJoinPushBudget(config.network?.linkRoundTripMs),
586
+ ...config.backfill
587
+ });
551
588
  backfill.start();
552
589
  this.backfills.set(strandId, backfill);
553
590
  }
@@ -562,10 +599,12 @@ export class StrandInstanceManager {
562
599
  // The strand's database is up, and the supervisor keeps trying on its backoff;
563
600
  // failing here would only trade that for `StrandWatcher`'s full-rebuild retry.
564
601
  //
565
- // NOTE: a relay that is down costs this launch one full drive (10 s), and
566
- // `StrandWatcher` launches strands one at a time — so N strands cost N × 10 s
567
- // of bring-up during a relay outage. If that ever matters, stop awaiting here
568
- // (the circuit addr then lands after `active`) rather than shortening the drive.
602
+ // NOTE: a relay that is down costs this launch one full drive — the reservation budget
603
+ // counted from the declared link round trip, 8 s at its default (`link-budget.ts`) — and
604
+ // `StrandWatcher` launches strands one at a time, so N strands cost N of those in
605
+ // bring-up during a relay outage, and MORE on a host that declared a slower link. If that
606
+ // ever matters, stop awaiting here (the circuit addr then lands after `active`) rather
607
+ // than shortening the drive.
569
608
  t0 = performance.now();
570
609
  await this.awaitFirstRelayAttempts(strandId);
571
610
  timing('[buildStrandRuntime:%s] relay first attempts: %dms', strandId, Math.round(performance.now() - t0));
@@ -602,10 +641,9 @@ export class StrandInstanceManager {
602
641
  // Relay supervisors FIRST of all — before anything below is torn down — so no
603
642
  // re-drive is scheduled against a node being stopped. `stop()` is synchronous
604
643
  // and never awaits a drive, so a relay that is down cannot delay this teardown.
605
- // NOTE: a drive ALREADY in flight cannot be aborted (the drive takes no
606
- // AbortSignal — `backlog/bug-relay-drive-not-cancellable`); it fails soft
607
- // against the stopped node within its own 10 s deadline and its result is
608
- // discarded.
644
+ // `stop()` also cancels the drive already in flight, so an attempt started
645
+ // moments before this does not keep dialing and polling the node the lines
646
+ // below are stopping; its result is discarded either way.
609
647
  const relaySupervisors = this.relaySupervisors.get(instance.strandId);
610
648
  if (relaySupervisors) {
611
649
  relaySupervisors.forEach((supervisor) => supervisor.stop());
@@ -655,8 +693,11 @@ export class StrandInstanceManager {
655
693
  /**
656
694
  * One {@link superviseRelayReservation} per relay dial addr, each over exactly
657
695
  * that relay so "held" is judged per relay (`circuitMultiaddrsVia`) and losing
658
- * one relay re-drives only that one. Default timings — the control node's (2 s
659
- * doubling to 60 s between failed attempts, a 5 s liveness check while held).
696
+ * one relay re-drives only that one. Default retry timings — the control node's (2 s
697
+ * doubling to 60 s between failed attempts, a 5 s liveness check while held). Each DRIVE's
698
+ * own deadline is counted in link round trips at this host's declared
699
+ * `network.linkRoundTripMs` (`link-budget.ts`), so the same declaration that lengthens the
700
+ * control node's drive lengthens these.
660
701
  *
661
702
  * Each supervisor's `beforeRedrive` is the caller's
662
703
  * {@link StartStrandConfig.announceDelegateToRelay} for THIS relay and THIS
@@ -670,7 +711,9 @@ export class StrandInstanceManager {
670
711
  }
671
712
  const announce = config.announceDelegateToRelay;
672
713
  const delegatePeerId = node.peerId.toString();
714
+ const timeoutMs = relayReservationBudgetMs(config.network?.linkRoundTripMs);
673
715
  return relayDialAddrs.map((relayAddr) => superviseRelayReservation(node, [relayAddr], {
716
+ timeoutMs,
674
717
  ...(announce && { beforeRedrive: () => announce(strandId, relayAddr, delegatePeerId) })
675
718
  }));
676
719
  }
@@ -740,6 +783,23 @@ export class StrandInstanceManager {
740
783
  }
741
784
  await enforcer.refresh();
742
785
  }
786
+ /**
787
+ * A fresh membership invitation was staged for `strandId` (`CadreNode`'s
788
+ * `adoptFormationMembershipInvite`): re-arm the strand's membership reconciler so the
789
+ * invitation is attempted now rather than never — the loop finished during the first
790
+ * join and would otherwise stay stopped until a relaunch. Quiet no-op when no reconciler
791
+ * is armed: a first formation stages before the strand is added, and bring-up then arms
792
+ * a loop that finds the invitation by itself. Returns at once; the pass runs on the
793
+ * loop's own serialized chain and never rejects.
794
+ */
795
+ notifyMembershipInviteStaged(strandId) {
796
+ const reconciler = this.membershipReconcilers.get(strandId);
797
+ if (!reconciler) {
798
+ log('notifyMembershipInviteStaged: strand %s has no armed membership reconciler — bring-up will find the invitation', strandId);
799
+ return;
800
+ }
801
+ void reconciler.rearm();
802
+ }
743
803
  /**
744
804
  * Best-effort removal of THIS machine's own `Strand.MemberPeer` binding — the
745
805
  * self arm of `removeMemberPeer`, signed with the retained launch config's party
@@ -1 +1 @@
1
- {"version":3,"file":"strand-instance-manager.js","sourceRoot":"","sources":["../src/strand-instance-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strand-instance-manager.js","sourceRoot":"","sources":["../src/strand-instance-manager.ts"],"names":[],"mappings":"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"}