{"version":3,"file":"wasm.cjs","sources":["../../../../../src/mods/ripemd160/wasm.ts"],"sourcesContent":["import { Pin, Ref } from \"@hazae41/box\"\nimport type { Ripemd160Hasher, RipemdWasm } from \"@hazae41/ripemd.wasm\"\nimport { BytesOrCopiable } from \"libs/copiable/index.js\"\nimport { Adapter } from \"./adapter.js\"\n\nexport function fromWasm(wasm: typeof RipemdWasm) {\n  const { Memory, Ripemd160Hasher, ripemd160 } = 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 Hasher {\n\n    constructor(\n      readonly inner: Ripemd160Hasher\n    ) { }\n\n    [Symbol.dispose]() {\n      using _ = this.inner\n    }\n\n    static create(inner: Ripemd160Hasher) {\n      return new Hasher(inner)\n    }\n\n    static createOrThrow() {\n      return new Hasher(new Ripemd160Hasher())\n    }\n\n    cloneOrThrow() {\n      return new Hasher(this.inner.clone())\n    }\n\n    updateOrThrow(bytes: BytesOrCopiable) {\n      using memory = getMemory(bytes)\n\n      this.inner.update(memory.value)\n\n      return this\n    }\n\n    finalizeOrThrow() {\n      return this.inner.finalize()\n    }\n\n  }\n\n  function hashOrThrow(bytes: BytesOrCopiable) {\n    using memory = getMemory(bytes)\n\n    return ripemd160(memory.value)\n  }\n\n  return { Hasher, hashOrThrow } satisfies Adapter\n}"],"names":["Ref","Pin","__addDisposableResource"],"mappings":";;;;;AAKM,SAAU,QAAQ,CAAC,IAAuB,EAAA;IAC9C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,IAAI;IAEnD,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,MAAM,CAAA;AAGC,QAAA,KAAA;AADX,QAAA,WAAA,CACW,KAAsB,EAAA;YAAtB,IAAK,CAAA,KAAA,GAAL,KAAK;;QAGhB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;;;AACd,gBAAA,MAAM,CAAC,GAAGC,iCAAA,CAAA,KAAA,EAAA,IAAI,CAAC,KAAK,QAAA;;;;;;;;;AACrB;QAED,OAAO,MAAM,CAAC,KAAsB,EAAA;AAClC,YAAA,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;;AAG1B,QAAA,OAAO,aAAa,GAAA;AAClB,YAAA,OAAO,IAAI,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;;QAG1C,YAAY,GAAA;YACV,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;;AAGvC,QAAA,aAAa,CAAC,KAAsB,EAAA;;;AAClC,gBAAA,MAAM,MAAM,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,KAAK,CAAC,QAAA;gBAE/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAE/B,gBAAA,OAAO,IAAI;;;;;;;;;AACZ;QAED,eAAe,GAAA;AACb,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;;AAG/B;IAED,SAAS,WAAW,CAAC,KAAsB,EAAA;;;AACzC,YAAA,MAAM,MAAM,GAAGA,iCAAA,CAAA,KAAA,EAAA,SAAS,CAAC,KAAK,CAAC,QAAA;AAE/B,YAAA,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;;;AAC/B;AAED,IAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAoB;AAClD;;;;"}