{"version":3,"file":"BaseAgent.mjs","names":[],"sources":["../../src/agent/BaseAgent.ts"],"sourcesContent":["import type { Logger } from '../logger'\nimport { DidsApi } from '../modules/dids'\nimport { GenericRecordsApi } from '../modules/generic-records'\nimport { KeyManagementApi } from '../modules/kms'\nimport { MdocApi } from '../modules/mdoc'\nimport { SdJwtVcApi } from '../modules/sd-jwt-vc'\nimport { W3cV2CredentialsApi } from '../modules/vc'\nimport { W3cCredentialsApi } from '../modules/vc/W3cCredentialsApi'\nimport { X509Api } from '../modules/x509'\nimport type { DependencyManager, Module } from '../plugins'\nimport type { AgentConfig } from './AgentConfig'\nimport type { AgentApi, EmptyModuleMap, ModuleApiInstance, ModulesMap, WithoutDefaultModules } from './AgentModules'\n\nimport { getAgentApi } from './AgentModules'\nimport { AgentContext } from './context'\nimport { EventEmitter } from './EventEmitter'\n\nexport abstract class BaseAgent<AgentModules extends ModulesMap = EmptyModuleMap> {\n  protected logger: Logger\n  protected eventEmitter: EventEmitter\n  protected _isInitialized = false\n  protected agentContext: AgentContext\n\n  public readonly mdoc: MdocApi\n  public readonly genericRecords: GenericRecordsApi\n  public readonly dids: DidsApi\n  public readonly w3cCredentials: W3cCredentialsApi\n  public readonly w3cV2Credentials: W3cV2CredentialsApi\n  public readonly sdJwtVc: SdJwtVcApi\n  public readonly x509: X509Api\n  public readonly kms: KeyManagementApi\n\n  /**\n   * The DIDComm module, only available if the didcomm module is registered\n   */\n  public readonly didcomm: AgentModules['didcomm'] extends Module\n    ? ModuleApiInstance<AgentModules['didcomm']>\n    : undefined\n\n  /*\n   * The OpenID4VC module, only available if the openid4vc module is registered\n   */\n  public readonly openid4vc: AgentModules['openid4vc'] extends Module\n    ? ModuleApiInstance<AgentModules['openid4vc']>\n    : undefined\n\n  public readonly modules: AgentApi<WithoutDefaultModules<AgentModules>>\n\n  public constructor(\n    protected agentConfig: AgentConfig,\n    public readonly dependencyManager: DependencyManager\n  ) {\n    this.logger = this.agentConfig.logger\n\n    this.logger.info('Creating agent with config', {\n      agentConfig: agentConfig.toJSON(),\n    })\n\n    // Resolve instances after everything is registered\n    this.eventEmitter = this.dependencyManager.resolve(EventEmitter)\n    this.agentContext = this.dependencyManager.resolve(AgentContext)\n\n    this.genericRecords = this.dependencyManager.resolve(GenericRecordsApi)\n    this.dids = this.dependencyManager.resolve(DidsApi)\n    this.w3cCredentials = this.dependencyManager.resolve(W3cCredentialsApi)\n    this.w3cV2Credentials = this.dependencyManager.resolve(W3cV2CredentialsApi)\n    this.sdJwtVc = this.dependencyManager.resolve(SdJwtVcApi)\n    this.x509 = this.dependencyManager.resolve(X509Api)\n    this.mdoc = this.dependencyManager.resolve(MdocApi)\n    this.kms = this.dependencyManager.resolve(KeyManagementApi)\n\n    const defaultApis = [\n      this.genericRecords,\n      this.dids,\n      this.w3cCredentials,\n      this.w3cV2Credentials,\n      this.sdJwtVc,\n      this.x509,\n      this.mdoc,\n      this.kms,\n    ]\n\n    // Set the api of the registered modules on the agent, excluding the default apis\n    this.modules = getAgentApi(this.dependencyManager, defaultApis)\n\n    // Special case for DIDComm and OpenID4vc modules, to expose it on the top-level of the agent.\n    this.didcomm = ('didcomm' in this.modules ? this.modules.didcomm : undefined) as this['didcomm']\n    this.openid4vc = ('openid4vc' in this.modules ? this.modules.openid4vc : undefined) as this['openid4vc']\n  }\n\n  public get isInitialized() {\n    return this._isInitialized\n  }\n\n  public get config() {\n    return this.agentConfig\n  }\n\n  public get context() {\n    return this.agentContext\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAsB,YAAtB,MAAkF;CA+BhF,AAAO,YACL,AAAU,aACV,AAAgB,mBAChB;EAFU;EACM;OA9BR,iBAAiB;AAgCzB,OAAK,SAAS,KAAK,YAAY;AAE/B,OAAK,OAAO,KAAK,8BAA8B,EAC7C,aAAa,YAAY,QAAQ,EAClC,CAAC;AAGF,OAAK,eAAe,KAAK,kBAAkB,QAAQ,aAAa;AAChE,OAAK,eAAe,KAAK,kBAAkB,QAAQ,aAAa;AAEhE,OAAK,iBAAiB,KAAK,kBAAkB,QAAQ,kBAAkB;AACvE,OAAK,OAAO,KAAK,kBAAkB,QAAQ,QAAQ;AACnD,OAAK,iBAAiB,KAAK,kBAAkB,QAAQ,kBAAkB;AACvE,OAAK,mBAAmB,KAAK,kBAAkB,QAAQ,oBAAoB;AAC3E,OAAK,UAAU,KAAK,kBAAkB,QAAQ,WAAW;AACzD,OAAK,OAAO,KAAK,kBAAkB,QAAQ,QAAQ;AACnD,OAAK,OAAO,KAAK,kBAAkB,QAAQ,QAAQ;AACnD,OAAK,MAAM,KAAK,kBAAkB,QAAQ,iBAAiB;EAE3D,MAAM,cAAc;GAClB,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;AAGD,OAAK,UAAU,YAAY,KAAK,mBAAmB,YAAY;AAG/D,OAAK,UAAW,aAAa,KAAK,UAAU,KAAK,QAAQ,UAAU;AACnE,OAAK,YAAa,eAAe,KAAK,UAAU,KAAK,QAAQ,YAAY;;CAG3E,IAAW,gBAAgB;AACzB,SAAO,KAAK;;CAGd,IAAW,SAAS;AAClB,SAAO,KAAK;;CAGd,IAAW,UAAU;AACnB,SAAO,KAAK"}