@interop/wallet-core 0.66.0 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -8
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
- package/dist/clientAnnex/establish.d.ts +46 -18
- package/dist/clientAnnex/establish.d.ts.map +1 -1
- package/dist/clientAnnex/establish.js +112 -65
- package/dist/clientAnnex/establish.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +5 -6
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +26 -113
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +26 -150
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/heal.d.ts +79 -13
- package/dist/clientAnnex/heal.d.ts.map +1 -1
- package/dist/clientAnnex/heal.js +67 -122
- package/dist/clientAnnex/heal.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +6 -6
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +4 -4
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladder.d.ts +51 -4
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +283 -47
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +69 -34
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +68 -57
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +96 -126
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/mend.js +44 -20
- package/dist/clientAnnex/mend.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
- package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
- package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
- package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +1 -1
- package/dist/clientAnnex/selfEnroll.js.map +1 -1
- package/dist/clientAnnex/zcap.d.ts +19 -0
- package/dist/clientAnnex/zcap.d.ts.map +1 -1
- package/dist/clientAnnex/zcap.js +80 -12
- package/dist/clientAnnex/zcap.js.map +1 -1
- package/dist/clients/index.d.ts +3 -2
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +3 -2
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +33 -15
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/policy.d.ts +18 -0
- package/dist/clients/policy.d.ts.map +1 -1
- package/dist/clients/policy.js +22 -8
- package/dist/clients/policy.js.map +1 -1
- package/dist/clients/revocation.d.ts +18 -30
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +12 -27
- package/dist/clients/revocation.js.map +1 -1
- package/dist/clients/rosterPolicy.d.ts +6 -1
- package/dist/clients/rosterPolicy.d.ts.map +1 -1
- package/dist/clients/rosterPolicy.js +27 -30
- package/dist/clients/rosterPolicy.js.map +1 -1
- package/dist/descriptors/errors.d.ts +6 -5
- package/dist/descriptors/errors.d.ts.map +1 -1
- package/dist/descriptors/errors.js +6 -5
- package/dist/descriptors/errors.js.map +1 -1
- package/dist/descriptors/index.d.ts +7 -3
- package/dist/descriptors/index.d.ts.map +1 -1
- package/dist/descriptors/index.js +7 -3
- package/dist/descriptors/index.js.map +1 -1
- package/dist/descriptors/logSource.d.ts +28 -6
- package/dist/descriptors/logSource.d.ts.map +1 -1
- package/dist/descriptors/logSource.js +33 -7
- package/dist/descriptors/logSource.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +3 -7
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +8 -10
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +39 -41
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/genesis/kmsAuthentication.d.ts +50 -0
- package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
- package/dist/genesis/kmsAuthentication.js +49 -0
- package/dist/genesis/kmsAuthentication.js.map +1 -0
- package/dist/keyring/kdf.d.ts +16 -20
- package/dist/keyring/kdf.d.ts.map +1 -1
- package/dist/keyring/kdf.js +2 -2
- package/dist/keyring/kdf.js.map +1 -1
- package/dist/keyring/unlockSpace.d.ts +8 -30
- package/dist/keyring/unlockSpace.d.ts.map +1 -1
- package/dist/keyring/unlockSpace.js +8 -31
- package/dist/keyring/unlockSpace.js.map +1 -1
- package/dist/keys/clientKeyRecord.d.ts +2 -1
- package/dist/keys/clientKeyRecord.d.ts.map +1 -1
- package/dist/keys/clientKeyRecord.js +28 -11
- package/dist/keys/clientKeyRecord.js.map +1 -1
- package/dist/keys/index.d.ts +6 -2
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +5 -1
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +14 -5
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts +92 -3
- package/dist/keys/spaceEpochs.d.ts.map +1 -1
- package/dist/keys/spaceEpochs.js +110 -4
- package/dist/keys/spaceEpochs.js.map +1 -1
- package/dist/keys/userKeyRoster.d.ts +30 -3
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +90 -15
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
- package/dist/keys/userKeyRosterCascade.js +5 -1
- package/dist/keys/userKeyRosterCascade.js.map +1 -1
- package/dist/recovery/continuation.d.ts +255 -0
- package/dist/recovery/continuation.d.ts.map +1 -0
- package/dist/recovery/continuation.js +471 -0
- package/dist/recovery/continuation.js.map +1 -0
- package/dist/recovery/index.d.ts +12 -8
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/index.js +11 -7
- package/dist/recovery/index.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +23 -126
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +1 -266
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +42 -83
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +44 -380
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/request/classify.d.ts +3 -14
- package/dist/request/classify.d.ts.map +1 -1
- package/dist/request/classify.js +19 -40
- package/dist/request/classify.js.map +1 -1
- package/dist/request/index.d.ts +1 -0
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +1 -0
- package/dist/request/index.js.map +1 -1
- package/dist/request/onboarding.d.ts.map +1 -1
- package/dist/request/onboarding.js +19 -27
- package/dist/request/onboarding.js.map +1 -1
- package/dist/request/parse.d.ts +5 -3
- package/dist/request/parse.d.ts.map +1 -1
- package/dist/request/parse.js +7 -6
- package/dist/request/parse.js.map +1 -1
- package/dist/request/processRequest.d.ts.map +1 -1
- package/dist/request/processRequest.js +2 -1
- package/dist/request/processRequest.js.map +1 -1
- package/dist/request/queryPredicates.d.ts +98 -0
- package/dist/request/queryPredicates.d.ts.map +1 -0
- package/dist/request/queryPredicates.js +107 -0
- package/dist/request/queryPredicates.js.map +1 -0
- package/dist/resourceLog/document.d.ts +39 -0
- package/dist/resourceLog/document.d.ts.map +1 -1
- package/dist/resourceLog/document.js +41 -0
- package/dist/resourceLog/document.js.map +1 -1
- package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
- package/dist/resourceLog/ladderRungs.js +3 -2
- package/dist/resourceLog/ladderRungs.js.map +1 -1
- package/dist/sync/contactsConflict.d.ts.map +1 -1
- package/dist/sync/contactsConflict.js +8 -2
- package/dist/sync/contactsConflict.js.map +1 -1
- package/dist/sync/engine.d.ts +38 -23
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +36 -5
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/index.d.ts +9 -12
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +8 -11
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/push.d.ts.map +1 -1
- package/dist/sync/push.js +1 -2
- package/dist/sync/push.js.map +1 -1
- package/dist/sync/remint.d.ts +0 -31
- package/dist/sync/remint.d.ts.map +1 -1
- package/dist/sync/remint.js +32 -1
- package/dist/sync/remint.js.map +1 -1
- package/dist/sync/types.d.ts +4 -41
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +4 -47
- package/dist/sync/types.js.map +1 -1
- package/dist/unlock/index.d.ts +1 -1
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +1 -1
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/retire.d.ts +16 -56
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +7 -76
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +20 -40
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +35 -76
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.d.ts.map +1 -1
- package/dist/unlock/unlockRecord.js +69 -44
- package/dist/unlock/unlockRecord.js.map +1 -1
- package/dist/webvh/accountEntry.d.ts +63 -7
- package/dist/webvh/accountEntry.d.ts.map +1 -1
- package/dist/webvh/accountEntry.js +110 -19
- package/dist/webvh/accountEntry.js.map +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +18 -12
- package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
- package/dist/webvh/delegatedLogStore.js +32 -11
- package/dist/webvh/delegatedLogStore.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +39 -23
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +63 -45
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/enrollClient.d.ts.map +1 -1
- package/dist/webvh/enrollClient.js +19 -23
- package/dist/webvh/enrollClient.js.map +1 -1
- package/dist/webvh/index.d.ts +11 -7
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +9 -6
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/listClients.d.ts.map +1 -1
- package/dist/webvh/listClients.js +102 -65
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/mergeMethods.d.ts +84 -0
- package/dist/webvh/mergeMethods.d.ts.map +1 -0
- package/dist/webvh/mergeMethods.js +46 -0
- package/dist/webvh/mergeMethods.js.map +1 -0
- package/dist/webvh/revokeClient.d.ts +12 -2
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +126 -48
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/verifyLog.d.ts +21 -0
- package/dist/webvh/verifyLog.d.ts.map +1 -1
- package/dist/webvh/verifyLog.js +36 -14
- package/dist/webvh/verifyLog.js.map +1 -1
- package/package.json +11 -11
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
* the ENROLLED client's root authority, and not through the credential's
|
|
39
39
|
* bridge delegation. The bridge is often signed by the very VM the strike
|
|
40
40
|
* removes -- the readiness stage's renewal mints it as the ladder, and
|
|
41
|
-
* stage
|
|
41
|
+
* stage 5 re-signs it as the ladder again -- so a bridge-invoked reinstall
|
|
42
42
|
* would be authorized against the post-strike document under the
|
|
43
43
|
* current-key-set rule and refused, leaving the account VM-less with every
|
|
44
44
|
* ladder-signed delegation rotted and a re-run failing identically. The
|
|
45
|
-
* client stands until stage
|
|
45
|
+
* client stands until stage 6 and holds root authority on the Space, so
|
|
46
46
|
* its store is the one that carries the pair. Only the HTTP invocation
|
|
47
47
|
* changes: both entries stay ladder-SIGNED.
|
|
48
48
|
* 2. **The roster rotation**, ladder-signed, anchored at the reinstall entry,
|
|
@@ -73,39 +73,18 @@
|
|
|
73
73
|
* is what keeps a torn run from stranding the generation delegation-less.
|
|
74
74
|
* A delegation a surviving sibling credential's ladder signed is left
|
|
75
75
|
* standing, since the revocation loop never reaches it either.
|
|
76
|
-
* 5. **The
|
|
77
|
-
* other standing credential's and recovery code's bridge (and
|
|
78
|
-
* `delegatedClients` sibling, where the record carries one) is re-signed
|
|
79
|
-
* by the ladder VM and its record re-sealed through the entry's
|
|
80
|
-
* management zcap -- the revocation cascade's re-mint pass
|
|
81
|
-
* (`remintRecoveryDelegations`), run with the ladder VM as the delegating
|
|
82
|
-
* and record-signing key and the forgotten client named as retiring, so
|
|
83
|
-
* every delegation it signed counts as rotted ahead of the removal entry.
|
|
84
|
-
* Delegations the removed client had signed rot at that entry, and on a
|
|
85
|
-
* client-less account no remembered login's refresh block will ever run
|
|
86
|
-
* again to heal them, so this is the one pass that reaches them. The
|
|
87
|
-
* HTTP side still invokes under the still-standing client (the
|
|
88
|
-
* management zcaps are granted to the account DID, which only an enrolled
|
|
89
|
-
* client can invoke) -- which is why the stage must run before the
|
|
90
|
-
* removal entry. The pass walks every entry and reports each one's fate,
|
|
91
|
-
* but the ceremony does not carry an unsettled entry past this point: a
|
|
92
|
-
* `failed` or `pending-entry` outcome refuses the removal entry
|
|
93
|
-
* ({@link RecordRemintFailedError}, naming the records the pass left
|
|
94
|
-
* unreached), since after the removal nothing could ever re-sign that
|
|
95
|
-
* record's bridge. The client stays
|
|
96
|
-
* enrolled, and a re-run reaches the entry again.
|
|
97
|
-
* 6. **The record re-bind seam** (`onBeforeRemoval`, required): the caller
|
|
76
|
+
* 5. **The record re-bind seam** (`onBeforeRemoval`, required): the caller
|
|
98
77
|
* re-signs the LOGIN credential's bridge and `delegatedClients` sibling
|
|
99
78
|
* with the ladder VM and re-seals its unlock record with the credential
|
|
100
|
-
* in hand (a full re-wrap, proof verified rather than settled).
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* client -- an account nothing can write to --
|
|
107
|
-
* omits the seam is refused before any read.
|
|
108
|
-
*
|
|
79
|
+
* in hand (a full re-wrap, proof verified rather than settled). It is the
|
|
80
|
+
* only unlock record this ceremony writes. Every OTHER credential's
|
|
81
|
+
* record is signed by its own credential's ladder VM, which this ceremony
|
|
82
|
+
* does not strike, so this transition rots no sibling record and re-seals
|
|
83
|
+
* none (`decisions/0019`). Without the seam the removal entry would leave
|
|
84
|
+
* the login credential's own bridge signed by the struck client's key on
|
|
85
|
+
* an account with no enrolled client -- an account nothing can write to --
|
|
86
|
+
* which is why a call that omits the seam is refused before any read.
|
|
87
|
+
* 6. **The removal entry** ({@link forgetLastWebvhClient}): the client's
|
|
109
88
|
* whole document inventory out while the reinstalled ladder VM keeps the
|
|
110
89
|
* account anchored. The post-removal `did:web` projection is PUT through
|
|
111
90
|
* `clientLogStore` immediately BEFORE that entry, since the entry itself
|
|
@@ -133,9 +112,7 @@
|
|
|
133
112
|
* the generation stage re-asks the same staleness policy (a prior run's own
|
|
134
113
|
* fresh delegation reads as retiring, so a re-run churns one delegation and
|
|
135
114
|
* strands nothing, while a sibling-signed one churns none), and the record
|
|
136
|
-
* re-
|
|
137
|
-
* already ladder-signed reads as current, one whose re-mint failed is still
|
|
138
|
-
* rotted and is re-minted). Torn after the removal entry is the
|
|
115
|
+
* re-bind seam is idempotent. Torn after the removal entry is the
|
|
139
116
|
* finish-the-wipe state the app's next login maps.
|
|
140
117
|
*
|
|
141
118
|
* The honest limitation is the cascade's, as everywhere: ciphertext this
|
|
@@ -143,16 +120,13 @@
|
|
|
143
120
|
* and old epochs stay open to keys it already held.
|
|
144
121
|
*/
|
|
145
122
|
import type { DIDDoc, DIDLog } from '@interop/did-method-webvh';
|
|
146
|
-
import type { IKeyAgreementKey
|
|
147
|
-
import type { ZcapClient } from '@interop/ezcap';
|
|
123
|
+
import type { IKeyAgreementKey } from '@interop/data-integrity-core';
|
|
148
124
|
import type { CollectionEncryption, IDelegatedZcap } from '@interop/was-client';
|
|
149
125
|
import type { WebvhIdStore } from '../webvh/didWebvh.js';
|
|
150
126
|
import { type RevokedClientKeys } from '../webvh/revokeClient.js';
|
|
151
127
|
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
152
128
|
import { type CascadeCollections, type SealableEncryptionDescriptorStore, type UserKey, type UserKeyAdoptedHook, type UserKeyCascadeResult } from '../keys/index.js';
|
|
153
129
|
import type { UnlockLogStore } from '../unlock/standingWebvh.js';
|
|
154
|
-
import type { AccountPointer } from '../keyring/record.js';
|
|
155
|
-
import { type RecordRemintOutcome, type RecoveryDelegationEntry } from '../recovery/recoveryDelegation.js';
|
|
156
130
|
import { type ClientAnnexWriteStore } from './log.js';
|
|
157
131
|
/**
|
|
158
132
|
* What the ceremony's generation stage did: the revoked delegation ids, and
|
|
@@ -173,76 +147,26 @@ export interface GenerationDelegationRetirement {
|
|
|
173
147
|
replaced: boolean;
|
|
174
148
|
skipped?: 'no-pointer' | 'log-unreadable' | 'rung-uncommitted' | 'already-removed';
|
|
175
149
|
}
|
|
176
|
-
/**
|
|
177
|
-
* The other unlock methods' reach for the record re-mint stage: the registry
|
|
178
|
-
* entries to walk (the OTHER methods' -- the login credential's own record is
|
|
179
|
-
* the `onBeforeRemoval` seam's, re-wrapped with the credential in hand; an
|
|
180
|
-
* entry for it here is harmless but redundant), the unlock Spaces' storage
|
|
181
|
-
* server, the management-zcap client factory (invoking as the still-standing
|
|
182
|
-
* client), and the registry record-back seam. The shape is the revocation
|
|
183
|
-
* cascade's re-mint seams verbatim, so an app binds both from one place.
|
|
184
|
-
*/
|
|
185
|
-
export interface UnlockMethodsRemintReach<Entry extends RecoveryDelegationEntry = RecoveryDelegationEntry> {
|
|
186
|
-
entries: Entry[];
|
|
187
|
-
pointer: AccountPointer;
|
|
188
|
-
storageServerUrl: string;
|
|
189
|
-
managementZcapClient: (options: {
|
|
190
|
-
capability: IZcap;
|
|
191
|
-
}) => ZcapClient;
|
|
192
|
-
recordEntry: (options: {
|
|
193
|
-
entry: Entry;
|
|
194
|
-
}) => Promise<void>;
|
|
195
|
-
}
|
|
196
150
|
/**
|
|
197
151
|
* What a completed last-client forget reports: whether the reinstall half of
|
|
198
152
|
* the strike-and-reinstall pair ran on this call (`false` on a resumed run
|
|
199
153
|
* that owed no rotation, so neither entry was published), whether the
|
|
200
154
|
* roster's wrap for the
|
|
201
155
|
* forgotten client was retired on this run, the per-collection fan-out
|
|
202
|
-
* result, the generation stage's report, the
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
* since that refuses the removal entry instead), the document as the removal
|
|
206
|
-
* entry left it, and -- when the account has a roster -- the rotated key with
|
|
207
|
-
* the roster descriptor it was read from.
|
|
156
|
+
* result, the generation stage's report, the document as the removal entry
|
|
157
|
+
* left it, and -- when the account has a roster -- the rotated key with the
|
|
158
|
+
* roster descriptor it was read from.
|
|
208
159
|
*/
|
|
209
160
|
export interface LastEnrolledClientForgetResult {
|
|
210
161
|
reinstalled: boolean;
|
|
211
162
|
rotated: boolean;
|
|
212
163
|
collections: UserKeyCascadeResult;
|
|
213
164
|
generation: GenerationDelegationRetirement;
|
|
214
|
-
unlockMethods?: {
|
|
215
|
-
reminted: number;
|
|
216
|
-
skipped: number;
|
|
217
|
-
outcomes: RecordRemintOutcome[];
|
|
218
|
-
};
|
|
219
165
|
did: string;
|
|
220
166
|
document: object;
|
|
221
167
|
userKey?: UserKey;
|
|
222
168
|
rosterDescriptor?: CollectionEncryption;
|
|
223
169
|
}
|
|
224
|
-
/**
|
|
225
|
-
* The record re-mint stage could not settle every other unlock method's
|
|
226
|
-
* record, so the removal entry was refused: `failed` names the entries the
|
|
227
|
-
* pass left unreached -- those whose re-mint threw (each carrying its cause)
|
|
228
|
-
* and those it skipped as pending-shaped (the entry's identity members name
|
|
229
|
-
* a credential other than the one its record is sealed to) -- and
|
|
230
|
-
* `unlockMethods` is the whole stage report. A pending-shaped entry blocks
|
|
231
|
-
* for the same reason a failed one does: its bridge is left signed by the
|
|
232
|
-
* key the removal entry strikes, and on a client-less account no login will
|
|
233
|
-
* ever heal it. The mender is a remembered login, which is exactly what the
|
|
234
|
-
* removal would end. The forgotten client is still enrolled and every stage
|
|
235
|
-
* before this one has landed, so a re-run resumes at the re-mint. Matched
|
|
236
|
-
* on `name` (the errors cross app-injected seams that may resolve to another
|
|
237
|
-
* copy of this package).
|
|
238
|
-
*/
|
|
239
|
-
export declare class RecordRemintFailedError extends Error {
|
|
240
|
-
readonly failed: RecordRemintOutcome[];
|
|
241
|
-
readonly unlockMethods: NonNullable<LastEnrolledClientForgetResult['unlockMethods']>;
|
|
242
|
-
constructor({ unlockMethods }: {
|
|
243
|
-
unlockMethods: NonNullable<LastEnrolledClientForgetResult['unlockMethods']>;
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
170
|
/**
|
|
247
171
|
* Forgets the account's LAST enrolled client -- this browser's own
|
|
248
172
|
* -- transitioning the account to the client-less, ladder-anchored state.
|
|
@@ -262,7 +186,7 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
262
186
|
* `logStore` is often signed by the ladder VM the strike removes and the
|
|
263
187
|
* reinstall would then be refused under the current-key-set rule. Both
|
|
264
188
|
* entries stay ladder-signed; only the HTTP invocation differs. It also
|
|
265
|
-
* carries the removal entry's pre-entry `did:web` projection PUT (stage
|
|
189
|
+
* carries the removal entry's pre-entry `did:web` projection PUT (stage 6),
|
|
266
190
|
* the one write the bridge store cannot make. Required: a call without it
|
|
267
191
|
* throws a `TypeError` before any read
|
|
268
192
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
@@ -322,28 +246,18 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
322
246
|
* fresh delegation's target subtree)
|
|
323
247
|
* @param [options.annex.pinStore] {ResourceLogPinStore} chain-head pins
|
|
324
248
|
* for the pointed generation's read
|
|
325
|
-
* @param [options.unlockMethods] {UnlockMethodsRemintReach} the other
|
|
326
|
-
* unlock methods' record re-mint reach (stage 5): the registry entries
|
|
327
|
-
* whose bridge (and sibling) the ladder VM re-signs and whose records it
|
|
328
|
-
* re-seals through their management zcaps, invoked as the still-standing
|
|
329
|
-
* client. Omitted, the stage is skipped and the result carries no
|
|
330
|
-
* `unlockMethods` report -- the residue decision 0004's amendment stated.
|
|
331
|
-
* Supplied, an entry the pass could not re-mint -- or skipped as
|
|
332
|
-
* pending-shaped -- refuses the removal entry
|
|
333
|
-
* (`RecordRemintFailedError`)
|
|
334
249
|
* @param options.onBeforeRemoval {Function}
|
|
335
250
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
* without it throws a `TypeError` before any read
|
|
251
|
+
* immediately before the removal entry, with the post-reinstall published
|
|
252
|
+
* state. The caller re-signs the login credential's bridge and
|
|
253
|
+
* `delegatedClients` sibling with the ladder VM and re-seals its unlock
|
|
254
|
+
* record here -- the only unlock record this ceremony writes. Must be
|
|
255
|
+
* idempotent (a resumed run invokes it again). Required: a call without it
|
|
256
|
+
* throws a `TypeError` before any read
|
|
343
257
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
344
258
|
* @returns {Promise<LastEnrolledClientForgetResult>}
|
|
345
259
|
*/
|
|
346
|
-
export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex,
|
|
260
|
+
export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, onBeforeRemoval, now }: {
|
|
347
261
|
logStore: UnlockLogStore;
|
|
348
262
|
clientLogStore: UnlockLogStore;
|
|
349
263
|
pinStore?: ResourceLogPinStore;
|
|
@@ -368,7 +282,6 @@ export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pin
|
|
|
368
282
|
accountSpaceId: string;
|
|
369
283
|
pinStore?: ResourceLogPinStore;
|
|
370
284
|
};
|
|
371
|
-
unlockMethods?: UnlockMethodsRemintReach;
|
|
372
285
|
onBeforeRemoval: (published: {
|
|
373
286
|
did: string;
|
|
374
287
|
doc: object;
|
|
@@ -377,7 +290,7 @@ export declare function forgetLastEnrolledClient({ logStore, clientLogStore, pin
|
|
|
377
290
|
now?: number;
|
|
378
291
|
}): Promise<LastEnrolledClientForgetResult>;
|
|
379
292
|
/**
|
|
380
|
-
* THE LAST-CLIENT REMOVAL ENTRY (stage
|
|
293
|
+
* THE LAST-CLIENT REMOVAL ENTRY (stage 6, the transition's own removal): the
|
|
381
294
|
* plain forget's removal shape (`clientForgetEntryOnce`) with this ceremony's
|
|
382
295
|
* removability invariant injected instead of the plain forget's last-client
|
|
383
296
|
* refusal -- the forgotten client IS the last enrolled client, and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"forgetLast.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,55 +4,11 @@ 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 { anchorRosterStoreAt, isSealableDescriptorStore, retireRosterRecipientAndCascade, rosterRecipientKid, rosterWrapsRecipient } from '../keys/index.js';
|
|
7
|
-
import { recordSignerFromAgent } from '../keyring/record.js';
|
|
8
|
-
import { remintRecoveryDelegations } from '../recovery/recoveryDelegation.js';
|
|
9
7
|
import { ladderVmKeyMultibase } from './ladder.js';
|
|
10
8
|
import { ladderVmIds, relationIds } from '../resourceLog/document.js';
|
|
11
|
-
import {
|
|
9
|
+
import { ladderVmZcapClient } from './zcap.js';
|
|
12
10
|
import { clientForgetEntryOnce, installLadderVmWebvh, strikeLadderVmWebvh } from './ladderAnchored.js';
|
|
13
|
-
import { clientAnnexDidParts, clientAnnexLogPinId,
|
|
14
|
-
/**
|
|
15
|
-
* The re-mint outcomes that withhold the removal entry: a record the pass
|
|
16
|
-
* could not reach, and a pending-shaped entry it deliberately did not write
|
|
17
|
-
* (re-minting one would seal a half-retired credential a fresh bridge into
|
|
18
|
-
* the standing credential's record). Both leave a bridge the removal entry
|
|
19
|
-
* would rot for good on an account that will never see a remembered login
|
|
20
|
-
* again.
|
|
21
|
-
*/
|
|
22
|
-
const REMINT_BLOCKING_OUTCOMES = [
|
|
23
|
-
'failed',
|
|
24
|
-
'pending-entry'
|
|
25
|
-
];
|
|
26
|
-
/**
|
|
27
|
-
* The record re-mint stage could not settle every other unlock method's
|
|
28
|
-
* record, so the removal entry was refused: `failed` names the entries the
|
|
29
|
-
* pass left unreached -- those whose re-mint threw (each carrying its cause)
|
|
30
|
-
* and those it skipped as pending-shaped (the entry's identity members name
|
|
31
|
-
* a credential other than the one its record is sealed to) -- and
|
|
32
|
-
* `unlockMethods` is the whole stage report. A pending-shaped entry blocks
|
|
33
|
-
* for the same reason a failed one does: its bridge is left signed by the
|
|
34
|
-
* key the removal entry strikes, and on a client-less account no login will
|
|
35
|
-
* ever heal it. The mender is a remembered login, which is exactly what the
|
|
36
|
-
* removal would end. The forgotten client is still enrolled and every stage
|
|
37
|
-
* before this one has landed, so a re-run resumes at the re-mint. Matched
|
|
38
|
-
* on `name` (the errors cross app-injected seams that may resolve to another
|
|
39
|
-
* copy of this package).
|
|
40
|
-
*/
|
|
41
|
-
export class RecordRemintFailedError extends Error {
|
|
42
|
-
failed;
|
|
43
|
-
unlockMethods;
|
|
44
|
-
constructor({ unlockMethods }) {
|
|
45
|
-
const failed = unlockMethods.outcomes.filter(outcome => REMINT_BLOCKING_OUTCOMES.includes(outcome.outcome));
|
|
46
|
-
super('did:webvh: the last-client forget could not settle the record of ' +
|
|
47
|
-
`${failed.length} other unlock method(s) (` +
|
|
48
|
-
failed.map(outcome => `"${outcome.label}"`).join(', ') +
|
|
49
|
-
'); the removal entry was not published. The client stays enrolled; ' +
|
|
50
|
-
'run the forget again.');
|
|
51
|
-
this.name = 'RecordRemintFailedError';
|
|
52
|
-
this.failed = failed;
|
|
53
|
-
this.unlockMethods = unlockMethods;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
11
|
+
import { clientAnnexDidParts, clientAnnexLogPinId, delegatedClientsPointer, ensureGenerationDelegationCurrent, generationDelegationHistory, mintGenerationDelegation, revokeTreatingAlreadyRevokedAsSuccess } from './log.js';
|
|
56
12
|
/**
|
|
57
13
|
* Forgets the account's LAST enrolled client -- this browser's own
|
|
58
14
|
* -- transitioning the account to the client-less, ladder-anchored state.
|
|
@@ -72,7 +28,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
72
28
|
* `logStore` is often signed by the ladder VM the strike removes and the
|
|
73
29
|
* reinstall would then be refused under the current-key-set rule. Both
|
|
74
30
|
* entries stay ladder-signed; only the HTTP invocation differs. It also
|
|
75
|
-
* carries the removal entry's pre-entry `did:web` projection PUT (stage
|
|
31
|
+
* carries the removal entry's pre-entry `did:web` projection PUT (stage 6),
|
|
76
32
|
* the one write the bridge store cannot make. Required: a call without it
|
|
77
33
|
* throws a `TypeError` before any read
|
|
78
34
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
@@ -132,28 +88,18 @@ export class RecordRemintFailedError extends Error {
|
|
|
132
88
|
* fresh delegation's target subtree)
|
|
133
89
|
* @param [options.annex.pinStore] {ResourceLogPinStore} chain-head pins
|
|
134
90
|
* for the pointed generation's read
|
|
135
|
-
* @param [options.unlockMethods] {UnlockMethodsRemintReach} the other
|
|
136
|
-
* unlock methods' record re-mint reach (stage 5): the registry entries
|
|
137
|
-
* whose bridge (and sibling) the ladder VM re-signs and whose records it
|
|
138
|
-
* re-seals through their management zcaps, invoked as the still-standing
|
|
139
|
-
* client. Omitted, the stage is skipped and the result carries no
|
|
140
|
-
* `unlockMethods` report -- the residue decision 0004's amendment stated.
|
|
141
|
-
* Supplied, an entry the pass could not re-mint -- or skipped as
|
|
142
|
-
* pending-shaped -- refuses the removal entry
|
|
143
|
-
* (`RecordRemintFailedError`)
|
|
144
91
|
* @param options.onBeforeRemoval {Function}
|
|
145
92
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
* without it throws a `TypeError` before any read
|
|
93
|
+
* immediately before the removal entry, with the post-reinstall published
|
|
94
|
+
* state. The caller re-signs the login credential's bridge and
|
|
95
|
+
* `delegatedClients` sibling with the ladder VM and re-seals its unlock
|
|
96
|
+
* record here -- the only unlock record this ceremony writes. Must be
|
|
97
|
+
* idempotent (a resumed run invokes it again). Required: a call without it
|
|
98
|
+
* throws a `TypeError` before any read
|
|
153
99
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
154
100
|
* @returns {Promise<LastEnrolledClientForgetResult>}
|
|
155
101
|
*/
|
|
156
|
-
export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex,
|
|
102
|
+
export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, onBeforeRemoval, now = Date.now() }) {
|
|
157
103
|
// The seam is the only stage that re-signs the login credential's bridge
|
|
158
104
|
// with the ladder VM; a run without it would land the removal entry over
|
|
159
105
|
// a record the struck key signed, on an account nothing could then write
|
|
@@ -327,32 +273,8 @@ export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinSt
|
|
|
327
273
|
annex,
|
|
328
274
|
now
|
|
329
275
|
});
|
|
330
|
-
// Stage 5: the
|
|
331
|
-
//
|
|
332
|
-
// still lists it, so without that axis every bridge it signed would read
|
|
333
|
-
// as standing and be left to rot at the removal entry.
|
|
334
|
-
let remint;
|
|
335
|
-
if (unlockMethods !== undefined) {
|
|
336
|
-
remint = await remintUnlockMethodRecordsAsLadder({
|
|
337
|
-
doc: anchor.doc,
|
|
338
|
-
accountDid: anchor.did,
|
|
339
|
-
ladderSeed,
|
|
340
|
-
retiringSigningKeyMultibase: forgottenClient.signingKeyMultibase,
|
|
341
|
-
reach: unlockMethods,
|
|
342
|
-
now
|
|
343
|
-
});
|
|
344
|
-
// The one pass that will ever reach these records on a client-less
|
|
345
|
-
// account: a record it could not re-seal -- or deliberately did not
|
|
346
|
-
// write, the pending-shaped entry -- would be left with a bridge the
|
|
347
|
-
// removal entry rots for good, so the removal is refused instead. The
|
|
348
|
-
// stages already landed are idempotent and the client still stands, so
|
|
349
|
-
// the re-run resumes here.
|
|
350
|
-
if (remint.outcomes.some(outcome => REMINT_BLOCKING_OUTCOMES.includes(outcome.outcome))) {
|
|
351
|
-
throw new RecordRemintFailedError({ unlockMethods: remint });
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
// Stage 6: the record re-bind seam -- the login credential's record, the
|
|
355
|
-
// one stage 5 skipped -- while the removal has not landed (a
|
|
276
|
+
// Stage 5: the record re-bind seam -- the login credential's record, the
|
|
277
|
+
// only one this ceremony writes -- while the removal has not landed (a
|
|
356
278
|
// ladder-VM-signed bridge verifies from the reinstall entry on, and the old
|
|
357
279
|
// client-signed one keeps verifying until the removal -- so a tear on
|
|
358
280
|
// either side of this callback leaves a working login).
|
|
@@ -361,7 +283,7 @@ export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinSt
|
|
|
361
283
|
doc: anchor.doc,
|
|
362
284
|
log: anchor.log
|
|
363
285
|
});
|
|
364
|
-
// Stage
|
|
286
|
+
// Stage 6: the removal entry -- the client's whole inventory out, the
|
|
365
287
|
// installed ladder VM keeping the account anchored.
|
|
366
288
|
const removed = await forgetLastWebvhClient({
|
|
367
289
|
store: logStore,
|
|
@@ -377,7 +299,6 @@ export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinSt
|
|
|
377
299
|
rotated: tail.rotated,
|
|
378
300
|
collections: tail.collections,
|
|
379
301
|
generation,
|
|
380
|
-
...(remint ? { unlockMethods: remint } : {}),
|
|
381
302
|
did: removed.did,
|
|
382
303
|
document: removed.doc,
|
|
383
304
|
...(tail.userKey && tail.rosterDescriptor
|
|
@@ -399,7 +320,7 @@ export async function forgetLastEnrolledClient({ logStore, clientLogStore, pinSt
|
|
|
399
320
|
* PROJECTED post-edit document, not by an unconditional force: this
|
|
400
321
|
* credential's ladder VM is named as retiring (the revocations below end its
|
|
401
322
|
* delegations, a state no client-side predicate can read) and so is the
|
|
402
|
-
* forgotten client (the removal entry in stage
|
|
323
|
+
* forgotten client (the removal entry in stage 6 has yet to strike it). A
|
|
403
324
|
* delegation signed by neither -- a sibling credential's ladder VM, which
|
|
404
325
|
* survives the transition -- stands, and keeping it is the right answer: the
|
|
405
326
|
* revocation loop below never reaches it.
|
|
@@ -480,73 +401,28 @@ async function retireLadderGenerationDelegations({ doc, accountDid, ladderSeed,
|
|
|
480
401
|
replaced = ensured.renewed;
|
|
481
402
|
}
|
|
482
403
|
catch (err) {
|
|
483
|
-
if (err
|
|
404
|
+
if (err?.name !==
|
|
405
|
+
'ClientAnnexRungUncommittedError') {
|
|
484
406
|
throw err;
|
|
485
407
|
}
|
|
486
408
|
rungUncommitted = true;
|
|
487
409
|
}
|
|
488
410
|
// The revocations, blind and resumable (400 already-revoked as success).
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
}
|
|
499
|
-
}
|
|
411
|
+
// They target independent delegations, so they run together; the reported
|
|
412
|
+
// ids keep the doomed list's order.
|
|
413
|
+
await Promise.all(doomed.map(delegation => revokeTreatingAlreadyRevokedAsSuccess({
|
|
414
|
+
revoke: annex.revoke,
|
|
415
|
+
delegation
|
|
416
|
+
})));
|
|
417
|
+
const revoked = doomed
|
|
418
|
+
.map(delegation => delegation.id)
|
|
419
|
+
.filter((id) => typeof id === 'string');
|
|
500
420
|
return rungUncommitted
|
|
501
421
|
? { revoked, replaced, skipped: 'rung-uncommitted' }
|
|
502
422
|
: { revoked, replaced };
|
|
503
423
|
}
|
|
504
424
|
/**
|
|
505
|
-
*
|
|
506
|
-
* other unlock methods' registry entries, with the ladder VM as both the
|
|
507
|
-
* delegating key (the fresh bridge and sibling) and the record-frame signer
|
|
508
|
-
* (`ladderVmAgent`'s did:key form, whose multibase the post-reinstall document
|
|
509
|
-
* lists, so a reader settling the mixed-signer proof against the account
|
|
510
|
-
* document accepts it after the removal too -- `currentAccountRecordSigners`
|
|
511
|
-
* is that allowlist), and the forgotten client named as retiring. The sibling
|
|
512
|
-
* minter reads the annex pointer off the post-reinstall document. The HTTP
|
|
513
|
-
* side rides the caller's management-zcap clients, still invocable here.
|
|
514
|
-
*
|
|
515
|
-
* @param options {object}
|
|
516
|
-
* @param options.doc {DIDDoc} the post-reinstall account document
|
|
517
|
-
* @param options.accountDid {string}
|
|
518
|
-
* @param options.ladderSeed {Uint8Array}
|
|
519
|
-
* @param options.retiringSigningKeyMultibase {string} the forgotten
|
|
520
|
-
* client's signing key
|
|
521
|
-
* @param options.reach {UnlockMethodsRemintReach}
|
|
522
|
-
* @param options.now {number}
|
|
523
|
-
* @returns {Promise<object>} the pass's counts and per-entry outcomes
|
|
524
|
-
*/
|
|
525
|
-
async function remintUnlockMethodRecordsAsLadder({ doc, accountDid, ladderSeed, retiringSigningKeyMultibase, reach, now }) {
|
|
526
|
-
const ladderClient = await ladderVmZcapClient({ accountDid, ladderSeed });
|
|
527
|
-
const recordSigner = recordSignerFromAgent({
|
|
528
|
-
keyAgent: await ladderVmAgent({ ladderSeed })
|
|
529
|
-
});
|
|
530
|
-
return remintRecoveryDelegations({
|
|
531
|
-
doc,
|
|
532
|
-
entries: reach.entries,
|
|
533
|
-
pointer: reach.pointer,
|
|
534
|
-
storageServerUrl: reach.storageServerUrl,
|
|
535
|
-
zcapClient: ladderClient,
|
|
536
|
-
recordSigner,
|
|
537
|
-
managementZcapClient: reach.managementZcapClient,
|
|
538
|
-
recordEntry: reach.recordEntry,
|
|
539
|
-
mintDelegatedClientsDelegation: delegatedClientsDelegationMinter({
|
|
540
|
-
doc,
|
|
541
|
-
zcapClient: ladderClient,
|
|
542
|
-
wasServerUrl: reach.pointer.host
|
|
543
|
-
}),
|
|
544
|
-
retiringKeyMultibases: [retiringSigningKeyMultibase],
|
|
545
|
-
now
|
|
546
|
-
});
|
|
547
|
-
}
|
|
548
|
-
/**
|
|
549
|
-
* THE LAST-CLIENT REMOVAL ENTRY (stage 7, the transition's own removal): the
|
|
425
|
+
* THE LAST-CLIENT REMOVAL ENTRY (stage 6, the transition's own removal): the
|
|
550
426
|
* plain forget's removal shape (`clientForgetEntryOnce`) with this ceremony's
|
|
551
427
|
* removability invariant injected instead of the plain forget's last-client
|
|
552
428
|
* refusal -- the forgotten client IS the last enrolled client, and the
|
|
@@ -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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"}
|