@interop/wallet-core 0.86.0 → 0.88.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/dist/ceremonyEvents.d.ts +116 -0
- package/dist/ceremonyEvents.d.ts.map +1 -0
- package/dist/ceremonyEvents.js +282 -0
- package/dist/ceremonyEvents.js.map +1 -0
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +17 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +45 -3
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
- package/dist/clientAnnex/establish.d.ts +22 -0
- package/dist/clientAnnex/establish.d.ts.map +1 -1
- package/dist/clientAnnex/establish.js +67 -7
- package/dist/clientAnnex/establish.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts +35 -2
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +85 -8
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +26 -2
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +82 -2
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +6 -5
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +3 -3
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +7 -4
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +11 -5
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.js +15 -4
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/selfEnroll.d.ts +23 -1
- package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +45 -1
- package/dist/clientAnnex/selfEnroll.js.map +1 -1
- package/dist/clients/index.d.ts +2 -2
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +1 -1
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/revocation.d.ts +20 -1
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +76 -1
- package/dist/clients/revocation.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts +23 -2
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +75 -4
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/enrollment/index.d.ts +2 -2
- package/dist/enrollment/index.d.ts.map +1 -1
- package/dist/enrollment/index.js +1 -1
- package/dist/enrollment/index.js.map +1 -1
- package/dist/enrollment/onboardingResponse.d.ts +26 -5
- package/dist/enrollment/onboardingResponse.d.ts.map +1 -1
- package/dist/enrollment/onboardingResponse.js +2 -14
- package/dist/enrollment/onboardingResponse.js.map +1 -1
- package/dist/errorName.d.ts +19 -0
- package/dist/errorName.d.ts.map +1 -0
- package/dist/errorName.js +27 -0
- package/dist/errorName.js.map +1 -0
- package/dist/genesis/accountGenesis.d.ts +27 -1
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +60 -2
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/genesis/index.d.ts +2 -2
- package/dist/genesis/index.d.ts.map +1 -1
- package/dist/genesis/index.js +1 -1
- package/dist/genesis/index.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/labelText.d.ts +24 -0
- package/dist/labelText.d.ts.map +1 -0
- package/dist/labelText.js +26 -0
- package/dist/labelText.js.map +1 -0
- package/dist/log.d.ts +6 -4
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +8 -5
- package/dist/log.js.map +1 -1
- package/dist/menders/ids.d.ts +4 -1
- package/dist/menders/ids.d.ts.map +1 -1
- package/dist/menders/ids.js +4 -1
- package/dist/menders/ids.js.map +1 -1
- package/dist/menders/index.d.ts +2 -1
- package/dist/menders/index.d.ts.map +1 -1
- package/dist/menders/index.js +2 -1
- package/dist/menders/index.js.map +1 -1
- package/dist/menders/runner.d.ts +41 -34
- package/dist/menders/runner.d.ts.map +1 -1
- package/dist/menders/runner.js +56 -24
- package/dist/menders/runner.js.map +1 -1
- package/dist/menders/vocabulary.d.ts +3 -1
- package/dist/menders/vocabulary.d.ts.map +1 -1
- package/dist/menders/vocabulary.js +3 -1
- package/dist/menders/vocabulary.js.map +1 -1
- package/dist/recovery/continuation.d.ts +40 -1
- package/dist/recovery/continuation.d.ts.map +1 -1
- package/dist/recovery/continuation.js +48 -1
- package/dist/recovery/continuation.js.map +1 -1
- package/dist/recovery/index.d.ts +2 -2
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/index.js +1 -1
- package/dist/recovery/index.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +21 -2
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +88 -31
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/space/ceremony.d.ts +3 -1
- package/dist/space/ceremony.d.ts.map +1 -1
- package/dist/space/ceremony.js +3 -1
- package/dist/space/ceremony.js.map +1 -1
- package/dist/unlock/index.d.ts +2 -2
- 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 +21 -1
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +79 -1
- package/dist/unlock/retire.js.map +1 -1
- package/package.json +2 -2
|
@@ -8,6 +8,30 @@ import { mintClientWebvhUpdateKeys, updateKeyMultibase } from '../webvh/didWebvh
|
|
|
8
8
|
import { verifyAccountLog } from '../webvh/verifyLog.js';
|
|
9
9
|
import { clientSigningKeyMultibase, isWebvhDid, webvhZcapClient } from '../webvh/zcap.js';
|
|
10
10
|
import { assertBuiltOnHeadShape, selfEnrollWebvhClient } from './ladderAnchored.js';
|
|
11
|
+
import { ceremonyEvents } from '../ceremonyEvents.js';
|
|
12
|
+
import { log } from '../log.js';
|
|
13
|
+
/**
|
|
14
|
+
* The stages the self-enrollment reports on the ceremony event channel, in
|
|
15
|
+
* the order they land: the account-log continuation (the reveal-and-commit
|
|
16
|
+
* and add entries; `prior: true` when a torn earlier run had already
|
|
17
|
+
* published the add entry), the local verify of the continued log, the first
|
|
18
|
+
* roster read, and the new client's roster escrow.
|
|
19
|
+
*/
|
|
20
|
+
export const SELF_ENROLLMENT_EVENT_STAGES = [
|
|
21
|
+
'account-log-continuation',
|
|
22
|
+
'account-log-verify',
|
|
23
|
+
'roster-read',
|
|
24
|
+
'roster-escrow'
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* The self-enrollment's typed refusals, matched by `err.name`: a resume whose
|
|
28
|
+
* recorded head the served log never reached, and an account document that
|
|
29
|
+
* no longer anchors this credential's ladder. Both fire before the pivot.
|
|
30
|
+
*/
|
|
31
|
+
const SELF_ENROLLMENT_REFUSALS = [
|
|
32
|
+
'BuiltOnHeadNotReachedError',
|
|
33
|
+
'LadderAttributionError'
|
|
34
|
+
];
|
|
11
35
|
/**
|
|
12
36
|
* Runs the whole self-enrollment described in the module doc. The caller has
|
|
13
37
|
* already unwrapped the credential's unlock record (so it holds the
|
|
@@ -73,7 +97,21 @@ import { assertBuiltOnHeadShape, selfEnrollWebvhClient } from './ladderAnchored.
|
|
|
73
97
|
* cleared. The member exists so a build skew that dropped it surfaces
|
|
74
98
|
* instead of reading as `false`
|
|
75
99
|
*/
|
|
76
|
-
export async function selfEnrollClientCore(
|
|
100
|
+
export async function selfEnrollClientCore(options) {
|
|
101
|
+
const events = ceremonyEvents({
|
|
102
|
+
ceremony: 'self-enrollment',
|
|
103
|
+
log,
|
|
104
|
+
refusals: SELF_ENROLLMENT_REFUSALS
|
|
105
|
+
});
|
|
106
|
+
return events.run(() => selfEnrollClientBody({ ...options, events }));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The body of {@link selfEnrollClientCore}, one run under its event emitter.
|
|
110
|
+
*
|
|
111
|
+
* @param options {object} see {@link selfEnrollClientCore}, plus `events`
|
|
112
|
+
* @returns {Promise<object>} see {@link selfEnrollClientCore}
|
|
113
|
+
*/
|
|
114
|
+
async function selfEnrollClientBody({ pointer, ladderSeed, credentialKeyAgreementKey, logStore, onCommitted, resume, serviceDescription, events }) {
|
|
77
115
|
// Refused before any read, on the ceremony's own rule: without the seam the
|
|
78
116
|
// pivot entry can publish a client whose seed nothing persisted.
|
|
79
117
|
if (typeof onCommitted !== 'function') {
|
|
@@ -137,6 +175,9 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
|
|
|
137
175
|
...(resume ? { builtOnHead: resume.builtOnHead } : {}),
|
|
138
176
|
expectedDid
|
|
139
177
|
});
|
|
178
|
+
events.stage('account-log-continuation', {
|
|
179
|
+
...(enrolled.committed ? {} : { prior: true })
|
|
180
|
+
});
|
|
140
181
|
// Verify the continuation from the world-readable log -- the same
|
|
141
182
|
// first-contact read an enrollee's completion runs, and the controller the
|
|
142
183
|
// roster log's entry proofs are checked against.
|
|
@@ -149,6 +190,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
|
|
|
149
190
|
// own pin is handed to it explicitly.
|
|
150
191
|
pinStore: logStore.pin.store
|
|
151
192
|
});
|
|
193
|
+
events.stage('account-log-verify');
|
|
152
194
|
// The first roster read: signed with the `<did:webvh>#<multibase>` keyId
|
|
153
195
|
// the add entry just published, unwrapping the user key from the
|
|
154
196
|
// CREDENTIAL's standing wrap. First contact: the chain-head pin this read
|
|
@@ -172,6 +214,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
|
|
|
172
214
|
throw new Error('The account has no user key roster; it must finish provisioning ' +
|
|
173
215
|
'before a client can self-enroll.');
|
|
174
216
|
}
|
|
217
|
+
events.stage('roster-read');
|
|
175
218
|
// Escrow the new client into the roster as its own recipient, so later
|
|
176
219
|
// logins on this browser read the roster the ordinary enrolled way.
|
|
177
220
|
// Idempotent: a wrap already standing is returned as-is.
|
|
@@ -186,6 +229,7 @@ export async function selfEnrollClientCore({ pointer, ladderSeed, credentialKeyA
|
|
|
186
229
|
},
|
|
187
230
|
ownerKeyAgreementKey: credentialKeyAgreementKey
|
|
188
231
|
});
|
|
232
|
+
events.stage('roster-escrow');
|
|
189
233
|
return {
|
|
190
234
|
clientSeed,
|
|
191
235
|
webvhUpdateKeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfEnroll.js","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;AAK7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,yBAAyB,EACzB,UAAU,EACV,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"selfEnroll.js","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"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"}
|
package/dist/clients/index.d.ts
CHANGED
|
@@ -39,8 +39,8 @@ export { deriveGrantSignerState } from './grantState.js';
|
|
|
39
39
|
export type { GrantSignerState } from './grantState.js';
|
|
40
40
|
export { cascadeCompletion, disconnectEligibility, revokedClientKeysFor } from './policy.js';
|
|
41
41
|
export type { DisconnectRefusal } from './policy.js';
|
|
42
|
-
export { revokeAccountClient } from './revocation.js';
|
|
43
|
-
export type { CascadeCollections, ClientRevocationResult, GenerationDelegationRemint, RosterSealReport } from './revocation.js';
|
|
42
|
+
export { CLIENT_REVOCATION_STAGES, revokeAccountClient } from './revocation.js';
|
|
43
|
+
export type { ClientRevocationStage, CascadeCollections, ClientRevocationResult, GenerationDelegationRemint, RosterSealReport } from './revocation.js';
|
|
44
44
|
export { checkUserKeyRosterAtLogin, convergeUserKeyRosterToAccount } from './rosterPolicy.js';
|
|
45
45
|
export type { AdoptedUserKey } from './rosterPolicy.js';
|
|
46
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/clients/index.js
CHANGED
|
@@ -36,6 +36,6 @@
|
|
|
36
36
|
export { currentAccountRecordSigners, currentAccountSigningKeys, listAccountClients } from './listing.js';
|
|
37
37
|
export { deriveGrantSignerState } from './grantState.js';
|
|
38
38
|
export { cascadeCompletion, disconnectEligibility, revokedClientKeysFor } from './policy.js';
|
|
39
|
-
export { revokeAccountClient } from './revocation.js';
|
|
39
|
+
export { CLIENT_REVOCATION_STAGES, revokeAccountClient } from './revocation.js';
|
|
40
40
|
export { checkUserKeyRosterAtLogin, convergeUserKeyRosterToAccount } from './rosterPolicy.js';
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAA;AAOrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAS/E,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mBAAmB,CAAA"}
|
|
@@ -76,6 +76,7 @@ import type { CollectionEncryption } from '@interop/was-client';
|
|
|
76
76
|
import type { EncryptionDescriptorStore } from '@interop/was-client/edv/core';
|
|
77
77
|
import { type AccountLogSigner, type PublishedKeyDocument, type RevokedClientKeys, type WebvhIdStore } from '../webvh/index.js';
|
|
78
78
|
import { type CascadeCollections, type RosterSealReport, type UserKey, type UserKeyCascadeResult } from '../keys/index.js';
|
|
79
|
+
import { type CeremonyEmitter } from '../ceremonyEvents.js';
|
|
79
80
|
export type { CascadeCollections, RosterSealReport };
|
|
80
81
|
/**
|
|
81
82
|
* What the generation-delegation re-mint stage reports: whether an annex
|
|
@@ -90,6 +91,19 @@ export interface GenerationDelegationRemint {
|
|
|
90
91
|
renewed: boolean;
|
|
91
92
|
skipped?: 'no-pointer' | 'no-ladder-seed' | 'failed';
|
|
92
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* The stages the revocation cascade reports on the ceremony event channel,
|
|
96
|
+
* in the order they land: the document edit, the roster rotation and the
|
|
97
|
+
* collection fan-out (when the account has a roster, the fan-out only when
|
|
98
|
+
* every collection converged), and the generation-delegation re-mint (when
|
|
99
|
+
* the closure ran and was not skipped). A stage that found its work already
|
|
100
|
+
* done carries `prior: true`.
|
|
101
|
+
*/
|
|
102
|
+
export declare const CLIENT_REVOCATION_STAGES: readonly ["document-edit", "roster-rotation", "collection-epochs", "generation-remint"];
|
|
103
|
+
/**
|
|
104
|
+
* One value of {@link CLIENT_REVOCATION_STAGES}.
|
|
105
|
+
*/
|
|
106
|
+
export type ClientRevocationStage = (typeof CLIENT_REVOCATION_STAGES)[number];
|
|
93
107
|
/**
|
|
94
108
|
* What a completed cascade reports: whether the roster actually rotated on
|
|
95
109
|
* this run (a re-run of an already-complete revocation reports `false`), the
|
|
@@ -166,7 +180,11 @@ export interface ClientRevocationResult {
|
|
|
166
180
|
* keeps operating without a re-login
|
|
167
181
|
* @returns {Promise<ClientRevocationResult>}
|
|
168
182
|
*/
|
|
169
|
-
export declare function revokeAccountClient(
|
|
183
|
+
export declare function revokeAccountClient(options: Omit<Parameters<typeof runClientRevocation>[0], 'events'>): Promise<ClientRevocationResult>;
|
|
184
|
+
/**
|
|
185
|
+
* The body of {@link revokeAccountClient}, one run under its event emitter.
|
|
186
|
+
*/
|
|
187
|
+
declare function runClientRevocation({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted, events }: {
|
|
170
188
|
idStore: WebvhIdStore;
|
|
171
189
|
signer: AccountLogSigner;
|
|
172
190
|
projectionStore?: Pick<WebvhIdStore, 'getIdResourceRaw' | 'putIdResource'>;
|
|
@@ -189,5 +207,6 @@ export declare function revokeAccountClient({ idStore, signer, projectionStore,
|
|
|
189
207
|
onRotationAdopted?: (rotation: {
|
|
190
208
|
userKey: UserKey;
|
|
191
209
|
}) => Promise<void>;
|
|
210
|
+
events: CeremonyEmitter<ClientRevocationStage>;
|
|
192
211
|
}): Promise<ClientRevocationResult>;
|
|
193
212
|
//# sourceMappingURL=revocation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"revocation.d.ts","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import { revokeWebvhClient } from '../webvh/index.js';
|
|
2
2
|
import { rotateRosterToDocumentAndCascade } from '../keys/index.js';
|
|
3
|
+
import { ceremonyEvents } from '../ceremonyEvents.js';
|
|
4
|
+
import { log as walletLog } from '../log.js';
|
|
3
5
|
import { assertUpdateKeyAttributed } from './policy.js';
|
|
6
|
+
/**
|
|
7
|
+
* The stages the revocation cascade reports on the ceremony event channel,
|
|
8
|
+
* in the order they land: the document edit, the roster rotation and the
|
|
9
|
+
* collection fan-out (when the account has a roster, the fan-out only when
|
|
10
|
+
* every collection converged), and the generation-delegation re-mint (when
|
|
11
|
+
* the closure ran and was not skipped). A stage that found its work already
|
|
12
|
+
* done carries `prior: true`.
|
|
13
|
+
*/
|
|
14
|
+
export const CLIENT_REVOCATION_STAGES = [
|
|
15
|
+
'document-edit',
|
|
16
|
+
'roster-rotation',
|
|
17
|
+
'collection-epochs',
|
|
18
|
+
'generation-remint'
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* The cascade's typed refusals, matched by `err.name`: the document edit's
|
|
22
|
+
* ambiguous staged commitment, and an inventory attribution that would
|
|
23
|
+
* strike a surviving client. Both refuse before the edit publishes.
|
|
24
|
+
*/
|
|
25
|
+
const CLIENT_REVOCATION_REFUSALS = [
|
|
26
|
+
'StagedCommitmentAmbiguousError',
|
|
27
|
+
'LadderAttributionError'
|
|
28
|
+
];
|
|
4
29
|
/**
|
|
5
30
|
* Runs the whole revocation cascade for one enrolled wallet client. See the
|
|
6
31
|
* module doc for the order and the convergence story. Throws before touching
|
|
@@ -61,7 +86,28 @@ import { assertUpdateKeyAttributed } from './policy.js';
|
|
|
61
86
|
* keeps operating without a re-login
|
|
62
87
|
* @returns {Promise<ClientRevocationResult>}
|
|
63
88
|
*/
|
|
64
|
-
export async function revokeAccountClient(
|
|
89
|
+
export async function revokeAccountClient(options) {
|
|
90
|
+
const events = ceremonyEvents({
|
|
91
|
+
ceremony: 'client-revocation',
|
|
92
|
+
log: walletLog,
|
|
93
|
+
refusals: CLIENT_REVOCATION_REFUSALS
|
|
94
|
+
});
|
|
95
|
+
// Detail is counts alone: the ladder arm runs on transient sessions, where
|
|
96
|
+
// no account identifier enters an event.
|
|
97
|
+
return events.run(() => runClientRevocation({ ...options, events }), result => {
|
|
98
|
+
const failedStages = (result.generation?.skipped === 'failed' ? 1 : 0) +
|
|
99
|
+
(result.rosterSeal?.outcome === 'failed' ? 1 : 0);
|
|
100
|
+
const failedCollections = result.collections.failed.length;
|
|
101
|
+
return {
|
|
102
|
+
outcome: failedStages > 0 || failedCollections > 0 ? 'partial' : 'clean',
|
|
103
|
+
detail: { failedStages, failedCollections }
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The body of {@link revokeAccountClient}, one run under its event emitter.
|
|
109
|
+
*/
|
|
110
|
+
async function runClientRevocation({ idStore, signer, projectionStore, revokedClient, knownLatentHashes, expectedDid, rosterStore, userKey, clientKeyAgreementKey, pinnedEpochId, onUserKeyAdopted, collections, remintGenerationDelegation, onRotationAdopted, events }) {
|
|
65
111
|
assertUpdateKeyAttributed(revokedClient);
|
|
66
112
|
// 1. The document edit -- the pull axis everywhere, first. It resolves the
|
|
67
113
|
// document as it now stands, which is what stage 2 resolves its remaining
|
|
@@ -74,6 +120,7 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
|
|
|
74
120
|
...(knownLatentHashes ? { knownLatentHashes } : {}),
|
|
75
121
|
...(expectedDid !== undefined ? { expectedDid } : {})
|
|
76
122
|
});
|
|
123
|
+
events.stage('document-edit');
|
|
77
124
|
// 2-3. The shared roster-and-cascade tail: the roster rotation onto the
|
|
78
125
|
// post-edit document (with its post-edit minimum controller version and its seal
|
|
79
126
|
// backstop), then the collection fan-out onto the fresh key.
|
|
@@ -88,12 +135,22 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
|
|
|
88
135
|
...(onUserKeyAdopted ? { onUserKeyAdopted } : {}),
|
|
89
136
|
collections
|
|
90
137
|
});
|
|
138
|
+
if (tail.rosterDescriptor && tail.userKey) {
|
|
139
|
+
events.stage('roster-rotation', {
|
|
140
|
+
...(tail.rotated ? {} : { prior: true })
|
|
141
|
+
});
|
|
142
|
+
if (tail.collections.failed.length === 0) {
|
|
143
|
+
const wrote = Object.values(tail.collections.outcomes).some(outcome => outcome !== 'noop');
|
|
144
|
+
events.stage('collection-epochs', { ...(wrote ? {} : { prior: true }) });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
91
147
|
if (!tail.rosterDescriptor || !tail.userKey) {
|
|
92
148
|
// No roster to rotate: the document edit has landed, so the client IS
|
|
93
149
|
// disconnected -- a completed cascade with nothing rotated. The
|
|
94
150
|
// generation-delegation re-mint still runs: the edit alone is what rots
|
|
95
151
|
// the delegation, roster or no roster.
|
|
96
152
|
const generation = await remintGenerationDelegation?.({ document: doc });
|
|
153
|
+
remintStage({ events, generation });
|
|
97
154
|
return {
|
|
98
155
|
rotated: false,
|
|
99
156
|
collections: tail.collections,
|
|
@@ -103,6 +160,7 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
|
|
|
103
160
|
}
|
|
104
161
|
// 4. The generation-delegation re-mint, against the post-edit document.
|
|
105
162
|
const generation = await remintGenerationDelegation?.({ document: doc });
|
|
163
|
+
remintStage({ events, generation });
|
|
106
164
|
if (tail.rotated) {
|
|
107
165
|
await onRotationAdopted?.({ userKey: tail.userKey });
|
|
108
166
|
}
|
|
@@ -116,4 +174,21 @@ export async function revokeAccountClient({ idStore, signer, projectionStore, re
|
|
|
116
174
|
...(generation ? { generation } : {})
|
|
117
175
|
};
|
|
118
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Emits the re-mint stage when the closure ran and was not skipped, with
|
|
179
|
+
* `prior: true` when the standing delegation needed no replacement.
|
|
180
|
+
*
|
|
181
|
+
* @param options {object}
|
|
182
|
+
* @param options.events {CeremonyEmitter} the running ceremony's emitter
|
|
183
|
+
* @param [options.generation] {GenerationDelegationRemint} the stage's
|
|
184
|
+
* report, absent when no closure was supplied
|
|
185
|
+
*/
|
|
186
|
+
function remintStage({ events, generation }) {
|
|
187
|
+
if (generation === undefined || generation.skipped !== undefined) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
events.stage('generation-remint', {
|
|
191
|
+
...(generation.renewed ? {} : { prior: true })
|
|
192
|
+
});
|
|
193
|
+
}
|
|
119
194
|
//# sourceMappingURL=revocation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"AA4EA,OAAO,EACL,iBAAiB,EAKlB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,gCAAgC,EAKjC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/clients/revocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,27 @@ export type EnrollmentRequest = WebvhEnrollmentKeys;
|
|
|
49
49
|
export declare class EnrollmentPendingError extends Error {
|
|
50
50
|
constructor(message?: string);
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* The approving side's stages on the ceremony event channel: the user key
|
|
54
|
+
* escrowed to the enrollee in the roster, and the account-log entries that
|
|
55
|
+
* publish it (commit, then add). A client signer escrows first; a ladder
|
|
56
|
+
* signer writes the entries first.
|
|
57
|
+
*/
|
|
58
|
+
export declare const ENROLLMENT_APPROVAL_STAGES: readonly ["roster-escrow", "enrollment-entries"];
|
|
59
|
+
/**
|
|
60
|
+
* One value of {@link ENROLLMENT_APPROVAL_STAGES}.
|
|
61
|
+
*/
|
|
62
|
+
export type EnrollmentApprovalStage = (typeof ENROLLMENT_APPROVAL_STAGES)[number];
|
|
63
|
+
/**
|
|
64
|
+
* The enrollee's stages on the ceremony event channel: the enrollment
|
|
65
|
+
* verified off the world-readable log, and the first roster read that
|
|
66
|
+
* unwraps the user key.
|
|
67
|
+
*/
|
|
68
|
+
export declare const ENROLLMENT_COMPLETION_STAGES: readonly ["enrollment-verified", "roster-read"];
|
|
69
|
+
/**
|
|
70
|
+
* One value of {@link ENROLLMENT_COMPLETION_STAGES}.
|
|
71
|
+
*/
|
|
72
|
+
export type EnrollmentCompletionStage = (typeof ENROLLMENT_COMPLETION_STAGES)[number];
|
|
52
73
|
/**
|
|
53
74
|
* Encodes an enrollment request as a connect code.
|
|
54
75
|
*
|
|
@@ -191,7 +212,7 @@ export declare function mintEnrollmentRequest(): Promise<{
|
|
|
191
212
|
* multibase (the key a label or a listing row is filed under), so the caller
|
|
192
213
|
* needs no second parse of the connect code
|
|
193
214
|
*/
|
|
194
|
-
export declare function approveEnrollment(
|
|
215
|
+
export declare function approveEnrollment(options: {
|
|
195
216
|
request: EnrollmentRequest;
|
|
196
217
|
signer: AccountLogSigner;
|
|
197
218
|
clientKeyAgreementKey: IKeyAgreementKey;
|
|
@@ -233,7 +254,7 @@ export declare function approveEnrollment({ request, signer, clientKeyAgreementK
|
|
|
233
254
|
* discovers on its own
|
|
234
255
|
* @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
|
|
235
256
|
*/
|
|
236
|
-
export declare function completeEnrollmentCore(
|
|
257
|
+
export declare function completeEnrollmentCore(options: {
|
|
237
258
|
clientSeed: Uint8Array;
|
|
238
259
|
webvhUpdateKeys: ClientWebvhUpdateKeys;
|
|
239
260
|
pointer: AccountPointer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAa7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAe7B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ import { anchorRosterStoreAt } from '../keys/userKeyRosterCascade.js';
|
|
|
13
13
|
import { memoryResourceLogPinStore } from '@interop/vh-resource-log';
|
|
14
14
|
import { webvhResourceLogController } from '../resourceLog/index.js';
|
|
15
15
|
import { CONNECT_CODE_PREFIX } from './connectCode.js';
|
|
16
|
+
import { ceremonyEvents } from '../ceremonyEvents.js';
|
|
17
|
+
import { log } from '../log.js';
|
|
16
18
|
/**
|
|
17
19
|
* The connect-code payload version this build mints and accepts.
|
|
18
20
|
*/
|
|
@@ -29,6 +31,25 @@ export class EnrollmentPendingError extends Error {
|
|
|
29
31
|
this.name = 'EnrollmentPendingError';
|
|
30
32
|
}
|
|
31
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* The approving side's stages on the ceremony event channel: the user key
|
|
36
|
+
* escrowed to the enrollee in the roster, and the account-log entries that
|
|
37
|
+
* publish it (commit, then add). A client signer escrows first; a ladder
|
|
38
|
+
* signer writes the entries first.
|
|
39
|
+
*/
|
|
40
|
+
export const ENROLLMENT_APPROVAL_STAGES = [
|
|
41
|
+
'roster-escrow',
|
|
42
|
+
'enrollment-entries'
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* The enrollee's stages on the ceremony event channel: the enrollment
|
|
46
|
+
* verified off the world-readable log, and the first roster read that
|
|
47
|
+
* unwraps the user key.
|
|
48
|
+
*/
|
|
49
|
+
export const ENROLLMENT_COMPLETION_STAGES = [
|
|
50
|
+
'enrollment-verified',
|
|
51
|
+
'roster-read'
|
|
52
|
+
];
|
|
32
53
|
/**
|
|
33
54
|
* The multicodec multibase prefixes of the two key types a connect code
|
|
34
55
|
* carries: Ed25519 (`z6Mk`) and X25519 (`z6LS`) public keys.
|
|
@@ -283,7 +304,27 @@ export async function mintEnrollmentRequest() {
|
|
|
283
304
|
* multibase (the key a label or a listing row is filed under), so the caller
|
|
284
305
|
* needs no second parse of the connect code
|
|
285
306
|
*/
|
|
286
|
-
export async function approveEnrollment(
|
|
307
|
+
export async function approveEnrollment(options) {
|
|
308
|
+
// One run per approval. The connect code and the enrollee's keys never
|
|
309
|
+
// enter an event; the stages alone say how far the approval got.
|
|
310
|
+
const events = ceremonyEvents({
|
|
311
|
+
ceremony: 'client-enrollment',
|
|
312
|
+
log,
|
|
313
|
+
refusals: ['LadderAttributionError', 'AccountLogMissingError']
|
|
314
|
+
});
|
|
315
|
+
return events.run(() => approveEnrollmentBody({
|
|
316
|
+
...options,
|
|
317
|
+
onStage: stage => events.stage(stage)
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* The body of {@link approveEnrollment}, reporting each landed stage through
|
|
322
|
+
* `onStage`.
|
|
323
|
+
*
|
|
324
|
+
* @param options {object} see {@link approveEnrollment}, plus `onStage`
|
|
325
|
+
* @returns {Promise<object>}
|
|
326
|
+
*/
|
|
327
|
+
async function approveEnrollmentBody({ request, signer, clientKeyAgreementKey, userKeyRosterStore, idStore, onStage }) {
|
|
287
328
|
// Re-checked here rather than trusted from the parse: this is the one seam
|
|
288
329
|
// every approval path runs through, and it is what publishes the key under
|
|
289
330
|
// the controller marker.
|
|
@@ -298,15 +339,22 @@ export async function approveEnrollment({ request, signer, clientKeyAgreementKey
|
|
|
298
339
|
});
|
|
299
340
|
if (signer.kind === 'enrolled') {
|
|
300
341
|
await escrow();
|
|
342
|
+
onStage('roster-escrow');
|
|
301
343
|
}
|
|
302
|
-
const { did, log } = await enrollWebvhClient({
|
|
344
|
+
const { did, log: accountLog } = await enrollWebvhClient({
|
|
303
345
|
idStore,
|
|
304
346
|
signer,
|
|
305
347
|
newClient: request
|
|
306
348
|
});
|
|
349
|
+
onStage('enrollment-entries');
|
|
307
350
|
if (signer.kind === 'ladder') {
|
|
308
|
-
anchorRosterStoreAt({
|
|
351
|
+
anchorRosterStoreAt({
|
|
352
|
+
rosterStore: userKeyRosterStore,
|
|
353
|
+
did,
|
|
354
|
+
log: accountLog
|
|
355
|
+
});
|
|
309
356
|
await escrow();
|
|
357
|
+
onStage('roster-escrow');
|
|
310
358
|
}
|
|
311
359
|
return {
|
|
312
360
|
did,
|
|
@@ -345,7 +393,28 @@ export async function approveEnrollment({ request, signer, clientKeyAgreementKey
|
|
|
345
393
|
* discovers on its own
|
|
346
394
|
* @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
|
|
347
395
|
*/
|
|
348
|
-
export async function completeEnrollmentCore(
|
|
396
|
+
export async function completeEnrollmentCore(options) {
|
|
397
|
+
// The enrollee's half, its own run of the ceremony. "Not approved yet" is
|
|
398
|
+
// the expected state a caller polls through, so it logs at debug.
|
|
399
|
+
const events = ceremonyEvents({
|
|
400
|
+
ceremony: 'client-enrollment',
|
|
401
|
+
log,
|
|
402
|
+
pending: ['EnrollmentPendingError']
|
|
403
|
+
});
|
|
404
|
+
return events.run(() => completeEnrollmentBody({
|
|
405
|
+
...options,
|
|
406
|
+
onStage: stage => events.stage(stage)
|
|
407
|
+
}));
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* The body of {@link completeEnrollmentCore}, reporting each stage through
|
|
411
|
+
* `onStage`.
|
|
412
|
+
*
|
|
413
|
+
* @param options {object} see {@link completeEnrollmentCore}, plus
|
|
414
|
+
* `onStage`
|
|
415
|
+
* @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
|
|
416
|
+
*/
|
|
417
|
+
async function completeEnrollmentBody({ clientSeed, webvhUpdateKeys, pointer, accountLogPinStore, serviceDescription, onStage }) {
|
|
349
418
|
const did = pointer.did;
|
|
350
419
|
if (!did || !isWebvhDid(did)) {
|
|
351
420
|
throw new Error('The account pointer names no did:webvh; only a promoted account can ' +
|
|
@@ -381,6 +450,7 @@ export async function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, poin
|
|
|
381
450
|
if (!enrolled) {
|
|
382
451
|
throw new EnrollmentPendingError();
|
|
383
452
|
}
|
|
453
|
+
onStage('enrollment-verified');
|
|
384
454
|
// The first roster read: signed with the `<did:webvh>#<multibase>` keyId
|
|
385
455
|
// the add entry just published, unwrapping the user key the enrolling client
|
|
386
456
|
// escrowed to this client's key-agreement key. The account log just
|
|
@@ -408,6 +478,7 @@ export async function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, poin
|
|
|
408
478
|
throw new Error('The account has no user key roster; it must finish provisioning before ' +
|
|
409
479
|
'a client can be enrolled.');
|
|
410
480
|
}
|
|
481
|
+
onStage('roster-read');
|
|
411
482
|
return { userKey: read.userKey, latestEpochId: read.latestEpochId };
|
|
412
483
|
}
|
|
413
484
|
//# sourceMappingURL=enrollment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"AAgCA,OAAO,EACL,cAAc,EACd,aAAa,EACd,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAO5D,OAAO,EACL,yBAAyB,EACzB,UAAU,EACV,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EACL,yBAAyB,EAE1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"enrollment.js","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
* log, read the roster, hand back the user key and the epoch to pin. Persisting
|
|
30
30
|
* the key set stays with the caller's own unlock layer.
|
|
31
31
|
*/
|
|
32
|
-
export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
|
|
33
|
-
export type { EnrollmentRequest } from './enrollment.js';
|
|
32
|
+
export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, ENROLLMENT_APPROVAL_STAGES, ENROLLMENT_COMPLETION_STAGES, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
|
|
33
|
+
export type { EnrollmentApprovalStage, EnrollmentCompletionStage, EnrollmentRequest } from './enrollment.js';
|
|
34
34
|
export { CONNECT_CODE_PREFIX, isConnectCode } from './connectCode.js';
|
|
35
35
|
export { encodeOnboardingResponse, ONBOARDING_LABEL_MAX_LENGTH, ONBOARDING_RESPONSE_VERSION, parseOnboardingResponse } from './onboardingResponse.js';
|
|
36
36
|
export type { WalletOnboardingResponse } from './onboardingResponse.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AACxB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/enrollment/index.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* log, read the roster, hand back the user key and the epoch to pin. Persisting
|
|
30
30
|
* the key set stays with the caller's own unlock layer.
|
|
31
31
|
*/
|
|
32
|
-
export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
|
|
32
|
+
export { approveEnrollment, assertCanonicalEnrollmentKeys, completeEnrollmentCore, encodeEnrollmentRequest, ENROLLMENT_APPROVAL_STAGES, ENROLLMENT_COMPLETION_STAGES, EnrollmentPendingError, enrollmentClientDid, enrollmentRecipientKid, mintEnrollmentRequest, parseEnrollmentRequest } from './enrollment.js';
|
|
33
33
|
export { CONNECT_CODE_PREFIX, isConnectCode } from './connectCode.js';
|
|
34
34
|
export { encodeOnboardingResponse, ONBOARDING_LABEL_MAX_LENGTH, ONBOARDING_RESPONSE_VERSION, parseOnboardingResponse } from './onboardingResponse.js';
|
|
35
35
|
export { ONBOARDING_INVITE_TTL_MS } from './onboardingInvite.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enrollment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
|