@interop/wallet-core 0.50.0 → 0.52.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.
- package/README.md +7 -11
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +17 -8
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
- package/dist/clientAnnex/credentialAnchoredGenesis.js +33 -12
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
- package/dist/clientAnnex/forget.d.ts +18 -6
- package/dist/clientAnnex/forget.d.ts.map +1 -1
- package/dist/clientAnnex/forget.js +19 -6
- package/dist/clientAnnex/forget.js.map +1 -1
- package/dist/clientAnnex/forgetLast.d.ts +65 -28
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
- package/dist/clientAnnex/forgetLast.js +78 -18
- package/dist/clientAnnex/forgetLast.js.map +1 -1
- package/dist/clientAnnex/gc.d.ts +3 -3
- package/dist/clientAnnex/gc.d.ts.map +1 -1
- package/dist/clientAnnex/gc.js +2 -2
- package/dist/clientAnnex/gc.js.map +1 -1
- package/dist/clientAnnex/index.d.ts +6 -6
- package/dist/clientAnnex/index.d.ts.map +1 -1
- package/dist/clientAnnex/index.js +5 -5
- package/dist/clientAnnex/index.js.map +1 -1
- package/dist/clientAnnex/ladder.d.ts +19 -11
- package/dist/clientAnnex/ladder.d.ts.map +1 -1
- package/dist/clientAnnex/ladder.js +77 -14
- package/dist/clientAnnex/ladder.js.map +1 -1
- package/dist/clientAnnex/ladderAnchored.d.ts +36 -7
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
- package/dist/clientAnnex/ladderAnchored.js +80 -18
- package/dist/clientAnnex/ladderAnchored.js.map +1 -1
- package/dist/clientAnnex/log.d.ts +6 -6
- package/dist/clientAnnex/log.d.ts.map +1 -1
- package/dist/clientAnnex/log.js +8 -8
- package/dist/clientAnnex/log.js.map +1 -1
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +7 -7
- package/dist/clientAnnex/recoveryLadderAnchored.js +9 -9
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
- package/dist/clientAnnex/selfEnroll.d.ts +6 -4
- package/dist/clientAnnex/selfEnroll.d.ts.map +1 -1
- package/dist/clientAnnex/selfEnroll.js +19 -7
- package/dist/clientAnnex/selfEnroll.js.map +1 -1
- package/dist/clients/listing.d.ts +1 -1
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +1 -1
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/revocation.d.ts +1 -1
- package/dist/clients/rosterPolicy.d.ts +1 -1
- package/dist/clients/rosterPolicy.d.ts.map +1 -1
- package/dist/descriptors/acquire.js +1 -1
- package/dist/descriptors/logSource.d.ts +1 -2
- package/dist/descriptors/logSource.d.ts.map +1 -1
- package/dist/descriptors/logSource.js +2 -2
- package/dist/descriptors/logSource.js.map +1 -1
- package/dist/enrollment/enrollment.d.ts +1 -1
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +2 -1
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +13 -1
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js +1 -1
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/keyring/kdf.d.ts +6 -20
- package/dist/keyring/kdf.d.ts.map +1 -1
- package/dist/keyring/kdf.js +8 -5
- package/dist/keyring/kdf.js.map +1 -1
- package/dist/keyring/unlockSpace.js +1 -1
- package/dist/keys/rosterLogStore.d.ts +16 -14
- package/dist/keys/rosterLogStore.d.ts.map +1 -1
- package/dist/keys/rosterLogStore.js +149 -32
- package/dist/keys/rosterLogStore.js.map +1 -1
- package/dist/keys/rosterStore.d.ts +8 -7
- package/dist/keys/rosterStore.d.ts.map +1 -1
- package/dist/keys/rosterStore.js +6 -6
- package/dist/keys/rosterStore.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts +1 -1
- package/dist/keys/spaceEpochs.js +1 -1
- package/dist/keys/userKeyRoster.d.ts +3 -3
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +3 -3
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/recovery/index.d.ts +2 -2
- package/dist/recovery/index.js +2 -2
- package/dist/recovery/recoveryDelegation.js +1 -1
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +4 -4
- package/dist/recovery/recoveryWebvh.js +5 -5
- package/dist/request/appKey.d.ts +9 -3
- package/dist/request/appKey.d.ts.map +1 -1
- package/dist/request/appKey.js +13 -8
- package/dist/request/appKey.js.map +1 -1
- package/dist/request/classify.d.ts.map +1 -1
- package/dist/request/classify.js +13 -1
- package/dist/request/classify.js.map +1 -1
- package/dist/request/ephemeralExchange.d.ts +6 -1
- package/dist/request/ephemeralExchange.d.ts.map +1 -1
- package/dist/request/ephemeralExchange.js +6 -1
- package/dist/request/ephemeralExchange.js.map +1 -1
- package/dist/request/exchangeClient.d.ts +0 -23
- package/dist/request/exchangeClient.d.ts.map +1 -1
- package/dist/request/exchangeClient.js +30 -1
- package/dist/request/exchangeClient.js.map +1 -1
- package/dist/request/index.d.ts +4 -1
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +4 -1
- package/dist/request/index.js.map +1 -1
- package/dist/request/interactionRequest.d.ts +23 -0
- package/dist/request/interactionRequest.d.ts.map +1 -0
- package/dist/request/interactionRequest.js +46 -0
- package/dist/request/interactionRequest.js.map +1 -0
- package/dist/request/interactionUrl.d.ts +3 -14
- package/dist/request/interactionUrl.d.ts.map +1 -1
- package/dist/request/interactionUrl.js +20 -1
- package/dist/request/interactionUrl.js.map +1 -1
- package/dist/resourceLog/controller.d.ts +48 -49
- package/dist/resourceLog/controller.d.ts.map +1 -1
- package/dist/resourceLog/controller.js +40 -20
- package/dist/resourceLog/controller.js.map +1 -1
- package/dist/resourceLog/errors.d.ts +12 -78
- package/dist/resourceLog/errors.d.ts.map +1 -1
- package/dist/resourceLog/errors.js +12 -79
- package/dist/resourceLog/errors.js.map +1 -1
- package/dist/resourceLog/index.d.ts +17 -22
- package/dist/resourceLog/index.d.ts.map +1 -1
- package/dist/resourceLog/index.js +16 -21
- package/dist/resourceLog/index.js.map +1 -1
- package/dist/resourceLog/license.d.ts +27 -26
- package/dist/resourceLog/license.d.ts.map +1 -1
- package/dist/resourceLog/license.js +31 -30
- package/dist/resourceLog/license.js.map +1 -1
- package/dist/unlock/index.d.ts +6 -6
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +5 -5
- package/dist/unlock/retire.d.ts +29 -28
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +25 -16
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingClient.d.ts +1 -1
- package/dist/unlock/standingClient.js +3 -3
- package/dist/unlock/standingWebvh.d.ts +28 -10
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +75 -37
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.js +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +2 -2
- package/dist/webvh/delegatedLogStore.js +2 -2
- package/dist/webvh/didWeb.js +1 -1
- package/dist/webvh/didWeb.js.map +1 -1
- package/dist/webvh/didWebvh.d.ts +3 -3
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +5 -5
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/listClients.js +1 -1
- package/dist/webvh/listClients.js.map +1 -1
- package/dist/webvh/verifyLog.d.ts +1 -1
- package/dist/webvh/verifyLog.d.ts.map +1 -1
- package/dist/webvh/verifyLog.js +1 -2
- package/dist/webvh/verifyLog.js.map +1 -1
- package/package.json +6 -10
- package/dist/display/alignment.d.ts +0 -55
- package/dist/display/alignment.d.ts.map +0 -1
- package/dist/display/alignment.js +0 -117
- package/dist/display/alignment.js.map +0 -1
- package/dist/display/credentialName.d.ts +0 -42
- package/dist/display/credentialName.d.ts.map +0 -1
- package/dist/display/credentialName.js +0 -106
- package/dist/display/credentialName.js.map +0 -1
- package/dist/display/displayFields.d.ts +0 -59
- package/dist/display/displayFields.d.ts.map +0 -1
- package/dist/display/displayFields.js +0 -136
- package/dist/display/displayFields.js.map +0 -1
- package/dist/display/evidence.d.ts +0 -50
- package/dist/display/evidence.d.ts.map +0 -1
- package/dist/display/evidence.js +0 -67
- package/dist/display/evidence.js.map +0 -1
- package/dist/display/image.d.ts +0 -18
- package/dist/display/image.d.ts.map +0 -1
- package/dist/display/image.js +0 -23
- package/dist/display/image.js.map +0 -1
- package/dist/display/index.d.ts +0 -38
- package/dist/display/index.d.ts.map +0 -1
- package/dist/display/index.js +0 -32
- package/dist/display/index.js.map +0 -1
- package/dist/display/issuer.d.ts +0 -105
- package/dist/display/issuer.d.ts.map +0 -1
- package/dist/display/issuer.js +0 -126
- package/dist/display/issuer.js.map +0 -1
- package/dist/display/obv3.d.ts +0 -82
- package/dist/display/obv3.d.ts.map +0 -1
- package/dist/display/obv3.js +0 -117
- package/dist/display/obv3.js.map +0 -1
- package/dist/display/parse.d.ts +0 -66
- package/dist/display/parse.d.ts.map +0 -1
- package/dist/display/parse.js +0 -104
- package/dist/display/parse.js.map +0 -1
- package/dist/display/subject.d.ts +0 -79
- package/dist/display/subject.d.ts.map +0 -1
- package/dist/display/subject.js +0 -124
- package/dist/display/subject.js.map +0 -1
- package/dist/display/text.d.ts +0 -53
- package/dist/display/text.d.ts.map +0 -1
- package/dist/display/text.js +0 -78
- package/dist/display/text.js.map +0 -1
- package/dist/display/types.d.ts +0 -55
- package/dist/display/types.d.ts.map +0 -1
- package/dist/display/types.js +0 -41
- package/dist/display/types.js.map +0 -1
- package/dist/display/validity.d.ts +0 -51
- package/dist/display/validity.d.ts.map +0 -1
- package/dist/display/validity.js +0 -51
- package/dist/display/validity.js.map +0 -1
- package/dist/display/verificationView.d.ts +0 -115
- package/dist/display/verificationView.d.ts.map +0 -1
- package/dist/display/verificationView.js +0 -199
- package/dist/display/verificationView.js.map +0 -1
- package/dist/resourceLog/append.d.ts +0 -112
- package/dist/resourceLog/append.d.ts.map +0 -1
- package/dist/resourceLog/append.js +0 -197
- package/dist/resourceLog/append.js.map +0 -1
- package/dist/resourceLog/entry.d.ts +0 -68
- package/dist/resourceLog/entry.d.ts.map +0 -1
- package/dist/resourceLog/entry.js +0 -167
- package/dist/resourceLog/entry.js.map +0 -1
- package/dist/resourceLog/pin.d.ts +0 -82
- package/dist/resourceLog/pin.d.ts.map +0 -1
- package/dist/resourceLog/pin.js +0 -57
- package/dist/resourceLog/pin.js.map +0 -1
- package/dist/resourceLog/seal.d.ts +0 -97
- package/dist/resourceLog/seal.d.ts.map +0 -1
- package/dist/resourceLog/seal.js +0 -113
- package/dist/resourceLog/seal.js.map +0 -1
- package/dist/resourceLog/verify.d.ts +0 -96
- package/dist/resourceLog/verify.d.ts.map +0 -1
- package/dist/resourceLog/verify.js +0 -474
- package/dist/resourceLog/verify.js.map +0 -1
- package/dist/resourceLog/vmFragment.d.ts +0 -33
- package/dist/resourceLog/vmFragment.d.ts.map +0 -1
- package/dist/resourceLog/vmFragment.js +0 -39
- package/dist/resourceLog/vmFragment.js.map +0 -1
|
@@ -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":"AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAmBtD;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAgC,EAChC,YAAuC;IAEvC,MAAM,gBAAgB,GAAa,EAAE,CAAA;IAErC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QACxE,IAAI,sBAAsB,EAAE,CAAC;YAC3B,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC/D,IAAI,aAAa,EAAE,CAAC;YAClB,gBAAgB,CAAC,IAAI,CAAC,aAAa,aAAa,EAAE,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACzE,IAAI,mBAAmB,EAAE,CAAC;QACxB,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC3D,IAAI,YAAY,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,aAAa,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAChE,IAAI,kBAAkB,EAAE,CAAC;QACvB,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACrD,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAC7E,IAAI,wBAAwB,EAAE,CAAC;QAC7B,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAgC,EAChC,YAAuC;IAEvC,MAAM,cAAc,GAAG,YAAY;SAChC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;YAC/C,OAAO,KAAK,eAAe,SAAS,SAAS,EAAE,CAAA;QACjD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,aAAa,EAA2B,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACrD,OAAO,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,oBAA2C;IAE3C,MAAM,YAAY,GAAG;QACnB,cAAc,EAAE,cAAc,CAAC,oBAAoB,CAAC;QACpD,QAAQ,EAAE,eAAe,CAAC,oBAAoB,CAAC;QAC/C,cAAc,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,EAAE;KAC9D,CAAA;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,GAAG,YAAY;YACf,qBAAqB,EAAE,EAAE;YACzB,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;SACf,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAA6B,CAAA;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CACpD,mBAAmB,CAAE,WAAuC,CAAC,SAAS,CAAC,CACxE,CAAA;IACD,MAAM,WAAW,GAAI,oBAAgD,CAAC,QAAQ,CAAA;IAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,CAAC,WAAW,CAAC;YACf,CAAC,CAAC,EAAE,CAAA;IAER,OAAO;QACL,GAAG,YAAY;QACf,qBAAqB,EAAE,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC;QACxE,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC;QAC9C,gBAAgB,EACd,mBAAmB,CAAC,kBAAkB,CAAC;YACvC,aAAa,CAAC,MAAM,CAAC;YACrB,gBAAgB,CAAC,QAAQ,CAAC;QAC5B,eAAe,EAAE,kBAAkB,CAAC,kBAAkB,CAAC;QACvD,UAAU;KACX,CAAA;AACH,CAAC"}
|
|
@@ -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"}
|
package/dist/display/evidence.js
DELETED
|
@@ -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"}
|
package/dist/display/image.d.ts
DELETED
|
@@ -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"}
|
package/dist/display/image.js
DELETED
|
@@ -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"}
|
package/dist/display/index.d.ts
DELETED
|
@@ -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"}
|
package/dist/display/index.js
DELETED
|
@@ -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"}
|
package/dist/display/issuer.d.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Issuer display derivation.
|
|
6
|
-
*
|
|
7
|
-
* Drift resolution: DCW's `issuerRenderInfoFrom` /
|
|
8
|
-
* `issuerRenderInfoWithVerification` are the superset and win -- they return
|
|
9
|
-
* nullable fields, apply the SkillClaimCredential `person.name` override, and
|
|
10
|
-
* overlay registry `federation_entity` metadata from the `registered_issuer`
|
|
11
|
-
* verification-log entry. Freewallet's simpler string conveniences
|
|
12
|
-
* (`issuerName`, `getIssuerDetails`) are kept and layered on top for callers
|
|
13
|
-
* that just want a single string / an all-string detail record. The
|
|
14
|
-
* verification-log argument is typed structurally (not against any app's
|
|
15
|
-
* verifier module) so both apps can pass their own log shape.
|
|
16
|
-
*/
|
|
17
|
-
import type { IIssuerObject, IVerifiableCredential } from '@interop/data-integrity-core';
|
|
18
|
-
/**
|
|
19
|
-
* All-string issuer detail record (Freewallet; `''` defaults).
|
|
20
|
-
*/
|
|
21
|
-
export interface IssuerDetails {
|
|
22
|
-
id: string;
|
|
23
|
-
name: string;
|
|
24
|
-
url: string;
|
|
25
|
-
image: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Nullable issuer render fields (DCW).
|
|
29
|
-
*/
|
|
30
|
-
export interface IssuerRenderInfo {
|
|
31
|
-
issuerName: string | null;
|
|
32
|
-
issuerUrl: string | null;
|
|
33
|
-
issuerId: string | null;
|
|
34
|
-
issuerImage: string | null;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* The registry metadata overlay carried in a `registered_issuer` log entry.
|
|
38
|
-
*/
|
|
39
|
-
interface FederationEntity {
|
|
40
|
-
organization_name?: string;
|
|
41
|
-
homepage_uri?: string;
|
|
42
|
-
logo_uri?: string;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Structural shape of the verification result read for the registry overlay.
|
|
46
|
-
*/
|
|
47
|
-
interface VerifyResultLike {
|
|
48
|
-
log?: Array<{
|
|
49
|
-
id: string;
|
|
50
|
-
matchingIssuers?: Array<{
|
|
51
|
-
issuer?: {
|
|
52
|
-
federation_entity?: FederationEntity;
|
|
53
|
-
};
|
|
54
|
-
}>;
|
|
55
|
-
}>;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Human-readable issuer string: the issuer object's `name`, else its `id`, else
|
|
59
|
-
* (for a string issuer) the DID string itself, else `'Unknown Issuer'`. Never
|
|
60
|
-
* returns `null`.
|
|
61
|
-
*
|
|
62
|
-
* @param credential {IVerifiableCredential}
|
|
63
|
-
* @returns {string}
|
|
64
|
-
*/
|
|
65
|
-
export declare function issuerName(credential: IVerifiableCredential): string;
|
|
66
|
-
/**
|
|
67
|
-
* Maps a VC `issuer` to an all-string detail record (`id` / `name` / `url` /
|
|
68
|
-
* `image`), defaulting missing fields to `''`.
|
|
69
|
-
*
|
|
70
|
-
* @param issuer {IVerifiableCredential['issuer']}
|
|
71
|
-
* @returns {IssuerDetails}
|
|
72
|
-
*/
|
|
73
|
-
export declare function getIssuerDetails(issuer: IVerifiableCredential['issuer']): IssuerDetails;
|
|
74
|
-
/**
|
|
75
|
-
* The `credentialSubject.person.name` (SkillClaimCredential), used to override
|
|
76
|
-
* the issuer display name. `null` when absent or no credential is given.
|
|
77
|
-
*
|
|
78
|
-
* @param credential {IVerifiableCredential | undefined}
|
|
79
|
-
* @returns {string | null}
|
|
80
|
-
*/
|
|
81
|
-
export declare function personNameFromCredential(credential?: IVerifiableCredential): string | null;
|
|
82
|
-
/**
|
|
83
|
-
* Nullable issuer render fields derived from the VC `issuer` alone, with a
|
|
84
|
-
* SkillClaimCredential `person.name` override when a credential is supplied.
|
|
85
|
-
*
|
|
86
|
-
* @param issuer {IIssuerObject | string}
|
|
87
|
-
* @param credential {IVerifiableCredential | undefined}
|
|
88
|
-
* @returns {IssuerRenderInfo}
|
|
89
|
-
*/
|
|
90
|
-
export declare function issuerRenderInfoFrom(issuer: IIssuerObject | string, credential?: IVerifiableCredential): IssuerRenderInfo;
|
|
91
|
-
/**
|
|
92
|
-
* Like {@link issuerRenderInfoFrom} but overlays registry `federation_entity`
|
|
93
|
-
* metadata (organization name / homepage / logo) from the `registered_issuer`
|
|
94
|
-
* verification-log entry when the issuer matched the registry and there is no
|
|
95
|
-
* SkillClaimCredential person-name override.
|
|
96
|
-
*
|
|
97
|
-
* @param issuer {IIssuerObject | string}
|
|
98
|
-
* @param verifyResult {VerifyResultLike | undefined} verification result whose
|
|
99
|
-
* `log[]` may carry a `registered_issuer` match
|
|
100
|
-
* @param credential {IVerifiableCredential | undefined}
|
|
101
|
-
* @returns {IssuerRenderInfo}
|
|
102
|
-
*/
|
|
103
|
-
export declare function issuerRenderInfoWithVerification(issuer: IIssuerObject | string, verifyResult?: VerifyResultLike, credential?: IVerifiableCredential): IssuerRenderInfo;
|
|
104
|
-
export {};
|
|
105
|
-
//# sourceMappingURL=issuer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|