@learncard/learn-card-plugin 1.2.17 → 1.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/learn-card-plugin.cjs.development.js +64 -7
- package/dist/learn-card-plugin.cjs.development.js.map +2 -2
- package/dist/learn-card-plugin.cjs.production.min.js +1 -1
- package/dist/learn-card-plugin.cjs.production.min.js.map +3 -3
- package/dist/learn-card-plugin.esm.js +67 -8
- package/dist/learn-card-plugin.esm.js.map +2 -2
- package/dist/test/verify.test.d.ts +2 -0
- package/dist/test/verify.test.d.ts.map +1 -0
- package/dist/verify.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -2,7 +2,9 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/verify.ts
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
VerificationStatusEnum
|
|
7
|
+
} from "@learncard/types";
|
|
6
8
|
|
|
7
9
|
// ../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
8
10
|
function _typeof(o) {
|
|
@@ -1693,11 +1695,67 @@ function cleanEscapedString(input) {
|
|
|
1693
1695
|
__name(cleanEscapedString, "cleanEscapedString");
|
|
1694
1696
|
|
|
1695
1697
|
// src/verify.ts
|
|
1696
|
-
var
|
|
1698
|
+
var STATUS_CHECKS = /* @__PURE__ */ new Set(["status", "credentialStatus"]);
|
|
1699
|
+
var isStatusCheck = /* @__PURE__ */ __name((check) => STATUS_CHECKS.has(check), "isStatusCheck");
|
|
1700
|
+
var getStatusPurposeLabel = /* @__PURE__ */ __name((statusPurpose) => {
|
|
1701
|
+
switch (statusPurpose) {
|
|
1702
|
+
case "revocation":
|
|
1703
|
+
return "Revocation";
|
|
1704
|
+
case "suspension":
|
|
1705
|
+
return "Suspension";
|
|
1706
|
+
default:
|
|
1707
|
+
return statusPurpose.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[-_]+/g, " ").replace(/\s+/g, " ").trim().replace(/\b\w/g, (letter) => letter.toUpperCase());
|
|
1708
|
+
}
|
|
1709
|
+
}, "getStatusPurposeLabel");
|
|
1710
|
+
var getClearStatusMessage = /* @__PURE__ */ __name((statusPurpose) => {
|
|
1711
|
+
switch (statusPurpose) {
|
|
1712
|
+
case "revocation":
|
|
1713
|
+
return "Not Revoked";
|
|
1714
|
+
case "suspension":
|
|
1715
|
+
return "Not Suspended";
|
|
1716
|
+
default:
|
|
1717
|
+
return `${getStatusPurposeLabel(statusPurpose)} Clear`;
|
|
1718
|
+
}
|
|
1719
|
+
}, "getClearStatusMessage");
|
|
1720
|
+
var getSetStatusMessage = /* @__PURE__ */ __name((statusPurpose) => {
|
|
1721
|
+
switch (statusPurpose) {
|
|
1722
|
+
case "revocation":
|
|
1723
|
+
return "Revoked";
|
|
1724
|
+
case "suspension":
|
|
1725
|
+
return "Suspended";
|
|
1726
|
+
default:
|
|
1727
|
+
return `${getStatusPurposeLabel(statusPurpose)} Set`;
|
|
1728
|
+
}
|
|
1729
|
+
}, "getSetStatusMessage");
|
|
1730
|
+
var getUniqueStatusPurposes = /* @__PURE__ */ __name((statuses) => [
|
|
1731
|
+
...new Set(statuses.map((status) => status.statusPurpose))
|
|
1732
|
+
], "getUniqueStatusPurposes");
|
|
1733
|
+
var transformStatusCheckMessage = /* @__PURE__ */ __name((statusEntries = []) => {
|
|
1734
|
+
const setStatuses = statusEntries.filter((status) => status.isSet);
|
|
1735
|
+
if (setStatuses.length > 0) {
|
|
1736
|
+
return getUniqueStatusPurposes(setStatuses).map(getSetStatusMessage).join(", ");
|
|
1737
|
+
}
|
|
1738
|
+
const clearPurposes = getUniqueStatusPurposes(statusEntries);
|
|
1739
|
+
if (clearPurposes.length === 1) return getClearStatusMessage(clearPurposes[0]);
|
|
1740
|
+
return "Active";
|
|
1741
|
+
}, "transformStatusCheckMessage");
|
|
1742
|
+
var getStatusErrorMessage = /* @__PURE__ */ __name((error, verificationCheck) => {
|
|
1743
|
+
if (/credential is revoked/i.test(error)) return "Status: Revoked";
|
|
1744
|
+
if (/credential is suspended/i.test(error)) return "Status: Suspended";
|
|
1745
|
+
const statusPurpose = error.match(/credential status is set for purpose:\s*([^.]+)/i)?.[1];
|
|
1746
|
+
if (statusPurpose) return `Status: ${getSetStatusMessage(statusPurpose.trim())}`;
|
|
1747
|
+
if (!/status/i.test(error)) return;
|
|
1748
|
+
const setStatuses = verificationCheck?.status?.filter((status) => status.isSet) ?? [];
|
|
1749
|
+
if (setStatuses.length > 0) return `Status: ${transformStatusCheckMessage(setStatuses)}`;
|
|
1750
|
+
}, "getStatusErrorMessage");
|
|
1751
|
+
var transformErrorCheck = /* @__PURE__ */ __name((error, _credential, verificationCheck) => {
|
|
1752
|
+
if (getStatusErrorMessage(error, verificationCheck)) return "status";
|
|
1697
1753
|
const prefix = error.split(" error")[0];
|
|
1698
1754
|
return prefix || error;
|
|
1699
1755
|
}, "transformErrorCheck");
|
|
1700
|
-
var transformErrorMessage = /* @__PURE__ */ __name((error, credential) => {
|
|
1756
|
+
var transformErrorMessage = /* @__PURE__ */ __name((error, credential, verificationCheck) => {
|
|
1757
|
+
const statusErrorMessage = getStatusErrorMessage(error, verificationCheck);
|
|
1758
|
+
if (statusErrorMessage) return statusErrorMessage;
|
|
1701
1759
|
if (error.startsWith("expiration")) {
|
|
1702
1760
|
return credential.expirationDate ? `Expired ${format(new Date(credential.expirationDate), "dd MMM yyyy").toUpperCase()}` : "Expired";
|
|
1703
1761
|
}
|
|
@@ -1708,7 +1766,8 @@ var transformWarningCheck = /* @__PURE__ */ __name((warning, _credential) => {
|
|
|
1708
1766
|
const prefix = warning.split(" warning")[0];
|
|
1709
1767
|
return prefix || warning;
|
|
1710
1768
|
}, "transformWarningCheck");
|
|
1711
|
-
var transformCheckMessage = /* @__PURE__ */ __name((check, credential) => {
|
|
1769
|
+
var transformCheckMessage = /* @__PURE__ */ __name((check, credential, verificationCheck) => {
|
|
1770
|
+
if (isStatusCheck(check)) return transformStatusCheckMessage(verificationCheck.status);
|
|
1712
1771
|
return {
|
|
1713
1772
|
proof: "Valid",
|
|
1714
1773
|
expiration: credential.expirationDate ? `Expires ${format(
|
|
@@ -1725,8 +1784,8 @@ var verifyCredential = /* @__PURE__ */ __name((learnCard) => {
|
|
|
1725
1784
|
rawVerificationCheck.errors.forEach((error) => {
|
|
1726
1785
|
verificationItems.push({
|
|
1727
1786
|
status: VerificationStatusEnum.Failed,
|
|
1728
|
-
check: transformErrorCheck(error, credential),
|
|
1729
|
-
details: transformErrorMessage(error, credential)
|
|
1787
|
+
check: transformErrorCheck(error, credential, rawVerificationCheck),
|
|
1788
|
+
details: transformErrorMessage(error, credential, rawVerificationCheck)
|
|
1730
1789
|
});
|
|
1731
1790
|
});
|
|
1732
1791
|
rawVerificationCheck.warnings.forEach((warning) => {
|
|
@@ -1739,8 +1798,8 @@ var verifyCredential = /* @__PURE__ */ __name((learnCard) => {
|
|
|
1739
1798
|
rawVerificationCheck.checks.forEach((check) => {
|
|
1740
1799
|
verificationItems.push({
|
|
1741
1800
|
status: VerificationStatusEnum.Success,
|
|
1742
|
-
check,
|
|
1743
|
-
message: transformCheckMessage(check, credential)
|
|
1801
|
+
check: isStatusCheck(check) ? "status" : check,
|
|
1802
|
+
message: transformCheckMessage(check, credential, rawVerificationCheck)
|
|
1744
1803
|
});
|
|
1745
1804
|
});
|
|
1746
1805
|
return verificationItems;
|