{"version":3,"file":"ecb.cjs","sources":["../../src/aes/ecb.ts"],"sourcesContent":["import type { BinaryLike } from 'node:crypto';\nimport type { TransformOptions } from 'node:stream';\n\nimport type {\n    AesCipherEncodingOptions,\n    EcbEncryptResult,\n    Result,\n} from '../types';\n\nimport { BaseAesCipher } from './base';\n\nexport class Ecb extends BaseAesCipher {\n    constructor(key: BinaryLike, encodingOptions?: AesCipherEncodingOptions) {\n        super(key, 'ecb', encodingOptions);\n    }\n\n    decrypt(\n        encryptedData: BinaryLike,\n        // @ts-expect-error Allow iv to be null.\n        iv?: null,\n        encodingOptions?: AesCipherEncodingOptions.Decrypt,\n        decipherOptions?: TransformOptions,\n    ): Result<string> {\n        try {\n            return this.createOkResult(\n                this.getDecipherResult(this.createDecipher(null, decipherOptions), encryptedData, encodingOptions),\n            );\n        } catch (error) {\n            return this.createErrorResult(error);\n        }\n    }\n\n    decryptToJson<T = any>(\n        encryptedData: BinaryLike,\n        iv?: null,\n        encodingOptions?: AesCipherEncodingOptions.Decrypt,\n        decipherOptions?: TransformOptions,\n    ): Result<T> {\n        const result = this.decrypt(encryptedData, iv, encodingOptions, decipherOptions);\n        if (!result.ok) return result;\n        return this.parseJson<T>(result.value);\n    }\n\n    encrypt(\n        data: BinaryLike,\n        encodingOptions?: AesCipherEncodingOptions.Encrypt,\n        cipherOptions?: TransformOptions,\n    ): EcbEncryptResult {\n        try {\n            return this.createOkResult({\n                data: this.getCipherResult(this.createCipher(null, cipherOptions), data, encodingOptions),\n                iv: null,\n            });\n        } catch (error) {\n            return this.createErrorResult(error);\n        }\n    }\n\n    encryptJson(\n        data: any,\n        encodingOptions?: AesCipherEncodingOptions.Encrypt,\n        cipherOptions?: TransformOptions,\n    ): EcbEncryptResult {\n        try {\n            return this.encrypt(JSON.stringify(data), encodingOptions, cipherOptions);\n        } catch (error) {\n            return this.createErrorResult(error);\n        }\n    }\n}\n"],"names":["BaseAesCipher"],"mappings":";;;;AAWM,MAAO,GAAI,SAAQA,mBAAa,CAAA;IAClC,WAAY,CAAA,GAAe,EAAE,eAA0C,EAAA;AACnE,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC;;AAGtC,IAAA,OAAO,CACH,aAAyB;;IAEzB,EAAS,EACT,eAAkD,EAClD,eAAkC,EAAA;AAElC,QAAA,IAAI;YACA,OAAO,IAAI,CAAC,cAAc,CACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CACrG;;QACH,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;;;AAI5C,IAAA,aAAa,CACT,aAAyB,EACzB,EAAS,EACT,eAAkD,EAClD,eAAkC,EAAA;AAElC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,EAAE;AAAE,YAAA,OAAO,MAAM;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAI,MAAM,CAAC,KAAK,CAAC;;AAG1C,IAAA,OAAO,CACH,IAAgB,EAChB,eAAkD,EAClD,aAAgC,EAAA;AAEhC,QAAA,IAAI;YACA,OAAO,IAAI,CAAC,cAAc,CAAC;AACvB,gBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC;AACzF,gBAAA,EAAE,EAAE,IAAI;AACX,aAAA,CAAC;;QACJ,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;;;AAI5C,IAAA,WAAW,CACP,IAAS,EACT,eAAkD,EAClD,aAAgC,EAAA;AAEhC,QAAA,IAAI;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,aAAa,CAAC;;QAC3E,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;;;AAG/C;;;;"}