@interop/wallet-core 0.51.0 → 0.53.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 (292) hide show
  1. package/README.md +7 -11
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +2 -2
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +1 -1
  5. package/dist/clientAnnex/forget.d.ts +18 -6
  6. package/dist/clientAnnex/forget.d.ts.map +1 -1
  7. package/dist/clientAnnex/forget.js +19 -6
  8. package/dist/clientAnnex/forget.js.map +1 -1
  9. package/dist/clientAnnex/forgetLast.d.ts +51 -30
  10. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  11. package/dist/clientAnnex/forgetLast.js +72 -26
  12. package/dist/clientAnnex/forgetLast.js.map +1 -1
  13. package/dist/clientAnnex/gc.d.ts +3 -3
  14. package/dist/clientAnnex/gc.d.ts.map +1 -1
  15. package/dist/clientAnnex/gc.js +2 -2
  16. package/dist/clientAnnex/gc.js.map +1 -1
  17. package/dist/clientAnnex/index.d.ts +6 -6
  18. package/dist/clientAnnex/index.d.ts.map +1 -1
  19. package/dist/clientAnnex/index.js +5 -5
  20. package/dist/clientAnnex/index.js.map +1 -1
  21. package/dist/clientAnnex/ladder.d.ts +19 -11
  22. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  23. package/dist/clientAnnex/ladder.js +77 -14
  24. package/dist/clientAnnex/ladder.js.map +1 -1
  25. package/dist/clientAnnex/ladderAnchored.d.ts +146 -10
  26. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  27. package/dist/clientAnnex/ladderAnchored.js +230 -26
  28. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  29. package/dist/clientAnnex/log.d.ts +6 -6
  30. package/dist/clientAnnex/log.d.ts.map +1 -1
  31. package/dist/clientAnnex/log.js +8 -8
  32. package/dist/clientAnnex/log.js.map +1 -1
  33. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +18 -7
  34. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/recoveryLadderAnchored.js +54 -14
  36. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  37. package/dist/clientAnnex/selfEnroll.d.ts +67 -6
  38. package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
  39. package/dist/clientAnnex/selfEnroll.js +91 -15
  40. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  41. package/dist/clients/listing.d.ts +1 -1
  42. package/dist/clients/listing.d.ts.map +1 -1
  43. package/dist/clients/listing.js +1 -1
  44. package/dist/clients/listing.js.map +1 -1
  45. package/dist/clients/revocation.d.ts +1 -1
  46. package/dist/clients/rosterPolicy.d.ts +1 -1
  47. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  48. package/dist/clients/rosterPolicy.js +10 -7
  49. package/dist/clients/rosterPolicy.js.map +1 -1
  50. package/dist/descriptors/acquire.js +1 -1
  51. package/dist/descriptors/logSource.d.ts +6 -4
  52. package/dist/descriptors/logSource.d.ts.map +1 -1
  53. package/dist/descriptors/logSource.js +7 -4
  54. package/dist/descriptors/logSource.js.map +1 -1
  55. package/dist/enrollment/enrollment.d.ts +1 -1
  56. package/dist/enrollment/enrollment.d.ts.map +1 -1
  57. package/dist/enrollment/enrollment.js +2 -1
  58. package/dist/enrollment/enrollment.js.map +1 -1
  59. package/dist/genesis/accountGenesis.d.ts +1 -1
  60. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  61. package/dist/genesis/accountGenesis.js +1 -1
  62. package/dist/index.d.ts +8 -3
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +7 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/keyring/kdf.d.ts +6 -20
  67. package/dist/keyring/kdf.d.ts.map +1 -1
  68. package/dist/keyring/kdf.js +8 -5
  69. package/dist/keyring/kdf.js.map +1 -1
  70. package/dist/keyring/unlockSpace.js +1 -1
  71. package/dist/keys/clientKeyRecord.d.ts +68 -1
  72. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  73. package/dist/keys/clientKeyRecord.js +155 -20
  74. package/dist/keys/clientKeyRecord.js.map +1 -1
  75. package/dist/keys/index.d.ts +2 -2
  76. package/dist/keys/index.d.ts.map +1 -1
  77. package/dist/keys/index.js +1 -1
  78. package/dist/keys/index.js.map +1 -1
  79. package/dist/keys/rosterLogStore.d.ts +16 -14
  80. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  81. package/dist/keys/rosterLogStore.js +164 -32
  82. package/dist/keys/rosterLogStore.js.map +1 -1
  83. package/dist/keys/rosterStore.d.ts +8 -7
  84. package/dist/keys/rosterStore.d.ts.map +1 -1
  85. package/dist/keys/rosterStore.js +6 -6
  86. package/dist/keys/rosterStore.js.map +1 -1
  87. package/dist/keys/spaceEpochs.d.ts +1 -1
  88. package/dist/keys/spaceEpochs.js +1 -1
  89. package/dist/keys/userKeyRoster.d.ts +3 -3
  90. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  91. package/dist/keys/userKeyRoster.js +3 -3
  92. package/dist/keys/userKeyRoster.js.map +1 -1
  93. package/dist/log.d.ts +49 -0
  94. package/dist/log.d.ts.map +1 -0
  95. package/dist/log.js +53 -0
  96. package/dist/log.js.map +1 -0
  97. package/dist/recovery/index.d.ts +2 -2
  98. package/dist/recovery/index.js +2 -2
  99. package/dist/recovery/recoveryDelegation.d.ts +6 -2
  100. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  101. package/dist/recovery/recoveryDelegation.js +32 -6
  102. package/dist/recovery/recoveryDelegation.js.map +1 -1
  103. package/dist/recovery/recoveryWebvh.d.ts +67 -8
  104. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  105. package/dist/recovery/recoveryWebvh.js +114 -19
  106. package/dist/recovery/recoveryWebvh.js.map +1 -1
  107. package/dist/request/appKey.d.ts +9 -3
  108. package/dist/request/appKey.d.ts.map +1 -1
  109. package/dist/request/appKey.js +13 -8
  110. package/dist/request/appKey.js.map +1 -1
  111. package/dist/request/capabilityRequest.d.ts +9 -1
  112. package/dist/request/capabilityRequest.d.ts.map +1 -1
  113. package/dist/request/capabilityRequest.js +13 -2
  114. package/dist/request/capabilityRequest.js.map +1 -1
  115. package/dist/request/classify.d.ts +37 -1
  116. package/dist/request/classify.d.ts.map +1 -1
  117. package/dist/request/classify.js +74 -3
  118. package/dist/request/classify.js.map +1 -1
  119. package/dist/request/ephemeralExchange.d.ts +5 -18
  120. package/dist/request/ephemeralExchange.d.ts.map +1 -1
  121. package/dist/request/ephemeralExchange.js +9 -3
  122. package/dist/request/ephemeralExchange.js.map +1 -1
  123. package/dist/request/exchangeClient.d.ts +0 -23
  124. package/dist/request/exchangeClient.d.ts.map +1 -1
  125. package/dist/request/exchangeClient.js +30 -1
  126. package/dist/request/exchangeClient.js.map +1 -1
  127. package/dist/request/index.d.ts +4 -1
  128. package/dist/request/index.d.ts.map +1 -1
  129. package/dist/request/index.js +4 -1
  130. package/dist/request/index.js.map +1 -1
  131. package/dist/request/interactionRequest.d.ts +23 -0
  132. package/dist/request/interactionRequest.d.ts.map +1 -0
  133. package/dist/request/interactionRequest.js +46 -0
  134. package/dist/request/interactionRequest.js.map +1 -0
  135. package/dist/request/interactionUrl.d.ts +3 -14
  136. package/dist/request/interactionUrl.d.ts.map +1 -1
  137. package/dist/request/interactionUrl.js +24 -3
  138. package/dist/request/interactionUrl.js.map +1 -1
  139. package/dist/request/parse.d.ts +0 -10
  140. package/dist/request/parse.d.ts.map +1 -1
  141. package/dist/request/parse.js +15 -1
  142. package/dist/request/parse.js.map +1 -1
  143. package/dist/request/processRequest.d.ts.map +1 -1
  144. package/dist/request/processRequest.js +2 -1
  145. package/dist/request/processRequest.js.map +1 -1
  146. package/dist/request/types.d.ts +23 -2
  147. package/dist/request/types.d.ts.map +1 -1
  148. package/dist/resourceLog/controller.d.ts +48 -49
  149. package/dist/resourceLog/controller.d.ts.map +1 -1
  150. package/dist/resourceLog/controller.js +41 -20
  151. package/dist/resourceLog/controller.js.map +1 -1
  152. package/dist/resourceLog/errors.d.ts +12 -78
  153. package/dist/resourceLog/errors.d.ts.map +1 -1
  154. package/dist/resourceLog/errors.js +12 -79
  155. package/dist/resourceLog/errors.js.map +1 -1
  156. package/dist/resourceLog/index.d.ts +17 -22
  157. package/dist/resourceLog/index.d.ts.map +1 -1
  158. package/dist/resourceLog/index.js +16 -21
  159. package/dist/resourceLog/index.js.map +1 -1
  160. package/dist/resourceLog/license.d.ts +42 -27
  161. package/dist/resourceLog/license.d.ts.map +1 -1
  162. package/dist/resourceLog/license.js +53 -30
  163. package/dist/resourceLog/license.js.map +1 -1
  164. package/dist/space/activity.d.ts +48 -1
  165. package/dist/space/activity.d.ts.map +1 -1
  166. package/dist/space/activity.js +52 -4
  167. package/dist/space/activity.js.map +1 -1
  168. package/dist/space/index.d.ts +1 -1
  169. package/dist/space/index.d.ts.map +1 -1
  170. package/dist/space/index.js +1 -1
  171. package/dist/space/index.js.map +1 -1
  172. package/dist/sync/pull.d.ts +0 -22
  173. package/dist/sync/pull.d.ts.map +1 -1
  174. package/dist/sync/pull.js +30 -2
  175. package/dist/sync/pull.js.map +1 -1
  176. package/dist/unlock/index.d.ts +7 -7
  177. package/dist/unlock/index.d.ts.map +1 -1
  178. package/dist/unlock/index.js +6 -6
  179. package/dist/unlock/index.js.map +1 -1
  180. package/dist/unlock/retire.d.ts +29 -28
  181. package/dist/unlock/retire.d.ts.map +1 -1
  182. package/dist/unlock/retire.js +25 -16
  183. package/dist/unlock/retire.js.map +1 -1
  184. package/dist/unlock/standingClient.d.ts +1 -1
  185. package/dist/unlock/standingClient.js +3 -3
  186. package/dist/unlock/standingWebvh.d.ts +28 -10
  187. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  188. package/dist/unlock/standingWebvh.js +75 -37
  189. package/dist/unlock/standingWebvh.js.map +1 -1
  190. package/dist/unlock/unlockRecord.d.ts +37 -0
  191. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  192. package/dist/unlock/unlockRecord.js +54 -1
  193. package/dist/unlock/unlockRecord.js.map +1 -1
  194. package/dist/webvh/delegatedLogStore.d.ts +2 -2
  195. package/dist/webvh/delegatedLogStore.js +2 -2
  196. package/dist/webvh/didWeb.js +1 -1
  197. package/dist/webvh/didWeb.js.map +1 -1
  198. package/dist/webvh/didWebvh.d.ts +33 -3
  199. package/dist/webvh/didWebvh.d.ts.map +1 -1
  200. package/dist/webvh/didWebvh.js +40 -11
  201. package/dist/webvh/didWebvh.js.map +1 -1
  202. package/dist/webvh/index.d.ts +1 -1
  203. package/dist/webvh/index.d.ts.map +1 -1
  204. package/dist/webvh/index.js +1 -1
  205. package/dist/webvh/index.js.map +1 -1
  206. package/dist/webvh/listClients.js +1 -1
  207. package/dist/webvh/listClients.js.map +1 -1
  208. package/dist/webvh/verifyLog.d.ts +1 -1
  209. package/dist/webvh/verifyLog.d.ts.map +1 -1
  210. package/dist/webvh/verifyLog.js +1 -2
  211. package/dist/webvh/verifyLog.js.map +1 -1
  212. package/package.json +9 -11
  213. package/dist/display/alignment.d.ts +0 -55
  214. package/dist/display/alignment.d.ts.map +0 -1
  215. package/dist/display/alignment.js +0 -117
  216. package/dist/display/alignment.js.map +0 -1
  217. package/dist/display/credentialName.d.ts +0 -42
  218. package/dist/display/credentialName.d.ts.map +0 -1
  219. package/dist/display/credentialName.js +0 -106
  220. package/dist/display/credentialName.js.map +0 -1
  221. package/dist/display/displayFields.d.ts +0 -59
  222. package/dist/display/displayFields.d.ts.map +0 -1
  223. package/dist/display/displayFields.js +0 -136
  224. package/dist/display/displayFields.js.map +0 -1
  225. package/dist/display/evidence.d.ts +0 -50
  226. package/dist/display/evidence.d.ts.map +0 -1
  227. package/dist/display/evidence.js +0 -67
  228. package/dist/display/evidence.js.map +0 -1
  229. package/dist/display/image.d.ts +0 -18
  230. package/dist/display/image.d.ts.map +0 -1
  231. package/dist/display/image.js +0 -23
  232. package/dist/display/image.js.map +0 -1
  233. package/dist/display/index.d.ts +0 -38
  234. package/dist/display/index.d.ts.map +0 -1
  235. package/dist/display/index.js +0 -32
  236. package/dist/display/index.js.map +0 -1
  237. package/dist/display/issuer.d.ts +0 -105
  238. package/dist/display/issuer.d.ts.map +0 -1
  239. package/dist/display/issuer.js +0 -126
  240. package/dist/display/issuer.js.map +0 -1
  241. package/dist/display/obv3.d.ts +0 -82
  242. package/dist/display/obv3.d.ts.map +0 -1
  243. package/dist/display/obv3.js +0 -117
  244. package/dist/display/obv3.js.map +0 -1
  245. package/dist/display/parse.d.ts +0 -66
  246. package/dist/display/parse.d.ts.map +0 -1
  247. package/dist/display/parse.js +0 -104
  248. package/dist/display/parse.js.map +0 -1
  249. package/dist/display/subject.d.ts +0 -79
  250. package/dist/display/subject.d.ts.map +0 -1
  251. package/dist/display/subject.js +0 -124
  252. package/dist/display/subject.js.map +0 -1
  253. package/dist/display/text.d.ts +0 -53
  254. package/dist/display/text.d.ts.map +0 -1
  255. package/dist/display/text.js +0 -78
  256. package/dist/display/text.js.map +0 -1
  257. package/dist/display/types.d.ts +0 -55
  258. package/dist/display/types.d.ts.map +0 -1
  259. package/dist/display/types.js +0 -41
  260. package/dist/display/types.js.map +0 -1
  261. package/dist/display/validity.d.ts +0 -51
  262. package/dist/display/validity.d.ts.map +0 -1
  263. package/dist/display/validity.js +0 -51
  264. package/dist/display/validity.js.map +0 -1
  265. package/dist/display/verificationView.d.ts +0 -115
  266. package/dist/display/verificationView.d.ts.map +0 -1
  267. package/dist/display/verificationView.js +0 -199
  268. package/dist/display/verificationView.js.map +0 -1
  269. package/dist/resourceLog/append.d.ts +0 -112
  270. package/dist/resourceLog/append.d.ts.map +0 -1
  271. package/dist/resourceLog/append.js +0 -197
  272. package/dist/resourceLog/append.js.map +0 -1
  273. package/dist/resourceLog/entry.d.ts +0 -68
  274. package/dist/resourceLog/entry.d.ts.map +0 -1
  275. package/dist/resourceLog/entry.js +0 -167
  276. package/dist/resourceLog/entry.js.map +0 -1
  277. package/dist/resourceLog/pin.d.ts +0 -82
  278. package/dist/resourceLog/pin.d.ts.map +0 -1
  279. package/dist/resourceLog/pin.js +0 -57
  280. package/dist/resourceLog/pin.js.map +0 -1
  281. package/dist/resourceLog/seal.d.ts +0 -97
  282. package/dist/resourceLog/seal.d.ts.map +0 -1
  283. package/dist/resourceLog/seal.js +0 -113
  284. package/dist/resourceLog/seal.js.map +0 -1
  285. package/dist/resourceLog/verify.d.ts +0 -96
  286. package/dist/resourceLog/verify.d.ts.map +0 -1
  287. package/dist/resourceLog/verify.js +0 -474
  288. package/dist/resourceLog/verify.js.map +0 -1
  289. package/dist/resourceLog/vmFragment.d.ts +0 -33
  290. package/dist/resourceLog/vmFragment.d.ts.map +0 -1
  291. package/dist/resourceLog/vmFragment.js +0 -39
  292. package/dist/resourceLog/vmFragment.js.map +0 -1
