@interop/wallet-core 0.49.0 → 0.50.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.
Files changed (160) hide show
  1. package/README.md +5 -2
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +118 -0
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -0
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +174 -0
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -0
  6. package/dist/clientAnnex/forget.d.ts +138 -0
  7. package/dist/clientAnnex/forget.d.ts.map +1 -0
  8. package/dist/clientAnnex/forget.js +133 -0
  9. package/dist/clientAnnex/forget.js.map +1 -0
  10. package/dist/clientAnnex/forgetLast.d.ts +267 -0
  11. package/dist/clientAnnex/forgetLast.d.ts.map +1 -0
  12. package/dist/clientAnnex/forgetLast.js +374 -0
  13. package/dist/clientAnnex/forgetLast.js.map +1 -0
  14. package/dist/{webvh/companionGc.d.ts → clientAnnex/gc.d.ts} +50 -16
  15. package/dist/clientAnnex/gc.d.ts.map +1 -0
  16. package/dist/{webvh/companionGc.js → clientAnnex/gc.js} +103 -71
  17. package/dist/clientAnnex/gc.js.map +1 -0
  18. package/dist/clientAnnex/index.d.ts +60 -0
  19. package/dist/clientAnnex/index.d.ts.map +1 -0
  20. package/dist/clientAnnex/index.js +60 -0
  21. package/dist/clientAnnex/index.js.map +1 -0
  22. package/dist/{unlock → clientAnnex}/ladder.d.ts +89 -15
  23. package/dist/clientAnnex/ladder.d.ts.map +1 -0
  24. package/dist/clientAnnex/ladder.js +474 -0
  25. package/dist/clientAnnex/ladder.js.map +1 -0
  26. package/dist/clientAnnex/ladderAnchored.d.ts +276 -0
  27. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -0
  28. package/dist/clientAnnex/ladderAnchored.js +631 -0
  29. package/dist/clientAnnex/ladderAnchored.js.map +1 -0
  30. package/dist/{webvh/companion.d.ts → clientAnnex/log.d.ts} +333 -119
  31. package/dist/clientAnnex/log.d.ts.map +1 -0
  32. package/dist/{webvh/companion.js → clientAnnex/log.js} +583 -199
  33. package/dist/clientAnnex/log.js.map +1 -0
  34. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +103 -0
  35. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -0
  36. package/dist/clientAnnex/recoveryLadderAnchored.js +263 -0
  37. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -0
  38. package/dist/{unlock → clientAnnex}/selfEnroll.d.ts +1 -1
  39. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -0
  40. package/dist/{unlock → clientAnnex}/selfEnroll.js +1 -1
  41. package/dist/clientAnnex/selfEnroll.js.map +1 -0
  42. package/dist/clientAnnex/zcap.d.ts +49 -0
  43. package/dist/clientAnnex/zcap.d.ts.map +1 -0
  44. package/dist/clientAnnex/zcap.js +101 -0
  45. package/dist/clientAnnex/zcap.js.map +1 -0
  46. package/dist/clients/index.d.ts +9 -6
  47. package/dist/clients/index.d.ts.map +1 -1
  48. package/dist/clients/index.js +8 -5
  49. package/dist/clients/index.js.map +1 -1
  50. package/dist/clients/listing.d.ts +32 -0
  51. package/dist/clients/listing.d.ts.map +1 -1
  52. package/dist/clients/listing.js +47 -1
  53. package/dist/clients/listing.js.map +1 -1
  54. package/dist/clients/revocation.d.ts +33 -1
  55. package/dist/clients/revocation.d.ts.map +1 -1
  56. package/dist/clients/revocation.js +16 -4
  57. package/dist/clients/revocation.js.map +1 -1
  58. package/dist/enrollment/index.d.ts +6 -4
  59. package/dist/enrollment/index.d.ts.map +1 -1
  60. package/dist/enrollment/index.js +6 -4
  61. package/dist/enrollment/index.js.map +1 -1
  62. package/dist/enrollment/onboardingInvite.d.ts +5 -88
  63. package/dist/enrollment/onboardingInvite.d.ts.map +1 -1
  64. package/dist/enrollment/onboardingInvite.js +5 -168
  65. package/dist/enrollment/onboardingInvite.js.map +1 -1
  66. package/dist/genesis/index.d.ts +5 -0
  67. package/dist/genesis/index.d.ts.map +1 -1
  68. package/dist/genesis/index.js +5 -0
  69. package/dist/genesis/index.js.map +1 -1
  70. package/dist/keys/index.d.ts +1 -1
  71. package/dist/keys/index.d.ts.map +1 -1
  72. package/dist/keys/index.js +1 -1
  73. package/dist/keys/index.js.map +1 -1
  74. package/dist/keys/spaceEpochs.d.ts +7 -2
  75. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  76. package/dist/keys/spaceEpochs.js +8 -2
  77. package/dist/keys/spaceEpochs.js.map +1 -1
  78. package/dist/keys/userKeyRoster.d.ts +39 -0
  79. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  80. package/dist/keys/userKeyRoster.js +43 -1
  81. package/dist/keys/userKeyRoster.js.map +1 -1
  82. package/dist/recovery/index.d.ts +5 -3
  83. package/dist/recovery/index.d.ts.map +1 -1
  84. package/dist/recovery/index.js +4 -2
  85. package/dist/recovery/index.js.map +1 -1
  86. package/dist/recovery/recoveryDelegation.d.ts +35 -12
  87. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  88. package/dist/recovery/recoveryDelegation.js +84 -86
  89. package/dist/recovery/recoveryDelegation.js.map +1 -1
  90. package/dist/recovery/recoveryWebvh.d.ts +32 -1
  91. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  92. package/dist/recovery/recoveryWebvh.js +2 -2
  93. package/dist/recovery/recoveryWebvh.js.map +1 -1
  94. package/dist/request/capabilityRequest.d.ts +33 -0
  95. package/dist/request/capabilityRequest.d.ts.map +1 -0
  96. package/dist/request/capabilityRequest.js +35 -0
  97. package/dist/request/capabilityRequest.js.map +1 -0
  98. package/dist/request/ephemeralExchange.d.ts +118 -0
  99. package/dist/request/ephemeralExchange.d.ts.map +1 -0
  100. package/dist/request/ephemeralExchange.js +224 -0
  101. package/dist/request/ephemeralExchange.js.map +1 -0
  102. package/dist/request/index.d.ts +6 -0
  103. package/dist/request/index.d.ts.map +1 -1
  104. package/dist/request/index.js +6 -0
  105. package/dist/request/index.js.map +1 -1
  106. package/dist/space/activity.d.ts +2 -2
  107. package/dist/space/activity.js +3 -3
  108. package/dist/space/activity.js.map +1 -1
  109. package/dist/unlock/index.d.ts +11 -23
  110. package/dist/unlock/index.d.ts.map +1 -1
  111. package/dist/unlock/index.js +10 -21
  112. package/dist/unlock/index.js.map +1 -1
  113. package/dist/unlock/retire.d.ts +47 -3
  114. package/dist/unlock/retire.d.ts.map +1 -1
  115. package/dist/unlock/retire.js +21 -5
  116. package/dist/unlock/retire.js.map +1 -1
  117. package/dist/unlock/standingWebvh.d.ts +37 -82
  118. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  119. package/dist/unlock/standingWebvh.js +64 -247
  120. package/dist/unlock/standingWebvh.js.map +1 -1
  121. package/dist/unlock/unlockRecord.d.ts +13 -6
  122. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  123. package/dist/unlock/unlockRecord.js +14 -8
  124. package/dist/unlock/unlockRecord.js.map +1 -1
  125. package/dist/webvh/delegatedLogStore.d.ts +5 -5
  126. package/dist/webvh/delegatedLogStore.js +1 -1
  127. package/dist/webvh/didWebvh.d.ts +19 -9
  128. package/dist/webvh/didWebvh.d.ts.map +1 -1
  129. package/dist/webvh/didWebvh.js +16 -16
  130. package/dist/webvh/didWebvh.js.map +1 -1
  131. package/dist/webvh/index.d.ts +9 -25
  132. package/dist/webvh/index.d.ts.map +1 -1
  133. package/dist/webvh/index.js +9 -23
  134. package/dist/webvh/index.js.map +1 -1
  135. package/dist/webvh/revokeClient.d.ts +77 -5
  136. package/dist/webvh/revokeClient.d.ts.map +1 -1
  137. package/dist/webvh/revokeClient.js +154 -61
  138. package/dist/webvh/revokeClient.js.map +1 -1
  139. package/dist/webvh/standingZcap.d.ts +11 -1
  140. package/dist/webvh/standingZcap.d.ts.map +1 -1
  141. package/dist/webvh/standingZcap.js +13 -14
  142. package/dist/webvh/standingZcap.js.map +1 -1
  143. package/dist/webvh/wasIdStore.d.ts +13 -7
  144. package/dist/webvh/wasIdStore.d.ts.map +1 -1
  145. package/dist/webvh/wasIdStore.js +8 -4
  146. package/dist/webvh/wasIdStore.js.map +1 -1
  147. package/dist/webvh/zcap.d.ts +0 -24
  148. package/dist/webvh/zcap.d.ts.map +1 -1
  149. package/dist/webvh/zcap.js +0 -42
  150. package/dist/webvh/zcap.js.map +1 -1
  151. package/package.json +40 -34
  152. package/dist/unlock/ladder.d.ts.map +0 -1
  153. package/dist/unlock/ladder.js +0 -258
  154. package/dist/unlock/ladder.js.map +0 -1
  155. package/dist/unlock/selfEnroll.d.ts.map +0 -1
  156. package/dist/unlock/selfEnroll.js.map +0 -1
  157. package/dist/webvh/companion.d.ts.map +0 -1
  158. package/dist/webvh/companion.js.map +0 -1
  159. package/dist/webvh/companionGc.d.ts.map +0 -1
  160. package/dist/webvh/companionGc.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import type { DIDDoc, DIDLog } from '@interop/did-method-webvh';
