@interop/wallet-core 0.51.0 → 0.52.1
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 +7 -11
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +2 -2
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +1 -1
- package/dist/clientAnnex/forget.d.ts +18 -6
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +19 -6
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +33 -20
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +43 -17
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/gc.d.ts +3 -3
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +2 -2
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +5 -5
- 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 +19 -11
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +77 -14
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +36 -7
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +80 -18
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +6 -6
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +8 -8
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +7 -7
- package/dist/clientAnnex/recoveryLadderAnchored.js +9 -9
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/selfEnroll.d.ts +6 -4
- package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +19 -7
- package/dist/clientAnnex/selfEnroll.js.map +1 -1
- package/dist/clients/listing.d.ts +1 -1
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +1 -1
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/revocation.d.ts +1 -1
- package/dist/clients/rosterPolicy.d.ts +1 -1
- package/dist/clients/rosterPolicy.d.ts.map +1 -1
- package/dist/descriptors/acquire.js +1 -1
- package/dist/descriptors/logSource.d.ts +1 -2
- package/dist/descriptors/logSource.d.ts.map +1 -1
- package/dist/descriptors/logSource.js +2 -2
- package/dist/descriptors/logSource.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts +1 -1
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +2 -1
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +1 -1
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/keyring/kdf.d.ts +6 -20
- package/dist/keyring/kdf.d.ts.map +1 -1
- package/dist/keyring/kdf.js +8 -5
- package/dist/keyring/kdf.js.map +1 -1
- package/dist/keyring/unlockSpace.js +1 -1
- package/dist/keys/rosterLogStore.d.ts +16 -14
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +149 -32
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/rosterStore.d.ts +8 -7
- package/dist/keys/rosterStore.d.ts.map +1 -1
- package/dist/keys/rosterStore.js +6 -6
- package/dist/keys/rosterStore.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts +1 -1
- package/dist/keys/spaceEpochs.js +1 -1
- package/dist/keys/userKeyRoster.d.ts +3 -3
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +3 -3
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/recovery/index.d.ts +2 -2
- package/dist/recovery/index.js +2 -2
- package/dist/recovery/recoveryDelegation.js +1 -1
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +4 -4
- package/dist/recovery/recoveryWebvh.js +5 -5
- package/dist/request/appKey.d.ts +9 -3
- package/dist/request/appKey.d.ts.map +1 -1
- package/dist/request/appKey.js +13 -8
- package/dist/request/appKey.js.map +1 -1
- package/dist/request/classify.d.ts.map +1 -1
- package/dist/request/classify.js +13 -1
- package/dist/request/classify.js.map +1 -1
- package/dist/request/ephemeralExchange.d.ts +6 -1
- package/dist/request/ephemeralExchange.d.ts.map +1 -1
- package/dist/request/ephemeralExchange.js +6 -1
- package/dist/request/ephemeralExchange.js.map +1 -1
- package/dist/request/exchangeClient.d.ts +0 -23
- package/dist/request/exchangeClient.d.ts.map +1 -1
- package/dist/request/exchangeClient.js +30 -1
- package/dist/request/exchangeClient.js.map +1 -1
- package/dist/request/index.d.ts +4 -1
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +4 -1
- package/dist/request/index.js.map +1 -1
- package/dist/request/interactionRequest.d.ts +23 -0
- package/dist/request/interactionRequest.d.ts.map +1 -0
- package/dist/request/interactionRequest.js +46 -0
- package/dist/request/interactionRequest.js.map +1 -0
- package/dist/request/interactionUrl.d.ts +3 -14
- package/dist/request/interactionUrl.d.ts.map +1 -1
- package/dist/request/interactionUrl.js +20 -1
- package/dist/request/interactionUrl.js.map +1 -1
- package/dist/resourceLog/controller.d.ts +48 -49
- package/dist/resourceLog/controller.d.ts.map +1 -1
- package/dist/resourceLog/controller.js +40 -20
- package/dist/resourceLog/controller.js.map +1 -1
- package/dist/resourceLog/errors.d.ts +12 -78
- package/dist/resourceLog/errors.d.ts.map +1 -1
- package/dist/resourceLog/errors.js +12 -79
- package/dist/resourceLog/errors.js.map +1 -1
- package/dist/resourceLog/index.d.ts +17 -22
- package/dist/resourceLog/index.d.ts.map +1 -1
- package/dist/resourceLog/index.js +16 -21
- package/dist/resourceLog/index.js.map +1 -1
- package/dist/resourceLog/license.d.ts +27 -26
- package/dist/resourceLog/license.d.ts.map +1 -1
- package/dist/resourceLog/license.js +31 -30
- package/dist/resourceLog/license.js.map +1 -1
- package/dist/unlock/index.d.ts +6 -6
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +5 -5
- package/dist/unlock/retire.d.ts +29 -28
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +25 -16
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingClient.d.ts +1 -1
- package/dist/unlock/standingClient.js +3 -3
- package/dist/unlock/standingWebvh.d.ts +28 -10
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +75 -37
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.js +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +2 -2
- package/dist/webvh/delegatedLogStore.js +2 -2
- package/dist/webvh/didWeb.js +1 -1
- package/dist/webvh/didWeb.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +3 -3
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +5 -5
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/listClients.js +1 -1
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/verifyLog.d.ts +1 -1
- package/dist/webvh/verifyLog.d.ts.map +1 -1
- package/dist/webvh/verifyLog.js +1 -2
- package/dist/webvh/verifyLog.js.map +1 -1
- package/package.json +5 -9
- package/dist/display/alignment.d.ts +0 -55
- package/dist/display/alignment.d.ts.map +0 -1
- package/dist/display/alignment.js +0 -117
- package/dist/display/alignment.js.map +0 -1
- package/dist/display/credentialName.d.ts +0 -42
- package/dist/display/credentialName.d.ts.map +0 -1
- package/dist/display/credentialName.js +0 -106
- package/dist/display/credentialName.js.map +0 -1
- package/dist/display/displayFields.d.ts +0 -59
- package/dist/display/displayFields.d.ts.map +0 -1
- package/dist/display/displayFields.js +0 -136
- package/dist/display/displayFields.js.map +0 -1
- package/dist/display/evidence.d.ts +0 -50
- package/dist/display/evidence.d.ts.map +0 -1
- package/dist/display/evidence.js +0 -67
- package/dist/display/evidence.js.map +0 -1
- package/dist/display/image.d.ts +0 -18
- package/dist/display/image.d.ts.map +0 -1
- package/dist/display/image.js +0 -23
- package/dist/display/image.js.map +0 -1
- package/dist/display/index.d.ts +0 -38
- package/dist/display/index.d.ts.map +0 -1
- package/dist/display/index.js +0 -32
- package/dist/display/index.js.map +0 -1
- package/dist/display/issuer.d.ts +0 -105
- package/dist/display/issuer.d.ts.map +0 -1
- package/dist/display/issuer.js +0 -126
- package/dist/display/issuer.js.map +0 -1
- package/dist/display/obv3.d.ts +0 -82
- package/dist/display/obv3.d.ts.map +0 -1
- package/dist/display/obv3.js +0 -117
- package/dist/display/obv3.js.map +0 -1
- package/dist/display/parse.d.ts +0 -66
- package/dist/display/parse.d.ts.map +0 -1
- package/dist/display/parse.js +0 -104
- package/dist/display/parse.js.map +0 -1
- package/dist/display/subject.d.ts +0 -79
- package/dist/display/subject.d.ts.map +0 -1
- package/dist/display/subject.js +0 -124
- package/dist/display/subject.js.map +0 -1
- package/dist/display/text.d.ts +0 -53
- package/dist/display/text.d.ts.map +0 -1
- package/dist/display/text.js +0 -78
- package/dist/display/text.js.map +0 -1
- package/dist/display/types.d.ts +0 -55
- package/dist/display/types.d.ts.map +0 -1
- package/dist/display/types.js +0 -41
- package/dist/display/types.js.map +0 -1
- package/dist/display/validity.d.ts +0 -51
- package/dist/display/validity.d.ts.map +0 -1
- package/dist/display/validity.js +0 -51
- package/dist/display/validity.js.map +0 -1
- package/dist/display/verificationView.d.ts +0 -115
- package/dist/display/verificationView.d.ts.map +0 -1
- package/dist/display/verificationView.js +0 -199
- package/dist/display/verificationView.js.map +0 -1
- package/dist/resourceLog/append.d.ts +0 -112
- package/dist/resourceLog/append.d.ts.map +0 -1
- package/dist/resourceLog/append.js +0 -197
- package/dist/resourceLog/append.js.map +0 -1
- package/dist/resourceLog/entry.d.ts +0 -68
- package/dist/resourceLog/entry.d.ts.map +0 -1
- package/dist/resourceLog/entry.js +0 -167
- package/dist/resourceLog/entry.js.map +0 -1
- package/dist/resourceLog/pin.d.ts +0 -82
- package/dist/resourceLog/pin.d.ts.map +0 -1
- package/dist/resourceLog/pin.js +0 -57
- package/dist/resourceLog/pin.js.map +0 -1
- package/dist/resourceLog/seal.d.ts +0 -97
- package/dist/resourceLog/seal.d.ts.map +0 -1
- package/dist/resourceLog/seal.js +0 -113
- package/dist/resourceLog/seal.js.map +0 -1
- package/dist/resourceLog/verify.d.ts +0 -96
- package/dist/resourceLog/verify.d.ts.map +0 -1
- package/dist/resourceLog/verify.js +0 -474
- package/dist/resourceLog/verify.js.map +0 -1
- package/dist/resourceLog/vmFragment.d.ts +0 -33
- package/dist/resourceLog/vmFragment.d.ts.map +0 -1
- package/dist/resourceLog/vmFragment.js +0 -39
- package/dist/resourceLog/vmFragment.js.map +0 -1
package/README.md
CHANGED
|
@@ -65,10 +65,6 @@ The subpaths:
|
|
|
65
65
|
[`@interop/data-integrity-core`](https://npm.im/@interop/data-integrity-core)
|
|
66
66
|
and is re-exported here.
|
|
67
67
|
|
|
68
|
-
- **`@interop/wallet-core/display`** -- pure verifiable-credential derivation /
|
|
69
|
-
display helpers and credential input parsing. Raw values out (ISO strings,
|
|
70
|
-
`Date`, booleans); date formatting, i18n, and UI concerns stay in the app.
|
|
71
|
-
|
|
72
68
|
- **`@interop/wallet-core/webvh`** -- the account's did:webvh identity: the
|
|
73
69
|
hosted DID log, its per-client update-key rotation, the client enrollment
|
|
74
70
|
entries, the one-entry client-revocation edit (verification methods, update
|
|
@@ -145,13 +141,13 @@ The subpaths:
|
|
|
145
141
|
|
|
146
142
|
- **`@interop/wallet-core/unlock`** -- standing unlock credentials: every unlock
|
|
147
143
|
method (passphrase, passkey PRF, recovery code) as a standing credential in
|
|
148
|
-
the recovery-code
|
|
149
|
-
client identity and binding MAC key, the update-key ladder
|
|
144
|
+
the recovery-code configuration, with self-enrolling login. The
|
|
145
|
+
credential-derived client identity and binding MAC key, the update-key ladder
|
|
150
146
|
(latent-and-consumed did:webvh update authority from a random seed carried in
|
|
151
147
|
the unlock record, the current rung recovered from the log itself), the unlock
|
|
152
148
|
record codec (shell / bridge delegation / ladder members under a
|
|
153
149
|
credential-authenticated binding, with the bridge-only re-mint), the merged
|
|
154
|
-
document-
|
|
150
|
+
document-inventory edit (a verbatim `keyAgreement` entry or a
|
|
155
151
|
`publicKeyCommitment` entry for a low-entropy-derived key), and the
|
|
156
152
|
self-enrolling continuation with its composed completion.
|
|
157
153
|
|
|
@@ -192,10 +188,10 @@ import {
|
|
|
192
188
|
```
|
|
193
189
|
|
|
194
190
|
The `sync` and `space` subpaths are re-exported from the package root as well.
|
|
195
|
-
Every other subpath (`identity`, `request`, `
|
|
196
|
-
`
|
|
197
|
-
|
|
198
|
-
|
|
191
|
+
Every other subpath (`identity`, `request`, `webvh`, `keys`, `clients`,
|
|
192
|
+
`descriptors`, `keyring`, `enrollment`, `recovery`) is import-directly-only, so
|
|
193
|
+
consumers of the root never pull the signing / KMS / document-loader dependency
|
|
194
|
+
graph.
|
|
199
195
|
|
|
200
196
|
## Contribute
|
|
201
197
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* 2. The ladder-anchored did:webvh genesis
|
|
16
16
|
* (`ensureLadderAnchoredDidWebvh`): the entry signed by ladder rung 0, `updateKeys` = [rung 0], `nextKeyHashes`
|
|
17
17
|
* = [hash(rung 0), hash(rung 1)], the ladder VM and the credential's
|
|
18
|
-
* `keyAgreement`
|
|
18
|
+
* `keyAgreement` inventory folded in, `portable` unchanged. There is no KMS
|
|
19
19
|
* stage: the keystore is DEFERRED to the first durable enrollment (a
|
|
20
20
|
* ladder-anchored account has no consumer for the convenience VM, and a
|
|
21
21
|
* keystore under an evaporating identity would orphan).
|
|
@@ -52,7 +52,7 @@ import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
|
|
|
52
52
|
import type { WebvhIdStore } from '../webvh/didWebvh.js';
|
|
53
53
|
import type { UnlockKeyAgreementPublication } from '../unlock/standingWebvh.js';
|
|
54
54
|
import { type UserKey } from '../keys/index.js';
|
|
55
|
-
import type { ResourceLogPinStore } from '
|
|
55
|
+
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
56
56
|
import { type AccountGenesisResult } from '../genesis/accountGenesis.js';
|
|
57
57
|
/**
|
|
58
58
|
* The key set a credential-anchored signup mints locally before anything
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentialAnchoredGenesis.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"credentialAnchoredGenesis.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/credentialAnchoredGenesis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAA;AAErC;;;;;;;;GAQG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAC,CAED;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,sCAAsC,CAAC,EAC3D,GAAG,EACH,YAAY,EACZ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,iBAAwB,EACzB,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,6BAA6B,CAAA;IAC3C,iBAAiB,EAAE,kBAAkB,CAAA;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,cAAc,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,yBAAyB,CAAA;IACvE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;IACxC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0FhC"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* 2. The ladder-anchored did:webvh genesis
|
|
16
16
|
* (`ensureLadderAnchoredDidWebvh`): the entry signed by ladder rung 0, `updateKeys` = [rung 0], `nextKeyHashes`
|
|
17
17
|
* = [hash(rung 0), hash(rung 1)], the ladder VM and the credential's
|
|
18
|
-
* `keyAgreement`
|
|
18
|
+
* `keyAgreement` inventory folded in, `portable` unchanged. There is no KMS
|
|
19
19
|
* stage: the keystore is DEFERRED to the first durable enrollment (a
|
|
20
20
|
* ladder-anchored account has no consumer for the convenience VM, and a
|
|
21
21
|
* keystore under an evaporating identity would orphan).
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* so it can sign no roster append (the entry-proof rule), and its WAS
|
|
17
17
|
* invocations stop verifying (the current-key-set rule), so the collection
|
|
18
18
|
* fan-out cannot run either -- while a ladder-signed append is licensed only
|
|
19
|
-
* at a
|
|
19
|
+
* at a inventory-changing document version, which a not-last-client removal is
|
|
20
20
|
* not. So:
|
|
21
21
|
*
|
|
22
22
|
* 1. **The roster rotation**, PRE-edit, signed by the still-enrolled
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* residue could open.
|
|
32
32
|
* 3. **The removal entry** ({@link forgetWebvhClient}): one atomic
|
|
33
33
|
* ladder-signed entry through the bridge takes the client's whole document
|
|
34
|
-
*
|
|
34
|
+
* inventory out. The app's local wipe runs after this ceremony returns, so
|
|
35
35
|
* a tear anywhere before the entry reads as "not forgotten" and a re-click
|
|
36
36
|
* resumes.
|
|
37
37
|
*
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
import type { IKeyAgreementKey } from '@interop/data-integrity-core';
|
|
61
61
|
import type { CollectionEncryption } from '@interop/was-client';
|
|
62
62
|
import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
|
|
63
|
+
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
63
64
|
import type { RevokedClientKeys } from '../webvh/revokeClient.js';
|
|
64
65
|
import { type CascadeCollections, type UserKey, type UserKeyCascadeResult } from '../keys/index.js';
|
|
65
66
|
import type { UnlockLogStore } from '../unlock/standingWebvh.js';
|
|
@@ -88,9 +89,18 @@ export interface DurableClientForgetResult {
|
|
|
88
89
|
* @param options {object}
|
|
89
90
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
90
91
|
* `did.jsonl` bridge store; also serves the ceremony's public pre-edit
|
|
91
|
-
* read
|
|
92
|
-
*
|
|
93
|
-
*
|
|
92
|
+
* read
|
|
93
|
+
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
94
|
+
* pins. Every read the ceremony makes -- the pre-edit read the roster
|
|
95
|
+
* rotation's recipient document comes from, and the removal entry's own
|
|
96
|
+
* read inside its conflict-retry loop -- is checked against the pinned
|
|
97
|
+
* head, so a served truncated prefix is refused (`ResourceLogContinuityError`,
|
|
98
|
+
* `rollback`) before any roster append or log publish, and the pin
|
|
99
|
+
* advances to the head the removal entry publishes. Without it the
|
|
100
|
+
* ceremony checks `expectedDid` only
|
|
101
|
+
* @param [options.logId] {string} the account log's pin slot
|
|
102
|
+
* (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
|
|
103
|
+
* supplied
|
|
94
104
|
* @param options.ladderSeed {Uint8Array} the credential's ladder seed
|
|
95
105
|
* @param options.forgottenClient {RevokedClientKeys} this client's public
|
|
96
106
|
* halves; an `updateKeyMultibase` the log does not authorize (stale, or the
|
|
@@ -117,8 +127,10 @@ export interface DurableClientForgetResult {
|
|
|
117
127
|
* @param options.collections {CascadeCollections} the fan-out's work
|
|
118
128
|
* @returns {Promise<DurableClientForgetResult>}
|
|
119
129
|
*/
|
|
120
|
-
export declare function forgetDurableClient({ logStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }: {
|
|
130
|
+
export declare function forgetDurableClient({ logStore, pinStore, logId, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }: {
|
|
121
131
|
logStore: UnlockLogStore;
|
|
132
|
+
pinStore?: ResourceLogPinStore;
|
|
133
|
+
logId?: string;
|
|
122
134
|
ladderSeed: Uint8Array;
|
|
123
135
|
forgottenClient: RevokedClientKeys;
|
|
124
136
|
forgottenKeyAgreementKeyMultibase: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAGxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAED
|
|
1
|
+
{"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,iCAAiC,EACjC,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,EAAE;IACD,QAAQ,EAAE,cAAc,CAAA;IACxB,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,iBAAiB,CAAA;IAClC,iCAAiC,EAAE,MAAM,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,yBAAyB,CAAA;IACtC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC3B,OAAO,EAAE,OAAO,CAAA;QAChB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,oBAAoB,CAAA;KACjC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;CAChC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAwGrC"}
|
|
@@ -10,9 +10,18 @@ import { forgetWebvhClient, LastDurableClientForgetError } from './ladderAnchore
|
|
|
10
10
|
* @param options {object}
|
|
11
11
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
12
12
|
* `did.jsonl` bridge store; also serves the ceremony's public pre-edit
|
|
13
|
-
* read
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* read
|
|
14
|
+
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
15
|
+
* pins. Every read the ceremony makes -- the pre-edit read the roster
|
|
16
|
+
* rotation's recipient document comes from, and the removal entry's own
|
|
17
|
+
* read inside its conflict-retry loop -- is checked against the pinned
|
|
18
|
+
* head, so a served truncated prefix is refused (`ResourceLogContinuityError`,
|
|
19
|
+
* `rollback`) before any roster append or log publish, and the pin
|
|
20
|
+
* advances to the head the removal entry publishes. Without it the
|
|
21
|
+
* ceremony checks `expectedDid` only
|
|
22
|
+
* @param [options.logId] {string} the account log's pin slot
|
|
23
|
+
* (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
|
|
24
|
+
* supplied
|
|
16
25
|
* @param options.ladderSeed {Uint8Array} the credential's ladder seed
|
|
17
26
|
* @param options.forgottenClient {RevokedClientKeys} this client's public
|
|
18
27
|
* halves; an `updateKeyMultibase` the log does not authorize (stale, or the
|
|
@@ -39,7 +48,7 @@ import { forgetWebvhClient, LastDurableClientForgetError } from './ladderAnchore
|
|
|
39
48
|
* @param options.collections {CascadeCollections} the fan-out's work
|
|
40
49
|
* @returns {Promise<DurableClientForgetResult>}
|
|
41
50
|
*/
|
|
42
|
-
export async function forgetDurableClient({ logStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }) {
|
|
51
|
+
export async function forgetDurableClient({ logStore, pinStore, logId, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStore, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections }) {
|
|
43
52
|
// The pre-edit read, doing double duty: the last-client refusal must fire
|
|
44
53
|
// BEFORE the rotation (or a refused forget would already have retired this
|
|
45
54
|
// client's wrap), and the rotation's recipient resolver needs the pre-edit
|
|
@@ -48,7 +57,9 @@ export async function forgetDurableClient({ logStore, ladderSeed, forgottenClien
|
|
|
48
57
|
// readPublishedLog only calls getIdResourceRaw, so the narrow seam is
|
|
49
58
|
// safe.
|
|
50
59
|
idStore: logStore,
|
|
51
|
-
expectedDid
|
|
60
|
+
expectedDid,
|
|
61
|
+
...(pinStore ? { pinStore } : {}),
|
|
62
|
+
...(logId !== undefined ? { logId } : {})
|
|
52
63
|
});
|
|
53
64
|
if (!published) {
|
|
54
65
|
throw new Error('did:webvh: did.jsonl is missing; nothing to forget from.');
|
|
@@ -118,7 +129,9 @@ export async function forgetDurableClient({ logStore, ladderSeed, forgottenClien
|
|
|
118
129
|
ladderSeed,
|
|
119
130
|
forgottenClient,
|
|
120
131
|
...(knownLatentHashes ? { knownLatentHashes } : {}),
|
|
121
|
-
expectedDid
|
|
132
|
+
expectedDid,
|
|
133
|
+
...(pinStore ? { pinStore } : {}),
|
|
134
|
+
...(logId !== undefined ? { logId } : {})
|
|
122
135
|
});
|
|
123
136
|
return {
|
|
124
137
|
rotated,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"AA8DA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/clientAnnex/forget.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* POST at all). So:
|
|
15
15
|
*
|
|
16
16
|
* 1. **The install entry** ({@link installLadderVmWebvh}): the ladder VM
|
|
17
|
-
* joins the document while the client's whole
|
|
17
|
+
* joins the document while the client's whole inventory stays -- the
|
|
18
18
|
* both-present transitional state. This is the ceremony's
|
|
19
|
-
*
|
|
19
|
+
* inventory-changing document version under the ceremony-tail license.
|
|
20
20
|
* 2. **The roster rotation**, ladder-signed, anchored at the install entry,
|
|
21
21
|
* HTTP-invoked under the still-standing client: the user key rotates off
|
|
22
22
|
* this client's wrap in ONE append (the license's one-shot shape), read
|
|
@@ -56,13 +56,19 @@
|
|
|
56
56
|
* naming the records the pass could not reach), since after the removal
|
|
57
57
|
* nothing could ever re-sign that record's bridge. The client stays
|
|
58
58
|
* enrolled, and a re-run reaches the entry again.
|
|
59
|
-
* 6. **The record re-bind seam** (`onBeforeRemoval
|
|
60
|
-
* the LOGIN credential's bridge and `delegatedClients` sibling
|
|
61
|
-
* ladder VM and re-seals its unlock record with the credential
|
|
62
|
-
* (a full re-wrap, proof verified rather than settled)
|
|
63
|
-
*
|
|
59
|
+
* 6. **The record re-bind seam** (`onBeforeRemoval`, required): the caller
|
|
60
|
+
* re-signs the LOGIN credential's bridge and `delegatedClients` sibling
|
|
61
|
+
* with the ladder VM and re-seals its unlock record with the credential
|
|
62
|
+
* in hand (a full re-wrap, proof verified rather than settled). Stage 5
|
|
63
|
+
* deliberately skips that credential (its record is re-sealed with the
|
|
64
|
+
* credential in hand rather than through a management zcap), so the
|
|
65
|
+
* seam is the only thing that ever re-signs the login credential's own
|
|
66
|
+
* bridge with the ladder VM. Without it the removal entry would leave
|
|
67
|
+
* every bridge signed by the struck key on an account with no durable
|
|
68
|
+
* client -- an account nothing can write to -- which is why a call that
|
|
69
|
+
* omits the seam is refused before any read.
|
|
64
70
|
* 7. **The removal entry** ({@link forgetLastWebvhClient}): the client's
|
|
65
|
-
* whole document
|
|
71
|
+
* whole document inventory out while the installed ladder VM keeps the
|
|
66
72
|
* account anchored. The app's local wipe runs after this ceremony
|
|
67
73
|
* returns.
|
|
68
74
|
*
|
|
@@ -89,7 +95,7 @@ import type { ZcapClient } from '@interop/ezcap';
|
|
|
89
95
|
import type { CollectionEncryption, IDelegatedZcap } from '@interop/was-client';
|
|
90
96
|
import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
|
|
91
97
|
import { type RevokedClientKeys } from '../webvh/revokeClient.js';
|
|
92
|
-
import type { ResourceLogPinStore } from '
|
|
98
|
+
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
93
99
|
import { type CascadeCollections, type UserKey, type UserKeyCascadeResult } from '../keys/index.js';
|
|
94
100
|
import type { UnlockLogStore } from '../unlock/standingWebvh.js';
|
|
95
101
|
import type { AccountPointer } from '../keyring/record.js';
|
|
@@ -185,11 +191,15 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
185
191
|
*
|
|
186
192
|
* @param options {object}
|
|
187
193
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
188
|
-
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
194
|
+
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
195
|
+
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
196
|
+
* pins, the account log's slot derived from `annex.accountSpaceId`. Every
|
|
197
|
+
* account-log read the ceremony makes -- the pre-install read, and the
|
|
198
|
+
* install and removal entries' own reads inside their conflict-retry
|
|
199
|
+
* loops -- is checked against the pinned head, so a served truncated
|
|
200
|
+
* prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
|
|
201
|
+
* roster append or log publish, and each entry advances the pin to the
|
|
202
|
+
* head it publishes. Without it the ceremony checks `expectedDid` only
|
|
193
203
|
* @param options.ladderSeed {Uint8Array} the login credential's ladder seed
|
|
194
204
|
* @param options.forgottenClient {RevokedClientKeys} this client's public
|
|
195
205
|
* halves; an `updateKeyMultibase` the log does not authorize (stale, or the
|
|
@@ -204,7 +214,7 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
204
214
|
* @param options.rosterStoreFor {Function} `({ did, log }) => store` --
|
|
205
215
|
* builds the `key-map/user-key.jsonl` roster store whose appends are
|
|
206
216
|
* SIGNED BY THE LADDER VM and whose controller view resolves from the
|
|
207
|
-
* supplied post-install log (the
|
|
217
|
+
* supplied post-install log (the inventory-changing anchor the ceremony-tail
|
|
208
218
|
* license admits), while its HTTP requests invoke under the still-standing
|
|
209
219
|
* client
|
|
210
220
|
* @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
|
|
@@ -240,18 +250,21 @@ export declare class RecordRemintFailedError extends Error {
|
|
|
240
250
|
* `unlockMethods` report -- the residue decision 0004's amendment stated.
|
|
241
251
|
* Supplied, an entry the pass could not re-mint refuses the removal entry
|
|
242
252
|
* (`RecordRemintFailedError`)
|
|
243
|
-
* @param
|
|
253
|
+
* @param options.onBeforeRemoval {Function}
|
|
244
254
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
245
255
|
* after the record re-mint stage, immediately before the removal entry,
|
|
246
256
|
* with the post-install published state. The caller re-signs the login
|
|
247
257
|
* credential's bridge and `delegatedClients` sibling with the ladder VM
|
|
248
|
-
* and re-seals its unlock record here
|
|
249
|
-
*
|
|
258
|
+
* and re-seals its unlock record here -- the only stage that reaches the
|
|
259
|
+
* login credential's record, which the `unlockMethods` pass skips. Must
|
|
260
|
+
* be idempotent (a resumed run invokes it again). Required: a call
|
|
261
|
+
* without it throws a `TypeError` before any read
|
|
250
262
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
251
263
|
* @returns {Promise<LastDurableClientForgetResult>}
|
|
252
264
|
*/
|
|
253
|
-
export declare function forgetLastDurableClient({ logStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
|
|
265
|
+
export declare function forgetLastDurableClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now }: {
|
|
254
266
|
logStore: UnlockLogStore;
|
|
267
|
+
pinStore?: ResourceLogPinStore;
|
|
255
268
|
ladderSeed: Uint8Array;
|
|
256
269
|
forgottenClient: RevokedClientKeys;
|
|
257
270
|
forgottenKeyAgreementKeyMultibase: string;
|
|
@@ -281,7 +294,7 @@ export declare function forgetLastDurableClient({ logStore, ladderSeed, forgotte
|
|
|
281
294
|
pinStore?: ResourceLogPinStore;
|
|
282
295
|
};
|
|
283
296
|
unlockMethods?: UnlockMethodsRemintReach;
|
|
284
|
-
onBeforeRemoval
|
|
297
|
+
onBeforeRemoval: (published: {
|
|
285
298
|
did: string;
|
|
286
299
|
doc: object;
|
|
287
300
|
log: DIDLog;
|
|
@@ -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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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { readPublishedLog, relationIds } from '../webvh/didWebvh.js';
|
|
2
|
+
import { accountLogPinId } from '../webvh/verifyLog.js';
|
|
2
3
|
import { clientRemovalTarget } from '../webvh/revokeClient.js';
|
|
3
4
|
import { delegationProofKeyId } from '../webvh/standingZcap.js';
|
|
4
|
-
import { vmFragmentOf } from '
|
|
5
|
+
import { vmFragmentOf } from '@interop/vh-resource-log';
|
|
5
6
|
import { cascadeCollectionsToUserKey, readUserKeyRoster, rosterRecipientKid, rotateUserKeyRoster } from '../keys/index.js';
|
|
6
7
|
import { readLogOrThrow } from '../unlock/standingWebvh.js';
|
|
7
8
|
import { recordSignerFromAgent } from '../keyring/record.js';
|
|
@@ -45,11 +46,15 @@ export class RecordRemintFailedError extends Error {
|
|
|
45
46
|
*
|
|
46
47
|
* @param options {object}
|
|
47
48
|
* @param options.logStore {UnlockLogStore} the credential's delegated
|
|
48
|
-
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
49
|
+
* `did.jsonl` bridge store; also serves the ceremony's public reads
|
|
50
|
+
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
51
|
+
* pins, the account log's slot derived from `annex.accountSpaceId`. Every
|
|
52
|
+
* account-log read the ceremony makes -- the pre-install read, and the
|
|
53
|
+
* install and removal entries' own reads inside their conflict-retry
|
|
54
|
+
* loops -- is checked against the pinned head, so a served truncated
|
|
55
|
+
* prefix is refused (`ResourceLogContinuityError`, `rollback`) before any
|
|
56
|
+
* roster append or log publish, and each entry advances the pin to the
|
|
57
|
+
* head it publishes. Without it the ceremony checks `expectedDid` only
|
|
53
58
|
* @param options.ladderSeed {Uint8Array} the login credential's ladder seed
|
|
54
59
|
* @param options.forgottenClient {RevokedClientKeys} this client's public
|
|
55
60
|
* halves; an `updateKeyMultibase` the log does not authorize (stale, or the
|
|
@@ -64,7 +69,7 @@ export class RecordRemintFailedError extends Error {
|
|
|
64
69
|
* @param options.rosterStoreFor {Function} `({ did, log }) => store` --
|
|
65
70
|
* builds the `key-map/user-key.jsonl` roster store whose appends are
|
|
66
71
|
* SIGNED BY THE LADDER VM and whose controller view resolves from the
|
|
67
|
-
* supplied post-install log (the
|
|
72
|
+
* supplied post-install log (the inventory-changing anchor the ceremony-tail
|
|
68
73
|
* license admits), while its HTTP requests invoke under the still-standing
|
|
69
74
|
* client
|
|
70
75
|
* @param options.credentialKeyAgreementKey {IKeyAgreementKey} the standing
|
|
@@ -100,23 +105,41 @@ export class RecordRemintFailedError extends Error {
|
|
|
100
105
|
* `unlockMethods` report -- the residue decision 0004's amendment stated.
|
|
101
106
|
* Supplied, an entry the pass could not re-mint refuses the removal entry
|
|
102
107
|
* (`RecordRemintFailedError`)
|
|
103
|
-
* @param
|
|
108
|
+
* @param options.onBeforeRemoval {Function}
|
|
104
109
|
* `({ did, doc, log }) => Promise<void>` -- the record re-bind seam: runs
|
|
105
110
|
* after the record re-mint stage, immediately before the removal entry,
|
|
106
111
|
* with the post-install published state. The caller re-signs the login
|
|
107
112
|
* credential's bridge and `delegatedClients` sibling with the ladder VM
|
|
108
|
-
* and re-seals its unlock record here
|
|
109
|
-
*
|
|
113
|
+
* and re-seals its unlock record here -- the only stage that reaches the
|
|
114
|
+
* login credential's record, which the `unlockMethods` pass skips. Must
|
|
115
|
+
* be idempotent (a resumed run invokes it again). Required: a call
|
|
116
|
+
* without it throws a `TypeError` before any read
|
|
110
117
|
* @param [options.now] {number} epoch milliseconds, for tests
|
|
111
118
|
* @returns {Promise<LastDurableClientForgetResult>}
|
|
112
119
|
*/
|
|
113
|
-
export async function forgetLastDurableClient({ logStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
120
|
+
export async function forgetLastDurableClient({ logStore, pinStore, ladderSeed, forgottenClient, forgottenKeyAgreementKeyMultibase, knownLatentHashes, expectedDid, rosterStoreFor, credentialKeyAgreementKey, userKey, pinnedEpochId, onUserKeyAdopted, collections, annex, unlockMethods, onBeforeRemoval, now = Date.now() }) {
|
|
121
|
+
// The seam is the only stage that re-signs the login credential's bridge
|
|
122
|
+
// with the ladder VM; a run without it would land the removal entry over
|
|
123
|
+
// a record the struck key signed, on an account nothing could then write
|
|
124
|
+
// to. Refused before any read, so nothing is published.
|
|
125
|
+
if (typeof onBeforeRemoval !== 'function') {
|
|
126
|
+
throw new TypeError('forgetLastDurableClient requires onBeforeRemoval: the login ' +
|
|
127
|
+
"credential's record is re-bound only through that seam");
|
|
128
|
+
}
|
|
114
129
|
// The pre-install read and the two guards: a client with no remaining
|
|
115
130
|
// presence means the removal entry already landed (the finish-the-wipe
|
|
116
131
|
// state the app's next login maps -- nothing here can still invoke), and
|
|
117
132
|
// an account with another enrolled durable client belongs to the ordinary
|
|
118
133
|
// forget ceremony.
|
|
119
|
-
|
|
134
|
+
// The account log's pin slot, shared by every read and entry below.
|
|
135
|
+
const pinned = pinStore
|
|
136
|
+
? { pinStore, logId: accountLogPinId({ spaceId: annex.accountSpaceId }) }
|
|
137
|
+
: {};
|
|
138
|
+
const before = await readLogOrThrow({
|
|
139
|
+
store: logStore,
|
|
140
|
+
expectedDid,
|
|
141
|
+
...pinned
|
|
142
|
+
});
|
|
120
143
|
const preTarget = await clientRemovalTarget({
|
|
121
144
|
published: before,
|
|
122
145
|
client: forgottenClient
|
|
@@ -141,7 +164,8 @@ export async function forgetLastDurableClient({ logStore, ladderSeed, forgottenC
|
|
|
141
164
|
const install = await installLadderVmWebvh({
|
|
142
165
|
store: logStore,
|
|
143
166
|
ladderSeed,
|
|
144
|
-
expectedDid
|
|
167
|
+
expectedDid,
|
|
168
|
+
...pinned
|
|
145
169
|
});
|
|
146
170
|
// Stage 2: the roster rotation off this client's wrap, ladder-signed and
|
|
147
171
|
// anchored at the install entry, then stage 3, the collection fan-out --
|
|
@@ -231,23 +255,25 @@ export async function forgetLastDurableClient({ logStore, ladderSeed, forgottenC
|
|
|
231
255
|
throw new RecordRemintFailedError({ unlockMethods: remint });
|
|
232
256
|
}
|
|
233
257
|
}
|
|
234
|
-
// Stage 6: the record re-bind seam
|
|
258
|
+
// Stage 6: the record re-bind seam -- the login credential's record, the
|
|
259
|
+
// one stage 5 skipped -- while the removal has not landed (a
|
|
235
260
|
// ladder-VM-signed bridge verifies from the install entry on, and the old
|
|
236
261
|
// client-signed one keeps verifying until the removal -- so a tear on
|
|
237
262
|
// either side of this callback leaves a working login).
|
|
238
|
-
await onBeforeRemoval
|
|
263
|
+
await onBeforeRemoval({
|
|
239
264
|
did: install.did,
|
|
240
265
|
doc: install.doc,
|
|
241
266
|
log: install.log
|
|
242
267
|
});
|
|
243
|
-
// Stage 7: the removal entry -- the client's whole
|
|
268
|
+
// Stage 7: the removal entry -- the client's whole inventory out, the
|
|
244
269
|
// installed ladder VM keeping the account anchored.
|
|
245
270
|
const removed = await forgetLastWebvhClient({
|
|
246
271
|
store: logStore,
|
|
247
272
|
ladderSeed,
|
|
248
273
|
forgottenClient,
|
|
249
274
|
...(knownLatentHashes ? { knownLatentHashes } : {}),
|
|
250
|
-
expectedDid
|
|
275
|
+
expectedDid,
|
|
276
|
+
...pinned
|
|
251
277
|
});
|
|
252
278
|
return {
|
|
253
279
|
installed: install.installed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgetLast.js","sourceRoot":"","sources":["../../src/clientAnnex/forgetLast.ts"],"names":[],"mappings":"
|
|
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
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
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
|
-
import type { ResourceLogPinStore } from '
|
|
56
|
+
import type { ResourceLogPinStore } from '@interop/vh-resource-log';
|
|
57
57
|
import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from '../webvh/didWebvh.js';
|
|
58
58
|
/**
|
|
59
59
|
* The fixed GC cadence: a generation is replaced at the first durable login
|
|
@@ -131,7 +131,7 @@ export declare function generationQuiet({ log, now }: {
|
|
|
131
131
|
/**
|
|
132
132
|
* What the swap half of one GC pass did. `replaced` is the successful swap;
|
|
133
133
|
* `not-due` and `deferred-live` are the two healthy skips (cadence and quiet
|
|
134
|
-
* bound); `no-pointer` means the account has no annex
|
|
134
|
+
* bound); `no-pointer` means the account has no annex inventory (the whole
|
|
135
135
|
* pass no-ops -- without a pointer there is no auxiliary Space to list);
|
|
136
136
|
* `no-ladder-seed` means the swap was due but the login held no ladder seed
|
|
137
137
|
* to mint with (a non-standing record); `failed` means a swap stage threw --
|
|
@@ -224,7 +224,7 @@ export declare function runClientAnnexGc({ was, wasServerUrl, accountSpaceId, ac
|
|
|
224
224
|
* fallback when no distinct committed rung can sign a strike entry
|
|
225
225
|
* (`retireClientAnnexRung`): a fresh generation minted from a SURVIVING
|
|
226
226
|
* credential's seed commits only that credential's rung-0 hash, so the
|
|
227
|
-
* retired credential's annex
|
|
227
|
+
* retired credential's annex inventory dies with the whole generation the
|
|
228
228
|
* moment the re-point lands. The abandoned generation is an ordinary
|
|
229
229
|
* non-pointed `gen-` collection the standing collect fan-out picks up at the
|
|
230
230
|
* next durable login.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/gc.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
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
|
@@ -48,7 +48,7 @@ export function delegatedClientsPointerEstablishedAt({ log }) {
|
|
|
48
48
|
establishedAt = entry.versionTime;
|
|
49
49
|
}
|
|
50
50
|
if (pointed === undefined) {
|
|
51
|
-
// A document with no pointer has no annex
|
|
51
|
+
// A document with no pointer has no annex inventory; a later entry
|
|
52
52
|
// restoring one establishes afresh.
|
|
53
53
|
establishedAt = undefined;
|
|
54
54
|
}
|
|
@@ -348,7 +348,7 @@ async function replaceClientAnnexGeneration({ was, wasServerUrl, accountSpaceId,
|
|
|
348
348
|
* fallback when no distinct committed rung can sign a strike entry
|
|
349
349
|
* (`retireClientAnnexRung`): a fresh generation minted from a SURVIVING
|
|
350
350
|
* credential's seed commits only that credential's rung-0 hash, so the
|
|
351
|
-
* retired credential's annex
|
|
351
|
+
* retired credential's annex inventory dies with the whole generation the
|
|
352
352
|
* moment the re-point lands. The abandoned generation is an ordinary
|
|
353
353
|
* non-pointed `gen-` collection the standing collect fan-out picks up at the
|
|
354
354
|
* next durable login.
|