{"version":3,"file":"OpenId4VcModule.mjs","names":[],"sources":["../src/OpenId4VcModule.ts"],"sourcesContent":["import type { AgentContext, DependencyManager, Module } from '@credo-ts/core'\n\nimport { AgentConfig } from '@credo-ts/core'\nimport { setGlobalConfig } from '@openid4vc/oauth2'\nimport { OpenId4VcApi } from './OpenId4VcApi'\nimport {\n  type OpenId4VcIssuerModuleConfigOptions,\n  OpenId4VcModuleConfig,\n  type OpenId4VcModuleConfigOptions,\n  type OpenId4VcVerifierModuleConfigOptions,\n} from './OpenId4VcModuleConfig'\nimport { OpenId4VcHolderModule } from './openid4vc-holder'\nimport { OpenId4VcIssuerModule } from './openid4vc-issuer'\nimport { OpenId4VcVerifierModule } from './openid4vc-verifier'\n\n/**\n * @public\n */\nexport class OpenId4VcModule<\n  IssuerConfig extends OpenId4VcIssuerModuleConfigOptions | undefined | null = null,\n  VerifierConfig extends OpenId4VcVerifierModuleConfigOptions | undefined | null = null,\n> implements Module\n{\n  public readonly api: typeof OpenId4VcApi<IssuerConfig, VerifierConfig> = OpenId4VcApi\n  public readonly config: OpenId4VcModuleConfig<IssuerConfig, VerifierConfig>\n\n  public readonly issuer?: IssuerConfig extends OpenId4VcIssuerModuleConfigOptions\n    ? OpenId4VcIssuerModule\n    : IssuerConfig extends null\n      ? OpenId4VcIssuerModule | undefined\n      : undefined\n  public readonly verifier?: VerifierConfig extends OpenId4VcVerifierModuleConfigOptions\n    ? OpenId4VcVerifierModule\n    : VerifierConfig extends null\n      ? OpenId4VcVerifierModule | undefined\n      : undefined\n  public readonly holder: OpenId4VcHolderModule\n\n  public constructor(options?: OpenId4VcModuleConfigOptions<IssuerConfig, VerifierConfig>) {\n    this.config = new OpenId4VcModuleConfig(options)\n\n    this.issuer = (this.config.issuer ? new OpenId4VcIssuerModule(this.config.issuer) : undefined) as this['issuer']\n    this.holder = new OpenId4VcHolderModule()\n    this.verifier = (\n      this.config.verifier ? new OpenId4VcVerifierModule(this.config.verifier) : undefined\n    ) as this['verifier']\n  }\n\n  /**\n   * Registers the dependencies of the openid4vc issuer module on the dependency manager.\n   */\n  public register(dependencyManager: DependencyManager) {\n    const agentConfig = dependencyManager.resolve(AgentConfig)\n\n    if (agentConfig.allowInsecureHttpUrls) {\n      setGlobalConfig({\n        allowInsecureUrls: true,\n      })\n    }\n\n    // Register config\n    dependencyManager.registerInstance(OpenId4VcModuleConfig, this.config)\n\n    this.issuer?.register(dependencyManager)\n    this.holder?.register(dependencyManager)\n    this.verifier?.register(dependencyManager)\n  }\n\n  public async initialize(rootAgentContext: AgentContext): Promise<void> {\n    this.issuer?.initialize(rootAgentContext)\n    this.verifier?.initialize(rootAgentContext)\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,IAAa,kBAAb,MAIA;CAgBE,AAAO,YAAY,SAAsE;OAfzE,MAAyD;AAgBvE,OAAK,SAAS,IAAI,sBAAsB,QAAQ;AAEhD,OAAK,SAAU,KAAK,OAAO,SAAS,IAAI,sBAAsB,KAAK,OAAO,OAAO,GAAG;AACpF,OAAK,SAAS,IAAI,uBAAuB;AACzC,OAAK,WACH,KAAK,OAAO,WAAW,IAAI,wBAAwB,KAAK,OAAO,SAAS,GAAG;;;;;CAO/E,AAAO,SAAS,mBAAsC;AAGpD,MAFoB,kBAAkB,QAAQ,YAAY,CAE1C,sBACd,iBAAgB,EACd,mBAAmB,MACpB,CAAC;AAIJ,oBAAkB,iBAAiB,uBAAuB,KAAK,OAAO;AAEtE,OAAK,QAAQ,SAAS,kBAAkB;AACxC,OAAK,QAAQ,SAAS,kBAAkB;AACxC,OAAK,UAAU,SAAS,kBAAkB;;CAG5C,MAAa,WAAW,kBAA+C;AACrE,OAAK,QAAQ,WAAW,iBAAiB;AACzC,OAAK,UAAU,WAAW,iBAAiB"}