@real-life/trust-protocol 0.1.0 → 0.1.1

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/wire.d.ts ADDED
@@ -0,0 +1,573 @@
1
+ import type { Json } from './core.js';
2
+ /** schemas/access-material.schema.json — RLTP Access key material (Access Layer 0.24 sections 7.1 and 9.5) */
3
+ export type AccessMaterial = ({
4
+ v: "rltp-access-material/0.24" | "rltp-access-keydist/0.24";
5
+ adapter: string;
6
+ epoch: number;
7
+ keys: {
8
+ [k: string]: Json;
9
+ };
10
+ });
11
+ /** schemas/access-operation-envelope.schema.json — RLTP Access Operation Envelope (transcription of Access Layer draft 0.24 section 3.3) */
12
+ export type AccessOperationEnvelope = ({
13
+ v: "rltp-access/0.24";
14
+ op: string;
15
+ group: string;
16
+ epoch: number;
17
+ policyVersion: number;
18
+ prev: string[];
19
+ body: {
20
+ [k: string]: Json;
21
+ };
22
+ crit?: string[];
23
+ id: string;
24
+ author: string;
25
+ proof: ({
26
+ mechanism: "signature-set" | "encounter-presentation" | "composite";
27
+ signatures?: {
28
+ signer: string;
29
+ sig: string;
30
+ }[];
31
+ credentials?: {
32
+ [k: string]: Json;
33
+ }[];
34
+ });
35
+ });
36
+ /** schemas/access-registration.schema.json — RLTP Service Registration (artifact 0.26, Access Layer section 7.3) */
37
+ export type AccessRegistration = ({
38
+ v: "rltp-access-registration/0.26";
39
+ type: "service-registration";
40
+ group: string;
41
+ genesisDigest: string;
42
+ identity: string;
43
+ service: string;
44
+ m: 1;
45
+ stalenessBound: string;
46
+ terminalRetention: string;
47
+ divergenceQuota: number;
48
+ sig: string;
49
+ attestationKey: string;
50
+ registrationGeneration: number;
51
+ previousRegistration: (null) | (string);
52
+ authorization?: {
53
+ signer: string;
54
+ sig: string;
55
+ }[];
56
+ abandon?: {
57
+ abandonedRoot: string;
58
+ abandonedTipsDigest: string;
59
+ };
60
+ authorizationRoot: (null) | (string);
61
+ });
62
+ /** schemas/access-vouch.schema.json — DTG AdmissionVouch (vouch@2, wire 0.24 family) */
63
+ export type AccessVouch = {
64
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
65
+ type: (Json[]);
66
+ issuer: string;
67
+ validFrom: string;
68
+ credentialSubject: {
69
+ id: string;
70
+ endorsement: {
71
+ type: "AdmissionVouch";
72
+ genesisDigest: string;
73
+ accept: string;
74
+ provenance: "met" | "introduced";
75
+ };
76
+ };
77
+ proof: {
78
+ type: "DataIntegrityProof";
79
+ cryptosuite: "eddsa-jcs-2022";
80
+ created: string;
81
+ verificationMethod: string;
82
+ proofPurpose: "assertionMethod";
83
+ proofValue: string;
84
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
85
+ };
86
+ };
87
+ /** schemas/authorization-view.schema.json — RLTP Authorization View (Access Layer 0.24 section 7.3) */
88
+ export type AuthorizationView = ({
89
+ v: "rltp-access-view/0.24";
90
+ type: "authorization-view";
91
+ group: string;
92
+ genesisDigest: string;
93
+ seq: number;
94
+ epoch: number;
95
+ identities: string[];
96
+ m: (null) | (number);
97
+ terminal: boolean;
98
+ prevView: (null) | (string) | (string[]);
99
+ predecessor?: string;
100
+ issuedAt: string;
101
+ validUntil: string;
102
+ sigs: {
103
+ signer: string;
104
+ sig: string;
105
+ }[];
106
+ });
107
+ /** schemas/carrier-proof.schema.json — RLTP Carrier Registration Proof (rltp-carrier-proof/0.3, rltp-delivery@0.69) */
108
+ export type CarrierProof = ({
109
+ v: "rltp-carrier-proof/0.3";
110
+ type: "carrier-registration-proof";
111
+ purpose: "register" | "rebind" | "collect" | "conclude";
112
+ carrier: string;
113
+ principal: string;
114
+ rkid: string;
115
+ generation?: number;
116
+ principalChallenge: string;
117
+ addressChallenge?: string;
118
+ sig: string;
119
+ });
120
+ /** schemas/contact-card-0.25.schema.json — RLTP Contact Card (rltp-encounter@0.29) */
121
+ export type ContactCard025 = {
122
+ version: "rltp-card/0.25";
123
+ anchor: string;
124
+ keyAgreement: string;
125
+ challenge?: {
126
+ value: string;
127
+ issuedAt: string;
128
+ };
129
+ sentTo?: string;
130
+ boundTo?: string;
131
+ name?: string;
132
+ deliveryHints?: string[];
133
+ proof: {
134
+ type: "DataIntegrityProof";
135
+ cryptosuite: "eddsa-jcs-2022";
136
+ created: string;
137
+ verificationMethod: string;
138
+ proofPurpose: "assertionMethod";
139
+ proofValue: string;
140
+ };
141
+ };
142
+ /** schemas/contact-card.schema.json — RLTP Contact Card (rltp-encounter@0.29) — mobile $id, carried by the unversioned resource */
143
+ export type ContactCard = {
144
+ version: "rltp-card/0.25";
145
+ anchor: string;
146
+ keyAgreement: string;
147
+ challenge?: {
148
+ value: string;
149
+ issuedAt: string;
150
+ };
151
+ sentTo?: string;
152
+ boundTo?: string;
153
+ name?: string;
154
+ deliveryHints?: string[];
155
+ proof: {
156
+ type: "DataIntegrityProof";
157
+ cryptosuite: "eddsa-jcs-2022";
158
+ created: string;
159
+ verificationMethod: string;
160
+ proofPurpose: "assertionMethod";
161
+ proofValue: string;
162
+ };
163
+ };
164
+ /** schemas/encounter-credential-0.25.schema.json — RLTP Encounter Credential (rltp-encounter@0.29) */
165
+ export type EncounterCredential025 = {
166
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
167
+ type: (Json[]);
168
+ issuer: string;
169
+ validFrom: string;
170
+ credentialSubject: {
171
+ id: string;
172
+ format: "rltp-encounter-credential/0.25";
173
+ ceremony: string;
174
+ challenge: string;
175
+ enactmentBinding: string;
176
+ channel?: string;
177
+ commitment?: {
178
+ suite: string;
179
+ value: string;
180
+ };
181
+ };
182
+ proof: {
183
+ type: "DataIntegrityProof";
184
+ cryptosuite: "eddsa-jcs-2022";
185
+ created: string;
186
+ verificationMethod: string;
187
+ proofPurpose: "assertionMethod";
188
+ proofValue: string;
189
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
190
+ };
191
+ };
192
+ /** schemas/encounter-credential.schema.json — RLTP Encounter Credential (rltp-encounter@0.29) — mobile $id, carried by the unversioned resource */
193
+ export type EncounterCredential = {
194
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
195
+ type: (Json[]);
196
+ issuer: string;
197
+ validFrom: string;
198
+ credentialSubject: {
199
+ id: string;
200
+ format: "rltp-encounter-credential/0.25";
201
+ ceremony: string;
202
+ challenge: string;
203
+ enactmentBinding: string;
204
+ channel?: string;
205
+ commitment?: {
206
+ suite: string;
207
+ value: string;
208
+ };
209
+ };
210
+ proof: {
211
+ type: "DataIntegrityProof";
212
+ cryptosuite: "eddsa-jcs-2022";
213
+ created: string;
214
+ verificationMethod: string;
215
+ proofPurpose: "assertionMethod";
216
+ proofValue: string;
217
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
218
+ };
219
+ };
220
+ /** schemas/member-mapping.schema.json — RLTP member-mapping@1 (rltp-access-member-mapping/0.24) */
221
+ export type MemberMapping = {
222
+ body: {
223
+ type: "member-mapping@1";
224
+ member: string;
225
+ memberOp: string;
226
+ self: string;
227
+ to: string;
228
+ toOp: string;
229
+ card: {
230
+ body: {
231
+ type: "self-card@1";
232
+ anchor: string;
233
+ keyAgreement: string;
234
+ };
235
+ proof: {
236
+ proofValue: string;
237
+ };
238
+ };
239
+ revision: string;
240
+ issuedAt: string;
241
+ };
242
+ proof: {
243
+ mac1: string;
244
+ mac2: string;
245
+ };
246
+ };
247
+ /** schemas/payload-access-operation.schema.json — Payload: access-operation/0.1 (rltp-membership@0.16, target Trust Tasks framework 0.4) */
248
+ export type PayloadAccessOperation = ({
249
+ operation: (AccessOperationEnvelope);
250
+ welcome: {
251
+ sealed: SealedEnvelope;
252
+ };
253
+ }) & ({
254
+ operation?: {
255
+ op: "member.add";
256
+ body?: Json;
257
+ };
258
+ }) & ({
259
+ operation?: {
260
+ proof?: {
261
+ signatures?: Json;
262
+ credentials?: Json;
263
+ };
264
+ };
265
+ });
266
+ /** schemas/payload-delivery-ack.schema.json — Payload: delivery-ack/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */
267
+ export type PayloadDeliveryAck = {
268
+ ref: string;
269
+ meaning: "received";
270
+ };
271
+ /** schemas/payload-encounter-bundle.schema.json — Payload: encounter-bundle/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */
272
+ export type PayloadEncounterBundle = {
273
+ card: ContactCard;
274
+ credential: EncounterCredential;
275
+ };
276
+ /** schemas/payload-encounter-credential-delivery.schema.json — Payload: encounter-credential-delivery/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */
277
+ export type PayloadEncounterCredentialDelivery = {
278
+ credential: EncounterCredential;
279
+ };
280
+ /** schemas/payload-key-delivery.schema.json — Payload: key-delivery/0.1 (rltp-access@0.24, target Trust Tasks framework 0.4) */
281
+ export type PayloadKeyDelivery = {
282
+ keyDelivery: ({
283
+ group: string;
284
+ genesisDigest: string;
285
+ epoch: number;
286
+ op: string;
287
+ kind: "keydist" | "re-welcome" | "refresh" | "request";
288
+ sealed?: SealedEnvelope;
289
+ card?: ContactCard;
290
+ });
291
+ };
292
+ /** schemas/payload-membership-accept.schema.json — Payload: membership-accept/0.2 (rltp-membership@0.16, target Trust Tasks framework 0.4) */
293
+ export type PayloadMembershipAccept = {
294
+ accept: {
295
+ group: string;
296
+ subject: string;
297
+ ref: string;
298
+ card: ContactCard;
299
+ candidacy: boolean;
300
+ };
301
+ };
302
+ /** schemas/payload-membership-evidence.schema.json — Payload: membership-evidence/0.1 (rltp-membership@0.16, target Trust Tasks framework 0.4) */
303
+ export type PayloadMembershipEvidence = {
304
+ evidence: {
305
+ invite: (RltpDeliveryDocument) & ({
306
+ type?: "https://real-life.org/trust-tasks/membership-invite/0.2";
307
+ payload?: PayloadMembershipInvite;
308
+ proof?: never;
309
+ });
310
+ accept: (RltpDeliveryDocument) & ({
311
+ type?: "https://real-life.org/trust-tasks/membership-accept/0.2";
312
+ payload?: PayloadMembershipAccept;
313
+ });
314
+ };
315
+ };
316
+ /** schemas/payload-membership-invite.schema.json — Payload: membership-invite/0.2 (rltp-membership@0.16, target Trust Tasks framework 0.4) */
317
+ export type PayloadMembershipInvite = {
318
+ invite: {
319
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
320
+ type: (Json[]);
321
+ issuer: string;
322
+ credentialSubject: {
323
+ id: string;
324
+ group: string;
325
+ genesisDigest: string;
326
+ card: ContactCard;
327
+ name?: string;
328
+ note?: string;
329
+ };
330
+ validFrom: string;
331
+ validUntil: string;
332
+ taskContext: string;
333
+ proof: {
334
+ type: "DataIntegrityProof";
335
+ cryptosuite: "eddsa-jcs-2022";
336
+ created: string;
337
+ verificationMethod: string;
338
+ proofPurpose: "assertionMethod";
339
+ proofValue: string;
340
+ "@context": ["https://www.w3.org/ns/credentials/v2", "https://firstperson.network/credentials/dtg/v1", "https://real-life.org/rltp/v1"];
341
+ };
342
+ };
343
+ };
344
+ /** schemas/payload-registry-declaration.schema.json — RLTP payload registry-declaration (rltp-delivery@0.69) */
345
+ export type PayloadRegistryDeclaration = {
346
+ declaration: {
347
+ role: string;
348
+ revision: string;
349
+ constants: {
350
+ [k: string]: string;
351
+ };
352
+ };
353
+ };
354
+ /** schemas/payload-removal-notice.schema.json — RLTP Removal Notice (Access Layer 0.24 section 10.2) */
355
+ export type PayloadRemovalNotice = {
356
+ v: "rltp-access-removal-notice/0.24";
357
+ type: "removal-notice";
358
+ group: string;
359
+ genesisDigest: string;
360
+ op: string;
361
+ subject: string;
362
+ epoch: number;
363
+ author: string;
364
+ sig: string;
365
+ };
366
+ /** schemas/rltp-delivery-document.schema.json — RLTP Delivery Document Profile (rltp-delivery@0.69) */
367
+ export type RltpDeliveryDocument = {
368
+ id: string;
369
+ type: string;
370
+ issuer: string;
371
+ recipient: string;
372
+ threadId: string;
373
+ ceremony?: {
374
+ [k: string]: Json;
375
+ };
376
+ issuedAt: string;
377
+ payload: {
378
+ [k: string]: Json;
379
+ };
380
+ proof?: {
381
+ type: "DataIntegrityProof";
382
+ cryptosuite: "eddsa-jcs-2022";
383
+ created: string;
384
+ verificationMethod: string;
385
+ proofPurpose: "assertionMethod";
386
+ proofValue: string;
387
+ };
388
+ };
389
+ /** schemas/sealed-envelope.schema.json — RLTP Sealed Envelope (rltp-delivery@0.69) */
390
+ export type SealedEnvelope = {
391
+ rkid: string;
392
+ epk: string;
393
+ nonce: string;
394
+ ciphertext: string;
395
+ };
396
+ /** schemas/visibility-anchor-mapping.schema.json — RLTP anchor-mapping@2 (rltp-visibility@0.16) */
397
+ export type VisibilityAnchorMapping = {
398
+ body: {
399
+ type: "anchor-mapping@2";
400
+ pair: string;
401
+ self: string;
402
+ to: string;
403
+ card: {
404
+ body: {
405
+ type: "self-card@1";
406
+ anchor: string;
407
+ keyAgreement: string;
408
+ };
409
+ proof: {
410
+ proofValue: string;
411
+ };
412
+ };
413
+ revision: string;
414
+ issuedAt: string;
415
+ };
416
+ proof: {
417
+ mac1: string;
418
+ mac2: string;
419
+ };
420
+ };
421
+ /** schemas/visibility-continuity-mapping.schema.json — RLTP continuity-mapping@1 (rltp-visibility@0.16) */
422
+ export type VisibilityContinuityMapping = {
423
+ body: {
424
+ type: "continuity-mapping@1";
425
+ prior: string;
426
+ next: string;
427
+ to: string;
428
+ revision: string;
429
+ issuedAt: string;
430
+ };
431
+ proof: {
432
+ mac1: string;
433
+ mac2: string;
434
+ };
435
+ };
436
+ /** schemas/visibility-continuity-probe.schema.json — RLTP continuity-probe@1 (rltp-visibility@0.16) */
437
+ export type VisibilityContinuityProbe = {
438
+ body: {
439
+ type: "continuity-probe@1";
440
+ probe: string;
441
+ seq: string;
442
+ last: boolean;
443
+ blinded: string[];
444
+ };
445
+ proof: {
446
+ mac: string;
447
+ };
448
+ };
449
+ /** schemas/visibility-grade-declaration.schema.json — RLTP grade-declaration@1 (rltp-visibility@0.16) */
450
+ export type VisibilityGradeDeclaration = {
451
+ body: {
452
+ type: "grade-declaration@1";
453
+ subject: string;
454
+ holder: string;
455
+ grade: "count" | "blinded";
456
+ revision: string;
457
+ issuedAt: string;
458
+ };
459
+ proof: {
460
+ mac: string;
461
+ };
462
+ };
463
+ /** schemas/visibility-introduction-ack.schema.json — RLTP introduction-ack@1 (rltp-visibility@0.16) */
464
+ export type VisibilityIntroductionAck = {
465
+ body: {
466
+ type: "introduction-ack@1";
467
+ act: string;
468
+ };
469
+ proof: {
470
+ mac: string;
471
+ };
472
+ };
473
+ /** schemas/visibility-introduction-reply.schema.json — RLTP introduction-reply@1 (rltp-visibility@0.16) */
474
+ export type VisibilityIntroductionReply = {
475
+ body: {
476
+ type: "introduction-reply@1";
477
+ act: string;
478
+ requestDigest: string;
479
+ requesterPair: string;
480
+ cardDigest: string;
481
+ };
482
+ proof: {
483
+ proofValue: string;
484
+ };
485
+ };
486
+ /** schemas/visibility-introduction-request.schema.json — RLTP introduction-request@1 (rltp-visibility@0.16) */
487
+ export type VisibilityIntroductionRequest = {
488
+ body: {
489
+ type: "introduction-request@1";
490
+ act: string;
491
+ issuedAt: string;
492
+ target: string;
493
+ cardDigest: string;
494
+ profile: {
495
+ displayName?: string;
496
+ note?: string;
497
+ };
498
+ };
499
+ proof: {
500
+ proofValue: string;
501
+ };
502
+ };
503
+ /** schemas/visibility-introduction-voucher.schema.json — RLTP introduction-voucher@1 (rltp-visibility@0.16) */
504
+ export type VisibilityIntroductionVoucher = {
505
+ body: {
506
+ type: "introduction-voucher@1";
507
+ act: string;
508
+ requesterPair: string;
509
+ targetPair: string;
510
+ };
511
+ proof: {
512
+ mac: string;
513
+ };
514
+ };
515
+ /** schemas/visibility-payload-introduction-ack.schema.json — RLTP payload introduction-ack (rltp-visibility@0.16) */
516
+ export type VisibilityPayloadIntroductionAck = {
517
+ introduction: VisibilityIntroductionAck;
518
+ };
519
+ /** schemas/visibility-payload-introduction-forward.schema.json — RLTP payload introduction-forward (rltp-visibility@0.16) — byte-identical to the request payload */
520
+ export type VisibilityPayloadIntroductionForward = {
521
+ introduction: VisibilityIntroductionRequest;
522
+ card: ContactCard025;
523
+ };
524
+ /** schemas/visibility-payload-introduction-reply.schema.json — RLTP payload introduction-reply (rltp-visibility@0.16) */
525
+ export type VisibilityPayloadIntroductionReply = {
526
+ introduction: VisibilityIntroductionReply;
527
+ card: ContactCard025;
528
+ };
529
+ /** schemas/visibility-payload-introduction-request.schema.json — RLTP payload introduction-request (rltp-visibility@0.16) */
530
+ export type VisibilityPayloadIntroductionRequest = {
531
+ introduction: VisibilityIntroductionRequest;
532
+ card: ContactCard025;
533
+ };
534
+ /** schemas/visibility-payload-introduction-voucher.schema.json — RLTP payload introduction-voucher (rltp-visibility@0.16) */
535
+ export type VisibilityPayloadIntroductionVoucher = {
536
+ voucher: VisibilityIntroductionVoucher;
537
+ };
538
+ /** schemas/visibility-self-card.schema.json — RLTP self-card@1 (rltp-visibility@0.16) */
539
+ export type VisibilitySelfCard = {
540
+ body: {
541
+ type: "self-card@1";
542
+ anchor: string;
543
+ keyAgreement: string;
544
+ };
545
+ proof: {
546
+ proofValue: string;
547
+ };
548
+ };
549
+ /** schemas/visibility-star.schema.json — RLTP star@1 (rltp-visibility@0.16) */
550
+ export type VisibilityStar = {
551
+ body: {
552
+ type: "star@1";
553
+ salt: string;
554
+ seq: string;
555
+ last: boolean;
556
+ count: string;
557
+ blinded: string[];
558
+ };
559
+ proof: {
560
+ mac: string;
561
+ };
562
+ };
563
+ /** schemas/welcome.schema.json — RLTP Welcome (rltp-welcome/0.1, rltp-membership@0.16) */
564
+ export type Welcome = {
565
+ v: "rltp-welcome/0.1";
566
+ group: string;
567
+ subject: string;
568
+ accept: string;
569
+ material: (AccessMaterial) & ({
570
+ v?: "rltp-access-material/0.24";
571
+ });
572
+ };
573
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/dist/wire.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"","sourcesContent":["// GENERATED by scripts/build-wire-types.mjs — DO NOT EDIT.\n// Source of truth: schemas/*.json. scripts/validate.mjs enforces freshness.\n//\n// These are the STRUCTURAL PROJECTIONS of the wire schemas: shape,\n// requiredness, literals, tuples, unions. Patterns, length bounds,\n// if/then/else, `not`, `contains`, `dependentRequired` and uniqueItems\n// are NOT expressible here and remain normative in the schemas alone —\n// satisfying a type is necessary for conformance, never sufficient.\n// Validate against SCHEMAS before treating any value as a wire artifact.\nimport type { Json } from './core.js'\n\n/** schemas/access-material.schema.json — RLTP Access key material (Access Layer 0.24 sections 7.1 and 9.5) */\nexport type AccessMaterial = ({\n v: \"rltp-access-material/0.24\" | \"rltp-access-keydist/0.24\"\n adapter: string\n epoch: number\n keys: { [k: string]: Json }\n})\n\n/** schemas/access-operation-envelope.schema.json — RLTP Access Operation Envelope (transcription of Access Layer draft 0.24 section 3.3) */\nexport type AccessOperationEnvelope = ({\n v: \"rltp-access/0.24\"\n op: string\n group: string\n epoch: number\n policyVersion: number\n prev: string[]\n body: { [k: string]: Json }\n crit?: string[]\n id: string\n author: string\n proof: ({\n mechanism: \"signature-set\" | \"encounter-presentation\" | \"composite\"\n signatures?: {\n signer: string\n sig: string\n }[]\n credentials?: { [k: string]: Json }[]\n })\n})\n\n/** schemas/access-registration.schema.json — RLTP Service Registration (artifact 0.26, Access Layer section 7.3) */\nexport type AccessRegistration = ({\n v: \"rltp-access-registration/0.26\"\n type: \"service-registration\"\n group: string\n genesisDigest: string\n identity: string\n service: string\n m: 1\n stalenessBound: string\n terminalRetention: string\n divergenceQuota: number\n sig: string\n attestationKey: string\n registrationGeneration: number\n previousRegistration: (null) | (string)\n authorization?: {\n signer: string\n sig: string\n }[]\n abandon?: {\n abandonedRoot: string\n abandonedTipsDigest: string\n }\n authorizationRoot: (null) | (string)\n})\n\n/** schemas/access-vouch.schema.json — DTG AdmissionVouch (vouch@2, wire 0.24 family) */\nexport type AccessVouch = {\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n type: (Json[])\n issuer: string\n validFrom: string\n credentialSubject: {\n id: string\n endorsement: {\n type: \"AdmissionVouch\"\n genesisDigest: string\n accept: string\n provenance: \"met\" | \"introduced\"\n }\n }\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n }\n}\n\n/** schemas/authorization-view.schema.json — RLTP Authorization View (Access Layer 0.24 section 7.3) */\nexport type AuthorizationView = ({\n v: \"rltp-access-view/0.24\"\n type: \"authorization-view\"\n group: string\n genesisDigest: string\n seq: number\n epoch: number\n identities: string[]\n m: (null) | (number)\n terminal: boolean\n prevView: (null) | (string) | (string[])\n predecessor?: string\n issuedAt: string\n validUntil: string\n sigs: {\n signer: string\n sig: string\n }[]\n})\n\n/** schemas/carrier-proof.schema.json — RLTP Carrier Registration Proof (rltp-carrier-proof/0.3, rltp-delivery@0.69) */\nexport type CarrierProof = ({\n v: \"rltp-carrier-proof/0.3\"\n type: \"carrier-registration-proof\"\n purpose: \"register\" | \"rebind\" | \"collect\" | \"conclude\"\n carrier: string\n principal: string\n rkid: string\n generation?: number\n principalChallenge: string\n addressChallenge?: string\n sig: string\n})\n\n/** schemas/contact-card-0.25.schema.json — RLTP Contact Card (rltp-encounter@0.29) */\nexport type ContactCard025 = {\n version: \"rltp-card/0.25\"\n anchor: string\n keyAgreement: string\n challenge?: {\n value: string\n issuedAt: string\n }\n sentTo?: string\n boundTo?: string\n name?: string\n deliveryHints?: string[]\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n }\n}\n\n/** schemas/contact-card.schema.json — RLTP Contact Card (rltp-encounter@0.29) — mobile $id, carried by the unversioned resource */\nexport type ContactCard = {\n version: \"rltp-card/0.25\"\n anchor: string\n keyAgreement: string\n challenge?: {\n value: string\n issuedAt: string\n }\n sentTo?: string\n boundTo?: string\n name?: string\n deliveryHints?: string[]\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n }\n}\n\n/** schemas/encounter-credential-0.25.schema.json — RLTP Encounter Credential (rltp-encounter@0.29) */\nexport type EncounterCredential025 = {\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n type: (Json[])\n issuer: string\n validFrom: string\n credentialSubject: {\n id: string\n format: \"rltp-encounter-credential/0.25\"\n ceremony: string\n challenge: string\n enactmentBinding: string\n channel?: string\n commitment?: {\n suite: string\n value: string\n }\n }\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n }\n}\n\n/** schemas/encounter-credential.schema.json — RLTP Encounter Credential (rltp-encounter@0.29) — mobile $id, carried by the unversioned resource */\nexport type EncounterCredential = {\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n type: (Json[])\n issuer: string\n validFrom: string\n credentialSubject: {\n id: string\n format: \"rltp-encounter-credential/0.25\"\n ceremony: string\n challenge: string\n enactmentBinding: string\n channel?: string\n commitment?: {\n suite: string\n value: string\n }\n }\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n }\n}\n\n/** schemas/member-mapping.schema.json — RLTP member-mapping@1 (rltp-access-member-mapping/0.24) */\nexport type MemberMapping = {\n body: {\n type: \"member-mapping@1\"\n member: string\n memberOp: string\n self: string\n to: string\n toOp: string\n card: {\n body: {\n type: \"self-card@1\"\n anchor: string\n keyAgreement: string\n }\n proof: {\n proofValue: string\n }\n }\n revision: string\n issuedAt: string\n }\n proof: {\n mac1: string\n mac2: string\n }\n}\n\n/** schemas/payload-access-operation.schema.json — Payload: access-operation/0.1 (rltp-membership@0.16, target Trust Tasks framework 0.4) */\nexport type PayloadAccessOperation = ({\n operation: (AccessOperationEnvelope)\n welcome: {\n sealed: SealedEnvelope\n }\n}) & ({\n operation?: {\n op: \"member.add\"\n body?: Json\n }\n}) & ({\n operation?: {\n proof?: {\n signatures?: Json\n credentials?: Json\n }\n }\n})\n\n/** schemas/payload-delivery-ack.schema.json — Payload: delivery-ack/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */\nexport type PayloadDeliveryAck = {\n ref: string\n meaning: \"received\"\n}\n\n/** schemas/payload-encounter-bundle.schema.json — Payload: encounter-bundle/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */\nexport type PayloadEncounterBundle = {\n card: ContactCard\n credential: EncounterCredential\n}\n\n/** schemas/payload-encounter-credential-delivery.schema.json — Payload: encounter-credential-delivery/0.1 (rltp-delivery@0.69, target Trust Tasks framework 0.4) */\nexport type PayloadEncounterCredentialDelivery = {\n credential: EncounterCredential\n}\n\n/** schemas/payload-key-delivery.schema.json — Payload: key-delivery/0.1 (rltp-access@0.24, target Trust Tasks framework 0.4) */\nexport type PayloadKeyDelivery = {\n keyDelivery: ({\n group: string\n genesisDigest: string\n epoch: number\n op: string\n kind: \"keydist\" | \"re-welcome\" | \"refresh\" | \"request\"\n sealed?: SealedEnvelope\n card?: ContactCard\n })\n}\n\n/** schemas/payload-membership-accept.schema.json — Payload: membership-accept/0.2 (rltp-membership@0.16, target Trust Tasks framework 0.4) */\nexport type PayloadMembershipAccept = {\n accept: {\n group: string\n subject: string\n ref: string\n card: ContactCard\n candidacy: boolean\n }\n}\n\n/** schemas/payload-membership-evidence.schema.json — Payload: membership-evidence/0.1 (rltp-membership@0.16, target Trust Tasks framework 0.4) */\nexport type PayloadMembershipEvidence = {\n evidence: {\n invite: (RltpDeliveryDocument) & ({\n type?: \"https://real-life.org/trust-tasks/membership-invite/0.2\"\n payload?: PayloadMembershipInvite\n proof?: never\n })\n accept: (RltpDeliveryDocument) & ({\n type?: \"https://real-life.org/trust-tasks/membership-accept/0.2\"\n payload?: PayloadMembershipAccept\n })\n }\n}\n\n/** schemas/payload-membership-invite.schema.json — Payload: membership-invite/0.2 (rltp-membership@0.16, target Trust Tasks framework 0.4) */\nexport type PayloadMembershipInvite = {\n invite: {\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n type: (Json[])\n issuer: string\n credentialSubject: {\n id: string\n group: string\n genesisDigest: string\n card: ContactCard\n name?: string\n note?: string\n }\n validFrom: string\n validUntil: string\n taskContext: string\n proof: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n \"@context\": [\"https://www.w3.org/ns/credentials/v2\", \"https://firstperson.network/credentials/dtg/v1\", \"https://real-life.org/rltp/v1\"]\n }\n }\n}\n\n/** schemas/payload-registry-declaration.schema.json — RLTP payload registry-declaration (rltp-delivery@0.69) */\nexport type PayloadRegistryDeclaration = {\n declaration: {\n role: string\n revision: string\n constants: { [k: string]: string }\n }\n}\n\n/** schemas/payload-removal-notice.schema.json — RLTP Removal Notice (Access Layer 0.24 section 10.2) */\nexport type PayloadRemovalNotice = {\n v: \"rltp-access-removal-notice/0.24\"\n type: \"removal-notice\"\n group: string\n genesisDigest: string\n op: string\n subject: string\n epoch: number\n author: string\n sig: string\n}\n\n/** schemas/rltp-delivery-document.schema.json — RLTP Delivery Document Profile (rltp-delivery@0.69) */\nexport type RltpDeliveryDocument = {\n id: string\n type: string\n issuer: string\n recipient: string\n threadId: string\n ceremony?: { [k: string]: Json }\n issuedAt: string\n payload: { [k: string]: Json }\n proof?: {\n type: \"DataIntegrityProof\"\n cryptosuite: \"eddsa-jcs-2022\"\n created: string\n verificationMethod: string\n proofPurpose: \"assertionMethod\"\n proofValue: string\n }\n}\n\n/** schemas/sealed-envelope.schema.json — RLTP Sealed Envelope (rltp-delivery@0.69) */\nexport type SealedEnvelope = {\n rkid: string\n epk: string\n nonce: string\n ciphertext: string\n}\n\n/** schemas/visibility-anchor-mapping.schema.json — RLTP anchor-mapping@2 (rltp-visibility@0.16) */\nexport type VisibilityAnchorMapping = {\n body: {\n type: \"anchor-mapping@2\"\n pair: string\n self: string\n to: string\n card: {\n body: {\n type: \"self-card@1\"\n anchor: string\n keyAgreement: string\n }\n proof: {\n proofValue: string\n }\n }\n revision: string\n issuedAt: string\n }\n proof: {\n mac1: string\n mac2: string\n }\n}\n\n/** schemas/visibility-continuity-mapping.schema.json — RLTP continuity-mapping@1 (rltp-visibility@0.16) */\nexport type VisibilityContinuityMapping = {\n body: {\n type: \"continuity-mapping@1\"\n prior: string\n next: string\n to: string\n revision: string\n issuedAt: string\n }\n proof: {\n mac1: string\n mac2: string\n }\n}\n\n/** schemas/visibility-continuity-probe.schema.json — RLTP continuity-probe@1 (rltp-visibility@0.16) */\nexport type VisibilityContinuityProbe = {\n body: {\n type: \"continuity-probe@1\"\n probe: string\n seq: string\n last: boolean\n blinded: string[]\n }\n proof: {\n mac: string\n }\n}\n\n/** schemas/visibility-grade-declaration.schema.json — RLTP grade-declaration@1 (rltp-visibility@0.16) */\nexport type VisibilityGradeDeclaration = {\n body: {\n type: \"grade-declaration@1\"\n subject: string\n holder: string\n grade: \"count\" | \"blinded\"\n revision: string\n issuedAt: string\n }\n proof: {\n mac: string\n }\n}\n\n/** schemas/visibility-introduction-ack.schema.json — RLTP introduction-ack@1 (rltp-visibility@0.16) */\nexport type VisibilityIntroductionAck = {\n body: {\n type: \"introduction-ack@1\"\n act: string\n }\n proof: {\n mac: string\n }\n}\n\n/** schemas/visibility-introduction-reply.schema.json — RLTP introduction-reply@1 (rltp-visibility@0.16) */\nexport type VisibilityIntroductionReply = {\n body: {\n type: \"introduction-reply@1\"\n act: string\n requestDigest: string\n requesterPair: string\n cardDigest: string\n }\n proof: {\n proofValue: string\n }\n}\n\n/** schemas/visibility-introduction-request.schema.json — RLTP introduction-request@1 (rltp-visibility@0.16) */\nexport type VisibilityIntroductionRequest = {\n body: {\n type: \"introduction-request@1\"\n act: string\n issuedAt: string\n target: string\n cardDigest: string\n profile: {\n displayName?: string\n note?: string\n }\n }\n proof: {\n proofValue: string\n }\n}\n\n/** schemas/visibility-introduction-voucher.schema.json — RLTP introduction-voucher@1 (rltp-visibility@0.16) */\nexport type VisibilityIntroductionVoucher = {\n body: {\n type: \"introduction-voucher@1\"\n act: string\n requesterPair: string\n targetPair: string\n }\n proof: {\n mac: string\n }\n}\n\n/** schemas/visibility-payload-introduction-ack.schema.json — RLTP payload introduction-ack (rltp-visibility@0.16) */\nexport type VisibilityPayloadIntroductionAck = {\n introduction: VisibilityIntroductionAck\n}\n\n/** schemas/visibility-payload-introduction-forward.schema.json — RLTP payload introduction-forward (rltp-visibility@0.16) — byte-identical to the request payload */\nexport type VisibilityPayloadIntroductionForward = {\n introduction: VisibilityIntroductionRequest\n card: ContactCard025\n}\n\n/** schemas/visibility-payload-introduction-reply.schema.json — RLTP payload introduction-reply (rltp-visibility@0.16) */\nexport type VisibilityPayloadIntroductionReply = {\n introduction: VisibilityIntroductionReply\n card: ContactCard025\n}\n\n/** schemas/visibility-payload-introduction-request.schema.json — RLTP payload introduction-request (rltp-visibility@0.16) */\nexport type VisibilityPayloadIntroductionRequest = {\n introduction: VisibilityIntroductionRequest\n card: ContactCard025\n}\n\n/** schemas/visibility-payload-introduction-voucher.schema.json — RLTP payload introduction-voucher (rltp-visibility@0.16) */\nexport type VisibilityPayloadIntroductionVoucher = {\n voucher: VisibilityIntroductionVoucher\n}\n\n/** schemas/visibility-self-card.schema.json — RLTP self-card@1 (rltp-visibility@0.16) */\nexport type VisibilitySelfCard = {\n body: {\n type: \"self-card@1\"\n anchor: string\n keyAgreement: string\n }\n proof: {\n proofValue: string\n }\n}\n\n/** schemas/visibility-star.schema.json — RLTP star@1 (rltp-visibility@0.16) */\nexport type VisibilityStar = {\n body: {\n type: \"star@1\"\n salt: string\n seq: string\n last: boolean\n count: string\n blinded: string[]\n }\n proof: {\n mac: string\n }\n}\n\n/** schemas/welcome.schema.json — RLTP Welcome (rltp-welcome/0.1, rltp-membership@0.16) */\nexport type Welcome = {\n v: \"rltp-welcome/0.1\"\n group: string\n subject: string\n accept: string\n material: (AccessMaterial) & ({\n v?: \"rltp-access-material/0.24\"\n })\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-life/trust-protocol",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "The Real Life Trust Protocol (RLTP) — the executable form of the specification: encounters, introductions, trust disclosure, groups, continuity, and the delivery channel. Zero dependencies, WebCrypto only.",
5
5
  "license": "CC-BY-4.0",
6
6
  "type": "module",
@@ -14,6 +14,10 @@
14
14
  "dist/identity.*",
15
15
  "dist/encounter.*",
16
16
  "dist/delivery.*",
17
+ "dist/carrier.*",
18
+ "dist/carrier-identity.*",
19
+ "dist/holder.*",
20
+ "dist/wire.*",
17
21
  "dist/schemas.*",
18
22
  "dist/unicode15.*",
19
23
  "README.md"
@@ -30,7 +34,7 @@
30
34
  },
31
35
  "scripts": {
32
36
  "build": "tsc -p tsconfig.json",
33
- "test": "node --test test/vectors.test.mjs test/vectors2.test.mjs test/vectors3.test.mjs test/probe.test.mjs",
37
+ "test": "node --test test/vectors.test.mjs test/vectors2.test.mjs test/vectors3.test.mjs test/probe.test.mjs test/carrier.test.mjs test/loopback.test.mjs",
34
38
  "prepack": "npm run build && npm test"
35
39
  },
36
40
  "keywords": [