UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

72 lines (71 loc) • 3.19 kB
import { CredoError } from "../../../../error/CredoError.mjs"; import "../../../../error/index.mjs"; import { asArray, mapSingleOrArray } from "../../../../utils/array.mjs"; import { JsonTransformer } from "../../../../utils/JsonTransformer.mjs"; import { IsInstanceOrArrayOfInstances } from "../../../../utils/validators.mjs"; import "../../../../utils/index.mjs"; import __decorateMetadata from "../../../../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateMetadata.mjs"; import __decorate from "../../../../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorate.mjs"; import { AnonCredsW3cCredentialProof } from "../../anoncreds-w3c-credential/AnonCredsW3cCredentialProof.mjs"; import { ANONCREDS_W3C_CREDENTIAL_CRYPTOSUITE } from "../../anoncreds-w3c-credential/IAnonCredsW3cCredentialService.mjs"; import "../../anoncreds-w3c-credential/index.mjs"; import "../../models/ClaimFormat.mjs"; import { W3cCredential } from "../../models/credential/W3cCredential.mjs"; import { LinkedDataProof } from "./LinkedDataProof.mjs"; import { ProofTransformer } from "../proof-ops/ProofTransformer.mjs"; import { ValidateNested } from "class-validator"; //#region src/modules/vc/linked-data-proofs/models/W3cJsonLdVerifiableCredential.ts const mapProofOptionToProofClass = (proof) => { if ("cryptosuite" in proof) { if (proof.type !== "DataIntegrityProof" || proof.cryptosuite !== "anoncreds-2023") throw new CredoError(`W3C credential proofs only support DataIntegrityProof with cryptosuite ${ANONCREDS_W3C_CREDENTIAL_CRYPTOSUITE}`); return new AnonCredsW3cCredentialProof(proof); } return new LinkedDataProof(proof); }; var W3cJsonLdVerifiableCredential = class W3cJsonLdVerifiableCredential extends W3cCredential { constructor(options) { super(options); if (options) this.proof = mapSingleOrArray(options.proof, mapProofOptionToProofClass); } get proofTypes() { return (asArray(this.proof) ?? []).map((proof) => proof.type); } get anonCredsW3cCredentialCryptosuites() { return (asArray(this.proof) ?? []).filter((proof) => proof.type === "DataIntegrityProof" && "cryptosuite" in proof).map((proof) => proof.cryptosuite); } /** @deprecated Use anonCredsW3cCredentialCryptosuites */ get dataIntegrityCryptosuites() { return this.anonCredsW3cCredentialCryptosuites; } toJson() { return JsonTransformer.toJSON(this); } static fromJson(json) { return JsonTransformer.fromJSON(json, W3cJsonLdVerifiableCredential); } /** * The {@link ClaimFormat} of the credential. For JSON-LD credentials this is always `ldp_vc`. */ get claimFormat() { return "ldp_vc"; } /** * Get the encoded variant of the W3C Verifiable Credential. For JSON-LD credentials this is * a JSON object. */ get encoded() { return this.toJson(); } get jsonCredential() { return this.toJson(); } }; __decorate([ ProofTransformer(), IsInstanceOrArrayOfInstances({ classType: [LinkedDataProof, AnonCredsW3cCredentialProof] }), ValidateNested(), __decorateMetadata("design:type", Object) ], W3cJsonLdVerifiableCredential.prototype, "proof", void 0); //#endregion export { W3cJsonLdVerifiableCredential }; //# sourceMappingURL=W3cJsonLdVerifiableCredential.mjs.map