@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
JavaScript
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