@interop/wallet-core 0.87.0 → 0.89.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/menders/derive.d.ts +16 -7
- package/dist/menders/derive.d.ts.map +1 -1
- package/dist/menders/derive.js +21 -10
- package/dist/menders/derive.js.map +1 -1
- package/dist/menders/index.d.ts +10 -6
- package/dist/menders/index.d.ts.map +1 -1
- package/dist/menders/index.js +10 -6
- package/dist/menders/index.js.map +1 -1
- package/dist/menders/registry.d.ts +13 -6
- package/dist/menders/registry.d.ts.map +1 -1
- package/dist/menders/registry.js +18 -3
- package/dist/menders/registry.js.map +1 -1
- package/dist/menders/runner.d.ts +84 -15
- package/dist/menders/runner.d.ts.map +1 -1
- package/dist/menders/runner.js +102 -33
- package/dist/menders/runner.js.map +1 -1
- package/dist/menders/types.d.ts +17 -3
- package/dist/menders/types.d.ts.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/package.json +1 -1
package/dist/menders/derive.d.ts
CHANGED
|
@@ -20,12 +20,19 @@ type DerivedGap = Pick<InvariantGap, 'invariant' | 'kind'>;
|
|
|
20
20
|
* The invariants a transient visit on a standing credential reaches. The
|
|
21
21
|
* two chain triggers are read through `dueAt` over the ladder held set; a
|
|
22
22
|
* `login-routing` site counts unless the client-key-record probe guards it;
|
|
23
|
-
* an `encounter` site counts
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
23
|
+
* an `encounter` site counts when its `reachedBy` names `transient` and the
|
|
24
|
+
* ladder held set admits every invariant it reports, the test a chain
|
|
25
|
+
* registration meets; a `ceremony-tail` entry counts, every such ceremony
|
|
26
|
+
* running on any session type; and a detector no site reports (a
|
|
27
|
+
* declaration carrying `holdsWhen`) counts when it is checked at routing or,
|
|
28
|
+
* on the transient chain, under an authority the ladder held set carries.
|
|
29
|
+
* An unreported declaration with no detector is reached by nothing. No
|
|
30
|
+
* unreported declaration lists `encounter`, since `menderRegistry` refuses
|
|
31
|
+
* one at construction.
|
|
32
|
+
*
|
|
33
|
+
* The rule trusts each declaration's `authority`. A declaration claiming a
|
|
34
|
+
* wider authority than what converges it on a transient visit would count
|
|
35
|
+
* an encounter site as reachable and hide a real `unreachable` gap.
|
|
29
36
|
*
|
|
30
37
|
* @param options {object}
|
|
31
38
|
* @param options.registry {MenderRegistry}
|
|
@@ -43,7 +50,9 @@ export declare function transientReachableInvariants({ registry }: {
|
|
|
43
50
|
* a gap. A declaration naming a chain or routing trigger no site backs
|
|
44
51
|
* derives `none` whatever else it names. An invariant reported only at sites
|
|
45
52
|
* a transient visit cannot reach, on an account shape the violation can
|
|
46
|
-
* stand on, derives `unreachable`.
|
|
53
|
+
* stand on, derives `unreachable`. That includes an invariant reported
|
|
54
|
+
* only at encounter sites a transient visit does not reach: the ceremony-tail
|
|
55
|
+
* exemption does not extend to `encounter`. Nothing else derives a gap.
|
|
47
56
|
*
|
|
48
57
|
* @param options {object}
|
|
49
58
|
* @param options.registry {MenderRegistry}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/menders/derive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEhE;;GAEG;AACH,KAAK,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,CAAC,CAAA;AAW1D
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/menders/derive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEhE;;GAEG;AACH,KAAK,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,MAAM,CAAC,CAAA;AAW1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;CAClD,GAAG,aAAa,CAAC,WAAW,CAAC,CA4C7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;CAClD,GAAG,aAAa,CAAC,UAAU,CAAC,CAoB5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACT,EAAE;IACD,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAClC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CACtC,GAAG,aAAa,CAAC,UAAU,CAAC,CAS5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;CAClD,GAAG,aAAa,CAAC,WAAW,CAAC,CAG7B"}
|
package/dist/menders/derive.js
CHANGED
|
@@ -21,12 +21,19 @@ function reportedIds(registry) {
|
|
|
21
21
|
* The invariants a transient visit on a standing credential reaches. The
|
|
22
22
|
* two chain triggers are read through `dueAt` over the ladder held set; a
|
|
23
23
|
* `login-routing` site counts unless the client-key-record probe guards it;
|
|
24
|
-
* an `encounter` site counts
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
24
|
+
* an `encounter` site counts when its `reachedBy` names `transient` and the
|
|
25
|
+
* ladder held set admits every invariant it reports, the test a chain
|
|
26
|
+
* registration meets; a `ceremony-tail` entry counts, every such ceremony
|
|
27
|
+
* running on any session type; and a detector no site reports (a
|
|
28
|
+
* declaration carrying `holdsWhen`) counts when it is checked at routing or,
|
|
29
|
+
* on the transient chain, under an authority the ladder held set carries.
|
|
30
|
+
* An unreported declaration with no detector is reached by nothing. No
|
|
31
|
+
* unreported declaration lists `encounter`, since `menderRegistry` refuses
|
|
32
|
+
* one at construction.
|
|
33
|
+
*
|
|
34
|
+
* The rule trusts each declaration's `authority`. A declaration claiming a
|
|
35
|
+
* wider authority than what converges it on a transient visit would count
|
|
36
|
+
* an encounter site as reachable and hide a real `unreachable` gap.
|
|
30
37
|
*
|
|
31
38
|
* @param options {object}
|
|
32
39
|
* @param options.registry {MenderRegistry}
|
|
@@ -44,8 +51,11 @@ export function transientReachableInvariants({ registry }) {
|
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
53
|
for (const site of registry.sites()) {
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
const routed = site.trigger === 'login-routing' && !site.guardedBy;
|
|
55
|
+
const encountered = site.trigger === 'encounter' &&
|
|
56
|
+
site.reachedBy.includes('transient') &&
|
|
57
|
+
registry.admits({ site, held });
|
|
58
|
+
if (routed || encountered) {
|
|
49
59
|
for (const id of site.reports) {
|
|
50
60
|
reached.add(id);
|
|
51
61
|
}
|
|
@@ -61,7 +71,6 @@ export function transientReachableInvariants({ registry }) {
|
|
|
61
71
|
continue;
|
|
62
72
|
}
|
|
63
73
|
const checkedOnVisit = decl.triggers.includes('login-routing') ||
|
|
64
|
-
decl.triggers.includes('encounter') ||
|
|
65
74
|
(decl.triggers.includes('transient-login-chain') &&
|
|
66
75
|
held.includes(decl.authority));
|
|
67
76
|
if (checkedOnVisit) {
|
|
@@ -82,7 +91,9 @@ export function transientReachableInvariants({ registry }) {
|
|
|
82
91
|
* a gap. A declaration naming a chain or routing trigger no site backs
|
|
83
92
|
* derives `none` whatever else it names. An invariant reported only at sites
|
|
84
93
|
* a transient visit cannot reach, on an account shape the violation can
|
|
85
|
-
* stand on, derives `unreachable`.
|
|
94
|
+
* stand on, derives `unreachable`. That includes an invariant reported
|
|
95
|
+
* only at encounter sites a transient visit does not reach: the ceremony-tail
|
|
96
|
+
* exemption does not extend to `encounter`. Nothing else derives a gap.
|
|
86
97
|
*
|
|
87
98
|
* @param options {object}
|
|
88
99
|
* @param options.registry {MenderRegistry}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/menders/derive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAoB,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAQ/C;;GAEG;AACH,SAAS,WAAW,CAClB,QAAiD;IAEjD,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAChE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/menders/derive.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAoB,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAQ/C;;GAEG;AACH,SAAS,WAAW,CAClB,QAAiD;IAEjD,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,4BAA4B,CAAC,EAC3C,QAAQ,EAGT;IACC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAA;IACtC,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC;QAChC,IAAI;QACJ,OAAO,EAAE,uBAAuB;KACjC,CAAC,EAAE,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QAClE,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,KAAK,WAAW;YAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,SAAQ;QACV,CAAC;QACD,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;YACvC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ;SACZ,GAAG,EAAE;SACL,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EAGT;IACC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,IAAI,GAAsB,EAAE,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,eAAe,CAAC,CAAA;YAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;aAAM,IACL,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACzC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EAIT;IACC,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CACtB,CAAC,QAAQ,CAAC,IAAI,CACZ,GAAG,CAAC,EAAE,CACJ,GAAG,CAAC,SAAS,KAAK,SAAS;QAC3B,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAClD,CACJ,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,QAAQ,EAGT;IACC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7D,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACtD,CAAC"}
|
package/dist/menders/index.d.ts
CHANGED
|
@@ -14,11 +14,15 @@
|
|
|
14
14
|
* `MendOutcome`, `MendReportEntry`, `MendReport`, `InvariantGap`,
|
|
15
15
|
* `LoginRoute`
|
|
16
16
|
* - the readers: `menderRegistry` (`all`, `byId`, `sites`, `admits`,
|
|
17
|
-
* `dueAt`), which refuses a duplicated id, an undeclared report,
|
|
18
|
-
* guard on a non-routing site
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* `dueAt`), which refuses a duplicated id, an undeclared report, a
|
|
18
|
+
* guard on a non-routing site, an encounter site with no reach, or an
|
|
19
|
+
* encounter trigger no encounter site backs at construction, and
|
|
20
|
+
* `heldAuthorities`, the held set a session's account-ceremony context
|
|
21
|
+
* derives
|
|
22
|
+
* - the runner: `runMenderRegistration`, one try, warn, and skip
|
|
23
|
+
* discipline over one registration, shared by the chain runner and a
|
|
24
|
+
* wallet's encounter sites; `runMenderBlock`, that discipline over one
|
|
25
|
+
* chain trigger's registrations; `mendReportAccumulator`, the
|
|
22
26
|
* pre-session report collector its `onOutcome` feeds, and `errorNameOf`,
|
|
23
27
|
* the name a report carries for a thrown value of any shape
|
|
24
28
|
* - the derived sets a wallet's audit tests pin:
|
|
@@ -35,7 +39,7 @@ export type { InvariantId } from './ids.js';
|
|
|
35
39
|
export { heldAuthorities, menderRegistry } from './registry.js';
|
|
36
40
|
export type { MenderRegistry, ResolvedAuthority } from './registry.js';
|
|
37
41
|
export { errorNameOf } from '../errorName.js';
|
|
38
|
-
export { MEND_REPORT_SHAPE_ERROR, mendReportAccumulator, runMenderBlock } from './runner.js';
|
|
42
|
+
export { MEND_REPORT_SHAPE_ERROR, mendReportAccumulator, runMenderBlock, runMenderRegistration } from './runner.js';
|
|
39
43
|
export type { MendReportAccumulator } from './runner.js';
|
|
40
44
|
export type { InvariantDeclaration, InvariantGap, LoginRoute, MendOutcome, MendReport, MendReportEntry, Registration, RegistrationSite } from './types.js';
|
|
41
45
|
export { ACCOUNT_SHAPES, AUTHORITIES, CHAIN_TRIGGERS, EVIDENCE, GAP_KINDS, MEND_OUTCOMES, TRIGGERS } from './vocabulary.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,UAAU,EACV,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACT,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,OAAO,EACR,MAAM,iBAAiB,CAAA"}
|
package/dist/menders/index.js
CHANGED
|
@@ -14,11 +14,15 @@
|
|
|
14
14
|
* `MendOutcome`, `MendReportEntry`, `MendReport`, `InvariantGap`,
|
|
15
15
|
* `LoginRoute`
|
|
16
16
|
* - the readers: `menderRegistry` (`all`, `byId`, `sites`, `admits`,
|
|
17
|
-
* `dueAt`), which refuses a duplicated id, an undeclared report,
|
|
18
|
-
* guard on a non-routing site
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* `dueAt`), which refuses a duplicated id, an undeclared report, a
|
|
18
|
+
* guard on a non-routing site, an encounter site with no reach, or an
|
|
19
|
+
* encounter trigger no encounter site backs at construction, and
|
|
20
|
+
* `heldAuthorities`, the held set a session's account-ceremony context
|
|
21
|
+
* derives
|
|
22
|
+
* - the runner: `runMenderRegistration`, one try, warn, and skip
|
|
23
|
+
* discipline over one registration, shared by the chain runner and a
|
|
24
|
+
* wallet's encounter sites; `runMenderBlock`, that discipline over one
|
|
25
|
+
* chain trigger's registrations; `mendReportAccumulator`, the
|
|
22
26
|
* pre-session report collector its `onOutcome` feeds, and `errorNameOf`,
|
|
23
27
|
* the name a report carries for a thrown value of any shape
|
|
24
28
|
* - the derived sets a wallet's audit tests pin:
|
|
@@ -33,6 +37,6 @@ export { deriveGaps, transientReachableInvariants, undeclaredGaps, undeclaredInv
|
|
|
33
37
|
export { INVARIANT_IDS } from './ids.js';
|
|
34
38
|
export { heldAuthorities, menderRegistry } from './registry.js';
|
|
35
39
|
export { errorNameOf } from '../errorName.js';
|
|
36
|
-
export { MEND_REPORT_SHAPE_ERROR, mendReportAccumulator, runMenderBlock } from './runner.js';
|
|
40
|
+
export { MEND_REPORT_SHAPE_ERROR, mendReportAccumulator, runMenderBlock, runMenderRegistration } from './runner.js';
|
|
37
41
|
export { ACCOUNT_SHAPES, AUTHORITIES, CHAIN_TRIGGERS, EVIDENCE, GAP_KINDS, MEND_OUTCOMES, TRIGGERS } from './vocabulary.js';
|
|
38
42
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/menders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/menders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EACL,UAAU,EACV,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAYpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,EACT,MAAM,iBAAiB,CAAA"}
|
|
@@ -9,9 +9,12 @@
|
|
|
9
9
|
* listed under one chain trigger that `admits` passes, in list order.
|
|
10
10
|
* Registration order is execution order; there is no dependency graph and
|
|
11
11
|
* no priority. The table and the sites are checked once, at construction: a
|
|
12
|
-
* duplicated declaration id, a site reporting an undeclared invariant,
|
|
13
|
-
* guard on a non-routing site
|
|
14
|
-
*
|
|
12
|
+
* duplicated declaration id, a site reporting an undeclared invariant, a
|
|
13
|
+
* guard on a non-routing site, an encounter site with no reach, or a
|
|
14
|
+
* declaration listing `encounter` that no encounter site reports is a
|
|
15
|
+
* `TypeError` there, so no reader meets the defect later, depending on what
|
|
16
|
+
* a login happens to hold. Both wallets build their registries at import, so
|
|
17
|
+
* the error surfaces at module load.
|
|
15
18
|
*/
|
|
16
19
|
import type { InvariantId } from './ids.js';
|
|
17
20
|
import type { InvariantDeclaration, LoginRoute, RegistrationSite } from './types.js';
|
|
@@ -35,7 +38,8 @@ export interface MenderRegistry<Site extends RegistrationSite, Deps, Ceremony ex
|
|
|
35
38
|
/**
|
|
36
39
|
* Whether a site's every reported invariant declares an authority in
|
|
37
40
|
* `held` and, when a route is given, admits it. The one admission test,
|
|
38
|
-
* shared by `dueAt
|
|
41
|
+
* shared by `dueAt`, by a runner admitting a site the caller supplies, and
|
|
42
|
+
* by the derivation's encounter reach rule, which gives no route.
|
|
39
43
|
*
|
|
40
44
|
* @throws {TypeError} when the site reports an undeclared invariant,
|
|
41
45
|
* reachable only for a site the registry does not index
|
|
@@ -67,7 +71,9 @@ export declare function heldAuthorities({ kind }: {
|
|
|
67
71
|
/**
|
|
68
72
|
* Builds the readers over one wallet's declarations and sites, checking
|
|
69
73
|
* both once: every declaration id is unique, every reported id is declared,
|
|
70
|
-
*
|
|
74
|
+
* only a `login-routing` site carries `guardedBy`, every `encounter` site
|
|
75
|
+
* names at least one session kind in `reachedBy`, and every declaration
|
|
76
|
+
* listing `encounter` among its triggers is reported by an encounter site.
|
|
71
77
|
*
|
|
72
78
|
* @param options {object}
|
|
73
79
|
* @param options.declarations {ReadonlyArray<InvariantDeclaration>}
|
|
@@ -75,7 +81,8 @@ export declare function heldAuthorities({ kind }: {
|
|
|
75
81
|
* registration site, any trigger, in execution order within a trigger
|
|
76
82
|
* @returns {MenderRegistry}
|
|
77
83
|
* @throws {TypeError} on a duplicated declaration id, an undeclared
|
|
78
|
-
* report,
|
|
84
|
+
* report, a guard on a non-routing site, an encounter site with no reach,
|
|
85
|
+
* or an encounter trigger no encounter site backs
|
|
79
86
|
*/
|
|
80
87
|
export declare function menderRegistry<Site extends RegistrationSite, Deps, Ceremony extends string = string>({ declarations, sites }: {
|
|
81
88
|
declarations: ReadonlyArray<InvariantDeclaration<Deps, Ceremony>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAC7B,IAAI,SAAS,gBAAgB,EAC7B,IAAI,EACJ,QAAQ,SAAS,MAAM,GAAG,MAAM;IAEhC,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,EAAE,EAAE,WAAW,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAA;IACvE,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,CAAA;IAC5B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,EAAE;QACd,IAAI,EAAE,gBAAgB,CAAA;QACtB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;QAC9B,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB,GAAG,OAAO,CAAA;IACX,KAAK,CAAC,OAAO,EAAE;QACb,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;QAC9B,OAAO,EAAE,YAAY,CAAA;QACrB,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACL,EAAE;IACD,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB,GAAG,aAAa,CAAC,SAAS,CAAC,CAE3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,SAAS,gBAAgB,EAC7B,IAAI,EACJ,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,EACA,YAAY,EACZ,KAAK,EACN,EAAE;IACD,YAAY,EAAE,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CAC3B,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAsEvC"}
|
package/dist/menders/registry.js
CHANGED
|
@@ -14,7 +14,9 @@ export function heldAuthorities({ kind }) {
|
|
|
14
14
|
/**
|
|
15
15
|
* Builds the readers over one wallet's declarations and sites, checking
|
|
16
16
|
* both once: every declaration id is unique, every reported id is declared,
|
|
17
|
-
*
|
|
17
|
+
* only a `login-routing` site carries `guardedBy`, every `encounter` site
|
|
18
|
+
* names at least one session kind in `reachedBy`, and every declaration
|
|
19
|
+
* listing `encounter` among its triggers is reported by an encounter site.
|
|
18
20
|
*
|
|
19
21
|
* @param options {object}
|
|
20
22
|
* @param options.declarations {ReadonlyArray<InvariantDeclaration>}
|
|
@@ -22,7 +24,8 @@ export function heldAuthorities({ kind }) {
|
|
|
22
24
|
* registration site, any trigger, in execution order within a trigger
|
|
23
25
|
* @returns {MenderRegistry}
|
|
24
26
|
* @throws {TypeError} on a duplicated declaration id, an undeclared
|
|
25
|
-
* report,
|
|
27
|
+
* report, a guard on a non-routing site, an encounter site with no reach,
|
|
28
|
+
* or an encounter trigger no encounter site backs
|
|
26
29
|
*/
|
|
27
30
|
export function menderRegistry({ declarations, sites }) {
|
|
28
31
|
const index = new Map();
|
|
@@ -39,12 +42,24 @@ export function menderRegistry({ declarations, sites }) {
|
|
|
39
42
|
}
|
|
40
43
|
return decl;
|
|
41
44
|
};
|
|
45
|
+
const encountered = new Set();
|
|
42
46
|
for (const site of sites) {
|
|
43
47
|
site.reports.forEach(requireDeclared);
|
|
44
|
-
const { trigger, guardedBy } = site;
|
|
48
|
+
const { trigger, guardedBy, reachedBy } = site;
|
|
45
49
|
if (guardedBy !== undefined && trigger !== 'login-routing') {
|
|
46
50
|
throw new TypeError(`A ${trigger} site carries a guard; only a login-routing site may`);
|
|
47
51
|
}
|
|
52
|
+
if (trigger === 'encounter') {
|
|
53
|
+
if (!reachedBy || reachedBy.length === 0) {
|
|
54
|
+
throw new TypeError(`An encounter site names no session kind that reaches it: ${site.reports.join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
site.reports.forEach(id => encountered.add(id));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (const decl of declarations) {
|
|
60
|
+
if (decl.triggers.includes('encounter') && !encountered.has(decl.id)) {
|
|
61
|
+
throw new TypeError(`An invariant lists the encounter trigger but no encounter site reports it: ${decl.id}`);
|
|
62
|
+
}
|
|
48
63
|
}
|
|
49
64
|
const admits = ({ site, held, route }) => site.reports.every(id => {
|
|
50
65
|
const decl = requireDeclared(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/menders/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/menders/runner.d.ts
CHANGED
|
@@ -11,15 +11,25 @@ export declare const MEND_REPORT_SHAPE_ERROR = "MendReportShapeError";
|
|
|
11
11
|
* The report collector a wallet creates ahead of session assembly. A
|
|
12
12
|
* routing entry reports into it from its own call site before a `Session`
|
|
13
13
|
* exists, {@link runMenderBlock} reports the chain's entries into it
|
|
14
|
-
* through `
|
|
15
|
-
* mend report.
|
|
14
|
+
* through its `mends` option, and the wallet hands `settled` to the session
|
|
15
|
+
* as its mend report. When the accumulator was created with a logger, each
|
|
16
|
+
* `report` call also emits that entry's `'ceremony mender'` event.
|
|
16
17
|
*/
|
|
17
18
|
export interface MendReportAccumulator<Ceremony extends string = string> {
|
|
18
19
|
/**
|
|
19
|
-
* Records one entry.
|
|
20
|
-
*
|
|
20
|
+
* Records one entry. When the accumulator has a logger, it also emits one
|
|
21
|
+
* `'ceremony mender'` event (`menderEvent`) from the same entry, carrying
|
|
22
|
+
* `err` when one is given. The event never throws. Bound to the
|
|
23
|
+
* accumulator, so it can be passed around as a function.
|
|
24
|
+
*
|
|
25
|
+
* @param entry {MendReportEntry} the entry to record
|
|
26
|
+
* @param [options] {object}
|
|
27
|
+
* @param [options.err] {unknown} the error behind the entry, carried on
|
|
28
|
+
* the event only. The recorded entry keeps `errorName` alone
|
|
21
29
|
*/
|
|
22
|
-
report(entry: MendReportEntry<Ceremony
|
|
30
|
+
report(entry: MendReportEntry<Ceremony>, options?: {
|
|
31
|
+
err?: unknown;
|
|
32
|
+
}): void;
|
|
23
33
|
/**
|
|
24
34
|
* Every entry recorded so far, in report order.
|
|
25
35
|
*/
|
|
@@ -39,15 +49,25 @@ export interface MendReportAccumulator<Ceremony extends string = string> {
|
|
|
39
49
|
* Creates a report accumulator. Generic over the wallet's ceremony-id
|
|
40
50
|
* union, which defaults to `string`.
|
|
41
51
|
*
|
|
52
|
+
* With a `logger`, every `report` call records the entry and emits its
|
|
53
|
+
* `'ceremony mender'` event through that logger, so the diagnostics stream
|
|
54
|
+
* and the report cannot diverge. Without one, `report` only records.
|
|
55
|
+
*
|
|
56
|
+
* @param [options] {object}
|
|
57
|
+
* @param [options.logger] {Logger} the wallet's own sink for the mender
|
|
58
|
+
* events
|
|
42
59
|
* @returns {MendReportAccumulator}
|
|
43
60
|
*/
|
|
44
|
-
export declare function mendReportAccumulator<Ceremony extends string = string>(
|
|
61
|
+
export declare function mendReportAccumulator<Ceremony extends string = string>({ logger }?: {
|
|
62
|
+
logger?: Logger;
|
|
63
|
+
}): MendReportAccumulator<Ceremony>;
|
|
45
64
|
/**
|
|
46
65
|
* Runs one registration block: the registrations listed under `trigger`
|
|
47
66
|
* whose every reported invariant declares an authority the session holds
|
|
48
67
|
* and admits this login route, in list order.
|
|
49
68
|
*
|
|
50
|
-
*
|
|
69
|
+
* Each step runs through {@link runMenderRegistration}, which holds the
|
|
70
|
+
* discipline in one place. An optional `seed` registration runs first,
|
|
51
71
|
* and its failure aborts the block: nothing behind it runs, which is what a
|
|
52
72
|
* rejected chain seed does today. Past the seed, a registration that throws
|
|
53
73
|
* warns once per reported invariant with that declaration's own `warn`
|
|
@@ -62,10 +82,13 @@ export declare function mendReportAccumulator<Ceremony extends string = string>(
|
|
|
62
82
|
* carrying {@link MEND_REPORT_SHAPE_ERROR} rather than throwing, so a
|
|
63
83
|
* mismatched adapter cannot tear a login.
|
|
64
84
|
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
85
|
+
* Each entry emits exactly one `'ceremony mender'` event (`menderEvent`),
|
|
86
|
+
* so the diagnostics stream and the report cannot diverge. Given `mends`,
|
|
87
|
+
* the block reports each entry into that accumulator, and the accumulator's
|
|
88
|
+
* own logger emits the event; the block does not emit it again. Without
|
|
89
|
+
* `mends`, the block emits the event through `logger` itself. A `noop`
|
|
90
|
+
* entry emits at debug. `onOutcome` runs after a registration's entries are
|
|
91
|
+
* reported, once per entry.
|
|
69
92
|
*
|
|
70
93
|
* `trigger` is one of the two chain values, so a `ceremony-tail` entry is
|
|
71
94
|
* out of reach here. Such an entry has no registration at all: its body
|
|
@@ -95,22 +118,26 @@ export declare function mendReportAccumulator<Ceremony extends string = string>(
|
|
|
95
118
|
* `when` predicate reads
|
|
96
119
|
* @param options.deps {Deps} passed to the seed and to every `converge`
|
|
97
120
|
* @param options.logger {Logger} the wallet's own sink, so its warn
|
|
98
|
-
* copy keeps the wallet's namespace
|
|
121
|
+
* copy keeps the wallet's namespace. The block emits the mender events
|
|
122
|
+
* through it when no `mends` is given
|
|
99
123
|
* @param [options.registrations] {ReadonlyArray<Registration>} the
|
|
100
124
|
* registrations to run, in place of the ones the registry lists under
|
|
101
125
|
* `trigger`. Each is admitted by the same authority and route tests
|
|
102
126
|
* @param [options.seed] {Registration} the step whose failure aborts the
|
|
103
127
|
* block. Admitted by the same authority and route tests as any other
|
|
104
128
|
* registration; one it does not pass is skipped rather than failed
|
|
129
|
+
* @param [options.mends] {MendReportAccumulator} the accumulator the
|
|
130
|
+
* block reports each entry into. It emits the entry's mender event, so
|
|
131
|
+
* the block emits none of its own. An accumulator created without a
|
|
132
|
+
* logger then emits nothing
|
|
105
133
|
* @param [options.onOutcome] {(entry: MendReportEntry) => void} called
|
|
106
|
-
* once per reported entry, in order
|
|
107
|
-
* outcome is reported
|
|
134
|
+
* once per reported entry, in order, after the entry is reported
|
|
108
135
|
* @returns {Promise<MendReport>} the block's entries in order. It never
|
|
109
136
|
* rejects; a seed failure resolves with the seed's `failed` entries alone
|
|
110
137
|
* @throws {TypeError} when the seed or an override registration is listed
|
|
111
138
|
* under a trigger other than `trigger`, a programming error
|
|
112
139
|
*/
|
|
113
|
-
export declare function runMenderBlock<Deps, Ceremony extends string = string, Site extends RegistrationSite = Registration<Deps, Ceremony>>({ registry, trigger, held, route, deps, logger, registrations, seed, onOutcome }: {
|
|
140
|
+
export declare function runMenderBlock<Deps, Ceremony extends string = string, Site extends RegistrationSite = Registration<Deps, Ceremony>>({ registry, trigger, held, route, deps, logger, registrations, seed, mends, onOutcome }: {
|
|
114
141
|
registry: MenderRegistry<Site, Deps, Ceremony>;
|
|
115
142
|
trigger: ChainTrigger;
|
|
116
143
|
held: ReadonlyArray<Authority>;
|
|
@@ -119,6 +146,48 @@ export declare function runMenderBlock<Deps, Ceremony extends string = string, S
|
|
|
119
146
|
logger: Logger;
|
|
120
147
|
registrations?: ReadonlyArray<Registration<Deps, Ceremony>>;
|
|
121
148
|
seed?: Registration<Deps, Ceremony>;
|
|
149
|
+
mends?: MendReportAccumulator<Ceremony>;
|
|
122
150
|
onOutcome?: (entry: MendReportEntry<Ceremony>) => void;
|
|
123
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
|
+
}>;
|
|
124
193
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/menders/runner.js
CHANGED
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* The mender runner: one try, warn, and skip discipline over the
|
|
6
|
-
* registrations listed under one chain trigger. `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
-
* one `MendReport`.
|
|
15
|
+
* one `MendReport`. An accumulator given a logger emits each entry's
|
|
16
|
+
* `'ceremony mender'` event from the same `report` call that records it, so
|
|
17
|
+
* a caller cannot report an entry without emitting it.
|
|
14
18
|
*/
|
|
15
19
|
import { menderEvent } from '../ceremonyEvents.js';
|
|
16
20
|
import { errorNameOf } from '../errorName.js';
|
|
@@ -23,9 +27,16 @@ export const MEND_REPORT_SHAPE_ERROR = 'MendReportShapeError';
|
|
|
23
27
|
* Creates a report accumulator. Generic over the wallet's ceremony-id
|
|
24
28
|
* union, which defaults to `string`.
|
|
25
29
|
*
|
|
30
|
+
* With a `logger`, every `report` call records the entry and emits its
|
|
31
|
+
* `'ceremony mender'` event through that logger, so the diagnostics stream
|
|
32
|
+
* and the report cannot diverge. Without one, `report` only records.
|
|
33
|
+
*
|
|
34
|
+
* @param [options] {object}
|
|
35
|
+
* @param [options.logger] {Logger} the wallet's own sink for the mender
|
|
36
|
+
* events
|
|
26
37
|
* @returns {MendReportAccumulator}
|
|
27
38
|
*/
|
|
28
|
-
export function mendReportAccumulator() {
|
|
39
|
+
export function mendReportAccumulator({ logger } = {}) {
|
|
29
40
|
const recorded = [];
|
|
30
41
|
let resolveSettled = () => undefined;
|
|
31
42
|
const settled = new Promise(resolve => {
|
|
@@ -33,8 +44,12 @@ export function mendReportAccumulator() {
|
|
|
33
44
|
});
|
|
34
45
|
let assembled;
|
|
35
46
|
return {
|
|
36
|
-
report(entry) {
|
|
47
|
+
report(entry, { err } = {}) {
|
|
37
48
|
recorded.push(entry);
|
|
49
|
+
if (logger) {
|
|
50
|
+
// menderEvent never throws and drops an undefined `err`.
|
|
51
|
+
menderEvent({ log: logger, entry, err });
|
|
52
|
+
}
|
|
38
53
|
},
|
|
39
54
|
entries: () => [...recorded],
|
|
40
55
|
settle() {
|
|
@@ -52,7 +67,8 @@ export function mendReportAccumulator() {
|
|
|
52
67
|
* whose every reported invariant declares an authority the session holds
|
|
53
68
|
* and admits this login route, in list order.
|
|
54
69
|
*
|
|
55
|
-
*
|
|
70
|
+
* Each step runs through {@link runMenderRegistration}, which holds the
|
|
71
|
+
* discipline in one place. An optional `seed` registration runs first,
|
|
56
72
|
* and its failure aborts the block: nothing behind it runs, which is what a
|
|
57
73
|
* rejected chain seed does today. Past the seed, a registration that throws
|
|
58
74
|
* warns once per reported invariant with that declaration's own `warn`
|
|
@@ -67,10 +83,13 @@ export function mendReportAccumulator() {
|
|
|
67
83
|
* carrying {@link MEND_REPORT_SHAPE_ERROR} rather than throwing, so a
|
|
68
84
|
* mismatched adapter cannot tear a login.
|
|
69
85
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
86
|
+
* Each entry emits exactly one `'ceremony mender'` event (`menderEvent`),
|
|
87
|
+
* so the diagnostics stream and the report cannot diverge. Given `mends`,
|
|
88
|
+
* the block reports each entry into that accumulator, and the accumulator's
|
|
89
|
+
* own logger emits the event; the block does not emit it again. Without
|
|
90
|
+
* `mends`, the block emits the event through `logger` itself. A `noop`
|
|
91
|
+
* entry emits at debug. `onOutcome` runs after a registration's entries are
|
|
92
|
+
* reported, once per entry.
|
|
74
93
|
*
|
|
75
94
|
* `trigger` is one of the two chain values, so a `ceremony-tail` entry is
|
|
76
95
|
* out of reach here. Such an entry has no registration at all: its body
|
|
@@ -100,33 +119,27 @@ export function mendReportAccumulator() {
|
|
|
100
119
|
* `when` predicate reads
|
|
101
120
|
* @param options.deps {Deps} passed to the seed and to every `converge`
|
|
102
121
|
* @param options.logger {Logger} the wallet's own sink, so its warn
|
|
103
|
-
* copy keeps the wallet's namespace
|
|
122
|
+
* copy keeps the wallet's namespace. The block emits the mender events
|
|
123
|
+
* through it when no `mends` is given
|
|
104
124
|
* @param [options.registrations] {ReadonlyArray<Registration>} the
|
|
105
125
|
* registrations to run, in place of the ones the registry lists under
|
|
106
126
|
* `trigger`. Each is admitted by the same authority and route tests
|
|
107
127
|
* @param [options.seed] {Registration} the step whose failure aborts the
|
|
108
128
|
* block. Admitted by the same authority and route tests as any other
|
|
109
129
|
* registration; one it does not pass is skipped rather than failed
|
|
130
|
+
* @param [options.mends] {MendReportAccumulator} the accumulator the
|
|
131
|
+
* block reports each entry into. It emits the entry's mender event, so
|
|
132
|
+
* the block emits none of its own. An accumulator created without a
|
|
133
|
+
* logger then emits nothing
|
|
110
134
|
* @param [options.onOutcome] {(entry: MendReportEntry) => void} called
|
|
111
|
-
* once per reported entry, in order
|
|
112
|
-
* outcome is reported
|
|
135
|
+
* once per reported entry, in order, after the entry is reported
|
|
113
136
|
* @returns {Promise<MendReport>} the block's entries in order. It never
|
|
114
137
|
* rejects; a seed failure resolves with the seed's `failed` entries alone
|
|
115
138
|
* @throws {TypeError} when the seed or an override registration is listed
|
|
116
139
|
* under a trigger other than `trigger`, a programming error
|
|
117
140
|
*/
|
|
118
|
-
export async function runMenderBlock({ registry, trigger, held, route, deps, logger, registrations, seed, onOutcome }) {
|
|
141
|
+
export async function runMenderBlock({ registry, trigger, held, route, deps, logger, registrations, seed, mends, onOutcome }) {
|
|
119
142
|
const report = [];
|
|
120
|
-
const collect = (entries) => {
|
|
121
|
-
for (const entry of entries) {
|
|
122
|
-
report.push(entry);
|
|
123
|
-
onOutcome?.(entry);
|
|
124
|
-
// The diagnostics twin of the report entry. The entry carries
|
|
125
|
-
// `errorName` alone, so the event carries no `err`; the registration's
|
|
126
|
-
// declared warn keeps the error.
|
|
127
|
-
menderEvent({ log: logger, entry });
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
143
|
for (const supplied of [...(seed ? [seed] : []), ...(registrations ?? [])]) {
|
|
131
144
|
if (supplied.trigger !== trigger) {
|
|
132
145
|
throw new TypeError(`A ${supplied.trigger} registration was handed to the ${trigger} block`);
|
|
@@ -138,14 +151,19 @@ export async function runMenderBlock({ registry, trigger, held, route, deps, log
|
|
|
138
151
|
// ends the block.
|
|
139
152
|
const steps = seed && admitted(seed) ? [seed, ...listed] : listed;
|
|
140
153
|
for (const registration of steps) {
|
|
141
|
-
|
|
154
|
+
// Reports each entry into `mends`, or emits its mender event, before
|
|
155
|
+
// `onOutcome` sees it.
|
|
156
|
+
const outcome = await runMenderRegistration({
|
|
142
157
|
registry,
|
|
143
158
|
registration,
|
|
144
159
|
deps,
|
|
145
160
|
logger,
|
|
146
|
-
|
|
161
|
+
mends
|
|
147
162
|
});
|
|
148
|
-
|
|
163
|
+
for (const entry of outcome.entries) {
|
|
164
|
+
report.push(entry);
|
|
165
|
+
onOutcome?.(entry);
|
|
166
|
+
}
|
|
149
167
|
if (outcome.threw && registration === seed) {
|
|
150
168
|
return report;
|
|
151
169
|
}
|
|
@@ -153,10 +171,61 @@ export async function runMenderBlock({ registry, trigger, held, route, deps, log
|
|
|
153
171
|
return report;
|
|
154
172
|
}
|
|
155
173
|
/**
|
|
156
|
-
* Runs one registration under the
|
|
157
|
-
* and
|
|
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.
|
|
158
226
|
*/
|
|
159
|
-
async function
|
|
227
|
+
async function convergeUnderDiscipline({ registry, registration, deps, logger }) {
|
|
228
|
+
const { trigger } = registration;
|
|
160
229
|
try {
|
|
161
230
|
const entries = await registration.converge(deps);
|
|
162
231
|
if (!matchesReports({ registration, entries })) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/menders/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/menders/types.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/wallet-core",
|
|
3
3
|
"description": "Shared wallet-domain logic (WAS sync engine core and wallet Space layout contracts) for Interop wallet apps.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.89.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|