@interop/wallet-core 0.16.0 → 0.17.1

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 (136) hide show
  1. package/dist/clients/revocation.d.ts +5 -2
  2. package/dist/clients/revocation.d.ts.map +1 -1
  3. package/dist/clients/revocation.js +27 -11
  4. package/dist/clients/revocation.js.map +1 -1
  5. package/dist/clients/rosterPolicy.d.ts +26 -5
  6. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  7. package/dist/clients/rosterPolicy.js +93 -35
  8. package/dist/clients/rosterPolicy.js.map +1 -1
  9. package/dist/descriptors/refresh.d.ts +3 -1
  10. package/dist/descriptors/refresh.d.ts.map +1 -1
  11. package/dist/descriptors/refresh.js +3 -1
  12. package/dist/descriptors/refresh.js.map +1 -1
  13. package/dist/display/alignment.d.ts +8 -2
  14. package/dist/display/alignment.d.ts.map +1 -1
  15. package/dist/display/alignment.js +11 -8
  16. package/dist/display/alignment.js.map +1 -1
  17. package/dist/display/displayFields.d.ts +6 -2
  18. package/dist/display/displayFields.d.ts.map +1 -1
  19. package/dist/display/displayFields.js.map +1 -1
  20. package/dist/display/evidence.d.ts +9 -3
  21. package/dist/display/evidence.d.ts.map +1 -1
  22. package/dist/display/evidence.js +3 -1
  23. package/dist/display/evidence.js.map +1 -1
  24. package/dist/display/index.d.ts +1 -1
  25. package/dist/display/index.d.ts.map +1 -1
  26. package/dist/display/index.js +1 -1
  27. package/dist/display/index.js.map +1 -1
  28. package/dist/display/issuer.d.ts +12 -4
  29. package/dist/display/issuer.d.ts.map +1 -1
  30. package/dist/display/issuer.js.map +1 -1
  31. package/dist/display/obv3.d.ts +7 -2
  32. package/dist/display/obv3.d.ts.map +1 -1
  33. package/dist/display/obv3.js +14 -24
  34. package/dist/display/obv3.js.map +1 -1
  35. package/dist/display/parse.d.ts +6 -2
  36. package/dist/display/parse.d.ts.map +1 -1
  37. package/dist/display/parse.js +6 -2
  38. package/dist/display/parse.js.map +1 -1
  39. package/dist/display/subject.d.ts +4 -0
  40. package/dist/display/subject.d.ts.map +1 -1
  41. package/dist/display/subject.js +12 -10
  42. package/dist/display/subject.js.map +1 -1
  43. package/dist/display/text.d.ts +11 -0
  44. package/dist/display/text.d.ts.map +1 -1
  45. package/dist/display/text.js +20 -4
  46. package/dist/display/text.js.map +1 -1
  47. package/dist/display/types.js +1 -1
  48. package/dist/display/types.js.map +1 -1
  49. package/dist/display/validity.js +4 -4
  50. package/dist/display/validity.js.map +1 -1
  51. package/dist/display/verificationView.d.ts +21 -7
  52. package/dist/display/verificationView.d.ts.map +1 -1
  53. package/dist/display/verificationView.js.map +1 -1
  54. package/dist/enrollment/enrollment.d.ts +5 -3
  55. package/dist/enrollment/enrollment.d.ts.map +1 -1
  56. package/dist/enrollment/enrollment.js +79 -15
  57. package/dist/enrollment/enrollment.js.map +1 -1
  58. package/dist/keys/clientKeyRecord.d.ts +3 -1
  59. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  60. package/dist/keys/clientKeyRecord.js +42 -10
  61. package/dist/keys/clientKeyRecord.js.map +1 -1
  62. package/dist/keys/index.d.ts +1 -1
  63. package/dist/keys/index.d.ts.map +1 -1
  64. package/dist/keys/index.js +1 -1
  65. package/dist/keys/index.js.map +1 -1
  66. package/dist/keys/pukCascade.d.ts.map +1 -1
  67. package/dist/keys/pukCascade.js +13 -14
  68. package/dist/keys/pukCascade.js.map +1 -1
  69. package/dist/keys/pukRoster.d.ts +85 -7
  70. package/dist/keys/pukRoster.d.ts.map +1 -1
  71. package/dist/keys/pukRoster.js +136 -11
  72. package/dist/keys/pukRoster.js.map +1 -1
  73. package/dist/request/classify.d.ts +15 -1
  74. package/dist/request/classify.d.ts.map +1 -1
  75. package/dist/request/classify.js +38 -14
  76. package/dist/request/classify.js.map +1 -1
  77. package/dist/request/composeVp.d.ts.map +1 -1
  78. package/dist/request/composeVp.js +10 -3
  79. package/dist/request/composeVp.js.map +1 -1
  80. package/dist/request/matching.d.ts +6 -0
  81. package/dist/request/matching.d.ts.map +1 -1
  82. package/dist/request/matching.js +33 -8
  83. package/dist/request/matching.js.map +1 -1
  84. package/dist/request/parse.d.ts +5 -2
  85. package/dist/request/parse.d.ts.map +1 -1
  86. package/dist/request/parse.js +30 -5
  87. package/dist/request/parse.js.map +1 -1
  88. package/dist/request/presentationSuite.d.ts.map +1 -1
  89. package/dist/request/presentationSuite.js +6 -2
  90. package/dist/request/presentationSuite.js.map +1 -1
  91. package/dist/request/processRequest.js +1 -1
  92. package/dist/request/processRequest.js.map +1 -1
  93. package/dist/space/activity.d.ts +21 -7
  94. package/dist/space/activity.d.ts.map +1 -1
  95. package/dist/space/activity.js +18 -6
  96. package/dist/space/activity.js.map +1 -1
  97. package/dist/space/collections.d.ts +18 -6
  98. package/dist/space/collections.d.ts.map +1 -1
  99. package/dist/space/collections.js +18 -6
  100. package/dist/space/collections.js.map +1 -1
  101. package/dist/space/wasLink.d.ts +6 -2
  102. package/dist/space/wasLink.d.ts.map +1 -1
  103. package/dist/space/wasLink.js +5 -2
  104. package/dist/space/wasLink.js.map +1 -1
  105. package/dist/sync/contactsConflict.d.ts +1 -1
  106. package/dist/sync/contactsConflict.js +1 -1
  107. package/dist/sync/engine.d.ts +33 -11
  108. package/dist/sync/engine.d.ts.map +1 -1
  109. package/dist/sync/engine.js +4 -3
  110. package/dist/sync/engine.js.map +1 -1
  111. package/dist/sync/pull.d.ts +5 -3
  112. package/dist/sync/pull.d.ts.map +1 -1
  113. package/dist/sync/pull.js +34 -10
  114. package/dist/sync/pull.js.map +1 -1
  115. package/dist/sync/push.d.ts.map +1 -1
  116. package/dist/sync/push.js +24 -8
  117. package/dist/sync/push.js.map +1 -1
  118. package/dist/sync/types.d.ts +30 -6
  119. package/dist/sync/types.d.ts.map +1 -1
  120. package/dist/webvh/didWebvh.d.ts +28 -0
  121. package/dist/webvh/didWebvh.d.ts.map +1 -1
  122. package/dist/webvh/didWebvh.js +40 -5
  123. package/dist/webvh/didWebvh.js.map +1 -1
  124. package/dist/webvh/index.d.ts +1 -1
  125. package/dist/webvh/index.d.ts.map +1 -1
  126. package/dist/webvh/index.js +1 -1
  127. package/dist/webvh/index.js.map +1 -1
  128. package/dist/webvh/listClients.d.ts +19 -0
  129. package/dist/webvh/listClients.d.ts.map +1 -1
  130. package/dist/webvh/listClients.js +37 -1
  131. package/dist/webvh/listClients.js.map +1 -1
  132. package/dist/webvh/revokeClient.d.ts +11 -3
  133. package/dist/webvh/revokeClient.d.ts.map +1 -1
  134. package/dist/webvh/revokeClient.js +83 -14
  135. package/dist/webvh/revokeClient.js.map +1 -1
  136. package/package.json +3 -3
