@enbox/agent 0.6.5 → 0.6.6

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 (113) hide show
  1. package/README.md +18 -5
  2. package/dist/browser.mjs +11 -11
  3. package/dist/browser.mjs.map +4 -4
  4. package/dist/esm/agent-did-resolver-cache.js +5 -5
  5. package/dist/esm/agent-did-resolver-cache.js.map +1 -1
  6. package/dist/esm/crypto-api.js.map +1 -1
  7. package/dist/esm/did-api.js +1 -1
  8. package/dist/esm/did-api.js.map +1 -1
  9. package/dist/esm/dwn-api.js +93 -53
  10. package/dist/esm/dwn-api.js.map +1 -1
  11. package/dist/esm/dwn-discovery-payload.js +7 -4
  12. package/dist/esm/dwn-discovery-payload.js.map +1 -1
  13. package/dist/esm/dwn-key-delivery.js +8 -3
  14. package/dist/esm/dwn-key-delivery.js.map +1 -1
  15. package/dist/esm/enbox-connect-protocol.js +34 -14
  16. package/dist/esm/enbox-connect-protocol.js.map +1 -1
  17. package/dist/esm/enbox-user-agent.js +11 -3
  18. package/dist/esm/enbox-user-agent.js.map +1 -1
  19. package/dist/esm/hd-identity-vault.js +33 -18
  20. package/dist/esm/hd-identity-vault.js.map +1 -1
  21. package/dist/esm/identity-api.js +5 -4
  22. package/dist/esm/identity-api.js.map +1 -1
  23. package/dist/esm/index.js +1 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/local-dwn.js.map +1 -1
  26. package/dist/esm/local-key-manager.js.map +1 -1
  27. package/dist/esm/permissions-api.js +9 -5
  28. package/dist/esm/permissions-api.js.map +1 -1
  29. package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +9 -9
  30. package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -1
  31. package/dist/esm/secret-store.js +106 -0
  32. package/dist/esm/secret-store.js.map +1 -0
  33. package/dist/esm/store-data.js +32 -11
  34. package/dist/esm/store-data.js.map +1 -1
  35. package/dist/esm/sync-closure-resolver.js +1 -1
  36. package/dist/esm/sync-closure-resolver.js.map +1 -1
  37. package/dist/esm/sync-engine-level.js +418 -141
  38. package/dist/esm/sync-engine-level.js.map +1 -1
  39. package/dist/esm/sync-replication-ledger.js +25 -0
  40. package/dist/esm/sync-replication-ledger.js.map +1 -1
  41. package/dist/esm/test-harness.js +32 -5
  42. package/dist/esm/test-harness.js.map +1 -1
  43. package/dist/esm/types/sync.js +9 -3
  44. package/dist/esm/types/sync.js.map +1 -1
  45. package/dist/esm/utils.js.map +1 -1
  46. package/dist/types/agent-did-resolver-cache.d.ts +1 -1
  47. package/dist/types/agent-did-resolver-cache.d.ts.map +1 -1
  48. package/dist/types/anonymous-dwn-api.d.ts +2 -2
  49. package/dist/types/anonymous-dwn-api.d.ts.map +1 -1
  50. package/dist/types/crypto-api.d.ts +1 -1
  51. package/dist/types/crypto-api.d.ts.map +1 -1
  52. package/dist/types/did-api.d.ts +2 -2
  53. package/dist/types/did-api.d.ts.map +1 -1
  54. package/dist/types/dwn-api.d.ts +51 -11
  55. package/dist/types/dwn-api.d.ts.map +1 -1
  56. package/dist/types/dwn-key-delivery.d.ts +4 -1
  57. package/dist/types/dwn-key-delivery.d.ts.map +1 -1
  58. package/dist/types/enbox-connect-protocol.d.ts +3 -2
  59. package/dist/types/enbox-connect-protocol.d.ts.map +1 -1
  60. package/dist/types/enbox-user-agent.d.ts +5 -1
  61. package/dist/types/enbox-user-agent.d.ts.map +1 -1
  62. package/dist/types/hd-identity-vault.d.ts +9 -2
  63. package/dist/types/hd-identity-vault.d.ts.map +1 -1
  64. package/dist/types/identity-api.d.ts +1 -1
  65. package/dist/types/identity-api.d.ts.map +1 -1
  66. package/dist/types/index.d.ts +1 -0
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/local-dwn.d.ts +3 -3
  69. package/dist/types/local-dwn.d.ts.map +1 -1
  70. package/dist/types/local-key-manager.d.ts +2 -2
  71. package/dist/types/local-key-manager.d.ts.map +1 -1
  72. package/dist/types/permissions-api.d.ts +1 -1
  73. package/dist/types/permissions-api.d.ts.map +1 -1
  74. package/dist/types/secret-store.d.ts +81 -0
  75. package/dist/types/secret-store.d.ts.map +1 -0
  76. package/dist/types/store-data.d.ts +15 -3
  77. package/dist/types/store-data.d.ts.map +1 -1
  78. package/dist/types/sync-engine-level.d.ts +52 -16
  79. package/dist/types/sync-engine-level.d.ts.map +1 -1
  80. package/dist/types/sync-replication-ledger.d.ts +10 -1
  81. package/dist/types/sync-replication-ledger.d.ts.map +1 -1
  82. package/dist/types/test-harness.d.ts +3 -0
  83. package/dist/types/test-harness.d.ts.map +1 -1
  84. package/dist/types/types/agent.d.ts +3 -0
  85. package/dist/types/types/agent.d.ts.map +1 -1
  86. package/dist/types/types/sync.d.ts +27 -4
  87. package/dist/types/types/sync.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/agent-did-resolver-cache.ts +5 -5
  90. package/src/anonymous-dwn-api.ts +2 -2
  91. package/src/crypto-api.ts +1 -1
  92. package/src/did-api.ts +3 -3
  93. package/src/dwn-api.ts +107 -69
  94. package/src/dwn-discovery-payload.ts +5 -4
  95. package/src/dwn-key-delivery.ts +8 -2
  96. package/src/enbox-connect-protocol.ts +38 -21
  97. package/src/enbox-user-agent.ts +15 -3
  98. package/src/hd-identity-vault.ts +47 -21
  99. package/src/identity-api.ts +6 -5
  100. package/src/index.ts +1 -0
  101. package/src/local-dwn.ts +3 -3
  102. package/src/local-key-manager.ts +2 -2
  103. package/src/permissions-api.ts +12 -8
  104. package/src/prototyping/crypto/jose/jwe-flattened.ts +8 -8
  105. package/src/secret-store.ts +173 -0
  106. package/src/store-data.ts +40 -14
  107. package/src/sync-closure-resolver.ts +2 -2
  108. package/src/sync-engine-level.ts +423 -162
  109. package/src/sync-replication-ledger.ts +26 -1
  110. package/src/test-harness.ts +40 -5
  111. package/src/types/agent.ts +3 -0
  112. package/src/types/sync.ts +35 -7
  113. package/src/utils.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,OAAO,CAAC,MAAM,CAAC,CAAa;IAE5B,IAAI,KAAK,IAAI,UAAU,CAKtB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,UAAU,EAEzB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAO;IAI5C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACd,YAAmB,GACpB,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C3D;;;OAGG;YACW,oBAAoB;IAuC5B,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8CpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IA6B5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA+DlC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
