{"version":3,"file":"VaultRepository.mjs","names":["VaultRepository","storageService: StorageService<VaultRecord>"],"sources":["../../src/repository/VaultRepository.ts"],"sourcesContent":["import type { AgentContext } from '@credo-ts/core'\nimport type { PolicyMode } from '../models'\n\nimport type { StorageService } from \"@credo-ts/core\"\nimport { EventEmitter, inject, injectable, InjectionSymbols, Repository,  } from \"@credo-ts/core\"\n\nimport { VaultRecord } from './VaultRecord'\n\n@injectable()\nexport class VaultRepository extends Repository<VaultRecord> {\n  public constructor(\n    @inject(InjectionSymbols.StorageService) storageService: StorageService<VaultRecord>,\n    eventEmitter: EventEmitter\n  ) {\n    super(VaultRecord, storageService, eventEmitter)\n  }\n\n  /**\n   * Find vault by vault ID\n   */\n  public async findByVaultId(agentContext: AgentContext, vaultId: string): Promise<VaultRecord | null> {\n    return this.findSingleByQuery(agentContext, { vaultId })\n  }\n\n  /**\n   * Get vault by vault ID (throws if not found)\n   */\n  public async getByVaultId(agentContext: AgentContext, vaultId: string): Promise<VaultRecord> {\n    return this.getSingleByQuery(agentContext, { vaultId })\n  }\n\n  /**\n   * Find vault by document ID\n   */\n  public async findByDocId(agentContext: AgentContext, docId: string): Promise<VaultRecord | null> {\n    return this.findSingleByQuery(agentContext, { docId })\n  }\n\n  /**\n   * Find all vaults owned by a specific DID\n   */\n  public async findByOwner(agentContext: AgentContext, ownerDid: string): Promise<VaultRecord[]> {\n    return this.findByQuery(agentContext, { ownerDid })\n  }\n\n  /**\n   * Find all vaults with a specific policy mode\n   */\n  public async findByPolicyMode(agentContext: AgentContext, policyMode: PolicyMode): Promise<VaultRecord[]> {\n    return this.findByQuery(agentContext, { policyMode })\n  }\n\n  /**\n   * Find all vaults using a specific suite\n   */\n  public async findBySuite(agentContext: AgentContext, suite: string): Promise<VaultRecord[]> {\n    return this.findByQuery(agentContext, { suite })\n  }\n\n  /**\n   * Delete vault by vault ID\n   */\n  public async deleteByVaultId(agentContext: AgentContext, vaultId: string): Promise<void> {\n    const record = await this.findByVaultId(agentContext, vaultId)\n    if (record) {\n      await this.delete(agentContext, record)\n    }\n  }\n}\n"],"mappings":";;;;;;;;AASO,4BAAMA,0BAAwB,WAAwB;CAC3D,AAAO,YACL,AAAyCC,gBACzC,cACA;AACA,QAAM,aAAa,gBAAgB,aAAa;;;;;CAMlD,MAAa,cAAc,cAA4B,SAA8C;AACnG,SAAO,KAAK,kBAAkB,cAAc,EAAE,SAAS,CAAC;;;;;CAM1D,MAAa,aAAa,cAA4B,SAAuC;AAC3F,SAAO,KAAK,iBAAiB,cAAc,EAAE,SAAS,CAAC;;;;;CAMzD,MAAa,YAAY,cAA4B,OAA4C;AAC/F,SAAO,KAAK,kBAAkB,cAAc,EAAE,OAAO,CAAC;;;;;CAMxD,MAAa,YAAY,cAA4B,UAA0C;AAC7F,SAAO,KAAK,YAAY,cAAc,EAAE,UAAU,CAAC;;;;;CAMrD,MAAa,iBAAiB,cAA4B,YAAgD;AACxG,SAAO,KAAK,YAAY,cAAc,EAAE,YAAY,CAAC;;;;;CAMvD,MAAa,YAAY,cAA4B,OAAuC;AAC1F,SAAO,KAAK,YAAY,cAAc,EAAE,OAAO,CAAC;;;;;CAMlD,MAAa,gBAAgB,cAA4B,SAAgC;EACvF,MAAM,SAAS,MAAM,KAAK,cAAc,cAAc,QAAQ;AAC9D,MAAI,OACF,OAAM,KAAK,OAAO,cAAc,OAAO;;;;CAzD5C,YAAY;oBAGR,OAAO,iBAAiB,eAAe"}