@hazae41/ripemd160
Version:
RIPEMD-160 adapter for WebAssembly and JS implementations
1 lines • 2.92 kB
Source Map (JSON)
{"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;;;;"}