{"version":3,"file":"SealMessage.mjs","names":[],"sources":["../../src/messages/SealMessage.ts"],"sourcesContent":["import { DidCommMessage, IsValidMessageType, parseMessageType } from '@credo-ts/didcomm'\nimport { Expose } from 'class-transformer'\nimport { IsString } from 'class-validator'\n\nexport interface SealMessageOptions {\n  id?: string\n  vaultId: string\n  mode?: string\n}\n\n/**\n * Spec § seal — controller rotates caps to read-only; freezes the\n * workspace. State transition ACTIVE → SEALED.\n *\n * @see https://didcomm.org/vaults/1.0/seal\n */\nexport class SealMessage extends DidCommMessage {\n  public constructor(options: SealMessageOptions) {\n    super()\n    if (options) {\n      this.id = options.id ?? this.generateId()\n      this.vaultId = options.vaultId\n      this.mode = options.mode ?? 'read-only'\n    }\n  }\n\n  @IsValidMessageType(SealMessage.type)\n  public readonly type = SealMessage.type.messageTypeUri\n  public static readonly type = parseMessageType('https://didcomm.org/vaults/1.0/seal')\n\n  @IsString()\n  @Expose({ name: 'vault_id' })\n  public vaultId!: string\n\n  @IsString()\n  @Expose()\n  public mode: string = 'read-only'\n}\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAa,cAAb,MAAa,oBAAoB,eAAe;CAC9C,AAAO,YAAY,SAA6B;AAC9C,SAAO;OASO,OAAO,YAAY,KAAK;OASjC,OAAe;AAjBpB,MAAI,SAAS;AACX,QAAK,KAAK,QAAQ,MAAM,KAAK,YAAY;AACzC,QAAK,UAAU,QAAQ;AACvB,QAAK,OAAO,QAAQ,QAAQ;;;;YAMT,OAAO,iBAAiB,sCAAsC;YAFpF,mBAAmB,YAAY,KAAK;;CAIpC,UAAU;CACV,OAAO,EAAE,MAAM,YAAY,CAAC;;;;CAG5B,UAAU;CACV,QAAQ"}