@interop/wallet-core 0.61.0 → 0.65.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 +41 -16
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +46 -26
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +91 -39
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
- package/dist/clientAnnex/establish.d.ts +55 -34
- package/dist/clientAnnex/establish.d.ts.map +1 -1
- package/dist/clientAnnex/establish.js +102 -56
- package/dist/clientAnnex/establish.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts +16 -2
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +11 -9
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +126 -35
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +208 -60
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/gc.d.ts +3 -2
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +7 -7
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts +101 -33
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +559 -212
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +21 -5
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +24 -5
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladder.d.ts +304 -18
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +942 -64
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +261 -28
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +521 -295
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +193 -38
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +445 -190
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/mend.d.ts +12 -6
- package/dist/clientAnnex/mend.d.ts.map +1 -1
- package/dist/clientAnnex/mend.js +26 -12
- package/dist/clientAnnex/mend.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +38 -11
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +177 -55
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/spaceCapability.d.ts +123 -0
- package/dist/clientAnnex/spaceCapability.d.ts.map +1 -0
- package/dist/clientAnnex/spaceCapability.js +152 -0
- package/dist/clientAnnex/spaceCapability.js.map +1 -0
- package/dist/clientAnnex/stages.d.ts +63 -0
- package/dist/clientAnnex/stages.d.ts.map +1 -0
- package/dist/clientAnnex/stages.js +64 -0
- package/dist/clientAnnex/stages.js.map +1 -0
- package/dist/clientAnnex/zcap.d.ts +1 -1
- package/dist/clientAnnex/zcap.d.ts.map +1 -1
- package/dist/clientAnnex/zcap.js +42 -35
- package/dist/clientAnnex/zcap.js.map +1 -1
- package/dist/clients/policy.d.ts +15 -1
- package/dist/clients/policy.d.ts.map +1 -1
- package/dist/clients/policy.js +12 -6
- package/dist/clients/policy.js.map +1 -1
- package/dist/clients/revocation.d.ts +18 -10
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +13 -5
- package/dist/clients/revocation.js.map +1 -1
- package/dist/clients/rosterPolicy.d.ts +10 -2
- package/dist/clients/rosterPolicy.d.ts.map +1 -1
- package/dist/clients/rosterPolicy.js +41 -24
- package/dist/clients/rosterPolicy.js.map +1 -1
- package/dist/descriptors/acquire.d.ts.map +1 -1
- package/dist/descriptors/acquire.js +6 -23
- package/dist/descriptors/acquire.js.map +1 -1
- package/dist/descriptors/cipher.d.ts.map +1 -1
- package/dist/descriptors/cipher.js +5 -0
- package/dist/descriptors/cipher.js.map +1 -1
- package/dist/descriptors/errors.d.ts +43 -0
- package/dist/descriptors/errors.d.ts.map +1 -0
- package/dist/descriptors/errors.js +45 -0
- package/dist/descriptors/errors.js.map +1 -0
- package/dist/descriptors/index.d.ts +5 -0
- package/dist/descriptors/index.d.ts.map +1 -1
- package/dist/descriptors/index.js +5 -0
- package/dist/descriptors/index.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts +37 -10
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +52 -15
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +42 -11
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +80 -22
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/genesis/index.d.ts +3 -1
- package/dist/genesis/index.d.ts.map +1 -1
- package/dist/genesis/index.js +3 -1
- package/dist/genesis/index.js.map +1 -1
- package/dist/identity/agents.d.ts +17 -1
- package/dist/identity/agents.d.ts.map +1 -1
- package/dist/identity/agents.js +24 -8
- package/dist/identity/agents.js.map +1 -1
- package/dist/identity/index.d.ts +3 -1
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +3 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/keyring/index.d.ts +2 -1
- package/dist/keyring/index.d.ts.map +1 -1
- package/dist/keyring/index.js +2 -1
- package/dist/keyring/index.js.map +1 -1
- package/dist/keyring/record.d.ts.map +1 -1
- package/dist/keyring/record.js +3 -6
- package/dist/keyring/record.js.map +1 -1
- package/dist/keyring/unlockSpace.d.ts +14 -5
- package/dist/keyring/unlockSpace.d.ts.map +1 -1
- package/dist/keyring/unlockSpace.js +31 -36
- package/dist/keyring/unlockSpace.js.map +1 -1
- package/dist/keys/index.d.ts +10 -6
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +9 -5
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/rosterLogStore.d.ts +12 -11
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +15 -13
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/rosterStore.d.ts +3 -6
- package/dist/keys/rosterStore.d.ts.map +1 -1
- package/dist/keys/rosterStore.js +10 -9
- package/dist/keys/rosterStore.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts.map +1 -1
- package/dist/keys/spaceEpochs.js +2 -3
- package/dist/keys/spaceEpochs.js.map +1 -1
- package/dist/keys/userKeyRoster.d.ts +89 -9
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +262 -19
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/keys/userKeyRosterCascade.d.ts +7 -6
- package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
- package/dist/keys/userKeyRosterCascade.js +7 -6
- package/dist/keys/userKeyRosterCascade.js.map +1 -1
- package/dist/keys/wasLabelsStore.d.ts +9 -2
- package/dist/keys/wasLabelsStore.d.ts.map +1 -1
- package/dist/keys/wasLabelsStore.js +14 -6
- package/dist/keys/wasLabelsStore.js.map +1 -1
- package/dist/log.d.ts +7 -2
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +6 -1
- package/dist/log.js.map +1 -1
- 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/recoveryCode.d.ts +27 -7
- package/dist/recovery/recoveryCode.d.ts.map +1 -1
- package/dist/recovery/recoveryCode.js +18 -6
- package/dist/recovery/recoveryCode.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +4 -1
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +25 -36
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +117 -65
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +279 -126
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/request/classify.d.ts +32 -8
- package/dist/request/classify.d.ts.map +1 -1
- package/dist/request/classify.js +39 -14
- package/dist/request/classify.js.map +1 -1
- package/dist/request/ephemeralExchange.d.ts +1 -6
- package/dist/request/ephemeralExchange.d.ts.map +1 -1
- package/dist/request/ephemeralExchange.js.map +1 -1
- package/dist/request/onboarding.d.ts.map +1 -1
- package/dist/request/onboarding.js +2 -2
- package/dist/request/onboarding.js.map +1 -1
- package/dist/request/parse.d.ts.map +1 -1
- package/dist/request/parse.js +2 -3
- package/dist/request/parse.js.map +1 -1
- package/dist/resourceLog/controller.d.ts +34 -12
- package/dist/resourceLog/controller.d.ts.map +1 -1
- package/dist/resourceLog/controller.js +79 -86
- package/dist/resourceLog/controller.js.map +1 -1
- package/dist/resourceLog/document.d.ts +182 -0
- package/dist/resourceLog/document.d.ts.map +1 -0
- package/dist/resourceLog/document.js +159 -0
- package/dist/resourceLog/document.js.map +1 -0
- package/dist/resourceLog/errors.d.ts +47 -8
- package/dist/resourceLog/errors.d.ts.map +1 -1
- package/dist/resourceLog/errors.js +54 -8
- package/dist/resourceLog/errors.js.map +1 -1
- package/dist/resourceLog/index.d.ts +7 -3
- package/dist/resourceLog/index.d.ts.map +1 -1
- package/dist/resourceLog/index.js +7 -3
- package/dist/resourceLog/index.js.map +1 -1
- package/dist/resourceLog/ladderRungs.d.ts +35 -0
- package/dist/resourceLog/ladderRungs.d.ts.map +1 -0
- package/dist/resourceLog/ladderRungs.js +352 -0
- package/dist/resourceLog/ladderRungs.js.map +1 -0
- package/dist/resourceLog/license.d.ts +42 -17
- package/dist/resourceLog/license.d.ts.map +1 -1
- package/dist/resourceLog/license.js +38 -24
- package/dist/resourceLog/license.js.map +1 -1
- package/dist/space/activity.d.ts +15 -15
- package/dist/space/activity.d.ts.map +1 -1
- package/dist/space/activity.js +15 -15
- package/dist/space/activity.js.map +1 -1
- package/dist/space/collections.d.ts +11 -0
- package/dist/space/collections.d.ts.map +1 -1
- package/dist/space/collections.js +13 -0
- package/dist/space/collections.js.map +1 -1
- package/dist/space/deleteSpace.d.ts +28 -0
- package/dist/space/deleteSpace.d.ts.map +1 -0
- package/dist/space/deleteSpace.js +44 -0
- package/dist/space/deleteSpace.js.map +1 -0
- package/dist/space/errors.d.ts.map +1 -1
- package/dist/space/errors.js +0 -1
- package/dist/space/errors.js.map +1 -1
- package/dist/space/index.d.ts +6 -0
- package/dist/space/index.d.ts.map +1 -1
- package/dist/space/index.js +6 -0
- package/dist/space/index.js.map +1 -1
- package/dist/space/plaintextCollection.d.ts +43 -0
- package/dist/space/plaintextCollection.d.ts.map +1 -0
- package/dist/space/plaintextCollection.js +17 -0
- package/dist/space/plaintextCollection.js.map +1 -0
- package/dist/stages.d.ts +23 -0
- package/dist/stages.d.ts.map +1 -0
- package/dist/stages.js +23 -0
- package/dist/stages.js.map +1 -0
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +7 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/push.js +4 -4
- package/dist/sync/push.js.map +1 -1
- package/dist/sync/remint.js +2 -2
- package/dist/sync/remint.js.map +1 -1
- package/dist/sync/types.d.ts +41 -1
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +47 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/unlock/index.d.ts +6 -2
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +5 -1
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/retire.d.ts +95 -14
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +102 -10
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingClient.d.ts.map +1 -1
- package/dist/unlock/standingClient.js +5 -1
- package/dist/unlock/standingClient.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +341 -49
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +608 -164
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/webvh/accountEntry.d.ts +146 -0
- package/dist/webvh/accountEntry.d.ts.map +1 -0
- package/dist/webvh/accountEntry.js +239 -0
- package/dist/webvh/accountEntry.js.map +1 -0
- package/dist/webvh/didWeb.d.ts +12 -7
- package/dist/webvh/didWeb.d.ts.map +1 -1
- package/dist/webvh/didWeb.js +2 -2
- package/dist/webvh/didWeb.js.map +1 -1
- package/dist/webvh/didWebProjection.d.ts +164 -0
- package/dist/webvh/didWebProjection.d.ts.map +1 -0
- package/dist/webvh/didWebProjection.js +230 -0
- package/dist/webvh/didWebProjection.js.map +1 -0
- package/dist/webvh/didWebvh.d.ts +278 -138
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +314 -345
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/enrollClient.d.ts +65 -0
- package/dist/webvh/enrollClient.d.ts.map +1 -0
- package/dist/webvh/enrollClient.js +172 -0
- package/dist/webvh/enrollClient.js.map +1 -0
- package/dist/webvh/index.d.ts +37 -12
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +33 -10
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/listClients.d.ts +1 -33
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +2 -28
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/revokeClient.d.ts +89 -11
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +182 -47
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/standingZcap.d.ts +61 -14
- package/dist/webvh/standingZcap.d.ts.map +1 -1
- package/dist/webvh/standingZcap.js +91 -0
- package/dist/webvh/standingZcap.js.map +1 -1
- package/dist/webvh/verifyLog.d.ts +59 -5
- package/dist/webvh/verifyLog.d.ts.map +1 -1
- package/dist/webvh/verifyLog.js +76 -11
- package/dist/webvh/verifyLog.js.map +1 -1
- package/dist/webvh/wasIdStore.d.ts +8 -8
- package/dist/webvh/wasIdStore.d.ts.map +1 -1
- package/dist/webvh/wasIdStore.js +39 -14
- package/dist/webvh/wasIdStore.js.map +1 -1
- package/dist/webvh/zcap.d.ts +14 -1
- package/dist/webvh/zcap.d.ts.map +1 -1
- package/dist/webvh/zcap.js +3 -27
- package/dist/webvh/zcap.js.map +1 -1
- package/package.json +5 -5
- package/dist/webvh/keyAgreement.d.ts +0 -72
- package/dist/webvh/keyAgreement.d.ts.map +0 -1
- package/dist/webvh/keyAgreement.js +0 -47
- package/dist/webvh/keyAgreement.js.map +0 -1
package/dist/webvh/didWebvh.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { DIDDoc, DIDLog, Signer, VerificationMethod } from '@interop/did-method-webvh';
|
|
2
|
-
import type { KeystoreAgent } from '@interop/webkms-client';
|
|
3
2
|
import { type ResourceLogHeadPin, type ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
4
3
|
import type { DidWebKeyMap } from './didWeb.js';
|
|
5
4
|
/**
|
|
@@ -40,6 +39,14 @@ export interface WebvhIdStore {
|
|
|
40
39
|
* `'PreconditionFailedError'` (was-client's class; any implementation may
|
|
41
40
|
* throw its own error carrying that name), which this module maps to
|
|
42
41
|
* {@link WebvhLogConflictError}.
|
|
42
|
+
*
|
|
43
|
+
* The returned `etag` is the new validator of the resource just written --
|
|
44
|
+
* the `ifMatch` token for the next entry built on it, so a ceremony that
|
|
45
|
+
* publishes can hand a compare-and-swap-capable head to the stage after it
|
|
46
|
+
* rather than re-reading the log it just wrote. It is absent against a
|
|
47
|
+
* backend that does not version resources, and an implementation that
|
|
48
|
+
* resolves `void` is accepted verbatim (the head it produced then carries
|
|
49
|
+
* no ETag and the next publish degrades to an unconditional write).
|
|
43
50
|
*/
|
|
44
51
|
putIdResource(options: {
|
|
45
52
|
resourceId: string;
|
|
@@ -47,13 +54,40 @@ export interface WebvhIdStore {
|
|
|
47
54
|
contentType?: string;
|
|
48
55
|
ifMatch?: string;
|
|
49
56
|
ifNoneMatch?: boolean;
|
|
50
|
-
}): Promise<
|
|
57
|
+
}): Promise<{
|
|
58
|
+
etag?: string;
|
|
59
|
+
} | void>;
|
|
51
60
|
/**
|
|
52
|
-
*
|
|
61
|
+
* The parsed `keys.json` body together with its ETag validator, or
|
|
62
|
+
* `undefined` when the map is not written yet. Optional: a store that does
|
|
63
|
+
* not offer it keeps the pre-convergence behavior -- the genesis' rewrite
|
|
64
|
+
* has no served map to re-read, so a lost precondition propagates, and the
|
|
65
|
+
* adopt branch backfills no `webvh` block.
|
|
66
|
+
*/
|
|
67
|
+
getKeyMapRaw?(): Promise<{
|
|
68
|
+
content: unknown;
|
|
69
|
+
etag?: string;
|
|
70
|
+
} | undefined>;
|
|
71
|
+
/**
|
|
72
|
+
* Writes `keys.json` in the private `key-map` collection, under the write
|
|
73
|
+
* precondition the caller states: `ifNoneMatch` for the KMS stage's
|
|
74
|
+
* create-if-absent write, `ifMatch` for the genesis' rewrite of the map
|
|
75
|
+
* that write produced. Neither stated, the write is unconditional.
|
|
76
|
+
*
|
|
77
|
+
* The returned `etag` is the new validator of the resource just written --
|
|
78
|
+
* the `ifMatch` token for the rewrite built on it, so the stage that
|
|
79
|
+
* records the KMS binding hands a compare-and-swap-capable map to the
|
|
80
|
+
* stage that adds the account DID. It is absent against a backend that
|
|
81
|
+
* does not version resources, and an implementation that resolves `void`
|
|
82
|
+
* is accepted verbatim (the rewrite then degrades to unconditional).
|
|
53
83
|
*/
|
|
54
84
|
putKeyMap(options: {
|
|
55
85
|
content: object;
|
|
56
|
-
|
|
86
|
+
ifMatch?: string;
|
|
87
|
+
ifNoneMatch?: boolean;
|
|
88
|
+
}): Promise<{
|
|
89
|
+
etag?: string;
|
|
90
|
+
} | void>;
|
|
57
91
|
}
|
|
58
92
|
/**
|
|
59
93
|
* The Multikey verification-method type the did:webvh data model uses for both
|
|
@@ -251,8 +285,9 @@ export declare function assertCanonicalClientKeys({ signingKeyMultibase, keyAgre
|
|
|
251
285
|
/**
|
|
252
286
|
* The one builder of the ladder VM's published verification method -- the
|
|
253
287
|
* STABLE SIBLING key a standing credential derives from its ladder seed
|
|
254
|
-
* (`@interop/wallet-core/unlock`, `ladderVmKeyMultibase`), published
|
|
255
|
-
*
|
|
288
|
+
* (`@interop/wallet-core/unlock`, `ladderVmKeyMultibase`), published for as
|
|
289
|
+
* long as that credential stands and co-resident with whatever clients the
|
|
290
|
+
* account has enrolled. The shape is forced, not
|
|
256
291
|
* preferred: @interop/zcap's `isController` flat-compares the delegating VM's
|
|
257
292
|
* `controller` string against the parent capability's controller (which the
|
|
258
293
|
* server synthesizes as the account did:webvh), and only an
|
|
@@ -263,9 +298,9 @@ export declare function assertCanonicalClientKeys({ signingKeyMultibase, keyAgre
|
|
|
263
298
|
* The method is listed under `assertionMethod` and `capabilityDelegation`
|
|
264
299
|
* ONLY -- no `authentication`, no `capabilityInvocation`, no `keyAgreement`
|
|
265
300
|
* twin, and no marker property. Recognition is by that relation asymmetry
|
|
266
|
-
* (`ladderVmIds
|
|
267
|
-
* absent from `capabilityInvocation` is the
|
|
268
|
-
* structurally out of every client listing.
|
|
301
|
+
* (`ladderVmIds`, in the shared account-document readers): a
|
|
302
|
+
* `capabilityDelegation` member absent from `capabilityInvocation` is the
|
|
303
|
+
* ladder VM, which also keeps it structurally out of every client listing.
|
|
269
304
|
*
|
|
270
305
|
* Because the key is derived, a reinstall republishes the SAME key under the
|
|
271
306
|
* SAME id, and a still-unexpired delegation it signed resumes verifying the
|
|
@@ -293,13 +328,25 @@ export interface DidWebvhBlock {
|
|
|
293
328
|
did?: string;
|
|
294
329
|
}
|
|
295
330
|
/**
|
|
296
|
-
* `keys.json` v2: the
|
|
297
|
-
*
|
|
298
|
-
*
|
|
331
|
+
* `keys.json` v2: the KMS binding map plus the optional `webvh` block. The
|
|
332
|
+
* parse/guard tolerates and preserves the block, so a round-trip through the
|
|
333
|
+
* KMS-authentication stage never strips it.
|
|
299
334
|
*/
|
|
300
335
|
export type DidWebKeyMapV2 = DidWebKeyMap & {
|
|
301
336
|
webvh?: DidWebvhBlock;
|
|
302
337
|
};
|
|
338
|
+
/**
|
|
339
|
+
* What the KMS-authentication stage hands the genesis: the key map to fold
|
|
340
|
+
* into the genesis entry, and the `keys.json` ETag the stage's own write
|
|
341
|
+
* produced, which the genesis' rewrite carries as its `ifMatch`. The ETag is
|
|
342
|
+
* absent when the stage wrote nothing (it adopted a served map) or when the
|
|
343
|
+
* backend versions no resources, and the rewrite then degrades to an
|
|
344
|
+
* unconditional write.
|
|
345
|
+
*/
|
|
346
|
+
export interface KmsAuthenticationBinding {
|
|
347
|
+
keys: DidWebKeyMapV2;
|
|
348
|
+
etag?: string;
|
|
349
|
+
}
|
|
303
350
|
/**
|
|
304
351
|
* The `did:webvh:{SCID}:<host>:space:<spaceId>:<collectionId>` controller
|
|
305
352
|
* template, with the literal `{SCID}` placeholder the library replaces at
|
|
@@ -356,6 +403,25 @@ export declare function updateKeyMultibase({ seed }: {
|
|
|
356
403
|
export declare function updateKeySigner({ seed }: {
|
|
357
404
|
seed: Uint8Array;
|
|
358
405
|
}): Promise<Signer>;
|
|
406
|
+
/**
|
|
407
|
+
* What a create path hands back: the log, its `did:web` projection, and the
|
|
408
|
+
* resolved state `createDID` already returned. The three resolved members are
|
|
409
|
+
* what let a caller that publishes this log assemble a
|
|
410
|
+
* {@link PublishedWebvhLog} for the head it just wrote -- pairing them with
|
|
411
|
+
* the publish's own ETag -- rather than resolving the log a second time.
|
|
412
|
+
*/
|
|
413
|
+
export interface CreatedWebvhLog {
|
|
414
|
+
log: DIDLog;
|
|
415
|
+
webDoc: object;
|
|
416
|
+
did: string;
|
|
417
|
+
/**
|
|
418
|
+
* The resolved document, detached from the genesis entry's own `state`, so
|
|
419
|
+
* it aliases exactly as a read-side head's document does.
|
|
420
|
+
*/
|
|
421
|
+
doc: DIDDoc;
|
|
422
|
+
updateKeys: string[];
|
|
423
|
+
nextKeyHashes: string[];
|
|
424
|
+
}
|
|
359
425
|
/**
|
|
360
426
|
* Builds a genesis entry's `nextKeyHashes`: the active update key's own
|
|
361
427
|
* carry-over hash beside the staged key's (the carry-over convention in the
|
|
@@ -409,7 +475,7 @@ export declare function genesisNextKeyHashes({ activeKeyMultibase, stagedKeyMult
|
|
|
409
475
|
* @param options.updateKeyPublicKeyMultibase {string} ladder rung 0's key
|
|
410
476
|
* @param options.nextKeyHashes {string[]} [hash(rung 0), hash(rung 1)]
|
|
411
477
|
* @param options.signer {Signer} ladder rung 0's signer
|
|
412
|
-
* @returns {Promise<
|
|
478
|
+
* @returns {Promise<CreatedWebvhLog>}
|
|
413
479
|
*/
|
|
414
480
|
export declare function createLadderAnchoredWebvhLog({ wasServerUrl, spaceId, didWebKeys, ladderVmKeyMultibase, credentialKeyAgreementMethod, updateKeyPublicKeyMultibase, nextKeyHashes, signer }: {
|
|
415
481
|
wasServerUrl: string;
|
|
@@ -420,11 +486,7 @@ export declare function createLadderAnchoredWebvhLog({ wasServerUrl, spaceId, di
|
|
|
420
486
|
updateKeyPublicKeyMultibase: string;
|
|
421
487
|
nextKeyHashes: string[];
|
|
422
488
|
signer: Signer;
|
|
423
|
-
}): Promise<
|
|
424
|
-
log: DIDLog;
|
|
425
|
-
webDoc: object;
|
|
426
|
-
did: string;
|
|
427
|
-
}>;
|
|
489
|
+
}): Promise<CreatedWebvhLog>;
|
|
428
490
|
/**
|
|
429
491
|
* Thrown when a conditional publish of `did.jsonl` lost a race to a concurrent
|
|
430
492
|
* ceremony: the log moved on between the read this ceremony built its entry on
|
|
@@ -465,14 +527,59 @@ export declare function withLogConflictRetry<T>(run: () => Promise<T>): Promise<
|
|
|
465
527
|
* @param options.log {DIDLog}
|
|
466
528
|
* @param [options.ifMatch] {string} publish only if the log is unchanged
|
|
467
529
|
* @param [options.ifNoneMatch] {boolean} publish only if the log is absent
|
|
468
|
-
* @returns {Promise<
|
|
530
|
+
* @returns {Promise<{ etag?: string }>} the new validator of the log just
|
|
531
|
+
* written, for a stage building its entry on this head; absent against a
|
|
532
|
+
* backend that serves no ETags
|
|
469
533
|
*/
|
|
470
534
|
export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
|
|
471
535
|
store: Pick<WebvhIdStore, 'putIdResource'>;
|
|
472
536
|
log: DIDLog;
|
|
473
537
|
ifMatch?: string;
|
|
474
538
|
ifNoneMatch?: boolean;
|
|
475
|
-
}): Promise<
|
|
539
|
+
}): Promise<{
|
|
540
|
+
etag?: string;
|
|
541
|
+
}>;
|
|
542
|
+
/**
|
|
543
|
+
* THE POSTAMBLE: publishes `did.jsonl` -- the log only, never `did.json` (a
|
|
544
|
+
* caller writing through a bridge delegation is authorized for nothing else)
|
|
545
|
+
* -- and advances the caller's chain-head pin to what it just published, so a
|
|
546
|
+
* host rolling the log back straight afterwards is refused on the next read.
|
|
547
|
+
*
|
|
548
|
+
* So an entry published here leaves the `did:web` projection standing at
|
|
549
|
+
* whatever it said before: a ceremony whose entry REMOVES inventory (a
|
|
550
|
+
* removal, a retirement) must republish the projection itself before the
|
|
551
|
+
* entry lands, and a projection left behind by one that did not is mended by
|
|
552
|
+
* `ensureDidWebProjection` at the next visit holding a writer for the `id`
|
|
553
|
+
* collection (a controller-invoking client, or a transient visit under its
|
|
554
|
+
* generation delegation).
|
|
555
|
+
* The publish is conditional on the read the entry was built on; a lost race
|
|
556
|
+
* surfaces as a {@link WebvhLogConflictError} (the mapping lives in
|
|
557
|
+
* {@link putLogResource}).
|
|
558
|
+
*
|
|
559
|
+
* The two halves are one function on purpose. Separating them is what leaves
|
|
560
|
+
* a pin standing behind an entry this client itself published, the gap that
|
|
561
|
+
* already forced `BuiltOnHeadNotReachedError` into existence as a
|
|
562
|
+
* compensating class.
|
|
563
|
+
*
|
|
564
|
+
* @param options {object}
|
|
565
|
+
* @param options.store {object} anything with the seam's `putIdResource`
|
|
566
|
+
* @param options.log {DIDLog} the log this entry produced
|
|
567
|
+
* @param [options.ifMatch] {string} publish only if `did.jsonl` is unchanged
|
|
568
|
+
* @param [options.pinStore] {ResourceLogPinStore} the caller's chain-head
|
|
569
|
+
* pins; the pin advances only when a `logId` names its slot
|
|
570
|
+
* @param [options.logId] {string} the log's pin slot
|
|
571
|
+
* @returns {Promise<{ etag?: string }>} the new validator of the log this
|
|
572
|
+
* entry just published, for a stage building on the post-entry head
|
|
573
|
+
*/
|
|
574
|
+
export declare function publishEntryPinned({ store, log, ifMatch, pinStore, logId }: {
|
|
575
|
+
store: Pick<WebvhIdStore, 'putIdResource'>;
|
|
576
|
+
log: DIDLog;
|
|
577
|
+
ifMatch?: string;
|
|
578
|
+
pinStore?: ResourceLogPinStore;
|
|
579
|
+
logId?: string;
|
|
580
|
+
}): Promise<{
|
|
581
|
+
etag?: string;
|
|
582
|
+
}>;
|
|
476
583
|
/**
|
|
477
584
|
* Publishes an already-created log: PUT `did.jsonl` (`text/jsonl`) then PUT
|
|
478
585
|
* `did.json` from `webDoc` (`application/did+json`, adopting the webvh
|
|
@@ -489,8 +596,11 @@ export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
|
|
|
489
596
|
* after the log's compare-and-swap was WON, so it is already serialized behind
|
|
490
597
|
* that win; the log is the source of truth and the projection a derived cache;
|
|
491
598
|
* and {@link concludeWithPublishedLog} re-derives and republishes the
|
|
492
|
-
* projection from the resolved log on
|
|
493
|
-
*
|
|
599
|
+
* projection from the resolved log on the no-op path of every ceremony that
|
|
600
|
+
* reaches this function, so a torn publish on one of those paths is healed by
|
|
601
|
+
* the next run of the same ceremony. That reach is the controller-invoking
|
|
602
|
+
* paths alone; `ensureDidWebProjection` is what mends a projection a
|
|
603
|
+
* ladder-signed entry ({@link publishEntryPinned}) left behind.
|
|
494
604
|
*
|
|
495
605
|
* @param options {object}
|
|
496
606
|
* @param options.idStore {WebvhIdStore}
|
|
@@ -498,7 +608,9 @@ export declare function putLogResource({ store, log, ifMatch, ifNoneMatch }: {
|
|
|
498
608
|
* @param options.webDoc {object}
|
|
499
609
|
* @param [options.ifMatch] {string} publish only if `did.jsonl` is unchanged
|
|
500
610
|
* @param [options.ifNoneMatch] {boolean} publish only if `did.jsonl` is absent
|
|
501
|
-
* @returns {Promise<
|
|
611
|
+
* @returns {Promise<{ etag?: string }>} the LOG's new validator, never the
|
|
612
|
+
* projection's: the projection is a derived cache, and only the log's ETag
|
|
613
|
+
* is a precondition anything is built on
|
|
502
614
|
*/
|
|
503
615
|
export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneMatch }: {
|
|
504
616
|
idStore: WebvhIdStore;
|
|
@@ -506,7 +618,9 @@ export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneM
|
|
|
506
618
|
webDoc: object;
|
|
507
619
|
ifMatch?: string;
|
|
508
620
|
ifNoneMatch?: boolean;
|
|
509
|
-
}): Promise<
|
|
621
|
+
}): Promise<{
|
|
622
|
+
etag?: string;
|
|
623
|
+
}>;
|
|
510
624
|
/**
|
|
511
625
|
* The shared guard-and-publish tail of every ceremony that extends the log
|
|
512
626
|
* through `updateDID`: the parallel `webDoc` must be there (it is, whenever
|
|
@@ -520,7 +634,7 @@ export declare function publishWebvhLog({ idStore, log, webDoc, ifMatch, ifNoneM
|
|
|
520
634
|
* @param [options.updated.webDoc] {object}
|
|
521
635
|
* @param [options.ifMatch] {string} the ETag of the read this entry was built
|
|
522
636
|
* on
|
|
523
|
-
* @returns {Promise<
|
|
637
|
+
* @returns {Promise<{ etag?: string }>} the log's new validator
|
|
524
638
|
*/
|
|
525
639
|
export declare function publishUpdatedLog({ idStore, updated, ifMatch }: {
|
|
526
640
|
idStore: WebvhIdStore;
|
|
@@ -529,23 +643,64 @@ export declare function publishUpdatedLog({ idStore, updated, ifMatch }: {
|
|
|
529
643
|
webDoc?: object;
|
|
530
644
|
};
|
|
531
645
|
ifMatch?: string;
|
|
532
|
-
}): Promise<
|
|
646
|
+
}): Promise<{
|
|
647
|
+
etag?: string;
|
|
648
|
+
}>;
|
|
533
649
|
/**
|
|
534
|
-
* Writes `keys.json` v2: the
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
650
|
+
* Writes `keys.json` v2: the KMS binding plus the `webvh` block. Exported for
|
|
651
|
+
* the ladder-anchored ensure, whose create path records the account DID the
|
|
652
|
+
* same way the enrolled-client one does.
|
|
653
|
+
*
|
|
654
|
+
* The body is CONSTRUCTED from the two members the map carries rather than
|
|
655
|
+
* spread from the caller's, so a legacy `keyAgreement` binding a stored map
|
|
656
|
+
* still holds is dropped by this rewrite.
|
|
657
|
+
*
|
|
658
|
+
* This is the genesis' rewrite of the map the KMS stage created one stage
|
|
659
|
+
* earlier, so it carries that write's ETag as its `ifMatch`. A caller holding
|
|
660
|
+
* no ETag (a backend that versions nothing) writes unconditionally.
|
|
661
|
+
*
|
|
662
|
+
* A lost precondition CONVERGES rather than propagating, since the genesis
|
|
663
|
+
* entry has already published by the time this runs and a bookkeeping resource
|
|
664
|
+
* must not fail a ceremony standing behind it: the served map is re-read, a
|
|
665
|
+
* map already naming this DID under this binding is left alone, and anything
|
|
666
|
+
* else is rewritten once under the served ETag. A second lost precondition
|
|
667
|
+
* propagates. Without the store's optional read there is nothing to converge
|
|
668
|
+
* on, and the first failure propagates.
|
|
538
669
|
*
|
|
539
670
|
* @param options {object}
|
|
540
671
|
* @param options.idStore {WebvhIdStore}
|
|
541
|
-
* @param options.didWebKeys {DidWebKeyMap}
|
|
672
|
+
* @param options.didWebKeys {DidWebKeyMap} the binding to record, which on
|
|
673
|
+
* the create path is the one this run published in the genesis entry
|
|
542
674
|
* @param options.webvh {DidWebvhBlock}
|
|
675
|
+
* @param [options.ifMatch] {string} the ETag the KMS stage's own write
|
|
676
|
+
* returned
|
|
543
677
|
* @returns {Promise<void>}
|
|
544
678
|
*/
|
|
545
|
-
export declare function writeKeysJson({ idStore, didWebKeys, webvh }: {
|
|
679
|
+
export declare function writeKeysJson({ idStore, didWebKeys, webvh, ifMatch }: {
|
|
546
680
|
idStore: WebvhIdStore;
|
|
547
681
|
didWebKeys: DidWebKeyMap;
|
|
548
682
|
webvh: DidWebvhBlock;
|
|
683
|
+
ifMatch?: string;
|
|
684
|
+
}): Promise<void>;
|
|
685
|
+
/**
|
|
686
|
+
* Records the account DID into a `keys.json` carrying a KMS binding and no (or
|
|
687
|
+
* a stale) `webvh` block -- the state a run torn between its genesis entry and
|
|
688
|
+
* its rewrite leaves behind. It is the adoption path's half of that rewrite,
|
|
689
|
+
* and the binding comes from the SERVED map: the run that published the log
|
|
690
|
+
* recorded it, while this run's own map may name a key that log never
|
|
691
|
+
* published.
|
|
692
|
+
*
|
|
693
|
+
* A no-op when the store offers no read, when the served map carries no
|
|
694
|
+
* binding, and when it already names this DID.
|
|
695
|
+
*
|
|
696
|
+
* @param options {object}
|
|
697
|
+
* @param options.idStore {WebvhIdStore}
|
|
698
|
+
* @param options.did {string} the DID the adopted log resolves to
|
|
699
|
+
* @returns {Promise<void>}
|
|
700
|
+
*/
|
|
701
|
+
export declare function backfillKeyMapWebvhBlock({ idStore, did }: {
|
|
702
|
+
idStore: WebvhIdStore;
|
|
703
|
+
did: string;
|
|
549
704
|
}): Promise<void>;
|
|
550
705
|
/**
|
|
551
706
|
* The verified state of the published log: the log itself, the resolved DID
|
|
@@ -592,7 +747,9 @@ export interface PublishedWebvhLog {
|
|
|
592
747
|
* refused as a `rollback` instead of read as `undefined`.
|
|
593
748
|
*
|
|
594
749
|
* @param options {object}
|
|
595
|
-
* @param options.idStore {WebvhIdStore}
|
|
750
|
+
* @param options.idStore {Pick<WebvhIdStore, 'getIdResourceRaw'>} the read
|
|
751
|
+
* half of the seam alone, so a caller holding a narrower store (a bridge
|
|
752
|
+
* delegation's read + PUT pair) passes it directly
|
|
596
753
|
* @param [options.expectedDid] {string} the DID the log must resolve to
|
|
597
754
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
598
755
|
* pins for the account log
|
|
@@ -601,11 +758,65 @@ export interface PublishedWebvhLog {
|
|
|
601
758
|
* @returns {Promise<PublishedWebvhLog | undefined>}
|
|
602
759
|
*/
|
|
603
760
|
export declare function readPublishedLog({ idStore, expectedDid, pinStore, logId }: {
|
|
604
|
-
idStore: WebvhIdStore
|
|
761
|
+
idStore: Pick<WebvhIdStore, 'getIdResourceRaw'>;
|
|
605
762
|
expectedDid?: string;
|
|
606
763
|
pinStore?: ResourceLogPinStore;
|
|
607
764
|
logId?: string;
|
|
608
765
|
}): Promise<PublishedWebvhLog | undefined>;
|
|
766
|
+
/**
|
|
767
|
+
* The substituted-account refusal on its own: a resolved head that is not the
|
|
768
|
+
* DID the caller expected is refused rather than built on. Stated once so a
|
|
769
|
+
* fresh read and a caller-threaded head refuse identically.
|
|
770
|
+
*
|
|
771
|
+
* A ceremony that takes an already-read head from its caller (the transient
|
|
772
|
+
* visit's one-read composition, where the readiness stage hands its verified
|
|
773
|
+
* head to the enrollment) runs this explicitly: the read that would otherwise
|
|
774
|
+
* have run it never happened, and a head resolving to another DID must not
|
|
775
|
+
* become the entry's basis just because it arrived by parameter.
|
|
776
|
+
*
|
|
777
|
+
* @param options {object}
|
|
778
|
+
* @param options.published {PublishedWebvhLog} the resolved head
|
|
779
|
+
* @param [options.expectedDid] {string} the DID it must resolve to; absent,
|
|
780
|
+
* the head is accepted (the caller discovering the DID from the log itself)
|
|
781
|
+
* @returns {PublishedWebvhLog} the head verbatim
|
|
782
|
+
*/
|
|
783
|
+
export declare function assertPublishedLogDid({ published, expectedDid }: {
|
|
784
|
+
published: PublishedWebvhLog;
|
|
785
|
+
expectedDid?: string;
|
|
786
|
+
}): PublishedWebvhLog;
|
|
787
|
+
/**
|
|
788
|
+
* {@link readPublishedLog} for the ceremonies whose premise is a log that
|
|
789
|
+
* already exists: an absent `did.jsonl` is a refusal rather than a state to
|
|
790
|
+
* branch on, so the caller gets a `PublishedWebvhLog` or an error. The
|
|
791
|
+
* `missingMessage` is the caller's own phrasing of what there is nothing to do
|
|
792
|
+
* against ("nothing to enroll into", "nothing to recover"), since the read
|
|
793
|
+
* itself cannot know which ceremony is standing on it.
|
|
794
|
+
*
|
|
795
|
+
* Every other option, and every check behind them -- the `expectedDid`
|
|
796
|
+
* refusal and the chain-head pin's rollback / fork / identity-switch
|
|
797
|
+
* refusals -- is {@link readPublishedLog}'s verbatim. Each attempt of a
|
|
798
|
+
* conflict-retried ceremony reads for itself, so the continuity check runs on
|
|
799
|
+
* the read the compare-and-swap publish is conditioned on rather than only on
|
|
800
|
+
* an orchestrator's pre-read.
|
|
801
|
+
*
|
|
802
|
+
* @param options {object}
|
|
803
|
+
* @param options.idStore {Pick<WebvhIdStore, 'getIdResourceRaw'>}
|
|
804
|
+
* @param [options.expectedDid] {string} the DID the log must resolve to
|
|
805
|
+
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
806
|
+
* pins for the log being read
|
|
807
|
+
* @param [options.logId] {string} the log's pin-slot key; required whenever
|
|
808
|
+
* a `pinStore` is supplied
|
|
809
|
+
* @param [options.missingMessage] {string} the thrown `Error`'s message when
|
|
810
|
+
* the log is absent
|
|
811
|
+
* @returns {Promise<PublishedWebvhLog>}
|
|
812
|
+
*/
|
|
813
|
+
export declare function readPublishedLogOrThrow({ idStore, expectedDid, pinStore, logId, missingMessage }: {
|
|
814
|
+
idStore: Pick<WebvhIdStore, 'getIdResourceRaw'>;
|
|
815
|
+
expectedDid?: string;
|
|
816
|
+
pinStore?: ResourceLogPinStore;
|
|
817
|
+
logId?: string;
|
|
818
|
+
missingMessage?: string;
|
|
819
|
+
}): Promise<PublishedWebvhLog>;
|
|
609
820
|
/**
|
|
610
821
|
* The chain-head pin a log establishes: the genesis entry's method and SCID
|
|
611
822
|
* plus the head entry's `versionId`. Used where this client is the one that
|
|
@@ -634,16 +845,22 @@ export declare function servedHead(log: DIDLog): {
|
|
|
634
845
|
* already-revoked no-op. All of them used to infer completion from `did.jsonl`
|
|
635
846
|
* alone, which is a half of the state: {@link publishWebvhLog} writes the log
|
|
636
847
|
* and its `did:web` projection in two non-atomic PUTs, so a crash between them
|
|
637
|
-
* leaves a `did.jsonl` that is complete beside a `did.json` that lags it
|
|
638
|
-
* forever (nothing else republishes the projection).
|
|
848
|
+
* leaves a `did.jsonl` that is complete beside a `did.json` that lags it.
|
|
639
849
|
*
|
|
640
850
|
* So the projection is re-derived from the resolved log and re-PUT
|
|
641
851
|
* unconditionally rather than compared first: the write is idempotent and one
|
|
642
852
|
* request either way, and the resolved log is the source of truth for what the
|
|
643
853
|
* projection must say. A ceremony that no-ops on the log therefore still heals
|
|
644
|
-
* a torn earlier publish. The projection PUT is deliberately
|
|
645
|
-
* here too: healing it is the whole point, and the log it was
|
|
646
|
-
* the state this call just read and resolved.
|
|
854
|
+
* a torn earlier publish OF THAT CEREMONY. The projection PUT is deliberately
|
|
855
|
+
* unconditional here too: healing it is the whole point, and the log it was
|
|
856
|
+
* derived from is the state this call just read and resolved.
|
|
857
|
+
*
|
|
858
|
+
* The reach is what to hold on to: every caller here invokes as the account's
|
|
859
|
+
* controller, so this heals nothing for the ladder-signed entries that publish
|
|
860
|
+
* through {@link publishEntryPinned} and write the log alone. Those are mended
|
|
861
|
+
* by their own ceremony's pre-entry projection PUT and, failing that, by
|
|
862
|
+
* `ensureDidWebProjection` at the next visit that holds an `id`-collection
|
|
863
|
+
* writer.
|
|
647
864
|
*
|
|
648
865
|
* @param options {object}
|
|
649
866
|
* @param options.idStore {WebvhIdStore}
|
|
@@ -672,6 +889,24 @@ export declare function effectiveParameters(log: DIDLog): Array<{
|
|
|
672
889
|
updateKeys: string[];
|
|
673
890
|
nextKeyHashes: string[];
|
|
674
891
|
}>;
|
|
892
|
+
/**
|
|
893
|
+
* The log's current `updateKeys` / `nextKeyHashes` view: the last entry's
|
|
894
|
+
* effective parameters, or the empty pair for a log with no entries.
|
|
895
|
+
*
|
|
896
|
+
* The empty default is a policy choice, not a convenience: it is what makes
|
|
897
|
+
* an unresolvable log attribute as "no rung standing" rather than throw, so
|
|
898
|
+
* it is stated here once rather than at each attribution site.
|
|
899
|
+
*
|
|
900
|
+
* @param published {object}
|
|
901
|
+
* @param published.log {DIDLog}
|
|
902
|
+
* @returns {object}
|
|
903
|
+
*/
|
|
904
|
+
export declare function currentLogParameters(published: {
|
|
905
|
+
log: DIDLog;
|
|
906
|
+
}): {
|
|
907
|
+
updateKeys: string[];
|
|
908
|
+
nextKeyHashes: string[];
|
|
909
|
+
};
|
|
675
910
|
/**
|
|
676
911
|
* Idempotently provisions and publishes the user's did:webvh DID log. A wallet
|
|
677
912
|
* that keeps a KMS runs it directly after the did:web provisioning (non-fatal)
|
|
@@ -715,8 +950,10 @@ export declare function effectiveParameters(log: DIDLog): Array<{
|
|
|
715
950
|
* @param options.wasServerUrl {string}
|
|
716
951
|
* @param options.spaceId {string}
|
|
717
952
|
* @param [options.didWebKeys] {DidWebKeyMapV2} the parsed keys.json (with any
|
|
718
|
-
* webvh block) returned by the
|
|
953
|
+
* webvh block) returned by the KMS-authentication stage; absent on a
|
|
719
954
|
* client-keys-only genesis (no KMS anywhere in the path)
|
|
955
|
+
* @param [options.keysJsonEtag] {string} the ETag that stage's own write
|
|
956
|
+
* returned, carried as the `ifMatch` of the rewrite that records the DID
|
|
720
957
|
* @param options.clientKeys {WebvhClientKeys} this client's published keys
|
|
721
958
|
* @param options.updateKeys {ClientWebvhUpdateKeys} already persisted
|
|
722
959
|
* client-local
|
|
@@ -732,6 +969,7 @@ export declare function ensureDidWebvh(options: {
|
|
|
732
969
|
wasServerUrl: string;
|
|
733
970
|
spaceId: string;
|
|
734
971
|
didWebKeys?: DidWebKeyMapV2;
|
|
972
|
+
keysJsonEtag?: string;
|
|
735
973
|
clientKeys: WebvhClientKeys;
|
|
736
974
|
updateKeys: ClientWebvhUpdateKeys;
|
|
737
975
|
expectedDid?: string;
|
|
@@ -825,102 +1063,4 @@ export interface WebvhEnrollmentKeys extends WebvhClientKeys {
|
|
|
825
1063
|
updateKeyMultibase: string;
|
|
826
1064
|
stagedUpdateKeyMultibase: string;
|
|
827
1065
|
}
|
|
828
|
-
/**
|
|
829
|
-
* The relationship references of a resolved document as verification-method
|
|
830
|
-
* ids, tolerating embedded objects beside string references.
|
|
831
|
-
*
|
|
832
|
-
* @param relation {Array} the relationship array, when present
|
|
833
|
-
* @returns {string[]}
|
|
834
|
-
*/
|
|
835
|
-
export declare function relationIds(relation: Array<string | {
|
|
836
|
-
id?: string;
|
|
837
|
-
}> | undefined): string[];
|
|
838
|
-
/**
|
|
839
|
-
* Enrolls a second wallet client into the published did:webvh document -- the
|
|
840
|
-
* log half of the enrollment ceremony (the user key roster wrap happens first,
|
|
841
|
-
* outside this module). Two entries, forced by prerotation (a new update key
|
|
842
|
-
* must hash into the PREVIOUS entry's `nextKeyHashes`):
|
|
843
|
-
*
|
|
844
|
-
* 1. **Commit**: a sparse entry extending `nextKeyHashes` with the new
|
|
845
|
-
* client's update-key and staged-key hashes (document and `updateKeys`
|
|
846
|
-
* untouched).
|
|
847
|
-
* 2. **Add**: an entry adding the new client's verification methods (its
|
|
848
|
-
* Ed25519 key under the four signing relationships, its X25519 twin under
|
|
849
|
-
* `keyAgreement`) and its update key to `updateKeys`.
|
|
850
|
-
*
|
|
851
|
-
* Both entries are signed by THIS client's active update key (quorum-of-one:
|
|
852
|
-
* any single enrolled client can enroll). The ceremony is resumable from
|
|
853
|
-
* durable state alone: a tear after the commit is detected by its hashes
|
|
854
|
-
* already standing in `nextKeyHashes` (skip to the add entry), and a
|
|
855
|
-
* completed enrollment is detected by the update key already being authorized
|
|
856
|
-
* (no-op). Re-running with the same key set converges without forking the
|
|
857
|
-
* log.
|
|
858
|
-
*
|
|
859
|
-
* Each entry publishes conditionally on the read it was built on (the add
|
|
860
|
-
* entry on the mid-ceremony re-read), so a concurrent ceremony -- a revocation,
|
|
861
|
-
* another enrollment -- can never be erased by this one; a lost race re-runs
|
|
862
|
-
* from the top (see {@link withLogConflictRetry}) and rebases on the new head.
|
|
863
|
-
*
|
|
864
|
-
* @param options {object}
|
|
865
|
-
* @param options.idStore {WebvhIdStore}
|
|
866
|
-
* @param options.updateKeys {ClientWebvhUpdateKeys} THIS client's seeds
|
|
867
|
-
* @param options.newClient {WebvhEnrollmentKeys} the enrollee's public halves
|
|
868
|
-
* @returns {Promise<{ did: string }>}
|
|
869
|
-
*/
|
|
870
|
-
export declare function enrollWebvhClient(options: {
|
|
871
|
-
idStore: WebvhIdStore;
|
|
872
|
-
updateKeys: ClientWebvhUpdateKeys;
|
|
873
|
-
newClient: WebvhEnrollmentKeys;
|
|
874
|
-
}): Promise<{
|
|
875
|
-
did: string;
|
|
876
|
-
}>;
|
|
877
|
-
/**
|
|
878
|
-
* Rebuilds `keys.json` from the published artifacts plus a WebKMS key listing
|
|
879
|
-
* -- the recovery path for a lost or rolled-back `keys.json`. List Keys is
|
|
880
|
-
* authorized as `read` against the keystore controller, which only the
|
|
881
|
-
* root-controlled keystore agent can invoke.
|
|
882
|
-
*
|
|
883
|
-
* KMS key local ids are server-generated random and appear in no published
|
|
884
|
-
* artifact, so the bindings are rediscovered by public key material instead.
|
|
885
|
-
* List the keystore once -- each listed description carries `keyUrl`, the
|
|
886
|
-
* key's canonical invocation URL (the signable handle its alias-overridden
|
|
887
|
-
* `id` erases) -- then match `did.json`'s relationship verification methods
|
|
888
|
-
* by `publicKeyMultibase` and rewrite `keys.json` from what matched. The
|
|
889
|
-
* `authentication` and `keyAgreement` bindings are required; `assertionMethod`
|
|
890
|
-
* lists client keys only, so no KMS binding exists there and none is rebuilt.
|
|
891
|
-
* When `did.jsonl` is published, its resolved DID is recorded in the `webvh`
|
|
892
|
-
* block; there is nothing else to repair there, since the log's update keys are
|
|
893
|
-
* client-held seeds that no keystore listing could recover.
|
|
894
|
-
*
|
|
895
|
-
* An unmatchable binding is unrepairable and throws: a published artifact
|
|
896
|
-
* depends on a key the keystore no longer lists.
|
|
897
|
-
*
|
|
898
|
-
* The log read takes the same checks every other ceremony read does, and for
|
|
899
|
-
* the same reason: what it reads is written straight back into the rebuilt
|
|
900
|
-
* `keys.json`, so a substituted log would rewrite the `webvh` block to a wrong
|
|
901
|
-
* DID and a truncated one would be adopted as this account's history. A caller
|
|
902
|
-
* that still holds the account pointer passes `expectedDid` and its
|
|
903
|
-
* `pinStore`; the pure-recovery caller that has lost everything but the
|
|
904
|
-
* keystore has no DID to expect and passes neither, which is the one read here
|
|
905
|
-
* that legitimately discovers the DID from the log itself.
|
|
906
|
-
*
|
|
907
|
-
* @param options {object}
|
|
908
|
-
* @param options.keystoreAgent {KeystoreAgent}
|
|
909
|
-
* @param options.idStore {WebvhIdStore}
|
|
910
|
-
* @param [options.expectedDid] {string} the DID the published log must
|
|
911
|
-
* resolve to
|
|
912
|
-
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
913
|
-
* pins for the account log
|
|
914
|
-
* @param [options.logId] {string} the account log's pin-slot key, built by
|
|
915
|
-
* the caller with `accountLogPinId({ spaceId })`; required whenever a
|
|
916
|
-
* `pinStore` is supplied
|
|
917
|
-
* @returns {Promise<DidWebKeyMapV2>} the rebuilt, persisted keys.json
|
|
918
|
-
*/
|
|
919
|
-
export declare function repairKeyBindings({ keystoreAgent, idStore, expectedDid, pinStore, logId }: {
|
|
920
|
-
keystoreAgent: KeystoreAgent;
|
|
921
|
-
idStore: WebvhIdStore;
|
|
922
|
-
expectedDid?: string;
|
|
923
|
-
pinStore?: ResourceLogPinStore;
|
|
924
|
-
logId?: string;
|
|
925
|
-
}): Promise<DidWebKeyMapV2>;
|
|
926
1066
|
//# sourceMappingURL=didWebvh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"didWebvh.d.ts","sourceRoot":"","sources":["../../src/webvh/didWebvh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"didWebvh.d.ts","sourceRoot":"","sources":["../../src/webvh/didWebvh.ts"],"names":[],"mappings":"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"}
|