@@ -8,18 +8,24 @@
8
8
  * many shapes evidence appears in (string URL, `{ url }`, `{ id }`) and dropping
9
9
  * anything without a usable URL.
10
10
  */
11
- /** A resolved evidence link. */
11
+ /**
12
+ * A resolved evidence link.
13
+ */
12
14
  export type PortfolioEvidenceItem = {
13
15
  name: string;
14
16
  url: string;
15
17
  };
16
- /** Evidence item from a W3C VC evidence array: `{ id, type, name }`. */
18
+ /**
19
+ * Evidence item from a W3C VC evidence array: `{ id, type, name }`.
20
+ */
17
21
  export type VCEvidenceItem = {
18
22
  id: string;
19
23
  type?: string;
20
24
  name?: string;
21
25
  };
22
- /** A VC carrying a top-level `evidence` array (W3C / IMS OB spec). */
26
+ /**
27
+ * A VC carrying a top-level `evidence` array (W3C / IMS OB spec).
28
+ */
23
29
  export type VCWithEvidence = {
24
30
  evidence?: unknown;
25
31
  credentialSubject?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/display/evidence.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AAEH,gCAAgC;AAChC,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjE,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AA8BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,EAAE,CAG3E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,qBAAqB,EAAE,CAazB"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/display/evidence.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAgCD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,EAAE,CAG3E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,qBAAqB,EAAE,CAazB"}
