@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
1 lines • 2.7 kB
Source Map (JSON)
{"version":3,"file":"W3cV2Holder.mjs","names":[],"sources":["../../../../../src/modules/vc/models/presentation/W3cV2Holder.ts"],"sourcesContent":["import {\n instanceToPlain,\n plainToClassFromExist,\n plainToInstance,\n Transform,\n TransformationType,\n} from 'class-transformer'\nimport type { ValidationOptions } from 'class-validator'\nimport { buildMessage, isInstance, isString, ValidateBy } from 'class-validator'\nimport { IsUri, isUri } from '../../../../utils'\n\nexport interface W3cV2HolderOptions {\n id: string\n [property: string]: unknown\n}\n\n/**\n * Represents a credential holder.\n *\n * @see https://www.w3.org/TR/vc-data-model-2.0/#holder\n */\nexport class W3cV2Holder {\n public constructor(options: W3cV2HolderOptions) {\n if (options) {\n const { id, ...rest } = options\n\n plainToClassFromExist(this, rest)\n\n this.id = id\n }\n }\n\n @IsUri()\n public id!: string;\n\n [property: string]: unknown\n}\n\nexport function W3cV2HolderTransformer() {\n return Transform(({ value, type }) => {\n if (type === TransformationType.PLAIN_TO_CLASS) {\n if (isString(value)) return value\n return plainToInstance(W3cV2Holder, value)\n }\n\n if (type === TransformationType.CLASS_TO_PLAIN) {\n if (isString(value)) return value\n return instanceToPlain(value)\n }\n\n // PLAIN_TO_PLAIN\n return value\n })\n}\n\nexport function IsW3cV2Holder(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: 'IsW3cV2Holder',\n validator: {\n validate: (value): boolean => {\n return (typeof value === 'string' && isUri(value)) || (isInstance(value, W3cV2Holder) && isUri(value.id))\n },\n defaultMessage: buildMessage(\n (eachPrefix) => `${eachPrefix}$property must be an URL or a valid W3cV2Holder instance`,\n validationOptions\n ),\n },\n },\n validationOptions\n )\n}\n"],"mappings":";;;;;;;;;;;;AAqBA,IAAa,cAAb,MAAyB;CACvB,YAAmB,SAA6B;EAC9C,IAAI,SAAS;GACX,MAAM,EAAE,IAAI,GAAG,SAAS;GAExB,sBAAsB,MAAM,IAAI;GAEhC,KAAK,KAAK;EACZ;CACF;AAMF;AAJG,WAAA,CAAA,MAAM,GAAA,mBAAA,eAAA,MAAA,CAAA,GAAA,YAAA,WAAA,MAAA,KAAA,CAAA;AAMT,SAAgB,yBAAyB;CACvC,OAAO,WAAW,EAAE,OAAO,WAAW;EACpC,IAAI,SAAS,mBAAmB,gBAAgB;GAC9C,IAAI,SAAS,KAAK,GAAG,OAAO;GAC5B,OAAO,gBAAgB,aAAa,KAAK;EAC3C;EAEA,IAAI,SAAS,mBAAmB,gBAAgB;GAC9C,IAAI,SAAS,KAAK,GAAG,OAAO;GAC5B,OAAO,gBAAgB,KAAK;EAC9B;EAGA,OAAO;CACT,CAAC;AACH;AAEA,SAAgB,cAAc,mBAA0D;CACtF,OAAO,WACL;EACE,MAAM;EACN,WAAW;GACT,WAAW,UAAmB;IAC5B,OAAQ,OAAO,UAAU,YAAY,MAAM,KAAK,KAAO,WAAW,OAAO,WAAW,KAAK,MAAM,MAAM,EAAE;GACzG;GACA,gBAAgB,cACb,eAAe,GAAG,WAAW,2DAC9B,iBACF;EACF;CACF,GACA,iBACF;AACF"}