2
- import type { ClientWebvhUpdateKeys, WebvhIdStore } from './didWebvh.js';
1
+ import type { DIDDoc, DIDLog, VerificationMethod } from '@interop/did-method-webvh';
2
+ import type { ClientWebvhUpdateKeys, PublishedWebvhLog, WebvhIdStore } from './didWebvh.js';
3
3
  /**
4
4
  * The public halves of the client being revoked, as the document and log
5
5
  * carry them: its signing-key multibase and its active update key. The
@@ -18,9 +18,11 @@ export interface RevokedClientKeys {
18
18
  /**
19
19
  * Thrown when the log attribution cannot isolate the revoked client's staged
20
20
  * commitment to a single hash -- more than one candidate survives after the
21
- * known latent (recovery-code) hashes are excluded. Refusing beats guessing:
22
- * see the module doc. The fix is to pass the standing recovery codes' update-
23
- * key hashes as `knownLatentHashes`.
21
+ * known latent (recovery-code) hashes are excluded, and the decision-0007
22
+ * append-order rule cannot resolve the residue positionally either (the
23
+ * client's update-key hash is not among the entry's additions, or the
24
+ * addition after it is not a surviving candidate). Refusing beats guessing:
25
+ * see the module doc.
24
26
  *
25
27
  * **`name` is a stable contract.** It is always the string
26
28
  * `'StagedCommitmentAmbiguousError'`, and a consumer should match on that
@@ -34,6 +36,76 @@ export declare class StagedCommitmentAmbiguousError extends Error {
34
36
  candidates: string[];
35
37
  });
36
38
  }
39
+ /**
40
+ * What a removal edit strikes, computed from the published log before any
41
+ * entry is built: the removed client's verification-method ids, whether any
42
+ * of them still stand (`vmPresent`), the update key the LOG states for the
43
+ * client now ({@link clientRemovalTarget} re-derives a stale or staged key by
44
+ * attribution), that key's carry-over hash, and whether anything at all is
45
+ * left to remove (`present`). Shared by the revocation entry
46
+ * ({@link revokeWebvhClient}) and the ladder-signed forget entry
47
+ * (`forgetWebvhClient` in the unlock module), so the two removal shapes can
48
+ * never drift.
49
+ */
50
+ export interface ClientRemovalTarget {
51
+ signingVmId: string;
52
+ keyAgreementVmIds: Set<string>;
53
+ vmPresent: boolean;
54
+ removedUpdateKey: string;
55
+ removedHash: string;
56
+ keyPresent: boolean;
57
+ hashPresent: boolean;
58
+ present: boolean;
59
+ }
60
+ /**
61
+ * Computes what removing one enrolled client strikes from the published
62
+ * document and log (see {@link ClientRemovalTarget}). Pure read: nothing is
63
+ * published, and an absent client resolves with `present: false` rather than
64
+ * throwing (the idempotent no-op the callers fall through to).
65
+ *
66
+ * @param options {object}
67
+ * @param options.published {PublishedWebvhLog}
68
+ * @param options.client {RevokedClientKeys} the removed client's public
69
+ * halves; an `updateKeyMultibase` the log does not authorize (stale, or the
70
+ * client's staged key) is re-derived from the log
71
+ * @returns {Promise<ClientRemovalTarget>}
72
+ */
73
+ export declare function clientRemovalTarget({ published, client }: {
74
+ published: PublishedWebvhLog;
75
+ client: RevokedClientKeys;
76
+ }): Promise<ClientRemovalTarget>;
77
+ /**
78
+ * Builds the removal entry's document and parameter fields from a computed
79
+ * target: the client's verification methods out of the document and all five
80
+ * relationship arrays, its update key out of `updateKeys`, and its carry-over
81
+ * and staged hashes out of `nextKeyHashes` (the staged hash recovered by log
82
+ * attribution -- see the module doc for why leaving it would be a re-seizure
83
+ * credential, and where the attribution is ambiguous). The caller supplies
84
+ * these to `updateDID` beside its own signer -- an enrolled client's update
85
+ * key for a revocation, a revealed ladder rung for a forget.
86
+ *
87
+ * @param options {object}
88
+ * @param options.published {PublishedWebvhLog}
89
+ * @param options.target {ClientRemovalTarget}
90
+ * @param [options.knownLatentHashes] {string[]} standing latent commitments
91
+ * the caller vouches for (the recovery registry's update-key hashes),
92
+ * excluded from the staged-hash attribution
93
+ * @returns {Promise<object>} the `updateDID` field bundle
94
+ */
95
+ export declare function clientRemovalFields({ published, target, knownLatentHashes }: {
96
+ published: PublishedWebvhLog;
97
+ target: ClientRemovalTarget;
98
+ knownLatentHashes?: string[];
99
+ }): Promise<{
100
+ updateKeys: string[];
101
+ nextKeyHashes: string[];
102
+ verificationMethods: VerificationMethod[];
103
+ authentication: string[];
104
+ assertionMethod: string[];
105
+ keyAgreement: string[];
106
+ capabilityInvocation: string[];
107
+ capabilityDelegation: string[];
108
+ }>;
37
109
  /**
38
110
  * REVOCATION (run by another enrolled client, root authority): removes an
39
111
  * enrolled wallet client from the published document -- its two verification
@@ -1 +1 @@
1
- {"version":3,"file":"revokeClient.d.ts","sourceRoot":"","sources":["../../src/webvh/revokeClient.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAgBlC,OAAO,KAAK,EACV,qBAAqB,EAErB,YAAY,EACb,MAAM,eAAe,CAAA;AAEtB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,UAAU,EAAE,MAAM,EAAE,CAAA;gBACR,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;CASrD;AAwKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,qBAAqB,CAAA;IACjC,aAAa,EAAE,iBAAiB,CAAA;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAErD"}
1
+ {"version":3,"file":"revokeClient.d.ts","sourceRoot":"","sources":["../../src/webvh/revokeClient.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EACN,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAgBlC,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACb,MAAM,eAAe,CAAA;AAEtB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,UAAU,EAAE,MAAM,EAAE,CAAA;gBACR,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;CAUrD;AAqMD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,SAAS,EACT,MAAM,EACP,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,MAAM,EAAE,iBAAiB,CAAA;CAC1B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,SAAS,EACT,MAAM,EACN,iBAAsB,EACvB,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B,GAAG,OAAO,CAAC;IACV,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;IACzC,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC/B,CAAC,CA8CD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,qBAAqB,CAAA;IACjC,aAAa,EAAE,iBAAiB,CAAA;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAErD"}
@@ -27,14 +27,19 @@
27
27
  * the entry that revealed or committed its client's active key -- genesis,
28
28
  * an enrollment commit, a rotation, a recovery reveal-and-commit -- and
29
29
  * diffing that entry's `nextKeyHashes` against its predecessor isolates it.
30
- * The one ambiguous shape is a recovery continuation, whose commit entry also
31
- * carries the replacement code's latent hash; the caller disambiguates by
32
- * supplying the standing recovery-code hashes it knows
33
- * (`knownLatentHashes`, from its recovery registry), and a residue of more
34
- * than one candidate refuses loudly rather than guessing
35
- * ({@link StagedCommitmentAmbiguousError}) -- removing a wrong hash would
36
- * either leave the revoked client re-enrollable or brick another party's
37
- * standing commitment.
30
+ * Two shapes commit more than the staged hash in one entry: a recovery
31
+ * continuation (the replacement code's latent hash rides beside it) and a
32
+ * standing credential's reveal-and-commit self-enrollment (the ladder's
33
+ * next-rung hash does). The caller first disambiguates by supplying the
34
+ * standing recovery-code hashes it knows (`knownLatentHashes`, from its
35
+ * recovery registry); when more than one candidate still survives, the
36
+ * append-order convention of decision 0007 resolves it positionally -- the
37
+ * staged hash is the addition immediately AFTER the revoked client's
38
+ * update-key hash in the entry's `nextKeyHashes` append order (the next-rung
39
+ * hash is last) -- and only a residue position cannot resolve either refuses
40
+ * loudly rather than guessing ({@link StagedCommitmentAmbiguousError}):
41
+ * removing a wrong hash would either leave the revoked client re-enrollable
42
+ * or brick another party's standing commitment.
38
43
  */
