UNPKG

@dwn-protocol/id-sdk

Version:

SDK for accessing the features and capabilities

43 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VcValidator = void 0; const credential_js_1 = require("./credential.js"); const utils_js_1 = require("./utils.js"); class VcValidator { static validateCredentialPayload(vc) { this.validateContext(vc.vcDataModel['@context']); this.validateVcType(vc.type); this.validateCredentialSubject(vc.vcDataModel.credentialSubject); if (vc.vcDataModel.issuanceDate) this.validateTimestamp(vc.vcDataModel.issuanceDate); if (vc.vcDataModel.expirationDate) this.validateTimestamp(vc.vcDataModel.expirationDate); } static validateContext(value) { const input = this.asArray(value); if (input.length < 1 || input.indexOf(credential_js_1.DEFAULT_CONTEXT) === -1) { throw new Error(`@context is missing default context "${credential_js_1.DEFAULT_CONTEXT}"`); } } static validateVcType(value) { const input = this.asArray(value); if (input.length < 1 || input.indexOf(credential_js_1.DEFAULT_VC_TYPE) === -1) { throw new Error(`type is missing default "${credential_js_1.DEFAULT_VC_TYPE}"`); } } static validateCredentialSubject(value) { if (Object.keys(value).length === 0) { throw new Error(`credentialSubject must not be empty`); } } static validateTimestamp(timestamp) { if (!(0, utils_js_1.isValidXmlSchema112Timestamp)(timestamp)) { throw new Error(`timestamp is not valid xml schema 112 timestamp`); } } static asArray(arg) { return Array.isArray(arg) ? arg : [arg]; } } exports.VcValidator = VcValidator; //# sourceMappingURL=validators.js.map