@interop/wallet-core 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +13 -13
  2. package/dist/clients/index.d.ts +4 -3
  3. package/dist/clients/index.d.ts.map +1 -1
  4. package/dist/clients/index.js +3 -2
  5. package/dist/clients/index.js.map +1 -1
  6. package/dist/clients/policy.d.ts +3 -3
  7. package/dist/clients/policy.d.ts.map +1 -1
  8. package/dist/clients/policy.js +1 -1
  9. package/dist/clients/revocation.d.ts +18 -15
  10. package/dist/clients/revocation.d.ts.map +1 -1
  11. package/dist/clients/revocation.js +42 -26
  12. package/dist/clients/revocation.js.map +1 -1
  13. package/dist/clients/rosterPolicy.d.ts +46 -24
  14. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  15. package/dist/clients/rosterPolicy.js +106 -48
  16. package/dist/clients/rosterPolicy.js.map +1 -1
  17. package/dist/descriptors/refresh.d.ts +3 -1
  18. package/dist/descriptors/refresh.d.ts.map +1 -1
  19. package/dist/descriptors/refresh.js +3 -1
  20. package/dist/descriptors/refresh.js.map +1 -1
  21. package/dist/display/alignment.d.ts +8 -2
  22. package/dist/display/alignment.d.ts.map +1 -1
  23. package/dist/display/alignment.js +11 -8
  24. package/dist/display/alignment.js.map +1 -1
  25. package/dist/display/displayFields.d.ts +6 -2
  26. package/dist/display/displayFields.d.ts.map +1 -1
  27. package/dist/display/displayFields.js.map +1 -1
  28. package/dist/display/evidence.d.ts +9 -3
  29. package/dist/display/evidence.d.ts.map +1 -1
  30. package/dist/display/evidence.js +3 -1
  31. package/dist/display/evidence.js.map +1 -1
  32. package/dist/display/index.d.ts +1 -1
  33. package/dist/display/index.d.ts.map +1 -1
  34. package/dist/display/index.js +1 -1
  35. package/dist/display/index.js.map +1 -1
  36. package/dist/display/issuer.d.ts +12 -4
  37. package/dist/display/issuer.d.ts.map +1 -1
  38. package/dist/display/issuer.js.map +1 -1
  39. package/dist/display/obv3.d.ts +7 -2
  40. package/dist/display/obv3.d.ts.map +1 -1
  41. package/dist/display/obv3.js +14 -24
  42. package/dist/display/obv3.js.map +1 -1
  43. package/dist/display/parse.d.ts +6 -2
  44. package/dist/display/parse.d.ts.map +1 -1
  45. package/dist/display/parse.js +6 -2
  46. package/dist/display/parse.js.map +1 -1
  47. package/dist/display/subject.d.ts +4 -0
  48. package/dist/display/subject.d.ts.map +1 -1
  49. package/dist/display/subject.js +12 -10
  50. package/dist/display/subject.js.map +1 -1
  51. package/dist/display/text.d.ts +11 -0
  52. package/dist/display/text.d.ts.map +1 -1
  53. package/dist/display/text.js +20 -4
  54. package/dist/display/text.js.map +1 -1
  55. package/dist/display/types.js +1 -1
  56. package/dist/display/types.js.map +1 -1
  57. package/dist/display/validity.js +4 -4
  58. package/dist/display/validity.js.map +1 -1
  59. package/dist/display/verificationView.d.ts +21 -7
  60. package/dist/display/verificationView.d.ts.map +1 -1
  61. package/dist/display/verificationView.js.map +1 -1
  62. package/dist/enrollment/enrollment.d.ts +21 -19
  63. package/dist/enrollment/enrollment.d.ts.map +1 -1
  64. package/dist/enrollment/enrollment.js +98 -34
  65. package/dist/enrollment/enrollment.js.map +1 -1
  66. package/dist/enrollment/index.d.ts +1 -1
  67. package/dist/enrollment/index.js +1 -1
  68. package/dist/index.d.ts +2 -2
  69. package/dist/index.js +2 -2
  70. package/dist/keys/clientKeyRecord.d.ts +19 -17
  71. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  72. package/dist/keys/clientKeyRecord.js +77 -41
  73. package/dist/keys/clientKeyRecord.js.map +1 -1
  74. package/dist/keys/index.d.ts +19 -17
  75. package/dist/keys/index.d.ts.map +1 -1
  76. package/dist/keys/index.js +16 -14
  77. package/dist/keys/index.js.map +1 -1
  78. package/dist/keys/rosterStore.d.ts +3 -3
  79. package/dist/keys/rosterStore.d.ts.map +1 -1
  80. package/dist/keys/rosterStore.js +13 -13
  81. package/dist/keys/rosterStore.js.map +1 -1
  82. package/dist/keys/userKey.d.ts +43 -0
  83. package/dist/keys/userKey.d.ts.map +1 -0
  84. package/dist/keys/{puk.js → userKey.js} +23 -21
  85. package/dist/keys/userKey.js.map +1 -0
  86. package/dist/keys/{pukCascade.d.ts → userKeyCascade.d.ts} +69 -69
  87. package/dist/keys/userKeyCascade.d.ts.map +1 -0
  88. package/dist/keys/{pukCascade.js → userKeyCascade.js} +77 -75
  89. package/dist/keys/userKeyCascade.js.map +1 -0
  90. package/dist/keys/{pukRoster.d.ts → userKeyRoster.d.ts} +141 -64
  91. package/dist/keys/userKeyRoster.d.ts.map +1 -0
  92. package/dist/keys/{pukRoster.js → userKeyRoster.js} +200 -72
  93. package/dist/keys/userKeyRoster.js.map +1 -0
  94. package/dist/recovery/index.d.ts +1 -1
  95. package/dist/recovery/index.js +1 -1
  96. package/dist/recovery/recoveryCode.d.ts +1 -1
  97. package/dist/recovery/recoveryCode.js +6 -6
  98. package/dist/recovery/recoveryRecord.d.ts +1 -1
  99. package/dist/recovery/recoveryWebvh.d.ts +1 -1
  100. package/dist/recovery/recoveryWebvh.js +1 -1
  101. package/dist/request/classify.d.ts +15 -1
  102. package/dist/request/classify.d.ts.map +1 -1
  103. package/dist/request/classify.js +38 -14
  104. package/dist/request/classify.js.map +1 -1
  105. package/dist/request/composeVp.d.ts.map +1 -1
  106. package/dist/request/composeVp.js +10 -3
  107. package/dist/request/composeVp.js.map +1 -1
  108. package/dist/request/matching.d.ts +6 -0
  109. package/dist/request/matching.d.ts.map +1 -1
  110. package/dist/request/matching.js +33 -8
  111. package/dist/request/matching.js.map +1 -1
  112. package/dist/request/parse.d.ts +5 -2
  113. package/dist/request/parse.d.ts.map +1 -1
  114. package/dist/request/parse.js +30 -5
  115. package/dist/request/parse.js.map +1 -1
  116. package/dist/request/presentationSuite.d.ts.map +1 -1
  117. package/dist/request/presentationSuite.js +6 -2
  118. package/dist/request/presentationSuite.js.map +1 -1
  119. package/dist/request/processRequest.js +1 -1
  120. package/dist/request/processRequest.js.map +1 -1
  121. package/dist/space/activity.d.ts +22 -8
  122. package/dist/space/activity.d.ts.map +1 -1
  123. package/dist/space/activity.js +19 -7
  124. package/dist/space/activity.js.map +1 -1
  125. package/dist/space/collections.d.ts +33 -21
  126. package/dist/space/collections.d.ts.map +1 -1
  127. package/dist/space/collections.js +34 -22
  128. package/dist/space/collections.js.map +1 -1
  129. package/dist/space/index.d.ts +2 -2
  130. package/dist/space/index.d.ts.map +1 -1
  131. package/dist/space/index.js +2 -2
  132. package/dist/space/index.js.map +1 -1
  133. package/dist/space/wasLink.d.ts +6 -2
  134. package/dist/space/wasLink.d.ts.map +1 -1
  135. package/dist/space/wasLink.js +5 -2
  136. package/dist/space/wasLink.js.map +1 -1
  137. package/dist/sync/contactsConflict.d.ts +1 -1
  138. package/dist/sync/contactsConflict.js +1 -1
  139. package/dist/sync/engine.d.ts +33 -11
  140. package/dist/sync/engine.d.ts.map +1 -1
  141. package/dist/sync/engine.js +4 -3
  142. package/dist/sync/engine.js.map +1 -1
  143. package/dist/sync/pull.d.ts +5 -3
  144. package/dist/sync/pull.d.ts.map +1 -1
  145. package/dist/sync/pull.js +34 -10
  146. package/dist/sync/pull.js.map +1 -1
  147. package/dist/sync/push.d.ts.map +1 -1
  148. package/dist/sync/push.js +24 -8
  149. package/dist/sync/push.js.map +1 -1
  150. package/dist/sync/types.d.ts +30 -6
  151. package/dist/sync/types.d.ts.map +1 -1
  152. package/dist/webvh/didWebvh.d.ts +29 -1
  153. package/dist/webvh/didWebvh.d.ts.map +1 -1
  154. package/dist/webvh/didWebvh.js +46 -11
  155. package/dist/webvh/didWebvh.js.map +1 -1
  156. package/dist/webvh/index.d.ts +1 -1
  157. package/dist/webvh/index.d.ts.map +1 -1
  158. package/dist/webvh/index.js +1 -1
  159. package/dist/webvh/index.js.map +1 -1
  160. package/dist/webvh/listClients.d.ts +19 -0
  161. package/dist/webvh/listClients.d.ts.map +1 -1
  162. package/dist/webvh/listClients.js +37 -1
  163. package/dist/webvh/listClients.js.map +1 -1
  164. package/dist/webvh/revokeClient.d.ts +11 -3
  165. package/dist/webvh/revokeClient.d.ts.map +1 -1
  166. package/dist/webvh/revokeClient.js +83 -14
  167. package/dist/webvh/revokeClient.js.map +1 -1
  168. package/package.json +3 -3
  169. package/dist/keys/puk.d.ts +0 -42
  170. package/dist/keys/puk.d.ts.map +0 -1
  171. package/dist/keys/puk.js.map +0 -1
  172. package/dist/keys/pukCascade.d.ts.map +0 -1
  173. package/dist/keys/pukCascade.js.map +0 -1
  174. package/dist/keys/pukRoster.d.ts.map +0 -1
  175. package/dist/keys/pukRoster.js.map +0 -1
