@econ-v1/ports 7.6.28 → 7.6.35
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/dist/gossip-card-verifier.d.ts +16 -0
- package/dist/gossip-card-verifier.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/network.d.ts +17 -3
- package/dist/network.d.ts.map +1 -1
- package/dist/repositories/gossip-card-repository.d.ts +19 -0
- package/dist/repositories/gossip-card-repository.d.ts.map +1 -0
- package/dist/storage.d.ts +2 -1
- package/dist/storage.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/gossip-card-verifier.js +20 -0
- package/src/index.js +6 -0
- package/src/network.js +4 -2
- package/src/repositories/gossip-card-repository.js +8 -0
- package/src/storage.js +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** @param {unknown} value @returns {value is SignedCard} */
|
|
2
|
+
export function isSignedCard(value: unknown): value is SignedCard;
|
|
3
|
+
export type JsonValue = import("./repositories/repository-mutation.js").RepositoryJsonValue;
|
|
4
|
+
export type SignedCard = {
|
|
5
|
+
readonly node_id: string;
|
|
6
|
+
readonly metadata: {
|
|
7
|
+
readonly timestamp: number;
|
|
8
|
+
readonly [key: string]: JsonValue;
|
|
9
|
+
};
|
|
10
|
+
readonly sig: string;
|
|
11
|
+
readonly sig_scheme: "ln-v1";
|
|
12
|
+
};
|
|
13
|
+
export type GossipCardVerifier = {
|
|
14
|
+
verify(card: unknown): Promise<boolean>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=gossip-card-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gossip-card-verifier.d.ts","sourceRoot":"","sources":["../src/gossip-card-verifier.js"],"names":[],"mappings":"AAYA,4DAA4D;AAC5D,oCADY,OAAO,GAAkB,KAAK,IAAI,UAAU,CAOvD;wBAlBa,OAAO,uCAAuC,EAAE,mBAAmB;yBACnE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAAE;iCACtK;IAAE,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { CAPABILITY_INVOKE_OPERATION } from "./network.js";
|
|
|
7
7
|
export { DEFAULT_CLIENT_NODE_ORIGIN } from "./network/client-node-origin.js";
|
|
8
8
|
export { OutboxIdempotencyConflictError } from "./repositories/outbox.js";
|
|
9
9
|
export { REVISIONED_REPOSITORY_DOMAINS } from "./repositories/revisioned-repository.js";
|
|
10
|
+
export { isSignedCard } from "./gossip-card-verifier.js";
|
|
10
11
|
export type ClockPort = import("./clock.js").ClockPort;
|
|
11
12
|
export type ClockWake = import("./clock.js").ClockWake;
|
|
12
13
|
export type DelayPort = import("./clock.js").DelayPort;
|
|
@@ -258,6 +259,10 @@ export type CaptureBatch = import("./devtools.js").CaptureBatch;
|
|
|
258
259
|
export type DevtoolsCapturePort = import("./devtools.js").DevtoolsCapturePort;
|
|
259
260
|
export type DevtoolsScriptContext = import("./devtools.js").DevtoolsScriptContext;
|
|
260
261
|
export type DevtoolsScriptHostPort = import("./devtools.js").DevtoolsScriptHostPort;
|
|
262
|
+
export type SignedCard = import("./gossip-card-verifier.js").SignedCard;
|
|
263
|
+
export type GossipCardVerifier = import("./gossip-card-verifier.js").GossipCardVerifier;
|
|
264
|
+
export type GossipCardRepository = import("./repositories/gossip-card-repository.js").GossipCardRepository;
|
|
265
|
+
export type TransportRelayMember = import("./network.js").TransportRelayMember;
|
|
261
266
|
export { StorageOperationError, RESET_LOCAL_STORAGE_CONFIRMATION, STORAGE_RECOVERY_MESSAGES } from "./storage.js";
|
|
262
267
|
export { MAX_CLOSE_REASON_BYTES, MAX_DTLS_FINGERPRINT_BYTES, MAX_ICE_CANDIDATE_BYTES, MAX_ICE_CANDIDATES_PER_OFFER, MAX_OFFER_NONCE_BYTES, MAX_SDP_BYTES, MAX_SDP_MID_BYTES, MAX_WEBRTC_SIGNAL_MESSAGE_BYTES, MIN_OFFER_NONCE_BYTES, WEBRTC_SIGNAL_VERSION } from "./network/webrtc-signaling.js";
|
|
263
268
|
export { isWalletAuthoritativeSnapshot, isWalletCommandResult, isWalletSnapshotValue } from "./repositories/wallet-mirror-repository.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
package/dist/network.d.ts
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
/** @typedef {{ readonly algorithm: "sha-256", readonly current: string, readonly next: string }} WebTransportCertificateHashes */
|
|
8
8
|
/** @typedef {HomeNodeCandidate & { readonly certificateHashes?: WebTransportCertificateHashes, readonly path: "lan-webtransport" }} WebTransportHomeNodeCandidate */
|
|
9
9
|
/** @typedef {HttpHomeNodeCandidate | WebTransportHomeNodeCandidate} DirectHomeNodeCandidate */
|
|
10
|
-
/** @typedef {"no-network" | "node-unreachable" | "session-required"} TransportOfflineReason */
|
|
11
|
-
/** @typedef {{ readonly
|
|
10
|
+
/** @typedef {"no-network" | "node-unreachable" | "session-required" | "transport-key-required"} TransportOfflineReason */
|
|
11
|
+
/** @typedef {{ readonly nodeId: string, readonly name: string }} TransportRelayMember */
|
|
12
|
+
/** @typedef {{ readonly status: "idle" | "trying" | "failed" | "direct", readonly reason?: string, readonly retryAt?: number }} TransportPunch */
|
|
13
|
+
/** @typedef {{ readonly changedAt: string, readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct", readonly status: "connected", readonly relayMember?: TransportRelayMember, readonly punch?: TransportPunch, readonly rttMs?: number } | { readonly attempt: number, readonly changedAt: string, readonly path: "offline", readonly status: "connecting" } | { readonly attempt: number, readonly changedAt: string, readonly nextRetryAt: string, readonly path: "offline", readonly status: "reconnecting" } | { readonly changedAt: string, readonly path: "offline", readonly reason?: TransportOfflineReason, readonly status: "offline" }} TransportState */
|
|
12
14
|
/** @typedef {{ readonly headers?: Readonly<Record<string, string>>, readonly operation: string, readonly payload: unknown, readonly responseType?: "blob" | "json" }} HomeNodeRequest */
|
|
13
15
|
/** @typedef {{ readonly cursor?: string, readonly domain: string }} DeltaRequest */
|
|
14
16
|
/** @typedef {{ readonly aborted: boolean }} CancellationSignal */
|
|
@@ -32,11 +34,23 @@ export type WebTransportHomeNodeCandidate = HomeNodeCandidate & {
|
|
|
32
34
|
readonly path: "lan-webtransport";
|
|
33
35
|
};
|
|
34
36
|
export type DirectHomeNodeCandidate = HttpHomeNodeCandidate | WebTransportHomeNodeCandidate;
|
|
35
|
-
export type TransportOfflineReason = "no-network" | "node-unreachable" | "session-required";
|
|
37
|
+
export type TransportOfflineReason = "no-network" | "node-unreachable" | "session-required" | "transport-key-required";
|
|
38
|
+
export type TransportRelayMember = {
|
|
39
|
+
readonly nodeId: string;
|
|
40
|
+
readonly name: string;
|
|
41
|
+
};
|
|
42
|
+
export type TransportPunch = {
|
|
43
|
+
readonly status: "idle" | "trying" | "failed" | "direct";
|
|
44
|
+
readonly reason?: string;
|
|
45
|
+
readonly retryAt?: number;
|
|
46
|
+
};
|
|
36
47
|
export type TransportState = {
|
|
37
48
|
readonly changedAt: string;
|
|
38
49
|
readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct";
|
|
39
50
|
readonly status: "connected";
|
|
51
|
+
readonly relayMember?: TransportRelayMember;
|
|
52
|
+
readonly punch?: TransportPunch;
|
|
53
|
+
readonly rttMs?: number;
|
|
40
54
|
} | {
|
|
41
55
|
readonly attempt: number;
|
|
42
56
|
readonly changedAt: string;
|
package/dist/network.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.js"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,yGAAyG;AAEzG,6HAA6H;AAC7H,+DAA+D;AAC/D,sFAAsF;AACtF,wIAAwI;AACxI,kIAAkI;AAClI,qKAAqK;AACrK,+FAA+F;AAC/F,+
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type SignedCard = import("../gossip-card-verifier.js").SignedCard;
|
|
2
|
+
/**
|
|
3
|
+
* A repository is bound to one verified device/home identity scope. Upsert is
|
|
4
|
+
* atomic: only a strictly newer signed timestamp replaces an existing card.
|
|
5
|
+
*/
|
|
6
|
+
export type GossipCardRepository = {
|
|
7
|
+
list(): Promise<readonly SignedCard[]>;
|
|
8
|
+
upsert(card: SignedCard): Promise<boolean>;
|
|
9
|
+
};
|
|
10
|
+
export type GossipCardRepositoryEvent = {
|
|
11
|
+
readonly type: "domain.entity-changed";
|
|
12
|
+
readonly occurredAt: string;
|
|
13
|
+
readonly payload: {
|
|
14
|
+
readonly action: "updated";
|
|
15
|
+
readonly entityId: string;
|
|
16
|
+
readonly entityType: "gossip-card";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=gossip-card-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gossip-card-repository.d.ts","sourceRoot":"","sources":["../../src/repositories/gossip-card-repository.js"],"names":[],"mappings":"yBACc,OAAO,4BAA4B,EAAE,UAAU;;;;;mCAGhD;IAAE,IAAI,IAAI,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE;wCAErF;IAAE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;KAAE,CAAA;CAAE"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -125,6 +125,7 @@ export type EncryptedStorageDiagnostic = {
|
|
|
125
125
|
};
|
|
126
126
|
};
|
|
127
127
|
export type IdentityScopedStorageRepositoryPort = {
|
|
128
|
+
readonly gossipCards?: import("./repositories/gossip-card-repository.js").GossipCardRepository;
|
|
128
129
|
readonly offlineProjections: OfflineProjectionRepository;
|
|
129
130
|
readonly offlineStages: OfflineStageRepository;
|
|
130
131
|
readonly outbox: OutboxRepository;
|
|
@@ -150,7 +151,7 @@ export type StorageDatabasePort = {
|
|
|
150
151
|
scopedRepositories(scope: OfflineIdentityScope): IdentityScopedStorageRepositoryPort;
|
|
151
152
|
subscribeRecoveryState(listener: (state: StorageRecoveryState) => void): () => void;
|
|
152
153
|
};
|
|
153
|
-
export type StorageRepositoryEvent = OutboxRepositoryEvent | RepositoryEvent | RevisionedRepositoryEvent | SettingsRepositoryEvent | SyncLedgerRepositoryEvent;
|
|
154
|
+
export type StorageRepositoryEvent = import("./repositories/gossip-card-repository.js").GossipCardRepositoryEvent | OutboxRepositoryEvent | RepositoryEvent | RevisionedRepositoryEvent | SettingsRepositoryEvent | SyncLedgerRepositoryEvent;
|
|
154
155
|
export type StorageRepositoryPort = {
|
|
155
156
|
readonly conversations?: ConversationRepository;
|
|
156
157
|
readonly events: import("./repositories/durable-event.js").DurableRepositoryEventStore<StorageRepositoryEvent>;
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/** @typedef {import('./repositories/repository-mutation.js').RepositoryJsonValue} JsonValue */
|
|
3
|
+
/** @typedef {{ readonly node_id: string, readonly metadata: { readonly timestamp: number, readonly [key: string]: JsonValue }, readonly sig: string, readonly sig_scheme: 'ln-v1' }} SignedCard */
|
|
4
|
+
/** @typedef {{ verify(card: unknown): Promise<boolean> }} GossipCardVerifier */
|
|
5
|
+
|
|
6
|
+
/** @param {unknown} value @returns {value is JsonValue} */
|
|
7
|
+
function isJson(value) {
|
|
8
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean') return true;
|
|
9
|
+
if (typeof value === 'number') return Number.isFinite(value);
|
|
10
|
+
if (Array.isArray(value)) return value.every(isJson);
|
|
11
|
+
return typeof value === 'object' && Object.values(value).every(isJson);
|
|
12
|
+
}
|
|
13
|
+
/** @param {unknown} value @returns {value is SignedCard} */
|
|
14
|
+
export function isSignedCard(value) {
|
|
15
|
+
if (value === null || typeof value !== 'object') return false;
|
|
16
|
+
if (!('node_id' in value) || typeof value.node_id !== 'string' || !/^(02|03)[0-9a-f]{64}$/.test(value.node_id)) return false;
|
|
17
|
+
if (!('sig' in value) || typeof value.sig !== 'string' || !('sig_scheme' in value) || value.sig_scheme !== 'ln-v1') return false;
|
|
18
|
+
if (!('metadata' in value) || value.metadata === null || typeof value.metadata !== 'object' || Array.isArray(value.metadata)) return false;
|
|
19
|
+
return 'timestamp' in value.metadata && typeof value.metadata.timestamp === 'number' && Number.isSafeInteger(value.metadata.timestamp) && value.metadata.timestamp >= 0 && isJson(value.metadata);
|
|
20
|
+
}
|
package/src/index.js
CHANGED
|
@@ -284,3 +284,9 @@ export {
|
|
|
284
284
|
/** @typedef {import("./devtools.js").DevtoolsCapturePort} DevtoolsCapturePort */
|
|
285
285
|
/** @typedef {import("./devtools.js").DevtoolsScriptContext} DevtoolsScriptContext */
|
|
286
286
|
/** @typedef {import("./devtools.js").DevtoolsScriptHostPort} DevtoolsScriptHostPort */
|
|
287
|
+
/** @typedef {import('./gossip-card-verifier.js').SignedCard} SignedCard */
|
|
288
|
+
/** @typedef {import('./gossip-card-verifier.js').GossipCardVerifier} GossipCardVerifier */
|
|
289
|
+
/** @typedef {import('./repositories/gossip-card-repository.js').GossipCardRepository} GossipCardRepository */
|
|
290
|
+
export { isSignedCard } from './gossip-card-verifier.js';
|
|
291
|
+
|
|
292
|
+
/** @typedef {import("./network.js").TransportRelayMember} TransportRelayMember */
|
package/src/network.js
CHANGED
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
/** @typedef {{ readonly algorithm: "sha-256", readonly current: string, readonly next: string }} WebTransportCertificateHashes */
|
|
11
11
|
/** @typedef {HomeNodeCandidate & { readonly certificateHashes?: WebTransportCertificateHashes, readonly path: "lan-webtransport" }} WebTransportHomeNodeCandidate */
|
|
12
12
|
/** @typedef {HttpHomeNodeCandidate | WebTransportHomeNodeCandidate} DirectHomeNodeCandidate */
|
|
13
|
-
/** @typedef {"no-network" | "node-unreachable" | "session-required"} TransportOfflineReason */
|
|
14
|
-
/** @typedef {{ readonly
|
|
13
|
+
/** @typedef {"no-network" | "node-unreachable" | "session-required" | "transport-key-required"} TransportOfflineReason */
|
|
14
|
+
/** @typedef {{ readonly nodeId: string, readonly name: string }} TransportRelayMember */
|
|
15
|
+
/** @typedef {{ readonly status: "idle" | "trying" | "failed" | "direct", readonly reason?: string, readonly retryAt?: number }} TransportPunch */
|
|
16
|
+
/** @typedef {{ readonly changedAt: string, readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct", readonly status: "connected", readonly relayMember?: TransportRelayMember, readonly punch?: TransportPunch, readonly rttMs?: number } | { readonly attempt: number, readonly changedAt: string, readonly path: "offline", readonly status: "connecting" } | { readonly attempt: number, readonly changedAt: string, readonly nextRetryAt: string, readonly path: "offline", readonly status: "reconnecting" } | { readonly changedAt: string, readonly path: "offline", readonly reason?: TransportOfflineReason, readonly status: "offline" }} TransportState */
|
|
15
17
|
/** @typedef {{ readonly headers?: Readonly<Record<string, string>>, readonly operation: string, readonly payload: unknown, readonly responseType?: "blob" | "json" }} HomeNodeRequest */
|
|
16
18
|
/** @typedef {{ readonly cursor?: string, readonly domain: string }} DeltaRequest */
|
|
17
19
|
/** @typedef {{ readonly aborted: boolean }} CancellationSignal */
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/** @typedef {import('../gossip-card-verifier.js').SignedCard} SignedCard */
|
|
3
|
+
/** A repository is bound to one verified device/home identity scope. Upsert is
|
|
4
|
+
* atomic: only a strictly newer signed timestamp replaces an existing card.
|
|
5
|
+
* @typedef {{ list(): Promise<readonly SignedCard[]>, upsert(card: SignedCard): Promise<boolean> }} GossipCardRepository
|
|
6
|
+
*/
|
|
7
|
+
/** @typedef {{ readonly type: 'domain.entity-changed', readonly occurredAt: string, readonly payload: { readonly action: 'updated', readonly entityId: string, readonly entityType: 'gossip-card' } }} GossipCardRepositoryEvent */
|
|
8
|
+
export {};
|
package/src/storage.js
CHANGED
|
@@ -69,13 +69,13 @@ export class StorageOperationError extends Error {
|
|
|
69
69
|
/** @typedef {{ readonly actions: { readonly exportDiagnostic: boolean, readonly reset: true, readonly retry: true }, readonly code: StorageRecoveryCode, readonly message: string, readonly schemaVersion: number, readonly storageGeneration?: number, readonly status: "recovery-required" }} StorageRecoveryRequiredState */
|
|
70
70
|
/** @typedef {StorageReadyState | StorageRecoveryRequiredState | StorageStartingState} StorageRecoveryState */
|
|
71
71
|
/** @typedef {{ readonly algorithm: "AES-GCM", readonly ciphertextBase64: string, readonly createdAt: string, readonly format: "node-client-sqlite-diagnostic-v1", readonly ivBase64: string, readonly kdf: { readonly hash: "SHA-256", readonly iterations: 310000, readonly name: "PBKDF2", readonly saltBase64: string } }} EncryptedStorageDiagnostic */
|
|
72
|
-
/** @typedef {{ readonly offlineProjections: OfflineProjectionRepository, readonly offlineStages: OfflineStageRepository, readonly outbox: OutboxRepository, readonly syncLedger: SyncLedgerRepository }} IdentityScopedStorageRepositoryPort */
|
|
72
|
+
/** @typedef {{ readonly gossipCards?: import("./repositories/gossip-card-repository.js").GossipCardRepository, readonly offlineProjections: OfflineProjectionRepository, readonly offlineStages: OfflineStageRepository, readonly outbox: OutboxRepository, readonly syncLedger: SyncLedgerRepository }} IdentityScopedStorageRepositoryPort */
|
|
73
73
|
/** Scope reactivation is an admission operation for a verified active identity after
|
|
74
74
|
* retiring writers drain. An invalidated scope's leftover rows and tombstone are removed
|
|
75
75
|
* atomically before it returns true; a scope without a tombstone keeps its data.
|
|
76
76
|
* The historical method name remains for worker-protocol compatibility.
|
|
77
77
|
*/
|
|
78
78
|
/** @typedef {{ readonly repositories: StorageRepositoryPort, clearActiveIdentityProjections(): Promise<void>, clearScope(scope: OfflineIdentityScope): Promise<void>, close(): Promise<void>, exportEncryptedDiagnostic(options: { readonly passphrase: string }): Promise<EncryptedStorageDiagnostic>, initialize(): Promise<StorageRecoveryState>, reactivateEmptyScope(scope: OfflineIdentityScope): Promise<boolean>, referencedAssetRevisions(): Promise<readonly string[]>, refreshIdentityMetadata(): Promise<void>, recoveryState(): Promise<StorageRecoveryState>, reset(options: { readonly confirmation: string }): Promise<StorageRecoveryState>, retry(): Promise<StorageRecoveryState>, scopedRepositories(scope: OfflineIdentityScope): IdentityScopedStorageRepositoryPort, subscribeRecoveryState(listener: (state: StorageRecoveryState) => void): () => void }} StorageDatabasePort */
|
|
79
|
-
/** @typedef {OutboxRepositoryEvent | RepositoryEvent | RevisionedRepositoryEvent | SettingsRepositoryEvent | SyncLedgerRepositoryEvent} StorageRepositoryEvent */
|
|
79
|
+
/** @typedef {import("./repositories/gossip-card-repository.js").GossipCardRepositoryEvent | OutboxRepositoryEvent | RepositoryEvent | RevisionedRepositoryEvent | SettingsRepositoryEvent | SyncLedgerRepositoryEvent} StorageRepositoryEvent */
|
|
80
80
|
/** @typedef {{ readonly conversations?: ConversationRepository, readonly events: import("./repositories/durable-event.js").DurableRepositoryEventStore<StorageRepositoryEvent>, readonly notifications?: NotificationRepository, readonly agents?: AgentRepository, readonly graphs?: GraphRepository, readonly outbox: OutboxRepository, readonly revisionedSettings?: RevisionedSettingsRepository, readonly wallet?: WalletMirrorRepository, readonly settings: SettingsRepository, readonly syncLedger: SyncLedgerRepository }} StorageRepositoryPort */
|
|
81
81
|
/** @typedef {StorageDatabasePort & { readonly stages: StageRegistryPort }} StoragePort */
|