@real-life/trust-protocol 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +187 -78
- package/dist/ack.d.ts +84 -0
- package/dist/ack.d.ts.map +1 -0
- package/dist/ack.js +114 -0
- package/dist/ack.js.map +1 -0
- package/dist/adapters/vti-mediator.d.ts +154 -0
- package/dist/adapters/vti-mediator.d.ts.map +1 -0
- package/dist/adapters/vti-mediator.js +621 -0
- package/dist/adapters/vti-mediator.js.map +1 -0
- package/dist/anchor.d.ts +226 -0
- package/dist/anchor.d.ts.map +1 -0
- package/dist/anchor.js +347 -0
- package/dist/anchor.js.map +1 -0
- package/dist/{holder.d.ts → carrier-holder.d.ts} +1 -1
- package/dist/carrier-holder.d.ts.map +1 -0
- package/dist/{holder.js → carrier-holder.js} +5 -4
- package/dist/carrier-holder.js.map +1 -0
- package/dist/carrier-identity.js +4 -4
- package/dist/carrier-identity.js.map +1 -1
- package/dist/carrier.d.ts.map +1 -1
- package/dist/carrier.js +4 -3
- package/dist/carrier.js.map +1 -1
- package/dist/ceremony.d.ts +3 -2
- package/dist/ceremony.d.ts.map +1 -1
- package/dist/ceremony.js +16 -26
- package/dist/ceremony.js.map +1 -1
- package/dist/codec.d.ts +46 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +410 -0
- package/dist/codec.js.map +1 -0
- package/dist/continuity.d.ts +67 -0
- package/dist/continuity.d.ts.map +1 -0
- package/dist/continuity.js +110 -0
- package/dist/continuity.js.map +1 -0
- package/dist/core.d.ts +4 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js.map +1 -1
- package/dist/crypto.d.ts +23 -7
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +54 -20
- package/dist/crypto.js.map +1 -1
- package/dist/delivery.d.ts +31 -3
- package/dist/delivery.d.ts.map +1 -1
- package/dist/delivery.js +75 -28
- package/dist/delivery.js.map +1 -1
- package/dist/encounter/ceremony.d.ts +37 -0
- package/dist/encounter/ceremony.d.ts.map +1 -0
- package/dist/encounter/ceremony.js +662 -0
- package/dist/encounter/ceremony.js.map +1 -0
- package/dist/encounter.d.ts +91 -1
- package/dist/encounter.d.ts.map +1 -1
- package/dist/encounter.js +191 -12
- package/dist/encounter.js.map +1 -1
- package/dist/engine.d.ts +291 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1395 -0
- package/dist/engine.js.map +1 -0
- package/dist/entropy.d.ts +28 -0
- package/dist/entropy.d.ts.map +1 -0
- package/dist/entropy.js +96 -0
- package/dist/entropy.js.map +1 -0
- package/dist/events.d.ts +177 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/fixtures.d.ts +30 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +155 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/forge.d.ts +47 -0
- package/dist/forge.d.ts.map +1 -0
- package/dist/forge.js +20 -0
- package/dist/forge.js.map +1 -0
- package/dist/group-star.d.ts +251 -0
- package/dist/group-star.d.ts.map +1 -0
- package/dist/group-star.js +348 -0
- package/dist/group-star.js.map +1 -0
- package/dist/holder-api.d.ts +137 -0
- package/dist/holder-api.d.ts.map +1 -0
- package/dist/holder-api.js +132 -0
- package/dist/holder-api.js.map +1 -0
- package/dist/holder-state-v1.d.ts +801 -0
- package/dist/holder-state-v1.d.ts.map +1 -0
- package/dist/holder-state-v1.js +2 -0
- package/dist/holder-state-v1.js.map +1 -0
- package/dist/identity-state.d.ts +43 -0
- package/dist/identity-state.d.ts.map +1 -0
- package/dist/identity-state.js +345 -0
- package/dist/identity-state.js.map +1 -0
- package/dist/identity.d.ts +24 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +70 -11
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -29
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +36 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +22 -0
- package/dist/internal.js.map +1 -0
- package/dist/introduction/holder.d.ts +18 -0
- package/dist/introduction/holder.d.ts.map +1 -0
- package/dist/introduction/holder.js +757 -0
- package/dist/introduction/holder.js.map +1 -0
- package/dist/introduction.d.ts +101 -0
- package/dist/introduction.d.ts.map +1 -0
- package/dist/introduction.js +132 -0
- package/dist/introduction.js.map +1 -0
- package/dist/invariants.d.ts +43 -0
- package/dist/invariants.d.ts.map +1 -0
- package/dist/invariants.js +883 -0
- package/dist/invariants.js.map +1 -0
- package/dist/keys-seed.d.ts +7 -0
- package/dist/keys-seed.d.ts.map +1 -0
- package/dist/keys-seed.js +133 -0
- package/dist/keys-seed.js.map +1 -0
- package/dist/log-memory.d.ts +12 -0
- package/dist/log-memory.d.ts.map +1 -0
- package/dist/log-memory.js +101 -0
- package/dist/log-memory.js.map +1 -0
- package/dist/membership/holder.d.ts +35 -0
- package/dist/membership/holder.d.ts.map +1 -0
- package/dist/membership/holder.js +852 -0
- package/dist/membership/holder.js.map +1 -0
- package/dist/membership.d.ts +92 -0
- package/dist/membership.d.ts.map +1 -0
- package/dist/membership.js +157 -0
- package/dist/membership.js.map +1 -0
- package/dist/ports.d.ts +237 -0
- package/dist/ports.d.ts.map +1 -0
- package/dist/ports.js +2 -0
- package/dist/ports.js.map +1 -0
- package/dist/profile.d.ts +56 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +193 -0
- package/dist/profile.js.map +1 -0
- package/dist/prompts.d.ts +14 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +69 -0
- package/dist/prompts.js.map +1 -0
- package/dist/receive.d.ts +133 -0
- package/dist/receive.d.ts.map +1 -0
- package/dist/receive.js +298 -0
- package/dist/receive.js.map +1 -0
- package/dist/results.d.ts +158 -0
- package/dist/results.d.ts.map +1 -0
- package/dist/results.js +21 -0
- package/dist/results.js.map +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +42 -38
- package/dist/schemas.js.map +1 -1
- package/dist/sha256.d.ts +3 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +69 -0
- package/dist/sha256.js.map +1 -0
- package/dist/star.d.ts +31 -0
- package/dist/star.d.ts.map +1 -0
- package/dist/star.js +56 -0
- package/dist/star.js.map +1 -0
- package/dist/state-builder.d.ts +42 -0
- package/dist/state-builder.d.ts.map +1 -0
- package/dist/state-builder.js +100 -0
- package/dist/state-builder.js.map +1 -0
- package/dist/state.d.ts +853 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +36 -0
- package/dist/state.js.map +1 -0
- package/dist/store-contract.d.ts +11 -0
- package/dist/store-contract.d.ts.map +1 -0
- package/dist/store-contract.js +189 -0
- package/dist/store-contract.js.map +1 -0
- package/dist/store-memory.d.ts +8 -0
- package/dist/store-memory.d.ts.map +1 -0
- package/dist/store-memory.js +17 -0
- package/dist/store-memory.js.map +1 -0
- package/dist/testing.d.ts +22 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +21 -0
- package/dist/testing.js.map +1 -0
- package/dist/trust/continuity.d.ts +71 -0
- package/dist/trust/continuity.d.ts.map +1 -0
- package/dist/trust/continuity.js +1216 -0
- package/dist/trust/continuity.js.map +1 -0
- package/dist/trust/duties.d.ts +67 -0
- package/dist/trust/duties.d.ts.map +1 -0
- package/dist/trust/duties.js +179 -0
- package/dist/trust/duties.js.map +1 -0
- package/dist/trust/entries.d.ts +139 -0
- package/dist/trust/entries.d.ts.map +1 -0
- package/dist/trust/entries.js +694 -0
- package/dist/trust/entries.js.map +1 -0
- package/dist/trust/group-star.d.ts +43 -0
- package/dist/trust/group-star.d.ts.map +1 -0
- package/dist/trust/group-star.js +188 -0
- package/dist/trust/group-star.js.map +1 -0
- package/dist/trust/mapping.d.ts +56 -0
- package/dist/trust/mapping.d.ts.map +1 -0
- package/dist/trust/mapping.js +584 -0
- package/dist/trust/mapping.js.map +1 -0
- package/dist/trust/profile.d.ts +25 -0
- package/dist/trust/profile.d.ts.map +1 -0
- package/dist/trust/profile.js +249 -0
- package/dist/trust/profile.js.map +1 -0
- package/dist/trust/star.d.ts +208 -0
- package/dist/trust/star.d.ts.map +1 -0
- package/dist/trust/star.js +588 -0
- package/dist/trust/star.js.map +1 -0
- package/dist/trust/state.d.ts +83 -0
- package/dist/trust/state.d.ts.map +1 -0
- package/dist/trust/state.js +154 -0
- package/dist/trust/state.js.map +1 -0
- package/dist/util-freeze.d.ts +3 -0
- package/dist/util-freeze.d.ts.map +1 -0
- package/dist/util-freeze.js +11 -0
- package/dist/util-freeze.js.map +1 -0
- package/dist/views.d.ts +147 -0
- package/dist/views.d.ts.map +1 -0
- package/dist/views.js +268 -0
- package/dist/views.js.map +1 -0
- package/dist/visibility.d.ts +5 -5
- package/dist/visibility.d.ts.map +1 -1
- package/dist/visibility.js +22 -28
- package/dist/visibility.js.map +1 -1
- package/dist/wire.d.ts +178 -84
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js.map +1 -1
- package/package.json +56 -10
- package/schemas/holder-state-v1.schema.json +3880 -0
- package/dist/holder.d.ts.map +0 -1
- package/dist/holder.js.map +0 -1
- package/dist/probe/acks.d.ts +0 -27
- package/dist/probe/acks.d.ts.map +0 -1
- package/dist/probe/acks.js +0 -152
- package/dist/probe/acks.js.map +0 -1
- package/dist/probe/continuity.d.ts +0 -20
- package/dist/probe/continuity.d.ts.map +0 -1
- package/dist/probe/continuity.js +0 -805
- package/dist/probe/continuity.js.map +0 -1
- package/dist/probe/deps.d.ts +0 -61
- package/dist/probe/deps.d.ts.map +0 -1
- package/dist/probe/deps.js +0 -54
- package/dist/probe/deps.js.map +0 -1
- package/dist/probe/encounter.d.ts +0 -26
- package/dist/probe/encounter.d.ts.map +0 -1
- package/dist/probe/encounter.js +0 -938
- package/dist/probe/encounter.js.map +0 -1
- package/dist/probe/introduce.d.ts +0 -62
- package/dist/probe/introduce.d.ts.map +0 -1
- package/dist/probe/introduce.js +0 -306
- package/dist/probe/introduce.js.map +0 -1
- package/dist/probe/membership.d.ts +0 -96
- package/dist/probe/membership.d.ts.map +0 -1
- package/dist/probe/membership.js +0 -467
- package/dist/probe/membership.js.map +0 -1
- package/dist/probe/trust.d.ts +0 -156
- package/dist/probe/trust.d.ts.map +0 -1
- package/dist/probe/trust.js +0 -1233
- package/dist/probe/trust.js.map +0 -1
- package/dist/probe.d.ts +0 -7
- package/dist/probe.d.ts.map +0 -1
- package/dist/probe.js +0 -42
- package/dist/probe.js.map +0 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type { CarrierPrincipal, CarrierScopedIdentity } from '../carrier-identity.js';
|
|
2
|
+
import type { DeliveryReport, Outbound, ReceiverRefusalCode, SubmissionRef } from '../ports.js';
|
|
3
|
+
export type { ReceiverRefusalCode } from '../ports.js';
|
|
4
|
+
export declare const DECLARED: {
|
|
5
|
+
readonly giveUpHorizonMs: number;
|
|
6
|
+
readonly statusHorizonMs: 60000;
|
|
7
|
+
readonly queueFloorCount: 64;
|
|
8
|
+
readonly queueFloorBytes: 1048576;
|
|
9
|
+
readonly maxQueueBytes: 16777216;
|
|
10
|
+
readonly duplicateWindowMs: number;
|
|
11
|
+
};
|
|
12
|
+
export type WireErrorKind = 'unreachable' | 'refused-retriable' | 'refused-admission' | 'oversize';
|
|
13
|
+
export declare class WireError extends Error {
|
|
14
|
+
kind: WireErrorKind;
|
|
15
|
+
constructor(kind: WireErrorKind, message?: string);
|
|
16
|
+
}
|
|
17
|
+
export interface MediatorWire {
|
|
18
|
+
authChallenge(did: string): Promise<{
|
|
19
|
+
challenge: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
}>;
|
|
22
|
+
authenticate(answer: {
|
|
23
|
+
did: string;
|
|
24
|
+
challenge: string;
|
|
25
|
+
sessionId: string;
|
|
26
|
+
}): Promise<TokenSet>;
|
|
27
|
+
refresh(refreshToken: string): Promise<TokenSet>;
|
|
28
|
+
keylistUpdate(accessToken: string, rkids: string[]): Promise<void>;
|
|
29
|
+
deposit(accessToken: string, bytes: Uint8Array, egressDid: string): Promise<void>;
|
|
30
|
+
ackReceived(accessToken: string, queueIds: string[]): Promise<void>;
|
|
31
|
+
onDeliver(cb: (bytes: Uint8Array) => Promise<void>): void;
|
|
32
|
+
/** Optional truthful connectivity signal; absent means unknown. */
|
|
33
|
+
offline?(): boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface TokenSet {
|
|
36
|
+
accessToken: string;
|
|
37
|
+
accessExpiresAt: number;
|
|
38
|
+
refreshToken: string;
|
|
39
|
+
refreshExpiresAt: number;
|
|
40
|
+
}
|
|
41
|
+
export type SubmissionState = {
|
|
42
|
+
state: 'awaiting-transport';
|
|
43
|
+
reason: 'offline' | 'transport-unreachable' | 'carrier-refused-retriable';
|
|
44
|
+
} | {
|
|
45
|
+
state: 'accepted';
|
|
46
|
+
} | {
|
|
47
|
+
state: 'delivered';
|
|
48
|
+
late: boolean;
|
|
49
|
+
} | {
|
|
50
|
+
state: 'failed';
|
|
51
|
+
reason: 'unroutable' | 'oversize' | 'expired-by-adapter-policy';
|
|
52
|
+
} | {
|
|
53
|
+
state: 'failed';
|
|
54
|
+
reason: 'rejected-by-receiver';
|
|
55
|
+
code: ReceiverRefusalCode;
|
|
56
|
+
};
|
|
57
|
+
/** The ports' DeliveryReport for a document `digest` in adapter state `st`
|
|
58
|
+
* (Delivery §6.1): one-to-one, `late` and the refusal code carried over. */
|
|
59
|
+
export declare function deliveryReportOf(digest: string, st: SubmissionState): DeliveryReport;
|
|
60
|
+
export interface CollectedItem {
|
|
61
|
+
bytes: Uint8Array;
|
|
62
|
+
queueId: string;
|
|
63
|
+
}
|
|
64
|
+
export interface Collection {
|
|
65
|
+
id: string;
|
|
66
|
+
items: CollectedItem[];
|
|
67
|
+
}
|
|
68
|
+
/** Ack state for the host to persist (profile §4). Invariant: every
|
|
69
|
+
* pending id names a concluded entry; violations are refused at
|
|
70
|
+
* construction (fail-closed). */
|
|
71
|
+
export interface AckState {
|
|
72
|
+
concluded: Array<{
|
|
73
|
+
queueId: string;
|
|
74
|
+
concludedAt: number;
|
|
75
|
+
}>;
|
|
76
|
+
pending: string[];
|
|
77
|
+
}
|
|
78
|
+
export declare class MediatorCarrierAdapter {
|
|
79
|
+
#private;
|
|
80
|
+
get principal(): string;
|
|
81
|
+
get connectionDid(): string;
|
|
82
|
+
get egressDid(): string;
|
|
83
|
+
/** The only way to build an adapter: the trio is DERIVED here from
|
|
84
|
+
* one root, one carrier, one nonce — so principal, connection DID
|
|
85
|
+
* and egress identity cannot come from different relationships
|
|
86
|
+
* (R7-B2: the coupling is enforced by construction, not by
|
|
87
|
+
* inspecting caller-supplied identities). */
|
|
88
|
+
static create(rootIkm: Uint8Array, carrier: string, nonce: Uint8Array, wire: MediatorWire, restored?: AckState, restoredAt?: number): Promise<MediatorCarrierAdapter>;
|
|
89
|
+
constructor(key: symbol, principal: CarrierPrincipal, connection: CarrierScopedIdentity, egress: CarrierScopedIdentity, wire: MediatorWire, restored?: AckState, restoredAt?: number);
|
|
90
|
+
/** Records the desired keylist and returns; synchronization runs
|
|
91
|
+
* as a tracked background task and advance retries it until it
|
|
92
|
+
* lands (review-4 B1). */
|
|
93
|
+
register(rkids: string[], rawNow: number): void;
|
|
94
|
+
get keylistSynced(): boolean;
|
|
95
|
+
/** Returns the submission id synchronously. Before the first
|
|
96
|
+
* honest report exists, status() returns null — §6.1's own
|
|
97
|
+
* pre-report window, represented as absence, not as a value. */
|
|
98
|
+
submit(envelopeBytes: Uint8Array, rawNow: number): string;
|
|
99
|
+
/** Files an Outbound (its envelope as JCS bytes) and returns the
|
|
100
|
+
* SubmissionRef the holder's reports are keyed by: submission id ↔
|
|
101
|
+
* document digest (note §4.3). */
|
|
102
|
+
submitOutbound(outbound: Pick<Outbound, 'digest' | 'envelope'>, rawNow: number): SubmissionRef;
|
|
103
|
+
/** The current state as the ports' DeliveryReport for holder.report(),
|
|
104
|
+
* or null while no honest report exists (and for an unknown id). A
|
|
105
|
+
* submission filed without a digest (submit) has no report form. */
|
|
106
|
+
report(id: string): DeliveryReport | null;
|
|
107
|
+
has(id: string): boolean;
|
|
108
|
+
/** Host teardown aid, NOT a port operation (profile §6): awaits
|
|
109
|
+
* the in-flight background tasks so a host can drain before
|
|
110
|
+
* persisting ackState. On a hanging wire it waits as long as the
|
|
111
|
+
* wire does — a host bounds it externally (Promise.race) exactly
|
|
112
|
+
* because this library holds no clock of its own. */
|
|
113
|
+
settle(): Promise<void>;
|
|
114
|
+
/** The §6.1 report, or null while none exists yet (has()
|
|
115
|
+
* distinguishes an unknown id). status is a PORT: after close it
|
|
116
|
+
* refuses like every other port operation (R5-B3).
|
|
117
|
+
*
|
|
118
|
+
* The pre-transport report is an HONEST SNAPSHOT, derived at the
|
|
119
|
+
* moment of observation by one precedence order (Option B of the
|
|
120
|
+
* round-14 halt) — never a stored patchwork:
|
|
121
|
+
* (a) the wire knows itself offline → offline
|
|
122
|
+
* (b) an attempt is overdue → transport-unreachable
|
|
123
|
+
* (c) the last completed attempt's kind → its report
|
|
124
|
+
* (d) otherwise → no report yet (null)
|
|
125
|
+
* Terminal states and `accepted` are stored and stand. */
|
|
126
|
+
status(id: string): SubmissionState | null;
|
|
127
|
+
acknowledged(id: string): void;
|
|
128
|
+
/** Refusals act on live submissions only (§6.1 knows exactly one
|
|
129
|
+
* late correction — the valid ack). The code set is closed and
|
|
130
|
+
* TERMINAL: retryable counterpart conditions (unavailable,
|
|
131
|
+
* internalError) are transport outcomes, never receiver verdicts
|
|
132
|
+
* — they have no entry here, and an unknown code is refused
|
|
133
|
+
* fail-closed rather than minted into a verdict (R6-B2). */
|
|
134
|
+
receiverRefused(id: string, code: ReceiverRefusalCode): void;
|
|
135
|
+
drainTransitions(): Array<{
|
|
136
|
+
id: string;
|
|
137
|
+
to: 'delivered';
|
|
138
|
+
}>;
|
|
139
|
+
collect(rawNow: number): Collection;
|
|
140
|
+
conclude(collection: {
|
|
141
|
+
id: string;
|
|
142
|
+
}, rawNow: number): void;
|
|
143
|
+
ackState(): AckState;
|
|
144
|
+
advance(rawNow: number): void;
|
|
145
|
+
/** §5a.10 lifecycle boundary: after close, every state port is
|
|
146
|
+
* inert — port operations refuse, inbound reports (acknowledged,
|
|
147
|
+
* receiverRefused) are no-ops, late wire resolutions mutate
|
|
148
|
+
* nothing. Only ackState() stays readable for the host's final
|
|
149
|
+
* persist. */
|
|
150
|
+
close(): void;
|
|
151
|
+
get closed(): boolean;
|
|
152
|
+
}
|
|
153
|
+
export declare const queueIdOf: (bytes: Uint8Array) => Promise<string>;
|
|
154
|
+
//# sourceMappingURL=vti-mediator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vti-mediator.d.ts","sourceRoot":"","sources":["../../src/adapters/vti-mediator.ts"],"names":[],"mappings":"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"}
|