UNPKG

multicodec

Version:

JavaScript implementation of the multicodec specification

18 lines (14 loc) 27 kB
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Multicodec = factory()}(typeof self !== 'undefined' ? self : this, function () { var Multicodec=(()=>{var me=Object.defineProperty;var Q=t=>me(t,"__esModule",{value:!0});var m=(t,e)=>()=>(e||(e={exports:{}},t(e.exports,e)),e.exports),h=(t,e)=>{for(var r in e)me(t,r,{get:e[r],enumerable:!0})};var ye=m((sn,we)=>{we.exports=H;var ge=128,ut=127,mt=~ut,wt=Math.pow(2,31);function H(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw H.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=wt;)e[r++]=t&255|ge,t/=128;for(;t&mt;)e[r++]=t&255|ge,t>>>=7;return e[r]=t|0,H.bytes=r-n+1,e}});var je=m((on,ve)=>{ve.exports=W;var gt=128,Ee=127;function W(t,e){var r=0,e=e||0,n=0,s=e,i,a=t.length;do{if(s>=a||n>49)throw W.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=n<28?(i&Ee)<<n:(i&Ee)*Math.pow(2,n),n+=7}while(i>=gt);return W.bytes=s-e,r}});var Se=m((an,Ce)=>{var yt=Math.pow(2,7),vt=Math.pow(2,14),Et=Math.pow(2,21),jt=Math.pow(2,28),Ct=Math.pow(2,35),St=Math.pow(2,42),At=Math.pow(2,49),Nt=Math.pow(2,56),Ut=Math.pow(2,63);Ce.exports=function(t){return t<yt?1:t<vt?2:t<Et?3:t<jt?4:t<Ct?5:t<St?6:t<At?7:t<Nt?8:t<Ut?9:10}});var Z=m((bn,Ae)=>{Ae.exports={encode:ye(),decode:je(),encodingLength:Se()}});var Ne=m(zt=>{Q(zt);h(zt,{concat:()=>Dt});function Dt(t,e){e||(e=t.reduce((s,i)=>s+i.length,0));let r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}});var We=m(Or=>{Q(Or);h(Or,{toString:()=>Fr});function Fr(t,e="utf8"){let r=X[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}});var Ze=m(Vr=>{Q(Vr);h(Vr,{fromString:()=>Br});function Br(t,e="utf8"){let r=X[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}});var he=m((Wn,Ye)=>{"use strict";var et=Z(),{toString:qr}=We(),{fromString:Lr}=Ze();Ye.exports={numberToUint8Array:Rr,uint8ArrayToNumber:tt,varintUint8ArrayEncode:$r,varintEncode:Pr};function tt(t){return parseInt(qr(t,"base16"),16)}function Rr(t){let e=t.toString(16);return e.length%2==1&&(e="0"+e),Lr(e,"base16")}function $r(t){return Uint8Array.from(et.encode(tt(t)))}function Pr(t){return Uint8Array.from(et.encode(t))}});var nt=m((Zn,rt)=>{"use strict";var Jr=Object.freeze({identity:0,cidv1:1,cidv2:2,cidv3:3,ip4:4,tcp:6,sha1:17,"sha2-256":18,"sha2-512":19,"sha3-512":20,"sha3-384":21,"sha3-256":22,"sha3-224":23,"shake-128":24,"shake-256":25,"keccak-224":26,"keccak-256":27,"keccak-384":28,"keccak-512":29,blake3:30,dccp:33,"murmur3-128":34,"murmur3-32":35,ip6:41,ip6zone:42,path:47,multicodec:48,multihash:49,multiaddr:50,multibase:51,dns:53,dns4:54,dns6:55,dnsaddr:56,protobuf:80,cbor:81,raw:85,"dbl-sha2-256":86,rlp:96,bencode:99,"dag-pb":112,"dag-cbor":113,"libp2p-key":114,"git-raw":120,"torrent-info":123,"torrent-file":124,"leofcoin-block":129,"leofcoin-tx":130,"leofcoin-pr":131,sctp:132,"dag-jose":133,"dag-cose":134,"eth-block":144,"eth-block-list":145,"eth-tx-trie":146,"eth-tx":147,"eth-tx-receipt-trie":148,"eth-tx-receipt":149,"eth-state-trie":150,"eth-account-snapshot":151,"eth-storage-trie":152,"eth-receipt-log-trie":153,"eth-reciept-log":154,"bitcoin-block":176,"bitcoin-tx":177,"bitcoin-witness-commitment":178,"zcash-block":192,"zcash-tx":193,"caip-50":202,streamid:206,"stellar-block":208,"stellar-tx":209,md4:212,md5:213,bmt:214,"decred-block":224,"decred-tx":225,"ipld-ns":226,"ipfs-ns":227,"swarm-ns":228,"ipns-ns":229,zeronet:230,"secp256k1-pub":231,"bls12_381-g1-pub":234,"bls12_381-g2-pub":235,"x25519-pub":236,"ed25519-pub":237,"bls12_381-g1g2-pub":238,"dash-block":240,"dash-tx":241,"swarm-manifest":250,"swarm-feed":251,udp:273,"p2p-webrtc-star":275,"p2p-webrtc-direct":276,"p2p-stardust":277,"p2p-circuit":290,"dag-json":297,udt:301,utp:302,unix:400,thread:406,p2p:421,ipfs:421,https:443,onion:444,onion3:445,garlic64:446,garlic32:447,tls:448,noise:454,quic:460,ws:477,wss:478,"p2p-websocket-star":479,http:480,"swhid-1-snp":496,json:512,messagepack:513,"libp2p-peer-record":769,"libp2p-relay-rsvp":770,"car-index-sorted":1024,"sha2-256-trunc254-padded":4114,"ripemd-128":4178,"ripemd-160":4179,"ripemd-256":4180,"ripemd-320":4181,x11:4352,"p256-pub":4608,"p384-pub":4609,"p521-pub":4610,"ed448-pub":4611,"x448-pub":4612,"ed25519-priv":4864,"secp256k1-priv":4865,"x25519-priv":4866,kangarootwelve:7425,"sm3-256":21325,"blake2b-8":45569,"blake2b-16":45570,"blake2b-24":45571,"blake2b-32":45572,"blake2b-40":45573,"blake2b-48":45574,"blake2b-56":45575,"blake2b-64":45576,"blake2b-72":45577,"blake2b-80":45578,"blake2b-88":45579,"blake2b-96":45580,"blake2b-104":45581,"blake2b-112":45582,"blake2b-120":45583,"blake2b-128":45584,"blake2b-136":45585,"blake2b-144":45586,"blake2b-152":45587,"blake2b-160":45588,"blake2b-168":45589,"blake2b-176":45590,"blake2b-184":45591,"blake2b-192":45592,"blake2b-200":45593,"blake2b-208":45594,"blake2b-216":45595,"blake2b-224":45596,"blake2b-232":45597,"blake2b-240":45598,"blake2b-248":45599,"blake2b-256":45600,"blake2b-264":45601,"blake2b-272":45602,"blake2b-280":45603,"blake2b-288":45604,"blake2b-296":45605,"blake2b-304":45606,"blake2b-312":45607,"blake2b-320":45608,"blake2b-328":45609,"blake2b-336":45610,"blake2b-344":45611,"blake2b-352":45612,"blake2b-360":45613,"blake2b-368":45614,"blake2b-376":45615,"blake2b-384":45616,"blake2b-392":45617,"blake2b-400":45618,"blake2b-408":45619,"blake2b-416":45620,"blake2b-424":45621,"blake2b-432":45622,"blake2b-440":45623,"blake2b-448":45624,"blake2b-456":45625,"blake2b-464":45626,"blake2b-472":45627,"blake2b-480":45628,"blake2b-488":45629,"blake2b-496":45630,"blake2b-504":45631,"blake2b-512":45632,"blake2s-8":45633,"blake2s-16":45634,"blake2s-24":45635,"blake2s-32":45636,"blake2s-40":45637,"blake2s-48":45638,"blake2s-56":45639,"blake2s-64":45640,"blake2s-72":45641,"blake2s-80":45642,"blake2s-88":45643,"blake2s-96":45644,"blake2s-104":45645,"blake2s-112":45646,"blake2s-120":45647,"blake2s-128":45648,"blake2s-136":45649,"blake2s-144":45650,"blake2s-152":45651,"blake2s-160":45652,"blake2s-168":45653,"blake2s-176":45654,"blake2s-184":45655,"blake2s-192":45656,"blake2s-200":45657,"blake2s-208":45658,"blake2s-216":45659,"blake2s-224":45660,"blake2s-232":45661,"blake2s-240":45662,"blake2s-248":45663,"blake2s-256":45664,"skein256-8":45825,"skein256-16":45826,"skein256-24":45827,"skein256-32":45828,"skein256-40":45829,"skein256-48":45830,"skein256-56":45831,"skein256-64":45832,"skein256-72":45833,"skein256-80":45834,"skein256-88":45835,"skein256-96":45836,"skein256-104":45837,"skein256-112":45838,"skein256-120":45839,"skein256-128":45840,"skein256-136":45841,"skein256-144":45842,"skein256-152":45843,"skein256-160":45844,"skein256-168":45845,"skein256-176":45846,"skein256-184":45847,"skein256-192":45848,"skein256-200":45849,"skein256-208":45850,"skein256-216":45851,"skein256-224":45852,"skein256-232":45853,"skein256-240":45854,"skein256-248":45855,"skein256-256":45856,"skein512-8":45857,"skein512-16":45858,"skein512-24":45859,"skein512-32":45860,"skein512-40":45861,"skein512-48":45862,"skein512-56":45863,"skein512-64":45864,"skein512-72":45865,"skein512-80":45866,"skein512-88":45867,"skein512-96":45868,"skein512-104":45869,"skein512-112":45870,"skein512-120":45871,"skein512-128":45872,"skein512-136":45873,"skein512-144":45874,"skein512-152":45875,"skein512-160":45876,"skein512-168":45877,"skein512-176":45878,"skein512-184":45879,"skein512-192":45880,"skein512-200":45881,"skein512-208":45882,"skein512-216":45883,"skein512-224":45884,"skein512-232":45885,"skein512-240":45886,"skein512-248":45887,"skein512-256":45888,"skein512-264":45889,"skein512-272":45890,"skein512-280":45891,"skein512-288":45892,"skein512-296":45893,"skein512-304":45894,"skein512-312":45895,"skein512-320":45896,"skein512-328":45897,"skein512-336":45898,"skein512-344":45899,"skein512-352":45900,"skein512-360":45901,"skein512-368":45902,"skein512-376":45903,"skein512-384":45904,"skein512-392":45905,"skein512-400":45906,"skein512-408":45907,"skein512-416":45908,"skein512-424":45909,"skein512-432":45910,"skein512-440":45911,"skein512-448":45912,"skein512-456":45913,"skein512-464":45914,"skein512-472":45915,"skein512-480":45916,"skein512-488":45917,"skein512-496":45918,"skein512-504":45919,"skein512-512":45920,"skein1024-8":45921,"skein1024-16":45922,"skein1024-24":45923,"skein1024-32":45924,"skein1024-40":45925,"skein1024-48":45926,"skein1024-56":45927,"skein1024-64":45928,"skein1024-72":45929,"skein1024-80":45930,"skein1024-88":45931,"skein1024-96":45932,"skein1024-104":45933,"skein1024-112":45934,"skein1024-120":45935,"skein1024-128":45936,"skein1024-136":45937,"skein1024-144":45938,"skein1024-152":45939,"skein1024-160":45940,"skein1024-168":45941,"skein1024-176":45942,"skein1024-184":45943,"skein1024-192":45944,"skein1024-200":45945,"skein1024-208":45946,"skein1024-216":45947,"skein1024-224":45948,"skein1024-232":45949,"skein1024-240":45950,"skein1024-248":45951,"skein1024-256":45952,"skein1024-264":45953,"skein1024-272":45954,"skein1024-280":45955,"skein1024-288":45956,"skein1024-296":45957,"skein1024-304":45958,"skein1024-312":45959,"skein1024-320":45960,"skein1024-328":45961,"skein1024-336":45962,"skein1024-344":45963,"skein1024-352":45964,"skein1024-360":45965,"skein1024-368":45966,"skein1024-376":45967,"skein1024-384":45968,"skein1024-392":45969,"skein1024-400":45970,"skein1024-408":45971,"skein1024-416":45972,"skein1024-424":45973,"skein1024-432":45974,"skein1024-440":45975,"skein1024-448":45976,"skein1024-456":45977,"skein1024-464":45978,"skein1024-472":45979,"skein1024-480":45980,"skein1024-488":45981,"skein1024-496":45982,"skein1024-504":45983,"skein1024-512":45984,"skein1024-520":45985,"skein1024-528":45986,"skein1024-536":45987,"skein1024-544":45988,"skein1024-552":45989,"skein1024-560":45990,"skein1024-568":45991,"skein1024-576":45992,"skein1024-584":45993,"skein1024-592":45994,"skein1024-600":45995,"skein1024-608":45996,"skein1024-616":45997,"skein1024-624":45998,"skein1024-632":45999,"skein1024-640":46e3,"skein1024-648":46001,"skein1024-656":46002,"skein1024-664":46003,"skein1024-672":46004,"skein1024-680":46005,"skein1024-688":46006,"skein1024-696":46007,"skein1024-704":46008,"skein1024-712":46009,"skein1024-720":46010,"skein1024-728":46011,"skein1024-736":46012,"skein1024-744":46013,"skein1024-752":46014,"skein1024-760":46015,"skein1024-768":46016,"skein1024-776":46017,"skein1024-784":46018,"skein1024-792":46019,"skein1024-800":46020,"skein1024-808":46021,"skein1024-816":46022,"skein1024-824":46023,"skein1024-832":46024,"skein1024-840":46025,"skein1024-848":46026,"skein1024-856":46027,"skein1024-864":46028,"skein1024-872":46029,"skein1024-880":46030,"skein1024-888":46031,"skein1024-896":46032,"skein1024-904":46033,"skein1024-912":46034,"skein1024-920":46035,"skein1024-928":46036,"skein1024-936":46037,"skein1024-944":46038,"skein1024-952":46039,"skein1024-960":46040,"skein1024-968":46041,"skein1024-976":46042,"skein1024-984":46043,"skein1024-992":46044,"skein1024-1000":46045,"skein1024-1008":46046,"skein1024-1016":46047,"skein1024-1024":46048,"poseidon-bls12_381-a2-fc1":46081,"poseidon-bls12_381-a2-fc1-sc":46082,"zeroxcert-imprint-256":52753,"fil-commitment-unsealed":61697,"fil-commitment-sealed":61698,"holochain-adr-v0":8417572,"holochain-adr-v1":8483108,"holochain-key-v0":9728292,"holochain-key-v1":9793828,"holochain-sig-v0":10645796,"holochain-sig-v1":10711332,"skynet-ns":11639056,"arweave-ns":11704592});rt.exports={baseTable:Jr}});var it=m((Yn,st)=>{"use strict";var{baseTable:fe}=nt(),Xr=he().varintEncode,ke={},le={},_={};for(let t in fe){let e=t,r=fe[e];ke[e]=Xr(r);let n=e.toUpperCase().replace(/-/g,"_");le[n]=r,_[r]||(_[r]=e)}Object.freeze(ke);Object.freeze(le);Object.freeze(_);var _r=Object.freeze(fe);st.exports={nameToVarint:ke,constantToCode:le,nameToCode:_r,codeToName:_}});var kt=m((es,ot)=>{"use strict";var G=Z(),{concat:Gr}=Ne(),at=he(),{nameToVarint:K,constantToCode:Kr,nameToCode:bt,codeToName:ue}=it();function Qr(t,e){let r;if(t instanceof Uint8Array)r=at.varintUint8ArrayEncode(t);else if(K[t])r=K[t];else throw new Error("multicodec not recognized");return Gr([r,e],r.length+e.length)}function Hr(t){return G.decode(t),t.slice(G.decode.bytes)}function ct(t){let e=G.decode(t),r=ue[e];if(r===void 0)throw new Error(`Code "${e}" not found`);return r}function xt(t){return ue[t]}function dt(t){let e=bt[t];if(e===void 0)throw new Error(`Codec "${t}" not found`);return e}function pt(t){return G.decode(t)}function ht(t){let e=K[t];if(e===void 0)throw new Error(`Codec "${t}" not found`);return e}function ft(t){return at.varintEncode(t)}function Wr(t){return ct(t)}function Zr(t){return xt(t)}function Yr(t){return dt(t)}function en(t){return pt(t)}function tn(t){return ht(t)}function rn(t){return Array.from(ft(t))}ot.exports={addPrefix:Qr,rmPrefix:Hr,getNameFromData:ct,getNameFromCode:xt,getCodeFromName:dt,getCodeFromData:pt,getVarintFromName:ht,getVarintFromCode:ft,getCodec:Wr,getName:Zr,getNumber:Yr,getCode:en,getCodeVarint:tn,getVarint:rn,...Kr,nameToVarint:K,nameToCode:bt,codeToName:ue}});var Y={};h(Y,{identity:()=>Vt});function Mt(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var s=0;s<t.length;s++){var i=t.charAt(s),a=i.charCodeAt(0);if(r[a]!==255)throw new TypeError(i+" is ambiguous");r[a]=s}var c=t.length,d=t.charAt(0),N=Math.log(c)/Math.log(256),f=Math.log(256)/Math.log(c);function U(o){if(o instanceof Uint8Array||(ArrayBuffer.isView(o)?o=new Uint8Array(o.buffer,o.byteOffset,o.byteLength):Array.isArray(o)&&(o=Uint8Array.from(o))),!(o instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(o.length===0)return"";for(var p=0,A=0,l=0,w=o.length;l!==w&&o[l]===0;)l++,p++;for(var g=(w-l)*f+1>>>0,k=new Uint8Array(g);l!==w;){for(var y=o[l],C=0,u=g-1;(y!==0||C<A)&&u!==-1;u--,C++)y+=256*k[u]>>>0,k[u]=y%c>>>0,y=y/c>>>0;if(y!==0)throw new Error("Non-zero carry");A=C,l++}for(var E=g-A;E!==g&&k[E]===0;)E++;for(var q=d.repeat(p);E<g;++E)q+=t.charAt(k[E]);return q}function B(o){if(typeof o!="string")throw new TypeError("Expected String");if(o.length===0)return new Uint8Array;var p=0;if(o[p]!==" "){for(var A=0,l=0;o[p]===d;)A++,p++;for(var w=(o.length-p)*N+1>>>0,g=new Uint8Array(w);o[p];){var k=r[o.charCodeAt(p)];if(k===255)return;for(var y=0,C=w-1;(k!==0||y<l)&&C!==-1;C--,y++)k+=c*g[C]>>>0,g[C]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");l=y,p++}if(o[p]!==" "){for(var u=w-l;u!==w&&g[u]===0;)u++;for(var E=new Uint8Array(A+(w-u)),q=A;u!==w;)E[q++]=g[u++];return E}}}function lt(o){var p=B(o);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:U,decodeUnsafe:B,decode:lt}}var Tt=Mt,It=Tt,Ue=It;var dn=new Uint8Array(0);var De=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},j=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Me=t=>new TextEncoder().encode(t),Te=t=>new TextDecoder().decode(t);var Ie=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Oe=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseDecode=n}decode(e){if(typeof e=="string")switch(e[0]){case this.prefix:return this.baseDecode(e.slice(1));default:throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)}else throw Error("Can only multibase decode strings")}or(e){let r={[this.prefix]:this,...e.decoders||{[e.prefix]:e}};return new L(r)}},L=class{constructor(e){this.decoders=e}or(e){let r=e.decoders||{[e.prefix]:e};return new L({...this.decoders,...r})}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Fe=class{constructor(e,r,n,s){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=s,this.encoder=new Ie(e,r,n),this.decoder=new Oe(e,r,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},R=({name:t,prefix:e,encode:r,decode:n})=>new Fe(t,e,r,n),S=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:s}=Ue(r,e);return R({prefix:t,name:e,encode:n,decode:i=>j(s(i))})},Ot=(t,e,r,n)=>{let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let i=t.length;for(;t[i-1]==="=";)--i;let a=new Uint8Array(i*r/8|0),c=0,d=0,N=0;for(let f=0;f<i;++f){let U=s[t[f]];if(U===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<r|U,c+=r,c>=8&&(c-=8,a[N++]=255&d>>c)}if(c>=r||255&d<<8-c)throw new SyntaxError("Unexpected end of data");return a},Ft=(t,e,r)=>{let n=e[e.length-1]==="=",s=(1<<r)-1,i="",a=0,c=0;for(let d=0;d<t.length;++d)for(c=c<<8|t[d],a+=8;a>r;)a-=r,i+=e[s&c>>a];if(a&&(i+=e[s&c<<r-a]),n)for(;i.length*r&7;)i+="=";return i},b=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>R({prefix:e,name:t,encode(s){return Ft(s,n,r)},decode(s){return Ot(s,n,r,t)}});var Vt=R({prefix:"\0",name:"identity",encode:t=>Te(t),decode:t=>Me(t)});var ee={};h(ee,{base2:()=>Bt});var Bt=b({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var te={};h(te,{base8:()=>qt});var qt=b({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var re={};h(re,{base10:()=>Lt});var Lt=S({prefix:"9",name:"base10",alphabet:"0123456789"});var ne={};h(ne,{base16:()=>Rt,base16upper:()=>$t});var Rt=b({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),$t=b({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var se={};h(se,{base32:()=>z,base32hex:()=>_t,base32hexpad:()=>Kt,base32hexpadupper:()=>Qt,base32hexupper:()=>Gt,base32pad:()=>Jt,base32padupper:()=>Xt,base32upper:()=>Pt,base32z:()=>Ht});var z=b({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Pt=b({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Jt=b({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Xt=b({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),_t=b({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Gt=b({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Kt=b({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Qt=b({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ht=b({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ie={};h(ie,{base36:()=>Wt,base36upper:()=>Zt});var Wt=S({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Zt=S({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var oe={};h(oe,{base58btc:()=>v,base58flickr:()=>Yt});var v=S({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Yt=S({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ae={};h(ae,{base64:()=>er,base64pad:()=>tr,base64url:()=>rr,base64urlpad:()=>nr});var er=b({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),tr=b({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),rr=b({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),nr=b({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ce={};h(ce,{sha256:()=>vr,sha512:()=>Er});var sr=Ve,Be=128,ir=127,or=~ir,ar=Math.pow(2,31);function Ve(t,e,r){e=e||[],r=r||0;for(var n=r;t>=ar;)e[r++]=t&255|Be,t/=128;for(;t&or;)e[r++]=t&255|Be,t>>>=7;return e[r]=t|0,Ve.bytes=r-n+1,e}var br=be,cr=128,qe=127;function be(t,e){var r=0,e=e||0,n=0,s=e,i,a=t.length;do{if(s>=a)throw be.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=n<28?(i&qe)<<n:(i&qe)*Math.pow(2,n),n+=7}while(i>=cr);return be.bytes=s-e,r}var xr=Math.pow(2,7),dr=Math.pow(2,14),pr=Math.pow(2,21),hr=Math.pow(2,28),fr=Math.pow(2,35),kr=Math.pow(2,42),lr=Math.pow(2,49),ur=Math.pow(2,56),mr=Math.pow(2,63),wr=function(t){return t<xr?1:t<dr?2:t<pr?3:t<hr?4:t<fr?5:t<kr?6:t<lr?7:t<ur?8:t<mr?9:10},gr={encode:sr,decode:br,encodingLength:wr},yr=gr,T=yr;var I=t=>[T.decode(t),T.decode.bytes],D=(t,e,r=0)=>(T.encode(t,e,r),e),M=t=>T.encodingLength(t);var $=(t,e)=>{let r=e.byteLength,n=M(t),s=n+M(r),i=new Uint8Array(s+r);return D(t,i,0),D(r,i,n),i.set(e,s),new O(t,r,e,i)},$e=t=>{let e=j(t),[r,n]=I(e),[s,i]=I(e.subarray(n)),a=e.subarray(n+i);if(a.byteLength!==s)throw new Error("Incorrect length");return new O(r,s,a,e)},Pe=(t,e)=>t===e?!0:t.code===e.code&&t.size===e.size&&De(t.bytes,e.bytes),O=class{constructor(e,r,n,s){this.code=e,this.size=r,this.digest=n,this.bytes=s}};var F=({name:t,code:e,encode:r})=>new Xe(t,e,r),Xe=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}async digest(e){if(e instanceof Uint8Array){let r=await this.encode(e);return $(this.code,r)}else throw Error("Unknown type, must be binary type")}};var _e=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),vr=F({name:"sha2-256",code:18,encode:_e("SHA-256")}),Er=F({name:"sha2-512",code:19,encode:_e("SHA-512")});var xe={};h(xe,{identity:()=>jr});var jr=F({name:"identity",code:0,encode:t=>j(t)});var x=class{constructor(e,r,n,s){this.code=r,this.version=e,this.multihash=n,this.bytes=s,this.byteOffset=s.byteOffset,this.byteLength=s.byteLength,this.asCID=this,this._baseCache=new Map,Object.defineProperties(this,{byteOffset:J,byteLength:J,code:P,version:P,multihash:P,bytes:P,_baseCache:J,asCID:J})}toV0(){switch(this.version){case 0:return this;default:{let{code:e,multihash:r}=this;if(e!==V)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==zr)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return x.createV0(r)}}}toV1(){switch(this.version){case 0:{let{code:e,digest:r}=this.multihash,n=$(e,r);return x.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}equals(e){return e&&this.code===e.code&&this.version===e.version&&Pe(this.multihash,e.multihash)}toString(e){let{bytes:r,version:n,_baseCache:s}=this;switch(n){case 0:return Nr(r,s,e||v.encoder);default:return Ur(r,s,e||z.encoder)}}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return"CID("+this.toString()+")"}static isCID(e){return Dr(/^0\.0/,Mr),!!(e&&(e[Ke]||e.asCID===e))}get toBaseEncodedString(){throw new Error("Deprecated, use .toString()")}get codec(){throw new Error('"codec" property is deprecated, use integer "code" property instead')}get buffer(){throw new Error("Deprecated .buffer property, use .bytes to get Uint8Array instead")}get multibaseName(){throw new Error('"multibaseName" property is deprecated')}get prefix(){throw new Error('"prefix" property is deprecated')}static asCID(e){if(e instanceof x)return e;if(e!=null&&e.asCID===e){let{version:r,code:n,multihash:s,bytes:i}=e;return new x(r,n,s,i||Ge(r,n,s.bytes))}else if(e!=null&&e[Ke]===!0){let{version:r,multihash:n,code:s}=e,i=$e(n);return x.create(r,s,i)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");switch(e){case 0:{if(r!==V)throw new Error(`Version 0 CID must use dag-pb (code: ${V}) block encoding`);return new x(e,r,n,n.bytes)}case 1:{let s=Ge(e,r,n.bytes);return new x(e,r,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return x.create(0,V,e)}static createV1(e,r){return x.create(1,e,r)}static decode(e){let[r,n]=x.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=x.inspectBytes(e),n=r.size-r.multihashSize,s=j(e.subarray(n,n+r.multihashSize));if(s.byteLength!==r.multihashSize)throw new Error("Incorrect length");let i=s.subarray(r.multihashSize-r.digestSize),a=new O(r.multihashCode,r.digestSize,i,s);return[r.version===0?x.createV0(a):x.createV1(r.codec,a),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[U,B]=I(e.subarray(r));return r+=B,U},s=n(),i=V;if(s===18?(s=0,r=0):s===1&&(i=n()),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let a=r,c=n(),d=n(),N=r+d,f=N-a;return{version:s,codec:i,multihashCode:c,digestSize:d,multihashSize:f,size:N}}static parse(e,r){let[n,s]=Ar(e,r),i=x.decode(s);return i._baseCache.set(n,e),i}},Ar=(t,e)=>{switch(t[0]){case"Q":{let r=e||v;return[v.prefix,r.decode(`${v.prefix}${t}`)]}case v.prefix:{let r=e||v;return[v.prefix,r.decode(t)]}case z.prefix:{let r=e||z;return[z.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},Nr=(t,e,r)=>{let{prefix:n}=r;if(n!==v.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let s=e.get(n);if(s==null){let i=r.encode(t).slice(1);return e.set(n,i),i}else return s},Ur=(t,e,r)=>{let{prefix:n}=r,s=e.get(n);if(s==null){let i=r.encode(t);return e.set(n,i),i}else return s},V=112,zr=18,Ge=(t,e,r)=>{let n=M(t),s=n+M(e),i=new Uint8Array(s+r.byteLength);return D(t,i,0),D(e,i,n),i.set(r,s),i},Ke=Symbol.for("@ipld/js-cid/CID"),P={writable:!1,configurable:!1,enumerable:!0},J={writable:!1,enumerable:!1,configurable:!1},Tr="0.0.0-dev",Dr=(t,e)=>{if(t.test(Tr))console.warn(e);else throw new Error(e)},Mr=`CID.isCID(v) is deprecated and will be removed in the next major release. Following code pattern: if (CID.isCID(value)) { doSomethingWithCID(value) } Is replaced with: const cid = CID.asCID(value) if (cid) { // Make sure to use cid instead of value doSomethingWithCID(cid) } `;var de={...Y,...ee,...te,...re,...ne,...se,...ie,...oe,...ae},Jn={...ce,...xe};function Qe(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var He=Qe("utf8","u",t=>{let e=new TextDecoder("utf8");return"u"+e.decode(t)},t=>new TextEncoder().encode(t.substring(1))),pe=Qe("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Ir={utf8:He,"utf-8":He,hex:de.base16,latin1:pe,ascii:pe,binary:pe,...de},X=Ir;return kt();})(); return Multicodec}));