39
44
  import { deriveNextKeyHash, updateDID } from '@interop/did-method-webvh';
40
45
  import { assertCarryOverCommitments, concludeWithPublishedLog, effectiveParameters, publishUpdatedLog, readPublishedLog, relationIds, updateKeyMultibase, updateKeySigner, withLogConflictRetry } from './didWebvh.js';
@@ -42,9 +47,11 @@ import { attributeClientUpdateKey, markedKeyAgreementMultibases } from './listCl
42
47
  /**
43
48
  * Thrown when the log attribution cannot isolate the revoked client's staged
44
49
  * commitment to a single hash -- more than one candidate survives after the
45
- * known latent (recovery-code) hashes are excluded. Refusing beats guessing:
46
- * see the module doc. The fix is to pass the standing recovery codes' update-
47
- * key hashes as `knownLatentHashes`.
50
+ * known latent (recovery-code) hashes are excluded, and the decision-0007
51
+ * append-order rule cannot resolve the residue positionally either (the
52
+ * client's update-key hash is not among the entry's additions, or the
53
+ * addition after it is not a surviving candidate). Refusing beats guessing:
54
+ * see the module doc.
48
55
  *
49
56
  * **`name` is a stable contract.** It is always the string
50
57
  * `'StagedCommitmentAmbiguousError'`, and a consumer should match on that
@@ -56,8 +63,9 @@ export class StagedCommitmentAmbiguousError extends Error {
56
63
  candidates;
57
64
  constructor({ candidates }) {
58
65
  super("did:webvh: the revoked client's staged-key commitment cannot be " +
59
- 'isolated in nextKeyHashes (more than one candidate hash); pass the ' +
60
- "standing recovery codes' update-key hashes as knownLatentHashes.");
66
+ 'isolated in nextKeyHashes -- more than one candidate hash survives ' +
67
+ 'the known-latent-hash exclusion, and the append-order rule cannot ' +
68
+ "place one immediately after the client's update-key hash.");
61
69
  this.name = 'StagedCommitmentAmbiguousError';
62
70
  this.candidates = candidates;
63
71
  }
@@ -80,10 +88,13 @@ export class StagedCommitmentAmbiguousError extends Error {
80
88
  async function attributeStagedHash({ log, revokedUpdateKey, knownLatentHashes }) {
81
89
  const revokedHash = await deriveNextKeyHash(revokedUpdateKey);
82
90
  const params = effectiveParameters(log);
83
- const added = (index) => {
91
+ // Filtering the entry's own nextKeyHashes preserves its append order, which
92
+ // the positional fallback below relies on (decision 0007).
93
+ const orderedAdded = (index) => {
84
94
  const previous = new Set(index > 0 ? params[index - 1].nextKeyHashes : []);
85
- return new Set(params[index].nextKeyHashes.filter(hash => !previous.has(hash)));
95
+ return params[index].nextKeyHashes.filter(hash => !previous.has(hash));
86
96
  };
97
+ const added = (index) => new Set(orderedAdded(index));
87
98
  const prune = (candidates) => {
88
99
  candidates.delete(revokedHash);
89
100
  for (const hash of knownLatentHashes) {
@@ -91,6 +102,23 @@ async function attributeStagedHash({ log, revokedUpdateKey, knownLatentHashes })
91
102
  }
92
103
  return candidates;
93
104
  };
105
+ // The decision-0007 positional rule, applied only when the prune leaves more
106
+ // than one candidate: the staged hash is the addition immediately AFTER the
107
+ // revoked client's update-key hash in the entry's append order (the ladder's
108
+ // next-rung hash is last). Resolves undefined -- the ambiguity refusal
109
+ // stands -- when the update-key hash is not among the entry's additions, or
110
+ // its successor is not a surviving candidate.
111
+ const stagedByPosition = (index, candidates) => {
112
+ const additions = orderedAdded(index);
113
+ const anchor = additions.indexOf(revokedHash);
114
+ if (anchor === -1) {
115
+ return undefined;
116
+ }
117
+ const successor = additions[anchor + 1];
118
+ return successor !== undefined && candidates.has(successor)
119
+ ? successor
120
+ : undefined;
121
+ };
94
122
  // The entry where the revoked client's active key ENTERED updateKeys (the
95
123
  // latest such, in case of anything odd).
96
124
  let revealIndex = -1;
@@ -114,6 +142,10 @@ async function attributeStagedHash({ log, revokedUpdateKey, knownLatentHashes })
114
142
  return [...atReveal][0];
115
143
  }
116
144
  if (atReveal.size > 1) {
145
+ const positional = stagedByPosition(revealIndex, atReveal);
146
+ if (positional !== undefined) {
147
+ return positional;
148
+ }
117
149
  throw new StagedCommitmentAmbiguousError({ candidates: [...atReveal] });
118
150
  }
119
151
  // Fall back to the entry that COMMITTED the revoked key's own hash (an
@@ -133,6 +165,10 @@ async function attributeStagedHash({ log, revokedUpdateKey, knownLatentHashes })
133
165
  }
134
166
  const atCommit = prune(added(commitIndex));
135
167
  if (atCommit.size > 1) {
168
+ const positional = stagedByPosition(commitIndex, atCommit);
169
+ if (positional !== undefined) {
170
+ return positional;
171
+ }
136
172
  throw new StagedCommitmentAmbiguousError({ candidates: [...atCommit] });
137
173
  }
138
174
  return atCommit.size === 1 ? [...atCommit][0] : undefined;
@@ -201,6 +237,100 @@ async function currentRevokedUpdateKey({ published, revokedClient, vmPresent })
201
237
  }
202
238
  return attributed;
203
239
  }
240
+ /**
241
+ * Computes what removing one enrolled client strikes from the published
242
+ * document and log (see {@link ClientRemovalTarget}). Pure read: nothing is
243
+ * published, and an absent client resolves with `present: false` rather than
244
+ * throwing (the idempotent no-op the callers fall through to).
245
+ *
246
+ * @param options {object}
247
+ * @param options.published {PublishedWebvhLog}
248
+ * @param options.client {RevokedClientKeys} the removed client's public
249
+ * halves; an `updateKeyMultibase` the log does not authorize (stale, or the
250
+ * client's staged key) is re-derived from the log
251
+ * @returns {Promise<ClientRemovalTarget>}
252
+ */
253
+ export async function clientRemovalTarget({ published, client }) {
254
+ const { did, doc } = published;
255
+ const signingVmId = `${did}#${client.signingKeyMultibase}`;
256
+ // Every key-agreement method the removed client's controller marker claims,
257
+ // read off the document rather than paired from the caller's snapshot: a
258
+ // client that published more than one is fully removed, and a caller whose
259
+ // snapshot named a key the document never carried cannot leave a live
260
+ // method behind.
261
+ const keyAgreementVmIds = new Set(markedKeyAgreementMultibases({
262
+ doc,
263
+ signingKeyMultibase: client.signingKeyMultibase
264
+ }).map(multibase => `${did}#${multibase}`));
265
+ const existingMethods = (doc.verificationMethod ?? []);
266
+ const vmPresent = existingMethods.some(method => method.id === signingVmId ||
267
+ (method.id !== undefined && keyAgreementVmIds.has(method.id)));
268
+ // The key the log states for this client now, which a self-rotation since
269
+ // the caller's listing may have moved on.
270
+ const removedUpdateKey = await currentRevokedUpdateKey({
271
+ published,
272
+ revokedClient: client,
273
+ vmPresent
274
+ });
275
+ const removedHash = await deriveNextKeyHash(removedUpdateKey);
276
+ const keyPresent = published.updateKeys.includes(removedUpdateKey);
277
+ const hashPresent = published.nextKeyHashes.includes(removedHash);
278
+ return {
279
+ signingVmId,
280
+ keyAgreementVmIds,
281
+ vmPresent,
282
+ removedUpdateKey,
283
+ removedHash,
284
+ keyPresent,
285
+ hashPresent,
286
+ present: vmPresent || keyPresent || hashPresent
287
+ };
288
+ }
289
+ /**
290
+ * Builds the removal entry's document and parameter fields from a computed
291
+ * target: the client's verification methods out of the document and all five
292
+ * relationship arrays, its update key out of `updateKeys`, and its carry-over
293
+ * and staged hashes out of `nextKeyHashes` (the staged hash recovered by log
294
+ * attribution -- see the module doc for why leaving it would be a re-seizure
295
+ * credential, and where the attribution is ambiguous). The caller supplies
296
+ * these to `updateDID` beside its own signer -- an enrolled client's update
297
+ * key for a revocation, a revealed ladder rung for a forget.
298
+ *
299
+ * @param options {object}
300
+ * @param options.published {PublishedWebvhLog}
301
+ * @param options.target {ClientRemovalTarget}
302
+ * @param [options.knownLatentHashes] {string[]} standing latent commitments
303
+ * the caller vouches for (the recovery registry's update-key hashes),
304
+ * excluded from the staged-hash attribution
305
+ * @returns {Promise<object>} the `updateDID` field bundle
306
+ */
307
+ export async function clientRemovalFields({ published, target, knownLatentHashes = [] }) {
308
+ const { doc } = published;
309
+ const { signingVmId, keyAgreementVmIds, removedUpdateKey } = target;
310
+ // The removed client's staged commitment, recovered from the log while the
311
+ // log still shows the enrollment (attribution needs the standing entries,
312
+ // so this runs before the removal entry is built).
313
+ const stagedHash = target.keyPresent
314
+ ? await attributeStagedHash({
315
+ log: published.log,
316
+ revokedUpdateKey: removedUpdateKey,
317
+ knownLatentHashes
318
+ })
319
+ : undefined;
320
+ const removedHashes = new Set([target.removedHash, stagedHash].filter((hash) => hash !== undefined));
321
+ const removedVmIds = new Set([signingVmId, ...keyAgreementVmIds]);
322
+ const existingMethods = (doc.verificationMethod ?? []);
323
+ return {
324
+ updateKeys: published.updateKeys.filter(key => key !== removedUpdateKey),
325
+ nextKeyHashes: published.nextKeyHashes.filter(hash => !removedHashes.has(hash)),
326
+ verificationMethods: existingMethods.filter(method => !method.id || !removedVmIds.has(method.id)),
327
+ authentication: relationIds(doc.authentication).filter(id => id !== signingVmId),
328
+ assertionMethod: relationIds(doc.assertionMethod).filter(id => id !== signingVmId),
329
+ keyAgreement: relationIds(doc.keyAgreement).filter(id => !keyAgreementVmIds.has(id)),
330
+ capabilityInvocation: relationIds(doc.capabilityInvocation).filter(id => id !== signingVmId),
331
+ capabilityDelegation: relationIds(doc.capabilityDelegation).filter(id => id !== signingVmId)
332
+ };
333
+ }
204
334
  /**
205
335
  * REVOCATION (run by another enrolled client, root authority): removes an
206
336
  * enrolled wallet client from the published document -- its two verification
@@ -274,37 +404,14 @@ async function revokeWebvhClientOnce({ idStore, updateKeys, revokedClient, known
274
404
  if (!published) {
275
405
  throw new Error('did:webvh: did.jsonl is missing; nothing to revoke from.');
276
406
  }
277
- const { did, doc } = published;
278
- const signingVmId = `${did}#${revokedClient.signingKeyMultibase}`;
279
- // Every key-agreement method the revoked client's controller marker claims,
280
- // read off the document rather than paired from the caller's snapshot: a
281
- // client that published more than one is fully revoked, and a caller whose
282
- // snapshot named a key the document never carried cannot leave a live
283
- // method behind.
284
- const keyAgreementVmIds = new Set(markedKeyAgreementMultibases({
285
- doc,
286
- signingKeyMultibase: revokedClient.signingKeyMultibase
287
- }).map(multibase => `${did}#${multibase}`));
288
- const existingMethods = (doc.verificationMethod ?? []);
289
- const vmPresent = existingMethods.some(method => method.id === signingVmId ||
290
- (method.id !== undefined && keyAgreementVmIds.has(method.id)));
291
- // The key the log states for this client now, which a self-rotation since
292
- // the caller's listing may have moved on.
293
- const revokedUpdateKey = await currentRevokedUpdateKey({
294
- published,
295
- revokedClient,
296
- vmPresent
297
- });
407
+ const target = await clientRemovalTarget({ published, client: revokedClient });
298
408
  const activeKey = await updateKeyMultibase({ seed: updateKeys.updateSeed });
299
- if (revokedUpdateKey === activeKey ||
409
+ if (target.removedUpdateKey === activeKey ||
300
410
  revokedClient.updateKeyMultibase === activeKey) {
301
411
  throw new Error('did:webvh: a client cannot revoke itself; disconnect this client ' +
302
412
  'from another enrolled client instead.');
303
413
  }
304
- const revokedHash = await deriveNextKeyHash(revokedUpdateKey);
305
- const keyPresent = published.updateKeys.includes(revokedUpdateKey);
306
- const hashPresent = published.nextKeyHashes.includes(revokedHash);
307
- if (!vmPresent && !keyPresent && !hashPresent) {
414
+ if (!target.present) {
308
415
  // Nothing left to remove, but a torn earlier publish can still have left
309
416
  // did.json lagging the log.
310
417
  const concluded = await concludeWithPublishedLog({ idStore, published });
@@ -315,31 +422,17 @@ async function revokeWebvhClientOnce({ idStore, updateKeys, revokedClient, known
315
422
  'update key; finalize the pending rotation before revoking a client.');
316
423
  }
317
424
  await assertCarryOverCommitments({ published });
318
- // The revoked client's staged commitment, recovered from the log while the
319
- // log still shows the enrollment (attribution needs the standing entries,
320
- // so this runs before the removal entry is built).
321
- const stagedHash = keyPresent
322
- ? await attributeStagedHash({
323
- log: published.log,
324
- revokedUpdateKey,
325
- knownLatentHashes
326
- })
327
- : undefined;
328
- const removedHashes = new Set([revokedHash, stagedHash].filter((hash) => hash !== undefined));
329
- const removedVmIds = new Set([signingVmId, ...keyAgreementVmIds]);
425
+ const fields = await clientRemovalFields({
426
+ published,
427
+ target,
428
+ knownLatentHashes
429
+ });
330
430
  const signer = await updateKeySigner({ seed: updateKeys.updateSeed });
331
431
  const updated = await updateDID({
332
432
  log: published.log,
333
433
  signer,
334
434
  alsoKnownAsWeb: true,
335
- updateKeys: published.updateKeys.filter(key => key !== revokedUpdateKey),
336
- nextKeyHashes: published.nextKeyHashes.filter(hash => !removedHashes.has(hash)),
337
- verificationMethods: existingMethods.filter(method => !method.id || !removedVmIds.has(method.id)),
338
- authentication: relationIds(doc.authentication).filter(id => id !== signingVmId),
339
- assertionMethod: relationIds(doc.assertionMethod).filter(id => id !== signingVmId),
340
- keyAgreement: relationIds(doc.keyAgreement).filter(id => !keyAgreementVmIds.has(id)),
341
- capabilityInvocation: relationIds(doc.capabilityInvocation).filter(id => id !== signingVmId),
342
- capabilityDelegation: relationIds(doc.capabilityDelegation).filter(id => id !== signingVmId)
435
+ ...fields
343
436
  });
344
437
  await publishUpdatedLog({ idStore, updated, ifMatch: published.etag });
345
438
  return { did: updated.did, doc: updated.doc, log: updated.log };
@@ -1 +1 @@
1
- {"version":3,"file":"revokeClient.js","sourceRoot":"","sources":["../../src/webvh/revokeClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revokeClient.js","sourceRoot":"","sources":["../../src/webvh/revokeClient.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,14 @@
5
5
  * The house policy for standing recorded zcaps -- the long-lived delegations a
6
6
  * wallet mints once and records beside a registry entry or inside a document
7
7
  * (the recovery `did.jsonl` bridge, an unlock Space's management zcap, the
8
- * companion generation delegation): one shared lifetime, one renewal window,
8
+ * client annex generation delegation): one shared lifetime, one renewal window,
9
9
  * and the one staleness predicate every re-mint pass and login-time health
10
10
  * check asks. A leaf file (no internal imports), so both the `webvh` and
11
11
  * `recovery` layers can share it without a layering inversion; `recovery`
12
12
  * re-exports the members that were born there, so its public surface is
13
13
  * unchanged.
14
14
  */
