{"version":3,"file":"OpenId4VcVerifierApi.mjs","names":[],"sources":["../../src/openid4vc-verifier/OpenId4VcVerifierApi.ts"],"sourcesContent":["import type { Query, QueryOptions } from '@credo-ts/core'\nimport { AgentContext, injectable } from '@credo-ts/core'\nimport { OpenId4VcVerifierModuleConfig } from './OpenId4VcVerifierModuleConfig'\nimport { OpenId4VpVerifierService } from './OpenId4VpVerifierService'\nimport type {\n  OpenId4VcUpdateVerifierRecordOptions,\n  OpenId4VpCreateAuthorizationRequestOptions,\n  OpenId4VpCreateAuthorizationRequestReturn,\n  OpenId4VpCreateVerifierOptions,\n  OpenId4VpVerifyAuthorizationResponseOptions,\n} from './OpenId4VpVerifierServiceOptions'\nimport type { OpenId4VcVerificationSessionRecord } from './repository'\n\n/**\n * @public\n */\n@injectable()\nexport class OpenId4VcVerifierApi {\n  public constructor(\n    public readonly config: OpenId4VcVerifierModuleConfig,\n    private agentContext: AgentContext,\n    private openId4VpVerifierService: OpenId4VpVerifierService\n  ) {}\n\n  /**\n   * Retrieve all verifier records from storage\n   */\n  public async getAllVerifiers() {\n    return this.openId4VpVerifierService.getAllVerifiers(this.agentContext)\n  }\n\n  /**\n   * Retrieve a verifier record from storage by its verified id\n   */\n  public async getVerifierByVerifierId(verifierId: string) {\n    return this.openId4VpVerifierService.getVerifierByVerifierId(this.agentContext, verifierId)\n  }\n\n  /**\n   * Create a new verifier and store the new verifier record.\n   */\n  public async createVerifier(options?: OpenId4VpCreateVerifierOptions) {\n    return this.openId4VpVerifierService.createVerifier(this.agentContext, options)\n  }\n\n  public async updateVerifierMetadata(options: OpenId4VcUpdateVerifierRecordOptions) {\n    const { verifierId, clientMetadata } = options\n\n    const verifier = await this.openId4VpVerifierService.getVerifierByVerifierId(this.agentContext, verifierId)\n\n    verifier.clientMetadata = clientMetadata\n\n    return this.openId4VpVerifierService.updateVerifier(this.agentContext, verifier)\n  }\n\n  public async findVerificationSessionsByQuery(\n    query: Query<OpenId4VcVerificationSessionRecord>,\n    queryOptions?: QueryOptions\n  ) {\n    return this.openId4VpVerifierService.findVerificationSessionsByQuery(this.agentContext, query, queryOptions)\n  }\n\n  public async getVerificationSessionById(verificationSessionId: string) {\n    return this.openId4VpVerifierService.getVerificationSessionById(this.agentContext, verificationSessionId)\n  }\n\n  /**\n   * Create an OpenID4VP authorization request, acting as a Relying Party (RP).\n   *\n   * See {@link OpenId4VpCreateAuthorizationRequestOptions} for detailed documentation on the options.\n   */\n  public async createAuthorizationRequest({\n    verifierId,\n    ...otherOptions\n  }: OpenId4VpCreateAuthorizationRequestOptions & {\n    verifierId: string\n  }): Promise<OpenId4VpCreateAuthorizationRequestReturn> {\n    const verifier = await this.getVerifierByVerifierId(verifierId)\n    return await this.openId4VpVerifierService.createAuthorizationRequest(this.agentContext, {\n      ...otherOptions,\n      verifier,\n    })\n  }\n\n  /**\n   * Verifies an authorization response, acting as a Relying Party (RP).\n   *\n   * It validates the ID Token, VP Token and the signature(s) of the received Verifiable Presentation(s)\n   * as well as that the structure of the Verifiable Presentation matches the provided presentation definition.\n   */\n  public async verifyAuthorizationResponse({\n    verificationSessionId,\n    ...otherOptions\n  }: OpenId4VpVerifyAuthorizationResponseOptions & {\n    verificationSessionId: string\n  }) {\n    const verificationSession = await this.getVerificationSessionById(verificationSessionId)\n    return await this.openId4VpVerifierService.verifyAuthorizationResponse(this.agentContext, {\n      ...otherOptions,\n      verificationSession,\n    })\n  }\n\n  public async getVerifiedAuthorizationResponse(verificationSessionId: string) {\n    const verificationSession = await this.getVerificationSessionById(verificationSessionId)\n    return this.openId4VpVerifierService.getVerifiedAuthorizationResponse(this.agentContext, verificationSession)\n  }\n}\n"],"mappings":";;;;;;;;AAiBO,iCAAM,qBAAqB;CAChC,AAAO,YACL,AAAgB,QAChB,AAAQ,cACR,AAAQ,0BACR;EAHgB;EACR;EACA;;;;;CAMV,MAAa,kBAAkB;AAC7B,SAAO,KAAK,yBAAyB,gBAAgB,KAAK,aAAa;;;;;CAMzE,MAAa,wBAAwB,YAAoB;AACvD,SAAO,KAAK,yBAAyB,wBAAwB,KAAK,cAAc,WAAW;;;;;CAM7F,MAAa,eAAe,SAA0C;AACpE,SAAO,KAAK,yBAAyB,eAAe,KAAK,cAAc,QAAQ;;CAGjF,MAAa,uBAAuB,SAA+C;EACjF,MAAM,EAAE,YAAY,mBAAmB;EAEvC,MAAM,WAAW,MAAM,KAAK,yBAAyB,wBAAwB,KAAK,cAAc,WAAW;AAE3G,WAAS,iBAAiB;AAE1B,SAAO,KAAK,yBAAyB,eAAe,KAAK,cAAc,SAAS;;CAGlF,MAAa,gCACX,OACA,cACA;AACA,SAAO,KAAK,yBAAyB,gCAAgC,KAAK,cAAc,OAAO,aAAa;;CAG9G,MAAa,2BAA2B,uBAA+B;AACrE,SAAO,KAAK,yBAAyB,2BAA2B,KAAK,cAAc,sBAAsB;;;;;;;CAQ3G,MAAa,2BAA2B,EACtC,YACA,GAAG,gBAGkD;EACrD,MAAM,WAAW,MAAM,KAAK,wBAAwB,WAAW;AAC/D,SAAO,MAAM,KAAK,yBAAyB,2BAA2B,KAAK,cAAc;GACvF,GAAG;GACH;GACD,CAAC;;;;;;;;CASJ,MAAa,4BAA4B,EACvC,uBACA,GAAG,gBAGF;EACD,MAAM,sBAAsB,MAAM,KAAK,2BAA2B,sBAAsB;AACxF,SAAO,MAAM,KAAK,yBAAyB,4BAA4B,KAAK,cAAc;GACxF,GAAG;GACH;GACD,CAAC;;CAGJ,MAAa,iCAAiC,uBAA+B;EAC3E,MAAM,sBAAsB,MAAM,KAAK,2BAA2B,sBAAsB;AACxF,SAAO,KAAK,yBAAyB,iCAAiC,KAAK,cAAc,oBAAoB;;;mCAzFhH,YAAY"}