{"version":3,"file":"TombstoneMessage.mjs","names":[],"sources":["../../src/messages/TombstoneMessage.ts"],"sourcesContent":["import { DidCommMessage, IsValidMessageType, parseMessageType } from '@credo-ts/didcomm'\nimport { Expose } from 'class-transformer'\nimport { IsOptional, IsString } from 'class-validator'\n\nexport interface TombstoneMessageOptions {\n  id?: string\n  vaultId: string\n  strategy?: 'delete' | 'destroy-keys'\n  evidenceDocId?: string\n}\n\n/**\n * Spec § tombstone — controller retires the vault.\n *\n * For S3/ordinary EDV: delete documents + indexes (`strategy: delete`).\n * For Arweave: cryptographic erasure (`strategy: destroy-keys`).\n *\n * @see https://didcomm.org/vaults/1.0/tombstone\n */\nexport class TombstoneMessage extends DidCommMessage {\n  public constructor(options: TombstoneMessageOptions) {\n    super()\n    if (options) {\n      this.id = options.id ?? this.generateId()\n      this.vaultId = options.vaultId\n      this.strategy = options.strategy ?? 'delete'\n      this.evidenceDocId = options.evidenceDocId\n    }\n  }\n\n  @IsValidMessageType(TombstoneMessage.type)\n  public readonly type = TombstoneMessage.type.messageTypeUri\n  public static readonly type = parseMessageType('https://didcomm.org/vaults/1.0/tombstone')\n\n  @IsString()\n  @Expose({ name: 'vault_id' })\n  public vaultId!: string\n\n  @IsString()\n  @Expose()\n  public strategy: 'delete' | 'destroy-keys' = 'delete'\n\n  @IsOptional()\n  @IsString()\n  @Expose({ name: 'evidence_doc_id' })\n  public evidenceDocId?: string\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,IAAa,mBAAb,MAAa,yBAAyB,eAAe;CACnD,AAAO,YAAY,SAAkC;AACnD,SAAO;OAUO,OAAO,iBAAiB,KAAK;OAStC,WAAsC;AAlB3C,MAAI,SAAS;AACX,QAAK,KAAK,QAAQ,MAAM,KAAK,YAAY;AACzC,QAAK,UAAU,QAAQ;AACvB,QAAK,WAAW,QAAQ,YAAY;AACpC,QAAK,gBAAgB,QAAQ;;;;iBAMV,OAAO,iBAAiB,2CAA2C;YAFzF,mBAAmB,iBAAiB,KAAK;;CAIzC,UAAU;CACV,OAAO,EAAE,MAAM,YAAY,CAAC;;;;CAG5B,UAAU;CACV,QAAQ;;;;CAGR,YAAY;CACZ,UAAU;CACV,OAAO,EAAE,MAAM,mBAAmB,CAAC"}