@@ -23,13 +23,17 @@ import type { IAchievement, ICredentialSubject, IOpenBadgeSubject } from '@inter
23
23
  * historical behavior. Callers wanting only name-typed identifiers use
24
24
  * `extractIssuedTo`.
25
25
  *
26
+ * Non-object entries in the `identifier` array (a `null`, a bare string) are
27
+ * skipped rather than dereferenced.
28
+ *
26
29
  * @param credentialSubject {IOpenBadgeSubject | ICredentialSubject}
27
30
  * @returns {string | undefined}
28
31
  */
29
32
  export declare function extractNameFromOBV3Identifier(credentialSubject: IOpenBadgeSubject | ICredentialSubject): string | undefined;
30
33
  /**
31
34
  * Normalizes a subject's `achievement` field to an array of records (a single
32
- * achievement object is wrapped; a missing one yields `[]`).
35
+ * achievement object is wrapped; a missing one yields `[]`). Non-object entries
36
+ * are dropped, so callers can read each achievement's fields directly.
33
37
  *
34
38
  * @param subject {Record<string, unknown>}
35
39
  * @returns {Record<string, unknown>[]}
@@ -37,7 +41,8 @@ export declare function extractNameFromOBV3Identifier(credentialSubject: IOpenBa
37
41
  export declare function achievementsList(subject: Record<string, unknown>): Record<string, unknown>[];
38
42
  /**
39
43
  * Normalizes a subject's `skill` field to an array of records (a single skill
40
- * object is wrapped; a missing one yields `[]`).
44
+ * object is wrapped; a missing one yields `[]`). Non-object entries are
45
+ * dropped, so callers can read each skill's fields directly.
41
46
  *
42
47
  * @param subject {Record<string, unknown>}
43
48
  * @returns {Record<string, unknown>[]}
@@ -1 +1 @@
1
- {"version":3,"file":"obv3.d.ts","sourceRoot":"","sources":["../../src/display/obv3.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,8BAA8B,CAAA;AAGrC;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,iBAAiB,GAAG,kBAAkB,GACxD,MAAM,GAAG,SAAS,CAcpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAS3B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAS3B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAUvE;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAa5D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,MAAM,CAQ7E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,MAAM,CAK5E"}
1
+ {"version":3,"file":"obv3.d.ts","sourceRoot":"","sources":["../../src/display/obv3.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,8BAA8B,CAAA;AAGrC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,iBAAiB,GAAG,kBAAkB,GACxD,MAAM,GAAG,SAAS,CAcpB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAUvE;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAa5D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,MAAM,CAQ7E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,YAAY,GAAG,MAAM,CAK5E"}
@@ -1,4 +1,4 @@
1
- import { asRecord, getTrimmedString } from './text.js';
1
+ import { asRecord, getTrimmedString, recordList } from './text.js';
2
2
  /**
3
3
  * The recipient display name carried in an OBv3 `identifier` entry: the
4
4
  * `identityHash` of the first identifier that has one and is not marked
@@ -9,6 +9,9 @@ import { asRecord, getTrimmedString } from './text.js';
9
9
  * historical behavior. Callers wanting only name-typed identifiers use
10
10
  * `extractIssuedTo`.
11
11
  *
12
+ * Non-object entries in the `identifier` array (a `null`, a bare string) are
13
+ * skipped rather than dereferenced.
14
+ *
12
15
  * @param credentialSubject {IOpenBadgeSubject | ICredentialSubject}
13
16
  * @returns {string | undefined}
14
17
  */
