@sphereon/ssi-sdk.credential-validation 0.34.1-next.91 → 0.36.1-feat.SSISDK.83.3

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/index.cjs CHANGED
@@ -1518,10 +1518,9 @@ module.exports = __toCommonJS(index_exports);
1518
1518
  var import_kmp_mdoc_core = __toESM(require("@sphereon/kmp-mdoc-core"), 1);
1519
1519
  var import_ssi_types = require("@sphereon/ssi-types");
1520
1520
  var import_ajv_formats = __toESM(require("ajv-formats"), 1);
1521
- var import__ = __toESM(require("ajv/dist/2020"), 1);
1521
+ var import__ = __toESM(require("ajv/dist/2020.js"), 1);
1522
1522
  var import_cross_fetch = __toESM(require("cross-fetch"), 1);
1523
1523
  var import_ssi_sdk = require("@sphereon/ssi-sdk.core");
1524
- var { com } = import_kmp_mdoc_core.default;
1525
1524
  var decodeFrom = import_kmp_mdoc_core.default.com.sphereon.kmp.decodeFrom;
1526
1525
  var IssuerSignedCbor = import_kmp_mdoc_core.default.com.sphereon.mdoc.data.device.IssuerSignedCbor;
1527
1526
  var credentialValidationMethods = [
@@ -1658,7 +1657,7 @@ var CredentialValidation = class {
1658
1657
  }
1659
1658
  async cvVerifyMdoc(args, context) {
1660
1659
  const { credential } = args;
1661
- const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL));
1660
+ const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, import_kmp_mdoc_core.default.com.sphereon.kmp.Encoding.BASE64URL));
1662
1661
  const verification = await context.agent.mdocVerifyIssuerSigned({
1663
1662
  input: issuerSigned.toJson().issuerAuth
1664
1663
  }).catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nconst { com } = mdocPkg\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n"],"mappings":"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","names":["module","com","mdocPkg","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020.js'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, mdocPkg.com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,gCAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,uBAAyB;AAAA,QACvB,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,sBAAwB;AAAA,cACtB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,qBAAuB;AAAA,kBACrB,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,cAAc,qBAAqB;AAAA,cAChD,sBAAwB;AAAA,YAC1B;AAAA,YACA,8BAAgC;AAAA,cAC9B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,yBAA2B;AAAA,cACzB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,OAAS;AAAA,kBACP,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,kBAAoB;AAAA,kBAClB,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,QAAU;AAAA,kBACR,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,gBACA,mBAAqB;AAAA,kBACnB,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,sBACR,YAAc;AAAA,wBACZ,IAAM;AAAA,0BACJ,MAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,IAAM;AAAA,4BACJ,MAAQ;AAAA,0BACV;AAAA,wBACF;AAAA,sBACF;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,gBACV;AAAA,gBACA,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,qBAAqB,gBAAgB,UAAU,SAAS,MAAM;AAAA,YACzF;AAAA,YACA,QAAU;AAAA,cACR,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,oBAAsB;AAAA,kBACpB,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,0BAA4B;AAAA,kBAC1B,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,QAAQ,WAAW,gBAAgB,oBAAoB;AAAA,YACtE;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,YACA,eAAiB;AAAA,cACf,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,YACA,wBAA0B;AAAA,cACxB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,MAAQ;AAAA,sBACN,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,uBAAyB;AAAA,cACvB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,mBAAqB;AAAA,cACnB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,IAAI;AAAA,cACjB,sBAAwB;AAAA,YAC1B;AAAA,YACA,WAAa;AAAA,cACX,MAAQ;AAAA,YACV;AAAA,YACA,SAAW;AAAA,cACT,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,IAAI;AAAA,YACnB;AAAA,YACA,mBAAqB;AAAA,cACnB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,MAAM;AAAA,YAC3B;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,gCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,YACtD;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,QAAU;AAAA,sBACR,MAAQ;AAAA,oBACV;AAAA,oBACA,SAAW;AAAA,sBACT,MAAQ;AAAA,oBACV;AAAA,oBACA,SAAW;AAAA,sBACT,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,UAAU,SAAS;AAAA,kBAChC,sBAAwB;AAAA,kBACxB,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,kBAAkB,eAAe,iBAAiB,gBAAgB;AAAA,cAC/E,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,iBAAmB;AAAA,cACjB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,WAAW,WAAW,QAAQ;AAAA,cAC3C,sBAAwB;AAAA,YAC1B;AAAA,YACA,wBAA0B;AAAA,cACxB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,UAAY;AAAA,kBACZ,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY;AAAA,gBACd;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,UAAY;AAAA,kBACZ,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY;AAAA,gBACd;AAAA,cACF;AAAA,YACF;AAAA,YACA,WAAa;AAAA,cACX,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,sBAAwB;AAAA,oBACtB,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,KAAO,CAAC;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,YACA,wCAA0C;AAAA,cACxC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO,CAAC;AAAA,oBACR,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,OAAO,KAAK;AAAA,kBACzB,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,KAAK;AAAA,cAChC,aAAe;AAAA,YACjB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,oBACtB,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,KAAO,CAAC;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,OAAO;AAAA,4BACL,MAAQ;AAAA,0BACV;AAAA,wBACF;AAAA,wBACA,UAAY,CAAC,KAAK;AAAA,wBAClB,sBAAwB;AAAA,sBAC1B;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,YACA,yCAA2C;AAAA,cACzC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO,CAAC;AAAA,oBACR,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,OAAO,KAAK;AAAA,kBACzB,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,KAAK;AAAA,cAChC,sBAAwB;AAAA,gBACtB,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,gBACX;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,KAAK;AAAA,YAC3B;AAAA,YACA,qBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,SAAS,SAAS;AAAA,cAC7C,sBAAwB,CAAC;AAAA,YAC3B;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,cAAgB;AAAA,cACd,MAAQ;AAAA,YACV;AAAA,YACA,8CAA8C;AAAA,cAC5C,MAAQ;AAAA,cACR,sBAAwB;AAAA,cACxB,YAAc,CAAC;AAAA,YACjB;AAAA,YACA,YAAc;AAAA,cACZ,UAAY;AAAA,cACZ,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,MAAQ;AAAA,sBACN,OAAS;AAAA,wBACP;AAAA,0BACE,MAAQ;AAAA,wBACV;AAAA,wBACA;AAAA,0BACE,MAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,QAAQ,KAAK;AAAA,kBAC1B,sBAAwB;AAAA,gBAC1B;AAAA,cACF;AAAA,YACF;AAAA,YACA,aAAe;AAAA,cACb,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,sBAAwB;AAAA,cACtB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,kBAAkB,cAAc;AAAA,cAC7C,sBAAwB;AAAA,YAC1B;AAAA,YACA,kBAAoB;AAAA,cAClB,MAAQ;AAAA,cACR,MAAQ,CAAC,UAAU,SAAS,cAAc;AAAA,YAC5C;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,UAAU,UAAU,YAAY;AAAA,cAC7C,sBAAwB;AAAA,YAC1B;AAAA,YACA,6BAA+B;AAAA,cAC7B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,gCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,MAAQ,CAAC,UAAU,UAAU,OAAO,KAAK;AAAA,kBACzC,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,uBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,4BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,4BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,gBAAkB;AAAA,cAChB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,kCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,kCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,yDAAyD;AAAA,cACvD,MAAQ;AAAA,cACR,sBAAwB;AAAA,gBACtB,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,0CAA0C;AAAA,cACxC,MAAQ;AAAA,cACR,sBAAwB;AAAA,gBACtB,MAAQ,CAAC,UAAU,UAAU,SAAS;AAAA,cACxC;AAAA,YACF;AAAA,YACA,iCAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,iCAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,+BAAiC;AAAA,cAC/B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,MAAQ,CAAC,UAAU,QAAQ;AAAA,kBAC3B,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,OAAS;AAAA,kBACP,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,kBACtB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,yBAA2B;AAAA,kBACzB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,OAAO;AAAA,YAClC;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,iBAAiB,gBAAgB;AAAA,cACpD,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,QAAQ,QAAQ;AAAA,cACnC,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,YACpE;AAAA,YACA,+BAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,kBACtB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,yBAA2B;AAAA,kBACzB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,QAAQ,sBAAsB;AAAA,cACvD,sBAAwB;AAAA,YAC1B;AAAA,YACA,oCAAsC;AAAA,cACpC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,UAAY;AAAA,kBACZ,UAAY;AAAA,kBACZ,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,YACV;AAAA,YACA,oDAAoD;AAAA,cAClD,MAAQ;AAAA,cACR,sBAAwB;AAAA,cACxB,YAAc,CAAC;AAAA,YACjB;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,YACV;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,QAAQ;AAAA,cACrB,sBAAwB;AAAA,YAC1B;AAAA,YACA,0BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,sBAAwB;AAAA,YAC1B;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,oBAAsB;AAAA,cACpB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,cAAgB;AAAA,cACd,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,gBAAkB;AAAA,cAChB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,yBAA2B;AAAA,cACzB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,uBAAyB;AAAA,cACvB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC17CA;;;;;;;;;;ACAA,2BAAoB;AAEpB,uBAOO;AAEP,yBAAuB;AACvB,eAAoB;AACpB,yBAAkB;AAiBlB,qBAA8B;AAF9B,IAAOC,aAAa,qBAAAC,QAAQ,IAAI,SAAS,IAAI;AAC7C,IAAOC,mBAAmB,qBAAAD,QAAQ,IAAI,SAAS,KAAK,KAAK,OAAO;AAIzD,IAAME,8BAA6C;EACxD;EACA;EACA;EACA;EACA;;AAMK,IAAMC,uBAAN,MAAMA;EA5Cb,OA4CaA;;;EACFC,SAASA,OAAOC;EAChBC,UAAiC;IACxCC,oBAAoB,KAAKA,mBAAmBC,KAAK,IAAI;IACrDC,gBAAgB,KAAKA,eAAeD,KAAK,IAAI;IAC7CE,cAAc,KAAKA,aAAaF,KAAK,IAAI;IACzCG,yBAAyB,KAAKA,wBAAwBH,KAAK,IAAI;IAC/DI,uBAAuB,KAAKA,sBAAsBJ,KAAK,IAAI;EAC7D;EAEQK,cAAcC,WAA6E;AACjG,QAAI,gBAAgBA,WAAW;AAC7B,YAAM,EAAEC,WAAU,IAAKD;AAEvB,UAAI,sBAAsBC,YAAY;AACpC,cAAM,EAAEC,iBAAgB,IAAKD;AAE7B,YAAIE,MAAMC,QAAQF,gBAAAA,GAAmB;AACnC,iBAAOA;QACT,WAAWA,kBAAkB;AAC3B,iBAAO;YAACA;;QACV;MACF;IACF;AAEA,WAAOG;EACT;EAEA,MAAcZ,mBAAmBa,MAA4BC,SAAuD;AAClH,UAAM,EAAEN,YAAYO,SAASC,8BAAeC,SAAQ,IAAKJ;AAEzD,UAAMK,eAAe,MAAM,KAAKhB,eAAe;MAC7CM;MACAW,kBAAkBF,UAAUG,oBAAoBC,iBAAiBC;MACjEP;IACF,CAAA;AACA,QAAI,CAACG,aAAaK,QAAQ;AACxB,aAAOL;IACT;AACA,QAAIM,kCAAiBC,uBAAuBjB,UAAAA,GAAa;AACvD,aAAO,MAAM,KAAKL,aAAa;QAAEK;MAAW,GAAGM,OAAAA;IACjD,WAAWU,kCAAiBE,eAAelB,UAAAA,GAAa;AACtD,aAAO,MAAM,KAAKJ,wBAAwB;QAAEI;QAAYO;MAAO,GAAGD,OAAAA;IACpE,OAAO;AACL,aAAO,MAAM,KAAKT,sBAChB;QACE,GAAGQ;QACHL;MACF,GACAM,OAAAA;IAEJ;EACF;EAEA,MAAcZ,eAAeW,MAAuD;AAClF,UAAM,EAAEL,YAAYO,SAASC,8BAAeG,iBAAgB,IAAKN;AACjE,UAAMc,oBAAiDH,kCAAiBI,8BAA8BpB,YAAY;MAAEO;IAAO,CAAA;AAC3H,QAAII,qBAAqBE,iBAAiBQ,OAAO;AAC/C,aAAO;QACLN,QAAQ;QACRO,QAAQH;QACRI,YAAY,CAAA;MACd;IACF;AACA,WAAO,KAAKC,eAAeL,mBAAmBR,gBAAAA;EAChD;EAEA,MAAca,eAAezB,WAAwCY,kBAAkE;AACrI,UAAMc,UAA+C,KAAK3B,cAAcC,SAAAA;AACxE,QAAI,CAAC0B,SAAS;AACZ,UAAId,qBAAqBE,iBAAiBa,QAAQ;AAChDC,gBAAQC,MACN,wGAAwGC,KAAKC,UAAU/B,UAAUC,YAAY,MAAM,CAAA,CAAA,EAAI;AAEzJ,eAAO;UACLe,QAAQ;UACRO,QAAQvB;UACRwB,YAAY,CAAA;QACd;MACF,OAAO;AACL,eAAO;UACLR,QAAQ;UACRO,QAAQvB;UACRwB,YAAY,CAAA;QACd;MACF;IACF;AAEA,UAAMA,aAAsC,MAAMQ,QAAQC,IAAIP,QAAQQ,IAAI,CAAC5C,YAAW,KAAK6C,8BAA8BnC,WAAWV,OAAAA,CAAAA,CAAAA;AAEpI,WAAO;MACL0B,QAAQQ,WAAWY,MAAM,CAACC,cAAcA,UAAUrB,MAAM;MACxDO,QAAQvB;MACRwB;IACF;EACF;EAEA,MAAcc,YAAYC,KAAa;AACrC,UAAMC,WAAW,UAAMC,mBAAAA,SAAMF,GAAAA;AAC7B,QAAI,CAACC,SAASE,IAAI;AAChB,YAAM,IAAIC,MAAM,+BAA+BJ,GAAAA,EAAK;IACtD;AACA,WAAOC,SAASI,KAAI;EACtB;EAEA,MAAcT,8BAA8BnC,WAAwCV,SAA+D;AACjJ,UAAMuD,YAAoB,OAAOvD,YAAW,WAAWA,UAASA,QAAOwD;AACvE,QAAIC;AACJ,QAAI;AACFA,oBAAc,MAAM,KAAKT,YAAYO,SAAAA;IACvC,SAAShB,OAAO;AACdD,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLb,QAAQ;QACRa;MACF;IACF;AAEA,UAAMmB,MAAM,IAAIC,SAAAA,QAAQ;MAAEC,YAAY,KAAKZ;IAAY,CAAA;AACvDa,2BAAAA,SAAWH,GAAAA;AAEX,UAAMI,WAAW,MAAMJ,IAAIK,aAAaN,WAAAA;AACxC,UAAMO,QAAQF,SAASpD,UAAUC,UAAU;AAC3C,QAAI,CAACqD,OAAO;AACV1B,cAAQC,MAAM,iCAAiC7B,UAAUC,UAAU;IACrE;AACA,WAAO;MACLe,QAAQsC;IACV;EACF;EAEA,MAAc1D,aAAaU,MAAgCC,SAAuD;AAChH,UAAM,EAAEN,WAAU,IAAKK;AAEvB,UAAMiD,eAAepE,iBAAiBqE,OAAOC,WAAWxE,WAAWgB,YAAYf,qBAAAA,QAAQwE,IAAIC,SAASC,IAAIC,SAASC,SAAS,CAAA;AAE1H,UAAMC,eAAe,MAAMxD,QAAQyD,MAAMC,uBAAuB;MAAEC,OAAOX,aAAaY,OAAM,EAAGC;IAAW,CAAA,EAAGC,MAAM,CAACxC,UAAAA;AAClHD,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLyC,MAAM;QACNC,UAAU;QACV1C,OAAO;QACP2C,SAAS3C,MAAM2C,WAAW;MAC5B;IACF,CAAA;AAEA,WAAO;MACLjD,QAAQN,kCAAiBI,8BAA8BpB,YAA4C;QAAEO,QAAQC;MAAc,CAAA;MAC3HO,QAAQ,CAAC+C,aAAalC;MACtBL,YAAY,CAAA;MACZ,GAAIuC,aAAalC,SAAS;QACxBA,OAAOkC,aAAaS,WAAW;MACjC;IACF;EACF;EAEA,MAAc1E,sBAAsBQ,MAA6BC,SAAuD;AAEtH,UAAM,EAAEN,YAAYS,SAAQ,IAAKJ;AAEjC,UAAMU,SAAmC,MAAMT,QAAQyD,MAAMS,iBAAiBnE,IAAAA;AAE9E,QAAI,OAAOU,WAAW,WAAW;AAC/B,aAAO;;QAELO,QAAQN,kCAAiBI,8BAA8Bf,KAAKL,YAA4C;UAAEO,QAAQC;QAAc,CAAA;QAChIO;QACA,GAAI,CAACA,UAAU;UACba,OAAO;UACP6C,cAAc,uCAAuC5C,KAAKC,UAAUrB,QAAAA,CAAAA;QACtE;QACAc,YAAY,CAAA;MACd;IACF,OAAO;AAEL,UAAIK;AACJ,UAAI6C;AACJ,YAAMlD,aAA2C,CAAA;AACjD,UAAIR,OAAOa,OAAO;AAChBA,gBAAQb,OAAOa,OAAO2C,WAAW;AACjCE,uBAAe1D,OAAOa,OAAO8C,SAASC,QAAQ;AAC9CF,wBAAgBA,iBAAiB,KAAK,GAAGA,YAAAA,OAAmB,OAAO1D,OAAOa,OAAO8C,SAASE,OAAO;AACjG,YAAI7D,OAAOa,OAAOiD,QAAQ;AACxBjD,mBAASA,UAAU,KAAK,GAAGA,KAAAA,OAAY,MAAMb,OAAOa,OAAOiD,QAAQ5C,IAAI,CAACL,WAAUA,OAAM2C,WAAW3C,OAAMyC,IAAI,EAAES,KAAK,IAAA;AACpHL,0BACGA,iBAAiB,KAAK,GAAGA,YAAAA,OAAmB,MAC7C1D,OAAOa,OAAOiD,QAAQ5C,IAAI,CAACL,YAAWA,QAAO8C,SAASC,OAAO,GAAG/C,OAAM8C,QAAQC,IAAI,OAAO,OAAO/C,QAAO8C,SAASE,OAAO,GAAC,EAAIE,KAAK,IAAA;QACrI;AACAnD,gBAAQC,MAAMA,KAAAA;MAChB;AAEA,aAAO;QACLN,QAAQN,kCAAiBI,8BAA8BpB,YAA4C;UAAEO,QAAQC;QAAc,CAAA;QAC3HO,QAAQA,OAAOgE;QACfxD;QACAK;QACA6C;MACF;IACF;EACF;EAEA,MAAc7E,wBAAwBS,MAAiCC,SAAuD;AAC5H,UAAM,EAAEN,YAAYO,SAASC,6BAAa,IAAKH;AAE/C,UAAMyD,eAAmE,MAAMxD,QAAQyD,MACpFiB,cAAc;MAAEhF;IAAW,CAAA,EAC3BoE,MAAM,CAACxC,UAAAA;AACND,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLA,OAAO;QACP6C,cAAc7C,MAAM2C,WAAW;MACjC;IACF,CAAA;AAEF,UAAMxD,SAAS,YAAY+C,gBAAgB,aAAaA;AACxD,WAAO;MACLxC,QAAQN,kCAAiBI,8BAA8BpB,YAA4C;QAAEO,QAAQA,UAAUC;MAAc,CAAA;MACrIO;MACAQ,YAAY,CAAA;MACZ,GAAI,CAACR,UAAU;QAAE,GAAG+C;MAAa;IACnC;EACF;AACF;;;AC7PO,IAAKmB,mBAAAA,0BAAAA,mBAAAA;;;;SAAAA;;;;AFVZ,IAAMC,SAASC;","names":["module","decodeFrom","mdocPkg","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","com","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
