@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
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { readPublishedLog,
|
|
1
|
+
import { readPublishedLog, readPublishedLogOrThrow, withLogConflictRetry } from '../webvh/didWebvh.js';
|
|
2
2
|
import { accountLogPinId } from '../webvh/verifyLog.js';
|
|
3
3
|
import { clientRemovalTarget } from '../webvh/revokeClient.js';
|
|
4
4
|
import { delegationProofKeyId } from '../webvh/standingZcap.js';
|
|
5
5
|
import { vmFragmentOf } from '@interop/vh-resource-log';
|
|
6
6
|
import { cascadeCollectionsToUserKey, readUserKeyRoster, rosterRecipientKid, rotateUserKeyRoster } from '../keys/index.js';
|
|
7
|
-
import { readLogOrThrow } from '../unlock/standingWebvh.js';
|
|
8
7
|
import { recordSignerFromAgent } from '../keyring/record.js';
|
|
9
8
|
import { remintRecoveryDelegations } from '../recovery/recoveryDelegation.js';
|
|
10
9
|
import { ladderVmKeyMultibase } from './ladder.js';
|
|
10
|
+
import { ladderVmIds, relationIds } from '../resourceLog/document.js';
|
|
11
11
|
import { ladderVmAgent, ladderVmZcapClient } from './zcap.js';
|
|
12
|
-
import {
|
|
12
|
+
import { clientForgetEntryOnce, installLadderVmWebvh, strikeLadderVmWebvh } from './ladderAnchored.js';
|
|
13
13
|
import { clientAnnexDidParts, clientAnnexLogPinId, delegatedClientsDelegationMinter, delegatedClientsPointer, ensureGenerationDelegationCurrent, generationDelegationHistory, mintGenerationDelegation, revokeTreatingAlreadyRevokedAsSuccess } from './log.js';
|
|
14
14
|
/**
|
|
15
15
|
* The re-mint outcomes that withhold the removal entry: a record the pass
|
|
@@ -65,10 +65,20 @@ export class RecordRemintFailedError extends Error {
|
|
|
65
65
|
* @param options {object}
|
|
66
66
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
67
67
|
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
68
|
+
* @param options.clientLogStore {UnlockLogStore} the account-log store
|
|
69
|
+
* invoked under the STILL-STANDING enrolled client's root authority (an
|
|
70
|
+
* app's `wasWebvhIdStore` satisfies the narrower shape). The
|
|
71
|
+
* strike-and-reinstall pair publishes through it, because the bridge
|
|
72
|
+
* `logStore` is often signed by the ladder VM the strike removes and the
|
|
73
|
+
* reinstall would then be refused under the current-key-set rule. Both
|
|
74
|
+
* entries stay ladder-signed; only the HTTP invocation differs. It also
|
|
75
|
+
* carries the removal entry's pre-entry `did:web` projection PUT (stage 7),
|
|
76
|
+
* the one write the bridge store cannot make. Required: a call without it
|
|
77
|
+
* throws a `TypeError` before any read
|
|
68
78
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
69
79
|
* pins, the account log's slot derived from `annex.accountSpaceId`. Every
|
|
70
|
-
* account-log read the ceremony makes -- the
|
|
71
|
-
*
|
|
80
|
+
* account-log read the ceremony makes -- the opening read, and the strike,
|
|
81
|
+
* reinstall, and removal entries' own reads inside their conflict-retry
|
|
72
82
|
* loops -- is checked against the pinned head, so a served truncated
|
|
73
83
|
* prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
|
|
74
84
|
* roster append or log publish, and each entry advances the pin to the
|
|
@@ -87,8 +97,9 @@ export class RecordRemintFailedError extends Error {
|
|
|
87
97
|
* @param options.rosterStoreFor {Function} `({ did, log }) => store` --
|
|
88
98
|
* builds the `key-map/user-key.jsonl` roster store whose appends are
|
|
89
99
|
* SIGNED BY THE LADDER VM and whose controller view resolves from the
|
|
90
|
-
* supplied
|
|
91
|
-
*
|
|
100
|
+
* supplied log -- the pre-transition head for the opening read, the
|
|
101
|
+
* post-reinstall head for the rotation (the inventory-changing anchor the
|
|
102
|
+
* ceremony-tail license admits), while its HTTP requests invoke under the still-standing
|
|
92
103
|
* client
|
|
93
104
|
* @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
|
|
94
105
|
* credential's key-agreement key -- the recipient whose wrap survives the
|
|
@@ -127,7 +138,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
127
138
|
* @param options.onBeforeRemoval {Function}
|
|
128
139
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
129
140
|
* after the record re-mint stage, immediately before the removal entry,
|
|
130
|
-
* with the post-
|
|
141
|
+
* with the post-reinstall published state. The caller re-signs the login
|
|
131
142
|
* credential's bridge and `delegatedClients` sibling with the ladder VM
|
|
132
143
|
* and re-seals its unlock record here -- the only stage that reaches the
|
|
133
144
|
* login credential's record, which the `unlockMethods` pass skips. Must
|
|
@@ -136,7 +147,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
136
147
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
137
148
|
* @returns {Promise<LastEnrolledClientForgetResult>}
|
|
138
149
|
*/
|
|
139
|
-
export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
150
|
+
export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
140
151
|
// The seam is the only stage that re-signs the login credential's bridge
|
|
141
152
|
// with the ladder VM; a run without it would land the removal entry over
|
|
142
153
|
// a record the struck key signed, on an account nothing could then write
|
|
@@ -145,6 +156,15 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
145
156
|
throw new TypeError('forgetLastEnrolledClient requires onBeforeRemoval: the login ' +
|
|
146
157
|
"credential's record is re-bound only through that seam");
|
|
147
158
|
}
|
|
159
|
+
// The pair's store is the enrolled client's, not the credential's bridge:
|
|
160
|
+
// a bridge the strike rots cannot authorize the reinstall that follows it.
|
|
161
|
+
// Refused before any read, so nothing is published.
|
|
162
|
+
if (clientLogStore === undefined ||
|
|
163
|
+
typeof clientLogStore.putIdResource !== 'function') {
|
|
164
|
+
throw new TypeError('forgetLastEnrolledClient requires clientLogStore: the ladder VM ' +
|
|
165
|
+
"strike and reinstall publish under the enrolled client's root " +
|
|
166
|
+
'authority');
|
|
167
|
+
}
|
|
148
168
|
// The pre-install read and the two guards: a client with no remaining
|
|
149
169
|
// presence means the removal entry already landed (the finish-the-wipe
|
|
150
170
|
// state the app's next login maps -- nothing here can still invoke), and
|
|
@@ -154,10 +174,11 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
154
174
|
const pinned = pinStore
|
|
155
175
|
? { pinStore, logId: accountLogPinId({ spaceId: annex.accountSpaceId }) }
|
|
156
176
|
: {};
|
|
157
|
-
const before = await
|
|
158
|
-
|
|
177
|
+
const before = await readPublishedLogOrThrow({
|
|
178
|
+
idStore: logStore,
|
|
159
179
|
expectedDid,
|
|
160
|
-
...pinned
|
|
180
|
+
...pinned,
|
|
181
|
+
missingMessage: 'did:webvh: did.jsonl is missing; nothing to enroll into.'
|
|
161
182
|
});
|
|
162
183
|
const preTarget = await clientRemovalTarget({
|
|
163
184
|
published: before,
|
|
@@ -165,7 +186,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
165
186
|
});
|
|
166
187
|
if (!preTarget.present) {
|
|
167
188
|
return {
|
|
168
|
-
|
|
189
|
+
reinstalled: false,
|
|
169
190
|
rotated: false,
|
|
170
191
|
collections: { outcomes: {}, failed: [] },
|
|
171
192
|
generation: { revoked: [], replaced: false, skipped: 'already-removed' },
|
|
@@ -179,35 +200,98 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
179
200
|
throw new Error('did:webvh: another enrolled client remains; the last-client ' +
|
|
180
201
|
'transition ceremony does not apply -- run the ordinary forget.');
|
|
181
202
|
}
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
203
|
+
// What the rotation is decided on, read BEFORE any entry: the roster as it
|
|
204
|
+
// stands on the pre-transition document. The pair below runs only when the
|
|
205
|
+
// rotation is still owed, so a re-run past it publishes no entry for
|
|
206
|
+
// nothing.
|
|
207
|
+
const forgottenKid = rosterRecipientKid({
|
|
208
|
+
signingKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
209
|
+
keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
|
|
188
210
|
});
|
|
211
|
+
const preRosterStore = rosterStoreFor({ did: before.did, log: before.log });
|
|
212
|
+
const current = await preRosterStore.read();
|
|
213
|
+
const currentEpoch = current
|
|
214
|
+
? (current.descriptor.epochs ?? []).find(epoch => epoch.id === current.descriptor.currentEpoch)
|
|
215
|
+
: undefined;
|
|
216
|
+
const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid) === true;
|
|
217
|
+
const ladderVmId = `${before.did}#${await ladderVmKeyMultibase({
|
|
218
|
+
ladderSeed
|
|
219
|
+
})}`;
|
|
220
|
+
const vmStands = ladderVmIds({ doc: before.doc }).includes(ladderVmId);
|
|
221
|
+
// Stage 1: the strike-and-reinstall pair -- this credential's ladder VM
|
|
222
|
+
// out of the document and straight back in, the client's inventory
|
|
223
|
+
// untouched throughout. The credential-keyed lifecycle installs the VM at
|
|
224
|
+
// bind time, so it already stands here and a bare install would publish
|
|
225
|
+
// nothing; the pair is what gives the rotation below an inventory-changing
|
|
226
|
+
// document version to anchor at, which is what the ceremony-tail license
|
|
227
|
+
// admits. Both entries are ladder-signed by the attributed rung, so the
|
|
228
|
+
// reinstall reveals a rung that stands in `updateKeys` -- the cost the
|
|
229
|
+
// single install already carried, now over two entries.
|
|
230
|
+
//
|
|
231
|
+
// The revocation stage's ordering is undisturbed by the pair: the
|
|
232
|
+
// reinstall republishes the IDENTICAL key under the identical id and
|
|
233
|
+
// revokes nothing, and a zcap delegation proof carries no version anchor,
|
|
234
|
+
// so every unexpired ladder-signed delegation keeps verifying across it.
|
|
235
|
+
//
|
|
236
|
+
// Run only when there is something for it to license (the rotation is
|
|
237
|
+
// owed) or when the VM is missing -- the state a run torn between the two
|
|
238
|
+
// entries leaves, where the strike no-ops and the reinstall converges.
|
|
239
|
+
//
|
|
240
|
+
// Both entries are inventory-changing, so the pair mints TWO license
|
|
241
|
+
// shots rather than the one the rotation spends. That is accepted:
|
|
242
|
+
// clause B already licenses every standing ladder against any
|
|
243
|
+
// inventory-changing version, so the reinstall's own shot is spendable by
|
|
244
|
+
// a sibling ladder in the same window whatever the strike's shot does.
|
|
245
|
+
// What a sibling's spend costs is bounded either way. Spent at the strike
|
|
246
|
+
// version, the rotation below stays licensed at the reinstall version
|
|
247
|
+
// (`headControllerVersionIndex >= controllerVersionIndex` compares
|
|
248
|
+
// positions, and the reinstall's is higher). Spent at the reinstall
|
|
249
|
+
// version, the rotation refuses with `ResourceLogLicenseError` and the
|
|
250
|
+
// run is foreclosed rather than wedged: `wrapped` stays true, since the
|
|
251
|
+
// client still stands in the document and is therefore a recipient of the
|
|
252
|
+
// sibling's fresh epoch too, so a re-run republishes the pair and mints a
|
|
253
|
+
// fresh anchor. The install signs with the currently attributed rung and
|
|
254
|
+
// keeps its own hash committed under the carry-over convention, so no
|
|
255
|
+
// rung is burned; the cost is two account-log entries per attempt.
|
|
256
|
+
let reinstalled = false;
|
|
257
|
+
let anchor = {
|
|
258
|
+
did: before.did,
|
|
259
|
+
doc: before.doc,
|
|
260
|
+
log: before.log
|
|
261
|
+
};
|
|
262
|
+
if (wrapped || !vmStands) {
|
|
263
|
+
await strikeLadderVmWebvh({
|
|
264
|
+
store: clientLogStore,
|
|
265
|
+
ladderSeed,
|
|
266
|
+
expectedDid,
|
|
267
|
+
...pinned
|
|
268
|
+
});
|
|
269
|
+
const install = await installLadderVmWebvh({
|
|
270
|
+
store: clientLogStore,
|
|
271
|
+
ladderSeed,
|
|
272
|
+
expectedDid,
|
|
273
|
+
...pinned
|
|
274
|
+
});
|
|
275
|
+
reinstalled = install.installed;
|
|
276
|
+
anchor = { did: install.did, doc: install.doc, log: install.log };
|
|
277
|
+
}
|
|
189
278
|
// Stage 2: the roster rotation off this client's wrap, ladder-signed and
|
|
190
|
-
// anchored at the
|
|
279
|
+
// anchored at the reinstall entry, then stage 3, the collection fan-out --
|
|
191
280
|
// both HTTP-invoked under this client's still-standing authority. An
|
|
192
281
|
// already-rotated roster skips the append entirely, so the one-shot
|
|
193
282
|
// license is never asked for a second append at the same anchor.
|
|
194
283
|
let rotated = false;
|
|
195
284
|
let read;
|
|
196
285
|
let cascade = { outcomes: {}, failed: [] };
|
|
197
|
-
const rosterStore =
|
|
198
|
-
|
|
286
|
+
const rosterStore = wrapped
|
|
287
|
+
? rosterStoreFor({ did: anchor.did, log: anchor.log })
|
|
288
|
+
: preRosterStore;
|
|
199
289
|
if (current !== null) {
|
|
200
|
-
const forgottenKid = rosterRecipientKid({
|
|
201
|
-
signingKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
202
|
-
keyAgreementKeyMultibase: forgottenKeyAgreementKeyMultibase
|
|
203
|
-
});
|
|
204
290
|
let descriptor = current.descriptor;
|
|
205
|
-
const currentEpoch = (descriptor.epochs ?? []).find(epoch => epoch.id === descriptor.currentEpoch);
|
|
206
|
-
const wrapped = currentEpoch?.recipients.some(entry => entry.header.kid === forgottenKid);
|
|
207
291
|
if (wrapped) {
|
|
208
292
|
descriptor = await rotateUserKeyRoster({
|
|
209
293
|
store: rosterStore,
|
|
210
|
-
document:
|
|
294
|
+
document: anchor.doc,
|
|
211
295
|
retireRecipientId: forgottenKid
|
|
212
296
|
});
|
|
213
297
|
rotated = true;
|
|
@@ -245,21 +329,22 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
245
329
|
}
|
|
246
330
|
// Stage 4: the generation-delegation replacement and revocations.
|
|
247
331
|
const generation = await retireLadderGenerationDelegations({
|
|
248
|
-
doc:
|
|
249
|
-
accountDid:
|
|
332
|
+
doc: anchor.doc,
|
|
333
|
+
accountDid: anchor.did,
|
|
250
334
|
ladderSeed,
|
|
335
|
+
retiringSigningKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
251
336
|
annex,
|
|
252
337
|
now
|
|
253
338
|
});
|
|
254
339
|
// Stage 5: the other unlock methods' record re-mint, ladder-signed, with
|
|
255
|
-
// the forgotten client named as retiring -- the post-
|
|
340
|
+
// the forgotten client named as retiring -- the post-reinstall document
|
|
256
341
|
// still lists it, so without that axis every bridge it signed would read
|
|
257
342
|
// as standing and be left to rot at the removal entry.
|
|
258
343
|
let remint;
|
|
259
344
|
if (unlockMethods !== undefined) {
|
|
260
345
|
remint = await remintUnlockMethodRecordsAsLadder({
|
|
261
|
-
doc:
|
|
262
|
-
accountDid:
|
|
346
|
+
doc: anchor.doc,
|
|
347
|
+
accountDid: anchor.did,
|
|
263
348
|
ladderSeed,
|
|
264
349
|
retiringSigningKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
265
350
|
reach: unlockMethods,
|
|
@@ -277,18 +362,19 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
277
362
|
}
|
|
278
363
|
// Stage 6: the record re-bind seam -- the login credential's record, the
|
|
279
364
|
// one stage 5 skipped -- while the removal has not landed (a
|
|
280
|
-
// ladder-VM-signed bridge verifies from the
|
|
365
|
+
// ladder-VM-signed bridge verifies from the reinstall entry on, and the old
|
|
281
366
|
// client-signed one keeps verifying until the removal -- so a tear on
|
|
282
367
|
// either side of this callback leaves a working login).
|
|
283
368
|
await onBeforeRemoval({
|
|
284
|
-
did:
|
|
285
|
-
doc:
|
|
286
|
-
log:
|
|
369
|
+
did: anchor.did,
|
|
370
|
+
doc: anchor.doc,
|
|
371
|
+
log: anchor.log
|
|
287
372
|
});
|
|
288
373
|
// Stage 7: the removal entry -- the client's whole inventory out, the
|
|
289
374
|
// installed ladder VM keeping the account anchored.
|
|
290
375
|
const removed = await forgetLastWebvhClient({
|
|
291
376
|
store: logStore,
|
|
377
|
+
projectionStore: clientLogStore,
|
|
292
378
|
ladderSeed,
|
|
293
379
|
forgottenClient,
|
|
294
380
|
...(knownLatentHashes ? { knownLatentHashes } : {}),
|
|
@@ -296,7 +382,7 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
296
382
|
...pinned
|
|
297
383
|
});
|
|
298
384
|
return {
|
|
299
|
-
|
|
385
|
+
reinstalled,
|
|
300
386
|
rotated,
|
|
301
387
|
collections: cascade,
|
|
302
388
|
generation,
|
|
@@ -309,24 +395,35 @@ export async function forgetLastEnrolledClient({ logStore, pinStore, ladderSeed,
|
|
|
309
395
|
};
|
|
310
396
|
}
|
|
311
397
|
/**
|
|
312
|
-
* The generation stage: reads the pointed generation's log,
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
398
|
+
* The generation stage: reads the pointed generation's log, replaces the
|
|
399
|
+
* embedded delegation with a fresh ladder-signed one (so the account stays
|
|
400
|
+
* transient-login-reachable), then revokes every still-unexpired delegation
|
|
401
|
+
* the log's history embedded that this credential's ladder VM signed.
|
|
402
|
+
* Replace-before-revoke is the tear-safety order: the fresh delegation is
|
|
403
|
+
* never in the pre-replacement history, so the revocation loop cannot touch
|
|
404
|
+
* it, and a run torn between the two leaves the generation with a live
|
|
405
|
+
* delegation either way.
|
|
406
|
+
*
|
|
407
|
+
* The replacement is decided by the house staleness policy read against a
|
|
408
|
+
* PROJECTED post-edit document, not by an unconditional force: this
|
|
409
|
+
* credential's ladder VM is named as retiring (the revocations below end its
|
|
410
|
+
* delegations, a state no client-side predicate can read) and so is the
|
|
411
|
+
* forgotten client (the removal entry in stage 7 has yet to strike it). A
|
|
412
|
+
* delegation signed by neither -- a sibling credential's ladder VM, which
|
|
413
|
+
* survives the transition -- stands, and keeping it is the right answer: the
|
|
414
|
+
* revocation loop below never reaches it.
|
|
320
415
|
*
|
|
321
416
|
* @param options {object}
|
|
322
|
-
* @param options.doc {DIDDoc} the post-
|
|
417
|
+
* @param options.doc {DIDDoc} the post-reinstall account document
|
|
323
418
|
* @param options.accountDid {string}
|
|
324
419
|
* @param options.ladderSeed {Uint8Array}
|
|
420
|
+
* @param options.retiringSigningKeyMultibase {string} the forgotten
|
|
421
|
+
* client's signing key
|
|
325
422
|
* @param options.annex {object} see {@link forgetLastEnrolledClient}
|
|
326
423
|
* @param options.now {number}
|
|
327
424
|
* @returns {Promise<GenerationDelegationRetirement>}
|
|
328
425
|
*/
|
|
329
|
-
async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed, annex, now }) {
|
|
426
|
+
async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed, retiringSigningKeyMultibase, annex, now }) {
|
|
330
427
|
const pointedDid = delegatedClientsPointer({ doc });
|
|
331
428
|
if (pointedDid === undefined) {
|
|
332
429
|
return { revoked: [], replaced: false, skipped: 'no-pointer' };
|
|
@@ -334,7 +431,6 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
334
431
|
const parts = clientAnnexDidParts({ did: pointedDid });
|
|
335
432
|
const store = annex.storeFor(parts);
|
|
336
433
|
const logId = clientAnnexLogPinId(parts);
|
|
337
|
-
// readPublishedLog only calls getIdResourceRaw, so the narrow seam is safe.
|
|
338
434
|
const published = await readPublishedLog({
|
|
339
435
|
idStore: store,
|
|
340
436
|
expectedDid: pointedDid,
|
|
@@ -358,15 +454,16 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
358
454
|
const expires = Date.parse(delegation.expires ?? '');
|
|
359
455
|
return Number.isNaN(expires) || expires > now;
|
|
360
456
|
});
|
|
361
|
-
// The
|
|
457
|
+
// The replacement first: a ladder-signed fresh delegation under the
|
|
362
458
|
// reinstalled VM, the annex entry signed by this credential's committed
|
|
363
459
|
// annex rung. A credential the generation does not commit cannot write the
|
|
364
460
|
// entry -- the honest skip, leaving the generation delegation-less once
|
|
365
461
|
// the doomed set is revoked below.
|
|
366
462
|
let replaced = false;
|
|
463
|
+
let rungUncommitted = false;
|
|
367
464
|
const ladderClient = await ladderVmZcapClient({ accountDid, ladderSeed });
|
|
368
465
|
try {
|
|
369
|
-
await ensureGenerationDelegationCurrent({
|
|
466
|
+
const ensured = await ensureGenerationDelegationCurrent({
|
|
370
467
|
store,
|
|
371
468
|
ladderSeed,
|
|
372
469
|
generationId: parts.generationId,
|
|
@@ -378,18 +475,24 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
378
475
|
now
|
|
379
476
|
}),
|
|
380
477
|
expectedDid: pointedDid,
|
|
381
|
-
|
|
478
|
+
accountDoc: doc,
|
|
479
|
+
retiringKeyMultibases: [ladderVmKey, retiringSigningKeyMultibase],
|
|
382
480
|
...(annex.pinStore !== undefined
|
|
383
481
|
? { pinStore: annex.pinStore, logId }
|
|
384
482
|
: {}),
|
|
385
483
|
now
|
|
386
484
|
});
|
|
387
|
-
replaced
|
|
485
|
+
// `replaced` reports what the stage actually wrote. A delegation the
|
|
486
|
+
// policy leaves standing -- a surviving sibling ladder's, which the
|
|
487
|
+
// revocations below never reach -- ends the stage current rather than
|
|
488
|
+
// replaced, with no `skipped` reason: nothing was owed.
|
|
489
|
+
replaced = ensured.renewed;
|
|
388
490
|
}
|
|
389
491
|
catch (err) {
|
|
390
492
|
if (err.name !== 'ClientAnnexRungUncommittedError') {
|
|
391
493
|
throw err;
|
|
392
494
|
}
|
|
495
|
+
rungUncommitted = true;
|
|
393
496
|
}
|
|
394
497
|
// The revocations, blind and resumable (400 already-revoked as success).
|
|
395
498
|
const revoked = [];
|
|
@@ -403,23 +506,23 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
403
506
|
revoked.push(id);
|
|
404
507
|
}
|
|
405
508
|
}
|
|
406
|
-
return
|
|
407
|
-
? { revoked, replaced }
|
|
408
|
-
: { revoked, replaced
|
|
509
|
+
return rungUncommitted
|
|
510
|
+
? { revoked, replaced, skipped: 'rung-uncommitted' }
|
|
511
|
+
: { revoked, replaced };
|
|
409
512
|
}
|
|
410
513
|
/**
|
|
411
514
|
* The record re-mint stage: the revocation cascade's re-mint pass over the
|
|
412
515
|
* other unlock methods' registry entries, with the ladder VM as both the
|
|
413
516
|
* delegating key (the fresh bridge and sibling) and the record-frame signer
|
|
414
|
-
* (`ladderVmAgent`'s did:key form, whose multibase the post-
|
|
517
|
+
* (`ladderVmAgent`'s did:key form, whose multibase the post-reinstall document
|
|
415
518
|
* lists, so a reader settling the mixed-signer proof against the account
|
|
416
519
|
* document accepts it after the removal too -- `currentAccountRecordSigners`
|
|
417
520
|
* is that allowlist), and the forgotten client named as retiring. The sibling
|
|
418
|
-
* minter reads the annex pointer off the post-
|
|
521
|
+
* minter reads the annex pointer off the post-reinstall document. The HTTP
|
|
419
522
|
* side rides the caller's management-zcap clients, still invocable here.
|
|
420
523
|
*
|
|
421
524
|
* @param options {object}
|
|
422
|
-
* @param options.doc {DIDDoc} the post-
|
|
525
|
+
* @param options.doc {DIDDoc} the post-reinstall account document
|
|
423
526
|
* @param options.accountDid {string}
|
|
424
527
|
* @param options.ladderSeed {Uint8Array}
|
|
425
528
|
* @param options.retiringSigningKeyMultibase {string} the forgotten
|
|
@@ -451,4 +554,49 @@ async function remintUnlockMethodRecordsAsLadder({ doc, accountDid, ladderSeed,
|
|
|
451
554
|
now
|
|
452
555
|
});
|
|
453
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* THE LAST-CLIENT REMOVAL ENTRY (stage 7, the transition's own removal): the
|
|
559
|
+
* plain forget's removal shape (`clientForgetEntryOnce`) with this ceremony's
|
|
560
|
+
* removability invariant injected instead of the plain forget's last-client
|
|
561
|
+
* refusal -- the forgotten client IS the last enrolled client, and the
|
|
562
|
+
* account stays invocable because the ladder VM the reinstall entry published
|
|
563
|
+
* remains in the document. Run only from {@link forgetLastEnrolledClient},
|
|
564
|
+
* which sequences the strike-and-reinstall pair, the rotation, and the
|
|
565
|
+
* revocations before it.
|
|
566
|
+
*
|
|
567
|
+
* @param options {object} see `forgetWebvhClient` in `ladderAnchored.ts`
|
|
568
|
+
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog }>}
|
|
569
|
+
*/
|
|
570
|
+
export async function forgetLastWebvhClient(options) {
|
|
571
|
+
return withLogConflictRetry(() => clientForgetEntryOnce({
|
|
572
|
+
...options,
|
|
573
|
+
assertRemovable: async ({ published }) => assertLadderAnchorStands({
|
|
574
|
+
published,
|
|
575
|
+
ladderSeed: options.ladderSeed
|
|
576
|
+
})
|
|
577
|
+
}));
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* The transition's no-neither invariant, checked rather than assumed: the
|
|
581
|
+
* removal may only publish while this credential's ladder VM stands in the
|
|
582
|
+
* document (the reinstall entry ran), or the account would land with neither
|
|
583
|
+
* an enrolled client nor the ladder anchor -- nothing that can invoke for it,
|
|
584
|
+
* and no mender, since no login sweep will ever run on a client-less account.
|
|
585
|
+
*
|
|
586
|
+
* @param options {object}
|
|
587
|
+
* @param options.published {PublishedWebvhLog} the read the removal entry
|
|
588
|
+
* is being built on
|
|
589
|
+
* @param options.ladderSeed {Uint8Array}
|
|
590
|
+
* @returns {Promise<void>}
|
|
591
|
+
*/
|
|
592
|
+
async function assertLadderAnchorStands({ published, ladderSeed }) {
|
|
593
|
+
const ladderVmId = `${published.did}#${await ladderVmKeyMultibase({
|
|
594
|
+
ladderSeed
|
|
595
|
+
})}`;
|
|
596
|
+
if (!ladderVmIds({ doc: published.doc }).includes(ladderVmId)) {
|
|
597
|
+
throw new Error('did:webvh: the ladder VM is not installed in the document; the ' +
|
|
598
|
+
'last-client removal entry would strand the account (the install ' +
|
|
599
|
+
'entry runs first).');
|
|
600
|
+
}
|
|
601
|
+
}
|
|
454
602
|
//# sourceMappingURL=forgetLast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
|
package/dist/clientAnnex/gc.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ import type { DIDLog } from '@interop/did-method-webvh';
|
|
|
54
54
|
import type { ZcapClient } from '@interop/ezcap';
|
|
55
55
|
import type { WasClient } from '@interop/was-client';
|
|
56
56
|
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
57
|
+
import type { AccountLogSigner } from '../webvh/accountEntry.js';
|
|
57
58
|
import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
|
|
58
59
|
/**
|
|
59
60
|
* The fixed GC cadence: a generation is replaced at the first remembered login
|
|
@@ -241,13 +242,13 @@ export declare function runClientAnnexGc({ was, wasServerUrl, accountSpaceId, ac
|
|
|
241
242
|
* credential's seed the fresh generation is minted from
|
|
242
243
|
* @returns {Promise<string>} the fresh annex DID
|
|
243
244
|
*/
|
|
244
|
-
export declare function swapClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore,
|
|
245
|
+
export declare function swapClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore, signer, zcapClient, ladderSeed, pinStore }: {
|
|
245
246
|
was: WasClient;
|
|
246
247
|
wasServerUrl: string;
|
|
247
248
|
accountSpaceId: string;
|
|
248
249
|
account: Pick<PublishedWebvhLog, 'did' | 'doc'>;
|
|
249
250
|
idStore: WebvhIdStore;
|
|
250
|
-
|
|
251
|
+
signer: AccountLogSigner;
|
|
251
252
|
zcapClient: ZcapClient;
|
|
252
253
|
ladderSeed: Uint8Array;
|
|
253
254
|
pinStore?: ResourceLogPinStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/gc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/gc.ts"],"names":[],"mappings":"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"}
|
package/dist/clientAnnex/gc.js
CHANGED
|
@@ -181,7 +181,7 @@ export async function runClientAnnexGc({ was, wasServerUrl, accountSpaceId, acco
|
|
|
181
181
|
accountSpaceId,
|
|
182
182
|
account,
|
|
183
183
|
idStore,
|
|
184
|
-
updateKeys,
|
|
184
|
+
signer: { kind: 'client', updateKeys },
|
|
185
185
|
zcapClient,
|
|
186
186
|
ladderSeed,
|
|
187
187
|
clientAnnexSpaceId: spaceId,
|
|
@@ -273,7 +273,7 @@ async function readClientAnnexGeneration({ was, spaceId, generationId, expectedD
|
|
|
273
273
|
* conforming server
|
|
274
274
|
* @returns {Promise<string>} the fresh annex DID
|
|
275
275
|
*/
|
|
276
|
-
async function replaceClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore,
|
|
276
|
+
async function replaceClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore, signer, zcapClient, ladderSeed, clientAnnexSpaceId, oldGeneration, pinStore }) {
|
|
277
277
|
// 1. Mint + genesis: a fresh generation in the existing auxiliary Space
|
|
278
278
|
// (the typed-Space ensure no-ops on it; the controller argument is only
|
|
279
279
|
// read when the Space does not exist). The genesis commits the minting
|
|
@@ -333,7 +333,7 @@ async function replaceClientAnnexGeneration({ was, wasServerUrl, accountSpaceId,
|
|
|
333
333
|
// fail-open case.
|
|
334
334
|
await setDelegatedClientsPointer({
|
|
335
335
|
idStore,
|
|
336
|
-
|
|
336
|
+
signer,
|
|
337
337
|
clientAnnexDid: minted.did,
|
|
338
338
|
expectedDid: account.did,
|
|
339
339
|
...(pinStore !== undefined
|
|
@@ -365,17 +365,17 @@ async function replaceClientAnnexGeneration({ was, wasServerUrl, accountSpaceId,
|
|
|
365
365
|
* credential's seed the fresh generation is minted from
|
|
366
366
|
* @returns {Promise<string>} the fresh annex DID
|
|
367
367
|
*/
|
|
368
|
-
export async function swapClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore,
|
|
368
|
+
export async function swapClientAnnexGeneration({ was, wasServerUrl, accountSpaceId, account, idStore, signer, zcapClient, ladderSeed, pinStore }) {
|
|
369
369
|
const pointedDid = delegatedClientsPointer({ doc: account.doc });
|
|
370
370
|
if (pointedDid === undefined) {
|
|
371
371
|
throw new Error('clientAnnex: the account document carries no delegated-clients ' +
|
|
372
372
|
'service entry; no generation exists to swap.');
|
|
373
373
|
}
|
|
374
|
-
const { spaceId } = clientAnnexDidParts({ did: pointedDid });
|
|
374
|
+
const { spaceId, generationId } = clientAnnexDidParts({ did: pointedDid });
|
|
375
375
|
const oldGeneration = await readClientAnnexGeneration({
|
|
376
376
|
was,
|
|
377
377
|
spaceId,
|
|
378
|
-
generationId
|
|
378
|
+
generationId,
|
|
379
379
|
expectedDid: pointedDid,
|
|
380
380
|
...(pinStore !== undefined ? { pinStore } : {})
|
|
381
381
|
});
|
|
@@ -385,7 +385,7 @@ export async function swapClientAnnexGeneration({ was, wasServerUrl, accountSpac
|
|
|
385
385
|
accountSpaceId,
|
|
386
386
|
account,
|
|
387
387
|
idStore,
|
|
388
|
-
|
|
388
|
+
signer,
|
|
389
389
|
zcapClient,
|
|
390
390
|
ladderSeed,
|
|
391
391
|
clientAnnexSpaceId: spaceId,
|