{"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,AAAO,YAAY,SAA0C;AAC3D,MAAI,SAAS;AACX,QAAK,MAAM,QAAQ;AACnB,QAAK,cAAc,QAAQ;AAC3B,QAAK,SAAS,QAAQ;;;;;CAIzB,UAAU;CACV,OAAO;;;;CAGP,SAAS,EAAE,MAAM,MAAM,CAAC;CACxB,YAAY;;;;CAGZ,SAAS,EAAE,MAAM,MAAM,CAAC;CACxB,YAAY;;;AAWf,IAAa,mBAAb,MAAa,yBAAyB,mBAAmB;CACvD,AAAO,YAAY,SAAkC;AACnD,QAAM;GAAE,GAAG;GAAS,MAAM,iBAAiB;GAAM,CAAC;AAElD,MAAI,QACF,MAAK,kBAAkB,QAAQ;;CAWnC,IAAW,0BAAkC;AAC3C,MAAI,MAAM,QAAQ,KAAK,gBAAgB,EAAE;AACvC,OAAI,KAAK,gBAAgB,WAAW,EAClC,OAAM,IAAI,WAAW,sCAAsC;AAG7D,UAAO,KAAK,gBAAgB,GAAG;;AAGjC,SAAO,KAAK,gBAAgB;;;iBAhBhB,OAAO;;CAEpB,6BAA6B,EAAE,WAAW,CAAC,yBAAyB,EAAE,CAAC;CACvE,gBAAgB;CAChB,WAAW,yBAAyB"}