{"version":3,"file":"MdocService.mjs","names":[],"sources":["../../../src/modules/mdoc/MdocService.ts"],"sourcesContent":["import { AgentContext } from '../../agent'\nimport { injectable } from '../../plugins'\nimport type { Query, QueryOptions } from '../../storage/StorageService'\nimport { Mdoc } from './Mdoc'\nimport { MdocDeviceResponse } from './MdocDeviceResponse'\nimport type {\n  MdocDeviceResponseDcqlQueryOptions,\n  MdocDeviceResponseOptions,\n  MdocDeviceResponsePresentationDefinitionOptions,\n  MdocDeviceResponseVerifyOptions,\n  MdocSignOptions,\n  MdocStoreOptions,\n  MdocVerifyOptions,\n} from './MdocOptions'\nimport { MdocRecord, MdocRepository } from './repository'\n\n/**\n * @internal\n */\n@injectable()\nexport class MdocService {\n  private mdocRepository: MdocRepository\n\n  public constructor(mdocRepository: MdocRepository) {\n    this.mdocRepository = mdocRepository\n  }\n\n  public mdocFromBase64Url(hexEncodedMdoc: string) {\n    return Mdoc.fromBase64Url(hexEncodedMdoc)\n  }\n\n  public signMdoc(agentContext: AgentContext, options: MdocSignOptions) {\n    return Mdoc.sign(agentContext, options)\n  }\n\n  public async verifyMdoc(agentContext: AgentContext, mdoc: Mdoc, options: MdocVerifyOptions) {\n    return await mdoc.verify(agentContext, options)\n  }\n\n  public async createDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOptions) {\n    return MdocDeviceResponse.createDeviceResponse(agentContext, options)\n  }\n\n  public async createPresentationDefinitionDeviceResponse(\n    agentContext: AgentContext,\n    options: MdocDeviceResponsePresentationDefinitionOptions\n  ) {\n    return MdocDeviceResponse.createDeviceResponseWithPresentationDefinition(agentContext, options)\n  }\n\n  public async createDcqlQueryDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseDcqlQueryOptions) {\n    return MdocDeviceResponse.createDeviceResponseWithDcqlQuery(agentContext, options)\n  }\n\n  public async verifyDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseVerifyOptions) {\n    const deviceResponse = MdocDeviceResponse.fromBase64Url(options.deviceResponse)\n    return deviceResponse.verify(agentContext, options)\n  }\n\n  public async store(agentContext: AgentContext, options: MdocStoreOptions) {\n    await this.mdocRepository.save(agentContext, options.record)\n\n    return options.record\n  }\n\n  public async getById(agentContext: AgentContext, id: string): Promise<MdocRecord> {\n    return await this.mdocRepository.getById(agentContext, id)\n  }\n\n  public async getAll(agentContext: AgentContext): Promise<Array<MdocRecord>> {\n    return await this.mdocRepository.getAll(agentContext)\n  }\n\n  public async findByQuery(\n    agentContext: AgentContext,\n    query: Query<MdocRecord>,\n    queryOptions?: QueryOptions\n  ): Promise<Array<MdocRecord>> {\n    return await this.mdocRepository.findByQuery(agentContext, query, queryOptions)\n  }\n\n  public async deleteById(agentContext: AgentContext, id: string) {\n    await this.mdocRepository.deleteById(agentContext, id)\n  }\n\n  public async update(agentContext: AgentContext, mdocRecord: MdocRecord) {\n    await this.mdocRepository.update(agentContext, mdocRecord)\n  }\n}\n"],"mappings":";;;;;;;;;;;;;AAoBO,wBAAM,YAAY;CAGvB,AAAO,YAAY,gBAAgC;AACjD,OAAK,iBAAiB;;CAGxB,AAAO,kBAAkB,gBAAwB;AAC/C,SAAO,KAAK,cAAc,eAAe;;CAG3C,AAAO,SAAS,cAA4B,SAA0B;AACpE,SAAO,KAAK,KAAK,cAAc,QAAQ;;CAGzC,MAAa,WAAW,cAA4B,MAAY,SAA4B;AAC1F,SAAO,MAAM,KAAK,OAAO,cAAc,QAAQ;;CAGjD,MAAa,qBAAqB,cAA4B,SAAoC;AAChG,SAAO,mBAAmB,qBAAqB,cAAc,QAAQ;;CAGvE,MAAa,2CACX,cACA,SACA;AACA,SAAO,mBAAmB,+CAA+C,cAAc,QAAQ;;CAGjG,MAAa,8BAA8B,cAA4B,SAA6C;AAClH,SAAO,mBAAmB,kCAAkC,cAAc,QAAQ;;CAGpF,MAAa,qBAAqB,cAA4B,SAA0C;AAEtG,SADuB,mBAAmB,cAAc,QAAQ,eAAe,CACzD,OAAO,cAAc,QAAQ;;CAGrD,MAAa,MAAM,cAA4B,SAA2B;AACxE,QAAM,KAAK,eAAe,KAAK,cAAc,QAAQ,OAAO;AAE5D,SAAO,QAAQ;;CAGjB,MAAa,QAAQ,cAA4B,IAAiC;AAChF,SAAO,MAAM,KAAK,eAAe,QAAQ,cAAc,GAAG;;CAG5D,MAAa,OAAO,cAAwD;AAC1E,SAAO,MAAM,KAAK,eAAe,OAAO,aAAa;;CAGvD,MAAa,YACX,cACA,OACA,cAC4B;AAC5B,SAAO,MAAM,KAAK,eAAe,YAAY,cAAc,OAAO,aAAa;;CAGjF,MAAa,WAAW,cAA4B,IAAY;AAC9D,QAAM,KAAK,eAAe,WAAW,cAAc,GAAG;;CAGxD,MAAa,OAAO,cAA4B,YAAwB;AACtE,QAAM,KAAK,eAAe,OAAO,cAAc,WAAW;;;0BAnE7D,YAAY"}