@interop/wallet-core 0.88.0 → 0.90.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.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"AAgEA;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EAGL;IACC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAI5B,EACA,YAAY,EACZ,KAAK,EAIN;IACC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqD,CAAA;IAC1E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,CAAC,mCAAmC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACnE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,eAAe,GAAG,CACtB,EAAe,EACuB,EAAE;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CACjB,mDAAmD,EAAE,EAAE,CACxD,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACrC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QACnC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAC3D,MAAM,IAAI,SAAS,CACjB,KAAK,OAAO,sDAAsD,CACnE,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,EACd,IAAI,EACJ,IAAI,EACJ,KAAK,EAKN,EAAW,EAAE,CACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;QAChC,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACxD,CAAA;IACH,CAAC,CAAC,CAAA;IACJ,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY;QACvB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;QAClB,MAAM;QACN,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAClC,KAAK,CAAC,MAAM,CACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAClE;KACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,8 @@ export declare function mendReportAccumulator<Ceremony extends string = string>(
66
66
  * whose every reported invariant declares an authority the session holds
67
67
  * and admits this login route, in list order.
68
68
  *
69
- * The discipline, in one place. An optional `seed` registration runs first,
69
+ * Each step runs through {@link runMenderRegistration}, which holds the
70
+ * discipline in one place. An optional `seed` registration runs first,
70
71
  * and its failure aborts the block: nothing behind it runs, which is what a
71
72
  * rejected chain seed does today. Past the seed, a registration that throws
72
73
  * warns once per reported invariant with that declaration's own `warn`
@@ -86,7 +87,8 @@ export declare function mendReportAccumulator<Ceremony extends string = string>(
86
87
  * the block reports each entry into that accumulator, and the accumulator's
87
88
  * own logger emits the event; the block does not emit it again. Without
88
89
  * `mends`, the block emits the event through `logger` itself. A `noop`
89
- * entry emits at debug. `onOutcome` runs after the report, once per entry.
90
+ * entry emits at debug. `onOutcome` runs after a registration's entries are
91
+ * reported, once per entry.
90
92
  *
91
93
  * `trigger` is one of the two chain values, so a `ceremony-tail` entry is
92
94
  * out of reach here. Such an entry has no registration at all: its body
@@ -147,4 +149,45 @@ export declare function runMenderBlock<Deps, Ceremony extends string = string, S
147
149
  mends?: MendReportAccumulator<Ceremony>;
148
150
  onOutcome?: (entry: MendReportEntry<Ceremony>) => void;
149
151
  }): Promise<MendReport<Ceremony>>;
