@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.
- package/README.md +18 -5
- package/dist/browser.mjs +11 -11
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/agent-did-resolver-cache.js +5 -5
- package/dist/esm/agent-did-resolver-cache.js.map +1 -1
- package/dist/esm/crypto-api.js.map +1 -1
- package/dist/esm/did-api.js +1 -1
- package/dist/esm/did-api.js.map +1 -1
- package/dist/esm/dwn-api.js +93 -53
- package/dist/esm/dwn-api.js.map +1 -1
- package/dist/esm/dwn-discovery-payload.js +7 -4
- package/dist/esm/dwn-discovery-payload.js.map +1 -1
- package/dist/esm/dwn-key-delivery.js +8 -3
- package/dist/esm/dwn-key-delivery.js.map +1 -1
- package/dist/esm/enbox-connect-protocol.js +34 -14
- package/dist/esm/enbox-connect-protocol.js.map +1 -1
- package/dist/esm/enbox-user-agent.js +11 -3
- package/dist/esm/enbox-user-agent.js.map +1 -1
- package/dist/esm/hd-identity-vault.js +33 -18
- package/dist/esm/hd-identity-vault.js.map +1 -1
- package/dist/esm/identity-api.js +5 -4
- package/dist/esm/identity-api.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/local-dwn.js.map +1 -1
- package/dist/esm/local-key-manager.js.map +1 -1
- package/dist/esm/permissions-api.js +9 -5
- package/dist/esm/permissions-api.js.map +1 -1
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +9 -9
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -1
- package/dist/esm/secret-store.js +106 -0
- package/dist/esm/secret-store.js.map +1 -0
- package/dist/esm/store-data.js +32 -11
- package/dist/esm/store-data.js.map +1 -1
- package/dist/esm/sync-closure-resolver.js +1 -1
- package/dist/esm/sync-closure-resolver.js.map +1 -1
- package/dist/esm/sync-engine-level.js +418 -141
- package/dist/esm/sync-engine-level.js.map +1 -1
- package/dist/esm/sync-replication-ledger.js +25 -0
- package/dist/esm/sync-replication-ledger.js.map +1 -1
- package/dist/esm/test-harness.js +32 -5
- package/dist/esm/test-harness.js.map +1 -1
- package/dist/esm/types/sync.js +9 -3
- package/dist/esm/types/sync.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/agent-did-resolver-cache.d.ts +1 -1
- package/dist/types/agent-did-resolver-cache.d.ts.map +1 -1
- package/dist/types/anonymous-dwn-api.d.ts +2 -2
- package/dist/types/anonymous-dwn-api.d.ts.map +1 -1
- package/dist/types/crypto-api.d.ts +1 -1
- package/dist/types/crypto-api.d.ts.map +1 -1
- package/dist/types/did-api.d.ts +2 -2
- package/dist/types/did-api.d.ts.map +1 -1
- package/dist/types/dwn-api.d.ts +51 -11
- package/dist/types/dwn-api.d.ts.map +1 -1
- package/dist/types/dwn-key-delivery.d.ts +4 -1
- package/dist/types/dwn-key-delivery.d.ts.map +1 -1
- package/dist/types/enbox-connect-protocol.d.ts +3 -2
- package/dist/types/enbox-connect-protocol.d.ts.map +1 -1
- package/dist/types/enbox-user-agent.d.ts +5 -1
- package/dist/types/enbox-user-agent.d.ts.map +1 -1
- package/dist/types/hd-identity-vault.d.ts +9 -2
- package/dist/types/hd-identity-vault.d.ts.map +1 -1
- package/dist/types/identity-api.d.ts +1 -1
- package/dist/types/identity-api.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/local-dwn.d.ts +3 -3
- package/dist/types/local-dwn.d.ts.map +1 -1
- package/dist/types/local-key-manager.d.ts +2 -2
- package/dist/types/local-key-manager.d.ts.map +1 -1
- package/dist/types/permissions-api.d.ts +1 -1
- package/dist/types/permissions-api.d.ts.map +1 -1
- package/dist/types/secret-store.d.ts +81 -0
- package/dist/types/secret-store.d.ts.map +1 -0
- package/dist/types/store-data.d.ts +15 -3
- package/dist/types/store-data.d.ts.map +1 -1
- package/dist/types/sync-engine-level.d.ts +52 -16
- package/dist/types/sync-engine-level.d.ts.map +1 -1
- package/dist/types/sync-replication-ledger.d.ts +10 -1
- package/dist/types/sync-replication-ledger.d.ts.map +1 -1
- package/dist/types/test-harness.d.ts +3 -0
- package/dist/types/test-harness.d.ts.map +1 -1
- package/dist/types/types/agent.d.ts +3 -0
- package/dist/types/types/agent.d.ts.map +1 -1
- package/dist/types/types/sync.d.ts +27 -4
- package/dist/types/types/sync.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agent-did-resolver-cache.ts +5 -5
- package/src/anonymous-dwn-api.ts +2 -2
- package/src/crypto-api.ts +1 -1
- package/src/did-api.ts +3 -3
- package/src/dwn-api.ts +107 -69
- package/src/dwn-discovery-payload.ts +5 -4
- package/src/dwn-key-delivery.ts +8 -2
- package/src/enbox-connect-protocol.ts +38 -21
- package/src/enbox-user-agent.ts +15 -3
- package/src/hd-identity-vault.ts +47 -21
- package/src/identity-api.ts +6 -5
- package/src/index.ts +1 -0
- package/src/local-dwn.ts +3 -3
- package/src/local-key-manager.ts +2 -2
- package/src/permissions-api.ts +12 -8
- package/src/prototyping/crypto/jose/jwe-flattened.ts +8 -8
- package/src/secret-store.ts +173 -0
- package/src/store-data.ts +40 -14
- package/src/sync-closure-resolver.ts +2 -2
- package/src/sync-engine-level.ts +423 -162
- package/src/sync-replication-ledger.ts +26 -1
- package/src/test-harness.ts +40 -5
- package/src/types/agent.ts +3 -0
- package/src/types/sync.ts +35 -7
- 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;
|
|
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
|
-
*
|
|
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":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAmB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,mBAAmB,CAAC;AAOnF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,qBAAqB,GAAG;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,WAAW,cAAc,CAAC,YAAY;IAC1C,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAEnE,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE7D,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,qBAAa,YAAY,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAE,YAAW,cAAc,CAAC,YAAY,CAAC;IAC/G,SAAS,CAAC,IAAI,SAAkB;IAEhC;;;;SAIK;IACL,SAAS,CAAC,MAAM,iCAA2E;IAE3F;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,2BAAmE;IAEnF
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAkI,MAAM,mBAAmB,CAAC;AASxL,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAoC,eAAe,EAAE,qBAAqB,EAAE,UAAU,EAAa,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AAC5P,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAevE,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;CAClD,CAAC;AAmIF,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,CAAqB;IAEpC;;OAEG;IACH,OAAO,CAAC,eAAe,CAAiB;IAExC,OAAO,CAAC,GAAG,CAA8C;
|
|
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;
|
|
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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAwB,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYtI,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../src/test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAwB,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYtI,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAgB/D,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAE1C,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,iBAAiB,CAAC;IACnC,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,yEAAyE;IACzE,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,EAAE;QACT,QAAQ,EAAE,WAAW,CAAC;QACtB,aAAa,EAAE,gBAAgB,CAAC;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAA;CACF,CAAC;AAEF,qBAAa,wBAAwB;IAC5B,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAE3C,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,iBAAiB,CAAC;IACnC,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;IACvD,UAAU,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;;OAGG;IACI,SAAS,EAAE;QAChB,QAAQ,EAAE,WAAW,CAAC;QACtB,aAAa,EAAE,gBAAgB,CAAC;QAChC,QAAQ,EAAE,WAAW,CAAC;QACtB,gDAAgD;QAChD,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;gBAEU,MAAM,EAAE,8BAA8B;IAerC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C1C;;;;;;;;OAQG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB7B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;QACjD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,cAAc,CAAC;WA8BP,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE;QACvE,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,kBAAkB,CAAC,eAAe,CAAC,CAAA;QACpE,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAkGrC,OAAO,CAAC,MAAM,CAAC,aAAa;IA2C5B,OAAO,CAAC,MAAM,CAAC,eAAe;CAwB/B"}
|
|
@@ -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
|
|
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
|
-
*
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/types/sync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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'
|
|
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;
|
package/src/anonymous-dwn-api.ts
CHANGED
|
@@ -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
|
|
306
|
+
if (parsedDid?.method === 'dht') {
|
|
307
307
|
await DidDht.publish({ did: bearerDid });
|
|
308
308
|
}
|
|
309
309
|
}
|