{"version":3,"file":"W3cV2Issuer.mjs","names":[],"sources":["../../../../../src/modules/vc/models/credential/W3cV2Issuer.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 W3cV2IssuerOptions {\n  id: string\n  [property: string]: unknown\n}\n\n/**\n * Represents a credential issuer.\n *\n * @see https://www.w3.org/TR/vc-data-model-2.0/#issuer\n */\nexport class W3cV2Issuer {\n  public constructor(options: W3cV2IssuerOptions) {\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 W3cV2IssuerTransformer() {\n  return Transform(({ value, type }) => {\n    if (type === TransformationType.PLAIN_TO_CLASS) {\n      if (isString(value)) return value\n      return plainToInstance(W3cV2Issuer, 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 IsW3cV2Issuer(validationOptions?: ValidationOptions): PropertyDecorator {\n  return ValidateBy(\n    {\n      name: 'IsW3cV2Issuer',\n      validator: {\n        validate: (value): boolean => {\n          return (typeof value === 'string' && isUri(value)) || (isInstance(value, W3cV2Issuer) && isUri(value.id))\n        },\n        defaultMessage: buildMessage(\n          (eachPrefix) => `${eachPrefix}$property must be an URL or a valid W3cV2Issuer instance`,\n          validationOptions\n        ),\n      },\n    },\n    validationOptions\n  )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAa,cAAb,MAAyB;CACvB,AAAO,YAAY,SAA6B;AAC9C,MAAI,SAAS;GACX,MAAM,EAAE,IAAI,GAAG,SAAS;AAExB,yBAAsB,MAAM,KAAK;AAEjC,QAAK,KAAK;;;;YAIb,OAAO;AAMV,SAAgB,yBAAyB;AACvC,QAAO,WAAW,EAAE,OAAO,WAAW;AACpC,MAAI,SAAS,mBAAmB,gBAAgB;AAC9C,OAAI,SAAS,MAAM,CAAE,QAAO;AAC5B,UAAO,gBAAgB,aAAa,MAAM;;AAG5C,MAAI,SAAS,mBAAmB,gBAAgB;AAC9C,OAAI,SAAS,MAAM,CAAE,QAAO;AAC5B,UAAO,gBAAgB,MAAM;;AAI/B,SAAO;GACP;;AAGJ,SAAgB,cAAc,mBAA0D;AACtF,QAAO,WACL;EACE,MAAM;EACN,WAAW;GACT,WAAW,UAAmB;AAC5B,WAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,IAAM,WAAW,OAAO,YAAY,IAAI,MAAM,MAAM,GAAG;;GAE1G,gBAAgB,cACb,eAAe,GAAG,WAAW,2DAC9B,kBACD;GACF;EACF,EACD,kBACD"}