@@ -1,42 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * Credential title derivation.
6
- *
7
- * Drift resolution (merged chain): DCW and Freewallet produced different titles
8
- * for the same credential. The merged `credentialName` keeps DCW's
9
- * type-specific human prefixes first (product copy its screens rely on:
10
- * `Recommendation From ...`, `Performance Review: ...`, the SkillClaim skill
11
- * name, `Employment: ... @ ...`, `Volunteer: ... @ ...`), then falls through to
12
- * Freewallet's more complete generic chain: top-level `vc.name`, achievement
13
- * name(s) JOINED with `' · '` (DCW returned only the first), skill name(s),
14
- * resolved person full name, `hasCredential.name`, a `'Skill Claim'` label for
15
- * a SkillClaimCredential, and finally `'Verifiable Credential'`.
16
- *
17
- * Deliberate behavior changes vs DCW: the final fallback is now
18
- * `'Verifiable Credential'` (was `'Unknown Credential'`); a multi-achievement
19
- * VC joins all names with `' · '`; and an `achievement` name now wins over a
20
- * sibling `hasCredential` name (Freewallet's chain order), where DCW preferred
21
- * `hasCredential`.
22
- */
23
- import type { IVerifiableCredential } from '@interop/data-integrity-core';
24
- /**
25
- * Freewallet's generic title chain over a resolved subject: top-level name,
26
- * achievement name(s), skill name(s), person full name, `hasCredential.name`,
27
- * a `'Skill Claim'` label, else `'Verifiable Credential'`.
28
- *
29
- * @param verifiableCredential {IVerifiableCredential}
30
- * @param subject {Record<string, unknown>}
31
- * @returns {string}
32
- */
33
- export declare function credentialNameFrom(verifiableCredential: IVerifiableCredential, subject: Record<string, unknown>): string;
34
- /**
35
- * The display title for a credential: DCW's type-specific prefixes first, then
36
- * the generic {@link credentialNameFrom} chain.
37
- *
38
- * @param credential {IVerifiableCredential}
39
- * @returns {string}
40
- */
41
- export declare function credentialName(credential: IVerifiableCredential): string;
42
- //# sourceMappingURL=credentialName.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentialName.d.ts","sourceRoot":"","sources":["../../src/display/credentialName.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAOzE;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,oBAAoB,EAAE,qBAAqB,EAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CA8CR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,CAkDxE"}
@@ -1,106 +0,0 @@
1
- import { typeArray } from '@interop/data-integrity-core/guards';
2
- import { getSubject, resolvePersonFullName } from './subject.js';
3
- import { achievementsList, skillsList } from './obv3.js';
4
- import { isEmploymentCredential, isVolunteerCredential } from './types.js';
5
- import { asNonEmptyString, asRecord, getTrimmedString } from './text.js';
6
- /**
7
- * Freewallet's generic title chain over a resolved subject: top-level name,
8
- * achievement name(s), skill name(s), person full name, `hasCredential.name`,
9
- * a `'Skill Claim'` label, else `'Verifiable Credential'`.
10
- *
11
- * @param verifiableCredential {IVerifiableCredential}
12
- * @param subject {Record<string, unknown>}
13
- * @returns {string}
14
- */
15
- export function credentialNameFrom(verifiableCredential, subject) {
16
- const topLevelName = getTrimmedString(verifiableCredential.name);
17
- if (topLevelName) {
18
- return topLevelName;
19
- }
20
- const achievementNames = achievementsList(subject)
21
- .map(achievement => getTrimmedString(achievement.name))
22
- .filter((name) => Boolean(name));
23
- if (achievementNames.length > 1) {
24
- return achievementNames.join(' · ');
25
- }
26
- const [firstAchievementName] = achievementNames;
27
- if (firstAchievementName) {
28
- return firstAchievementName;
29
- }
30
- const skillNames = skillsList(subject)
31
- .map(skill => getTrimmedString(skill.name))
32
- .filter((name) => Boolean(name));
33
- if (skillNames.length > 1) {
34
- return skillNames.join(' · ');
35
- }
36
- const [firstSkillName] = skillNames;
37
- if (firstSkillName) {
38
- return firstSkillName;
39
- }
40
- const resumeFullName = resolvePersonFullName(subject);
41
- if (resumeFullName) {
42
- return resumeFullName;
43
- }
44
- const hasCredential = asRecord(subject.hasCredential);
45
- const hasCredentialName = getTrimmedString(hasCredential?.name);
46
- if (hasCredentialName) {
47
- return hasCredentialName;
48
- }
49
- if (typeArray(verifiableCredential.type).includes('SkillClaimCredential')) {
50
- return 'Skill Claim';
51
- }
52
- return 'Verifiable Credential';
53
- }
54
- /**
55
- * The display title for a credential: DCW's type-specific prefixes first, then
56
- * the generic {@link credentialNameFrom} chain.
57
- *
58
- * @param credential {IVerifiableCredential}
59
- * @returns {string}
60
- */
61
- export function credentialName(credential) {
62
- const types = typeArray(credential.type);
63
- const subject = asRecord(getSubject(credential)) ?? {};
64
- if (types.includes('https://schema.org/RecommendationCredential')) {
65
- const name = asNonEmptyString(subject.name);
66
- return name ? `Recommendation From ${name}` : 'Recommendation Credential';
67
- }
68
- if (types.includes('PerformanceReviewCredential')) {
69
- const employeeName = asNonEmptyString(subject.employeeName);
70
- return employeeName
71
- ? `Performance Review: ${employeeName}`
72
- : 'Performance Review Credential';
73
- }
74
- if (types.includes('SkillClaimCredential')) {
75
- const [firstSkill] = skillsList(subject);
76
- const skillName = asNonEmptyString(firstSkill?.name);
77
- if (skillName) {
78
- return skillName;
79
- }
80
- // fall through to the generic chain (lands on 'Skill Claim')
81
- }
82
- if (isEmploymentCredential(credential)) {
83
- const fullName = asNonEmptyString(subject.fullName);
84
- const company = asNonEmptyString(subject.company);
85
- if (fullName && company) {
86
- return `Employment: ${fullName} @ ${company}`;
87
- }
88
- if (fullName) {
89
- return `Employment: ${fullName}`;
90
- }
91
- return 'Employment Credential';
92
- }
93
- if (isVolunteerCredential(credential)) {
94
- const fullName = asNonEmptyString(subject.fullName);
95
- const volunteerOrg = asNonEmptyString(subject.volunteerOrg);
96
- if (fullName && volunteerOrg) {
97
- return `Volunteer: ${fullName} @ ${volunteerOrg}`;
98
- }
99
- if (fullName) {
100
- return `Volunteer: ${fullName}`;
101
- }
102
- return 'Volunteer Credential';
103
- }
104
- return credentialNameFrom(credential, subject);
105
- }
106
- //# sourceMappingURL=credentialName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentialName.js","sourceRoot":"","sources":["../../src/display/credentialName.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * Freewallet's aggregate display projection: one pass over a VC producing the
6
- * flat field set the credential card and detail view render. Dates stay RAW
7
- * (the `expirationDate` field is an ISO string, not a formatted one -- the
8
- * raw-values seam); the title comes from the merged {@link credentialName}.
9
- *
10
- * `credentialNameFrom` lives in `credentialName.ts` (co-located with the merged
11
- * title fn that calls it); `buildCredentialDescription` / `buildCriteria` are
12
- * Freewallet's, kept here as they are used only by `getDisplayFields` (and
13
- * covered by the ported helper tests).
14
- */
15
- import type { IAlignment, IVerifiableCredential } from '@interop/data-integrity-core';
16
- /**
17
- * The flat display projection of a VC for the card / detail view.
18
- */
19
- export interface CredentialDisplayFields {
20
- credentialName: string;
21
- issuedTo: string;
22
- /**
23
- * Raw ISO expiration string (`''` when none).
24
- */
25
- expirationDate: string;
26
- credentialDescription: string;
27
- criteria: string;
28
- achievementImage: string;
29
- achievementType: string;
30
- alignments: IAlignment[];
31
- }
32
- /**
33
- * Joins achievement descriptions, skill narratives / durations, and various
34
- * subject description fields into a single paragraph-separated string.
35
- *
36
- * @param subject {Record<string, unknown>}
37
- * @param achievements {Record<string, unknown>[]}
38
- * @returns {string}
39
- */
40
- export declare function buildCredentialDescription(subject: Record<string, unknown>, achievements: Record<string, unknown>[]): string;
41
- /**
42
- * Builds the criteria text from the achievements' criteria narratives (labeled
43
- * with the achievement name when there is more than one), falling back to the
44
- * subject's `hasCredential.competencyRequired`.
45
- *
46
- * @param subject {Record<string, unknown>}
47
- * @param achievements {Record<string, unknown>[]}
48
- * @returns {string}
49
- */
50
- export declare function buildCriteria(subject: Record<string, unknown>, achievements: Record<string, unknown>[]): string;
51
- /**
52
- * Projects a VC to its flat display field set. The title uses the merged
53
- * {@link credentialName}; `expirationDate` is a raw ISO string.
54
- *
55
- * @param verifiableCredential {IVerifiableCredential}
56
- * @returns {CredentialDisplayFields}
57
- */
58
- export declare function getDisplayFields(verifiableCredential: IVerifiableCredential): CredentialDisplayFields;
59
- //# sourceMappingURL=displayFields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"displayFields.d.ts","sourceRoot":"","sources":["../../src/display/displayFields.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAEV,UAAU,EACV,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AAerC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,UAAU,EAAE,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACtC,MAAM,CAqDR;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACtC,MAAM,CAuBR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,oBAAoB,EAAE,qBAAqB,GAC1C,uBAAuB,CA2CzB"}
@@ -1,136 +0,0 @@
1
- import { credentialName } from './credentialName.js';
2
- import { getSubject, extractIssuedTo } from './subject.js';
3
- import { getExpirationDate } from './validity.js';
4
- import { achievementsList, skillsList, getSkillImage, getEvidenceImage, getAchievementImage, getAchievementType } from './obv3.js';
5
- import { normalizeAlignments } from './alignment.js';
6
- import { asRecord, getTrimmedString } from './text.js';
7
- /**
8
- * Joins achievement descriptions, skill narratives / durations, and various
9
- * subject description fields into a single paragraph-separated string.
10
- *
11
- * @param subject {Record<string, unknown>}
12
- * @param achievements {Record<string, unknown>[]}
13
- * @returns {string}
14
- */
15
- export function buildCredentialDescription(subject, achievements) {
16
- const descriptionParts = [];
17
- for (const achievement of achievements) {
18
- const achievementDescription = getTrimmedString(achievement.description);
19
- if (achievementDescription) {
20
- descriptionParts.push(achievementDescription);
21
- }
22
- }
23
- for (const skill of skillsList(subject)) {
24
- const narrative = getTrimmedString(skill.narrative);
25
- if (narrative) {
26
- descriptionParts.push(narrative);
27
- }
28
- const skillDuration = getTrimmedString(skill.durationPerformed);
29
- if (skillDuration) {
30
- descriptionParts.push(`Duration: ${skillDuration}`);
31
- }
32
- }
33
- const subjectNarrative = getTrimmedString(subject.narrative);
34
- if (subjectNarrative) {
35
- descriptionParts.push(subjectNarrative);
36
- }
37
- const evidenceDescription = getTrimmedString(subject.evidenceDescription);
38
- if (evidenceDescription) {
39
- descriptionParts.push(evidenceDescription);
40
- }
41
- const duration = getTrimmedString(subject.duration);
42
- if (duration) {
43
- descriptionParts.push(`Duration: ${duration}`);
44
- }
45
- const evidenceLink = getTrimmedString(subject.evidenceLink);
46
- if (evidenceLink) {
47
- descriptionParts.push(`Evidence: ${evidenceLink}`);
48
- }
49
- const subjectDescription = getTrimmedString(subject.description);
50
- if (subjectDescription) {
51
- descriptionParts.push(subjectDescription);
52
- }
53
- const hasCredential = asRecord(subject.hasCredential);
54
- const hasCredentialDescription = getTrimmedString(hasCredential?.description);
55
- if (hasCredentialDescription) {
56
- descriptionParts.push(hasCredentialDescription);
57
- }
58
- return descriptionParts.join('\n\n');
59
- }
60
- /**
61
- * Builds the criteria text from the achievements' criteria narratives (labeled
62
- * with the achievement name when there is more than one), falling back to the
63
- * subject's `hasCredential.competencyRequired`.
64
- *
65
- * @param subject {Record<string, unknown>}
66
- * @param achievements {Record<string, unknown>[]}
67
- * @returns {string}
68
- */
69
- export function buildCriteria(subject, achievements) {
70
- const criteriaBlocks = achievements
71
- .map(achievement => {
72
- const criteria = asRecord(achievement.criteria);
73
- const narrative = getTrimmedString(criteria?.narrative);
74
- if (!narrative) {
75
- return '';
76
- }
77
- const achievementName = getTrimmedString(achievement.name);
78
- if (achievements.length > 1 && achievementName) {
79
- return `**${achievementName}**\n\n${narrative}`;
80
- }
81
- return narrative;
82
- })
83
- .filter((criteriaBlock) => Boolean(criteriaBlock));
84
- const criteriaText = criteriaBlocks.join('\n\n');
85
- if (criteriaText) {
86
- return criteriaText;
87
- }
88
- const hasCredential = asRecord(subject.hasCredential);
89
- return getTrimmedString(hasCredential?.competencyRequired);
90
- }
91
- /**
92
- * Projects a VC to its flat display field set. The title uses the merged
93
- * {@link credentialName}; `expirationDate` is a raw ISO string.
94
- *
95
- * @param verifiableCredential {IVerifiableCredential}
96
- * @returns {CredentialDisplayFields}
97
- */
98
- export function getDisplayFields(verifiableCredential) {
99
- const commonFields = {
100
- credentialName: credentialName(verifiableCredential),
101
- issuedTo: extractIssuedTo(verifiableCredential),
102
- expirationDate: getExpirationDate(verifiableCredential) ?? ''
103
- };
104
- const subject = asRecord(getSubject(verifiableCredential));
105
- if (!subject) {
106
- return {
107
- ...commonFields,
108
- credentialDescription: '',
109
- criteria: '',
110
- achievementImage: '',
111
- achievementType: '',
112
- alignments: []
113
- };
114
- }
115
- const achievements = achievementsList(subject);
116
- const primaryAchievement = achievements[0];
117
- const skills = skillsList(subject);
118
- const alignments = achievements.flatMap(achievement => normalizeAlignments(achievement.alignment));
119
- const evidenceRaw = verifiableCredential.evidence;
120
- const evidence = Array.isArray(evidenceRaw)
121
- ? evidenceRaw
122
- : evidenceRaw
123
- ? [evidenceRaw]
124
- : [];
125
- return {
126
- ...commonFields,
127
- credentialDescription: buildCredentialDescription(subject, achievements),
128
- criteria: buildCriteria(subject, achievements),
129
- achievementImage: getAchievementImage(primaryAchievement) ||
130
- getSkillImage(skills) ||
131
- getEvidenceImage(evidence),
132
- achievementType: getAchievementType(primaryAchievement),
133
- alignments
134
- };
135
- }
136
- //# sourceMappingURL=displayFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"displayFields.js","sourceRoot":"","sources":["../../src/display/displayFields.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * Portfolio-evidence extraction (from DCW; no Freewallet equivalent beyond the
6
- * image helper in `obv3.ts`). Turns a credential's `evidence` array (or a
7
- * subject `portfolio`) into a flat list of `{ name, url }` links, coercing the
8
- * many shapes evidence appears in (string URL, `{ url }`, `{ id }`) and dropping
9
- * anything without a usable URL.
10
- */
11
- /**
12
- * A resolved evidence link.
13
- */
14
- export type PortfolioEvidenceItem = {
15
- name: string;
16
- url: string;
17
- };
18
- /**
19
- * Evidence item from a W3C VC evidence array: `{ id, type, name }`.
20
- */
21
- export type VCEvidenceItem = {
22
- id: string;
23
- type?: string;
24
- name?: string;
25
- };
26
- /**
27
- * A VC carrying a top-level `evidence` array (W3C / IMS OB spec).
28
- */
29
- export type VCWithEvidence = {
30
- evidence?: unknown;
31
- credentialSubject?: unknown;
32
- };
33
- /**
34
- * Extracts evidence links from a raw array/object/string, dropping items with
35
- * no usable URL.
36
- *
37
- * @param raw {unknown}
38
- * @returns {PortfolioEvidenceItem[]}
39
- */
40
- export declare function portfolioEvidenceFrom(raw: unknown): PortfolioEvidenceItem[];
41
- /**
42
- * Extracts evidence from a credential: prefers the credential's top-level
43
- * `evidence` array, else falls back to the subject's `portfolio`.
44
- *
45
- * @param credential {VCWithEvidence}
46
- * @param subject {unknown} optional pre-resolved subject
47
- * @returns {PortfolioEvidenceItem[]}
48
- */
49
- export declare function evidenceFromCredential(credential: VCWithEvidence, subject?: unknown): PortfolioEvidenceItem[];
50
- //# sourceMappingURL=evidence.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,67 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * Portfolio-evidence extraction (from DCW; no Freewallet equivalent beyond the
6
- * image helper in `obv3.ts`). Turns a credential's `evidence` array (or a
7
- * subject `portfolio`) into a flat list of `{ name, url }` links, coercing the
8
- * many shapes evidence appears in (string URL, `{ url }`, `{ id }`) and dropping
9
- * anything without a usable URL.
10
- */
11
- /**
12
- * Parses a single evidence item into `{ name, url }`, or `null` when unusable.
13
- */
14
- function parseEvidenceItem(item) {
15
- if (typeof item === 'string') {
16
- const url = item.trim();
17
- if (!url) {
18
- return null;
19
- }
20
- return { name: url, url };
21
- }
22
- if (!item || typeof item !== 'object') {
23
- return null;
24
- }
25
- const rawUrl = item.url ??
26
- item.id ??
27
- '';
28
- const url = (typeof rawUrl === 'string' ? rawUrl : `${rawUrl}`).trim();
29
- if (!url) {
30
- return null;
31
- }
32
- const rawName = item.name ?? '';
33
- const name = (typeof rawName === 'string' ? rawName : `${rawName}`).trim();
34
- return { name: name || url, url };
35
- }
36
- /**
37
- * Extracts evidence links from a raw array/object/string, dropping items with
38
- * no usable URL.
39
- *
40
- * @param raw {unknown}
41
- * @returns {PortfolioEvidenceItem[]}
42
- */
43
- export function portfolioEvidenceFrom(raw) {
44
- const items = Array.isArray(raw) ? raw : [raw];
45
- return items.map(parseEvidenceItem).filter(Boolean);
46
- }
47
- /**
48
- * Extracts evidence from a credential: prefers the credential's top-level
49
- * `evidence` array, else falls back to the subject's `portfolio`.
50
- *
51
- * @param credential {VCWithEvidence}
52
- * @param subject {unknown} optional pre-resolved subject
53
- * @returns {PortfolioEvidenceItem[]}
54
- */
55
- export function evidenceFromCredential(credential, subject) {
56
- const fromEvidence = credential?.evidence;
57
- if (fromEvidence && Array.isArray(fromEvidence) && fromEvidence.length > 0) {
58
- return portfolioEvidenceFrom(fromEvidence);
59
- }
60
- const rawSubject = credential?.credentialSubject;
61
- const subj = subject ?? (Array.isArray(rawSubject) ? rawSubject[0] : rawSubject);
62
- const portfolio = subj && typeof subj === 'object' && 'portfolio' in subj
63
- ? subj.portfolio
64
- : undefined;
65
- return portfolioEvidenceFrom(portfolio);
66
- }
67
- //# sourceMappingURL=evidence.js.map
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * Resolves an image reference to its URL string. A VC image may be a bare URL
6
- * string or an `IImageObject` (`{ id, type }`) whose `id` is the URL. Returns
7
- * `null` (not `''`) when there is no usable image, matching DCW's convention.
8
- */
9
- import type { IImageObject } from '@interop/data-integrity-core';
10
- /**
11
- * The URL string of an image reference (the object's `id`, or the string
12
- * itself), or `null` when absent.
13
- *
14
- * @param image {IImageObject | string | null | undefined}
15
- * @returns {string | null}
16
- */
17
- export declare function imageSourceFrom(image?: IImageObject | string | null): string | null;
18
- //# sourceMappingURL=image.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/display/image.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAMhE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GACnC,MAAM,GAAG,IAAI,CAWf"}
@@ -1,23 +0,0 @@
1
- function isImageObject(obj) {
2
- return typeof obj === 'object' && obj !== null && 'id' in obj && 'type' in obj;
3
- }
4
- /**
5
- * The URL string of an image reference (the object's `id`, or the string
6
- * itself), or `null` when absent.
7
- *
8
- * @param image {IImageObject | string | null | undefined}
9
- * @returns {string | null}
10
- */
11
- export function imageSourceFrom(image) {
12
- if (image === undefined || image === null) {
13
- return null;
14
- }
15
- if (isImageObject(image)) {
16
- return image.id;
17
- }
18
- if (typeof image === 'string') {
19
- return image;
20
- }
21
- return null;
22
- }
23
- //# sourceMappingURL=image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/display/image.ts"],"names":[],"mappings":"AAUA,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAA;AAChF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoC;IAEpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,EAAE,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,38 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * The `@interop/wallet-core/display` subpath: the pure VC derivation / display
6
- * helpers and credential input parsing two wallet apps (DCW, Freewallet) share,
7
- * reconciled from their two drifted implementations.
8
- *
9
- * Guiding seam: RETURN RAW VALUES, FORMAT IN THE UI. Nothing here imports
10
- * `moment`, `Intl`, `i18next`, `react-native`, or any app config. Dates come
11
- * out as ISO strings / `Date`; verification messages are injected as a `labels`
12
- * map; URL fetching is injected as a `fetchUrl` callback. Each app keeps a thin
13
- * wrapper that re-applies its own formatting / localization / transport.
14
- *
15
- * The loose-shape guards / normalizers (`isVerifiableCredential`, `typeArray`,
16
- * `issuerId`, `subjectId`, ...) live in `@interop/data-integrity-core` (shared
17
- * with the `./request` subpath); import them from there.
18
- */
19
- export { credentialName, credentialNameFrom } from './credentialName.js';
20
- export { issuerName, getIssuerDetails, personNameFromCredential, issuerRenderInfoFrom, issuerRenderInfoWithVerification } from './issuer.js';
21
- export type { IssuerDetails, IssuerRenderInfo } from './issuer.js';
22
- export { getSubject, resolvePersonFullName, extractIssuedTo, credentialSubjectRenderInfo } from './subject.js';
23
- export type { SubjectRenderInfo } from './subject.js';
24
- export { getIssuanceDate, getExpirationDate, getExpirationInstant, isExpired } from './validity.js';
25
- export { extractNameFromOBV3Identifier, achievementsList, skillsList, getSkillImage, getEvidenceImage, getAchievementImage, getAchievementType } from './obv3.js';
26
- export { normalizeAlignments, getValidAlignments } from './alignment.js';
27
- export type { IAlignmentView, ValidAlignment } from './alignment.js';
28
- export { portfolioEvidenceFrom, evidenceFromCredential } from './evidence.js';
29
- export type { PortfolioEvidenceItem, VCEvidenceItem, VCWithEvidence } from './evidence.js';
30
- export { isResumeCredentialSubject, isResumeCredential, isEmploymentCredential, isVolunteerCredential } from './types.js';
31
- export { imageSourceFrom } from './image.js';
32
- export { asNonEmptyString, getTrimmedString, asRecord, recordList } from './text.js';
33
- export { getDisplayFields, buildCredentialDescription, buildCriteria } from './displayFields.js';
34
- export type { CredentialDisplayFields } from './displayFields.js';
35
- export { buildVerificationChecklist, getVerificationAggregateStatus, isFullyVerified, isExpiredOnly, hasVerificationWarning, issuerRecognizedByVerification } from './verificationView.js';
36
- export type { VerificationStep, VerificationChecklist, VerificationStepStatus, VerificationAggregateStatus, ChecklistMsgKey } from './verificationView.js';
37
- export { credentialsFromJSON, extractCredentialsFrom, resolveCredentialsInput, ResolveCredentialsInputError, VPQR_UNSUPPORTED_MESSAGE } from './parse.js';
38
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,32 +0,0 @@
1
- /*!
2
- * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
- */
4
- /**
5
- * The `@interop/wallet-core/display` subpath: the pure VC derivation / display
6
- * helpers and credential input parsing two wallet apps (DCW, Freewallet) share,
7
- * reconciled from their two drifted implementations.
8
- *
9
- * Guiding seam: RETURN RAW VALUES, FORMAT IN THE UI. Nothing here imports
10
- * `moment`, `Intl`, `i18next`, `react-native`, or any app config. Dates come
11
- * out as ISO strings / `Date`; verification messages are injected as a `labels`
12
- * map; URL fetching is injected as a `fetchUrl` callback. Each app keeps a thin
13
- * wrapper that re-applies its own formatting / localization / transport.
14
- *
15
- * The loose-shape guards / normalizers (`isVerifiableCredential`, `typeArray`,
16
- * `issuerId`, `subjectId`, ...) live in `@interop/data-integrity-core` (shared
17
- * with the `./request` subpath); import them from there.
18
- */
19
- export { credentialName, credentialNameFrom } from './credentialName.js';
20
- export { issuerName, getIssuerDetails, personNameFromCredential, issuerRenderInfoFrom, issuerRenderInfoWithVerification } from './issuer.js';
21
- export { getSubject, resolvePersonFullName, extractIssuedTo, credentialSubjectRenderInfo } from './subject.js';
22
- export { getIssuanceDate, getExpirationDate, getExpirationInstant, isExpired } from './validity.js';
23
- export { extractNameFromOBV3Identifier, achievementsList, skillsList, getSkillImage, getEvidenceImage, getAchievementImage, getAchievementType } from './obv3.js';
24
- export { normalizeAlignments, getValidAlignments } from './alignment.js';
25
- export { portfolioEvidenceFrom, evidenceFromCredential } from './evidence.js';
26
- export { isResumeCredentialSubject, isResumeCredential, isEmploymentCredential, isVolunteerCredential } from './types.js';
27
- export { imageSourceFrom } from './image.js';
28
- export { asNonEmptyString, getTrimmedString, asRecord, recordList } from './text.js';
29
- export { getDisplayFields, buildCredentialDescription, buildCriteria } from './displayFields.js';
30
- export { buildVerificationChecklist, getVerificationAggregateStatus, isFullyVerified, isExpiredOnly, hasVerificationWarning, issuerRecognizedByVerification } from './verificationView.js';
31
- export { credentialsFromJSON, extractCredentialsFrom, resolveCredentialsInput, ResolveCredentialsInputError, VPQR_UNSUPPORTED_MESSAGE } from './parse.js';
32
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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"}