rwadurian/tools/mnemonic-test/node_modules/hash-wasm/dist/crc64.umd.min.js

8 lines
7.8 KiB
JavaScript

/*!
* hash-wasm (https://www.npmjs.com/package/hash-wasm)
* (c) Dani Biro
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).hashwasm=e.hashwasm||{})}(this,(function(e){"use strict";var t,A={name:"crc64",data:"AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==",hash:"c5ac6c16"};function r(e,t,A,r){return new(A||(A=Promise))((function(n,i){function o(e){try{a(r.next(e))}catch(e){i(e)}}function s(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?n(e.value):(t=e.value,t instanceof A?t:new A((function(e){e(t)}))).then(o,s)}a((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class n{constructor(){this.mutex=Promise.resolve()}lock(){let e=()=>{};return this.mutex=this.mutex.then((()=>new Promise(e))),new Promise((t=>{e=t}))}dispatch(e){return r(this,void 0,void 0,(function*(){const t=yield this.lock();try{return yield Promise.resolve(e())}finally{t()}}))}}const i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,o=null!==(t=i.Buffer)&&void 0!==t?t:null,s=i.TextEncoder?new i.TextEncoder:null;function a(e,t){return(15&e)+(e>>6|e>>3&8)<<4|(15&t)+(t>>6|t>>3&8)}const l="a".charCodeAt(0)-10,c="0".charCodeAt(0);function f(e,t,A){let r=0;for(let n=0;n<A;n++){let A=t[n]>>>4;e[r++]=A>9?A+l:A+c,A=15&t[n],e[r++]=A>9?A+l:A+c}return String.fromCharCode.apply(null,e)}const h=null!==o?e=>{if("string"==typeof e){const t=o.from(e,"utf8");return new Uint8Array(t.buffer,t.byteOffset,t.length)}if(o.isBuffer(e))return new Uint8Array(e.buffer,e.byteOffset,e.length);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")}:e=>{if("string"==typeof e)return s.encode(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")},g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",I=new Uint8Array(256);for(let e=0;e<g.length;e++)I[g.charCodeAt(e)]=e;function u(e){const t=function(e){let t=Math.floor(.75*e.length);const A=e.length;return"="===e[A-1]&&(t-=1,"="===e[A-2]&&(t-=1)),t}(e),A=e.length,r=new Uint8Array(t);let n=0;for(let t=0;t<A;t+=4){const A=I[e.charCodeAt(t)],i=I[e.charCodeAt(t+1)],o=I[e.charCodeAt(t+2)],s=I[e.charCodeAt(t+3)];r[n]=A<<2|i>>4,n+=1,r[n]=(15&i)<<4|o>>2,n+=1,r[n]=(3&o)<<6|63&s,n+=1}return r}const B=16384,d=new n,C=new Map;function w(e,t){return r(this,void 0,void 0,(function*(){let A=null,n=null,i=!1;if("undefined"==typeof WebAssembly)throw new Error("WebAssembly is not supported in this environment!");const o=()=>new DataView(A.exports.memory.buffer).getUint32(A.exports.STATE_SIZE,!0),s=d.dispatch((()=>r(this,void 0,void 0,(function*(){if(!C.has(e.name)){const t=u(e.data),A=WebAssembly.compile(t);C.set(e.name,A)}const t=yield C.get(e.name);A=yield WebAssembly.instantiate(t,{})})))),l=(e=null)=>{i=!0,A.exports.Hash_Init(e)},c=e=>{if(!i)throw new Error("update() called before init()");(e=>{let t=0;for(;t<e.length;){const r=e.subarray(t,t+B);t+=r.length,n.set(r),A.exports.Hash_Update(r.length)}})(h(e))},g=new Uint8Array(2*t),I=(e,r=null)=>{if(!i)throw new Error("digest() called before init()");return i=!1,A.exports.Hash_Final(r),"binary"===e?n.slice(0,t):f(g,n,t)},w=e=>"string"==typeof e?e.length<4096:e.byteLength<B;let Q=w;switch(e.name){case"argon2":case"scrypt":Q=()=>!0;break;case"blake2b":case"blake2s":Q=(e,t)=>t<=512&&w(e);break;case"blake3":Q=(e,t)=>0===t&&w(e);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":Q=()=>!1}return yield(()=>r(this,void 0,void 0,(function*(){A||(yield s);const e=A.exports.Hash_GetBuffer(),t=A.exports.memory.buffer;n=new Uint8Array(t,e,B)})))(),{getMemory:()=>n,writeMemory:(e,t=0)=>{n.set(e,t)},getExports:()=>A.exports,setMemorySize:e=>{A.exports.Hash_SetMemorySize(e);const t=A.exports.Hash_GetBuffer(),r=A.exports.memory.buffer;n=new Uint8Array(r,t,e)},init:l,update:c,digest:I,save:()=>{if(!i)throw new Error("save() can only be called after init() and before digest()");const t=A.exports.Hash_GetState(),r=o(),n=A.exports.memory.buffer,s=new Uint8Array(n,t,r),l=new Uint8Array(4+r);return function(e,t){const A=t.length>>1;for(let r=0;r<A;r++){const A=r<<1;e[r]=a(t.charCodeAt(A),t.charCodeAt(A+1))}}(l,e.hash),l.set(s,4),l},load:t=>{if(!(t instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");const r=A.exports.Hash_GetState(),n=o(),s=4+n,l=A.exports.memory.buffer;if(t.length!==s)throw new Error(`Bad state length (expected ${s} bytes, got ${t.length})`);if(!function(e,t){if(e.length!==2*t.length)return!1;for(let A=0;A<t.length;A++){const r=A<<1;if(t[A]!==a(e.charCodeAt(r),e.charCodeAt(r+1)))return!1}return!0}(e.hash,t.subarray(0,4)))throw new Error("This state was written by an incompatible hash implementation");const c=t.subarray(4);new Uint8Array(l,r,n).set(c),i=!0},calculate:(e,r=null,i=null)=>{if(!Q(e,r))return l(r),c(e),I("hex",i);const o=h(e);return n.set(o),A.exports.Hash_Calculate(o.length,r,i),f(g,n,t)},hashLength:t}}))}const Q=new n;let y=null;const p=new Uint8Array(8);function b(e){const t="Polynomial must be provided as a 16 char long hex string";if("string"!=typeof e||16!==e.length)return{hi:0,lo:0,err:new Error(t)};const A=Number(`0x${e.slice(0,8)}`),r=Number(`0x${e.slice(8)}`);return Number.isNaN(A)||Number.isNaN(r)?{hi:A,lo:r,err:new Error(t)}:{hi:A,lo:r,err:null}}function m(e,t,A){const r=new DataView(e);r.setUint32(0,t,!0),r.setUint32(4,A,!0)}e.crc64=function(e,t="c96c5795d7870f42"){const{hi:n,lo:i,err:o}=b(t);if(null!==o)return Promise.reject(o);if(null===y)return function(e,t,A){return r(this,void 0,void 0,(function*(){const r=yield e.lock(),n=yield w(t,A);return r(),n}))}(Q,A,8).then((t=>(y=t,m(p.buffer,i,n),y.writeMemory(p),y.calculate(e))));try{m(p.buffer,i,n),y.writeMemory(p);const t=y.calculate(e);return Promise.resolve(t)}catch(o){return Promise.reject(o)}},e.createCRC64=function(e="c96c5795d7870f42"){const{hi:t,lo:r,err:n}=b(e);return null!==n?Promise.reject(n):w(A,8).then((e=>{const A=new Uint8Array(8);m(A.buffer,r,t),e.writeMemory(A),e.init();const n={init:()=>(e.writeMemory(A),e.init(),n),update:t=>(e.update(t),n),digest:t=>e.digest(t),save:()=>e.save(),load:t=>(e.load(t),n),blockSize:8,digestSize:8};return n}))}}));