{"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 { TokenStatusListApi } from '../modules/token-status-list'\nimport { W3cV2CredentialsApi } from '../modules/vc'\nimport { W3cCredentialsApi } from '../modules/vc/W3cCredentialsApi'\nimport { W3cDataIntegrityApi } from '../modules/w3c-di'\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 w3cDataIntegrity: W3cDataIntegrityApi\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  public readonly tokenStatusList: TokenStatusListApi\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.w3cDataIntegrity = this.dependencyManager.resolve(W3cDataIntegrityApi)\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    this.tokenStatusList = this.dependencyManager.resolve(TokenStatusListApi)\n\n    const defaultApis = [\n      this.genericRecords,\n      this.dids,\n      this.w3cDataIntegrity,\n      this.w3cCredentials,\n      this.w3cV2Credentials,\n      this.sdJwtVc,\n      this.x509,\n      this.mdoc,\n      this.kms,\n      this.tokenStatusList,\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":";;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAsB,YAAtB,MAAkF;CAiChF,YACE,aACA,mBACA;EAFU,KAAA,cAAA;EACM,KAAA,oBAAA;EAhClB,KAAU,iBAAiB;EAkCzB,KAAK,SAAS,KAAK,YAAY;EAE/B,KAAK,OAAO,KAAK,8BAA8B,EAC7C,aAAa,YAAY,OAAO,EAClC,CAAC;EAGD,KAAK,eAAe,KAAK,kBAAkB,QAAQ,YAAY;EAC/D,KAAK,eAAe,KAAK,kBAAkB,QAAQ,YAAY;EAE/D,KAAK,iBAAiB,KAAK,kBAAkB,QAAQ,iBAAiB;EACtE,KAAK,OAAO,KAAK,kBAAkB,QAAQ,OAAO;EAClD,KAAK,mBAAmB,KAAK,kBAAkB,QAAQ,mBAAmB;EAC1E,KAAK,iBAAiB,KAAK,kBAAkB,QAAQ,iBAAiB;EACtE,KAAK,mBAAmB,KAAK,kBAAkB,QAAQ,mBAAmB;EAC1E,KAAK,UAAU,KAAK,kBAAkB,QAAQ,UAAU;EACxD,KAAK,OAAO,KAAK,kBAAkB,QAAQ,OAAO;EAClD,KAAK,OAAO,KAAK,kBAAkB,QAAQ,OAAO;EAClD,KAAK,MAAM,KAAK,kBAAkB,QAAQ,gBAAgB;EAC1D,KAAK,kBAAkB,KAAK,kBAAkB,QAAQ,kBAAkB;EAExE,MAAM,cAAc;GAClB,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;EACP;EAGA,KAAK,UAAU,YAAY,KAAK,mBAAmB,WAAW;EAG9D,KAAK,UAAW,aAAa,KAAK,UAAU,KAAK,QAAQ,UAAU,KAAA;EACnE,KAAK,YAAa,eAAe,KAAK,UAAU,KAAK,QAAQ,YAAY,KAAA;CAC3E;CAEA,IAAW,gBAAgB;EACzB,OAAO,KAAK;CACd;CAEA,IAAW,SAAS;EAClB,OAAO,KAAK;CACd;CAEA,IAAW,UAAU;EACnB,OAAO,KAAK;CACd;AACF"}