@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
  "use strict";var gw=Object.create;var mn=Object.defineProperty;var ww=Object.getOwnPropertyDescriptor;var bw=Object.getOwnPropertyNames;var xw=Object.getPrototypeOf,kw=Object.prototype.hasOwnProperty;var vw=(t,e,r)=>e in t?mn(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),Q=(t,e)=>{for(var r in e)mn(t,r,{get:e[r],enumerable:!0})},Al=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of bw(e))!kw.call(t,o)&&o!==r&&mn(t,o,{get:()=>e[o],enumerable:!(n=ww(e,o))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?gw(xw(t)):{},Al(e||!t||!t.__esModule?mn(r,"default",{value:t,enumerable:!0}):r,t)),Ew=t=>Al(mn({},"__esModule",{value:!0}),t);var k=(t,e,r)=>(vw(t,typeof e!="symbol"?e+"":e,r),r),_l=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)};var Z=(t,e,r)=>(_l(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)=>(_l(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r);var ea=(t,e,r,n)=>({set _(o){fe(t,e,o,r)},get _(){return Z(t,e,n)}});var ad=H((mA,sd)=>{sd.exports=Ua;var id=128,v0=127,E0=~v0,S0=Math.pow(2,31);function Ua(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw Ua.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=S0;)e[r++]=t&255|id,t/=128;for(;t&E0;)e[r++]=t&255|id,t>>>=7;return e[r]=t|0,Ua.bytes=r-n+1,e}});var ld=H((gA,ud)=>{ud.exports=Pa;var A0=128,cd=127;function Pa(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c||o>49)throw Pa.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&cd)<<o:(s&cd)*Math.pow(2,o),o+=7}while(s>=A0);return Pa.bytes=i-n,r}});var dd=H((wA,fd)=>{var _0=Math.pow(2,7),B0=Math.pow(2,14),C0=Math.pow(2,21),T0=Math.pow(2,28),I0=Math.pow(2,35),L0=Math.pow(2,42),D0=Math.pow(2,49),N0=Math.pow(2,56),U0=Math.pow(2,63);fd.exports=function(t){return t<_0?1:t<B0?2:t<C0?3:t<T0?4:t<I0?5:t<L0?6:t<D0?7:t<N0?8:t<U0?9:10}});var ni=H((bA,hd)=>{hd.exports={encode:ad(),decode:ld(),encodingLength:dd()}});var Zh=H(bc=>{bc.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"+sx(String(r),3)+"M"+String(n);return t>0?"F"+o:"D"+Yh(o)};bc.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?Yh(t):t).slice(2).split("M");return+((e?"-":"")+r[1]+"e"+String(Number(r[0])-500))};function Yh(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 sx(t,e){return" ".repeat(e-t.length).substr(0,e)+t}});var tp=H(ep=>{var ax={"?":"?@","!":"??",'"':"?%"};function cx(t){return/[!"]/.test(t)?t.replace(/[\?!"]/g,function(e){return ax[e]}):t}var ux={"?@":"?","??":"!","?%":'"'};function lx(t){return/\?[%\?@]/.test(t)?t.replace(/\?[%\?@]/g,function(e){return ux[e]}):t}ep.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):cx(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(lx(p)));for(var g=a-h,w=g;w<a;w++)s[w+1]=[],a=g,c=s[a]}return s[0][0]}}});var np=H(J=>{var fx=Zh(),dx=tp(),tB=J.flip=function(t){var e=t.toString(),r="";for(var n in e)r+=e[n]=="."?".":9-+e[n];return r};J.number=fx;J.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)}};J.encode=function(t){return J[typeof t].encode(t)};J.decode=function(t){if(t==="")return t;if(!rp[t[0]])throw new Error("no decoder for:"+JSON.stringify(t));return rp[t[0]](t)};J.object=dx.factory(J);J.boolean={encode:function(t){return t?"C":"B"},decode:function(t){return t==="C"}};J.undefined={encode:function(t){return"L"},decode:function(){}};var rp={A:J.object.decode,B:J.boolean.decode,C:J.boolean.decode,D:J.number.decode,F:J.number.decode,J:J.string.decode,K:J.object.decode,L:J.undefined.decode};J.buffer=!1;J.type="charwise"});var Fp=H((ZB,Pp)=>{"use strict";Pp.exports=qx;function qx(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 zp=H(Rp=>{"use strict";var Zi=Rp;Zi.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 Qr=new Array(64),Op=new Array(123);for(Oe=0;Oe<64;)Op[Qr[Oe]=Oe<26?Oe+65:Oe<52?Oe+71:Oe<62?Oe-4:Oe-59|43]=Oe++;var Oe;Zi.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++]=Qr[u>>2],a=(u&3)<<4,c=1;break;case 1:i[s++]=Qr[a|u>>4],a=(u&15)<<2,c=2;break;case 2:i[s++]=Qr[a|u>>6],i[s++]=Qr[u&63],c=0;break}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),s=0)}return c&&(i[s++]=Qr[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 Mp="invalid encoding";Zi.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=Op[a])===void 0)throw Error(Mp);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(Mp);return n-o};Zi.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var Hp=H((t3,$p)=>{"use strict";$p.exports=es;function es(){this._listeners={}}es.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};es.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};es.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 Qp=H((r3,Gp)=>{"use strict";Gp.exports=jp(jp);function jp(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,Vp),t.writeFloatBE=e.bind(null,qp);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,Wp),t.readFloatBE=r.bind(null,Kp)}(),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,Vp,0,4),t.writeDoubleBE=e.bind(null,qp,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,Wp,0,4),t.readDoubleBE=r.bind(null,Kp,4,0)}(),t}function Vp(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 qp(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 Wp(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function Kp(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Jp=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 Yp=H(Xp=>{"use strict";var Vc=Xp;Vc.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};Vc.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))};Vc.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 ey=H((o3,Zp)=>{"use strict";Zp.exports=Wx;function Wx(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 ry=H((i3,ty)=>{"use strict";ty.exports=re;var to=lt();function re(t,e){this.lo=t>>>0,this.hi=e>>>0}var cr=re.zero=new re(0,0);cr.toNumber=function(){return 0};cr.zzEncode=cr.zzDecode=function(){return this};cr.length=function(){return 1};var Kx=re.zeroHash="\0\0\0\0\0\0\0\0";re.fromNumber=function(e){if(e===0)return cr;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(to.isString(e))if(to.Long)e=to.Long.fromString(e);else return re.fromNumber(parseInt(e,10));return e.low||e.high?new re(e.low>>>0,e.high>>>0):cr};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 to.Long?new to.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===Kx?cr: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(qc=>{"use strict";var D=qc;D.asPromise=Fp();D.base64=zp();D.EventEmitter=Hp();D.float=Qp();D.inquire=Jp();D.utf8=Yp();D.pool=ey();D.LongBits=ry();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||qc;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 ny(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=ny;D.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function oy(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&&ny(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=oy;D.ProtocolError=oy("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 rs=H((a3,cy)=>{"use strict";cy.exports=O;var De=lt(),Wc,ts=De.LongBits,iy=De.base64,sy=De.utf8;function ro(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function Gc(){}function Gx(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 ro(Gc,0,0),this.tail=this.head,this.states=null}var ay=function(){return De.Buffer?function(){return(O.create=function(){return new Wc})()}:function(){return new O}};O.create=ay();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 ro(e,r,n),this.len+=r,this};function Qc(t,e,r){e[r]=t&255}function Qx(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Jc(t,e){this.len=t,this.next=void 0,this.val=e}Jc.prototype=Object.create(ro.prototype);Jc.prototype.fn=Qx;O.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Jc((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(Xc,10,ts.fromNumber(e)):this.uint32(e)};O.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Xc(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=ts.from(e);return this._push(Xc,r.length(),r)};O.prototype.int64=O.prototype.uint64;O.prototype.sint64=function(e){var r=ts.from(e).zzEncode();return this._push(Xc,r.length(),r)};O.prototype.bool=function(e){return this._push(Qc,1,e?1:0)};function Kc(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(Kc,4,e>>>0)};O.prototype.sfixed32=O.prototype.fixed32;O.prototype.fixed64=function(e){var r=ts.from(e);return this._push(Kc,4,r.lo)._push(Kc,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 Jx=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(Qc,1,0);if(De.isString(e)){var n=O.alloc(r=iy.length(e));iy.decode(e,n,0),e=n}return this.uint32(r)._push(Jx,r,e)};O.prototype.string=function(e){var r=sy.length(e);return r?this.uint32(r)._push(sy.write,r,e):this._push(Qc,1,0)};O.prototype.fork=function(){return this.states=new Gx(this),this.head=this.tail=new ro(Gc,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 ro(Gc,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){Wc=t,O.create=ay(),Wc._configure()}});var Yc=H((c3,ly)=>{"use strict";ly.exports=Ze;var uy=rs();(Ze.prototype=Object.create(uy.prototype)).constructor=Ze;var Ct=lt();function Ze(){uy.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 Xx(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(Xx,r,e),this};Ze._configure()});var os=H((u3,yy)=>{"use strict";yy.exports=X;var et=lt(),eu,hy=et.LongBits,Yx=et.utf8;function Re(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function X(t){this.buf=t,this.pos=0,this.len=t.length}var fy=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new X(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new X(e);throw Error("illegal buffer")},py=function(){return et.Buffer?function(r){return(X.create=function(o){return et.Buffer.isBuffer(o)?new eu(o):fy(o)})(r)}:fy};X.create=py();X.prototype._slice=et.Array.prototype.subarray||et.Array.prototype.slice;X.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}}();X.prototype.int32=function(){return this.uint32()|0};X.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Zc(){var t=new hy(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")}X.prototype.bool=function(){return this.uint32()!==0};function ns(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}X.prototype.fixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return ns(this.buf,this.pos+=4)};X.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Re(this,4);return ns(this.buf,this.pos+=4)|0};function dy(){if(this.pos+8>this.len)throw Re(this,8);return new hy(ns(this.buf,this.pos+=4),ns(this.buf,this.pos+=4))}X.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};X.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};X.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)};X.prototype.string=function(){var e=this.bytes();return Yx.read(e,0,e.length)};X.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};X.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};X._configure=function(t){eu=t,X.create=py(),eu._configure();var e=et.Long?"toLong":"toNumber";et.merge(X.prototype,{int64:function(){return Zc.call(this)[e](!1)},uint64:function(){return Zc.call(this)[e](!0)},sint64:function(){return Zc.call(this).zzDecode()[e](!1)},fixed64:function(){return dy.call(this)[e](!0)},sfixed64:function(){return dy.call(this)[e](!1)}})}});var tu=H((l3,wy)=>{"use strict";wy.exports=ur;var gy=os();(ur.prototype=Object.create(gy.prototype)).constructor=ur;var my=lt();function ur(t){gy.call(this,t)}ur._configure=function(){my.Buffer&&(ur.prototype._slice=my.Buffer.prototype.slice)};ur.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))};ur._configure()});var xy=H((f3,by)=>{"use strict";by.exports=no;var ru=lt();(no.prototype=Object.create(ru.EventEmitter.prototype)).constructor=no;function no(t,e,r){if(typeof t!="function")throw TypeError("rpcImpl must be a function");ru.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=!!e,this.responseDelimited=!!r}no.prototype.rpcCall=function t(e,r,n,o,i){if(!o)throw TypeError("request must be specified");var s=this;if(!i)return ru.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}};no.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var vy=H(ky=>{"use strict";var Zx=ky;Zx.Service=xy()});var Sy=H((h3,Ey)=>{"use strict";Ey.exports={}});var By=H(_y=>{"use strict";var he=_y;he.build="minimal";he.Writer=rs();he.BufferWriter=Yc();he.Reader=os();he.BufferReader=tu();he.util=lt();he.rpc=vy();he.roots=Sy();he.configure=Ay;function Ay(){he.util._configure(),he.Writer._configure(he.BufferWriter),he.Reader._configure(he.BufferReader)}Ay()});var Ty=H((y3,Cy)=>{"use strict";Cy.exports=By()});var _m=H((yo,As)=>{(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,Mo=2869860233,Oo=951274213,Ro=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,Mo),g^=T,g=i(g,19),g+=b,g=o(g,5)+1444728091,U=o(U,Mo),U=i(U,16),U=o(U,Oo),b^=U,b=i(b,17),b+=v,b=o(b,5)+197830471,A=o(A,Oo),A=i(A,17),A=o(A,Ro),v^=A,v=i(v,15),v+=E,v=o(v,5)+2530024501,P=o(P,Ro),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,Ro),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,Oo),A=i(A,17),A=o(A,Ro),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,Mo),U=i(U,16),U=o(U,Oo),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,Mo),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 yo<"u"?(typeof As<"u"&&As.exports&&(yo=As.exports=r),yo.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)})(yo)});var Mu=H(($3,Bm)=>{Bm.exports=_m()});var rt=H((_C,tg)=>{"use strict";function eg(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function $2(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 eg(t,r)}catch{r.message=t.message,r.stack=t.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(t)),eg(new o,r)}}tg.exports=$2});var vg=H((fT,kg)=>{"use strict";kg.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(nv,0),a=~(4294967295<<i+1),u=xg(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(ov),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(iv)}};function nv(t,e){return t+xg(e)}function xg(t){let e=t;return e=e-(e>>1&1431655765),e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>24}function ov(t,e){return t[0]-e[0]}function iv(t){return t[1]}});var Vg=H((S4,hl)=>{"use strict";var Jv=Object.prototype.hasOwnProperty,ue="~";function Ao(){}Object.create&&(Ao.prototype=Object.create(null),new Ao().__proto__||(ue=!1));function Xv(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function jg(t,e,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new Xv(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 Hs(t,e){--t._eventsCount===0?t._events=new Ao:delete t._events[e]}function se(){this._events=new Ao,this._eventsCount=0}se.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Jv.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 jg(this,e,r,n,!1)};se.prototype.once=function(e,r,n){return jg(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 Hs(this,i),this;var s=this._events[i];if(s.fn)s.fn===r&&(!o||s.once)&&(!n||s.context===n)&&Hs(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:Hs(this,i)}return this};se.prototype.removeAllListeners=function(e){var r;return e?(r=ue?ue+e:e,this._events[r]&&Hs(this,r)):(this._events=new Ao,this._eventsCount=0),this};se.prototype.off=se.prototype.removeListener;se.prototype.addListener=se.prototype.on;se.prefixed=ue;se.EventEmitter=se;typeof hl<"u"&&(hl.exports=se)});var yE={};Q(yE,{DataStore:()=>Qn,Database:()=>Pt,Index:()=>Mi,Loader:()=>Yt,MetaStore:()=>Gn,STORAGE_VERSION:()=>Jn,cidListIncludes:()=>gc,encodeCarFile:()=>Vn,encodeCarHeader:()=>tc,fireproof:()=>hE,index:()=>Wr,parseCarFile:()=>rc,toHexString:()=>Xh});module.exports=Ew(yE);var zo="0123456789abcdef",$o=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+=zo.charAt(this.bytes[r]>>>4),e+=zo.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+=zo.charAt(this.bytes[r]>>>4),e+=zo.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}},ta=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??Sw()}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 $o.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,$o.ofInner(e)}},Sw=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new ra;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)}},ra=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++]}},Bl,Cl=()=>Aw().toString(),Aw=()=>(Bl||(Bl=new ta)).generate();function Tl(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 _w=Dl,Il=128,Bw=127,Cw=~Bw,Tw=Math.pow(2,31);function Dl(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Tw;)e[r++]=t&255|Il,t/=128;for(;t&Cw;)e[r++]=t&255|Il,t>>>=7;return e[r]=t|0,Dl.bytes=r-n+1,e}var Iw=na,Lw=128,Ll=127;function na(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw na.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&Ll)<<o:(s&Ll)*Math.pow(2,o),o+=7}while(s>=Lw);return na.bytes=i-n,r}var Dw=Math.pow(2,7),Nw=Math.pow(2,14),Uw=Math.pow(2,21),Pw=Math.pow(2,28),Fw=Math.pow(2,35),Mw=Math.pow(2,42),Ow=Math.pow(2,49),Rw=Math.pow(2,56),zw=Math.pow(2,63),$w=function(t){return t<Dw?1:t<Nw?2:t<Uw?3:t<Pw?4:t<Fw?5:t<Mw?6:t<Ow?7:t<Rw?8:t<zw?9:10},Hw={encode:_w,decode:Iw,encodingLength:$w},jw=Hw,gn=jw;var wn=(t,e=0)=>[gn.decode(t,e),gn.decode.bytes],mr=(t,e,r=0)=>(gn.encode(t,e,r),e),gr=t=>gn.encodingLength(t);var kE=new Uint8Array(0);var Nl=(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 Ul=t=>new TextEncoder().encode(t),Pl=t=>new TextDecoder().decode(t);var Ft=(t,e)=>{let r=e.byteLength,n=gr(t),o=n+gr(r),i=new Uint8Array(o+r);return mr(t,i,0),mr(r,i,n),i.set(e,o),new wr(t,r,e,i)},br=t=>{let e=ot(t),[r,n]=wn(e),[o,i]=wn(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new wr(r,o,s,e)},Fl=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Nl(t.bytes,r.bytes)}},wr=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var ua={};Q(ua,{base58btc:()=>He,base58flickr:()=>Qw});function Vw(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 qw=Vw,Ww=qw,Ml=Ww;var ia=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")}},sa=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 Ol(this,e)}},aa=class{constructor(e){this.decoders=e}or(e){return Ol(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`)}},Ol=(t,e)=>new aa({...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 ia(e,r,n),this.decoder=new sa(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},xr=({name:t,prefix:e,encode:r,decode:n})=>new ca(t,e,r,n),yt=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Ml(r,e);return xr({prefix:t,name:e,encode:n,decode:i=>ot(o(i))})},Kw=(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},Gw=(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})=>xr({prefix:e,name:t,encode(o){return Gw(o,n,r)},decode(o){return Kw(o,n,r,t)}});var He=yt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Qw=yt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var la={};Q(la,{base32:()=>kr,base32hex:()=>Zw,base32hexpad:()=>tb,base32hexpadupper:()=>rb,base32hexupper:()=>eb,base32pad:()=>Xw,base32padupper:()=>Yw,base32upper:()=>Jw,base32z:()=>nb});var kr=G({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Jw=G({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Xw=G({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Yw=G({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Zw=G({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),eb=G({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),tb=G({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),rb=G({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),nb=G({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var fa=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return ib(r,da(t),e||He.encoder);default:return sb(r,da(t),e||kr.encoder)}};var Rl=new WeakMap,da=t=>{let e=Rl.get(t);if(e==null){let r=new Map;return Rl.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!==bn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==ab)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=Ft(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&&Fl(e.multihash,n.multihash)}toString(e){return fa(this,e)}toJSON(){return{"/":fa(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||zl(n,o,i.bytes))}else if(r[cb]===!0){let{version:n,multihash:o,code:i}=r,s=br(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!==bn)throw new Error(`Version 0 CID must use dag-pb (code: ${bn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=zl(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,bn,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 wr(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]=wn(e.subarray(r));return r+=m,d},o=n(),i=bn;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]=ob(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 da(i).set(n,e),i}},ob=(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 kr.prefix:{let r=e||kr;return[kr.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)]}}},ib=(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},sb=(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},bn=112,ab=18,zl=(t,e,r)=>{let n=gr(t),o=n+gr(e),i=new Uint8Array(o+r.byteLength);return mr(t,i,0),mr(e,i,n),i.set(r,o),i},cb=Symbol.for("@ipld/js-cid/CID");var $l=(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:$l(e),bytes:r}}};je=new WeakMap;var xn,Ot=class{constructor(...e){nt(this,xn,void 0);fe(this,xn,e)}async get(e){for(let r of Z(this,xn)){let n=await r.get(e);if(n)return n}}};xn=new WeakMap;var ha=class{constructor(e){k(this,"value");k(this,"next");this.value=e}},Ve,Rt,zt,kn=class{constructor(){nt(this,Ve,void 0);nt(this,Rt,void 0);nt(this,zt,void 0);this.clear()}enqueue(e){let r=new ha(e);Z(this,Ve)?(Z(this,Rt).next=r,fe(this,Rt,r)):(fe(this,Ve,r),fe(this,Rt,r)),ea(this,zt)._++}dequeue(){let e=Z(this,Ve);if(e)return fe(this,Ve,Z(this,Ve).next),ea(this,zt)._--,e.value}clear(){fe(this,Ve,void 0),fe(this,Rt,void 0),fe(this,zt,0)}get size(){return Z(this,zt)}*[Symbol.iterator](){let e=Z(this,Ve);for(;e;)yield e.value,e=e.next}};Ve=new WeakMap,Rt=new WeakMap,zt=new WeakMap;function vn(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 kn,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={};Q(q,{code:()=>Da,decode:()=>Ir,encode:()=>ri,name:()=>k0});var ub=["string","number","bigint","symbol"],lb=["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 Hl(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(ub.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(fb(t))return"Buffer";let r=db(t);return r||"Object"}function fb(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function db(t){let e=Object.prototype.toString.call(t).slice(8,-1);if(lb.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 vr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",hb=new TextDecoder,pb=new TextEncoder;function jo(t){return vr&&globalThis.Buffer.isBuffer(t)}function En(t){return t instanceof Uint8Array?jo(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var Wl=vr?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):Vl(t,e,r):(t,e,r)=>r-e>64?hb.decode(t.subarray(e,r)):Vl(t,e,r),Vo=vr?t=>t.length>64?globalThis.Buffer.from(t):jl(t):t=>t.length>64?pb.encode(t):jl(t),qe=t=>Uint8Array.from(t),Er=vr?(t,e,r)=>jo(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),Kl=vr?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),En(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},Gl=vr?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function Ql(t,e){if(jo(t)&&jo(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 jl(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 Vl(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 pa(n)}var ql=4096;function pa(t){let e=t.length;if(e<=ql)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=ql));return r}var yb=256,Sn=class{constructor(e=yb){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=Gl(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=Er(n,0,this.cursor)}else r=Kl(this.chunks,this.cursor);return e&&this.reset(),r}};var I="CBOR decode error:",it="CBOR encode error:",An=[];An[23]=1;An[24]=2;An[25]=3;An[26]=5;An[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 Jl(t,e,r,n){return new S(y.uint,ye(t,e+1,n),2)}function Xl(t,e,r,n){return new S(y.uint,me(t,e+1,n),3)}function Yl(t,e,r,n){return new S(y.uint,ge(t,e+1,n),5)}function Zl(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 ef(t,e,r,n){return new S(y.negint,-1-ye(t,e+1,n),2)}function tf(t,e,r,n){return new S(y.negint,-1-me(t,e+1,n),3)}function rf(t,e,r,n){return new S(y.negint,-1-ge(t,e+1,n),5)}var ya=BigInt(-1),nf=BigInt(1);function of(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,ya-BigInt(o),9)}function qo(t,e){let r=e.value,n=typeof r=="bigint"?r*ya-nf:r*-1-1;ne(t,e.type.majorEncoded,n)}qo.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*ya-nf:r*-1-1;return n<ee[0]?1:n<ee[1]?2:n<ee[2]?3:n<ee[3]?5:9};qo.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function _n(t,e,r,n){st(t,e,r+n);let o=Er(t,e+r,e+r+n);return new S(y.bytes,o,r+n)}function sf(t,e,r,n){return _n(t,e,1,r)}function af(t,e,r,n){return _n(t,e,2,ye(t,e+1,n))}function cf(t,e,r,n){return _n(t,e,3,me(t,e+1,n))}function uf(t,e,r,n){return _n(t,e,5,ge(t,e+1,n))}function lf(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 _n(t,e,9,o)}function Wo(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===y.string?Vo(t.value):t.value),t.encodedBytes}function Sr(t,e){let r=Wo(e);ne(t,e.type.majorEncoded,r.length),t.push(r)}Sr.encodedSize=function(e){let r=Wo(e);return ne.encodedSize(r.length)+r.length};Sr.compareTokens=function(e,r){return gb(Wo(e),Wo(r))};function gb(t,e){return t.length<e.length?-1:t.length>e.length?1:Ql(t,e)}function Bn(t,e,r,n,o){let i=r+n;st(t,e,i);let s=new S(y.string,Wl(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Er(t,e+r,e+i)),s}function ff(t,e,r,n){return Bn(t,e,1,r,n)}function df(t,e,r,n){return Bn(t,e,2,ye(t,e+1,n),n)}function hf(t,e,r,n){return Bn(t,e,3,me(t,e+1,n),n)}function pf(t,e,r,n){return Bn(t,e,5,ge(t,e+1,n),n)}function yf(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 Bn(t,e,9,o,n)}var mf=Sr;function Ar(t,e,r,n){return new S(y.array,n,r)}function gf(t,e,r,n){return Ar(t,e,1,r)}function wf(t,e,r,n){return Ar(t,e,2,ye(t,e+1,n))}function bf(t,e,r,n){return Ar(t,e,3,me(t,e+1,n))}function xf(t,e,r,n){return Ar(t,e,5,ge(t,e+1,n))}function kf(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 Ar(t,e,9,o)}function vf(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 Ko(t,e){ne(t,y.array.majorEncoded,e.value)}Ko.compareTokens=Be.compareTokens;Ko.encodedSize=function(e){return ne.encodedSize(e.value)};function _r(t,e,r,n){return new S(y.map,n,r)}function Ef(t,e,r,n){return _r(t,e,1,r)}function Sf(t,e,r,n){return _r(t,e,2,ye(t,e+1,n))}function Af(t,e,r,n){return _r(t,e,3,me(t,e+1,n))}function _f(t,e,r,n){return _r(t,e,5,ge(t,e+1,n))}function Bf(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 _r(t,e,9,o)}function Cf(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${I} indefinite length items not allowed`);return _r(t,e,1,1/0)}function Go(t,e){ne(t,y.map.majorEncoded,e.value)}Go.compareTokens=Be.compareTokens;Go.encodedSize=function(e){return ne.encodedSize(e.value)};function Tf(t,e,r,n){return new S(y.tag,r,1)}function If(t,e,r,n){return new S(y.tag,ye(t,e+1,n),2)}function Lf(t,e,r,n){return new S(y.tag,me(t,e+1,n),3)}function Df(t,e,r,n){return new S(y.tag,ge(t,e+1,n),5)}function Nf(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 Eb=20,Sb=21,Ab=22,_b=23;function Uf(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 Pf(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 ma(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 Ff(t,e,r,n){return ma(ga(t,e+1),3,n)}function Mf(t,e,r,n){return ma(wa(t,e+1),5,n)}function Of(t,e,r,n){return ma(Hf(t,e+1),9,n)}function Jo(t,e,r){let n=e.value;if(n===!1)t.push([y.float.majorEncoded|Eb]);else if(n===!0)t.push([y.float.majorEncoded|Sb]);else if(n===null)t.push([y.float.majorEncoded|Ab]);else if(n===void 0)t.push([y.float.majorEncoded|_b]);else{let o,i=!1;(!r||r.float64!==!0)&&(zf(n),o=ga(Ne,1),n===o||Number.isNaN(n)?(Ne[0]=249,t.push(Ne.slice(0,3)),i=!0):($f(n),o=wa(Ne,1),n===o&&(Ne[0]=250,t.push(Ne.slice(0,5)),i=!0))),i||(Bb(n),o=Hf(Ne,1),Ne[0]=251,t.push(Ne.slice(0,9)))}}Jo.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){zf(n);let o=ga(Ne,1);if(n===o||Number.isNaN(n))return 3;if($f(n),o=wa(Ne,1),n===o)return 5}return 9};var Rf=new ArrayBuffer(9),Ce=new DataView(Rf,1),Ne=new Uint8Array(Rf,0);function zf(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 ga(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 $f(t){Ce.setFloat32(0,t,!1)}function wa(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 Bb(t){Ce.setFloat64(0,t,!1)}function Hf(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)}Jo.compareTokens=Be.compareTokens;function R(t,e,r){throw new Error(`${I} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function Xo(t){return()=>{throw new Error(`${I} ${t}`)}}var _=[];for(let t=0;t<=23;t++)_[t]=R;_[24]=Jl;_[25]=Xl;_[26]=Yl;_[27]=Zl;_[28]=R;_[29]=R;_[30]=R;_[31]=R;for(let t=32;t<=55;t++)_[t]=R;_[56]=ef;_[57]=tf;_[58]=rf;_[59]=of;_[60]=R;_[61]=R;_[62]=R;_[63]=R;for(let t=64;t<=87;t++)_[t]=sf;_[88]=af;_[89]=cf;_[90]=uf;_[91]=lf;_[92]=R;_[93]=R;_[94]=R;_[95]=Xo("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)_[t]=ff;_[120]=df;_[121]=hf;_[122]=pf;_[123]=yf;_[124]=R;_[125]=R;_[126]=R;_[127]=Xo("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)_[t]=gf;_[152]=wf;_[153]=bf;_[154]=xf;_[155]=kf;_[156]=R;_[157]=R;_[158]=R;_[159]=vf;for(let t=160;t<=183;t++)_[t]=Ef;_[184]=Sf;_[185]=Af;_[186]=_f;_[187]=Bf;_[188]=R;_[189]=R;_[190]=R;_[191]=Cf;for(let t=192;t<=215;t++)_[t]=Tf;_[216]=If;_[217]=Lf;_[218]=Df;_[219]=Nf;_[220]=R;_[221]=R;_[222]=R;_[223]=R;for(let t=224;t<=243;t++)_[t]=Xo("simple values are not supported");_[244]=R;_[245]=R;_[246]=R;_[247]=Uf;_[248]=Xo("simple values are not supported");_[249]=Ff;_[250]=Mf;_[251]=Of;_[252]=R;_[253]=R;_[254]=R;_[255]=Pf;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 jf(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 Tb={float64:!1,mapSorter:Db,quickEncodeToken:jf};function Ib(){let t=[];return t[y.uint.major]=Be,t[y.negint.major]=qo,t[y.bytes.major]=Sr,t[y.string.major]=mf,t[y.array.major]=Ko,t[y.map.major]=Go,t[y.tag.major]=Qo,t[y.float.major]=Jo,t}var Vf=Ib(),ba=new Sn,Zo=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=Zo.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=Yo(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=Zo.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[Yo(u,r,n),Yo(o?t.get(u):t[u],r,n)];return Lb(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 Yo(t,e={},r){let n=Hl(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 Lb(t,e){e.mapSorter&&t.sort(e.mapSorter)}function Db(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=Vf[o].compareTokens(r,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function qf(t,e,r,n){if(Array.isArray(e))for(let o of e)qf(t,o,r,n);else r[e.type.major](t,e,n)}function xa(t,e,r){let n=Yo(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 Sn(s);if(i(c,n,r),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return En(c.chunks[0])}}return ba.reset(),qf(ba,n,e,r),ba.toBytes(!0)}function ka(t,e){return e=Object.assign({},Tb,e),xa(t,Vf,e)}var Nb={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},va=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}},Cn=Symbol.for("DONE"),ei=Symbol.for("BREAK");function Ub(t,e,r){let n=[];for(let o=0;o<t.value;o++){let i=Tn(e,r);if(i===ei){if(t.value===1/0)break;throw new Error(`${I} got unexpected break to lengthed array`)}if(i===Cn)throw new Error(`${I} found array but not enough entries (got ${o}, expected ${t.value})`);n[o]=i}return n}function Pb(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=Tn(e,r);if(c===ei){if(t.value===1/0)break;throw new Error(`${I} got unexpected break to lengthed map`)}if(c===Cn)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=Tn(e,r);if(a===Cn)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 Tn(t,e){if(t.done())return Cn;let r=t.next();if(r.type===y.break)return ei;if(r.type.terminal)return r.value;if(r.type===y.array)return Ub(r,t,e);if(r.type===y.map)return Pb(r,t,e);if(r.type===y.tag){if(e.tags&&typeof e.tags[r.value]=="function"){let n=Tn(t,e);return e.tags[r.value](n)}throw new Error(`${I} tag not supported (${r.value})`)}throw new Error("unsupported")}function In(t,e){if(!(t instanceof Uint8Array))throw new Error(`${I} data to decode must be a Uint8Array`);e=Object.assign({},Nb,e);let r=e.tokenizer||new va(t,e),n=Tn(r,e);if(n===Cn)throw new Error(`${I} did not find any content to decode`);if(n===ei)throw new Error(`${I} got unexpected break`);if(!r.done())throw new Error(`${I} too many terminals, data makes no sense`);return n}var Mb=Gf,Wf=128,Ob=127,Rb=~Ob,zb=Math.pow(2,31);function Gf(t,e,r){e=e||[],r=r||0;for(var n=r;t>=zb;)e[r++]=t&255|Wf,t/=128;for(;t&Rb;)e[r++]=t&255|Wf,t>>>=7;return e[r]=t|0,Gf.bytes=r-n+1,e}var $b=Ea,Hb=128,Kf=127;function Ea(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw Ea.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&Kf)<<o:(s&Kf)*Math.pow(2,o),o+=7}while(s>=Hb);return Ea.bytes=i-n,r}var jb=Math.pow(2,7),Vb=Math.pow(2,14),qb=Math.pow(2,21),Wb=Math.pow(2,28),Kb=Math.pow(2,35),Gb=Math.pow(2,42),Qb=Math.pow(2,49),Jb=Math.pow(2,56),Xb=Math.pow(2,63),Yb=function(t){return t<jb?1:t<Vb?2:t<qb?3:t<Wb?4:t<Kb?5:t<Gb?6:t<Qb?7:t<Jb?8:t<Xb?9:10},Zb={encode:Mb,decode:$b,encodingLength:Yb},e0=Zb,Ln=e0;var Dn=(t,e=0)=>[Ln.decode(t,e),Ln.decode.bytes],Br=(t,e,r=0)=>(Ln.encode(t,e,r),e),Cr=t=>Ln.encodingLength(t);var Ht={};Q(Ht,{coerce:()=>Te,empty:()=>Qf,equals:()=>Aa,fromHex:()=>r0,fromString:()=>o0,isBinary:()=>n0,toHex:()=>t0,toString:()=>i0});var Qf=new Uint8Array(0),t0=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),""),r0=t=>{let e=t.match(/../g);return e?new Uint8Array(e.map(r=>parseInt(r,16))):Qf},Aa=(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")},n0=t=>t instanceof ArrayBuffer||ArrayBuffer.isView(t),o0=t=>new TextEncoder().encode(t),i0=t=>new TextDecoder().decode(t);var jt=(t,e)=>{let r=e.byteLength,n=Cr(t),o=n+Cr(r),i=new Uint8Array(o+r);return Br(t,i,0),Br(r,i,n),i.set(e,o),new Tr(t,r,e,i)},ti=t=>{let e=Te(t),[r,n]=Dn(e),[o,i]=Dn(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Tr(r,o,s,e)},Jf=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Aa(t.bytes,r.bytes)}},Tr=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};function s0(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 a0=s0,c0=a0,Xf=c0;var _a=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")}},Ba=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 Yf(this,e)}},Ca=class{constructor(e){this.decoders=e}or(e){return Yf(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`)}},Yf=(t,e)=>new Ca({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Ta=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new _a(e,r,n),this.decoder=new Ba(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Zf=({name:t,prefix:e,encode:r,decode:n})=>new Ta(t,e,r,n),Ia=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Xf(r,e);return Zf({prefix:t,name:e,encode:n,decode:i=>Te(o(i))})},u0=(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},l0=(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})=>Zf({prefix:e,name:t,encode(o){return l0(o,n,r)},decode(o){return u0(o,n,r,t)}});var at=Ia({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),XS=Ia({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Un=ae({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),eA=ae({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),tA=ae({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),rA=ae({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),nA=ae({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),oA=ae({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),iA=ae({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),sA=ae({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),aA=ae({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ed=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return d0(r,La(t),e||at.encoder);default:return h0(r,La(t),e||Un.encoder)}};var td=new WeakMap,La=t=>{let e=td.get(t);if(e==null){let r=new Map;return td.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!==Pn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==p0)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=jt(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&&Jf(e.multihash,n.multihash)}toString(e){return ed(this,e)}toJSON(){return{"/":ed(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||rd(n,o,i.bytes))}else if(r[y0]===!0){let{version:n,multihash:o,code:i}=r,s=ti(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!==Pn)throw new Error(`Version 0 CID must use dag-pb (code: ${Pn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=rd(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Pn,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 Tr(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]=Dn(e.subarray(r));return r+=m,d},o=n(),i=Pn;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]=f0(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 La(i).set(n,e),i}},f0=(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 Un.prefix:{let r=e||Un;return[Un.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)]}}},d0=(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},h0=(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},Pn=112,p0=18,rd=(t,e,r)=>{let n=Cr(t),o=n+Cr(e),i=new Uint8Array(o+r.byteLength);return Br(t,i,0),Br(e,i,n),i.set(r,o),i},y0=Symbol.for("@ipld/js-cid/CID");var nd=42;function m0(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,nd),new S(y.bytes,r)]}function g0(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function w0(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 b0={float64:!0,typeEncoders:{Object:m0,undefined:g0,number:w0}};function x0(t){if(t[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return V.decode(t.subarray(1))}var od={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};od.tags[nd]=x0;var k0="dag-cbor",Da=113,ri=t=>ka(t,b0),Ir=t=>In(t,od);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)},Lr={Int:wt.Int,"CarHeader > version":t=>Lr.Int(t),"CarHeader > roots (anon) > valueType (anon)":wt.Link,"CarHeader > roots (anon)":t=>wt.List(t)&&Array.prototype.every.call(t,Lr["CarHeader > roots (anon) > valueType (anon)"]),"CarHeader > roots":t=>Lr["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])=>Lr["CarHeader > "+r]&&Lr["CarHeader > "+r](n))}},Na=Lr.CarHeader;var bt=W(ni(),1),Fn={SHA2_256:18,LENGTH:32,DAG_PB:112},Fa=16+8+8+8;function Dr(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 Ma(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 Oa(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 Ra(t,e){let r=Dr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR header (zero length)");let n=await t.exactly(r,!0),o=Ir(n);if(!Na(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=Ma(await t.exactly(Fa,!0));t.seek(s.dataOffset-t.pos);let c=await Ra(t,1);return Object.assign(c,s)}async function P0(t){let e=await t.exactly(2,!1);if(e[0]===Fn.SHA2_256&&e[1]===Fn.LENGTH){let s=await t.exactly(34,!0),c=br(s);return j.create(0,Fn.DAG_PB,c)}let r=Dr(await t.upTo(8),t);if(r!==1)throw new Error(`Unexpected CID version (${r})`);let n=Dr(await t.upTo(8),t),o=await t.exactly(Oa(await t.upTo(8)),!0),i=br(o);return j.create(r,n,i)}async function pd(t){let e=t.pos,r=Dr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR section (zero length)");r+=t.pos-e;let n=await P0(t),o=r-Number(t.pos-e);return{cid:n,length:r,blockLength:o}}async function F0(t){let{cid:e,blockLength:r}=await pd(t);return{bytes:await t.exactly(r,!0),cid:e}}async function M0(t){let e=t.pos,{cid:r,length:n,blockLength:o}=await pd(t),i={cid:r,length:n,blockLength:o,offset:e,blockOffset:t.pos};return t.seek(i.blockLength),i}function Nr(t){let e=(async()=>{let r=await Ra(t);if(r.version===2){let n=t.pos-r.dataOffset;t=R0(t,r.dataSize-n)}return r})();return{header:()=>e,async*blocks(){for(await e;(await t.upTo(8)).length>0;)yield await F0(t)},async*blocksIndex(){for(await e;(await t.upTo(8)).length>0;)yield await M0(t)}}}function Vt(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 O0(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 Ur(t){let e=t[Symbol.asyncIterator]();async function r(){let n=await e.next();return n.done?null:n.value}return O0(r)}function R0(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 qt=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 yd(Vt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return yd(Ur(e))}};async function yd(t){let e=Nr(t),r=await e.header(),n=[];for await(let o of e.blocks())n.push(o);return new qt(r,n)}var Mn=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 md(Vt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return md(Ur(e))}};async function md(t){let e=Nr(t),{version:r,roots:n}=await e.header();return new Mn(r,n,e.blocksIndex())}var oi=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}},za=class t extends oi{[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 gd(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await wd(e);return new t(r,n,o)}},$a=class t extends oi{[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 gd(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await wd(e);return new t(r,n,o)}};async function gd(t){if(!(t instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return bd(Vt(t))}async function wd(t){if(!t||typeof t[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return bd(Ur(t))}async function bd(t){let e=Nr(t),{version:r,roots:n}=await e.header();return{version:r,roots:n,iterator:e.blocks()}}var $0=W(ni(),1);var xd=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 $n=W(ni(),1);var H0=["string","number","bigint","symbol"],j0=["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 kd(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(H0.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(V0(t))return"Buffer";let r=q0(t);return r||"Object"}function V0(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function q0(t){let e=Object.prototype.toString.call(t).slice(8,-1);if(j0.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 Pr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",W0=new TextDecoder,K0=new TextEncoder;function ii(t){return Pr&&globalThis.Buffer.isBuffer(t)}function Ad(t){return t instanceof Uint8Array?ii(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var _d=Pr?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):Ed(t,e,r):(t,e,r)=>r-e>64?W0.decode(t.subarray(e,r)):Ed(t,e,r),Bd=Pr?t=>t.length>64?globalThis.Buffer.from(t):vd(t):t=>t.length>64?K0.encode(t):vd(t),We=t=>Uint8Array.from(t),Fr=Pr?(t,e,r)=>ii(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),Cd=Pr?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),Ad(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},Td=Pr?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function Id(t,e){if(ii(t)&&ii(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 vd(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 Ed(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 G0(n)}var Sd=4096;function G0(t){let e=t.length;if(e<=Sd)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=Sd));return r}var Q0=256,si=class{constructor(e=Q0){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=Td(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=Fr(n,0,this.cursor)}else r=Cd(this.chunks,this.cursor);return e&&this.reset(),r}};var z="CBOR decode error:",Ha="CBOR encode error:",On=[];On[23]=1;On[24]=2;On[25]=3;On[26]=5;On[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 Ld(t,e,r,n){return new C(x.uint,be(t,e+1,n),2)}function Dd(t,e,r,n){return new C(x.uint,xe(t,e+1,n),3)}function Nd(t,e,r,n){return new C(x.uint,ke(t,e+1,n),5)}function Ud(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 Pd(t,e,r,n){return new C(x.negint,-1-be(t,e+1,n),2)}function Fd(t,e,r,n){return new C(x.negint,-1-xe(t,e+1,n),3)}function Md(t,e,r,n){return new C(x.negint,-1-ke(t,e+1,n),5)}var ja=BigInt(-1),Od=BigInt(1);function Rd(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,ja-BigInt(o),9)}function ai(t,e){let r=e.value,n=typeof r=="bigint"?r*ja-Od:r*-1-1;oe(t,e.type.majorEncoded,n)}ai.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*ja-Od:r*-1-1;return n<te[0]?1:n<te[1]?2:n<te[2]?3:n<te[3]?5:9};ai.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function Rn(t,e,r,n){ct(t,e,r+n);let o=Fr(t,e+r,e+r+n);return new C(x.bytes,o,r+n)}function zd(t,e,r,n){return Rn(t,e,1,r)}function $d(t,e,r,n){return Rn(t,e,2,be(t,e+1,n))}function Hd(t,e,r,n){return Rn(t,e,3,xe(t,e+1,n))}function jd(t,e,r,n){return Rn(t,e,5,ke(t,e+1,n))}function Vd(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 Rn(t,e,9,o)}function ci(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===x.string?Bd(t.value):t.value),t.encodedBytes}function Mr(t,e){let r=ci(e);oe(t,e.type.majorEncoded,r.length),t.push(r)}Mr.encodedSize=function(e){let r=ci(e);return oe.encodedSize(r.length)+r.length};Mr.compareTokens=function(e,r){return X0(ci(e),ci(r))};function X0(t,e){return t.length<e.length?-1:t.length>e.length?1:Id(t,e)}function zn(t,e,r,n,o){let i=r+n;ct(t,e,i);let s=new C(x.string,_d(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Fr(t,e+r,e+i)),s}function qd(t,e,r,n){return zn(t,e,1,r,n)}function Wd(t,e,r,n){return zn(t,e,2,be(t,e+1,n),n)}function Kd(t,e,r,n){return zn(t,e,3,xe(t,e+1,n),n)}function Gd(t,e,r,n){return zn(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 zn(t,e,9,o,n)}var Jd=Mr;function Or(t,e,r,n){return new C(x.array,n,r)}function Xd(t,e,r,n){return Or(t,e,1,r)}function Yd(t,e,r,n){return Or(t,e,2,be(t,e+1,n))}function Zd(t,e,r,n){return Or(t,e,3,xe(t,e+1,n))}function eh(t,e,r,n){return Or(t,e,5,ke(t,e+1,n))}function th(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 Or(t,e,9,o)}function rh(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 ui(t,e){oe(t,x.array.majorEncoded,e.value)}ui.compareTokens=Ie.compareTokens;ui.encodedSize=function(e){return oe.encodedSize(e.value)};function Rr(t,e,r,n){return new C(x.map,n,r)}function nh(t,e,r,n){return Rr(t,e,1,r)}function oh(t,e,r,n){return Rr(t,e,2,be(t,e+1,n))}function ih(t,e,r,n){return Rr(t,e,3,xe(t,e+1,n))}function sh(t,e,r,n){return Rr(t,e,5,ke(t,e+1,n))}function ah(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 Rr(t,e,9,o)}function ch(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${z} indefinite length items not allowed`);return Rr(t,e,1,1/0)}function li(t,e){oe(t,x.map.majorEncoded,e.value)}li.compareTokens=Ie.compareTokens;li.encodedSize=function(e){return oe.encodedSize(e.value)};function uh(t,e,r,n){return new C(x.tag,r,1)}function lh(t,e,r,n){return new C(x.tag,be(t,e+1,n),2)}function fh(t,e,r,n){return new C(x.tag,xe(t,e+1,n),3)}function dh(t,e,r,n){return new C(x.tag,ke(t,e+1,n),5)}function hh(t,e,r,n){return new C(x.tag,ve(t,e+1,n),9)}function fi(t,e){oe(t,x.tag.majorEncoded,e.value)}fi.compareTokens=Ie.compareTokens;fi.encodedSize=function(e){return oe.encodedSize(e.value)};var n1=20,o1=21,i1=22,s1=23;function ph(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 yh(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 Va(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 mh(t,e,r,n){return Va(qa(t,e+1),3,n)}function gh(t,e,r,n){return Va(Wa(t,e+1),5,n)}function wh(t,e,r,n){return Va(vh(t,e+1),9,n)}function di(t,e,r){let n=e.value;if(n===!1)t.push([x.float.majorEncoded|n1]);else if(n===!0)t.push([x.float.majorEncoded|o1]);else if(n===null)t.push([x.float.majorEncoded|i1]);else if(n===void 0)t.push([x.float.majorEncoded|s1]);else{let o,i=!1;(!r||r.float64!==!0)&&(xh(n),o=qa(Pe,1),n===o||Number.isNaN(n)?(Pe[0]=249,t.push(Pe.slice(0,3)),i=!0):(kh(n),o=Wa(Pe,1),n===o&&(Pe[0]=250,t.push(Pe.slice(0,5)),i=!0))),i||(a1(n),o=vh(Pe,1),Pe[0]=251,t.push(Pe.slice(0,9)))}}di.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){xh(n);let o=qa(Pe,1);if(n===o||Number.isNaN(n))return 3;if(kh(n),o=Wa(Pe,1),n===o)return 5}return 9};var bh=new ArrayBuffer(9),Le=new DataView(bh,1),Pe=new Uint8Array(bh,0);function xh(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 qa(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 kh(t){Le.setFloat32(0,t,!1)}function Wa(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 a1(t){Le.setFloat64(0,t,!1)}function vh(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)}di.compareTokens=Ie.compareTokens;function $(t,e,r){throw new Error(`${z} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function hi(t){return()=>{throw new Error(`${z} ${t}`)}}var B=[];for(let t=0;t<=23;t++)B[t]=$;B[24]=Ld;B[25]=Dd;B[26]=Nd;B[27]=Ud;B[28]=$;B[29]=$;B[30]=$;B[31]=$;for(let t=32;t<=55;t++)B[t]=$;B[56]=Pd;B[57]=Fd;B[58]=Md;B[59]=Rd;B[60]=$;B[61]=$;B[62]=$;B[63]=$;for(let t=64;t<=87;t++)B[t]=zd;B[88]=$d;B[89]=Hd;B[90]=jd;B[91]=Vd;B[92]=$;B[93]=$;B[94]=$;B[95]=hi("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)B[t]=qd;B[120]=Wd;B[121]=Kd;B[122]=Gd;B[123]=Qd;B[124]=$;B[125]=$;B[126]=$;B[127]=hi("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)B[t]=Xd;B[152]=Yd;B[153]=Zd;B[154]=eh;B[155]=th;B[156]=$;B[157]=$;B[158]=$;B[159]=rh;for(let t=160;t<=183;t++)B[t]=nh;B[184]=oh;B[185]=ih;B[186]=sh;B[187]=ah;B[188]=$;B[189]=$;B[190]=$;B[191]=ch;for(let t=192;t<=215;t++)B[t]=uh;B[216]=lh;B[217]=fh;B[218]=dh;B[219]=hh;B[220]=$;B[221]=$;B[222]=$;B[223]=$;for(let t=224;t<=243;t++)B[t]=hi("simple values are not supported");B[244]=$;B[245]=$;B[246]=$;B[247]=ph;B[248]=hi("simple values are not supported");B[249]=mh;B[250]=gh;B[251]=wh;B[252]=$;B[253]=$;B[254]=$;B[255]=yh;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 Ka(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 Ga(){let t=[];return t[x.uint.major]=Ie,t[x.negint.major]=ai,t[x.bytes.major]=Mr,t[x.string.major]=Jd,t[x.array.major]=ui,t[x.map.major]=li,t[x.tag.major]=fi,t[x.float.major]=di,t}var H8=Ga(),j8=new si,yi=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(`${Ha} 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=yi.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=pi(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=yi.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[pi(u,r,n),pi(o?t.get(u):t[u],r,n)];return u1(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 pi(t,e={},r){let n=kd(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(`${Ha} unsupported type: ${n}`);return i(t,n,e,r)}function u1(t,e){e.mapSorter&&t.sort(e.mapSorter)}var G8=Symbol.for("DONE"),Q8=Symbol.for("BREAK");var l1=Ga(),f1={float64:!1,quickEncodeToken:Ka};function Qa(t,e=l1,r=f1){if(Array.isArray(t)){let n=0;for(let o of t)n+=Qa(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 Xa=class{constructor(e,r){this.bytes=e,this.byteOffset=r,this.roots=[],this.headerSize=r}addRoot(e,r){return d1(this,e,r),this}write(e){return h1(this,e),this}close(e){return p1(this,e)}},d1=(t,e,r={})=>{let{resize:n=!1}=r,{bytes:o,headerSize:i,byteOffset:s,roots:c}=t;t.roots.push(e);let a=mi(t);if(a>i)if(a-i+s<o.byteLength)if(n)Ah(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}`)},Sh=({cid:t,bytes:e})=>{let r=t.bytes.byteLength+e.byteLength;return $n.default.encodingLength(r)+r},h1=(t,{cid:e,bytes:r})=>{let n=e.bytes.byteLength+r.byteLength,o=$n.default.encode(n);if(t.byteOffset+o.length+n>t.bytes.byteLength)throw new RangeError("Buffer has no capacity for this block");Ja(t,o),Ja(t,e.bytes),Ja(t,r)},p1=(t,e={})=>{let{resize:r=!1}=e,{roots:n,bytes:o,byteOffset:i,headerSize:s}=t,c=ri({version:1,roots:n}),a=$n.default.encode(c.length),u=a.length+c.byteLength;if(s-u===0)return Eh(t,a,c),o.subarray(0,i);if(r)return Ah(t,u),Eh(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`)},Ah=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Ja=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},Eh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},y1=[new C(x.map,2),new C(x.string,"version"),new C(x.uint,1),new C(x.string,"roots")],m1=new C(x.tag,42),g1=t=>{let e=[...y1];e.push(new C(x.array,t.length));for(let n of t)e.push(m1),e.push(new C(x.bytes,{length:n+1}));let r=Qa(e);return $n.default.encodingLength(r)+r},mi=({roots:t})=>g1(t.map(e=>e.bytes.byteLength));var _h=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=mi({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Xa(s,i);for(let a of r)c.addRoot(a);return c};var Kt=({name:t,code:e,encode:r})=>new Ya(t,e,r),Ya=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?jt(this.code,r):r.then(n=>jt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function gi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*b1(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*Za(n,o))}else{let r=V.asCID(e);r?yield[t.join("/"),r]:yield*Za(e,t)}}function*Za(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*b1(i,o)}}function*x1(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*ec(n,o))}else yield*ec(e,t)}function*ec(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*x1(o,n))}}function k1(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 Hn=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:gi(),bytes:gi(),value:gi(),asBlock:gi()})}links(){return Za(this.value,[])}tree(){return ec(this.value,[])}get(e="/"){return k1(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 Hn({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 Hn({value:n,bytes:t,cid:i})}function v1({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 Hn({cid:e,bytes:t,value:o})}async function wi({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(!Ht.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return v1({bytes:t,cid:e,value:o,codec:n})}var Ch=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),de=Kt({name:"sha2-256",code:18,encode:Ch("SHA-256")}),S_=Kt({name:"sha2-512",code:19,encode:Ch("SHA-512")});var Et={};Q(Et,{code:()=>jn,decode:()=>A1,encode:()=>S1,name:()=>E1});var E1="raw",jn=85,S1=t=>Te(t),A1=t=>Te(t);async function Vn(t,e){let r=0,n=mi({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=Sh({cid:s,bytes:c});let o=new Uint8Array(r),i=_h(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 tc(t){return await Ge({value:{fp:t},hasher:de,codec:q})}async function rc(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 Gt={};Q(Gt,{code:()=>I1,crypto:()=>L1,decode:()=>T1,decrypt:()=>ki,encode:()=>C1,encrypt:()=>vi,name:()=>D1});function bi(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var qn=bi();function xi(t){let e=new Uint8Array(t);return t>0&&qn.getRandomValues(e),e}var _1=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},B1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},Th=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},C1=({iv:t,bytes:e})=>Th([t,e]),T1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},I1=3145728+1337;async function Ih(t){return await qn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var ki=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await Ih(t),i=await qn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=B1(r.subarray(0,4)),c=V.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},vi=async({key:t,cid:e,bytes:r})=>{let n=_1(e.bytes.byteLength),o=xi(12),i=Th([n,e.bytes,r]);try{let s=await Ih(t),c=await qn.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}}},L1=t=>({encrypt:e=>vi({key:t,...e}),decrypt:e=>ki({key:t,...e})}),D1="jchris@encrypted-block:aes-gcm";var Wn=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Kn=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 Jt=(t,e)=>t===e?0:t>e?1:-1,Lh=(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},Qt=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 Xt=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)}}},Dh=t=>typeof t=="string"?t:JSON.stringify(t);function N1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function U1(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 P1(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 F1(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 M1(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 U1(c,r,t.compare);if(a.length){let u=await P1(a,i,t),l=await F1(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 Qt){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 Qt){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 Qt){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 Qt){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=Dh(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=Dh(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=N1(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 M1(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}))}},Ei=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}},zr=class extends Ei{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}},$r=class extends Ei{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},Si=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 nc=({bytes:t},{bytes:e})=>Lh(t,e),Ai=class extends Xt{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return Wn(e)}},_i=class extends Xt{async identity(){let{multihash:{bytes:e}}=await this.address;return Wn(e)}},Bi=class extends zr{},Ci=class extends $r{},Nh=(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:nc},l,d;if(a.leaf)l=a.leaf.map(h=>new Ai(h)),d=Ci;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new _i({key:w,address:g})),d=Bi}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},Uh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(nc));let c=Nh(t,e,r,o,i);return Si({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:nc,cache:e,LeafClass:Ci,LeafEntryClass:Ai,BranchClass:Bi,BranchEntryClass:_i})},Ph=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>Nh(e,r,n,o,i,s)(t);var Fh=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 vi({...h,key:n}),w=await Ge({...p,codec:Gt,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 Uh({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})},Mh=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:Gt,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 Ph({cid:l,get:s,cache:n,chunker:o,codec:Gt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await vt({...w,codec:Gt,hasher:i}));let{bytes:g,cid:b}=await ki({...w,key:r}).catch(E=>{throw E});return await wi({cid:b,bytes:g,hasher:i,codec:Gt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var Hr={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var Oh=Kn(30);function Rh(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 zh(t,e,r){let n=Rh(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 Fh({cids:s,get:r.get.bind(r),key:o,hasher:de,chunker:Oh,cache:Hr,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await Vn([c.cid],i)}async function $h(t,e){let n=(await e.getRoots())[0];return await O1(n,e.get.bind(e),t)}async function O1(t,e,r){let n=Rh(r),o=n.buffer.slice(0,n.byteLength),i=new _e,s=null;for await(let c of Mh({root:t,get:e,key:o,hasher:de,chunker:Oh,cache:Hr}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var oc=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=Vo(JSON.stringify(r.value));e.push(n.length>32?En(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 R1(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 z1={addBreakTokens:!0,mapSorter:R1};function ic(t,e){return e=Object.assign({},z1,e),xa(t,new oc,e)}var jr=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,pa(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 sc(t,e){return e=Object.assign({tokenizer:new jr(t,e)},e),In(t,e)}var ac=ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),d6=ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),h6=ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),p6=ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function H1(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 Ti(t){let e=ac.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 Ti(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function j1(t){return Ti(new Uint8Array(t))}function V1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function q1(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 W1={typeEncoders:{Object:H1,Buffer:Ti,Uint8Array:Ti,Int8Array:Fe,Uint16Array:Fe,Int16Array:Fe,Uint32Array:Fe,Int32Array:Fe,Float32Array:Fe,Float64Array:Fe,Uint8ClampedArray:Fe,BigInt64Array:Fe,BigUint64Array:Fe,DataView:Fe,ArrayBuffer:j1,undefined:V1,number:q1}},cc=class extends jr{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=ac.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}},uc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};uc.tags[42]=V.parse;var K1=t=>ic(t,W1),G1=t=>{let e=Object.assign(uc,{tokenizer:new cc(t,uc)});return sc(t,e)},Ii=t=>Q1.decode(K1(t));var Q1=new TextDecoder,Li=t=>G1(J1.encode(t)),J1=new TextEncoder;var X1=(t,e)=>e.some(r=>t instanceof r),Hh,jh;function Y1(){return Hh||(Hh=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Z1(){return jh||(jh=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Vh=new WeakMap,fc=new WeakMap,qh=new WeakMap,lc=new WeakMap,hc=new WeakMap;function ex(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&&Vh.set(r,t)}).catch(()=>{}),hc.set(e,t),e}function tx(t){if(fc.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)});fc.set(t,e)}var dc={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return fc.get(t);if(e==="objectStoreNames")return t.objectStoreNames||qh.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 Wh(t){dc=t(dc)}function rx(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(Di(this),e,...r);return qh.set(n,e.sort?e.sort():[e]),Qe(n)}:Z1().includes(t)?function(...e){return t.apply(Di(this),e),Qe(Vh.get(this))}:function(...e){return Qe(t.apply(Di(this),e))}}function nx(t){return typeof t=="function"?rx(t):(t instanceof IDBTransaction&&tx(t),X1(t,Y1())?new Proxy(t,dc):t)}function Qe(t){if(t instanceof IDBRequest)return ex(t);if(lc.has(t))return lc.get(t);let e=nx(t);return e!==t&&(lc.set(t,e),hc.set(e,t)),e}var Di=t=>hc.get(t);function Gh(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 ox=["get","getKey","getAll","getAllKeys","count"],ix=["put","add","delete","clear"],pc=new Map;function Kh(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(pc.get(e))return pc.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=ix.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||ox.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 pc.set(e,i),i}Wh(t=>({...t,get:(e,r,n)=>Kh(e,r)||t.get(e,r,n),has:(e,r)=>!!Kh(e,r)||t.has(e,r)}));var yc="0.13.3-dev";var Qh=yc.match(/^([^.]*\.[^.]*)/);if(!Qh)throw new Error("invalid version: "+yc);var Jn=Qh[0],mc=class{constructor(e){k(this,"STORAGE_VERSION",Jn);k(this,"name");this.name=e}},Gn=class extends mc{constructor(){super(...arguments);k(this,"tag","header-base")}makeHeader({car:r,key:n}){return Ii({car:r,key:n})}parseHeader(r){return Li(r)}},Qn=class{constructor(e){k(this,"tag","car-base");k(this,"STORAGE_VERSION",Jn);k(this,"loader");this.loader=e}};var Ni=class{constructor(e){k(this,"tag","rwal-base");k(this,"STORAGE_VERSION",Jn);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=vn(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 Vr=class extends Qn{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 Gh(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?Li(n):null}catch{return null}}async save(r,n="main"){try{let o=Ii(r);localStorage.setItem(this.headerKey(n),o)}catch{}}},Pi=class extends Gn{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 gc(t,e){return t.some(r=>r.equals(e))}function Jh(t,e=[]){let r=new Map;for(let n of t)gc(e,n)||r.set(n.toString(),n);return[...r.values()]}function Xh(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Yt=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 Vr(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),gc(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Jh([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 rc(r)}async _getKey(){return this.key?this.key:(this.opts.public||(bi()?await this.setKey(Xh(xi(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 tc(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 zh(s,i[0],e):await Vn(i,e);if(wc(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=[...Jh([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 qt.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 $h(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=bi();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=vn(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};k(Yt,"defaultHeader");var qr=W(np(),1);var Fi=class extends Xt{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return Wn(r)}},Zt=class extends Fi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},er=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]}},op=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},ip=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},tr=class extends $r{get(e){return op(this,e)}getMany(e){return ip(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...sp,...r},n)}},rr=class extends zr{get(e){return op(this,e)}getMany(e){return ip(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...sp,...r},n)}},sp={LeafClass:tr,LeafEntryClass:Zt,BranchClass:rr,BranchEntryClass:er},ap=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||tr,a=s.LeafEntryClass||Zt,u=s.BranchClass||rr,l=s.BranchEntryClass||er,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=hx({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},cp=({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=ap(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||tr,LeafEntryClass:a.LeafEntryClass||Zt,BranchClass:a.BranchClass||rr,BranchEntryClass:a.BranchEntryClass||er};return Si(l)},up=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>ap(e,r,n,o,i,s,c)(t);function hx({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 px=(t,e)=>{let[r,n]=t,[o,i]=e,s=Jt(r,o);return s!==0?s:yx(n,i)},yx=(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)?Jt(t,e):1},lp=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}},fp=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}},xc=class extends tr{get(e){return lp(this,e)}range(e,r){return fp(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...vc,...r},n)}},kc=class extends rr{get(e){return lp(this,e)}range(e,r){return fp(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...vc,...r},n)}},mx=xc,gx=kc,vc={LeafClass:mx,BranchClass:gx,LeafEntryClass:Zt,BranchEntryClass:er},dp={...vc,compare:px},hp=t=>(t={...dp,...t},cp(t)),Ec=t=>(t={...dp,...t},up(t));var nr=class{constructor(){k(this,"cid",null);k(this,"root",null)}},bx=(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:Jt(t,e)},xx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Jt(r,o);return s!==0?s:bx(n,i)},Ac={cache:Hr,chunker:Kn(30),codec:q,hasher:de,compare:xx},_c={cache:Hr,chunker:Kn(30),codec:q,hasher:de,compare:Jt};function pp(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 Sc(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 wi({cid:n,bytes:o,hasher:de,codec:q})}}async function Bc(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await Ec({cid:e.cid,get:Sc(t),...n});else{let s=null,c=null;for await(let a of await hp({get:Sc(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 Cc(t,e,r){return await Ec({cid:e,get:Sc(t),...r})}async function or(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 Tc(t){return t.map(e=>qr.default.encode(e))}function Ic(t){return qr.default.encode(t)}function Wr({_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 Mi(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var Mi=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 nr);k(this,"byId",new nr);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=kx(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 or(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(...Tc(e.range));return await or(this.crdt,{result:o,...i},e)}if(e.key){let o=Ic(e.key);return await or(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=Ic(i);return(await or(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=Tc([o,i]);return await or(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await or(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new nr,this.byKey=new nr,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await Cc(this.blocks,this.byId.cid,_c),this.byKey.root=await Cc(this.blocks,this.byKey.cid,Ac))}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=pp(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 Bc(a,this.byId,o.concat(s),_c),this.byKey=await Bc(a,this.byKey,n.concat(i),Ac),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function kx(t){return e=>{if(e[t])return e[t]}}var zi=class zi extends Yt{constructor(r,n,o){super(r,o);k(this,"crdt");k(this,"defaultHeader",zi.defaultHeader);this.crdt=n}async _applyCarHeader(r){for(let[n,o]of Object.entries(r.indexes))Wr({_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(zi,"defaultHeader",{cars:[],compact:[],indexes:new Map});var Oi=zi,$i=class $i extends Yt{constructor(r,n,o){super(r,o);k(this,"defaultHeader",$i.defaultHeader);k(this,"clock");k(this,"remoteFileStore");k(this,"fileStore");this.fileStore=new Vr(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(wc(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($i,"defaultHeader",{cars:[],compact:[],head:[]});var Ri=$i;function wc(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)}},Hi=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}},ji=class extends Hi{constructor(e,r,n){e?super(e,new Oi(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}))}},Vi=class extends Hi{constructor(e,r,n){e?super(e,new Ri(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}))}},qi=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 Dc=({name:t,code:e,encode:r})=>new Lc(t,e,r),Lc=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?Ft(this.code,r):r.then(n=>Ft(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Wi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*vx(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*Nc(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*Nc(e,t)}}function*Nc(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*vx(i,o)}}function*Ex(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*Uc(n,o))}else yield*Uc(e,t)}function*Uc(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*Ex(o,n))}}function Sx(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:Wi(),bytes:Wi(),value:Wi(),asBlock:Wi()})}links(){return Nc(this.value,[])}tree(){return Uc(this.value,[])}get(e="/"){return Sx(this.value,e.split("/").filter(Boolean))}};async function Ki({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 Gi({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 Pc={};Q(Pc,{sha256:()=>ut,sha512:()=>Ax});var mp=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ut=Dc({name:"sha2-256",code:18,encode:mp("SHA-256")}),Ax=Dc({name:"sha2-512",code:19,encode:mp("SHA-512")});async function Yn(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 gp(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 gp(n,s,r))return e;return e.concat(r)}var Xn=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 _x({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 Bx(r.bytes)}};async function _x(t){let{cid:e,bytes:r}=await Ki({value:t,codec:q,hasher:ut});return new Me({cid:e,value:t,bytes:r})}async function Bx(t){let{cid:e,value:r}=await Gi({bytes:t,codec:q,hasher:ut});return new Me({cid:e,value:r,bytes:t})}async function gp(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*Fc(t,e,r={}){let n=r.renderNodeLabel??(a=>Cx(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 Cx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var ir=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 Ki({value:t,codec:q,hasher:ut});return new ir({cid:r,value:t,bytes:n,prefix:e??""})}async function wp(t,e){let{cid:r,value:n}=await Gi({bytes:t,codec:q,hasher:ut});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new ir({cid:r,value:n,bytes:t,prefix:e??""})}var sr=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 wp(n.bytes,r)}};function Mc(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 bp(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 Qi=64,Ix=512*1024;async function Zn(t,e,r,n,o={}){let i=new sr(t),s=await i.get(e),c=await Ji(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Qi){let h=Array.from(Array(Math.ceil(u.length/Qi)),(w,g)=>{let b=g*Qi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Qi)}}),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=Mc(a.value,l),f=await Xe(m,a.prefix);if(f.bytes.length>(o.maxShardSize??Ix)){let h=bp(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=Mc(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 xp(t,e,r){let n=new sr(t),o=await n.get(e),i=await Ji(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 Oc(t,e,r){let n=new sr(t),o=await n.get(e),i=await Ji(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*kp(t,e,r={}){let{prefix:n}=r,o=new sr(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 Ji(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 Ji(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function vp(t,e,r,n,o){let i=new _e;if(t=new Ot(i,t),!e.length){let g=await ir.create();i.putSync(g.cid,g.bytes);let b=await Zn(t,g.cid,r,n,o),v={type:"put",root:b.root,key:r,value:n},E=await Xn.create(v,e);return e=await Yn(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 zc(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 Sp(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 Zn(t,u,g.data.key,g.data.value):await Oc(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 Zn(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 Xn.create(h,e);i.putSync(p.cid,p.bytes),e=await Yn(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 Kr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new _e;t=new Ot(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 zc(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 Sp(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 Zn(t,s,d.data.key,d.data.value):await Oc(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 Ep(t,e,r){if(!e.length)return;let n=await Kr(t,e);return n.additions.length&&(t=new Ot(new _e(n.additions),t)),xp(t,n.root,r)}async function*Rc(t,e,r){if(!e.length)return;let n=await Kr(t,e);n.additions.length&&(t=new Ot(new _e(n.additions),t)),yield*kp(t,n.root,r)}async function zc(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Dx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Nx(r);if(s)return s}if(!n)return}}async function Dx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:zc(t,r.parents):e}function Nx(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 Sp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>Ap(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 Ap(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=>Ap(t,a,r,n+1)));return i.concat(...c)}var en={};Q(en,{DEFAULT_DIRECTORY_MODE:()=>Uy,DEFAULT_FILE_MODE:()=>Ny,NodeType:()=>F,code:()=>Yr,createAdvancedFile:()=>rk,createComplexFile:()=>ok,createDirectoryShard:()=>Oy,createEmptyFile:()=>ek,createFileChunk:()=>tk,createFileShard:()=>nk,createFlatDirectory:()=>cs,createRaw:()=>Py,createShardedDirectory:()=>My,createSimpleFile:()=>Fy,createSymlink:()=>zy,cumulativeContentByteLength:()=>tt,cumulativeDagByteLength:()=>Zr,decode:()=>jy,decodeMetadata:()=>lr,encode:()=>Hy,encodeAdvancedFile:()=>cu,encodeComplexFile:()=>uu,encodeDirectory:()=>fs,encodeDirectoryMetadata:()=>hu,encodeFile:()=>Ry,encodeFileChunk:()=>au,encodeFileShard:()=>ik,encodeHAMTShard:()=>lu,encodeLink:()=>us,encodeMetadata:()=>io,encodeMode:()=>qy,encodeRaw:()=>su,encodeSimpleFile:()=>ls,encodeSymlink:()=>$y,filesize:()=>uk,matchFile:()=>ck,name:()=>iu});var Ux=new TextDecoder;function $c(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 Xi(t,e){let r;[r,e]=$c(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 _p(t,e){let r;return[r,e]=$c(t,e),[r&7,r>>3,e]}function Px(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=_p(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]=Xi(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]=Xi(t,n),e.Name=Ux.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]=$c(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 Bp(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=_p(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]=Xi(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]=Xi(t,r),n.push(Px(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 Tp=new TextEncoder,Cp=2**32,Fx=2**31;function Mx(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=eo(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=Tp.encode(t.Name);r-=n.length,e.set(n,r),r=eo(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=eo(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function Ip(t){let e=Rx(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=eo(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Mx(t.Links[o],r.subarray(0,n));n-=i,n=eo(r,n,i)-1,r[n]=18}return r}function Ox(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Gr(r)}if(typeof t.Name=="string"){let r=Tp.encode(t.Name).length;e+=1+r+Gr(r)}return typeof t.Tsize=="number"&&(e+=1+Gr(t.Tsize)),e}function Rx(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Gr(r)}if(t.Links)for(let r of t.Links){let n=Ox(r);e+=1+n+Gr(n)}return e}function eo(t,e,r){e-=Gr(r);let n=e;for(;r>=Fx;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Gr(t){return t%2===0&&t++,Math.floor((zx(t)+6)/7)}function zx(t){let e=0;return t>=Cp&&(t=Math.floor(t/Cp),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+$x[t]}var $x=[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 Hx=["Data","Links"],jx=["Hash","Name","Tsize"],Hc=new TextEncoder;function Dp(t,e){if(t===e)return 0;let r=t.Name?Hc.encode(t.Name):[],n=e.Name?Hc.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 Lp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function Vx(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 jc(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=Hc.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(Vx),e.Links.sort(Dp);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Np(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!Lp(t,Hx))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(!Lp(r,jx))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&&Dp(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var ar=112;function Up(t){Np(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),Ip(e)}function Ye(t){let e=Bp(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(Ty(),1),Jr=ft.default.Reader,nu=ft.default.Writer,N=ft.default.util,ie=ft.default.roots.unixfs||(ft.default.roots.unixfs={}),Xr=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=nu.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 Jr||(r=Jr.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})(),m3=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=nu.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 Jr||(r=Jr.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})(),g3=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=nu.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Jr||(r=Jr.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=Xr.DataType;var Dy=Object.freeze([]),ou=new Uint8Array(0),Ee=Object.freeze({}),Ny=parseInt("0644",8),Uy=parseInt("0755",8),Yr=ar,iu="UnixFS",Tt=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),Up(jc({Data:Xr.encode(t).finish(),Links:e}))),Py=t=>({type:F.Raw,content:t}),ek=t=>Fy(ou,t),Fy=(t,e)=>({type:F.File,layout:"simple",content:t,metadata:lr(e)}),tk=t=>({type:F.File,layout:"simple",content:t}),rk=(t,e)=>({type:F.File,layout:"advanced",parts:t,metadata:lr(e)}),nk=t=>({type:F.File,layout:"advanced",parts:t}),ok=(t,e,r)=>({type:F.File,layout:"complex",content:t,parts:e,metadata:lr(r)}),cs=(t,e)=>({type:F.Directory,metadata:lr(e),entries:t}),My=(t,e,r,n,o=Ee)=>({type:F.HAMTShard,bitfield:e,fanout:fu(r),hashType:du(n),entries:t,metadata:lr(o)}),Oy=(t,e,r,n)=>({type:F.HAMTShard,bitfield:e,fanout:fu(r),hashType:du(n),entries:t}),su=t=>Tt({Type:F.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:Dy},[]),Ry=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;switch(t.layout){case"simple":return ls(t.content,r);case"advanced":return cu(t.parts,r);case"complex":return uu(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},au=t=>ls(t,Ee),ik=t=>Tt({Type:F.File,blocksizes:t.map(oo),filesize:tt(t)},t.map(us)),cu=(t,e=Ee)=>Tt({Type:F.File,blocksizes:t.map(oo),filesize:tt(t),...io(e)},t.map(us)),us=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),ls=(t,e=Ee)=>Tt({Type:F.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...io(e)},[]),uu=(t,e,r=Ee)=>Tt({Type:F.File,Data:t,filesize:t.byteLength+tt(e),blocksizes:e.map(oo)},e.map(us)),fs=t=>Tt({Type:t.type,...hu(t.metadata||Ee)},t.entries.map(Vy)),lu=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=Ee})=>Tt({Type:F.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:fu(e),hashType:du(r),...hu(o)},n.map(Vy)),fu=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},du=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var zy=(t,e=Ee)=>({type:F.Symlink,content:t,metadata:lr(e)}),$y=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;return Tt({Type:F.Symlink,Data:t.content,...io(r||Ee)},[])},Hy=(t,e=!0)=>{switch(t.type){case F.Raw:return su(t.content);case F.File:return Ry(t);case F.Directory:return fs(t);case F.HAMTShard:return lu(t);case F.Symlink:return $y(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},jy=t=>{let e=Ye(t),r=Xr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=Xr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...sk(i)},l=e.Links;switch(r.Type){case F.Raw:return Py(o);case F.File:return l.length===0?new is(o,u):o.byteLength===0?new ss(Iy(a.blocksizes,l),u):new as(o,Iy(a.blocksizes,l),u);case F.Directory:return cs(Ly(l),u);case F.HAMTShard:return My(Ly(l),o||ou,a.fanout,a.hashType,u);case F.Symlink:return zy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},sk=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var Iy=(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},Ly=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),tt=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Zr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),oo=t=>t.contentByteLength,Vy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),hu=t=>io(t,Uy),io=({mode:t,mtime:e},r=Ny)=>({mode:t!=null?qy(t,r):void 0,mtime:e!=null?ak(e):void 0}),lr=t=>t==null?Ee:{...t.mode==null?void 0:{mode:Wy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},ak=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},qy=(t,e)=>{let r=t==null?void 0:Wy(t);return r===e||r==null?void 0:r},Wy=t=>t&4095|t&4294963200,ck=({content:t=ou,parts:e=Dy,metadata:r=Ee,...n})=>e.length===0?new is(t,r):t.byteLength===0?new ss(e,r):new as(t,e,r),is=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 ls(this.content,this.metadata)}},ss=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(oo)}encode(){return cu(this.parts,this.metadata)}},as=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(oo)}encode(){return uu(this.content,this.parts,this.metadata)}},uk=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 lk=function*(t){let e=yield*t;yield*hs(e)};function*wu(){return yield ms}var rn=function*(){yield gs};var ds=function*(t){let e=yield*wu();if(dk(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,It(e)},o=>{r=!0,n=o,It(e)}),yield*rn(),r)throw n;return n}else return mk(fk(e)),yield*rn(),t};function*fk(t){It(t)}var dk=t=>t!=null&&typeof t.then=="function",hs=function*(t){yield t},ps=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==co&&e.push(yield*on(pk(o,n)))}yield*xu(e)},ys=t=>t.length>0?hk(t.map(lk)):co;function*hk(t){let e=[];for(let r of t)e.push(yield*on(r));yield*xu(e)}var pk=(t,e)=>t===co?co:t instanceof so?new so([...t.tags,e],t.source):new so([e],t),so=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 gs:case ms:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=yk(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"}},uo=()=>co;var yk=(t,e)=>({type:t,[t]:e});var ms=Symbol("current"),gs=Symbol("suspend");var dt=class t{static of(e){return e.group||tn}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new nn(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Jy}},pu=class{constructor(){this.status=ao,this.stack=new nn,this.id=0}},nn=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},mk=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(tn.status===ao)for(tn.status=Xy;;)try{for(let r of bu(tn));tn.status=ao;break}catch{tn.stack.active.shift()}},gk=t=>It(t),bu=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=Yy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case gs:t.stack.idle.add(r);break e;case ms:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var on=(t,e)=>new gu(t,e),wk=(t,e)=>Gy(t,{ok:!0,value:e});var yu=(t,e)=>Gy(t,{ok:!1,error:e});function*Gy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===gs){let{idle:o}=dt.of(r).stack;o.add(r)}else It(r)}catch{}}function*xu(t){if(t.length===0)return;let e=yield*wu(),r=new dt(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}bk(o,r)}try{if(n)throw n.error;for(;yield*bu(r),nn.size(r.stack)>0;)yield*rn()}catch(o){for(let i of r.stack.active)yield*yu(i,o);for(let i of r.stack.idle)yield*yu(i,o),It(i);throw o}}var bk=(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*ku(t){t.status===ao&&(yield*t),t.result||(yield*xu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var mu=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}},gu=class extends mu{constructor(e,r=xk,n={},o=Yy){super(n),this.id=++Jy,this.name=r.name||"",this.task=e,this.state=o,this.status=ao,this.result,this.handler=n,this.controller}*resume(){gk(this)}join(){return ku(this)}abort(e){return yu(this,e)}exit(e){return wk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Xy,It(this),this}panic(e){this.result={ok:!1,error:e},this.status=Ky;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=Ky;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)}}},Qy=function*(t,e){let r=yield*wu(),n=new dt(r);for(dt.enqueue(t[Symbol.iterator](),n);;){for(let o of bu(n))dt.enqueue(e(o)[Symbol.iterator](),n);if(nn.size(n.stack)>0)yield*rn();else break}},Jy=0,ao="idle",Xy="active",Ky="finished",Yy={done:!1,value:ms},xk={},co=function*(){}(),tn=new pu;function vu(){}Object.defineProperties(vu,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var Eu=()=>new lo;var em=(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 Eu();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 lo(n,t.byteOffset+o,s)},kk=(t,e)=>e.byteLength>0?(t.segments.push(e),new lo(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,vk=(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}}},Ek=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*Sk(t){for(let e of t.segments)yield*e}var lo=class extends vu{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return Sk(this)}slice(e,r){return em(this,e,r)}subarray(e,r){return em(this,e,r)}push(e){return kk(this,e)}get(e){return vk(this,e)}copyTo(e,r){return Ek(this,e,r)}};var fo=t=>{throw new Error(t)},tm=(t,e,...r)=>fo(String.raw(t,JSON.stringify(e),...r)),rm=new Uint8Array(0),nm=[];var om=t=>({config:t,buffer:Eu()}),im=(t,e)=>e.byteLength>0?am(t.config,t.buffer.push(e),!1):{...t,chunks:nm},sm=t=>am(t.config,t.buffer,!0),am=(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 cm=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:_u});var Bu=(t,e)=>{let r=sn(e,{});for(let n of t){let{ready:o,has:i,wants:s}=lm(n.children,r.links);s.length===0?r=sn(r,{links:Au(void 0,i),linked:[{id:n.id,links:o}]}):r=sn(r,{needs:Au(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},um=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=lm(o.children,{...r.links,[t]:e});return sn(r,{needs:{[t]:void 0},links:Au(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return sn(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return sn(r,{links:{[t]:e}})},sn=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?Ck:void 0;return e&&(i.needs=Su(t.needs,e,s)),r&&(i.nodes=Su(t.nodes,r,s)),n&&(i.links=Su(t.links,n,s)),i.linked=o?Bk(t.linked||_u,o,_u):t.linked||[],i},Au=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},Su=(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 Bk=(t,e,r=t)=>{if(t===r)return[...t,...e];for(let n of e)t.push(n);return t},lm=(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}},_u=Object.freeze([]),Ck=Object.freeze({});var fm=(t,e)=>{switch(t.type){case"write":return Ik(e,t.bytes);case"link":return Lk(e,t.link);case"block":return{state:e,effect:uo()};case"close":return Dk(e);case"end":return{state:e,effect:uo()};default:return tm`File Writer got unknown message ${t}`}},dm=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:om({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:cm()}),Ik=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=im(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=Bu(o,t.nodeQueue),u=[...hm(i,t.config),...Cu(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:ps({link:ys(u)})}}else return fo("Unable to perform write on closed file")},Lk=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=um(e,r,t.nodeQueue),s=Cu(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():uo();return{state:c,effect:ps({link:ys(s),block:Pk(t.writer,n),end:a})}},Dk=t=>{if(t.status==="open"){let{chunks:e}=sm(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Mk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=Bu(s,t.nodeQueue),l=[...hm(c,t.config),...Cu(a,t.config)],d=on(rn());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:ps({link:ys(l),end:ku(d)})}}else return{state:t,effect:uo()}},hm=(t,e)=>t.map(r=>Nk(e,r,e.fileChunkEncoder)),Nk=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Fk(n):rm),s=yield*ds(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}},Cu=(t,e)=>t.map(r=>Uk(e,r)),Uk=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:F.File,layout:"advanced",parts:r,metadata:n}),i=yield*ds(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:Zr(o,r)};return{id:e,block:c,link:a}},Pk=function*(t,e){(t.desiredSize||0)<=0&&(yield*ds(t.ready)),t.write(e)},Fk=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Mk=t=>t.children==null;var Iu={};Q(Iu,{context:()=>Rk,cut:()=>ym,name:()=>pm,type:()=>zk,withMaxChunkSize:()=>Tu});var pm="fixed",Rk={maxChunkSize:262144},zk="Stateless",Tu=t=>({type:"Stateless",context:{maxChunkSize:t},name:pm,cut:ym}),ym=({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 ho=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},ws=t=>({open:()=>Hk({width:t}),write:jk,close:Vk}),$k={width:174},Hk=({width:t}=$k)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),jk=(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?gm({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:pe}}}},gm=(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;){mm(i,1);let u=new ho(++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 ho(++o,u.splice(0,c));mm(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},Vk=(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}=gm(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 ho(o.lastID+1,c,e),nodes:n,leaves:pe}}},mm=(t,e)=>{for(;t.length<e;)t.push([]);return t},pe=[];var Lt=()=>({chunker:Iu,fileChunkEncoder:Lu,smallFileEncoder:Lu,fileEncoder:en,fileLayout:ws(174),hasher:ut,linker:{createLink:j.createV1}}),Dt=t=>({...Lt(),...t}),Lu={code:Yr,name:iu,encode:au};var po=({writer:t,metadata:e={},settings:r=Lt()})=>new Du(dm(t,e,Dt(r))),wm=async(t,e)=>(await xm(t,hs({type:"write",bytes:e})),t),bm=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await xm(t,hs({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;fo(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},xm=(t,e)=>on(Qy(e,r=>{let{state:n,effect:o}=fm(r,t.state);return t.state=n,o})),Du=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return wm(this,e)}close(e){return bm(this,e)}};var Wk=Lt,Uu=({writer:t,settings:e=Wk(),metadata:r={}})=>new bs({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),xs=(t,e,r,{overwrite:n=!1}={})=>{let o=Pu(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},ks=(t,e)=>(Pu(t.state).entries.delete(e),t),Pu=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},km=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=Pu(t.state);t.state.closed=!0;let s=[...vm(t)],c=cs(s,i),a=fs(c),u=await o.hasher.digest(a),l=o.linker.createLink(Yr,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:Zr(a,s)}},vm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},Em=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new bs({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),bs=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return vm(this)}set(e,r,n){return xs(this,e,r,n)}remove(e){return ks(this,e)}fork(e){return Em(this,e)}close(e){return km(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var Ss={};Q(Ss,{API:()=>vs,and:()=>e2,bitCount:()=>Es,empty:()=>Sm,from:()=>Gk,fromBytes:()=>n2,get:()=>Zk,or:()=>t2,popcount:()=>Fu,set:()=>Am,size:()=>Qk,toBytes:()=>r2,unset:()=>Yk});var vs={};var Sm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},Gk=(t,e)=>{let r=Sm(e);for(let n of t)r=Am(r,n);return r},Qk=t=>32,Jk=(t,e)=>t>>>e&31,Xk=(t,e)=>1<<Jk(t,e),Fu=(t,e=31)=>Es(t&Xk(e,0)-1),Am=(t,e)=>t|1<<e,Yk=(t,e)=>t&(255^1<<e),Zk=(t,e)=>(t>>e&1)!==0,Es=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},e2=(t,e)=>t&e,t2=(t,e)=>t|e,r2=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),n2=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 Cm=W(Mu(),1),o2=new TextEncoder,i2=Cm.default.x64.hash126,Tm=({bitWidth:t=5,hash:e=i2})=>{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(o2.encode(s)),size:Math.ceil(4*8/t)}};var an=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 mo(this.config)}lookup(e,r,n,o){return Lm(this,e,r,n,o)}associate(e,r,n,o,i,s){return zu(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return Dm(this,e,r,n,o,i)}fork(e=null){return go(this,e)}entries(){return Nm(this)}keys(){return Um(this)}values(){return Pm(this)}},_s=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 s2(this,n,o)}associate(e,r,n,o,i,s){return a2(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return c2(this,e,n,o,i)}fork(e=null){return u2(this,e)}entries(){return Nm(this)}keys(){return Um(this)}values(){return Pm(this)}},s2=(t,e,r)=>{let{children:n,count:o}=t,i=Ou(n,o,e);return n[i]===e?n[i+1]:r},a2=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Ou(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},c2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Ou(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return zu(mo(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}},u2=(t,e=null)=>Rm(t.edit,e)?t:new _s(e,t.count,t.children.slice(),t.config),Ou=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var mo=(t,e=null)=>new an(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),Cs=(t,e,r)=>Lm(t,0,t.config.Path.from(e),e,r),Lm=(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 Ts(t,d)===n?Bs(t,d):o}else return u.get(s,l)?Is(t,l).lookup(e+1,r,n,o):o},Ru=(t,e,r,n,o)=>zu(t,e,0,t.config.Path.from(r),r,n,o),zu=(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=Ts(t,f);if(o===h)return Bs(t,f)===i?t:l2(t,e,f,i);{let p=Mm(u,e,r+1,l.from(h),h,Bs(t,f),n,o,i);return s.value=!0,d2(t,e,m,p)}}else if(d.get(a,m)){let f=Is(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Fm(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(wo(f),0,o,i),h}},$u=(t,e,r,n)=>Dm(t,e,0,t.config.Path.from(r),r,n);var Dm=(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===Ts(t,m)){i.value=!0;let f=go(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(wo(m),2),f}else return t}else if(u.get(c,d)){let m=Is(t,d),f=m.dissociate(e,r+1,n,o,i);return h2(f)?p2(t)?f:f2(t,e,d,f):m===f?t:Fm(t,e,d,f)}else return t},Nm=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},go=(t,e)=>Rm(t.edit,e)?t:new an(e,t.datamap,t.nodemap,t.children.slice(),t.config),Um=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},Pm=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},l2=(t,e,r,n)=>{let o=t.fork(e);return o.children[Om(r)]=n,o},f2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=go(t,e);return a.children.splice(Ls(t,r),1),a.children.splice(wo(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Fm=(t,e,r,n)=>{let o=go(t,e);return o.children[Ls(t,r)]=n,o},d2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=wo(a),l=Ls(t,r),d=go(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},Mm=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new _s(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new an(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Mm(t,e,r+1,n,o,i,s,c,a)],t):new an(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)}},Ts=({children:t},e)=>t[wo(e)],wo=t=>t*2,Bs=({children:t},e)=>t[Om(e)],Om=t=>t*2+1,Is=(t,e)=>t.children[Ls(t,e)],Ls=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Rm=(t,e)=>t!=null&&t===e,h2=t=>t.nodeArity===0&&t.dataArity===1,p2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var Ds=W(Mu(),1);function y2(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 K3=Kt({name:"murmur3-32",code:35,encode:t=>y2(Ds.default.x86.hash32(t))}),$m=Kt({name:"murmur3-128",code:34,encode:t=>Ht.fromHex(Ds.default.x64.hash128(t))}),bo=Kt({name:"murmur3-x64-64",code:34,encode:t=>Ht.fromHex(Ds.default.x64.hash128(t)).subarray(0,8)});var m2=new TextEncoder,g2=t=>bo.encode(t),Hm=({bitWidth:t=8,hash:e=g2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(m2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Hu(i,c,t)},size:Math.ceil(r*8/t)}},Hu=(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 ju={};Q(ju,{API:()=>vs,and:()=>C2,empty:()=>jm,from:()=>b2,fromBytes:()=>A2,get:()=>E2,or:()=>B2,popcount:()=>_2,set:()=>k2,size:()=>x2,toBytes:()=>S2,unset:()=>v2});var jm=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},b2=(t,e)=>{let r=jm(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=xo(r,n);r[i]=o|1<<s}return r},x2=t=>t.byteLength*8,xo=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Vm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},k2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=xo(t,e);return Vm(t,n,r|1<<o)},v2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=xo(t,e);return Vm(t,n,r&(255^1<<o))},E2=(t,e)=>{var{byte:r,bitOffset:n}=xo(t,e);return(r>>n&1)!==0},S2=t=>t,A2=t=>t,_2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=xo(t,e),i=Fu(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=Es(c),s--}return i},B2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},C2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var qm=new RangeError("Not Found");var T2=({bitWidth:t=5,BitField:e=t===5?Ss:ju,Path:r=t===5?Tm({bitWidth:t}):Hm({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var qu=(t,e)=>Cs(t.root,e,qm)!==qm,Wm=(t,e,r=void 0)=>Cs(t.root,e,r),Km=t=>{let e={},r=T2(t);return new Ns(e,0,mo(r,e),r)},Vu=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,mo(this.config,null),this.config)}has(e){return qu(this,e)}get(e){return Cs(this.root,e,void 0)}set(e,r){let n={value:!1},o=Ru(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=$u(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 Ns({},this.count,this.root,this.config)}},Ns=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=Ru(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=$u(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 Vu(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var I2=new TextEncoder,L2=t=>bo.encode(t),Qm=({bitWidth:t=8,hash:e=L2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>D2(s,c,n),from:s=>I2.encode(s),size:1/0}},D2=(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:N2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Hu(l,d,f),c-=f,a+=f}return s},N2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Jm=8,P2={bitWidth:Jm,Path:Qm({bitWidth:Jm})};var Wu=(t=P2)=>Km(t);var Xm=class extends Map{constructor(e=Wu()){super(),this.builder=e}clear(){this.builder=Wu()}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 Wm(this.builder,e)}has(e){return qu(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 Ym=({writable:t,settings:e=Lt()})=>new Ku({writer:t.getWriter(),settings:e}),M2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Ku=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=Dt(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return po({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return Uu({writer:this.writer,settings:e,metadata:r})}close(e){return M2(this,e)}},O2=1048576,R2=O2*100,Zm=(t=R2)=>({highWaterMark:t,size:e=>e.bytes.length});var Xs=W(rt(),1);function H2(t){return t[Symbol.asyncIterator]!=null}function j2(t){if(H2(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 rg=j2;var ow=W(rt(),1);var ng=0,V2="identity",og=Te,q2=t=>jt(ng,og(t)),ig={code:ng,name:V2,encode:og,digest:q2};var sg=W(rt(),1);var W2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ir(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,sg.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}}}},ag=W2;var cg=W(rt(),1);var ce=class extends Event{constructor(e,r){super(e),this.detail=r}};function K2(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 fr=K2;var ko=W(rt(),1),G2=(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,ko.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,ko.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,ko.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,ko.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},cn=G2;var Q2=t=>{async function*e(r={}){let{start:n,end:o}=cn(t.length,r.offset,r.length),i=fr(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},J2=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=ti(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:Q2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},ug=J2;var lg=W(rt(),1);var X2=t=>{async function*e(r={}){let{start:n,end:o}=cn(t.length,r.offset,r.length),i=fr(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},Y2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,lg.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:X2(a),depth:i,size:BigInt(a.length),node:a}}},fg=Y2;var Uo=W(rt(),1);var Zu=W(rt(),1);var Gu=W(os(),1),dg=W(tu(),1),hg=W(lt(),1),Qu=W(rs(),1),pg=W(Yc(),1);function Z2(){hg.default._configure(),Gu.default._configure(dg.default),Qu.default._configure(pg.default)}Z2();var yg=["uint64","int64","sint64","fixed64","sfixed64"];function ev(t){for(let e of yg){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Ju(t){return ev(new Gu.default(t))}function tv(t){for(let e of yg){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Xu(){return tv(Qu.default.create())}function vo(t,e){let r=Ju(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Eo(t,e){let r=Xu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var un;(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"})(un||(un={}));function Us(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Yu(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 Us("enum",un.VARINT,r,n)}function So(t,e){return Us("message",un.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=()=>Yu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=So((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),Ps.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=Ps.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>Eo(o,t.codec()),t.decode=o=>vo(o,t.codec())})(ze||(ze={}));var Ps;(function(t){let e;t.codec=()=>(e==null&&(e=So((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=>Eo(r,t.codec()),t.decode=r=>vo(r,t.codec())})(Ps||(Ps={}));var mg;(function(t){let e;t.codec=()=>(e==null&&(e=So((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=>Eo(r,t.codec()),t.decode=r=>vo(r,t.codec())})(mg||(mg={}));var gg={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},rv=["directory","hamt-sharded-directory"],wg=parseInt("0644",8),bg=parseInt("0755",8),ln=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(gg).includes(r))throw(0,Zu.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:gg[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()?bg:wg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return rv.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,Zu.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===wg&&!this.isDirectory()&&(n=void 0),n===bg&&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 Ig=W(vg(),1);var el={};Q(el,{identity:()=>sv});var sv=xr({prefix:"\0",name:"identity",encode:t=>Pl(t),decode:t=>Ul(t)});var tl={};Q(tl,{base2:()=>av});var av=G({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var rl={};Q(rl,{base8:()=>cv});var cv=G({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var nl={};Q(nl,{base10:()=>uv});var uv=yt({prefix:"9",name:"base10",alphabet:"0123456789"});var ol={};Q(ol,{base16:()=>lv,base16upper:()=>fv});var lv=G({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),fv=G({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var il={};Q(il,{base36:()=>dv,base36upper:()=>hv});var dv=yt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),hv=yt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var sl={};Q(sl,{base64:()=>pv,base64pad:()=>yv,base64url:()=>mv,base64urlpad:()=>gv});var pv=G({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),yv=G({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),mv=G({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gv=G({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var al={};Q(al,{base256emoji:()=>vv});var Eg=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}"),wv=Eg.reduce((t,e,r)=>(t[r]=e,t),[]),bv=Eg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function xv(t){return t.reduce((e,r)=>(e+=wv[r],e),"")}function kv(t){let e=[];for(let r of t){let n=bv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var vv=xr({prefix:"\u{1F680}",name:"base256emoji",encode:xv,decode:kv});var cl={};Q(cl,{identity:()=>Av});var Sg=0,Ev="identity",Ag=ot,Sv=t=>Ft(Sg,Ag(t)),Av={code:Sg,name:Ev,encode:Ag,digest:Sv};var ET=new TextEncoder,ST=new TextDecoder;var ul={...el,...tl,...rl,...nl,...ol,...la,...il,...ua,...sl,...al},_T={...Pc,...cl};function fn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Fs(t=0){return globalThis.Buffer?.allocUnsafe!=null?fn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Bg(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var _g=Bg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ll=Bg("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=Fs(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Cv={utf8:_g,"utf-8":_g,hex:ul.base16,latin1:ll,ascii:ll,binary:ll,...ul},Cg=Cv;function Tg(t,e="utf8"){let r=Cg[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?fn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var dr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new Ig.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 Lg(this,e,r)}toJSON(){return this.serialize(Iv,Lv)}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"?Tg(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(Tv);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 Tv(t){return!!t}function Iv(t,e){return t.key}function Lv(t){return t}async function Lg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof dr)await Lg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Dv=[255,254,252,248,240,224,192,128],Nv=[1,3,7,15,31,63,127,255],Ms=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=Uv(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 Uv(t,e,r){let n=Pv(e,r);return(t&n)>>>e}function Pv(t,e){return Dv[t]&Nv[Math.min(e+t-1,7)]}function Dg(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Fs(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return fn(r)}function Ng(t){function e(r){return r instanceof Os?r:new Os(r,t)}return e}var Os=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?Dg([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new Ms(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Ug(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:Ng(t.hashFn)};return new dr(e)}var Fv=async function(t){return(await $m.encode(t)).slice(0,8).reverse()},Mv=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 dr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Pg=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Ov=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Fg=async(t,e,r,n,o)=>{if(n==null){let l=Ug({hashFn:Fv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Mv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Pg(i.pos),c=Ov(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Pg(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),Fg(t,e,r,n,o)},Mg=Fg;function Rv(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 Rs=Rv;function zv(t){return t[Symbol.asyncIterator]!=null}function $v(t,e){if(zv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Rs(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 Og=$v;function Hv(t){return t[Symbol.asyncIterator]!=null}function jv(t,e){if(Hv(t))return async function*(){for await(let c of t)yield e(c)}();let r=Rs(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 dn=jv;function ht(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var zs=globalThis.CustomEvent??Event;async function*hr(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 zs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new zs("task-complete"))})}a=!0,o.dispatchEvent(new zs("task-complete"))}catch(h){u=h,o.dispatchEvent(new zs("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 $s=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}},hn=class{constructor(e={}){k(this,"size");k(this,"hwm");k(this,"head");k(this,"tail");this.hwm=e.splitLimit??16,this.head=new $s(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 $s(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 fl=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 pn(t={}){return Vv(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 Vv(t,e){e=e??{};let r=e.onEnd,n=new hn,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 hn,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 hn,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 fl)},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 qv(t){return t[Symbol.asyncIterator]!=null}function Wv(...t){let e=[];for(let r of t)qv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=pn({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 Rg=Wv;function yn(t,...e){if(t==null)throw new Error("Empty pipeline");if(dl(t)){let n=t;t=()=>n.source}else if($g(t)||zg(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&dl(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++)dl(r[n])&&(r[n]=Gv(r[n]));return Kv(...r)}var Kv=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},zg=t=>t?.[Symbol.asyncIterator]!=null,$g=t=>t?.[Symbol.iterator]!=null,dl=t=>t==null?!1:t.sink!=null&&t.source!=null,Gv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=pn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(zg(i))o=async function*(){yield*i,n.end()};else if($g(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Rg(n,o())}return t.source};var Qv=(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*yn(d,m=>dn(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>hr(m,{ordered:!0}),m=>Og(m,f=>f!=null))}return c},Hg=Qv;var yr=W(rt(),1);var Zg=W(Vg(),1);var _o=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},pl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},qg=t=>globalThis.DOMException===void 0?new pl(t):new DOMException(t),Wg=t=>{let e=t.reason===void 0?qg("This operation was aborted."):t.reason;return e instanceof Error?e:qg(e)};function yl(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(Wg(a)),a.addEventListener("abort",()=>{c(Wg(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 _o(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 ml(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 pr=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,Bo=class{constructor(){pt.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&pr(this,pt,"f")[this.size-1].priority>=r.priority){pr(this,pt,"f").push(n);return}let o=ml(pr(this,pt,"f"),n,(i,s)=>s.priority-i.priority);pr(this,pt,"f").splice(o,0,n)}dequeue(){let e=pr(this,pt,"f").shift();return e?.run}filter(e){return pr(this,pt,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return pr(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)},Y,To,Io,Ut,Gs,Lo,js,$e,Co,Se,Vs,Ae,Do,Nt,qs,Kg,Gg,Xg,Qg,Jg,Ws,gl,wl,Qs,Yg,Ks,Js=class extends Error{},No=class extends Zg.default{constructor(e){var r,n,o,i;if(super(),Y.add(this),To.set(this,void 0),Io.set(this,void 0),Ut.set(this,0),Gs.set(this,void 0),Lo.set(this,void 0),js.set(this,0),$e.set(this,void 0),Co.set(this,void 0),Se.set(this,void 0),Vs.set(this,void 0),Ae.set(this,0),Do.set(this,void 0),Nt.set(this,void 0),qs.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:Bo,...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,To,e.carryoverConcurrencyCount,"f"),K(this,Io,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),K(this,Gs,e.intervalCap,"f"),K(this,Lo,e.interval,"f"),K(this,Se,new e.queueClass,"f"),K(this,Vs,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,K(this,qs,e.throwOnTimeout===!0,"f"),K(this,Nt,e.autoStart===!1,"f")}get concurrency(){return L(this,Do,"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,Do,e,"f"),L(this,Y,"m",Qs).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:L(this,qs,"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 Js("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=yl(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,L(this,Y,"m",Yg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof _o&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{L(this,Y,"m",Xg).call(this)}},r),this.emit("add"),L(this,Y,"m",Ws).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,Y,"m",Qs).call(this),this):this}pause(){K(this,Nt,!0,"f")}clear(){K(this,Se,new(L(this,Vs,"f")),"f")}async onEmpty(){L(this,Se,"f").size!==0&&await L(this,Y,"m",Ks).call(this,"empty")}async onSizeLessThan(e){L(this,Se,"f").size<e||await L(this,Y,"m",Ks).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,Y,"m",Ks).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")}};To=new WeakMap,Io=new WeakMap,Ut=new WeakMap,Gs=new WeakMap,Lo=new WeakMap,js=new WeakMap,$e=new WeakMap,Co=new WeakMap,Se=new WeakMap,Vs=new WeakMap,Ae=new WeakMap,Do=new WeakMap,Nt=new WeakMap,qs=new WeakMap,Y=new WeakSet,Kg=function(){return L(this,Io,"f")||L(this,Ut,"f")<L(this,Gs,"f")},Gg=function(){return L(this,Ae,"f")<L(this,Do,"f")},Xg=function(){var e;K(this,Ae,(e=L(this,Ae,"f"),e--,e),"f"),L(this,Y,"m",Ws).call(this),this.emit("next")},Qg=function(){L(this,Y,"m",wl).call(this),L(this,Y,"m",gl).call(this),K(this,Co,void 0,"f")},Jg=function(){let e=Date.now();if(L(this,$e,"f")===void 0){let r=L(this,js,"f")-e;if(r<0)K(this,Ut,L(this,To,"f")?L(this,Ae,"f"):0,"f");else return L(this,Co,"f")===void 0&&K(this,Co,setTimeout(()=>{L(this,Y,"m",Qg).call(this)},r),"f"),!0}return!1},Ws=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,Y,"a",Jg);if(L(this,Y,"a",Kg)&&L(this,Y,"a",Gg)){let r=L(this,Se,"f").dequeue();return r?(this.emit("active"),r(),e&&L(this,Y,"m",gl).call(this),!0):!1}}return!1},gl=function(){L(this,Io,"f")||L(this,$e,"f")!==void 0||(K(this,$e,setInterval(()=>{L(this,Y,"m",wl).call(this)},L(this,Lo,"f")),"f"),K(this,js,Date.now()+L(this,Lo,"f"),"f"))},wl=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,To,"f")?L(this,Ae,"f"):0,"f"),L(this,Y,"m",Qs).call(this)},Qs=function(){for(;L(this,Y,"m",Ws).call(this););},Yg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Js("The task was aborted."))},{once:!0})})},Ks=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function ew(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=fr(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,yr.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=ln.unmarshal(e.Data)}catch(u){throw(0,yr.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=fr(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,yr.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 yn(a,u=>dn(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>hr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case ar:f=Ye(d);break;case jn:f=d;break;default:r.end((0,yr.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new No({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:l.Hash})),await ew(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Yv=(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}=cn(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=pn();a.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:t})),ew(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,yr.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,yr.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},bl=Yv;var Zv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),tw(e,n,o,i,s,a)}return c};async function*tw(t,e,r,n,o,i){let s=t.Links,c=yn(s,a=>dn(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:tw(t,e,r,n,o,i)}}}),a=>hr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var rw=Zv;var eE=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,tE={raw:bl,file:bl,directory:Hg,"hamt-sharded-directory":rw,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},rE=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,Uo.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=ln.unmarshal(u.Data)}catch(f){throw(0,Uo.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Mg(u,n[0],s):f=eE(u,n[0]),f==null)throw(0,Uo.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=tE[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,Uo.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}},nw=rE;var nE={[ar]:nw,[jn]:fg,[Da]:ag,[ig.code]:ug},iw=async(t,e,r,n,o,i,s)=>{let c=nE[t.code];if(c==null)throw(0,ow.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,iw,o,i,s)},sw=iw;var oE=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),iE=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=oE(t);return{cid:V.parse(r[0]),toResolve:r.slice(1)}}throw(0,Xs.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*sE(t,e,r={}){let{cid:n,toResolve:o}=iE(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await sw(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Xs.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 aw(t,e,r={}){let n=await rg(sE(t,e,r));if(n==null)throw(0,Xs.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var aE=Zm(),cE=Dt({fileChunkEncoder:Et,smallFileEncoder:Et,chunker:Tu(1024*1024),fileLayout:ws(1024)});async function cw(t){let e=uE(t),r=await lE(e);return{cid:r.at(-1).cid,blocks:r}}async function uw(t,e,r){let n=await aw(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 uE(t){let{readable:e,writable:r}=new TransformStream({},aE),n=Ym({writable:r,settings:cE}),o=new xl("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function lE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var Po,xl=class{constructor(e,r){nt(this,Po,void 0);k(this,"name");this.name=e,fe(this,Po,r)}async finalize(e){let r=po(e);return await Z(this,Po).stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};Po=new WeakMap;async function dw(t,e,r,n){let o;for(let i of r){let s=await fE(t,i);o=await vp(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 fE(t,e){let r;e.del?r={del:!0}:(await dE(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 dE(t,e){e._files&&await lw(t,e._files),e._publicFiles&&await lw(t,e._publicFiles,!0)}async function lw(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 cw(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 hw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await Ep(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await Sl(t,n)}function El(t,{doc:e}){e&&(e._files&&fw(t,e._files),e._publicFiles&&fw(t,e._publicFiles,!0))}function fw(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 uw({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 Sl(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 El(t,n),n}var kl=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 Fo(t,e,r,n){let o=n.dirty?new kl(t):new Je(t);return{result:(await vl(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function vl(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 vl(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await Sl(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await vl(t,e,l.parents,n,o,i,s,c))}}return o}async function*pw(t,e){for await(let[r,n]of Rc(t,e)){let o=await Sl(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*yw(t,e){for await(let r of Fc(t,e))yield r}async function mw(t,e){let r=new qi(t),n=new _t(t);for await(let[,i]of Rc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of Fc(r,e));let o=await Kr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await Fo(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 Ys=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 Yn(u,l,m);let d=await Kr(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 Fo(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 Zs=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 Ys);this.name=e||null,this.opts=r||this.opts,this.blocks=new Vi(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new ji(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 dw(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(El(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 pw(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 yw(this.blocks,this.clock.head))e.push(r);return e.join(`
3
+ You can use close({ resize: true }) to resize header`)},Ah=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Ja=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},Eh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},y1=[new C(x.map,2),new C(x.string,"version"),new C(x.uint,1),new C(x.string,"roots")],m1=new C(x.tag,42),g1=t=>{let e=[...y1];e.push(new C(x.array,t.length));for(let n of t)e.push(m1),e.push(new C(x.bytes,{length:n+1}));let r=Qa(e);return $n.default.encodingLength(r)+r},mi=({roots:t})=>g1(t.map(e=>e.bytes.byteLength));var _h=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=mi({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Xa(s,i);for(let a of r)c.addRoot(a);return c};var Kt=({name:t,code:e,encode:r})=>new Ya(t,e,r),Ya=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?jt(this.code,r):r.then(n=>jt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function gi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*b1(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*Za(n,o))}else{let r=V.asCID(e);r?yield[t.join("/"),r]:yield*Za(e,t)}}function*Za(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*b1(i,o)}}function*x1(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*ec(n,o))}else yield*ec(e,t)}function*ec(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*x1(o,n))}}function k1(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 Hn=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:gi(),bytes:gi(),value:gi(),asBlock:gi()})}links(){return Za(this.value,[])}tree(){return ec(this.value,[])}get(e="/"){return k1(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 Hn({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 Hn({value:n,bytes:t,cid:i})}function v1({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 Hn({cid:e,bytes:t,value:o})}async function wi({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(!Ht.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return v1({bytes:t,cid:e,value:o,codec:n})}var Ch=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),de=Kt({name:"sha2-256",code:18,encode:Ch("SHA-256")}),S_=Kt({name:"sha2-512",code:19,encode:Ch("SHA-512")});var Et={};Q(Et,{code:()=>jn,decode:()=>A1,encode:()=>S1,name:()=>E1});var E1="raw",jn=85,S1=t=>Te(t),A1=t=>Te(t);async function Vn(t,e){let r=0,n=mi({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=Sh({cid:s,bytes:c});let o=new Uint8Array(r),i=_h(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 tc(t){return await Ge({value:{fp:t},hasher:de,codec:q})}async function rc(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 Gt={};Q(Gt,{code:()=>I1,crypto:()=>L1,decode:()=>T1,decrypt:()=>ki,encode:()=>C1,encrypt:()=>vi,name:()=>D1});function bi(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var qn=bi();function xi(t){let e=new Uint8Array(t);return t>0&&qn.getRandomValues(e),e}var _1=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},B1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},Th=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},C1=({iv:t,bytes:e})=>Th([t,e]),T1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},I1=3145728+1337;async function Ih(t){return await qn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var ki=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await Ih(t),i=await qn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=B1(r.subarray(0,4)),c=V.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},vi=async({key:t,cid:e,bytes:r})=>{let n=_1(e.bytes.byteLength),o=xi(12),i=Th([n,e.bytes,r]);try{let s=await Ih(t),c=await qn.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}}},L1=t=>({encrypt:e=>vi({key:t,...e}),decrypt:e=>ki({key:t,...e})}),D1="jchris@encrypted-block:aes-gcm";var Wn=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Kn=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 Jt=(t,e)=>t===e?0:t>e?1:-1,Lh=(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},Qt=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 Xt=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)}}},Dh=t=>typeof t=="string"?t:JSON.stringify(t);function N1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function U1(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 P1(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 F1(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 M1(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 U1(c,r,t.compare);if(a.length){let u=await P1(a,i,t),l=await F1(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 Qt){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 Qt){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 Qt){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 Qt){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=Dh(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=Dh(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=N1(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 M1(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}))}},Ei=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}},zr=class extends Ei{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}},$r=class extends Ei{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},Si=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 nc=({bytes:t},{bytes:e})=>Lh(t,e),Ai=class extends Xt{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return Wn(e)}},_i=class extends Xt{async identity(){let{multihash:{bytes:e}}=await this.address;return Wn(e)}},Bi=class extends zr{},Ci=class extends $r{},Nh=(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:nc},l,d;if(a.leaf)l=a.leaf.map(h=>new Ai(h)),d=Ci;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new _i({key:w,address:g})),d=Bi}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},Uh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(nc));let c=Nh(t,e,r,o,i);return Si({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:nc,cache:e,LeafClass:Ci,LeafEntryClass:Ai,BranchClass:Bi,BranchEntryClass:_i})},Ph=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>Nh(e,r,n,o,i,s)(t);var Fh=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 vi({...h,key:n}),w=await Ge({...p,codec:Gt,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 Uh({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})},Mh=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:Gt,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 Ph({cid:l,get:s,cache:n,chunker:o,codec:Gt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await vt({...w,codec:Gt,hasher:i}));let{bytes:g,cid:b}=await ki({...w,key:r}).catch(E=>{throw E});return await wi({cid:b,bytes:g,hasher:i,codec:Gt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var Hr={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var Oh=Kn(30);function Rh(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 zh(t,e,r){let n=Rh(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 Fh({cids:s,get:r.get.bind(r),key:o,hasher:de,chunker:Oh,cache:Hr,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await Vn([c.cid],i)}async function $h(t,e){let n=(await e.getRoots())[0];return await O1(n,e.get.bind(e),t)}async function O1(t,e,r){let n=Rh(r),o=n.buffer.slice(0,n.byteLength),i=new _e,s=null;for await(let c of Mh({root:t,get:e,key:o,hasher:de,chunker:Oh,cache:Hr}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var oc=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=Vo(JSON.stringify(r.value));e.push(n.length>32?En(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 R1(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 z1={addBreakTokens:!0,mapSorter:R1};function ic(t,e){return e=Object.assign({},z1,e),xa(t,new oc,e)}var jr=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,pa(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 sc(t,e){return e=Object.assign({tokenizer:new jr(t,e)},e),In(t,e)}var ac=ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),d6=ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),h6=ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),p6=ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function H1(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 Ti(t){let e=ac.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 Ti(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function j1(t){return Ti(new Uint8Array(t))}function V1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function q1(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 W1={typeEncoders:{Object:H1,Buffer:Ti,Uint8Array:Ti,Int8Array:Fe,Uint16Array:Fe,Int16Array:Fe,Uint32Array:Fe,Int32Array:Fe,Float32Array:Fe,Float64Array:Fe,Uint8ClampedArray:Fe,BigInt64Array:Fe,BigUint64Array:Fe,DataView:Fe,ArrayBuffer:j1,undefined:V1,number:q1}},cc=class extends jr{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=ac.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}},uc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};uc.tags[42]=V.parse;var K1=t=>ic(t,W1),G1=t=>{let e=Object.assign(uc,{tokenizer:new cc(t,uc)});return sc(t,e)},Ii=t=>Q1.decode(K1(t));var Q1=new TextDecoder,Li=t=>G1(J1.encode(t)),J1=new TextEncoder;var X1=(t,e)=>e.some(r=>t instanceof r),Hh,jh;function Y1(){return Hh||(Hh=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Z1(){return jh||(jh=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Vh=new WeakMap,fc=new WeakMap,qh=new WeakMap,lc=new WeakMap,hc=new WeakMap;function ex(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&&Vh.set(r,t)}).catch(()=>{}),hc.set(e,t),e}function tx(t){if(fc.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)});fc.set(t,e)}var dc={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return fc.get(t);if(e==="objectStoreNames")return t.objectStoreNames||qh.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 Wh(t){dc=t(dc)}function rx(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(Di(this),e,...r);return qh.set(n,e.sort?e.sort():[e]),Qe(n)}:Z1().includes(t)?function(...e){return t.apply(Di(this),e),Qe(Vh.get(this))}:function(...e){return Qe(t.apply(Di(this),e))}}function nx(t){return typeof t=="function"?rx(t):(t instanceof IDBTransaction&&tx(t),X1(t,Y1())?new Proxy(t,dc):t)}function Qe(t){if(t instanceof IDBRequest)return ex(t);if(lc.has(t))return lc.get(t);let e=nx(t);return e!==t&&(lc.set(t,e),hc.set(e,t)),e}var Di=t=>hc.get(t);function Gh(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 ox=["get","getKey","getAll","getAllKeys","count"],ix=["put","add","delete","clear"],pc=new Map;function Kh(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(pc.get(e))return pc.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=ix.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||ox.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 pc.set(e,i),i}Wh(t=>({...t,get:(e,r,n)=>Kh(e,r)||t.get(e,r,n),has:(e,r)=>!!Kh(e,r)||t.has(e,r)}));var yc="0.13.4-dev";var Qh=yc.match(/^([^.]*\.[^.]*)/);if(!Qh)throw new Error("invalid version: "+yc);var Jn=Qh[0],mc=class{constructor(e){k(this,"STORAGE_VERSION",Jn);k(this,"name");this.name=e}},Gn=class extends mc{constructor(){super(...arguments);k(this,"tag","header-base")}makeHeader({car:r,key:n}){return Ii({car:r,key:n})}parseHeader(r){return Li(r)}},Qn=class{constructor(e){k(this,"tag","car-base");k(this,"STORAGE_VERSION",Jn);k(this,"loader");this.loader=e}};var Ni=class{constructor(e){k(this,"tag","rwal-base");k(this,"STORAGE_VERSION",Jn);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=vn(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 Vr=class extends Qn{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 Gh(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?Li(n):null}catch{return null}}async save(r,n="main"){try{let o=Ii(r);localStorage.setItem(this.headerKey(n),o)}catch{}}},Pi=class extends Gn{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 gc(t,e){return t.some(r=>r.equals(e))}function Jh(t,e=[]){let r=new Map;for(let n of t)gc(e,n)||r.set(n.toString(),n);return[...r.values()]}function Xh(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Yt=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 Vr(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),gc(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Jh([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 rc(r)}async _getKey(){return this.key?this.key:(this.opts.public||(bi()?await this.setKey(Xh(xi(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 tc(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 zh(s,i[0],e):await Vn(i,e);if(wc(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=[...Jh([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 qt.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 $h(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=bi();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=vn(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};k(Yt,"defaultHeader");var qr=W(np(),1);var Fi=class extends Xt{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return Wn(r)}},Zt=class extends Fi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},er=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]}},op=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},ip=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},tr=class extends $r{get(e){return op(this,e)}getMany(e){return ip(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...sp,...r},n)}},rr=class extends zr{get(e){return op(this,e)}getMany(e){return ip(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...sp,...r},n)}},sp={LeafClass:tr,LeafEntryClass:Zt,BranchClass:rr,BranchEntryClass:er},ap=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||tr,a=s.LeafEntryClass||Zt,u=s.BranchClass||rr,l=s.BranchEntryClass||er,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=hx({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},cp=({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=ap(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||tr,LeafEntryClass:a.LeafEntryClass||Zt,BranchClass:a.BranchClass||rr,BranchEntryClass:a.BranchEntryClass||er};return Si(l)},up=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>ap(e,r,n,o,i,s,c)(t);function hx({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 px=(t,e)=>{let[r,n]=t,[o,i]=e,s=Jt(r,o);return s!==0?s:yx(n,i)},yx=(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)?Jt(t,e):1},lp=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}},fp=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}},xc=class extends tr{get(e){return lp(this,e)}range(e,r){return fp(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...vc,...r},n)}},kc=class extends rr{get(e){return lp(this,e)}range(e,r){return fp(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...vc,...r},n)}},mx=xc,gx=kc,vc={LeafClass:mx,BranchClass:gx,LeafEntryClass:Zt,BranchEntryClass:er},dp={...vc,compare:px},hp=t=>(t={...dp,...t},cp(t)),Ec=t=>(t={...dp,...t},up(t));var nr=class{constructor(){k(this,"cid",null);k(this,"root",null)}},bx=(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:Jt(t,e)},xx=(t,e)=>{let[r,n]=t,[o,i]=e,s=Jt(r,o);return s!==0?s:bx(n,i)},Ac={cache:Hr,chunker:Kn(30),codec:q,hasher:de,compare:xx},_c={cache:Hr,chunker:Kn(30),codec:q,hasher:de,compare:Jt};function pp(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 Sc(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 wi({cid:n,bytes:o,hasher:de,codec:q})}}async function Bc(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await Ec({cid:e.cid,get:Sc(t),...n});else{let s=null,c=null;for await(let a of await hp({get:Sc(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 Cc(t,e,r){return await Ec({cid:e,get:Sc(t),...r})}async function or(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 Tc(t){return t.map(e=>qr.default.encode(e))}function Ic(t){return qr.default.encode(t)}function Wr({_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 Mi(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var Mi=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 nr);k(this,"byId",new nr);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=kx(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 or(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(...Tc(e.range));return await or(this.crdt,{result:o,...i},e)}if(e.key){let o=Ic(e.key);return await or(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=Ic(i);return(await or(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=Tc([o,i]);return await or(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await or(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new nr,this.byKey=new nr,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await Cc(this.blocks,this.byId.cid,_c),this.byKey.root=await Cc(this.blocks,this.byKey.cid,Ac))}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=pp(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 Bc(a,this.byId,o.concat(s),_c),this.byKey=await Bc(a,this.byKey,n.concat(i),Ac),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function kx(t){return e=>{if(e[t])return e[t]}}var zi=class zi extends Yt{constructor(r,n,o){super(r,o);k(this,"crdt");k(this,"defaultHeader",zi.defaultHeader);this.crdt=n}async _applyCarHeader(r){for(let[n,o]of Object.entries(r.indexes))Wr({_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(zi,"defaultHeader",{cars:[],compact:[],indexes:new Map});var Oi=zi,$i=class $i extends Yt{constructor(r,n,o){super(r,o);k(this,"defaultHeader",$i.defaultHeader);k(this,"clock");k(this,"remoteFileStore");k(this,"fileStore");this.fileStore=new Vr(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(wc(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($i,"defaultHeader",{cars:[],compact:[],head:[]});var Ri=$i;function wc(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)}},Hi=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}},ji=class extends Hi{constructor(e,r,n){e?super(e,new Oi(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}))}},Vi=class extends Hi{constructor(e,r,n){e?super(e,new Ri(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}))}},qi=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 Dc=({name:t,code:e,encode:r})=>new Lc(t,e,r),Lc=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?Ft(this.code,r):r.then(n=>Ft(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Wi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*vx(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*Nc(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*Nc(e,t)}}function*Nc(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*vx(i,o)}}function*Ex(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*Uc(n,o))}else yield*Uc(e,t)}function*Uc(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*Ex(o,n))}}function Sx(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:Wi(),bytes:Wi(),value:Wi(),asBlock:Wi()})}links(){return Nc(this.value,[])}tree(){return Uc(this.value,[])}get(e="/"){return Sx(this.value,e.split("/").filter(Boolean))}};async function Ki({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 Gi({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 Pc={};Q(Pc,{sha256:()=>ut,sha512:()=>Ax});var mp=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ut=Dc({name:"sha2-256",code:18,encode:mp("SHA-256")}),Ax=Dc({name:"sha2-512",code:19,encode:mp("SHA-512")});async function Yn(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 gp(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 gp(n,s,r))return e;return e.concat(r)}var Xn=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 _x({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 Bx(r.bytes)}};async function _x(t){let{cid:e,bytes:r}=await Ki({value:t,codec:q,hasher:ut});return new Me({cid:e,value:t,bytes:r})}async function Bx(t){let{cid:e,value:r}=await Gi({bytes:t,codec:q,hasher:ut});return new Me({cid:e,value:r,bytes:t})}async function gp(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*Fc(t,e,r={}){let n=r.renderNodeLabel??(a=>Cx(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 Cx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var ir=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 Ki({value:t,codec:q,hasher:ut});return new ir({cid:r,value:t,bytes:n,prefix:e??""})}async function wp(t,e){let{cid:r,value:n}=await Gi({bytes:t,codec:q,hasher:ut});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new ir({cid:r,value:n,bytes:t,prefix:e??""})}var sr=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 wp(n.bytes,r)}};function Mc(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 bp(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 Qi=64,Ix=512*1024;async function Zn(t,e,r,n,o={}){let i=new sr(t),s=await i.get(e),c=await Ji(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Qi){let h=Array.from(Array(Math.ceil(u.length/Qi)),(w,g)=>{let b=g*Qi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Qi)}}),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=Mc(a.value,l),f=await Xe(m,a.prefix);if(f.bytes.length>(o.maxShardSize??Ix)){let h=bp(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=Mc(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 xp(t,e,r){let n=new sr(t),o=await n.get(e),i=await Ji(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 Oc(t,e,r){let n=new sr(t),o=await n.get(e),i=await Ji(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*kp(t,e,r={}){let{prefix:n}=r,o=new sr(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 Ji(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 Ji(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function vp(t,e,r,n,o){let i=new _e;if(t=new Ot(i,t),!e.length){let g=await ir.create();i.putSync(g.cid,g.bytes);let b=await Zn(t,g.cid,r,n,o),v={type:"put",root:b.root,key:r,value:n},E=await Xn.create(v,e);return e=await Yn(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 zc(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 Sp(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 Zn(t,u,g.data.key,g.data.value):await Oc(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 Zn(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 Xn.create(h,e);i.putSync(p.cid,p.bytes),e=await Yn(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 Kr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new _e;t=new Ot(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 zc(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 Sp(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 Zn(t,s,d.data.key,d.data.value):await Oc(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 Ep(t,e,r){if(!e.length)return;let n=await Kr(t,e);return n.additions.length&&(t=new Ot(new _e(n.additions),t)),xp(t,n.root,r)}async function*Rc(t,e,r){if(!e.length)return;let n=await Kr(t,e);n.additions.length&&(t=new Ot(new _e(n.additions),t)),yield*kp(t,n.root,r)}async function zc(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Dx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Nx(r);if(s)return s}if(!n)return}}async function Dx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:zc(t,r.parents):e}function Nx(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 Sp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>Ap(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 Ap(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=>Ap(t,a,r,n+1)));return i.concat(...c)}var en={};Q(en,{DEFAULT_DIRECTORY_MODE:()=>Uy,DEFAULT_FILE_MODE:()=>Ny,NodeType:()=>F,code:()=>Yr,createAdvancedFile:()=>rk,createComplexFile:()=>ok,createDirectoryShard:()=>Oy,createEmptyFile:()=>ek,createFileChunk:()=>tk,createFileShard:()=>nk,createFlatDirectory:()=>cs,createRaw:()=>Py,createShardedDirectory:()=>My,createSimpleFile:()=>Fy,createSymlink:()=>zy,cumulativeContentByteLength:()=>tt,cumulativeDagByteLength:()=>Zr,decode:()=>jy,decodeMetadata:()=>lr,encode:()=>Hy,encodeAdvancedFile:()=>cu,encodeComplexFile:()=>uu,encodeDirectory:()=>fs,encodeDirectoryMetadata:()=>hu,encodeFile:()=>Ry,encodeFileChunk:()=>au,encodeFileShard:()=>ik,encodeHAMTShard:()=>lu,encodeLink:()=>us,encodeMetadata:()=>io,encodeMode:()=>qy,encodeRaw:()=>su,encodeSimpleFile:()=>ls,encodeSymlink:()=>$y,filesize:()=>uk,matchFile:()=>ck,name:()=>iu});var Ux=new TextDecoder;function $c(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 Xi(t,e){let r;[r,e]=$c(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 _p(t,e){let r;return[r,e]=$c(t,e),[r&7,r>>3,e]}function Px(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=_p(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]=Xi(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]=Xi(t,n),e.Name=Ux.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]=$c(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 Bp(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=_p(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]=Xi(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]=Xi(t,r),n.push(Px(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 Tp=new TextEncoder,Cp=2**32,Fx=2**31;function Mx(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=eo(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=Tp.encode(t.Name);r-=n.length,e.set(n,r),r=eo(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=eo(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function Ip(t){let e=Rx(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=eo(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Mx(t.Links[o],r.subarray(0,n));n-=i,n=eo(r,n,i)-1,r[n]=18}return r}function Ox(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Gr(r)}if(typeof t.Name=="string"){let r=Tp.encode(t.Name).length;e+=1+r+Gr(r)}return typeof t.Tsize=="number"&&(e+=1+Gr(t.Tsize)),e}function Rx(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Gr(r)}if(t.Links)for(let r of t.Links){let n=Ox(r);e+=1+n+Gr(n)}return e}function eo(t,e,r){e-=Gr(r);let n=e;for(;r>=Fx;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Gr(t){return t%2===0&&t++,Math.floor((zx(t)+6)/7)}function zx(t){let e=0;return t>=Cp&&(t=Math.floor(t/Cp),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+$x[t]}var $x=[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 Hx=["Data","Links"],jx=["Hash","Name","Tsize"],Hc=new TextEncoder;function Dp(t,e){if(t===e)return 0;let r=t.Name?Hc.encode(t.Name):[],n=e.Name?Hc.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 Lp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function Vx(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 jc(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=Hc.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(Vx),e.Links.sort(Dp);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Np(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!Lp(t,Hx))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(!Lp(r,jx))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&&Dp(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var ar=112;function Up(t){Np(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),Ip(e)}function Ye(t){let e=Bp(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(Ty(),1),Jr=ft.default.Reader,nu=ft.default.Writer,N=ft.default.util,ie=ft.default.roots.unixfs||(ft.default.roots.unixfs={}),Xr=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=nu.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 Jr||(r=Jr.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})(),m3=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=nu.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 Jr||(r=Jr.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})(),g3=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=nu.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Jr||(r=Jr.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=Xr.DataType;var Dy=Object.freeze([]),ou=new Uint8Array(0),Ee=Object.freeze({}),Ny=parseInt("0644",8),Uy=parseInt("0755",8),Yr=ar,iu="UnixFS",Tt=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),Up(jc({Data:Xr.encode(t).finish(),Links:e}))),Py=t=>({type:F.Raw,content:t}),ek=t=>Fy(ou,t),Fy=(t,e)=>({type:F.File,layout:"simple",content:t,metadata:lr(e)}),tk=t=>({type:F.File,layout:"simple",content:t}),rk=(t,e)=>({type:F.File,layout:"advanced",parts:t,metadata:lr(e)}),nk=t=>({type:F.File,layout:"advanced",parts:t}),ok=(t,e,r)=>({type:F.File,layout:"complex",content:t,parts:e,metadata:lr(r)}),cs=(t,e)=>({type:F.Directory,metadata:lr(e),entries:t}),My=(t,e,r,n,o=Ee)=>({type:F.HAMTShard,bitfield:e,fanout:fu(r),hashType:du(n),entries:t,metadata:lr(o)}),Oy=(t,e,r,n)=>({type:F.HAMTShard,bitfield:e,fanout:fu(r),hashType:du(n),entries:t}),su=t=>Tt({Type:F.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:Dy},[]),Ry=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;switch(t.layout){case"simple":return ls(t.content,r);case"advanced":return cu(t.parts,r);case"complex":return uu(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},au=t=>ls(t,Ee),ik=t=>Tt({Type:F.File,blocksizes:t.map(oo),filesize:tt(t)},t.map(us)),cu=(t,e=Ee)=>Tt({Type:F.File,blocksizes:t.map(oo),filesize:tt(t),...io(e)},t.map(us)),us=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),ls=(t,e=Ee)=>Tt({Type:F.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...io(e)},[]),uu=(t,e,r=Ee)=>Tt({Type:F.File,Data:t,filesize:t.byteLength+tt(e),blocksizes:e.map(oo)},e.map(us)),fs=t=>Tt({Type:t.type,...hu(t.metadata||Ee)},t.entries.map(Vy)),lu=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=Ee})=>Tt({Type:F.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:fu(e),hashType:du(r),...hu(o)},n.map(Vy)),fu=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},du=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var zy=(t,e=Ee)=>({type:F.Symlink,content:t,metadata:lr(e)}),$y=(t,e=!1)=>{let r=e?Ee:Object(t).metadata;return Tt({Type:F.Symlink,Data:t.content,...io(r||Ee)},[])},Hy=(t,e=!0)=>{switch(t.type){case F.Raw:return su(t.content);case F.File:return Ry(t);case F.Directory:return fs(t);case F.HAMTShard:return lu(t);case F.Symlink:return $y(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},jy=t=>{let e=Ye(t),r=Xr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=Xr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...sk(i)},l=e.Links;switch(r.Type){case F.Raw:return Py(o);case F.File:return l.length===0?new is(o,u):o.byteLength===0?new ss(Iy(a.blocksizes,l),u):new as(o,Iy(a.blocksizes,l),u);case F.Directory:return cs(Ly(l),u);case F.HAMTShard:return My(Ly(l),o||ou,a.fanout,a.hashType,u);case F.Symlink:return zy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},sk=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var Iy=(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},Ly=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),tt=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Zr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),oo=t=>t.contentByteLength,Vy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),hu=t=>io(t,Uy),io=({mode:t,mtime:e},r=Ny)=>({mode:t!=null?qy(t,r):void 0,mtime:e!=null?ak(e):void 0}),lr=t=>t==null?Ee:{...t.mode==null?void 0:{mode:Wy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},ak=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},qy=(t,e)=>{let r=t==null?void 0:Wy(t);return r===e||r==null?void 0:r},Wy=t=>t&4095|t&4294963200,ck=({content:t=ou,parts:e=Dy,metadata:r=Ee,...n})=>e.length===0?new is(t,r):t.byteLength===0?new ss(e,r):new as(t,e,r),is=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 ls(this.content,this.metadata)}},ss=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(oo)}encode(){return cu(this.parts,this.metadata)}},as=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(oo)}encode(){return uu(this.content,this.parts,this.metadata)}},uk=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 lk=function*(t){let e=yield*t;yield*hs(e)};function*wu(){return yield ms}var rn=function*(){yield gs};var ds=function*(t){let e=yield*wu();if(dk(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,It(e)},o=>{r=!0,n=o,It(e)}),yield*rn(),r)throw n;return n}else return mk(fk(e)),yield*rn(),t};function*fk(t){It(t)}var dk=t=>t!=null&&typeof t.then=="function",hs=function*(t){yield t},ps=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==co&&e.push(yield*on(pk(o,n)))}yield*xu(e)},ys=t=>t.length>0?hk(t.map(lk)):co;function*hk(t){let e=[];for(let r of t)e.push(yield*on(r));yield*xu(e)}var pk=(t,e)=>t===co?co:t instanceof so?new so([...t.tags,e],t.source):new so([e],t),so=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 gs:case ms:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=yk(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"}},uo=()=>co;var yk=(t,e)=>({type:t,[t]:e});var ms=Symbol("current"),gs=Symbol("suspend");var dt=class t{static of(e){return e.group||tn}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new nn(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Jy}},pu=class{constructor(){this.status=ao,this.stack=new nn,this.id=0}},nn=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},mk=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(tn.status===ao)for(tn.status=Xy;;)try{for(let r of bu(tn));tn.status=ao;break}catch{tn.stack.active.shift()}},gk=t=>It(t),bu=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=Yy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case gs:t.stack.idle.add(r);break e;case ms:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var on=(t,e)=>new gu(t,e),wk=(t,e)=>Gy(t,{ok:!0,value:e});var yu=(t,e)=>Gy(t,{ok:!1,error:e});function*Gy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===gs){let{idle:o}=dt.of(r).stack;o.add(r)}else It(r)}catch{}}function*xu(t){if(t.length===0)return;let e=yield*wu(),r=new dt(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}bk(o,r)}try{if(n)throw n.error;for(;yield*bu(r),nn.size(r.stack)>0;)yield*rn()}catch(o){for(let i of r.stack.active)yield*yu(i,o);for(let i of r.stack.idle)yield*yu(i,o),It(i);throw o}}var bk=(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*ku(t){t.status===ao&&(yield*t),t.result||(yield*xu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var mu=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}},gu=class extends mu{constructor(e,r=xk,n={},o=Yy){super(n),this.id=++Jy,this.name=r.name||"",this.task=e,this.state=o,this.status=ao,this.result,this.handler=n,this.controller}*resume(){gk(this)}join(){return ku(this)}abort(e){return yu(this,e)}exit(e){return wk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Xy,It(this),this}panic(e){this.result={ok:!1,error:e},this.status=Ky;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=Ky;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)}}},Qy=function*(t,e){let r=yield*wu(),n=new dt(r);for(dt.enqueue(t[Symbol.iterator](),n);;){for(let o of bu(n))dt.enqueue(e(o)[Symbol.iterator](),n);if(nn.size(n.stack)>0)yield*rn();else break}},Jy=0,ao="idle",Xy="active",Ky="finished",Yy={done:!1,value:ms},xk={},co=function*(){}(),tn=new pu;function vu(){}Object.defineProperties(vu,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var Eu=()=>new lo;var em=(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 Eu();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 lo(n,t.byteOffset+o,s)},kk=(t,e)=>e.byteLength>0?(t.segments.push(e),new lo(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,vk=(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}}},Ek=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*Sk(t){for(let e of t.segments)yield*e}var lo=class extends vu{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return Sk(this)}slice(e,r){return em(this,e,r)}subarray(e,r){return em(this,e,r)}push(e){return kk(this,e)}get(e){return vk(this,e)}copyTo(e,r){return Ek(this,e,r)}};var fo=t=>{throw new Error(t)},tm=(t,e,...r)=>fo(String.raw(t,JSON.stringify(e),...r)),rm=new Uint8Array(0),nm=[];var om=t=>({config:t,buffer:Eu()}),im=(t,e)=>e.byteLength>0?am(t.config,t.buffer.push(e),!1):{...t,chunks:nm},sm=t=>am(t.config,t.buffer,!0),am=(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 cm=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:_u});var Bu=(t,e)=>{let r=sn(e,{});for(let n of t){let{ready:o,has:i,wants:s}=lm(n.children,r.links);s.length===0?r=sn(r,{links:Au(void 0,i),linked:[{id:n.id,links:o}]}):r=sn(r,{needs:Au(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},um=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=lm(o.children,{...r.links,[t]:e});return sn(r,{needs:{[t]:void 0},links:Au(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return sn(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return sn(r,{links:{[t]:e}})},sn=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?Ck:void 0;return e&&(i.needs=Su(t.needs,e,s)),r&&(i.nodes=Su(t.nodes,r,s)),n&&(i.links=Su(t.links,n,s)),i.linked=o?Bk(t.linked||_u,o,_u):t.linked||[],i},Au=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},Su=(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 Bk=(t,e,r=t)=>{if(t===r)return[...t,...e];for(let n of e)t.push(n);return t},lm=(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}},_u=Object.freeze([]),Ck=Object.freeze({});var fm=(t,e)=>{switch(t.type){case"write":return Ik(e,t.bytes);case"link":return Lk(e,t.link);case"block":return{state:e,effect:uo()};case"close":return Dk(e);case"end":return{state:e,effect:uo()};default:return tm`File Writer got unknown message ${t}`}},dm=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:om({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:cm()}),Ik=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=im(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=Bu(o,t.nodeQueue),u=[...hm(i,t.config),...Cu(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:ps({link:ys(u)})}}else return fo("Unable to perform write on closed file")},Lk=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=um(e,r,t.nodeQueue),s=Cu(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():uo();return{state:c,effect:ps({link:ys(s),block:Pk(t.writer,n),end:a})}},Dk=t=>{if(t.status==="open"){let{chunks:e}=sm(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Mk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=Bu(s,t.nodeQueue),l=[...hm(c,t.config),...Cu(a,t.config)],d=on(rn());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:ps({link:ys(l),end:ku(d)})}}else return{state:t,effect:uo()}},hm=(t,e)=>t.map(r=>Nk(e,r,e.fileChunkEncoder)),Nk=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Fk(n):rm),s=yield*ds(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}},Cu=(t,e)=>t.map(r=>Uk(e,r)),Uk=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:F.File,layout:"advanced",parts:r,metadata:n}),i=yield*ds(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:Zr(o,r)};return{id:e,block:c,link:a}},Pk=function*(t,e){(t.desiredSize||0)<=0&&(yield*ds(t.ready)),t.write(e)},Fk=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Mk=t=>t.children==null;var Iu={};Q(Iu,{context:()=>Rk,cut:()=>ym,name:()=>pm,type:()=>zk,withMaxChunkSize:()=>Tu});var pm="fixed",Rk={maxChunkSize:262144},zk="Stateless",Tu=t=>({type:"Stateless",context:{maxChunkSize:t},name:pm,cut:ym}),ym=({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 ho=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},ws=t=>({open:()=>Hk({width:t}),write:jk,close:Vk}),$k={width:174},Hk=({width:t}=$k)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),jk=(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?gm({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:pe}}}},gm=(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;){mm(i,1);let u=new ho(++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 ho(++o,u.splice(0,c));mm(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},Vk=(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}=gm(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 ho(o.lastID+1,c,e),nodes:n,leaves:pe}}},mm=(t,e)=>{for(;t.length<e;)t.push([]);return t},pe=[];var Lt=()=>({chunker:Iu,fileChunkEncoder:Lu,smallFileEncoder:Lu,fileEncoder:en,fileLayout:ws(174),hasher:ut,linker:{createLink:j.createV1}}),Dt=t=>({...Lt(),...t}),Lu={code:Yr,name:iu,encode:au};var po=({writer:t,metadata:e={},settings:r=Lt()})=>new Du(dm(t,e,Dt(r))),wm=async(t,e)=>(await xm(t,hs({type:"write",bytes:e})),t),bm=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await xm(t,hs({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;fo(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},xm=(t,e)=>on(Qy(e,r=>{let{state:n,effect:o}=fm(r,t.state);return t.state=n,o})),Du=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return wm(this,e)}close(e){return bm(this,e)}};var Wk=Lt,Uu=({writer:t,settings:e=Wk(),metadata:r={}})=>new bs({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),xs=(t,e,r,{overwrite:n=!1}={})=>{let o=Pu(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},ks=(t,e)=>(Pu(t.state).entries.delete(e),t),Pu=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},km=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=Pu(t.state);t.state.closed=!0;let s=[...vm(t)],c=cs(s,i),a=fs(c),u=await o.hasher.digest(a),l=o.linker.createLink(Yr,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:Zr(a,s)}},vm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},Em=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new bs({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),bs=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return vm(this)}set(e,r,n){return xs(this,e,r,n)}remove(e){return ks(this,e)}fork(e){return Em(this,e)}close(e){return km(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var Ss={};Q(Ss,{API:()=>vs,and:()=>e2,bitCount:()=>Es,empty:()=>Sm,from:()=>Gk,fromBytes:()=>n2,get:()=>Zk,or:()=>t2,popcount:()=>Fu,set:()=>Am,size:()=>Qk,toBytes:()=>r2,unset:()=>Yk});var vs={};var Sm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},Gk=(t,e)=>{let r=Sm(e);for(let n of t)r=Am(r,n);return r},Qk=t=>32,Jk=(t,e)=>t>>>e&31,Xk=(t,e)=>1<<Jk(t,e),Fu=(t,e=31)=>Es(t&Xk(e,0)-1),Am=(t,e)=>t|1<<e,Yk=(t,e)=>t&(255^1<<e),Zk=(t,e)=>(t>>e&1)!==0,Es=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},e2=(t,e)=>t&e,t2=(t,e)=>t|e,r2=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),n2=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 Cm=W(Mu(),1),o2=new TextEncoder,i2=Cm.default.x64.hash126,Tm=({bitWidth:t=5,hash:e=i2})=>{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(o2.encode(s)),size:Math.ceil(4*8/t)}};var an=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 mo(this.config)}lookup(e,r,n,o){return Lm(this,e,r,n,o)}associate(e,r,n,o,i,s){return zu(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return Dm(this,e,r,n,o,i)}fork(e=null){return go(this,e)}entries(){return Nm(this)}keys(){return Um(this)}values(){return Pm(this)}},_s=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 s2(this,n,o)}associate(e,r,n,o,i,s){return a2(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return c2(this,e,n,o,i)}fork(e=null){return u2(this,e)}entries(){return Nm(this)}keys(){return Um(this)}values(){return Pm(this)}},s2=(t,e,r)=>{let{children:n,count:o}=t,i=Ou(n,o,e);return n[i]===e?n[i+1]:r},a2=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Ou(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},c2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Ou(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return zu(mo(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}},u2=(t,e=null)=>Rm(t.edit,e)?t:new _s(e,t.count,t.children.slice(),t.config),Ou=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var mo=(t,e=null)=>new an(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),Cs=(t,e,r)=>Lm(t,0,t.config.Path.from(e),e,r),Lm=(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 Ts(t,d)===n?Bs(t,d):o}else return u.get(s,l)?Is(t,l).lookup(e+1,r,n,o):o},Ru=(t,e,r,n,o)=>zu(t,e,0,t.config.Path.from(r),r,n,o),zu=(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=Ts(t,f);if(o===h)return Bs(t,f)===i?t:l2(t,e,f,i);{let p=Mm(u,e,r+1,l.from(h),h,Bs(t,f),n,o,i);return s.value=!0,d2(t,e,m,p)}}else if(d.get(a,m)){let f=Is(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Fm(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(wo(f),0,o,i),h}},$u=(t,e,r,n)=>Dm(t,e,0,t.config.Path.from(r),r,n);var Dm=(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===Ts(t,m)){i.value=!0;let f=go(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(wo(m),2),f}else return t}else if(u.get(c,d)){let m=Is(t,d),f=m.dissociate(e,r+1,n,o,i);return h2(f)?p2(t)?f:f2(t,e,d,f):m===f?t:Fm(t,e,d,f)}else return t},Nm=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},go=(t,e)=>Rm(t.edit,e)?t:new an(e,t.datamap,t.nodemap,t.children.slice(),t.config),Um=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},Pm=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},l2=(t,e,r,n)=>{let o=t.fork(e);return o.children[Om(r)]=n,o},f2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=go(t,e);return a.children.splice(Ls(t,r),1),a.children.splice(wo(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Fm=(t,e,r,n)=>{let o=go(t,e);return o.children[Ls(t,r)]=n,o},d2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=wo(a),l=Ls(t,r),d=go(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},Mm=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new _s(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new an(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Mm(t,e,r+1,n,o,i,s,c,a)],t):new an(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)}},Ts=({children:t},e)=>t[wo(e)],wo=t=>t*2,Bs=({children:t},e)=>t[Om(e)],Om=t=>t*2+1,Is=(t,e)=>t.children[Ls(t,e)],Ls=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Rm=(t,e)=>t!=null&&t===e,h2=t=>t.nodeArity===0&&t.dataArity===1,p2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var Ds=W(Mu(),1);function y2(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 K3=Kt({name:"murmur3-32",code:35,encode:t=>y2(Ds.default.x86.hash32(t))}),$m=Kt({name:"murmur3-128",code:34,encode:t=>Ht.fromHex(Ds.default.x64.hash128(t))}),bo=Kt({name:"murmur3-x64-64",code:34,encode:t=>Ht.fromHex(Ds.default.x64.hash128(t)).subarray(0,8)});var m2=new TextEncoder,g2=t=>bo.encode(t),Hm=({bitWidth:t=8,hash:e=g2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(m2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Hu(i,c,t)},size:Math.ceil(r*8/t)}},Hu=(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 ju={};Q(ju,{API:()=>vs,and:()=>C2,empty:()=>jm,from:()=>b2,fromBytes:()=>A2,get:()=>E2,or:()=>B2,popcount:()=>_2,set:()=>k2,size:()=>x2,toBytes:()=>S2,unset:()=>v2});var jm=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},b2=(t,e)=>{let r=jm(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=xo(r,n);r[i]=o|1<<s}return r},x2=t=>t.byteLength*8,xo=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Vm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},k2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=xo(t,e);return Vm(t,n,r|1<<o)},v2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=xo(t,e);return Vm(t,n,r&(255^1<<o))},E2=(t,e)=>{var{byte:r,bitOffset:n}=xo(t,e);return(r>>n&1)!==0},S2=t=>t,A2=t=>t,_2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=xo(t,e),i=Fu(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=Es(c),s--}return i},B2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},C2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var qm=new RangeError("Not Found");var T2=({bitWidth:t=5,BitField:e=t===5?Ss:ju,Path:r=t===5?Tm({bitWidth:t}):Hm({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var qu=(t,e)=>Cs(t.root,e,qm)!==qm,Wm=(t,e,r=void 0)=>Cs(t.root,e,r),Km=t=>{let e={},r=T2(t);return new Ns(e,0,mo(r,e),r)},Vu=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,mo(this.config,null),this.config)}has(e){return qu(this,e)}get(e){return Cs(this.root,e,void 0)}set(e,r){let n={value:!1},o=Ru(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=$u(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 Ns({},this.count,this.root,this.config)}},Ns=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=Ru(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=$u(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 Vu(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var I2=new TextEncoder,L2=t=>bo.encode(t),Qm=({bitWidth:t=8,hash:e=L2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>D2(s,c,n),from:s=>I2.encode(s),size:1/0}},D2=(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:N2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Hu(l,d,f),c-=f,a+=f}return s},N2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Jm=8,P2={bitWidth:Jm,Path:Qm({bitWidth:Jm})};var Wu=(t=P2)=>Km(t);var Xm=class extends Map{constructor(e=Wu()){super(),this.builder=e}clear(){this.builder=Wu()}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 Wm(this.builder,e)}has(e){return qu(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 Ym=({writable:t,settings:e=Lt()})=>new Ku({writer:t.getWriter(),settings:e}),M2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Ku=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=Dt(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return po({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return Uu({writer:this.writer,settings:e,metadata:r})}close(e){return M2(this,e)}},O2=1048576,R2=O2*100,Zm=(t=R2)=>({highWaterMark:t,size:e=>e.bytes.length});var Xs=W(rt(),1);function H2(t){return t[Symbol.asyncIterator]!=null}function j2(t){if(H2(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 rg=j2;var ow=W(rt(),1);var ng=0,V2="identity",og=Te,q2=t=>jt(ng,og(t)),ig={code:ng,name:V2,encode:og,digest:q2};var sg=W(rt(),1);var W2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ir(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,sg.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}}}},ag=W2;var cg=W(rt(),1);var ce=class extends Event{constructor(e,r){super(e),this.detail=r}};function K2(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 fr=K2;var ko=W(rt(),1),G2=(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,ko.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,ko.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,ko.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,ko.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},cn=G2;var Q2=t=>{async function*e(r={}){let{start:n,end:o}=cn(t.length,r.offset,r.length),i=fr(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},J2=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=ti(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:Q2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},ug=J2;var lg=W(rt(),1);var X2=t=>{async function*e(r={}){let{start:n,end:o}=cn(t.length,r.offset,r.length),i=fr(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},Y2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,lg.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:X2(a),depth:i,size:BigInt(a.length),node:a}}},fg=Y2;var Uo=W(rt(),1);var Zu=W(rt(),1);var Gu=W(os(),1),dg=W(tu(),1),hg=W(lt(),1),Qu=W(rs(),1),pg=W(Yc(),1);function Z2(){hg.default._configure(),Gu.default._configure(dg.default),Qu.default._configure(pg.default)}Z2();var yg=["uint64","int64","sint64","fixed64","sfixed64"];function ev(t){for(let e of yg){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Ju(t){return ev(new Gu.default(t))}function tv(t){for(let e of yg){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Xu(){return tv(Qu.default.create())}function vo(t,e){let r=Ju(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Eo(t,e){let r=Xu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var un;(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"})(un||(un={}));function Us(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Yu(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 Us("enum",un.VARINT,r,n)}function So(t,e){return Us("message",un.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=()=>Yu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=So((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),Ps.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=Ps.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>Eo(o,t.codec()),t.decode=o=>vo(o,t.codec())})(ze||(ze={}));var Ps;(function(t){let e;t.codec=()=>(e==null&&(e=So((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=>Eo(r,t.codec()),t.decode=r=>vo(r,t.codec())})(Ps||(Ps={}));var mg;(function(t){let e;t.codec=()=>(e==null&&(e=So((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=>Eo(r,t.codec()),t.decode=r=>vo(r,t.codec())})(mg||(mg={}));var gg={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},rv=["directory","hamt-sharded-directory"],wg=parseInt("0644",8),bg=parseInt("0755",8),ln=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(gg).includes(r))throw(0,Zu.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:gg[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()?bg:wg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return rv.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,Zu.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===wg&&!this.isDirectory()&&(n=void 0),n===bg&&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 Ig=W(vg(),1);var el={};Q(el,{identity:()=>sv});var sv=xr({prefix:"\0",name:"identity",encode:t=>Pl(t),decode:t=>Ul(t)});var tl={};Q(tl,{base2:()=>av});var av=G({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var rl={};Q(rl,{base8:()=>cv});var cv=G({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var nl={};Q(nl,{base10:()=>uv});var uv=yt({prefix:"9",name:"base10",alphabet:"0123456789"});var ol={};Q(ol,{base16:()=>lv,base16upper:()=>fv});var lv=G({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),fv=G({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var il={};Q(il,{base36:()=>dv,base36upper:()=>hv});var dv=yt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),hv=yt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var sl={};Q(sl,{base64:()=>pv,base64pad:()=>yv,base64url:()=>mv,base64urlpad:()=>gv});var pv=G({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),yv=G({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),mv=G({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gv=G({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var al={};Q(al,{base256emoji:()=>vv});var Eg=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}"),wv=Eg.reduce((t,e,r)=>(t[r]=e,t),[]),bv=Eg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function xv(t){return t.reduce((e,r)=>(e+=wv[r],e),"")}function kv(t){let e=[];for(let r of t){let n=bv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var vv=xr({prefix:"\u{1F680}",name:"base256emoji",encode:xv,decode:kv});var cl={};Q(cl,{identity:()=>Av});var Sg=0,Ev="identity",Ag=ot,Sv=t=>Ft(Sg,Ag(t)),Av={code:Sg,name:Ev,encode:Ag,digest:Sv};var ET=new TextEncoder,ST=new TextDecoder;var ul={...el,...tl,...rl,...nl,...ol,...la,...il,...ua,...sl,...al},_T={...Pc,...cl};function fn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Fs(t=0){return globalThis.Buffer?.allocUnsafe!=null?fn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Bg(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var _g=Bg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),ll=Bg("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=Fs(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Cv={utf8:_g,"utf-8":_g,hex:ul.base16,latin1:ll,ascii:ll,binary:ll,...ul},Cg=Cv;function Tg(t,e="utf8"){let r=Cg[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?fn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var dr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new Ig.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 Lg(this,e,r)}toJSON(){return this.serialize(Iv,Lv)}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"?Tg(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(Tv);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 Tv(t){return!!t}function Iv(t,e){return t.key}function Lv(t){return t}async function Lg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof dr)await Lg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Dv=[255,254,252,248,240,224,192,128],Nv=[1,3,7,15,31,63,127,255],Ms=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=Uv(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 Uv(t,e,r){let n=Pv(e,r);return(t&n)>>>e}function Pv(t,e){return Dv[t]&Nv[Math.min(e+t-1,7)]}function Dg(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Fs(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return fn(r)}function Ng(t){function e(r){return r instanceof Os?r:new Os(r,t)}return e}var Os=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?Dg([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new Ms(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function Ug(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:Ng(t.hashFn)};return new dr(e)}var Fv=async function(t){return(await $m.encode(t)).slice(0,8).reverse()},Mv=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 dr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Pg=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Ov=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Fg=async(t,e,r,n,o)=>{if(n==null){let l=Ug({hashFn:Fv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Mv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Pg(i.pos),c=Ov(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Pg(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),Fg(t,e,r,n,o)},Mg=Fg;function Rv(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 Rs=Rv;function zv(t){return t[Symbol.asyncIterator]!=null}function $v(t,e){if(zv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Rs(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 Og=$v;function Hv(t){return t[Symbol.asyncIterator]!=null}function jv(t,e){if(Hv(t))return async function*(){for await(let c of t)yield e(c)}();let r=Rs(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 dn=jv;function ht(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var zs=globalThis.CustomEvent??Event;async function*hr(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 zs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new zs("task-complete"))})}a=!0,o.dispatchEvent(new zs("task-complete"))}catch(h){u=h,o.dispatchEvent(new zs("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 $s=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}},hn=class{constructor(e={}){k(this,"size");k(this,"hwm");k(this,"head");k(this,"tail");this.hwm=e.splitLimit??16,this.head=new $s(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 $s(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 fl=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 pn(t={}){return Vv(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 Vv(t,e){e=e??{};let r=e.onEnd,n=new hn,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 hn,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 hn,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 fl)},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 qv(t){return t[Symbol.asyncIterator]!=null}function Wv(...t){let e=[];for(let r of t)qv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=pn({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 Rg=Wv;function yn(t,...e){if(t==null)throw new Error("Empty pipeline");if(dl(t)){let n=t;t=()=>n.source}else if($g(t)||zg(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&dl(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++)dl(r[n])&&(r[n]=Gv(r[n]));return Kv(...r)}var Kv=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},zg=t=>t?.[Symbol.asyncIterator]!=null,$g=t=>t?.[Symbol.iterator]!=null,dl=t=>t==null?!1:t.sink!=null&&t.source!=null,Gv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=pn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(zg(i))o=async function*(){yield*i,n.end()};else if($g(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Rg(n,o())}return t.source};var Qv=(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*yn(d,m=>dn(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>hr(m,{ordered:!0}),m=>Og(m,f=>f!=null))}return c},Hg=Qv;var yr=W(rt(),1);var Zg=W(Vg(),1);var _o=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},pl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},qg=t=>globalThis.DOMException===void 0?new pl(t):new DOMException(t),Wg=t=>{let e=t.reason===void 0?qg("This operation was aborted."):t.reason;return e instanceof Error?e:qg(e)};function yl(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(Wg(a)),a.addEventListener("abort",()=>{c(Wg(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 _o(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 ml(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 pr=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,Bo=class{constructor(){pt.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&pr(this,pt,"f")[this.size-1].priority>=r.priority){pr(this,pt,"f").push(n);return}let o=ml(pr(this,pt,"f"),n,(i,s)=>s.priority-i.priority);pr(this,pt,"f").splice(o,0,n)}dequeue(){let e=pr(this,pt,"f").shift();return e?.run}filter(e){return pr(this,pt,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return pr(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)},Y,To,Io,Ut,Gs,Lo,js,$e,Co,Se,Vs,Ae,Do,Nt,qs,Kg,Gg,Xg,Qg,Jg,Ws,gl,wl,Qs,Yg,Ks,Js=class extends Error{},No=class extends Zg.default{constructor(e){var r,n,o,i;if(super(),Y.add(this),To.set(this,void 0),Io.set(this,void 0),Ut.set(this,0),Gs.set(this,void 0),Lo.set(this,void 0),js.set(this,0),$e.set(this,void 0),Co.set(this,void 0),Se.set(this,void 0),Vs.set(this,void 0),Ae.set(this,0),Do.set(this,void 0),Nt.set(this,void 0),qs.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:Bo,...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,To,e.carryoverConcurrencyCount,"f"),K(this,Io,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),K(this,Gs,e.intervalCap,"f"),K(this,Lo,e.interval,"f"),K(this,Se,new e.queueClass,"f"),K(this,Vs,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,K(this,qs,e.throwOnTimeout===!0,"f"),K(this,Nt,e.autoStart===!1,"f")}get concurrency(){return L(this,Do,"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,Do,e,"f"),L(this,Y,"m",Qs).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:L(this,qs,"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 Js("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=yl(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,L(this,Y,"m",Yg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof _o&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{L(this,Y,"m",Xg).call(this)}},r),this.emit("add"),L(this,Y,"m",Ws).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,Y,"m",Qs).call(this),this):this}pause(){K(this,Nt,!0,"f")}clear(){K(this,Se,new(L(this,Vs,"f")),"f")}async onEmpty(){L(this,Se,"f").size!==0&&await L(this,Y,"m",Ks).call(this,"empty")}async onSizeLessThan(e){L(this,Se,"f").size<e||await L(this,Y,"m",Ks).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,Y,"m",Ks).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")}};To=new WeakMap,Io=new WeakMap,Ut=new WeakMap,Gs=new WeakMap,Lo=new WeakMap,js=new WeakMap,$e=new WeakMap,Co=new WeakMap,Se=new WeakMap,Vs=new WeakMap,Ae=new WeakMap,Do=new WeakMap,Nt=new WeakMap,qs=new WeakMap,Y=new WeakSet,Kg=function(){return L(this,Io,"f")||L(this,Ut,"f")<L(this,Gs,"f")},Gg=function(){return L(this,Ae,"f")<L(this,Do,"f")},Xg=function(){var e;K(this,Ae,(e=L(this,Ae,"f"),e--,e),"f"),L(this,Y,"m",Ws).call(this),this.emit("next")},Qg=function(){L(this,Y,"m",wl).call(this),L(this,Y,"m",gl).call(this),K(this,Co,void 0,"f")},Jg=function(){let e=Date.now();if(L(this,$e,"f")===void 0){let r=L(this,js,"f")-e;if(r<0)K(this,Ut,L(this,To,"f")?L(this,Ae,"f"):0,"f");else return L(this,Co,"f")===void 0&&K(this,Co,setTimeout(()=>{L(this,Y,"m",Qg).call(this)},r),"f"),!0}return!1},Ws=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,Y,"a",Jg);if(L(this,Y,"a",Kg)&&L(this,Y,"a",Gg)){let r=L(this,Se,"f").dequeue();return r?(this.emit("active"),r(),e&&L(this,Y,"m",gl).call(this),!0):!1}}return!1},gl=function(){L(this,Io,"f")||L(this,$e,"f")!==void 0||(K(this,$e,setInterval(()=>{L(this,Y,"m",wl).call(this)},L(this,Lo,"f")),"f"),K(this,js,Date.now()+L(this,Lo,"f"),"f"))},wl=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,To,"f")?L(this,Ae,"f"):0,"f"),L(this,Y,"m",Qs).call(this)},Qs=function(){for(;L(this,Y,"m",Ws).call(this););},Yg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Js("The task was aborted."))},{once:!0})})},Ks=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function ew(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=fr(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,yr.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=ln.unmarshal(e.Data)}catch(u){throw(0,yr.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=fr(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,yr.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 yn(a,u=>dn(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>hr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case ar:f=Ye(d);break;case jn:f=d;break;default:r.end((0,yr.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new No({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:l.Hash})),await ew(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Yv=(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}=cn(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=pn();a.onProgress?.(new ce("unixfs:exporter:walk:file",{cid:t})),ew(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,yr.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,yr.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},bl=Yv;var Zv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ce("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),tw(e,n,o,i,s,a)}return c};async function*tw(t,e,r,n,o,i){let s=t.Links,c=yn(s,a=>dn(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:tw(t,e,r,n,o,i)}}}),a=>hr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var rw=Zv;var eE=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,tE={raw:bl,file:bl,directory:Hg,"hamt-sharded-directory":rw,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},rE=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,Uo.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=ln.unmarshal(u.Data)}catch(f){throw(0,Uo.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Mg(u,n[0],s):f=eE(u,n[0]),f==null)throw(0,Uo.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=tE[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,Uo.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}},nw=rE;var nE={[ar]:nw,[jn]:fg,[Da]:ag,[ig.code]:ug},iw=async(t,e,r,n,o,i,s)=>{let c=nE[t.code];if(c==null)throw(0,ow.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,iw,o,i,s)},sw=iw;var oE=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),iE=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=oE(t);return{cid:V.parse(r[0]),toResolve:r.slice(1)}}throw(0,Xs.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*sE(t,e,r={}){let{cid:n,toResolve:o}=iE(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await sw(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Xs.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 aw(t,e,r={}){let n=await rg(sE(t,e,r));if(n==null)throw(0,Xs.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var aE=Zm(),cE=Dt({fileChunkEncoder:Et,smallFileEncoder:Et,chunker:Tu(1024*1024),fileLayout:ws(1024)});async function cw(t){let e=uE(t),r=await lE(e);return{cid:r.at(-1).cid,blocks:r}}async function uw(t,e,r){let n=await aw(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 uE(t){let{readable:e,writable:r}=new TransformStream({},aE),n=Ym({writable:r,settings:cE}),o=new xl("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function lE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var Po,xl=class{constructor(e,r){nt(this,Po,void 0);k(this,"name");this.name=e,fe(this,Po,r)}async finalize(e){let r=po(e);return await Z(this,Po).stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};Po=new WeakMap;async function dw(t,e,r,n){let o;for(let i of r){let s=await fE(t,i);o=await vp(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 fE(t,e){let r;e.del?r={del:!0}:(await dE(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 dE(t,e){e._files&&await lw(t,e._files),e._publicFiles&&await lw(t,e._publicFiles,!0)}async function lw(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 cw(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 hw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await Ep(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await Sl(t,n)}function El(t,{doc:e}){e&&(e._files&&fw(t,e._files),e._publicFiles&&fw(t,e._publicFiles,!0))}function fw(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 uw({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 Sl(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 El(t,n),n}var kl=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 Fo(t,e,r,n){let o=n.dirty?new kl(t):new Je(t);return{result:(await vl(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function vl(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 vl(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await Sl(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await vl(t,e,l.parents,n,o,i,s,c))}}return o}async function*pw(t,e){for await(let[r,n]of Rc(t,e)){let o=await Sl(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*yw(t,e){for await(let r of Fc(t,e))yield r}async function mw(t,e){let r=new qi(t),n=new _t(t);for await(let[,i]of Rc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of Fc(r,e));let o=await Kr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await Fo(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 Ys=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 Yn(u,l,m);let d=await Kr(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 Fo(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 Zs=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 Ys);this.name=e||null,this.opts=r||this.opts,this.blocks=new Vi(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new ji(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 dw(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(El(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 pw(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 yw(this.blocks,this.clock.head))e.push(r);return e.join(`
4
4
  `)}async get(e){await this.ready;let r=await hw(this.blocks,this.clock.head,e);return r.del?null:r}async changes(e=[],r={}){return await this.ready,await Fo(this.blocks,this.clock.head,e,r)}async compact(){if(await this.ready,!(this.blocks.loader&&this.blocks.loader.carLog.length<2))return await mw(this.blocks,this.clock.head)}};var Pt=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 Zs(e,this.opts),this._crdt.clock.onTick(n=>{this._notify(n)}),this._writeQueue=Tl(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||Cl(),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"?Wr({_crdt:this._crdt},e):Wr({_crdt:this._crdt},pE(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(Pt,"databases",new Map);function hE(t,e){return Pt.databases.has(t)||Pt.databases.set(t,new Pt(t,e)),Pt.databases.get(t)}function pE(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}
5
5
  /*! Bundled license information:
6
6