@multiformats/blake2
Version:
Multiformats BLAKE2 implementations
6 lines (5 loc) • 28.3 kB
JavaScript
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.MultiformatsBlake2 = factory()}(typeof self !== 'undefined' ? self : this, function () {
;var MultiformatsBlake2=(()=>{var rn=Object.create;var W=Object.defineProperty;var cn=Object.getOwnPropertyDescriptor;var an=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,dn=Object.prototype.hasOwnProperty;var Z=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),Y=(e,o)=>{for(var n in o)W(e,n,{get:o[n],enumerable:!0})},ve=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of an(o))!dn.call(e,r)&&r!==n&&W(e,r,{get:()=>o[r],enumerable:!(t=cn(o,r))||t.enumerable});return e};var Ae=(e,o,n)=>(n=e!=null?rn(sn(e)):{},ve(o||!e||!e.__esModule?W(n,"default",{value:e,enumerable:!0}):n,e)),bn=e=>ve(W({},"__esModule",{value:!0}),e);var re=Z((Jt,Ue)=>{var ln="Input must be an string, Buffer or Uint8Array";function fn(e){let o;if(e instanceof Uint8Array)o=e;else if(typeof e=="string")o=new TextEncoder().encode(e);else throw new Error(ln);return o}function un(e){return Array.prototype.map.call(e,function(o){return(o<16?"0":"")+o.toString(16)}).join("")}function ee(e){return(4294967296+e).toString(16).substring(1)}function pn(e,o,n){let t=`
`+e+" = ";for(let r=0;r<o.length;r+=2){if(n===32)t+=ee(o[r]).toUpperCase(),t+=" ",t+=ee(o[r+1]).toUpperCase();else if(n===64)t+=ee(o[r+1]).toUpperCase(),t+=ee(o[r]).toUpperCase();else throw new Error("Invalid size "+n);r%6===4?t+=`
`+new Array(e.length+4).join(" "):r<o.length-2&&(t+=" ")}console.log(t)}function xn(e,o,n){let t=new Date().getTime(),r=new Uint8Array(o);for(let b=0;b<o;b++)r[b]=b%256;let s=new Date().getTime();console.log("Generated random input in "+(s-t)+"ms"),t=s;for(let b=0;b<n;b++){let u=e(r),h=new Date().getTime(),A=h-t;t=h,console.log("Hashed in "+A+"ms: "+u.substring(0,20)+"..."),console.log(Math.round(o/(1<<20)/(A/1e3)*100)/100+" MB PER SECOND")}}Ue.exports={normalizeInput:fn,toHex:un,debugPrint:pn,testSpeed:xn}});var Te=Z((Kt,Be)=>{var oe=re();function ne(e,o,n){let t=e[o]+e[n],r=e[o+1]+e[n+1];t>=4294967296&&r++,e[o]=t,e[o+1]=r}function Ee(e,o,n,t){let r=e[o]+n;n<0&&(r+=4294967296);let s=e[o+1]+t;r>=4294967296&&s++,e[o]=r,e[o+1]=s}function Ie(e,o){return e[o]^e[o+1]<<8^e[o+2]<<16^e[o+3]<<24}function T(e,o,n,t,r,s){let b=$[r],u=$[r+1],h=$[s],A=$[s+1];ne(d,e,o),Ee(d,e,b,u);let x=d[t]^d[e],k=d[t+1]^d[e+1];d[t]=k,d[t+1]=x,ne(d,n,t),x=d[o]^d[n],k=d[o+1]^d[n+1],d[o]=x>>>24^k<<8,d[o+1]=k>>>24^x<<8,ne(d,e,o),Ee(d,e,h,A),x=d[t]^d[e],k=d[t+1]^d[e+1],d[t]=x>>>16^k<<16,d[t+1]=k>>>16^x<<16,ne(d,n,t),x=d[o]^d[n],k=d[o+1]^d[n+1],d[o]=k>>>31^x<<1,d[o+1]=x>>>31^k<<1}var Se=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),hn=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],w=new Uint8Array(hn.map(function(e){return e*2})),d=new Uint32Array(32),$=new Uint32Array(32);function Ce(e,o){let n=0;for(n=0;n<16;n++)d[n]=e.h[n],d[n+16]=Se[n];for(d[24]=d[24]^e.t,d[25]=d[25]^e.t/4294967296,o&&(d[28]=~d[28],d[29]=~d[29]),n=0;n<32;n++)$[n]=Ie(e.b,4*n);for(n=0;n<12;n++)T(0,8,16,24,w[n*16+0],w[n*16+1]),T(2,10,18,26,w[n*16+2],w[n*16+3]),T(4,12,20,28,w[n*16+4],w[n*16+5]),T(6,14,22,30,w[n*16+6],w[n*16+7]),T(0,10,20,30,w[n*16+8],w[n*16+9]),T(2,12,22,24,w[n*16+10],w[n*16+11]),T(4,14,16,26,w[n*16+12],w[n*16+13]),T(6,8,18,28,w[n*16+14],w[n*16+15]);for(n=0;n<16;n++)e.h[n]=e.h[n]^d[n]^d[n+16]}var O=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function De(e,o,n,t){if(e===0||e>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(o&&o.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&n.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(t&&t.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");let r={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:e};O.fill(0),O[0]=e,o&&(O[1]=o.length),O[2]=1,O[3]=1,n&&O.set(n,32),t&&O.set(t,48);for(let s=0;s<16;s++)r.h[s]=Se[s]^Ie(O,s*4);return o&&(ce(r,o),r.c=128),r}function ce(e,o){for(let n=0;n<o.length;n++)e.c===128&&(e.t+=e.c,Ce(e,!1),e.c=0),e.b[e.c++]=o[n]}function ze(e){for(e.t+=e.c;e.c<128;)e.b[e.c++]=0;Ce(e,!0);let o=new Uint8Array(e.outlen);for(let n=0;n<e.outlen;n++)o[n]=e.h[n>>2]>>8*(n&3);return o}function Me(e,o,n,t,r){n=n||64,e=oe.normalizeInput(e),t&&(t=oe.normalizeInput(t)),r&&(r=oe.normalizeInput(r));let s=De(n,o,t,r);return ce(s,e),ze(s)}function kn(e,o,n,t,r){let s=Me(e,o,n,t,r);return oe.toHex(s)}Be.exports={blake2b:Me,blake2bHex:kn,blake2bInit:De,blake2bUpdate:ce,blake2bFinal:ze}});var $e=Z((Qt,qe)=>{var Oe=re();function mn(e,o){return e[o]^e[o+1]<<8^e[o+2]<<16^e[o+3]<<24}function N(e,o,n,t,r,s){l[e]=l[e]+l[o]+r,l[t]=te(l[t]^l[e],16),l[n]=l[n]+l[t],l[o]=te(l[o]^l[n],12),l[e]=l[e]+l[o]+s,l[t]=te(l[t]^l[e],8),l[n]=l[n]+l[t],l[o]=te(l[o]^l[n],7)}function te(e,o){return e>>>o^e<<32-o}var Ne=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),g=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),l=new Uint32Array(16),m=new Uint32Array(16);function Ve(e,o){let n=0;for(n=0;n<8;n++)l[n]=e.h[n],l[n+8]=Ne[n];for(l[12]^=e.t,l[13]^=e.t/4294967296,o&&(l[14]=~l[14]),n=0;n<16;n++)m[n]=mn(e.b,4*n);for(n=0;n<10;n++)N(0,4,8,12,m[g[n*16+0]],m[g[n*16+1]]),N(1,5,9,13,m[g[n*16+2]],m[g[n*16+3]]),N(2,6,10,14,m[g[n*16+4]],m[g[n*16+5]]),N(3,7,11,15,m[g[n*16+6]],m[g[n*16+7]]),N(0,5,10,15,m[g[n*16+8]],m[g[n*16+9]]),N(1,6,11,12,m[g[n*16+10]],m[g[n*16+11]]),N(2,7,8,13,m[g[n*16+12]],m[g[n*16+13]]),N(3,4,9,14,m[g[n*16+14]],m[g[n*16+15]]);for(n=0;n<8;n++)e.h[n]^=l[n]^l[n+8]}function Fe(e,o){if(!(e>0&&e<=32))throw new Error("Incorrect output length, should be in [1, 32]");let n=o?o.length:0;if(o&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");let t={h:new Uint32Array(Ne),b:new Uint8Array(64),c:0,t:0,outlen:e};return t.h[0]^=16842752^n<<8^e,n>0&&(ae(t,o),t.c=64),t}function ae(e,o){for(let n=0;n<o.length;n++)e.c===64&&(e.t+=e.c,Ve(e,!1),e.c=0),e.b[e.c++]=o[n]}function Le(e){for(e.t+=e.c;e.c<64;)e.b[e.c++]=0;Ve(e,!0);let o=new Uint8Array(e.outlen);for(let n=0;n<e.outlen;n++)o[n]=e.h[n>>2]>>8*(n&3)&255;return o}function Re(e,o,n){n=n||32,e=Oe.normalizeInput(e);let t=Fe(n,o);return ae(t,e),Le(t)}function wn(e,o,n){let t=Re(e,o,n);return Oe.toHex(t)}qe.exports={blake2s:Re,blake2sHex:wn,blake2sInit:Fe,blake2sUpdate:ae,blake2sFinal:Le}});var se=Z((Xt,He)=>{var H=Te(),G=$e();He.exports={blake2b:H.blake2b,blake2bHex:H.blake2bHex,blake2bInit:H.blake2bInit,blake2bUpdate:H.blake2bUpdate,blake2bFinal:H.blake2bFinal,blake2s:G.blake2s,blake2sHex:G.blake2sHex,blake2sInit:G.blake2sInit,blake2sUpdate:G.blake2sUpdate,blake2sFinal:G.blake2sFinal}});var Pt={};Y(Pt,{default:()=>Gt});var ge={};Y(ge,{blake2b104:()=>uo,blake2b112:()=>po,blake2b120:()=>xo,blake2b128:()=>ho,blake2b136:()=>ko,blake2b144:()=>mo,blake2b152:()=>wo,blake2b16:()=>no,blake2b160:()=>go,blake2b168:()=>yo,blake2b176:()=>vo,blake2b184:()=>Ao,blake2b192:()=>Uo,blake2b200:()=>Eo,blake2b208:()=>Io,blake2b216:()=>So,blake2b224:()=>Co,blake2b232:()=>Do,blake2b24:()=>oo,blake2b240:()=>zo,blake2b248:()=>Mo,blake2b256:()=>Bo,blake2b264:()=>To,blake2b272:()=>Oo,blake2b280:()=>No,blake2b288:()=>Vo,blake2b296:()=>Fo,blake2b304:()=>Lo,blake2b312:()=>Ro,blake2b32:()=>to,blake2b320:()=>qo,blake2b328:()=>$o,blake2b336:()=>Ho,blake2b344:()=>Go,blake2b352:()=>Po,blake2b360:()=>jo,blake2b368:()=>Jo,blake2b376:()=>Ko,blake2b384:()=>Qo,blake2b392:()=>Xo,blake2b40:()=>ro,blake2b400:()=>_o,blake2b408:()=>Wo,blake2b416:()=>Zo,blake2b424:()=>Yo,blake2b432:()=>et,blake2b440:()=>nt,blake2b448:()=>ot,blake2b456:()=>tt,blake2b464:()=>rt,blake2b472:()=>ct,blake2b48:()=>co,blake2b480:()=>at,blake2b488:()=>st,blake2b496:()=>it,blake2b504:()=>dt,blake2b512:()=>bt,blake2b56:()=>ao,blake2b64:()=>so,blake2b72:()=>io,blake2b8:()=>eo,blake2b80:()=>bo,blake2b88:()=>lo,blake2b96:()=>fo});var nn=Ae(se(),1);var c={};Y(c,{coerce:()=>F,empty:()=>Ge,equals:()=>ie,fromHex:()=>yn,fromString:()=>An,isBinary:()=>vn,toHex:()=>gn,toString:()=>Un});var Ge=new Uint8Array(0);function gn(e){return e.reduce((o,n)=>o+n.toString(16).padStart(2,"0"),"")}function yn(e){let o=e.match(/../g);return o!=null?new Uint8Array(o.map(n=>parseInt(n,16))):Ge}function ie(e,o){if(e===o)return!0;if(e.byteLength!==o.byteLength)return!1;for(let n=0;n<e.byteLength;n++)if(e[n]!==o[n])return!1;return!0}function F(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")}function vn(e){return e instanceof ArrayBuffer||ArrayBuffer.isView(e)}function An(e){return new TextEncoder().encode(e)}function Un(e){return new TextDecoder().decode(e)}function En(e,o){if(e.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),t=0;t<n.length;t++)n[t]=255;for(var r=0;r<e.length;r++){var s=e.charAt(r),b=s.charCodeAt(0);if(n[b]!==255)throw new TypeError(s+" is ambiguous");n[b]=r}var u=e.length,h=e.charAt(0),A=Math.log(u)/Math.log(256),x=Math.log(256)/Math.log(u);function k(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var y=0,V=0,U=0,I=p.length;U!==I&&p[U]===0;)U++,y++;for(var S=(I-U)*x+1>>>0,v=new Uint8Array(S);U!==I;){for(var C=p[U],B=0,E=S-1;(C!==0||B<V)&&E!==-1;E--,B++)C+=256*v[E]>>>0,v[E]=C%u>>>0,C=C/u>>>0;if(C!==0)throw new Error("Non-zero carry");V=B,U++}for(var z=S-V;z!==S&&v[z]===0;)z++;for(var _=h.repeat(y);z<S;++z)_+=e.charAt(v[z]);return _}function X(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var y=0;if(p[y]!==" "){for(var V=0,U=0;p[y]===h;)V++,y++;for(var I=(p.length-y)*A+1>>>0,S=new Uint8Array(I);p[y];){var v=n[p.charCodeAt(y)];if(v===255)return;for(var C=0,B=I-1;(v!==0||C<U)&&B!==-1;B--,C++)v+=u*S[B]>>>0,S[B]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");U=C,y++}if(p[y]!==" "){for(var E=I-U;E!==I&&S[E]===0;)E++;for(var z=new Uint8Array(V+(I-E)),_=V;E!==I;)z[_++]=S[E++];return z}}}function tn(p){var y=X(p);if(y)return y;throw new Error(`Non-${o} character`)}return{encode:k,decodeUnsafe:X,decode:tn}}var In=En,Sn=In,Pe=Sn;var de=class{name;prefix;baseEncode;constructor(o,n,t){this.name=o,this.prefix=n,this.baseEncode=t}encode(o){if(o instanceof Uint8Array)return`${this.prefix}${this.baseEncode(o)}`;throw Error("Unknown type, must be binary type")}},be=class{name;prefix;baseDecode;prefixCodePoint;constructor(o,n,t){if(this.name=o,this.prefix=n,n.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=t}decode(o){if(typeof o=="string"){if(o.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(o)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(o.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(o){return je(this,o)}},le=class{decoders;constructor(o){this.decoders=o}or(o){return je(this,o)}decode(o){let n=o[0],t=this.decoders[n];if(t!=null)return t.decode(o);throw RangeError(`Unable to decode multibase string ${JSON.stringify(o)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function je(e,o){return new le({...e.decoders??{[e.prefix]:e},...o.decoders??{[o.prefix]:o}})}var fe=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(o,n,t,r){this.name=o,this.prefix=n,this.baseEncode=t,this.baseDecode=r,this.encoder=new de(o,n,t),this.decoder=new be(o,n,r)}encode(o){return this.encoder.encode(o)}decode(o){return this.decoder.decode(o)}};function Je({name:e,prefix:o,encode:n,decode:t}){return new fe(e,o,n,t)}function ue({name:e,prefix:o,alphabet:n}){let{encode:t,decode:r}=Pe(n,e);return Je({prefix:o,name:e,encode:t,decode:s=>F(r(s))})}function Cn(e,o,n,t){let r={};for(let x=0;x<o.length;++x)r[o[x]]=x;let s=e.length;for(;e[s-1]==="=";)--s;let b=new Uint8Array(s*n/8|0),u=0,h=0,A=0;for(let x=0;x<s;++x){let k=r[e[x]];if(k===void 0)throw new SyntaxError(`Non-${t} character`);h=h<<n|k,u+=n,u>=8&&(u-=8,b[A++]=255&h>>u)}if(u>=n||255&h<<8-u)throw new SyntaxError("Unexpected end of data");return b}function Dn(e,o,n){let t=o[o.length-1]==="=",r=(1<<n)-1,s="",b=0,u=0;for(let h=0;h<e.length;++h)for(u=u<<8|e[h],b+=8;b>n;)b-=n,s+=o[r&u>>b];if(b!==0&&(s+=o[r&u<<n-b]),t)for(;s.length*n&7;)s+="=";return s}function D({name:e,prefix:o,bitsPerChar:n,alphabet:t}){return Je({prefix:o,name:e,encode(r){return Dn(r,t,n)},decode(r){return Cn(r,t,n,e)}})}var P=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),nr=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),or=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),tr=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),rr=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),cr=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ar=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),sr=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ir=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var M=ue({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),lr=ue({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var zn=Xe,Ke=128,Mn=127,Bn=~Mn,Tn=Math.pow(2,31);function Xe(e,o,n){o=o||[],n=n||0;for(var t=n;e>=Tn;)o[n++]=e&255|Ke,e/=128;for(;e&Bn;)o[n++]=e&255|Ke,e>>>=7;return o[n]=e|0,Xe.bytes=n-t+1,o}var On=pe,Nn=128,Qe=127;function pe(e,t){var n=0,t=t||0,r=0,s=t,b,u=e.length;do{if(s>=u)throw pe.bytes=0,new RangeError("Could not decode varint");b=e[s++],n+=r<28?(b&Qe)<<r:(b&Qe)*Math.pow(2,r),r+=7}while(b>=Nn);return pe.bytes=s-t,n}var Vn=Math.pow(2,7),Fn=Math.pow(2,14),Ln=Math.pow(2,21),Rn=Math.pow(2,28),qn=Math.pow(2,35),$n=Math.pow(2,42),Hn=Math.pow(2,49),Gn=Math.pow(2,56),Pn=Math.pow(2,63),jn=function(e){return e<Vn?1:e<Fn?2:e<Ln?3:e<Rn?4:e<qn?5:e<$n?6:e<Hn?7:e<Gn?8:e<Pn?9:10},Jn={encode:zn,decode:On,encodingLength:jn},Kn=Jn,j=Kn;function J(e,o=0){return[j.decode(e,o),j.decode.bytes]}function L(e,o,n=0){return j.encode(e,o,n),o}function R(e){return j.encodingLength(e)}function K(e,o){let n=o.byteLength,t=R(e),r=t+R(n),s=new Uint8Array(r+n);return L(e,s,0),L(n,s,t),s.set(o,r),new q(e,n,o,s)}function _e(e){let o=F(e),[n,t]=J(o),[r,s]=J(o.subarray(t)),b=o.subarray(t+s);if(b.byteLength!==r)throw new Error("Incorrect length");return new q(n,r,b,o)}function We(e,o){if(e===o)return!0;{let n=o;return e.code===n.code&&e.size===n.size&&n.bytes instanceof Uint8Array&&ie(e.bytes,n.bytes)}}var q=class{code;size;digest;bytes;constructor(o,n,t,r){this.code=o,this.size=n,this.digest=t,this.bytes=r}};function Ze(e,o){let{bytes:n,version:t}=e;switch(t){case 0:return Xn(n,ke(e),o??M.encoder);default:return _n(n,ke(e),o??P.encoder)}}var Ye=new WeakMap;function ke(e){let o=Ye.get(e);if(o==null){let n=new Map;return Ye.set(e,n),n}return o}var me=class e{code;version;multihash;bytes;"/";constructor(o,n,t,r){this.code=n,this.version=o,this.multihash=t,this.bytes=r,this["/"]=r}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:o,multihash:n}=this;if(o!==Q)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(n.code!==Wn)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(n)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:o,digest:n}=this.multihash,t=K(o,n);return e.createV1(this.code,t)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(o){return e.equals(this,o)}static equals(o,n){let t=n;return t!=null&&o.code===t.code&&o.version===t.version&&We(o.multihash,t.multihash)}toString(o){return Ze(this,o)}toJSON(){return{"/":Ze(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(o){if(o==null)return null;let n=o;if(n instanceof e)return n;if(n["/"]!=null&&n["/"]===n.bytes||n.asCID===n){let{version:t,code:r,multihash:s,bytes:b}=n;return new e(t,r,s,b??en(t,r,s.bytes))}else if(n[Zn]===!0){let{version:t,multihash:r,code:s}=n,b=_e(r);return e.create(t,s,b)}else return null}static create(o,n,t){if(typeof n!="number")throw new Error("String codecs are no longer supported");if(!(t.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(o){case 0:{if(n!==Q)throw new Error(`Version 0 CID must use dag-pb (code: ${Q}) block encoding`);return new e(o,n,t,t.bytes)}case 1:{let r=en(o,n,t.bytes);return new e(o,n,t,r)}default:throw new Error("Invalid version")}}static createV0(o){return e.create(0,Q,o)}static createV1(o,n){return e.create(1,o,n)}static decode(o){let[n,t]=e.decodeFirst(o);if(t.length!==0)throw new Error("Incorrect length");return n}static decodeFirst(o){let n=e.inspectBytes(o),t=n.size-n.multihashSize,r=F(o.subarray(t,t+n.multihashSize));if(r.byteLength!==n.multihashSize)throw new Error("Incorrect length");let s=r.subarray(n.multihashSize-n.digestSize),b=new q(n.multihashCode,n.digestSize,s,r);return[n.version===0?e.createV0(b):e.createV1(n.codec,b),o.subarray(n.size)]}static inspectBytes(o){let n=0,t=()=>{let[k,X]=J(o.subarray(n));return n+=X,k},r=t(),s=Q;if(r===18?(r=0,n=0):s=t(),r!==0&&r!==1)throw new RangeError(`Invalid CID version ${r}`);let b=n,u=t(),h=t(),A=n+h,x=A-b;return{version:r,codec:s,multihashCode:u,digestSize:h,multihashSize:x,size:A}}static parse(o,n){let[t,r]=Qn(o,n),s=e.decode(r);if(s.version===0&&o[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ke(s).set(t,o),s}};function Qn(e,o){switch(e[0]){case"Q":{let n=o??M;return[M.prefix,n.decode(`${M.prefix}${e}`)]}case M.prefix:{let n=o??M;return[M.prefix,n.decode(e)]}case P.prefix:{let n=o??P;return[P.prefix,n.decode(e)]}default:{if(o==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],o.decode(e)]}}}function Xn(e,o,n){let{prefix:t}=n;if(t!==M.prefix)throw Error(`Cannot string encode V0 in ${n.name} encoding`);let r=o.get(t);if(r==null){let s=n.encode(e).slice(1);return o.set(t,s),s}else return r}function _n(e,o,n){let{prefix:t}=n,r=o.get(t);if(r==null){let s=n.encode(e);return o.set(t,s),s}else return r}var Q=112,Wn=18;function en(e,o,n){let t=R(e),r=t+R(o),s=new Uint8Array(r+n.byteLength);return L(e,s,0),L(o,s,t),s.set(n,r),s}var Zn=Symbol.for("@ipld/js-cid/CID");function a({name:e,code:o,encode:n}){return new we(e,o,n)}var we=class{name;code;encode;constructor(o,n,t){this.name=o,this.code=n,this.encode=t}digest(o){if(o instanceof Uint8Array){let n=this.encode(o);return n instanceof Uint8Array?K(this.code,n):n.then(t=>K(this.code,t))}else throw Error("Unknown type, must be binary type")}};var{blake2b:i}=nn.default,eo=a({name:"blake2b-8",code:45569,encode:e=>c.coerce(i(e,void 0,1))}),no=a({name:"blake2b-16",code:45570,encode:e=>c.coerce(i(e,void 0,2))}),oo=a({name:"blake2b-24",code:45571,encode:e=>c.coerce(i(e,void 0,3))}),to=a({name:"blake2b-32",code:45572,encode:e=>c.coerce(i(e,void 0,4))}),ro=a({name:"blake2b-40",code:45573,encode:e=>c.coerce(i(e,void 0,5))}),co=a({name:"blake2b-48",code:45574,encode:e=>c.coerce(i(e,void 0,6))}),ao=a({name:"blake2b-56",code:45575,encode:e=>c.coerce(i(e,void 0,7))}),so=a({name:"blake2b-64",code:45576,encode:e=>c.coerce(i(e,void 0,8))}),io=a({name:"blake2b-72",code:45577,encode:e=>c.coerce(i(e,void 0,9))}),bo=a({name:"blake2b-80",code:45578,encode:e=>c.coerce(i(e,void 0,10))}),lo=a({name:"blake2b-88",code:45579,encode:e=>c.coerce(i(e,void 0,11))}),fo=a({name:"blake2b-96",code:45580,encode:e=>c.coerce(i(e,void 0,12))}),uo=a({name:"blake2b-104",code:45581,encode:e=>c.coerce(i(e,void 0,13))}),po=a({name:"blake2b-112",code:45582,encode:e=>c.coerce(i(e,void 0,14))}),xo=a({name:"blake2b-120",code:45583,encode:e=>c.coerce(i(e,void 0,15))}),ho=a({name:"blake2b-128",code:45584,encode:e=>c.coerce(i(e,void 0,16))}),ko=a({name:"blake2b-136",code:45585,encode:e=>c.coerce(i(e,void 0,17))}),mo=a({name:"blake2b-144",code:45586,encode:e=>c.coerce(i(e,void 0,18))}),wo=a({name:"blake2b-152",code:45587,encode:e=>c.coerce(i(e,void 0,19))}),go=a({name:"blake2b-160",code:45588,encode:e=>c.coerce(i(e,void 0,20))}),yo=a({name:"blake2b-168",code:45589,encode:e=>c.coerce(i(e,void 0,21))}),vo=a({name:"blake2b-176",code:45590,encode:e=>c.coerce(i(e,void 0,22))}),Ao=a({name:"blake2b-184",code:45591,encode:e=>c.coerce(i(e,void 0,23))}),Uo=a({name:"blake2b-192",code:45592,encode:e=>c.coerce(i(e,void 0,24))}),Eo=a({name:"blake2b-200",code:45593,encode:e=>c.coerce(i(e,void 0,25))}),Io=a({name:"blake2b-208",code:45594,encode:e=>c.coerce(i(e,void 0,26))}),So=a({name:"blake2b-216",code:45595,encode:e=>c.coerce(i(e,void 0,27))}),Co=a({name:"blake2b-224",code:45596,encode:e=>c.coerce(i(e,void 0,28))}),Do=a({name:"blake2b-232",code:45597,encode:e=>c.coerce(i(e,void 0,29))}),zo=a({name:"blake2b-240",code:45598,encode:e=>c.coerce(i(e,void 0,30))}),Mo=a({name:"blake2b-248",code:45599,encode:e=>c.coerce(i(e,void 0,31))}),Bo=a({name:"blake2b-256",code:45600,encode:e=>c.coerce(i(e,void 0,32))}),To=a({name:"blake2b-264",code:45601,encode:e=>c.coerce(i(e,void 0,33))}),Oo=a({name:"blake2b-272",code:45602,encode:e=>c.coerce(i(e,void 0,34))}),No=a({name:"blake2b-280",code:45603,encode:e=>c.coerce(i(e,void 0,35))}),Vo=a({name:"blake2b-288",code:45604,encode:e=>c.coerce(i(e,void 0,36))}),Fo=a({name:"blake2b-296",code:45605,encode:e=>c.coerce(i(e,void 0,37))}),Lo=a({name:"blake2b-304",code:45606,encode:e=>c.coerce(i(e,void 0,38))}),Ro=a({name:"blake2b-312",code:45607,encode:e=>c.coerce(i(e,void 0,39))}),qo=a({name:"blake2b-320",code:45608,encode:e=>c.coerce(i(e,void 0,40))}),$o=a({name:"blake2b-328",code:45609,encode:e=>c.coerce(i(e,void 0,41))}),Ho=a({name:"blake2b-336",code:45610,encode:e=>c.coerce(i(e,void 0,42))}),Go=a({name:"blake2b-344",code:45611,encode:e=>c.coerce(i(e,void 0,43))}),Po=a({name:"blake2b-352",code:45612,encode:e=>c.coerce(i(e,void 0,44))}),jo=a({name:"blake2b-360",code:45613,encode:e=>c.coerce(i(e,void 0,45))}),Jo=a({name:"blake2b-368",code:45614,encode:e=>c.coerce(i(e,void 0,46))}),Ko=a({name:"blake2b-376",code:45615,encode:e=>c.coerce(i(e,void 0,47))}),Qo=a({name:"blake2b-384",code:45616,encode:e=>c.coerce(i(e,void 0,48))}),Xo=a({name:"blake2b-392",code:45617,encode:e=>c.coerce(i(e,void 0,49))}),_o=a({name:"blake2b-400",code:45618,encode:e=>c.coerce(i(e,void 0,50))}),Wo=a({name:"blake2b-408",code:45619,encode:e=>c.coerce(i(e,void 0,51))}),Zo=a({name:"blake2b-416",code:45620,encode:e=>c.coerce(i(e,void 0,52))}),Yo=a({name:"blake2b-424",code:45621,encode:e=>c.coerce(i(e,void 0,53))}),et=a({name:"blake2b-432",code:45622,encode:e=>c.coerce(i(e,void 0,54))}),nt=a({name:"blake2b-440",code:45623,encode:e=>c.coerce(i(e,void 0,55))}),ot=a({name:"blake2b-448",code:45624,encode:e=>c.coerce(i(e,void 0,56))}),tt=a({name:"blake2b-456",code:45625,encode:e=>c.coerce(i(e,void 0,57))}),rt=a({name:"blake2b-464",code:45626,encode:e=>c.coerce(i(e,void 0,58))}),ct=a({name:"blake2b-472",code:45627,encode:e=>c.coerce(i(e,void 0,59))}),at=a({name:"blake2b-480",code:45628,encode:e=>c.coerce(i(e,void 0,60))}),st=a({name:"blake2b-488",code:45629,encode:e=>c.coerce(i(e,void 0,61))}),it=a({name:"blake2b-496",code:45630,encode:e=>c.coerce(i(e,void 0,62))}),dt=a({name:"blake2b-504",code:45631,encode:e=>c.coerce(i(e,void 0,63))}),bt=a({name:"blake2b-512",code:45632,encode:e=>c.coerce(i(e,void 0,64))});var ye={};Y(ye,{blake2s104:()=>At,blake2s112:()=>Ut,blake2s120:()=>Et,blake2s128:()=>It,blake2s136:()=>St,blake2s144:()=>Ct,blake2s152:()=>Dt,blake2s16:()=>ft,blake2s160:()=>zt,blake2s168:()=>Mt,blake2s176:()=>Bt,blake2s184:()=>Tt,blake2s192:()=>Ot,blake2s200:()=>Nt,blake2s208:()=>Vt,blake2s216:()=>Ft,blake2s224:()=>Lt,blake2s232:()=>Rt,blake2s24:()=>ut,blake2s240:()=>qt,blake2s248:()=>$t,blake2s256:()=>Ht,blake2s32:()=>pt,blake2s40:()=>xt,blake2s48:()=>ht,blake2s56:()=>kt,blake2s64:()=>mt,blake2s72:()=>wt,blake2s8:()=>lt,blake2s80:()=>gt,blake2s88:()=>yt,blake2s96:()=>vt});var on=Ae(se(),1);var{blake2s:f}=on.default,lt=a({name:"blake2s-8",code:45633,encode:e=>c.coerce(f(e,void 0,1))}),ft=a({name:"blake2s-16",code:45634,encode:e=>c.coerce(f(e,void 0,2))}),ut=a({name:"blake2s-24",code:45635,encode:e=>c.coerce(f(e,void 0,3))}),pt=a({name:"blake2s-32",code:45636,encode:e=>c.coerce(f(e,void 0,4))}),xt=a({name:"blake2s-40",code:45637,encode:e=>c.coerce(f(e,void 0,5))}),ht=a({name:"blake2s-48",code:45638,encode:e=>c.coerce(f(e,void 0,6))}),kt=a({name:"blake2s-56",code:45639,encode:e=>c.coerce(f(e,void 0,7))}),mt=a({name:"blake2s-64",code:45640,encode:e=>c.coerce(f(e,void 0,8))}),wt=a({name:"blake2s-72",code:45641,encode:e=>c.coerce(f(e,void 0,9))}),gt=a({name:"blake2s-80",code:45642,encode:e=>c.coerce(f(e,void 0,10))}),yt=a({name:"blake2s-88",code:45643,encode:e=>c.coerce(f(e,void 0,11))}),vt=a({name:"blake2s-96",code:45644,encode:e=>c.coerce(f(e,void 0,12))}),At=a({name:"blake2s-104",code:45645,encode:e=>c.coerce(f(e,void 0,13))}),Ut=a({name:"blake2s-112",code:45646,encode:e=>c.coerce(f(e,void 0,14))}),Et=a({name:"blake2s-120",code:45647,encode:e=>c.coerce(f(e,void 0,15))}),It=a({name:"blake2s-128",code:45648,encode:e=>c.coerce(f(e,void 0,16))}),St=a({name:"blake2s-136",code:45649,encode:e=>c.coerce(f(e,void 0,17))}),Ct=a({name:"blake2s-144",code:45650,encode:e=>c.coerce(f(e,void 0,18))}),Dt=a({name:"blake2s-152",code:45651,encode:e=>c.coerce(f(e,void 0,19))}),zt=a({name:"blake2s-160",code:45652,encode:e=>c.coerce(f(e,void 0,20))}),Mt=a({name:"blake2s-168",code:45653,encode:e=>c.coerce(f(e,void 0,21))}),Bt=a({name:"blake2s-176",code:45654,encode:e=>c.coerce(f(e,void 0,22))}),Tt=a({name:"blake2s-184",code:45655,encode:e=>c.coerce(f(e,void 0,23))}),Ot=a({name:"blake2s-192",code:45656,encode:e=>c.coerce(f(e,void 0,24))}),Nt=a({name:"blake2s-200",code:45657,encode:e=>c.coerce(f(e,void 0,25))}),Vt=a({name:"blake2s-208",code:45658,encode:e=>c.coerce(f(e,void 0,26))}),Ft=a({name:"blake2s-216",code:45659,encode:e=>c.coerce(f(e,void 0,27))}),Lt=a({name:"blake2s-224",code:45660,encode:e=>c.coerce(f(e,void 0,28))}),Rt=a({name:"blake2s-232",code:45661,encode:e=>c.coerce(f(e,void 0,29))}),qt=a({name:"blake2s-240",code:45662,encode:e=>c.coerce(f(e,void 0,30))}),$t=a({name:"blake2s-248",code:45663,encode:e=>c.coerce(f(e,void 0,31))}),Ht=a({name:"blake2s-256",code:45664,encode:e=>c.coerce(f(e,void 0,32))});var Gt={blake2b:ge,blake2s:ye};return bn(Pt);})();
return MultiformatsBlake2}));