152
+ /**
153
+ * Runs one registration under the runner's discipline and reports its
154
+ * entries. `runMenderBlock` calls it for each step, and a wallet calls it
155
+ * for a registration its own call site fires, such as an encounter site. It
156
+ * admits nothing: the caller has already checked the authority and any
157
+ * route.
158
+ *
159
+ * A registration that throws warns once per reported invariant with that
160
+ * declaration's own `warn` string, carrying the error, and yields one
161
+ * `failed` entry per reported id with the error's name alone
162
+ * (`errorNameOf`). A registration that resolves with entries that do not
163
+ * name its reported invariants, in order, warns once and yields `failed`
164
+ * entries carrying {@link MEND_REPORT_SHAPE_ERROR}. The run never rejects.
165
+ *
166
+ * Each entry emits exactly one `'ceremony mender'` event. Given `mends`,
167
+ * each entry is reported into that accumulator, whose own logger emits the
168
+ * event. Without `mends`, the event goes through `logger`. The event carries
169
+ * no `err`; the declared warn keeps the error.
170
+ *
171
+ * @param options {object}
172
+ * @param options.registry {MenderRegistry} the wallet's declarations,
173
+ * read for each reported invariant's `warn` and ceremonies
174
+ * @param options.registration {Registration} the registration to run
175
+ * @param options.deps {Deps} passed to `converge` unread
176
+ * @param options.logger {Logger} the wallet's own sink for the warn copy,
177
+ * and for the mender events when no `mends` is given
178
+ * @param [options.mends] {MendReportAccumulator} the accumulator each
179
+ * entry is reported into
180
+ * @returns {Promise<{ entries: MendReport, threw: boolean }>} the entries,
181
+ * one per reported id in order, and whether `converge` threw
182
+ */
183
+ export declare function runMenderRegistration<Deps, Ceremony extends string = string, Site extends RegistrationSite = Registration<Deps, Ceremony>>({ registry, registration, deps, logger, mends }: {
184
+ registry: MenderRegistry<Site, Deps, Ceremony>;
185
+ registration: Registration<Deps, Ceremony>;
186
+ deps: Deps;
187
+ logger: Logger;
188
+ mends?: MendReportAccumulator<Ceremony>;
189
+ }): Promise<{
190
+ entries: MendReport<Ceremony>;
191
+ threw: boolean;
192
+ }>;
150
193
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yBAAyB,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IACrE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3E;;OAEG;IACH,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC/B;;;;OAIG;IACH,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC9B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;CAChD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAAE,EACtE,MAAM,EACP,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAyB5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EACJ,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,IAAI,SAAS,gBAAgB,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC5D,EACA,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,aAAa,EACb,IAAI,EACJ,KAAK,EACL,SAAS,EACV,EAAE;IACD,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC9C,OAAO,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC9B,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC3D,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;CACvD,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CA8ChC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,13 @@
3
3
  */
4
4
  /**
5
5
  * The mender runner: one try, warn, and skip discipline over the
6
- * registrations listed under one chain trigger. `runMenderBlock` runs them
7
- * in list order, since registration order is execution order and there is
8
- * no dependency graph. A seed step's failure aborts the block; a
9
- * registration's failure warns through the wallet's own `Logger` and the
10
- * block continues. Beside it sits `mendReportAccumulator`, the report
6
+ * registrations listed under one chain trigger. `runMenderRegistration` is
7
+ * that discipline for one registration, exported so a wallet's encounter
8
+ * sites run under the same copy. `runMenderBlock` runs a chain's
9
+ * registrations through it in list order, since registration order is
10
+ * execution order and there is no dependency graph. A seed step's failure
11
+ * aborts the block; a registration's failure warns through the wallet's own
12
+ * `Logger` and the block continues. Beside them sits `mendReportAccumulator`, the report
11
13
  * collector a wallet creates before a `Session` exists, so the entries a
12
14
  * routing site reports and the entries this runner reports assemble into
13
15
  * one `MendReport`. An accumulator given a logger emits each entry's
@@ -65,7 +67,8 @@ export function mendReportAccumulator({ logger } = {}) {
65
67
  * whose every reported invariant declares an authority the session holds
66
68
  * and admits this login route, in list order.
67
69
  *
68
- * The discipline, in one place. An optional `seed` registration runs first,
70
+ * Each step runs through {@link runMenderRegistration}, which holds the
71
+ * discipline in one place. An optional `seed` registration runs first,
69
72
  * and its failure aborts the block: nothing behind it runs, which is what a
70
73
  * rejected chain seed does today. Past the seed, a registration that throws
71
74
  * warns once per reported invariant with that declaration's own `warn`
@@ -85,7 +88,8 @@ export function mendReportAccumulator({ logger } = {}) {
85
88
  * the block reports each entry into that accumulator, and the accumulator's
86
89
  * own logger emits the event; the block does not emit it again. Without
87
90
  * `mends`, the block emits the event through `logger` itself. A `noop`
88
- * entry emits at debug. `onOutcome` runs after the report, once per entry.
91
+ * entry emits at debug. `onOutcome` runs after a registration's entries are
92
+ * reported, once per entry.
89
93
  *
90
94
  * `trigger` is one of the two chain values, so a `ceremony-tail` entry is
91
95
  * out of reach here. Such an entry has no registration at all: its body
@@ -136,22 +140,6 @@ export function mendReportAccumulator({ logger } = {}) {
136
140
  */