@@ -16,45 +19,32 @@ export function extractNameFromOBV3Identifier(credentialSubject) {
16
19
  if (!credentialSubject?.identifier) {
17
20
  return undefined;
18
21
  }
19
- const identifiers = Array.isArray(credentialSubject.identifier)
20
- ? credentialSubject.identifier
21
- : [credentialSubject.identifier];
22
- const identifierWithHash = identifiers.find(i => i.identityHash && (i?.hashed === false || i?.hashed === undefined));
23
- return identifierWithHash?.identityHash || undefined;
22
+ const identifiers = recordList(credentialSubject.identifier);
23
+ const identifierWithHash = identifiers.find(identifier => identifier.identityHash &&
24
+ (identifier.hashed === false || identifier.hashed === undefined));
25
+ return getTrimmedString(identifierWithHash?.identityHash) || undefined;
24
26
  }
25
27
  /**
26
28
  * Normalizes a subject's `achievement` field to an array of records (a single
27
- * achievement object is wrapped; a missing one yields `[]`).
29
+ * achievement object is wrapped; a missing one yields `[]`). Non-object entries
30
+ * are dropped, so callers can read each achievement's fields directly.
28
31
  *
29
32
  * @param subject {Record<string, unknown>}
30
33
  * @returns {Record<string, unknown>[]}
31
34
  */
32
35
  export function achievementsList(subject) {
33
- const achievementRaw = subject.achievement;
34
- if (achievementRaw == null) {
35
- return [];
36
- }
37
- if (Array.isArray(achievementRaw)) {
38
- return achievementRaw;
39
- }
40
- return [achievementRaw];
36
+ return recordList(subject?.achievement);
41
37
  }
