@interop/wallet-core 0.65.0 → 0.67.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 +12 -8
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
- package/dist/clientAnnex/establish.d.ts +112 -21
- package/dist/clientAnnex/establish.d.ts.map +1 -1
- package/dist/clientAnnex/establish.js +248 -180
- package/dist/clientAnnex/establish.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts +2 -6
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +31 -61
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +48 -132
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +88 -221
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +9 -0
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts +97 -13
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +108 -174
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +8 -8
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +6 -6
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladder.d.ts +51 -4
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +310 -55
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +69 -34
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +148 -72
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +211 -137
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/mend.d.ts.map +1 -1
- package/dist/clientAnnex/mend.js +63 -81
- package/dist/clientAnnex/mend.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
- package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
- package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
- package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +1 -1
- package/dist/clientAnnex/selfEnroll.js.map +1 -1
- package/dist/clientAnnex/zcap.d.ts +19 -0
- package/dist/clientAnnex/zcap.d.ts.map +1 -1
- package/dist/clientAnnex/zcap.js +80 -12
- package/dist/clientAnnex/zcap.js.map +1 -1
- package/dist/clients/index.d.ts +3 -2
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +3 -2
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +33 -15
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/policy.d.ts +18 -0
- package/dist/clients/policy.d.ts.map +1 -1
- package/dist/clients/policy.js +22 -8
- package/dist/clients/policy.js.map +1 -1
- package/dist/clients/revocation.d.ts +18 -30
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +12 -27
- package/dist/clients/revocation.js.map +1 -1
- package/dist/clients/rosterPolicy.d.ts +6 -1
- package/dist/clients/rosterPolicy.d.ts.map +1 -1
- package/dist/clients/rosterPolicy.js +27 -30
- package/dist/clients/rosterPolicy.js.map +1 -1
- package/dist/descriptors/errors.d.ts +6 -5
- package/dist/descriptors/errors.d.ts.map +1 -1
- package/dist/descriptors/errors.js +6 -5
- package/dist/descriptors/errors.js.map +1 -1
- package/dist/descriptors/index.d.ts +7 -3
- package/dist/descriptors/index.d.ts.map +1 -1
- package/dist/descriptors/index.js +7 -3
- package/dist/descriptors/index.js.map +1 -1
- package/dist/descriptors/logSource.d.ts +28 -6
- package/dist/descriptors/logSource.d.ts.map +1 -1
- package/dist/descriptors/logSource.js +33 -7
- package/dist/descriptors/logSource.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +3 -7
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +8 -10
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +39 -41
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/genesis/kmsAuthentication.d.ts +50 -0
- package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
- package/dist/genesis/kmsAuthentication.js +49 -0
- package/dist/genesis/kmsAuthentication.js.map +1 -0
- package/dist/keyring/kdf.d.ts +16 -20
- package/dist/keyring/kdf.d.ts.map +1 -1
- package/dist/keyring/kdf.js +2 -2
- package/dist/keyring/kdf.js.map +1 -1
- package/dist/keyring/unlockSpace.d.ts +8 -30
- package/dist/keyring/unlockSpace.d.ts.map +1 -1
- package/dist/keyring/unlockSpace.js +8 -31
- package/dist/keyring/unlockSpace.js.map +1 -1
- package/dist/keys/clientKeyRecord.d.ts +2 -1
- package/dist/keys/clientKeyRecord.d.ts.map +1 -1
- package/dist/keys/clientKeyRecord.js +28 -11
- package/dist/keys/clientKeyRecord.js.map +1 -1
- package/dist/keys/index.d.ts +19 -5
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +17 -3
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/rosterLogStore.d.ts +3 -1
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +20 -8
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts +92 -3
- package/dist/keys/spaceEpochs.d.ts.map +1 -1
- package/dist/keys/spaceEpochs.js +110 -4
- package/dist/keys/spaceEpochs.js.map +1 -1
- package/dist/keys/userKeyCascade.d.ts +8 -5
- package/dist/keys/userKeyCascade.d.ts.map +1 -1
- package/dist/keys/userKeyCascade.js +7 -6
- package/dist/keys/userKeyCascade.js.map +1 -1
- package/dist/keys/userKeyRoster.d.ts +68 -4
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +146 -33
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/keys/userKeyRosterCascade.d.ts +110 -10
- package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
- package/dist/keys/userKeyRosterCascade.js +184 -40
- package/dist/keys/userKeyRosterCascade.js.map +1 -1
- package/dist/recovery/continuation.d.ts +255 -0
- package/dist/recovery/continuation.d.ts.map +1 -0
- package/dist/recovery/continuation.js +471 -0
- package/dist/recovery/continuation.js.map +1 -0
- package/dist/recovery/index.d.ts +12 -8
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/index.js +11 -7
- package/dist/recovery/index.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +40 -120
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +36 -268
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +42 -83
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +44 -380
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/request/appKey.d.ts +35 -1
- package/dist/request/appKey.d.ts.map +1 -1
- package/dist/request/appKey.js +29 -10
- package/dist/request/appKey.js.map +1 -1
- package/dist/request/classify.d.ts +3 -14
- package/dist/request/classify.d.ts.map +1 -1
- package/dist/request/classify.js +19 -40
- package/dist/request/classify.js.map +1 -1
- package/dist/request/index.d.ts +1 -0
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +1 -0
- package/dist/request/index.js.map +1 -1
- package/dist/request/onboarding.d.ts.map +1 -1
- package/dist/request/onboarding.js +19 -27
- package/dist/request/onboarding.js.map +1 -1
- package/dist/request/parse.d.ts +5 -3
- package/dist/request/parse.d.ts.map +1 -1
- package/dist/request/parse.js +7 -6
- package/dist/request/parse.js.map +1 -1
- package/dist/request/processRequest.d.ts.map +1 -1
- package/dist/request/processRequest.js +2 -1
- package/dist/request/processRequest.js.map +1 -1
- package/dist/request/queryPredicates.d.ts +98 -0
- package/dist/request/queryPredicates.d.ts.map +1 -0
- package/dist/request/queryPredicates.js +107 -0
- package/dist/request/queryPredicates.js.map +1 -0
- package/dist/resourceLog/document.d.ts +39 -0
- package/dist/resourceLog/document.d.ts.map +1 -1
- package/dist/resourceLog/document.js +41 -0
- package/dist/resourceLog/document.js.map +1 -1
- package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
- package/dist/resourceLog/ladderRungs.js +3 -2
- package/dist/resourceLog/ladderRungs.js.map +1 -1
- package/dist/sync/contactsConflict.d.ts.map +1 -1
- package/dist/sync/contactsConflict.js +8 -2
- package/dist/sync/contactsConflict.js.map +1 -1
- package/dist/sync/engine.d.ts +38 -23
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +36 -5
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/index.d.ts +9 -12
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +8 -11
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/push.d.ts.map +1 -1
- package/dist/sync/push.js +1 -2
- package/dist/sync/push.js.map +1 -1
- package/dist/sync/remint.d.ts +0 -31
- package/dist/sync/remint.d.ts.map +1 -1
- package/dist/sync/remint.js +32 -1
- package/dist/sync/remint.js.map +1 -1
- package/dist/sync/types.d.ts +4 -41
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +4 -47
- package/dist/sync/types.js.map +1 -1
- package/dist/unlock/index.d.ts +1 -1
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +1 -1
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/retire.d.ts +16 -56
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +7 -76
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +20 -40
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +35 -76
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.d.ts.map +1 -1
- package/dist/unlock/unlockRecord.js +69 -44
- package/dist/unlock/unlockRecord.js.map +1 -1
- package/dist/webvh/accountEntry.d.ts +63 -7
- package/dist/webvh/accountEntry.d.ts.map +1 -1
- package/dist/webvh/accountEntry.js +110 -19
- package/dist/webvh/accountEntry.js.map +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +18 -12
- package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
- package/dist/webvh/delegatedLogStore.js +32 -11
- package/dist/webvh/delegatedLogStore.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +39 -23
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +63 -45
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/enrollClient.d.ts.map +1 -1
- package/dist/webvh/enrollClient.js +19 -23
- package/dist/webvh/enrollClient.js.map +1 -1
- package/dist/webvh/index.d.ts +11 -7
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +9 -6
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +102 -65
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/mergeMethods.d.ts +84 -0
- package/dist/webvh/mergeMethods.d.ts.map +1 -0
- package/dist/webvh/mergeMethods.js +46 -0
- package/dist/webvh/mergeMethods.js.map +1 -0
- package/dist/webvh/revokeClient.d.ts +12 -2
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +126 -48
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/verifyLog.d.ts +21 -0
- package/dist/webvh/verifyLog.d.ts.map +1 -1
- package/dist/webvh/verifyLog.js +36 -14
- package/dist/webvh/verifyLog.js.map +1 -1
- package/package.json +11 -11
|
@@ -255,6 +255,24 @@ async function openMember({ member, keyAgreementKey, keyResolver }) {
|
|
|
255
255
|
});
|
|
256
256
|
return cipher.decrypt({ envelope: member.wrapped });
|
|
257
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* One member's plaintext out of a settled concurrent open: the value, or the
|
|
260
|
+
* open's own failure rethrown. The members open together, so their failures
|
|
261
|
+
* are claimed in the order the checks below them run rather than in the order
|
|
262
|
+
* the requests happened to fail.
|
|
263
|
+
*
|
|
264
|
+
* @param settled {PromiseSettledResult<unknown>}
|
|
265
|
+
* @returns {unknown} the member plaintext
|
|
266
|
+
*/
|
|
267
|
+
function openedMember(settled) {
|
|
268
|
+
if (settled === undefined) {
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
if (settled.status === 'rejected') {
|
|
272
|
+
throw settled.reason;
|
|
273
|
+
}
|
|
274
|
+
return settled.value;
|
|
275
|
+
}
|
|
258
276
|
/**
|
|
259
277
|
* Wraps an unlock record at bind time: the shell (controller, optional
|
|
260
278
|
* email, pointer, timestamp) sealed to the credential's unlock KAK, the
|
|
@@ -295,32 +313,36 @@ export async function wrapUnlockRecord({ controller, email, pointer, delegation,
|
|
|
295
313
|
pointer,
|
|
296
314
|
...(ladderSeed ? { ladderSeed } : {})
|
|
297
315
|
});
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
316
|
+
// The four members seal independently, so they seal concurrently: nothing
|
|
317
|
+
// below reads one member's result to build another's.
|
|
318
|
+
const [shell, bridge, sealedDelegatedClients, ladder] = await Promise.all([
|
|
319
|
+
sealMember({
|
|
320
|
+
data: {
|
|
321
|
+
controller,
|
|
322
|
+
...(email ? { email } : {}),
|
|
323
|
+
pointer: {
|
|
324
|
+
...(pointer.did ? { did: pointer.did } : {}),
|
|
325
|
+
spaceId: pointer.spaceId,
|
|
326
|
+
host: pointer.host
|
|
327
|
+
},
|
|
328
|
+
createdAt: recordCreatedAtStamp({ createdAt })
|
|
306
329
|
},
|
|
307
|
-
createdAt: recordCreatedAtStamp({ createdAt })
|
|
308
|
-
},
|
|
309
|
-
keyAgreementKey
|
|
310
|
-
});
|
|
311
|
-
const bridge = await sealMember({ data: { delegation }, keyAgreementKey });
|
|
312
|
-
const sealedDelegatedClients = delegatedClients
|
|
313
|
-
? await sealMember({
|
|
314
|
-
data: { delegation: delegatedClients },
|
|
315
|
-
keyAgreementKey
|
|
316
|
-
})
|
|
317
|
-
: undefined;
|
|
318
|
-
const ladder = ladderSeed
|
|
319
|
-
? await sealMember({
|
|
320
|
-
data: { ladderSeed: base64urlnopad.encode(ladderSeed) },
|
|
321
330
|
keyAgreementKey
|
|
322
|
-
})
|
|
323
|
-
:
|
|
331
|
+
}),
|
|
332
|
+
sealMember({ data: { delegation }, keyAgreementKey }),
|
|
333
|
+
delegatedClients
|
|
334
|
+
? sealMember({
|
|
335
|
+
data: { delegation: delegatedClients },
|
|
336
|
+
keyAgreementKey
|
|
337
|
+
})
|
|
338
|
+
: undefined,
|
|
339
|
+
ladderSeed
|
|
340
|
+
? sealMember({
|
|
341
|
+
data: { ladderSeed: base64urlnopad.encode(ladderSeed) },
|
|
342
|
+
keyAgreementKey
|
|
343
|
+
})
|
|
344
|
+
: undefined
|
|
345
|
+
]);
|
|
324
346
|
return (await signRecordFrame({
|
|
325
347
|
version: KEYRING_RECORD_VERSION,
|
|
326
348
|
encryption: shell.encryption,
|
|
@@ -408,11 +430,26 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
408
430
|
});
|
|
409
431
|
proofState = 'verified';
|
|
410
432
|
}
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
433
|
+
// The members open independently, so they open concurrently -- started
|
|
434
|
+
// only here, after the proof state above is settled, so nothing is
|
|
435
|
+
// decrypted before the record's authenticity is checked. The checks below
|
|
436
|
+
// stay in their original order over the joined results, so which malformed
|
|
437
|
+
// member's refusal a caller sees is unchanged.
|
|
438
|
+
const [shellOpen, bridgeOpen, delegatedClientsOpen, ladderOpen] = await Promise.allSettled([
|
|
439
|
+
openMember({
|
|
440
|
+
member: { encryption, wrapped },
|
|
441
|
+
keyAgreementKey,
|
|
442
|
+
keyResolver
|
|
443
|
+
}),
|
|
444
|
+
openMember({ member: bridge, keyAgreementKey, keyResolver }),
|
|
445
|
+
delegatedClients
|
|
446
|
+
? openMember({ member: delegatedClients, keyAgreementKey, keyResolver })
|
|
447
|
+
: undefined,
|
|
448
|
+
ladder
|
|
449
|
+
? openMember({ member: ladder, keyAgreementKey, keyResolver })
|
|
450
|
+
: undefined
|
|
451
|
+
]);
|
|
452
|
+
const shell = openedMember(shellOpen);
|
|
416
453
|
if (typeof shell.controller !== 'string' || !shell.controller) {
|
|
417
454
|
throw new Error('Unlock record is missing a controller.');
|
|
418
455
|
}
|
|
@@ -424,22 +461,14 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
424
461
|
value: shell.createdAt,
|
|
425
462
|
label: 'Unlock'
|
|
426
463
|
});
|
|
427
|
-
const bridgePlaintext = (
|
|
428
|
-
member: bridge,
|
|
429
|
-
keyAgreementKey,
|
|
430
|
-
keyResolver
|
|
431
|
-
}));
|
|
464
|
+
const bridgePlaintext = openedMember(bridgeOpen);
|
|
432
465
|
if (bridgePlaintext.delegation === null ||
|
|
433
466
|
typeof bridgePlaintext.delegation !== 'object') {
|
|
434
467
|
throw new Error('Unlock record is missing its did.jsonl delegation.');
|
|
435
468
|
}
|
|
436
469
|
let delegatedClientsDelegation;
|
|
437
470
|
if (delegatedClients) {
|
|
438
|
-
const plaintext = (
|
|
439
|
-
member: delegatedClients,
|
|
440
|
-
keyAgreementKey,
|
|
441
|
-
keyResolver
|
|
442
|
-
}));
|
|
471
|
+
const plaintext = openedMember(delegatedClientsOpen);
|
|
443
472
|
if (plaintext.delegation === null ||
|
|
444
473
|
typeof plaintext.delegation !== 'object') {
|
|
445
474
|
throw new Error('Unlock record has a malformed delegatedClients member.');
|
|
@@ -448,11 +477,7 @@ export async function unwrapUnlockRecord({ record, keyAgreementKey, keyResolver,
|
|
|
448
477
|
}
|
|
449
478
|
let ladderSeed;
|
|
450
479
|
if (ladder) {
|
|
451
|
-
const ladderPlaintext = (
|
|
452
|
-
member: ladder,
|
|
453
|
-
keyAgreementKey,
|
|
454
|
-
keyResolver
|
|
455
|
-
}));
|
|
480
|
+
const ladderPlaintext = openedMember(ladderOpen);
|
|
456
481
|
if (typeof ladderPlaintext.ladderSeed !== 'string') {
|
|
457
482
|
throw new Error('Unlock record has a malformed ladder member.');
|
|
458
483
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unlockRecord.js","sourceRoot":"","sources":["../../src/unlock/unlockRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { UpdateDIDInterface, UpdateDIDResult } from '@interop/did-method-webvh';
|
|
1
|
+
import type { DIDDoc, DIDLog, UpdateDIDInterface, UpdateDIDResult } from '@interop/did-method-webvh';
|
|
2
2
|
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
3
3
|
import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from './didWebvh.js';
|
|
4
4
|
import type { LadderRung, LadderRungState } from '../clientAnnex/ladder.js';
|
|
@@ -6,8 +6,9 @@ import type { LadderRung, LadderRungState } from '../clientAnnex/ladder.js';
|
|
|
6
6
|
* Who signs an account-log entry. The client arm carries an enrolled client's
|
|
7
7
|
* own did:webvh update-key seeds; the ladder arm carries a standing unlock
|
|
8
8
|
* credential's ladder seed, whose rungs sign through the credential's bridge
|
|
9
|
-
* delegation.
|
|
10
|
-
* extends the account log states which
|
|
9
|
+
* delegation. A ceremony body accepts no other arm and no absence: every one
|
|
10
|
+
* that extends the account log states which of the two it acts as. The
|
|
11
|
+
* seam's own committed-key arm is {@link AccountEntrySigner}'s.
|
|
11
12
|
*/
|
|
12
13
|
export type AccountLogSigner = {
|
|
13
14
|
kind: 'client';
|
|
@@ -16,6 +17,16 @@ export type AccountLogSigner = {
|
|
|
16
17
|
kind: 'ladder';
|
|
17
18
|
ladderSeed: Uint8Array;
|
|
18
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Who may sign through {@link signAccountEntry} itself: the two ceremony arms
|
|
22
|
+
* plus the committed-key arm, a bare update-key seed whose key the published
|
|
23
|
+
* log commits or already authorizes. Kept apart from {@link AccountLogSigner}
|
|
24
|
+
* so no ceremony body widens what it accepts by taking the seam's type.
|
|
25
|
+
*/
|
|
26
|
+
export type AccountEntrySigner = AccountLogSigner | {
|
|
27
|
+
kind: 'committed';
|
|
28
|
+
updateSeed: Uint8Array;
|
|
29
|
+
};
|
|
19
30
|
/**
|
|
20
31
|
* The store an account-log entry is read and published through: the public
|
|
21
32
|
* log read and the `did.jsonl` PUT. A subset of {@link WebvhIdStore}, so both
|
|
@@ -69,6 +80,22 @@ export type AccountEntryOutcome = {
|
|
|
69
80
|
updated?: UpdateDIDResult;
|
|
70
81
|
etag?: string;
|
|
71
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* The head an entry leaves standing, assembled from what the entry's own
|
|
85
|
+
* `updateDID` already resolved plus the publish's validator when an entry was
|
|
86
|
+
* published, and the read the entry was built on verbatim when the build
|
|
87
|
+
* declined (the head is then provably unchanged by this call). No second read
|
|
88
|
+
* and no second resolve: the update-key parameters are the ones the entry
|
|
89
|
+
* itself stated, so a caller building its next entry on this head signs
|
|
90
|
+
* against exactly what it published.
|
|
91
|
+
*
|
|
92
|
+
* @param options {object}
|
|
93
|
+
* @param options.outcome {AccountEntryOutcome}
|
|
94
|
+
* @returns {PublishedWebvhLog}
|
|
95
|
+
*/
|
|
96
|
+
export declare function accountEntryHead({ outcome }: {
|
|
97
|
+
outcome: AccountEntryOutcome;
|
|
98
|
+
}): PublishedWebvhLog;
|
|
72
99
|
/**
|
|
73
100
|
* Signs and publishes one account-log entry, preamble and postamble
|
|
74
101
|
* included -- the pinned read, the signer arm's own preconditions, the
|
|
@@ -87,7 +114,7 @@ export type AccountEntryOutcome = {
|
|
|
87
114
|
* @param options {object}
|
|
88
115
|
* @param options.idStore {AccountLogStore} the log read and the
|
|
89
116
|
* `did.jsonl` PUT
|
|
90
|
-
* @param options.signer {
|
|
117
|
+
* @param options.signer {AccountEntrySigner} who signs this entry
|
|
91
118
|
* @param options.build {function}
|
|
92
119
|
* `({ published, rung, state }) => AccountEntryFields | undefined` -- the
|
|
93
120
|
* entry's own members, or `undefined` to decline
|
|
@@ -111,8 +138,12 @@ export type AccountEntryOutcome = {
|
|
|
111
138
|
* @param [options.verb] {string} what the caller is doing, for the client
|
|
112
139
|
* arm's pending-rotation refusal message (e.g. `'revoking a client'`)
|
|
113
140
|
* @param [options.logOnly] {boolean} publish `did.jsonl` without its
|
|
114
|
-
* `did:web` projection.
|
|
115
|
-
* `did.jsonl` alone
|
|
141
|
+
* `did:web` projection. Defaults per arm: `true` on the ladder arm, whose
|
|
142
|
+
* bridge reaches `did.jsonl` alone, and `false` on the client arm, which
|
|
143
|
+
* invokes as the controller. A ladder-signed entry written through a
|
|
144
|
+
* root-invoking store (the establishment's stage 3) passes `false` to
|
|
145
|
+
* republish the projection beside the entry; the committed arm states it,
|
|
146
|
+
* since which store it signs through is the caller's
|
|
116
147
|
* @param [options.beforePublish] {function} `({ updated }) => Promise<void>`
|
|
117
148
|
* -- run on the built entry, AFTER `updateDID` and BEFORE the conditional
|
|
118
149
|
* publish. The seam exists for the `did:web` projection: a ladder-signed
|
|
@@ -125,7 +156,7 @@ export type AccountEntryOutcome = {
|
|
|
125
156
|
*/
|
|
126
157
|
export declare function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb, logOnly, beforePublish }: {
|
|
127
158
|
idStore: AccountLogStore;
|
|
128
|
-
signer:
|
|
159
|
+
signer: AccountEntrySigner;
|
|
129
160
|
build: (context: {
|
|
130
161
|
published: PublishedWebvhLog;
|
|
131
162
|
rung?: LadderRung;
|
|
@@ -143,4 +174,29 @@ export declare function signAccountEntry({ idStore, signer, build, skip, publish
|
|
|
143
174
|
updated: UpdateDIDResult;
|
|
144
175
|
}) => Promise<void>;
|
|
145
176
|
}): Promise<AccountEntryOutcome>;
|
|
177
|
+
/**
|
|
178
|
+
* The head a ceremony concludes on when its entry turns out to be
|
|
179
|
+
* unnecessary -- the client is already enrolled, the removal already landed.
|
|
180
|
+
* There is nothing to publish either way; what differs is the `did:web`
|
|
181
|
+
* projection. The client arm invokes as the account's controller, so it
|
|
182
|
+
* republishes the projection and heals a lag a torn earlier run of the same
|
|
183
|
+
* ceremony left behind. The ladder arm's bridge reaches `did.jsonl` alone, so
|
|
184
|
+
* it takes the read verbatim and leaves the projection to
|
|
185
|
+
* `ensureDidWebProjection`.
|
|
186
|
+
*
|
|
187
|
+
* @param options {object}
|
|
188
|
+
* @param options.idStore {WebvhIdStore}
|
|
189
|
+
* @param options.signer {AccountLogSigner} the arm the ceremony acts as
|
|
190
|
+
* @param options.published {PublishedWebvhLog} the read the build stood on
|
|
191
|
+
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
|
|
192
|
+
*/
|
|
193
|
+
export declare function concludeUnchangedAccountEntry({ idStore, signer, published }: {
|
|
194
|
+
idStore: WebvhIdStore;
|
|
195
|
+
signer: AccountLogSigner;
|
|
196
|
+
published: PublishedWebvhLog;
|
|
197
|
+
}): Promise<{
|
|
198
|
+
did: string;
|
|
199
|
+
doc: DIDDoc;
|
|
200
|
+
log: DIDLog;
|
|
201
|
+
}>;
|
|
146
202
|
//# sourceMappingURL=accountEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountEntry.d.ts","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accountEntry.d.ts","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* extends `did.jsonl` writes through, so a ceremony body describes its
|
|
7
7
|
* document delta once and the signing arm is a parameter.
|
|
8
8
|
*
|
|
9
|
-
* Two arms, discriminated by {@link AccountLogSigner}
|
|
9
|
+
* Two arms, discriminated by {@link AccountLogSigner}, are what a ceremony
|
|
10
|
+
* body accepts:
|
|
10
11
|
*
|
|
11
12
|
* - **client** -- an enrolled client's did:webvh update keys. The active key
|
|
12
13
|
* is derived from the seed, the published log must authorize it, the
|
|
@@ -21,15 +22,27 @@
|
|
|
21
22
|
* publishes `did.jsonl` alone -- the bridge's whole reach. The projection is
|
|
22
23
|
* the ceremony's own pre-entry PUT, or the next visit's ensure.
|
|
23
24
|
*
|
|
25
|
+
* A third arm is the seam's alone ({@link AccountEntrySigner}):
|
|
26
|
+
*
|
|
27
|
+
* - **committed** -- one bare update-key seed whose key stands committed in
|
|
28
|
+
* `nextKeyHashes` (or already revealed in `updateKeys`), revealing itself:
|
|
29
|
+
* the prerotation reveal with no attribution in front of it. The recovery
|
|
30
|
+
* continuation's two entries are this arm -- the spent code's rung 0 signs
|
|
31
|
+
* the reveal-and-commit entry, and the successor key the reveal committed
|
|
32
|
+
* signs the add-and-retire entry. The reveal union and the carry-over
|
|
33
|
+
* union are the ladder arm's. No ceremony body takes this arm as a
|
|
34
|
+
* parameter, since a committed key carries no ceremony authority of its
|
|
35
|
+
* own beyond the continuation that reveals it.
|
|
36
|
+
*
|
|
24
37
|
* Four of those steps are load-bearing conventions rather than plumbing:
|
|
25
38
|
* omitting the reveal union publishes a log whose next entry cannot resolve,
|
|
26
39
|
* omitting the carry-over hash switches prerotation off, omitting the
|
|
27
40
|
* carry-over precondition publishes an entry no resolver accepts, and omitting
|
|
28
41
|
* the pin advance leaves a pin behind an entry this client itself published.
|
|
29
42
|
*
|
|
30
|
-
* One property
|
|
31
|
-
*
|
|
32
|
-
* no entry can remove the key that signed it. A ceremony that must retire a
|
|
43
|
+
* One property every arm rests on: an entry keeps its own signer. The ladder
|
|
44
|
+
* and committed arms union the acting key back into `updateKeys` after the
|
|
45
|
+
* build runs, so no entry can remove the key that signed it. A ceremony that must retire a
|
|
33
46
|
* rung therefore needs a second entry, signed by the successor (the
|
|
34
47
|
* two-entry passphrase change, and the recovery spend's reveal-then-retire
|
|
35
48
|
* pair). The same rule is why a rung is not consumed per ceremony: rung
|
|
@@ -44,7 +57,7 @@
|
|
|
44
57
|
*/
|
|
45
58
|
import { updateDID } from '@interop/did-method-webvh';
|
|
46
59
|
import { deriveNextKeyHash } from '@interop/did-method-webvh';
|
|
47
|
-
import { assertCarryOverCommitments, assertPublishedLogDid,
|
|
60
|
+
import { advanceLogPin, assertCarryOverCommitments, assertPublishedLogDid, concludeWithPublishedLog, putLogResource, readPublishedLogOrThrow, updateKeyMultibase, updateKeySigner } from './didWebvh.js';
|
|
48
61
|
import { putDidWebProjection } from './didWebProjection.js';
|
|
49
62
|
// The one deliberate dependency on the annex subpath, pinned as an exception
|
|
50
63
|
// in the lint rule (beside `unlock/standingWebvh.ts` and
|
|
@@ -52,6 +65,35 @@ import { putDidWebProjection } from './didWebProjection.js';
|
|
|
52
65
|
// the log through the shared attribution helper, and touches no annex log
|
|
53
66
|
// machinery.
|
|
54
67
|
import { attributeLadderRung } from '../clientAnnex/ladder.js';
|
|
68
|
+
/**
|
|
69
|
+
* The head an entry leaves standing, assembled from what the entry's own
|
|
70
|
+
* `updateDID` already resolved plus the publish's validator when an entry was
|
|
71
|
+
* published, and the read the entry was built on verbatim when the build
|
|
72
|
+
* declined (the head is then provably unchanged by this call). No second read
|
|
73
|
+
* and no second resolve: the update-key parameters are the ones the entry
|
|
74
|
+
* itself stated, so a caller building its next entry on this head signs
|
|
75
|
+
* against exactly what it published.
|
|
76
|
+
*
|
|
77
|
+
* @param options {object}
|
|
78
|
+
* @param options.outcome {AccountEntryOutcome}
|
|
79
|
+
* @returns {PublishedWebvhLog}
|
|
80
|
+
*/
|
|
81
|
+
export function accountEntryHead({ outcome }) {
|
|
82
|
+
const { updated } = outcome;
|
|
83
|
+
if (!updated) {
|
|
84
|
+
return outcome.published;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
log: updated.log,
|
|
88
|
+
did: updated.did,
|
|
89
|
+
// Detached from the entry's own `state`, as every other producer of this
|
|
90
|
+
// type is, so a consumer editing the document cannot edit the log.
|
|
91
|
+
doc: structuredClone(updated.doc),
|
|
92
|
+
updateKeys: updated.meta.updateKeys,
|
|
93
|
+
nextKeyHashes: updated.meta.nextKeyHashes,
|
|
94
|
+
...(outcome.etag !== undefined ? { etag: outcome.etag } : {})
|
|
95
|
+
};
|
|
96
|
+
}
|
|
55
97
|
/**
|
|
56
98
|
* Signs and publishes one account-log entry, preamble and postamble
|
|
57
99
|
* included -- the pinned read, the signer arm's own preconditions, the
|
|
@@ -70,7 +112,7 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
|
|
|
70
112
|
* @param options {object}
|
|
71
113
|
* @param options.idStore {AccountLogStore} the log read and the
|
|
72
114
|
* `did.jsonl` PUT
|
|
73
|
-
* @param options.signer {
|
|
115
|
+
* @param options.signer {AccountEntrySigner} who signs this entry
|
|
74
116
|
* @param options.build {function}
|
|
75
117
|
* `({ published, rung, state }) => AccountEntryFields | undefined` -- the
|
|
76
118
|
* entry's own members, or `undefined` to decline
|
|
@@ -94,8 +136,12 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
|
|
|
94
136
|
* @param [options.verb] {string} what the caller is doing, for the client
|
|
95
137
|
* arm's pending-rotation refusal message (e.g. `'revoking a client'`)
|
|
96
138
|
* @param [options.logOnly] {boolean} publish `did.jsonl` without its
|
|
97
|
-
* `did:web` projection.
|
|
98
|
-
* `did.jsonl` alone
|
|
139
|
+
* `did:web` projection. Defaults per arm: `true` on the ladder arm, whose
|
|
140
|
+
* bridge reaches `did.jsonl` alone, and `false` on the client arm, which
|
|
141
|
+
* invokes as the controller. A ladder-signed entry written through a
|
|
142
|
+
* root-invoking store (the establishment's stage 3) passes `false` to
|
|
143
|
+
* republish the projection beside the entry; the committed arm states it,
|
|
144
|
+
* since which store it signs through is the caller's
|
|
99
145
|
* @param [options.beforePublish] {function} `({ updated }) => Promise<void>`
|
|
100
146
|
* -- run on the built entry, AFTER `updateDID` and BEFORE the conditional
|
|
101
147
|
* publish. The seam exists for the `did:web` projection: a ladder-signed
|
|
@@ -106,7 +152,7 @@ import { attributeLadderRung } from '../clientAnnex/ladder.js';
|
|
|
106
152
|
* and it must be idempotent
|
|
107
153
|
* @returns {Promise<AccountEntryOutcome>}
|
|
108
154
|
*/
|
|
109
|
-
export async function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb = 'extending the account log', logOnly =
|
|
155
|
+
export async function signAccountEntry({ idStore, signer, build, skip, published: alreadyRead, expectedDid, pinStore, logId, missingMessage, verb = 'extending the account log', logOnly = signer.kind === 'ladder', beforePublish }) {
|
|
110
156
|
// THE PREAMBLE: each attempt reads for itself unless the caller threaded a
|
|
111
157
|
// read in, so the continuity check runs on the read the compare-and-swap
|
|
112
158
|
// publish is conditioned on rather than only on an orchestrator's pre-read.
|
|
@@ -165,14 +211,36 @@ export async function signAccountEntry({ idStore, signer, build, skip, published
|
|
|
165
211
|
signedHashes = [...new Set([...statedHashes, ...commitHashes])];
|
|
166
212
|
}
|
|
167
213
|
else {
|
|
168
|
-
|
|
169
|
-
//
|
|
170
|
-
//
|
|
214
|
+
// The revealing key: the attributed rung on the ladder arm, the bare seed's
|
|
215
|
+
// key on the committed arm, which must stand committed or already
|
|
216
|
+
// revealed -- the one precondition the ladder arm's attribution already
|
|
217
|
+
// proved.
|
|
218
|
+
let revealing;
|
|
219
|
+
if (signer.kind === 'ladder') {
|
|
220
|
+
revealing = {
|
|
221
|
+
seed: attributed.rung.seed,
|
|
222
|
+
keyMultibase: attributed.rung.keyMultibase,
|
|
223
|
+
hash: rungHash
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
const keyMultibase = await updateKeyMultibase({ seed: signer.updateSeed });
|
|
228
|
+
const hash = await deriveNextKeyHash(keyMultibase);
|
|
229
|
+
if (!published.updateKeys.includes(keyMultibase) &&
|
|
230
|
+
!published.nextKeyHashes.includes(hash)) {
|
|
231
|
+
throw new Error('did:webvh: the published log neither authorizes this update key ' +
|
|
232
|
+
`nor commits its hash; nothing licenses it to sign while ${verb}.`);
|
|
233
|
+
}
|
|
234
|
+
revealing = { seed: signer.updateSeed, keyMultibase, hash };
|
|
235
|
+
}
|
|
236
|
+
entrySigner = await updateKeySigner({ seed: revealing.seed });
|
|
237
|
+
// The acting key reveals itself in the entry it signs (its hash stands
|
|
238
|
+
// committed, or the key is already revealed), and its own hash is kept
|
|
171
239
|
// committed so the carry-over convention holds for the next entry.
|
|
172
|
-
signedUpdateKeys = [
|
|
173
|
-
|
|
240
|
+
signedUpdateKeys = [...new Set([...statedKeys, revealing.keyMultibase])];
|
|
241
|
+
signedHashes = [
|
|
242
|
+
...new Set([...statedHashes, revealing.hash, ...commitHashes])
|
|
174
243
|
];
|
|
175
|
-
signedHashes = [...new Set([...statedHashes, rungHash, ...commitHashes])];
|
|
176
244
|
}
|
|
177
245
|
await assertCarryOverCommitments({ published });
|
|
178
246
|
const updated = await updateDID({
|
|
@@ -188,7 +256,7 @@ export async function signAccountEntry({ idStore, signer, build, skip, published
|
|
|
188
256
|
idStore,
|
|
189
257
|
updated,
|
|
190
258
|
ifMatch: published.etag,
|
|
191
|
-
logOnly
|
|
259
|
+
logOnly,
|
|
192
260
|
pinStore,
|
|
193
261
|
logId
|
|
194
262
|
});
|
|
@@ -231,9 +299,32 @@ async function publishAccountEntry({ idStore, updated, ifMatch, logOnly, pinStor
|
|
|
231
299
|
webDoc: updated.webDoc
|
|
232
300
|
});
|
|
233
301
|
}
|
|
234
|
-
|
|
235
|
-
await pinStore.write({ logId, pin: pinOfLog(updated.log) });
|
|
236
|
-
}
|
|
302
|
+
await advanceLogPin({ pinStore, logId, log: updated.log });
|
|
237
303
|
return written;
|
|
238
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* The head a ceremony concludes on when its entry turns out to be
|
|
307
|
+
* unnecessary -- the client is already enrolled, the removal already landed.
|
|
308
|
+
* There is nothing to publish either way; what differs is the `did:web`
|
|
309
|
+
* projection. The client arm invokes as the account's controller, so it
|
|
310
|
+
* republishes the projection and heals a lag a torn earlier run of the same
|
|
311
|
+
* ceremony left behind. The ladder arm's bridge reaches `did.jsonl` alone, so
|
|
312
|
+
* it takes the read verbatim and leaves the projection to
|
|
313
|
+
* `ensureDidWebProjection`.
|
|
314
|
+
*
|
|
315
|
+
* @param options {object}
|
|
316
|
+
* @param options.idStore {WebvhIdStore}
|
|
317
|
+
* @param options.signer {AccountLogSigner} the arm the ceremony acts as
|
|
318
|
+
* @param options.published {PublishedWebvhLog} the read the build stood on
|
|
319
|
+
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
|
|
320
|
+
*/
|
|
321
|
+
export async function concludeUnchangedAccountEntry({ idStore, signer, published }) {
|
|
322
|
+
if (signer.kind === 'client') {
|
|
323
|
+
return {
|
|
324
|
+
...(await concludeWithPublishedLog({ idStore, published })),
|
|
325
|
+
log: published.log
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
return { did: published.did, doc: published.doc, log: published.log };
|
|
329
|
+
}
|
|
239
330
|
//# sourceMappingURL=accountEntry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountEntry.js","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"accountEntry.js","sourceRoot":"","sources":["../../src/webvh/accountEntry.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,14 @@
|
|
|
8
8
|
* through it: the unlock record's `did.jsonl` bridge into the account log
|
|
9
9
|
* (world-readable, so its reads stay unauthenticated), and the client
|
|
10
10
|
* annex sibling delegation into a generation's capability-gated `gen-`
|
|
11
|
-
* collection (GET and PUT, so its reads invoke the same delegation).
|
|
11
|
+
* collection (GET and PUT, so its reads invoke the same delegation). Which
|
|
12
|
+
* read a store performs is decided here from the wallet Space layout, never
|
|
13
|
+
* by the caller: a world-readable roster collection (`isPublic` on its
|
|
14
|
+
* provisioning spec) is fetched unauthenticated, and every other collection
|
|
15
|
+
* -- an annex generation included, which the roster never lists -- is read
|
|
16
|
+
* through the delegation. An unauthenticated GET at a capability-gated
|
|
17
|
+
* resource, or a delegated GET under a PUT-only bridge, would each fail only
|
|
18
|
+
* at the server.
|
|
12
19
|
*
|
|
13
20
|
* URLs are built with was-client's paths helpers, so a sub-path deployment
|
|
14
21
|
* addresses exactly the resource the delegation's target names -- the
|
|
@@ -37,31 +44,30 @@ export type DelegatedWebvhLogStore = Pick<WebvhIdStore, 'getIdResourceRaw' | 'pu
|
|
|
37
44
|
/**
|
|
38
45
|
* Builds a delegated log store over one collection of one Space.
|
|
39
46
|
*
|
|
40
|
-
* Reads:
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* delegation allows GET and PUT).
|
|
45
|
-
*
|
|
47
|
+
* Reads: on a world-readable collection (the `id` collection's account log
|
|
48
|
+
* -- the bridge delegation allows PUT only) the GET is an unauthenticated
|
|
49
|
+
* fetch; on every other collection it invokes the same delegation (the annex
|
|
50
|
+
* inventory -- the generation collection is capability-gated and the sibling
|
|
51
|
+
* delegation allows GET and PUT). The choice is read off the wallet Space
|
|
52
|
+
* roster (`isPublic`), so no caller states it. Either way a 404 reads as
|
|
53
|
+
* "not published" and the response's ETag rides back as the compare-and-swap
|
|
54
|
+
* token.
|
|
46
55
|
*
|
|
47
56
|
* @param options {object}
|
|
48
57
|
* @param options.host {string} the storage server's base URL
|
|
49
58
|
* @param options.spaceId {string} the Space holding the collection
|
|
50
59
|
* @param options.collectionId {string} the collection holding the log
|
|
51
60
|
* @param options.delegation {IZcap} the pre-minted delegation the writes
|
|
52
|
-
* (and,
|
|
61
|
+
* (and, on a capability-gated collection, the reads) invoke
|
|
53
62
|
* @param options.zcapClient {ZcapClient} the ezcap client holding the
|
|
54
63
|
* invoking signer
|
|
55
|
-
* @param [options.publicRead] {boolean} read with an unauthenticated fetch
|
|
56
|
-
* instead of invoking the delegation (default `false`)
|
|
57
64
|
* @returns {DelegatedWebvhLogStore}
|
|
58
65
|
*/
|
|
59
|
-
export declare function delegatedWebvhLogStore({ host, spaceId, collectionId, delegation, zcapClient
|
|
66
|
+
export declare function delegatedWebvhLogStore({ host, spaceId, collectionId, delegation, zcapClient }: {
|
|
60
67
|
host: string;
|
|
61
68
|
spaceId: string;
|
|
62
69
|
collectionId: string;
|
|
63
70
|
delegation: IZcap;
|
|
64
71
|
zcapClient: ZcapClient;
|
|
65
|
-
publicRead?: boolean;
|
|
66
72
|
}): DelegatedWebvhLogStore;
|
|
67
73
|
//# sourceMappingURL=delegatedLogStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegatedLogStore.d.ts","sourceRoot":"","sources":["../../src/webvh/delegatedLogStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"delegatedLogStore.d.ts","sourceRoot":"","sources":["../../src/webvh/delegatedLogStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,YAAY,EACZ,kBAAkB,GAAG,eAAe,CACrC,CAAA;AAkCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACX,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,sBAAsB,CAgGzB"}
|