{"version":3,"file":"abstract.cjs","sources":["../../../../src/mods/chacha20poly1305/abstract.ts"],"sourcesContent":["import { Lengthed } from \"@hazae41/lengthed\"\nimport { Ownable } from \"libs/ownable/index.js\"\n\nexport namespace Abstract {\n\n  export abstract class Memory<N extends number = number> {\n\n    abstract [Symbol.dispose](): void\n\n    abstract readonly inner: unknown\n\n    abstract readonly bytes: Uint8Array & Lengthed<N>\n\n  }\n\n  export namespace Memory {\n\n    export interface Static {\n\n      fromOrThrow<N extends number>(memory: Memory<N>): Ownable<Memory<N>>\n\n      importOrThrow<N extends number>(bytes: Uint8Array & Lengthed<N>): Memory<N>\n\n    }\n\n  }\n\n  export abstract class ChaCha20Cipher implements Disposable {\n\n    abstract [Symbol.dispose](): void\n\n    abstract applyOrThrow(message: Memory): void\n\n  }\n\n  export namespace ChaCha20Cipher {\n\n    export interface Static {\n\n      importOrThrow(key: Memory<32>, nonce: Memory<12>): ChaCha20Cipher\n\n    }\n\n  }\n\n  export abstract class ChaCha20Poly1305Cipher implements Disposable {\n\n    abstract [Symbol.dispose](): void\n\n    abstract encryptOrThrow(message: Memory, nonce: Memory<12>): Memory\n\n    abstract decryptOrThrow(message: Memory, nonce: Memory<12>): Memory\n\n  }\n\n  export namespace ChaCha20Poly1305Cipher {\n\n    export interface Static {\n\n      importOrThrow(key: Memory<32>): ChaCha20Poly1305Cipher\n\n    }\n\n  }\n\n}"],"names":["Abstract"],"mappings":";;AAGiBA;AAAjB,CAAA,UAAiB,QAAQ,EAAA;AAEvB,IAAA,MAAsB,MAAM,CAAA;AAQ3B;AARqB,IAAA,QAAA,CAAA,MAAM,SAQ3B;AAcD,IAAA,MAAsB,cAAc,CAAA;AAMnC;AANqB,IAAA,QAAA,CAAA,cAAc,iBAMnC;AAYD,IAAA,MAAsB,sBAAsB,CAAA;AAQ3C;AARqB,IAAA,QAAA,CAAA,sBAAsB,yBAQ3C;AAYH,CAAC,EA9DgBA,gBAAQ,KAARA,gBAAQ,GAAA,EAAA,CAAA,CAAA;;"}