@interop/wallet-core 0.107.0 → 0.108.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/README.md +21 -19
- package/dist/clientAnnex/establish.d.ts +6 -5
- package/dist/clientAnnex/establish.d.ts.map +1 -1
- package/dist/clientAnnex/establish.js +9 -8
- package/dist/clientAnnex/establish.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts +5 -5
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +1 -1
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +8 -8
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +2 -2
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +4 -1
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/grantRevocation.d.ts +11 -7
- package/dist/clientAnnex/grantRevocation.d.ts.map +1 -1
- package/dist/clientAnnex/grantRevocation.js +1 -1
- package/dist/clientAnnex/grantRevocation.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts +16 -14
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +9 -9
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +35 -27
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +26 -37
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +31 -31
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +28 -28
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +4 -3
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +1 -1
- package/dist/clientAnnex/selfEnroll.d.ts +3 -3
- package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +1 -1
- package/dist/clients/grantState.d.ts +11 -9
- package/dist/clients/grantState.d.ts.map +1 -1
- package/dist/clients/grantState.js +19 -16
- package/dist/clients/grantState.js.map +1 -1
- package/dist/clients/index.d.ts +9 -9
- package/dist/clients/index.js +9 -9
- package/dist/clients/listing.d.ts +12 -14
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +17 -23
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/revocation.d.ts +2 -2
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js.map +1 -1
- package/dist/connections/entry.d.ts +100 -9
- package/dist/connections/entry.d.ts.map +1 -1
- package/dist/connections/entry.js +104 -12
- package/dist/connections/entry.js.map +1 -1
- package/dist/connections/grantProof.d.ts +47 -14
- package/dist/connections/grantProof.d.ts.map +1 -1
- package/dist/connections/grantProof.js +88 -57
- package/dist/connections/grantProof.js.map +1 -1
- package/dist/connections/grants.d.ts +13 -1
- package/dist/connections/grants.d.ts.map +1 -1
- package/dist/connections/grants.js +18 -31
- package/dist/connections/grants.js.map +1 -1
- package/dist/connections/index.d.ts +13 -8
- package/dist/connections/index.d.ts.map +1 -1
- package/dist/connections/index.js +10 -6
- package/dist/connections/index.js.map +1 -1
- package/dist/connections/replicas.d.ts +227 -0
- package/dist/connections/replicas.d.ts.map +1 -0
- package/dist/connections/replicas.js +539 -0
- package/dist/connections/replicas.js.map +1 -0
- package/dist/connections/upsert.d.ts +75 -1
- package/dist/connections/upsert.d.ts.map +1 -1
- package/dist/connections/upsert.js +62 -34
- package/dist/connections/upsert.js.map +1 -1
- package/dist/recovery/continuation.d.ts +3 -9
- package/dist/recovery/continuation.d.ts.map +1 -1
- package/dist/recovery/continuation.js +1 -3
- package/dist/recovery/continuation.js.map +1 -1
- package/dist/recovery/index.d.ts +2 -1
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +21 -15
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +12 -7
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/testing/accountBuilder.d.ts.map +1 -1
- package/dist/testing/accountBuilder.js +1 -3
- package/dist/testing/accountBuilder.js.map +1 -1
- package/dist/testing/signerFixture.d.ts +3 -3
- package/dist/testing/signerFixture.d.ts.map +1 -1
- package/dist/testing/signerFixture.js +7 -5
- package/dist/testing/signerFixture.js.map +1 -1
- package/dist/unlock/index.d.ts +2 -1
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/retire.d.ts +7 -5
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +5 -4
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +24 -15
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +32 -19
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/webvh/accountEntry.d.ts +39 -50
- package/dist/webvh/accountEntry.d.ts.map +1 -1
- package/dist/webvh/accountEntry.js +133 -55
- package/dist/webvh/accountEntry.js.map +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +4 -11
- package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
- package/dist/webvh/delegatedLogStore.js +1 -1
- package/dist/webvh/delegatedLogStore.js.map +1 -1
- package/dist/webvh/didWebProjection.d.ts +30 -49
- package/dist/webvh/didWebProjection.d.ts.map +1 -1
- package/dist/webvh/didWebProjection.js +9 -56
- package/dist/webvh/didWebProjection.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +13 -8
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +11 -7
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/enrollClient.d.ts +5 -3
- package/dist/webvh/enrollClient.d.ts.map +1 -1
- package/dist/webvh/enrollClient.js +12 -10
- package/dist/webvh/enrollClient.js.map +1 -1
- package/dist/webvh/index.d.ts +14 -7
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +12 -5
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/listClients.d.ts +124 -15
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +148 -43
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/revokeClient.d.ts +10 -4
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +22 -22
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/standingZcap.d.ts +4 -1
- package/dist/webvh/standingZcap.d.ts.map +1 -1
- package/dist/webvh/standingZcap.js +13 -14
- package/dist/webvh/standingZcap.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AA4EA,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,11 @@ export declare const CONNECTION_ENTRY_VERSION = 1;
|
|
|
6
6
|
* The `kind` vocabulary: what the party says it is. An entry carrying any
|
|
7
7
|
* other value reads as an unclassified party.
|
|
8
8
|
*/
|
|
9
|
-
export declare const CONNECTION_KINDS: readonly ["app", "agent", "wallet-client", "contact"];
|
|
9
|
+
export declare const CONNECTION_KINDS: readonly ["app", "agent", "wallet-client", "contact", "replica-server"];
|
|
10
|
+
/**
|
|
11
|
+
* The one kind whose entry carries a non-empty `replicas` list.
|
|
12
|
+
*/
|
|
13
|
+
export declare const REPLICA_SERVER_KIND: "replica-server";
|
|
10
14
|
/**
|
|
11
15
|
* One value of {@link CONNECTION_KINDS}.
|
|
12
16
|
*/
|
|
@@ -99,6 +103,56 @@ export type ConnectionOutboxItem = {
|
|
|
99
103
|
createdAt: string;
|
|
100
104
|
[member: string]: unknown;
|
|
101
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* One member of a `replica-server` entry's `replicas`: one replica Space on
|
|
108
|
+
* that replica server, with its source Space, its registration ids, and the
|
|
109
|
+
* user's outstanding intents toward it. Each marker is written by one intent
|
|
110
|
+
* and cleared by its completion; no unset marker reads as an intent.
|
|
111
|
+
*/
|
|
112
|
+
export type ConnectionReplica = {
|
|
113
|
+
/**
|
|
114
|
+
* The source Space's container URL, with its trailing slash, as the
|
|
115
|
+
* registration body carries it.
|
|
116
|
+
*/
|
|
117
|
+
fromSpace: string;
|
|
118
|
+
/**
|
|
119
|
+
* The replica Space's id on the replica server: 32 random bytes, base64url
|
|
120
|
+
* with no padding, distinct from the source Space's id.
|
|
121
|
+
*/
|
|
122
|
+
spaceId: string;
|
|
123
|
+
/**
|
|
124
|
+
* The id of the item's registration, present once its first registration
|
|
125
|
+
* landed. An in-place replacement of the registration's capability keeps
|
|
126
|
+
* it.
|
|
127
|
+
*/
|
|
128
|
+
registrationId?: string;
|
|
129
|
+
/**
|
|
130
|
+
* A first registration's id, present between its mint and the landing of
|
|
131
|
+
* its POST, then moved to `registrationId`.
|
|
132
|
+
*/
|
|
133
|
+
pendingRegistrationId?: string;
|
|
134
|
+
/**
|
|
135
|
+
* The registration's collection list, not empty when present. Absent when
|
|
136
|
+
* the replica server copies every live Collection.
|
|
137
|
+
*/
|
|
138
|
+
collections?: string[];
|
|
139
|
+
/**
|
|
140
|
+
* ISO 8601 UTC time of the user's Stop. Marks a stopped snapshot until a
|
|
141
|
+
* completed re-start clears it.
|
|
142
|
+
*/
|
|
143
|
+
stoppedAt?: string;
|
|
144
|
+
/**
|
|
145
|
+
* ISO 8601 UTC time of the user's re-start, written first and cleared
|
|
146
|
+
* last.
|
|
147
|
+
*/
|
|
148
|
+
restartedAt?: string;
|
|
149
|
+
/**
|
|
150
|
+
* ISO 8601 UTC time the replica Space read absent under the account's own
|
|
151
|
+
* authority.
|
|
152
|
+
*/
|
|
153
|
+
lostAt?: string;
|
|
154
|
+
[member: string]: unknown;
|
|
155
|
+
};
|
|
102
156
|
/**
|
|
103
157
|
* One member of an entry's `writers`: a `writerId` the party has written
|
|
104
158
|
* under, with the platform label it registered with and its liveness state.
|
|
@@ -146,7 +200,8 @@ export type ConnectionEntry = {
|
|
|
146
200
|
*/
|
|
147
201
|
origin?: string;
|
|
148
202
|
/**
|
|
149
|
-
* The canonical app URL, for an App Connect app
|
|
203
|
+
* The canonical app URL, for an App Connect app, or the base URL of a
|
|
204
|
+
* replica server.
|
|
150
205
|
*/
|
|
151
206
|
url?: string;
|
|
152
207
|
/**
|
|
@@ -188,6 +243,12 @@ export type ConnectionEntry = {
|
|
|
188
243
|
*/
|
|
189
244
|
outbox: ConnectionOutboxItem[];
|
|
190
245
|
writers: ConnectionWriter[];
|
|
246
|
+
/**
|
|
247
|
+
* The replica Spaces on a `replica-server` entry's server. Empty on every
|
|
248
|
+
* other kind, where a non-empty list fails the codec, and absent on a body
|
|
249
|
+
* an older build wrote, which reads as empty.
|
|
250
|
+
*/
|
|
251
|
+
replicas: ConnectionReplica[];
|
|
191
252
|
};
|
|
192
253
|
/**
|
|
193
254
|
* The writer policy every wallet that sweeps must share, or two sweepers
|
|
@@ -281,6 +342,34 @@ export declare function parseConnectionZcap(value: unknown): ConnectionZcap | un
|
|
|
281
342
|
* @returns {Uint8Array | undefined}
|
|
282
343
|
*/
|
|
283
344
|
export declare function decodeConnectionSeed(value: unknown): Uint8Array | undefined;
|
|
345
|
+
/**
|
|
346
|
+
* Whether a value is a Space's container URL: an absolute URL ending with a
|
|
347
|
+
* slash. The one rule the codec, the replica-server helpers, and the grant
|
|
348
|
+
* target check share.
|
|
349
|
+
*
|
|
350
|
+
* @param value {unknown}
|
|
351
|
+
* @returns {boolean}
|
|
352
|
+
*/
|
|
353
|
+
export declare function isSpaceContainerUrl(value: unknown): value is string;
|
|
354
|
+
/**
|
|
355
|
+
* A Space's container URL in the one form the directory stores and compares
|
|
356
|
+
* it in: URL-parsed and re-serialized, so a default port or an upper-case
|
|
357
|
+
* host names the same Space as its plain form. Refuses a value that is not
|
|
358
|
+
* a container URL ({@link isSpaceContainerUrl}) with a `TypeError`.
|
|
359
|
+
*
|
|
360
|
+
* @param value {string}
|
|
361
|
+
* @returns {string}
|
|
362
|
+
*/
|
|
363
|
+
export declare function spaceContainerUrl(value: string): string;
|
|
364
|
+
/**
|
|
365
|
+
* Whether a value is a fresh id as the directory stores one: 43 characters
|
|
366
|
+
* of base64url with no padding decoding to 32 bytes (a replica Space id, a
|
|
367
|
+
* registration id).
|
|
368
|
+
*
|
|
369
|
+
* @param value {unknown}
|
|
370
|
+
* @returns {boolean}
|
|
371
|
+
*/
|
|
372
|
+
export declare function isConnectionFreshId(value: unknown): value is string;
|
|
284
373
|
/**
|
|
285
374
|
* Reads a stored body as a directory entry, or `undefined` when it is not
|
|
286
375
|
* one. A body fails when any member this build knows has the wrong shape:
|
|
@@ -288,13 +377,15 @@ export declare function decodeConnectionSeed(value: unknown): Uint8Array | undef
|
|
|
288
377
|
* is not a DID, a `name`, `label`, or writer `label` outside the display-name
|
|
289
378
|
* rule (1 to 64 code points once the control and bidi characters are stripped
|
|
290
379
|
* and the result trimmed), a timestamp `Date.parse` cannot read, a malformed
|
|
291
|
-
* grant wrapper, received-grant wrapper, outbox item, or writer
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
380
|
+
* grant wrapper, received-grant wrapper, outbox item, replica item, or writer
|
|
381
|
+
* member, a non-empty `replicas` list on an entry whose `kind` is not
|
|
382
|
+
* `'replica-server'`, a `seed` or `seedTag` that is not 43 characters of
|
|
383
|
+
* base64url decoding to 32 bytes, a `seed` with no `seedTag` (or the
|
|
384
|
+
* reverse), or no `id` beside anything but exactly one writer. Every display string a view renders is
|
|
385
|
+
* held to that one rule. An absent `grantsReceived`, `outbox`, or `replicas`
|
|
386
|
+
* (a body an older build wrote, or an entry of a kind that carries none)
|
|
387
|
+
* reads as empty. Unknown members are ignored. A body with a `version` above
|
|
388
|
+
* this build's that passes every check is returned for display;
|
|
298
389
|
* {@link isWritableConnectionEntry} says it cannot be written.
|
|
299
390
|
*
|
|
300
391
|
* Where the body sits is not checked here. A reader also checks that the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/connections/entry.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/connections/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,13 @@ export const CONNECTION_KINDS = [
|
|
|
34
34
|
'app',
|
|
35
35
|
'agent',
|
|
36
36
|
'wallet-client',
|
|
37
|
-
'contact'
|
|
37
|
+
'contact',
|
|
38
|
+
'replica-server'
|
|
38
39
|
];
|
|
40
|
+
/**
|
|
41
|
+
* The one kind whose entry carries a non-empty `replicas` list.
|
|
42
|
+
*/
|
|
43
|
+
export const REPLICA_SERVER_KIND = 'replica-server';
|
|
39
44
|
/**
|
|
40
45
|
* The `grantKind` vocabulary: `'share'` marks a grant the
|
|
41
46
|
* shared-wallet-collection flow wrote, and `'grant'` is every other delegated
|
|
@@ -254,6 +259,85 @@ export function decodeConnectionSeed(value) {
|
|
|
254
259
|
}
|
|
255
260
|
return bytes.length === CONNECTION_SEED_BYTES ? bytes : undefined;
|
|
256
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Whether a value is a Space's container URL: an absolute URL ending with a
|
|
264
|
+
* slash. The one rule the codec, the replica-server helpers, and the grant
|
|
265
|
+
* target check share.
|
|
266
|
+
*
|
|
267
|
+
* @param value {unknown}
|
|
268
|
+
* @returns {boolean}
|
|
269
|
+
*/
|
|
270
|
+
export function isSpaceContainerUrl(value) {
|
|
271
|
+
if (typeof value !== 'string' || !value.endsWith('/')) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
new URL(value);
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* A Space's container URL in the one form the directory stores and compares
|
|
284
|
+
* it in: URL-parsed and re-serialized, so a default port or an upper-case
|
|
285
|
+
* host names the same Space as its plain form. Refuses a value that is not
|
|
286
|
+
* a container URL ({@link isSpaceContainerUrl}) with a `TypeError`.
|
|
287
|
+
*
|
|
288
|
+
* @param value {string}
|
|
289
|
+
* @returns {string}
|
|
290
|
+
*/
|
|
291
|
+
export function spaceContainerUrl(value) {
|
|
292
|
+
if (!isSpaceContainerUrl(value)) {
|
|
293
|
+
throw new TypeError(`A Space container URL is an absolute URL ending with a slash; got ` +
|
|
294
|
+
`"${value}".`);
|
|
295
|
+
}
|
|
296
|
+
return new URL(value).href;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Whether a value is a fresh id as the directory stores one: 43 characters
|
|
300
|
+
* of base64url with no padding decoding to 32 bytes (a replica Space id, a
|
|
301
|
+
* registration id).
|
|
302
|
+
*
|
|
303
|
+
* @param value {unknown}
|
|
304
|
+
* @returns {boolean}
|
|
305
|
+
*/
|
|
306
|
+
export function isConnectionFreshId(value) {
|
|
307
|
+
return decodeConnectionSeed(value) !== undefined;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Reads one stored replica item, or `undefined` when a known member has the
|
|
311
|
+
* wrong shape: `fromSpace` must be a container URL, `spaceId` and each
|
|
312
|
+
* registration id a fresh id, `collections` a non-empty list of non-empty
|
|
313
|
+
* strings (an absent list means every live Collection, so an empty one has
|
|
314
|
+
* no reading), and each marker a timestamp. The item is returned verbatim, unknown members
|
|
315
|
+
* included.
|
|
316
|
+
*
|
|
317
|
+
* @param value {unknown}
|
|
318
|
+
* @returns {ConnectionReplica | undefined}
|
|
319
|
+
*/
|
|
320
|
+
function parseReplica(value) {
|
|
321
|
+
if (!isJsonObject(value)) {
|
|
322
|
+
return undefined;
|
|
323
|
+
}
|
|
324
|
+
const { fromSpace, spaceId, registrationId, pendingRegistrationId, collections, stoppedAt, restartedAt, lostAt } = value;
|
|
325
|
+
if (!isSpaceContainerUrl(fromSpace) ||
|
|
326
|
+
!isConnectionFreshId(spaceId) ||
|
|
327
|
+
(registrationId !== undefined && !isConnectionFreshId(registrationId)) ||
|
|
328
|
+
(pendingRegistrationId !== undefined &&
|
|
329
|
+
!isConnectionFreshId(pendingRegistrationId)) ||
|
|
330
|
+
(collections !== undefined &&
|
|
331
|
+
!(Array.isArray(collections) &&
|
|
332
|
+
collections.length > 0 &&
|
|
333
|
+
collections.every(collection => typeof collection === 'string' && collection !== ''))) ||
|
|
334
|
+
(stoppedAt !== undefined && !isTimestamp(stoppedAt)) ||
|
|
335
|
+
(restartedAt !== undefined && !isTimestamp(restartedAt)) ||
|
|
336
|
+
(lostAt !== undefined && !isTimestamp(lostAt))) {
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
return value;
|
|
340
|
+
}
|
|
257
341
|
/**
|
|
258
342
|
* Reads one stored writer member, or `undefined` when a known member has the
|
|
259
343
|
* wrong shape. The member is returned verbatim, unknown members included.
|
|
@@ -285,13 +369,15 @@ function parseWriter(value) {
|
|
|
285
369
|
* is not a DID, a `name`, `label`, or writer `label` outside the display-name
|
|
286
370
|
* rule (1 to 64 code points once the control and bidi characters are stripped
|
|
287
371
|
* and the result trimmed), a timestamp `Date.parse` cannot read, a malformed
|
|
288
|
-
* grant wrapper, received-grant wrapper, outbox item, or writer
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
372
|
+
* grant wrapper, received-grant wrapper, outbox item, replica item, or writer
|
|
373
|
+
* member, a non-empty `replicas` list on an entry whose `kind` is not
|
|
374
|
+
* `'replica-server'`, a `seed` or `seedTag` that is not 43 characters of
|
|
375
|
+
* base64url decoding to 32 bytes, a `seed` with no `seedTag` (or the
|
|
376
|
+
* reverse), or no `id` beside anything but exactly one writer. Every display string a view renders is
|
|
377
|
+
* held to that one rule. An absent `grantsReceived`, `outbox`, or `replicas`
|
|
378
|
+
* (a body an older build wrote, or an entry of a kind that carries none)
|
|
379
|
+
* reads as empty. Unknown members are ignored. A body with a `version` above
|
|
380
|
+
* this build's that passes every check is returned for display;
|
|
295
381
|
* {@link isWritableConnectionEntry} says it cannot be written.
|
|
296
382
|
*
|
|
297
383
|
* Where the body sits is not checked here. A reader also checks that the
|
|
@@ -305,7 +391,7 @@ export function parseConnectionEntry(body) {
|
|
|
305
391
|
if (!isJsonObject(body)) {
|
|
306
392
|
return undefined;
|
|
307
393
|
}
|
|
308
|
-
const { version, kind, id, name, label, origin, url, appKey, firstSeen, lastSeen, retired, declined, seed, seedTag, grants, grantsReceived, outbox, writers } = body;
|
|
394
|
+
const { version, kind, id, name, label, origin, url, appKey, firstSeen, lastSeen, retired, declined, seed, seedTag, grants, grantsReceived, outbox, writers, replicas } = body;
|
|
309
395
|
if (typeof version !== 'number' ||
|
|
310
396
|
!Number.isInteger(version) ||
|
|
311
397
|
version < 1 ||
|
|
@@ -327,7 +413,10 @@ export function parseConnectionEntry(body) {
|
|
|
327
413
|
!Array.isArray(grants) ||
|
|
328
414
|
(grantsReceived !== undefined && !Array.isArray(grantsReceived)) ||
|
|
329
415
|
(outbox !== undefined && !Array.isArray(outbox)) ||
|
|
330
|
-
!Array.isArray(writers)
|
|
416
|
+
!Array.isArray(writers) ||
|
|
417
|
+
(replicas !== undefined &&
|
|
418
|
+
(!Array.isArray(replicas) ||
|
|
419
|
+
(replicas.length > 0 && kind !== REPLICA_SERVER_KIND)))) {
|
|
331
420
|
return undefined;
|
|
332
421
|
}
|
|
333
422
|
const normalizedName = name === undefined ? undefined : normalizeDisplayName({ value: name });
|
|
@@ -340,10 +429,12 @@ export function parseConnectionEntry(body) {
|
|
|
340
429
|
const parsedReceived = (grantsReceived ?? []).map(parseReceivedGrantRecord);
|
|
341
430
|
const parsedOutbox = (outbox ?? []).map(parseOutboxItem);
|
|
342
431
|
const parsedWriters = writers.map(parseWriter);
|
|
432
|
+
const parsedReplicas = (replicas ?? []).map(parseReplica);
|
|
343
433
|
if (parsedGrants.some(grant => grant === undefined) ||
|
|
344
434
|
parsedReceived.some(grant => grant === undefined) ||
|
|
345
435
|
parsedOutbox.some(item => item === undefined) ||
|
|
346
|
-
parsedWriters.some(writer => writer === undefined)
|
|
436
|
+
parsedWriters.some(writer => writer === undefined) ||
|
|
437
|
+
parsedReplicas.some(item => item === undefined)) {
|
|
347
438
|
return undefined;
|
|
348
439
|
}
|
|
349
440
|
if (id === undefined && parsedWriters.length !== 1) {
|
|
@@ -367,7 +458,8 @@ export function parseConnectionEntry(body) {
|
|
|
367
458
|
grants: parsedGrants,
|
|
368
459
|
grantsReceived: parsedReceived,
|
|
369
460
|
outbox: parsedOutbox,
|
|
370
|
-
writers: parsedWriters
|
|
461
|
+
writers: parsedWriters,
|
|
462
|
+
replicas: parsedReplicas
|
|
371
463
|
};
|
|
372
464
|
}
|
|
373
465
|
//# sourceMappingURL=entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/connections/entry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAA;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK;IACL,OAAO;IACP,eAAe;IACf,SAAS;
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/connections/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,30 +2,55 @@ import type { ConnectionZcap } from './entry.js';
|
|
|
2
2
|
import type { PublishedKeyDocument } from '../webvh/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Why a recorded grant's proof does not verify as this account's. On the
|
|
5
|
-
* root arm the reasons describe the grant's own proof; on the
|
|
6
|
-
* describe the embedded parent's,
|
|
5
|
+
* root arm the unprefixed reasons describe the grant's own proof; on the
|
|
6
|
+
* annex arm they describe the embedded parent's, and the `leaf-` reasons
|
|
7
|
+
* describe the grant's own proof against the generation's annex document.
|
|
7
8
|
*
|
|
8
9
|
* - `unsigned` -- the proof is absent or names no `verificationMethod`.
|
|
9
10
|
* - `unsupported-suite` -- the proof is not an `eddsa-jcs-2022`
|
|
10
11
|
* `DataIntegrityProof` for `capabilityDelegation`, the one suite every
|
|
11
12
|
* delegation this library mints carries.
|
|
12
|
-
* - `signer-unlisted` -- the proof's `verificationMethod`
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* - `signer-unlisted` -- the proof's `verificationMethod` names no key the
|
|
14
|
+
* current document publishes under `capabilityDelegation`
|
|
15
|
+
* (`delegationSignerKey`, the one reader every delegation-signer check
|
|
16
|
+
* shares: the member's `publicKeyMultibase`, or the did:key form of a key
|
|
17
|
+
* the relation publishes): the current-key-set rule.
|
|
17
18
|
* - `signature-invalid` -- the signer is listed, and the signature does not
|
|
18
19
|
* verify over the capability under the key the document publishes for it.
|
|
19
20
|
* - `parent-not-annex` -- the grant embeds a parent whose `controller` is
|
|
20
21
|
* not an annex DID in the account's auxiliary Space, or the account points
|
|
21
22
|
* at no annex generation.
|
|
23
|
+
* - `leaf-generation-collected` -- the parent verified, and no annex
|
|
24
|
+
* document resolves for its generation: the generation was collected.
|
|
25
|
+
* - `leaf-unsigned`, `leaf-unsupported-suite`, `leaf-signer-unlisted`,
|
|
26
|
+
* `leaf-signature-invalid` -- the parent verified, and the leaf's own
|
|
27
|
+
* proof fails the same check, read against the generation's annex
|
|
28
|
+
* document instead of the account's.
|
|
22
29
|
*/
|
|
23
|
-
export type GrantProofRefusal =
|
|
30
|
+
export type GrantProofRefusal = DelegationProofRefusal | 'parent-not-annex' | 'leaf-generation-collected' | `leaf-${DelegationProofRefusal}`;
|
|
31
|
+
/**
|
|
32
|
+
* Why one capability's own delegation proof does not verify against the
|
|
33
|
+
* document it is read under; the unprefixed half of {@link GrantProofRefusal}.
|
|
34
|
+
*/
|
|
35
|
+
type DelegationProofRefusal = 'unsigned' | 'unsupported-suite' | 'signer-unlisted' | 'signature-invalid';
|
|
36
|
+
/**
|
|
37
|
+
* Resolves the verified annex document of the generation an annex DID names,
|
|
38
|
+
* read under that log's chain-head pin, or `undefined` when the generation's
|
|
39
|
+
* log is absent (collected). The wallet supplies it. The proof check calls
|
|
40
|
+
* it once per generation per `signerCheck` object, whatever the number of
|
|
41
|
+
* grants checked under that object, concurrently or not; a wallet therefore
|
|
42
|
+
* builds one `signerCheck` per renewal pass, since a longer-lived one would
|
|
43
|
+
* keep serving a generation's document after a GC collected it.
|
|
44
|
+
*/
|
|
45
|
+
export type AnnexDocumentResolver = (options: {
|
|
46
|
+
clientAnnexDid: string;
|
|
47
|
+
}) => Promise<PublishedKeyDocument | undefined>;
|
|
24
48
|
/**
|
|
25
49
|
* The outcome of {@link verifyRecordedGrantProof}: verified, with the id of
|
|
26
|
-
* the verification method whose signature was checked (the
|
|
27
|
-
* signer on the root arm, the parent's on the annex arm), or
|
|
28
|
-
* the reason.
|
|
50
|
+
* the account-listed verification method whose signature was checked (the
|
|
51
|
+
* grant's own signer on the root arm, the parent's on the annex arm), or
|
|
52
|
+
* refused with the reason. The annex arm checks the leaf's per-visit signer
|
|
53
|
+
* too, but only the annex document lists it.
|
|
29
54
|
*/
|
|
30
55
|
export type GrantProofResult = {
|
|
31
56
|
verified: true;
|
|
@@ -40,9 +65,13 @@ export type GrantProofResult = {
|
|
|
40
65
|
* parent is verified by its own proof (the root arm); a grant embedding its
|
|
41
66
|
* parent delegation as the last link of its `proof.capabilityChain` is
|
|
42
67
|
* verified by that parent's proof, after the parent's `controller` is found
|
|
43
|
-
* to be an annex DID in the account's auxiliary Space
|
|
44
|
-
*
|
|
45
|
-
*
|
|
68
|
+
* to be an annex DID in the account's auxiliary Space, and then by its own
|
|
69
|
+
* proof against the annex document the caller resolves for that generation
|
|
70
|
+
* (the annex arm). A refusal says why. The root arm reads the current
|
|
71
|
+
* document alone, with no log history and no network; the annex arm's one
|
|
72
|
+
* read beyond it is the resolver's, made once per generation under one
|
|
73
|
+
* `signerCheck` object, and what the resolver throws propagates, so a caller
|
|
74
|
+
* whose annex read fails renews nothing.
|
|
46
75
|
*
|
|
47
76
|
* @param options {object}
|
|
48
77
|
* @param options.zcap {ConnectionZcap} the recorded capability, verbatim
|
|
@@ -52,6 +81,8 @@ export type GrantProofResult = {
|
|
|
52
81
|
* @param [options.signerCheck.clientAnnexDid] {string} the annex DID the
|
|
53
82
|
* document's delegated-clients pointer currently names; absent when it
|
|
54
83
|
* names none, which refuses every annex-arm grant
|
|
84
|
+
* @param options.signerCheck.annexDocument {AnnexDocumentResolver} the
|
|
85
|
+
* generation's annex document, for an annex-arm grant's leaf
|
|
55
86
|
* @returns {Promise<GrantProofResult>}
|
|
56
87
|
*/
|
|
57
88
|
export declare function verifyRecordedGrantProof({ zcap, signerCheck }: {
|
|
@@ -59,6 +90,8 @@ export declare function verifyRecordedGrantProof({ zcap, signerCheck }: {
|
|
|
59
90
|
signerCheck: {
|
|
60
91
|
doc: PublishedKeyDocument;
|
|
61
92
|
clientAnnexDid?: string;
|
|
93
|
+
annexDocument: AnnexDocumentResolver;
|
|
62
94
|
};
|
|
63
95
|
}): Promise<GrantProofResult>;
|
|
96
|
+
export {};
|
|
64
97
|
//# sourceMappingURL=grantProof.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grantProof.d.ts","sourceRoot":"","sources":["../../src/connections/grantProof.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grantProof.d.ts","sourceRoot":"","sources":["../../src/connections/grantProof.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,iBAAiB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,2BAA2B,GAC3B,QAAQ,sBAAsB,EAAE,CAAA;AAEpC;;;GAGG;AACH,KAAK,sBAAsB,GACzB,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;AAE5E;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE;IAC5C,cAAc,EAAE,MAAM,CAAA;CACvB,KAAK,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAA;AA8JlD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,IAAI,EACJ,WAAW,EACZ,EAAE;IACD,IAAI,EAAE,cAAc,CAAA;IACpB,WAAW,EAAE;QACX,GAAG,EAAE,oBAAoB,CAAA;QACzB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,EAAE,qBAAqB,CAAA;KACrC,CAAA;CACF,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsC5B"}
|