@@ -8,7 +8,9 @@
8
8
  * many shapes evidence appears in (string URL, `{ url }`, `{ id }`) and dropping
9
9
  * anything without a usable URL.
10
10
  */
11
- /** Parses a single evidence item into `{ name, url }`, or `null` when unusable. */
11
+ /**
12
+ * Parses a single evidence item into `{ name, url }`, or `null` when unusable.
13
+ */
12
14
  function parseEvidenceItem(item) {
13
15
  if (typeof item === 'string') {
14
16
  const url = item.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/display/evidence.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AAkBH,mFAAmF;AACnF,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GACT,IAAgC,CAAC,GAAG;QACpC,IAAgC,CAAC,EAAE;QACpC,EAAE,CAAA;IACJ,MAAM,GAAG,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAI,IAAgC,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5D,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAA;AAChF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA0B,EAC1B,OAAiB;IAEjB,MAAM,YAAY,GAAG,UAAU,EAAE,QAAQ,CAAA;IACzC,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,EAAE,iBAAiB,CAAA;IAChD,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACrE,MAAM,SAAS,GACb,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,IAAI;QACrD,CAAC,CAAE,IAAgC,CAAC,SAAS;QAC7C,CAAC,CAAC,SAAS,CAAA;IACf,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/display/evidence.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AAwBH;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GACT,IAAgC,CAAC,GAAG;QACpC,IAAgC,CAAC,EAAE;QACpC,EAAE,CAAA;IACJ,MAAM,GAAG,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAI,IAAgC,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5D,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAA4B,CAAA;AAChF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAA0B,EAC1B,OAAiB;IAEjB,MAAM,YAAY,GAAG,UAAU,EAAE,QAAQ,CAAA;IACzC,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,EAAE,iBAAiB,CAAA;IAChD,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACrE,MAAM,SAAS,GACb,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,IAAI;QACrD,CAAC,CAAE,IAAgC,CAAC,SAAS;QAC7C,CAAC,CAAC,SAAS,CAAA;IACf,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;AACzC,CAAC"}
@@ -29,7 +29,7 @@ export { portfolioEvidenceFrom, evidenceFromCredential } from './evidence.js';
29
29
  export type { PortfolioEvidenceItem, VCEvidenceItem, VCWithEvidence } from './evidence.js';
30
30
  export { isResumeCredentialSubject, isResumeCredential, isEmploymentCredential, isVolunteerCredential } from './types.js';
31
31
  export { imageSourceFrom } from './image.js';
32
- export { asNonEmptyString, getTrimmedString, asRecord } from './text.js';
32
+ export { asNonEmptyString, getTrimmedString, asRecord, recordList } from './text.js';
33
33
  export { getDisplayFields, buildCredentialDescription, buildCriteria } from './displayFields.js';
34
34
  export type { CredentialDisplayFields } from './displayFields.js';
35
35
  export { buildVerificationChecklist, getVerificationAggregateStatus, isFullyVerified, isExpiredOnly, hasVerificationWarning, issuerRecognizedByVerification } from './verificationView.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EACjC,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC5B,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACV,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAC7E,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAExE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EACjC,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC5B,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACV,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAC7E,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACX,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,YAAY,CAAA"}
@@ -25,7 +25,7 @@ export { normalizeAlignments, getValidAlignments } from './alignment.js';
25
25
  export { portfolioEvidenceFrom, evidenceFromCredential } from './evidence.js';
26
26
  export { isResumeCredentialSubject, isResumeCredential, isEmploymentCredential, isVolunteerCredential } from './types.js';
27
27
  export { imageSourceFrom } from './image.js';
28
- export { asNonEmptyString, getTrimmedString, asRecord } from './text.js';
28
+ export { asNonEmptyString, getTrimmedString, asRecord, recordList } from './text.js';
29
29
  export { getDisplayFields, buildCredentialDescription, buildCriteria } from './displayFields.js';
30
30
  export { buildVerificationChecklist, getVerificationAggregateStatus, isFullyVerified, isExpiredOnly, hasVerificationWarning, issuerRecognizedByVerification } from './verificationView.js';
31
31
  export { credentialsFromJSON, extractCredentialsFrom, resolveCredentialsInput, ResolveCredentialsInputError, VPQR_UNSUPPORTED_MESSAGE } from './parse.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EACjC,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC5B,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACV,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGxE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAO7E,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAExE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,uBAAuB,CAAA;AAS9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/display/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EACjC,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,2BAA2B,EAC5B,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACV,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGxE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAO7E,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACX,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,aAAa,EACd,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,uBAAuB,CAAA;AAS9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,YAAY,CAAA"}
@@ -15,27 +15,35 @@
15
15
  * verifier module) so both apps can pass their own log shape.
16
16
  */
17
17
  import type { IIssuerObject, IVerifiableCredential } from '@interop/data-integrity-core';
18
- /** All-string issuer detail record (Freewallet; `''` defaults). */
18
+ /**
19
+ * All-string issuer detail record (Freewallet; `''` defaults).
20
+ */
19
21
  export interface IssuerDetails {
20
22
  id: string;
21
23
  name: string;
22
24
  url: string;
23
25
  image: string;
24
26
  }
25
- /** Nullable issuer render fields (DCW). */
27
+ /**
28
+ * Nullable issuer render fields (DCW).
29
+ */
26
30
  export interface IssuerRenderInfo {
27
31
  issuerName: string | null;
28
32
  issuerUrl: string | null;
29
33
  issuerId: string | null;
30
34
  issuerImage: string | null;
31
35
  }
32
- /** The registry metadata overlay carried in a `registered_issuer` log entry. */
36
+ /**
37
+ * The registry metadata overlay carried in a `registered_issuer` log entry.
38
+ */
33
39
  interface FederationEntity {
34
40
  organization_name?: string;
35
41
  homepage_uri?: string;
36
42
  logo_uri?: string;
37
43
  }
38
- /** Structural shape of the verification result read for the registry overlay. */
44
+ /**
45
+ * Structural shape of the verification result read for the registry overlay.
46
+ */
39
47
  interface VerifyResultLike {
40
48
  log?: Array<{
41
49
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"issuer.d.ts","sourceRoot":"","sources":["../../src/display/issuer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAEV,aAAa,EACb,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAMrC,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,gFAAgF;AAChF,UAAU,gBAAgB;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,iFAAiF;AACjF,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,CAAC,EAAE,KAAK,CAAC;YACtB,MAAM,CAAC,EAAE;gBAAE,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;aAAE,CAAA;SAClD,CAAC,CAAA;KACH,CAAC,CAAA;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,CAMpE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACtC,aAAa,CAmBf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,qBAAqB,GACjC,MAAM,GAAG,IAAI,CAUf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,UAAU,CAAC,EAAE,qBAAqB,GACjC,gBAAgB,CAkBlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,YAAY,CAAC,EAAE,gBAAgB,EAC/B,UAAU,CAAC,EAAE,qBAAqB,GACjC,gBAAgB,CAqClB"}
1
+ {"version":3,"file":"issuer.d.ts","sourceRoot":"","sources":["../../src/display/issuer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAEV,aAAa,EACb,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAMrC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,CAAC,EAAE,KAAK,CAAC;YACtB,MAAM,CAAC,EAAE;gBAAE,iBAAiB,CAAC,EAAE,gBAAgB,CAAA;aAAE,CAAA;SAClD,CAAC,CAAA;KACH,CAAC,CAAA;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,CAMpE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACtC,aAAa,CAmBf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,qBAAqB,GACjC,MAAM,GAAG,IAAI,CAUf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,UAAU,CAAC,EAAE,qBAAqB,GACjC,gBAAgB,CAkBlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,YAAY,CAAC,EAAE,gBAAgB,EAC/B,UAAU,CAAC,EAAE,qBAAqB,GACjC,gBAAgB,CAqClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"issuer.js","sourceRoot":"","sources":["../../src/display/issuer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issuer.js","sourceRoot":"","sources":["../../src/display/issuer.ts"],"names":[],"mappings":"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"}
@@ -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":"AAmBA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAC3C,iBAAyD;IAEzD,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACnC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAC7D,CAAC,CAAC,iBAAiB,CAAC,UAAU;QAC9B,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAElC,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CACxE,CAAA;IAED,OAAO,kBAAkB,EAAE,YAAY,IAAI,SAAS,CAAA;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgC;IAEhC,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAA;IAC1C,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAO,cAA2C,CAAA;IACpD,CAAC;IACD,OAAO,CAAC,cAAyC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAqC,CAAA;IAC9C,CAAC;IACD,OAAO,CAAC,QAAmC,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAe,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,kBAAkB,GAAG,wCAAwC,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmB;IAClD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,kBAAiC;IACnE,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,OAAO,kBAAkB,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC,KAAK,CAAA;IACjC,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,kBAAiC;IAClE,IAAI,OAAO,kBAAkB,EAAE,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,kBAAkB,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC"}
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`