{"version":3,"file":"wasm.cjs","sources":["../../../../../src/mods/chacha20poly1305/wasm.ts"],"sourcesContent":["import { Pin, Ref } from \"@hazae41/box\"\nimport type { ChaCha20Poly1305Cipher, ChaCha20Poly1305Wasm } from \"@hazae41/chacha20poly1305.wasm\"\nimport { BytesOrCopiable } from \"libs/copiable/index.js\"\nimport * as Abstract from \"./abstract.js\"\nimport { Adapter } from \"./adapter.js\"\n\nexport function fromWasm(wasm: typeof ChaCha20Poly1305Wasm) {\n  const { Memory, ChaCha20Poly1305Cipher } = wasm\n\n  function getMemory(bytesOrCopiable: BytesOrCopiable) {\n    if (bytesOrCopiable instanceof Memory)\n      return new Ref(bytesOrCopiable)\n\n    if (bytesOrCopiable instanceof Uint8Array)\n      return Pin.from(new Memory(bytesOrCopiable))\n\n    return Pin.from(new Memory(bytesOrCopiable.bytes))\n  }\n\n  class Cipher extends Abstract.Cipher {\n\n    constructor(\n      readonly inner: ChaCha20Poly1305Cipher\n    ) {\n      super()\n    }\n\n    [Symbol.dispose]() {\n      using _ = this.inner\n    }\n\n    static create(inner: ChaCha20Poly1305Cipher) {\n      return new Cipher(inner)\n    }\n\n    static importOrThrow(key: BytesOrCopiable<32>) {\n      using mkey = getMemory(key)\n\n      return new Cipher(new ChaCha20Poly1305Cipher(mkey.value))\n    }\n\n    encryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>) {\n      using mmessage = getMemory(message)\n      using mnonce = getMemory(nonce)\n\n      return this.inner.encrypt(mmessage.value, mnonce.value)\n    }\n\n    decryptOrThrow(message: BytesOrCopiable, nonce: BytesOrCopiable<12>) {\n      using mmessage = getMemory(message)\n      using mnonce = getMemory(nonce)\n\n      return this.inner.decrypt(mmessage.value, mnonce.value)\n    }\n\n  }\n\n  return { Cipher } satisfies Adapter\n}"],"names":["Ref","Pin","Abstract.Cipher","__addDisposableResource"],"mappings":";;;;;;AAMM,SAAU,QAAQ,CAAC,IAAiC,EAAA;AACxD,IAAA,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAE/C,SAAS,SAAS,CAAC,eAAgC,EAAA;QACjD,IAAI,eAAe,YAAY,MAAM;AACnC,YAAA,OAAO,IAAIA,OAAG,CAAC,eAAe,CAAC;QAEjC,IAAI,eAAe,YAAY,UAAU;YACvC,OAAOC,OAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;AAE9C,QAAA,OAAOA,OAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;;AAGpD,IAAA,MAAM,MAAO,SAAQC,eAAe,CAAA;AAGvB,QAAA,KAAA;AADX,QAAA,WAAA,CACW,KAA6B,EAAA;AAEtC,YAAA,KAAK,EAAE;YAFE,IAAK,CAAA,KAAA,GAAL,KAAK;;QAKhB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;;;AACd,gBAAA,MAAM,CAAC,GAAGC,iCAAA,CAAA,KAAA,EAAA,IAAI,CAAC,KAAK,QAAA;;;;;;;;;AACrB;QAED,OAAO,MAAM,CAAC,KAA6B,EAAA;AACzC,YAAA,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;;QAG1B,OAAO,aAAa,CAAC,GAAwB,EAAA;;;AAC3C,gBAAA,MAAM,IAAI,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,GAAG,CAAC,QAAA;gBAE3B,OAAO,IAAI,MAAM,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;;;;;;;AAC1D;QAED,cAAc,CAAC,OAAwB,EAAE,KAA0B,EAAA;;;AACjE,gBAAA,MAAM,QAAQ,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,OAAO,CAAC,QAAA;AACnC,gBAAA,MAAM,MAAM,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,KAAK,CAAC,QAAA;AAE/B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;;;;;;;;;AACxD;QAED,cAAc,CAAC,OAAwB,EAAE,KAA0B,EAAA;;;AACjE,gBAAA,MAAM,QAAQ,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,OAAO,CAAC,QAAA;AACnC,gBAAA,MAAM,MAAM,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,KAAK,CAAC,QAAA;AAE/B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;;;;;;;;;AACxD;AAEF;IAED,OAAO,EAAE,MAAM,EAAoB;AACrC;;;;"}