1
+ {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4E;IAE/G,OAAO,CAAC,MAAM,CAAC,CAAa;IAE5B,IAAI,KAAK,IAAI,UAAU,CAKtB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,UAAU,EAEzB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAO;IAI5C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACd,YAAmB,GACpB,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C3D;;;OAGG;YACW,oBAAoB;IAuC5B,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8CpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IA6B5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAmElC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
@@ -0,0 +1,81 @@
1
+ import type { KeyValueStore } from '@enbox/common';
2
+ import type { IdentityVault } from './types/identity-vault.js';
3
+ /**
4
+ * Options for storing a secret.
5
+ */
6
+ export type SecretStorePutOptions = {
7
+ /**
8
+ * ISO-8601 timestamp after which the secret is considered expired.
9
+ *
10
+ * Expired secrets are silently deleted on the next {@link SecretStore.get}
11
+ * call and `undefined` is returned.
12
+ */
13
+ expiresAt?: string;
14
+ };
15
+ /**
16
+ * Platform-agnostic interface for storing classified secrets encrypted at rest
17
+ * by the agent vault.
18
+ *
19
+ * Implementations must ensure that plaintext secret material is never persisted
20
+ * to browser-accessible storage such as `localStorage` or `sessionStorage`.
21
+ */
22
+ export interface SecretStore {
23
+ /**
24
+ * Store a secret, encrypted at rest with the vault key.
25
+ *
26
+ * @param key - Unique identifier for the secret.
27
+ * @param value - The secret bytes to store.
28
+ * @param options - Optional metadata (e.g. TTL).
29
+ * @throws If the vault is locked.
30
+ */
31
+ put(key: string, value: Uint8Array, options?: SecretStorePutOptions): Promise<void>;
32
+ /**
33
+ * Retrieve and decrypt a secret.
34
+ *
35
+ * Returns `undefined` if the key does not exist or the secret has expired.
36
+ *
37
+ * @param key - The identifier used when the secret was stored.
38
+ * @throws If the vault is locked.
39
+ */
40
+ get(key: string): Promise<Uint8Array | undefined>;
41
+ /**
42
+ * Delete a secret.
43
+ *
44
+ * @param key - The identifier used when the secret was stored.
45
+ * @returns `true` if the key existed and was removed, `false` otherwise.
46
+ */
47
+ delete(key: string): Promise<boolean>;
48
+ }
49
+ /**
50
+ * Vault-backed implementation of {@link SecretStore}.
51
+ *
52
+ * Secrets are encrypted with the vault's content encryption key (AES-256-GCM
53
+ * via `dir` algorithm) before being persisted to the backing
54
+ * {@link KeyValueStore}. The vault must be unlocked for {@link put} and
55
+ * {@link get} operations; {@link delete} does not require the vault to be
56
+ * unlocked since it only removes the encrypted envelope.
57
+ */
58
+ export declare class VaultBackedSecretStore implements SecretStore {
59
+ private readonly _vault;
60
+ private readonly _store;
61
+ constructor({ vault, store }: {
62
+ vault: IdentityVault;
63
+ store: KeyValueStore<string, string>;
64
+ });
65
+ put(key: string, value: Uint8Array, options?: SecretStorePutOptions): Promise<void>;
66
+ get(key: string): Promise<Uint8Array | undefined>;
67
+ delete(key: string): Promise<boolean>;
68
+ }
69
+ /**
70
+ * In-memory implementation of {@link SecretStore} for testing.
71
+ *
72
+ * Secrets are stored as plain `Uint8Array` values in a `Map` — no encryption,
73
+ * no persistence. This is suitable only for unit tests.
74
+ */
75
+ export declare class InMemorySecretStore implements SecretStore {
76
+ private readonly _store;
77
+ put(key: string, value: Uint8Array, options?: SecretStorePutOptions): Promise<void>;
78
+ get(key: string): Promise<Uint8Array | undefined>;
79
+ delete(key: string): Promise<boolean>;
80
+ }
81
+ //# sourceMappingURL=secret-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../../src/secret-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF;;;;;;;OAOG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAElD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAmBD;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,YAAW,WAAW;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,KAAK,EAAG,aAAa,CAAC;QACtB,KAAK,EAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC;IAKY,GAAG,CACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAYH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAgBjD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMnD;AAMD;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgE;IAE1E,GAAG,CACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAOH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAajD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGnD"}
@@ -47,7 +47,12 @@ export declare class DwnDataStore<TStoreObject extends Record<string, any> = Jwk
47
47
  * Cache of tenant DIDs that have been initialized with the protocol.
48
48
  * This is used to avoid redundant protocol initialization requests.
49
49
  *
50
- * Since these are default protocols and unlikely to change, we can use a long TTL.
50
+ * Uses TtlCache with a 1-hour TTL rather than a permanent Set so that
51
+ * protocol state changes by another agent/process (protocol upgrade,
52
+ * reinstall, or tenant clear) are eventually re-detected. Both this
53
+ * and `_tenantEncryptionActive` must share the same TTL so they expire
54
+ * together — otherwise `initialize()` could return early while the
55
+ * encryption state is stale.
51
56
  */
52
57
  protected _protocolInitializedCache: TtlCache<string, boolean>;
53
58
  /**
@@ -60,8 +65,14 @@ export declare class DwnDataStore<TStoreObject extends Record<string, any> = Jwk
60
65
  * When any type in `_recordProtocolDefinition` has `encryptionRequired: true`,
61
66
  * this will always be `true` after successful initialization (since
62
67
  * installation fails if encryption is not possible).
68
+ *
69
+ * Uses the same 1-hour TTL as `_protocolInitializedCache` so both
70
+ * caches expire and re-derive together. See comment above.
63
71
  */
64
- private _tenantEncryptionActive;
72
+ private readonly _tenantEncryptionActive;
73
+ /** Cached result of the `encryptionRequired` check on the protocol definition.
74
+ * Computed lazily on first access — the definition is immutable after assignment. */
75
+ private _encryptionRequired;
65
76
  /**
66
77
  * Properties to use when writing and querying records with the DWN store.
67
78
  * Subclasses MUST override this to include `protocol` and `protocolPath`.
@@ -83,6 +94,7 @@ export declare class DwnDataStore<TStoreObject extends Record<string, any> = Jwk
83
94
  initialize({ tenant, agent }: DataStoreTenantParams): Promise<void>;
84
95
  /**
85
96
  * Returns `true` if any type in the protocol definition has `encryptionRequired: true`.
97
+ * Cached after first computation since the protocol definition is immutable.
86
98
  */
87
99
  private get encryptionRequired();
88
100
  /**
@@ -111,7 +123,7 @@ export declare class InMemoryDataStore<TStoreObject extends Record<string, any>
111
123
  /**
112
124
  * A private field that contains the Map used as the in-memory data store.
113
125
  */
114
- private store;
126
+ private readonly store;
115
127
  delete({ id, agent, tenant }: DataStoreDeleteParams): Promise<boolean>;
116
128
  get({ id, agent, tenant }: DataStoreGetParams): Promise<TStoreObject | undefined>;
117
129
  list({ agent, tenant }: DataStoreListParams): Promise<TStoreObject[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"store-data.d.ts","sourceRoot":"","sources":["../../src/store-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-data.d.ts","sourceRoot":"","sources":["../../src/store-data.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export declare class SyncEngineLevel implements SyncEngine {
19
19
  * An instance of the `AgentPermissionsApi` that is used to interact with permissions grants used during sync
20
20
  */
21
21
  private _permissionsApi;
22
- private _db;
22
+ private readonly _db;
23
23
  private _syncIntervalId?;
24
24
  private _syncLock;
25
25
  /**
@@ -33,21 +33,21 @@ export declare class SyncEngineLevel implements SyncEngine {
33
33
  * Populated from the ledger on `startLiveSync`, used by subscription handlers
34
34
  * to avoid async ledger lookups on every event.
35
35
  */
36
- private _activeLinks;
36
+ private readonly _activeLinks;
37
37
  /**
38
38
  * Per-link in-memory delivery-order tracking for the pull path. Keyed by
39
39
  * the same link key as `_activeLinks`. Not persisted — on crash, replay
40
40
  * restarts from `contiguousAppliedToken` and idempotent apply handles
41
41
  * re-delivered events.
42
42
  */
43
- private _linkRuntimes;
43
+ private readonly _linkRuntimes;
44
44
  /**
45
45
  * Hex-encoded default hashes for empty subtrees at each depth, keyed by depth.
46
46
  * Lazily initialized on first use. Used by `walkTreeDiff` to detect empty subtrees
47
47
  * and short-circuit the recursive walk instead of descending all the way to MAX_DIFF_DEPTH.
48
48
  */
49
49
  private _defaultHashHex?;
50
- /** Current sync mode, set by `startSync`. */
50
+ /** Current sync mode, set by `startSync`. Reset to `undefined` by `stopSync`/`clear`. */
51
51
  private _syncMode;
52
52
  /**
53
53
  * Monotonic session generation counter. Incremented on every teardown.
@@ -63,16 +63,16 @@ export declare class SyncEngineLevel implements SyncEngine {
63
63
  /** Connectivity state derived from subscription health. */
64
64
  private _connectivityState;
65
65
  /** Registered event listeners for observability. */
66
- private _eventListeners;
66
+ private readonly _eventListeners;
67
67
  /** Per-link push runtime: queue, debounce timer, retry state. */
68
- private _pushRuntimes;
68
+ private readonly _pushRuntimes;
69
69
  /**
70
70
  * CIDs recently received via pull subscription, keyed by `cid|dwnUrl` to
71
71
  * scope suppression per remote endpoint. A message pulled from Provider A
72
72
  * is only suppressed for push back to Provider A — it still fans out to
73
73
  * Provider B and C. TTL: 60 seconds. Cap: 10,000 entries.
74
74
  */
75
- private _recentlyPulledCids;
75
+ private readonly _recentlyPulledCids;
76
76
  /** TTL for echo-loop suppression entries (60 seconds). */
77
77
  private static readonly ECHO_SUPPRESS_TTL_MS;
78
78
  /**
@@ -80,9 +80,27 @@ export declare class SyncEngineLevel implements SyncEngine {
80
80
  * Caches ProtocolsConfigure and grant lookups across events for the same
81
81
  * tenant. Keyed by tenantDid to prevent cross-tenant cache pollution.
82
82
  */
83
- private _closureContexts;
83
+ private readonly _closureContexts;
84
84
  /** Maximum entries in the echo-loop suppression cache. */
85
85
  private static readonly ECHO_SUPPRESS_MAX_ENTRIES;
86
+ /** Validate `SyncIdentityOptions` for `registerIdentity` and `updateIdentityOptions`. */
87
+ private static validateSyncIdentityOptions;
88
+ /**
89
+ * Cached sync targets result from the last {@link getSyncTargets} call.
90
+ * Invalidated on identity registration/unregistration/update.
91
+ * TTL-based: cleared after 30 seconds to pick up DID document changes.
92
+ */
93
+ private _syncTargetsCache?;
94
+ /**
95
+ * Monotonic generation counter for sync target cache invalidation.
96
+ * Bumped on every invalidation (register/unregister/update/clear/close/stopSync).
97
+ * An in-flight `getSyncTargets()` captures the generation before awaiting
98
+ * and only writes to the cache if it hasn't changed, preventing a
99
+ * concurrent mutation from being masked by stale data.
100
+ */
101
+ private _syncTargetsCacheGeneration;
102
+ /** TTL for the sync targets cache (30 seconds). */
103
+ private static readonly SYNC_TARGETS_CACHE_TTL_MS;
86
104
  /** Count of consecutive SMT sync failures (for backoff in poll mode). */
87
105
  private _consecutiveFailures;
88
106
  /** Maximum consecutive failures before entering backoff. */
@@ -109,6 +127,7 @@ export declare class SyncEngineLevel implements SyncEngine {
109
127
  */
110
128
  get agent(): EnboxPlatformAgent;
111
129
  set agent(agent: EnboxPlatformAgent);
130
+ get hasActiveSubscriptions(): boolean;
112
131
  get connectivityState(): SyncConnectivityState;
113
132
  on(listener: SyncEventListener): () => void;
114
133
  /** Emit a sync event to all registered listeners. */
@@ -117,7 +136,7 @@ export declare class SyncEngineLevel implements SyncEngine {
117
136
  close(): Promise<void>;
118
137
  registerIdentity({ did, options }: {
119
138
  did: string;
120
- options?: SyncIdentityOptions;
139
+ options: SyncIdentityOptions;
121
140
  }): Promise<void>;
122
141
  unregisterIdentity(did: string): Promise<void>;
123
142
  getIdentityOptions(did: string): Promise<SyncIdentityOptions | undefined>;
@@ -154,13 +173,13 @@ export declare class SyncEngineLevel implements SyncEngine {
154
173
  /** Maximum consecutive repair attempts before falling back to degraded_poll. */
155
174
  private static readonly MAX_REPAIR_ATTEMPTS;
156
175
  /** Per-link degraded-poll interval timers. */
157
- private _degradedPollTimers;
176
+ private readonly _degradedPollTimers;
158
177
  /** Per-link repair attempt counters. */
159
- private _repairAttempts;
178
+ private readonly _repairAttempts;
160
179
  /** Per-link active repair promises — prevents concurrent repair for the same link. */
161
- private _activeRepairs;
180
+ private readonly _activeRepairs;
162
181
  /** Per-link retry timers for failed repairs below max attempts. */
163
- private _repairRetryTimers;
182
+ private readonly _repairRetryTimers;
164
183
  /** Backoff schedule for repair retries (milliseconds). */
165
184
  private static readonly REPAIR_BACKOFF_MS;
166
185
  /**
@@ -169,7 +188,7 @@ export declare class SyncEngineLevel implements SyncEngine {
169
188
  * the post-repair checkpoint so the reopened subscription replays from
170
189
  * a valid boundary instead of starting live-only.
171
190
  */
172
- private _repairContext;
191
+ private readonly _repairContext;
173
192
  /**
174
193
  * Central helper for transitioning a link to `repairing`. Encapsulates:
175
194
  * - status change
@@ -221,6 +240,20 @@ export declare class SyncEngineLevel implements SyncEngine {
221
240
  /** Removes browser connectivity listeners if they were registered. */
222
241
  private stopBrowserConnectivityListeners;
223
242
  private teardownLiveSync;
243
+ /**
244
+ * Initialize a single replication link target: create or resume the durable
245
+ * link, migrate legacy cursors, open pull + push subscriptions, and
246
+ * transition the link to `'live'`.
247
+ */
248
+ private initializeLinkTarget;
249
+ /** Check whether a link key belongs to a given DID. */
250
+ private isLinkKeyForDid;
251
+ /** Check whether this DID has any active links. */
252
+ private hasActiveLinksForDid;
253
+ /** Hot-add a single identity to the active live sync session. */
254
+ private addIdentityToLiveSync;
255
+ /** Hot-remove a single identity from the active live sync session. */
256
+ private removeIdentityFromLiveSync;
224
257
  /**
225
258
  * Opens a MessagesSubscribe WebSocket subscription to a remote DWN.
226
259
  * Incoming events are processed locally as they arrive.
@@ -246,9 +279,9 @@ export declare class SyncEngineLevel implements SyncEngine {
246
279
  private requeueOrReconcile;
247
280
  private createLinkReconciler;
248
281
  /** Active reconcile timers, keyed by link key. */
249
- private _reconcileTimers;
282
+ private readonly _reconcileTimers;
250
283
  /** Active reconcile operations, keyed by link key (dedup). */
251
- private _reconcileInFlight;
284
+ private readonly _reconcileInFlight;
252
285
  /**
253
286
  * Schedule a per-link reconciliation after a short debounce. Coalesces
254
287
  * repeated requests for the same link.
@@ -429,6 +462,9 @@ export declare class SyncEngineLevel implements SyncEngine {
429
462
  getSyncHealth(): Promise<SyncHealthSummary>;
430
463
  /**
431
464
  * Returns the list of sync targets: (did, dwnUrl, delegateDid?, protocol?) tuples.
465
+ * Results are cached for up to 30 seconds to avoid redundant DID resolution
466
+ * on every sync tick. The cache is invalidated when identities are registered,
467
+ * unregistered, or updated.
432
468
  */
433
469
  private getSyncTargets;
434
470
  /**
@@ -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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"}
@@ -14,7 +14,7 @@ import type { DirectionCheckpoint, LinkStatus, ReplicationLinkState, SyncScope }
14
14
  */
15
15
  export declare class ReplicationLedger {
16
16
  private readonly db;
17
- private sublevel;
17
+ private readonly sublevel;
18
18
  constructor(db: AbstractLevel<string | Buffer | Uint8Array>);
19
19
  /** Build the compound key for a link. */
20
20
  private static buildKey;
@@ -37,6 +37,15 @@ export declare class ReplicationLedger {
37
37
  getLinksForTenant(tenantDid: string): Promise<ReplicationLinkState[]>;
38
38
  /** List all links. */
39
39
  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[]>;
40
49
  /** Transition a link to a new status and persist. */
41
50
  setStatus(link: ReplicationLinkState, status: LinkStatus): Promise<void>;
42
51
  /**
@@ -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;gBAEL,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,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,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"}
@@ -18,6 +18,8 @@ type PlatformAgentTestHarnessParams = {
18
18
  dwnStateIndex: StateIndexLevel;
19
19
  dwnMessageStore: MessageStoreLevel;
20
20
  dwnResumableTaskStore: ResumableTaskStoreLevel;
21
+ /** Backing KeyValueStore for VaultBackedSecretStore (disk mode only). */
22
+ secretStore?: KeyValueStore<string, string>;
21
23
  syncStore: AbstractLevel<string | Buffer | Uint8Array>;
22
24
  vaultStore: KeyValueStore<string, string>;
23
25
  dwnStores: {
@@ -36,6 +38,7 @@ export declare class PlatformAgentTestHarness {
36
38
  dwnStateIndex: StateIndexLevel;
37
39
  dwnMessageStore: MessageStoreLevel;
38
40
  dwnResumableTaskStore: ResumableTaskStoreLevel;
41
+ secretStore?: KeyValueStore<string, string>;
39
42
  syncStore: AbstractLevel<string | Buffer | Uint8Array>;
40
43
  vaultStore: KeyValueStore<string, string>;
41
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { AgentKeyManager } from './key-manager.js';
6
6
  import type { AgentPermissionsApi } from '../permissions-api.js';
7
7
  import type { EnboxRpc } from '@enbox/dwn-clients';
8
8
  import type { IdentityVault } from './identity-vault.js';
9
+ import type { SecretStore } from '../secret-store.js';
9
10
  import type { SyncEngine } from './sync.js';
10
11
  import type { AgentDidApi, DidInterface, DidRequest, DidResponse } from '../did-api.js';
11
12
  import type { DwnInterface, DwnResponse, ProcessDwnRequest, SendDwnRequest } from './dwn.js';
@@ -148,6 +149,8 @@ export interface EnboxPlatformAgent<TKeyManager extends AgentKeyManager = AgentK
148
149
  * agent's data with the state of the distributed network.
149
150
  */
150
151
  sync: SyncEngine;
152
+ /** Vault-backed secret store for classified credentials, encrypted at rest with the vault key. */
153
+ secrets: SecretStore;
151
154
  /**
152
155
  * An instance of {@link IdentityVault}, providing secure storage and management of an Enbox Agent's
153
156
  * DID and cryptographic keys.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/types/agent.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,11 @@ export type SyncIdentityOptions = {
9
9
  */
10
10
  delegateDid?: string;
11
11
  /**
12
- * The protocols that should be synced for this identity, if an empty array is provided, all messages for all protocols will be synced.
12
+ * The protocols that should be synced for this identity.
13
+ * - `'all'` — sync all protocols (full replica).
14
+ * - `string[]` — sync only the listed protocol URIs.
13
15
  */
14
- protocols: string[];
16
+ protocols: 'all' | [string, ...string[]];
15
17
  };
16
18
  /**
17
19
  * Connectivity state of the sync engine.
@@ -297,16 +299,37 @@ export interface SyncEngine {
297
299
  * browser `online`/`offline` events fire.
298
300
  */
299
301
  readonly connectivityState: SyncConnectivityState;
302
+ /**
303
+ * Whether at least one live pull or push subscription is open.
304
+ *
305
+ * This is specifically about live-mode subscriptions — it is `false` in
306
+ * poll mode and `false` when only the integrity timer remains (e.g. after
307
+ * the last identity was removed). Callers use this to avoid calling
308
+ * `startSync()` when live subscriptions are active, which would tear
309
+ * them all down and rebuild from scratch.
310
+ */
311
+ readonly hasActiveSubscriptions: boolean;
300
312
  /**
301
313
  * Register an identity to be managed by the SyncEngine for syncing.
302
- * The options can define specific protocols that should only be synced, or a delegate DID that should be used to sign the sync messages.
314
+ * Callers must explicitly specify which protocols to sync (`'all'` for a
315
+ * full replica, or a list of protocol URIs) so that sync scope is always
316
+ * a deliberate choice rather than an invisible default.
317
+ *
318
+ * When live sync is active, the new identity is hot-added: its replication
319
+ * links are created and subscriptions opened immediately, without tearing
320
+ * down existing subscriptions for other identities. This enables
321
+ * multi-identity agents (e.g. ElectroBun desktop DWN, multi-persona dApps)
322
+ * to add identities at runtime without disrupting sync for others.
303
323
  */
304
324
  registerIdentity(params: {
305
325
  did: string;
306
- options?: SyncIdentityOptions;
326
+ options: SyncIdentityOptions;
307
327
  }): Promise<void>;
308
328
  /**
309
329
  * Unregister an identity from the SyncEngine, this will stop syncing messages for this identity.
330
+ *
331
+ * When live sync is active, the identity is hot-removed: its subscriptions
332
+ * are closed and runtime state cleaned up without affecting other identities.
310
333
  */
311
334
  unregisterIdentity(did: string): Promise<void>;
312
335
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/types/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/types/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/agent",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -21,7 +21,7 @@ export class AgentDidResolverCache extends DidResolverCacheLevel implements DidR
21
21
  private _agent?: EnboxPlatformAgent;
22
22
 
23
23
  /** A map of DIDs that are currently in-flight. This helps avoid going into an infinite loop */
24
- private _resolving: Map<string, boolean> = new Map();
24
+ private readonly _resolving: Map<string, boolean> = new Map();
25
25
 
26
26
  constructor({ agent, db, location, ttl }: DidResolverCacheLevelParams & { agent?: EnboxPlatformAgent }) {
27
27
  super ({ db, location, ttl });
@@ -55,7 +55,10 @@ export class AgentDidResolverCache extends DidResolverCacheLevel implements DidR
55
55
  // if a DID is stored in the DID Store, then we don't want to evict it from the cache until we have a successful resolution
56
56
  // upon a successful resolution, we will update both the storage and the cache with the newly resolved Document.
57
57
  const storedDid = await this.agent.did.get({ didUri: did, tenant: this.agent.agentDid.uri });
58
- if ('undefined' !== typeof storedDid) {
58
+ if ('undefined' === typeof storedDid) {
59
+ this._resolving.delete(did);
60
+ this.cache.nextTick(() => this.cache.del(did));
61
+ } else {
59
62
  try {
60
63
  const result = await this.agent.did.resolve(did);
61
64
 
@@ -82,9 +85,6 @@ export class AgentDidResolverCache extends DidResolverCacheLevel implements DidR
82
85
  } finally {
83
86
  this._resolving.delete(did);
84
87
  }
85
- } else {
86
- this._resolving.delete(did);
87
- this.cache.nextTick(() => this.cache.del(did));
88
88
  }
89
89
  }
90
90
  return cachedResult.value;
@@ -98,8 +98,8 @@ export type AnonymousProtocolsQueryParams = {
98
98
  * ```
99
99
  */
100
100
  export class AnonymousDwnApi {
101
- private _didResolver: DidUrlDereferencer;
102
- private _rpcClient: EnboxRpc;
101
+ private readonly _didResolver: DidUrlDereferencer;
102
+ private readonly _rpcClient: EnboxRpc;
103
103
 
104
104
  constructor({ didResolver, rpcClient }: AnonymousDwnApiParams) {
105
105
  this._didResolver = didResolver;
package/src/crypto-api.ts CHANGED
@@ -256,7 +256,7 @@ export class AgentCryptoApi implements CryptoApi<
256
256
  * that implements a specific cryptographic algorithm. This map is used to cache and reuse
257
257
  * instances for performance optimization, ensuring that each algorithm is instantiated only once.
258
258
  */
259
- private _algorithmInstances: Map<AlgorithmConstructor, InstanceType<typeof CryptoAlgorithm>> = new Map();
259
+ private readonly _algorithmInstances: Map<AlgorithmConstructor, InstanceType<typeof CryptoAlgorithm>> = new Map();
260
260
 
261
261
  public async bytesToPrivateKey({ algorithm: algorithmIdentifier, privateKeyBytes }:
262
262
  CryptoApiBytesToPrivateKeyParams
package/src/did-api.ts CHANGED
@@ -121,9 +121,9 @@ export class AgentDidApi<TKeyManager extends AgentKeyManager = AgentKeyManager>
121
121
  */
122
122
  private _agent?: EnboxPlatformAgent;
123
123
 
124
- private _didMethods: Map<string, DidMethodApi> = new Map();
124
+ private readonly _didMethods: Map<string, DidMethodApi> = new Map();
125
125
 
126
- private _store: AgentDataStore<PortableDid>;
126
+ private readonly _store: AgentDataStore<PortableDid>;
127
127
 
128
128
  constructor({ agent, didMethods, resolverCache, store }: DidApiParams) {
129
129
  if (!didMethods) {
@@ -303,7 +303,7 @@ export class AgentDidApi<TKeyManager extends AgentKeyManager = AgentKeyManager>
303
303
  const parsedDid = Did.parse(uri);
304
304
  // currently only supporting DHT as a publishable method.
305
305
  // TODO: abstract this into the didMethod class so that other publishable methods can be supported.
306
- if (parsedDid && parsedDid.method === 'dht') {
306
+ if (parsedDid?.method === 'dht') {
307
307
  await DidDht.publish({ did: bearerDid });
308
308
  }
309
309
  }