package/dist/index.js CHANGED
@@ -1482,10 +1482,9 @@ var require_plugin_schema = __commonJS({
1482
1482
  import mdocPkg from "@sphereon/kmp-mdoc-core";
1483
1483
  import { CredentialMapper } from "@sphereon/ssi-types";
1484
1484
  import addFormats from "ajv-formats";
1485
- import Ajv2020 from "ajv/dist/2020";
1485
+ import Ajv2020 from "ajv/dist/2020.js";
1486
1486
  import fetch from "cross-fetch";
1487
1487
  import { defaultHasher } from "@sphereon/ssi-sdk.core";
1488
- var { com } = mdocPkg;
1489
1488
  var decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom;
1490
1489
  var IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor;
1491
1490
  var credentialValidationMethods = [
@@ -1622,7 +1621,7 @@ var CredentialValidation = class {
1622
1621
  }
1623
1622
  async cvVerifyMdoc(args, context) {
1624
1623
  const { credential } = args;
1625
- const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL));
1624
+ const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, mdocPkg.com.sphereon.kmp.Encoding.BASE64URL));
1626
1625
  const verification = await context.agent.mdocVerifyIssuerSigned({
1627
1626
  input: issuerSigned.toJson().issuerAuth
1628
1627
  }).catch((error) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts","../src/index.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nconst { com } = mdocPkg\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n"],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA,MACE,uBAAyB;AAAA,QACvB,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,sBAAwB;AAAA,cACtB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,qBAAuB;AAAA,kBACrB,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,cAAc,qBAAqB;AAAA,cAChD,sBAAwB;AAAA,YAC1B;AAAA,YACA,8BAAgC;AAAA,cAC9B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,yBAA2B;AAAA,cACzB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,OAAS;AAAA,kBACP,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,kBAAoB;AAAA,kBAClB,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,QAAU;AAAA,kBACR,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,gBACA,mBAAqB;AAAA,kBACnB,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,sBACR,YAAc;AAAA,wBACZ,IAAM;AAAA,0BACJ,MAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,IAAM;AAAA,4BACJ,MAAQ;AAAA,0BACV;AAAA,wBACF;AAAA,sBACF;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,gBACV;AAAA,gBACA,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,qBAAqB,gBAAgB,UAAU,SAAS,MAAM;AAAA,YACzF;AAAA,YACA,QAAU;AAAA,cACR,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,oBAAsB;AAAA,kBACpB,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,0BAA4B;AAAA,kBAC1B,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,QAAQ,WAAW,gBAAgB,oBAAoB;AAAA,YACtE;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,YACA,eAAiB;AAAA,cACf,MAAQ;AAAA,cACR,MAAQ;AAAA,gBACN;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,YACA,wBAA0B;AAAA,cACxB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,MAAQ;AAAA,sBACN,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,uBAAyB;AAAA,cACvB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,mBAAqB;AAAA,cACnB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,IAAI;AAAA,cACjB,sBAAwB;AAAA,YAC1B;AAAA,YACA,WAAa;AAAA,cACX,MAAQ;AAAA,YACV;AAAA,YACA,SAAW;AAAA,cACT,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,IAAI;AAAA,YACnB;AAAA,YACA,mBAAqB;AAAA,cACnB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,MAAM;AAAA,YAC3B;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,gCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,YACtD;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,QAAU;AAAA,sBACR,MAAQ;AAAA,oBACV;AAAA,oBACA,SAAW;AAAA,sBACT,MAAQ;AAAA,oBACV;AAAA,oBACA,SAAW;AAAA,sBACT,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,UAAU,SAAS;AAAA,kBAChC,sBAAwB;AAAA,kBACxB,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,kBAAkB,eAAe,iBAAiB,gBAAgB;AAAA,cAC/E,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,iBAAmB;AAAA,cACjB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,WAAW,WAAW,QAAQ;AAAA,cAC3C,sBAAwB;AAAA,YAC1B;AAAA,YACA,wBAA0B;AAAA,cACxB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,kBACR,UAAY;AAAA,kBACZ,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY;AAAA,gBACd;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,UAAY;AAAA,kBACZ,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY;AAAA,gBACd;AAAA,cACF;AAAA,YACF;AAAA,YACA,WAAa;AAAA,cACX,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,sBAAwB;AAAA,oBACtB,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,KAAO,CAAC;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,YACA,wCAA0C;AAAA,cACxC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO,CAAC;AAAA,oBACR,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,OAAO,KAAK;AAAA,kBACzB,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,KAAK;AAAA,cAChC,aAAe;AAAA,YACjB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,oBACtB,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,KAAO,CAAC;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,OAAS;AAAA,sBACP;AAAA,wBACE,MAAQ;AAAA,sBACV;AAAA,sBACA;AAAA,wBACE,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,OAAO;AAAA,4BACL,MAAQ;AAAA,0BACV;AAAA,wBACF;AAAA,wBACA,UAAY,CAAC,KAAK;AAAA,wBAClB,sBAAwB;AAAA,sBAC1B;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,YACA,yCAA2C;AAAA,cACzC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO,CAAC;AAAA,oBACR,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,OAAO,KAAK;AAAA,kBACzB,sBAAwB;AAAA,gBAC1B;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,KAAK;AAAA,cAChC,sBAAwB;AAAA,gBACtB,OAAS;AAAA,kBACP;AAAA,oBACE,MAAQ;AAAA,kBACV;AAAA,kBACA;AAAA,oBACE,KAAO,CAAC;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,gBACX;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,KAAK;AAAA,YAC3B;AAAA,YACA,qBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,OAAO,OAAO,SAAS,SAAS;AAAA,cAC7C,sBAAwB,CAAC;AAAA,YAC3B;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,cAAgB;AAAA,cACd,MAAQ;AAAA,YACV;AAAA,YACA,8CAA8C;AAAA,cAC5C,MAAQ;AAAA,cACR,sBAAwB;AAAA,cACxB,YAAc,CAAC;AAAA,YACjB;AAAA,YACA,YAAc;AAAA,cACZ,UAAY;AAAA,cACZ,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,MAAQ;AAAA,sBACN,OAAS;AAAA,wBACP;AAAA,0BACE,MAAQ;AAAA,wBACV;AAAA,wBACA;AAAA,0BACE,MAAQ;AAAA,wBACV;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,UAAY,CAAC,QAAQ,KAAK;AAAA,kBAC1B,sBAAwB;AAAA,gBAC1B;AAAA,cACF;AAAA,YACF;AAAA,YACA,aAAe;AAAA,cACb,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,sBAAwB;AAAA,cACtB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,kBAAkB,cAAc;AAAA,cAC7C,sBAAwB;AAAA,YAC1B;AAAA,YACA,kBAAoB;AAAA,cAClB,MAAQ;AAAA,cACR,MAAQ,CAAC,UAAU,SAAS,cAAc;AAAA,YAC5C;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,UAAU,UAAU,YAAY;AAAA,cAC7C,sBAAwB;AAAA,YAC1B;AAAA,YACA,6BAA+B;AAAA,cAC7B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,gCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,MAAQ,CAAC,UAAU,UAAU,OAAO,KAAK;AAAA,kBACzC,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,uBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,4BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,4BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,gBAAkB;AAAA,cAChB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,kCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,kCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,YAAY;AAAA,cAClE,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,aAAe;AAAA,YACjB;AAAA,YACA,yDAAyD;AAAA,cACvD,MAAQ;AAAA,cACR,sBAAwB;AAAA,gBACtB,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,0CAA0C;AAAA,cACxC,MAAQ;AAAA,cACR,sBAAwB;AAAA,gBACtB,MAAQ,CAAC,UAAU,UAAU,SAAS;AAAA,cACxC;AAAA,YACF;AAAA,YACA,iCAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,iCAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,OAAS;AAAA,YACX;AAAA,YACA,+BAAiC;AAAA,cAC/B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,YACF;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,MAAQ,CAAC,UAAU,QAAQ;AAAA,kBAC3B,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,OAAS;AAAA,gBACP;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,gBACA;AAAA,kBACE,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,YACjB;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,OAAS;AAAA,kBACP,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,kBACtB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,yBAA2B;AAAA,kBACzB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,UAAY;AAAA,kBACV,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,OAAO;AAAA,YAClC;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,eAAiB;AAAA,kBACf,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,iBAAiB,gBAAgB;AAAA,cACpD,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,QAAQ,QAAQ;AAAA,cACnC,sBAAwB;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,YACpE;AAAA,YACA,+BAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,sBACV;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,kBACtB,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,yBAA2B;AAAA,kBACzB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,QAAQ,sBAAsB;AAAA,cACvD,sBAAwB;AAAA,YAC1B;AAAA,YACA,oCAAsC;AAAA,cACpC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,UAAY;AAAA,kBACZ,UAAY;AAAA,kBACZ,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,UAAY;AAAA,kBACV,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,MAAQ;AAAA,kBACN,OAAS;AAAA,oBACP;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,oBACA;AAAA,sBACE,MAAQ;AAAA,oBACV;AAAA,kBACF;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,kBACR,OAAS;AAAA,kBACT,aAAe;AAAA,gBACjB;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,aAAe;AAAA,gBACjB;AAAA,gBACA,KAAO;AAAA,kBACL,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,kBACA,aAAe;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY,WAAW,QAAQ,UAAU,gBAAgB,KAAK;AAAA,cAC3E,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,YACV;AAAA,YACA,oDAAoD;AAAA,cAClD,MAAQ;AAAA,cACR,sBAAwB;AAAA,cACxB,YAAc,CAAC;AAAA,YACjB;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,YACV;AAAA,YACA,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,QAAQ;AAAA,cACrB,sBAAwB;AAAA,YAC1B;AAAA,YACA,0BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,oBAAsB;AAAA,cACpB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,sBAAwB;AAAA,YAC1B;AAAA,YACA,yBAA2B;AAAA,cACzB,MAAQ;AAAA,cACR,sBAAwB;AAAA,YAC1B;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,oBAAsB;AAAA,cACpB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,cAAgB;AAAA,cACd,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,gBAAkB;AAAA,cAChB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,yBAA2B;AAAA,cACzB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,uBAAyB;AAAA,cACvB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC17CA,OAAOA,aAAa;AAGpB,SACEC,wBAMK;AAEP,OAAOC,gBAAgB;AACvB,OAAOC,aAAa;AACpB,OAAOC,WAAW;AAiBlB,SAASC,qBAAqB;AA9B9B,IAAM,EAAEC,IAAG,IAAKC;AA4BhB,IAAOC,aAAa,QAAQ,IAAI,SAAS,IAAI;AAC7C,IAAOC,mBAAmB,QAAQ,IAAI,SAAS,KAAK,KAAK,OAAO;AAIzD,IAAMC,8BAA6C;EACxD;EACA;EACA;EACA;EACA;;AAMK,IAAMC,uBAAN,MAAMA;EA7Cb,OA6CaA;;;EACFC,SAASA,OAAOC;EAChBC,UAAiC;IACxCC,oBAAoB,KAAKA,mBAAmBC,KAAK,IAAI;IACrDC,gBAAgB,KAAKA,eAAeD,KAAK,IAAI;IAC7CE,cAAc,KAAKA,aAAaF,KAAK,IAAI;IACzCG,yBAAyB,KAAKA,wBAAwBH,KAAK,IAAI;IAC/DI,uBAAuB,KAAKA,sBAAsBJ,KAAK,IAAI;EAC7D;EAEQK,cAAcC,WAA6E;AACjG,QAAI,gBAAgBA,WAAW;AAC7B,YAAM,EAAEC,WAAU,IAAKD;AAEvB,UAAI,sBAAsBC,YAAY;AACpC,cAAM,EAAEC,iBAAgB,IAAKD;AAE7B,YAAIE,MAAMC,QAAQF,gBAAAA,GAAmB;AACnC,iBAAOA;QACT,WAAWA,kBAAkB;AAC3B,iBAAO;YAACA;;QACV;MACF;IACF;AAEA,WAAOG;EACT;EAEA,MAAcZ,mBAAmBa,MAA4BC,SAAuD;AAClH,UAAM,EAAEN,YAAYO,SAASC,eAAeC,SAAQ,IAAKJ;AAEzD,UAAMK,eAAe,MAAM,KAAKhB,eAAe;MAC7CM;MACAW,kBAAkBF,UAAUG,oBAAoBC,iBAAiBC;MACjEP;IACF,CAAA;AACA,QAAI,CAACG,aAAaK,QAAQ;AACxB,aAAOL;IACT;AACA,QAAIM,iBAAiBC,uBAAuBjB,UAAAA,GAAa;AACvD,aAAO,MAAM,KAAKL,aAAa;QAAEK;MAAW,GAAGM,OAAAA;IACjD,WAAWU,iBAAiBE,eAAelB,UAAAA,GAAa;AACtD,aAAO,MAAM,KAAKJ,wBAAwB;QAAEI;QAAYO;MAAO,GAAGD,OAAAA;IACpE,OAAO;AACL,aAAO,MAAM,KAAKT,sBAChB;QACE,GAAGQ;QACHL;MACF,GACAM,OAAAA;IAEJ;EACF;EAEA,MAAcZ,eAAeW,MAAuD;AAClF,UAAM,EAAEL,YAAYO,SAASC,eAAeG,iBAAgB,IAAKN;AACjE,UAAMc,oBAAiDH,iBAAiBI,8BAA8BpB,YAAY;MAAEO;IAAO,CAAA;AAC3H,QAAII,qBAAqBE,iBAAiBQ,OAAO;AAC/C,aAAO;QACLN,QAAQ;QACRO,QAAQH;QACRI,YAAY,CAAA;MACd;IACF;AACA,WAAO,KAAKC,eAAeL,mBAAmBR,gBAAAA;EAChD;EAEA,MAAca,eAAezB,WAAwCY,kBAAkE;AACrI,UAAMc,UAA+C,KAAK3B,cAAcC,SAAAA;AACxE,QAAI,CAAC0B,SAAS;AACZ,UAAId,qBAAqBE,iBAAiBa,QAAQ;AAChDC,gBAAQC,MACN,wGAAwGC,KAAKC,UAAU/B,UAAUC,YAAY,MAAM,CAAA,CAAA,EAAI;AAEzJ,eAAO;UACLe,QAAQ;UACRO,QAAQvB;UACRwB,YAAY,CAAA;QACd;MACF,OAAO;AACL,eAAO;UACLR,QAAQ;UACRO,QAAQvB;UACRwB,YAAY,CAAA;QACd;MACF;IACF;AAEA,UAAMA,aAAsC,MAAMQ,QAAQC,IAAIP,QAAQQ,IAAI,CAAC5C,YAAW,KAAK6C,8BAA8BnC,WAAWV,OAAAA,CAAAA,CAAAA;AAEpI,WAAO;MACL0B,QAAQQ,WAAWY,MAAM,CAACC,cAAcA,UAAUrB,MAAM;MACxDO,QAAQvB;MACRwB;IACF;EACF;EAEA,MAAcc,YAAYC,KAAa;AACrC,UAAMC,WAAW,MAAMC,MAAMF,GAAAA;AAC7B,QAAI,CAACC,SAASE,IAAI;AAChB,YAAM,IAAIC,MAAM,+BAA+BJ,GAAAA,EAAK;IACtD;AACA,WAAOC,SAASI,KAAI;EACtB;EAEA,MAAcT,8BAA8BnC,WAAwCV,SAA+D;AACjJ,UAAMuD,YAAoB,OAAOvD,YAAW,WAAWA,UAASA,QAAOwD;AACvE,QAAIC;AACJ,QAAI;AACFA,oBAAc,MAAM,KAAKT,YAAYO,SAAAA;IACvC,SAAShB,OAAO;AACdD,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLb,QAAQ;QACRa;MACF;IACF;AAEA,UAAMmB,MAAM,IAAIC,QAAQ;MAAEC,YAAY,KAAKZ;IAAY,CAAA;AACvDa,eAAWH,GAAAA;AAEX,UAAMI,WAAW,MAAMJ,IAAIK,aAAaN,WAAAA;AACxC,UAAMO,QAAQF,SAASpD,UAAUC,UAAU;AAC3C,QAAI,CAACqD,OAAO;AACV1B,cAAQC,MAAM,iCAAiC7B,UAAUC,UAAU;IACrE;AACA,WAAO;MACLe,QAAQsC;IACV;EACF;EAEA,MAAc1D,aAAaU,MAAgCC,SAAuD;AAChH,UAAM,EAAEN,WAAU,IAAKK;AAEvB,UAAMiD,eAAepE,iBAAiBqE,OAAOC,WAAWvE,WAAWe,YAAYjB,IAAI0E,SAASC,IAAIC,SAASC,SAAS,CAAA;AAElH,UAAMC,eAAe,MAAMvD,QAAQwD,MAAMC,uBAAuB;MAAEC,OAAOV,aAAaW,OAAM,EAAGC;IAAW,CAAA,EAAGC,MAAM,CAACvC,UAAAA;AAClHD,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLwC,MAAM;QACNC,UAAU;QACVzC,OAAO;QACP0C,SAAS1C,MAAM0C,WAAW;MAC5B;IACF,CAAA;AAEA,WAAO;MACLhD,QAAQN,iBAAiBI,8BAA8BpB,YAA4C;QAAEO,QAAQC;MAAc,CAAA;MAC3HO,QAAQ,CAAC8C,aAAajC;MACtBL,YAAY,CAAA;MACZ,GAAIsC,aAAajC,SAAS;QACxBA,OAAOiC,aAAaS,WAAW;MACjC;IACF;EACF;EAEA,MAAczE,sBAAsBQ,MAA6BC,SAAuD;AAEtH,UAAM,EAAEN,YAAYS,SAAQ,IAAKJ;AAEjC,UAAMU,SAAmC,MAAMT,QAAQwD,MAAMS,iBAAiBlE,IAAAA;AAE9E,QAAI,OAAOU,WAAW,WAAW;AAC/B,aAAO;;QAELO,QAAQN,iBAAiBI,8BAA8Bf,KAAKL,YAA4C;UAAEO,QAAQC;QAAc,CAAA;QAChIO;QACA,GAAI,CAACA,UAAU;UACba,OAAO;UACP4C,cAAc,uCAAuC3C,KAAKC,UAAUrB,QAAAA,CAAAA;QACtE;QACAc,YAAY,CAAA;MACd;IACF,OAAO;AAEL,UAAIK;AACJ,UAAI4C;AACJ,YAAMjD,aAA2C,CAAA;AACjD,UAAIR,OAAOa,OAAO;AAChBA,gBAAQb,OAAOa,OAAO0C,WAAW;AACjCE,uBAAezD,OAAOa,OAAO6C,SAASC,QAAQ;AAC9CF,wBAAgBA,iBAAiB,KAAK,GAAGA,YAAAA,OAAmB,OAAOzD,OAAOa,OAAO6C,SAASE,OAAO;AACjG,YAAI5D,OAAOa,OAAOgD,QAAQ;AACxBhD,mBAASA,UAAU,KAAK,GAAGA,KAAAA,OAAY,MAAMb,OAAOa,OAAOgD,QAAQ3C,IAAI,CAACL,WAAUA,OAAM0C,WAAW1C,OAAMwC,IAAI,EAAES,KAAK,IAAA;AACpHL,0BACGA,iBAAiB,KAAK,GAAGA,YAAAA,OAAmB,MAC7CzD,OAAOa,OAAOgD,QAAQ3C,IAAI,CAACL,YAAWA,QAAO6C,SAASC,OAAO,GAAG9C,OAAM6C,QAAQC,IAAI,OAAO,OAAO9C,QAAO6C,SAASE,OAAO,GAAC,EAAIE,KAAK,IAAA;QACrI;AACAlD,gBAAQC,MAAMA,KAAAA;MAChB;AAEA,aAAO;QACLN,QAAQN,iBAAiBI,8BAA8BpB,YAA4C;UAAEO,QAAQC;QAAc,CAAA;QAC3HO,QAAQA,OAAO+D;QACfvD;QACAK;QACA4C;MACF;IACF;EACF;EAEA,MAAc5E,wBAAwBS,MAAiCC,SAAuD;AAC5H,UAAM,EAAEN,YAAYO,SAASC,cAAa,IAAKH;AAE/C,UAAMwD,eAAmE,MAAMvD,QAAQwD,MACpFiB,cAAc;MAAE/E;IAAW,CAAA,EAC3BmE,MAAM,CAACvC,UAAAA;AACND,cAAQC,MAAMA,KAAAA;AACd,aAAO;QACLA,OAAO;QACP4C,cAAc5C,MAAM0C,WAAW;MACjC;IACF,CAAA;AAEF,UAAMvD,SAAS,YAAY8C,gBAAgB,aAAaA;AACxD,WAAO;MACLvC,QAAQN,iBAAiBI,8BAA8BpB,YAA4C;QAAEO,QAAQA,UAAUC;MAAc,CAAA;MACrIO;MACAQ,YAAY,CAAA;MACZ,GAAI,CAACR,UAAU;QAAE,GAAG8C;MAAa;IACnC;EACF;AACF;;;AC9PO,IAAKmB,mBAAAA,0BAAAA,mBAAAA;;;;SAAAA;;;;ACVZ,IAAMC,SAASC;","names":["mdocPkg","CredentialMapper","addFormats","Ajv2020","fetch","defaultHasher","com","mdocPkg","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts","../src/index.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"dc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020.js'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, mdocPkg.com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n"],"mappings":"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","names":["mdocPkg","CredentialMapper","addFormats","Ajv2020","fetch","defaultHasher","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","mdocPkg","com","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.credential-validation",
3
- "version": "0.34.1-next.91+3c949810",
3
+ "version": "0.36.1-feat.SSISDK.83.3+08adc8a3",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -28,11 +28,11 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.26",
31
- "@sphereon/ssi-sdk.agent-config": "0.34.1-next.91+3c949810",
32
- "@sphereon/ssi-sdk.core": "0.34.1-next.91+3c949810",
33
- "@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-next.91+3c949810",
34
- "@sphereon/ssi-sdk.sd-jwt": "0.34.1-next.91+3c949810",
35
- "@sphereon/ssi-types": "0.34.1-next.91+3c949810",
31
+ "@sphereon/ssi-sdk.agent-config": "0.36.1-feat.SSISDK.83.3+08adc8a3",
32
+ "@sphereon/ssi-sdk.core": "0.36.1-feat.SSISDK.83.3+08adc8a3",
33
+ "@sphereon/ssi-sdk.mdl-mdoc": "0.36.1-feat.SSISDK.83.3+08adc8a3",
34
+ "@sphereon/ssi-sdk.sd-jwt": "0.36.1-feat.SSISDK.83.3+08adc8a3",
35
+ "@sphereon/ssi-types": "0.36.1-feat.SSISDK.83.3+08adc8a3",
36
36
  "@veramo/core": "4.2.0",
37
37
  "@veramo/data-store": "4.2.0",
38
38
  "@veramo/utils": "4.2.0",
@@ -43,8 +43,8 @@
43
43
  "typeorm": "0.3.20"
44
44
  },
45
45
  "devDependencies": {
46
- "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-next.91+3c949810",
47
- "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-next.91+3c949810",
46
+ "@sphereon/ssi-sdk-ext.key-manager": "0.36.1-feat.SSISDK.83.3+08adc8a3",
47
+ "@sphereon/ssi-sdk-ext.kms-local": "0.36.1-feat.SSISDK.83.3+08adc8a3",
48
48
  "@veramo/credential-w3c": "4.2.0",
49
49
  "@veramo/data-store": "4.2.0",
50
50
  "@veramo/did-manager": "4.2.0",
@@ -72,5 +72,5 @@
72
72
  "Credential",
73
73
  "VerifiableCredential"
74
74
  ],
75
- "gitHead": "3c9498100ca07dfc2ba7979e7347fb9b19c47d18"
75
+ "gitHead": "08adc8a36bd361bbae337829b04343fd37de5803"
76
76
  }
@@ -1,5 +1,4 @@
1
1
  import mdocPkg from '@sphereon/kmp-mdoc-core'
2
- const { com } = mdocPkg
3
2
  import { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'
4
3
  import {
5
4
  CredentialMapper,
@@ -11,7 +10,7 @@ import {
11
10
  } from '@sphereon/ssi-types'
12
11
  import { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'
13
12
  import addFormats from 'ajv-formats'
14
- import Ajv2020 from 'ajv/dist/2020'
13
+ import Ajv2020 from 'ajv/dist/2020.js'
15
14
  import fetch from 'cross-fetch'
16
15
  import {
17
16
  CredentialVerificationError,
@@ -177,7 +176,7 @@ export class CredentialValidation implements IAgentPlugin {
177
176
  private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {
178
177
  const { credential } = args
179
178
 
180
- const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))
179
+ const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, mdocPkg.com.sphereon.kmp.Encoding.BASE64URL))
181
180
 
182
181
  const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {
183
182
  console.error(error)