@enbox/agent 0.7.6 → 0.7.8

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 (85) hide show
  1. package/dist/browser.mjs +9 -11
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/dwn-api.js +3 -2
  4. package/dist/esm/dwn-api.js.map +1 -1
  5. package/dist/esm/enbox-connect-protocol.js +5 -5
  6. package/dist/esm/enbox-connect-protocol.js.map +1 -1
  7. package/dist/esm/hd-identity-vault.js +187 -177
  8. package/dist/esm/hd-identity-vault.js.map +1 -1
  9. package/dist/esm/index.js +1 -1
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/permissions-api.js +7 -34
  12. package/dist/esm/permissions-api.js.map +1 -1
  13. package/dist/esm/sync-closure-resolver.js +229 -110
  14. package/dist/esm/sync-closure-resolver.js.map +1 -1
  15. package/dist/esm/sync-closure-types.js +24 -7
  16. package/dist/esm/sync-closure-types.js.map +1 -1
  17. package/dist/esm/sync-engine-level.js +1961 -764
  18. package/dist/esm/sync-engine-level.js.map +1 -1
  19. package/dist/esm/sync-link-id.js +4 -13
  20. package/dist/esm/sync-link-id.js.map +1 -1
  21. package/dist/esm/sync-link-reconciler.js +26 -8
  22. package/dist/esm/sync-link-reconciler.js.map +1 -1
  23. package/dist/esm/sync-messages.js +218 -154
  24. package/dist/esm/sync-messages.js.map +1 -1
  25. package/dist/esm/sync-permission-grants.js +208 -0
  26. package/dist/esm/sync-permission-grants.js.map +1 -0
  27. package/dist/esm/sync-replication-ledger.js +23 -40
  28. package/dist/esm/sync-replication-ledger.js.map +1 -1
  29. package/dist/esm/sync-scope-acceptance.js +126 -0
  30. package/dist/esm/sync-scope-acceptance.js.map +1 -0
  31. package/dist/esm/sync-topological-sort.js +57 -15
  32. package/dist/esm/sync-topological-sort.js.map +1 -1
  33. package/dist/esm/types/sync.js +130 -22
  34. package/dist/esm/types/sync.js.map +1 -1
  35. package/dist/types/dwn-api.d.ts.map +1 -1
  36. package/dist/types/hd-identity-vault.d.ts +25 -0
  37. package/dist/types/hd-identity-vault.d.ts.map +1 -1
  38. package/dist/types/index.d.ts +1 -1
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/dist/types/permissions-api.d.ts +1 -2
  41. package/dist/types/permissions-api.d.ts.map +1 -1
  42. package/dist/types/sync-closure-resolver.d.ts.map +1 -1
  43. package/dist/types/sync-closure-types.d.ts +14 -3
  44. package/dist/types/sync-closure-types.d.ts.map +1 -1
  45. package/dist/types/sync-engine-level.d.ts +127 -25
  46. package/dist/types/sync-engine-level.d.ts.map +1 -1
  47. package/dist/types/sync-link-id.d.ts +3 -9
  48. package/dist/types/sync-link-id.d.ts.map +1 -1
  49. package/dist/types/sync-link-reconciler.d.ts +12 -2
  50. package/dist/types/sync-link-reconciler.d.ts.map +1 -1
  51. package/dist/types/sync-messages.d.ts +16 -13
  52. package/dist/types/sync-messages.d.ts.map +1 -1
  53. package/dist/types/sync-permission-grants.d.ts +52 -0
  54. package/dist/types/sync-permission-grants.d.ts.map +1 -0
  55. package/dist/types/sync-replication-ledger.d.ts +5 -13
  56. package/dist/types/sync-replication-ledger.d.ts.map +1 -1
  57. package/dist/types/sync-scope-acceptance.d.ts +28 -0
  58. package/dist/types/sync-scope-acceptance.d.ts.map +1 -0
  59. package/dist/types/sync-topological-sort.d.ts +2 -1
  60. package/dist/types/sync-topological-sort.d.ts.map +1 -1
  61. package/dist/types/types/identity-vault.d.ts +9 -0
  62. package/dist/types/types/identity-vault.d.ts.map +1 -1
  63. package/dist/types/types/permissions.d.ts +2 -0
  64. package/dist/types/types/permissions.d.ts.map +1 -1
  65. package/dist/types/types/sync.d.ts +137 -75
  66. package/dist/types/types/sync.d.ts.map +1 -1
  67. package/package.json +3 -3
  68. package/src/dwn-api.ts +3 -2
  69. package/src/enbox-connect-protocol.ts +5 -5
  70. package/src/hd-identity-vault.ts +244 -212
  71. package/src/index.ts +10 -1
  72. package/src/permissions-api.ts +11 -42
  73. package/src/sync-closure-resolver.ts +306 -126
  74. package/src/sync-closure-types.ts +38 -9
  75. package/src/sync-engine-level.ts +2560 -797
  76. package/src/sync-link-id.ts +9 -14
  77. package/src/sync-link-reconciler.ts +43 -10
  78. package/src/sync-messages.ts +263 -159
  79. package/src/sync-permission-grants.ts +297 -0
  80. package/src/sync-replication-ledger.ts +55 -50
  81. package/src/sync-scope-acceptance.ts +186 -0
  82. package/src/sync-topological-sort.ts +89 -21
  83. package/src/types/identity-vault.ts +8 -1
  84. package/src/types/permissions.ts +2 -0
  85. package/src/types/sync.ts +235 -62
