UNPKG

blockstore-datastore-adapter

Version:
4 lines (3 loc) 27.2 kB
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.BlockstoreDatastoreAdapter = factory()}(typeof self !== 'undefined' ? self : this, function () { "use strict";var BlockstoreDatastoreAdapter=(()=>{var ut=Object.create;var G=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var dt=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty;var mt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),b=(r,e)=>{for(var t in e)G(r,t,{get:e[t],enumerable:!0})},Ne=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ht(e))!pt.call(r,o)&&o!==t&&G(r,o,{get:()=>e[o],enumerable:!(n=lt(e,o))||n.enumerable});return r};var bt=(r,e,t)=>(t=r!=null?ut(dt(r)):{},Ne(e||!r||!r.__esModule?G(t,"default",{value:r,enumerable:!0}):t,r)),yt=r=>Ne(G({},"__esModule",{value:!0}),r);var at=mt((Dn,it)=>{"use strict";function st(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function kr(r,e,t){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return st(r,t)}catch{t.message=r.message,t.stack=r.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(r)),st(new o,t)}}it.exports=kr});var Nr={};b(Nr,{BlockstoreDatastoreAdapter:()=>Le});async function O(r){for await(let e of r);}var K=class{constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},j=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new K(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new K(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};function oe(r={}){return wt(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function wt(r,e){e=e??{};let t=e.onEnd,n=new j,o,s,i,f=async()=>n.isEmpty()?i?{done:!0}:await new Promise((a,U)=>{s=m=>{s=null,n.push(m);try{a(r(n))}catch(w){U(w)}return o}}):r(n),h=a=>s!=null?s(a):(n.push(a),o),L=a=>(n=new j,s!=null?s({error:a}):(n.push({error:a}),o)),p=a=>{if(i)return o;if(e?.objectMode!==!0&&a?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:a})},S=a=>i?o:(i=!0,a!=null?L(a):h({done:!0})),P=()=>(n=new j,S(),{done:!0}),ne=a=>(S(a),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:f,return:P,throw:ne,push:p,end:S,get readableLength(){return n.size}},t==null)return o;let c=o;return o={[Symbol.asyncIterator](){return this},next(){return c.next()},throw(a){return c.throw(a),t!=null&&(t(a),t=void 0),{done:!0}},return(){return c.return(),t!=null&&(t(),t=void 0),{done:!0}},push:p,end(a){return c.end(a),t!=null&&(t(a),t=void 0),o},get readableLength(){return c.readableLength}},o}var ze=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((e,t)=>(t&=63,t<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");var fe={};b(fe,{identity:()=>Et});function gt(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var f=r.length,h=r.charAt(0),L=Math.log(f)/Math.log(256),p=Math.log(256)/Math.log(f);function S(c){if(c instanceof Uint8Array||(ArrayBuffer.isView(c)?c=new Uint8Array(c.buffer,c.byteOffset,c.byteLength):Array.isArray(c)&&(c=Uint8Array.from(c))),!(c instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(c.length===0)return"";for(var a=0,U=0,m=0,w=c.length;m!==w&&c[m]===0;)m++,a++;for(var A=(w-m)*p+1>>>0,g=new Uint8Array(A);m!==w;){for(var E=c[m],M=0,v=A-1;(E!==0||M<U)&&v!==-1;v--,M++)E+=256*g[v]>>>0,g[v]=E%f>>>0,E=E/f>>>0;if(E!==0)throw new Error("Non-zero carry");U=M,m++}for(var C=A-U;C!==A&&g[C]===0;)C++;for(var X=h.repeat(a);C<A;++C)X+=r.charAt(g[C]);return X}function P(c){if(typeof c!="string")throw new TypeError("Expected String");if(c.length===0)return new Uint8Array;var a=0;if(c[a]!==" "){for(var U=0,m=0;c[a]===h;)U++,a++;for(var w=(c.length-a)*L+1>>>0,A=new Uint8Array(w);c[a];){var g=t[c.charCodeAt(a)];if(g===255)return;for(var E=0,M=w-1;(g!==0||E<m)&&M!==-1;M--,E++)g+=f*A[M]>>>0,A[M]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");m=E,a++}if(c[a]!==" "){for(var v=w-m;v!==w&&A[v]===0;)v++;for(var C=new Uint8Array(U+(w-v)),X=U;v!==w;)C[X++]=A[v++];return C}}}function ne(c){var a=P(c);if(a)return a;throw new Error(`Non-${e} character`)}return{encode:S,decodeUnsafe:P,decode:ne}}var xt=gt,vt=xt,Be=vt;var Vr=new Uint8Array(0);var Oe=(r,e)=>{if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0},T=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")};var De=r=>new TextEncoder().encode(r),Pe=r=>new TextDecoder().decode(r);var se=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ie=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Ie(this,e)}},ae=class{constructor(e){this.decoders=e}or(e){return Ie(this,e)}decode(e){let t=e[0],n=this.decoders[t];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`)}},Ie=(r,e)=>new ae({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),ce=class{constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new se(e,t,n),this.decoder=new ie(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},I=({name:r,prefix:e,encode:t,decode:n})=>new ce(r,e,t,n),N=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:o}=Be(t,e);return I({prefix:r,name:e,encode:n,decode:s=>T(o(s))})},St=(r,e,t,n)=>{let o={};for(let p=0;p<e.length;++p)o[e[p]]=p;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),f=0,h=0,L=0;for(let p=0;p<s;++p){let S=o[r[p]];if(S===void 0)throw new SyntaxError(`Non-${n} character`);h=h<<t|S,f+=t,f>=8&&(f-=8,i[L++]=255&h>>f)}if(f>=t||255&h<<8-f)throw new SyntaxError("Unexpected end of data");return i},At=(r,e,t)=>{let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,f=0;for(let h=0;h<r.length;++h)for(f=f<<8|r[h],i+=8;i>t;)i-=t,s+=e[o&f>>i];if(i&&(s+=e[o&f<<t-i]),n)for(;s.length*t&7;)s+="=";return s},l=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>I({prefix:e,name:r,encode(o){return At(o,n,t)},decode(o){return St(o,n,t,r)}});var Et=I({prefix:"\0",name:"identity",encode:r=>Pe(r),decode:r=>De(r)});var ue={};b(ue,{base2:()=>Ut});var Ut=l({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var le={};b(le,{base8:()=>Ct});var Ct=l({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var he={};b(he,{base10:()=>Tt});var Tt=N({prefix:"9",name:"base10",alphabet:"0123456789"});var de={};b(de,{base16:()=>kt,base16upper:()=>Lt});var kt=l({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Lt=l({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var me={};b(me,{base32:()=>x,base32hex:()=>zt,base32hexpad:()=>Ot,base32hexpadupper:()=>Dt,base32hexupper:()=>Bt,base32pad:()=>pe,base32padupper:()=>Nt,base32upper:()=>Mt,base32z:()=>Pt});var x=l({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Mt=l({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),pe=l({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Nt=l({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),zt=l({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Bt=l({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ot=l({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Dt=l({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Pt=l({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var be={};b(be,{base36:()=>jt,base36upper:()=>It});var jt=N({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),It=N({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ye={};b(ye,{base58btc:()=>y,base58flickr:()=>Vt});var y=N({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Vt=N({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var we={};b(we,{base64:()=>$t,base64pad:()=>Ft,base64url:()=>Rt,base64urlpad:()=>_t});var $t=l({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ft=l({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Rt=l({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),_t=l({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ge={};b(ge,{base256emoji:()=>Gt});var Ve=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Jt=Ve.reduce((r,e,t)=>(r[t]=e,r),[]),Qt=Ve.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Wt(r){return r.reduce((e,t)=>(e+=Jt[t],e),"")}function Xt(r){let e=[];for(let t of r){let n=Qt[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Gt=I({prefix:"\u{1F680}",name:"base256emoji",encode:Wt,decode:Xt});var Ae={};b(Ae,{sha256:()=>dr,sha512:()=>pr});var Kt=Re,$e=128,Ht=127,Zt=~Ht,Yt=Math.pow(2,31);function Re(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Yt;)e[t++]=r&255|$e,r/=128;for(;r&Zt;)e[t++]=r&255|$e,r>>>=7;return e[t]=r|0,Re.bytes=t-n+1,e}var qt=xe,er=128,Fe=127;function xe(r,n){var t=0,n=n||0,o=0,s=n,i,f=r.length;do{if(s>=f)throw xe.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Fe)<<o:(i&Fe)*Math.pow(2,o),o+=7}while(i>=er);return xe.bytes=s-n,t}var tr=Math.pow(2,7),rr=Math.pow(2,14),nr=Math.pow(2,21),or=Math.pow(2,28),sr=Math.pow(2,35),ir=Math.pow(2,42),ar=Math.pow(2,49),cr=Math.pow(2,56),fr=Math.pow(2,63),ur=function(r){return r<tr?1:r<rr?2:r<nr?3:r<or?4:r<sr?5:r<ir?6:r<ar?7:r<cr?8:r<fr?9:10},lr={encode:Kt,decode:qt,encodingLength:ur},hr=lr,J=hr;var Q=(r,e=0)=>[J.decode(r,e),J.decode.bytes],V=(r,e,t=0)=>(J.encode(r,e,t),e),$=r=>J.encodingLength(r);var D=(r,e)=>{let t=e.byteLength,n=$(r),o=n+$(t),s=new Uint8Array(o+t);return V(r,s,0),V(t,s,n),s.set(e,o),new F(r,t,e,s)},Z=r=>{let e=T(r),[t,n]=Q(e),[o,s]=Q(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new F(t,o,i,e)},_e=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Oe(r.bytes,t.bytes)}},F=class{constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Se=({name:r,code:e,encode:t})=>new ve(r,e,t),ve=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?D(this.code,t):t.then(n=>D(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Qe=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),dr=Se({name:"sha2-256",code:18,encode:Qe("SHA-256")}),pr=Se({name:"sha2-512",code:19,encode:Qe("SHA-512")});var Ee={};b(Ee,{identity:()=>yr});var We=0,mr="identity",Xe=T,br=r=>D(We,Xe(r)),yr={code:We,name:mr,encode:Xe,digest:br};var Ge=85;var an=new TextEncoder,cn=new TextDecoder;var He=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return xr(t,Ue(r),e||y.encoder);default:return vr(t,Ue(r),e||x.encoder)}};var Ze=new WeakMap,Ue=r=>{let e=Ze.get(r);if(e==null){let t=new Map;return Ze.set(r,t),t}return e},u=class{constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}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:e,multihash:t}=this;if(e!==W)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Sr)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return u.createV0(t)}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:e,digest:t}=this.multihash,n=D(e,t);return u.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return u.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&_e(e.multihash,n.multihash)}toString(e){return He(this,e)}toJSON(){return{"/":He(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof u)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new u(n,o,s,i||Ye(n,o,s.bytes))}else if(t[Ar]===!0){let{version:n,multihash:o,code:s}=t,i=Z(o);return u.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==W)throw new Error(`Version 0 CID must use dag-pb (code: ${W}) block encoding`);return new u(e,t,n,n.bytes)}case 1:{let o=Ye(e,t,n.bytes);return new u(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return u.create(0,W,e)}static createV1(e,t){return u.create(1,e,t)}static decode(e){let[t,n]=u.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=u.inspectBytes(e),n=t.size-t.multihashSize,o=T(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new F(t.multihashCode,t.digestSize,s,o);return[t.version===0?u.createV0(i):u.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[S,P]=Q(e.subarray(t));return t+=P,S},o=n(),s=W;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,f=n(),h=n(),L=t+h,p=L-i;return{version:o,codec:s,multihashCode:f,digestSize:h,multihashSize:p,size:L}}static parse(e,t){let[n,o]=gr(e,t),s=u.decode(o);return Ue(s).set(n,e),s}},gr=(r,e)=>{switch(r[0]){case"Q":{let t=e||y;return[y.prefix,t.decode(`${y.prefix}${r}`)]}case y.prefix:{let t=e||y;return[y.prefix,t.decode(r)]}case x.prefix:{let t=e||x;return[x.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}},xr=(r,e,t)=>{let{prefix:n}=t;if(n!==y.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o},vr=(r,e,t)=>{let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o},W=112,Sr=18,Ye=(r,e,t)=>{let n=$(r),o=n+$(e),s=new Uint8Array(o+t.byteLength);return V(r,s,0),V(e,s,n),s.set(t,o),s},Ar=Symbol.for("@ipld/js-cid/CID");var Ce={...fe,...ue,...le,...he,...de,...me,...be,...ye,...we,...ge},wn={...Ae,...Ee};function Y(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function qe(r=0){return globalThis.Buffer?.allocUnsafe!=null?Y(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function tt(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var et=tt("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Te=tt("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=qe(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Er={utf8:et,"utf-8":et,hex:Ce.base16,latin1:Te,ascii:Te,binary:Te,...Ce},q=Er;function rt(r,e="utf8"){let t=q[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}function nt(r,e="utf8"){let t=q[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Y(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}var k="/",ot=new TextEncoder().encode(k),ee=ot[0],d=class{constructor(e,t){if(typeof e=="string")this._buf=nt(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ee)throw new Error("Invalid key")}toString(e="utf8"){return rt(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new d(e.join(k))}static random(){return new d(ze().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new d(e):typeof e.uint8Array=="function"?new d(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=ot),this._buf[0]!==ee){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ee,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ee;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return d.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(k).slice(1)}type(){return Ur(this.baseNamespace())}name(){return Cr(this.baseNamespace())}instance(e){return new d(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(k)||(e+=k),e+=this.type(),new d(e)}parent(){let e=this.list();return e.length===1?new d(k):new d(e.slice(0,-1).join(k))}child(e){return this.toString()===k?e:e.toString()===k?this:new d(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return d.withNamespaces([...this.namespaces(),...Tr(e.map(t=>t.namespaces()))])}};function Ur(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Cr(r){let e=r.split(":");return e[e.length-1]}function Tr(r){return[].concat(...r)}var ft=bt(at(),1);async function*z(r,e){for await(let t of r)await e(t)&&(yield t)}async function*te(r,e){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}async function ke(r){let e=[];for await(let t of r)e.push(t);return e}var ct=(r,e)=>async function*(){yield*(await ke(r)).sort(e)}(),re=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield{key:n,value:o}}async*getMany(e,t={}){for await(let n of e)yield this.get(n,t)}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await O(this.putMany(e,n)),e=[],await O(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null&&(n=z(n,o=>o.key.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>z(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ct(o,s),n)),e.offset!=null){let o=0;n=z(n,()=>o++>=(e.offset||0))}return e.limit!=null&&(n=te(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null&&(n=z(n,o=>o.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>z(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ct(o,s),n)),e.offset!=null){let o=0;n=z(n,()=>o++>=e.offset)}return e.limit!=null&&(n=te(n,e.limit)),n}};function _(r){let e=u.asCID(r);if(!e)throw(0,ft.default)(new Error("Not a valid cid"),"ERR_INVALID_CID");return new d("/"+x.encode(e.multihash.bytes).slice(1).toUpperCase(),!1)}function B(r){return u.createV1(Ge,Z(x.decode("b"+r.toString().slice(1).toLowerCase())))}function Me(r){let e=r.substring(0,1);if(e==="/")return Me(r.substring(1));let t;e.toLowerCase()==="b"?t=s=>x.decode(s.toLowerCase()).subarray(2):e.toLowerCase()==="c"?t=s=>pe.decode(s.toLowerCase()).subarray(2):e==="z"?t=s=>y.decode(s).subarray(2):e==="Q"?t=s=>y.decode("z"+s):t=s=>x.decode("b"+s.toLowerCase()).subarray(2);let n;for(let s=1;s<r.length;s++)try{n=t(r.substring(0,s))}catch(i){if(i.message!=="Unexpected end of data")throw i}let o="/C";return n&&(o=`/${x.encode(n).slice(1,-1).toUpperCase()||"C"}`),o}function Lr(r){return{...r,prefix:r.prefix?Me(r.prefix):void 0,filters:r.filters?r.filters.map(e=>t=>e({key:B(t.key),value:t.value})):void 0,orders:r.orders?r.orders.map(e=>(t,n)=>e({key:B(t.key),value:t.value},{key:B(n.key),value:n.value})):void 0}}function Mr(r){return{...r,prefix:r.prefix?Me(r.prefix):void 0,filters:r.filters?r.filters.map(e=>t=>e(B(t))):void 0,orders:r.orders?r.orders.map(e=>(t,n)=>e(B(t),B(n))):void 0}}var Le=class extends re{constructor(e){super(),this.child=e}open(){return this.child.open()}close(){return this.child.close()}async*query(e,t){for await(let{key:n,value:o}of this.child.query(Lr(e),t))yield{key:B(n),value:o}}async*queryKeys(e,t){for await(let n of this.child.queryKeys(Mr(e),t))yield B(n)}async get(e,t){return this.child.get(_(e),t)}async*getMany(e,t){for await(let n of e)yield this.get(n,t)}async put(e,t,n){await this.child.put(_(e),t,n)}async*putMany(e,t){let n=oe({objectMode:!0});(globalThis.process&&globalThis.process.nextTick?globalThis.process.nextTick:globalThis.setImmediate||globalThis.setTimeout)(async()=>{try{let s=this.child;await O(this.child.putMany(async function*(){for await(let i of e){let f=_(i.key);await s.has(f,t)||(yield{key:f,value:i.value}),n.push(i)}}())),n.end()}catch(s){n.end(s)}}),yield*n}has(e,t){return this.child.has(_(e),t)}delete(e,t){return this.child.delete(_(e),t)}deleteMany(e,t){let n=oe({objectMode:!0});return O(this.child.deleteMany(async function*(){for await(let o of e)yield _(o),n.push(o);n.end()}(),t)).catch(o=>{n.end(o)}),n}};return yt(Nr);})(); return BlockstoreDatastoreAdapter}));