@fireproof/core 0.13.3-dev → 0.13.4-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  var yw=Object.create;var Po=Object.defineProperty;var mw=Object.getOwnPropertyDescriptor;var gw=Object.getOwnPropertyNames;var ww=Object.getPrototypeOf,bw=Object.prototype.hasOwnProperty;var xw=(t,e,r)=>e in t?Po(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Y=(t,e)=>{for(var r in e)Po(t,r,{get:e[r],enumerable:!0})},kw=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of gw(e))!bw.call(t,o)&&o!==r&&Po(t,o,{get:()=>e[o],enumerable:!(n=mw(e,o))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?yw(ww(t)):{},kw(e||!t||!t.__esModule?Po(r,"default",{value:t,enumerable:!0}):r,t));var k=(t,e,r)=>(xw(t,typeof e!="symbol"?e+"":e,r),r),vl=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)};var Z=(t,e,r)=>(vl(t,e,"read from private field"),r?r.call(t):e.get(t)),nt=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},fe=(t,e,r,n)=>(vl(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);var Zs=(t,e,r,n)=>({set _(o){fe(t,e,o,r)},get _(){return Z(t,e,n)}});var nd=H((hA,rd)=>{rd.exports=Na;var td=128,x0=127,k0=~x0,v0=Math.pow(2,31);function Na(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw Na.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=v0;)e[r++]=t&255|td,t/=128;for(;t&k0;)e[r++]=t&255|td,t>>>=7;return e[r]=t|0,Na.bytes=r-n+1,e}});var sd=H((pA,id)=>{id.exports=Ua;var E0=128,od=127;function Ua(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c||o>49)throw Ua.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&od)<<o:(s&od)*Math.pow(2,o),o+=7}while(s>=E0);return Ua.bytes=i-n,r}});var cd=H((yA,ad)=>{var S0=Math.pow(2,7),A0=Math.pow(2,14),_0=Math.pow(2,21),B0=Math.pow(2,28),C0=Math.pow(2,35),T0=Math.pow(2,42),I0=Math.pow(2,49),L0=Math.pow(2,56),D0=Math.pow(2,63);ad.exports=function(t){return t<S0?1:t<A0?2:t<_0?3:t<B0?4:t<C0?5:t<T0?6:t<I0?7:t<L0?8:t<D0?9:10}});var Zo=H((mA,ud)=>{ud.exports={encode:nd(),decode:sd(),encodingLength:cd()}});var Xh=H(yc=>{yc.encode=function(t){if(isNaN(t))return"DaN";if(t===0)return"FE 0M0";if(t===1/0)return"FF";if(t===-1/0)return"DD";var e=t.toExponential().split("e"),r=Number(e[1])+500,n=e[0]+(e[0].indexOf(".")===-1?".":"")+"0".repeat(20),o="E"+ix(String(r),3)+"M"+String(n);return t>0?"F"+o:"D"+Jh(o)};yc.decode=function(t){if(t==="DaN")return NaN;if(t==="FF")return 1/0;if(t==="DD")return-1/0;var e=t[0]==="D",r=(e?Jh(t):t).slice(2).split("M");return+((e?"-":"")+r[1]+"e"+String(Number(r[0])-500))};function Jh(t){for(var e="",r=0;r<t.length;r++){var n=t[r];isNaN(Number(n))||n===" "?n!=="-"&&(e+=n):e+=String(9-Number(n))}return e}function ix(t,e){return" ".repeat(e-t.length).substr(0,e)+t}});var Zh=H(Yh=>{var sx={"?":"?@","!":"??",'"':"?%"};function ax(t){return/[!"]/.test(t)?t.replace(/[\?!"]/g,function(e){return sx[e]}):t}var cx={"?@":"?","??":"!","?%":'"'};function ux(t){return/\?[%\?@]/.test(t)?t.replace(/\?[%\?@]/g,function(e){return cx[e]}):t}Yh.factory=function(t){return{encode:e,decode:n};function e(o){if(o===null)return"A";if(!Array.isArray(o))throw new Error("can only encode arrays");var i=o.length;if(i==0)return"K!";for(var s=r(o[0]),c=1;c<i;c++)s+='"'+r(o[c]);return"K"+s+"!"}function r(o){return typeof o=="object"?e(o):ax(t.encode(o))}function n(o){if(o==="A")return null;if(o==="K!")return[];for(var i=o.split('"'),s=[[]],c,a=0,u=i.length,l=0;l<u;l++){for(var d=i[l],m=d.length,f=0;d[f]=="K";)f++;for(var h=0;d[m-h-1]=="!";)h++;for(var p=d.slice(f,m-h),g=a+f,w=a;w<g;w++)s[w+1]=[],s[w].push(s[w+1]),a=g,c=s[a];p.length!==0&&c.push(t.decode(ux(p)));for(var g=a-h,w=g;w<a;w++)s[w+1]=[],a=g,c=s[a]}return s[0][0]}}});var tp=H(Q=>{var lx=Xh(),fx=Zh(),Y6=Q.flip=function(t){var e=t.toString(),r="";for(var n in e)r+=e[n]=="."?".":9-+e[n];return r};Q.number=lx;Q.string={encode:function(t){return/\x00|\x01/.test(t)?"J"+t.replace(/\x01/g,"").replace(/\x00/g,""):"J"+t},decode:function(t){if(t[0]==="J")return t.substring(1)}};Q.encode=function(t){return Q[typeof t].encode(t)};Q.decode=function(t){if(t==="")return t;if(!ep[t[0]])throw new Error("no decoder for:"+JSON.stringify(t));return ep[t[0]](t)};Q.object=fx.factory(Q);Q.boolean={encode:function(t){return t?"C":"B"},decode:function(t){return t==="C"}};Q.undefined={encode:function(t){return"L"},decode:function(){}};var ep={A:Q.object.decode,B:Q.boolean.decode,C:Q.boolean.decode,D:Q.number.decode,F:Q.number.decode,J:Q.string.decode,K:Q.object.decode,L:Q.undefined.decode};Q.buffer=!1;Q.type="charwise"});var Up=H((JB,Np)=>{"use strict";Np.exports=Vx;function Vx(t,e){for(var r=new Array(arguments.length-1),n=0,o=2,i=!0;o<arguments.length;)r[n++]=arguments[o++];return new Promise(function(c,a){r[n]=function(l){if(i)if(i=!1,l)a(l);else{for(var d=new Array(arguments.length-1),m=0;m<d.length;)d[m++]=arguments[m];c.apply(null,d)}};try{t.apply(e||null,r)}catch(u){i&&(i=!1,a(u))}})}});var Op=H(Mp=>{"use strict";var Yi=Mp;Yi.length=function(e){var r=e.length;if(!r)return 0;for(var n=0;--r%4>1&&e.charAt(r)==="=";)++n;return Math.ceil(e.length*3)/4-n};var Gr=new Array(64),Fp=new Array(123);for(Oe=0;Oe<64;)Fp[Gr[Oe]=Oe<26?Oe+65:Oe<52?Oe+71:Oe<62?Oe-4:Oe-59|43]=Oe++;var Oe;Yi.encode=function(e,r,n){for(var o=null,i=[],s=0,c=0,a;r<n;){var u=e[r++];switch(c){case 0:i[s++]=Gr[u>>2],a=(u&3)<<4,c=1;break;case 1:i[s++]=Gr[a|u>>4],a=(u&15)<<2,c=2;break;case 2:i[s++]=Gr[a|u>>6],i[s++]=Gr[u&63],c=0;break}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),s=0)}return c&&(i[s++]=Gr[a],i[s++]=61,c===1&&(i[s++]=61)),o?(s&&o.push(String.fromCharCode.apply(String,i.slice(0,s))),o.join("")):String.fromCharCode.apply(String,i.slice(0,s))};var Pp="invalid encoding";Yi.decode=function(e,r,n){for(var o=n,i=0,s,c=0;c<e.length;){var a=e.charCodeAt(c++);if(a===61&&i>1)break;if((a=Fp[a])===void 0)throw Error(Pp);switch(i){case 0:s=a,i=1;break;case 1:r[n++]=s<<2|(a&48)>>4,s=a,i=2;break;case 2:r[n++]=(s&15)<<4|(a&60)>>2,s=a,i=3;break;case 3:r[n++]=(s&3)<<6|a,i=0;break}}if(i===1)throw Error(Pp);return n-o};Yi.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var zp=H((YB,Rp)=>{"use strict";Rp.exports=Zi;function Zi(){this._listeners={}}Zi.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Zi.prototype.off=function(e,r){if(e===void 0)this._listeners={};else if(r===void 0)this._listeners[e]=[];else for(var n=this._listeners[e],o=0;o<n.length;)n[o].fn===r?n.splice(o,1):++o;return this};Zi.prototype.emit=function(e){var r=this._listeners[e];if(r){for(var n=[],o=1;o<arguments.length;)n.push(arguments[o++]);for(o=0;o<r.length;)r[o].fn.apply(r[o++].ctx,n)}return this}});var Kp=H((ZB,Wp)=>{"use strict";Wp.exports=$p($p);function $p(t){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),n=r[3]===128;function o(a,u,l){e[0]=a,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3]}function i(a,u,l){e[0]=a,u[l]=r[3],u[l+1]=r[2],u[l+2]=r[1],u[l+3]=r[0]}t.writeFloatLE=n?o:i,t.writeFloatBE=n?i:o;function s(a,u){return r[0]=a[u],r[1]=a[u+1],r[2]=a[u+2],r[3]=a[u+3],e[0]}function c(a,u){return r[3]=a[u],r[2]=a[u+1],r[1]=a[u+2],r[0]=a[u+3],e[0]}t.readFloatLE=n?s:c,t.readFloatBE=n?c:s}():function(){function e(n,o,i,s){var c=o<0?1:0;if(c&&(o=-o),o===0)n(1/o>0?0:2147483648,i,s);else if(isNaN(o))n(2143289344,i,s);else if(o>34028234663852886e22)n((c<<31|2139095040)>>>0,i,s);else if(o<11754943508222875e-54)n((c<<31|Math.round(o/1401298464324817e-60))>>>0,i,s);else{var a=Math.floor(Math.log(o)/Math.LN2),u=Math.round(o*Math.pow(2,-a)*8388608)&8388607;n((c<<31|a+127<<23|u)>>>0,i,s)}}t.writeFloatLE=e.bind(null,Hp),t.writeFloatBE=e.bind(null,jp);function r(n,o,i){var s=n(o,i),c=(s>>31)*2+1,a=s>>>23&255,u=s&8388607;return a===255?u?NaN:c*(1/0):a===0?c*1401298464324817e-60*u:c*Math.pow(2,a-150)*(u+8388608)}t.readFloatLE=r.bind(null,Vp),t.readFloatBE=r.bind(null,qp)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),n=r[7]===128;function o(a,u,l){e[0]=a,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3],u[l+4]=r[4],u[l+5]=r[5],u[l+6]=r[6],u[l+7]=r[7]}function i(a,u,l){e[0]=a,u[l]=r[7],u[l+1]=r[6],u[l+2]=r[5],u[l+3]=r[4],u[l+4]=r[3],u[l+5]=r[2],u[l+6]=r[1],u[l+7]=r[0]}t.writeDoubleLE=n?o:i,t.writeDoubleBE=n?i:o;function s(a,u){return r[0]=a[u],r[1]=a[u+1],r[2]=a[u+2],r[3]=a[u+3],r[4]=a[u+4],r[5]=a[u+5],r[6]=a[u+6],r[7]=a[u+7],e[0]}function c(a,u){return r[7]=a[u],r[6]=a[u+1],r[5]=a[u+2],r[4]=a[u+3],r[3]=a[u+4],r[2]=a[u+5],r[1]=a[u+6],r[0]=a[u+7],e[0]}t.readDoubleLE=n?s:c,t.readDoubleBE=n?c:s}():function(){function e(n,o,i,s,c,a){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,c,a+o),n(1/s>0?0:2147483648,c,a+i);else if(isNaN(s))n(0,c,a+o),n(2146959360,c,a+i);else if(s>17976931348623157e292)n(0,c,a+o),n((u<<31|2146435072)>>>0,c,a+i);else{var l;if(s<22250738585072014e-324)l=s/5e-324,n(l>>>0,c,a+o),n((u<<31|l/4294967296)>>>0,c,a+i);else{var d=Math.floor(Math.log(s)/Math.LN2);d===1024&&(d=1023),l=s*Math.pow(2,-d),n(l*4503599627370496>>>0,c,a+o),n((u<<31|d+1023<<20|l*1048576&1048575)>>>0,c,a+i)}}}t.writeDoubleLE=e.bind(null,Hp,0,4),t.writeDoubleBE=e.bind(null,jp,4,0);function r(n,o,i,s,c){var a=n(s,c+o),u=n(s,c+i),l=(u>>31)*2+1,d=u>>>20&2047,m=4294967296*(u&1048575)+a;return d===2047?m?NaN:l*(1/0):d===0?l*5e-324*m:l*Math.pow(2,d-1075)*(m+4503599627370496)}t.readDoubleLE=r.bind(null,Vp,0,4),t.readDoubleBE=r.bind(null,qp,4,0)}(),t}function Hp(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function jp(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function Vp(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function qp(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Gp=H((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}});var Jp=H(Qp=>{"use strict";var $c=Qp;$c.length=function(e){for(var r=0,n=0,o=0;o<e.length;++o)n=e.charCodeAt(o),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(e.charCodeAt(o+1)&64512)===56320?(++o,r+=4):r+=3;return r};$c.read=function(e,r,n){var o=n-r;if(o<1)return"";for(var i=null,s=[],c=0,a;r<n;)a=e[r++],a<128?s[c++]=a:a>191&&a<224?s[c++]=(a&31)<<6|e[r++]&63:a>239&&a<365?(a=((a&7)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,s[c++]=55296+(a>>10),s[c++]=56320+(a&1023)):s[c++]=(a&15)<<12|(e[r++]&63)<<6|e[r++]&63,c>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),c=0);return i?(c&&i.push(String.fromCharCode.apply(String,s.slice(0,c))),i.join("")):String.fromCharCode.apply(String,s.slice(0,c))};$c.write=function(e,r,n){for(var o=n,i,s,c=0;c<e.length;++c)i=e.charCodeAt(c),i<128?r[n++]=i:i<2048?(r[n++]=i>>6|192,r[n++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(c+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++c,r[n++]=i>>18|240,r[n++]=i>>12&63|128,r[n++]=i>>6&63|128,r[n++]=i&63|128):(r[n++]=i>>12|224,r[n++]=i>>6&63|128,r[n++]=i&63|128);return n-o}});var Yp=H((t3,Xp)=>{"use strict";Xp.exports=qx;function qx(t,e,r){var n=r||8192,o=n>>>1,i=null,s=n;return function(a){if(a<1||a>o)return t(a);s+a>n&&(i=t(n),s=0);var u=e.call(i,s,s+=a);return s&7&&(s=(s|7)+1),u}}});var ey=H((r3,Zp)=>{"use strict";Zp.exports=re;var Jn=lt();function re(t,e){this.lo=t>>>0,this.hi=e>>>0}var sr=re.zero=new re(0,0);sr.toNumber=function(){return 0};sr.zzEncode=sr.zzDecode=function(){return this};sr.length=function(){return 1};var Wx=re.zeroHash="\0\0\0\0\0\0\0\0";re.fromNumber=function(e){if(e===0)return sr;var r=e<0;r&&(e=-e);var n=e>>>0,o=(e-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new re(n,o)};re.from=function(e){if(typeof e=="number")return re.fromNumber(e);if(Jn.isString(e))if(Jn.Long)e=Jn.Long.fromString(e);else return re.fromNumber(parseInt(e,10));return e.low||e.high?new re(e.low>>>0,e.high>>>0):sr};re.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};re.prototype.toLong=function(e){return Jn.Long?new Jn.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var Bt=String.prototype.charCodeAt;re.fromHash=function(e){return e===Wx?sr:new re((Bt.call(e,0)|Bt.call(e,1)<<8|Bt.call(e,2)<<16|Bt.call(e,3)<<24)>>>0,(Bt.call(e,4)|Bt.call(e,5)<<8|Bt.call(e,6)<<16|Bt.call(e,7)<<24)>>>0)};re.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};re.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};re.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};re.prototype.length=function(){var e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var lt=H(Hc=>{"use strict";var D=Hc;D.asPromise=Up();D.base64=Op();D.EventEmitter=zp();D.float=Kp();D.inquire=Gp();D.utf8=Jp();D.pool=Yp();D.LongBits=ey();D.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);D.global=D.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||Hc;D.emptyArray=Object.freeze?Object.freeze([]):[];D.emptyObject=Object.freeze?Object.freeze({}):{};D.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};D.isString=function(e){return typeof e=="string"||e instanceof String};D.isObject=function(e){return e&&typeof e=="object"};D.isset=D.isSet=function(e,r){var n=e[r];return n!=null&&e.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};D.Buffer=function(){try{var t=D.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();D._Buffer_from=null;D._Buffer_allocUnsafe=null;D.newBuffer=function(e){return typeof e=="number"?D.Buffer?D._Buffer_allocUnsafe(e):new D.Array(e):D.Buffer?D._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};D.Array=typeof Uint8Array<"u"?Uint8Array:Array;D.Long=D.global.dcodeIO&&D.global.dcodeIO.Long||D.global.Long||D.inquire("long");D.key2Re=/^true|false|0|1$/;D.key32Re=/^-?(?:0|[1-9][0-9]*)$/;D.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;D.longToHash=function(e){return e?D.LongBits.from(e).toHash():D.LongBits.zeroHash};D.longFromHash=function(e,r){var n=D.LongBits.fromHash(e);return D.Long?D.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function ty(t,e,r){for(var n=Object.keys(e),o=0;o<n.length;++o)(t[n[o]]===void 0||!r)&&(t[n[o]]=e[n[o]]);return t}D.merge=ty;D.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function ry(t){function e(r,n){if(!(this instanceof e))return new e(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&ty(this,n)}return e.prototype=Object.create(Error.prototype,{constructor:{value:e,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return t},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),e}D.newError=ry;D.ProtocolError=ry("ProtocolError");D.oneOfGetter=function(e){for(var r={},n=0;n<e.length;++n)r[e[n]]=1;return function(){for(var o=Object.keys(this),i=o.length-1;i>-1;--i)if(r[o[i]]===1&&this[o[i]]!==void 0&&this[o[i]]!==null)return o[i]}};D.oneOfSetter=function(e){return function(r){for(var n=0;n<e.length;++n)e[n]!==r&&delete this[e[n]]}};D.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};D._configure=function(){var t=D.Buffer;if(!t){D._Buffer_from=D._Buffer_allocUnsafe=null;return}D._Buffer_from=t.from!==Uint8Array.from&&t.from||function(r,n){return new t(r,n)},D._Buffer_allocUnsafe=t.allocUnsafe||function(r){return new t(r)}}});var ts=H((o3,sy)=>{"use strict";sy.exports=O;var De=lt(),jc,es=De.LongBits,ny=De.base64,oy=De.utf8;function Xn(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function qc(){}function Kx(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function O(){this.len=0,this.head=new Xn(qc,0,0),this.tail=this.head,this.states=null}var iy=function(){return De.Buffer?function(){return(O.create=function(){return new jc})()}:function(){return new O}};O.create=iy();O.alloc=function(e){return new De.Array(e)};De.Array!==Array&&(O.alloc=De.pool(O.alloc,De.Array.prototype.subarray));O.prototype._push=function(e,r,n){return this.tail=this.tail.next=new Xn(e,r,n),this.len+=r,this};function Wc(t,e,r){e[r]=t&255}function Gx(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Kc(t,e){this.len=t,this.next=void 0,this.val=e}Kc.prototype=Object.create(Xn.prototype);Kc.prototype.fn=Gx;O.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Kc((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};O.prototype.int32=function(e){return e<0?this._push(Gc,10,es.fromNumber(e)):this.uint32(e)};O.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Gc(t,e,r){for(;t.hi;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}O.prototype.uint64=function(e){var r=es.from(e);return this._push(Gc,r.length(),r)};O.prototype.int64=O.prototype.uint64;O.prototype.sint64=function(e){var r=es.from(e).zzEncode();return this._push(Gc,r.length(),r)};O.prototype.bool=function(e){return this._push(Wc,1,e?1:0)};function Vc(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}O.prototype.fixed32=function(e){return this._push(Vc,4,e>>>0)};O.prototype.sfixed32=O.prototype.fixed32;O.prototype.fixed64=function(e){var r=es.from(e);return this._push(Vc,4,r.lo)._push(Vc,4,r.hi)};O.prototype.sfixed64=O.prototype.fixed64;O.prototype.float=function(e){return this._push(De.float.writeFloatLE,4,e)};O.prototype.double=function(e){return this._push(De.float.writeDoubleLE,8,e)};var Qx=De.Array.prototype.set?function(e,r,n){r.set(e,n)}:function(e,r,n){for(var o=0;o<e.length;++o)r[n+o]=e[o]};O.prototype.bytes=function(e){var r=e.length>>>0;if(!r)return this._push(Wc,1,0);if(De.isString(e)){var n=O.alloc(r=ny.length(e));ny.decode(e,n,0),e=n}return this.uint32(r)._push(Qx,r,e)};O.prototype.string=function(e){var r=oy.length(e);return r?this.uint32(r)._push(oy.write,r,e):this._push(Wc,1,0)};O.prototype.fork=function(){return this.states=new Kx(this),this.head=this.tail=new Xn(qc,0,0),this.len=0,this};O.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Xn(qc,0,0),this.len=0),this};O.prototype.ldelim=function(){var e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=r,this.len+=n),this};O.prototype.finish=function(){for(var e=this.head.next,r=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r};O._configure=function(t){jc=t,O.create=iy(),jc._configure()}});var Qc=H((i3,cy)=>{"use strict";cy.exports=Ze;var ay=ts();(Ze.prototype=Object.create(ay.prototype)).constructor=Ze;var Ct=lt();function Ze(){ay.call(this)}Ze._configure=function(){Ze.alloc=Ct._Buffer_allocUnsafe,Ze.writeBytesBuffer=Ct.Buffer&&Ct.Buffer.prototype instanceof Uint8Array&&Ct.Buffer.prototype.set.name==="set"?function(e,r,n){r.set(e,n)}:function(e,r,n){if(e.copy)e.copy(r,n,0,e.length);else for(var o=0;o<e.length;)r[n++]=e[o++]}};Ze.prototype.bytes=function(e){Ct.isString(e)&&(e=Ct._Buffer_from(e,"base64"));var r=e.length>>>0;return this.uint32(r),r&&this._push(Ze.writeBytesBuffer,r,e),this};function Jx(t,e,r){t.length<40?Ct.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}Ze.prototype.string=function(e){var r=Ct.Buffer.byteLength(e);return this.uint32(r),r&&this._push(Jx,r,e),this};Ze._configure()});var ns=H((s3,hy)=>{"use strict";hy.exports=J;var et=lt(),Xc,fy=et.LongBits,Xx=et.utf8;function Re(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function J(t){this.buf=t,this.pos=0,this.len=t.length}var uy=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new J(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new J(e);throw Error("illegal buffer")},dy=function(){return et.Buffer?function(r){return(J.create=function(o){return et.Buffer.isBuffer(o)?new Xc(o):uy(o)})(r)}:uy};J.create=dy();J.prototype._slice=et.Array.prototype.subarray||et.Array.prototype.slice;J.prototype.uint32=function(){var e=4294967295;return function(){if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Re(this,10);return e}}();J.prototype.int32=function(){return this.uint32()|0};J.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Jc(){var t=new fy(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Re(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Re(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}J.prototype.bool=function(){return this.uint32()!==0};function rs(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}J.prototype.fixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return rs(this.buf,this.pos+=4)};J.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return rs(this.buf,this.pos+=4)|0};function ly(){if(this.pos+8>this.len)throw Re(this,8);return new fy(rs(this.buf,this.pos+=4),rs(this.buf,this.pos+=4))}J.prototype.float=function(){if(this.pos+4>this.len)throw Re(this,4);var e=et.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};J.prototype.double=function(){if(this.pos+8>this.len)throw Re(this,4);var e=et.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};J.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Re(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};J.prototype.string=function(){var e=this.bytes();return Xx.read(e,0,e.length)};J.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Re(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Re(this);while(this.buf[this.pos++]&128);return this};J.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this};J._configure=function(t){Xc=t,J.create=dy(),Xc._configure();var e=et.Long?"toLong":"toNumber";et.merge(J.prototype,{int64:function(){return Jc.call(this)[e](!1)},uint64:function(){return Jc.call(this)[e](!0)},sint64:function(){return Jc.call(this).zzDecode()[e](!1)},fixed64:function(){return ly.call(this)[e](!0)},sfixed64:function(){return ly.call(this)[e](!1)}})}});var Yc=H((a3,my)=>{"use strict";my.exports=ar;var yy=ns();(ar.prototype=Object.create(yy.prototype)).constructor=ar;var py=lt();function ar(t){yy.call(this,t)}ar._configure=function(){py.Buffer&&(ar.prototype._slice=py.Buffer.prototype.slice)};ar.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};ar._configure()});var wy=H((c3,gy)=>{"use strict";gy.exports=Yn;var Zc=lt();(Yn.prototype=Object.create(Zc.EventEmitter.prototype)).constructor=Yn;function Yn(t,e,r){if(typeof t!="function")throw TypeError("rpcImpl must be a function");Zc.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=!!e,this.responseDelimited=!!r}Yn.prototype.rpcCall=function t(e,r,n,o,i){if(!o)throw TypeError("request must be specified");var s=this;if(!i)return Zc.asPromise(t,s,e,r,n,o);if(!s.rpcImpl){setTimeout(function(){i(Error("already ended"))},0);return}try{return s.rpcImpl(e,r[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(a,u){if(a)return s.emit("error",a,e),i(a);if(u===null){s.end(!0);return}if(!(u instanceof n))try{u=n[s.responseDelimited?"decodeDelimited":"decode"](u)}catch(l){return s.emit("error",l,e),i(l)}return s.emit("data",u,e),i(null,u)})}catch(c){s.emit("error",c,e),setTimeout(function(){i(c)},0);return}};Yn.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var xy=H(by=>{"use strict";var Yx=by;Yx.Service=wy()});var vy=H((l3,ky)=>{"use strict";ky.exports={}});var Ay=H(Sy=>{"use strict";var he=Sy;he.build="minimal";he.Writer=ts();he.BufferWriter=Qc();he.Reader=ns();he.BufferReader=Yc();he.util=lt();he.rpc=xy();he.roots=vy();he.configure=Ey;function Ey(){he.util._configure(),he.Writer._configure(he.BufferWriter),he.Reader._configure(he.BufferReader)}Ey()});var By=H((d3,_y)=>{"use strict";_y.exports=Ay()});var Sm=H((uo,Ss)=>{(function(t,e){"use strict";var r={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(f){if(!Array.isArray(f)&&!ArrayBuffer.isView(f))return!1;for(var h=0;h<f.length;h++)if(!Number.isInteger(f[h])||f[h]<0||f[h]>255)return!1;return!0}function o(f,h){return(f&65535)*h+(((f>>>16)*h&65535)<<16)}function i(f,h){return f<<h|f>>>32-h}function s(f){return f^=f>>>16,f=o(f,2246822507),f^=f>>>13,f=o(f,3266489909),f^=f>>>16,f}function c(f,h){f=[f[0]>>>16,f[0]&65535,f[1]>>>16,f[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var p=[0,0,0,0];return p[3]+=f[3]+h[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=f[2]+h[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=f[1]+h[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=f[0]+h[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function a(f,h){f=[f[0]>>>16,f[0]&65535,f[1]>>>16,f[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var p=[0,0,0,0];return p[3]+=f[3]*h[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=f[2]*h[3],p[1]+=p[2]>>>16,p[2]&=65535,p[2]+=f[3]*h[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=f[1]*h[3],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=f[2]*h[2],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=f[3]*h[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=f[0]*h[3]+f[1]*h[2]+f[2]*h[1]+f[3]*h[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function u(f,h){return h%=64,h===32?[f[1],f[0]]:h<32?[f[0]<<h|f[1]>>>32-h,f[1]<<h|f[0]>>>32-h]:(h-=32,[f[1]<<h|f[0]>>>32-h,f[0]<<h|f[1]>>>32-h])}function l(f,h){return h%=64,h===0?f:h<32?[f[0]<<h|f[1]>>>32-h,f[1]<<h]:[f[1]<<h-32,0]}function d(f,h){return[f[0]^h[0],f[1]^h[1]]}function m(f){return f=d(f,[0,f[0]>>>1]),f=a(f,[4283543511,3981806797]),f=d(f,[0,f[0]>>>1]),f=a(f,[3301882366,444984403]),f=d(f,[0,f[0]>>>1]),f}r.x86.hash32=function(f,h){if(r.inputValidation&&!n(f))return e;h=h||0;for(var p=f.length%4,w=f.length-p,g=h,b=0,v=3432918353,E=461845907,T=0;T<w;T=T+4)b=f[T]|f[T+1]<<8|f[T+2]<<16|f[T+3]<<24,b=o(b,v),b=i(b,15),b=o(b,E),g^=b,g=i(g,13),g=o(g,5)+3864292196;switch(b=0,p){case 3:b^=f[T+2]<<16;case 2:b^=f[T+1]<<8;case 1:b^=f[T],b=o(b,v),b=i(b,15),b=o(b,E),g^=b}return g^=f.length,g=s(g),g>>>0},r.x86.hash128=function(f,h){if(r.inputValidation&&!n(f))return e;h=h||0;for(var p=f.length%16,w=f.length-p,g=h,b=h,v=h,E=h,T=0,U=0,A=0,P=0,le=597399067,Do=2869860233,No=951274213,Uo=2716044179,M=0;M<w;M=M+16)T=f[M]|f[M+1]<<8|f[M+2]<<16|f[M+3]<<24,U=f[M+4]|f[M+5]<<8|f[M+6]<<16|f[M+7]<<24,A=f[M+8]|f[M+9]<<8|f[M+10]<<16|f[M+11]<<24,P=f[M+12]|f[M+13]<<8|f[M+14]<<16|f[M+15]<<24,T=o(T,le),T=i(T,15),T=o(T,Do),g^=T,g=i(g,19),g+=b,g=o(g,5)+1444728091,U=o(U,Do),U=i(U,16),U=o(U,No),b^=U,b=i(b,17),b+=v,b=o(b,5)+197830471,A=o(A,No),A=i(A,17),A=o(A,Uo),v^=A,v=i(v,15),v+=E,v=o(v,5)+2530024501,P=o(P,Uo),P=i(P,18),P=o(P,le),E^=P,E=i(E,13),E+=g,E=o(E,5)+850148119;switch(T=0,U=0,A=0,P=0,p){case 15:P^=f[M+14]<<16;case 14:P^=f[M+13]<<8;case 13:P^=f[M+12],P=o(P,Uo),P=i(P,18),P=o(P,le),E^=P;case 12:A^=f[M+11]<<24;case 11:A^=f[M+10]<<16;case 10:A^=f[M+9]<<8;case 9:A^=f[M+8],A=o(A,No),A=i(A,17),A=o(A,Uo),v^=A;case 8:U^=f[M+7]<<24;case 7:U^=f[M+6]<<16;case 6:U^=f[M+5]<<8;case 5:U^=f[M+4],U=o(U,Do),U=i(U,16),U=o(U,No),b^=U;case 4:T^=f[M+3]<<24;case 3:T^=f[M+2]<<16;case 2:T^=f[M+1]<<8;case 1:T^=f[M],T=o(T,le),T=i(T,15),T=o(T,Do),g^=T}return g^=f.length,b^=f.length,v^=f.length,E^=f.length,g+=b,g+=v,g+=E,b+=g,v+=g,E+=g,g=s(g),b=s(b),v=s(v),E=s(E),g+=b,g+=v,g+=E,b+=g,v+=g,E+=g,("00000000"+(g>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(v>>>0).toString(16)).slice(-8)+("00000000"+(E>>>0).toString(16)).slice(-8)},r.x64.hash128=function(f,h){if(r.inputValidation&&!n(f))return e;h=h||0;for(var p=f.length%16,w=f.length-p,g=[0,h],b=[0,h],v=[0,0],E=[0,0],T=[2277735313,289559509],U=[1291169091,658871167],A=0;A<w;A=A+16)v=[f[A+4]|f[A+5]<<8|f[A+6]<<16|f[A+7]<<24,f[A]|f[A+1]<<8|f[A+2]<<16|f[A+3]<<24],E=[f[A+12]|f[A+13]<<8|f[A+14]<<16|f[A+15]<<24,f[A+8]|f[A+9]<<8|f[A+10]<<16|f[A+11]<<24],v=a(v,T),v=u(v,31),v=a(v,U),g=d(g,v),g=u(g,27),g=c(g,b),g=c(a(g,[0,5]),[0,1390208809]),E=a(E,U),E=u(E,33),E=a(E,T),b=d(b,E),b=u(b,31),b=c(b,g),b=c(a(b,[0,5]),[0,944331445]);switch(v=[0,0],E=[0,0],p){case 15:E=d(E,l([0,f[A+14]],48));case 14:E=d(E,l([0,f[A+13]],40));case 13:E=d(E,l([0,f[A+12]],32));case 12:E=d(E,l([0,f[A+11]],24));case 11:E=d(E,l([0,f[A+10]],16));case 10:E=d(E,l([0,f[A+9]],8));case 9:E=d(E,[0,f[A+8]]),E=a(E,U),E=u(E,33),E=a(E,T),b=d(b,E);case 8:v=d(v,l([0,f[A+7]],56));case 7:v=d(v,l([0,f[A+6]],48));case 6:v=d(v,l([0,f[A+5]],40));case 5:v=d(v,l([0,f[A+4]],32));case 4:v=d(v,l([0,f[A+3]],24));case 3:v=d(v,l([0,f[A+2]],16));case 2:v=d(v,l([0,f[A+1]],8));case 1:v=d(v,[0,f[A]]),v=a(v,T),v=u(v,31),v=a(v,U),g=d(g,v)}return g=d(g,[0,f.length]),b=d(b,[0,f.length]),g=c(g,b),b=c(b,g),g=m(g),b=m(b),g=c(g,b),b=c(b,g),("00000000"+(g[0]>>>0).toString(16)).slice(-8)+("00000000"+(g[1]>>>0).toString(16)).slice(-8)+("00000000"+(b[0]>>>0).toString(16)).slice(-8)+("00000000"+(b[1]>>>0).toString(16)).slice(-8)},typeof uo<"u"?(typeof Ss<"u"&&Ss.exports&&(uo=Ss.exports=r),uo.murmurHash3=r):typeof define=="function"&&define.amd?define([],function(){return r}):(r._murmurHash3=t.murmurHash3,r.noConflict=function(){return t.murmurHash3=r._murmurHash3,r._murmurHash3=e,r.noConflict=e,r},t.murmurHash3=r)})(uo)});var Uu=H((O3,Am)=>{Am.exports=Sm()});var rt=H((EC,Zm)=>{"use strict";function Ym(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function z2(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return Ym(t,r)}catch{r.message=t.message,r.stack=t.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(t)),Ym(new o,r)}}Zm.exports=z2});var xg=H((cT,bg)=>{"use strict";bg.exports=class{constructor(){this._bitArrays=[],this._data=[],this._length=0,this._changedLength=!1,this._changedData=!1}set(e,r){let n=this._internalPositionFor(e,!1);if(r===void 0)n!==-1&&(this._unsetInternalPos(n),this._unsetBit(e),this._changedLength=!0,this._changedData=!0);else{let o=!1;n===-1?(n=this._data.length,this._setBit(e),this._changedData=!0):o=!0,this._setInternalPos(n,e,r,o),this._changedLength=!0}}unset(e){this.set(e,void 0)}get(e){this._sortData();let r=this._internalPositionFor(e,!0);if(r!==-1)return this._data[r][1]}push(e){return this.set(this.length,e),this.length}get length(){if(this._sortData(),this._changedLength){let e=this._data[this._data.length-1];this._length=e?e[0]+1:0,this._changedLength=!1}return this._length}forEach(e){let r=0;for(;r<this.length;)e(this.get(r),r,this),r++}map(e){let r=0,n=new Array(this.length);for(;r<this.length;)n[r]=e(this.get(r),r,this),r++;return n}reduce(e,r){let n=0,o=r;for(;n<this.length;){let i=this.get(n);o=e(o,i,n),n++}return o}find(e){let r=0,n,o;for(;r<this.length&&!n;)o=this.get(r),n=e(o),r++;return n?o:void 0}_internalPositionFor(e,r){let n=this._bytePosFor(e,r);if(n>=this._bitArrays.length)return-1;let o=this._bitArrays[n],i=e-n*7;if(!((o&1<<i)>0))return-1;let c=this._bitArrays.slice(0,n).reduce(rv,0),a=~(4294967295<<i+1),u=wg(o&a);return c+u-1}_bytePosFor(e,r){let n=Math.floor(e/7),o=n+1;for(;!r&&this._bitArrays.length<o;)this._bitArrays.push(0);return n}_setBit(e){let r=this._bytePosFor(e,!1);this._bitArrays[r]|=1<<e-r*7}_unsetBit(e){let r=this._bytePosFor(e,!1);this._bitArrays[r]&=~(1<<e-r*7)}_setInternalPos(e,r,n,o){let i=this._data,s=[r,n];if(o)this._sortData(),i[e]=s;else{if(i.length)if(i[i.length-1][0]>=r)i.push(s);else if(i[0][0]<=r)i.unshift(s);else{let c=Math.round(i.length/2);this._data=i.slice(0,c).concat(s).concat(i.slice(c))}else this._data.push(s);this._changedData=!0,this._changedLength=!0}}_unsetInternalPos(e){this._data.splice(e,1)}_sortData(){this._changedData&&this._data.sort(nv),this._changedData=!1}bitField(){let e=[],r=8,n=0,o=0,i,s=this._bitArrays.slice();for(;s.length||n;){n===0&&(i=s.shift(),n=7);let a=Math.min(n,r),u=~(255<<a),l=i&u;o|=l<<8-r,i=i>>>a,n-=a,r-=a,(!r||!n&&!s.length)&&(e.push(o),o=0,r=8)}for(var c=e.length-1;c>0&&e[c]===0;c--)e.pop();return e}compactArray(){return this._sortData(),this._data.map(ov)}};function rv(t,e){return t+wg(e)}function wg(t){let e=t;return e=e-(e>>1&1431655765),e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>24}function nv(t,e){return t[0]-e[0]}function ov(t){return t[1]}});var Hg=H((k4,ll)=>{"use strict";var Qv=Object.prototype.hasOwnProperty,ue="~";function xo(){}Object.create&&(xo.prototype=Object.create(null),new xo().__proto__||(ue=!1));function Jv(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function $g(t,e,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new Jv(r,n||t,o),s=ue?ue+e:e;return t._events[s]?t._events[s].fn?t._events[s]=[t._events[s],i]:t._events[s].push(i):(t._events[s]=i,t._eventsCount++),t}function $s(t,e){--t._eventsCount===0?t._events=new xo:delete t._events[e]}function se(){this._events=new xo,this._eventsCount=0}se.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Qv.call(r,n)&&e.push(ue?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};se.prototype.listeners=function(e){var r=ue?ue+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,s=new Array(i);o<i;o++)s[o]=n[o].fn;return s};se.prototype.listenerCount=function(e){var r=ue?ue+e:e,n=this._events[r];return n?n.fn?1:n.length:0};se.prototype.emit=function(e,r,n,o,i,s){var c=ue?ue+e:e;if(!this._events[c])return!1;var a=this._events[c],u=arguments.length,l,d;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),u){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,r),!0;case 3:return a.fn.call(a.context,r,n),!0;case 4:return a.fn.call(a.context,r,n,o),!0;case 5:return a.fn.call(a.context,r,n,o,i),!0;case 6:return a.fn.call(a.context,r,n,o,i,s),!0}for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];a.fn.apply(a.context,l)}else{var m=a.length,f;for(d=0;d<m;d++)switch(a[d].once&&this.removeListener(e,a[d].fn,void 0,!0),u){case 1:a[d].fn.call(a[d].context);break;case 2:a[d].fn.call(a[d].context,r);break;case 3:a[d].fn.call(a[d].context,r,n);break;case 4:a[d].fn.call(a[d].context,r,n,o);break;default:if(!l)for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];a[d].fn.apply(a[d].context,l)}}return!0};se.prototype.on=function(e,r,n){return $g(this,e,r,n,!1)};se.prototype.once=function(e,r,n){return $g(this,e,r,n,!0)};se.prototype.removeListener=function(e,r,n,o){var i=ue?ue+e:e;if(!this._events[i])return this;if(!r)return $s(this,i),this;var s=this._events[i];if(s.fn)s.fn===r&&(!o||s.once)&&(!n||s.context===n)&&$s(this,i);else{for(var c=0,a=[],u=s.length;c<u;c++)(s[c].fn!==r||o&&!s[c].once||n&&s[c].context!==n)&&a.push(s[c]);a.length?this._events[i]=a.length===1?a[0]:a:$s(this,i)}return this};se.prototype.removeAllListeners=function(e){var r;return e?(r=ue?ue+e:e,this._events[r]&&$s(this,r)):(this._events=new xo,this._eventsCount=0),this};se.prototype.off=se.prototype.removeListener;se.prototype.addListener=se.prototype.on;se.prefixed=ue;se.EventEmitter=se;typeof ll<"u"&&(ll.exports=se)});var Fo="0123456789abcdef",Mo=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,r,n,o){if(!Number.isInteger(e)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o)||e<0||r<0||n<0||o<0||e>0xffffffffffff||r>4095||n>1073741823||o>4294967295)throw new RangeError("invalid field value");let i=new Uint8Array(16);return i[0]=e/2**40,i[1]=e/2**32,i[2]=e/2**24,i[3]=e/2**16,i[4]=e/2**8,i[5]=e,i[6]=112|r>>>8,i[7]=r,i[8]=128|n>>>24,i[9]=n>>>16,i[10]=n>>>8,i[11]=n,i[12]=o>>>24,i[13]=o>>>16,i[14]=o>>>8,i[15]=o,new t(i)}static parse(e){var r,n,o,i;let s;switch(e.length){case 32:s=(r=/^[0-9a-f]{32}$/i.exec(e))===null||r===void 0?void 0:r[0];break;case 36:s=(n=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 38:s=(o=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||o===void 0?void 0:o.slice(1,6).join("");break;case 45:s=(i=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;default:break}if(s){let c=new Uint8Array(16);for(let a=0;a<16;a+=4){let u=parseInt(s.substring(2*a,2*a+8),16);c[a+0]=u>>>24,c[a+1]=u>>>16,c[a+2]=u>>>8,c[a+3]=u}return new t(c)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let r=0;r<this.bytes.length;r++)e+=Fo.charAt(this.bytes[r]>>>4),e+=Fo.charAt(this.bytes[r]&15),(r===3||r===5||r===7||r===9)&&(e+="-");return e}toHex(){let e="";for(let r=0;r<this.bytes.length;r++)e+=Fo.charAt(this.bytes[r]>>>4),e+=Fo.charAt(this.bytes[r]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let r=0;r<16;r++){let n=this.bytes[r]-e.bytes[r];if(n!==0)return Math.sign(n)}return 0}},ea=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??vw()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,r){let n=this.generateOrAbortCore(e,r);return n===void 0&&(this.timestamp=0,n=this.generateOrAbortCore(e,r)),n}generateOrAbortCore(e,r){if(!Number.isInteger(e)||e<1||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e>this.timestamp)this.timestamp=e,this.resetCounter();else if(e+r>=this.timestamp)this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter());else return;return Mo.fromFieldsV7(this.timestamp,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,Mo.ofInner(e)}},vw=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new ta;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},ta=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},El,Sl=()=>Ew().toString(),Ew=()=>(El||(El=new ea)).generate();function Al(t,e=1/0,r=!1){let n=[],o=!1;async function i(){if(o||n.length===0)return;o=!0;let s=n.splice(0,e),c=s.map(a=>a.task);if(r){let a=c.map(async(u,l)=>{try{let d=await t([u]);s[l].resolve(d)}catch(d){s[l].reject(d)}});await Promise.all(a)}else try{let a=await t(c);s.forEach(u=>u.resolve(a))}catch(a){s.forEach(u=>u.reject(a))}o=!1,i()}return{push(s){return new Promise((c,a)=>{n.push({task:s,resolve:c,reject:a}),i()})}}}var Sw=Cl,_l=128,Aw=127,_w=~Aw,Bw=Math.pow(2,31);function Cl(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Bw;)e[r++]=t&255|_l,t/=128;for(;t&_w;)e[r++]=t&255|_l,t>>>=7;return e[r]=t|0,Cl.bytes=r-n+1,e}var Cw=ra,Tw=128,Bl=127;function ra(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw ra.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&Bl)<<o:(s&Bl)*Math.pow(2,o),o+=7}while(s>=Tw);return ra.bytes=i-n,r}var Iw=Math.pow(2,7),Lw=Math.pow(2,14),Dw=Math.pow(2,21),Nw=Math.pow(2,28),Uw=Math.pow(2,35),Pw=Math.pow(2,42),Fw=Math.pow(2,49),Mw=Math.pow(2,56),Ow=Math.pow(2,63),Rw=function(t){return t<Iw?1:t<Lw?2:t<Dw?3:t<Nw?4:t<Uw?5:t<Pw?6:t<Fw?7:t<Mw?8:t<Ow?9:10},zw={encode:Sw,decode:Cw,encodingLength:Rw},$w=zw,yn=$w;var mn=(t,e=0)=>[yn.decode(t,e),yn.decode.bytes],yr=(t,e,r=0)=>(yn.encode(t,e,r),e),mr=t=>yn.encodingLength(t);var wE=new Uint8Array(0);var Tl=(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},ot=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 Il=t=>new TextEncoder().encode(t),Ll=t=>new TextDecoder().decode(t);var Pt=(t,e)=>{let r=e.byteLength,n=mr(t),o=n+mr(r),i=new Uint8Array(o+r);return yr(t,i,0),yr(r,i,n),i.set(e,o),new gr(t,r,e,i)},wr=t=>{let e=ot(t),[r,n]=mn(e),[o,i]=mn(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new gr(r,o,s,e)},Dl=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Tl(t.bytes,r.bytes)}},gr=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var ca={};Y(ca,{base58btc:()=>He,base58flickr:()=>Kw});function Hw(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 o=0;o<t.length;o++){var i=t.charAt(o),s=i.charCodeAt(0);if(r[s]!==255)throw new TypeError(i+" is ambiguous");r[s]=o}var c=t.length,a=t.charAt(0),u=Math.log(c)/Math.log(256),l=Math.log(256)/Math.log(c);function d(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var p=0,w=0,g=0,b=h.length;g!==b&&h[g]===0;)g++,p++;for(var v=(b-g)*l+1>>>0,E=new Uint8Array(v);g!==b;){for(var T=h[g],U=0,A=v-1;(T!==0||U<w)&&A!==-1;A--,U++)T+=256*E[A]>>>0,E[A]=T%c>>>0,T=T/c>>>0;if(T!==0)throw new Error("Non-zero carry");w=U,g++}for(var P=v-w;P!==v&&E[P]===0;)P++;for(var le=a.repeat(p);P<v;++P)le+=t.charAt(E[P]);return le}function m(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var p=0;if(h[p]!==" "){for(var w=0,g=0;h[p]===a;)w++,p++;for(var b=(h.length-p)*u+1>>>0,v=new Uint8Array(b);h[p];){var E=r[h.charCodeAt(p)];if(E===255)return;for(var T=0,U=b-1;(E!==0||T<g)&&U!==-1;U--,T++)E+=c*v[U]>>>0,v[U]=E%256>>>0,E=E/256>>>0;if(E!==0)throw new Error("Non-zero carry");g=T,p++}if(h[p]!==" "){for(var A=b-g;A!==b&&v[A]===0;)A++;for(var P=new Uint8Array(w+(b-A)),le=w;A!==b;)P[le++]=v[A++];return P}}}function f(h){var p=m(h);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:m,decode:f}}var jw=Hw,Vw=jw,Nl=Vw;var oa=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")}},ia=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.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 Ul(this,e)}},sa=class{constructor(e){this.decoders=e}or(e){return Ul(this,e)}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`)}},Ul=(t,e)=>new sa({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),aa=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new oa(e,r,n),this.decoder=new ia(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},br=({name:t,prefix:e,encode:r,decode:n})=>new aa(t,e,r,n),yt=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Nl(r,e);return br({prefix:t,name:e,encode:n,decode:i=>ot(o(i))})},qw=(t,e,r,n)=>{let o={};for(let l=0;l<e.length;++l)o[e[l]]=l;let i=t.length;for(;t[i-1]==="=";)--i;let s=new Uint8Array(i*r/8|0),c=0,a=0,u=0;for(let l=0;l<i;++l){let d=o[t[l]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|d,c+=r,c>=8&&(c-=8,s[u++]=255&a>>c)}if(c>=r||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s},Ww=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,i="",s=0,c=0;for(let a=0;a<t.length;++a)for(c=c<<8|t[a],s+=8;s>r;)s-=r,i+=e[o&c>>s];if(s&&(i+=e[o&c<<r-s]),n)for(;i.length*r&7;)i+="=";return i},G=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>br({prefix:e,name:t,encode(o){return Ww(o,n,r)},decode(o){return qw(o,n,r,t)}});var He=yt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Kw=yt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ua={};Y(ua,{base32:()=>xr,base32hex:()=>Xw,base32hexpad:()=>Zw,base32hexpadupper:()=>eb,base32hexupper:()=>Yw,base32pad:()=>Qw,base32padupper:()=>Jw,base32upper:()=>Gw,base32z:()=>tb});var xr=G({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Gw=G({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Qw=G({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Jw=G({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Xw=G({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Yw=G({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Zw=G({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),eb=G({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),tb=G({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var la=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return nb(r,fa(t),e||He.encoder);default:return ob(r,fa(t),e||xr.encoder)}};var Pl=new WeakMap,fa=t=>{let e=Pl.get(t);if(e==null){let r=new Map;return Pl.set(t,r),r}return e},j=class t{constructor(e,r,n,o){this.code=r,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:r}=this;if(e!==gn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==ib)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Pt(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Dl(e.multihash,n.multihash)}toString(e){return la(this,e)}toJSON(){return{"/":la(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 r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:i,bytes:s}=r;return new t(n,o,i,s||Fl(n,o,i.bytes))}else if(r[sb]===!0){let{version:n,multihash:o,code:i}=r,s=wr(o);return t.create(n,i,s)}else return null}static create(e,r,n){if(typeof r!="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(r!==gn)throw new Error(`Version 0 CID must use dag-pb (code: ${gn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Fl(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,gn,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=ot(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let i=o.subarray(r.multihashSize-r.digestSize),s=new gr(r.multihashCode,r.digestSize,i,o);return[r.version===0?t.createV0(s):t.createV1(r.codec,s),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[d,m]=mn(e.subarray(r));return r+=m,d},o=n(),i=gn;if(o===18?(o=0,r=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=r,c=n(),a=n(),u=r+a,l=u-s;return{version:o,codec:i,multihashCode:c,digestSize:a,multihashSize:l,size:u}}static parse(e,r){let[n,o]=rb(e,r),i=t.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return fa(i).set(n,e),i}},rb=(t,e)=>{switch(t[0]){case"Q":{let r=e||He;return[He.prefix,r.decode(`${He.prefix}${t}`)]}case He.prefix:{let r=e||He;return[He.prefix,r.decode(t)]}case xr.prefix:{let r=e||xr;return[xr.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)]}}},nb=(t,e,r)=>{let{prefix:n}=r;if(n!==He.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let i=r.encode(t).slice(1);return e.set(n,i),i}else return o},ob=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let i=r.encode(t);return e.set(n,i),i}else return o},gn=112,ib=18,Fl=(t,e,r)=>{let n=mr(t),o=n+mr(e),i=new Uint8Array(o+r.byteLength);return yr(t,i,0),yr(e,i,n),i.set(r,o),i},sb=Symbol.for("@ipld/js-cid/CID");var Ml=(t,e)=>j.parse(t,e);var je,_e=class{constructor(e){nt(this,je,new Map);e&&fe(this,je,new Map(e.map(r=>[r.cid.toString(),r.bytes])))}async get(e){let r=Z(this,je).get(e.toString());if(r)return{cid:e,bytes:r}}async put(e,r){Z(this,je).set(e.toString(),r)}putSync(e,r){Z(this,je).set(e.toString(),r)}async delete(e){Z(this,je).delete(e.toString())}deleteSync(e){Z(this,je).delete(e.toString())}*entries(){for(let[e,r]of Z(this,je))yield{cid:Ml(e),bytes:r}}};je=new WeakMap;var wn,Mt=class{constructor(...e){nt(this,wn,void 0);fe(this,wn,e)}async get(e){for(let r of Z(this,wn)){let n=await r.get(e);if(n)return n}}};wn=new WeakMap;var da=class{constructor(e){k(this,"value");k(this,"next");this.value=e}},Ve,Ot,Rt,bn=class{constructor(){nt(this,Ve,void 0);nt(this,Ot,void 0);nt(this,Rt,void 0);this.clear()}enqueue(e){let r=new da(e);Z(this,Ve)?(Z(this,Ot).next=r,fe(this,Ot,r)):(fe(this,Ve,r),fe(this,Ot,r)),Zs(this,Rt)._++}dequeue(){let e=Z(this,Ve);if(e)return fe(this,Ve,Z(this,Ve).next),Zs(this,Rt)._--,e.value}clear(){fe(this,Ve,void 0),fe(this,Ot,void 0),fe(this,Rt,0)}get size(){return Z(this,Rt)}*[Symbol.iterator](){let e=Z(this,Ve);for(;e;)yield e.value,e=e.next}};Ve=new WeakMap,Ot=new WeakMap,Rt=new WeakMap;function xn(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new bn,r=0,n=()=>{r--,e.size>0&&e.dequeue()()},o=async(c,a,u)=>{r++;let l=(async()=>c(...u))();a(l);try{await l}catch{}n()},i=(c,a,u)=>{e.enqueue(o.bind(void 0,c,a,u)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},s=(c,...a)=>new Promise(u=>{i(c,u,a)});return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),s}var q={};Y(q,{code:()=>La,decode:()=>Tr,encode:()=>Yo,name:()=>b0});var ab=["string","number","bigint","symbol"],cb=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ol(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(ab.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(ub(t))return"Buffer";let r=lb(t);return r||"Object"}function ub(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function lb(t){let e=Object.prototype.toString.call(t).slice(8,-1);if(cb.includes(e))return e}var y=class{constructor(e,r,n){this.major=e,this.majorEncoded=e<<5,this.name=r,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};y.uint=new y(0,"uint",!0);y.negint=new y(1,"negint",!0);y.bytes=new y(2,"bytes",!0);y.string=new y(3,"string",!0);y.array=new y(4,"array",!1);y.map=new y(5,"map",!1);y.tag=new y(6,"tag",!1);y.float=new y(7,"float",!0);y.false=new y(7,"false",!0);y.true=new y(7,"true",!0);y.null=new y(7,"null",!0);y.undefined=new y(7,"undefined",!0);y.break=new y(7,"break",!0);var S=class{constructor(e,r,n){this.type=e,this.value=r,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var kr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",fb=new TextDecoder,db=new TextEncoder;function Ro(t){return kr&&globalThis.Buffer.isBuffer(t)}function kn(t){return t instanceof Uint8Array?Ro(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var Hl=kr?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):zl(t,e,r):(t,e,r)=>r-e>64?fb.decode(t.subarray(e,r)):zl(t,e,r),zo=kr?t=>t.length>64?globalThis.Buffer.from(t):Rl(t):t=>t.length>64?db.encode(t):Rl(t),qe=t=>Uint8Array.from(t),vr=kr?(t,e,r)=>Ro(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),jl=kr?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),kn(globalThis.Buffer.concat(t,e))):(t,e)=>{let r=new Uint8Array(e),n=0;for(let o of t)n+o.length>r.length&&(o=o.subarray(0,r.length-n)),r.set(o,n),n+=o.length;return r},Vl=kr?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function ql(t,e){if(Ro(t)&&Ro(e))return t.compare(e);for(let r=0;r<t.length;r++)if(t[r]!==e[r])return t[r]<e[r]?-1:1;return 0}function Rl(t,e=1/0){let r,n=t.length,o=null,i=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}else if(s+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return i}function zl(t,e,r){let n=[];for(;e<r;){let o=t[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=r){let c,a,u,l;switch(s){case 1:o<128&&(i=o);break;case 2:c=t[e+1],(c&192)===128&&(l=(o&31)<<6|c&63,l>127&&(i=l));break;case 3:c=t[e+1],a=t[e+2],(c&192)===128&&(a&192)===128&&(l=(o&15)<<12|(c&63)<<6|a&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=t[e+1],a=t[e+2],u=t[e+3],(c&192)===128&&(a&192)===128&&(u&192)===128&&(l=(o&15)<<18|(c&63)<<12|(a&63)<<6|u&63,l>65535&&l<1114112&&(i=l))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return ha(n)}var $l=4096;function ha(t){let e=t.length;if(e<=$l)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=$l));return r}var hb=256,vn=class{constructor(e=hb){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let r=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=r.length-(this.maxCursor-this.cursor)-1;r.set(e,o)}else{if(r){let o=r.length-(this.maxCursor-this.cursor)-1;o<r.length&&(this.chunks[this.chunks.length-1]=r.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(r=Vl(this.chunkSize),this.chunks.push(r),this.maxCursor+=r.length,this._initReuseChunk===null&&(this._initReuseChunk=r),r.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let r;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(r=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):r=vr(n,0,this.cursor)}else r=jl(this.chunks,this.cursor);return e&&this.reset(),r}};var I="CBOR decode error:",it="CBOR encode error:",En=[];En[23]=1;En[24]=2;En[25]=3;En[26]=5;En[27]=9;function st(t,e,r){if(t.length-e<r)throw new Error(`${I} not enough data for type`)}var ee=[24,256,65536,4294967296,BigInt("18446744073709551616")];function ye(t,e,r){st(t,e,1);let n=t[e];if(r.strict===!0&&n<ee[0])throw new Error(`${I} integer encoded in more bytes than necessary (strict decode)`);return n}function me(t,e,r){st(t,e,2);let n=t[e]<<8|t[e+1];if(r.strict===!0&&n<ee[1])throw new Error(`${I} integer encoded in more bytes than necessary (strict decode)`);return n}function ge(t,e,r){st(t,e,4);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3];if(r.strict===!0&&n<ee[2])throw new Error(`${I} integer encoded in more bytes than necessary (strict decode)`);return n}function we(t,e,r){st(t,e,8);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3],o=t[e+4]*16777216+(t[e+5]<<16)+(t[e+6]<<8)+t[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(r.strict===!0&&i<ee[3])throw new Error(`${I} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(r.allowBigInt===!0)return i;throw new Error(`${I} integers outside of the safe integer range are not supported`)}function Wl(t,e,r,n){return new S(y.uint,ye(t,e+1,n),2)}function Kl(t,e,r,n){return new S(y.uint,me(t,e+1,n),3)}function Gl(t,e,r,n){return new S(y.uint,ge(t,e+1,n),5)}function Ql(t,e,r,n){return new S(y.uint,we(t,e+1,n),9)}function Be(t,e){return ne(t,0,e.value)}function ne(t,e,r){if(r<ee[0]){let n=Number(r);t.push([e|n])}else if(r<ee[1]){let n=Number(r);t.push([e|24,n])}else if(r<ee[2]){let n=Number(r);t.push([e|25,n>>>8,n&255])}else if(r<ee[3]){let n=Number(r);t.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(r);if(n<ee[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,t.push(o)}else throw new Error(`${I} encountered BigInt larger than allowable range`)}}Be.encodedSize=function(e){return ne.encodedSize(e.value)};ne.encodedSize=function(e){return e<ee[0]?1:e<ee[1]?2:e<ee[2]?3:e<ee[3]?5:9};Be.compareTokens=function(e,r){return e.value<r.value?-1:e.value>r.value?1:0};function Jl(t,e,r,n){return new S(y.negint,-1-ye(t,e+1,n),2)}function Xl(t,e,r,n){return new S(y.negint,-1-me(t,e+1,n),3)}function Yl(t,e,r,n){return new S(y.negint,-1-ge(t,e+1,n),5)}var pa=BigInt(-1),Zl=BigInt(1);function ef(t,e,r,n){let o=we(t,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new S(y.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${I} integers outside of the safe integer range are not supported`);return new S(y.negint,pa-BigInt(o),9)}function $o(t,e){let r=e.value,n=typeof r=="bigint"?r*pa-Zl:r*-1-1;ne(t,e.type.majorEncoded,n)}$o.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*pa-Zl:r*-1-1;return n<ee[0]?1:n<ee[1]?2:n<ee[2]?3:n<ee[3]?5:9};$o.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function Sn(t,e,r,n){st(t,e,r+n);let o=vr(t,e+r,e+r+n);return new S(y.bytes,o,r+n)}function tf(t,e,r,n){return Sn(t,e,1,r)}function rf(t,e,r,n){return Sn(t,e,2,ye(t,e+1,n))}function nf(t,e,r,n){return Sn(t,e,3,me(t,e+1,n))}function of(t,e,r,n){return Sn(t,e,5,ge(t,e+1,n))}function sf(t,e,r,n){let o=we(t,e+1,n);if(typeof o=="bigint")throw new Error(`${I} 64-bit integer bytes lengths not supported`);return Sn(t,e,9,o)}function Ho(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===y.string?zo(t.value):t.value),t.encodedBytes}function Er(t,e){let r=Ho(e);ne(t,e.type.majorEncoded,r.length),t.push(r)}Er.encodedSize=function(e){let r=Ho(e);return ne.encodedSize(r.length)+r.length};Er.compareTokens=function(e,r){return yb(Ho(e),Ho(r))};function yb(t,e){return t.length<e.length?-1:t.length>e.length?1:ql(t,e)}function An(t,e,r,n,o){let i=r+n;st(t,e,i);let s=new S(y.string,Hl(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=vr(t,e+r,e+i)),s}function af(t,e,r,n){return An(t,e,1,r,n)}function cf(t,e,r,n){return An(t,e,2,ye(t,e+1,n),n)}function uf(t,e,r,n){return An(t,e,3,me(t,e+1,n),n)}function lf(t,e,r,n){return An(t,e,5,ge(t,e+1,n),n)}function ff(t,e,r,n){let o=we(t,e+1,n);if(typeof o=="bigint")throw new Error(`${I} 64-bit integer string lengths not supported`);return An(t,e,9,o,n)}var df=Er;function Sr(t,e,r,n){return new S(y.array,n,r)}function hf(t,e,r,n){return Sr(t,e,1,r)}function pf(t,e,r,n){return Sr(t,e,2,ye(t,e+1,n))}function yf(t,e,r,n){return Sr(t,e,3,me(t,e+1,n))}function mf(t,e,r,n){return Sr(t,e,5,ge(t,e+1,n))}function gf(t,e,r,n){let o=we(t,e+1,n);if(typeof o=="bigint")throw new Error(`${I} 64-bit integer array lengths not supported`);return Sr(t,e,9,o)}function wf(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${I} indefinite length items not allowed`);return Sr(t,e,1,1/0)}function jo(t,e){ne(t,y.array.majorEncoded,e.value)}jo.compareTokens=Be.compareTokens;jo.encodedSize=function(e){return ne.encodedSize(e.value)};function Ar(t,e,r,n){return new S(y.map,n,r)}function bf(t,e,r,n){return Ar(t,e,1,r)}function xf(t,e,r,n){return Ar(t,e,2,ye(t,e+1,n))}function kf(t,e,r,n){return Ar(t,e,3,me(t,e+1,n))}function vf(t,e,r,n){return Ar(t,e,5,ge(t,e+1,n))}function Ef(t,e,r,n){let o=we(t,e+1,n);if(typeof o=="bigint")throw new Error(`${I} 64-bit integer map lengths not supported`);return Ar(t,e,9,o)}function Sf(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${I} indefinite length items not allowed`);return Ar(t,e,1,1/0)}function Vo(t,e){ne(t,y.map.majorEncoded,e.value)}Vo.compareTokens=Be.compareTokens;Vo.encodedSize=function(e){return ne.encodedSize(e.value)};function Af(t,e,r,n){return new S(y.tag,r,1)}function _f(t,e,r,n){return new S(y.tag,ye(t,e+1,n),2)}function Bf(t,e,r,n){return new S(y.tag,me(t,e+1,n),3)}function Cf(t,e,r,n){return new S(y.tag,ge(t,e+1,n),5)}function Tf(t,e,r,n){return new S(y.tag,we(t,e+1,n),9)}function qo(t,e){ne(t,y.tag.majorEncoded,e.value)}qo.compareTokens=Be.compareTokens;qo.encodedSize=function(e){return ne.encodedSize(e.value)};var kb=20,vb=21,Eb=22,Sb=23;function If(t,e,r,n){if(n.allowUndefined===!1)throw new Error(`${I} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new S(y.null,null,1):new S(y.undefined,void 0,1)}function Lf(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${I} indefinite length items not allowed`);return new S(y.break,void 0,1)}function ya(t,e,r){if(r){if(r.allowNaN===!1&&Number.isNaN(t))throw new Error(`${I} NaN values are not supported`);if(r.allowInfinity===!1&&(t===1/0||t===-1/0))throw new Error(`${I} Infinity values are not supported`)}return new S(y.float,t,e)}function Df(t,e,r,n){return ya(ma(t,e+1),3,n)}function Nf(t,e,r,n){return ya(ga(t,e+1),5,n)}function Uf(t,e,r,n){return ya(Of(t,e+1),9,n)}function Wo(t,e,r){let n=e.value;if(n===!1)t.push([y.float.majorEncoded|kb]);else if(n===!0)t.push([y.float.majorEncoded|vb]);else if(n===null)t.push([y.float.majorEncoded|Eb]);else if(n===void 0)t.push([y.float.majorEncoded|Sb]);else{let o,i=!1;(!r||r.float64!==!0)&&(Ff(n),o=ma(Ne,1),n===o||Number.isNaN(n)?(Ne[0]=249,t.push(Ne.slice(0,3)),i=!0):(Mf(n),o=ga(Ne,1),n===o&&(Ne[0]=250,t.push(Ne.slice(0,5)),i=!0))),i||(Ab(n),o=Of(Ne,1),Ne[0]=251,t.push(Ne.slice(0,9)))}}Wo.encodedSize=function(e,r){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!r||r.float64!==!0){Ff(n);let o=ma(Ne,1);if(n===o||Number.isNaN(n))return 3;if(Mf(n),o=ga(Ne,1),n===o)return 5}return 9};var Pf=new ArrayBuffer(9),Ce=new DataView(Pf,1),Ne=new Uint8Array(Pf,0);function Ff(t){if(t===1/0)Ce.setUint16(0,31744,!1);else if(t===-1/0)Ce.setUint16(0,64512,!1);else if(Number.isNaN(t))Ce.setUint16(0,32256,!1);else{Ce.setFloat32(0,t);let e=Ce.getUint32(0),r=(e&2139095040)>>23,n=e&8388607;if(r===255)Ce.setUint16(0,31744,!1);else if(r===0)Ce.setUint16(0,(t&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?Ce.setUint16(0,0):o<-14?Ce.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):Ce.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function ma(t,e){if(t.length-e<2)throw new Error(`${I} not enough data for float16`);let r=(t[e]<<8)+t[e+1];if(r===31744)return 1/0;if(r===64512)return-1/0;if(r===32256)return NaN;let n=r>>10&31,o=r&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,r&32768?-i:i}function Mf(t){Ce.setFloat32(0,t,!1)}function ga(t,e){if(t.length-e<4)throw new Error(`${I} not enough data for float32`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,4).getFloat32(0,!1)}function Ab(t){Ce.setFloat64(0,t,!1)}function Of(t,e){if(t.length-e<8)throw new Error(`${I} not enough data for float64`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,8).getFloat64(0,!1)}Wo.compareTokens=Be.compareTokens;function R(t,e,r){throw new Error(`${I} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function Ko(t){return()=>{throw new Error(`${I} ${t}`)}}var _=[];for(let t=0;t<=23;t++)_[t]=R;_[24]=Wl;_[25]=Kl;_[26]=Gl;_[27]=Ql;_[28]=R;_[29]=R;_[30]=R;_[31]=R;for(let t=32;t<=55;t++)_[t]=R;_[56]=Jl;_[57]=Xl;_[58]=Yl;_[59]=ef;_[60]=R;_[61]=R;_[62]=R;_[63]=R;for(let t=64;t<=87;t++)_[t]=tf;_[88]=rf;_[89]=nf;_[90]=of;_[91]=sf;_[92]=R;_[93]=R;_[94]=R;_[95]=Ko("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)_[t]=af;_[120]=cf;_[121]=uf;_[122]=lf;_[123]=ff;_[124]=R;_[125]=R;_[126]=R;_[127]=Ko("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)_[t]=hf;_[152]=pf;_[153]=yf;_[154]=mf;_[155]=gf;_[156]=R;_[157]=R;_[158]=R;_[159]=wf;for(let t=160;t<=183;t++)_[t]=bf;_[184]=xf;_[185]=kf;_[186]=vf;_[187]=Ef;_[188]=R;_[189]=R;_[190]=R;_[191]=Sf;for(let t=192;t<=215;t++)_[t]=Af;_[216]=_f;_[217]=Bf;_[218]=Cf;_[219]=Tf;_[220]=R;_[221]=R;_[222]=R;_[223]=R;for(let t=224;t<=243;t++)_[t]=Ko("simple values are not supported");_[244]=R;_[245]=R;_[246]=R;_[247]=If;_[248]=Ko("simple values are not supported");_[249]=Df;_[250]=Nf;_[251]=Uf;_[252]=R;_[253]=R;_[254]=R;_[255]=Lf;var Ue=[];for(let t=0;t<24;t++)Ue[t]=new S(y.uint,t,1);for(let t=-1;t>=-24;t--)Ue[31-t]=new S(y.negint,t,1);Ue[64]=new S(y.bytes,new Uint8Array(0),1);Ue[96]=new S(y.string,"",1);Ue[128]=new S(y.array,0,1);Ue[160]=new S(y.map,0,1);Ue[244]=new S(y.false,!1,1);Ue[245]=new S(y.true,!0,1);Ue[246]=new S(y.null,null,1);function Rf(t){switch(t.type){case y.false:return qe([244]);case y.true:return qe([245]);case y.null:return qe([246]);case y.bytes:return t.value.length?void 0:qe([64]);case y.string:return t.value===""?qe([96]):void 0;case y.array:return t.value===0?qe([128]):void 0;case y.map:return t.value===0?qe([160]):void 0;case y.uint:return t.value<24?qe([Number(t.value)]):void 0;case y.negint:if(t.value>=-24)return qe([31-Number(t.value)])}}var Bb={float64:!1,mapSorter:Ib,quickEncodeToken:Rf};function Cb(){let t=[];return t[y.uint.major]=Be,t[y.negint.major]=$o,t[y.bytes.major]=Er,t[y.string.major]=df,t[y.array.major]=jo,t[y.map.major]=Vo,t[y.tag.major]=qo,t[y.float.major]=Wo,t}var zf=Cb(),wa=new vn,Qo=class t{constructor(e,r){this.obj=e,this.parent=r}includes(e){let r=this;do if(r.obj===e)return!0;while(r=r.parent);return!1}static createCheck(e,r){if(e&&e.includes(r))throw new Error(`${it} object contains circular references`);return new t(r,e)}},mt={null:new S(y.null,null),undefined:new S(y.undefined,void 0),true:new S(y.true,!0),false:new S(y.false,!1),emptyArray:new S(y.array,0),emptyMap:new S(y.map,0)},gt={number(t,e,r,n){return!Number.isInteger(t)||!Number.isSafeInteger(t)?new S(y.float,t):t>=0?new S(y.uint,t):new S(y.negint,t)},bigint(t,e,r,n){return t>=BigInt(0)?new S(y.uint,t):new S(y.negint,t)},Uint8Array(t,e,r,n){return new S(y.bytes,t)},string(t,e,r,n){return new S(y.string,t)},boolean(t,e,r,n){return t?mt.true:mt.false},null(t,e,r,n){return mt.null},undefined(t,e,r,n){return mt.undefined},ArrayBuffer(t,e,r,n){return new S(y.bytes,new Uint8Array(t))},DataView(t,e,r,n){return new S(y.bytes,new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},Array(t,e,r,n){if(!t.length)return r.addBreakTokens===!0?[mt.emptyArray,new S(y.break)]:mt.emptyArray;n=Qo.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=Go(s,r,n);return r.addBreakTokens?[new S(y.array,t.length),o,new S(y.break)]:[new S(y.array,t.length),o]},Object(t,e,r,n){let o=e!=="Object",i=o?t.keys():Object.keys(t),s=o?t.size:i.length;if(!s)return r.addBreakTokens===!0?[mt.emptyMap,new S(y.break)]:mt.emptyMap;n=Qo.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[Go(u,r,n),Go(o?t.get(u):t[u],r,n)];return Tb(c,r),r.addBreakTokens?[new S(y.map,s),c,new S(y.break)]:[new S(y.map,s),c]}};gt.Map=gt.Object;gt.Buffer=gt.Uint8Array;for(let t of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))gt[`${t}Array`]=gt.DataView;function Go(t,e={},r){let n=Ol(t),o=e&&e.typeEncoders&&e.typeEncoders[n]||gt[n];if(typeof o=="function"){let s=o(t,n,e,r);if(s!=null)return s}let i=gt[n];if(!i)throw new Error(`${it} unsupported type: ${n}`);return i(t,n,e,r)}function Tb(t,e){e.mapSorter&&t.sort(e.mapSorter)}function Ib(t,e){let r=Array.isArray(t[0])?t[0][0]:t[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(r.type!==n.type)return r.type.compare(n.type);let o=r.type.major,i=zf[o].compareTokens(r,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function $f(t,e,r,n){if(Array.isArray(e))for(let o of e)$f(t,o,r,n);else r[e.type.major](t,e,n)}function ba(t,e,r){let n=Go(t,r);if(!Array.isArray(n)&&r.quickEncodeToken){let o=r.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,r),c=new vn(s);if(i(c,n,r),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return kn(c.chunks[0])}}return wa.reset(),$f(wa,n,e,r),wa.toBytes(!0)}function xa(t,e){return e=Object.assign({},Bb,e),ba(t,zf,e)}var Lb={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},ka=class{constructor(e,r={}){this.pos=0,this.data=e,this.options=r}done(){return this.pos>=this.data.length}next(){let e=this.data[this.pos],r=Ue[e];if(r===void 0){let n=_[e];if(!n)throw new Error(`${I} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;r=n(this.data,this.pos,o,this.options)}return this.pos+=r.encodedLength,r}},_n=Symbol.for("DONE"),Jo=Symbol.for("BREAK");function Db(t,e,r){let n=[];for(let o=0;o<t.value;o++){let i=Bn(e,r);if(i===Jo){if(t.value===1/0)break;throw new Error(`${I} got unexpected break to lengthed array`)}if(i===_n)throw new Error(`${I} found array but not enough entries (got ${o}, expected ${t.value})`);n[o]=i}return n}function Nb(t,e,r){let n=r.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<t.value;s++){let c=Bn(e,r);if(c===Jo){if(t.value===1/0)break;throw new Error(`${I} got unexpected break to lengthed map`)}if(c===_n)throw new Error(`${I} found map but not enough entries (got ${s} [no key], expected ${t.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${I} non-string keys not supported (got ${typeof c})`);if(r.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${I} found repeat map key "${c}"`);let a=Bn(e,r);if(a===_n)throw new Error(`${I} found map but not enough entries (got ${s} [no value], expected ${t.value})`);n?i.set(c,a):o[c]=a}return n?i:o}function Bn(t,e){if(t.done())return _n;let r=t.next();if(r.type===y.break)return Jo;if(r.type.terminal)return r.value;if(r.type===y.array)return Db(r,t,e);if(r.type===y.map)return Nb(r,t,e);if(r.type===y.tag){if(e.tags&&typeof e.tags[r.value]=="function"){let n=Bn(t,e);return e.tags[r.value](n)}throw new Error(`${I} tag not supported (${r.value})`)}throw new Error("unsupported")}function Cn(t,e){if(!(t instanceof Uint8Array))throw new Error(`${I} data to decode must be a Uint8Array`);e=Object.assign({},Lb,e);let r=e.tokenizer||new ka(t,e),n=Bn(r,e);if(n===_n)throw new Error(`${I} did not find any content to decode`);if(n===Jo)throw new Error(`${I} got unexpected break`);if(!r.done())throw new Error(`${I} too many terminals, data makes no sense`);return n}var Pb=Vf,Hf=128,Fb=127,Mb=~Fb,Ob=Math.pow(2,31);function Vf(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Ob;)e[r++]=t&255|Hf,t/=128;for(;t&Mb;)e[r++]=t&255|Hf,t>>>=7;return e[r]=t|0,Vf.bytes=r-n+1,e}var Rb=va,zb=128,jf=127;function va(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw va.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&jf)<<o:(s&jf)*Math.pow(2,o),o+=7}while(s>=zb);return va.bytes=i-n,r}var $b=Math.pow(2,7),Hb=Math.pow(2,14),jb=Math.pow(2,21),Vb=Math.pow(2,28),qb=Math.pow(2,35),Wb=Math.pow(2,42),Kb=Math.pow(2,49),Gb=Math.pow(2,56),Qb=Math.pow(2,63),Jb=function(t){return t<$b?1:t<Hb?2:t<jb?3:t<Vb?4:t<qb?5:t<Wb?6:t<Kb?7:t<Gb?8:t<Qb?9:10},Xb={encode:Pb,decode:Rb,encodingLength:Jb},Yb=Xb,Tn=Yb;var In=(t,e=0)=>[Tn.decode(t,e),Tn.decode.bytes],_r=(t,e,r=0)=>(Tn.encode(t,e,r),e),Br=t=>Tn.encodingLength(t);var $t={};Y($t,{coerce:()=>Te,empty:()=>qf,equals:()=>Sa,fromHex:()=>e0,fromString:()=>r0,isBinary:()=>t0,toHex:()=>Zb,toString:()=>n0});var qf=new Uint8Array(0),Zb=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),""),e0=t=>{let e=t.match(/../g);return e?new Uint8Array(e.map(r=>parseInt(r,16))):qf},Sa=(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},Te=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")},t0=t=>t instanceof ArrayBuffer||ArrayBuffer.isView(t),r0=t=>new TextEncoder().encode(t),n0=t=>new TextDecoder().decode(t);var Ht=(t,e)=>{let r=e.byteLength,n=Br(t),o=n+Br(r),i=new Uint8Array(o+r);return _r(t,i,0),_r(r,i,n),i.set(e,o),new Cr(t,r,e,i)},Xo=t=>{let e=Te(t),[r,n]=In(e),[o,i]=In(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Cr(r,o,s,e)},Wf=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Sa(t.bytes,r.bytes)}},Cr=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};function o0(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 o=0;o<t.length;o++){var i=t.charAt(o),s=i.charCodeAt(0);if(r[s]!==255)throw new TypeError(i+" is ambiguous");r[s]=o}var c=t.length,a=t.charAt(0),u=Math.log(c)/Math.log(256),l=Math.log(256)/Math.log(c);function d(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var p=0,w=0,g=0,b=h.length;g!==b&&h[g]===0;)g++,p++;for(var v=(b-g)*l+1>>>0,E=new Uint8Array(v);g!==b;){for(var T=h[g],U=0,A=v-1;(T!==0||U<w)&&A!==-1;A--,U++)T+=256*E[A]>>>0,E[A]=T%c>>>0,T=T/c>>>0;if(T!==0)throw new Error("Non-zero carry");w=U,g++}for(var P=v-w;P!==v&&E[P]===0;)P++;for(var le=a.repeat(p);P<v;++P)le+=t.charAt(E[P]);return le}function m(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var p=0;if(h[p]!==" "){for(var w=0,g=0;h[p]===a;)w++,p++;for(var b=(h.length-p)*u+1>>>0,v=new Uint8Array(b);h[p];){var E=r[h.charCodeAt(p)];if(E===255)return;for(var T=0,U=b-1;(E!==0||T<g)&&U!==-1;U--,T++)E+=c*v[U]>>>0,v[U]=E%256>>>0,E=E/256>>>0;if(E!==0)throw new Error("Non-zero carry");g=T,p++}if(h[p]!==" "){for(var A=b-g;A!==b&&v[A]===0;)A++;for(var P=new Uint8Array(w+(b-A)),le=w;A!==b;)P[le++]=v[A++];return P}}}function f(h){var p=m(h);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:m,decode:f}}var i0=o0,s0=i0,Kf=s0;var Aa=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")}},_a=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.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 Gf(this,e)}},Ba=class{constructor(e){this.decoders=e}or(e){return Gf(this,e)}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`)}},Gf=(t,e)=>new Ba({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Ca=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Aa(e,r,n),this.decoder=new _a(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Qf=({name:t,prefix:e,encode:r,decode:n})=>new Ca(t,e,r,n),Ta=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Kf(r,e);return Qf({prefix:t,name:e,encode:n,decode:i=>Te(o(i))})},a0=(t,e,r,n)=>{let o={};for(let l=0;l<e.length;++l)o[e[l]]=l;let i=t.length;for(;t[i-1]==="=";)--i;let s=new Uint8Array(i*r/8|0),c=0,a=0,u=0;for(let l=0;l<i;++l){let d=o[t[l]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|d,c+=r,c>=8&&(c-=8,s[u++]=255&a>>c)}if(c>=r||255&a<<8-c)throw new SyntaxError("Unexpected end of data");return s},c0=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,i="",s=0,c=0;for(let a=0;a<t.length;++a)for(c=c<<8|t[a],s+=8;s>r;)s-=r,i+=e[o&c>>s];if(s&&(i+=e[o&c<<r-s]),n)for(;i.length*r&7;)i+="=";return i},ae=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Qf({prefix:e,name:t,encode(o){return c0(o,n,r)},decode(o){return a0(o,n,r,t)}});var at=Ta({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),GS=Ta({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Dn=ae({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),XS=ae({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),YS=ae({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ZS=ae({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),eA=ae({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),tA=ae({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),rA=ae({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),nA=ae({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),oA=ae({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Jf=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return l0(r,Ia(t),e||at.encoder);default:return f0(r,Ia(t),e||Dn.encoder)}};var Xf=new WeakMap,Ia=t=>{let e=Xf.get(t);if(e==null){let r=new Map;return Xf.set(t,r),r}return e},V=class t{constructor(e,r,n,o){this.code=r,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:r}=this;if(e!==Nn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==d0)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Ht(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Wf(e.multihash,n.multihash)}toString(e){return Jf(this,e)}toJSON(){return{"/":Jf(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 r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:i,bytes:s}=r;return new t(n,o,i,s||Yf(n,o,i.bytes))}else if(r[h0]===!0){let{version:n,multihash:o,code:i}=r,s=Xo(o);return t.create(n,i,s)}else return null}static create(e,r,n){if(typeof r!="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(r!==Nn)throw new Error(`Version 0 CID must use dag-pb (code: ${Nn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Yf(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Nn,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=Te(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let i=o.subarray(r.multihashSize-r.digestSize),s=new Cr(r.multihashCode,r.digestSize,i,o);return[r.version===0?t.createV0(s):t.createV1(r.codec,s),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[d,m]=In(e.subarray(r));return r+=m,d},o=n(),i=Nn;if(o===18?(o=0,r=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=r,c=n(),a=n(),u=r+a,l=u-s;return{version:o,codec:i,multihashCode:c,digestSize:a,multihashSize:l,size:u}}static parse(e,r){let[n,o]=u0(e,r),i=t.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ia(i).set(n,e),i}},u0=(t,e)=>{switch(t[0]){case"Q":{let r=e||at;return[at.prefix,r.decode(`${at.prefix}${t}`)]}case at.prefix:{let r=e||at;return[at.prefix,r.decode(t)]}case Dn.prefix:{let r=e||Dn;return[Dn.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)]}}},l0=(t,e,r)=>{let{prefix:n}=r;if(n!==at.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let i=r.encode(t).slice(1);return e.set(n,i),i}else return o},f0=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let i=r.encode(t);return e.set(n,i),i}else return o},Nn=112,d0=18,Yf=(t,e,r)=>{let n=Br(t),o=n+Br(e),i=new Uint8Array(o+r.byteLength);return _r(t,i,0),_r(e,i,n),i.set(r,o),i},h0=Symbol.for("@ipld/js-cid/CID");var Zf=42;function p0(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=V.asCID(t);if(!e)return null;let r=new Uint8Array(e.bytes.byteLength+1);return r.set(e.bytes,1),[new S(y.tag,Zf),new S(y.bytes,r)]}function y0(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function m0(t){if(Number.isNaN(t))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(t===1/0||t===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var g0={float64:!0,typeEncoders:{Object:p0,undefined:y0,number:m0}};function w0(t){if(t[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return V.decode(t.subarray(1))}var ed={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};ed.tags[Zf]=w0;var b0="dag-cbor",La=113,Yo=t=>xa(t,g0),Tr=t=>Cn(t,ed);var wt={Null:t=>t===null,Int:t=>Number.isInteger(t),Float:t=>typeof t=="number"&&Number.isFinite(t),String:t=>typeof t=="string",Bool:t=>typeof t=="boolean",Bytes:t=>t instanceof Uint8Array,Link:t=>!wt.Null(t)&&typeof t=="object"&&t.asCID===t,List:t=>Array.isArray(t),Map:t=>!wt.Null(t)&&typeof t=="object"&&t.asCID!==t&&!wt.List(t)&&!wt.Bytes(t)},Ir={Int:wt.Int,"CarHeader > version":t=>Ir.Int(t),"CarHeader > roots (anon) > valueType (anon)":wt.Link,"CarHeader > roots (anon)":t=>wt.List(t)&&Array.prototype.every.call(t,Ir["CarHeader > roots (anon) > valueType (anon)"]),"CarHeader > roots":t=>Ir["CarHeader > roots (anon)"](t),CarHeader:t=>{let e=t&&Object.keys(t);return wt.Map(t)&&["version"].every(r=>e.includes(r))&&Object.entries(t).every(([r,n])=>Ir["CarHeader > "+r]&&Ir["CarHeader > "+r](n))}},Da=Ir.CarHeader;var bt=W(Zo(),1),Un={SHA2_256:18,LENGTH:32,DAG_PB:112},Pa=16+8+8+8;function Lr(t,e){if(!t.length)throw new Error("Unexpected end of data");let r=bt.default.decode(t);return e.seek(bt.default.decode.bytes),r}function Fa(t){let e=new DataView(t.buffer,t.byteOffset,t.byteLength),r=0;return{version:2,characteristics:[e.getBigUint64(r,!0),e.getBigUint64(r+=8,!0)],dataOffset:Number(e.getBigUint64(r+=8,!0)),dataSize:Number(e.getBigUint64(r+=8,!0)),indexOffset:Number(e.getBigUint64(r+=8,!0))}}function Ma(t){bt.default.decode(t);let e=bt.default.decode.bytes,r=bt.default.decode(t.subarray(bt.default.decode.bytes)),n=bt.default.decode.bytes;return e+n+r}async function Oa(t,e){let r=Lr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR header (zero length)");let n=await t.exactly(r,!0),o=Tr(n);if(!Da(o))throw new Error("Invalid CAR header format");if(o.version!==1&&o.version!==2||e!==void 0&&o.version!==e)throw new Error(`Invalid CAR version: ${o.version}${e!==void 0?` (expected ${e})`:""}`);let i=Array.isArray(o.roots);if(o.version===1&&!i||o.version===2&&i)throw new Error("Invalid CAR header format");if(o.version===1)return o;let s=Fa(await t.exactly(Pa,!0));t.seek(s.dataOffset-t.pos);let c=await Oa(t,1);return Object.assign(c,s)}async function N0(t){let e=await t.exactly(2,!1);if(e[0]===Un.SHA2_256&&e[1]===Un.LENGTH){let s=await t.exactly(34,!0),c=wr(s);return j.create(0,Un.DAG_PB,c)}let r=Lr(await t.upTo(8),t);if(r!==1)throw new Error(`Unexpected CID version (${r})`);let n=Lr(await t.upTo(8),t),o=await t.exactly(Ma(await t.upTo(8)),!0),i=wr(o);return j.create(r,n,i)}async function ld(t){let e=t.pos,r=Lr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR section (zero length)");r+=t.pos-e;let n=await N0(t),o=r-Number(t.pos-e);return{cid:n,length:r,blockLength:o}}async function U0(t){let{cid:e,blockLength:r}=await ld(t);return{bytes:await t.exactly(r,!0),cid:e}}async function P0(t){let e=t.pos,{cid:r,length:n,blockLength:o}=await ld(t),i={cid:r,length:n,blockLength:o,offset:e,blockOffset:t.pos};return t.seek(i.blockLength),i}function Dr(t){let e=(async()=>{let r=await Oa(t);if(r.version===2){let n=t.pos-r.dataOffset;t=M0(t,r.dataSize-n)}return r})();return{header:()=>e,async*blocks(){for(await e;(await t.upTo(8)).length>0;)yield await U0(t)},async*blocksIndex(){for(await e;(await t.upTo(8)).length>0;)yield await P0(t)}}}function jt(t){let e=0;return{async upTo(r){return t.subarray(e,e+Math.min(r,t.length-e))},async exactly(r,n=!1){if(r>t.length-e)throw new Error("Unexpected end of data");let o=t.subarray(e,e+r);return n&&(e+=r),o},seek(r){e+=r},get pos(){return e}}}function F0(t){let e=0,r=0,n=0,o=new Uint8Array(0),i=async s=>{r=o.length-n;let c=[o.subarray(n)];for(;r<s;){let u=await t();if(u==null)break;r<0?u.length>r&&c.push(u.subarray(-r)):c.push(u),r+=u.length}o=new Uint8Array(c.reduce((u,l)=>u+l.length,0));let a=0;for(let u of c)o.set(u,a),a+=u.length;n=0};return{async upTo(s){return o.length-n<s&&await i(s),o.subarray(n,n+Math.min(o.length-n,s))},async exactly(s,c=!1){if(o.length-n<s&&await i(s),o.length-n<s)throw new Error("Unexpected end of data");let a=o.subarray(n,n+s);return c&&(e+=s,n+=s),a},seek(s){e+=s,n+=s},get pos(){return e}}}function Nr(t){let e=t[Symbol.asyncIterator]();async function r(){let n=await e.next();return n.done?null:n.value}return F0(r)}function M0(t,e){let r=0;return{async upTo(n){let o=await t.upTo(n);return o.length+r>e&&(o=o.subarray(0,e-r)),o},async exactly(n,o=!1){let i=await t.exactly(n,o);if(i.length+r>e)throw new Error("Unexpected end of data");return o&&(r+=n),i},seek(n){r+=n,t.seek(n)},get pos(){return t.pos}}}var Vt=class{constructor(e,r){this._header=e,this._blocks=r,this._keys=r.map(n=>n.cid.toString())}get version(){return this._header.version}async getRoots(){return this._header.roots}async has(e){return this._keys.indexOf(e.toString())>-1}async get(e){let r=this._keys.indexOf(e.toString());return r>-1?this._blocks[r]:void 0}async*blocks(){for(let e of this._blocks)yield e}async*cids(){for(let e of this._blocks)yield e.cid}static async fromBytes(e){if(!(e instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return fd(jt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return fd(Nr(e))}};async function fd(t){let e=Dr(t),r=await e.header(),n=[];for await(let o of e.blocks())n.push(o);return new Vt(r,n)}var Pn=class{constructor(e,r,n){this._version=e,this._roots=r,this._iterator=n}get version(){return this._version}async getRoots(){return this._roots}[Symbol.asyncIterator](){return this._iterator}static async fromBytes(e){if(!(e instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return dd(jt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return dd(Nr(e))}};async function dd(t){let e=Dr(t),{version:r,roots:n}=await e.header();return new Pn(r,n,e.blocksIndex())}var ei=class{constructor(e,r,n){this._version=e,this._roots=r,this._iterable=n,this._decoded=!1}get version(){return this._version}async getRoots(){return this._roots}},Ra=class t extends ei{[Symbol.asyncIterator](){if(this._decoded)throw new Error("Cannot decode more than once");if(!this._iterable)throw new Error("Block iterable not found");return this._decoded=!0,this._iterable[Symbol.asyncIterator]()}static async fromBytes(e){let{version:r,roots:n,iterator:o}=await hd(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await pd(e);return new t(r,n,o)}},za=class t extends ei{[Symbol.asyncIterator](){if(this._decoded)throw new Error("Cannot decode more than once");if(!this._iterable)throw new Error("Block iterable not found");this._decoded=!0;let e=this._iterable[Symbol.asyncIterator]();return{async next(){let r=await e.next();return r.done?r:{done:!1,value:r.value.cid}}}}static async fromBytes(e){let{version:r,roots:n,iterator:o}=await hd(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await pd(e);return new t(r,n,o)}};async function hd(t){if(!(t instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return yd(jt(t))}async function pd(t){if(!t||typeof t[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return yd(Nr(t))}async function yd(t){let e=Dr(t),{version:r,roots:n}=await e.header();return{version:r,roots:n,iterator:e.blocks()}}var R0=W(Zo(),1);var md=class{constructor(e){this._iterator=e}[Symbol.asyncIterator](){if(this._iterating)throw new Error("Multiple iterator not supported");return this._iterating=!0,this._iterator}};var Rn=W(Zo(),1);var z0=["string","number","bigint","symbol"],$0=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function gd(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(z0.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(H0(t))return"Buffer";let r=j0(t);return r||"Object"}function H0(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function j0(t){let e=Object.prototype.toString.call(t).slice(8,-1);if($0.includes(e))return e}var x=class{constructor(e,r,n){this.major=e,this.majorEncoded=e<<5,this.name=r,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};x.uint=new x(0,"uint",!0);x.negint=new x(1,"negint",!0);x.bytes=new x(2,"bytes",!0);x.string=new x(3,"string",!0);x.array=new x(4,"array",!1);x.map=new x(5,"map",!1);x.tag=new x(6,"tag",!1);x.float=new x(7,"float",!0);x.false=new x(7,"false",!0);x.true=new x(7,"true",!0);x.null=new x(7,"null",!0);x.undefined=new x(7,"undefined",!0);x.break=new x(7,"break",!0);var C=class{constructor(e,r,n){this.type=e,this.value=r,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Ur=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",V0=new TextDecoder,q0=new TextEncoder;function ti(t){return Ur&&globalThis.Buffer.isBuffer(t)}function kd(t){return t instanceof Uint8Array?ti(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var vd=Ur?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):bd(t,e,r):(t,e,r)=>r-e>64?V0.decode(t.subarray(e,r)):bd(t,e,r),Ed=Ur?t=>t.length>64?globalThis.Buffer.from(t):wd(t):t=>t.length>64?q0.encode(t):wd(t),We=t=>Uint8Array.from(t),Pr=Ur?(t,e,r)=>ti(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),Sd=Ur?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),kd(globalThis.Buffer.concat(t,e))):(t,e)=>{let r=new Uint8Array(e),n=0;for(let o of t)n+o.length>r.length&&(o=o.subarray(0,r.length-n)),r.set(o,n),n+=o.length;return r},Ad=Ur?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function _d(t,e){if(ti(t)&&ti(e))return t.compare(e);for(let r=0;r<t.length;r++)if(t[r]!==e[r])return t[r]<e[r]?-1:1;return 0}function wd(t,e=1/0){let r,n=t.length,o=null,i=[];for(let s=0;s<n;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}else if(s+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return i}function bd(t,e,r){let n=[];for(;e<r;){let o=t[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=r){let c,a,u,l;switch(s){case 1:o<128&&(i=o);break;case 2:c=t[e+1],(c&192)===128&&(l=(o&31)<<6|c&63,l>127&&(i=l));break;case 3:c=t[e+1],a=t[e+2],(c&192)===128&&(a&192)===128&&(l=(o&15)<<12|(c&63)<<6|a&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=t[e+1],a=t[e+2],u=t[e+3],(c&192)===128&&(a&192)===128&&(u&192)===128&&(l=(o&15)<<18|(c&63)<<12|(a&63)<<6|u&63,l>65535&&l<1114112&&(i=l))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return W0(n)}var xd=4096;function W0(t){let e=t.length;if(e<=xd)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=xd));return r}var K0=256,ri=class{constructor(e=K0){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let r=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=r.length-(this.maxCursor-this.cursor)-1;r.set(e,o)}else{if(r){let o=r.length-(this.maxCursor-this.cursor)-1;o<r.length&&(this.chunks[this.chunks.length-1]=r.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(r=Ad(this.chunkSize),this.chunks.push(r),this.maxCursor+=r.length,this._initReuseChunk===null&&(this._initReuseChunk=r),r.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let r;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(r=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):r=Pr(n,0,this.cursor)}else r=Sd(this.chunks,this.cursor);return e&&this.reset(),r}};var z="CBOR decode error:",$a="CBOR encode error:",Fn=[];Fn[23]=1;Fn[24]=2;Fn[25]=3;Fn[26]=5;Fn[27]=9;function ct(t,e,r){if(t.length-e<r)throw new Error(`${z} not enough data for type`)}var te=[24,256,65536,4294967296,BigInt("18446744073709551616")];function be(t,e,r){ct(t,e,1);let n=t[e];if(r.strict===!0&&n<te[0])throw new Error(`${z} integer encoded in more bytes than necessary (strict decode)`);return n}function xe(t,e,r){ct(t,e,2);let n=t[e]<<8|t[e+1];if(r.strict===!0&&n<te[1])throw new Error(`${z} integer encoded in more bytes than necessary (strict decode)`);return n}function ke(t,e,r){ct(t,e,4);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3];if(r.strict===!0&&n<te[2])throw new Error(`${z} integer encoded in more bytes than necessary (strict decode)`);return n}function ve(t,e,r){ct(t,e,8);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3],o=t[e+4]*16777216+(t[e+5]<<16)+(t[e+6]<<8)+t[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(r.strict===!0&&i<te[3])throw new Error(`${z} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(r.allowBigInt===!0)return i;throw new Error(`${z} integers outside of the safe integer range are not supported`)}function Bd(t,e,r,n){return new C(x.uint,be(t,e+1,n),2)}function Cd(t,e,r,n){return new C(x.uint,xe(t,e+1,n),3)}function Td(t,e,r,n){return new C(x.uint,ke(t,e+1,n),5)}function Id(t,e,r,n){return new C(x.uint,ve(t,e+1,n),9)}function Ie(t,e){return oe(t,0,e.value)}function oe(t,e,r){if(r<te[0]){let n=Number(r);t.push([e|n])}else if(r<te[1]){let n=Number(r);t.push([e|24,n])}else if(r<te[2]){let n=Number(r);t.push([e|25,n>>>8,n&255])}else if(r<te[3]){let n=Number(r);t.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(r);if(n<te[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,t.push(o)}else throw new Error(`${z} encountered BigInt larger than allowable range`)}}Ie.encodedSize=function(e){return oe.encodedSize(e.value)};oe.encodedSize=function(e){return e<te[0]?1:e<te[1]?2:e<te[2]?3:e<te[3]?5:9};Ie.compareTokens=function(e,r){return e.value<r.value?-1:e.value>r.value?1:0};function Ld(t,e,r,n){return new C(x.negint,-1-be(t,e+1,n),2)}function Dd(t,e,r,n){return new C(x.negint,-1-xe(t,e+1,n),3)}function Nd(t,e,r,n){return new C(x.negint,-1-ke(t,e+1,n),5)}var Ha=BigInt(-1),Ud=BigInt(1);function Pd(t,e,r,n){let o=ve(t,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new C(x.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${z} integers outside of the safe integer range are not supported`);return new C(x.negint,Ha-BigInt(o),9)}function ni(t,e){let r=e.value,n=typeof r=="bigint"?r*Ha-Ud:r*-1-1;oe(t,e.type.majorEncoded,n)}ni.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*Ha-Ud:r*-1-1;return n<te[0]?1:n<te[1]?2:n<te[2]?3:n<te[3]?5:9};ni.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function Mn(t,e,r,n){ct(t,e,r+n);let o=Pr(t,e+r,e+r+n);return new C(x.bytes,o,r+n)}function Fd(t,e,r,n){return Mn(t,e,1,r)}function Md(t,e,r,n){return Mn(t,e,2,be(t,e+1,n))}function Od(t,e,r,n){return Mn(t,e,3,xe(t,e+1,n))}function Rd(t,e,r,n){return Mn(t,e,5,ke(t,e+1,n))}function zd(t,e,r,n){let o=ve(t,e+1,n);if(typeof o=="bigint")throw new Error(`${z} 64-bit integer bytes lengths not supported`);return Mn(t,e,9,o)}function oi(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===x.string?Ed(t.value):t.value),t.encodedBytes}function Fr(t,e){let r=oi(e);oe(t,e.type.majorEncoded,r.length),t.push(r)}Fr.encodedSize=function(e){let r=oi(e);return oe.encodedSize(r.length)+r.length};Fr.compareTokens=function(e,r){return Q0(oi(e),oi(r))};function Q0(t,e){return t.length<e.length?-1:t.length>e.length?1:_d(t,e)}function On(t,e,r,n,o){let i=r+n;ct(t,e,i);let s=new C(x.string,vd(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Pr(t,e+r,e+i)),s}function $d(t,e,r,n){return On(t,e,1,r,n)}function Hd(t,e,r,n){return On(t,e,2,be(t,e+1,n),n)}function jd(t,e,r,n){return On(t,e,3,xe(t,e+1,n),n)}function Vd(t,e,r,n){return On(t,e,5,ke(t,e+1,n),n)}function qd(t,e,r,n){let o=ve(t,e+1,n);if(typeof o=="bigint")throw new Error(`${z} 64-bit integer string lengths not supported`);return On(t,e,9,o,n)}var Wd=Fr;function Mr(t,e,r,n){return new C(x.array,n,r)}function Kd(t,e,r,n){return Mr(t,e,1,r)}function Gd(t,e,r,n){return Mr(t,e,2,be(t,e+1,n))}function Qd(t,e,r,n){return Mr(t,e,3,xe(t,e+1,n))}function Jd(t,e,r,n){return Mr(t,e,5,ke(t,e+1,n))}function Xd(t,e,r,n){let o=ve(t,e+1,n);if(typeof o=="bigint")throw new Error(`${z} 64-bit integer array lengths not supported`);return Mr(t,e,9,o)}function Yd(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${z} indefinite length items not allowed`);return Mr(t,e,1,1/0)}function ii(t,e){oe(t,x.array.majorEncoded,e.value)}ii.compareTokens=Ie.compareTokens;ii.encodedSize=function(e){return oe.encodedSize(e.value)};function Or(t,e,r,n){return new C(x.map,n,r)}function Zd(t,e,r,n){return Or(t,e,1,r)}function eh(t,e,r,n){return Or(t,e,2,be(t,e+1,n))}function th(t,e,r,n){return Or(t,e,3,xe(t,e+1,n))}function rh(t,e,r,n){return Or(t,e,5,ke(t,e+1,n))}function nh(t,e,r,n){let o=ve(t,e+1,n);if(typeof o=="bigint")throw new Error(`${z} 64-bit integer map lengths not supported`);return Or(t,e,9,o)}function oh(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${z} indefinite length items not allowed`);return Or(t,e,1,1/0)}function si(t,e){oe(t,x.map.majorEncoded,e.value)}si.compareTokens=Ie.compareTokens;si.encodedSize=function(e){return oe.encodedSize(e.value)};function ih(t,e,r,n){return new C(x.tag,r,1)}function sh(t,e,r,n){return new C(x.tag,be(t,e+1,n),2)}function ah(t,e,r,n){return new C(x.tag,xe(t,e+1,n),3)}function ch(t,e,r,n){return new C(x.tag,ke(t,e+1,n),5)}function uh(t,e,r,n){return new C(x.tag,ve(t,e+1,n),9)}function ai(t,e){oe(t,x.tag.majorEncoded,e.value)}ai.compareTokens=Ie.compareTokens;ai.encodedSize=function(e){return oe.encodedSize(e.value)};var t1=20,r1=21,n1=22,o1=23;function lh(t,e,r,n){if(n.allowUndefined===!1)throw new Error(`${z} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new C(x.null,null,1):new C(x.undefined,void 0,1)}function fh(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${z} indefinite length items not allowed`);return new C(x.break,void 0,1)}function ja(t,e,r){if(r){if(r.allowNaN===!1&&Number.isNaN(t))throw new Error(`${z} NaN values are not supported`);if(r.allowInfinity===!1&&(t===1/0||t===-1/0))throw new Error(`${z} Infinity values are not supported`)}return new C(x.float,t,e)}function dh(t,e,r,n){return ja(Va(t,e+1),3,n)}function hh(t,e,r,n){return ja(qa(t,e+1),5,n)}function ph(t,e,r,n){return ja(wh(t,e+1),9,n)}function ci(t,e,r){let n=e.value;if(n===!1)t.push([x.float.majorEncoded|t1]);else if(n===!0)t.push([x.float.majorEncoded|r1]);else if(n===null)t.push([x.float.majorEncoded|n1]);else if(n===void 0)t.push([x.float.majorEncoded|o1]);else{let o,i=!1;(!r||r.float64!==!0)&&(mh(n),o=Va(Pe,1),n===o||Number.isNaN(n)?(Pe[0]=249,t.push(Pe.slice(0,3)),i=!0):(gh(n),o=qa(Pe,1),n===o&&(Pe[0]=250,t.push(Pe.slice(0,5)),i=!0))),i||(i1(n),o=wh(Pe,1),Pe[0]=251,t.push(Pe.slice(0,9)))}}ci.encodedSize=function(e,r){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!r||r.float64!==!0){mh(n);let o=Va(Pe,1);if(n===o||Number.isNaN(n))return 3;if(gh(n),o=qa(Pe,1),n===o)return 5}return 9};var yh=new ArrayBuffer(9),Le=new DataView(yh,1),Pe=new Uint8Array(yh,0);function mh(t){if(t===1/0)Le.setUint16(0,31744,!1);else if(t===-1/0)Le.setUint16(0,64512,!1);else if(Number.isNaN(t))Le.setUint16(0,32256,!1);else{Le.setFloat32(0,t);let e=Le.getUint32(0),r=(e&2139095040)>>23,n=e&8388607;if(r===255)Le.setUint16(0,31744,!1);else if(r===0)Le.setUint16(0,(t&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?Le.setUint16(0,0):o<-14?Le.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):Le.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Va(t,e){if(t.length-e<2)throw new Error(`${z} not enough data for float16`);let r=(t[e]<<8)+t[e+1];if(r===31744)return 1/0;if(r===64512)return-1/0;if(r===32256)return NaN;let n=r>>10&31,o=r&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,r&32768?-i:i}function gh(t){Le.setFloat32(0,t,!1)}function qa(t,e){if(t.length-e<4)throw new Error(`${z} not enough data for float32`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,4).getFloat32(0,!1)}function i1(t){Le.setFloat64(0,t,!1)}function wh(t,e){if(t.length-e<8)throw new Error(`${z} not enough data for float64`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,8).getFloat64(0,!1)}ci.compareTokens=Ie.compareTokens;function $(t,e,r){throw new Error(`${z} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function ui(t){return()=>{throw new Error(`${z} ${t}`)}}var B=[];for(let t=0;t<=23;t++)B[t]=$;B[24]=Bd;B[25]=Cd;B[26]=Td;B[27]=Id;B[28]=$;B[29]=$;B[30]=$;B[31]=$;for(let t=32;t<=55;t++)B[t]=$;B[56]=Ld;B[57]=Dd;B[58]=Nd;B[59]=Pd;B[60]=$;B[61]=$;B[62]=$;B[63]=$;for(let t=64;t<=87;t++)B[t]=Fd;B[88]=Md;B[89]=Od;B[90]=Rd;B[91]=zd;B[92]=$;B[93]=$;B[94]=$;B[95]=ui("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)B[t]=$d;B[120]=Hd;B[121]=jd;B[122]=Vd;B[123]=qd;B[124]=$;B[125]=$;B[126]=$;B[127]=ui("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)B[t]=Kd;B[152]=Gd;B[153]=Qd;B[154]=Jd;B[155]=Xd;B[156]=$;B[157]=$;B[158]=$;B[159]=Yd;for(let t=160;t<=183;t++)B[t]=Zd;B[184]=eh;B[185]=th;B[186]=rh;B[187]=nh;B[188]=$;B[189]=$;B[190]=$;B[191]=oh;for(let t=192;t<=215;t++)B[t]=ih;B[216]=sh;B[217]=ah;B[218]=ch;B[219]=uh;B[220]=$;B[221]=$;B[222]=$;B[223]=$;for(let t=224;t<=243;t++)B[t]=ui("simple values are not supported");B[244]=$;B[245]=$;B[246]=$;B[247]=lh;B[248]=ui("simple values are not supported");B[249]=dh;B[250]=hh;B[251]=ph;B[252]=$;B[253]=$;B[254]=$;B[255]=fh;var Ke=[];for(let t=0;t<24;t++)Ke[t]=new C(x.uint,t,1);for(let t=-1;t>=-24;t--)Ke[31-t]=new C(x.negint,t,1);Ke[64]=new C(x.bytes,new Uint8Array(0),1);Ke[96]=new C(x.string,"",1);Ke[128]=new C(x.array,0,1);Ke[160]=new C(x.map,0,1);Ke[244]=new C(x.false,!1,1);Ke[245]=new C(x.true,!0,1);Ke[246]=new C(x.null,null,1);function Wa(t){switch(t.type){case x.false:return We([244]);case x.true:return We([245]);case x.null:return We([246]);case x.bytes:return t.value.length?void 0:We([64]);case x.string:return t.value===""?We([96]):void 0;case x.array:return t.value===0?We([128]):void 0;case x.map:return t.value===0?We([160]):void 0;case x.uint:return t.value<24?We([Number(t.value)]):void 0;case x.negint:if(t.value>=-24)return We([31-Number(t.value)])}}function Ka(){let t=[];return t[x.uint.major]=Ie,t[x.negint.major]=ni,t[x.bytes.major]=Fr,t[x.string.major]=Wd,t[x.array.major]=ii,t[x.map.major]=si,t[x.tag.major]=ai,t[x.float.major]=ci,t}var R8=Ka(),z8=new ri,fi=class t{constructor(e,r){this.obj=e,this.parent=r}includes(e){let r=this;do if(r.obj===e)return!0;while(r=r.parent);return!1}static createCheck(e,r){if(e&&e.includes(r))throw new Error(`${$a} object contains circular references`);return new t(r,e)}},xt={null:new C(x.null,null),undefined:new C(x.undefined,void 0),true:new C(x.true,!0),false:new C(x.false,!1),emptyArray:new C(x.array,0),emptyMap:new C(x.map,0)},kt={number(t,e,r,n){return!Number.isInteger(t)||!Number.isSafeInteger(t)?new C(x.float,t):t>=0?new C(x.uint,t):new C(x.negint,t)},bigint(t,e,r,n){return t>=BigInt(0)?new C(x.uint,t):new C(x.negint,t)},Uint8Array(t,e,r,n){return new C(x.bytes,t)},string(t,e,r,n){return new C(x.string,t)},boolean(t,e,r,n){return t?xt.true:xt.false},null(t,e,r,n){return xt.null},undefined(t,e,r,n){return xt.undefined},ArrayBuffer(t,e,r,n){return new C(x.bytes,new Uint8Array(t))},DataView(t,e,r,n){return new C(x.bytes,new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},Array(t,e,r,n){if(!t.length)return r.addBreakTokens===!0?[xt.emptyArray,new C(x.break)]:xt.emptyArray;n=fi.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=li(s,r,n);return r.addBreakTokens?[new C(x.array,t.length),o,new C(x.break)]:[new C(x.array,t.length),o]},Object(t,e,r,n){let o=e!=="Object",i=o?t.keys():Object.keys(t),s=o?t.size:i.length;if(!s)return r.addBreakTokens===!0?[xt.emptyMap,new C(x.break)]:xt.emptyMap;n=fi.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[li(u,r,n),li(o?t.get(u):t[u],r,n)];return a1(c,r),r.addBreakTokens?[new C(x.map,s),c,new C(x.break)]:[new C(x.map,s),c]}};kt.Map=kt.Object;kt.Buffer=kt.Uint8Array;for(let t of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))kt[`${t}Array`]=kt.DataView;function li(t,e={},r){let n=gd(t),o=e&&e.typeEncoders&&e.typeEncoders[n]||kt[n];if(typeof o=="function"){let s=o(t,n,e,r);if(s!=null)return s}let i=kt[n];if(!i)throw new Error(`${$a} unsupported type: ${n}`);return i(t,n,e,r)}function a1(t,e){e.mapSorter&&t.sort(e.mapSorter)}var q8=Symbol.for("DONE"),W8=Symbol.for("BREAK");var c1=Ka(),u1={float64:!1,quickEncodeToken:Wa};function Ga(t,e=c1,r=u1){if(Array.isArray(t)){let n=0;for(let o of t)n+=Ga(o,e,r);return n}else{let n=e[t.type.major];if(n.encodedSize===void 0||typeof n.encodedSize!="function")throw new Error(`Encoder for ${t.type.name} does not have an encodedSize()`);return n.encodedSize(t,r)}}var Ja=class{constructor(e,r){this.bytes=e,this.byteOffset=r,this.roots=[],this.headerSize=r}addRoot(e,r){return l1(this,e,r),this}write(e){return f1(this,e),this}close(e){return d1(this,e)}},l1=(t,e,r={})=>{let{resize:n=!1}=r,{bytes:o,headerSize:i,byteOffset:s,roots:c}=t;t.roots.push(e);let a=di(t);if(a>i)if(a-i+s<o.byteLength)if(n)kh(t,a);else throw c.pop(),new RangeError(`Header of size ${i} has no capacity for new root ${e}.
2
2
  However there is a space in the buffer and you could call addRoot(root, { resize: root }) to resize header to make a space for this root.`);else throw c.pop(),new RangeError(`Buffer has no capacity for a new root ${e}`)},xh=({cid:t,bytes:e})=>{let r=t.bytes.byteLength+e.byteLength;return Rn.default.encodingLength(r)+r},f1=(t,{cid:e,bytes:r})=>{let n=e.bytes.byteLength+r.byteLength,o=Rn.default.encode(n);if(t.byteOffset+o.length+n>t.bytes.byteLength)throw new RangeError("Buffer has no capacity for this block");Qa(t,o),Qa(t,e.bytes),Qa(t,r)},d1=(t,e={})=>{let{resize:r=!1}=e,{roots:n,bytes:o,byteOffset:i,headerSize:s}=t,c=Yo({version:1,roots:n}),a=Rn.default.encode(c.length),u=a.length+c.byteLength;if(s-u===0)return bh(t,a,c),o.subarray(0,i);if(r)return kh(t,u),bh(t,a,c),o.subarray(0,t.byteOffset);throw new RangeError(`Header size was overestimated.
3
- You can use close({ resize: true }) to resize header`)},kh=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Qa=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},bh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},h1=[new C(x.map,2),new C(x.string,"version"),new C(x.uint,1),new C(x.string,"roots")],p1=new C(x.tag,42),y1=t=>{let e=[...h1];e.push(new C(x.array,t.length));for(let n of t)e.push(p1),e.push(new C(x.bytes,{length:n+1}));let r=Ga(e);return Rn.default.encodingLength(r)+r},di=({roots:t})=>y1(t.map(e=>e.bytes.byteLength));var vh=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=di({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Ja(s,i);for(let a of r)c.addRoot(a);return c};var Wt=({name:t,code:e,encode:r})=>new Xa(t,e,r),Xa=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Ht(this.code,r):r.then(n=>Ht(this.code,n))}else throw Error("Unknown type, must be binary type")}};function hi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*g1(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=V.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*Ya(n,o))}else{let r=V.asCID(e);r?yield[t.join("/"),r]:yield*Ya(e,t)}}function*Ya(t,e){if(t==null||t instanceof Uint8Array)return;let r=V.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*g1(i,o)}}function*w1(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!V.asCID(n)&&(yield*Za(n,o))}else yield*Za(e,t)}function*Za(t,e){if(!(t==null||typeof t!="object"))for(let[r,n]of Object.entries(t)){let o=[...e,r];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&!V.asCID(n)&&(yield*w1(o,n))}}function b1(t,e){let r=t;for(let[n,o]of e.entries()){if(r=r[o],r==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=V.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var zn=class{constructor({cid:e,bytes:r,value:n}){if(!e||!r||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=r,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:hi(),bytes:hi(),value:hi(),asBlock:hi()})}links(){return Ya(this.value,[])}tree(){return Za(this.value,[])}get(e="/"){return b1(this.value,e.split("/").filter(Boolean))}};async function Ge({value:t,codec:e,hasher:r}){if(typeof t>"u")throw new Error('Missing required argument "value"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.encode(t),o=await r.digest(n),i=V.create(1,e.code,o);return new zn({value:t,bytes:n,cid:i})}async function vt({bytes:t,codec:e,hasher:r}){if(!t)throw new Error('Missing required argument "bytes"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.decode(t),o=await r.digest(t),i=V.create(1,e.code,o);return new zn({value:n,bytes:t,cid:i})}function x1({bytes:t,cid:e,value:r,codec:n}){let o=r!==void 0?r:n&&n.decode(t);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new zn({cid:e,bytes:t,value:o})}async function pi({bytes:t,cid:e,hasher:r,codec:n}){if(!t)throw new Error('Missing required argument "bytes"');if(!r)throw new Error('Missing required argument "hasher"');let o=n.decode(t),i=await r.digest(t);if(!$t.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return x1({bytes:t,cid:e,value:o,codec:n})}var Sh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),de=Wt({name:"sha2-256",code:18,encode:Sh("SHA-256")}),k_=Wt({name:"sha2-512",code:19,encode:Sh("SHA-512")});var Et={};Y(Et,{code:()=>$n,decode:()=>E1,encode:()=>v1,name:()=>k1});var k1="raw",$n=85,v1=t=>Te(t),E1=t=>Te(t);async function yi(t,e){let r=0,n=di({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=xh({cid:s,bytes:c});let o=new Uint8Array(r),i=vh(o,{headerSize:n});for(let s of t)i.addRoot(s);for(let{cid:s,bytes:c}of e.entries())i.write({cid:s,bytes:c});return i.close(),await Ge({value:i.bytes,hasher:de,codec:Et})}async function Ah(t){return await Ge({value:{fp:t},hasher:de,codec:q})}async function _h(t){let e=await t.getRoots(),r=await t.get(e[0]);if(!r)throw new Error("missing header block");let{value:n}=await vt({bytes:r.bytes,hasher:de,codec:q});if(n&&n.fp===void 0)throw new Error("missing fp");let{fp:o}=n;return o}var Kt={};Y(Kt,{code:()=>C1,crypto:()=>T1,decode:()=>B1,decrypt:()=>wi,encode:()=>_1,encrypt:()=>bi,name:()=>I1});function mi(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var Hn=mi();function gi(t){let e=new Uint8Array(t);return t>0&&Hn.getRandomValues(e),e}var S1=t=>{t=+t;let e=new Uint8Array(4);return e[3]=t>>>24,e[2]=t>>>16,e[1]=t>>>8,e[0]=t&255,e},A1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},Bh=t=>{let e=t.map(i=>i instanceof ArrayBuffer?new Uint8Array(i):i),r=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(r),o=0;for(let i of e)n.set(i,o),o+=i.length;return n},_1=({iv:t,bytes:e})=>Bh([t,e]),B1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},C1=3145728+1337;async function Ch(t){return await Hn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var wi=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await Ch(t),i=await Hn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=A1(r.subarray(0,4)),c=V.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},bi=async({key:t,cid:e,bytes:r})=>{let n=S1(e.bytes.byteLength),o=gi(12),i=Bh([n,e.bytes,r]);try{let s=await Ch(t),c=await Hn.subtle.encrypt({name:"AES-GCM",iv:o,tagLength:128},s,i);r=new Uint8Array(c)}catch(s){throw console.log("ee",s),s}return{value:{bytes:r,iv:o}}},T1=t=>({encrypt:e=>bi({key:t,...e}),decrypt:e=>wi({key:t,...e})}),I1="jchris@encrypted-block:aes-gcm";var jn=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Vn=t=>{let e=Math.floor(4294967295/t);return async r=>{let n=await r.identity();if(typeof n!="number")throw new Error("Identity must be a number");return n<=e}};var Qt=(t,e)=>t===e?0:t>e?1:-1,Th=(t,e)=>{for(let r=0;r<t.byteLength;r++){if(e.byteLength===r)return 1;let n=t[r],o=e[r];if(n!==o)return n>o?1:-1}return e.byteLength>t.byteLength?-1:0},Gt=class{constructor(){this._cids=new Set}add(e){if(!e.address)throw new Error("Cannot add node without address");if(e.address.then){let r=e.address.then(n=>this._cids.add(n.toString()));this._cids.add(r),r.then(()=>this._cids.delete(r))}else this._cids.add(e.address.toString())}async all(){return await Promise.all([...this._cids]),this._cids}};var Jt=class{constructor({key:e,address:r},n={}){this.key=e,this.address=r,this.codec=n.codec,this.hasher=n.hasher}get isEntry(){return!0}},St=class{constructor({entries:e,closed:r}){if(typeof r!="boolean")throw new Error('Missing required argument "closed"');this.entries=e,this.closed=r,this.startKey=e[0].key}find(e,r){let{entries:n}=this;for(let o=n.length-1;o>-1;o--){let i=n[o];if(r(e,i.key)>-1)return[o,i]}return null}findMany(e,r,n=!1,o=!1){let{entries:i}=this,s=new Map;n?e=[...e]:e=e.sort(r);for(let c=i.length-1;c>-1&&e.length;c--){let a=i[c],u=[];for(;e.length;){let l=e[e.length-1];l=l.key?l.key:l;let d=r(l,a.key);if(o)if(d===0)u.push(e.pop());else if(d>0)e.pop();else break;else if(d>-1)u.push(e.pop());else break}u.length&&s.set(c,[a,u])}return s}findRange(e,r,n){let{entries:o}=this,i,s=0;for(let c=o.length-1;c>-1;c--){let a=o[c];if(n(r,a.key)>0){i=c;break}}for(let c=0;c<o.length;c++){let a=o[c],u=n(e,a.key);if(u===0){s=c;break}else if(u<0)break;s=c}return{first:s,last:i,entries:o.slice(s,i+1)}}},Ih=t=>typeof t=="string"?t:JSON.stringify(t);function L1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function D1(t,e,r){let n=[];for(let o of e){let{key:i,del:s}=o;if(r(i,t)<0)s||n.push(o);else break}return n}async function N1(t,e,{chunker:r,compare:n}){return await At.from({entries:t.map(o=>new e.LeafEntryClass(o,e)).sort((o,i)=>n(o.key,i.key)),chunker:r,NodeClass:e.LeafClass,distance:0,opts:e})}async function U1(t,e,r,n){return await Promise.all(e.map(async o=>{let i=await o.encode();return r.blocks.push({block:i,node:o}),t.cache.set(o),new n.BranchEntryClass({key:o.key,address:await o.address},n)}))}async function P1(t,e,r,n){let o=e.root;e.blocks.push({block:await o.encode(),node:o}),t.cache.set(o);let i=n.opts,s=o.distance,c=o.entryList.startKey,a=await D1(c,r,t.compare);if(a.length){let u=await N1(a,i,t),l=await U1(t,u,e,i),m=[new i.BranchEntryClass({key:o.entryList.startKey,address:await o.address},i),...l].sort(({key:p},{key:w})=>i.compare(p,w)),f=await At.from({...n,entries:m,chunker:t.chunker,NodeClass:i.BranchClass,distance:s+1}),h=[...f];for(;f.length>1;){let p=await Promise.all(f.map(async w=>new i.BranchEntryClass({key:w.key,address:await w.address},i)));f=await At.from({...n,entries:p.sort(({key:w},{key:g})=>i.compare(w,g)),chunker:t.chunker,NodeClass:i.BranchClass,distance:s+1}),h=[...h,...f]}await Promise.all(h.map(async p=>{let w=await p.encode();t.cache.set(p),e.blocks.push({block:w,node:p})})),e.root=f[0],e.nodes=[...e.nodes,...h]}}var At=class t{constructor({entryList:e,chunker:r,distance:n,getNode:o,compare:i,cache:s}){this.entryList=e,this.chunker=r,this.distance=n,this.getNode=o,this.compare=i,this.cache=s}get closed(){return this.entryList.closed}get key(){return this.entryList.startKey}async getEntry(e,r=new Gt){return{result:await this._getEntry(e,r),cids:r}}async _getEntry(e,r){r.add(this);let n=this;for(;!n.isLeaf;){let s=n.entryList.find(e,this.compare);if(s===null)throw new Error("Not found");let[,c]=s;n=await this.getNode(await c.address),r.add(n)}let o=n.entryList.find(e,this.compare);if(o===null||o[1].key.toString()!==e.toString())throw new Error("Not found");let[,i]=o;return i}async getAllEntries(e=new Gt){return{result:await this._getAllEntries(e),cids:e}}_getAllEntries(e){if(e.add(this),this.isLeaf)return this.entryList.entries;{let{entries:r}=this.entryList,n=async o=>this.getNode(await o.address).then(i=>i._getAllEntries(e)).catch(async i=>{throw i});return Promise.all(r.map(n)).then(o=>o.flat())}}async*vis(e=new Set){let r=async i=>i.isLeaf?`Leaf [${i.entryList.entries.map(c=>`[${c.key},${JSON.stringify(c.value).replace(/"/g,"'")}]`).join(", ")}]`:`Branch [${i.entryList.entries.map(c=>`[${c.key}]`).join(", ")}]`,n=i=>i.toString().slice(0,4)+i.toString().slice(-4),o=async function*(i,s,c){let a=await i.address;if(!c.has(a)){c.add(a);let u=await r(i);yield` node [shape=ellipse fontname="Courier"]; ${n(a)} [label="${u}"];`,yield` ${n(s)} -> ${n(a)};`;for(let l of i.entryList.entries)if(l.address){let d=await l.address;try{let m=await i.getNode(d);yield*await o(m,a,c)}catch(m){yield` ${n(a)} -> ${n(d)};`,yield` node [shape=ellipse fontname="Courier"]; ${n(d)} [label="Error: ${m.message}"];`}}}};yield"digraph tree {",yield' node [shape=ellipse fontname="Courier"]; rootnode;';for await(let i of o(this,"rootnode",e))yield i;yield"}"}async getEntries(e,r=!1,n=new Gt){return{result:await this._getEntries(e,r,n),cids:n}}async _getEntries(e,r,n){n.add(this),r||(e=e.sort(this.compare));let o=this.entryList.findMany(e,this.compare,!0,this.isLeaf);if(this.isLeaf)return[...o.values()].map(([s])=>s);let i=[];for(let[s,c]of[...o.values()].reverse()){let a=this.getNode(await s.address);i.push(a.then(u=>u._getEntries(c.reverse(),!0,n)))}return i=await Promise.all(i),i.flat()}async getRangeEntries(e,r,n=new Gt){return{result:await this._getRangeEntries(e,r,n),cids:n}}_getRangeEntries(e,r,n){n.add(this);let{entries:o}=this.entryList.findRange(e,r,this.compare);if(this.isLeaf)return o.filter(a=>{let u=this.compare(e,a.key),l=this.compare(r,a.key);return u<=0&&l>=0});if(!o.length)return[];let i=async a=>this.getNode(await a.address).then(u=>u._getRangeEntries(e,r,n)),s=[i(o.shift())];if(!o.length)return s[0];let c=i(o.pop());for(;o.length;){let a=async u=>this.getNode(await u.address).then(async l=>l._getAllEntries(n));s.push(a(o.shift()))}return s.push(c),Promise.all(s).then(a=>a.flat())}async transaction(e,r={}){r={codec:this.codec,hasher:this.hasher,getNode:this.getNode,compare:this.compare,cache:this.cache,...r};let n={chunker:this.chunker,opts:r},o=this.entryList.findMany(e,r.compare,!0,this.isLeaf);return this.isLeaf?await this.transactionLeaf(e,r,n,o):await this.transactionBranch(e,r,n,o)}async transactionLeaf(e,r,n,o){let{LeafClass:i,LeafEntryClass:s}=r,{entries:c,previous:a}=this.processLeafEntries(e,o,s,r),u={...n,entries:c,NodeClass:i,distance:0},l=await t.from(u);return{nodes:l,previous:a,blocks:await Promise.all(l.map(async d=>{let m=await d.encode();return this.cache.set(d),{block:m,node:d}})),distance:0}}processLeafEntries(e,r,n,o){let i=[],s=[],c={},a=new Map;for(let{key:d,del:m,value:f}of e){let h=Ih(d);m?typeof c[h]>"u"&&a.set(h,null):(c[h]={key:d,value:f},a.delete(h))}s=[...this.entryList.entries];for(let[d,[m]]of r){i.push(m);let f=Ih(m.key);a.has(f)?a.set(f,d):(s[d]=new n(c[f],o),delete c[f])}let u=0;for(let[,d]of a)d!==null&&s.splice(d-u++,1);let l=Object.values(c).map(d=>new n(d,o));return s=s.concat(l).sort(({key:d},{key:m})=>o.compare(d,m)),{entries:s,previous:i}}async transactionBranch(e,r,n,o){let{BranchClass:i,BranchEntryClass:s}=r,c=0;for(let[h,[p,w]]of o){let g=this.getNode(await p.address).then(b=>b.transaction(w.reverse(),{...r,sorted:!0})).then(b=>({entry:p,keys:w,distance:c,...b}));o.set(h,g)}let a=[...this.entryList.entries],u={previous:[],blocks:[],nodes:[]};for(let[h,p]of o){let{nodes:w,previous:g,blocks:b,distance:v}=await p;c=v,a[h]=w,g.length&&(u.previous=u.previous.concat(g)),b.length&&(u.blocks=u.blocks.concat(b)),w.length&&(u.nodes=u.nodes.concat(w))}a=a.flat();let l=await this.handlePrepend(a,r,n,u,c);c++;let d=async h=>{if(h.isEntry)return h;let p=await h.encode();return u.blocks.push({block:p,node:h}),this.cache.set(h),new s(h,r)};a=await Promise.all(l.map(d));let m={...n,entries:a,NodeClass:i,distance:c},f=await t.from(m);return await Promise.all(f.map(async h=>{let p=await h.encode();u.blocks.push({block:p,node:h}),this.cache.set(h)})),u.nodes=f,{...u,distance:c}}async handlePrepend(e,r,n,o,i){let{BranchClass:s,LeafClass:c}=r,a=[],u=null;for(let l of e)if(u){let d=await this.mergeFirstLeftEntries(l,u,n,o,i);u=null;let m=d[0].address?s:c,f={...n,entries:d.sort(({key:p},{key:w})=>r.compare(p,w)),NodeClass:m,distance:i},h=await t.from(f);h[h.length-1].closed||(u=h.pop()),h.length&&(a=a.concat(h))}else!l.isEntry&&!l.closed?u=l:a.push(l);return u&&a.push(u),a}async getNodeFirstFromBlocks(e,r){for(let{block:n,node:o}of e)if(await n.cid===r)return o;return await this.getNode(r)}async mergeFirstLeftEntries(e,r,n,o,i){let s=n.opts,{LeafClass:c,BranchClass:a,BranchEntryClass:u}=s;if(e.isEntry){let f=await e.address;e=await this.getNodeFirstFromBlocks(o.blocks,f)}let l=e.entryList.entries;if(!l.length)throw new Error("unreachable no entries");let d=(f,h)=>f.concat(h),m=async(f,h,p)=>await Promise.all(f.map(async w=>(h.blocks.push({block:await w.encode(),node:w}),this.cache.set(w),new u({key:w.key,address:await w.address},p))));if(l[0].constructor.name===r.entryList.entries[0].constructor.name)return await d(r.entryList.entries,l);{let f=l.shift();if(!f)throw new Error("unreachable no left entry");if(!f.address)throw new Error("unreachable existing leaf, no leftEntry.address");let h=await this.mergeFirstLeftEntries(f,r,n,o,i-1),p=l.shift();if(!p)return h;if(!p.address)throw new Error("unreachable existing leaf, no esf.address");let w=await this.getNodeFirstFromBlocks(o.blocks,await p.address);if(w.entryList.entries[0].address){if(h[0].address)return h.concat(w.entryList.entries);{let g=await t.from({...n,entries:h.sort(({key:T},{key:U})=>s.compare(T,U)),NodeClass:c,distance:i}),b=await m(g,o,s),v=await t.from({...n,entries:[...w.entryList.entries,...b,...l].sort(({key:T},{key:U})=>s.compare(T,U)),NodeClass:a,distance:i});return await m(v,o,s)}}else{let g=await d(h,w.entryList.entries),b=await t.from({...n,entries:g.sort(({key:E},{key:T})=>s.compare(E,T)),NodeClass:c,distance:i}),v=await m(b,o,s);return await d(v,l)}}}async bulk(e,r={},n=!0){let{BranchClass:o}=r;r={codec:this.codec,hasher:this.hasher,getNode:this.getNode,compare:this.compare,cache:this.cache,...r},r.sorted||(e=L1(e,r),r.sorted=!0);let i={chunker:this.chunker,opts:r},s=await this.transaction(e,r);for(;s.nodes.length>1;){let c=s.nodes[0].distance+1,a=await Promise.all(s.nodes.map(async l=>{let d=await l.encode();return s.blocks.push({block:d,node:l}),this.cache.set(l),new r.BranchEntryClass(l,r)})),u=await t.from({...i,entries:a,NodeClass:o,distance:c});await Promise.all(u.map(async l=>{let d=await l.encode();this.cache.set(l),s.blocks.push({block:d,node:l})})),s.nodes=u}return s.root=s.nodes[0],n&&s.root&&await P1(this,s,e,i),s.blocks=s.blocks.map(({block:c})=>c),s}static async from({entries:e,chunker:r,NodeClass:n,distance:o,opts:i}){if(!e.every(a=>a.constructor.name===e[0].constructor.name))throw new Error("all entries must be of the same type");let s=[],c=[];for(let a of e)c.push(a),await r(a,o)&&(s.push(new St({entries:c,closed:!0})),c=[]);return c.length&&s.push(new St({entries:c,closed:!1})),s.map(a=>new n({entryList:a,chunker:r,distance:o,...i}))}},xi=class extends At{constructor({codec:e,hasher:r,block:n,...o}){super(o),this.codec=e,this.hasher=r,n?(this.block=n,this.address=n.cid):(this.block=this.encode(),this.address=this.block.then(i=>i.cid))}async get(e){let{result:r,cids:n}=await this.getEntry(e);return{result:r.key,cids:n}}async encode(){if(this.block)return this.block;let e=await this.encodeNode(),r={codec:this.codec,hasher:this.hasher,value:e};return this.block=await Ge(r),this.block}},Rr=class extends xi{async encodeNode(){let{entries:e}=this.entryList,r=async o=>{if(!o.address)throw new Error("entry.address required");return[o.key,await o.address]},n=await Promise.all(e.map(r));return{branch:[this.distance,n],closed:this.closed}}get isBranch(){return!0}},zr=class extends xi{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},ki=async function*(t){let{LeafClass:e,LeafEntryClass:r,BranchClass:n,BranchEntryClass:o,list:i,chunker:s,compare:c,...a}=t;i=i.map(d=>new r(d,a)),a.compare=c;let u=await At.from({entries:i,chunker:s,NodeClass:e,distance:0,opts:a});yield*u;let l=1;for(;u.length>1;){let d=async f=>new o({key:f.key,address:await f.address},a),m=await Promise.all(u.map(d));u=await At.from({entries:m,chunker:s,NodeClass:n,distance:l,opts:a}),yield*u,l++}};var ec=({bytes:t},{bytes:e})=>Th(t,e),vi=class extends Jt{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return jn(e)}},Ei=class extends Jt{async identity(){let{multihash:{bytes:e}}=await this.address;return jn(e)}},Si=class extends Rr{},Ai=class extends zr{},Lh=(t,e,r,n,o)=>{let i=c=>{let{value:a}=c,u={chunker:r,cache:e,block:c,getNode:s,codec:n,hasher:o,compare:ec},l,d;if(a.leaf)l=a.leaf.map(h=>new vi(h)),d=Ai;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new Ei({key:w,address:g})),d=Si}else throw new Error("Unknown block data, does not match schema");let m=new St({entries:l,closed:a.closed}),f=new d({entryList:m,...u});return e.set(f),f},s=c=>e.has(c)?e.get(c):t(c).then(a=>i(a));return s},Dh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(ec));let c=Lh(t,e,r,o,i);return ki({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:ec,cache:e,LeafClass:Ai,LeafEntryClass:vi,BranchClass:Si,BranchEntryClass:Ei})},Nh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>Lh(e,r,n,o,i,s)(t);var Uh=async function*({get:t,cids:e,hasher:r,key:n,cache:o,chunker:i,root:s}){let c=new Set,a;for(let f of e){let h=await t(f);if(!h)throw new Error("missing cid: "+f.toString());let p=await bi({...h,key:n}),w=await Ge({...p,codec:Kt,hasher:r});yield w,c.add(w.cid.toString()),h.cid.equals(s)&&(a=w.cid)}if(!a)throw new Error("cids does not include root");let u=[...c].map(f=>V.parse(f)),l;for await(let f of Dh({list:u,get:t,cache:o,chunker:i,hasher:r,codec:q})){let h=await f.block;yield h,l=h}if(!l)throw new Error("missing last block");let d=[a,l.cid];yield await Ge({value:d,codec:q,hasher:r})},Ph=async function*({root:t,get:e,key:r,cache:n,chunker:o,hasher:i}){let s=async w=>e(w).then(async g=>g?await vt({...g,codec:q,hasher:i}):void 0),c=async w=>e(w).then(async g=>g?await vt({...g,codec:Kt,hasher:i}):void 0),a=await s(t);if(!a)throw new Error("missing root");if(!a.bytes)throw new Error("missing bytes");let{value:[u,l]}=a,d=await e(u);if(!d)throw new Error("missing root block");let m=await Nh({cid:l,get:s,cache:n,chunker:o,codec:Kt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await vt({...w,codec:Kt,hasher:i}));let{bytes:g,cid:b}=await wi({...w,key:r}).catch(E=>{throw E});return await pi({cid:b,bytes:g,hasher:i,codec:Kt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var $r={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var Fh=Vn(30);function Mh(t){let e=t.length,r=new Uint8Array(e/2);for(let n=0;n<e;n+=2)r[n/2]=parseInt(t.substring(n,n+2),16);return r}async function Oh(t,e,r){let n=Mh(t),o=n.buffer.slice(0,n.byteLength),i=new _e,s=[];for(let{cid:u}of r.entries())s.push(u);let c=null;for await(let u of Uh({cids:s,get:r.get.bind(r),key:o,hasher:de,chunker:Fh,cache:$r,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await yi([c.cid],i)}async function Rh(t,e){let n=(await e.getRoots())[0];return await F1(n,e.get.bind(e),t)}async function F1(t,e,r){let n=Mh(r),o=n.buffer.slice(0,n.byteLength),i=new _e,s=null;for await(let c of Ph({root:t,get:e,key:o,hasher:de,chunker:Fh,cache:$r}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var tc=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let r=this.inRecursive[this.inRecursive.length-1];r&&(r.type===y.array&&(r.elements++,r.elements!==1&&e.push([44])),r.type===y.map&&(r.elements++,r.elements!==1&&(r.elements%2===1?e.push([44]):e.push([58]))))}[y.uint.major](e,r){this.prefix(e);let n=String(r.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[y.negint.major](e,r){this[y.uint.major](e,r)}[y.bytes.major](e,r){throw new Error(`${it} unsupported type: Uint8Array`)}[y.string.major](e,r){this.prefix(e);let n=zo(JSON.stringify(r.value));e.push(n.length>32?kn(n):n)}[y.array.major](e,r){this.prefix(e),this.inRecursive.push({type:y.array,elements:0}),e.push([91])}[y.map.major](e,r){this.prefix(e),this.inRecursive.push({type:y.map,elements:0}),e.push([123])}[y.tag.major](e,r){}[y.float.major](e,r){if(r.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===y.array)e.push([93]);else if(s.type===y.map)e.push([125]);else throw new Error("Unexpected recursive type; this should not happen!");return}throw new Error("Unexpected break; this should not happen!")}if(r.value===void 0)throw new Error(`${it} unsupported type: undefined`);if(this.prefix(e),r.type.name==="true"){e.push([116,114,117,101]);return}else if(r.type.name==="false"){e.push([102,97,108,115,101]);return}else if(r.type.name==="null"){e.push([110,117,108,108]);return}let n=String(r.value),o=[],i=!1;for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s),!i&&(o[s]===46||o[s]===101||o[s]===69)&&(i=!0);i||(o.push(46),o.push(48)),e.push(o)}};function M1(t,e){if(Array.isArray(t[0])||Array.isArray(e[0]))throw new Error(`${it} complex map keys are not supported`);let r=t[0],n=e[0];if(r.type!==y.string||n.type!==y.string)throw new Error(`${it} non-string map keys are not supported`);if(r<n)return-1;if(r>n)return 1;throw new Error(`${it} unexpected duplicate map keys, this is not supported`)}var O1={addBreakTokens:!0,mapSorter:M1};function rc(t,e){return e=Object.assign({},O1,e),ba(t,new tc,e)}var Hr=class{constructor(e,r={}){this.pos=0,this.data=e,this.options=r,this.modeStack=["value"],this.lastToken=""}done(){return this.pos>=this.data.length}ch(){return this.data[this.pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this.pos]}expect(e){if(this.data.length-this.pos<e.length)throw new Error(`${I} unexpected end of input at position ${this.pos}`);for(let r=0;r<e.length;r++)if(this.data[this.pos++]!==e[r])throw new Error(`${I} unexpected token at position ${this.pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this.pos,r=!1,n=!1,o=c=>{for(;!this.done();){let a=this.ch();if(c.includes(a))this.pos++;else break}};if(this.ch()===45&&(r=!0,this.pos++),this.ch()===48)if(this.pos++,this.ch()===46)this.pos++,n=!0;else return new S(y.uint,0,this.pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),r&&this.pos===e+1)throw new Error(`${I} unexpected token at position ${this.pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${I} unexpected token at position ${this.pos}`);n=!0,this.pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this.pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this.pos++,o([48,49,50,51,52,53,54,55,56,57]));let i=String.fromCharCode.apply(null,this.data.subarray(e,this.pos)),s=parseFloat(i);return n?new S(y.float,s,this.pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new S(s>=0?y.uint:y.negint,s,this.pos-e):new S(s>=0?y.uint:y.negint,BigInt(i),this.pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${I} unexpected character at position ${this.pos}; this shouldn't happen`);this.pos++;for(let i=this.pos,s=0;i<this.data.length&&s<65536;i++,s++){let c=this.data[i];if(c===92||c<32||c>=128)break;if(c===34){let a=String.fromCharCode.apply(null,this.data.subarray(this.pos,i));return this.pos=i+1,new S(y.string,a,s)}}let e=this.pos,r=[],n=()=>{if(this.pos+4>=this.data.length)throw new Error(`${I} unexpected end of unicode escape sequence at position ${this.pos}`);let i=0;for(let s=0;s<4;s++){let c=this.ch();if(c>=48&&c<=57)c-=48;else if(c>=97&&c<=102)c=c-97+10;else if(c>=65&&c<=70)c=c-65+10;else throw new Error(`${I} unexpected unicode escape character at position ${this.pos}`);i=i*16+c,this.pos++}return i},o=()=>{let i=this.ch(),s=null,c=i>239?4:i>223?3:i>191?2:1;if(this.pos+c>this.data.length)throw new Error(`${I} unexpected unicode sequence at position ${this.pos}`);let a,u,l,d;switch(c){case 1:i<128&&(s=i);break;case 2:a=this.data[this.pos+1],(a&192)===128&&(d=(i&31)<<6|a&63,d>127&&(s=d));break;case 3:a=this.data[this.pos+1],u=this.data[this.pos+2],(a&192)===128&&(u&192)===128&&(d=(i&15)<<12|(a&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:a=this.data[this.pos+1],u=this.data[this.pos+2],l=this.data[this.pos+3],(a&192)===128&&(u&192)===128&&(l&192)===128&&(d=(i&15)<<18|(a&63)<<12|(u&63)<<6|l&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|s&1023),r.push(s),this.pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this.pos++,this.done())throw new Error(`${I} unexpected string termination at position ${this.pos}`);switch(s=this.ch(),this.pos++,s){case 34:case 39:case 92:case 47:r.push(s);break;case 98:r.push(8);break;case 116:r.push(9);break;case 110:r.push(10);break;case 102:r.push(12);break;case 114:r.push(13);break;case 117:r.push(n());break;default:throw new Error(`${I} unexpected string escape character at position ${this.pos}`)}break;case 34:return this.pos++,new S(y.string,ha(r),this.pos-e);default:if(i<32)throw new Error(`${I} invalid control character at position ${this.pos}`);i<128?(r.push(i),this.pos++):o()}}throw new Error(`${I} unexpected end of string at position ${this.pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this.pos++,new S(y.map,1/0,1);case 91:return this.modeStack.push("array-start"),this.pos++,new S(y.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new S(y.null,null,4);case 102:return this.expect([102,97,108,115,101]),new S(y.false,!1,5);case 116:return this.expect([116,114,117,101]),new S(y.true,!0,4);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.parseNumber();default:throw new Error(`${I} unexpected character at position ${this.pos}`)}}next(){switch(this.skipWhitespace(),this.currentMode()){case"value":return this.modeStack.pop(),this.parseValue();case"array-value":{if(this.modeStack.pop(),this.ch()===93)return this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting array delimiter but found '${String.fromCharCode(this.ch())}'`);return this.pos++,this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue()}case"array-start":return this.modeStack.pop(),this.ch()===93?(this.pos++,this.skipWhitespace(),new S(y.break,void 0,1)):(this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue());case"obj-key":if(this.ch()===125)return this.modeStack.pop(),this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting object delimiter but found '${String.fromCharCode(this.ch())}'`);this.pos++,this.skipWhitespace();case"obj-start":{if(this.modeStack.pop(),this.ch()===125)return this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting key/value delimiter ':' but found '${String.fromCharCode(this.ch())}'`);return this.pos++,this.modeStack.push("obj-value"),e}case"obj-value":return this.modeStack.pop(),this.modeStack.push("obj-key"),this.skipWhitespace(),this.parseValue();default:throw new Error(`${I} unexpected parse state at position ${this.pos}; this shouldn't happen`)}}};function nc(t,e){return e=Object.assign({tokenizer:new Hr(t,e)},e),Cn(t,e)}var oc=ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),u6=ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),l6=ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),f6=ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function z1(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=V.asCID(t);if(!e)return null;let r=e.toString();return[new S(y.map,1/0,1),new S(y.string,"/",1),new S(y.string,r,r.length),new S(y.break,void 0,1)]}function _i(t){let e=oc.encode(t).slice(1);return[new S(y.map,1/0,1),new S(y.string,"/",1),new S(y.map,1/0,1),new S(y.string,"bytes",5),new S(y.string,e,e.length),new S(y.break,void 0,1),new S(y.break,void 0,1)]}function Fe(t){return _i(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function $1(t){return _i(new Uint8Array(t))}function H1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function j1(t){if(Number.isNaN(t))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(t===1/0||t===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var V1={typeEncoders:{Object:z1,Buffer:_i,Uint8Array:_i,Int8Array:Fe,Uint16Array:Fe,Int16Array:Fe,Uint32Array:Fe,Int32Array:Fe,Float32Array:Fe,Float64Array:Fe,Uint8ClampedArray:Fe,BigInt64Array:Fe,BigUint64Array:Fe,DataView:Fe,ArrayBuffer:$1,undefined:H1,number:j1}},ic=class extends Hr{constructor(e,r){super(e,r),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===y.map){let r=this._next();if(r.type===y.string&&r.value==="/"){let n=this._next();if(n.type===y.string){if(this._next().type!==y.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new S(y.tag,42,0)}if(n.type===y.map){let o=this._next();if(o.type===y.string&&o.value==="bytes"){let i=this._next();if(i.type===y.string){for(let c=0;c<2;c++)if(this._next().type!==y.break)throw new Error("Invalid encoded Bytes form");let s=oc.decode(`m${i.value}`);return new S(y.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(r)}return e}},sc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};sc.tags[42]=V.parse;var q1=t=>rc(t,V1),W1=t=>{let e=Object.assign(sc,{tokenizer:new ic(t,sc)});return nc(t,e)},Bi=t=>K1.decode(q1(t));var K1=new TextDecoder,Ci=t=>W1(G1.encode(t)),G1=new TextEncoder;var Q1=(t,e)=>e.some(r=>t instanceof r),zh,$h;function J1(){return zh||(zh=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function X1(){return $h||($h=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Hh=new WeakMap,cc=new WeakMap,jh=new WeakMap,ac=new WeakMap,lc=new WeakMap;function Y1(t){let e=new Promise((r,n)=>{let o=()=>{t.removeEventListener("success",i),t.removeEventListener("error",s)},i=()=>{r(Qe(t.result)),o()},s=()=>{n(t.error),o()};t.addEventListener("success",i),t.addEventListener("error",s)});return e.then(r=>{r instanceof IDBCursor&&Hh.set(r,t)}).catch(()=>{}),lc.set(e,t),e}function Z1(t){if(cc.has(t))return;let e=new Promise((r,n)=>{let o=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",s),t.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(t.error||new DOMException("AbortError","AbortError")),o()};t.addEventListener("complete",i),t.addEventListener("error",s),t.addEventListener("abort",s)});cc.set(t,e)}var uc={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return cc.get(t);if(e==="objectStoreNames")return t.objectStoreNames||jh.get(t);if(e==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Qe(t[e])},set(t,e,r){return t[e]=r,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function Vh(t){uc=t(uc)}function ex(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(Ti(this),e,...r);return jh.set(n,e.sort?e.sort():[e]),Qe(n)}:X1().includes(t)?function(...e){return t.apply(Ti(this),e),Qe(Hh.get(this))}:function(...e){return Qe(t.apply(Ti(this),e))}}function tx(t){return typeof t=="function"?ex(t):(t instanceof IDBTransaction&&Z1(t),Q1(t,J1())?new Proxy(t,uc):t)}function Qe(t){if(t instanceof IDBRequest)return Y1(t);if(ac.has(t))return ac.get(t);let e=tx(t);return e!==t&&(ac.set(t,e),lc.set(e,t)),e}var Ti=t=>lc.get(t);function Wh(t,e,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(t,e),c=Qe(s);return n&&s.addEventListener("upgradeneeded",a=>{n(Qe(s.result),a.oldVersion,a.newVersion,Qe(s.transaction),a)}),r&&s.addEventListener("blocked",a=>r(a.oldVersion,a.newVersion,a)),c.then(a=>{i&&a.addEventListener("close",()=>i()),o&&a.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),c}var rx=["get","getKey","getAll","getAllKeys","count"],nx=["put","add","delete","clear"],fc=new Map;function qh(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(fc.get(e))return fc.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=nx.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||rx.includes(r)))return;let i=async function(s,...c){let a=this.transaction(s,o?"readwrite":"readonly"),u=a.store;return n&&(u=u.index(c.shift())),(await Promise.all([u[r](...c),o&&a.done]))[0]};return fc.set(e,i),i}Vh(t=>({...t,get:(e,r,n)=>qh(e,r)||t.get(e,r,n),has:(e,r)=>!!qh(e,r)||t.has(e,r)}));var dc="0.13.3-dev";var Kh=dc.match(/^([^.]*\.[^.]*)/);if(!Kh)throw new Error("invalid version: "+dc);var Di=Kh[0],hc=class{constructor(e){k(this,"STORAGE_VERSION",Di);k(this,"name");this.name=e}},Ii=class extends hc{constructor(){super(...arguments);k(this,"tag","header-base")}makeHeader({car:r,key:n}){return Bi({car:r,key:n})}parseHeader(r){return Ci(r)}},Li=class{constructor(e){k(this,"tag","car-base");k(this,"STORAGE_VERSION",Di);k(this,"loader");this.loader=e}};var Ni=class{constructor(e){k(this,"tag","rwal-base");k(this,"STORAGE_VERSION",Di);k(this,"loader");k(this,"ready");k(this,"walState",{operations:[],noLoaderOps:[],fileOperations:[]});k(this,"processing");this.loader=e,this.ready=(async()=>{let r=await this.load().catch(n=>(console.error("error loading wal",n),null));this.walState.operations=r?.operations||[],this.walState.fileOperations=r?.fileOperations||[]})()}async enqueue(e,r){await this.ready,r.noLoader?this.walState.noLoaderOps.push(e):this.walState.operations.push(e),await this.save(this.walState),r.noLoader||this._process()}async enqueueFile(e,r=!1){await this.ready,this.walState.fileOperations.push({cid:e,public:r})}async _process(){if(await this.ready,!this.loader.remoteCarStore)return;if(this.processing)return this.processing;let e=(async()=>{await this._int_process()})();this.processing=e;try{await e}finally{this.processing=void 0}(this.walState.operations.length||this.walState.fileOperations.length||this.walState.noLoaderOps.length)&&setTimeout(()=>void this._process(),0)}async _int_process(){if(!this.loader.remoteCarStore)return;let e=(async()=>{let r=[...this.walState.operations],n=[...this.walState.fileOperations],o=[],i=[...this.walState.noLoaderOps],s=xn(5);if(r.length+n.length+i.length!==0){for(let c of i){let a=s(async()=>{let u=await this.loader.carStore.load(c.car).catch(()=>null);if(!u)throw new Error(`missing car ${c.car.toString()}`);await this.loader.remoteCarStore.save(u),this.walState.noLoaderOps=this.walState.noLoaderOps.filter(l=>l!==c)});o.push(a)}for(let c of r){let a=s(async()=>{let u=await this.loader.carStore.load(c.car).catch(()=>null);if(!u)throw new Error(`missing car ${c.car.toString()}`);await this.loader.remoteCarStore.save(u),this.walState.operations=this.walState.operations.filter(l=>l!==c)});o.push(a)}if(n.length){let c=this.loader;for(let{cid:a,public:u}of n){let l=s(async()=>{let d=await c.fileStore.load(a);await c.remoteFileStore?.save(d,{public:u}),this.walState.fileOperations=this.walState.fileOperations.filter(m=>m.cid!==a)});o.push(l)}}try{let a=(await Promise.allSettled(o)).filter(u=>u.status==="rejected");if(a.length)throw console.error("error uploading",a),a[0].reason;if(r.length){let u=r[r.length-1];await this.loader.remoteMetaStore?.save(u).catch(l=>{throw console.error("error saving remote meta",l),this.walState.operations.push(u),l})}}finally{await this.save(this.walState)}}})();this.loader.remoteMetaLoading=e,await e}};var jr=class extends Li{constructor(){super(...arguments);k(this,"tag","car-browser-idb");k(this,"idb",null)}async _withDB(r){if(!this.idb){let n=`fp.${this.STORAGE_VERSION}.${this.loader.keyId}.${this.loader.name}`;this.idb=await Wh(n,1,{upgrade(o){o.createObjectStore("cars")}})}return await r(this.idb)}async load(r){return await this._withDB(async n=>{let i=await n.transaction(["cars"],"readonly").objectStore("cars").get(r.toString());if(!i)throw new Error(`missing idb block ${r.toString()}`);return{cid:r,bytes:i}})}async save(r){return await this._withDB(async n=>{let o=n.transaction(["cars"],"readwrite");return await o.objectStore("cars").put(r.bytes,r.cid.toString()),await o.done})}async remove(r){return await this._withDB(async n=>{let o=n.transaction(["cars"],"readwrite");return await o.objectStore("cars").delete(r.toString()),await o.done})}},Ui=class extends Ni{constructor(){super(...arguments);k(this,"tag","wal-browser-ls")}headerKey(r){return`fp.${this.STORAGE_VERSION}.wal.${this.loader.name}.${r}`}async load(r="main"){try{let n=localStorage.getItem(this.headerKey(r));return n?Ci(n):null}catch{return null}}async save(r,n="main"){try{let o=Bi(r);localStorage.setItem(this.headerKey(n),o)}catch{}}},Pi=class extends Ii{constructor(){super(...arguments);k(this,"tag","header-browser-ls")}headerKey(r){return`fp.${this.STORAGE_VERSION}.meta.${this.name}.${r}`}async load(r="main"){try{let n=localStorage.getItem(this.headerKey(r));return n?[this.parseHeader(n)]:null}catch{return null}}async save(r,n="main"){try{let o=this.headerKey(n),i=this.makeHeader(r);return localStorage.setItem(o,i),null}catch{return null}}};function Qh(t,e){return t.some(r=>r.equals(e))}function Gh(t,e=[]){let r=new Map;for(let n of t)Qh(e,n)||r.set(n.toString(),n);return[...r.values()]}function ox(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Vr=class{constructor(e,r){k(this,"name");k(this,"opts",{});k(this,"remoteMetaLoading");k(this,"remoteMetaStore");k(this,"remoteCarStore");k(this,"remoteWAL");k(this,"metaStore");k(this,"carStore");k(this,"carLog",[]);k(this,"carReaders",new Map);k(this,"ready");k(this,"key");k(this,"keyId");k(this,"getBlockCache",new Map);k(this,"committing");this.name=e,this.opts=r||this.opts,this.metaStore=new Pi(this.name),this.carStore=new jr(this),this.remoteWAL=new Ui(this),this.ready=Promise.resolve().then(async()=>{if(!this.metaStore||!this.carStore||!this.remoteWAL)throw new Error("stores not initialized");let n=this.opts.meta?[this.opts.meta]:await this.metaStore.load("main");n&&await this.handleDbMetasFromStore(n)})}async snapToCar(e){await this.ready,typeof e=="string"&&(e=V.parse(e));let r=await this.loadCarHeaderFromMeta({car:e,key:this.key||null});this.carLog=[e,...r.cars],await this.getMoreReaders(r.cars),await this._applyCarHeader(r,!0)}async handleDbMetasFromStore(e){for(let r of e)await this.mergeDbMetaIntoClock(r)}async mergeDbMetaIntoClock(e){if(e.key&&await this.setKey(e.key),Qh(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Gh([e.car,...this.carLog,...r.cars],r.compact)],await this._applyCarHeader(r)}async ingestKeyFromMeta(e){let{key:r}=e;r&&await this.setKey(r)}async loadCarHeaderFromMeta({car:e}){let r=await this.loadCar(e);return await _h(r)}async _getKey(){return this.key?this.key:(this.opts.public||(mi()?await this.setKey(ox(gi(32))):console.warn("missing crypto module, using public mode")),this.key)}async commit(e,r,n={noLoader:!1,compact:!1}){this.committing&&await this.committing,this.committing=this._commitInternal(e,r,n);let o=await this.committing;return this.committing=void 0,o}async _commitInternal(e,r,n={noLoader:!1,compact:!1}){await this.ready;let o=this.makeCarHeader(r,this.carLog,!!n.compact),i=[];if(o.files)i=o.files;else{let l=await Ah(o);await e.put(l.cid,l.bytes),i=[l.cid]}let s=n.public?null:await this._getKey(),{cid:c,bytes:a}=s?await Oh(s,i[0],e):await yi(i,e);if(pc(r))return await this.fileStore.save({cid:c,bytes:a}),await this.remoteWAL.enqueueFile(c,n.public),c;await this.carStore.save({cid:c,bytes:a});let u={car:c,key:s||null};if(await this.remoteWAL.enqueue(u,n),await this.metaStore.save(u),n.compact){let l=o;this.carLog=[...Gh([c,...this.carLog],l.compact)],(async()=>{this.remoteMetaLoading&&await this.remoteMetaLoading;for(let d of l.compact)await this.carStore.remove(d)})()}else this.carLog.unshift(c);return c}async getBlock(e){await this.ready;let r=e.toString();if(this.getBlockCache.has(r))return this.getBlockCache.get(r);let n=await Promise.any(this.carLog.map(async o=>{let i=await this.loadCar(o);if(!i)throw new Error(`missing car reader ${o.toString()}`);let s=await i.get(e);if(s)return s;throw new Error(`block not in reader: ${e.toString()}`)})).catch(()=>{});return n&&this.getBlockCache.set(r,n),n}async loadCar(e){if(!this.carStore)throw new Error("car store not initialized");return await this.storesLoadCar(e,this.carStore,this.remoteCarStore)}async storesLoadCar(e,r,n,o){let i=e.toString();return this.carReaders.has(i)||this.carReaders.set(i,(async()=>{let s=null;try{s=await r.load(e)}catch{if(n){let l=await n.load(e);l&&(await r.save(l),s=l)}}if(!s)throw new Error(`missing car file ${i}`);let c=await Vt.fromBytes(s.bytes),a=o?Promise.resolve(c):this.ensureDecryptedReader(c);return this.carReaders.set(i,a),a})().catch(s=>{throw this.carReaders.delete(i),s})),this.carReaders.get(i)}async ensureDecryptedReader(e){let r=await this._getKey();if(!r)return e;let{blocks:n,root:o}=await Rh(r,e);return{getRoots:()=>[o],get:n.get.bind(n)}}async setKey(e){if(this.key&&this.key!==e)throw new Error("key mismatch");this.key=e;let r=mi();if(!r)throw new Error("missing crypto module");let n=r.subtle,i=new TextEncoder().encode(e),s=await n.digest("SHA-256",i),c=Array.from(new Uint8Array(s));this.keyId=c.map(a=>a.toString(16).padStart(2,"0")).join("")}async getMoreReaders(e){let r=xn(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};k(Vr,"defaultHeader");var qr=W(tp(),1);var Fi=class extends Jt{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return jn(r)}},Xt=class extends Fi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},Yt=class extends Fi{constructor(e,r){if(!e.address)throw new Error("Cannot create MapBranchEntry without address");super(e,r)}async encodeNode(){return[this.key,await this.address]}},rp=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},np=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},Zt=class extends zr{get(e){return rp(this,e)}getMany(e){return np(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...op,...r},n)}},er=class extends Rr{get(e){return rp(this,e)}getMany(e){return np(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...op,...r},n)}},op={LeafClass:Zt,LeafEntryClass:Xt,BranchClass:er,BranchEntryClass:Yt},ip=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||Zt,a=s.LeafEntryClass||Xt,u=s.BranchClass||er,l=s.BranchEntryClass||Yt,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=dx({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},sp=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s,compare:c,...a})=>{s||(n=n.sort(({key:d},{key:m})=>c(d,m)));let u=ip(t,e,r,o,i,c,a),l={list:n,codec:o,hasher:i,chunker:r,getNode:u,sorted:s,compare:c,cache:e,LeafClass:a.LeafClass||Zt,LeafEntryClass:a.LeafEntryClass||Xt,BranchClass:a.BranchClass||er,BranchEntryClass:a.BranchEntryClass||Yt};return ki(l)},ap=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>ip(e,r,n,o,i,s,c)(t);function dx({chunker:t,cache:e,getNode:r,codec:n,hasher:o,compare:i,LeafEntryClass:s,LeafClass:c,BranchEntryClass:a,BranchClass:u}){let l={codec:n,hasher:o};return d=>{let{value:m}=d,f={chunker:t,cache:e,block:d,getNode:r,codec:n,hasher:o,compare:i},h,p;if(m.leaf)h=m.leaf.map(([b,v])=>new s({key:b,value:v},l)),p=c;else if(m.branch){let[b,v]=m.branch;f.distance=b,h=v.map(([E,T])=>new a({key:E,address:T},l)),p=u}else throw new Error("Unknown block data, does not match schema");let w=new St({entries:h,closed:m.closed}),g=new p({entryList:w,...f});return e.set(g),g}}var hx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Qt(r,o);return s!==0?s:px(n,i)},px=(t,e)=>{if(Number.isNaN(t))return-1;if(Number.isNaN(e))throw new Error("ref may not be Infinity or NaN");return Number.isFinite(t)?Qt(t,e):1},cp=async(t,e)=>{let r=[e,NaN],n=[e,1/0],{result:o,cids:i}=await t.getRangeEntries(r,n);return{result:o.map(s=>{let[c,a]=s.key;return{id:a,key:c,row:s.value}}),cids:i}},up=async(t,e,r)=>{e=[e,NaN],r=[r,1/0];let{result:n,cids:o}=await t.getRangeEntries(e,r);return{result:n.map(s=>{let[c,a]=s.key;return{id:a,key:c,row:s.value}}),cids:o}},mc=class extends Zt{get(e){return cp(this,e)}range(e,r){return up(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...wc,...r},n)}},gc=class extends er{get(e){return cp(this,e)}range(e,r){return up(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...wc,...r},n)}},yx=mc,mx=gc,wc={LeafClass:yx,BranchClass:mx,LeafEntryClass:Xt,BranchEntryClass:Yt},lp={...wc,compare:hx},fp=t=>(t={...lp,...t},sp(t)),bc=t=>(t={...lp,...t},ap(t));var tr=class{constructor(){k(this,"cid",null);k(this,"root",null)}},wx=(t,e)=>{if(Number.isNaN(t))return-1;if(Number.isNaN(e))throw new Error("ref may not be Infinity or NaN");return t===1/0?1:Qt(t,e)},bx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Qt(r,o);return s!==0?s:wx(n,i)},kc={cache:$r,chunker:Vn(30),codec:q,hasher:de,compare:bx},vc={cache:$r,chunker:Vn(30),codec:q,hasher:de,compare:Qt};function dp(t,e){let r=[];return t.forEach(({key:n,value:o,del:i})=>{if(i||!o)return;let s=!1,c=e({_id:n,...o},(a,u)=>{s=!0,!(typeof a>"u")&&r.push({key:[qr.default.encode(a),n],value:u||null})});!s&&c&&r.push({key:[qr.default.encode(c),n],value:null})}),r}function xc(t){return async e=>{let r=await t.get(e);if(!r)throw new Error(`Missing block ${e.toString()}`);let{cid:n,bytes:o}=r;return pi({cid:n,bytes:o,hasher:de,codec:q})}}async function Ec(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await bc({cid:e.cid,get:xc(t),...n});else{let s=null,c=null;for await(let a of await fp({get:xc(t),list:r,...n})){let u=await a.block;await t.put(u.cid,u.bytes),s=u,c=a}if(!c||!s)throw new Error("failed to create index");return{root:c,cid:s.cid}}let{root:o,blocks:i}=await e.root.bulk(r);if(o){for await(let s of i)await t.put(s.cid,s.bytes);return{root:o,cid:(await o.block).cid}}else return{root:null,cid:null}}async function Sc(t,e,r){return await bc({cid:e,get:xc(t),...r})}async function rr(t,e,r){return r.descending&&(e.result=e.result.reverse()),r.limit&&(e.result=e.result.slice(0,r.limit)),r.includeDocs&&(e.result=await Promise.all(e.result.map(async n=>{let o=await t.get(n.id),i=o?{_id:n.id,...o.doc}:null;return{...n,doc:i}}))),{rows:e.result.map(n=>(n.key=qr.default.decode(n.key),n.row&&!n.value&&(n.value=n.row,delete n.row),n))}}function Ac(t){return t.map(e=>qr.default.encode(e))}function _c(t){return qr.default.encode(t)}function qn({_crdt:t},e,r,n){if(r&&n)throw new Error("cannot provide both mapFn and meta");if(r&&r.constructor.name!=="Function")throw new Error("mapFn must be a function");if(t.indexers.has(e))t.indexers.get(e).applyMapFn(e,r,n);else{let o=new Bc(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var Bc=class{constructor(e,r,n,o){k(this,"blocks");k(this,"crdt");k(this,"name",null);k(this,"mapFn",null);k(this,"mapFnString","");k(this,"byKey",new tr);k(this,"byId",new tr);k(this,"indexHead");k(this,"includeDocsDefault",!1);k(this,"initError",null);k(this,"ready");if(this.blocks=e.indexBlocks,this.crdt=e,this.applyMapFn(r,n,o),!(this.mapFnString||this.initError))throw new Error("missing mapFnString");this.ready=this.blocks.ready.then(()=>{})}applyMapFn(e,r,n){if(r&&n)throw new Error("cannot provide both mapFn and meta");if(this.name&&this.name!==e)throw new Error("cannot change name");this.name=e;try{if(n){if(this.indexHead&&this.indexHead.map(i=>i.toString()).join()!==n.head.map(i=>i.toString()).join())throw new Error("cannot apply meta to existing index");this.mapFnString?this.mapFnString!==n.map?console.log("cannot apply different mapFn meta: old mapFnString",this.mapFnString,"new mapFnString",n.map):(this.byId.cid=n.byId,this.byKey.cid=n.byKey,this.indexHead=n.head):(this.mapFnString=n.map,this.byId.cid=n.byId,this.byKey.cid=n.byKey,this.indexHead=n.head)}else if(this.mapFn){if(r&&this.mapFn.toString()!==r.toString())throw new Error("cannot apply different mapFn app2")}else{if(r||(r=xx(e)),this.mapFnString){if(this.mapFnString!==r.toString())throw new Error("cannot apply different mapFn app")}else this.mapFnString=r.toString();this.mapFn=r}let o=/=>\s*(.*)/.test(this.mapFnString);this.includeDocsDefault=o}catch(o){this.initError=o}}async query(e={}){if(await this._updateIndex(),await this._hydrateIndex(),!this.byKey.root)return await rr(this.crdt,{result:[]},e);if(this.includeDocsDefault&&e.includeDocs===void 0&&(e.includeDocs=!0),e.range){let{result:o,...i}=await this.byKey.root.range(...Ac(e.range));return await rr(this.crdt,{result:o,...i},e)}if(e.key){let o=_c(e.key);return await rr(this.crdt,await this.byKey.root.get(o),e)}if(Array.isArray(e.keys))return{rows:(await Promise.all(e.keys.map(async i=>{let s=_c(i);return(await rr(this.crdt,await this.byKey.root.get(s),e)).rows}))).flat()};if(e.prefix){Array.isArray(e.prefix)||(e.prefix=[e.prefix]);let o=[...e.prefix,NaN],i=[...e.prefix,1/0],s=Ac([o,i]);return await rr(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await rr(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new tr,this.byKey=new tr,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await Sc(this.blocks,this.byId.cid,vc),this.byKey.root=await Sc(this.blocks,this.byKey.cid,kc))}async _updateIndex(){if(await this.ready,this.initError)throw this.initError;if(!this.mapFn)throw new Error("No map function defined");let e,r;if(!this.indexHead||this.indexHead.length===0?{result:e,head:r}=await this.crdt.allDocs():{result:e,head:r}=await this.crdt.changes(this.indexHead),e.length===0)return this.indexHead=r,{byId:this.byId,byKey:this.byKey};let n=[],o=[];if(this.byId.root){let a=e.map(({key:l})=>l),{result:u}=await this.byId.root.getMany(a);n=u.map(l=>({key:l,del:!0})),o=u.map(l=>({key:l[1],del:!0}))}let i=dp(e,this.mapFn),s=i.map(({key:a})=>({key:a[1],value:a})),c=new Map;for(let[a,u]of this.crdt.indexers)u.indexHead&&c.set(a,{byId:u.byId.cid,byKey:u.byKey.cid,head:u.indexHead,map:u.mapFnString,name:u.name});return await this.blocks.transaction(async a=>(this.byId=await Ec(a,this.byId,o.concat(s),vc),this.byKey=await Ec(a,this.byKey,n.concat(i),kc),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function xx(t){return e=>{if(e[t])return e[t]}}var Ri=class Ri extends Vr{constructor(r,n,o){super(r,o);k(this,"crdt");k(this,"defaultHeader",Ri.defaultHeader);this.crdt=n}async _applyCarHeader(r){for(let[n,o]of Object.entries(r.indexes))qn({_crdt:this.crdt},n,void 0,o)}makeCarHeader({indexes:r},n,o=!1){return o?{indexes:r,cars:[],compact:n}:{indexes:r,cars:n,compact:[]}}};k(Ri,"defaultHeader",{cars:[],compact:[],indexes:new Map});var Mi=Ri,zi=class zi extends Vr{constructor(r,n,o){super(r,o);k(this,"defaultHeader",zi.defaultHeader);k(this,"clock");k(this,"remoteFileStore");k(this,"fileStore");this.fileStore=new jr(this),this.clock=n}async loadFileCar(r,n=!1){return await this.storesLoadCar(r,this.fileStore,this.remoteFileStore,n)}async _applyCarHeader(r,n=!1){n?await this.clock.applyHead(null,r.head,this.clock.head):await this.clock.applyHead(null,r.head,[])}makeCarHeader(r,n,o=!1){if(pc(r)){let i=[];for(let[,s]of Object.entries(r.files))i.push(s.cid);return{files:i}}else{let{head:i}=r;return o?{head:i,cars:[],compact:n}:{head:i,cars:n,compact:[]}}}};k(zi,"defaultHeader",{cars:[],compact:[],head:[]});var Oi=zi;function pc(t){return t&&t.files!==void 0}var _t=class extends _e{constructor(r){super();k(this,"parent");this.parent=r}async get(r){return this.parent.get(r)}async superGet(r){return super.get(r)}},$i=class{constructor(e,r,n){k(this,"ready");k(this,"name",null);k(this,"loader",null);k(this,"opts",{});k(this,"transactions",new Set);if(this.opts=n||this.opts,e){if(this.name=e,!r)throw new Error("missing loader");this.loader=r,this.ready=this.loader.ready}else this.ready=Promise.resolve()}async put(){throw new Error("use a transaction to put")}async get(e){if(!e)throw new Error("required cid");for(let r of this.transactions){let n=await r.superGet(e);if(n)return n}if(this.loader)return await this.loader.getBlock(e)}async commitCompaction(e,r){return this.transactions.clear(),this.transactions.add(e),await this.loader?.commit(e,{head:r},{compact:!0})}async*entries(){let e=new Set;for(let r of this.transactions)for await(let n of r.entries())e.has(n.cid.toString())||(e.add(n.cid.toString()),yield n)}async executeTransaction(e,r){let n=new _t(this);this.transactions.add(n);let o=await e(n),{car:i,done:s}=await r(n,o);return i?{...s,car:i}:s}},Hi=class extends $i{constructor(e,r,n){e?super(e,new Mi(e,r,n),n):super(null)}async transaction(e,r){return this.executeTransaction(e,async(n,o)=>(r.set(o.name,o),{car:await this.loader?.commit(n,{indexes:r}),done:o}))}},ji=class extends $i{constructor(e,r,n){e?super(e,new Oi(e,r,n),n):super(null)}async transaction(e,r,n={noLoader:!1}){return this.executeTransaction(e,async(o,i)=>({car:await this.loader?.commit(o,i,n),done:i}))}},Vi=class{constructor(e){k(this,"blocks");k(this,"loader",null);k(this,"cids",new Set);this.blocks=e,this.loader=e.loader}async get(e){return this.cids.add(e),await this.blocks.get(e)}};var Tc=({name:t,code:e,encode:r})=>new Cc(t,e,r),Cc=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Pt(this.code,r):r.then(n=>Pt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function qi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*kx(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=j.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*Ic(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*Ic(e,t)}}function*Ic(t,e){if(t==null||t instanceof Uint8Array)return;let r=j.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*kx(i,o)}}function*vx(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!j.asCID(n)&&(yield*Lc(n,o))}else yield*Lc(e,t)}function*Lc(t,e){if(!(t==null||typeof t!="object"))for(let[r,n]of Object.entries(t)){let o=[...e,r];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&!j.asCID(n)&&(yield*vx(o,n))}}function Ex(t,e){let r=t;for(let[n,o]of e.entries()){if(r=r[o],r==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=j.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var Me=class{constructor({cid:e,bytes:r,value:n}){if(!e||!r||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=r,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:qi(),bytes:qi(),value:qi(),asBlock:qi()})}links(){return Ic(this.value,[])}tree(){return Lc(this.value,[])}get(e="/"){return Ex(this.value,e.split("/").filter(Boolean))}};async function Wi({value:t,codec:e,hasher:r}){if(typeof t>"u")throw new Error('Missing required argument "value"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.encode(t),o=await r.digest(n),i=j.create(1,e.code,o);return new Me({value:t,bytes:n,cid:i})}async function Ki({bytes:t,codec:e,hasher:r}){if(!t)throw new Error('Missing required argument "bytes"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.decode(t),o=await r.digest(t),i=j.create(1,e.code,o);return new Me({value:n,bytes:t,cid:i})}var Dc={};Y(Dc,{sha256:()=>ut,sha512:()=>Sx});var pp=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ut=Tc({name:"sha2-256",code:18,encode:pp("SHA-256")}),Sx=Tc({name:"sha2-512",code:19,encode:pp("SHA-512")});async function Kn(t,e,r){let n=new Je(t),o=new Map(e.map(s=>[s.toString(),s]));if(o.has(r.toString()))return e;let i=!1;for(let s of e)await yp(n,r,s)&&(o.delete(s.toString()),o.set(r.toString(),r),i=!0);if(i)return[...o.values()];for(let s of e)if(await yp(n,s,r))return e;return e.concat(r)}var Wn=class extends Me{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(e,r){return Ax({data:e,parents:r??[]})}},Je=class{constructor(e){this._blocks=e}async get(e){let r=await this._blocks.get(e);if(!r)throw new Error(`missing block: ${e}`);return _x(r.bytes)}};async function Ax(t){let{cid:e,bytes:r}=await Wi({value:t,codec:q,hasher:ut});return new Me({cid:e,value:t,bytes:r})}async function _x(t){let{cid:e,value:r}=await Ki({bytes:t,codec:q,hasher:ut});return new Me({cid:e,value:r,bytes:t})}async function yp(t,e,r){if(e.toString()===r.toString())return!0;let[{value:n},{value:o}]=await Promise.all([t.get(e),t.get(r)]),i=[...n.parents],s=new Set;for(;i.length;){let c=i.shift();if(!c)break;if(c.toString()===r.toString())return!0;if(o.parents.some(u=>c.toString()===u.toString())||s.has(c.toString()))continue;s.add(c.toString());let{value:a}=await t.get(c);i.push(...a.parents)}return!1}async function*Nc(t,e,r={}){let n=r.renderNodeLabel??(a=>Bx(a.cid)),o=new Je(t);yield"digraph clock {",yield' node [shape=point fontname="Courier"]; head;';let i=await Promise.all(e.map(a=>o.get(a))),s=[],c=new Set;for(let a of i){c.add(a.cid.toString()),yield` node [shape=oval fontname="Courier"]; ${a.cid} [label="${n(a)}"];`,yield` head -> ${a.cid};`;for(let u of a.value.parents)yield` ${a.cid} -> ${u};`;s.push(...a.value.parents)}for(;s.length;){let a=s.shift();if(!a)break;if(c.has(a.toString()))continue;c.add(a.toString());let u=await o.get(a);yield` node [shape=oval]; ${a} [label="${n(u)}" fontname="Courier"];`;for(let l of u.value.parents)yield` ${a} -> ${l};`;s.push(...u.value.parents)}yield"}"}var Bx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var nr=class extends Me{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(){return Xe([])}};async function Xe(t,e){let{cid:r,bytes:n}=await Wi({value:t,codec:q,hasher:ut});return new nr({cid:r,value:t,bytes:n,prefix:e??""})}async function mp(t,e){let{cid:r,value:n}=await Ki({bytes:t,codec:q,hasher:ut});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new nr({cid:r,value:n,bytes:t,prefix:e??""})}var or=class{constructor(e){this._blocks=e}async get(e,r=""){let n=await this._blocks.get(e);if(!n)throw new Error(`missing block: ${e}`);return mp(n.bytes,r)}};function Uc(t,e){if(!t.length)return[e];let r=[];for(let[n,[o,i]]of t.entries()){if(e[0]===o){if(Array.isArray(e[1]))Array.isArray(i)&&i[1]!=null&&e[1][1]==null?r.push([o,[e[1][0],i[1]]]):r.push(e);else{let s=Array.isArray(i)?[o,[i[0],e[1]]]:e;r.push(s)}for(let s=n+1;s<t.length;s++)r.push(t[s]);return r}if(n===0&&e[0]<o){r.push(e);for(let s=n;s<t.length;s++)r.push(t[s]);return r}if(n>0&&e[0]>t[n-1][0]&&e[0]<o){r.push(e);for(let s=n;s<t.length;s++)r.push(t[s]);return r}r.push([o,i])}return r.push(e),r}function gp(t,e){let r=t.findIndex(([i])=>e===i);if(r===-1)throw new Error(`key not found in shard: ${e}`);let n=r,o;for(;;){if(o=t[n][0].slice(0,-1),o.length)for(;;){let i=t.filter(s=>s[0].startsWith(o));if(i.length>1)return{prefix:o,matches:i};if(o=o.slice(0,-1),!o.length)break}if(n++,n>=t.length&&(n=0),n===r)return}}var Gi=64,Tx=512*1024;async function Gn(t,e,r,n,o={}){let i=new or(t),s=await i.get(e),c=await Qi(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Gi){let h=Array.from(Array(Math.ceil(u.length/Gi)),(w,g)=>{let b=g*Gi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Gi)}}),p=await Xe([[h[h.length-1].skey,n]],h[h.length-1].prefix);d.push(p);for(let w=h.length-2;w>0;w--)p=await Xe([[h[w].skey,[p.cid]]],h[w].prefix),d.push(p);l=[h[0].skey,[p.cid]]}let m=Uc(a.value,l),f=await Xe(m,a.prefix);if(f.bytes.length>(o.maxShardSize??Tx)){let h=gp(m,l[0]);if(!h)throw new Error("shard limit reached");let{prefix:p,matches:w}=h,g=await Xe(w.filter(([E])=>E!==p).map(([E,T])=>[E.slice(p.length),T]),a.prefix+p);d.push(g);let b,v=w.find(([E])=>E===p);if(v){if(Array.isArray(v[1]))throw new Error(`expected "${p}" to be a shard value but found a shard link`);b=[g.cid,v[1]]}else b=[g.cid];m=m.filter(E=>w.every(T=>E[0]!==T[0])),m=Uc(m,[p,b]),f=await Xe(m,a.prefix)}d.push(f);for(let h=c.length-2;h>=0;h--){let p=c[h],w=f.prefix.slice(p.prefix.length),g=p.value.map(b=>{let[v,E]=b;if(v!==w)return b;if(!Array.isArray(E))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return E[1]==null?[v,[f.cid]]:[v,[f.cid,E[1]]]});f=await Xe(g,p.prefix),d.push(f)}return{root:d[d.length-1].cid,additions:d,removals:c}}async function wp(t,e,r){let n=new or(t),o=await n.get(e),i=await Qi(n,o,r),s=i[i.length-1],c=r.slice(s.prefix.length),a=s.value.find(([u])=>u===c);if(a)return Array.isArray(a[1])?a[1][1]:a[1]}async function Pc(t,e,r){let n=new or(t),o=await n.get(e),i=await Qi(n,o,r),s=i[i.length-1],c=r.slice(s.prefix.length),a=s.value.findIndex(([h])=>h===c);if(a===-1)return{root:e,additions:[],removals:[]};let u=s.value[a];if(Array.isArray(u[1])&&u[1][1]==null)return{root:e,additions:[],removals:[]};let l=[],d=[...i],m=[...s.value];if(Array.isArray(u[1]))m[a]=[u[0],[u[1][0]]];else for(m.splice(a,1);!m.length;){let h=i[i.length-1],p=i[i.length-2];if(!p)break;i.pop(),m=p.value.filter(w=>Array.isArray(w[1])?w[1][0].toString()!==h.cid.toString():!0)}let f=await Xe(m,i[i.length-1].prefix);l.push(f);for(let h=i.length-2;h>=0;h--){let p=i[h],w=f.prefix.slice(p.prefix.length),g=p.value.map(b=>{let[v,E]=b;if(v!==w)return b;if(!Array.isArray(E))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return E[1]==null?[v,[f.cid]]:[v,[f.cid,E[1]]]});f=await Xe(g,p.prefix),l.push(f)}return{root:l[l.length-1].cid,additions:l,removals:d}}async function*bp(t,e,r={}){let{prefix:n}=r,o=new or(t),i=await o.get(e);yield*async function*s(c){for(let a of c.value){let u=c.prefix+a[0];if(Array.isArray(a[1])){if(a[1][1]&&(!n||n&&u.startsWith(n))&&(yield[u,a[1][1]]),n&&(n.length<=u.length&&!u.startsWith(n)||n.length>u.length&&!n.startsWith(u)))continue;yield*s(await o.get(a[1][0],u))}else{if(n&&!u.startsWith(n))continue;yield[u,a[1]]}}}(i)}async function Qi(t,e,r){for(let[n,o]of e.value){if(r===n)return[e];if(r.startsWith(n)&&Array.isArray(o)){let i=await Qi(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function xp(t,e,r,n,o){let i=new _e;if(t=new Mt(i,t),!e.length){let g=await nr.create();i.putSync(g.cid,g.bytes);let b=await Gn(t,g.cid,r,n,o),v={type:"put",root:b.root,key:r,value:n},E=await Wn.create(v,e);return e=await Kn(t,e,E.cid),{root:b.root,additions:[g,...b.additions],removals:b.removals,head:e,event:E}}let s=new Je(t),c=await Mc(s,e);if(!c)throw new Error("failed to find common ancestor event");let a=await s.get(c),{root:u}=a.value.data,l=await vp(s,e,c),d=new Map,m=new Map;for(let{value:g}of l){if(!["put","del"].includes(g.data.type))throw new Error(`unknown event type: ${g.data.type}`);let b=g.data.type==="put"?await Gn(t,u,g.data.key,g.data.value):await Pc(t,u,g.data.key);u=b.root;for(let v of b.additions)i.putSync(v.cid,v.bytes),d.set(v.cid.toString(),v);for(let v of b.removals)m.set(v.cid.toString(),v)}let f=await Gn(t,u,r,n,o);for(let g of f.additions)i.putSync(g.cid,g.bytes),d.set(g.cid.toString(),g);for(let g of f.removals)m.set(g.cid.toString(),g);let h={type:"put",root:f.root,key:r,value:n},p=await Wn.create(h,e);i.putSync(p.cid,p.bytes),e=await Kn(t,e,p.cid);let w=f.root.toString();for(let g of m.keys())d.has(g)&&g!==w&&(d.delete(g),m.delete(g));return{root:f.root,additions:[...d.values()],removals:[...m.values()],head:e,event:p}}async function Wr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new _e;t=new Mt(r,t);let n=new Je(t);if(e.length===1){let d=await n.get(e[0]),{root:m}=d.value.data;return{root:m,additions:[],removals:[]}}let o=await Mc(n,e);if(!o)throw new Error("failed to find common ancestor event");let i=await n.get(o),{root:s}=i.value.data,c=await vp(n,e,o),a=new Map,u=new Map;for(let{value:d}of c){if(!["put","del"].includes(d.data.type))throw new Error(`unknown event type: ${d.data.type}`);let m=d.data.type==="put"?await Gn(t,s,d.data.key,d.data.value):await Pc(t,s,d.data.key);s=m.root;for(let f of m.additions)r.putSync(f.cid,f.bytes),a.set(f.cid.toString(),f);for(let f of m.removals)u.set(f.cid.toString(),f)}let l=s.toString();for(let d of u.keys())a.has(d)&&d!==l&&(a.delete(d),u.delete(d));return{root:s,additions:[...a.values()],removals:[...u.values()]}}async function kp(t,e,r){if(!e.length)return;let n=await Wr(t,e);return n.additions.length&&(t=new Mt(new _e(n.additions),t)),wp(t,n.root,r)}async function*Fc(t,e,r){if(!e.length)return;let n=await Wr(t,e);n.additions.length&&(t=new Mt(new _e(n.additions),t)),yield*bp(t,n.root,r)}async function Mc(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Lx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Dx(r);if(s)return s}if(!n)return}}async function Lx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:Mc(t,r.parents):e}function Dx(t){t=t.map(e=>[...e]);for(let e of t)for(let r of e){let n=!0;for(let o of t)if(e!==o&&(n=o.some(i=>String(i)===String(r)),!n))break;if(n)return r}}async function vp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>Ep(t,s,r)));for(let s of o)for(let{event:c,depth:a}of s){let u=n.get(c.cid.toString());u?u.weight+=a:n.set(c.cid.toString(),{event:c,weight:a})}let i=new Map;for(let{event:s,weight:c}of n.values()){let a=i.get(c);a?a.push(s):i.set(c,[s])}return Array.from(i).sort((s,c)=>c[0]-s[0]).flatMap(([,s])=>s.sort((c,a)=>String(c.cid)<String(a.cid)?-1:1))}async function Ep(t,e,r,n=0){let o=await t.get(e),i=[{event:o,depth:n}],{parents:s}=o.value;if(s.length===1&&String(s[0])===String(r))return i;let c=await Promise.all(s.map(a=>Ep(t,a,r,n+1)));return i.concat(...c)}var Zr={};Y(Zr,{DEFAULT_DIRECTORY_MODE:()=>Dy,DEFAULT_FILE_MODE:()=>Ly,NodeType:()=>F,code:()=>Xr,createAdvancedFile:()=>tk,createComplexFile:()=>nk,createDirectoryShard:()=>Fy,createEmptyFile:()=>Zx,createFileChunk:()=>ek,createFileShard:()=>rk,createFlatDirectory:()=>as,createRaw:()=>Ny,createShardedDirectory:()=>Py,createSimpleFile:()=>Uy,createSymlink:()=>Oy,cumulativeContentByteLength:()=>tt,cumulativeDagByteLength:()=>Yr,decode:()=>$y,decodeMetadata:()=>cr,encode:()=>zy,encodeAdvancedFile:()=>iu,encodeComplexFile:()=>su,encodeDirectory:()=>ls,encodeDirectoryMetadata:()=>lu,encodeFile:()=>My,encodeFileChunk:()=>ou,encodeFileShard:()=>ok,encodeHAMTShard:()=>au,encodeLink:()=>cs,encodeMetadata:()=>eo,encodeMode:()=>jy,encodeRaw:()=>nu,encodeSimpleFile:()=>us,encodeSymlink:()=>Ry,filesize:()=>ck,matchFile:()=>ak,name:()=>ru});var Nx=new TextDecoder;function Oc(t,e){let r=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=t.length)throw new Error("protobuf: unexpected end of data");let o=t[e++];if(r+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[r,e]}function Ji(t,e){let r;[r,e]=Oc(t,e);let n=e+r;if(r<0||n<0)throw new Error("protobuf: invalid length");if(n>t.length)throw new Error("protobuf: unexpected end of data");return[t.subarray(e,n),n]}function Sp(t,e){let r;return[r,e]=Oc(t,e),[r&7,r>>3,e]}function Ux(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=Sp(t,n),i===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=Ji(t,n)}else if(i===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Ji(t,n),e.Name=Nx.decode(s)}else if(i===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=Oc(t,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>r)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Ap(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=Sp(t,r),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(a===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,r]=Ji(t,r),n&&(o=!0)}else if(a===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let u;[u,r]=Ji(t,r),n.push(Ux(u))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${a}`)}if(r>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var Bp=new TextEncoder,_p=2**32,Px=2**31;function Fx(t,e){let r=e.length;if(typeof t.Tsize=="number"){if(t.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(t.Tsize))throw new Error("Tsize too large for encoding");r=Qn(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=Bp.encode(t.Name);r-=n.length,e.set(n,r),r=Qn(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=Qn(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function Cp(t){let e=Ox(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=Qn(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Fx(t.Links[o],r.subarray(0,n));n-=i,n=Qn(r,n,i)-1,r[n]=18}return r}function Mx(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Kr(r)}if(typeof t.Name=="string"){let r=Bp.encode(t.Name).length;e+=1+r+Kr(r)}return typeof t.Tsize=="number"&&(e+=1+Kr(t.Tsize)),e}function Ox(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Kr(r)}if(t.Links)for(let r of t.Links){let n=Mx(r);e+=1+n+Kr(n)}return e}function Qn(t,e,r){e-=Kr(r);let n=e;for(;r>=Px;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Kr(t){return t%2===0&&t++,Math.floor((Rx(t)+6)/7)}function Rx(t){let e=0;return t>=_p&&(t=Math.floor(t/_p),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+zx[t]}var zx=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var $x=["Data","Links"],Hx=["Hash","Name","Tsize"],Rc=new TextEncoder;function Ip(t,e){if(t===e)return 0;let r=t.Name?Rc.encode(t.Name):[],n=e.Name?Rc.encode(e.Name):[],o=r.length,i=n.length;for(let s=0,c=Math.min(o,i);s<c;++s)if(r[s]!==n[s]){o=r[s],i=n[s];break}return o<i?-1:i<o?1:0}function Tp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function jx(t){if(typeof t.asCID=="object"){let r=j.asCID(t);if(!r)throw new TypeError("Invalid DAG-PB form");return{Hash:r}}if(typeof t!="object"||Array.isArray(t))throw new TypeError("Invalid DAG-PB form");let e={};if(t.Hash){let r=j.asCID(t.Hash);try{r||(typeof t.Hash=="string"?r=j.parse(t.Hash):t.Hash instanceof Uint8Array&&(r=j.decode(t.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}r&&(e.Hash=r)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof t.Name=="string"&&(e.Name=t.Name),typeof t.Tsize=="number"&&(e.Tsize=t.Tsize),e}function zc(t){if((t instanceof Uint8Array||typeof t=="string")&&(t={Data:t}),typeof t!="object"||Array.isArray(t))throw new TypeError("Invalid DAG-PB form");let e={};if(t.Data!==void 0)if(typeof t.Data=="string")e.Data=Rc.encode(t.Data);else if(t.Data instanceof Uint8Array)e.Data=t.Data;else throw new TypeError("Invalid DAG-PB form");if(t.Links!==void 0)if(Array.isArray(t.Links))e.Links=t.Links.map(jx),e.Links.sort(Ip);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Lp(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!Tp(t,$x))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(t.Data!==void 0&&!(t.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(t.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<t.Links.length;e++){let r=t.Links[e];if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!Tp(r,Hx))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(r.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(r.Hash==null||!r.Hash["/"]||r.Hash["/"]!==r.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(r.Name!==void 0&&typeof r.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(r.Tsize!==void 0){if(typeof r.Tsize!="number"||r.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(r.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&Ip(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var ir=112;function Dp(t){Lp(t);let e={};return t.Links&&(e.Links=t.Links.map(r=>{let n={};return r.Hash&&(n.Hash=r.Hash.bytes),r.Name!==void 0&&(n.Name=r.Name),r.Tsize!==void 0&&(n.Tsize=r.Tsize),n})),t.Data&&(e.Data=t.Data),Cp(e)}function Ye(t){let e=Ap(t),r={};return e.Data&&(r.Data=e.Data),e.Links&&(r.Links=e.Links.map(n=>{let o={};try{o.Hash=j.decode(n.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(o.Name=n.Name),n.Tsize!==void 0&&(o.Tsize=n.Tsize),o})),r}var ft=W(By(),1),Qr=ft.default.Reader,eu=ft.default.Writer,N=ft.default.util,ie=ft.default.roots.unixfs||(ft.default.roots.unixfs={}),Jr=ie.Data=(()=>{function t(e){if(this.blocksizes=[],e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.Type=0,t.prototype.Data=N.newBuffer([]),t.prototype.filesize=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.blocksizes=N.emptyArray,t.prototype.hashType=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.fanout=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.mode=0,t.prototype.mtime=null,t.encode=function(r,n){if(n||(n=eu.create()),n.uint32(8).int32(r.Type),r.Data!=null&&Object.hasOwnProperty.call(r,"Data")&&n.uint32(18).bytes(r.Data),r.filesize!=null&&Object.hasOwnProperty.call(r,"filesize")&&n.uint32(24).uint64(r.filesize),r.blocksizes!=null&&r.blocksizes.length)for(var o=0;o<r.blocksizes.length;++o)n.uint32(32).uint64(r.blocksizes[o]);return r.hashType!=null&&Object.hasOwnProperty.call(r,"hashType")&&n.uint32(40).uint64(r.hashType),r.fanout!=null&&Object.hasOwnProperty.call(r,"fanout")&&n.uint32(48).uint64(r.fanout),r.mode!=null&&Object.hasOwnProperty.call(r,"mode")&&n.uint32(56).uint32(r.mode),r.mtime!=null&&Object.hasOwnProperty.call(r,"mtime")&&ie.UnixTime.encode(r.mtime,n.uint32(66).fork()).ldelim(),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.Data;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.Type=r.int32();break;case 2:i.Data=r.bytes();break;case 3:i.filesize=r.uint64();break;case 4:if(i.blocksizes&&i.blocksizes.length||(i.blocksizes=[]),(s&7)===2)for(var c=r.uint32()+r.pos;r.pos<c;)i.blocksizes.push(r.uint64());else i.blocksizes.push(r.uint64());break;case 5:i.hashType=r.uint64();break;case 6:i.fanout=r.uint64();break;case 7:i.mode=r.uint32();break;case 8:i.mtime=ie.UnixTime.decode(r,r.uint32());break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Type"))throw N.ProtocolError("missing required 'Type'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ie.Data)return r;var n=new ie.Data;switch(r.Type){case"Raw":case 0:n.Type=0;break;case"Directory":case 1:n.Type=1;break;case"File":case 2:n.Type=2;break;case"Metadata":case 3:n.Type=3;break;case"Symlink":case 4:n.Type=4;break;case"HAMTShard":case 5:n.Type=5;break}if(r.Data!=null&&(typeof r.Data=="string"?N.base64.decode(r.Data,n.Data=N.newBuffer(N.base64.length(r.Data)),0):r.Data.length&&(n.Data=r.Data)),r.filesize!=null&&(N.Long?(n.filesize=N.Long.fromValue(r.filesize)).unsigned=!0:typeof r.filesize=="string"?n.filesize=parseInt(r.filesize,10):typeof r.filesize=="number"?n.filesize=r.filesize:typeof r.filesize=="object"&&(n.filesize=new N.LongBits(r.filesize.low>>>0,r.filesize.high>>>0).toNumber(!0))),r.blocksizes){if(!Array.isArray(r.blocksizes))throw TypeError(".Data.blocksizes: array expected");n.blocksizes=[];for(var o=0;o<r.blocksizes.length;++o)N.Long?(n.blocksizes[o]=N.Long.fromValue(r.blocksizes[o])).unsigned=!0:typeof r.blocksizes[o]=="string"?n.blocksizes[o]=parseInt(r.blocksizes[o],10):typeof r.blocksizes[o]=="number"?n.blocksizes[o]=r.blocksizes[o]:typeof r.blocksizes[o]=="object"&&(n.blocksizes[o]=new N.LongBits(r.blocksizes[o].low>>>0,r.blocksizes[o].high>>>0).toNumber(!0))}if(r.hashType!=null&&(N.Long?(n.hashType=N.Long.fromValue(r.hashType)).unsigned=!0:typeof r.hashType=="string"?n.hashType=parseInt(r.hashType,10):typeof r.hashType=="number"?n.hashType=r.hashType:typeof r.hashType=="object"&&(n.hashType=new N.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0))),r.fanout!=null&&(N.Long?(n.fanout=N.Long.fromValue(r.fanout)).unsigned=!0:typeof r.fanout=="string"?n.fanout=parseInt(r.fanout,10):typeof r.fanout=="number"?n.fanout=r.fanout:typeof r.fanout=="object"&&(n.fanout=new N.LongBits(r.fanout.low>>>0,r.fanout.high>>>0).toNumber(!0))),r.mode!=null&&(n.mode=r.mode>>>0),r.mtime!=null){if(typeof r.mtime!="object")throw TypeError(".Data.mtime: object expected");n.mtime=ie.UnixTime.fromObject(r.mtime)}return n},t.toObject=function(r,n){n||(n={});var o={};if((n.arrays||n.defaults)&&(o.blocksizes=[]),n.defaults){if(o.Type=n.enums===String?"Raw":0,n.bytes===String?o.Data="":(o.Data=[],n.bytes!==Array&&(o.Data=N.newBuffer(o.Data))),N.Long){var i=new N.Long(0,0,!0);o.filesize=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.filesize=n.longs===String?"0":0;if(N.Long){var i=new N.Long(0,0,!0);o.hashType=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.hashType=n.longs===String?"0":0;if(N.Long){var i=new N.Long(0,0,!0);o.fanout=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.fanout=n.longs===String?"0":0;o.mode=0,o.mtime=null}if(r.Type!=null&&r.hasOwnProperty("Type")&&(o.Type=n.enums===String?ie.Data.DataType[r.Type]:r.Type),r.Data!=null&&r.hasOwnProperty("Data")&&(o.Data=n.bytes===String?N.base64.encode(r.Data,0,r.Data.length):n.bytes===Array?Array.prototype.slice.call(r.Data):r.Data),r.filesize!=null&&r.hasOwnProperty("filesize")&&(typeof r.filesize=="number"?o.filesize=n.longs===String?String(r.filesize):r.filesize:o.filesize=n.longs===String?N.Long.prototype.toString.call(r.filesize):n.longs===Number?new N.LongBits(r.filesize.low>>>0,r.filesize.high>>>0).toNumber(!0):r.filesize),r.blocksizes&&r.blocksizes.length){o.blocksizes=[];for(var s=0;s<r.blocksizes.length;++s)typeof r.blocksizes[s]=="number"?o.blocksizes[s]=n.longs===String?String(r.blocksizes[s]):r.blocksizes[s]:o.blocksizes[s]=n.longs===String?N.Long.prototype.toString.call(r.blocksizes[s]):n.longs===Number?new N.LongBits(r.blocksizes[s].low>>>0,r.blocksizes[s].high>>>0).toNumber(!0):r.blocksizes[s]}return r.hashType!=null&&r.hasOwnProperty("hashType")&&(typeof r.hashType=="number"?o.hashType=n.longs===String?String(r.hashType):r.hashType:o.hashType=n.longs===String?N.Long.prototype.toString.call(r.hashType):n.longs===Number?new N.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0):r.hashType),r.fanout!=null&&r.hasOwnProperty("fanout")&&(typeof r.fanout=="number"?o.fanout=n.longs===String?String(r.fanout):r.fanout:o.fanout=n.longs===String?N.Long.prototype.toString.call(r.fanout):n.longs===Number?new N.LongBits(r.fanout.low>>>0,r.fanout.high>>>0).toNumber(!0):r.fanout),r.mode!=null&&r.hasOwnProperty("mode")&&(o.mode=r.mode),r.mtime!=null&&r.hasOwnProperty("mtime")&&(o.mtime=ie.UnixTime.toObject(r.mtime,n)),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t.DataType=function(){let e={},r=Object.create(e);return r[e[0]="Raw"]=0,r[e[1]="Directory"]=1,r[e[2]="File"]=2,r[e[3]="Metadata"]=3,r[e[4]="Symlink"]=4,r[e[5]="HAMTShard"]=5,r}(),t})(),h3=ie.UnixTime=(()=>{function t(e){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.Seconds=N.Long?N.Long.fromBits(0,0,!1):0,t.prototype.FractionalNanoseconds=0,t.encode=function(r,n){return n||(n=eu.create()),n.uint32(8).int64(r.Seconds),r.FractionalNanoseconds!=null&&Object.hasOwnProperty.call(r,"FractionalNanoseconds")&&n.uint32(21).fixed32(r.FractionalNanoseconds),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.UnixTime;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.Seconds=r.int64();break;case 2:i.FractionalNanoseconds=r.fixed32();break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Seconds"))throw N.ProtocolError("missing required 'Seconds'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ie.UnixTime)return r;var n=new ie.UnixTime;return r.Seconds!=null&&(N.Long?(n.Seconds=N.Long.fromValue(r.Seconds)).unsigned=!1:typeof r.Seconds=="string"?n.Seconds=parseInt(r.Seconds,10):typeof r.Seconds=="number"?n.Seconds=r.Seconds:typeof r.Seconds=="object"&&(n.Seconds=new N.LongBits(r.Seconds.low>>>0,r.Seconds.high>>>0).toNumber())),r.FractionalNanoseconds!=null&&(n.FractionalNanoseconds=r.FractionalNanoseconds>>>0),n},t.toObject=function(r,n){n||(n={});var o={};if(n.defaults){if(N.Long){var i=new N.Long(0,0,!1);o.Seconds=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.Seconds=n.longs===String?"0":0;o.FractionalNanoseconds=0}return r.Seconds!=null&&r.hasOwnProperty("Seconds")&&(typeof r.Seconds=="number"?o.Seconds=n.longs===String?String(r.Seconds):r.Seconds:o.Seconds=n.longs===String?N.Long.prototype.toString.call(r.Seconds):n.longs===Number?new N.LongBits(r.Seconds.low>>>0,r.Seconds.high>>>0).toNumber():r.Seconds),r.FractionalNanoseconds!=null&&r.hasOwnProperty("FractionalNanoseconds")&&(o.FractionalNanoseconds=r.FractionalNanoseconds),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t})(),p3=ie.Metadata=(()=>{function t(e){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.MimeType="",t.encode=function(r,n){return n||(n=eu.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.Metadata;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.MimeType=r.string();break;default:r.skipType(s&7);break}}return i},t.fromObject=function(r){if(r instanceof ie.Metadata)return r;var n=new ie.Metadata;return r.MimeType!=null&&(n.MimeType=String(r.MimeType)),n},t.toObject=function(r,n){n||(n={});var o={};return n.defaults&&(o.MimeType=""),r.MimeType!=null&&r.hasOwnProperty("MimeType")&&(o.MimeType=r.MimeType),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t})();var F=Jr.DataType;var Iy=Object.freeze([]),tu=new Uint8Array(0),Ee=Object.freeze({}),Ly=parseInt("0644",8),Dy=parseInt("0755",8),Xr=ir,ru="UnixFS",Tt=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),Dp(zc({Data:Jr.encode(t).finish(),Links:e}))),Ny=t=>({type:F.Raw,content:t}),Zx=t=>Uy(tu,t),Uy=(t,e)=>({type:F.File,layout:"simple",content:t,metadata:cr(e)}),ek=t=>({type:F.File,layout:"simple",content:t}),tk=(t,e)=>({type:F.File,layout:"advanced",parts:t,metadata:cr(e)}),rk=t=>({type:F.File,layout:"advanced",parts:t}),nk=(t,e,r)=>({type:F.File,layout:"complex",content:t,parts:e,metadata:cr(r)}),as=(t,e)=>({type:F.Directory,metadata:cr(e),entries:t}),Py=(t,e,r,n,o=Ee)=>({type:F.HAMTShard,bitfield:e,fanout:cu(r),hashType:uu(n),entries:t,metadata:cr(o)}),Fy=(t,e,r,n)=>({type:F.HAMTShard,bitfield:e,fanout:cu(r),hashType:uu(n),entries:t}),nu=t=>Tt({Type:F.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:Iy},[]),My=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;switch(t.layout){case"simple":return us(t.content,r);case"advanced":return iu(t.parts,r);case"complex":return su(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},ou=t=>us(t,Ee),ok=t=>Tt({Type:F.File,blocksizes:t.map(Zn),filesize:tt(t)},t.map(cs)),iu=(t,e=Ee)=>Tt({Type:F.File,blocksizes:t.map(Zn),filesize:tt(t),...eo(e)},t.map(cs)),cs=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),us=(t,e=Ee)=>Tt({Type:F.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...eo(e)},[]),su=(t,e,r=Ee)=>Tt({Type:F.File,Data:t,filesize:t.byteLength+tt(e),blocksizes:e.map(Zn)},e.map(cs)),ls=t=>Tt({Type:t.type,...lu(t.metadata||Ee)},t.entries.map(Hy)),au=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=Ee})=>Tt({Type:F.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:cu(e),hashType:uu(r),...lu(o)},n.map(Hy)),cu=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},uu=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var Oy=(t,e=Ee)=>({type:F.Symlink,content:t,metadata:cr(e)}),Ry=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;return Tt({Type:F.Symlink,Data:t.content,...eo(r||Ee)},[])},zy=(t,e=!0)=>{switch(t.type){case F.Raw:return nu(t.content);case F.File:return My(t);case F.Directory:return ls(t);case F.HAMTShard:return au(t);case F.Symlink:return Ry(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},$y=t=>{let e=Ye(t),r=Jr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=Jr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...ik(i)},l=e.Links;switch(r.Type){case F.Raw:return Ny(o);case F.File:return l.length===0?new os(o,u):o.byteLength===0?new is(Cy(a.blocksizes,l),u):new ss(o,Cy(a.blocksizes,l),u);case F.Directory:return as(Ty(l),u);case F.HAMTShard:return Py(Ty(l),o||tu,a.fanout,a.hashType,u);case F.Symlink:return Oy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},ik=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var Cy=(t,e)=>{let r=[],n=t.length,o=0;for(;o<n;)r.push({cid:e[o].Hash,dagByteLength:e[o].Tsize||0,contentByteLength:t[o]});return r},Ty=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),tt=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Yr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),Zn=t=>t.contentByteLength,Hy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),lu=t=>eo(t,Dy),eo=({mode:t,mtime:e},r=Ly)=>({mode:t!=null?jy(t,r):void 0,mtime:e!=null?sk(e):void 0}),cr=t=>t==null?Ee:{...t.mode==null?void 0:{mode:Vy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},sk=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},jy=(t,e)=>{let r=t==null?void 0:Vy(t);return r===e||r==null?void 0:r},Vy=t=>t&4095|t&4294963200,ak=({content:t=tu,parts:e=Iy,metadata:r=Ee,...n})=>e.length===0?new os(t,r):t.byteLength===0?new is(e,r):new ss(t,e,r),os=class{constructor(e,r){this.content=e,this.metadata=r,this.layout="simple",this.type=F.File}get filesize(){return this.content.byteLength}encode(){return us(this.content,this.metadata)}},is=class{constructor(e,r){this.parts=e,this.metadata=r}get layout(){return"advanced"}get type(){return F.File}get fileSize(){return tt(this.parts)}get blockSizes(){return this.parts.map(Zn)}encode(){return iu(this.parts,this.metadata)}},ss=class{constructor(e,r,n){this.content=e,this.parts=r,this.metadata=n}get layout(){return"complex"}get type(){return F.File}get fileSize(){return this.content.byteLength+tt(this.parts)}get blockSizes(){return this.parts.map(Zn)}encode(){return su(this.content,this.parts,this.metadata)}},ck=t=>{switch(t.type){case F.Raw:case F.Symlink:return t.content.byteLength;case F.File:switch(t.layout){case"simple":return t.content.byteLength;case"advanced":return tt(t.parts);case"complex":return t.content.byteLength+tt(t.parts)}default:return 0}};var uk=function*(t){let e=yield*t;yield*ds(e)};function*yu(){return yield ys}var tn=function*(){yield ms};var fs=function*(t){let e=yield*yu();if(fk(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,It(e)},o=>{r=!0,n=o,It(e)}),yield*tn(),r)throw n;return n}else return yk(lk(e)),yield*tn(),t};function*lk(t){It(t)}var fk=t=>t!=null&&typeof t.then=="function",ds=function*(t){yield t},hs=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==no&&e.push(yield*nn(hk(o,n)))}yield*gu(e)},ps=t=>t.length>0?dk(t.map(uk)):no;function*dk(t){let e=[];for(let r of t)e.push(yield*nn(r));yield*gu(e)}var hk=(t,e)=>t===no?no:t instanceof to?new to([...t.tags,e],t.source):new to([e],t),to=class{constructor(e,r){this.tags=e,this.source=r,this.controller}[Symbol.iterator](){return this.controller||(this.controller=this.source[Symbol.iterator]()),this}box(e){if(e.done)return e;switch(e.value){case ms:case ys:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=pk(o,n);return r.value=n,r}}}next(e){return this.box(this.controller.next(e))}throw(e){return this.box(this.controller.throw(e))}return(e){return this.box(this.controller.return(e))}get[Symbol.toStringTag](){return"TaggedEffect"}},oo=()=>no;var pk=(t,e)=>({type:t,[t]:e});var ys=Symbol("current"),ms=Symbol("suspend");var dt=class t{static of(e){return e.group||en}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new rn(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Gy}},fu=class{constructor(){this.status=ro,this.stack=new rn,this.id=0}},rn=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},yk=t=>It(t[Symbol.iterator]()),It=t=>{let e=dt.of(t);for(e.stack.active.push(t),e.stack.idle.delete(t);e.parent;){let{idle:r,active:n}=e.parent.stack;if(r.has(e.driver))r.delete(e.driver),n.push(e.driver);else break;e=e.parent}if(en.status===ro)for(en.status=Qy;;)try{for(let r of mu(en));en.status=ro;break}catch{en.stack.active.shift()}},mk=t=>It(t),mu=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=Jy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case ms:t.stack.idle.add(r);break e;case ys:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var nn=(t,e)=>new pu(t,e),gk=(t,e)=>Wy(t,{ok:!0,value:e});var du=(t,e)=>Wy(t,{ok:!1,error:e});function*Wy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===ms){let{idle:o}=dt.of(r).stack;o.add(r)}else It(r)}catch{}}function*gu(t){if(t.length===0)return;let e=yield*yu(),r=new dt(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}wk(o,r)}try{if(n)throw n.error;for(;yield*mu(r),rn.size(r.stack)>0;)yield*tn()}catch(o){for(let i of r.stack.active)yield*du(i,o);for(let i of r.stack.idle)yield*du(i,o),It(i);throw o}}var wk=(t,e)=>{let r=dt.of(t);if(r!==e){let{active:n,idle:o}=r.stack,i=e.stack;if(t.group=e,o.has(t))o.delete(t),i.idle.add(t);else{let s=n.indexOf(t);s>=0&&(n.splice(s,1),i.active.push(t))}}};function*wu(t){t.status===ro&&(yield*t),t.result||(yield*gu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var hu=class{constructor(e){this.handler=e,this.result}get promise(){let{result:e}=this,r=e==null?new Promise((n,o)=>{this.handler.onsuccess=n,this.handler.onfailure=o}):e.ok?Promise.resolve(e.value):Promise.reject(e.error);return Object.defineProperty(this,"promise",{value:r}),r}then(e,r){return this.activate().promise.then(e,r)}catch(e){return this.activate().promise.catch(e)}finally(e){return this.activate().promise.finally(e)}activate(){return this}},pu=class extends hu{constructor(e,r=bk,n={},o=Jy){super(n),this.id=++Gy,this.name=r.name||"",this.task=e,this.state=o,this.status=ro,this.result,this.handler=n,this.controller}*resume(){mk(this)}join(){return wu(this)}abort(e){return du(this,e)}exit(e){return gk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Qy,It(this),this}panic(e){this.result={ok:!1,error:e},this.status=qy;let{handler:r}=this;throw r.onfailure&&r.onfailure(e),e}step(e){if(this.state=e,e.done){this.result={ok:!0,value:e.value},this.status=qy;let{handler:r}=this;r.onsuccess&&r.onsuccess(e.value)}return e}next(e){try{return this.step(this.controller.next(e))}catch(r){return this.panic(r)}}return(e){try{return this.step(this.controller.return(e))}catch(r){return this.panic(r)}}throw(e){try{return this.step(this.controller.throw(e))}catch(r){return this.panic(r)}}},Ky=function*(t,e){let r=yield*yu(),n=new dt(r);for(dt.enqueue(t[Symbol.iterator](),n);;){for(let o of mu(n))dt.enqueue(e(o)[Symbol.iterator](),n);if(rn.size(n.stack)>0)yield*tn();else break}},Gy=0,ro="idle",Qy="active",qy="finished",Jy={done:!1,value:ys},bk={},no=function*(){}(),en=new fu;function bu(){}Object.defineProperties(bu,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var xu=()=>new io;var Yy=(t,e=0,r=t.byteLength)=>{let n=[],o=e<0?t.byteLength-e:e,i=r<0?t.byteLength-r:r;if(o===0&&i>=t.byteLength)return t;if(o>i||o>t.byteLength||i<=0)return xu();let s=0,c=0;for(let a of t.segments){let u=c+a.byteLength;if(s===0){if(i<=u){let l=a.subarray(o-c,i-c);n.push(l),s=l.byteLength;break}else if(o<u){let l=o===c?a:a.subarray(o-c);n.push(l),s=l.byteLength}}else if(i<=u){let l=i===u?a:a.subarray(0,i-c);n.push(l),s+=l.byteLength;break}else n.push(a),s+=a.byteLength;c=u}return new io(n,t.byteOffset+o,s)},xk=(t,e)=>e.byteLength>0?(t.segments.push(e),new io(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,kk=(t,e)=>{if(e<t.byteLength){let r=0;for(let n of t.segments){if(e<r+n.byteLength)return n[e-r];r+=n.byteLength}}},vk=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*Ek(t){for(let e of t.segments)yield*e}var io=class extends bu{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return Ek(this)}slice(e,r){return Yy(this,e,r)}subarray(e,r){return Yy(this,e,r)}push(e){return xk(this,e)}get(e){return kk(this,e)}copyTo(e,r){return vk(this,e,r)}};var so=t=>{throw new Error(t)},Zy=(t,e,...r)=>so(String.raw(t,JSON.stringify(e),...r)),em=new Uint8Array(0),tm=[];var rm=t=>({config:t,buffer:xu()}),nm=(t,e)=>e.byteLength>0?im(t.config,t.buffer.push(e),!1):{...t,chunks:tm},om=t=>im(t.config,t.buffer,!0),im=(t,e,r)=>{let n=t.chunker,o=[],i=0;for(let s of n.cut(n.context,e,r))if(s>0){let c=e.subarray(i,i+s);o.push(c),i+=s}return{config:t,chunks:o,buffer:e.subarray(i)}};var sm=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:Eu});var Su=(t,e)=>{let r=on(e,{});for(let n of t){let{ready:o,has:i,wants:s}=cm(n.children,r.links);s.length===0?r=on(r,{links:vu(void 0,i),linked:[{id:n.id,links:o}]}):r=on(r,{needs:vu(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},am=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=cm(o.children,{...r.links,[t]:e});return on(r,{needs:{[t]:void 0},links:vu(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return on(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return on(r,{links:{[t]:e}})},on=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?Bk:void 0;return e&&(i.needs=ku(t.needs,e,s)),r&&(i.nodes=ku(t.nodes,r,s)),n&&(i.links=ku(t.links,n,s)),i.linked=o?_k(t.linked||Eu,o,Eu):t.linked||[],i},vu=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},ku=(t,e,r=t)=>{let n=t===r?{...t}:t;for(let o of Object.entries(e)){let[i,s]=o;s==null?delete n[i]:n[i]=s}return n};var _k=(t,e,r=t)=>{if(t===r)return[...t,...e];for(let n of e)t.push(n);return t},cm=(t,e)=>{let r=[],n=[],o=[];for(let i of t){let s=e[i];s?(r.push(i),o.push(s)):n.push(i)}return{has:r,wants:n,ready:o}},Eu=Object.freeze([]),Bk=Object.freeze({});var um=(t,e)=>{switch(t.type){case"write":return Tk(e,t.bytes);case"link":return Ik(e,t.link);case"block":return{state:e,effect:oo()};case"close":return Lk(e);case"end":return{state:e,effect:oo()};default:return Zy`File Writer got unknown message ${t}`}},lm=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:rm({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:sm()}),Tk=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=nm(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=Su(o,t.nodeQueue),u=[...fm(i,t.config),...Au(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:hs({link:ps(u)})}}else return so("Unable to perform write on closed file")},Ik=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=am(e,r,t.nodeQueue),s=Au(o,t.config),c=t.status==="closed"&&e===t.rootID?{...t,status:"linked",link:r,nodeQueue:i}:{...t,nodeQueue:i},a=t.status==="closed"&&e===t.rootID&&t.end?t.end.resume():oo();return{state:c,effect:hs({link:ps(s),block:Uk(t.writer,n),end:a})}},Lk=t=>{if(t.status==="open"){let{chunks:e}=om(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Fk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=Su(s,t.nodeQueue),l=[...fm(c,t.config),...Au(a,t.config)],d=nn(tn());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:hs({link:ps(l),end:wu(d)})}}else return{state:t,effect:oo()}},fm=(t,e)=>t.map(r=>Dk(e,r,e.fileChunkEncoder)),Dk=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Pk(n):em),s=yield*fs(t.digest(i)),c=e.createLink(o.code,s),a={cid:c,bytes:i},u={cid:c,contentByteLength:n?n.byteLength:0,dagByteLength:i.byteLength};return{id:r,block:a,link:u}},Au=(t,e)=>t.map(r=>Nk(e,r)),Nk=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:F.File,layout:"advanced",parts:r,metadata:n}),i=yield*fs(Promise.resolve(t.hasher.digest(o))),s=t.linker.createLink(t.fileEncoder.code,i),c={bytes:o,cid:s},a={cid:s,contentByteLength:tt(r),dagByteLength:Yr(o,r)};return{id:e,block:c,link:a}},Uk=function*(t,e){(t.desiredSize||0)<=0&&(yield*fs(t.ready)),t.write(e)},Pk=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Fk=t=>t.children==null;var Bu={};Y(Bu,{context:()=>Ok,cut:()=>hm,name:()=>dm,type:()=>Rk,withMaxChunkSize:()=>_u});var dm="fixed",Ok={maxChunkSize:262144},Rk="Stateless",_u=t=>({type:"Stateless",context:{maxChunkSize:t},name:dm,cut:hm}),hm=({maxChunkSize:t},{byteLength:e},r)=>{let n=e/t|0,o=new Array(n).fill(t),i=r?e-n*t:0;return i>0&&o.push(i),o};var ao=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},gs=t=>({open:()=>$k({width:t}),write:Hk,close:jk}),zk={width:174},$k=({width:t}=zk)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),Hk=(t,e)=>{if(e.length===0)return{layout:t,nodes:pe,leaves:pe};{let{lastID:r}=t,[n,o]=t.head?[null,(e.unshift(t.head),e)]:e.length===1&&t.leafIndex.length===0?[e[0],pe]:[null,e];if(o.length===0)return{layout:{...t,head:n},nodes:pe,leaves:pe};{let i=[...t.leafIndex],s=[];for(let c of o){let a={id:++r,content:c};s.push(a),i.push(a.id)}return i.length>=t.width?ym({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:pe}}}},ym=(t,e=pe,r=[],n=!1)=>{let{lastID:o}=t,i=t.nodeIndex.map(u=>[...u]),s=[...t.leafIndex],{width:c}=t;for(;s.length>=c||s.length>0&&n;){pm(i,1);let u=new ao(++o,s.splice(0,c));i[0].push(u.id),r.push(u)}let a=0;for(;a<i.length;){let u=i[a];for(a++;u.length>=c||u.length>0&&n&&a<i.length;){let l=new ao(++o,u.splice(0,c));pm(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},jk=(t,e)=>{let r=t;if(t.head)return{root:{id:1,content:t.head,metadata:e},leaves:pe,nodes:pe};if(t.leafIndex.length===0)return{root:{id:1,metadata:e},leaves:pe,nodes:pe};{let{nodes:n,layout:o}=ym(r,pe,[],!0),{nodeIndex:i}=o,s=i.length-1,c=i[s];if(c.length===1){let a=n[n.length-1];return n.length=n.length-1,{root:a,nodes:n,leaves:pe}}else return{root:new ao(o.lastID+1,c,e),nodes:n,leaves:pe}}},pm=(t,e)=>{for(;t.length<e;)t.push([]);return t},pe=[];var Lt=()=>({chunker:Bu,fileChunkEncoder:Cu,smallFileEncoder:Cu,fileEncoder:Zr,fileLayout:gs(174),hasher:ut,linker:{createLink:j.createV1}}),Dt=t=>({...Lt(),...t}),Cu={code:Xr,name:ru,encode:ou};var co=({writer:t,metadata:e={},settings:r=Lt()})=>new Tu(lm(t,e,Dt(r))),mm=async(t,e)=>(await wm(t,ds({type:"write",bytes:e})),t),gm=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await wm(t,ds({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;so(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},wm=(t,e)=>nn(Ky(e,r=>{let{state:n,effect:o}=um(r,t.state);return t.state=n,o})),Tu=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return mm(this,e)}close(e){return gm(this,e)}};var qk=Lt,Lu=({writer:t,settings:e=qk(),metadata:r={}})=>new ws({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),bs=(t,e,r,{overwrite:n=!1}={})=>{let o=Du(t.state);if(e.includes("/"))throw new Error(`Directory entry name "${e}" contains forbidden "/" character`);if(!n&&o.entries.has(e))throw new Error(`Directory already contains entry with name "${e}"`);return o.entries.set(e,r),t},xs=(t,e)=>(Du(t.state).entries.delete(e),t),Du=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},bm=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=Du(t.state);t.state.closed=!0;let s=[...xm(t)],c=as(s,i),a=ls(c),u=await o.hasher.digest(a),l=o.linker.createLink(Xr,u);return(n.desiredSize||0)<=0&&await n.ready,n.write({cid:l,bytes:a}),e?await n.close():r&&n.releaseLock(),{cid:l,dagByteLength:Yr(a,s)}},xm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},km=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new ws({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),ws=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return xm(this)}set(e,r,n){return bs(this,e,r,n)}remove(e){return xs(this,e)}fork(e){return km(this,e)}close(e){return bm(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var Es={};Y(Es,{API:()=>ks,and:()=>Zk,bitCount:()=>vs,empty:()=>vm,from:()=>Kk,fromBytes:()=>r2,get:()=>Yk,or:()=>e2,popcount:()=>Nu,set:()=>Em,size:()=>Gk,toBytes:()=>t2,unset:()=>Xk});var ks={};var vm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},Kk=(t,e)=>{let r=vm(e);for(let n of t)r=Em(r,n);return r},Gk=t=>32,Qk=(t,e)=>t>>>e&31,Jk=(t,e)=>1<<Qk(t,e),Nu=(t,e=31)=>vs(t&Jk(e,0)-1),Em=(t,e)=>t|1<<e,Xk=(t,e)=>t&(255^1<<e),Yk=(t,e)=>(t>>e&1)!==0,vs=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},Zk=(t,e)=>t&e,e2=(t,e)=>t|e,t2=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),r2=t=>{if(t.length!==4)throw new Error(`Expected 4 bytes instead got ${t.length}`);return(t[0]<<24)+(t[1]<<16)+(t[2]<<8)+t[3]};var _m=W(Uu(),1),n2=new TextEncoder,o2=_m.default.x64.hash126,Bm=({bitWidth:t=5,hash:e=o2})=>{if(t>4*8)throw new RangeError(`Can not use bitWidth ${t} which exceeds the hashSize 4`);if(4*8>32)throw new RangeError("Can not use hashSize 4 as it can not be encoded in Uint32");let n=4294967295>>>32-t;return{at:(s,c)=>s>>>c*t&n,from:s=>e(n2.encode(s)),size:Math.ceil(4*8/t)}};var sn=class{constructor(e,r,n,o,i){this.edit=e,this.config=i,this.datamap=r,this.nodemap=n,this.children=o}get nodeArity(){return this.config.BitField.popcount(this.nodemap)}get dataArity(){return this.config.BitField.popcount(this.datamap)}empty(){return lo(this.config)}lookup(e,r,n,o){return Tm(this,e,r,n,o)}associate(e,r,n,o,i,s){return Mu(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return Im(this,e,r,n,o,i)}fork(e=null){return fo(this,e)}entries(){return Lm(this)}keys(){return Dm(this)}values(){return Nm(this)}},As=class{constructor(e,r,n,o){this.edit=e,this.count=r,this.children=n,this.config=o}get nodeArity(){return 0}get dataArity(){return this.count}lookup(e,r,n,o){return i2(this,n,o)}associate(e,r,n,o,i,s){return s2(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return a2(this,e,n,o,i)}fork(e=null){return c2(this,e)}entries(){return Lm(this)}keys(){return Dm(this)}values(){return Nm(this)}},i2=(t,e,r)=>{let{children:n,count:o}=t,i=Pu(n,o,e);return n[i]===e?n[i+1]:r},s2=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Pu(s,c,n);if(s[a]!==n){let u=t.fork(e);return i.value=!0,u.count+=1,u.children.splice(a,r,o),u}else if(s[a+1]!==o){let u=t.fork(e);return u.children[a+1]=o,u}else return t},a2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Pu(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return Mu(lo(c),e,0,r,i[u],i[u+1],o)}else{let u=t.fork(e);return u.children.splice(a,2),u.count-=1,u}},c2=(t,e=null)=>Mm(t.edit,e)?t:new As(e,t.count,t.children.slice(),t.config),Pu=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var lo=(t,e=null)=>new sn(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),Bs=(t,e,r)=>Tm(t,0,t.config.Path.from(e),e,r),Tm=(t,e,r,n,o)=>{let{datamap:i,nodemap:s,config:c}=t,{Path:a,BitField:u}=c,l=a.at(r,e);if(u.get(i,l)){let d=u.popcount(i,l);return Cs(t,d)===n?_s(t,d):o}else return u.get(s,l)?Ts(t,l).lookup(e+1,r,n,o):o},Fu=(t,e,r,n,o)=>Mu(t,e,0,t.config.Path.from(r),r,n,o),Mu=(t,e,r,n,o,i,s)=>{let{datamap:c,nodemap:a,config:u}=t,{Path:l,BitField:d}=u,m=l.at(n,r);if(d.get(c,m)){let f=d.popcount(c,m),h=Cs(t,f);if(o===h)return _s(t,f)===i?t:u2(t,e,f,i);{let p=Pm(u,e,r+1,l.from(h),h,_s(t,f),n,o,i);return s.value=!0,f2(t,e,m,p)}}else if(d.get(a,m)){let f=Ts(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Um(t,e,m,h)}else{let f=d.popcount(c,m);s.value=!0;let h=t.fork(e);return h.datamap=d.set(c,m),h.children.splice(ho(f),0,o,i),h}},Ou=(t,e,r,n)=>Im(t,e,0,t.config.Path.from(r),r,n);var Im=(t,e,r,n,o,i)=>{let{datamap:s,nodemap:c,config:a}=t,{BitField:u,Path:l}=a,d=l.at(n,r);if(u.get(s,d)){let m=u.popcount(s,d);if(o===Cs(t,m)){i.value=!0;let f=fo(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(ho(m),2),f}else return t}else if(u.get(c,d)){let m=Ts(t,d),f=m.dissociate(e,r+1,n,o,i);return d2(f)?h2(t)?f:l2(t,e,d,f):m===f?t:Um(t,e,d,f)}else return t},Lm=function*({children:t}){let e=0,r=t.length;for(;e<r;){let n=t[e];if(typeof n=="string"){e+=1;let o=t[e];yield[n,o],e+=1}else break}for(;e<r;)yield*t[e].entries(),e+=1},fo=(t,e)=>Mm(t.edit,e)?t:new sn(e,t.datamap,t.nodemap,t.children.slice(),t.config),Dm=function*({children:t}){let e=0,r=t.length;for(;e<r;){let n=t[e];if(typeof n=="string")yield n,e+=2;else break}for(;e<r;)yield*t[e].keys(),e+=1},Nm=function*({children:t}){let e=0,r=t.length;for(;e<r&&typeof t[e]=="string";)e+=1,yield t[e],e+=1;for(;e<r;)yield*t[e].values(),e+=1},u2=(t,e,r,n)=>{let o=t.fork(e);return o.children[Fm(r)]=n,o},l2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=fo(t,e);return a.children.splice(Is(t,r),1),a.children.splice(ho(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Um=(t,e,r,n)=>{let o=fo(t,e);return o.children[Is(t,r)]=n,o},f2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=ho(a),l=Is(t,r),d=fo(t,e);return d.datamap=c.unset(i,r),d.children.splice(u,2),d.nodemap=c.set(o,r),d.children.splice(l-1,0,n),d},Pm=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new As(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new sn(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Pm(t,e,r+1,n,o,i,s,c,a)],t):new sn(e,u.from([d,m],Math.pow(2,t.bitWidth)),u.empty(Math.pow(2,t.bitWidth)),d<m?[o,i,c,a]:[c,a,o,i],t)}},Cs=({children:t},e)=>t[ho(e)],ho=t=>t*2,_s=({children:t},e)=>t[Fm(e)],Fm=t=>t*2+1,Ts=(t,e)=>t.children[Is(t,e)],Is=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Mm=(t,e)=>t!=null&&t===e,d2=t=>t.nodeArity===0&&t.dataArity===1,h2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var Ls=W(Uu(),1);function p2(t){let e=new Array(4);for(let r=0;r<4;r++)e[r]=t&255,t=t>>8;return new Uint8Array(e)}var V3=Wt({name:"murmur3-32",code:35,encode:t=>p2(Ls.default.x86.hash32(t))}),Rm=Wt({name:"murmur3-128",code:34,encode:t=>$t.fromHex(Ls.default.x64.hash128(t))}),po=Wt({name:"murmur3-x64-64",code:34,encode:t=>$t.fromHex(Ls.default.x64.hash128(t)).subarray(0,8)});var y2=new TextEncoder,m2=t=>po.encode(t),zm=({bitWidth:t=8,hash:e=m2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(y2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Ru(i,c,t)},size:Math.ceil(r*8/t)}},Ru=(t,e,r)=>{let n=e/8|0,o=e%8,i=r,s=0;for(;i>0&&n<t.byteLength;){let c=t[n],a=8-o,u=a<i?a:i,l=8-o-u,m=(255>>o&c)>>l;s=(s<<u)+m,i-=u,n++,o=0}return s};var zu={};Y(zu,{API:()=>ks,and:()=>B2,empty:()=>$m,from:()=>w2,fromBytes:()=>S2,get:()=>v2,or:()=>_2,popcount:()=>A2,set:()=>x2,size:()=>b2,toBytes:()=>E2,unset:()=>k2});var $m=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},w2=(t,e)=>{let r=$m(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=yo(r,n);r[i]=o|1<<s}return r},b2=t=>t.byteLength*8,yo=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Hm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},x2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=yo(t,e);return Hm(t,n,r|1<<o)},k2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=yo(t,e);return Hm(t,n,r&(255^1<<o))},v2=(t,e)=>{var{byte:r,bitOffset:n}=yo(t,e);return(r>>n&1)!==0},E2=t=>t,S2=t=>t,A2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=yo(t,e),i=Nu(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=vs(c),s--}return i},_2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},B2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var jm=new RangeError("Not Found");var C2=({bitWidth:t=5,BitField:e=t===5?Es:zu,Path:r=t===5?Bm({bitWidth:t}):zm({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var Hu=(t,e)=>Bs(t.root,e,jm)!==jm,Vm=(t,e,r=void 0)=>Bs(t.root,e,r),qm=t=>{let e={},r=C2(t);return new Ds(e,0,lo(r,e),r)},$u=class t{constructor(e=0,r,n){this.count=e,this.root=r,this.config=n}get size(){return this.count}clone(){return new t(this.count,this.root,this.config)}empty(){return new t(0,lo(this.config,null),this.config)}has(e){return Hu(this,e)}get(e){return Bs(this.root,e,void 0)}set(e,r){let n={value:!1},o=Fu(this.root,null,e,r,n);return o===this.root?this:new t(n.value?this.count+1:this.count,o,this.config)}delete(e){let r=Ou(this.root,null,e,{value:!1});return r===this.root?this:new t(this.count-1,r,this.config)}get bitField(){return this.config.BitField.or(this.root.datamap,this.root.nodemap)}[Symbol.iterator](){return this.entries()}entries(){return this.root.entries()}keys(){return this.root.keys()}values(){return this.root.values()}createBuilder(){return new Ds({},this.count,this.root,this.config)}},Ds=class{constructor(e,r,n,o){this.edit=e,this.count=r,this.root=n,this.config=o}get size(){if(this.edit)return this.count;throw new Error(".size was accessed on the finalized builder")}set(e,r){if(this.edit){let n={value:!1},o=Fu(this.root,this.edit,e,r,n);return this.root!==o&&(this.root=o),n.value&&(this.count+=1),this}else throw new Error(".set was called on the finalized builder")}delete(e){if(this.edit){if(this.count===0)return this;let r={value:!1},n=Ou(this.root,this.edit,e,r);return n!==this.root&&(this.root=n),r.value&&(this.count-=1),this}else throw new Error(".delete was called on the finalized builder")}build(){if(this.edit)return this.edit=null,new $u(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var T2=new TextEncoder,I2=t=>po.encode(t),Km=({bitWidth:t=8,hash:e=I2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>L2(s,c,n),from:s=>T2.encode(s),size:1/0}},L2=(t,e=0,{bitWidth:r=8,hash:n,hashSize:o})=>{let i=o*8,s=0,c=r,a=r*e;for(;c>0;){let u=a/i>>0,l=n(u===0?t:D2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Ru(l,d,f),c-=f,a+=f}return s},D2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Gm=8,U2={bitWidth:Gm,Path:Km({bitWidth:Gm})};var ju=(t=U2)=>qm(t);var Qm=class extends Map{constructor(e=ju()){super(),this.builder=e}clear(){this.builder=ju()}delete(e){let{root:r}=this.builder;return this.builder.delete(e),this.builder.root!==r}forEach(e,r=this){for(let[n,o]of this.builder.root.entries())e.call(r,o,n,this)}get(e){return Vm(this.builder,e)}has(e){return Hu(this.builder,e)}set(e,r){return this.builder.set(e,r),this}get size(){return this.builder.size}[Symbol.iterator](){return this.builder.root.entries()}entries(){return this.builder.root.entries()}keys(){return this.builder.root.keys()}values(){return this.builder.root.values()}};var Jm=({writable:t,settings:e=Lt()})=>new Vu({writer:t.getWriter(),settings:e}),F2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Vu=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=Dt(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return co({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return Lu({writer:this.writer,settings:e,metadata:r})}close(e){return F2(this,e)}},M2=1048576,O2=M2*100,Xm=(t=O2)=>({highWaterMark:t,size:e=>e.bytes.length});var Js=W(rt(),1);function $2(t){return t[Symbol.asyncIterator]!=null}function H2(t){if($2(t))return(async()=>{let r;for await(let n of t)r=n;return r})();let e;for(let r of t)e=r;return e}var eg=H2;var rw=W(rt(),1);var tg=0,j2="identity",rg=Te,V2=t=>Ht(tg,rg(t)),ng={code:tg,name:j2,encode:rg,digest:V2};var og=W(rt(),1);var q2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Tr(a),l=u,d=r;for(;n.length>0;){let m=n[0];if(m in l){n.shift(),d=`${d}/${m}`;let f=V.asCID(l[m]);if(f!=null)return{entry:{type:"object",name:e,path:r,cid:t,node:a,depth:i,size:BigInt(a.length),content:async function*(){yield u}},next:{cid:f,name:m,path:d,toResolve:n}};l=l[m]}else throw(0,og.default)(new Error(`No property named ${m} found in cbor node ${t}`),"ERR_NO_PROP")}return{entry:{type:"object",name:e,path:r,cid:t,node:a,depth:i,size:BigInt(a.length),content:async function*(){yield u}}}},ig=q2;var sg=W(rt(),1);var ce=class extends Event{constructor(e,r){super(e),this.detail=r}};function W2(t,e,r,n){let o=BigInt(t.length),i=BigInt(e+o);return r>=i||n<e?new Uint8Array(0):(n>=e&&n<i&&(t=t.subarray(0,Number(n-e))),r>=e&&r<i&&(t=t.subarray(Number(r-e))),t)}var ur=W2;var mo=W(rt(),1),K2=(t,e=0,r=t)=>{let n=BigInt(t),o=BigInt(e??0),i=BigInt(r);if(i!==n&&(i=o+i),i>n&&(i=n),o<0n)throw(0,mo.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,mo.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,mo.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,mo.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},an=K2;var G2=t=>{async function*e(r={}){let{start:n,end:o}=an(t.length,r.offset,r.length),i=ur(t,0n,n,o);r.onProgress?.(new ce("unixfs:exporter:progress:identity",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},Q2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,sg.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=Xo(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:G2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},ag=Q2;var cg=W(rt(),1);var J2=t=>{async function*e(r={}){let{start:n,end:o}=an(t.length,r.offset,r.length),i=ur(t,0n,n,o);r.onProgress?.(new ce("unixfs:exporter:progress:raw",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},X2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,cg.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=await s.get(t,c);return{entry:{type:"raw",name:e,path:r,cid:t,content:J2(a),depth:i,size:BigInt(a.length),node:a}}},ug=X2;var To=W(rt(),1);var Ju=W(rt(),1);var qu=W(ns(),1),lg=W(Yc(),1),fg=W(lt(),1),Wu=W(ts(),1),dg=W(Qc(),1);function Y2(){fg.default._configure(),qu.default._configure(lg.default),Wu.default._configure(dg.default)}Y2();var hg=["uint64","int64","sint64","fixed64","sfixed64"];function Z2(t){for(let e of hg){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Ku(t){return Z2(new qu.default(t))}function ev(t){for(let e of hg){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Gu(){return ev(Wu.default.create())}function go(t,e){let r=Ku(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function wo(t,e){let r=Gu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var cn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(cn||(cn={}));function Ns(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Qu(t){function e(o){if(t[o.toString()]==null)throw new Error("Invalid enum value");return t[o]}let r=function(i,s){let c=e(i);s.int32(c)},n=function(i){let s=i.int32();return e(s)};return Ns("enum",cn.VARINT,r,n)}function bo(t,e){return Ns("message",cn.LENGTH_DELIMITED,t,e)}var ze;(function(t){let e;(function(o){o.Raw="Raw",o.Directory="Directory",o.File="File",o.Metadata="Metadata",o.Symlink="Symlink",o.HAMTShard="HAMTShard"})(e=t.DataType||(t.DataType={}));let r;(function(o){o[o.Raw=0]="Raw",o[o.Directory=1]="Directory",o[o.File=2]="File",o[o.Metadata=3]="Metadata",o[o.Symlink=4]="Symlink",o[o.HAMTShard=5]="HAMTShard"})(r||(r={})),function(o){o.codec=()=>Qu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=bo((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.Type!=null&&(i.uint32(8),t.DataType.codec().encode(o.Type,i)),o.Data!=null&&(i.uint32(18),i.bytes(o.Data)),o.filesize!=null&&(i.uint32(24),i.uint64(o.filesize)),o.blocksizes!=null)for(let c of o.blocksizes)i.uint32(32),i.uint64(c);o.hashType!=null&&(i.uint32(40),i.uint64(o.hashType)),o.fanout!=null&&(i.uint32(48),i.uint64(o.fanout)),o.mode!=null&&(i.uint32(56),i.uint32(o.mode)),o.mtime!=null&&(i.uint32(66),Us.codec().encode(o.mtime,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={blocksizes:[]},c=i==null?o.len:o.pos+i;for(;o.pos<c;){let a=o.uint32();switch(a>>>3){case 1:s.Type=t.DataType.codec().decode(o);break;case 2:s.Data=o.bytes();break;case 3:s.filesize=o.uint64();break;case 4:s.blocksizes.push(o.uint64());break;case 5:s.hashType=o.uint64();break;case 6:s.fanout=o.uint64();break;case 7:s.mode=o.uint32();break;case 8:s.mtime=Us.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>wo(o,t.codec()),t.decode=o=>go(o,t.codec())})(ze||(ze={}));var Us;(function(t){let e;t.codec=()=>(e==null&&(e=bo((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.Seconds!=null&&(n.uint32(8),n.int64(r.Seconds)),r.FractionalNanoseconds!=null&&(n.uint32(21),n.fixed32(r.FractionalNanoseconds)),o.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let o={},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let s=r.uint32();switch(s>>>3){case 1:o.Seconds=r.int64();break;case 2:o.FractionalNanoseconds=r.fixed32();break;default:r.skipType(s&7);break}}return o})),e),t.encode=r=>wo(r,t.codec()),t.decode=r=>go(r,t.codec())})(Us||(Us={}));var pg;(function(t){let e;t.codec=()=>(e==null&&(e=bo((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.MimeType!=null&&(n.uint32(10),n.string(r.MimeType)),o.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let o={},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let s=r.uint32();switch(s>>>3){case 1:o.MimeType=r.string();break;default:r.skipType(s&7);break}}return o})),e),t.encode=r=>wo(r,t.codec()),t.decode=r=>go(r,t.codec())})(pg||(pg={}));var yg={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},tv=["directory","hamt-sharded-directory"],mg=parseInt("0644",8),gg=parseInt("0755",8),un=class t{constructor(e={type:"file"}){k(this,"type");k(this,"data");k(this,"blockSizes");k(this,"hashType");k(this,"fanout");k(this,"mtime");k(this,"_mode");k(this,"_originalMode");let{type:r,data:n,blockSizes:o,hashType:i,fanout:s,mtime:c,mode:a}=e;if(r!=null&&!Object.values(yg).includes(r))throw(0,Ju.default)(new Error("Type: "+r+" is not valid"),"ERR_INVALID_TYPE");this.type=r??"file",this.data=n,this.hashType=i,this.fanout=s,this.blockSizes=o??[],this._originalMode=0,this.mode=a,this.mtime=c}static unmarshal(e){let r=ze.decode(e),n=new t({type:yg[r.Type!=null?r.Type.toString():"File"],data:r.Data,blockSizes:r.blocksizes,mode:r.mode,mtime:r.mtime!=null?{secs:r.mtime.Seconds??0n,nsecs:r.mtime.FractionalNanoseconds}:void 0});return n._originalMode=r.mode??0,n}set mode(e){e==null?this._mode=this.isDirectory()?gg:mg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return tv.includes(this.type)}addBlockSize(e){this.blockSizes.push(e)}removeBlockSize(e){this.blockSizes.splice(e,1)}fileSize(){if(this.isDirectory())return 0n;let e=0n;return this.blockSizes.forEach(r=>{e+=r}),this.data!=null&&(e+=BigInt(this.data.length)),e}marshal(){let e;switch(this.type){case"raw":e=ze.DataType.Raw;break;case"directory":e=ze.DataType.Directory;break;case"file":e=ze.DataType.File;break;case"metadata":e=ze.DataType.Metadata;break;case"symlink":e=ze.DataType.Symlink;break;case"hamt-sharded-directory":e=ze.DataType.HAMTShard;break;default:throw(0,Ju.default)(new Error(`Type: ${e} is not valid`),"ERR_INVALID_TYPE")}let r=this.data;(this.data==null||this.data.length===0)&&(r=void 0);let n;this.mode!=null&&(n=this._originalMode&4294963200|(this.mode??0),n===mg&&!this.isDirectory()&&(n=void 0),n===gg&&this.isDirectory()&&(n=void 0));let o;return this.mtime!=null&&(o={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),ze.encode({Type:e,Data:r,filesize:this.isDirectory()?void 0:this.fileSize(),blocksizes:this.blockSizes,hashType:this.hashType,fanout:this.fanout,mode:n,mtime:o})}};var Cg=W(xg(),1);var Xu={};Y(Xu,{identity:()=>iv});var iv=br({prefix:"\0",name:"identity",encode:t=>Ll(t),decode:t=>Il(t)});var Yu={};Y(Yu,{base2:()=>sv});var sv=G({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Zu={};Y(Zu,{base8:()=>av});var av=G({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var el={};Y(el,{base10:()=>cv});var cv=yt({prefix:"9",name:"base10",alphabet:"0123456789"});var tl={};Y(tl,{base16:()=>uv,base16upper:()=>lv});var uv=G({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),lv=G({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var rl={};Y(rl,{base36:()=>fv,base36upper:()=>dv});var fv=yt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),dv=yt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var nl={};Y(nl,{base64:()=>hv,base64pad:()=>pv,base64url:()=>yv,base64urlpad:()=>mv});var hv=G({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),pv=G({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yv=G({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),mv=G({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ol={};Y(ol,{base256emoji:()=>kv});var kg=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}"),gv=kg.reduce((t,e,r)=>(t[r]=e,t),[]),wv=kg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function bv(t){return t.reduce((e,r)=>(e+=gv[r],e),"")}function xv(t){let e=[];for(let r of t){let n=wv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var kv=br({prefix:"\u{1F680}",name:"base256emoji",encode:bv,decode:xv});var il={};Y(il,{identity:()=>Sv});var vg=0,vv="identity",Eg=ot,Ev=t=>Pt(vg,Eg(t)),Sv={code:vg,name:vv,encode:Eg,digest:Ev};var xT=new TextEncoder,kT=new TextDecoder;var sl={...Xu,...Yu,...Zu,...el,...tl,...ua,...rl,...ca,...nl,...ol},ET={...Dc,...il};function ln(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Ps(t=0){return globalThis.Buffer?.allocUnsafe!=null?ln(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Ag(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Sg=Ag("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),al=Ag("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=Ps(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Bv={utf8:Sg,"utf-8":Sg,hex:sl.base16,latin1:al,ascii:al,binary:al,...sl},_g=Bv;function Bg(t,e="utf8"){let r=_g[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ln(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var lr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new Cg.default,this.key=null}async put(e,r){let n=await this._findNewBucketAndPos(e);await n.bucket._putAt(n,e,r)}async get(e){let r=await this._findChild(e);if(r!=null)return r.value}async del(e){let r=await this._findPlace(e),n=r.bucket._at(r.pos);n!=null&&n.key===e&&r.bucket._delAt(r.pos)}leafCount(){return this._children.compactArray().reduce((r,n)=>n instanceof t?r+n.leafCount():r+1,0)}childrenCount(){return this._children.length}onlyChild(){return this._children.get(0)}*eachLeafSeries(){let e=this._children.compactArray();for(let r of e)r instanceof t?yield*r.eachLeafSeries():yield r}serialize(e,r){let n=[];return r(this._children.reduce((o,i,s)=>(i!=null&&(i instanceof t?o.push(i.serialize(e,r)):o.push(e(i,s))),o),n))}async asyncTransform(e,r){return await Tg(this,e,r)}toJSON(){return this.serialize(Tv,Iv)}prettyPrint(){return JSON.stringify(this.toJSON(),null," ")}tableSize(){return Math.pow(2,this._options.bits)}async _findChild(e){let r=await this._findPlace(e),n=r.bucket._at(r.pos);if(!(n instanceof t)&&n!=null&&n.key===e)return n}async _findPlace(e){let r=this._options.hash(typeof e=="string"?Bg(e):e),n=await r.take(this._options.bits),o=this._children.get(n);return o instanceof t?await o._findPlace(r):{bucket:this,pos:n,hash:r,existingChild:o}}async _findNewBucketAndPos(e){let r=await this._findPlace(e);if(r.existingChild!=null&&r.existingChild.key!==e){let n=new t(this._options,r.bucket,r.pos);r.bucket._putObjectAt(r.pos,n);let o=await n._findPlace(r.existingChild.hash);return o.bucket._putAt(o,r.existingChild.key,r.existingChild.value),await n._findNewBucketAndPos(r.hash)}return r}_putAt(e,r,n){this._putObjectAt(e.pos,{key:r,value:n,hash:e.hash})}_putObjectAt(e,r){this._children.get(e)==null&&this._popCount++,this._children.set(e,r)}_delAt(e){if(e===-1)throw new Error("Invalid position");this._children.get(e)!=null&&this._popCount--,this._children.unset(e),this._level()}_level(){if(this._parent!=null&&this._popCount<=1)if(this._popCount===1){let e=this._children.find(Cv);if(e!=null&&!(e instanceof t)){let r=e.hash;r.untake(this._options.bits);let n={pos:this._posAtParent,hash:r,bucket:this._parent};this._parent._putAt(n,e.key,e.value)}}else this._parent._delAt(this._posAtParent)}_at(e){return this._children.get(e)}};function Cv(t){return!!t}function Tv(t,e){return t.key}function Iv(t){return t}async function Tg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof lr)await Tg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Lv=[255,254,252,248,240,224,192,128],Dv=[1,3,7,15,31,63,127,255],Fs=class{constructor(e){this._value=e,this._currentBytePos=e.length-1,this._currentBitPos=7}availableBits(){return this._currentBitPos+1+this._currentBytePos*8}totalBits(){return this._value.length*8}take(e){let r=e,n=0;for(;r>0&&this._haveBits();){let o=this._value[this._currentBytePos],i=this._currentBitPos+1,s=Math.min(i,r),c=Nv(o,i-s,s);n=(n<<s)+c,r-=s,this._currentBitPos-=s,this._currentBitPos<0&&(this._currentBitPos=7,this._currentBytePos--)}return n}untake(e){for(this._currentBitPos+=e;this._currentBitPos>7;)this._currentBitPos-=8,this._currentBytePos+=1}_haveBits(){return this._currentBytePos>=0}};function Nv(t,e,r){let n=Uv(e,r);return(t&n)>>>e}function Uv(t,e){return Lv[t]&Dv[Math.min(e+t-1,7)]}function Ig(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Ps(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return ln(r)}function Lg(t){function e(r){return r instanceof Ms?r:new Ms(r,t)}return e}var Ms=class{constructor(e,r){if(!(e instanceof Uint8Array))throw new Error("can only hash Uint8Arrays");this._value=e,this._hashFn=r,this._depth=-1,this._availableBits=0,this._currentBufferIndex=0,this._buffers=[]}async take(e){let r=e;for(;this._availableBits<r;)await this._produceMoreBits();let n=0;for(;r>0;){let o=this._buffers[this._currentBufferIndex],i=Math.min(o.availableBits(),r),s=o.take(i);n=(n<<i)+s,r-=i,this._availableBits-=i,o.availableBits()===0&&this._currentBufferIndex++}return n}untake(e){let r=e;for(;r>0;){let n=this._buffers[this._currentBufferIndex],o=Math.min(n.totalBits()-n.availableBits(),r);n.untake(o),r-=o,this._availableBits+=o,this._currentBufferIndex>0&&n.totalBits()===n.availableBits()&&(this._depth--,this._currentBufferIndex--)}}async _produceMoreBits(){this._depth++;let e=this._depth>0?Ig([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new Fs(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Dg(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:Lg(t.hashFn)};return new lr(e)}var Pv=async function(t){return(await Rm.encode(t)).slice(0,8).reverse()},Fv=async(t,e,r)=>{await Promise.all(t.map(async n=>{if(n.Name==null)throw new Error("Unexpected Link without a Name");if(n.Name.length===2){let o=parseInt(n.Name,16);e._putObjectAt(o,new lr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Ng=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Mv=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Ug=async(t,e,r,n,o)=>{if(n==null){let l=Dg({hashFn:Pv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Fv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Ng(i.pos),c=Mv(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Ng(n.lastBucket._posAtParent));let a=t.Links.find(l=>{if(l.Name==null)return!1;let d=l.Name.substring(0,2),m=l.Name.substring(2);return!(d!==s||m!==""&&m!==e)});if(a==null)return;if(a.Name!=null&&a.Name.substring(2)===e)return a.Hash;n.hamtDepth++;let u=await r.get(a.Hash,o);return t=Ye(u),Ug(t,e,r,n,o)},Pg=Ug;function Ov(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var Os=Ov;function Rv(t){return t[Symbol.asyncIterator]!=null}function zv(t,e){if(Rv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Os(t),{value:n,done:o}=r.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){await i&&(yield n);for await(let c of r)await e(c)&&(yield c)}();let s=e;return function*(){i===!0&&(yield n);for(let c of r)s(c)&&(yield c)}()}var Fg=zv;function $v(t){return t[Symbol.asyncIterator]!=null}function Hv(t,e){if($v(t))return async function*(){for await(let c of t)yield e(c)}();let r=Os(t),{value:n,done:o}=r.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){yield await i;for await(let c of r)yield e(c)}();let s=e;return function*(){yield i;for(let c of r)yield s(c)}()}var fn=Hv;function ht(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Rs=globalThis.CustomEvent??Event;async function*fr(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,o=new EventTarget,i=[],s=ht(),c=ht(),a=!1,u,l=!1;o.addEventListener("task-complete",()=>{c.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of t){if(i.length===r&&(s=ht(),await s.promise),l)break;let p={done:!1};i.push(p),h().then(w=>{p.done=!0,p.ok=!0,p.value=w,o.dispatchEvent(new Rs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new Rs("task-complete"))})}a=!0,o.dispatchEvent(new Rs("task-complete"))}catch(h){u=h,o.dispatchEvent(new Rs("task-complete"))}});function d(){return n?i[0]?.done:!!i.find(h=>h.done)}function*m(){for(;i.length>0&&i[0].done;){let h=i[0];if(i.shift(),h.ok)yield h.value;else throw l=!0,s.resolve(),h.err;s.resolve()}}function*f(){for(;d();)for(let h=0;h<i.length;h++)if(i[h].done){let p=i[h];if(i.splice(h,1),h--,p.ok)yield p.value;else throw l=!0,s.resolve(),p.err;s.resolve()}}for(;;){if(d()||(c=ht(),await c.promise),u!=null)throw u;if(n?yield*m():yield*f(),a&&i.length===0)break}}var zs=class{constructor(e){k(this,"buffer");k(this,"mask");k(this,"top");k(this,"btm");k(this,"next");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}},dn=class{constructor(e={}){k(this,"size");k(this,"hwm");k(this,"head");k(this,"tail");this.hwm=e.splitLimit??16,this.head=new zs(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 r=this.head;this.head=r.next=new zs(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var cl=class extends Error{constructor(r,n){super(r??"The operation was aborted");k(this,"type");k(this,"code");this.type="aborted",this.code=n??"ABORT_ERR"}};function hn(t={}){return jv(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function jv(t,e){e=e??{};let r=e.onEnd,n=new dn,o,i,s,c=ht(),a=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((w,g)=>{i=b=>{i=null,n.push(b);try{w(t(n))}catch(v){g(v)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=ht()})}},u=w=>i!=null?i(w):(n.push(w),o),l=w=>(n=new dn,i!=null?i({error:w}):(n.push({error:w}),o)),d=w=>{if(s)return o;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:w})},m=w=>s?o:(s=!0,w!=null?l(w):u({done:!0})),f=()=>(n=new dn,m(),{done:!0}),h=w=>(m(w),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:a,return:f,throw:h,push:d,end:m,get readableLength(){return n.size},onEmpty:async w=>{let g=w?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let b,v;g!=null&&(b=new Promise((E,T)=>{v=()=>{T(new cl)},g.addEventListener("abort",v)}));try{await Promise.race([c.promise,b])}finally{v!=null&&g!=null&&g?.removeEventListener("abort",v)}}},r==null)return o;let p=o;return o={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(w){return p.throw(w),r!=null&&(r(w),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:d,end(w){return p.end(w),r!=null&&(r(w),r=void 0),o},get readableLength(){return p.readableLength}},o}function Vv(t){return t[Symbol.asyncIterator]!=null}function qv(...t){let e=[];for(let r of t)Vv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=hn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let o of n)r.push(o)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Mg=qv;function pn(t,...e){if(t==null)throw new Error("Empty pipeline");if(ul(t)){let n=t;t=()=>n.source}else if(Rg(t)||Og(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&ul(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)ul(r[n])&&(r[n]=Kv(r[n]));return Wv(...r)}var Wv=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Og=t=>t?.[Symbol.asyncIterator]!=null,Rg=t=>t?.[Symbol.iterator]!=null,ul=t=>t==null?!1:t.sink!=null&&t.source!=null,Kv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=hn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(Og(i))o=async function*(){yield*i,n.end()};else if(Rg(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Mg(n,o())}return t.source};var Gv=(t,e,r,n,o,i,s)=>{async function*c(a={}){let u=a.offset??0,l=a.length??e.Links.length,d=e.Links.slice(u,l);a.onProgress?.(new ce("unixfs:exporter:walk:directory",{cid:t})),yield*pn(d,m=>fn(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>fr(m,{ordered:!0}),m=>Fg(m,f=>f!=null))}return c},zg=Gv;var hr=W(rt(),1);var Xg=W(Hg(),1);var ko=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},fl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},jg=t=>globalThis.DOMException===void 0?new fl(t):new DOMException(t),Vg=t=>{let e=t.reason===void 0?jg("This operation was aborted."):t.reason;return e instanceof Error?e:jg(e)};function dl(t,e,r,n){let o,i=new Promise((s,c)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){s(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:a}=n;a.aborted&&c(Vg(a)),a.addEventListener("abort",()=>{c(Vg(a))})}o=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(l){c(l)}return}let a=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new ko(a);typeof t.cancel=="function"&&t.cancel(),c(u)},e),(async()=>{try{s(await t)}catch(a){c(a)}finally{n.customTimers.clearTimeout.call(void 0,o)}})()});return i.clear=()=>{clearTimeout(o),o=void 0},i}function hl(t,e,r){let n=0,o=t.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;r(t[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var dr=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},pt,vo=class{constructor(){pt.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&dr(this,pt,"f")[this.size-1].priority>=r.priority){dr(this,pt,"f").push(n);return}let o=hl(dr(this,pt,"f"),n,(i,s)=>s.priority-i.priority);dr(this,pt,"f").splice(o,0,n)}dequeue(){let e=dr(this,pt,"f").shift();return e?.run}filter(e){return dr(this,pt,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return dr(this,pt,"f").length}};pt=new WeakMap;var K=function(t,e,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(t,r):o?o.value=r:e.set(t,r),r},L=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},X,So,Ao,Ut,Ks,_o,Hs,$e,Eo,Se,js,Ae,Bo,Nt,Vs,qg,Wg,Qg,Kg,Gg,qs,pl,yl,Gs,Jg,Ws,Qs=class extends Error{},Co=class extends Xg.default{constructor(e){var r,n,o,i;if(super(),X.add(this),So.set(this,void 0),Ao.set(this,void 0),Ut.set(this,0),Ks.set(this,void 0),_o.set(this,void 0),Hs.set(this,0),$e.set(this,void 0),Eo.set(this,void 0),Se.set(this,void 0),js.set(this,void 0),Ae.set(this,0),Bo.set(this,void 0),Nt.set(this,void 0),Vs.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:vo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(i=(o=e.interval)===null||o===void 0?void 0:o.toString())!==null&&i!==void 0?i:""}\` (${typeof e.interval})`);K(this,So,e.carryoverConcurrencyCount,"f"),K(this,Ao,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),K(this,Ks,e.intervalCap,"f"),K(this,_o,e.interval,"f"),K(this,Se,new e.queueClass,"f"),K(this,js,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,K(this,Vs,e.throwOnTimeout===!0,"f"),K(this,Nt,e.autoStart===!1,"f")}get concurrency(){return L(this,Bo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);K(this,Bo,e,"f"),L(this,X,"m",Gs).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:L(this,Vs,"f"),...r},new Promise((n,o)=>{L(this,Se,"f").enqueue(async()=>{var i,s,c;K(this,Ae,(s=L(this,Ae,"f"),s++,s),"f"),K(this,Ut,(c=L(this,Ut,"f"),c++,c),"f");try{if(!((i=r.signal)===null||i===void 0)&&i.aborted)throw new Qs("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=dl(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,L(this,X,"m",Jg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof ko&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{L(this,X,"m",Qg).call(this)}},r),this.emit("add"),L(this,X,"m",qs).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return L(this,Nt,"f")?(K(this,Nt,!1,"f"),L(this,X,"m",Gs).call(this),this):this}pause(){K(this,Nt,!0,"f")}clear(){K(this,Se,new(L(this,js,"f")),"f")}async onEmpty(){L(this,Se,"f").size!==0&&await L(this,X,"m",Ws).call(this,"empty")}async onSizeLessThan(e){L(this,Se,"f").size<e||await L(this,X,"m",Ws).call(this,"next",()=>L(this,Se,"f").size<e)}async onIdle(){L(this,Ae,"f")===0&&L(this,Se,"f").size===0||await L(this,X,"m",Ws).call(this,"idle")}get size(){return L(this,Se,"f").size}sizeBy(e){return L(this,Se,"f").filter(e).length}get pending(){return L(this,Ae,"f")}get isPaused(){return L(this,Nt,"f")}};So=new WeakMap,Ao=new WeakMap,Ut=new WeakMap,Ks=new WeakMap,_o=new WeakMap,Hs=new WeakMap,$e=new WeakMap,Eo=new WeakMap,Se=new WeakMap,js=new WeakMap,Ae=new WeakMap,Bo=new WeakMap,Nt=new WeakMap,Vs=new WeakMap,X=new WeakSet,qg=function(){return L(this,Ao,"f")||L(this,Ut,"f")<L(this,Ks,"f")},Wg=function(){return L(this,Ae,"f")<L(this,Bo,"f")},Qg=function(){var e;K(this,Ae,(e=L(this,Ae,"f"),e--,e),"f"),L(this,X,"m",qs).call(this),this.emit("next")},Kg=function(){L(this,X,"m",yl).call(this),L(this,X,"m",pl).call(this),K(this,Eo,void 0,"f")},Gg=function(){let e=Date.now();if(L(this,$e,"f")===void 0){let r=L(this,Hs,"f")-e;if(r<0)K(this,Ut,L(this,So,"f")?L(this,Ae,"f"):0,"f");else return L(this,Eo,"f")===void 0&&K(this,Eo,setTimeout(()=>{L(this,X,"m",Kg).call(this)},r),"f"),!0}return!1},qs=function(){if(L(this,Se,"f").size===0)return L(this,$e,"f")&&clearInterval(L(this,$e,"f")),K(this,$e,void 0,"f"),this.emit("empty"),L(this,Ae,"f")===0&&this.emit("idle"),!1;if(!L(this,Nt,"f")){let e=!L(this,X,"a",Gg);if(L(this,X,"a",qg)&&L(this,X,"a",Wg)){let r=L(this,Se,"f").dequeue();return r?(this.emit("active"),r(),e&&L(this,X,"m",pl).call(this),!0):!1}}return!1},pl=function(){L(this,Ao,"f")||L(this,$e,"f")!==void 0||(K(this,$e,setInterval(()=>{L(this,X,"m",yl).call(this)},L(this,_o,"f")),"f"),K(this,Hs,Date.now()+L(this,_o,"f"),"f"))},yl=function(){L(this,Ut,"f")===0&&L(this,Ae,"f")===0&&L(this,$e,"f")&&(clearInterval(L(this,$e,"f")),K(this,$e,void 0,"f")),K(this,Ut,L(this,So,"f")?L(this,Ae,"f"):0,"f"),L(this,X,"m",Gs).call(this)},Gs=function(){for(;L(this,X,"m",qs).call(this););},Jg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Qs("The task was aborted."))},{once:!0})})},Ws=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function Yg(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=ur(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,hr.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=un.unmarshal(e.Data)}catch(u){throw(0,hr.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=ur(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,hr.default)(new Error("Inconsistent block sizes and dag links"),"ERR_NOT_UNIXFS");for(let u=0;u<e.Links.length;u++){let l=e.Links[u],d=n,m=d+c.blockSizes[u];if((o>=d&&o<m||i>=d&&i<=m||o<d&&i>m)&&a.push({link:l,blockStart:n}),n=m,n>i)break}await pn(a,u=>fn(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>fr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case ir:f=Ye(d);break;case $n:f=d;break;default:r.end((0,hr.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new Co({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:l.Hash})),await Yg(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Xv=(t,e,r,n,o,i,s)=>{async function*c(a={}){let u=r.fileSize();if(u===void 0)throw new Error("File was a directory");let{start:l,end:d}=an(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=hn();a.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:t})),Yg(s,e,h,0n,l,d,a).catch(p=>{h.end(p)});for await(let p of h)if(p!=null){if(m+=BigInt(p.byteLength),m>f)throw h.end(),(0,hr.default)(new Error("Read too many bytes - the file size reported by the UnixFS data in the root node may be incorrect"),"ERR_OVER_READ");m===f&&h.end(),a.onProgress?.(new ce("unixfs:exporter:progress:unixfs:file",{bytesRead:m,totalBytes:f,fileSize:u})),yield p}if(m<f)throw(0,hr.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},ml=Xv;var Yv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),Zg(e,n,o,i,s,a)}return c};async function*Zg(t,e,r,n,o,i){let s=t.Links,c=pn(s,a=>fn(a,u=>async()=>{let l=u.Name!=null?u.Name.substring(2):null;if(l!=null&&l!==""){let d=await r(u.Hash,l,`${e}/${l}`,[],n+1,o,i);return{entries:d.entry==null?[]:[d.entry]}}else{let d=await o.get(u.Hash,i);return t=Ye(d),i.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:u.Hash})),{entries:Zg(t,e,r,n,o,i)}}}),a=>fr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var ew=Yv;var Zv=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,eE={raw:ml,file:ml,directory:zg,"hamt-sharded-directory":ew,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},tE=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ye(a),l,d;if(e==null&&(e=t.toString()),u.Data==null)throw(0,To.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=un.unmarshal(u.Data)}catch(f){throw(0,To.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Pg(u,n[0],s):f=Zv(u,n[0]),f==null)throw(0,To.default)(new Error("file does not exist"),"ERR_NOT_FOUND");let h=n.shift(),p=`${r}/${h}`;d={cid:f,toResolve:n,name:h??"",path:p}}let m=eE[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,To.default)(new Error("could not find content exporter"),"ERR_NOT_FOUND");return l.isDirectory()?{entry:{type:"directory",name:e,path:r,cid:t,content:m,unixfs:l,depth:i,node:u,size:l.fileSize()},next:d}:{entry:{type:"file",name:e,path:r,cid:t,content:m,unixfs:l,depth:i,node:u,size:l.fileSize()},next:d}},tw=tE;var rE={[ir]:tw,[$n]:ug,[La]:ig,[ng.code]:ag},nw=async(t,e,r,n,o,i,s)=>{let c=rE[t.code];if(c==null)throw(0,rw.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,nw,o,i,s)},ow=nw;var nE=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),oE=t=>{if(t instanceof Uint8Array)return{cid:V.decode(t),toResolve:[]};let e=V.asCID(t);if(e!=null)return{cid:e,toResolve:[]};if(typeof t=="string"){t.indexOf("/ipfs/")===0&&(t=t.substring(6));let r=nE(t);return{cid:V.parse(r[0]),toResolve:r.slice(1)}}throw(0,Js.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*iE(t,e,r={}){let{cid:n,toResolve:o}=oE(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await ow(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Js.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");if(a.entry!=null&&(yield a.entry),a.next==null)return;o=a.next.toResolve,n=a.next.cid,i=a.next.name,s=a.next.path}}async function iw(t,e,r={}){let n=await eg(iE(t,e,r));if(n==null)throw(0,Js.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var sE=Xm(),aE=Dt({fileChunkEncoder:Et,smallFileEncoder:Et,chunker:_u(1024*1024),fileLayout:gs(1024)});async function sw(t){let e=cE(t),r=await uE(e);return{cid:r.at(-1).cid,blocks:r}}async function aw(t,e,r){let n=await iw(e.toString(),t,{length:r.size}),o=[];for await(let i of n.content())o.push(i);return new File(o,n.name,{type:r.type,lastModified:0})}function cE(t){let{readable:e,writable:r}=new TransformStream({},sE),n=Jm({writable:r,settings:aE}),o=new gl("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function uE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var Io,gl=class{constructor(e,r){nt(this,Io,void 0);k(this,"name");this.name=e,fe(this,Io,r)}async finalize(e){let r=co(e);return await Z(this,Io).stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};Io=new WeakMap;async function lw(t,e,r,n){let o;for(let i of r){let s=await lE(t,i);o=await xp(t,e,i.key,s,n);let c=o.root.toString();o.additions.some(u=>u.cid.toString()===c)||await t.get(o.root)||(console.error(`missing root in additions: ${o.additions.length} ${c} keys: ${r.map(l=>l.key).toString()}`),o.head=e);for(let{cid:u,bytes:l}of[...o.additions,...o.removals,o.event])t.putSync(u,l);e=o.head}return{head:e}}async function lE(t,e){let r;e.del?r={del:!0}:(await fE(t,e.value),r={doc:e.value});let n=await Ge({value:r,hasher:de,codec:q});return t.putSync(n.cid,n.bytes),n.cid}async function fE(t,e){e._files&&await cw(t,e._files),e._publicFiles&&await cw(t,e._publicFiles,!0)}async function cw(t,e,r=!1){let n=t.parent,o=new _t(n);n.transactions.add(o);let i=[],s=0;for(let c in e)if(File===e[c].constructor){let a=e[c];s+=a.size;let{cid:u,blocks:l}=await sw(a);i.push(c);for(let d of l)o.putSync(d.cid,d.bytes);e[c]={cid:u,type:a.type,size:a.size}}if(s>1024*1024*1)throw new Error("Sync limit for files in a single update is 1MB");if(i.length){let c=await n.loader?.commit(o,{files:e},{public:r});if(c)for(let a of i)e[a]={car:c,...e[a]}}}async function fw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await kp(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await kl(t,n)}function xl(t,{doc:e}){e&&(e._files&&uw(t,e._files),e._publicFiles&&uw(t,e._publicFiles,!0))}function uw(t,e,r=!1){for(let n in e){let o=e[n];if(o.cid&&(r&&(o.url=`https://${o.cid.toString()}.ipfs.w3s.link/`),o.car&&t.loader)){let i=t.loader;o.file=async()=>await aw({get:async s=>{let a=await(await i.loadFileCar(o.car,r)).get(s);if(!a)throw new Error(`Missing block ${s.toString()}`);return a.bytes}},o.cid,o)}e[n]=o}}async function kl(t,e){let r=await t.get(e);if(!r)throw new Error(`Missing linked block ${e.toString()}`);let{value:n}=await vt({bytes:r.bytes,hasher:de,codec:q});return xl(t,n),n}var wl=class extends Je{async get(e){try{return await super.get(e)}catch(r){return console.error("missing event",e.toString(),r),{value:null}}}};async function Lo(t,e,r,n){let o=n.dirty?new wl(t):new Je(t);return{result:(await bl(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function bl(t,e,r,n,o=[],i,s,c){if(c<=0)return o;let a=r.map(u=>u.toString());for(let u of n)if(a.includes(u.toString()))return o;for(let u of r){if(s.has(u.toString()))continue;s.add(u.toString());let{value:l}=await e.get(u);if(!l)continue;let{key:d,value:m}=l.data;if(i.has(d))l.parents&&(o=await bl(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await kl(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await bl(t,e,l.parents,n,o,i,s,c))}}return o}async function*dw(t,e){for await(let[r,n]of Fc(t,e)){let o=await kl(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*hw(t,e){for await(let r of Nc(t,e))yield r}async function pw(t,e){let r=new Vi(t),n=new _t(t);for await(let[,i]of Fc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of Nc(r,e));let o=await Wr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await Lo(r,e,[],{});for(let i of r.cids){let s=await t.get(i);if(!s)throw new Error("Missing block: "+i.toString());await n.put(i,s.bytes)}await t.commitCompaction(n,e)}var Xs=class{constructor(){k(this,"head",[]);k(this,"zoomers",new Set);k(this,"watchers",new Set);k(this,"blocks",null)}setHead(e){this.head=e}async applyHead(e,r,n,o=null){let i=this.head.sort((u,l)=>u.toString().localeCompare(l.toString()));if(r=r.sort((u,l)=>u.toString().localeCompare(l.toString())),i.toString()===r.toString()){this.watchers.forEach(u=>u(o||[]));return}let s=n.sort((u,l)=>u.toString().localeCompare(l.toString()));if(i.toString()===s.toString()){this.setHead(r),this.watchers.forEach(u=>u(o||[]));return}let c=async(u,l)=>{if(u instanceof _t)return await l(u);if(!this.blocks)throw new Error("missing blocks");return await this.blocks.transaction(l,void 0,{noLoader:!0})},{head:a}=await c(e,async u=>{let l=this.head;for(let m of r)l=await Kn(u,l,m);let d=await Wr(u,l);for(let{cid:m,bytes:f}of[...d.additions,...d.removals])u.putSync(m,f);return{head:l}});this.watchers.size&&!o&&(o=(await Lo(this.blocks,a,n,{})).result),this.setHead(a),this.zoomers.forEach(u=>u()),this.watchers.forEach(u=>u(o||[]))}onTick(e){this.watchers.add(e)}onZoom(e){this.zoomers.add(e)}};var Ys=class{constructor(e,r){k(this,"name");k(this,"opts",{});k(this,"ready");k(this,"blocks");k(this,"indexBlocks");k(this,"indexers",new Map);k(this,"clock",new Xs);this.name=e||null,this.opts=r||this.opts,this.blocks=new ji(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new Hi(this.opts.persistIndexes&&this.name?this.name+".idx":null,this,this.opts),this.ready=Promise.all([this.blocks.ready,this.indexBlocks.ready]).then(()=>{}),this.clock.onZoom(()=>{for(let n of this.indexers.values())n._resetIndex()})}async bulk(e,r){return await this.ready,await this.blocks.transaction(async n=>{let o=[...this.clock.head],{head:i}=await lw(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(xl(this.blocks,{doc:c}),{key:s,value:c,del:a})),await this.clock.applyHead(n,i,o,e),{head:i}})}async allDocs(){await this.ready;let e=[];for await(let r of dw(this.blocks,this.clock.head))e.push(r);return{result:e,head:this.clock.head}}async vis(){await this.ready;let e=[];for await(let r of hw(this.blocks,this.clock.head))e.push(r);return e.join(`
3
+ You can use close({ resize: true }) to resize header`)},kh=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Qa=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},bh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},h1=[new C(x.map,2),new C(x.string,"version"),new C(x.uint,1),new C(x.string,"roots")],p1=new C(x.tag,42),y1=t=>{let e=[...h1];e.push(new C(x.array,t.length));for(let n of t)e.push(p1),e.push(new C(x.bytes,{length:n+1}));let r=Ga(e);return Rn.default.encodingLength(r)+r},di=({roots:t})=>y1(t.map(e=>e.bytes.byteLength));var vh=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=di({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Ja(s,i);for(let a of r)c.addRoot(a);return c};var Wt=({name:t,code:e,encode:r})=>new Xa(t,e,r),Xa=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Ht(this.code,r):r.then(n=>Ht(this.code,n))}else throw Error("Unknown type, must be binary type")}};function hi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*g1(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=V.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*Ya(n,o))}else{let r=V.asCID(e);r?yield[t.join("/"),r]:yield*Ya(e,t)}}function*Ya(t,e){if(t==null||t instanceof Uint8Array)return;let r=V.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*g1(i,o)}}function*w1(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!V.asCID(n)&&(yield*Za(n,o))}else yield*Za(e,t)}function*Za(t,e){if(!(t==null||typeof t!="object"))for(let[r,n]of Object.entries(t)){let o=[...e,r];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&!V.asCID(n)&&(yield*w1(o,n))}}function b1(t,e){let r=t;for(let[n,o]of e.entries()){if(r=r[o],r==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=V.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var zn=class{constructor({cid:e,bytes:r,value:n}){if(!e||!r||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=r,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:hi(),bytes:hi(),value:hi(),asBlock:hi()})}links(){return Ya(this.value,[])}tree(){return Za(this.value,[])}get(e="/"){return b1(this.value,e.split("/").filter(Boolean))}};async function Ge({value:t,codec:e,hasher:r}){if(typeof t>"u")throw new Error('Missing required argument "value"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.encode(t),o=await r.digest(n),i=V.create(1,e.code,o);return new zn({value:t,bytes:n,cid:i})}async function vt({bytes:t,codec:e,hasher:r}){if(!t)throw new Error('Missing required argument "bytes"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.decode(t),o=await r.digest(t),i=V.create(1,e.code,o);return new zn({value:n,bytes:t,cid:i})}function x1({bytes:t,cid:e,value:r,codec:n}){let o=r!==void 0?r:n&&n.decode(t);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new zn({cid:e,bytes:t,value:o})}async function pi({bytes:t,cid:e,hasher:r,codec:n}){if(!t)throw new Error('Missing required argument "bytes"');if(!r)throw new Error('Missing required argument "hasher"');let o=n.decode(t),i=await r.digest(t);if(!$t.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return x1({bytes:t,cid:e,value:o,codec:n})}var Sh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),de=Wt({name:"sha2-256",code:18,encode:Sh("SHA-256")}),k_=Wt({name:"sha2-512",code:19,encode:Sh("SHA-512")});var Et={};Y(Et,{code:()=>$n,decode:()=>E1,encode:()=>v1,name:()=>k1});var k1="raw",$n=85,v1=t=>Te(t),E1=t=>Te(t);async function yi(t,e){let r=0,n=di({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=xh({cid:s,bytes:c});let o=new Uint8Array(r),i=vh(o,{headerSize:n});for(let s of t)i.addRoot(s);for(let{cid:s,bytes:c}of e.entries())i.write({cid:s,bytes:c});return i.close(),await Ge({value:i.bytes,hasher:de,codec:Et})}async function Ah(t){return await Ge({value:{fp:t},hasher:de,codec:q})}async function _h(t){let e=await t.getRoots(),r=await t.get(e[0]);if(!r)throw new Error("missing header block");let{value:n}=await vt({bytes:r.bytes,hasher:de,codec:q});if(n&&n.fp===void 0)throw new Error("missing fp");let{fp:o}=n;return o}var Kt={};Y(Kt,{code:()=>C1,crypto:()=>T1,decode:()=>B1,decrypt:()=>wi,encode:()=>_1,encrypt:()=>bi,name:()=>I1});function mi(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var Hn=mi();function gi(t){let e=new Uint8Array(t);return t>0&&Hn.getRandomValues(e),e}var S1=t=>{t=+t;let e=new Uint8Array(4);return e[3]=t>>>24,e[2]=t>>>16,e[1]=t>>>8,e[0]=t&255,e},A1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},Bh=t=>{let e=t.map(i=>i instanceof ArrayBuffer?new Uint8Array(i):i),r=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(r),o=0;for(let i of e)n.set(i,o),o+=i.length;return n},_1=({iv:t,bytes:e})=>Bh([t,e]),B1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},C1=3145728+1337;async function Ch(t){return await Hn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var wi=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await Ch(t),i=await Hn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=A1(r.subarray(0,4)),c=V.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},bi=async({key:t,cid:e,bytes:r})=>{let n=S1(e.bytes.byteLength),o=gi(12),i=Bh([n,e.bytes,r]);try{let s=await Ch(t),c=await Hn.subtle.encrypt({name:"AES-GCM",iv:o,tagLength:128},s,i);r=new Uint8Array(c)}catch(s){throw console.log("ee",s),s}return{value:{bytes:r,iv:o}}},T1=t=>({encrypt:e=>bi({key:t,...e}),decrypt:e=>wi({key:t,...e})}),I1="jchris@encrypted-block:aes-gcm";var jn=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Vn=t=>{let e=Math.floor(4294967295/t);return async r=>{let n=await r.identity();if(typeof n!="number")throw new Error("Identity must be a number");return n<=e}};var Qt=(t,e)=>t===e?0:t>e?1:-1,Th=(t,e)=>{for(let r=0;r<t.byteLength;r++){if(e.byteLength===r)return 1;let n=t[r],o=e[r];if(n!==o)return n>o?1:-1}return e.byteLength>t.byteLength?-1:0},Gt=class{constructor(){this._cids=new Set}add(e){if(!e.address)throw new Error("Cannot add node without address");if(e.address.then){let r=e.address.then(n=>this._cids.add(n.toString()));this._cids.add(r),r.then(()=>this._cids.delete(r))}else this._cids.add(e.address.toString())}async all(){return await Promise.all([...this._cids]),this._cids}};var Jt=class{constructor({key:e,address:r},n={}){this.key=e,this.address=r,this.codec=n.codec,this.hasher=n.hasher}get isEntry(){return!0}},St=class{constructor({entries:e,closed:r}){if(typeof r!="boolean")throw new Error('Missing required argument "closed"');this.entries=e,this.closed=r,this.startKey=e[0].key}find(e,r){let{entries:n}=this;for(let o=n.length-1;o>-1;o--){let i=n[o];if(r(e,i.key)>-1)return[o,i]}return null}findMany(e,r,n=!1,o=!1){let{entries:i}=this,s=new Map;n?e=[...e]:e=e.sort(r);for(let c=i.length-1;c>-1&&e.length;c--){let a=i[c],u=[];for(;e.length;){let l=e[e.length-1];l=l.key?l.key:l;let d=r(l,a.key);if(o)if(d===0)u.push(e.pop());else if(d>0)e.pop();else break;else if(d>-1)u.push(e.pop());else break}u.length&&s.set(c,[a,u])}return s}findRange(e,r,n){let{entries:o}=this,i,s=0;for(let c=o.length-1;c>-1;c--){let a=o[c];if(n(r,a.key)>0){i=c;break}}for(let c=0;c<o.length;c++){let a=o[c],u=n(e,a.key);if(u===0){s=c;break}else if(u<0)break;s=c}return{first:s,last:i,entries:o.slice(s,i+1)}}},Ih=t=>typeof t=="string"?t:JSON.stringify(t);function L1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function D1(t,e,r){let n=[];for(let o of e){let{key:i,del:s}=o;if(r(i,t)<0)s||n.push(o);else break}return n}async function N1(t,e,{chunker:r,compare:n}){return await At.from({entries:t.map(o=>new e.LeafEntryClass(o,e)).sort((o,i)=>n(o.key,i.key)),chunker:r,NodeClass:e.LeafClass,distance:0,opts:e})}async function U1(t,e,r,n){return await Promise.all(e.map(async o=>{let i=await o.encode();return r.blocks.push({block:i,node:o}),t.cache.set(o),new n.BranchEntryClass({key:o.key,address:await o.address},n)}))}async function P1(t,e,r,n){let o=e.root;e.blocks.push({block:await o.encode(),node:o}),t.cache.set(o);let i=n.opts,s=o.distance,c=o.entryList.startKey,a=await D1(c,r,t.compare);if(a.length){let u=await N1(a,i,t),l=await U1(t,u,e,i),m=[new i.BranchEntryClass({key:o.entryList.startKey,address:await o.address},i),...l].sort(({key:p},{key:w})=>i.compare(p,w)),f=await At.from({...n,entries:m,chunker:t.chunker,NodeClass:i.BranchClass,distance:s+1}),h=[...f];for(;f.length>1;){let p=await Promise.all(f.map(async w=>new i.BranchEntryClass({key:w.key,address:await w.address},i)));f=await At.from({...n,entries:p.sort(({key:w},{key:g})=>i.compare(w,g)),chunker:t.chunker,NodeClass:i.BranchClass,distance:s+1}),h=[...h,...f]}await Promise.all(h.map(async p=>{let w=await p.encode();t.cache.set(p),e.blocks.push({block:w,node:p})})),e.root=f[0],e.nodes=[...e.nodes,...h]}}var At=class t{constructor({entryList:e,chunker:r,distance:n,getNode:o,compare:i,cache:s}){this.entryList=e,this.chunker=r,this.distance=n,this.getNode=o,this.compare=i,this.cache=s}get closed(){return this.entryList.closed}get key(){return this.entryList.startKey}async getEntry(e,r=new Gt){return{result:await this._getEntry(e,r),cids:r}}async _getEntry(e,r){r.add(this);let n=this;for(;!n.isLeaf;){let s=n.entryList.find(e,this.compare);if(s===null)throw new Error("Not found");let[,c]=s;n=await this.getNode(await c.address),r.add(n)}let o=n.entryList.find(e,this.compare);if(o===null||o[1].key.toString()!==e.toString())throw new Error("Not found");let[,i]=o;return i}async getAllEntries(e=new Gt){return{result:await this._getAllEntries(e),cids:e}}_getAllEntries(e){if(e.add(this),this.isLeaf)return this.entryList.entries;{let{entries:r}=this.entryList,n=async o=>this.getNode(await o.address).then(i=>i._getAllEntries(e)).catch(async i=>{throw i});return Promise.all(r.map(n)).then(o=>o.flat())}}async*vis(e=new Set){let r=async i=>i.isLeaf?`Leaf [${i.entryList.entries.map(c=>`[${c.key},${JSON.stringify(c.value).replace(/"/g,"'")}]`).join(", ")}]`:`Branch [${i.entryList.entries.map(c=>`[${c.key}]`).join(", ")}]`,n=i=>i.toString().slice(0,4)+i.toString().slice(-4),o=async function*(i,s,c){let a=await i.address;if(!c.has(a)){c.add(a);let u=await r(i);yield` node [shape=ellipse fontname="Courier"]; ${n(a)} [label="${u}"];`,yield` ${n(s)} -> ${n(a)};`;for(let l of i.entryList.entries)if(l.address){let d=await l.address;try{let m=await i.getNode(d);yield*await o(m,a,c)}catch(m){yield` ${n(a)} -> ${n(d)};`,yield` node [shape=ellipse fontname="Courier"]; ${n(d)} [label="Error: ${m.message}"];`}}}};yield"digraph tree {",yield' node [shape=ellipse fontname="Courier"]; rootnode;';for await(let i of o(this,"rootnode",e))yield i;yield"}"}async getEntries(e,r=!1,n=new Gt){return{result:await this._getEntries(e,r,n),cids:n}}async _getEntries(e,r,n){n.add(this),r||(e=e.sort(this.compare));let o=this.entryList.findMany(e,this.compare,!0,this.isLeaf);if(this.isLeaf)return[...o.values()].map(([s])=>s);let i=[];for(let[s,c]of[...o.values()].reverse()){let a=this.getNode(await s.address);i.push(a.then(u=>u._getEntries(c.reverse(),!0,n)))}return i=await Promise.all(i),i.flat()}async getRangeEntries(e,r,n=new Gt){return{result:await this._getRangeEntries(e,r,n),cids:n}}_getRangeEntries(e,r,n){n.add(this);let{entries:o}=this.entryList.findRange(e,r,this.compare);if(this.isLeaf)return o.filter(a=>{let u=this.compare(e,a.key),l=this.compare(r,a.key);return u<=0&&l>=0});if(!o.length)return[];let i=async a=>this.getNode(await a.address).then(u=>u._getRangeEntries(e,r,n)),s=[i(o.shift())];if(!o.length)return s[0];let c=i(o.pop());for(;o.length;){let a=async u=>this.getNode(await u.address).then(async l=>l._getAllEntries(n));s.push(a(o.shift()))}return s.push(c),Promise.all(s).then(a=>a.flat())}async transaction(e,r={}){r={codec:this.codec,hasher:this.hasher,getNode:this.getNode,compare:this.compare,cache:this.cache,...r};let n={chunker:this.chunker,opts:r},o=this.entryList.findMany(e,r.compare,!0,this.isLeaf);return this.isLeaf?await this.transactionLeaf(e,r,n,o):await this.transactionBranch(e,r,n,o)}async transactionLeaf(e,r,n,o){let{LeafClass:i,LeafEntryClass:s}=r,{entries:c,previous:a}=this.processLeafEntries(e,o,s,r),u={...n,entries:c,NodeClass:i,distance:0},l=await t.from(u);return{nodes:l,previous:a,blocks:await Promise.all(l.map(async d=>{let m=await d.encode();return this.cache.set(d),{block:m,node:d}})),distance:0}}processLeafEntries(e,r,n,o){let i=[],s=[],c={},a=new Map;for(let{key:d,del:m,value:f}of e){let h=Ih(d);m?typeof c[h]>"u"&&a.set(h,null):(c[h]={key:d,value:f},a.delete(h))}s=[...this.entryList.entries];for(let[d,[m]]of r){i.push(m);let f=Ih(m.key);a.has(f)?a.set(f,d):(s[d]=new n(c[f],o),delete c[f])}let u=0;for(let[,d]of a)d!==null&&s.splice(d-u++,1);let l=Object.values(c).map(d=>new n(d,o));return s=s.concat(l).sort(({key:d},{key:m})=>o.compare(d,m)),{entries:s,previous:i}}async transactionBranch(e,r,n,o){let{BranchClass:i,BranchEntryClass:s}=r,c=0;for(let[h,[p,w]]of o){let g=this.getNode(await p.address).then(b=>b.transaction(w.reverse(),{...r,sorted:!0})).then(b=>({entry:p,keys:w,distance:c,...b}));o.set(h,g)}let a=[...this.entryList.entries],u={previous:[],blocks:[],nodes:[]};for(let[h,p]of o){let{nodes:w,previous:g,blocks:b,distance:v}=await p;c=v,a[h]=w,g.length&&(u.previous=u.previous.concat(g)),b.length&&(u.blocks=u.blocks.concat(b)),w.length&&(u.nodes=u.nodes.concat(w))}a=a.flat();let l=await this.handlePrepend(a,r,n,u,c);c++;let d=async h=>{if(h.isEntry)return h;let p=await h.encode();return u.blocks.push({block:p,node:h}),this.cache.set(h),new s(h,r)};a=await Promise.all(l.map(d));let m={...n,entries:a,NodeClass:i,distance:c},f=await t.from(m);return await Promise.all(f.map(async h=>{let p=await h.encode();u.blocks.push({block:p,node:h}),this.cache.set(h)})),u.nodes=f,{...u,distance:c}}async handlePrepend(e,r,n,o,i){let{BranchClass:s,LeafClass:c}=r,a=[],u=null;for(let l of e)if(u){let d=await this.mergeFirstLeftEntries(l,u,n,o,i);u=null;let m=d[0].address?s:c,f={...n,entries:d.sort(({key:p},{key:w})=>r.compare(p,w)),NodeClass:m,distance:i},h=await t.from(f);h[h.length-1].closed||(u=h.pop()),h.length&&(a=a.concat(h))}else!l.isEntry&&!l.closed?u=l:a.push(l);return u&&a.push(u),a}async getNodeFirstFromBlocks(e,r){for(let{block:n,node:o}of e)if(await n.cid===r)return o;return await this.getNode(r)}async mergeFirstLeftEntries(e,r,n,o,i){let s=n.opts,{LeafClass:c,BranchClass:a,BranchEntryClass:u}=s;if(e.isEntry){let f=await e.address;e=await this.getNodeFirstFromBlocks(o.blocks,f)}let l=e.entryList.entries;if(!l.length)throw new Error("unreachable no entries");let d=(f,h)=>f.concat(h),m=async(f,h,p)=>await Promise.all(f.map(async w=>(h.blocks.push({block:await w.encode(),node:w}),this.cache.set(w),new u({key:w.key,address:await w.address},p))));if(l[0].constructor.name===r.entryList.entries[0].constructor.name)return await d(r.entryList.entries,l);{let f=l.shift();if(!f)throw new Error("unreachable no left entry");if(!f.address)throw new Error("unreachable existing leaf, no leftEntry.address");let h=await this.mergeFirstLeftEntries(f,r,n,o,i-1),p=l.shift();if(!p)return h;if(!p.address)throw new Error("unreachable existing leaf, no esf.address");let w=await this.getNodeFirstFromBlocks(o.blocks,await p.address);if(w.entryList.entries[0].address){if(h[0].address)return h.concat(w.entryList.entries);{let g=await t.from({...n,entries:h.sort(({key:T},{key:U})=>s.compare(T,U)),NodeClass:c,distance:i}),b=await m(g,o,s),v=await t.from({...n,entries:[...w.entryList.entries,...b,...l].sort(({key:T},{key:U})=>s.compare(T,U)),NodeClass:a,distance:i});return await m(v,o,s)}}else{let g=await d(h,w.entryList.entries),b=await t.from({...n,entries:g.sort(({key:E},{key:T})=>s.compare(E,T)),NodeClass:c,distance:i}),v=await m(b,o,s);return await d(v,l)}}}async bulk(e,r={},n=!0){let{BranchClass:o}=r;r={codec:this.codec,hasher:this.hasher,getNode:this.getNode,compare:this.compare,cache:this.cache,...r},r.sorted||(e=L1(e,r),r.sorted=!0);let i={chunker:this.chunker,opts:r},s=await this.transaction(e,r);for(;s.nodes.length>1;){let c=s.nodes[0].distance+1,a=await Promise.all(s.nodes.map(async l=>{let d=await l.encode();return s.blocks.push({block:d,node:l}),this.cache.set(l),new r.BranchEntryClass(l,r)})),u=await t.from({...i,entries:a,NodeClass:o,distance:c});await Promise.all(u.map(async l=>{let d=await l.encode();this.cache.set(l),s.blocks.push({block:d,node:l})})),s.nodes=u}return s.root=s.nodes[0],n&&s.root&&await P1(this,s,e,i),s.blocks=s.blocks.map(({block:c})=>c),s}static async from({entries:e,chunker:r,NodeClass:n,distance:o,opts:i}){if(!e.every(a=>a.constructor.name===e[0].constructor.name))throw new Error("all entries must be of the same type");let s=[],c=[];for(let a of e)c.push(a),await r(a,o)&&(s.push(new St({entries:c,closed:!0})),c=[]);return c.length&&s.push(new St({entries:c,closed:!1})),s.map(a=>new n({entryList:a,chunker:r,distance:o,...i}))}},xi=class extends At{constructor({codec:e,hasher:r,block:n,...o}){super(o),this.codec=e,this.hasher=r,n?(this.block=n,this.address=n.cid):(this.block=this.encode(),this.address=this.block.then(i=>i.cid))}async get(e){let{result:r,cids:n}=await this.getEntry(e);return{result:r.key,cids:n}}async encode(){if(this.block)return this.block;let e=await this.encodeNode(),r={codec:this.codec,hasher:this.hasher,value:e};return this.block=await Ge(r),this.block}},Rr=class extends xi{async encodeNode(){let{entries:e}=this.entryList,r=async o=>{if(!o.address)throw new Error("entry.address required");return[o.key,await o.address]},n=await Promise.all(e.map(r));return{branch:[this.distance,n],closed:this.closed}}get isBranch(){return!0}},zr=class extends xi{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},ki=async function*(t){let{LeafClass:e,LeafEntryClass:r,BranchClass:n,BranchEntryClass:o,list:i,chunker:s,compare:c,...a}=t;i=i.map(d=>new r(d,a)),a.compare=c;let u=await At.from({entries:i,chunker:s,NodeClass:e,distance:0,opts:a});yield*u;let l=1;for(;u.length>1;){let d=async f=>new o({key:f.key,address:await f.address},a),m=await Promise.all(u.map(d));u=await At.from({entries:m,chunker:s,NodeClass:n,distance:l,opts:a}),yield*u,l++}};var ec=({bytes:t},{bytes:e})=>Th(t,e),vi=class extends Jt{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return jn(e)}},Ei=class extends Jt{async identity(){let{multihash:{bytes:e}}=await this.address;return jn(e)}},Si=class extends Rr{},Ai=class extends zr{},Lh=(t,e,r,n,o)=>{let i=c=>{let{value:a}=c,u={chunker:r,cache:e,block:c,getNode:s,codec:n,hasher:o,compare:ec},l,d;if(a.leaf)l=a.leaf.map(h=>new vi(h)),d=Ai;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new Ei({key:w,address:g})),d=Si}else throw new Error("Unknown block data, does not match schema");let m=new St({entries:l,closed:a.closed}),f=new d({entryList:m,...u});return e.set(f),f},s=c=>e.has(c)?e.get(c):t(c).then(a=>i(a));return s},Dh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(ec));let c=Lh(t,e,r,o,i);return ki({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:ec,cache:e,LeafClass:Ai,LeafEntryClass:vi,BranchClass:Si,BranchEntryClass:Ei})},Nh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>Lh(e,r,n,o,i,s)(t);var Uh=async function*({get:t,cids:e,hasher:r,key:n,cache:o,chunker:i,root:s}){let c=new Set,a;for(let f of e){let h=await t(f);if(!h)throw new Error("missing cid: "+f.toString());let p=await bi({...h,key:n}),w=await Ge({...p,codec:Kt,hasher:r});yield w,c.add(w.cid.toString()),h.cid.equals(s)&&(a=w.cid)}if(!a)throw new Error("cids does not include root");let u=[...c].map(f=>V.parse(f)),l;for await(let f of Dh({list:u,get:t,cache:o,chunker:i,hasher:r,codec:q})){let h=await f.block;yield h,l=h}if(!l)throw new Error("missing last block");let d=[a,l.cid];yield await Ge({value:d,codec:q,hasher:r})},Ph=async function*({root:t,get:e,key:r,cache:n,chunker:o,hasher:i}){let s=async w=>e(w).then(async g=>g?await vt({...g,codec:q,hasher:i}):void 0),c=async w=>e(w).then(async g=>g?await vt({...g,codec:Kt,hasher:i}):void 0),a=await s(t);if(!a)throw new Error("missing root");if(!a.bytes)throw new Error("missing bytes");let{value:[u,l]}=a,d=await e(u);if(!d)throw new Error("missing root block");let m=await Nh({cid:l,get:s,cache:n,chunker:o,codec:Kt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await vt({...w,codec:Kt,hasher:i}));let{bytes:g,cid:b}=await wi({...w,key:r}).catch(E=>{throw E});return await pi({cid:b,bytes:g,hasher:i,codec:Kt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var $r={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var Fh=Vn(30);function Mh(t){let e=t.length,r=new Uint8Array(e/2);for(let n=0;n<e;n+=2)r[n/2]=parseInt(t.substring(n,n+2),16);return r}async function Oh(t,e,r){let n=Mh(t),o=n.buffer.slice(0,n.byteLength),i=new _e,s=[];for(let{cid:u}of r.entries())s.push(u);let c=null;for await(let u of Uh({cids:s,get:r.get.bind(r),key:o,hasher:de,chunker:Fh,cache:$r,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await yi([c.cid],i)}async function Rh(t,e){let n=(await e.getRoots())[0];return await F1(n,e.get.bind(e),t)}async function F1(t,e,r){let n=Mh(r),o=n.buffer.slice(0,n.byteLength),i=new _e,s=null;for await(let c of Ph({root:t,get:e,key:o,hasher:de,chunker:Fh,cache:$r}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var tc=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let r=this.inRecursive[this.inRecursive.length-1];r&&(r.type===y.array&&(r.elements++,r.elements!==1&&e.push([44])),r.type===y.map&&(r.elements++,r.elements!==1&&(r.elements%2===1?e.push([44]):e.push([58]))))}[y.uint.major](e,r){this.prefix(e);let n=String(r.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[y.negint.major](e,r){this[y.uint.major](e,r)}[y.bytes.major](e,r){throw new Error(`${it} unsupported type: Uint8Array`)}[y.string.major](e,r){this.prefix(e);let n=zo(JSON.stringify(r.value));e.push(n.length>32?kn(n):n)}[y.array.major](e,r){this.prefix(e),this.inRecursive.push({type:y.array,elements:0}),e.push([91])}[y.map.major](e,r){this.prefix(e),this.inRecursive.push({type:y.map,elements:0}),e.push([123])}[y.tag.major](e,r){}[y.float.major](e,r){if(r.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===y.array)e.push([93]);else if(s.type===y.map)e.push([125]);else throw new Error("Unexpected recursive type; this should not happen!");return}throw new Error("Unexpected break; this should not happen!")}if(r.value===void 0)throw new Error(`${it} unsupported type: undefined`);if(this.prefix(e),r.type.name==="true"){e.push([116,114,117,101]);return}else if(r.type.name==="false"){e.push([102,97,108,115,101]);return}else if(r.type.name==="null"){e.push([110,117,108,108]);return}let n=String(r.value),o=[],i=!1;for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s),!i&&(o[s]===46||o[s]===101||o[s]===69)&&(i=!0);i||(o.push(46),o.push(48)),e.push(o)}};function M1(t,e){if(Array.isArray(t[0])||Array.isArray(e[0]))throw new Error(`${it} complex map keys are not supported`);let r=t[0],n=e[0];if(r.type!==y.string||n.type!==y.string)throw new Error(`${it} non-string map keys are not supported`);if(r<n)return-1;if(r>n)return 1;throw new Error(`${it} unexpected duplicate map keys, this is not supported`)}var O1={addBreakTokens:!0,mapSorter:M1};function rc(t,e){return e=Object.assign({},O1,e),ba(t,new tc,e)}var Hr=class{constructor(e,r={}){this.pos=0,this.data=e,this.options=r,this.modeStack=["value"],this.lastToken=""}done(){return this.pos>=this.data.length}ch(){return this.data[this.pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this.pos]}expect(e){if(this.data.length-this.pos<e.length)throw new Error(`${I} unexpected end of input at position ${this.pos}`);for(let r=0;r<e.length;r++)if(this.data[this.pos++]!==e[r])throw new Error(`${I} unexpected token at position ${this.pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this.pos,r=!1,n=!1,o=c=>{for(;!this.done();){let a=this.ch();if(c.includes(a))this.pos++;else break}};if(this.ch()===45&&(r=!0,this.pos++),this.ch()===48)if(this.pos++,this.ch()===46)this.pos++,n=!0;else return new S(y.uint,0,this.pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),r&&this.pos===e+1)throw new Error(`${I} unexpected token at position ${this.pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${I} unexpected token at position ${this.pos}`);n=!0,this.pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this.pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this.pos++,o([48,49,50,51,52,53,54,55,56,57]));let i=String.fromCharCode.apply(null,this.data.subarray(e,this.pos)),s=parseFloat(i);return n?new S(y.float,s,this.pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new S(s>=0?y.uint:y.negint,s,this.pos-e):new S(s>=0?y.uint:y.negint,BigInt(i),this.pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${I} unexpected character at position ${this.pos}; this shouldn't happen`);this.pos++;for(let i=this.pos,s=0;i<this.data.length&&s<65536;i++,s++){let c=this.data[i];if(c===92||c<32||c>=128)break;if(c===34){let a=String.fromCharCode.apply(null,this.data.subarray(this.pos,i));return this.pos=i+1,new S(y.string,a,s)}}let e=this.pos,r=[],n=()=>{if(this.pos+4>=this.data.length)throw new Error(`${I} unexpected end of unicode escape sequence at position ${this.pos}`);let i=0;for(let s=0;s<4;s++){let c=this.ch();if(c>=48&&c<=57)c-=48;else if(c>=97&&c<=102)c=c-97+10;else if(c>=65&&c<=70)c=c-65+10;else throw new Error(`${I} unexpected unicode escape character at position ${this.pos}`);i=i*16+c,this.pos++}return i},o=()=>{let i=this.ch(),s=null,c=i>239?4:i>223?3:i>191?2:1;if(this.pos+c>this.data.length)throw new Error(`${I} unexpected unicode sequence at position ${this.pos}`);let a,u,l,d;switch(c){case 1:i<128&&(s=i);break;case 2:a=this.data[this.pos+1],(a&192)===128&&(d=(i&31)<<6|a&63,d>127&&(s=d));break;case 3:a=this.data[this.pos+1],u=this.data[this.pos+2],(a&192)===128&&(u&192)===128&&(d=(i&15)<<12|(a&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:a=this.data[this.pos+1],u=this.data[this.pos+2],l=this.data[this.pos+3],(a&192)===128&&(u&192)===128&&(l&192)===128&&(d=(i&15)<<18|(a&63)<<12|(u&63)<<6|l&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|s&1023),r.push(s),this.pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this.pos++,this.done())throw new Error(`${I} unexpected string termination at position ${this.pos}`);switch(s=this.ch(),this.pos++,s){case 34:case 39:case 92:case 47:r.push(s);break;case 98:r.push(8);break;case 116:r.push(9);break;case 110:r.push(10);break;case 102:r.push(12);break;case 114:r.push(13);break;case 117:r.push(n());break;default:throw new Error(`${I} unexpected string escape character at position ${this.pos}`)}break;case 34:return this.pos++,new S(y.string,ha(r),this.pos-e);default:if(i<32)throw new Error(`${I} invalid control character at position ${this.pos}`);i<128?(r.push(i),this.pos++):o()}}throw new Error(`${I} unexpected end of string at position ${this.pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this.pos++,new S(y.map,1/0,1);case 91:return this.modeStack.push("array-start"),this.pos++,new S(y.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new S(y.null,null,4);case 102:return this.expect([102,97,108,115,101]),new S(y.false,!1,5);case 116:return this.expect([116,114,117,101]),new S(y.true,!0,4);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.parseNumber();default:throw new Error(`${I} unexpected character at position ${this.pos}`)}}next(){switch(this.skipWhitespace(),this.currentMode()){case"value":return this.modeStack.pop(),this.parseValue();case"array-value":{if(this.modeStack.pop(),this.ch()===93)return this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting array delimiter but found '${String.fromCharCode(this.ch())}'`);return this.pos++,this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue()}case"array-start":return this.modeStack.pop(),this.ch()===93?(this.pos++,this.skipWhitespace(),new S(y.break,void 0,1)):(this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue());case"obj-key":if(this.ch()===125)return this.modeStack.pop(),this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting object delimiter but found '${String.fromCharCode(this.ch())}'`);this.pos++,this.skipWhitespace();case"obj-start":{if(this.modeStack.pop(),this.ch()===125)return this.pos++,this.skipWhitespace(),new S(y.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${I} unexpected character at position ${this.pos}, was expecting key/value delimiter ':' but found '${String.fromCharCode(this.ch())}'`);return this.pos++,this.modeStack.push("obj-value"),e}case"obj-value":return this.modeStack.pop(),this.modeStack.push("obj-key"),this.skipWhitespace(),this.parseValue();default:throw new Error(`${I} unexpected parse state at position ${this.pos}; this shouldn't happen`)}}};function nc(t,e){return e=Object.assign({tokenizer:new Hr(t,e)},e),Cn(t,e)}var oc=ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),u6=ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),l6=ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),f6=ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function z1(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=V.asCID(t);if(!e)return null;let r=e.toString();return[new S(y.map,1/0,1),new S(y.string,"/",1),new S(y.string,r,r.length),new S(y.break,void 0,1)]}function _i(t){let e=oc.encode(t).slice(1);return[new S(y.map,1/0,1),new S(y.string,"/",1),new S(y.map,1/0,1),new S(y.string,"bytes",5),new S(y.string,e,e.length),new S(y.break,void 0,1),new S(y.break,void 0,1)]}function Fe(t){return _i(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function $1(t){return _i(new Uint8Array(t))}function H1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function j1(t){if(Number.isNaN(t))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(t===1/0||t===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var V1={typeEncoders:{Object:z1,Buffer:_i,Uint8Array:_i,Int8Array:Fe,Uint16Array:Fe,Int16Array:Fe,Uint32Array:Fe,Int32Array:Fe,Float32Array:Fe,Float64Array:Fe,Uint8ClampedArray:Fe,BigInt64Array:Fe,BigUint64Array:Fe,DataView:Fe,ArrayBuffer:$1,undefined:H1,number:j1}},ic=class extends Hr{constructor(e,r){super(e,r),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===y.map){let r=this._next();if(r.type===y.string&&r.value==="/"){let n=this._next();if(n.type===y.string){if(this._next().type!==y.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new S(y.tag,42,0)}if(n.type===y.map){let o=this._next();if(o.type===y.string&&o.value==="bytes"){let i=this._next();if(i.type===y.string){for(let c=0;c<2;c++)if(this._next().type!==y.break)throw new Error("Invalid encoded Bytes form");let s=oc.decode(`m${i.value}`);return new S(y.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(r)}return e}},sc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};sc.tags[42]=V.parse;var q1=t=>rc(t,V1),W1=t=>{let e=Object.assign(sc,{tokenizer:new ic(t,sc)});return nc(t,e)},Bi=t=>K1.decode(q1(t));var K1=new TextDecoder,Ci=t=>W1(G1.encode(t)),G1=new TextEncoder;var Q1=(t,e)=>e.some(r=>t instanceof r),zh,$h;function J1(){return zh||(zh=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function X1(){return $h||($h=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Hh=new WeakMap,cc=new WeakMap,jh=new WeakMap,ac=new WeakMap,lc=new WeakMap;function Y1(t){let e=new Promise((r,n)=>{let o=()=>{t.removeEventListener("success",i),t.removeEventListener("error",s)},i=()=>{r(Qe(t.result)),o()},s=()=>{n(t.error),o()};t.addEventListener("success",i),t.addEventListener("error",s)});return e.then(r=>{r instanceof IDBCursor&&Hh.set(r,t)}).catch(()=>{}),lc.set(e,t),e}function Z1(t){if(cc.has(t))return;let e=new Promise((r,n)=>{let o=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",s),t.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(t.error||new DOMException("AbortError","AbortError")),o()};t.addEventListener("complete",i),t.addEventListener("error",s),t.addEventListener("abort",s)});cc.set(t,e)}var uc={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return cc.get(t);if(e==="objectStoreNames")return t.objectStoreNames||jh.get(t);if(e==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Qe(t[e])},set(t,e,r){return t[e]=r,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function Vh(t){uc=t(uc)}function ex(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(Ti(this),e,...r);return jh.set(n,e.sort?e.sort():[e]),Qe(n)}:X1().includes(t)?function(...e){return t.apply(Ti(this),e),Qe(Hh.get(this))}:function(...e){return Qe(t.apply(Ti(this),e))}}function tx(t){return typeof t=="function"?ex(t):(t instanceof IDBTransaction&&Z1(t),Q1(t,J1())?new Proxy(t,uc):t)}function Qe(t){if(t instanceof IDBRequest)return Y1(t);if(ac.has(t))return ac.get(t);let e=tx(t);return e!==t&&(ac.set(t,e),lc.set(e,t)),e}var Ti=t=>lc.get(t);function Wh(t,e,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(t,e),c=Qe(s);return n&&s.addEventListener("upgradeneeded",a=>{n(Qe(s.result),a.oldVersion,a.newVersion,Qe(s.transaction),a)}),r&&s.addEventListener("blocked",a=>r(a.oldVersion,a.newVersion,a)),c.then(a=>{i&&a.addEventListener("close",()=>i()),o&&a.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),c}var rx=["get","getKey","getAll","getAllKeys","count"],nx=["put","add","delete","clear"],fc=new Map;function qh(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(fc.get(e))return fc.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=nx.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||rx.includes(r)))return;let i=async function(s,...c){let a=this.transaction(s,o?"readwrite":"readonly"),u=a.store;return n&&(u=u.index(c.shift())),(await Promise.all([u[r](...c),o&&a.done]))[0]};return fc.set(e,i),i}Vh(t=>({...t,get:(e,r,n)=>qh(e,r)||t.get(e,r,n),has:(e,r)=>!!qh(e,r)||t.has(e,r)}));var dc="0.13.4-dev";var Kh=dc.match(/^([^.]*\.[^.]*)/);if(!Kh)throw new Error("invalid version: "+dc);var Di=Kh[0],hc=class{constructor(e){k(this,"STORAGE_VERSION",Di);k(this,"name");this.name=e}},Ii=class extends hc{constructor(){super(...arguments);k(this,"tag","header-base")}makeHeader({car:r,key:n}){return Bi({car:r,key:n})}parseHeader(r){return Ci(r)}},Li=class{constructor(e){k(this,"tag","car-base");k(this,"STORAGE_VERSION",Di);k(this,"loader");this.loader=e}};var Ni=class{constructor(e){k(this,"tag","rwal-base");k(this,"STORAGE_VERSION",Di);k(this,"loader");k(this,"ready");k(this,"walState",{operations:[],noLoaderOps:[],fileOperations:[]});k(this,"processing");this.loader=e,this.ready=(async()=>{let r=await this.load().catch(n=>(console.error("error loading wal",n),null));this.walState.operations=r?.operations||[],this.walState.fileOperations=r?.fileOperations||[]})()}async enqueue(e,r){await this.ready,r.noLoader?this.walState.noLoaderOps.push(e):this.walState.operations.push(e),await this.save(this.walState),r.noLoader||this._process()}async enqueueFile(e,r=!1){await this.ready,this.walState.fileOperations.push({cid:e,public:r})}async _process(){if(await this.ready,!this.loader.remoteCarStore)return;if(this.processing)return this.processing;let e=(async()=>{await this._int_process()})();this.processing=e;try{await e}finally{this.processing=void 0}(this.walState.operations.length||this.walState.fileOperations.length||this.walState.noLoaderOps.length)&&setTimeout(()=>void this._process(),0)}async _int_process(){if(!this.loader.remoteCarStore)return;let e=(async()=>{let r=[...this.walState.operations],n=[...this.walState.fileOperations],o=[],i=[...this.walState.noLoaderOps],s=xn(5);if(r.length+n.length+i.length!==0){for(let c of i){let a=s(async()=>{let u=await this.loader.carStore.load(c.car).catch(()=>null);if(!u)throw new Error(`missing car ${c.car.toString()}`);await this.loader.remoteCarStore.save(u),this.walState.noLoaderOps=this.walState.noLoaderOps.filter(l=>l!==c)});o.push(a)}for(let c of r){let a=s(async()=>{let u=await this.loader.carStore.load(c.car).catch(()=>null);if(!u)throw new Error(`missing car ${c.car.toString()}`);await this.loader.remoteCarStore.save(u),this.walState.operations=this.walState.operations.filter(l=>l!==c)});o.push(a)}if(n.length){let c=this.loader;for(let{cid:a,public:u}of n){let l=s(async()=>{let d=await c.fileStore.load(a);await c.remoteFileStore?.save(d,{public:u}),this.walState.fileOperations=this.walState.fileOperations.filter(m=>m.cid!==a)});o.push(l)}}try{let a=(await Promise.allSettled(o)).filter(u=>u.status==="rejected");if(a.length)throw console.error("error uploading",a),a[0].reason;if(r.length){let u=r[r.length-1];await this.loader.remoteMetaStore?.save(u).catch(l=>{throw console.error("error saving remote meta",l),this.walState.operations.push(u),l})}}finally{await this.save(this.walState)}}})();this.loader.remoteMetaLoading=e,await e}};var jr=class extends Li{constructor(){super(...arguments);k(this,"tag","car-browser-idb");k(this,"idb",null)}async _withDB(r){if(!this.idb){let n=`fp.${this.STORAGE_VERSION}.${this.loader.keyId}.${this.loader.name}`;this.idb=await Wh(n,1,{upgrade(o){o.createObjectStore("cars")}})}return await r(this.idb)}async load(r){return await this._withDB(async n=>{let i=await n.transaction(["cars"],"readonly").objectStore("cars").get(r.toString());if(!i)throw new Error(`missing idb block ${r.toString()}`);return{cid:r,bytes:i}})}async save(r){return await this._withDB(async n=>{let o=n.transaction(["cars"],"readwrite");return await o.objectStore("cars").put(r.bytes,r.cid.toString()),await o.done})}async remove(r){return await this._withDB(async n=>{let o=n.transaction(["cars"],"readwrite");return await o.objectStore("cars").delete(r.toString()),await o.done})}},Ui=class extends Ni{constructor(){super(...arguments);k(this,"tag","wal-browser-ls")}headerKey(r){return`fp.${this.STORAGE_VERSION}.wal.${this.loader.name}.${r}`}async load(r="main"){try{let n=localStorage.getItem(this.headerKey(r));return n?Ci(n):null}catch{return null}}async save(r,n="main"){try{let o=Bi(r);localStorage.setItem(this.headerKey(n),o)}catch{}}},Pi=class extends Ii{constructor(){super(...arguments);k(this,"tag","header-browser-ls")}headerKey(r){return`fp.${this.STORAGE_VERSION}.meta.${this.name}.${r}`}async load(r="main"){try{let n=localStorage.getItem(this.headerKey(r));return n?[this.parseHeader(n)]:null}catch{return null}}async save(r,n="main"){try{let o=this.headerKey(n),i=this.makeHeader(r);return localStorage.setItem(o,i),null}catch{return null}}};function Qh(t,e){return t.some(r=>r.equals(e))}function Gh(t,e=[]){let r=new Map;for(let n of t)Qh(e,n)||r.set(n.toString(),n);return[...r.values()]}function ox(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Vr=class{constructor(e,r){k(this,"name");k(this,"opts",{});k(this,"remoteMetaLoading");k(this,"remoteMetaStore");k(this,"remoteCarStore");k(this,"remoteWAL");k(this,"metaStore");k(this,"carStore");k(this,"carLog",[]);k(this,"carReaders",new Map);k(this,"ready");k(this,"key");k(this,"keyId");k(this,"getBlockCache",new Map);k(this,"committing");this.name=e,this.opts=r||this.opts,this.metaStore=new Pi(this.name),this.carStore=new jr(this),this.remoteWAL=new Ui(this),this.ready=Promise.resolve().then(async()=>{if(!this.metaStore||!this.carStore||!this.remoteWAL)throw new Error("stores not initialized");let n=this.opts.meta?[this.opts.meta]:await this.metaStore.load("main");n&&await this.handleDbMetasFromStore(n)})}async snapToCar(e){await this.ready,typeof e=="string"&&(e=V.parse(e));let r=await this.loadCarHeaderFromMeta({car:e,key:this.key||null});this.carLog=[e,...r.cars],await this.getMoreReaders(r.cars),await this._applyCarHeader(r,!0)}async handleDbMetasFromStore(e){for(let r of e)await this.mergeDbMetaIntoClock(r)}async mergeDbMetaIntoClock(e){if(e.key&&await this.setKey(e.key),Qh(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Gh([e.car,...this.carLog,...r.cars],r.compact)],await this._applyCarHeader(r)}async ingestKeyFromMeta(e){let{key:r}=e;r&&await this.setKey(r)}async loadCarHeaderFromMeta({car:e}){let r=await this.loadCar(e);return await _h(r)}async _getKey(){return this.key?this.key:(this.opts.public||(mi()?await this.setKey(ox(gi(32))):console.warn("missing crypto module, using public mode")),this.key)}async commit(e,r,n={noLoader:!1,compact:!1}){this.committing&&await this.committing,this.committing=this._commitInternal(e,r,n);let o=await this.committing;return this.committing=void 0,o}async _commitInternal(e,r,n={noLoader:!1,compact:!1}){await this.ready;let o=this.makeCarHeader(r,this.carLog,!!n.compact),i=[];if(o.files)i=o.files;else{let l=await Ah(o);await e.put(l.cid,l.bytes),i=[l.cid]}let s=n.public?null:await this._getKey(),{cid:c,bytes:a}=s?await Oh(s,i[0],e):await yi(i,e);if(pc(r))return await this.fileStore.save({cid:c,bytes:a}),await this.remoteWAL.enqueueFile(c,n.public),c;await this.carStore.save({cid:c,bytes:a});let u={car:c,key:s||null};if(await this.remoteWAL.enqueue(u,n),await this.metaStore.save(u),n.compact){let l=o;this.carLog=[...Gh([c,...this.carLog],l.compact)],(async()=>{this.remoteMetaLoading&&await this.remoteMetaLoading;for(let d of l.compact)await this.carStore.remove(d)})()}else this.carLog.unshift(c);return c}async getBlock(e){await this.ready;let r=e.toString();if(this.getBlockCache.has(r))return this.getBlockCache.get(r);let n=await Promise.any(this.carLog.map(async o=>{let i=await this.loadCar(o);if(!i)throw new Error(`missing car reader ${o.toString()}`);let s=await i.get(e);if(s)return s;throw new Error(`block not in reader: ${e.toString()}`)})).catch(()=>{});return n&&this.getBlockCache.set(r,n),n}async loadCar(e){if(!this.carStore)throw new Error("car store not initialized");return await this.storesLoadCar(e,this.carStore,this.remoteCarStore)}async storesLoadCar(e,r,n,o){let i=e.toString();return this.carReaders.has(i)||this.carReaders.set(i,(async()=>{let s=null;try{s=await r.load(e)}catch{if(n){let l=await n.load(e);l&&(await r.save(l),s=l)}}if(!s)throw new Error(`missing car file ${i}`);let c=await Vt.fromBytes(s.bytes),a=o?Promise.resolve(c):this.ensureDecryptedReader(c);return this.carReaders.set(i,a),a})().catch(s=>{throw this.carReaders.delete(i),s})),this.carReaders.get(i)}async ensureDecryptedReader(e){let r=await this._getKey();if(!r)return e;let{blocks:n,root:o}=await Rh(r,e);return{getRoots:()=>[o],get:n.get.bind(n)}}async setKey(e){if(this.key&&this.key!==e)throw new Error("key mismatch");this.key=e;let r=mi();if(!r)throw new Error("missing crypto module");let n=r.subtle,i=new TextEncoder().encode(e),s=await n.digest("SHA-256",i),c=Array.from(new Uint8Array(s));this.keyId=c.map(a=>a.toString(16).padStart(2,"0")).join("")}async getMoreReaders(e){let r=xn(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};k(Vr,"defaultHeader");var qr=W(tp(),1);var Fi=class extends Jt{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return jn(r)}},Xt=class extends Fi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},Yt=class extends Fi{constructor(e,r){if(!e.address)throw new Error("Cannot create MapBranchEntry without address");super(e,r)}async encodeNode(){return[this.key,await this.address]}},rp=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},np=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},Zt=class extends zr{get(e){return rp(this,e)}getMany(e){return np(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...op,...r},n)}},er=class extends Rr{get(e){return rp(this,e)}getMany(e){return np(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...op,...r},n)}},op={LeafClass:Zt,LeafEntryClass:Xt,BranchClass:er,BranchEntryClass:Yt},ip=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||Zt,a=s.LeafEntryClass||Xt,u=s.BranchClass||er,l=s.BranchEntryClass||Yt,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=dx({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},sp=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s,compare:c,...a})=>{s||(n=n.sort(({key:d},{key:m})=>c(d,m)));let u=ip(t,e,r,o,i,c,a),l={list:n,codec:o,hasher:i,chunker:r,getNode:u,sorted:s,compare:c,cache:e,LeafClass:a.LeafClass||Zt,LeafEntryClass:a.LeafEntryClass||Xt,BranchClass:a.BranchClass||er,BranchEntryClass:a.BranchEntryClass||Yt};return ki(l)},ap=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>ip(e,r,n,o,i,s,c)(t);function dx({chunker:t,cache:e,getNode:r,codec:n,hasher:o,compare:i,LeafEntryClass:s,LeafClass:c,BranchEntryClass:a,BranchClass:u}){let l={codec:n,hasher:o};return d=>{let{value:m}=d,f={chunker:t,cache:e,block:d,getNode:r,codec:n,hasher:o,compare:i},h,p;if(m.leaf)h=m.leaf.map(([b,v])=>new s({key:b,value:v},l)),p=c;else if(m.branch){let[b,v]=m.branch;f.distance=b,h=v.map(([E,T])=>new a({key:E,address:T},l)),p=u}else throw new Error("Unknown block data, does not match schema");let w=new St({entries:h,closed:m.closed}),g=new p({entryList:w,...f});return e.set(g),g}}var hx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Qt(r,o);return s!==0?s:px(n,i)},px=(t,e)=>{if(Number.isNaN(t))return-1;if(Number.isNaN(e))throw new Error("ref may not be Infinity or NaN");return Number.isFinite(t)?Qt(t,e):1},cp=async(t,e)=>{let r=[e,NaN],n=[e,1/0],{result:o,cids:i}=await t.getRangeEntries(r,n);return{result:o.map(s=>{let[c,a]=s.key;return{id:a,key:c,row:s.value}}),cids:i}},up=async(t,e,r)=>{e=[e,NaN],r=[r,1/0];let{result:n,cids:o}=await t.getRangeEntries(e,r);return{result:n.map(s=>{let[c,a]=s.key;return{id:a,key:c,row:s.value}}),cids:o}},mc=class extends Zt{get(e){return cp(this,e)}range(e,r){return up(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...wc,...r},n)}},gc=class extends er{get(e){return cp(this,e)}range(e,r){return up(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...wc,...r},n)}},yx=mc,mx=gc,wc={LeafClass:yx,BranchClass:mx,LeafEntryClass:Xt,BranchEntryClass:Yt},lp={...wc,compare:hx},fp=t=>(t={...lp,...t},sp(t)),bc=t=>(t={...lp,...t},ap(t));var tr=class{constructor(){k(this,"cid",null);k(this,"root",null)}},wx=(t,e)=>{if(Number.isNaN(t))return-1;if(Number.isNaN(e))throw new Error("ref may not be Infinity or NaN");return t===1/0?1:Qt(t,e)},bx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Qt(r,o);return s!==0?s:wx(n,i)},kc={cache:$r,chunker:Vn(30),codec:q,hasher:de,compare:bx},vc={cache:$r,chunker:Vn(30),codec:q,hasher:de,compare:Qt};function dp(t,e){let r=[];return t.forEach(({key:n,value:o,del:i})=>{if(i||!o)return;let s=!1,c=e({_id:n,...o},(a,u)=>{s=!0,!(typeof a>"u")&&r.push({key:[qr.default.encode(a),n],value:u||null})});!s&&c&&r.push({key:[qr.default.encode(c),n],value:null})}),r}function xc(t){return async e=>{let r=await t.get(e);if(!r)throw new Error(`Missing block ${e.toString()}`);let{cid:n,bytes:o}=r;return pi({cid:n,bytes:o,hasher:de,codec:q})}}async function Ec(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await bc({cid:e.cid,get:xc(t),...n});else{let s=null,c=null;for await(let a of await fp({get:xc(t),list:r,...n})){let u=await a.block;await t.put(u.cid,u.bytes),s=u,c=a}if(!c||!s)throw new Error("failed to create index");return{root:c,cid:s.cid}}let{root:o,blocks:i}=await e.root.bulk(r);if(o){for await(let s of i)await t.put(s.cid,s.bytes);return{root:o,cid:(await o.block).cid}}else return{root:null,cid:null}}async function Sc(t,e,r){return await bc({cid:e,get:xc(t),...r})}async function rr(t,e,r){return r.descending&&(e.result=e.result.reverse()),r.limit&&(e.result=e.result.slice(0,r.limit)),r.includeDocs&&(e.result=await Promise.all(e.result.map(async n=>{let o=await t.get(n.id),i=o?{_id:n.id,...o.doc}:null;return{...n,doc:i}}))),{rows:e.result.map(n=>(n.key=qr.default.decode(n.key),n.row&&!n.value&&(n.value=n.row,delete n.row),n))}}function Ac(t){return t.map(e=>qr.default.encode(e))}function _c(t){return qr.default.encode(t)}function qn({_crdt:t},e,r,n){if(r&&n)throw new Error("cannot provide both mapFn and meta");if(r&&r.constructor.name!=="Function")throw new Error("mapFn must be a function");if(t.indexers.has(e))t.indexers.get(e).applyMapFn(e,r,n);else{let o=new Bc(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var Bc=class{constructor(e,r,n,o){k(this,"blocks");k(this,"crdt");k(this,"name",null);k(this,"mapFn",null);k(this,"mapFnString","");k(this,"byKey",new tr);k(this,"byId",new tr);k(this,"indexHead");k(this,"includeDocsDefault",!1);k(this,"initError",null);k(this,"ready");if(this.blocks=e.indexBlocks,this.crdt=e,this.applyMapFn(r,n,o),!(this.mapFnString||this.initError))throw new Error("missing mapFnString");this.ready=this.blocks.ready.then(()=>{})}applyMapFn(e,r,n){if(r&&n)throw new Error("cannot provide both mapFn and meta");if(this.name&&this.name!==e)throw new Error("cannot change name");this.name=e;try{if(n){if(this.indexHead&&this.indexHead.map(i=>i.toString()).join()!==n.head.map(i=>i.toString()).join())throw new Error("cannot apply meta to existing index");this.mapFnString?this.mapFnString!==n.map?console.log("cannot apply different mapFn meta: old mapFnString",this.mapFnString,"new mapFnString",n.map):(this.byId.cid=n.byId,this.byKey.cid=n.byKey,this.indexHead=n.head):(this.mapFnString=n.map,this.byId.cid=n.byId,this.byKey.cid=n.byKey,this.indexHead=n.head)}else if(this.mapFn){if(r&&this.mapFn.toString()!==r.toString())throw new Error("cannot apply different mapFn app2")}else{if(r||(r=xx(e)),this.mapFnString){if(this.mapFnString!==r.toString())throw new Error("cannot apply different mapFn app")}else this.mapFnString=r.toString();this.mapFn=r}let o=/=>\s*(.*)/.test(this.mapFnString);this.includeDocsDefault=o}catch(o){this.initError=o}}async query(e={}){if(await this._updateIndex(),await this._hydrateIndex(),!this.byKey.root)return await rr(this.crdt,{result:[]},e);if(this.includeDocsDefault&&e.includeDocs===void 0&&(e.includeDocs=!0),e.range){let{result:o,...i}=await this.byKey.root.range(...Ac(e.range));return await rr(this.crdt,{result:o,...i},e)}if(e.key){let o=_c(e.key);return await rr(this.crdt,await this.byKey.root.get(o),e)}if(Array.isArray(e.keys))return{rows:(await Promise.all(e.keys.map(async i=>{let s=_c(i);return(await rr(this.crdt,await this.byKey.root.get(s),e)).rows}))).flat()};if(e.prefix){Array.isArray(e.prefix)||(e.prefix=[e.prefix]);let o=[...e.prefix,NaN],i=[...e.prefix,1/0],s=Ac([o,i]);return await rr(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await rr(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new tr,this.byKey=new tr,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await Sc(this.blocks,this.byId.cid,vc),this.byKey.root=await Sc(this.blocks,this.byKey.cid,kc))}async _updateIndex(){if(await this.ready,this.initError)throw this.initError;if(!this.mapFn)throw new Error("No map function defined");let e,r;if(!this.indexHead||this.indexHead.length===0?{result:e,head:r}=await this.crdt.allDocs():{result:e,head:r}=await this.crdt.changes(this.indexHead),e.length===0)return this.indexHead=r,{byId:this.byId,byKey:this.byKey};let n=[],o=[];if(this.byId.root){let a=e.map(({key:l})=>l),{result:u}=await this.byId.root.getMany(a);n=u.map(l=>({key:l,del:!0})),o=u.map(l=>({key:l[1],del:!0}))}let i=dp(e,this.mapFn),s=i.map(({key:a})=>({key:a[1],value:a})),c=new Map;for(let[a,u]of this.crdt.indexers)u.indexHead&&c.set(a,{byId:u.byId.cid,byKey:u.byKey.cid,head:u.indexHead,map:u.mapFnString,name:u.name});return await this.blocks.transaction(async a=>(this.byId=await Ec(a,this.byId,o.concat(s),vc),this.byKey=await Ec(a,this.byKey,n.concat(i),kc),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function xx(t){return e=>{if(e[t])return e[t]}}var Ri=class Ri extends Vr{constructor(r,n,o){super(r,o);k(this,"crdt");k(this,"defaultHeader",Ri.defaultHeader);this.crdt=n}async _applyCarHeader(r){for(let[n,o]of Object.entries(r.indexes))qn({_crdt:this.crdt},n,void 0,o)}makeCarHeader({indexes:r},n,o=!1){return o?{indexes:r,cars:[],compact:n}:{indexes:r,cars:n,compact:[]}}};k(Ri,"defaultHeader",{cars:[],compact:[],indexes:new Map});var Mi=Ri,zi=class zi extends Vr{constructor(r,n,o){super(r,o);k(this,"defaultHeader",zi.defaultHeader);k(this,"clock");k(this,"remoteFileStore");k(this,"fileStore");this.fileStore=new jr(this),this.clock=n}async loadFileCar(r,n=!1){return await this.storesLoadCar(r,this.fileStore,this.remoteFileStore,n)}async _applyCarHeader(r,n=!1){n?await this.clock.applyHead(null,r.head,this.clock.head):await this.clock.applyHead(null,r.head,[])}makeCarHeader(r,n,o=!1){if(pc(r)){let i=[];for(let[,s]of Object.entries(r.files))i.push(s.cid);return{files:i}}else{let{head:i}=r;return o?{head:i,cars:[],compact:n}:{head:i,cars:n,compact:[]}}}};k(zi,"defaultHeader",{cars:[],compact:[],head:[]});var Oi=zi;function pc(t){return t&&t.files!==void 0}var _t=class extends _e{constructor(r){super();k(this,"parent");this.parent=r}async get(r){return this.parent.get(r)}async superGet(r){return super.get(r)}},$i=class{constructor(e,r,n){k(this,"ready");k(this,"name",null);k(this,"loader",null);k(this,"opts",{});k(this,"transactions",new Set);if(this.opts=n||this.opts,e){if(this.name=e,!r)throw new Error("missing loader");this.loader=r,this.ready=this.loader.ready}else this.ready=Promise.resolve()}async put(){throw new Error("use a transaction to put")}async get(e){if(!e)throw new Error("required cid");for(let r of this.transactions){let n=await r.superGet(e);if(n)return n}if(this.loader)return await this.loader.getBlock(e)}async commitCompaction(e,r){return this.transactions.clear(),this.transactions.add(e),await this.loader?.commit(e,{head:r},{compact:!0})}async*entries(){let e=new Set;for(let r of this.transactions)for await(let n of r.entries())e.has(n.cid.toString())||(e.add(n.cid.toString()),yield n)}async executeTransaction(e,r){let n=new _t(this);this.transactions.add(n);let o=await e(n),{car:i,done:s}=await r(n,o);return i?{...s,car:i}:s}},Hi=class extends $i{constructor(e,r,n){e?super(e,new Mi(e,r,n),n):super(null)}async transaction(e,r){return this.executeTransaction(e,async(n,o)=>(r.set(o.name,o),{car:await this.loader?.commit(n,{indexes:r}),done:o}))}},ji=class extends $i{constructor(e,r,n){e?super(e,new Oi(e,r,n),n):super(null)}async transaction(e,r,n={noLoader:!1}){return this.executeTransaction(e,async(o,i)=>({car:await this.loader?.commit(o,i,n),done:i}))}},Vi=class{constructor(e){k(this,"blocks");k(this,"loader",null);k(this,"cids",new Set);this.blocks=e,this.loader=e.loader}async get(e){return this.cids.add(e),await this.blocks.get(e)}};var Tc=({name:t,code:e,encode:r})=>new Cc(t,e,r),Cc=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Pt(this.code,r):r.then(n=>Pt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function qi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*kx(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=j.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*Ic(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*Ic(e,t)}}function*Ic(t,e){if(t==null||t instanceof Uint8Array)return;let r=j.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*kx(i,o)}}function*vx(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!j.asCID(n)&&(yield*Lc(n,o))}else yield*Lc(e,t)}function*Lc(t,e){if(!(t==null||typeof t!="object"))for(let[r,n]of Object.entries(t)){let o=[...e,r];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&!j.asCID(n)&&(yield*vx(o,n))}}function Ex(t,e){let r=t;for(let[n,o]of e.entries()){if(r=r[o],r==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=j.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var Me=class{constructor({cid:e,bytes:r,value:n}){if(!e||!r||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=r,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:qi(),bytes:qi(),value:qi(),asBlock:qi()})}links(){return Ic(this.value,[])}tree(){return Lc(this.value,[])}get(e="/"){return Ex(this.value,e.split("/").filter(Boolean))}};async function Wi({value:t,codec:e,hasher:r}){if(typeof t>"u")throw new Error('Missing required argument "value"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.encode(t),o=await r.digest(n),i=j.create(1,e.code,o);return new Me({value:t,bytes:n,cid:i})}async function Ki({bytes:t,codec:e,hasher:r}){if(!t)throw new Error('Missing required argument "bytes"');if(!e||!r)throw new Error("Missing required argument: codec or hasher");let n=e.decode(t),o=await r.digest(t),i=j.create(1,e.code,o);return new Me({value:n,bytes:t,cid:i})}var Dc={};Y(Dc,{sha256:()=>ut,sha512:()=>Sx});var pp=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ut=Tc({name:"sha2-256",code:18,encode:pp("SHA-256")}),Sx=Tc({name:"sha2-512",code:19,encode:pp("SHA-512")});async function Kn(t,e,r){let n=new Je(t),o=new Map(e.map(s=>[s.toString(),s]));if(o.has(r.toString()))return e;let i=!1;for(let s of e)await yp(n,r,s)&&(o.delete(s.toString()),o.set(r.toString(),r),i=!0);if(i)return[...o.values()];for(let s of e)if(await yp(n,s,r))return e;return e.concat(r)}var Wn=class extends Me{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(e,r){return Ax({data:e,parents:r??[]})}},Je=class{constructor(e){this._blocks=e}async get(e){let r=await this._blocks.get(e);if(!r)throw new Error(`missing block: ${e}`);return _x(r.bytes)}};async function Ax(t){let{cid:e,bytes:r}=await Wi({value:t,codec:q,hasher:ut});return new Me({cid:e,value:t,bytes:r})}async function _x(t){let{cid:e,value:r}=await Ki({bytes:t,codec:q,hasher:ut});return new Me({cid:e,value:r,bytes:t})}async function yp(t,e,r){if(e.toString()===r.toString())return!0;let[{value:n},{value:o}]=await Promise.all([t.get(e),t.get(r)]),i=[...n.parents],s=new Set;for(;i.length;){let c=i.shift();if(!c)break;if(c.toString()===r.toString())return!0;if(o.parents.some(u=>c.toString()===u.toString())||s.has(c.toString()))continue;s.add(c.toString());let{value:a}=await t.get(c);i.push(...a.parents)}return!1}async function*Nc(t,e,r={}){let n=r.renderNodeLabel??(a=>Bx(a.cid)),o=new Je(t);yield"digraph clock {",yield' node [shape=point fontname="Courier"]; head;';let i=await Promise.all(e.map(a=>o.get(a))),s=[],c=new Set;for(let a of i){c.add(a.cid.toString()),yield` node [shape=oval fontname="Courier"]; ${a.cid} [label="${n(a)}"];`,yield` head -> ${a.cid};`;for(let u of a.value.parents)yield` ${a.cid} -> ${u};`;s.push(...a.value.parents)}for(;s.length;){let a=s.shift();if(!a)break;if(c.has(a.toString()))continue;c.add(a.toString());let u=await o.get(a);yield` node [shape=oval]; ${a} [label="${n(u)}" fontname="Courier"];`;for(let l of u.value.parents)yield` ${a} -> ${l};`;s.push(...u.value.parents)}yield"}"}var Bx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var nr=class extends Me{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(){return Xe([])}};async function Xe(t,e){let{cid:r,bytes:n}=await Wi({value:t,codec:q,hasher:ut});return new nr({cid:r,value:t,bytes:n,prefix:e??""})}async function mp(t,e){let{cid:r,value:n}=await Ki({bytes:t,codec:q,hasher:ut});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new nr({cid:r,value:n,bytes:t,prefix:e??""})}var or=class{constructor(e){this._blocks=e}async get(e,r=""){let n=await this._blocks.get(e);if(!n)throw new Error(`missing block: ${e}`);return mp(n.bytes,r)}};function Uc(t,e){if(!t.length)return[e];let r=[];for(let[n,[o,i]]of t.entries()){if(e[0]===o){if(Array.isArray(e[1]))Array.isArray(i)&&i[1]!=null&&e[1][1]==null?r.push([o,[e[1][0],i[1]]]):r.push(e);else{let s=Array.isArray(i)?[o,[i[0],e[1]]]:e;r.push(s)}for(let s=n+1;s<t.length;s++)r.push(t[s]);return r}if(n===0&&e[0]<o){r.push(e);for(let s=n;s<t.length;s++)r.push(t[s]);return r}if(n>0&&e[0]>t[n-1][0]&&e[0]<o){r.push(e);for(let s=n;s<t.length;s++)r.push(t[s]);return r}r.push([o,i])}return r.push(e),r}function gp(t,e){let r=t.findIndex(([i])=>e===i);if(r===-1)throw new Error(`key not found in shard: ${e}`);let n=r,o;for(;;){if(o=t[n][0].slice(0,-1),o.length)for(;;){let i=t.filter(s=>s[0].startsWith(o));if(i.length>1)return{prefix:o,matches:i};if(o=o.slice(0,-1),!o.length)break}if(n++,n>=t.length&&(n=0),n===r)return}}var Gi=64,Tx=512*1024;async function Gn(t,e,r,n,o={}){let i=new or(t),s=await i.get(e),c=await Qi(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Gi){let h=Array.from(Array(Math.ceil(u.length/Gi)),(w,g)=>{let b=g*Gi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Gi)}}),p=await Xe([[h[h.length-1].skey,n]],h[h.length-1].prefix);d.push(p);for(let w=h.length-2;w>0;w--)p=await Xe([[h[w].skey,[p.cid]]],h[w].prefix),d.push(p);l=[h[0].skey,[p.cid]]}let m=Uc(a.value,l),f=await Xe(m,a.prefix);if(f.bytes.length>(o.maxShardSize??Tx)){let h=gp(m,l[0]);if(!h)throw new Error("shard limit reached");let{prefix:p,matches:w}=h,g=await Xe(w.filter(([E])=>E!==p).map(([E,T])=>[E.slice(p.length),T]),a.prefix+p);d.push(g);let b,v=w.find(([E])=>E===p);if(v){if(Array.isArray(v[1]))throw new Error(`expected "${p}" to be a shard value but found a shard link`);b=[g.cid,v[1]]}else b=[g.cid];m=m.filter(E=>w.every(T=>E[0]!==T[0])),m=Uc(m,[p,b]),f=await Xe(m,a.prefix)}d.push(f);for(let h=c.length-2;h>=0;h--){let p=c[h],w=f.prefix.slice(p.prefix.length),g=p.value.map(b=>{let[v,E]=b;if(v!==w)return b;if(!Array.isArray(E))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return E[1]==null?[v,[f.cid]]:[v,[f.cid,E[1]]]});f=await Xe(g,p.prefix),d.push(f)}return{root:d[d.length-1].cid,additions:d,removals:c}}async function wp(t,e,r){let n=new or(t),o=await n.get(e),i=await Qi(n,o,r),s=i[i.length-1],c=r.slice(s.prefix.length),a=s.value.find(([u])=>u===c);if(a)return Array.isArray(a[1])?a[1][1]:a[1]}async function Pc(t,e,r){let n=new or(t),o=await n.get(e),i=await Qi(n,o,r),s=i[i.length-1],c=r.slice(s.prefix.length),a=s.value.findIndex(([h])=>h===c);if(a===-1)return{root:e,additions:[],removals:[]};let u=s.value[a];if(Array.isArray(u[1])&&u[1][1]==null)return{root:e,additions:[],removals:[]};let l=[],d=[...i],m=[...s.value];if(Array.isArray(u[1]))m[a]=[u[0],[u[1][0]]];else for(m.splice(a,1);!m.length;){let h=i[i.length-1],p=i[i.length-2];if(!p)break;i.pop(),m=p.value.filter(w=>Array.isArray(w[1])?w[1][0].toString()!==h.cid.toString():!0)}let f=await Xe(m,i[i.length-1].prefix);l.push(f);for(let h=i.length-2;h>=0;h--){let p=i[h],w=f.prefix.slice(p.prefix.length),g=p.value.map(b=>{let[v,E]=b;if(v!==w)return b;if(!Array.isArray(E))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return E[1]==null?[v,[f.cid]]:[v,[f.cid,E[1]]]});f=await Xe(g,p.prefix),l.push(f)}return{root:l[l.length-1].cid,additions:l,removals:d}}async function*bp(t,e,r={}){let{prefix:n}=r,o=new or(t),i=await o.get(e);yield*async function*s(c){for(let a of c.value){let u=c.prefix+a[0];if(Array.isArray(a[1])){if(a[1][1]&&(!n||n&&u.startsWith(n))&&(yield[u,a[1][1]]),n&&(n.length<=u.length&&!u.startsWith(n)||n.length>u.length&&!n.startsWith(u)))continue;yield*s(await o.get(a[1][0],u))}else{if(n&&!u.startsWith(n))continue;yield[u,a[1]]}}}(i)}async function Qi(t,e,r){for(let[n,o]of e.value){if(r===n)return[e];if(r.startsWith(n)&&Array.isArray(o)){let i=await Qi(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function xp(t,e,r,n,o){let i=new _e;if(t=new Mt(i,t),!e.length){let g=await nr.create();i.putSync(g.cid,g.bytes);let b=await Gn(t,g.cid,r,n,o),v={type:"put",root:b.root,key:r,value:n},E=await Wn.create(v,e);return e=await Kn(t,e,E.cid),{root:b.root,additions:[g,...b.additions],removals:b.removals,head:e,event:E}}let s=new Je(t),c=await Mc(s,e);if(!c)throw new Error("failed to find common ancestor event");let a=await s.get(c),{root:u}=a.value.data,l=await vp(s,e,c),d=new Map,m=new Map;for(let{value:g}of l){if(!["put","del"].includes(g.data.type))throw new Error(`unknown event type: ${g.data.type}`);let b=g.data.type==="put"?await Gn(t,u,g.data.key,g.data.value):await Pc(t,u,g.data.key);u=b.root;for(let v of b.additions)i.putSync(v.cid,v.bytes),d.set(v.cid.toString(),v);for(let v of b.removals)m.set(v.cid.toString(),v)}let f=await Gn(t,u,r,n,o);for(let g of f.additions)i.putSync(g.cid,g.bytes),d.set(g.cid.toString(),g);for(let g of f.removals)m.set(g.cid.toString(),g);let h={type:"put",root:f.root,key:r,value:n},p=await Wn.create(h,e);i.putSync(p.cid,p.bytes),e=await Kn(t,e,p.cid);let w=f.root.toString();for(let g of m.keys())d.has(g)&&g!==w&&(d.delete(g),m.delete(g));return{root:f.root,additions:[...d.values()],removals:[...m.values()],head:e,event:p}}async function Wr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new _e;t=new Mt(r,t);let n=new Je(t);if(e.length===1){let d=await n.get(e[0]),{root:m}=d.value.data;return{root:m,additions:[],removals:[]}}let o=await Mc(n,e);if(!o)throw new Error("failed to find common ancestor event");let i=await n.get(o),{root:s}=i.value.data,c=await vp(n,e,o),a=new Map,u=new Map;for(let{value:d}of c){if(!["put","del"].includes(d.data.type))throw new Error(`unknown event type: ${d.data.type}`);let m=d.data.type==="put"?await Gn(t,s,d.data.key,d.data.value):await Pc(t,s,d.data.key);s=m.root;for(let f of m.additions)r.putSync(f.cid,f.bytes),a.set(f.cid.toString(),f);for(let f of m.removals)u.set(f.cid.toString(),f)}let l=s.toString();for(let d of u.keys())a.has(d)&&d!==l&&(a.delete(d),u.delete(d));return{root:s,additions:[...a.values()],removals:[...u.values()]}}async function kp(t,e,r){if(!e.length)return;let n=await Wr(t,e);return n.additions.length&&(t=new Mt(new _e(n.additions),t)),wp(t,n.root,r)}async function*Fc(t,e,r){if(!e.length)return;let n=await Wr(t,e);n.additions.length&&(t=new Mt(new _e(n.additions),t)),yield*bp(t,n.root,r)}async function Mc(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Lx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Dx(r);if(s)return s}if(!n)return}}async function Lx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:Mc(t,r.parents):e}function Dx(t){t=t.map(e=>[...e]);for(let e of t)for(let r of e){let n=!0;for(let o of t)if(e!==o&&(n=o.some(i=>String(i)===String(r)),!n))break;if(n)return r}}async function vp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>Ep(t,s,r)));for(let s of o)for(let{event:c,depth:a}of s){let u=n.get(c.cid.toString());u?u.weight+=a:n.set(c.cid.toString(),{event:c,weight:a})}let i=new Map;for(let{event:s,weight:c}of n.values()){let a=i.get(c);a?a.push(s):i.set(c,[s])}return Array.from(i).sort((s,c)=>c[0]-s[0]).flatMap(([,s])=>s.sort((c,a)=>String(c.cid)<String(a.cid)?-1:1))}async function Ep(t,e,r,n=0){let o=await t.get(e),i=[{event:o,depth:n}],{parents:s}=o.value;if(s.length===1&&String(s[0])===String(r))return i;let c=await Promise.all(s.map(a=>Ep(t,a,r,n+1)));return i.concat(...c)}var Zr={};Y(Zr,{DEFAULT_DIRECTORY_MODE:()=>Dy,DEFAULT_FILE_MODE:()=>Ly,NodeType:()=>F,code:()=>Xr,createAdvancedFile:()=>tk,createComplexFile:()=>nk,createDirectoryShard:()=>Fy,createEmptyFile:()=>Zx,createFileChunk:()=>ek,createFileShard:()=>rk,createFlatDirectory:()=>as,createRaw:()=>Ny,createShardedDirectory:()=>Py,createSimpleFile:()=>Uy,createSymlink:()=>Oy,cumulativeContentByteLength:()=>tt,cumulativeDagByteLength:()=>Yr,decode:()=>$y,decodeMetadata:()=>cr,encode:()=>zy,encodeAdvancedFile:()=>iu,encodeComplexFile:()=>su,encodeDirectory:()=>ls,encodeDirectoryMetadata:()=>lu,encodeFile:()=>My,encodeFileChunk:()=>ou,encodeFileShard:()=>ok,encodeHAMTShard:()=>au,encodeLink:()=>cs,encodeMetadata:()=>eo,encodeMode:()=>jy,encodeRaw:()=>nu,encodeSimpleFile:()=>us,encodeSymlink:()=>Ry,filesize:()=>ck,matchFile:()=>ak,name:()=>ru});var Nx=new TextDecoder;function Oc(t,e){let r=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=t.length)throw new Error("protobuf: unexpected end of data");let o=t[e++];if(r+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[r,e]}function Ji(t,e){let r;[r,e]=Oc(t,e);let n=e+r;if(r<0||n<0)throw new Error("protobuf: invalid length");if(n>t.length)throw new Error("protobuf: unexpected end of data");return[t.subarray(e,n),n]}function Sp(t,e){let r;return[r,e]=Oc(t,e),[r&7,r>>3,e]}function Ux(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=Sp(t,n),i===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=Ji(t,n)}else if(i===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Ji(t,n),e.Name=Nx.decode(s)}else if(i===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=Oc(t,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>r)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Ap(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=Sp(t,r),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(a===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,r]=Ji(t,r),n&&(o=!0)}else if(a===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let u;[u,r]=Ji(t,r),n.push(Ux(u))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${a}`)}if(r>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var Bp=new TextEncoder,_p=2**32,Px=2**31;function Fx(t,e){let r=e.length;if(typeof t.Tsize=="number"){if(t.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(t.Tsize))throw new Error("Tsize too large for encoding");r=Qn(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=Bp.encode(t.Name);r-=n.length,e.set(n,r),r=Qn(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=Qn(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function Cp(t){let e=Ox(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=Qn(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Fx(t.Links[o],r.subarray(0,n));n-=i,n=Qn(r,n,i)-1,r[n]=18}return r}function Mx(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Kr(r)}if(typeof t.Name=="string"){let r=Bp.encode(t.Name).length;e+=1+r+Kr(r)}return typeof t.Tsize=="number"&&(e+=1+Kr(t.Tsize)),e}function Ox(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Kr(r)}if(t.Links)for(let r of t.Links){let n=Mx(r);e+=1+n+Kr(n)}return e}function Qn(t,e,r){e-=Kr(r);let n=e;for(;r>=Px;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Kr(t){return t%2===0&&t++,Math.floor((Rx(t)+6)/7)}function Rx(t){let e=0;return t>=_p&&(t=Math.floor(t/_p),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+zx[t]}var zx=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var $x=["Data","Links"],Hx=["Hash","Name","Tsize"],Rc=new TextEncoder;function Ip(t,e){if(t===e)return 0;let r=t.Name?Rc.encode(t.Name):[],n=e.Name?Rc.encode(e.Name):[],o=r.length,i=n.length;for(let s=0,c=Math.min(o,i);s<c;++s)if(r[s]!==n[s]){o=r[s],i=n[s];break}return o<i?-1:i<o?1:0}function Tp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function jx(t){if(typeof t.asCID=="object"){let r=j.asCID(t);if(!r)throw new TypeError("Invalid DAG-PB form");return{Hash:r}}if(typeof t!="object"||Array.isArray(t))throw new TypeError("Invalid DAG-PB form");let e={};if(t.Hash){let r=j.asCID(t.Hash);try{r||(typeof t.Hash=="string"?r=j.parse(t.Hash):t.Hash instanceof Uint8Array&&(r=j.decode(t.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}r&&(e.Hash=r)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof t.Name=="string"&&(e.Name=t.Name),typeof t.Tsize=="number"&&(e.Tsize=t.Tsize),e}function zc(t){if((t instanceof Uint8Array||typeof t=="string")&&(t={Data:t}),typeof t!="object"||Array.isArray(t))throw new TypeError("Invalid DAG-PB form");let e={};if(t.Data!==void 0)if(typeof t.Data=="string")e.Data=Rc.encode(t.Data);else if(t.Data instanceof Uint8Array)e.Data=t.Data;else throw new TypeError("Invalid DAG-PB form");if(t.Links!==void 0)if(Array.isArray(t.Links))e.Links=t.Links.map(jx),e.Links.sort(Ip);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Lp(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!Tp(t,$x))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(t.Data!==void 0&&!(t.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(t.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<t.Links.length;e++){let r=t.Links[e];if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!Tp(r,Hx))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(r.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(r.Hash==null||!r.Hash["/"]||r.Hash["/"]!==r.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(r.Name!==void 0&&typeof r.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(r.Tsize!==void 0){if(typeof r.Tsize!="number"||r.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(r.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&Ip(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var ir=112;function Dp(t){Lp(t);let e={};return t.Links&&(e.Links=t.Links.map(r=>{let n={};return r.Hash&&(n.Hash=r.Hash.bytes),r.Name!==void 0&&(n.Name=r.Name),r.Tsize!==void 0&&(n.Tsize=r.Tsize),n})),t.Data&&(e.Data=t.Data),Cp(e)}function Ye(t){let e=Ap(t),r={};return e.Data&&(r.Data=e.Data),e.Links&&(r.Links=e.Links.map(n=>{let o={};try{o.Hash=j.decode(n.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(o.Name=n.Name),n.Tsize!==void 0&&(o.Tsize=n.Tsize),o})),r}var ft=W(By(),1),Qr=ft.default.Reader,eu=ft.default.Writer,N=ft.default.util,ie=ft.default.roots.unixfs||(ft.default.roots.unixfs={}),Jr=ie.Data=(()=>{function t(e){if(this.blocksizes=[],e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.Type=0,t.prototype.Data=N.newBuffer([]),t.prototype.filesize=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.blocksizes=N.emptyArray,t.prototype.hashType=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.fanout=N.Long?N.Long.fromBits(0,0,!0):0,t.prototype.mode=0,t.prototype.mtime=null,t.encode=function(r,n){if(n||(n=eu.create()),n.uint32(8).int32(r.Type),r.Data!=null&&Object.hasOwnProperty.call(r,"Data")&&n.uint32(18).bytes(r.Data),r.filesize!=null&&Object.hasOwnProperty.call(r,"filesize")&&n.uint32(24).uint64(r.filesize),r.blocksizes!=null&&r.blocksizes.length)for(var o=0;o<r.blocksizes.length;++o)n.uint32(32).uint64(r.blocksizes[o]);return r.hashType!=null&&Object.hasOwnProperty.call(r,"hashType")&&n.uint32(40).uint64(r.hashType),r.fanout!=null&&Object.hasOwnProperty.call(r,"fanout")&&n.uint32(48).uint64(r.fanout),r.mode!=null&&Object.hasOwnProperty.call(r,"mode")&&n.uint32(56).uint32(r.mode),r.mtime!=null&&Object.hasOwnProperty.call(r,"mtime")&&ie.UnixTime.encode(r.mtime,n.uint32(66).fork()).ldelim(),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.Data;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.Type=r.int32();break;case 2:i.Data=r.bytes();break;case 3:i.filesize=r.uint64();break;case 4:if(i.blocksizes&&i.blocksizes.length||(i.blocksizes=[]),(s&7)===2)for(var c=r.uint32()+r.pos;r.pos<c;)i.blocksizes.push(r.uint64());else i.blocksizes.push(r.uint64());break;case 5:i.hashType=r.uint64();break;case 6:i.fanout=r.uint64();break;case 7:i.mode=r.uint32();break;case 8:i.mtime=ie.UnixTime.decode(r,r.uint32());break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Type"))throw N.ProtocolError("missing required 'Type'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ie.Data)return r;var n=new ie.Data;switch(r.Type){case"Raw":case 0:n.Type=0;break;case"Directory":case 1:n.Type=1;break;case"File":case 2:n.Type=2;break;case"Metadata":case 3:n.Type=3;break;case"Symlink":case 4:n.Type=4;break;case"HAMTShard":case 5:n.Type=5;break}if(r.Data!=null&&(typeof r.Data=="string"?N.base64.decode(r.Data,n.Data=N.newBuffer(N.base64.length(r.Data)),0):r.Data.length&&(n.Data=r.Data)),r.filesize!=null&&(N.Long?(n.filesize=N.Long.fromValue(r.filesize)).unsigned=!0:typeof r.filesize=="string"?n.filesize=parseInt(r.filesize,10):typeof r.filesize=="number"?n.filesize=r.filesize:typeof r.filesize=="object"&&(n.filesize=new N.LongBits(r.filesize.low>>>0,r.filesize.high>>>0).toNumber(!0))),r.blocksizes){if(!Array.isArray(r.blocksizes))throw TypeError(".Data.blocksizes: array expected");n.blocksizes=[];for(var o=0;o<r.blocksizes.length;++o)N.Long?(n.blocksizes[o]=N.Long.fromValue(r.blocksizes[o])).unsigned=!0:typeof r.blocksizes[o]=="string"?n.blocksizes[o]=parseInt(r.blocksizes[o],10):typeof r.blocksizes[o]=="number"?n.blocksizes[o]=r.blocksizes[o]:typeof r.blocksizes[o]=="object"&&(n.blocksizes[o]=new N.LongBits(r.blocksizes[o].low>>>0,r.blocksizes[o].high>>>0).toNumber(!0))}if(r.hashType!=null&&(N.Long?(n.hashType=N.Long.fromValue(r.hashType)).unsigned=!0:typeof r.hashType=="string"?n.hashType=parseInt(r.hashType,10):typeof r.hashType=="number"?n.hashType=r.hashType:typeof r.hashType=="object"&&(n.hashType=new N.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0))),r.fanout!=null&&(N.Long?(n.fanout=N.Long.fromValue(r.fanout)).unsigned=!0:typeof r.fanout=="string"?n.fanout=parseInt(r.fanout,10):typeof r.fanout=="number"?n.fanout=r.fanout:typeof r.fanout=="object"&&(n.fanout=new N.LongBits(r.fanout.low>>>0,r.fanout.high>>>0).toNumber(!0))),r.mode!=null&&(n.mode=r.mode>>>0),r.mtime!=null){if(typeof r.mtime!="object")throw TypeError(".Data.mtime: object expected");n.mtime=ie.UnixTime.fromObject(r.mtime)}return n},t.toObject=function(r,n){n||(n={});var o={};if((n.arrays||n.defaults)&&(o.blocksizes=[]),n.defaults){if(o.Type=n.enums===String?"Raw":0,n.bytes===String?o.Data="":(o.Data=[],n.bytes!==Array&&(o.Data=N.newBuffer(o.Data))),N.Long){var i=new N.Long(0,0,!0);o.filesize=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.filesize=n.longs===String?"0":0;if(N.Long){var i=new N.Long(0,0,!0);o.hashType=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.hashType=n.longs===String?"0":0;if(N.Long){var i=new N.Long(0,0,!0);o.fanout=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.fanout=n.longs===String?"0":0;o.mode=0,o.mtime=null}if(r.Type!=null&&r.hasOwnProperty("Type")&&(o.Type=n.enums===String?ie.Data.DataType[r.Type]:r.Type),r.Data!=null&&r.hasOwnProperty("Data")&&(o.Data=n.bytes===String?N.base64.encode(r.Data,0,r.Data.length):n.bytes===Array?Array.prototype.slice.call(r.Data):r.Data),r.filesize!=null&&r.hasOwnProperty("filesize")&&(typeof r.filesize=="number"?o.filesize=n.longs===String?String(r.filesize):r.filesize:o.filesize=n.longs===String?N.Long.prototype.toString.call(r.filesize):n.longs===Number?new N.LongBits(r.filesize.low>>>0,r.filesize.high>>>0).toNumber(!0):r.filesize),r.blocksizes&&r.blocksizes.length){o.blocksizes=[];for(var s=0;s<r.blocksizes.length;++s)typeof r.blocksizes[s]=="number"?o.blocksizes[s]=n.longs===String?String(r.blocksizes[s]):r.blocksizes[s]:o.blocksizes[s]=n.longs===String?N.Long.prototype.toString.call(r.blocksizes[s]):n.longs===Number?new N.LongBits(r.blocksizes[s].low>>>0,r.blocksizes[s].high>>>0).toNumber(!0):r.blocksizes[s]}return r.hashType!=null&&r.hasOwnProperty("hashType")&&(typeof r.hashType=="number"?o.hashType=n.longs===String?String(r.hashType):r.hashType:o.hashType=n.longs===String?N.Long.prototype.toString.call(r.hashType):n.longs===Number?new N.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0):r.hashType),r.fanout!=null&&r.hasOwnProperty("fanout")&&(typeof r.fanout=="number"?o.fanout=n.longs===String?String(r.fanout):r.fanout:o.fanout=n.longs===String?N.Long.prototype.toString.call(r.fanout):n.longs===Number?new N.LongBits(r.fanout.low>>>0,r.fanout.high>>>0).toNumber(!0):r.fanout),r.mode!=null&&r.hasOwnProperty("mode")&&(o.mode=r.mode),r.mtime!=null&&r.hasOwnProperty("mtime")&&(o.mtime=ie.UnixTime.toObject(r.mtime,n)),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t.DataType=function(){let e={},r=Object.create(e);return r[e[0]="Raw"]=0,r[e[1]="Directory"]=1,r[e[2]="File"]=2,r[e[3]="Metadata"]=3,r[e[4]="Symlink"]=4,r[e[5]="HAMTShard"]=5,r}(),t})(),h3=ie.UnixTime=(()=>{function t(e){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.Seconds=N.Long?N.Long.fromBits(0,0,!1):0,t.prototype.FractionalNanoseconds=0,t.encode=function(r,n){return n||(n=eu.create()),n.uint32(8).int64(r.Seconds),r.FractionalNanoseconds!=null&&Object.hasOwnProperty.call(r,"FractionalNanoseconds")&&n.uint32(21).fixed32(r.FractionalNanoseconds),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.UnixTime;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.Seconds=r.int64();break;case 2:i.FractionalNanoseconds=r.fixed32();break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Seconds"))throw N.ProtocolError("missing required 'Seconds'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ie.UnixTime)return r;var n=new ie.UnixTime;return r.Seconds!=null&&(N.Long?(n.Seconds=N.Long.fromValue(r.Seconds)).unsigned=!1:typeof r.Seconds=="string"?n.Seconds=parseInt(r.Seconds,10):typeof r.Seconds=="number"?n.Seconds=r.Seconds:typeof r.Seconds=="object"&&(n.Seconds=new N.LongBits(r.Seconds.low>>>0,r.Seconds.high>>>0).toNumber())),r.FractionalNanoseconds!=null&&(n.FractionalNanoseconds=r.FractionalNanoseconds>>>0),n},t.toObject=function(r,n){n||(n={});var o={};if(n.defaults){if(N.Long){var i=new N.Long(0,0,!1);o.Seconds=n.longs===String?i.toString():n.longs===Number?i.toNumber():i}else o.Seconds=n.longs===String?"0":0;o.FractionalNanoseconds=0}return r.Seconds!=null&&r.hasOwnProperty("Seconds")&&(typeof r.Seconds=="number"?o.Seconds=n.longs===String?String(r.Seconds):r.Seconds:o.Seconds=n.longs===String?N.Long.prototype.toString.call(r.Seconds):n.longs===Number?new N.LongBits(r.Seconds.low>>>0,r.Seconds.high>>>0).toNumber():r.Seconds),r.FractionalNanoseconds!=null&&r.hasOwnProperty("FractionalNanoseconds")&&(o.FractionalNanoseconds=r.FractionalNanoseconds),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t})(),p3=ie.Metadata=(()=>{function t(e){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)e[r[n]]!=null&&(this[r[n]]=e[r[n]])}return t.prototype.MimeType="",t.encode=function(r,n){return n||(n=eu.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Qr||(r=Qr.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ie.Metadata;r.pos<o;){var s=r.uint32();switch(s>>>3){case 1:i.MimeType=r.string();break;default:r.skipType(s&7);break}}return i},t.fromObject=function(r){if(r instanceof ie.Metadata)return r;var n=new ie.Metadata;return r.MimeType!=null&&(n.MimeType=String(r.MimeType)),n},t.toObject=function(r,n){n||(n={});var o={};return n.defaults&&(o.MimeType=""),r.MimeType!=null&&r.hasOwnProperty("MimeType")&&(o.MimeType=r.MimeType),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,ft.default.util.toJSONOptions)},t})();var F=Jr.DataType;var Iy=Object.freeze([]),tu=new Uint8Array(0),Ee=Object.freeze({}),Ly=parseInt("0644",8),Dy=parseInt("0755",8),Xr=ir,ru="UnixFS",Tt=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),Dp(zc({Data:Jr.encode(t).finish(),Links:e}))),Ny=t=>({type:F.Raw,content:t}),Zx=t=>Uy(tu,t),Uy=(t,e)=>({type:F.File,layout:"simple",content:t,metadata:cr(e)}),ek=t=>({type:F.File,layout:"simple",content:t}),tk=(t,e)=>({type:F.File,layout:"advanced",parts:t,metadata:cr(e)}),rk=t=>({type:F.File,layout:"advanced",parts:t}),nk=(t,e,r)=>({type:F.File,layout:"complex",content:t,parts:e,metadata:cr(r)}),as=(t,e)=>({type:F.Directory,metadata:cr(e),entries:t}),Py=(t,e,r,n,o=Ee)=>({type:F.HAMTShard,bitfield:e,fanout:cu(r),hashType:uu(n),entries:t,metadata:cr(o)}),Fy=(t,e,r,n)=>({type:F.HAMTShard,bitfield:e,fanout:cu(r),hashType:uu(n),entries:t}),nu=t=>Tt({Type:F.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:Iy},[]),My=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;switch(t.layout){case"simple":return us(t.content,r);case"advanced":return iu(t.parts,r);case"complex":return su(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},ou=t=>us(t,Ee),ok=t=>Tt({Type:F.File,blocksizes:t.map(Zn),filesize:tt(t)},t.map(cs)),iu=(t,e=Ee)=>Tt({Type:F.File,blocksizes:t.map(Zn),filesize:tt(t),...eo(e)},t.map(cs)),cs=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),us=(t,e=Ee)=>Tt({Type:F.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...eo(e)},[]),su=(t,e,r=Ee)=>Tt({Type:F.File,Data:t,filesize:t.byteLength+tt(e),blocksizes:e.map(Zn)},e.map(cs)),ls=t=>Tt({Type:t.type,...lu(t.metadata||Ee)},t.entries.map(Hy)),au=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=Ee})=>Tt({Type:F.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:cu(e),hashType:uu(r),...lu(o)},n.map(Hy)),cu=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},uu=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var Oy=(t,e=Ee)=>({type:F.Symlink,content:t,metadata:cr(e)}),Ry=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;return Tt({Type:F.Symlink,Data:t.content,...eo(r||Ee)},[])},zy=(t,e=!0)=>{switch(t.type){case F.Raw:return nu(t.content);case F.File:return My(t);case F.Directory:return ls(t);case F.HAMTShard:return au(t);case F.Symlink:return Ry(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},$y=t=>{let e=Ye(t),r=Jr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=Jr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...ik(i)},l=e.Links;switch(r.Type){case F.Raw:return Ny(o);case F.File:return l.length===0?new os(o,u):o.byteLength===0?new is(Cy(a.blocksizes,l),u):new ss(o,Cy(a.blocksizes,l),u);case F.Directory:return as(Ty(l),u);case F.HAMTShard:return Py(Ty(l),o||tu,a.fanout,a.hashType,u);case F.Symlink:return Oy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},ik=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var Cy=(t,e)=>{let r=[],n=t.length,o=0;for(;o<n;)r.push({cid:e[o].Hash,dagByteLength:e[o].Tsize||0,contentByteLength:t[o]});return r},Ty=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),tt=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Yr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),Zn=t=>t.contentByteLength,Hy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),lu=t=>eo(t,Dy),eo=({mode:t,mtime:e},r=Ly)=>({mode:t!=null?jy(t,r):void 0,mtime:e!=null?sk(e):void 0}),cr=t=>t==null?Ee:{...t.mode==null?void 0:{mode:Vy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},sk=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},jy=(t,e)=>{let r=t==null?void 0:Vy(t);return r===e||r==null?void 0:r},Vy=t=>t&4095|t&4294963200,ak=({content:t=tu,parts:e=Iy,metadata:r=Ee,...n})=>e.length===0?new os(t,r):t.byteLength===0?new is(e,r):new ss(t,e,r),os=class{constructor(e,r){this.content=e,this.metadata=r,this.layout="simple",this.type=F.File}get filesize(){return this.content.byteLength}encode(){return us(this.content,this.metadata)}},is=class{constructor(e,r){this.parts=e,this.metadata=r}get layout(){return"advanced"}get type(){return F.File}get fileSize(){return tt(this.parts)}get blockSizes(){return this.parts.map(Zn)}encode(){return iu(this.parts,this.metadata)}},ss=class{constructor(e,r,n){this.content=e,this.parts=r,this.metadata=n}get layout(){return"complex"}get type(){return F.File}get fileSize(){return this.content.byteLength+tt(this.parts)}get blockSizes(){return this.parts.map(Zn)}encode(){return su(this.content,this.parts,this.metadata)}},ck=t=>{switch(t.type){case F.Raw:case F.Symlink:return t.content.byteLength;case F.File:switch(t.layout){case"simple":return t.content.byteLength;case"advanced":return tt(t.parts);case"complex":return t.content.byteLength+tt(t.parts)}default:return 0}};var uk=function*(t){let e=yield*t;yield*ds(e)};function*yu(){return yield ys}var tn=function*(){yield ms};var fs=function*(t){let e=yield*yu();if(fk(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,It(e)},o=>{r=!0,n=o,It(e)}),yield*tn(),r)throw n;return n}else return yk(lk(e)),yield*tn(),t};function*lk(t){It(t)}var fk=t=>t!=null&&typeof t.then=="function",ds=function*(t){yield t},hs=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==no&&e.push(yield*nn(hk(o,n)))}yield*gu(e)},ps=t=>t.length>0?dk(t.map(uk)):no;function*dk(t){let e=[];for(let r of t)e.push(yield*nn(r));yield*gu(e)}var hk=(t,e)=>t===no?no:t instanceof to?new to([...t.tags,e],t.source):new to([e],t),to=class{constructor(e,r){this.tags=e,this.source=r,this.controller}[Symbol.iterator](){return this.controller||(this.controller=this.source[Symbol.iterator]()),this}box(e){if(e.done)return e;switch(e.value){case ms:case ys:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=pk(o,n);return r.value=n,r}}}next(e){return this.box(this.controller.next(e))}throw(e){return this.box(this.controller.throw(e))}return(e){return this.box(this.controller.return(e))}get[Symbol.toStringTag](){return"TaggedEffect"}},oo=()=>no;var pk=(t,e)=>({type:t,[t]:e});var ys=Symbol("current"),ms=Symbol("suspend");var dt=class t{static of(e){return e.group||en}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new rn(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Gy}},fu=class{constructor(){this.status=ro,this.stack=new rn,this.id=0}},rn=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},yk=t=>It(t[Symbol.iterator]()),It=t=>{let e=dt.of(t);for(e.stack.active.push(t),e.stack.idle.delete(t);e.parent;){let{idle:r,active:n}=e.parent.stack;if(r.has(e.driver))r.delete(e.driver),n.push(e.driver);else break;e=e.parent}if(en.status===ro)for(en.status=Qy;;)try{for(let r of mu(en));en.status=ro;break}catch{en.stack.active.shift()}},mk=t=>It(t),mu=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=Jy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case ms:t.stack.idle.add(r);break e;case ys:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var nn=(t,e)=>new pu(t,e),gk=(t,e)=>Wy(t,{ok:!0,value:e});var du=(t,e)=>Wy(t,{ok:!1,error:e});function*Wy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===ms){let{idle:o}=dt.of(r).stack;o.add(r)}else It(r)}catch{}}function*gu(t){if(t.length===0)return;let e=yield*yu(),r=new dt(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}wk(o,r)}try{if(n)throw n.error;for(;yield*mu(r),rn.size(r.stack)>0;)yield*tn()}catch(o){for(let i of r.stack.active)yield*du(i,o);for(let i of r.stack.idle)yield*du(i,o),It(i);throw o}}var wk=(t,e)=>{let r=dt.of(t);if(r!==e){let{active:n,idle:o}=r.stack,i=e.stack;if(t.group=e,o.has(t))o.delete(t),i.idle.add(t);else{let s=n.indexOf(t);s>=0&&(n.splice(s,1),i.active.push(t))}}};function*wu(t){t.status===ro&&(yield*t),t.result||(yield*gu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var hu=class{constructor(e){this.handler=e,this.result}get promise(){let{result:e}=this,r=e==null?new Promise((n,o)=>{this.handler.onsuccess=n,this.handler.onfailure=o}):e.ok?Promise.resolve(e.value):Promise.reject(e.error);return Object.defineProperty(this,"promise",{value:r}),r}then(e,r){return this.activate().promise.then(e,r)}catch(e){return this.activate().promise.catch(e)}finally(e){return this.activate().promise.finally(e)}activate(){return this}},pu=class extends hu{constructor(e,r=bk,n={},o=Jy){super(n),this.id=++Gy,this.name=r.name||"",this.task=e,this.state=o,this.status=ro,this.result,this.handler=n,this.controller}*resume(){mk(this)}join(){return wu(this)}abort(e){return du(this,e)}exit(e){return gk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Qy,It(this),this}panic(e){this.result={ok:!1,error:e},this.status=qy;let{handler:r}=this;throw r.onfailure&&r.onfailure(e),e}step(e){if(this.state=e,e.done){this.result={ok:!0,value:e.value},this.status=qy;let{handler:r}=this;r.onsuccess&&r.onsuccess(e.value)}return e}next(e){try{return this.step(this.controller.next(e))}catch(r){return this.panic(r)}}return(e){try{return this.step(this.controller.return(e))}catch(r){return this.panic(r)}}throw(e){try{return this.step(this.controller.throw(e))}catch(r){return this.panic(r)}}},Ky=function*(t,e){let r=yield*yu(),n=new dt(r);for(dt.enqueue(t[Symbol.iterator](),n);;){for(let o of mu(n))dt.enqueue(e(o)[Symbol.iterator](),n);if(rn.size(n.stack)>0)yield*tn();else break}},Gy=0,ro="idle",Qy="active",qy="finished",Jy={done:!1,value:ys},bk={},no=function*(){}(),en=new fu;function bu(){}Object.defineProperties(bu,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var xu=()=>new io;var Yy=(t,e=0,r=t.byteLength)=>{let n=[],o=e<0?t.byteLength-e:e,i=r<0?t.byteLength-r:r;if(o===0&&i>=t.byteLength)return t;if(o>i||o>t.byteLength||i<=0)return xu();let s=0,c=0;for(let a of t.segments){let u=c+a.byteLength;if(s===0){if(i<=u){let l=a.subarray(o-c,i-c);n.push(l),s=l.byteLength;break}else if(o<u){let l=o===c?a:a.subarray(o-c);n.push(l),s=l.byteLength}}else if(i<=u){let l=i===u?a:a.subarray(0,i-c);n.push(l),s+=l.byteLength;break}else n.push(a),s+=a.byteLength;c=u}return new io(n,t.byteOffset+o,s)},xk=(t,e)=>e.byteLength>0?(t.segments.push(e),new io(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,kk=(t,e)=>{if(e<t.byteLength){let r=0;for(let n of t.segments){if(e<r+n.byteLength)return n[e-r];r+=n.byteLength}}},vk=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*Ek(t){for(let e of t.segments)yield*e}var io=class extends bu{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return Ek(this)}slice(e,r){return Yy(this,e,r)}subarray(e,r){return Yy(this,e,r)}push(e){return xk(this,e)}get(e){return kk(this,e)}copyTo(e,r){return vk(this,e,r)}};var so=t=>{throw new Error(t)},Zy=(t,e,...r)=>so(String.raw(t,JSON.stringify(e),...r)),em=new Uint8Array(0),tm=[];var rm=t=>({config:t,buffer:xu()}),nm=(t,e)=>e.byteLength>0?im(t.config,t.buffer.push(e),!1):{...t,chunks:tm},om=t=>im(t.config,t.buffer,!0),im=(t,e,r)=>{let n=t.chunker,o=[],i=0;for(let s of n.cut(n.context,e,r))if(s>0){let c=e.subarray(i,i+s);o.push(c),i+=s}return{config:t,chunks:o,buffer:e.subarray(i)}};var sm=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:Eu});var Su=(t,e)=>{let r=on(e,{});for(let n of t){let{ready:o,has:i,wants:s}=cm(n.children,r.links);s.length===0?r=on(r,{links:vu(void 0,i),linked:[{id:n.id,links:o}]}):r=on(r,{needs:vu(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},am=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=cm(o.children,{...r.links,[t]:e});return on(r,{needs:{[t]:void 0},links:vu(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return on(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return on(r,{links:{[t]:e}})},on=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?Bk:void 0;return e&&(i.needs=ku(t.needs,e,s)),r&&(i.nodes=ku(t.nodes,r,s)),n&&(i.links=ku(t.links,n,s)),i.linked=o?_k(t.linked||Eu,o,Eu):t.linked||[],i},vu=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},ku=(t,e,r=t)=>{let n=t===r?{...t}:t;for(let o of Object.entries(e)){let[i,s]=o;s==null?delete n[i]:n[i]=s}return n};var _k=(t,e,r=t)=>{if(t===r)return[...t,...e];for(let n of e)t.push(n);return t},cm=(t,e)=>{let r=[],n=[],o=[];for(let i of t){let s=e[i];s?(r.push(i),o.push(s)):n.push(i)}return{has:r,wants:n,ready:o}},Eu=Object.freeze([]),Bk=Object.freeze({});var um=(t,e)=>{switch(t.type){case"write":return Tk(e,t.bytes);case"link":return Ik(e,t.link);case"block":return{state:e,effect:oo()};case"close":return Lk(e);case"end":return{state:e,effect:oo()};default:return Zy`File Writer got unknown message ${t}`}},lm=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:rm({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:sm()}),Tk=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=nm(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=Su(o,t.nodeQueue),u=[...fm(i,t.config),...Au(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:hs({link:ps(u)})}}else return so("Unable to perform write on closed file")},Ik=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=am(e,r,t.nodeQueue),s=Au(o,t.config),c=t.status==="closed"&&e===t.rootID?{...t,status:"linked",link:r,nodeQueue:i}:{...t,nodeQueue:i},a=t.status==="closed"&&e===t.rootID&&t.end?t.end.resume():oo();return{state:c,effect:hs({link:ps(s),block:Uk(t.writer,n),end:a})}},Lk=t=>{if(t.status==="open"){let{chunks:e}=om(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Fk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=Su(s,t.nodeQueue),l=[...fm(c,t.config),...Au(a,t.config)],d=nn(tn());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:hs({link:ps(l),end:wu(d)})}}else return{state:t,effect:oo()}},fm=(t,e)=>t.map(r=>Dk(e,r,e.fileChunkEncoder)),Dk=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Pk(n):em),s=yield*fs(t.digest(i)),c=e.createLink(o.code,s),a={cid:c,bytes:i},u={cid:c,contentByteLength:n?n.byteLength:0,dagByteLength:i.byteLength};return{id:r,block:a,link:u}},Au=(t,e)=>t.map(r=>Nk(e,r)),Nk=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:F.File,layout:"advanced",parts:r,metadata:n}),i=yield*fs(Promise.resolve(t.hasher.digest(o))),s=t.linker.createLink(t.fileEncoder.code,i),c={bytes:o,cid:s},a={cid:s,contentByteLength:tt(r),dagByteLength:Yr(o,r)};return{id:e,block:c,link:a}},Uk=function*(t,e){(t.desiredSize||0)<=0&&(yield*fs(t.ready)),t.write(e)},Pk=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Fk=t=>t.children==null;var Bu={};Y(Bu,{context:()=>Ok,cut:()=>hm,name:()=>dm,type:()=>Rk,withMaxChunkSize:()=>_u});var dm="fixed",Ok={maxChunkSize:262144},Rk="Stateless",_u=t=>({type:"Stateless",context:{maxChunkSize:t},name:dm,cut:hm}),hm=({maxChunkSize:t},{byteLength:e},r)=>{let n=e/t|0,o=new Array(n).fill(t),i=r?e-n*t:0;return i>0&&o.push(i),o};var ao=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},gs=t=>({open:()=>$k({width:t}),write:Hk,close:jk}),zk={width:174},$k=({width:t}=zk)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),Hk=(t,e)=>{if(e.length===0)return{layout:t,nodes:pe,leaves:pe};{let{lastID:r}=t,[n,o]=t.head?[null,(e.unshift(t.head),e)]:e.length===1&&t.leafIndex.length===0?[e[0],pe]:[null,e];if(o.length===0)return{layout:{...t,head:n},nodes:pe,leaves:pe};{let i=[...t.leafIndex],s=[];for(let c of o){let a={id:++r,content:c};s.push(a),i.push(a.id)}return i.length>=t.width?ym({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:pe}}}},ym=(t,e=pe,r=[],n=!1)=>{let{lastID:o}=t,i=t.nodeIndex.map(u=>[...u]),s=[...t.leafIndex],{width:c}=t;for(;s.length>=c||s.length>0&&n;){pm(i,1);let u=new ao(++o,s.splice(0,c));i[0].push(u.id),r.push(u)}let a=0;for(;a<i.length;){let u=i[a];for(a++;u.length>=c||u.length>0&&n&&a<i.length;){let l=new ao(++o,u.splice(0,c));pm(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},jk=(t,e)=>{let r=t;if(t.head)return{root:{id:1,content:t.head,metadata:e},leaves:pe,nodes:pe};if(t.leafIndex.length===0)return{root:{id:1,metadata:e},leaves:pe,nodes:pe};{let{nodes:n,layout:o}=ym(r,pe,[],!0),{nodeIndex:i}=o,s=i.length-1,c=i[s];if(c.length===1){let a=n[n.length-1];return n.length=n.length-1,{root:a,nodes:n,leaves:pe}}else return{root:new ao(o.lastID+1,c,e),nodes:n,leaves:pe}}},pm=(t,e)=>{for(;t.length<e;)t.push([]);return t},pe=[];var Lt=()=>({chunker:Bu,fileChunkEncoder:Cu,smallFileEncoder:Cu,fileEncoder:Zr,fileLayout:gs(174),hasher:ut,linker:{createLink:j.createV1}}),Dt=t=>({...Lt(),...t}),Cu={code:Xr,name:ru,encode:ou};var co=({writer:t,metadata:e={},settings:r=Lt()})=>new Tu(lm(t,e,Dt(r))),mm=async(t,e)=>(await wm(t,ds({type:"write",bytes:e})),t),gm=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await wm(t,ds({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;so(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},wm=(t,e)=>nn(Ky(e,r=>{let{state:n,effect:o}=um(r,t.state);return t.state=n,o})),Tu=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return mm(this,e)}close(e){return gm(this,e)}};var qk=Lt,Lu=({writer:t,settings:e=qk(),metadata:r={}})=>new ws({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),bs=(t,e,r,{overwrite:n=!1}={})=>{let o=Du(t.state);if(e.includes("/"))throw new Error(`Directory entry name "${e}" contains forbidden "/" character`);if(!n&&o.entries.has(e))throw new Error(`Directory already contains entry with name "${e}"`);return o.entries.set(e,r),t},xs=(t,e)=>(Du(t.state).entries.delete(e),t),Du=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},bm=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=Du(t.state);t.state.closed=!0;let s=[...xm(t)],c=as(s,i),a=ls(c),u=await o.hasher.digest(a),l=o.linker.createLink(Xr,u);return(n.desiredSize||0)<=0&&await n.ready,n.write({cid:l,bytes:a}),e?await n.close():r&&n.releaseLock(),{cid:l,dagByteLength:Yr(a,s)}},xm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},km=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new ws({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),ws=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return xm(this)}set(e,r,n){return bs(this,e,r,n)}remove(e){return xs(this,e)}fork(e){return km(this,e)}close(e){return bm(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var Es={};Y(Es,{API:()=>ks,and:()=>Zk,bitCount:()=>vs,empty:()=>vm,from:()=>Kk,fromBytes:()=>r2,get:()=>Yk,or:()=>e2,popcount:()=>Nu,set:()=>Em,size:()=>Gk,toBytes:()=>t2,unset:()=>Xk});var ks={};var vm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},Kk=(t,e)=>{let r=vm(e);for(let n of t)r=Em(r,n);return r},Gk=t=>32,Qk=(t,e)=>t>>>e&31,Jk=(t,e)=>1<<Qk(t,e),Nu=(t,e=31)=>vs(t&Jk(e,0)-1),Em=(t,e)=>t|1<<e,Xk=(t,e)=>t&(255^1<<e),Yk=(t,e)=>(t>>e&1)!==0,vs=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},Zk=(t,e)=>t&e,e2=(t,e)=>t|e,t2=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),r2=t=>{if(t.length!==4)throw new Error(`Expected 4 bytes instead got ${t.length}`);return(t[0]<<24)+(t[1]<<16)+(t[2]<<8)+t[3]};var _m=W(Uu(),1),n2=new TextEncoder,o2=_m.default.x64.hash126,Bm=({bitWidth:t=5,hash:e=o2})=>{if(t>4*8)throw new RangeError(`Can not use bitWidth ${t} which exceeds the hashSize 4`);if(4*8>32)throw new RangeError("Can not use hashSize 4 as it can not be encoded in Uint32");let n=4294967295>>>32-t;return{at:(s,c)=>s>>>c*t&n,from:s=>e(n2.encode(s)),size:Math.ceil(4*8/t)}};var sn=class{constructor(e,r,n,o,i){this.edit=e,this.config=i,this.datamap=r,this.nodemap=n,this.children=o}get nodeArity(){return this.config.BitField.popcount(this.nodemap)}get dataArity(){return this.config.BitField.popcount(this.datamap)}empty(){return lo(this.config)}lookup(e,r,n,o){return Tm(this,e,r,n,o)}associate(e,r,n,o,i,s){return Mu(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return Im(this,e,r,n,o,i)}fork(e=null){return fo(this,e)}entries(){return Lm(this)}keys(){return Dm(this)}values(){return Nm(this)}},As=class{constructor(e,r,n,o){this.edit=e,this.count=r,this.children=n,this.config=o}get nodeArity(){return 0}get dataArity(){return this.count}lookup(e,r,n,o){return i2(this,n,o)}associate(e,r,n,o,i,s){return s2(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return a2(this,e,n,o,i)}fork(e=null){return c2(this,e)}entries(){return Lm(this)}keys(){return Dm(this)}values(){return Nm(this)}},i2=(t,e,r)=>{let{children:n,count:o}=t,i=Pu(n,o,e);return n[i]===e?n[i+1]:r},s2=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Pu(s,c,n);if(s[a]!==n){let u=t.fork(e);return i.value=!0,u.count+=1,u.children.splice(a,r,o),u}else if(s[a+1]!==o){let u=t.fork(e);return u.children[a+1]=o,u}else return t},a2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Pu(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return Mu(lo(c),e,0,r,i[u],i[u+1],o)}else{let u=t.fork(e);return u.children.splice(a,2),u.count-=1,u}},c2=(t,e=null)=>Mm(t.edit,e)?t:new As(e,t.count,t.children.slice(),t.config),Pu=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var lo=(t,e=null)=>new sn(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),Bs=(t,e,r)=>Tm(t,0,t.config.Path.from(e),e,r),Tm=(t,e,r,n,o)=>{let{datamap:i,nodemap:s,config:c}=t,{Path:a,BitField:u}=c,l=a.at(r,e);if(u.get(i,l)){let d=u.popcount(i,l);return Cs(t,d)===n?_s(t,d):o}else return u.get(s,l)?Ts(t,l).lookup(e+1,r,n,o):o},Fu=(t,e,r,n,o)=>Mu(t,e,0,t.config.Path.from(r),r,n,o),Mu=(t,e,r,n,o,i,s)=>{let{datamap:c,nodemap:a,config:u}=t,{Path:l,BitField:d}=u,m=l.at(n,r);if(d.get(c,m)){let f=d.popcount(c,m),h=Cs(t,f);if(o===h)return _s(t,f)===i?t:u2(t,e,f,i);{let p=Pm(u,e,r+1,l.from(h),h,_s(t,f),n,o,i);return s.value=!0,f2(t,e,m,p)}}else if(d.get(a,m)){let f=Ts(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Um(t,e,m,h)}else{let f=d.popcount(c,m);s.value=!0;let h=t.fork(e);return h.datamap=d.set(c,m),h.children.splice(ho(f),0,o,i),h}},Ou=(t,e,r,n)=>Im(t,e,0,t.config.Path.from(r),r,n);var Im=(t,e,r,n,o,i)=>{let{datamap:s,nodemap:c,config:a}=t,{BitField:u,Path:l}=a,d=l.at(n,r);if(u.get(s,d)){let m=u.popcount(s,d);if(o===Cs(t,m)){i.value=!0;let f=fo(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(ho(m),2),f}else return t}else if(u.get(c,d)){let m=Ts(t,d),f=m.dissociate(e,r+1,n,o,i);return d2(f)?h2(t)?f:l2(t,e,d,f):m===f?t:Um(t,e,d,f)}else return t},Lm=function*({children:t}){let e=0,r=t.length;for(;e<r;){let n=t[e];if(typeof n=="string"){e+=1;let o=t[e];yield[n,o],e+=1}else break}for(;e<r;)yield*t[e].entries(),e+=1},fo=(t,e)=>Mm(t.edit,e)?t:new sn(e,t.datamap,t.nodemap,t.children.slice(),t.config),Dm=function*({children:t}){let e=0,r=t.length;for(;e<r;){let n=t[e];if(typeof n=="string")yield n,e+=2;else break}for(;e<r;)yield*t[e].keys(),e+=1},Nm=function*({children:t}){let e=0,r=t.length;for(;e<r&&typeof t[e]=="string";)e+=1,yield t[e],e+=1;for(;e<r;)yield*t[e].values(),e+=1},u2=(t,e,r,n)=>{let o=t.fork(e);return o.children[Fm(r)]=n,o},l2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=fo(t,e);return a.children.splice(Is(t,r),1),a.children.splice(ho(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Um=(t,e,r,n)=>{let o=fo(t,e);return o.children[Is(t,r)]=n,o},f2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=ho(a),l=Is(t,r),d=fo(t,e);return d.datamap=c.unset(i,r),d.children.splice(u,2),d.nodemap=c.set(o,r),d.children.splice(l-1,0,n),d},Pm=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new As(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new sn(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Pm(t,e,r+1,n,o,i,s,c,a)],t):new sn(e,u.from([d,m],Math.pow(2,t.bitWidth)),u.empty(Math.pow(2,t.bitWidth)),d<m?[o,i,c,a]:[c,a,o,i],t)}},Cs=({children:t},e)=>t[ho(e)],ho=t=>t*2,_s=({children:t},e)=>t[Fm(e)],Fm=t=>t*2+1,Ts=(t,e)=>t.children[Is(t,e)],Is=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Mm=(t,e)=>t!=null&&t===e,d2=t=>t.nodeArity===0&&t.dataArity===1,h2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var Ls=W(Uu(),1);function p2(t){let e=new Array(4);for(let r=0;r<4;r++)e[r]=t&255,t=t>>8;return new Uint8Array(e)}var V3=Wt({name:"murmur3-32",code:35,encode:t=>p2(Ls.default.x86.hash32(t))}),Rm=Wt({name:"murmur3-128",code:34,encode:t=>$t.fromHex(Ls.default.x64.hash128(t))}),po=Wt({name:"murmur3-x64-64",code:34,encode:t=>$t.fromHex(Ls.default.x64.hash128(t)).subarray(0,8)});var y2=new TextEncoder,m2=t=>po.encode(t),zm=({bitWidth:t=8,hash:e=m2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(y2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Ru(i,c,t)},size:Math.ceil(r*8/t)}},Ru=(t,e,r)=>{let n=e/8|0,o=e%8,i=r,s=0;for(;i>0&&n<t.byteLength;){let c=t[n],a=8-o,u=a<i?a:i,l=8-o-u,m=(255>>o&c)>>l;s=(s<<u)+m,i-=u,n++,o=0}return s};var zu={};Y(zu,{API:()=>ks,and:()=>B2,empty:()=>$m,from:()=>w2,fromBytes:()=>S2,get:()=>v2,or:()=>_2,popcount:()=>A2,set:()=>x2,size:()=>b2,toBytes:()=>E2,unset:()=>k2});var $m=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},w2=(t,e)=>{let r=$m(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=yo(r,n);r[i]=o|1<<s}return r},b2=t=>t.byteLength*8,yo=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Hm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},x2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=yo(t,e);return Hm(t,n,r|1<<o)},k2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=yo(t,e);return Hm(t,n,r&(255^1<<o))},v2=(t,e)=>{var{byte:r,bitOffset:n}=yo(t,e);return(r>>n&1)!==0},E2=t=>t,S2=t=>t,A2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=yo(t,e),i=Nu(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=vs(c),s--}return i},_2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},B2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var jm=new RangeError("Not Found");var C2=({bitWidth:t=5,BitField:e=t===5?Es:zu,Path:r=t===5?Bm({bitWidth:t}):zm({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var Hu=(t,e)=>Bs(t.root,e,jm)!==jm,Vm=(t,e,r=void 0)=>Bs(t.root,e,r),qm=t=>{let e={},r=C2(t);return new Ds(e,0,lo(r,e),r)},$u=class t{constructor(e=0,r,n){this.count=e,this.root=r,this.config=n}get size(){return this.count}clone(){return new t(this.count,this.root,this.config)}empty(){return new t(0,lo(this.config,null),this.config)}has(e){return Hu(this,e)}get(e){return Bs(this.root,e,void 0)}set(e,r){let n={value:!1},o=Fu(this.root,null,e,r,n);return o===this.root?this:new t(n.value?this.count+1:this.count,o,this.config)}delete(e){let r=Ou(this.root,null,e,{value:!1});return r===this.root?this:new t(this.count-1,r,this.config)}get bitField(){return this.config.BitField.or(this.root.datamap,this.root.nodemap)}[Symbol.iterator](){return this.entries()}entries(){return this.root.entries()}keys(){return this.root.keys()}values(){return this.root.values()}createBuilder(){return new Ds({},this.count,this.root,this.config)}},Ds=class{constructor(e,r,n,o){this.edit=e,this.count=r,this.root=n,this.config=o}get size(){if(this.edit)return this.count;throw new Error(".size was accessed on the finalized builder")}set(e,r){if(this.edit){let n={value:!1},o=Fu(this.root,this.edit,e,r,n);return this.root!==o&&(this.root=o),n.value&&(this.count+=1),this}else throw new Error(".set was called on the finalized builder")}delete(e){if(this.edit){if(this.count===0)return this;let r={value:!1},n=Ou(this.root,this.edit,e,r);return n!==this.root&&(this.root=n),r.value&&(this.count-=1),this}else throw new Error(".delete was called on the finalized builder")}build(){if(this.edit)return this.edit=null,new $u(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var T2=new TextEncoder,I2=t=>po.encode(t),Km=({bitWidth:t=8,hash:e=I2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>L2(s,c,n),from:s=>T2.encode(s),size:1/0}},L2=(t,e=0,{bitWidth:r=8,hash:n,hashSize:o})=>{let i=o*8,s=0,c=r,a=r*e;for(;c>0;){let u=a/i>>0,l=n(u===0?t:D2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Ru(l,d,f),c-=f,a+=f}return s},D2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Gm=8,U2={bitWidth:Gm,Path:Km({bitWidth:Gm})};var ju=(t=U2)=>qm(t);var Qm=class extends Map{constructor(e=ju()){super(),this.builder=e}clear(){this.builder=ju()}delete(e){let{root:r}=this.builder;return this.builder.delete(e),this.builder.root!==r}forEach(e,r=this){for(let[n,o]of this.builder.root.entries())e.call(r,o,n,this)}get(e){return Vm(this.builder,e)}has(e){return Hu(this.builder,e)}set(e,r){return this.builder.set(e,r),this}get size(){return this.builder.size}[Symbol.iterator](){return this.builder.root.entries()}entries(){return this.builder.root.entries()}keys(){return this.builder.root.keys()}values(){return this.builder.root.values()}};var Jm=({writable:t,settings:e=Lt()})=>new Vu({writer:t.getWriter(),settings:e}),F2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Vu=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=Dt(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return co({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return Lu({writer:this.writer,settings:e,metadata:r})}close(e){return F2(this,e)}},M2=1048576,O2=M2*100,Xm=(t=O2)=>({highWaterMark:t,size:e=>e.bytes.length});var Js=W(rt(),1);function $2(t){return t[Symbol.asyncIterator]!=null}function H2(t){if($2(t))return(async()=>{let r;for await(let n of t)r=n;return r})();let e;for(let r of t)e=r;return e}var eg=H2;var rw=W(rt(),1);var tg=0,j2="identity",rg=Te,V2=t=>Ht(tg,rg(t)),ng={code:tg,name:j2,encode:rg,digest:V2};var og=W(rt(),1);var q2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Tr(a),l=u,d=r;for(;n.length>0;){let m=n[0];if(m in l){n.shift(),d=`${d}/${m}`;let f=V.asCID(l[m]);if(f!=null)return{entry:{type:"object",name:e,path:r,cid:t,node:a,depth:i,size:BigInt(a.length),content:async function*(){yield u}},next:{cid:f,name:m,path:d,toResolve:n}};l=l[m]}else throw(0,og.default)(new Error(`No property named ${m} found in cbor node ${t}`),"ERR_NO_PROP")}return{entry:{type:"object",name:e,path:r,cid:t,node:a,depth:i,size:BigInt(a.length),content:async function*(){yield u}}}},ig=q2;var sg=W(rt(),1);var ce=class extends Event{constructor(e,r){super(e),this.detail=r}};function W2(t,e,r,n){let o=BigInt(t.length),i=BigInt(e+o);return r>=i||n<e?new Uint8Array(0):(n>=e&&n<i&&(t=t.subarray(0,Number(n-e))),r>=e&&r<i&&(t=t.subarray(Number(r-e))),t)}var ur=W2;var mo=W(rt(),1),K2=(t,e=0,r=t)=>{let n=BigInt(t),o=BigInt(e??0),i=BigInt(r);if(i!==n&&(i=o+i),i>n&&(i=n),o<0n)throw(0,mo.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,mo.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,mo.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,mo.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},an=K2;var G2=t=>{async function*e(r={}){let{start:n,end:o}=an(t.length,r.offset,r.length),i=ur(t,0n,n,o);r.onProgress?.(new ce("unixfs:exporter:progress:identity",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},Q2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,sg.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=Xo(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:G2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},ag=Q2;var cg=W(rt(),1);var J2=t=>{async function*e(r={}){let{start:n,end:o}=an(t.length,r.offset,r.length),i=ur(t,0n,n,o);r.onProgress?.(new ce("unixfs:exporter:progress:raw",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},X2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,cg.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=await s.get(t,c);return{entry:{type:"raw",name:e,path:r,cid:t,content:J2(a),depth:i,size:BigInt(a.length),node:a}}},ug=X2;var To=W(rt(),1);var Ju=W(rt(),1);var qu=W(ns(),1),lg=W(Yc(),1),fg=W(lt(),1),Wu=W(ts(),1),dg=W(Qc(),1);function Y2(){fg.default._configure(),qu.default._configure(lg.default),Wu.default._configure(dg.default)}Y2();var hg=["uint64","int64","sint64","fixed64","sfixed64"];function Z2(t){for(let e of hg){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Ku(t){return Z2(new qu.default(t))}function ev(t){for(let e of hg){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Gu(){return ev(Wu.default.create())}function go(t,e){let r=Ku(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function wo(t,e){let r=Gu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var cn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(cn||(cn={}));function Ns(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Qu(t){function e(o){if(t[o.toString()]==null)throw new Error("Invalid enum value");return t[o]}let r=function(i,s){let c=e(i);s.int32(c)},n=function(i){let s=i.int32();return e(s)};return Ns("enum",cn.VARINT,r,n)}function bo(t,e){return Ns("message",cn.LENGTH_DELIMITED,t,e)}var ze;(function(t){let e;(function(o){o.Raw="Raw",o.Directory="Directory",o.File="File",o.Metadata="Metadata",o.Symlink="Symlink",o.HAMTShard="HAMTShard"})(e=t.DataType||(t.DataType={}));let r;(function(o){o[o.Raw=0]="Raw",o[o.Directory=1]="Directory",o[o.File=2]="File",o[o.Metadata=3]="Metadata",o[o.Symlink=4]="Symlink",o[o.HAMTShard=5]="HAMTShard"})(r||(r={})),function(o){o.codec=()=>Qu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=bo((o,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),o.Type!=null&&(i.uint32(8),t.DataType.codec().encode(o.Type,i)),o.Data!=null&&(i.uint32(18),i.bytes(o.Data)),o.filesize!=null&&(i.uint32(24),i.uint64(o.filesize)),o.blocksizes!=null)for(let c of o.blocksizes)i.uint32(32),i.uint64(c);o.hashType!=null&&(i.uint32(40),i.uint64(o.hashType)),o.fanout!=null&&(i.uint32(48),i.uint64(o.fanout)),o.mode!=null&&(i.uint32(56),i.uint32(o.mode)),o.mtime!=null&&(i.uint32(66),Us.codec().encode(o.mtime,i)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={blocksizes:[]},c=i==null?o.len:o.pos+i;for(;o.pos<c;){let a=o.uint32();switch(a>>>3){case 1:s.Type=t.DataType.codec().decode(o);break;case 2:s.Data=o.bytes();break;case 3:s.filesize=o.uint64();break;case 4:s.blocksizes.push(o.uint64());break;case 5:s.hashType=o.uint64();break;case 6:s.fanout=o.uint64();break;case 7:s.mode=o.uint32();break;case 8:s.mtime=Us.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>wo(o,t.codec()),t.decode=o=>go(o,t.codec())})(ze||(ze={}));var Us;(function(t){let e;t.codec=()=>(e==null&&(e=bo((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.Seconds!=null&&(n.uint32(8),n.int64(r.Seconds)),r.FractionalNanoseconds!=null&&(n.uint32(21),n.fixed32(r.FractionalNanoseconds)),o.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let o={},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let s=r.uint32();switch(s>>>3){case 1:o.Seconds=r.int64();break;case 2:o.FractionalNanoseconds=r.fixed32();break;default:r.skipType(s&7);break}}return o})),e),t.encode=r=>wo(r,t.codec()),t.decode=r=>go(r,t.codec())})(Us||(Us={}));var pg;(function(t){let e;t.codec=()=>(e==null&&(e=bo((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.MimeType!=null&&(n.uint32(10),n.string(r.MimeType)),o.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let o={},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let s=r.uint32();switch(s>>>3){case 1:o.MimeType=r.string();break;default:r.skipType(s&7);break}}return o})),e),t.encode=r=>wo(r,t.codec()),t.decode=r=>go(r,t.codec())})(pg||(pg={}));var yg={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},tv=["directory","hamt-sharded-directory"],mg=parseInt("0644",8),gg=parseInt("0755",8),un=class t{constructor(e={type:"file"}){k(this,"type");k(this,"data");k(this,"blockSizes");k(this,"hashType");k(this,"fanout");k(this,"mtime");k(this,"_mode");k(this,"_originalMode");let{type:r,data:n,blockSizes:o,hashType:i,fanout:s,mtime:c,mode:a}=e;if(r!=null&&!Object.values(yg).includes(r))throw(0,Ju.default)(new Error("Type: "+r+" is not valid"),"ERR_INVALID_TYPE");this.type=r??"file",this.data=n,this.hashType=i,this.fanout=s,this.blockSizes=o??[],this._originalMode=0,this.mode=a,this.mtime=c}static unmarshal(e){let r=ze.decode(e),n=new t({type:yg[r.Type!=null?r.Type.toString():"File"],data:r.Data,blockSizes:r.blocksizes,mode:r.mode,mtime:r.mtime!=null?{secs:r.mtime.Seconds??0n,nsecs:r.mtime.FractionalNanoseconds}:void 0});return n._originalMode=r.mode??0,n}set mode(e){e==null?this._mode=this.isDirectory()?gg:mg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return tv.includes(this.type)}addBlockSize(e){this.blockSizes.push(e)}removeBlockSize(e){this.blockSizes.splice(e,1)}fileSize(){if(this.isDirectory())return 0n;let e=0n;return this.blockSizes.forEach(r=>{e+=r}),this.data!=null&&(e+=BigInt(this.data.length)),e}marshal(){let e;switch(this.type){case"raw":e=ze.DataType.Raw;break;case"directory":e=ze.DataType.Directory;break;case"file":e=ze.DataType.File;break;case"metadata":e=ze.DataType.Metadata;break;case"symlink":e=ze.DataType.Symlink;break;case"hamt-sharded-directory":e=ze.DataType.HAMTShard;break;default:throw(0,Ju.default)(new Error(`Type: ${e} is not valid`),"ERR_INVALID_TYPE")}let r=this.data;(this.data==null||this.data.length===0)&&(r=void 0);let n;this.mode!=null&&(n=this._originalMode&4294963200|(this.mode??0),n===mg&&!this.isDirectory()&&(n=void 0),n===gg&&this.isDirectory()&&(n=void 0));let o;return this.mtime!=null&&(o={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),ze.encode({Type:e,Data:r,filesize:this.isDirectory()?void 0:this.fileSize(),blocksizes:this.blockSizes,hashType:this.hashType,fanout:this.fanout,mode:n,mtime:o})}};var Cg=W(xg(),1);var Xu={};Y(Xu,{identity:()=>iv});var iv=br({prefix:"\0",name:"identity",encode:t=>Ll(t),decode:t=>Il(t)});var Yu={};Y(Yu,{base2:()=>sv});var sv=G({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Zu={};Y(Zu,{base8:()=>av});var av=G({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var el={};Y(el,{base10:()=>cv});var cv=yt({prefix:"9",name:"base10",alphabet:"0123456789"});var tl={};Y(tl,{base16:()=>uv,base16upper:()=>lv});var uv=G({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),lv=G({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var rl={};Y(rl,{base36:()=>fv,base36upper:()=>dv});var fv=yt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),dv=yt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var nl={};Y(nl,{base64:()=>hv,base64pad:()=>pv,base64url:()=>yv,base64urlpad:()=>mv});var hv=G({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),pv=G({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yv=G({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),mv=G({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ol={};Y(ol,{base256emoji:()=>kv});var kg=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}"),gv=kg.reduce((t,e,r)=>(t[r]=e,t),[]),wv=kg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function bv(t){return t.reduce((e,r)=>(e+=gv[r],e),"")}function xv(t){let e=[];for(let r of t){let n=wv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var kv=br({prefix:"\u{1F680}",name:"base256emoji",encode:bv,decode:xv});var il={};Y(il,{identity:()=>Sv});var vg=0,vv="identity",Eg=ot,Ev=t=>Pt(vg,Eg(t)),Sv={code:vg,name:vv,encode:Eg,digest:Ev};var xT=new TextEncoder,kT=new TextDecoder;var sl={...Xu,...Yu,...Zu,...el,...tl,...ua,...rl,...ca,...nl,...ol},ET={...Dc,...il};function ln(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Ps(t=0){return globalThis.Buffer?.allocUnsafe!=null?ln(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Ag(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Sg=Ag("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),al=Ag("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=Ps(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Bv={utf8:Sg,"utf-8":Sg,hex:sl.base16,latin1:al,ascii:al,binary:al,...sl},_g=Bv;function Bg(t,e="utf8"){let r=_g[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ln(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var lr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new Cg.default,this.key=null}async put(e,r){let n=await this._findNewBucketAndPos(e);await n.bucket._putAt(n,e,r)}async get(e){let r=await this._findChild(e);if(r!=null)return r.value}async del(e){let r=await this._findPlace(e),n=r.bucket._at(r.pos);n!=null&&n.key===e&&r.bucket._delAt(r.pos)}leafCount(){return this._children.compactArray().reduce((r,n)=>n instanceof t?r+n.leafCount():r+1,0)}childrenCount(){return this._children.length}onlyChild(){return this._children.get(0)}*eachLeafSeries(){let e=this._children.compactArray();for(let r of e)r instanceof t?yield*r.eachLeafSeries():yield r}serialize(e,r){let n=[];return r(this._children.reduce((o,i,s)=>(i!=null&&(i instanceof t?o.push(i.serialize(e,r)):o.push(e(i,s))),o),n))}async asyncTransform(e,r){return await Tg(this,e,r)}toJSON(){return this.serialize(Tv,Iv)}prettyPrint(){return JSON.stringify(this.toJSON(),null," ")}tableSize(){return Math.pow(2,this._options.bits)}async _findChild(e){let r=await this._findPlace(e),n=r.bucket._at(r.pos);if(!(n instanceof t)&&n!=null&&n.key===e)return n}async _findPlace(e){let r=this._options.hash(typeof e=="string"?Bg(e):e),n=await r.take(this._options.bits),o=this._children.get(n);return o instanceof t?await o._findPlace(r):{bucket:this,pos:n,hash:r,existingChild:o}}async _findNewBucketAndPos(e){let r=await this._findPlace(e);if(r.existingChild!=null&&r.existingChild.key!==e){let n=new t(this._options,r.bucket,r.pos);r.bucket._putObjectAt(r.pos,n);let o=await n._findPlace(r.existingChild.hash);return o.bucket._putAt(o,r.existingChild.key,r.existingChild.value),await n._findNewBucketAndPos(r.hash)}return r}_putAt(e,r,n){this._putObjectAt(e.pos,{key:r,value:n,hash:e.hash})}_putObjectAt(e,r){this._children.get(e)==null&&this._popCount++,this._children.set(e,r)}_delAt(e){if(e===-1)throw new Error("Invalid position");this._children.get(e)!=null&&this._popCount--,this._children.unset(e),this._level()}_level(){if(this._parent!=null&&this._popCount<=1)if(this._popCount===1){let e=this._children.find(Cv);if(e!=null&&!(e instanceof t)){let r=e.hash;r.untake(this._options.bits);let n={pos:this._posAtParent,hash:r,bucket:this._parent};this._parent._putAt(n,e.key,e.value)}}else this._parent._delAt(this._posAtParent)}_at(e){return this._children.get(e)}};function Cv(t){return!!t}function Tv(t,e){return t.key}function Iv(t){return t}async function Tg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof lr)await Tg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Lv=[255,254,252,248,240,224,192,128],Dv=[1,3,7,15,31,63,127,255],Fs=class{constructor(e){this._value=e,this._currentBytePos=e.length-1,this._currentBitPos=7}availableBits(){return this._currentBitPos+1+this._currentBytePos*8}totalBits(){return this._value.length*8}take(e){let r=e,n=0;for(;r>0&&this._haveBits();){let o=this._value[this._currentBytePos],i=this._currentBitPos+1,s=Math.min(i,r),c=Nv(o,i-s,s);n=(n<<s)+c,r-=s,this._currentBitPos-=s,this._currentBitPos<0&&(this._currentBitPos=7,this._currentBytePos--)}return n}untake(e){for(this._currentBitPos+=e;this._currentBitPos>7;)this._currentBitPos-=8,this._currentBytePos+=1}_haveBits(){return this._currentBytePos>=0}};function Nv(t,e,r){let n=Uv(e,r);return(t&n)>>>e}function Uv(t,e){return Lv[t]&Dv[Math.min(e+t-1,7)]}function Ig(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Ps(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return ln(r)}function Lg(t){function e(r){return r instanceof Ms?r:new Ms(r,t)}return e}var Ms=class{constructor(e,r){if(!(e instanceof Uint8Array))throw new Error("can only hash Uint8Arrays");this._value=e,this._hashFn=r,this._depth=-1,this._availableBits=0,this._currentBufferIndex=0,this._buffers=[]}async take(e){let r=e;for(;this._availableBits<r;)await this._produceMoreBits();let n=0;for(;r>0;){let o=this._buffers[this._currentBufferIndex],i=Math.min(o.availableBits(),r),s=o.take(i);n=(n<<i)+s,r-=i,this._availableBits-=i,o.availableBits()===0&&this._currentBufferIndex++}return n}untake(e){let r=e;for(;r>0;){let n=this._buffers[this._currentBufferIndex],o=Math.min(n.totalBits()-n.availableBits(),r);n.untake(o),r-=o,this._availableBits+=o,this._currentBufferIndex>0&&n.totalBits()===n.availableBits()&&(this._depth--,this._currentBufferIndex--)}}async _produceMoreBits(){this._depth++;let e=this._depth>0?Ig([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new Fs(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Dg(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:Lg(t.hashFn)};return new lr(e)}var Pv=async function(t){return(await Rm.encode(t)).slice(0,8).reverse()},Fv=async(t,e,r)=>{await Promise.all(t.map(async n=>{if(n.Name==null)throw new Error("Unexpected Link without a Name");if(n.Name.length===2){let o=parseInt(n.Name,16);e._putObjectAt(o,new lr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Ng=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Mv=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Ug=async(t,e,r,n,o)=>{if(n==null){let l=Dg({hashFn:Pv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Fv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Ng(i.pos),c=Mv(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Ng(n.lastBucket._posAtParent));let a=t.Links.find(l=>{if(l.Name==null)return!1;let d=l.Name.substring(0,2),m=l.Name.substring(2);return!(d!==s||m!==""&&m!==e)});if(a==null)return;if(a.Name!=null&&a.Name.substring(2)===e)return a.Hash;n.hamtDepth++;let u=await r.get(a.Hash,o);return t=Ye(u),Ug(t,e,r,n,o)},Pg=Ug;function Ov(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var Os=Ov;function Rv(t){return t[Symbol.asyncIterator]!=null}function zv(t,e){if(Rv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Os(t),{value:n,done:o}=r.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){await i&&(yield n);for await(let c of r)await e(c)&&(yield c)}();let s=e;return function*(){i===!0&&(yield n);for(let c of r)s(c)&&(yield c)}()}var Fg=zv;function $v(t){return t[Symbol.asyncIterator]!=null}function Hv(t,e){if($v(t))return async function*(){for await(let c of t)yield e(c)}();let r=Os(t),{value:n,done:o}=r.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){yield await i;for await(let c of r)yield e(c)}();let s=e;return function*(){yield i;for(let c of r)yield s(c)}()}var fn=Hv;function ht(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Rs=globalThis.CustomEvent??Event;async function*fr(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,o=new EventTarget,i=[],s=ht(),c=ht(),a=!1,u,l=!1;o.addEventListener("task-complete",()=>{c.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of t){if(i.length===r&&(s=ht(),await s.promise),l)break;let p={done:!1};i.push(p),h().then(w=>{p.done=!0,p.ok=!0,p.value=w,o.dispatchEvent(new Rs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new Rs("task-complete"))})}a=!0,o.dispatchEvent(new Rs("task-complete"))}catch(h){u=h,o.dispatchEvent(new Rs("task-complete"))}});function d(){return n?i[0]?.done:!!i.find(h=>h.done)}function*m(){for(;i.length>0&&i[0].done;){let h=i[0];if(i.shift(),h.ok)yield h.value;else throw l=!0,s.resolve(),h.err;s.resolve()}}function*f(){for(;d();)for(let h=0;h<i.length;h++)if(i[h].done){let p=i[h];if(i.splice(h,1),h--,p.ok)yield p.value;else throw l=!0,s.resolve(),p.err;s.resolve()}}for(;;){if(d()||(c=ht(),await c.promise),u!=null)throw u;if(n?yield*m():yield*f(),a&&i.length===0)break}}var zs=class{constructor(e){k(this,"buffer");k(this,"mask");k(this,"top");k(this,"btm");k(this,"next");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}},dn=class{constructor(e={}){k(this,"size");k(this,"hwm");k(this,"head");k(this,"tail");this.hwm=e.splitLimit??16,this.head=new zs(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 r=this.head;this.head=r.next=new zs(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var cl=class extends Error{constructor(r,n){super(r??"The operation was aborted");k(this,"type");k(this,"code");this.type="aborted",this.code=n??"ABORT_ERR"}};function hn(t={}){return jv(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function jv(t,e){e=e??{};let r=e.onEnd,n=new dn,o,i,s,c=ht(),a=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((w,g)=>{i=b=>{i=null,n.push(b);try{w(t(n))}catch(v){g(v)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=ht()})}},u=w=>i!=null?i(w):(n.push(w),o),l=w=>(n=new dn,i!=null?i({error:w}):(n.push({error:w}),o)),d=w=>{if(s)return o;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:w})},m=w=>s?o:(s=!0,w!=null?l(w):u({done:!0})),f=()=>(n=new dn,m(),{done:!0}),h=w=>(m(w),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:a,return:f,throw:h,push:d,end:m,get readableLength(){return n.size},onEmpty:async w=>{let g=w?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let b,v;g!=null&&(b=new Promise((E,T)=>{v=()=>{T(new cl)},g.addEventListener("abort",v)}));try{await Promise.race([c.promise,b])}finally{v!=null&&g!=null&&g?.removeEventListener("abort",v)}}},r==null)return o;let p=o;return o={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(w){return p.throw(w),r!=null&&(r(w),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:d,end(w){return p.end(w),r!=null&&(r(w),r=void 0),o},get readableLength(){return p.readableLength}},o}function Vv(t){return t[Symbol.asyncIterator]!=null}function qv(...t){let e=[];for(let r of t)Vv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=hn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let o of n)r.push(o)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Mg=qv;function pn(t,...e){if(t==null)throw new Error("Empty pipeline");if(ul(t)){let n=t;t=()=>n.source}else if(Rg(t)||Og(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&ul(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)ul(r[n])&&(r[n]=Kv(r[n]));return Wv(...r)}var Wv=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Og=t=>t?.[Symbol.asyncIterator]!=null,Rg=t=>t?.[Symbol.iterator]!=null,ul=t=>t==null?!1:t.sink!=null&&t.source!=null,Kv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=hn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(Og(i))o=async function*(){yield*i,n.end()};else if(Rg(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Mg(n,o())}return t.source};var Gv=(t,e,r,n,o,i,s)=>{async function*c(a={}){let u=a.offset??0,l=a.length??e.Links.length,d=e.Links.slice(u,l);a.onProgress?.(new ce("unixfs:exporter:walk:directory",{cid:t})),yield*pn(d,m=>fn(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>fr(m,{ordered:!0}),m=>Fg(m,f=>f!=null))}return c},zg=Gv;var hr=W(rt(),1);var Xg=W(Hg(),1);var ko=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},fl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},jg=t=>globalThis.DOMException===void 0?new fl(t):new DOMException(t),Vg=t=>{let e=t.reason===void 0?jg("This operation was aborted."):t.reason;return e instanceof Error?e:jg(e)};function dl(t,e,r,n){let o,i=new Promise((s,c)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){s(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:a}=n;a.aborted&&c(Vg(a)),a.addEventListener("abort",()=>{c(Vg(a))})}o=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(l){c(l)}return}let a=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new ko(a);typeof t.cancel=="function"&&t.cancel(),c(u)},e),(async()=>{try{s(await t)}catch(a){c(a)}finally{n.customTimers.clearTimeout.call(void 0,o)}})()});return i.clear=()=>{clearTimeout(o),o=void 0},i}function hl(t,e,r){let n=0,o=t.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;r(t[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var dr=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},pt,vo=class{constructor(){pt.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&dr(this,pt,"f")[this.size-1].priority>=r.priority){dr(this,pt,"f").push(n);return}let o=hl(dr(this,pt,"f"),n,(i,s)=>s.priority-i.priority);dr(this,pt,"f").splice(o,0,n)}dequeue(){let e=dr(this,pt,"f").shift();return e?.run}filter(e){return dr(this,pt,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return dr(this,pt,"f").length}};pt=new WeakMap;var K=function(t,e,r,n,o){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?o.call(t,r):o?o.value=r:e.set(t,r),r},L=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},X,So,Ao,Ut,Ks,_o,Hs,$e,Eo,Se,js,Ae,Bo,Nt,Vs,qg,Wg,Qg,Kg,Gg,qs,pl,yl,Gs,Jg,Ws,Qs=class extends Error{},Co=class extends Xg.default{constructor(e){var r,n,o,i;if(super(),X.add(this),So.set(this,void 0),Ao.set(this,void 0),Ut.set(this,0),Ks.set(this,void 0),_o.set(this,void 0),Hs.set(this,0),$e.set(this,void 0),Eo.set(this,void 0),Se.set(this,void 0),js.set(this,void 0),Ae.set(this,0),Bo.set(this,void 0),Nt.set(this,void 0),Vs.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:vo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(i=(o=e.interval)===null||o===void 0?void 0:o.toString())!==null&&i!==void 0?i:""}\` (${typeof e.interval})`);K(this,So,e.carryoverConcurrencyCount,"f"),K(this,Ao,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),K(this,Ks,e.intervalCap,"f"),K(this,_o,e.interval,"f"),K(this,Se,new e.queueClass,"f"),K(this,js,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,K(this,Vs,e.throwOnTimeout===!0,"f"),K(this,Nt,e.autoStart===!1,"f")}get concurrency(){return L(this,Bo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);K(this,Bo,e,"f"),L(this,X,"m",Gs).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:L(this,Vs,"f"),...r},new Promise((n,o)=>{L(this,Se,"f").enqueue(async()=>{var i,s,c;K(this,Ae,(s=L(this,Ae,"f"),s++,s),"f"),K(this,Ut,(c=L(this,Ut,"f"),c++,c),"f");try{if(!((i=r.signal)===null||i===void 0)&&i.aborted)throw new Qs("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=dl(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,L(this,X,"m",Jg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof ko&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{L(this,X,"m",Qg).call(this)}},r),this.emit("add"),L(this,X,"m",qs).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return L(this,Nt,"f")?(K(this,Nt,!1,"f"),L(this,X,"m",Gs).call(this),this):this}pause(){K(this,Nt,!0,"f")}clear(){K(this,Se,new(L(this,js,"f")),"f")}async onEmpty(){L(this,Se,"f").size!==0&&await L(this,X,"m",Ws).call(this,"empty")}async onSizeLessThan(e){L(this,Se,"f").size<e||await L(this,X,"m",Ws).call(this,"next",()=>L(this,Se,"f").size<e)}async onIdle(){L(this,Ae,"f")===0&&L(this,Se,"f").size===0||await L(this,X,"m",Ws).call(this,"idle")}get size(){return L(this,Se,"f").size}sizeBy(e){return L(this,Se,"f").filter(e).length}get pending(){return L(this,Ae,"f")}get isPaused(){return L(this,Nt,"f")}};So=new WeakMap,Ao=new WeakMap,Ut=new WeakMap,Ks=new WeakMap,_o=new WeakMap,Hs=new WeakMap,$e=new WeakMap,Eo=new WeakMap,Se=new WeakMap,js=new WeakMap,Ae=new WeakMap,Bo=new WeakMap,Nt=new WeakMap,Vs=new WeakMap,X=new WeakSet,qg=function(){return L(this,Ao,"f")||L(this,Ut,"f")<L(this,Ks,"f")},Wg=function(){return L(this,Ae,"f")<L(this,Bo,"f")},Qg=function(){var e;K(this,Ae,(e=L(this,Ae,"f"),e--,e),"f"),L(this,X,"m",qs).call(this),this.emit("next")},Kg=function(){L(this,X,"m",yl).call(this),L(this,X,"m",pl).call(this),K(this,Eo,void 0,"f")},Gg=function(){let e=Date.now();if(L(this,$e,"f")===void 0){let r=L(this,Hs,"f")-e;if(r<0)K(this,Ut,L(this,So,"f")?L(this,Ae,"f"):0,"f");else return L(this,Eo,"f")===void 0&&K(this,Eo,setTimeout(()=>{L(this,X,"m",Kg).call(this)},r),"f"),!0}return!1},qs=function(){if(L(this,Se,"f").size===0)return L(this,$e,"f")&&clearInterval(L(this,$e,"f")),K(this,$e,void 0,"f"),this.emit("empty"),L(this,Ae,"f")===0&&this.emit("idle"),!1;if(!L(this,Nt,"f")){let e=!L(this,X,"a",Gg);if(L(this,X,"a",qg)&&L(this,X,"a",Wg)){let r=L(this,Se,"f").dequeue();return r?(this.emit("active"),r(),e&&L(this,X,"m",pl).call(this),!0):!1}}return!1},pl=function(){L(this,Ao,"f")||L(this,$e,"f")!==void 0||(K(this,$e,setInterval(()=>{L(this,X,"m",yl).call(this)},L(this,_o,"f")),"f"),K(this,Hs,Date.now()+L(this,_o,"f"),"f"))},yl=function(){L(this,Ut,"f")===0&&L(this,Ae,"f")===0&&L(this,$e,"f")&&(clearInterval(L(this,$e,"f")),K(this,$e,void 0,"f")),K(this,Ut,L(this,So,"f")?L(this,Ae,"f"):0,"f"),L(this,X,"m",Gs).call(this)},Gs=function(){for(;L(this,X,"m",qs).call(this););},Jg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Qs("The task was aborted."))},{once:!0})})},Ws=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function Yg(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=ur(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,hr.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=un.unmarshal(e.Data)}catch(u){throw(0,hr.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=ur(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,hr.default)(new Error("Inconsistent block sizes and dag links"),"ERR_NOT_UNIXFS");for(let u=0;u<e.Links.length;u++){let l=e.Links[u],d=n,m=d+c.blockSizes[u];if((o>=d&&o<m||i>=d&&i<=m||o<d&&i>m)&&a.push({link:l,blockStart:n}),n=m,n>i)break}await pn(a,u=>fn(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>fr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case ir:f=Ye(d);break;case $n:f=d;break;default:r.end((0,hr.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new Co({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:l.Hash})),await Yg(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Xv=(t,e,r,n,o,i,s)=>{async function*c(a={}){let u=r.fileSize();if(u===void 0)throw new Error("File was a directory");let{start:l,end:d}=an(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=hn();a.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:t})),Yg(s,e,h,0n,l,d,a).catch(p=>{h.end(p)});for await(let p of h)if(p!=null){if(m+=BigInt(p.byteLength),m>f)throw h.end(),(0,hr.default)(new Error("Read too many bytes - the file size reported by the UnixFS data in the root node may be incorrect"),"ERR_OVER_READ");m===f&&h.end(),a.onProgress?.(new ce("unixfs:exporter:progress:unixfs:file",{bytesRead:m,totalBytes:f,fileSize:u})),yield p}if(m<f)throw(0,hr.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},ml=Xv;var Yv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),Zg(e,n,o,i,s,a)}return c};async function*Zg(t,e,r,n,o,i){let s=t.Links,c=pn(s,a=>fn(a,u=>async()=>{let l=u.Name!=null?u.Name.substring(2):null;if(l!=null&&l!==""){let d=await r(u.Hash,l,`${e}/${l}`,[],n+1,o,i);return{entries:d.entry==null?[]:[d.entry]}}else{let d=await o.get(u.Hash,i);return t=Ye(d),i.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:u.Hash})),{entries:Zg(t,e,r,n,o,i)}}}),a=>fr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var ew=Yv;var Zv=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,eE={raw:ml,file:ml,directory:zg,"hamt-sharded-directory":ew,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},tE=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ye(a),l,d;if(e==null&&(e=t.toString()),u.Data==null)throw(0,To.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=un.unmarshal(u.Data)}catch(f){throw(0,To.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Pg(u,n[0],s):f=Zv(u,n[0]),f==null)throw(0,To.default)(new Error("file does not exist"),"ERR_NOT_FOUND");let h=n.shift(),p=`${r}/${h}`;d={cid:f,toResolve:n,name:h??"",path:p}}let m=eE[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,To.default)(new Error("could not find content exporter"),"ERR_NOT_FOUND");return l.isDirectory()?{entry:{type:"directory",name:e,path:r,cid:t,content:m,unixfs:l,depth:i,node:u,size:l.fileSize()},next:d}:{entry:{type:"file",name:e,path:r,cid:t,content:m,unixfs:l,depth:i,node:u,size:l.fileSize()},next:d}},tw=tE;var rE={[ir]:tw,[$n]:ug,[La]:ig,[ng.code]:ag},nw=async(t,e,r,n,o,i,s)=>{let c=rE[t.code];if(c==null)throw(0,rw.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,nw,o,i,s)},ow=nw;var nE=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),oE=t=>{if(t instanceof Uint8Array)return{cid:V.decode(t),toResolve:[]};let e=V.asCID(t);if(e!=null)return{cid:e,toResolve:[]};if(typeof t=="string"){t.indexOf("/ipfs/")===0&&(t=t.substring(6));let r=nE(t);return{cid:V.parse(r[0]),toResolve:r.slice(1)}}throw(0,Js.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*iE(t,e,r={}){let{cid:n,toResolve:o}=oE(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await ow(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Js.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");if(a.entry!=null&&(yield a.entry),a.next==null)return;o=a.next.toResolve,n=a.next.cid,i=a.next.name,s=a.next.path}}async function iw(t,e,r={}){let n=await eg(iE(t,e,r));if(n==null)throw(0,Js.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var sE=Xm(),aE=Dt({fileChunkEncoder:Et,smallFileEncoder:Et,chunker:_u(1024*1024),fileLayout:gs(1024)});async function sw(t){let e=cE(t),r=await uE(e);return{cid:r.at(-1).cid,blocks:r}}async function aw(t,e,r){let n=await iw(e.toString(),t,{length:r.size}),o=[];for await(let i of n.content())o.push(i);return new File(o,n.name,{type:r.type,lastModified:0})}function cE(t){let{readable:e,writable:r}=new TransformStream({},sE),n=Jm({writable:r,settings:aE}),o=new gl("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function uE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var Io,gl=class{constructor(e,r){nt(this,Io,void 0);k(this,"name");this.name=e,fe(this,Io,r)}async finalize(e){let r=co(e);return await Z(this,Io).stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};Io=new WeakMap;async function lw(t,e,r,n){let o;for(let i of r){let s=await lE(t,i);o=await xp(t,e,i.key,s,n);let c=o.root.toString();o.additions.some(u=>u.cid.toString()===c)||await t.get(o.root)||(console.error(`missing root in additions: ${o.additions.length} ${c} keys: ${r.map(l=>l.key).toString()}`),o.head=e);for(let{cid:u,bytes:l}of[...o.additions,...o.removals,o.event])t.putSync(u,l);e=o.head}return{head:e}}async function lE(t,e){let r;e.del?r={del:!0}:(await fE(t,e.value),r={doc:e.value});let n=await Ge({value:r,hasher:de,codec:q});return t.putSync(n.cid,n.bytes),n.cid}async function fE(t,e){e._files&&await cw(t,e._files),e._publicFiles&&await cw(t,e._publicFiles,!0)}async function cw(t,e,r=!1){let n=t.parent,o=new _t(n);n.transactions.add(o);let i=[],s=0;for(let c in e)if(File===e[c].constructor){let a=e[c];s+=a.size;let{cid:u,blocks:l}=await sw(a);i.push(c);for(let d of l)o.putSync(d.cid,d.bytes);e[c]={cid:u,type:a.type,size:a.size}}if(s>1024*1024*1)throw new Error("Sync limit for files in a single update is 1MB");if(i.length){let c=await n.loader?.commit(o,{files:e},{public:r});if(c)for(let a of i)e[a]={car:c,...e[a]}}}async function fw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await kp(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await kl(t,n)}function xl(t,{doc:e}){e&&(e._files&&uw(t,e._files),e._publicFiles&&uw(t,e._publicFiles,!0))}function uw(t,e,r=!1){for(let n in e){let o=e[n];if(o.cid&&(r&&(o.url=`https://${o.cid.toString()}.ipfs.w3s.link/`),o.car&&t.loader)){let i=t.loader;o.file=async()=>await aw({get:async s=>{let a=await(await i.loadFileCar(o.car,r)).get(s);if(!a)throw new Error(`Missing block ${s.toString()}`);return a.bytes}},o.cid,o)}e[n]=o}}async function kl(t,e){let r=await t.get(e);if(!r)throw new Error(`Missing linked block ${e.toString()}`);let{value:n}=await vt({bytes:r.bytes,hasher:de,codec:q});return xl(t,n),n}var wl=class extends Je{async get(e){try{return await super.get(e)}catch(r){return console.error("missing event",e.toString(),r),{value:null}}}};async function Lo(t,e,r,n){let o=n.dirty?new wl(t):new Je(t);return{result:(await bl(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function bl(t,e,r,n,o=[],i,s,c){if(c<=0)return o;let a=r.map(u=>u.toString());for(let u of n)if(a.includes(u.toString()))return o;for(let u of r){if(s.has(u.toString()))continue;s.add(u.toString());let{value:l}=await e.get(u);if(!l)continue;let{key:d,value:m}=l.data;if(i.has(d))l.parents&&(o=await bl(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await kl(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await bl(t,e,l.parents,n,o,i,s,c))}}return o}async function*dw(t,e){for await(let[r,n]of Fc(t,e)){let o=await kl(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*hw(t,e){for await(let r of Nc(t,e))yield r}async function pw(t,e){let r=new Vi(t),n=new _t(t);for await(let[,i]of Fc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of Nc(r,e));let o=await Wr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await Lo(r,e,[],{});for(let i of r.cids){let s=await t.get(i);if(!s)throw new Error("Missing block: "+i.toString());await n.put(i,s.bytes)}await t.commitCompaction(n,e)}var Xs=class{constructor(){k(this,"head",[]);k(this,"zoomers",new Set);k(this,"watchers",new Set);k(this,"blocks",null)}setHead(e){this.head=e}async applyHead(e,r,n,o=null){let i=this.head.sort((u,l)=>u.toString().localeCompare(l.toString()));if(r=r.sort((u,l)=>u.toString().localeCompare(l.toString())),i.toString()===r.toString()){this.watchers.forEach(u=>u(o||[]));return}let s=n.sort((u,l)=>u.toString().localeCompare(l.toString()));if(i.toString()===s.toString()){this.setHead(r),this.watchers.forEach(u=>u(o||[]));return}let c=async(u,l)=>{if(u instanceof _t)return await l(u);if(!this.blocks)throw new Error("missing blocks");return await this.blocks.transaction(l,void 0,{noLoader:!0})},{head:a}=await c(e,async u=>{let l=this.head;for(let m of r)l=await Kn(u,l,m);let d=await Wr(u,l);for(let{cid:m,bytes:f}of[...d.additions,...d.removals])u.putSync(m,f);return{head:l}});this.watchers.size&&!o&&(o=(await Lo(this.blocks,a,n,{})).result),this.setHead(a),this.zoomers.forEach(u=>u()),this.watchers.forEach(u=>u(o||[]))}onTick(e){this.watchers.add(e)}onZoom(e){this.zoomers.add(e)}};var Ys=class{constructor(e,r){k(this,"name");k(this,"opts",{});k(this,"ready");k(this,"blocks");k(this,"indexBlocks");k(this,"indexers",new Map);k(this,"clock",new Xs);this.name=e||null,this.opts=r||this.opts,this.blocks=new ji(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new Hi(this.opts.persistIndexes&&this.name?this.name+".idx":null,this,this.opts),this.ready=Promise.all([this.blocks.ready,this.indexBlocks.ready]).then(()=>{}),this.clock.onZoom(()=>{for(let n of this.indexers.values())n._resetIndex()})}async bulk(e,r){return await this.ready,await this.blocks.transaction(async n=>{let o=[...this.clock.head],{head:i}=await lw(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(xl(this.blocks,{doc:c}),{key:s,value:c,del:a})),await this.clock.applyHead(n,i,o,e),{head:i}})}async allDocs(){await this.ready;let e=[];for await(let r of dw(this.blocks,this.clock.head))e.push(r);return{result:e,head:this.clock.head}}async vis(){await this.ready;let e=[];for await(let r of hw(this.blocks,this.clock.head))e.push(r);return e.join(`
4
4
  `)}async get(e){await this.ready;let r=await fw(this.blocks,this.clock.head,e);return r.del?null:r}async changes(e=[],r={}){return await this.ready,await Lo(this.blocks,this.clock.head,e,r)}async compact(){if(await this.ready,!(this.blocks.loader&&this.blocks.loader.carLog.length<2))return await pw(this.blocks,this.clock.head)}};var pr=class{constructor(e,r){k(this,"name");k(this,"opts",{});k(this,"_listeners",new Set);k(this,"_crdt");k(this,"_writeQueue");this.name=e||null,this.opts=r||this.opts,this._crdt=new Ys(e,this.opts),this._crdt.clock.onTick(n=>{this._notify(n)}),this._writeQueue=Al(async n=>await this._crdt.bulk(n))}async get(e){let r=await this._crdt.get(e).catch(o=>{throw o.message=`Not found: ${e} - `+o.message,o});if(!r)throw new Error(`Not found: ${e}`);let{doc:n}=r;return{_id:e,...n}}async put(e){let{_id:r,...n}=e,o=r||Sl(),i=await this._writeQueue.push({key:o,value:n});return{id:o,clock:i?.head}}async del(e){let r=await this._writeQueue.push({key:e,del:!0});return{id:e,clock:r?.head}}async changes(e=[],r={}){let{result:n,head:o}=await this._crdt.changes(e,r);return{rows:n.map(({key:s,value:c,del:a})=>({key:s,value:a?{_id:s,_deleted:!0}:{_id:s,...c}})),clock:o}}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}async query(e,r={}){return await(typeof e=="string"?qn({_crdt:this._crdt},e):qn({_crdt:this._crdt},dE(e.toString()),e)).query(r)}async compact(){await this._crdt.compact()}async getDashboardURL(e=!0){let r="https://dashboard.fireproof.storage/";if(!this._crdt.blocks.loader?.remoteCarStore)return new URL("/howto",r);e&&await this.compact();let n=await this._crdt.blocks.loader?.metaStore?.load();if(!n)throw new Error("Can't sync empty database: save data first");if(n.length>1)throw new Error("Can't sync database with split heads: make an update first");let o=n[0],i={car:o.car.toString()};o.key&&(i.key=o.key.toString()),this.name&&(i.name=this.name);let s=new URL("/import#"+new URLSearchParams(i).toString(),r);return console.log("Import to dashboard: "+s.toString()),s}openDashboard(){this.getDashboardURL().then(e=>{e&&window.open(e.toString(),"_blank")})}async _notify(e){if(this._listeners.size){let r=e.map(({key:n,value:o})=>({_id:n,...o}));for(let n of this._listeners)await(async()=>await n(r))().catch(o=>{console.error("subscriber error",o)})}}};k(pr,"databases",new Map);function RI(t,e){return pr.databases.has(t)||pr.databases.set(t,new pr(t,e)),pr.databases.get(t)}function dE(t){let e=/\(([^,()]+,\s*[^,()]+|\[[^\]]+\],\s*[^,()]+)\)/g,r=null;return Array.from(t.matchAll(e),o=>o[1].trim()).length===0&&(r=/=>\s*(.*)/.exec(t)),r?r[1]:t}export{Li as DataStore,pr as Database,Bc as Index,Vr as Loader,Ii as MetaStore,Di as STORAGE_VERSION,Qh as cidListIncludes,yi as encodeCarFile,Ah as encodeCarHeader,RI as fireproof,qn as index,_h as parseCarFile,ox as toHexString};
5
5
  /*! Bundled license information:
6
6