137
141
  export async function runMenderBlock({ registry, trigger, held, route, deps, logger, registrations, seed, mends, onOutcome }) {
138
142
  const report = [];
139
- const collect = (entries) => {
140
- for (const entry of entries) {
141
- report.push(entry);
142
- // The diagnostics twin of the report entry, emitted once: by the
143
- // accumulator when one is given, by the block otherwise. The entry
144
- // carries `errorName` alone, so the event carries no `err`; the
145
- // registration's declared warn keeps the error.
146
- if (mends) {
147
- mends.report(entry);
148
- }
149
- else {
150
- menderEvent({ log: logger, entry });
151
- }
152
- onOutcome?.(entry);
153
- }
154
- };
155
143
  for (const supplied of [...(seed ? [seed] : []), ...(registrations ?? [])]) {
156
144
  if (supplied.trigger !== trigger) {
157
145
  throw new TypeError(`A ${supplied.trigger} registration was handed to the ${trigger} block`);
@@ -163,14 +151,19 @@ export async function runMenderBlock({ registry, trigger, held, route, deps, log
163
151
  // ends the block.
164
152
  const steps = seed && admitted(seed) ? [seed, ...listed] : listed;
165
153
  for (const registration of steps) {
166
- const outcome = await runRegistration({
154
+ // Reports each entry into `mends`, or emits its mender event, before
155
+ // `onOutcome` sees it.
156
+ const outcome = await runMenderRegistration({
167
157
  registry,
168
158
  registration,
169
159
  deps,
170
160
  logger,
171
- trigger
161
+ mends
172
162
  });
173
- collect(outcome.entries);
163
+ for (const entry of outcome.entries) {
164
+ report.push(entry);
165
+ onOutcome?.(entry);
166
+ }
174
167
  if (outcome.threw && registration === seed) {
175
168
  return report;
176
169
  }
@@ -178,10 +171,61 @@ export async function runMenderBlock({ registry, trigger, held, route, deps, log
178
171
  return report;
179
172
  }
180
173
  /**
181
- * Runs one registration under the block's discipline, returning its entries
182
- * and whether it threw.
174
+ * Runs one registration under the runner's discipline and reports its
175
+ * entries. `runMenderBlock` calls it for each step, and a wallet calls it
176
+ * for a registration its own call site fires, such as an encounter site. It
177
+ * admits nothing: the caller has already checked the authority and any
178
+ * route.
179
+ *
180
+ * A registration that throws warns once per reported invariant with that
181
+ * declaration's own `warn` string, carrying the error, and yields one
182
+ * `failed` entry per reported id with the error's name alone
183
+ * (`errorNameOf`). A registration that resolves with entries that do not
184
+ * name its reported invariants, in order, warns once and yields `failed`
185
+ * entries carrying {@link MEND_REPORT_SHAPE_ERROR}. The run never rejects.
186
+ *
187
+ * Each entry emits exactly one `'ceremony mender'` event. Given `mends`,
188
+ * each entry is reported into that accumulator, whose own logger emits the
189
+ * event. Without `mends`, the event goes through `logger`. The event carries
190
+ * no `err`; the declared warn keeps the error.
191
+ *
192
+ * @param options {object}
193
+ * @param options.registry {MenderRegistry} the wallet's declarations,
194
+ * read for each reported invariant's `warn` and ceremonies
195
+ * @param options.registration {Registration} the registration to run
196
+ * @param options.deps {Deps} passed to `converge` unread
197
+ * @param options.logger {Logger} the wallet's own sink for the warn copy,
198
+ * and for the mender events when no `mends` is given
199
+ * @param [options.mends] {MendReportAccumulator} the accumulator each
200
+ * entry is reported into
201
+ * @returns {Promise<{ entries: MendReport, threw: boolean }>} the entries,
202
+ * one per reported id in order, and whether `converge` threw
203
+ */
204
+ export async function runMenderRegistration({ registry, registration, deps, logger, mends }) {
205
+ const outcome = await convergeUnderDiscipline({
206
+ registry,
207
+ registration,
208
+ deps,
209
+ logger
210
+ });
211
+ for (const entry of outcome.entries) {
212
+ // The diagnostics twin of the report entry, emitted once: by the
213
+ // accumulator when one is given, through `logger` otherwise.
214
+ if (mends) {
215
+ mends.report(entry);
216
+ }
217
+ else {
218
+ menderEvent({ log: logger, entry });
219
+ }
220
+ }
221
+ return outcome;
222
+ }
223
+ /**
224
+ * Calls one registration's `converge`, normalizing a throw or a malformed
225
+ * return to `failed` entries.
183
226
  */
184
- async function runRegistration({ registry, registration, deps, logger, trigger }) {
227
+ async function convergeUnderDiscipline({ registry, registration, deps, logger }) {
228
+ const { trigger } = registration;
185
229
  try {
186
230
  const entries = await registration.converge(deps);
187
231
  if (!matchesReports({ registration, entries })) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,8 @@ export interface InvariantDeclaration<Deps, Ceremony extends string = string> {
67
67
  warn: string;
68
68
  /**
69
69
  * The popup axis: whether the entry runs on this login route. Absent
70
- * means every route.
70
+ * means every route. It filters chain registrations alone; an encounter
71
+ * site is not given a route, so it never evaluates this.
71
72
  */
72
73
  when?(route: LoginRoute): boolean;
73
74
  /**
@@ -83,20 +84,33 @@ export interface InvariantDeclaration<Deps, Ceremony extends string = string> {
83
84
  * client-key-record probe says so, since only a browser holding such a
84
85
  * record reaches it; the guard is a routing-site member alone, so a chain
85
86
  * or ceremony-tail site cannot carry one and the chain readers never have
86
- * to honor it.
87
+ * to honor it. An encounter site says which session kinds reach the read or
88
+ * write it rides, in `reachedBy`, since an encounter on a page a transient
89
+ * session never renders mends nothing on a credential-anchored account. One
90
+ * site carries one reach: a call converging two invariants with different
91
+ * reach is declared as two sites.
87
92
  */
88
93
  export type RegistrationSite = {
89
- trigger: Exclude<Trigger, 'login-routing'>;
94
+ trigger: Exclude<Trigger, 'login-routing' | 'encounter'>;
90
95
  reports: ReadonlyArray<InvariantId>;
91
96
  guardedBy?: undefined;
97
+ reachedBy?: undefined;
92
98
  } | {
93
99
  trigger: 'login-routing';
94
100
  reports: ReadonlyArray<InvariantId>;
95
101
  guardedBy?: 'client-key-record';
102
+ reachedBy?: undefined;
103
+ } | {
104
+ trigger: 'encounter';
105
+ reports: ReadonlyArray<InvariantId>;
106
+ guardedBy?: undefined;
107
+ reachedBy: ReadonlyArray<'remembered' | 'transient'>;
96
108
  };
97
109
  /**
98
110
  * A registration: the code that converges the invariants it reports.
99
111
  * `converge` returns exactly one entry per id in `reports`, in that order.
112
+ * An encounter site may be one, run from its own call site through
113
+ * `runMenderRegistration`, or report-only like a routing site.
100
114
  */
101
115
  export type Registration<Deps, Ceremony extends string = string> = RegistrationSite & {
102
116
  converge(deps: Deps): Promise<ReadonlyArray<MendReportEntry<Ceremony>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/menders/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACR,MAAM,iBAAiB,CAAA;AAExB;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB,CAAC,IAAI,EAAE,QAAQ,SAAS,MAAM,GAAG,MAAM;IAC1E;;OAEG;IACH,EAAE,EAAE,WAAW,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAChC;;;OAGG;IACH,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACnC;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;IACjC;;;;OAIG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC,CAAA;CACvE;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAC1C,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GACD;IACE,OAAO,EAAE,eAAe,CAAA;IACxB,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,mBAAmB,CAAA;CAChC,CAAA;AAEL;;;GAGG;AACH,MAAM,MAAM,YAAY,CACtB,IAAI,EACJ,QAAQ,SAAS,MAAM,GAAG,MAAM,IAC9B,gBAAgB,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;CACxE,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC9D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,QAAQ,SAAS,MAAM,GAAG,MAAM,CAChC,SAAQ,WAAW;IACnB,SAAS,EAAE,WAAW,CAAA;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,IAAI,aAAa,CACtE,eAAe,CAAC,QAAQ,CAAC,CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,WAAW,CAAA;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/menders/types.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,9 @@ export type Authority = (typeof AUTHORITIES)[number];
31
31
  * inside a ceremony's own sequenced code and only report through the
32
32
  * registry; `encounter` entries run where an ordinary read or write meets
33
33
  * the state they converge (a sweep-on-read, or a refusal a page handles),
34
- * inside a live session, and are not on a login chain.
34
+ * inside a live session, and are not on a login chain. An encounter site
35
+ * names the session kinds that reach it, and does not evaluate a
36
+ * declaration's `when`.
35
37
  */
36
38
  export declare const TRIGGERS: readonly ["remembered-login-chain", "transient-login-chain", "login-routing", "ceremony-tail", "encounter"];
37
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../../src/menders/vocabulary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,oDAAqD,CAAA;AAE7E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,6GAMX,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,8DAGjB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0CAA2C,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,8KAUX,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,aAAa,4DAMhB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,kCAAmC,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../../src/menders/vocabulary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,oDAAqD,CAAA;AAE7E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,6GAMX,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,8DAGjB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0CAA2C,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,8KAUX,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,aAAa,4DAMhB,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,kCAAmC,CAAA;AAEzD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -27,7 +27,9 @@ export const AUTHORITIES = ['none', 'account', 'enrolled', 'ladder'];
27
27
  * inside a ceremony's own sequenced code and only report through the
28
28
  * registry; `encounter` entries run where an ordinary read or write meets
29
29
  * the state they converge (a sweep-on-read, or a refusal a page handles),
30
- * inside a live session, and are not on a login chain.
30
+ * inside a live session, and are not on a login chain. An encounter site
31
+ * names the session kinds that reach it, and does not evaluate a
32
+ * declaration's `when`.
31
33
  */
32
34
  export const TRIGGERS = [
33
35
  'remembered-login-chain',
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/menders/vocabulary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAA;AAO7E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,wBAAwB;IACxB,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,WAAW;CACH,CAAA;AAOV;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,wBAAwB;IACxB,uBAAuB;CACf,CAAA;AAOV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAU,CAAA;AAOtE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;IACtB,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,aAAa;CACL,CAAA;AAOV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO;IACP,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;CACA,CAAA;AAOV;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,aAAa,CAAU,CAAA"}
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/menders/vocabulary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAA;AAO7E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,wBAAwB;IACxB,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,WAAW;CACH,CAAA;AAOV;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,wBAAwB;IACxB,uBAAuB;CACf,CAAA;AAOV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAU,CAAA;AAOtE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;IACtB,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,aAAa;CACL,CAAA;AAOV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO;IACP,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;CACA,CAAA;AAOV;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,aAAa,CAAU,CAAA"}
@@ -56,7 +56,8 @@ export declare function retiredCredentialVmIdsFromLog({ log, did, successorKeyMu
56
56
  * report: the credential-class `keyAgreement` ids the add-and-retire entry
57
57
  * struck for pre-recovery credentials OTHER than the spent code (what a
58
58
  * caller drops registry entries and deletes unlock Spaces for), the rung
59
- * hashes the entry struck, and the retired credentials whose rungs the log
59
+ * hashes the entry struck (the retired credentials' rungs, plus whatever an
60
+ * abandoned attempt of the same spend left committed), and the retired credentials whose rungs the log
60
61
  * could not attribute -- each of which keeps a committed rung it could still
61
62
  * reveal, and is left for the caller to report rather than struck.
62
63
  */
@@ -81,6 +82,12 @@ export interface RecoverySpendRetirement {
81
82
  * (the entry never landed) reports nothing retired, since there is no entry to
82
83
  * read back.
83
84
  *
85
+ * The abandoned attempts' commitments ({@link abandonedSpendCommitments}) are
86
+ * recomputed over the same prefix. The spent code's rung 0 is not an input
87
+ * here, so it is recovered from the prefix: the standing update key whose
88
+ * hash the spent member names as its ladder commitment. When the member names
89
+ * no anchor or no standing key matches, no abandoned commitment is reported.
90
+ *
84
91
  * @param options {object}
85
92
  * @param options.log {DIDLog} the verified account log
86
93
  * @param options.did {string} the account DID the log resolves to
@@ -142,8 +149,8 @@ export interface ReplacementRecoveryPublicKeys extends RecoveryPublicKeys {
142
149
  }
143
150
  /**
144
151
  * Thrown by the recovery continuation when the log carries neither the code's
145
- * update key nor its committed hash -- the code was revoked (or never
146
- * issued), so no continuation can verify.
152
+ * update key nor its committed hash -- the code was already spent, revoked,
153
+ * or never issued, so no continuation can verify.
147
154
  */
148
155
  export declare class RecoveryKeyNotCommittedError extends Error {
149
156
  constructor(message?: string);
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EACN,eAAe,EACf,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAOlC,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAG3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAkBlE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,iEAI7B,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,UAIxC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,qBAAqB,EACrB,SAAS,EACV,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,EAAE,CAeX;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,8BAA8B,CAAC,EACnD,GAAG,EACH,GAAG,EACH,SAAS,EACT,6BAA6B,EAC7B,6BAA6B,EAC9B,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAA;IACrE,6BAA6B,EAAE,MAAM,CAAA;IACrC,6BAA6B,EAAE,MAAM,CAAA;CACtC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA2DnC;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,wBAAwB,EACzB,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,MAAM,CAET;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,EAAE,MAAM,CAAA;IAChC,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBAEnD,OAAO,SAC8C;CAKxD;AAED;;;;;;;;;GASG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAA;gBAEtB,EAAE,eAAe,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE;CAS/D;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,YAAY,EACZ,kBAAkB,GAAG,eAAe,GAAG,KAAK,CAC7C,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,EACxD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,WAAW,EACX,MAAM,EACP,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAA;IACvB,QAAQ,EAAE,kBAAkB,GAAG;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,CAAA;IACzD,SAAS,EAAE;QACT,kBAAkB,EAAE,MAAM,CAAA;QAC1B,UAAU,EAAE,UAAU,CAAA;QACtB,kBAAkB,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,WAAW,EAAE,6BAA6B,CAAA;IAC1C,WAAW,EAAE,CAAC,SAAS,EAAE;QACvB,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KACjD,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACxB,KAAK,EAAE,CAAC,OAAO,EAAE;QACf,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,SAAS,CAAA;KACrB,KAAK,sBAAsB,CAAA;IAC5B,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAA;CACjD,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAwRvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACzB,EAAE;IACD,SAAS,EAAE,OAAO,CAAA;IAClB,wBAAwB,EAAE,MAAM,EAAE,CAAA;CACnC,GAAG;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,CAK/B"}
@@ -28,7 +28,7 @@ import { credentialKeyAgreementMethods, ladderVmIds, retiredCredentialKeys } fro
28
28
  // The base-side dependency the lint config pins: the ladder ATTRIBUTION
29
29
  // helpers only, never the annex log machinery. The add-and-retire entry
30
30
  // resolves each retired credential's standing rungs from the log with them.
31
- import { assertNextKeyHashesRemain, attributeRetiredCredentialRungs, retiredCredentialRungsBeforeKey } from '../clientAnnex/ladder.js';
31
+ import { abandonedSpendCommitments, assertNextKeyHashesRemain, credentialLadderAnchor, attributeRetiredCredentialRungs, retiredCredentialRungsBeforeKey } from '../clientAnnex/ladder.js';
32
32
  /**
33
33
  * The recovery-code spend's stages on the ceremony event channel, in the
34
34
  * order they land: the reveal-and-commit entry, the caller's
@@ -106,6 +106,12 @@ export function retiredCredentialVmIdsFromLog({ log, did, successorKeyMultibase,
106
106
  * (the entry never landed) reports nothing retired, since there is no entry to
107
107
  * read back.
108
108
  *
109
+ * The abandoned attempts' commitments ({@link abandonedSpendCommitments}) are
110
+ * recomputed over the same prefix. The spent code's rung 0 is not an input
111
+ * here, so it is recovered from the prefix: the standing update key whose
112
+ * hash the spent member names as its ladder commitment. When the member names
113
+ * no anchor or no standing key matches, no abandoned commitment is reported.
114
+ *
109
115
  * @param options {object}
110
116
  * @param options.log {DIDLog} the verified account log
111
117
  * @param options.did {string} the account DID the log resolves to
@@ -119,22 +125,23 @@ export function retiredCredentialVmIdsFromLog({ log, did, successorKeyMultibase,
119
125
  * @returns {Promise<RecoverySpendRetirement>}
120
126
  */
121
127
  export async function recoverySpendRetirementFromLog({ log, did, successor, replacementUpdateKeyMultibase, spentKeyAgreementKeyMultibase }) {
122
- const authorized = effectiveParameters(log).some(entry => (entry.updateKeys ?? []).includes(successor.updateKeyMultibase));
123
- if (!authorized) {
128
+ const entryIndex = effectiveParameters(log).findIndex(entry => (entry.updateKeys ?? []).includes(successor.updateKeyMultibase));
129
+ if (entryIndex === -1) {
124
130
  return {
125
131
  retiredCredentialVmIds: [],
126
132
  struckRungHashes: [],
127
133
  unclaimedCredentialVmIds: []
128
134
  };
129
135
  }
136
+ const spentVmId = recoveryVmId({
137
+ did,
138
+ keyAgreementKeyMultibase: spentKeyAgreementKeyMultibase
139
+ });
130
140
  const retiredCredentialVmIds = retiredCredentialVmIdsFromLog({
131
141
  log,
132
142
  did,
133
143
  successorKeyMultibase: successor.updateKeyMultibase,
134
- spentVmId: recoveryVmId({
135
- did,
136
- keyAgreementKeyMultibase: spentKeyAgreementKeyMultibase
137
- })
144
+ spentVmId
138
145
  });
139
146
  const protectedHashes = await Promise.all([
140
147
  deriveNextKeyHash(successor.updateKeyMultibase),
@@ -148,12 +155,48 @@ export async function recoverySpendRetirementFromLog({ log, did, successor, repl
148
155
  protectedHashes,
149
156
  protectedKeys: [successor.updateKeyMultibase]
150
157
  });
158
+ // The abandoned attempts' commitments, over the same pre-entry prefix the
159
+ // strike above reads. The spent code's rung 0 is the standing update key
160
+ // whose hash the spent member names as its ladder commitment.
161
+ const prefix = log.slice(0, entryIndex);
162
+ const anchor = credentialLadderAnchor({
163
+ log: prefix,
164
+ credentialVmId: spentVmId
165
+ });
166
+ const spentKeyMultibase = anchor &&
167
+ (await firstKeyHashingTo({
168
+ keys: effectiveParameters(prefix).at(-1)?.updateKeys ?? [],
169
+ hash: anchor.anchorHash
170
+ }));
171
+ const abandoned = spentKeyMultibase
172
+ ? await abandonedSpendCommitments({
173
+ log: prefix,
174
+ spentKeyMultibase,
175
+ protectedHashes
176
+ })
177
+ : [];
151
178
  return {
152
179
  retiredCredentialVmIds,
153
- struckRungHashes: strike.struckHashes,
180
+ struckRungHashes: [...new Set([...strike.struckHashes, ...abandoned])],
154
181
  unclaimedCredentialVmIds: strike.unclaimedCredentialVmIds
155
182
  };
156
183
  }
184
+ /**
185
+ * The first of `keys` whose next-key hash is `hash`.
186
+ *
187
+ * @param options {object}
188
+ * @param options.keys {string[]} update-key multibases
189
+ * @param options.hash {string} a next-key hash
190
+ * @returns {Promise<string | undefined>}
191
+ */
192
+ async function firstKeyHashingTo({ keys, hash }) {
193
+ for (const key of keys) {
194
+ if ((await deriveNextKeyHash(key)) === hash) {
195
+ return key;
196
+ }
197
+ }
198
+ return undefined;
199
+ }
157
200
  /**
158
201
  * The verification-method id a code's key-agreement key publishes under --
159
202
  * the ordinary `<did>#<multibase>` form, indistinguishable by id from any
@@ -171,12 +214,12 @@ export function recoveryVmId({ did, keyAgreementKeyMultibase }) {
171
214
  }
172
215
  /**
173
216
  * Thrown by the recovery continuation when the log carries neither the code's
174
- * update key nor its committed hash -- the code was revoked (or never
175
- * issued), so no continuation can verify.
217
+ * update key nor its committed hash -- the code was already spent, revoked,
218
+ * or never issued, so no continuation can verify.
176
219
  */
177
220
  export class RecoveryKeyNotCommittedError extends Error {
178
221
  constructor(message = 'The account log no longer commits this recovery code; the ' +
179
- 'code has been revoked or was never issued.') {
222
+ 'code was already spent, revoked, or never issued.') {
180
223
  super(message);
181
224
  this.name = 'RecoveryKeyNotCommittedError';
182
225
  }
@@ -440,6 +483,22 @@ export async function recoveryContinuationOnce({ store, recovery, successor, rep
440
483
  protectedHashes,
441
484
  protectedKeys
442
485
  });
486
+ // What an earlier attempt of this spend committed and this one does not
487
+ // carry forward: a torn run re-run with another successor (a fresh
488
+ // ladder seed, a second passphrase) or another replacement leaves the
489
+ // first attempt's hashes behind its reveal entry, and one whose key
490
+ // derives from a record that attempt persisted is a latent update key
491
+ // no retirement is ever anchored on. Struck in the same entry.
492
+ const abandoned = await abandonedSpendCommitments({
493
+ log: read.log,
494
+ spentKeyMultibase: recovery.updateKeyMultibase,
495
+ protectedHashes
496
+ });
497
+ strike = {
498
+ ...strike,
499
+ struckHashes: [...new Set([...strike.struckHashes, ...abandoned])]
500
+ };
501
+ const struckHashes = [recoveryHash, ...strike.struckHashes];
443
502
  const struck = (id) => id === spentVmId ||
444
503
  ladderVms.includes(id) ||
445
504
  struckCredentialVmIds.includes(id);
@@ -449,7 +508,7 @@ export async function recoveryContinuationOnce({ store, recovery, successor, rep
449
508
  updateKeys: read.updateKeys.filter(key => key !== recovery.updateKeyMultibase &&
450
509
  !strike.struckKeys.includes(key)),
451
510
  nextKeyHashes: assertNextKeyHashesRemain({
452
- nextKeyHashes: read.nextKeyHashes.filter(hash => hash !== recoveryHash && !strike.struckHashes.includes(hash)),
511
+ nextKeyHashes: read.nextKeyHashes.filter(hash => !struckHashes.includes(hash)),
453
512
  ceremony: 'the recovery add-and-retire entry'
454
513
  }),
455
514
  // The retirement runs over the EXISTING document only, and the added
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/recovery/continuation.ts"],"names":[],"mappings":"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"}