{"version":3,"file":"VaultsApi.mjs","names":["VaultsApi","logger: Logger","connection: DidCommConnectionRecord"],"sources":["../src/VaultsApi.ts"],"sourcesContent":["/**\n * Vaults API — spec § Messages control plane only.\n *\n * Legacy methods (createSigningVault, openSigningVault, return*, share*)\n * lived on top of the deleted StoreVault/VaultData/VaultReference flow.\n * Application code now interacts with the EDV HTTP API for the data\n * plane and uses these tiny helpers to send the 5 spec messages.\n */\n\nimport type { Logger } from '@credo-ts/core'\nimport type { DidCommConnectionRecord } from '@credo-ts/didcomm'\nimport type { ProposeMessageOptions } from './messages/ProposeMessage'\nimport type { OfferMessageOptions } from './messages/OfferMessage'\nimport type { GrantAccessMessageOptions } from './messages/GrantAccessMessage'\nimport type { SealMessageOptions } from './messages/SealMessage'\nimport type { TombstoneMessageOptions } from './messages/TombstoneMessage'\n\nimport { AgentContext, EventEmitter, InjectionSymbols, inject, injectable } from '@credo-ts/core'\nimport {\n  DidCommConnectionService,\n  DidCommMessageHandlerRegistry,\n  DidCommMessageSender,\n  DidCommOutboundMessageContext,\n} from '@credo-ts/didcomm'\n\nimport {\n  GrantAccessHandler,\n  OfferHandler,\n  ProposeHandler,\n  SealHandler,\n  TombstoneHandler,\n  VaultProblemReportHandler,\n} from './handlers'\nimport {\n  GrantAccessMessage,\n  OfferMessage,\n  ProposeMessage,\n  SealMessage,\n  TombstoneMessage,\n} from './messages'\n\n@injectable()\nexport class VaultsApi {\n  private agentContext: AgentContext\n  private logger: Logger\n  private messageSender: DidCommMessageSender\n  private connectionService: DidCommConnectionService\n\n  public constructor(\n    agentContext: AgentContext,\n    messageHandlerRegistry: DidCommMessageHandlerRegistry,\n    eventEmitter: EventEmitter,\n    messageSender: DidCommMessageSender,\n    connectionService: DidCommConnectionService,\n    @inject(InjectionSymbols.Logger) logger: Logger\n  ) {\n    this.agentContext = agentContext\n    this.logger = logger\n    this.messageSender = messageSender\n    this.connectionService = connectionService\n    this.registerMessageHandlers(messageHandlerRegistry, eventEmitter, logger)\n  }\n\n  private registerMessageHandlers(\n    registry: DidCommMessageHandlerRegistry,\n    eventEmitter: EventEmitter,\n    logger: Logger\n  ): void {\n    registry.registerMessageHandler(new ProposeHandler(logger, eventEmitter))\n    registry.registerMessageHandler(new OfferHandler(logger, eventEmitter))\n    registry.registerMessageHandler(new GrantAccessHandler(logger, eventEmitter))\n    registry.registerMessageHandler(new SealHandler(logger, eventEmitter))\n    registry.registerMessageHandler(new TombstoneHandler(logger, eventEmitter))\n    registry.registerMessageHandler(new VaultProblemReportHandler(logger, eventEmitter))\n  }\n\n  // ─────────────────────── outbound message helpers ────────────────\n\n  public async sendPropose(connectionId: string, options: ProposeMessageOptions): Promise<ProposeMessage> {\n    const message = new ProposeMessage(options)\n    await this.send(connectionId, message)\n    return message\n  }\n\n  public async sendOffer(\n    connectionId: string,\n    options: OfferMessageOptions,\n    threadId?: string\n  ): Promise<OfferMessage> {\n    const message = new OfferMessage(options)\n    if (threadId) message.setThread({ threadId })\n    await this.send(connectionId, message)\n    return message\n  }\n\n  public async sendGrantAccess(\n    connectionId: string,\n    options: GrantAccessMessageOptions\n  ): Promise<GrantAccessMessage> {\n    const message = new GrantAccessMessage(options)\n    await this.send(connectionId, message)\n    return message\n  }\n\n  public async sendSeal(connectionId: string, options: SealMessageOptions): Promise<SealMessage> {\n    const message = new SealMessage(options)\n    await this.send(connectionId, message)\n    return message\n  }\n\n  public async sendTombstone(\n    connectionId: string,\n    options: TombstoneMessageOptions\n  ): Promise<TombstoneMessage> {\n    const message = new TombstoneMessage(options)\n    await this.send(connectionId, message)\n    return message\n  }\n\n  private async send(\n    connectionId: string,\n    message: ProposeMessage | OfferMessage | GrantAccessMessage | SealMessage | TombstoneMessage\n  ): Promise<void> {\n    const connection: DidCommConnectionRecord = await this.connectionService.getById(\n      this.agentContext,\n      connectionId\n    )\n    const outbound = new DidCommOutboundMessageContext(message, {\n      agentContext: this.agentContext,\n      connection,\n    })\n    await this.messageSender.sendMessage(outbound)\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0CO,sBAAMA,YAAU;CAMrB,AAAO,YACL,cACA,wBACA,cACA,eACA,mBACA,AAAiCC,QACjC;AACA,OAAK,eAAe;AACpB,OAAK,SAAS;AACd,OAAK,gBAAgB;AACrB,OAAK,oBAAoB;AACzB,OAAK,wBAAwB,wBAAwB,cAAc,OAAO;;CAG5E,AAAQ,wBACN,UACA,cACA,QACM;AACN,WAAS,uBAAuB,IAAI,eAAe,QAAQ,aAAa,CAAC;AACzE,WAAS,uBAAuB,IAAI,aAAa,QAAQ,aAAa,CAAC;AACvE,WAAS,uBAAuB,IAAI,mBAAmB,QAAQ,aAAa,CAAC;AAC7E,WAAS,uBAAuB,IAAI,YAAY,QAAQ,aAAa,CAAC;AACtE,WAAS,uBAAuB,IAAI,iBAAiB,QAAQ,aAAa,CAAC;AAC3E,WAAS,uBAAuB,IAAI,0BAA0B,QAAQ,aAAa,CAAC;;CAKtF,MAAa,YAAY,cAAsB,SAAyD;EACtG,MAAM,UAAU,IAAI,eAAe,QAAQ;AAC3C,QAAM,KAAK,KAAK,cAAc,QAAQ;AACtC,SAAO;;CAGT,MAAa,UACX,cACA,SACA,UACuB;EACvB,MAAM,UAAU,IAAI,aAAa,QAAQ;AACzC,MAAI,SAAU,SAAQ,UAAU,EAAE,UAAU,CAAC;AAC7C,QAAM,KAAK,KAAK,cAAc,QAAQ;AACtC,SAAO;;CAGT,MAAa,gBACX,cACA,SAC6B;EAC7B,MAAM,UAAU,IAAI,mBAAmB,QAAQ;AAC/C,QAAM,KAAK,KAAK,cAAc,QAAQ;AACtC,SAAO;;CAGT,MAAa,SAAS,cAAsB,SAAmD;EAC7F,MAAM,UAAU,IAAI,YAAY,QAAQ;AACxC,QAAM,KAAK,KAAK,cAAc,QAAQ;AACtC,SAAO;;CAGT,MAAa,cACX,cACA,SAC2B;EAC3B,MAAM,UAAU,IAAI,iBAAiB,QAAQ;AAC7C,QAAM,KAAK,KAAK,cAAc,QAAQ;AACtC,SAAO;;CAGT,MAAc,KACZ,cACA,SACe;EACf,MAAMC,aAAsC,MAAM,KAAK,kBAAkB,QACvE,KAAK,cACL,aACD;EACD,MAAM,WAAW,IAAI,8BAA8B,SAAS;GAC1D,cAAc,KAAK;GACnB;GACD,CAAC;AACF,QAAM,KAAK,cAAc,YAAY,SAAS;;;;CA1FjD,YAAY;oBAaR,OAAO,iBAAiB,OAAO"}