42
38
  /**
43
39
  * Normalizes a subject's `skill` field to an array of records (a single skill
44
- * object is wrapped; a missing one yields `[]`).
40
+ * object is wrapped; a missing one yields `[]`). Non-object entries are
41
+ * dropped, so callers can read each skill's fields directly.
45
42
  *
46
43
  * @param subject {Record<string, unknown>}
47
44
  * @returns {Record<string, unknown>[]}
48
45
  */
49
46
  export function skillsList(subject) {
50
- const skillRaw = subject.skill;
51
- if (skillRaw == null) {
52
- return [];
53
- }
54
- if (Array.isArray(skillRaw)) {
55
- return skillRaw;
56
- }
57
- return [skillRaw];
47
+ return recordList(subject?.skill);
58
48
  }
59
49
  /**
60
50
  * The image URL of the first skill in a list: an object image's `id`, or a
@@ -1 +1 @@
1
- {"version":3,"file":"obv3.js","sourceRoot":"","sources":["../../src/display/obv3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obv3.js","sourceRoot":"","sources":["../../src/display/obv3.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,13 @@
17
17
  * `VPQR_UNSUPPORTED_MESSAGE` constant is exported for apps that surface it.
18
18
  */
19
19
  import type { IVerifiableCredential, IVerifiablePresentation } from '@interop/data-integrity-core';
20
- /** Message DCW surfaced for the (now unsupported) VPQR `VP1-` input. */
20
+ /**
21
+ * Message DCW surfaced for the (now unsupported) VPQR `VP1-` input.
22
+ */
21
23
  export declare const VPQR_UNSUPPORTED_MESSAGE = "VPQR encoded credentials are not supported.";