15
+ import type { IZcap } from '@interop/data-integrity-core';
15
16
  /**
16
17
  * The standing zcap lifetime: one year, following NIST SP 800-57's
17
18
  * one-to-two-year cryptoperiod guidance for private signature keys. A
@@ -45,4 +46,13 @@ export declare function zcapExpiring({ expires, now }: {
45
46
  expires?: string;
46
47
  now?: number;
47
48
  }): boolean;
49
+ /**
50
+ * The verification method that signed a delegation's proof -- recorded in the
51
+ * registry entry so the health check and the re-mint's rot check can test it
52
+ * against the current document without holding the code.
53
+ *
54
+ * @param delegation {IZcap}
55
+ * @returns {string | undefined}
56
+ */
57
+ export declare function delegationProofKeyId(delegation: IZcap): string | undefined;
48
58
  //# sourceMappingURL=standingZcap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standingZcap.d.ts","sourceRoot":"","sources":["../../src/webvh/standingZcap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,QAA4B,CAAA;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAA2B,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,GAAgB,EACjB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CASV"}
1
+ {"version":3,"file":"standingZcap.d.ts","sourceRoot":"","sources":["../../src/webvh/standingZcap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,QAA4B,CAAA;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAA2B,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,GAAgB,EACjB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CASV;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAU1E"}
@@ -1,17 +1,3 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * The house policy for standing recorded zcaps -- the long-lived delegations a
6
- * wallet mints once and records beside a registry entry or inside a document
7
- * (the recovery `did.jsonl` bridge, an unlock Space's management zcap, the
8
- * companion generation delegation): one shared lifetime, one renewal window,
9
- * and the one staleness predicate every re-mint pass and login-time health
10
- * check asks. A leaf file (no internal imports), so both the `webvh` and
11
- * `recovery` layers can share it without a layering inversion; `recovery`
12
- * re-exports the members that were born there, so its public surface is
13
- * unchanged.
14
- */
15
1
  /**
16
2
  * The standing zcap lifetime: one year, following NIST SP 800-57's
17
3
  * one-to-two-year cryptoperiod guidance for private signature keys. A
@@ -51,4 +37,17 @@ export function zcapExpiring({ expires, now = Date.now() }) {
51
37
  }
52
38
  return expiresAt - now <= ZCAP_RENEWAL_WINDOW_MS;
53
39
  }
40
+ /**
41
+ * The verification method that signed a delegation's proof -- recorded in the
42
+ * registry entry so the health check and the re-mint's rot check can test it
43
+ * against the current document without holding the code.
44
+ *
45
+ * @param delegation {IZcap}
46
+ * @returns {string | undefined}
47
+ */
48
+ export function delegationProofKeyId(delegation) {
49
+ const { proof } = delegation;
50
+ const single = Array.isArray(proof) ? proof[0] : proof;
51
+ return single?.verificationMethod;
52
+ }
54
53
  //# sourceMappingURL=standingZcap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standingZcap.js","sourceRoot":"","sources":["../../src/webvh/standingZcap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAIjB;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,SAAS,GAAG,GAAG,IAAI,sBAAsB,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"standingZcap.js","sourceRoot":"","sources":["../../src/webvh/standingZcap.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAIjB;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,SAAS,GAAG,GAAG,IAAI,sBAAsB,CAAA;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAiB;IACpD,MAAM,EAAE,KAAK,EAAE,GAAG,UAMjB,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACtD,OAAO,MAAM,EAAE,kBAAkB,CAAA;AACnC,CAAC"}
@@ -6,12 +6,12 @@
6
6
  * account's identity collections as a {@link WebvhIdStore}, so every wallet
7
7
  * app drives the log ceremonies through one implementation instead of its own
8
8
  * copy. The log-resource half is parameterized over the collection holding
9
- * `did.jsonl` ({@link wasWebvhLogStore}), so a companion generation's log --
10
- * a `gen-` collection in the auxiliary companion Space -- is served by the
9
+ * `did.jsonl` ({@link wasWebvhLogStore}), so a client-annex generation's log --
10
+ * a `gen-` collection in the auxiliary annex Space -- is served by the
11
11
  * same implementation without touching the account-log paths.
12
12
  *
13
13
  * Collections here are addressed as plaintext: `id` holds published documents
14
- * (world-readable by policy), a companion generation's collection holds only
14
+ * (world-readable by policy), an annex generation's collection holds only
15
15
  * its `did.jsonl` (capability-gated, but never encrypted -- the server
16
16
  * resolves it out of its own storage), and `key-map` holds plain JSON, so
17
17
  * none of them goes through the encryption codec.
@@ -26,32 +26,38 @@
26
26
  * `conditional-writes` serves no ETag, and the publish degrades to an
27
27
  * unconditional write.
28
28
  */
29
+ import type { IZcap } from '@interop/data-integrity-core';
29
30
  import type { WasClient } from '@interop/was-client';
30
31
  import type { WebvhIdStore } from './didWebvh.js';
31
32
  /**
32
33
  * The log-resource subset of the seam: what a ceremony that only reads and
33
34
  * publishes a `did.jsonl` (and its sibling resources in the same collection)
34
- * needs. The account store and the companion store both serve it.
35
+ * needs. The account store and the annex store both serve it.
35
36
  */
36
37
  export type WebvhLogResourceStore = Pick<WebvhIdStore, 'getIdResourceRaw' | 'getIdResource' | 'putIdResource'>;
37
38
  /**
38
39
  * Builds the parameterized log-resource store over one collection of one
39
40
  * Space: the shared implementation behind {@link wasWebvhIdStore} (the
40
- * account's `id` collection) and a companion generation's log store (its
41
+ * account's `id` collection) and an annex generation's log store (its
41
42
  * `gen-` collection in the auxiliary Space). Signing is whatever the wrapped
42
43
  * client signs as -- controller-tier for the account paths, an enrolled
43
- * client's key for the companion.
44
+ * client's key for the annex.
44
45
  *
45
46
  * @param options {object}
46
47
  * @param options.was {WasClient} the storage client to sign with
47
48
  * @param options.spaceId {string} the Space holding the collection
48
49
  * @param options.collectionId {string} the collection holding the log
50
+ * @param [options.capability] {IZcap} an invocation capability every request
51
+ * rides (a delegated writer -- e.g. the transient-recovery continuation over
52
+ * the credential's sibling delegation); absent, requests invoke the root
53
+ * capability as before
49
54
  * @returns {WebvhLogResourceStore}
50
55
  */
51
- export declare function wasWebvhLogStore({ was, spaceId, collectionId }: {
56
+ export declare function wasWebvhLogStore({ was, spaceId, collectionId, capability }: {
52
57
  was: WasClient;
53
58
  spaceId: string;
54
59
  collectionId: string;
60
+ capability?: IZcap;
55
61
  }): WebvhLogResourceStore;
56
62
  /**
57
63
  * Builds the `id`-collection store the account's did:webvh ceremonies read
@@ -1 +1 @@
1
- {"version":3,"file":"wasIdStore.d.ts","sourceRoot":"","sources":["../../src/webvh/wasIdStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAMpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,YAAY,EACZ,kBAAkB,GAAG,eAAe,GAAG,eAAe,CACvD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,OAAO,EACP,YAAY,EACb,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,qBAAqB,CA+CxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,OAAO,EACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,YAAY,CAaf"}
1
+ {"version":3,"file":"wasIdStore.d.ts","sourceRoot":"","sources":["../../src/webvh/wasIdStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAMpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,YAAY,EACZ,kBAAkB,GAAG,eAAe,GAAG,eAAe,CACvD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,OAAO,EACP,YAAY,EACZ,UAAU,EACX,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,qBAAqB,CA+CxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,OAAO,EACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,YAAY,CAaf"}
@@ -2,20 +2,24 @@ import { DID_KEYS_RESOURCE, ID_COLLECTION, KEY_MAP_COLLECTION } from '../space/c
2
2
  /**
3
3
  * Builds the parameterized log-resource store over one collection of one
4
4
  * Space: the shared implementation behind {@link wasWebvhIdStore} (the
5
- * account's `id` collection) and a companion generation's log store (its
5
+ * account's `id` collection) and an annex generation's log store (its
6
6
  * `gen-` collection in the auxiliary Space). Signing is whatever the wrapped
7
7
  * client signs as -- controller-tier for the account paths, an enrolled
8
- * client's key for the companion.
8
+ * client's key for the annex.
9
9
  *
10
10
  * @param options {object}
11
11
  * @param options.was {WasClient} the storage client to sign with
12
12
  * @param options.spaceId {string} the Space holding the collection
13
13
  * @param options.collectionId {string} the collection holding the log
14
+ * @param [options.capability] {IZcap} an invocation capability every request
15
+ * rides (a delegated writer -- e.g. the transient-recovery continuation over
16
+ * the credential's sibling delegation); absent, requests invoke the root
17
+ * capability as before
14
18
  * @returns {WebvhLogResourceStore}
15
19
  */
16
- export function wasWebvhLogStore({ was, spaceId, collectionId }) {
20
+ export function wasWebvhLogStore({ was, spaceId, collectionId, capability }) {
17
21
  const resource = (resourceId) => was
18
- .space(spaceId)
22
+ .space(spaceId, capability !== undefined ? { capability } : {})
19
23
  .collection(collectionId, { encryption: 'plaintext' })
20
24
  .resource(resourceId);
21
25
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"wasIdStore.js","sourceRoot":"","sources":["../../src/webvh/wasIdStore.ts"],"names":[],"mappings":"AA6BA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AAahC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,GAAG,EACH,OAAO,EACP,YAAY,EAKb;IACC,MAAM,QAAQ,GAAG,CAAC,UAAkB,EAAE,EAAE,CACtC,GAAG;SACA,KAAK,CAAC,OAAO,CAAC;SACd,UAAU,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;SACrD,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEzB,OAAO;QACL,gBAAgB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;YACrD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,wEAAwE;YACxE,uEAAuE;YACvE,6DAA6D;YAC7D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YAC3B,MAAM,IAAI,GACR,IAAI,YAAY,IAAI;gBAClB,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE;gBACnB,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACvB,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;YAC7C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;QACzC,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,EACpB,UAAU,EACV,OAAO,EACP,WAAW,GAAG,kBAAkB,EAChC,OAAO,EACP,WAAW,EACZ,EAAE,EAAE;YACH,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YACjE,wEAAwE;YACxE,2CAA2C;YAC3C,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACnE,WAAW;gBACX,OAAO;gBACP,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,GAAG,EACH,OAAO,EAIR;IACC,OAAO;QACL,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;QACrE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/B,MAAM,GAAG;iBACN,KAAK,CAAC,OAAO,CAAC;iBACd,UAAU,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;iBAC9D,QAAQ,CAAC,iBAAiB,CAAC;iBAC3B,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE;gBACtD,WAAW,EAAE,kBAAkB;aAChC,CAAC,CAAA;QACN,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"wasIdStore.js","sourceRoot":"","sources":["../../src/webvh/wasIdStore.ts"],"names":[],"mappings":"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"}