{"version":3,"file":"DidCommV2Service.mjs","names":[],"sources":["../../../../../src/modules/dids/domain/service/DidCommV2Service.ts"],"sourcesContent":["import { Type } from 'class-transformer'\nimport { IsOptional, IsString, ValidateNested } from 'class-validator'\n\nimport { CredoError } from '../../../../error'\nimport type { SingleOrArray } from '../../../../types'\nimport { IsInstanceOrArrayOfInstances, IsUri } from '../../../../utils'\nimport { DidDocumentService } from './DidDocumentService'\n\nexport interface DidCommV2ServiceEndpointOptions {\n  uri: string\n  routingKeys?: string[]\n  accept?: string[]\n}\n\nexport class DidCommV2ServiceEndpoint {\n  public constructor(options: DidCommV2ServiceEndpointOptions) {\n    if (options) {\n      this.uri = options.uri\n      this.routingKeys = options.routingKeys\n      this.accept = options.accept\n    }\n  }\n\n  @IsString()\n  @IsUri()\n  public uri!: string\n\n  @IsString({ each: true })\n  @IsOptional()\n  public routingKeys?: string[]\n\n  @IsString({ each: true })\n  @IsOptional()\n  public accept?: string[];\n\n  [key: string]: unknown | undefined\n}\n\nexport interface DidCommV2ServiceOptions {\n  id: string\n  serviceEndpoint: SingleOrArray<DidCommV2ServiceEndpoint>\n}\n\nexport class DidCommV2Service extends DidDocumentService {\n  public constructor(options: DidCommV2ServiceOptions) {\n    super({ ...options, type: DidCommV2Service.type })\n\n    if (options) {\n      this.serviceEndpoint = options.serviceEndpoint\n    }\n  }\n\n  public static type = 'DIDCommMessaging'\n\n  @IsInstanceOrArrayOfInstances({ classType: [DidCommV2ServiceEndpoint] })\n  @ValidateNested()\n  @Type(() => DidCommV2ServiceEndpoint)\n  public serviceEndpoint!: SingleOrArray<DidCommV2ServiceEndpoint>\n\n  public get firstServiceEndpointUri(): string {\n    if (Array.isArray(this.serviceEndpoint)) {\n      if (this.serviceEndpoint.length === 0) {\n        throw new CredoError('No entries in serviceEndpoint array')\n      }\n\n      return this.serviceEndpoint[0].uri\n    }\n\n    return this.serviceEndpoint.uri\n  }\n}\n"],"mappings":";;;;;;;;;;AAcA,IAAa,2BAAb,MAAsC;CACpC,YAAmB,SAA0C;EAC3D,IAAI,SAAS;GACX,KAAK,MAAM,QAAQ;GACnB,KAAK,cAAc,QAAQ;GAC3B,KAAK,SAAS,QAAQ;EACxB;CACF;AAeF;;CAbG,SAAS;CACT,MAAM;;;;CAGN,SAAS,EAAE,MAAM,KAAK,CAAC;CACvB,WAAW;;;;CAGX,SAAS,EAAE,MAAM,KAAK,CAAC;CACvB,WAAW;;;AAWd,IAAa,mBAAb,MAAa,yBAAyB,mBAAmB;CACvD,YAAmB,SAAkC;EACnD,MAAM;GAAE,GAAG;GAAS,MAAM,iBAAiB;EAAK,CAAC;EAEjD,IAAI,SACF,KAAK,kBAAkB,QAAQ;CAEnC;CASA,IAAW,0BAAkC;EAC3C,IAAI,MAAM,QAAQ,KAAK,eAAe,GAAG;GACvC,IAAI,KAAK,gBAAgB,WAAW,GAClC,MAAM,IAAI,WAAW,qCAAqC;GAG5D,OAAO,KAAK,gBAAgB,EAAE,CAAC;EACjC;EAEA,OAAO,KAAK,gBAAgB;CAC9B;AACF;AAlBE,iBAAc,OAAO;;CAEpB,6BAA6B,EAAE,WAAW,CAAC,wBAAwB,EAAE,CAAC;CACtE,eAAe;CACf,WAAW,wBAAwB"}