@@ -85,6 +85,8 @@ export declare class SyncEngineLevel implements SyncEngine {
85
85
  private static readonly ECHO_SUPPRESS_MAX_ENTRIES;
86
86
  /** Validate `SyncIdentityOptions` for `registerIdentity` and `updateIdentityOptions`. */
87
87
  private static validateSyncIdentityOptions;
88
+ private buildSyncTargetsForEndpoint;
89
+ private buildSyncTargetResolutions;
88
90
  /**
89
91
  * Cached sync targets result from the last {@link getSyncTargets} call.
90
92
  * Invalidated on identity registration/unregistration/update.
@@ -101,6 +103,8 @@ export declare class SyncEngineLevel implements SyncEngine {
101
103
  private _syncTargetsCacheGeneration;
102
104
  /** TTL for the sync targets cache (30 seconds). */
103
105
  private static readonly SYNC_TARGETS_CACHE_TTL_MS;
106
+ /** Backoff schedule for recently published did:dht records. */
107
+ private static readonly DID_RESOLUTION_RETRY_BACKOFF_MS;
104
108
  /** Count of consecutive SMT sync failures (for backoff in poll mode). */
105
109
  private _consecutiveFailures;
106
110
  /** Maximum consecutive failures before entering backoff. */
@@ -204,6 +208,9 @@ export declare class SyncEngineLevel implements SyncEngine {
204
208
  * guarantee a future retry path.
205
209
  */
206
210
  private transitionToRepairing;
211
+ private transitionToTerminalIncomplete;
212
+ private setLinkOfflineStatus;
213
+ private clearLinkRuntimeInflight;
207
214
  /**
208
215
  * Schedule a retry for a failed repair. Uses exponential backoff.
209
216
  * No-op if the link is already in `degraded_poll` (timer loop owns retries)
@@ -226,6 +233,8 @@ export declare class SyncEngineLevel implements SyncEngine {
226
233
  * Close pull and push subscriptions for a specific link.
227
234
  */
228
235
  private closeLinkSubscriptions;
236
+ private closeLiveSubscription;
237
+ private closeLocalSubscription;
229
238
  /**
230
239
  * Transition a link to `degraded_poll` and start a per-link polling timer.
231
240
  * The timer runs SMT reconciliation at a reduced frequency (30s with jitter)
@@ -247,10 +256,18 @@ export declare class SyncEngineLevel implements SyncEngine {
247
256
  private teardownLiveSync;
248
257
  /**
249
258
  * Initialize a single replication link target: create or resume the durable
250
- * link, migrate legacy cursors, open pull + push subscriptions, and
251
- * transition the link to `'live'`.
259
+ * link, open pull + push subscriptions, and transition the link to `'live'`.
252
260
  */
253
261
  private initializeLinkTarget;
262
+ private getOrCreateReplicationLink;
263
+ private getReplicationLinkKey;
264
+ private openLinkSubscriptions;
265
+ private static supportsLiveSubscriptions;
266
+ private markLinkLive;
267
+ private markLinkPolling;
268
+ private handleInitializeLinkTargetError;
269
+ private createActiveLinkInitializationResult;
270
+ private cleanupFailedLinkInitialization;
254
271
  /**
255
272
  * Wrapper around {@link initializeLinkTarget} that retries on DID
256
273
  * resolution failures. Newly published `did:dht` DIDs take a few
@@ -260,6 +277,7 @@ export declare class SyncEngineLevel implements SyncEngine {
260
277
  * propagation settle before giving up.
261
278
  */
262
279
  private initializeLinkTargetWithRetry;
280
+ private isDidResolutionFailure;
263
281
  /** Check whether a link key belongs to a given DID. */
264
282
  private isLinkKeyForDid;
265
283
  /** Check whether this DID has any active links. */
@@ -268,11 +286,35 @@ export declare class SyncEngineLevel implements SyncEngine {
268
286
  private addIdentityToLiveSync;
269
287
  /** Hot-remove a single identity from the active live sync session. */
270
288
  private removeIdentityFromLiveSync;
289
+ private tryPruneSupersededDurableLinksForRegisteredIdentity;
290
+ private getDurableLinkIdentityKeysForRegisteredIdentity;
291
+ private pruneSupersededDurableLinksForIdentity;
271
292
  /**
272
293
  * Opens a MessagesSubscribe WebSocket subscription to a remote DWN.
273
294
  * Incoming events are processed locally as they arrive.
274
295
  */
275
296
  private openLivePullSubscription;
297
+ private getInitialPullCursor;
298
+ private isValidProgressToken;
299
+ private createLinkStalePredicate;
300
+ private handleLivePullMessage;
301
+ private handleLivePullEose;
302
+ private markPullLinkOnline;
303
+ private handleLivePullSubscriptionError;
304
+ private handleLivePullEvent;
305
+ private shouldSkipLivePullEvent;
306
+ private skipOutOfScopePullEvent;
307
+ private startPullDelivery;
308
+ private processLivePullEvent;
309
+ private getLivePullDataStream;
310
+ private invalidateClosureCacheForMessage;
311
+ private ensureClosureComplete;
312
+ private recordClosureFailure;
313
+ private trackRecentlyPulledMessage;
314
+ private commitPullDelivery;
315
+ private emitPullCheckpointAdvance;
316
+ private handleLivePullProcessingError;
317
+ private recordPullProcessingFailure;
276
318
  /**
277
319
  * Subscribes to the local DWN's EventLog so that writes by the user are
278
320
  * immediately pushed to the remote DWN instead of waiting for the next poll.
@@ -283,15 +325,78 @@ export declare class SyncEngineLevel implements SyncEngine {
283
325
  */
284
326
  private flushPendingPushes;
285
327
  private flushPendingPushesForLink;
328
+ private takePushFlushBatch;
329
+ private handlePushBatchResult;
330
+ private clearSucceededPushFailures;
331
+ private recordPermanentPushFailures;
332
+ private requeueFailedPushes;
333
+ private cleanupSuccessfulPushRuntime;
334
+ private finishPushFlush;
286
335
  /** Push retry backoff schedule: immediate, 250ms, 1s, 2s, then give up. */
287
336
  private static readonly PUSH_RETRY_BACKOFF_MS;
337
+ private static readonly ROOT_CONVERGENCE_CLEARABLE_DEAD_LETTER_CATEGORIES;
288
338
  /**
289
339
  * Re-queues a failed push batch for retry, or marks the link
290
340
  * `needsReconcile` if retries are exhausted. Bounded to prevent
291
341
  * infinite retry loops.
292
342
  */
293
343
  private requeueOrReconcile;
344
+ private markLinkNeedsReconcile;
294
345
  private createLinkReconciler;
346
+ private getReconcileProtocols;
347
+ private getAuthorizationGrantIds;
348
+ private reconcileProjectionTarget;
349
+ private reconcileRecordsProjectionTarget;
350
+ private reconcileProtocolSetProjectionTarget;
351
+ private collectProtocolSetDiffPlan;
352
+ private getProtocolRoots;
353
+ private applyProtocolSetDiffPlan;
354
+ private applyProjectedDiff;
355
+ private pullProjectedRemoteDiff;
356
+ private pushProjectedLocalDiff;
357
+ private pullRemoteDiffEntries;
358
+ private pullProjectedDependencyHints;
359
+ private verifyProjectedDependencies;
360
+ private verifyProjectedProtocolConfigDependencies;
361
+ private static indexEntriesWithMessage;
362
+ private static recordsInitialWritesFromVerifiedDependencies;
363
+ private collectProjectedRecordsInitialWriteDependencies;
364
+ private verifyRecordsInitialWriteCandidate;
365
+ private toAuthenticatedRecordsInitialWriteDependency;
366
+ private collectProjectedProtocolConfigCandidates;
367
+ private verifyProtocolConfigCandidate;
368
+ private verifyProtocolConfigCandidateMessage;
369
+ private toAuthenticatedProtocolConfigDependency;
370
+ private static projectedDependencyCidsMatch;
371
+ private static recordsWriteProtocol;
372
+ private static recordsDeleteRecordId;
373
+ private static protocolConfigRootRecordsWrite;
374
+ private static protocolsConfigureProtocol;
375
+ private static protocolsConfigureProtocolFromGenericMessage;
376
+ private static protocolsConfigureIsNotNewerThanRecordsWrite;
377
+ private static protocolsConfigureUses;
378
+ private static hasMessage;
379
+ private static isRecordsWriteProtocolMessage;
380
+ private static isRecordsWriteMessage;
381
+ private static isRecordsDeleteMessage;
382
+ private static isProtocolsConfigureDefinitionMessage;
383
+ private static hasProtocolsConfigureDefinition;
384
+ private static isProtocolsConfigureDefinition;
385
+ private static filterProtocolConfigClosure;
386
+ private static groupGoverningProtocolConfigCandidatesByProtocol;
387
+ private static isProtocolConfigCandidateAtLeastAsNew;
388
+ private static takeNextUnvisitedProtocol;
389
+ private static acceptProtocolConfigCandidates;
390
+ private static queueUnvisitedProtocols;
391
+ private static protocolSetScopeForProjectedDependencies;
392
+ private static projectedDependencyProtocols;
393
+ private static hasDependencyPayloadBytes;
394
+ private static dedupeDependencyEntries;
395
+ private pushLocalDiffEntries;
396
+ private verifyProtocolSetConvergence;
397
+ private static dedupeRemoteEntries;
398
+ private static dedupeStrings;
399
+ private clearRootConvergenceDeadLettersForScope;
295
400
  /** Active reconcile timers, keyed by link key. */
296
401
  private readonly _reconcileTimers;
297
402
  /** Active reconcile operations, keyed by link key (dedup). */
@@ -318,25 +423,10 @@ export declare class SyncEngineLevel implements SyncEngine {
318
423
  * Live-mode subscription methods (`openLivePullSubscription`,
319
424
  * `openLocalPushSubscription`) receive `linkKey` directly and never
320
425
  * call this. The remaining callers are poll-mode `sync()` and the
321
- * live-mode startup/error paths that already have `link.scopeId`.
322
- *
323
- * The `undefined` fallback (which produces a legacy cursor key) exists
324
- * only for the no-protocol full-tenant targets in poll mode.
426
+ * live-mode startup/error paths that already have a projection ID and
427
+ * authorization epoch.
325
428
  */
326
429
  private buildLinkKey;
327
- /**
328
- * @deprecated Used by poll-mode sync and one-time migration only. Live mode
329
- * uses ReplicationLedger checkpoints. Handles migration from old string cursors:
330
- * if the stored value is a bare string (pre-ProgressToken format), it is treated
331
- * as absent — the sync engine will do a full SMT reconciliation on first startup
332
- * after upgrade, which is correct and safe.
333
- */
334
- private getCursor;
335
- /**
336
- * Delete a legacy cursor from the old syncCursors sublevel.
337
- * Called as part of one-time migration to ReplicationLedger.
338
- */
339
- private deleteLegacyCursor;
340
430
  /**
341
431
  * Extracts a ReadableStream from a MessageEvent if it contains a
342
432
  * RecordsWrite with data — either as an inline `encodedData` field
@@ -379,6 +469,8 @@ export declare class SyncEngineLevel implements SyncEngine {
379
469
  * Returns a hex-encoded root hash string.
380
470
  */
381
471
  private getRemoteRoot;
472
+ private getLocalProjectedRoot;
473
+ private getRemoteProjectedRoot;
382
474
  /**
383
475
  * Compute the diff between local and remote in a single HTTP round-trip.
384
476
  *
@@ -393,6 +485,8 @@ export declare class SyncEngineLevel implements SyncEngine {
393
485
  * This replaces `walkTreeDiff()` which required one HTTP call per tree node.
394
486
  */
395
487
  private diffWithRemote;
488
+ private diffProjectedWithRemote;
489
+ private diffRemoteMessages;
396
490
  /**
397
491
  * Walk the local SMT to a given depth and collect non-empty subtree hashes.
398
492
  * Returns a `{ prefix: hexHash }` map. Empty subtrees (matching the default
@@ -402,6 +496,7 @@ export declare class SyncEngineLevel implements SyncEngine {
402
496
  * to `getLocalSubtreeHash` which routes through RPC.
403
497
  */
404
498
  private collectLocalSubtreeHashes;
499
+ private collectLocalProjectedSubtreeHashes;
405
500
  /**
406
501
  * Get the subtree hash at a given bit prefix from the local DWN.
407
502
  *
@@ -409,6 +504,7 @@ export declare class SyncEngineLevel implements SyncEngine {
409
504
  * In remote mode: constructs a signed MessagesSync message and routes through RPC.
410
505
  */
411
506
  private getLocalSubtreeHash;
507
+ private getLocalProjectedSubtreeHash;
412
508
  /**
413
509
  * Get all leaf messageCids under a given prefix from the local DWN.
414
510
  *
@@ -416,6 +512,7 @@ export declare class SyncEngineLevel implements SyncEngine {
416
512
  * In remote mode: constructs a signed MessagesSync message and routes through RPC.
417
513
  */
418
514
  private getLocalLeaves;
515
+ private getLocalProjectedLeaves;
419
516
  /**
420
517
  * Fetches missing messages from the remote DWN and processes them locally
421
518
  * in dependency order (topological sort).
@@ -425,6 +522,10 @@ export declare class SyncEngineLevel implements SyncEngine {
425
522
  * Only `messageCids` that were NOT prefetched are fetched individually.
426
523
  */
427
524
  private pullMessages;
525
+ private acceptPulledSyncEntry;
526
+ private resolvePulledDeleteInitialWrite;
527
+ private static findInitialWriteByRecordId;
528
+ private findInitialWriteInPullBatch;
428
529
  /**
429
530
  * Evicts expired entries from the echo-loop suppression cache.
430
531
  * Also enforces the size cap by evicting oldest entries first.
@@ -456,6 +557,7 @@ export declare class SyncEngineLevel implements SyncEngine {
456
557
  * also have no protocol.
457
558
  */
458
559
  private clearDeadLettersForLink;
560
+ private clearRootConvergenceDeadLetters;
459
561
  /**
460
562
  * Build a compound dead letter key. Different remotes can fail the same CID
461
563
  * for different reasons, so the key includes the remote endpoint.
@@ -474,17 +576,17 @@ export declare class SyncEngineLevel implements SyncEngine {
474
576
  clearFailedMessage(messageCid: string, remoteEndpoint?: string): Promise<boolean>;
475
577
  clearAllFailedMessages(tenantDid?: string): Promise<void>;
476
578
  getSyncHealth(): Promise<SyncHealthSummary>;
579
+ private getCurrentDurableLinkIdentityKeys;
580
+ private getDurableLinkIdentityKey;
581
+ private static durableLinkIdentityKey;
582
+ private static isUnhealthyLinkStatus;
477
583
  /**
478
- * Returns the list of sync targets: (did, dwnUrl, delegateDid?, protocol?) tuples.
584
+ * Returns the list of sync targets: one canonical projection target per
585
+ * registered DID and resolved DWN endpoint.
479
586
  * Results are cached for up to 30 seconds to avoid redundant DID resolution
480
587
  * on every sync tick. The cache is invalidated when identities are registered,
481
588
  * unregistered, or updated.
482
589
  */
483
590
  private getSyncTargets;
484
- /**
485
- * Gets the permission grant ID for MessagesSync if a delegateDid is provided.
486
- * Returns undefined if no delegate is in use (owner access).
487
- */
488
- private getSyncPermissionGrantId;
489
591
  }
490
592
  //# sourceMappingURL=sync-engine-level.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,11 @@
1
- /** Separator used in compound runtime/legacy cursor keys. */
1
+ /** Separator used in compound replication link identifiers. */
2
2
  export declare const LINK_ID_SEPARATOR = "^";
3
3
  /** Opaque runtime identifier for a replication link. */
4
4
  export type LinkId = string;
5
5
  /**
6
6
  * Build the runtime identifier for a replication link.
7
7
  *
8
- * Runtime identity is `(tenantDid, remoteEndpoint, scopeId)`.
8
+ * Runtime identity is `(tenantDid, remoteEndpoint, projectionId, authorizationEpoch)`.
9
9
  */
10
- export declare function buildLinkId(tenantDid: string, remoteEndpoint: string, scopeId: string): LinkId;
11
- /**
12
- * Build the legacy cursor key used by the deprecated `syncCursors` sublevel.
13
- *
14
- * This remains only for one-time migration of pre-Phase-1f data.
15
- */
16
- export declare function buildLegacyCursorKey(tenantDid: string, remoteEndpoint: string, protocol?: string): string;
10
+ export declare function buildLinkId(tenantDid: string, remoteEndpoint: string, projectionId: string, authorizationEpoch: string): LinkId;
17
11
  //# sourceMappingURL=sync-link-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-link-id.d.ts","sourceRoot":"","sources":["../../src/sync-link-id.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,wDAAwD;AACxD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzG"}
1
+ {"version":3,"file":"sync-link-id.d.ts","sourceRoot":"","sources":["../../src/sync-link-id.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,wDAAwD;AACxD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAER"}
@@ -6,6 +6,7 @@ export type ReconcileTarget = {
6
6
  dwnUrl: string;
7
7
  delegateDid?: string;
8
8
  protocol?: string;
9
+ permissionGrantIds?: string[];
9
10
  };
10
11
  export type ReconcileOutcome = {
11
12
  aborted?: boolean;
@@ -20,8 +21,8 @@ export type ReconcileOutcome = {
20
21
  pushResult?: PushResult;
21
22
  };
22
23
  type ReconcileDeps = {
23
- getLocalRoot: (did: string, delegateDid?: string, protocol?: string) => Promise<string>;
24
- getRemoteRoot: (did: string, dwnUrl: string, delegateDid?: string, protocol?: string) => Promise<string>;
24
+ getLocalRoot: (did: string, delegateDid?: string, protocol?: string, permissionGrantIds?: string[]) => Promise<string>;
25
+ getRemoteRoot: (did: string, dwnUrl: string, delegateDid?: string, protocol?: string, permissionGrantIds?: string[]) => Promise<string>;
25
26
  diffWithRemote: (target: ReconcileTarget) => Promise<{
26
27
  onlyRemote: MessagesSyncDiffEntry[];
27
28
  onlyLocal: string[];
@@ -31,20 +32,29 @@ type ReconcileDeps = {
31
32
  dwnUrl: string;
32
33
  delegateDid?: string;
33
34
  protocol?: string;
35
+ permissionGrantIds?: string[];
34
36
  messageCids: string[];
35
37
  prefetched: (MessagesSyncDiffEntry & {
36
38
  message: GenericMessage;
37
39
  })[];
40
+ shouldContinue?: () => boolean;
38
41
  }) => Promise<void>;
39
42
  pushMessages: (params: {
40
43
  did: string;
41
44
  dwnUrl: string;
42
45
  delegateDid?: string;
43
46
  protocol?: string;
47
+ permissionGrantIds?: string[];
44
48
  messageCids: string[];
45
49
  }) => Promise<PushResult>;
46
50
  shouldContinue?: () => boolean;
47
51
  };
52
+ export declare function partitionRemoteEntries(entries: MessagesSyncDiffEntry[]): {
53
+ prefetched: (MessagesSyncDiffEntry & {
54
+ message: GenericMessage;
55
+ })[];
56
+ needsFetchCids: string[];
57
+ };
48
58
  export declare class SyncLinkReconciler {
49
59
  private readonly _deps;
50
60
  constructor(deps: ReconcileDeps);
@@ -1 +1 @@
1
- {"version":3,"file":"sync-link-reconciler.d.ts","sourceRoot":"","sources":["../../src/sync-link-reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxF,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzG,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;QAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,CAAC,qBAAqB,GAAG;YAAE,OAAO,EAAE,cAAc,CAAA;SAAE,CAAC,EAAE,CAAC;KACrE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;CAChC,CAAC;AA2BF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBAE1B,IAAI,EAAE,aAAa;IAIlB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QACxD,SAAS,CAAC,EAAE,kBAAkB,CAAC;QAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuE9B"}
1
+ {"version":3,"file":"sync-link-reconciler.d.ts","sourceRoot":"","sources":["../../src/sync-link-reconciler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { GenericMessage, MessagesSyncDiffEntry, UnionMessageReply } from '@enbox/dwn-sdk-js';
2
2
  import type { EnboxPlatformAgent } from './types/agent.js';
3
- import type { PermissionsApi } from './types/permissions.js';
4
3
  import type { PushResult } from './types/sync.js';
5
4
  /** Entry type for fetched messages with optional data stream and retry buffer. */
6
5
  export type SyncMessageEntry = {
@@ -9,6 +8,12 @@ export type SyncMessageEntry = {
9
8
  /** Buffered data bytes for retry — avoids re-fetching from remote when stream is consumed. */
10
9
  bufferedData?: Uint8Array;
11
10
  };
11
+ /** Optional pre-apply gate for inbound sync entries. */
12
+ export type PullMessageAcceptance = (entry: SyncMessageEntry, entries: SyncMessageEntry[]) => Promise<boolean>;
13
+ /** Raised when an in-flight pull is cancelled before local apply can continue. */
14
+ export declare class SyncPullAbortedError extends Error {
15
+ constructor();
16
+ }
12
17
  /**
13
18
  * 202: message was successfully written to the remote DWN
14
19
  * 204: an initial write message was written without any data
@@ -42,28 +47,28 @@ export declare function getMessageCid(message: GenericMessage): Promise<string>;
42
47
  * Large payloads are re-fetched on retry since buffering them would consume
43
48
  * too much memory.
44
49
  */
45
- export declare function pullMessages({ did, dwnUrl, delegateDid, protocol, messageCids, prefetched, agent, permissionsApi }: {
50
+ export declare function pullMessages({ did, dwnUrl, delegateDid, permissionGrantIds, messageCids, prefetched, acceptEntry, shouldContinue, agent }: {
46
51
  did: string;
47
52
  dwnUrl: string;
48
53
  delegateDid?: string;
49
- protocol?: string;
54
+ permissionGrantIds?: string[];
50
55
  messageCids: string[];
51
56
  /** Pre-fetched message entries from the batched diff response (already have message + data). */
52
57
  prefetched?: MessagesSyncDiffEntry[];
58
+ acceptEntry?: PullMessageAcceptance;
59
+ shouldContinue?: () => boolean;
53
60
  agent: EnboxPlatformAgent;
54
- permissionsApi: PermissionsApi;
55
61
  }): Promise<string[]>;
56
62
  /**
57
63
  * Fetches messages from a remote DWN by their CIDs using MessagesRead.
58
64
  */
59
- export declare function fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }: {
65
+ export declare function fetchRemoteMessages({ did, dwnUrl, delegateDid, permissionGrantIds, messageCids, agent }: {
60
66
  did: string;
61
67
  dwnUrl: string;
62
68
  delegateDid?: string;
63
- protocol?: string;
69
+ permissionGrantIds?: string[];
64
70
  messageCids: string[];
65
71
  agent: EnboxPlatformAgent;
66
- permissionsApi: PermissionsApi;
67
72
  }): Promise<SyncMessageEntry[]>;
68
73
  /**
69
74
  * Reads missing messages from the local DWN and pushes them to the remote DWN.
@@ -75,24 +80,22 @@ export declare function fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol
75
80
  * on the first failure. Callers use this to advance the push checkpoint
76
81
  * incrementally — only up to the highest contiguous success.
77
82
  */
78
- export declare function pushMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }: {
83
+ export declare function pushMessages({ did, dwnUrl, delegateDid, permissionGrantIds, messageCids, agent }: {
79
84
  did: string;
80
85
  dwnUrl: string;
81
86
  delegateDid?: string;
82
- protocol?: string;
87
+ permissionGrantIds?: string[];
83
88
  messageCids: string[];
84
89
  agent: EnboxPlatformAgent;
85
- permissionsApi: PermissionsApi;
86
90
  }): Promise<PushResult>;
87
91
  /**
88
92
  * Reads a message from the local DWN by its CID using MessagesRead.
89
93
  */
90
- export declare function getLocalMessage({ author, delegateDid, protocol, messageCid, agent, permissionsApi }: {
94
+ export declare function getLocalMessage({ author, delegateDid, permissionGrantIds, messageCid, agent }: {
91
95
  author: string;
92
96
  delegateDid?: string;
93
- protocol?: string;
97
+ permissionGrantIds?: string[];
94
98
  messageCid: string;
95
99
  agent: EnboxPlatformAgent;
96
- permissionsApi: PermissionsApi;
97
100
  }): Promise<SyncMessageEntry | undefined>;
98
101
  //# sourceMappingURL=sync-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-messages.d.ts","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAWxE,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACxC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,cAAc,GAAG,OAAO,CAoB9G;AAYD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAUxE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACzH,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gGAAgG;IAChG,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4FpB;AA4DD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACpH,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoE9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC7G,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,UAAU,CAAC,CAuEtB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC1G,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAmCxC"}
1
+ {"version":3,"file":"sync-messages.d.ts","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { DwnInterface } from './types/dwn.js';
2
+ import type { GenericMessage } from '@enbox/dwn-sdk-js';
3
+ import type { NonEmptyStringArray, SyncAuthorizationGrant, SyncScope } from './types/sync.js';
4
+ import type { PermissionGrantEntry, PermissionsApi } from './types/permissions.js';
5
+ export type MessagesSyncScopeResolution = {
6
+ scope: SyncScope;
7
+ permissionGrants: PermissionGrantEntry[];
8
+ };
9
+ /** Returns a sorted, duplicate-free grant ID set, or `undefined` for owner requests. */
10
+ export declare function toMessagesPermissionGrantIds(permissionGrantIds: string[] | undefined): NonEmptyStringArray | undefined;
11
+ /**
12
+ * Gets the active permission grant IDs that authorize a Messages operation.
13
+ *
14
+ * Owner-authored sync does not invoke grants. Delegate full sync requires at
15
+ * least one active unscoped Messages.Read grant. Delegate protocol-set sync
16
+ * requires each requested protocol to be covered by an active Messages.Read
17
+ * grant, then invokes every active grant that participates in the projection.
18
+ * This keeps the authorization epoch tied to grant churn without widening the
19
+ * CID projection being compared.
20
+ */
21
+ export declare function getMessagesPermissionGrantsForScope({ did, delegateDid, protocols, messageType, permissionsApi, }: {
22
+ did: string;
23
+ delegateDid?: string;
24
+ protocols?: NonEmptyStringArray;
25
+ messageType: DwnInterface;
26
+ permissionsApi: PermissionsApi;
27
+ }): Promise<PermissionGrantEntry[]>;
28
+ /**
29
+ * Resolves active Messages.Read grants into one or more sync targets.
30
+ *
31
+ * Broad protocol coverage remains on StateIndex full/protocol roots. Exact
32
+ * protocolPath and contextId grants are grouped into a Records-primary
33
+ * projection target so a narrow grant never authorizes a broad protocol root.
34
+ */
35
+ export declare function resolveMessagesSyncScopes({ did, delegateDid, requestedScope, messageType, permissionsApi, }: {
36
+ did: string;
37
+ delegateDid?: string;
38
+ requestedScope: SyncScope;
39
+ messageType: DwnInterface;
40
+ permissionsApi: PermissionsApi;
41
+ }): Promise<MessagesSyncScopeResolution[]>;
42
+ /** Converts permission grant entries into authorization epoch inputs. */
43
+ export declare function toSyncAuthorizationGrants(permissionGrants: PermissionGrantEntry[]): [SyncAuthorizationGrant, ...SyncAuthorizationGrant[]];
44
+ /** Returns sorted grant IDs from permission grant entries. */
45
+ export declare function permissionGrantIdsFromEntries(permissionGrants: PermissionGrantEntry[]): NonEmptyStringArray | undefined;
46
+ /**
47
+ * Returns the permission grant IDs invoked by a message.
48
+ *
49
+ * Real DWN messages use the author signature payload as the source of truth.
50
+ */
51
+ export declare function getInvokedPermissionGrantIds(message: GenericMessage): string[];
52
+ //# sourceMappingURL=sync-permission-grants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-permission-grants.d.ts","sourceRoot":"","sources":["../../src/sync-permission-grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAA4E,MAAM,mBAAmB,CAAC;AAClI,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnF,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;CAC1C,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,4BAA4B,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAKtH;AAED;;;;;;;;;GASG;AACH,wBAAsB,mCAAmC,CAAC,EACxD,GAAG,EACH,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,GACf,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAclC;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,EAC9C,GAAG,EACH,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,GACf,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAsBzC;AAqID,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAWzI;AA6BD,8DAA8D;AAC9D,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,mBAAmB,GAAG,SAAS,CAEvH;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,EAAE,CAW9E"}
@@ -1,12 +1,12 @@
1
1
  import type { AbstractLevel } from 'abstract-level';
2
2
  import type { ProgressToken } from '@enbox/dwn-sdk-js';
3
- import type { DirectionCheckpoint, LinkStatus, ReplicationLinkState, SyncScope } from './types/sync.js';
3
+ import type { DirectionCheckpoint, LinkStatus, ReplicationLinkState, SyncAuthorization, SyncScope } from './types/sync.js';
4
4
  /**
5
5
  * Durable replication ledger — persists {@link ReplicationLinkState} for each
6
6
  * sync link in a LevelDB sublevel. Provides CRUD operations and replication
7
7
  * checkpoint helpers.
8
8
  *
9
- * Key format: `{tenantDid}^{remoteEndpoint}^{scopeId}`
9
+ * Key format: `{tenantDid}^{remoteEndpoint}^{projectionId}^{authorizationEpoch}`
10
10
  *
11
11
  * Each link tracks independent pull and push {@link DirectionCheckpoint}s.
12
12
  * The ledger does not own subscriptions or timers — it is a passive state
@@ -26,26 +26,18 @@ export declare class ReplicationLedger {
26
26
  tenantDid: string;
27
27
  remoteEndpoint: string;
28
28
  scope: SyncScope;
29
+ authorizationEpoch: string;
30
+ authorization: SyncAuthorization;
29
31
  delegateDid?: string;
30
- protocol?: string;
31
32
  }): Promise<ReplicationLinkState>;
32
33
  /** Persist the current state of a link. */
33
34
  saveLink(link: ReplicationLinkState): Promise<void>;
34
35
  /** Delete a link. */
35
- deleteLink(tenantDid: string, remoteEndpoint: string, scopeId: string): Promise<void>;
36
+ deleteLink(tenantDid: string, remoteEndpoint: string, projectionId: string, authorizationEpoch: string): Promise<void>;
36
37
  /** List all links for a tenant. */
37
38
  getLinksForTenant(tenantDid: string): Promise<ReplicationLinkState[]>;
38
39
  /** List all links. */
39
40
  getAllLinks(): Promise<ReplicationLinkState[]>;
40
- /**
41
- * Update the `delegateDid` on all persisted links for a tenant and persist.
42
- * This ensures that repair and reconcile paths — which read `delegateDid`
43
- * from the durable {@link ReplicationLinkState} — use the current delegate
44
- * after a hot-swap via `updateIdentityOptions()`.
45
- *
46
- * @returns the links that were updated.
47
- */
48
- updateDelegateDid(tenantDid: string, delegateDid: string | undefined): Promise<ReplicationLinkState[]>;
49
41
  /** Transition a link to a new status and persist. */
50
42
  setStatus(link: ReplicationLinkState, status: LinkStatus): Promise<void>;
51
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sync-replication-ledger.d.ts","sourceRoot":"","sources":["../../src/sync-replication-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOxG;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA8C;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAEd,EAAE,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAS3D,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAYvB;;;OAGG;IACU,eAAe,CAAC,MAAM,EAAE;QACnC,SAAS,EAAG,MAAM,CAAC;QACnB,cAAc,EAAG,MAAM,CAAC;QACxB,KAAK,EAAG,SAAS,CAAC;QAClB,WAAW,CAAC,EAAG,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAG,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqCjC,2CAA2C;IAC9B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE,qBAAqB;IACR,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlG,mCAAmC;IACtB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAWlF,sBAAsB;IACT,WAAW,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAY3D;;;;;;;OAOG;IACU,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBnH,qDAAqD;IACxC,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF;;;;OAIG;WACW,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM;IAOzE;;;;OAIG;WACW,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAMjG;;;;OAIG;WACW,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAS3F;;;;OAIG;WACW,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAIhG;;;OAGG;WACW,eAAe,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IAS3F;;;OAGG;IACU,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5F;;OAEG;IACU,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5E"}
1
+ {"version":3,"file":"sync-replication-ledger.d.ts","sourceRoot":"","sources":["../../src/sync-replication-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO3H;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA8C;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAEd,EAAE,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAS3D,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAkBvB;;;OAGG;IACU,eAAe,CAAC,MAAM,EAAE;QACnC,SAAS,EAAG,MAAM,CAAC;QACnB,cAAc,EAAG,MAAM,CAAC;QACxB,KAAK,EAAG,SAAS,CAAC;QAClB,kBAAkB,EAAG,MAAM,CAAC;QAC5B,aAAa,EAAG,iBAAiB,CAAC;QAClC,WAAW,CAAC,EAAG,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2CjC,2CAA2C;IAC9B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhE,qBAAqB;IACR,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC;IAKhB,mCAAmC;IACtB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAWlF,sBAAsB;IACT,WAAW,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAY3D,qDAAqD;IACxC,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF;;;;OAIG;WACW,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM;IAOzE;;;;OAIG;WACW,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAMjG;;;;OAIG;WACW,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAS3F;;;;OAIG;WACW,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAYhG;;;OAGG;WACW,eAAe,CAAC,UAAU,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IAS3F;;;OAGG;IACU,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5F;;OAEG;IACU,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5E"}