22
- /** Coded failure of {@link resolveCredentialsInput}. */
24
+ /**
25
+ * Coded failure of {@link resolveCredentialsInput}.
26
+ */
23
27
  export declare class ResolveCredentialsInputError extends Error {
24
28
  readonly code: 'empty' | 'invalid_input' | 'none_found' | 'vpqr_unsupported';
25
29
  constructor(code: 'empty' | 'invalid_input' | 'none_found' | 'vpqr_unsupported');
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/display/parse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,8BAA8B,CAAA;AAMrC,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,gDACU,CAAA;AAE/C,wDAAwD;AACxD,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,kBAAkB,CAAA;gBAE1E,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,kBAAkB;CAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA0BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,qBAAqB,GAAG,uBAAuB,GACnD,qBAAqB,EAAE,GAAG,IAAI,CAYhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,GAAG,EACH,QAAQ,EACT,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC3C,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAwBnC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/display/parse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,8BAA8B,CAAA;AAMrC;;GAEG;AACH,eAAO,MAAM,wBAAwB,gDACU,CAAA;AAE/C;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,kBAAkB,CAAA;gBAE1E,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,kBAAkB;CAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA0BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,qBAAqB,GAAG,uBAAuB,GACnD,qBAAqB,EAAE,GAAG,IAAI,CAYhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,GAAG,EACH,QAAQ,EACT,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC3C,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAwBnC"}
@@ -1,7 +1,11 @@
1
1
  import { isVerifiableCredential, isVerifiablePresentation } from '@interop/data-integrity-core/guards';
2
- /** Message DCW surfaced for the (now unsupported) VPQR `VP1-` input. */
2
+ /**
3
+ * Message DCW surfaced for the (now unsupported) VPQR `VP1-` input.
4
+ */
3
5
  export const VPQR_UNSUPPORTED_MESSAGE = 'VPQR encoded credentials are not supported.';
4
- /** Coded failure of {@link resolveCredentialsInput}. */
6
+ /**
7
+ * Coded failure of {@link resolveCredentialsInput}.
8
+ */
5
9
  export class ResolveCredentialsInputError extends Error {
6
10
  code;
7
11
  constructor(code) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/display/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/display/parse.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,10 @@ export declare function extractIssuedTo(verifiableCredential: IVerifiableCredent
68
68
  * Projects a credential subject to the render fields used by the OBv3 card /
69
69
  * detail view. Dates are RAW ISO strings (see {@link SubjectRenderInfo}).
70
70
  *
71
+ * Every field is read through a shape guard: a missing, primitive, or
72
+ * array-shaped subject (and a `degree` / `achievement` of any shape) renders
73
+ * the all-null fallback instead of throwing.
74
+ *
71
75
  * @param credentialSubject {ICredentialSubject}
72
76
  * @returns {SubjectRenderInfo}
73
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/display/subject.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAKrC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,GAAG,kBAAkB,CAMxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CA4BR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,qBAAqB,GAC1C,MAAM,CAyBR;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,kBAAkB,GACpC,iBAAiB,CAiDnB"}
1
+ {"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/display/subject.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAEV,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAKrC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,GAAG,kBAAkB,CAMxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CA4BR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,qBAAqB,GAC1C,MAAM,CAyBR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,kBAAkB,GACpC,iBAAiB,CA+CnB"}
@@ -1,6 +1,6 @@
1
1
  import { extractNameFromOBV3Identifier } from './obv3.js';
2
2
  import { imageSourceFrom } from './image.js';
3
- import { asRecord, getTrimmedString } from './text.js';
3
+ import { asRecord, getTrimmedString, recordList } from './text.js';
4
4
  /**
5
5
  * The (first) credential subject. Partially supports VCs with multiple
6
6
  * `credentialSubject` entries by picking the first one.
@@ -77,25 +77,27 @@ export function extractIssuedTo(verifiableCredential) {
77
77
  * Projects a credential subject to the render fields used by the OBv3 card /
78
78
  * detail view. Dates are RAW ISO strings (see {@link SubjectRenderInfo}).
79
79
  *
80
+ * Every field is read through a shape guard: a missing, primitive, or
81
+ * array-shaped subject (and a `degree` / `achievement` of any shape) renders
82
+ * the all-null fallback instead of throwing.
83
+ *
80
84
  * @param credentialSubject {ICredentialSubject}
81
85
  * @returns {SubjectRenderInfo}
82
86
  */
83
87
  export function credentialSubjectRenderInfo(credentialSubject) {
88
+ const subject = (asRecord(credentialSubject) ?? {});
84
89
  // SkillClaimCredential: person.name is the subject name.
85
- const personName = credentialSubject
86
- ?.person?.name;
90
+ const personName = subject?.person?.name;
87
91
  const personNameStr = typeof personName === 'string' && personName.trim()
88
92
  ? personName.trim()
89
93
  : null;
90
- const identityHashName = extractNameFromOBV3Identifier(credentialSubject) ?? null;
94
+ const identityHashName = extractNameFromOBV3Identifier(subject) ?? null;
91
95
  // Used in non-OBv3 components.
92
- const subjectName = personNameStr ?? credentialSubject?.name ?? identityHashName ?? null;
96
+ const subjectName = personNameStr ?? subject?.name ?? identityHashName ?? null;
93
97
  // Used in OBv3 components -- prioritize the identityHash over subject.name.
94
- const issuedTo = personNameStr ?? identityHashName ?? credentialSubject?.name ?? null;
95
- const degreeName = credentialSubject.degree?.name ?? null;
96
- const [achievement] = Array.isArray(credentialSubject.achievement)
97
- ? credentialSubject.achievement
98
- : [credentialSubject.achievement];
98
+ const issuedTo = personNameStr ?? identityHashName ?? subject?.name ?? null;
99
+ const degreeName = asRecord(subject.degree)?.name ?? null;
100
+ const [achievement] = recordList(subject.achievement);
99
101
  const description = achievement?.description ?? null;
100
102
  const criteria = achievement?.criteria?.narrative ?? null;
101
103
  const numberOfCredits = achievement?.awardedOnCompletionOf?.numberOfCredits?.value ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/display/subject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/display/subject.ts"],"names":[],"mappings":"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"}
@@ -39,4 +39,15 @@ export declare function getTrimmedString(value: unknown): string;
39
39
  * @returns {Record<string, unknown> | undefined}
40
40
  */
41
41
  export declare function asRecord(value: unknown): Record<string, unknown> | undefined;
42
+ /**
43
+ * Normalizes a loosely-typed JSON-LD field to an array of plain records: a
44
+ * single object is wrapped, an array is filtered down to its object entries
45
+ * (dropping `null`s and primitives), and anything else yields `[]`. Lets the
46
+ * display derivations iterate attacker-supplied credential fields without
47
+ * dereferencing a non-object.
48
+ *
49
+ * @param value {unknown}
50
+ * @returns {Record<string, unknown>[]}
51
+ */
52
+ export declare function recordList(value: unknown): Record<string, unknown>[];
42
53
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/display/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAK5E"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/display/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKvD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAK5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAKpE"}
@@ -26,11 +26,11 @@ export function asNonEmptyString(value) {
26
26
  return null;
27
27
  }
28
28
  if (typeof value === 'string') {
29
- const s = value.trim();
30
- return s.length ? s : null;
29
+ const trimmed = value.trim();
30
+ return trimmed.length ? trimmed : null;
31
31
  }
32
- const s = `${value}`.trim();
33
- return s.length ? s : null;
32
+ const trimmed = `${value}`.trim();
33
+ return trimmed.length ? trimmed : null;
34
34
  }
35
35
  /**
36
36
  * Returns the trimmed value when it is a string, else the empty string. Unlike
@@ -59,4 +59,20 @@ export function asRecord(value) {
59
59
  }
60
60
  return value;
61
61
  }
62
+ /**
63
+ * Normalizes a loosely-typed JSON-LD field to an array of plain records: a
64
+ * single object is wrapped, an array is filtered down to its object entries
65
+ * (dropping `null`s and primitives), and anything else yields `[]`. Lets the
66
+ * display derivations iterate attacker-supplied credential fields without
67
+ * dereferencing a non-object.
68
+ *
69
+ * @param value {unknown}
70
+ * @returns {Record<string, unknown>[]}
71
+ */
72
+ export function recordList(value) {
73
+ const entries = Array.isArray(value) ? value : [value];
74
+ return entries
75
+ .map(entry => asRecord(entry))
76
+ .filter((entry) => entry !== undefined);
77
+ }
62
78
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/display/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QACtB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5B,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,KAAgC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/display/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACtD,OAAO,OAAO;SACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAoC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;AAC7E,CAAC"}
@@ -8,7 +8,7 @@ import { getSubject } from './subject.js';
8
8
  * @returns {boolean}
9
9
  */
10
10
  export function isResumeCredentialSubject(credentialSubject) {
11
- return typeArray(credentialSubject?.type).some(x => x.toLowerCase().includes('resume'));
11
+ return typeArray(credentialSubject?.type).some(type => type.toLowerCase().includes('resume'));
12
12
  }
13
13
  /**
14
14
  * Whether a CREDENTIAL is a resume, by applying the subject-level substring
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/display/types.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,iBAAqC;IAErC,OAAO,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjD,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACnC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAyB;IAC1D,OAAO,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAiC;IAEjC,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAiC;IAEjC,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/display/types.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,iBAAqC;IAErC,OAAO,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpD,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAyB;IAC1D,OAAO,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAiC;IAEjC,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAiC;IAEjC,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;AACvE,CAAC"}
@@ -30,8 +30,8 @@ export function getExpirationInstant(credential) {
30
30
  if (!iso) {
31
31
  return null;
32
32
  }
33
- const d = new Date(iso);
34
- return Number.isNaN(d.getTime()) ? null : d;
33
+ const date = new Date(iso);
34
+ return Number.isNaN(date.getTime()) ? null : date;
35
35
  }
36
36
  /**
37
37
  * Whether the credential has an expiration date that is already in the past.
@@ -45,7 +45,7 @@ export function isExpired(credential) {
45
45
  if (!expiration) {
46
46
  return false;
47
47
  }
48
- const t = Date.parse(String(expiration));
49
- return !Number.isNaN(t) && t < Date.now();
48
+ const timestamp = Date.parse(String(expiration));
49
+ return !Number.isNaN(timestamp) && timestamp < Date.now();
50
50
  }
51
51
  //# sourceMappingURL=validity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validity.js","sourceRoot":"","sources":["../../src/display/validity.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAiC;IAEjC,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,CAAA;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAiC;IAEjC,OAAO,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,cAAc,CAAA;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAiC;IAEjC,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,UAAiC;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"validity.js","sourceRoot":"","sources":["../../src/display/validity.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAiC;IAEjC,OAAO,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,CAAA;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAiC;IAEjC,OAAO,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,cAAc,CAAA;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAiC;IAEjC,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,UAAiC;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC3D,CAAC"}
@@ -19,30 +19,44 @@
19
19
  * strings (Freewallet from `t(...)`, DCW its English literals).
20
20
  */
21
21
  import type { IVerifiableCredential } from '@interop/data-integrity-core';
22
- /** Per-step severity. */
22
+ /**
23
+ * Per-step severity.
24
+ */
23
25
  export type VerificationStepStatus = 'positive' | 'warning' | 'negative';
24
- /** One checklist step. */
26
+ /**
27
+ * One checklist step.
28
+ */
25
29
  export interface VerificationStep {
26
30
  valid: boolean;
27
31
  message: string;
28
32
  status: VerificationStepStatus;
29
33
  error?: string;
30
34
  }
31
- /** The five-step checklist, with `expiry` / `status` legacy aliases. */
35
+ /**
36
+ * The five-step checklist, with `expiry` / `status` legacy aliases.
37
+ */
32
38
  export interface VerificationChecklist {
33
39
  supportedFormat: VerificationStep;
34
40
  signature: VerificationStep;
35
41
  issuer: VerificationStep;
36
42
  revocation: VerificationStep;
37
43
  expiration: VerificationStep;
38
- /** @deprecated Use `expiration`. */
44
+ /**
45
+ * @deprecated Use `expiration`.
46
+ */
39
47
  expiry: VerificationStep;
40
- /** @deprecated Use `revocation`. */
48
+ /**
49
+ * @deprecated Use `revocation`.
50
+ */
41
51
  status: VerificationStep;
42
52
  }
43
- /** Rolled-up verification outcome. */
53
+ /**
54
+ * Rolled-up verification outcome.
55
+ */
44
56
  export type VerificationAggregateStatus = 'verified' | 'warning' | 'not_verified';
45
- /** The message keys `buildVerificationChecklist` looks up in the `labels` map. */
57
+ /**
58
+ * The message keys `buildVerificationChecklist` looks up in the `labels` map.
59
+ */
46
60
  export type ChecklistMsgKey = 'supportedFormatOk' | 'supportedFormatFail' | 'signatureOk' | 'signatureFail' | 'issuerOk' | 'issuerFail' | 'revocationOk' | 'revocationFail' | 'expirationOk' | 'expirationFail' | 'noExpiration';
47
61
  /**
48
62
  * Builds the five-step verification checklist from a raw `verifyCredential`
@@ -1 +1 @@
1
- {"version":3,"file":"verificationView.d.ts","sourceRoot":"","sources":["../../src/display/verificationView.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAIzE,yBAAyB;AACzB,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAExE,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,sBAAsB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wEAAwE;AACxE,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,gBAAgB,CAAA;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,oCAAoC;IACpC,MAAM,EAAE,gBAAgB,CAAA;IACxB,oCAAoC;IACpC,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,sCAAsC;AACtC,MAAM,MAAM,2BAA2B,GACrC,UAAU,GAAG,SAAS,GAAG,cAAc,CAAA;AAEzC,kFAAkF;AAClF,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,eAAe,GACf,UAAU,GACV,YAAY,GACZ,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,cAAc,CAAA;AAiKlB;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,qBAAqB,CA8BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,qBAAqB,GAAG,IAAI,GACnC,2BAA2B,GAAG,IAAI,CAmBpC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAW3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GACnC,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,CAAC,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GACxE,OAAO,CAcT"}
1
+ {"version":3,"file":"verificationView.d.ts","sourceRoot":"","sources":["../../src/display/verificationView.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAIzE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,sBAAsB,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,gBAAgB,CAAA;IACjC,SAAS,EAAE,gBAAgB,CAAA;IAC3B,MAAM,EAAE,gBAAgB,CAAA;IACxB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,UAAU,EAAE,gBAAgB,CAAA;IAC5B;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAA;IACxB;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACrC,UAAU,GAAG,SAAS,GAAG,cAAc,CAAA;AAEzC;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,eAAe,GACf,UAAU,GACV,YAAY,GACZ,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,cAAc,CAAA;AAiKlB;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GACtC,qBAAqB,CA8BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,qBAAqB,GAAG,IAAI,GACnC,2BAA2B,GAAG,IAAI,CAmBpC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAW3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GACnC,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,CAAC,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GACxE,OAAO,CAcT"}
@@ -1 +1 @@
1
- {"version":3,"file":"verificationView.js","sourceRoot":"","sources":["../../src/display/verificationView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verificationView.js","sourceRoot":"","sources":["../../src/display/verificationView.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,11 @@
10
10
  * two browsers in the room today; the same payload renders as a QR for a
11
11
  * camera-holding wallet). Nothing travels back over the channel: the account
12
12
  * pointer comes out of the keyring (the enrollee holds the unlock secret), and
13
- * the PUK comes back through the wrap-set roster.
13
+ * the user key comes back through the wrap-set roster.
14
14
  *
15
15
  * Push, not pull, in the recovery-anchor order (decryption material before
16
- * authorization): the enrolling client wraps the PUK to the new client's
17
- * key-agreement key in `key-map/puk.json` FIRST, then writes the two
16
+ * authorization): the enrolling client wraps the user key to the new client's
17
+ * key-agreement key in `key-map/user-key.json` FIRST, then writes the two
18
18
  * did:webvh log entries (commit, then add-VMs-and-update-key). No
19
19
  * authorized-but-blind window exists at any point, and both tear points
20
20
  * resume by re-running the ceremony with the same code -- a tear after the
@@ -25,12 +25,12 @@
25
25
  * `<did:webvh>#<multibase>` key -- the server authorizes it under the
26
26
  * current-key-set rule the moment the add entry publishes. Persisting the key
27
27
  * set under the app's own unlock layer is the caller's job: this module hands
28
- * back the PUK and the roster epoch to pin, and stops there.
28
+ * back the user key and the roster epoch to pin, and stops there.
29
29
  */
30
30
  import type { IKeyAgreementKey } from '@interop/data-integrity-core';
31
31
  import type { EncryptionDescriptorStore } from '@interop/was-client/edv';
32
32
  import type { ClientWebvhUpdateKeys, WebvhEnrollmentKeys, WebvhIdStore } from '../webvh/didWebvh.js';
33
- import type { Puk } from '../keys/puk.js';
33
+ import type { UserKey } from '../keys/userKey.js';
34
34
  import type { AccountPointer } from '../keyring/record.js';
35
35
  /**
36
36
  * The public halves a connect code carries -- the same four multibases
@@ -58,9 +58,11 @@ export declare function encodeEnrollmentRequest({ request }: {
58
58
  }): string;
59
59
  /**
60
60
  * Parses and validates a connect code: the prefix, the payload version, and
61
- * the shape of each key (Ed25519 multibase for the signing and update keys,
62
- * X25519 for the key-agreement key). Throws on anything malformed -- a code
63
- * is typed or scanned, so a clear refusal beats a half-parsed ceremony.
61
+ * each key decoded to its bytes (Ed25519 multibase for the signing and update
62
+ * keys, X25519 for the key-agreement key). Throws on anything malformed -- a
63
+ * code is typed or scanned, so a clear refusal beats a half-parsed ceremony,
64
+ * and the approving client signs these keys into an append-only log where a
65
+ * corrupted one would be published permanently.
64
66
  *
65
67
  * @param options {object}
66
68
  * @param options.code {string} the pasted/scanned connect code
@@ -111,8 +113,8 @@ export declare function mintEnrollmentRequest(): Promise<{
111
113
  clientDid: string;
112
114
  }>;
113
115
  /**
114
- * ENROLLING CLIENT: the whole approval, in the push order -- the PUK wrapped
115
- * into the roster first (escrow: every epoch, so the new client reads
116
+ * ENROLLING CLIENT: the whole approval, in the push order -- the user key
117
+ * wrapped into the roster first (escrow: every epoch, so the new client reads
116
118
  * pre-enrollment history), then the two log entries. Quorum-of-one: this
117
119
  * client's own update key signs both entries. Idempotent at every stage, so
118
120
  * re-approving the same code after any tear converges.
@@ -124,19 +126,19 @@ export declare function mintEnrollmentRequest(): Promise<{
124
126
  * @param options.clientKeyAgreementKey {IKeyAgreementKey} the approving
125
127
  * client's own (identity) key-agreement key, unwrapping each epoch for
126
128
  * re-wrapping
127
- * @param options.pukRosterStore {EncryptionDescriptorStore} the account's
128
- * `key-map/puk.json` descriptor store
129
+ * @param options.userKeyRosterStore {EncryptionDescriptorStore} the account's
130
+ * `key-map/user-key.json` descriptor store
129
131
  * @param options.idStore {WebvhIdStore} the account's `id` collection
130
132
  * @returns {Promise<object>} the account's did:webvh, plus the enrollee's
131
133
  * own identity as this call already knows it: its did:key and its signing-key
132
134
  * multibase (the key a label or a listing row is filed under), so the caller
133
135
  * needs no second parse of the connect code
134
136
  */
135
- export declare function approveEnrollment({ request, clientWebvhKeys, clientKeyAgreementKey, pukRosterStore, idStore }: {
137
+ export declare function approveEnrollment({ request, clientWebvhKeys, clientKeyAgreementKey, userKeyRosterStore, idStore }: {
136
138
  request: EnrollmentRequest;
137
139
  clientWebvhKeys: ClientWebvhUpdateKeys;
138
140
  clientKeyAgreementKey: IKeyAgreementKey;
139
- pukRosterStore: EncryptionDescriptorStore;
141
+ userKeyRosterStore: EncryptionDescriptorStore;
140
142
  idStore: WebvhIdStore;
141
143
  }): Promise<{
142
144
  did: string;
@@ -147,12 +149,12 @@ export declare function approveEnrollment({ request, clientWebvhKeys, clientKeyA
147
149
  * ENROLLEE, step two (after the other client approves): verifies the
148
150
  * enrollment from the world-readable log and performs this client's first
149
151
  * roster read -- signed with its just-published `<did:webvh>#<multibase>`
150
- * key -- to obtain the PUK.
152
+ * key -- to obtain the user key.
151
153
  *
152
154
  * The portable core of the completion step: the caller supplies the account
153
155
  * pointer (from its own keyring lookup) and persists what comes back -- the
154
- * PUK, the roster epoch to pin, and the key set itself -- under its own unlock
155
- * layer. After that, an ordinary unlock finds an enrolled client.
156
+ * user key, the roster epoch to pin, and the key set itself -- under its own
157
+ * unlock layer. After that, an ordinary unlock finds an enrolled client.
156
158
  *
157
159
  * Throws `EnrollmentPendingError` while the add entry is not published yet
158
160
  * (complete again once the other client finishes); any integrity failure
@@ -165,14 +167,14 @@ export declare function approveEnrollment({ request, clientWebvhKeys, clientKeyA
165
167
  * `mintEnrollmentRequest`
166
168
  * @param options.pointer {AccountPointer} the account pointer the enrollee's
167
169
  * keyring lookup recovered
168
- * @returns {Promise<{ puk: Puk, latestEpochId: string }>}
170
+ * @returns {Promise<{ userKey: UserKey, latestEpochId: string }>}
169
171
  */
170
172
  export declare function completeEnrollmentCore({ clientSeed, webvhUpdateKeys, pointer }: {
171
173
  clientSeed: Uint8Array;
172
174
  webvhUpdateKeys: ClientWebvhUpdateKeys;
173
175
  pointer: AccountPointer;
174
176
  }): Promise<{
175
- puk: Puk;
177
+ userKey: UserKey;
176
178
  latestEpochId: string;
177
179
  }>;
178
180
  //# sourceMappingURL=enrollment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAQxE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAEnD;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBAE7C,OAAO,SAC+C;CAKzD;AASD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACL,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,iBAAiB,CAwDpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAET;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,qBAAqB,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CA2BD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;IAC1B,eAAe,EAAE,qBAAqB,CAAA;IACtC,qBAAqB,EAAE,gBAAgB,CAAA;IACvC,cAAc,EAAE,yBAAyB,CAAA;IACzC,OAAO,EAAE,YAAY,CAAA;CACtB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,eAAe,EACf,OAAO,EACR,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,qBAAqB,CAAA;IACtC,OAAO,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CA8D/C"}
1
+ {"version":3,"file":"enrollment.d.ts","sourceRoot":"","sources":["../../src/enrollment/enrollment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAYxE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAQ1D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAEnD;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBAE7C,OAAO,SAC+C;CAKzD;AA+DD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAKT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACL,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,iBAAiB,CAsDpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAET;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;CAC3B,GAAG,MAAM,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,qBAAqB,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CA2BD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACR,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAA;IAC1B,eAAe,EAAE,qBAAqB,CAAA;IACtC,qBAAqB,EAAE,gBAAgB,CAAA;IACvC,kBAAkB,EAAE,yBAAyB,CAAA;IAC7C,OAAO,EAAE,YAAY,CAAA;CACtB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,eAAe,EACf,OAAO,EACR,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,qBAAqB,CAAA;IACtC,OAAO,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAmEvD"}