@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
package/dist/sync/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,cAAc,EACd,OAAO,EACR,MAAM,0BAA0B,CAAA;AAEjC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3E;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;IAEpD;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAEpC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE;QACvB,SAAS,EAAE,OAAO,EAAE,CAAA;QACpB,UAAU,EAAE,cAAc,CAAA;QAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KAC3C,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjB;;;;;;;;;OASG;IACH,UAAU,CAAC,OAAO,EAAE;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjB;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE;QACzB,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjB;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;QAC1B,UAAU,EAAE,gBAAgB,CAAA;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE;QACvB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,IAAI,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC3B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAClC"}
|
package/dist/sync/types.js
CHANGED
|
@@ -8,18 +8,10 @@
|
|
|
8
8
|
* `MasterState`, `WasSyncPort`, `DocCipher`, and the `WasSyncConflictError` /
|
|
9
9
|
* `WasSyncNotFoundError` / `UnknownEpochError` signals) come from
|
|
10
10
|
* `@interop/was-client/sync` and are re-exported here so a single import gives
|
|
11
|
-
* a consumer both the wire types and the replica-side seams.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* the port for the two wire signals, the caller's `DocCipher` for the third --
|
|
16
|
-
* which can resolve to a second copy of `@interop/was-client` (a `link:` dev
|
|
17
|
-
* setup, a dedupe miss through a dependency tree), so they are matched on
|
|
18
|
-
* `err.name` and never with `instanceof`. The same rule the resource-log
|
|
19
|
-
* refusal classes follow, and for the same reason: an `instanceof` miss here
|
|
20
|
-
* turns every push 412 into a fatal cycle error and makes the create-loss
|
|
21
|
-
* re-mint rethrow instead of re-minting. Every one of the three classes
|
|
22
|
-
* assigns its `name` explicitly, which is what makes the string a contract.
|
|
11
|
+
* a consumer both the wire types and the replica-side seams. The predicates
|
|
12
|
+
* that CLASSIFY those signals ship from `@interop/was-client/sync` too, beside
|
|
13
|
+
* the classes that assign the names they match; `push.ts` and `remint.ts`
|
|
14
|
+
* import them from there.
|
|
23
15
|
*
|
|
24
16
|
* The local-persistence seam (`SyncStore`, `SyncedRow`, `ProjectionAction`,
|
|
25
17
|
* `ResolveConflict`) is the replica's side of the contract: it stands in for a
|
|
@@ -33,39 +25,4 @@
|
|
|
33
25
|
* Native, against a fake port and an in-memory store.
|
|
34
26
|
*/
|
|
35
27
|
export { UnknownEpochError, WasSyncConflictError, WasSyncNotFoundError } from '@interop/was-client/sync';
|
|
36
|
-
/**
|
|
37
|
-
* Whether an error is the replication port's rejected-conditional-write signal
|
|
38
|
-
* (`WasSyncConflictError`, HTTP 412): a lost-update `If-Match` mismatch, or a
|
|
39
|
-
* create-if-absent whose target already exists. The push loop's one settle-and-
|
|
40
|
-
* reconcile branch; everything else propagates to the engine's backoff.
|
|
41
|
-
*
|
|
42
|
-
* @param err {unknown}
|
|
43
|
-
* @returns {boolean}
|
|
44
|
-
*/
|
|
45
|
-
export function isSyncConflictError(err) {
|
|
46
|
-
return err?.name === 'WasSyncConflictError';
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Whether an error is the replication port's absent-target signal
|
|
50
|
-
* (`WasSyncNotFoundError`, HTTP 404). On a delete that is a settled outcome
|
|
51
|
-
* -- already gone, or the write never reached the server -- not a conflict.
|
|
52
|
-
*
|
|
53
|
-
* @param err {unknown}
|
|
54
|
-
* @returns {boolean}
|
|
55
|
-
*/
|
|
56
|
-
export function isSyncNotFoundError(err) {
|
|
57
|
-
return err?.name === 'WasSyncNotFoundError';
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Whether an error is the cipher's unknown-epoch signal (`UnknownEpochError`):
|
|
61
|
-
* an envelope naming recipient key ids whose epoch the descriptor this reader
|
|
62
|
-
* holds does not list at all. Distinct from a key the reader simply does not
|
|
63
|
-
* have (`KeyUnwrapError`), which re-reading the descriptor cannot fix.
|
|
64
|
-
*
|
|
65
|
-
* @param err {unknown}
|
|
66
|
-
* @returns {boolean}
|
|
67
|
-
*/
|
|
68
|
-
export function isUnknownEpochError(err) {
|
|
69
|
-
return err?.name === 'UnknownEpochError';
|
|
70
|
-
}
|
|
71
28
|
//# sourceMappingURL=types.js.map
|
package/dist/sync/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA"}
|
package/dist/unlock/index.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export { standingClientFromUnlockSeed, STANDING_CLIENT_SALT, unlockClientIdentit
|
|
|
39
39
|
export type { StandingUnlockClient, UnlockClientIdentity } from './standingClient.js';
|
|
40
40
|
export { computeUnlockBinding, LADDER_SEED_BYTES, recordSealedRecipientKeys, remintUnlockRecordDelegations, UnlockBindingError, unlockRecordBinding, unlockRecordSealedTo, unwrapUnlockRecord, wrapUnlockRecord } from './unlockRecord.js';
|
|
41
41
|
export type { SealedRecordMember, SignedUnlockRecord, UnlockRecordContents, UnlockRecordProofState } from './unlockRecord.js';
|
|
42
|
-
export { assertLadderVmClaimed,
|
|
42
|
+
export { assertLadderVmClaimed, ladderVmClaimOf, preflightUnlockCredentialRetirement, publishUnlockKey, removeUnlockKey, UnclaimedLadderVmRetirementError, unlockKeyVerificationMethod, unlockKeyVmId } from './standingWebvh.js';
|
|
43
43
|
export type { LadderVmRemovalReport, StandingUnlockKeys, UnlockKeyAgreementPublication, UnlockLogStore } from './standingWebvh.js';
|
|
44
44
|
export { retireUnlockCredential } from './retire.js';
|
|
45
45
|
export type { ClientAnnexInventoryRetirement, UnlockCredentialRetirementResult } from './retire.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unlock/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unlock/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mCAAmC,EACnC,gBAAgB,EAChB,eAAe,EACf,gCAAgC,EAChC,2BAA2B,EAC3B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EACjC,MAAM,aAAa,CAAA"}
|
package/dist/unlock/index.js
CHANGED
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
*/
|
|
38
38
|
export { standingClientFromUnlockSeed, STANDING_CLIENT_SALT, unlockClientIdentityFromSeed } from './standingClient.js';
|
|
39
39
|
export { computeUnlockBinding, LADDER_SEED_BYTES, recordSealedRecipientKeys, remintUnlockRecordDelegations, UnlockBindingError, unlockRecordBinding, unlockRecordSealedTo, unwrapUnlockRecord, wrapUnlockRecord } from './unlockRecord.js';
|
|
40
|
-
export { assertLadderVmClaimed,
|
|
40
|
+
export { assertLadderVmClaimed, ladderVmClaimOf, preflightUnlockCredentialRetirement, publishUnlockKey, removeUnlockKey, UnclaimedLadderVmRetirementError, unlockKeyVerificationMethod, unlockKeyVmId } from './standingWebvh.js';
|
|
41
41
|
export { retireUnlockCredential } from './retire.js';
|
|
42
42
|
//# sourceMappingURL=index.js.map
|
package/dist/unlock/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unlock/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unlock/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mCAAmC,EACnC,gBAAgB,EAChB,eAAe,EACf,gCAAgC,EAChC,2BAA2B,EAC3B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAQ3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/unlock/retire.d.ts
CHANGED
|
@@ -9,13 +9,6 @@
|
|
|
9
9
|
* inventory in the account's did:webvh document -- so retiring one is a real
|
|
10
10
|
* rotation, on the same stages the client-revocation cascade runs.
|
|
11
11
|
*
|
|
12
|
-
* 0. **The dependent-record re-mint** (the injected `remintDependentRecords`
|
|
13
|
-
* closure), against the PRE-edit document: the credential's ladder VM is
|
|
14
|
-
* about to be struck, and a struck VM rots every record and bridge
|
|
15
|
-
* delegation it signed for OTHER credentials -- the last-client transition
|
|
16
|
-
* signs siblings' records with one, and `currentAccountRecordSigners`
|
|
17
|
-
* accepts it. The stage names the doomed VM ids to the pass, which
|
|
18
|
-
* re-signs those records under a key that outlives the edit.
|
|
19
12
|
* 1. **The document inventory edit** (`removeUnlockKey`): the credential's
|
|
20
13
|
* `keyAgreement` entry (verbatim key or commitment) and its committed
|
|
21
14
|
* update-key hash leave the document in one log entry. That kills the
|
|
@@ -36,21 +29,15 @@
|
|
|
36
29
|
* inventory still standing would simply re-escrow the credential and look
|
|
37
30
|
* healthy.
|
|
38
31
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* retirement before anything is published, unlike the annex closure at 1b.
|
|
49
|
-
*
|
|
50
|
-
* That corrects what this module used to reason. A retired credential's own
|
|
51
|
-
* bridge delegation does die with its unlock Space, which the app deletes as
|
|
52
|
-
* part of the change-method ceremony. Its ladder VM is the part that reaches
|
|
53
|
-
* further: other credentials' records and bridges chain through it.
|
|
32
|
+
* No stage runs before the edit, and no sibling credential's record is
|
|
33
|
+
* touched anywhere in the ceremony. Every unlock record's frame proof is
|
|
34
|
+
* signed by its own credential's unlock identity key, and its bridge and
|
|
35
|
+
* `delegatedClients` sibling delegations by that credential's own ladder VM
|
|
36
|
+
* (`decisions/0019`), so the only record this strike can rot is the retired
|
|
37
|
+
* credential's own -- which dies with the unlock Space the app deletes as
|
|
38
|
+
* part of the change-method ceremony. A sibling credential's bridge is
|
|
39
|
+
* refreshed by that credential's own login, on the three staleness axes
|
|
40
|
+
* (expiry, the renewal window, a signer that left the document).
|
|
54
41
|
*
|
|
55
42
|
* The client annex reach is its own stage (1b, the injected
|
|
56
43
|
* `retireClientAnnexInventory` closure), between the document edit and the
|
|
@@ -71,12 +58,11 @@
|
|
|
71
58
|
* skip, so the roster rotation -- the ceremony's essential remedy -- always
|
|
72
59
|
* runs.
|
|
73
60
|
*
|
|
74
|
-
*
|
|
61
|
+
* The edit carries the retirement gate (`decisions/0015`): a credential
|
|
75
62
|
* retired here carries a ladder, so its ladder VM must be claimed -- by the
|
|
76
63
|
* seed, or by the log's attribution -- before the edit strikes anything. A
|
|
77
64
|
* claim that strikes nothing while ladder VMs stand unclaimed refuses with
|
|
78
|
-
* `UnclaimedLadderVmRetirementError`,
|
|
79
|
-
* writes a sibling record and again inside the edit before its entry
|
|
65
|
+
* `UnclaimedLadderVmRetirementError`, inside the edit before its entry
|
|
80
66
|
* publishes, so the credential still stands and the log is unchanged. The
|
|
81
67
|
* leftover the gate closes is a retired credential's VM standing under
|
|
82
68
|
* `capabilityDelegation`, which could still sign a DELETE-only capability on
|
|
@@ -86,15 +72,6 @@
|
|
|
86
72
|
* removal shares the edit but not the gate: a code carries no ladder VM to
|
|
87
73
|
* claim.
|
|
88
74
|
*
|
|
89
|
-
* Stage 0 and stage 1 each read the log for themselves, and the two reads are
|
|
90
|
-
* tied by a cross-check rather than by luck: stage 0 hands its attributed
|
|
91
|
-
* ladder VM ids to the edit as `expectedLadderVmIds`, and the edit refuses
|
|
92
|
-
* before writing when its own attribution resolves a different set
|
|
93
|
-
* (`LadderInventoryDriftError`). So a concurrent ceremony, or a host serving
|
|
94
|
-
* different log versions to the two reads, cannot leave the strike diverging
|
|
95
|
-
* from what the re-mint pass acted on. Both reads take the caller's
|
|
96
|
-
* `pinStore` and `logId`, so both are checked against the same chain head.
|
|
97
|
-
*
|
|
98
75
|
* Convergence is the design: every stage detects its own completion from
|
|
99
76
|
* durable state alone -- the inventory edit no-ops when the document is already
|
|
100
77
|
* settled, the rotation no-ops once every current-epoch recipient is
|
|
@@ -121,9 +98,7 @@ import { type LadderVmRemovalReport, type StandingUnlockKeys } from './standingW
|
|
|
121
98
|
* roster's seal-backstop report (present when the roster store is sealable and
|
|
122
99
|
* the roster stage ran), the per-collection fan-out result, the document as
|
|
123
100
|
* the inventory edit left it, the rotated key with the roster descriptor it
|
|
124
|
-
* was read from,
|
|
125
|
-
* (`dependentRecords`, absent when no closure was supplied), and the
|
|
126
|
-
* inventory edit's ladder VM report (`ladderVm`: what the edit struck, and
|
|
101
|
+
* was read from, and the inventory edit's ladder VM report (`ladderVm`: what the edit struck, and
|
|
127
102
|
* what stands unclaimed after it -- a seedless strike that claimed nothing
|
|
128
103
|
* reports its credential's VM there rather than reading as clean).
|
|
129
104
|
*/
|
|
@@ -136,7 +111,6 @@ export interface UnlockCredentialRetirementResult {
|
|
|
136
111
|
userKey?: UserKey;
|
|
137
112
|
rosterDescriptor?: CollectionEncryption;
|
|
138
113
|
clientAnnex?: ClientAnnexInventoryRetirement;
|
|
139
|
-
dependentRecords?: unknown;
|
|
140
114
|
}
|
|
141
115
|
/**
|
|
142
116
|
* What the annex-inventory stage reports: `struck` (a strike entry dropped
|
|
@@ -180,10 +154,9 @@ export interface ClientAnnexInventoryRetirement {
|
|
|
180
154
|
* stored account pointer; supplied, the inventory edit refuses a `did.jsonl`
|
|
181
155
|
* resolving to any other account
|
|
182
156
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
183
|
-
* pins, threaded to
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* anything is published
|
|
157
|
+
* pins, threaded to the inventory edit's own read inside its conflict-retry
|
|
158
|
+
* loop, so a served rollback or fork is refused before anything is
|
|
159
|
+
* published
|
|
187
160
|
* @param [options.logId] {string} the account log's pin slot
|
|
188
161
|
* (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
|
|
189
162
|
* supplied
|
|
@@ -200,15 +173,6 @@ export interface ClientAnnexInventoryRetirement {
|
|
|
200
173
|
* called with `{ userKey, latestEpochId, descriptor }` after the roster read
|
|
201
174
|
* and BEFORE the fan-out. The key and the epoch pin must persist atomically
|
|
202
175
|
* @param options.collections {CascadeCollections} the fan-out's work
|
|
203
|
-
* @param [options.remintDependentRecords] {Function} `({ document,
|
|
204
|
-
* retiringKeyMultibases }) => Promise<unknown>` -- the dependent-record
|
|
205
|
-
* re-mint (stage 0), run against the PRE-edit document with the ladder VM
|
|
206
|
-
* ids this retirement is about to strike. Fail-closed: a throw aborts the
|
|
207
|
-
* retirement before the document edit. Absent, the stage is skipped and no
|
|
208
|
-
* log read happens for it (the no-WAS path). It is also skipped on the
|
|
209
|
-
* ladder arm: every unlock record is signed by its own credential's ladder
|
|
210
|
-
* VM, so this strike rots no sibling record, and there is nothing to
|
|
211
|
-
* re-mint (`decisions/0019`)
|
|
212
176
|
* @param [options.retireClientAnnexInventory] {Function} `({ document }) =>
|
|
213
177
|
* Promise<ClientAnnexInventoryRetirement>` -- the annex reach (stage 1b in
|
|
214
178
|
* the module doc), run against the post-edit document; a throw is caught
|
|
@@ -218,7 +182,7 @@ export interface ClientAnnexInventoryRetirement {
|
|
|
218
182
|
* the session keeps operating without a re-login
|
|
219
183
|
* @returns {Promise<UnlockCredentialRetirementResult>}
|
|
220
184
|
*/
|
|
221
|
-
export declare function retireUnlockCredential({ idStore, signer, unlockKeys, ladderSeed, projectionStore, expectedDid, pinStore, logId, verb, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections,
|
|
185
|
+
export declare function retireUnlockCredential({ idStore, signer, unlockKeys, ladderSeed, projectionStore, expectedDid, pinStore, logId, verb, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, retireClientAnnexInventory, onRotationAdopted }: {
|
|
222
186
|
idStore: WebvhIdStore;
|
|
223
187
|
signer: AccountLogSigner;
|
|
224
188
|
unlockKeys: StandingUnlockKeys;
|
|
@@ -238,10 +202,6 @@ export declare function retireUnlockCredential({ idStore, signer, unlockKeys, la
|
|
|
238
202
|
descriptor: CollectionEncryption;
|
|
239
203
|
}) => Promise<void>;
|
|
240
204
|
collections: CascadeCollections;
|
|
241
|
-
remintDependentRecords?: (options: {
|
|
242
|
-
document: object;
|
|
243
|
-
retiringKeyMultibases: string[];
|
|
244
|
-
}) => Promise<unknown>;
|
|
245
205
|
retireClientAnnexInventory?: (options: {
|
|
246
206
|
document: object;
|
|
247
207
|
}) => Promise<ClientAnnexInventoryRetirement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retire.d.ts","sourceRoot":"","sources":["../../src/unlock/retire.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"retire.d.ts","sourceRoot":"","sources":["../../src/unlock/retire.ts"],"names":[],"mappings":"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"}
|
package/dist/unlock/retire.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { rotateRosterToDocumentAndCascade } from '../keys/index.js';
|
|
2
|
-
import {
|
|
3
|
-
import { assertLadderVmClaimed, attributeUnlockLadderInventory, ladderVmClaimOf, removeUnlockKey, unlockKeyVmId } from './standingWebvh.js';
|
|
2
|
+
import { removeUnlockKey } from './standingWebvh.js';
|
|
4
3
|
/**
|
|
5
4
|
* Retires one standing unlock credential from an account. See the module doc
|
|
6
5
|
* for the order and the convergence story. Once the inventory edit lands, a
|
|
@@ -30,10 +29,9 @@ import { assertLadderVmClaimed, attributeUnlockLadderInventory, ladderVmClaimOf,
|
|
|
30
29
|
* stored account pointer; supplied, the inventory edit refuses a `did.jsonl`
|
|
31
30
|
* resolving to any other account
|
|
32
31
|
* @param [options.pinStore] {ResourceLogPinStore} this client's chain-head
|
|
33
|
-
* pins, threaded to
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* anything is published
|
|
32
|
+
* pins, threaded to the inventory edit's own read inside its conflict-retry
|
|
33
|
+
* loop, so a served rollback or fork is refused before anything is
|
|
34
|
+
* published
|
|
37
35
|
* @param [options.logId] {string} the account log's pin slot
|
|
38
36
|
* (`accountLogPinId({ spaceId })`); required whenever a `pinStore` is
|
|
39
37
|
* supplied
|
|
@@ -50,15 +48,6 @@ import { assertLadderVmClaimed, attributeUnlockLadderInventory, ladderVmClaimOf,
|
|
|
50
48
|
* called with `{ userKey, latestEpochId, descriptor }` after the roster read
|
|
51
49
|
* and BEFORE the fan-out. The key and the epoch pin must persist atomically
|
|
52
50
|
* @param options.collections {CascadeCollections} the fan-out's work
|
|
53
|
-
* @param [options.remintDependentRecords] {Function} `({ document,
|
|
54
|
-
* retiringKeyMultibases }) => Promise<unknown>` -- the dependent-record
|
|
55
|
-
* re-mint (stage 0), run against the PRE-edit document with the ladder VM
|
|
56
|
-
* ids this retirement is about to strike. Fail-closed: a throw aborts the
|
|
57
|
-
* retirement before the document edit. Absent, the stage is skipped and no
|
|
58
|
-
* log read happens for it (the no-WAS path). It is also skipped on the
|
|
59
|
-
* ladder arm: every unlock record is signed by its own credential's ladder
|
|
60
|
-
* VM, so this strike rots no sibling record, and there is nothing to
|
|
61
|
-
* re-mint (`decisions/0019`)
|
|
62
51
|
* @param [options.retireClientAnnexInventory] {Function} `({ document }) =>
|
|
63
52
|
* Promise<ClientAnnexInventoryRetirement>` -- the annex reach (stage 1b in
|
|
64
53
|
* the module doc), run against the post-edit document; a throw is caught
|
|
@@ -68,65 +57,11 @@ import { assertLadderVmClaimed, attributeUnlockLadderInventory, ladderVmClaimOf,
|
|
|
68
57
|
* the session keeps operating without a re-login
|
|
69
58
|
* @returns {Promise<UnlockCredentialRetirementResult>}
|
|
70
59
|
*/
|
|
71
|
-
export async function retireUnlockCredential({ idStore, signer, unlockKeys, ladderSeed, projectionStore, expectedDid, pinStore, logId, verb, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections,
|
|
72
|
-
// 0. The dependent-record re-mint, against the PRE-edit document: whatever
|
|
73
|
-
// the doomed ladder VM signed for OTHER credentials is re-signed under a
|
|
74
|
-
// key that outlives the edit. The pass is named the VM ids the attribution
|
|
75
|
-
// claims for this credential, and it runs even when that list is empty:
|
|
76
|
-
// the pass has an expiry axis of its own, and a near-lapse sibling bridge
|
|
77
|
-
// is worth refreshing in the same window. Fail-closed -- a throw aborts
|
|
78
|
-
// here, with the credential still standing.
|
|
60
|
+
export async function retireUnlockCredential({ idStore, signer, unlockKeys, ladderSeed, projectionStore, expectedDid, pinStore, logId, verb, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, retireClientAnnexInventory, onRotationAdopted }) {
|
|
79
61
|
const pinned = {
|
|
80
62
|
...(pinStore ? { pinStore } : {}),
|
|
81
63
|
...(logId !== undefined ? { logId } : {})
|
|
82
64
|
};
|
|
83
|
-
let dependentRecords;
|
|
84
|
-
let expectedLadderVmIds;
|
|
85
|
-
// The stage is the enrolled branch's alone. On the ladder arm a record's
|
|
86
|
-
// bridge and sibling are signed by its own credential's ladder VM, so this
|
|
87
|
-
// strike reaches no record but the retired credential's own, which the
|
|
88
|
-
// caller deletes with its unlock Space (`decisions/0019`).
|
|
89
|
-
const ranRemint = Boolean(remintDependentRecords) && signer.kind === 'client';
|
|
90
|
-
if (ranRemint && remintDependentRecords) {
|
|
91
|
-
const published = await readPublishedLogOrThrow({
|
|
92
|
-
idStore,
|
|
93
|
-
...(expectedDid !== undefined ? { expectedDid } : {}),
|
|
94
|
-
...pinned,
|
|
95
|
-
missingMessage: 'did:webvh: did.jsonl is missing; nothing to enroll into.'
|
|
96
|
-
});
|
|
97
|
-
const inventory = await attributeUnlockLadderInventory({
|
|
98
|
-
log: published.log,
|
|
99
|
-
did: published.did,
|
|
100
|
-
unlockKeys,
|
|
101
|
-
...(ladderSeed ? { ladderSeed } : {})
|
|
102
|
-
});
|
|
103
|
-
// The gate, before the pass writes anything: a claim that strikes no
|
|
104
|
-
// ladder VM while VMs stand unclaimed refuses here, with the credential
|
|
105
|
-
// still standing and no sibling record touched.
|
|
106
|
-
await assertLadderVmClaimed({
|
|
107
|
-
log: published.log,
|
|
108
|
-
doc: published.doc,
|
|
109
|
-
credentialVmId: unlockKeyVmId({
|
|
110
|
-
did: published.did,
|
|
111
|
-
keyAgreement: unlockKeys.keyAgreement
|
|
112
|
-
}),
|
|
113
|
-
claim: await ladderVmClaimOf({
|
|
114
|
-
doc: published.doc,
|
|
115
|
-
did: published.did,
|
|
116
|
-
inventory,
|
|
117
|
-
...(ladderSeed ? { ladderSeed } : {})
|
|
118
|
-
}),
|
|
119
|
-
anchorKeyMultibase: unlockKeys.updateKeyMultibase
|
|
120
|
-
});
|
|
121
|
-
// What the edit's own attribution must resolve to: the pass below acts on
|
|
122
|
-
// this list, so an edit that resolved a different one would strike
|
|
123
|
-
// something the pass never covered.
|
|
124
|
-
expectedLadderVmIds = inventory.ladderVmIds;
|
|
125
|
-
dependentRecords = await remintDependentRecords({
|
|
126
|
-
document: published.doc,
|
|
127
|
-
retiringKeyMultibases: inventory.ladderVmIds
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
65
|
// 1. The document inventory edit -- the credential's standing, first. It
|
|
131
66
|
// resolves the document as it now stands, which is what stage 2 resolves
|
|
132
67
|
// its remaining recipients from.
|
|
@@ -136,8 +71,6 @@ export async function retireUnlockCredential({ idStore, signer, unlockKeys, ladd
|
|
|
136
71
|
unlockKeys,
|
|
137
72
|
...(ladderSeed ? { ladderSeed } : {}),
|
|
138
73
|
...(projectionStore ? { projectionStore } : {}),
|
|
139
|
-
...(expectedLadderVmIds !== undefined ? { expectedLadderVmIds } : {}),
|
|
140
|
-
requireLadderVmClaim: true,
|
|
141
74
|
...(expectedDid !== undefined ? { expectedDid } : {}),
|
|
142
75
|
...pinned,
|
|
143
76
|
...(verb !== undefined ? { verb } : {})
|
|
@@ -178,8 +111,7 @@ export async function retireUnlockCredential({ idStore, signer, unlockKeys, ladd
|
|
|
178
111
|
ladderVm,
|
|
179
112
|
collections: tail.collections,
|
|
180
113
|
document: doc,
|
|
181
|
-
...(clientAnnex ? { clientAnnex } : {})
|
|
182
|
-
...(ranRemint ? { dependentRecords } : {})
|
|
114
|
+
...(clientAnnex ? { clientAnnex } : {})
|
|
183
115
|
};
|
|
184
116
|
}
|
|
185
117
|
if (tail.rotated) {
|
|
@@ -193,8 +125,7 @@ export async function retireUnlockCredential({ idStore, signer, unlockKeys, ladd
|
|
|
193
125
|
document: doc,
|
|
194
126
|
userKey: tail.userKey,
|
|
195
127
|
rosterDescriptor: tail.rosterDescriptor,
|
|
196
|
-
...(clientAnnex ? { clientAnnex } : {})
|
|
197
|
-
...(ranRemint ? { dependentRecords } : {})
|
|
128
|
+
...(clientAnnex ? { clientAnnex } : {})
|
|
198
129
|
};
|
|
199
130
|
}
|
|
200
131
|
//# sourceMappingURL=retire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retire.js","sourceRoot":"","sources":["../../src/unlock/retire.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retire.js","sourceRoot":"","sources":["../../src/unlock/retire.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,25 +19,6 @@ export type UnlockLogStore = Pick<WebvhIdStore, 'getIdResourceRaw' | 'putIdResou
|
|
|
19
19
|
* ladder VM and commits the rung-0 hash.
|
|
20
20
|
*/
|
|
21
21
|
export type UnlockInventoryPart = 'all' | 'key' | 'authority';
|
|
22
|
-
/**
|
|
23
|
-
* The ladder inventory the removal edit resolved from the log diverges from
|
|
24
|
-
* what the caller was told one read earlier. A ceremony that names its
|
|
25
|
-
* expected ladder VM ids (the retirement's stage 0, which hands the same list
|
|
26
|
-
* to the dependent-record re-mint pass) gets this refusal BEFORE the edit is
|
|
27
|
-
* published, so a concurrent ceremony -- or a host serving different log
|
|
28
|
-
* versions to the two reads -- cannot make the strike diverge from what the
|
|
29
|
-
* re-mint pass acted on. Nothing is written. Matched on `name` (the error
|
|
30
|
-
* crosses app-injected seams that may resolve to another copy of this
|
|
31
|
-
* package).
|
|
32
|
-
*/
|
|
33
|
-
export declare class LadderInventoryDriftError extends Error {
|
|
34
|
-
readonly expected: string[];
|
|
35
|
-
readonly attributed: string[];
|
|
36
|
-
constructor({ expected, attributed }: {
|
|
37
|
-
expected: string[];
|
|
38
|
-
attributed: string[];
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
22
|
/**
|
|
42
23
|
* A retirement whose ladder attribution could not claim the retired
|
|
43
24
|
* credential's ladder VM, refused with nothing written. The shape is the
|
|
@@ -271,17 +252,25 @@ export declare function assertLadderVmClaimed({ log, doc, credentialVmId, claim,
|
|
|
271
252
|
* pins
|
|
272
253
|
* @param [options.logId] {string} the account log's pin slot; required
|
|
273
254
|
* whenever a `pinStore` is supplied
|
|
274
|
-
* @
|
|
275
|
-
*
|
|
255
|
+
* @param [options.missingMessage] {string} the absent-log refusal's
|
|
256
|
+
* message, for a caller whose own ceremony names what it was reading for
|
|
257
|
+
* @returns {Promise<object>} the removal report (what the retirement would
|
|
258
|
+
* strike and what it would leave unclaimed) widened with the attributed
|
|
259
|
+
* ladder VM ids and the document the gate ran over, which the in-ceremony
|
|
260
|
+
* caller acts on
|
|
276
261
|
*/
|
|
277
|
-
export declare function preflightUnlockCredentialRetirement({ idStore, unlockKeys, ladderSeed, expectedDid, pinStore, logId }: {
|
|
262
|
+
export declare function preflightUnlockCredentialRetirement({ idStore, unlockKeys, ladderSeed, expectedDid, pinStore, logId, missingMessage }: {
|
|
278
263
|
idStore: Pick<WebvhIdStore, 'getIdResourceRaw'>;
|
|
279
264
|
unlockKeys: StandingUnlockKeys;
|
|
280
265
|
ladderSeed?: Uint8Array;
|
|
281
266
|
expectedDid?: string;
|
|
282
267
|
pinStore?: ResourceLogPinStore;
|
|
283
268
|
logId?: string;
|
|
284
|
-
|
|
269
|
+
missingMessage?: string;
|
|
270
|
+
}): Promise<LadderVmRemovalReport & {
|
|
271
|
+
ladderVmIds: string[];
|
|
272
|
+
document: DIDDoc;
|
|
273
|
+
}>;
|
|
285
274
|
/**
|
|
286
275
|
* The credential's `keyAgreement` verification method: an ordinary unmarked
|
|
287
276
|
* entry carrying either the key verbatim (a `Multikey` with
|
|
@@ -423,6 +412,14 @@ export declare function publishUnlockKey(options: {
|
|
|
423
412
|
* {@link LadderAttributionError} rather than acting on a ladder the seed and
|
|
424
413
|
* the recorded anchor disagree about.
|
|
425
414
|
*
|
|
415
|
+
* Every credential removed here carries a ladder, so the retirement gate
|
|
416
|
+
* ({@link assertLadderVmClaimed}) runs unconditionally, before any write:
|
|
417
|
+
* when the claim struck nothing while ladder VMs stand unclaimed and the
|
|
418
|
+
* credential still stands, the edit refuses with
|
|
419
|
+
* {@link UnclaimedLadderVmRetirementError}, naming the recorded update key
|
|
420
|
+
* the walk was anchored on. The retirement ceremony and a recovery code's
|
|
421
|
+
* removal both rely on it.
|
|
422
|
+
*
|
|
426
423
|
* @param options {object} see {@link publishUnlockKey}, plus:
|
|
427
424
|
* @param [options.ladderSeed] {Uint8Array} the retired credential's ladder
|
|
428
425
|
* seed, when in hand
|
|
@@ -435,21 +432,6 @@ export declare function publishUnlockKey(options: {
|
|
|
435
432
|
* PUT is warned and the removal proceeds. Omitted, the ladder arm leaves
|
|
436
433
|
* the projection to the next visit's `ensureDidWebProjection` and the
|
|
437
434
|
* client arm publishes it after the entry, as before
|
|
438
|
-
* @param [options.expectedLadderVmIds] {string[]} the ladder VM ids the
|
|
439
|
-
* caller already resolved for this credential, from its own read of the
|
|
440
|
-
* log. Supplied, this edit's own attribution must match them as a set --
|
|
441
|
-
* after the seed cross-check above -- or the edit refuses with
|
|
442
|
-
* {@link LadderInventoryDriftError} before writing anything. That is what
|
|
443
|
-
* ties the retirement's stage-0 read (whose list the dependent-record
|
|
444
|
-
* re-mint pass acted on) to this one, which is otherwise independent
|
|
445
|
-
* @param [options.requireLadderVmClaim] {boolean} the credential carries a
|
|
446
|
-
* ladder, so its VM must be claimed: the edit refuses with
|
|
447
|
-
* {@link UnclaimedLadderVmRetirementError} before writing when the claim
|
|
448
|
-
* struck nothing while ladder VMs stand unclaimed and the credential still
|
|
449
|
-
* stands ({@link assertLadderVmClaimed}). The retirement ceremony sets it,
|
|
450
|
-
* and so does a recovery code's removal, whose inventory carries the code's
|
|
451
|
-
* own ladder VM. The refusal names the recorded update key the walk was
|
|
452
|
-
* anchored on
|
|
453
435
|
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog, ladderVm:
|
|
454
436
|
* LadderVmRemovalReport }>} see {@link publishUnlockKey}, plus the ladder
|
|
455
437
|
* VM report: what this entry struck, and what stands unclaimed after it
|
|
@@ -460,8 +442,6 @@ export declare function removeUnlockKey(options: {
|
|
|
460
442
|
projectionStore?: Pick<WebvhIdStore, 'getIdResourceRaw' | 'putIdResource'>;
|
|
461
443
|
unlockKeys: StandingUnlockKeys;
|
|
462
444
|
ladderSeed?: Uint8Array;
|
|
463
|
-
expectedLadderVmIds?: string[];
|
|
464
|
-
requireLadderVmClaim?: boolean;
|
|
465
445
|
expectedDid?: string;
|
|
466
446
|
pinStore?: ResourceLogPinStore;
|
|
467
447
|
logId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standingWebvh.d.ts","sourceRoot":"","sources":["../../src/unlock/standingWebvh.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EACN,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AASlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAMnE,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,0BAA0B,CAAA;AAEjC;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,YAAY,EACZ,kBAAkB,GAAG,eAAe,CACrC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAA;AAE7D
|
|
1
|
+
{"version":3,"file":"standingWebvh.d.ts","sourceRoot":"","sources":["../../src/unlock/standingWebvh.ts"],"names":[],"mappings":"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"}
|