@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.
- package/dist/browser/fireproof.cjs +1 -1
- package/dist/browser/fireproof.cjs.map +1 -1
- package/dist/browser/fireproof.esm.js +1 -1
- package/dist/browser/fireproof.esm.js.map +1 -1
- package/dist/browser/fireproof.iife.js +1 -1
- package/dist/browser/fireproof.iife.js.map +1 -1
- package/dist/node/fireproof.cjs +1 -1
- package/dist/node/fireproof.cjs.map +1 -1
- package/dist/node/fireproof.esm.js +1 -1
- package/dist/node/fireproof.esm.js.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ const require = createRequire(import.meta.url);
|
|
|
4
4
|
|
|
5
5
|
var iw=Object.create;var Hs=Object.defineProperty;var sw=Object.getOwnPropertyDescriptor;var aw=Object.getOwnPropertyNames;var cw=Object.getPrototypeOf,uw=Object.prototype.hasOwnProperty;var $=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),X=(t,e)=>{for(var r in e)Hs(t,r,{get:e[r],enumerable:!0})},lw=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of aw(e))!uw.call(t,o)&&o!==r&&Hs(t,o,{get:()=>e[o],enumerable:!(n=sw(e,o))||n.enumerable});return t};var q=(t,e,r)=>(r=t!=null?iw(cw(t)):{},lw(e||!t||!t.__esModule?Hs(r,"default",{value:t,enumerable:!0}):r,t));var Vf=$((oA,jf)=>{jf.exports=va;var Hf=128,u0=127,l0=~u0,f0=Math.pow(2,31);function va(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw va.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=f0;)e[r++]=t&255|Hf,t/=128;for(;t&l0;)e[r++]=t&255|Hf,t>>>=7;return e[r]=t|0,va.bytes=r-n+1,e}});var Kf=$((iA,Wf)=>{Wf.exports=Ea;var d0=128,qf=127;function Ea(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c||o>49)throw Ea.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&qf)<<o:(s&qf)*Math.pow(2,o),o+=7}while(s>=d0);return Ea.bytes=i-n,r}});var Qf=$((sA,Gf)=>{var h0=Math.pow(2,7),p0=Math.pow(2,14),y0=Math.pow(2,21),m0=Math.pow(2,28),g0=Math.pow(2,35),w0=Math.pow(2,42),b0=Math.pow(2,49),x0=Math.pow(2,56),k0=Math.pow(2,63);Gf.exports=function(t){return t<h0?1:t<p0?2:t<y0?3:t<m0?4:t<g0?5:t<w0?6:t<b0?7:t<x0?8:t<k0?9:10}});var jo=$((aA,Jf)=>{Jf.exports={encode:Vf(),decode:Kf(),encodingLength:Qf()}});var $h=$(nc=>{nc.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"+Y1(String(r),3)+"M"+String(n);return t>0?"F"+o:"D"+zh(o)};nc.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?zh(t):t).slice(2).split("M");return+((e?"-":"")+r[1]+"e"+String(Number(r[0])-500))};function zh(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 Y1(t,e){return" ".repeat(e-t.length).substr(0,e)+t}});var jh=$(Hh=>{var Z1={"?":"?@","!":"??",'"':"?%"};function ex(t){return/[!"]/.test(t)?t.replace(/[\?!"]/g,function(e){return Z1[e]}):t}var tx={"?@":"?","??":"!","?%":'"'};function rx(t){return/\?[%\?@]/.test(t)?t.replace(/\?[%\?@]/g,function(e){return tx[e]}):t}Hh.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):ex(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(rx(p)));for(var g=a-h,w=g;w<a;w++)s[w+1]=[],a=g,c=s[a]}return s[0][0]}}});var qh=$(G=>{var nx=$h(),ox=jh(),oB=G.flip=function(t){var e=t.toString(),r="";for(var n in e)r+=e[n]=="."?".":9-+e[n];return r};G.number=nx;G.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)}};G.encode=function(t){return G[typeof t].encode(t)};G.decode=function(t){if(t==="")return t;if(!Vh[t[0]])throw new Error("no decoder for:"+JSON.stringify(t));return Vh[t[0]](t)};G.object=ox.factory(G);G.boolean={encode:function(t){return t?"C":"B"},decode:function(t){return t==="C"}};G.undefined={encode:function(t){return"L"},decode:function(){}};var Vh={A:G.object.decode,B:G.boolean.decode,C:G.boolean.decode,D:G.number.decode,F:G.number.decode,J:G.string.decode,K:G.object.decode,L:G.undefined.decode};G.buffer=!1;G.type="charwise"});var Sp=$((e3,Ep)=>{"use strict";Ep.exports=Mx;function Mx(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 Cp=$(Bp=>{"use strict";var $i=Bp;$i.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 Rr=new Array(64),_p=new Array(123);for(Fe=0;Fe<64;)_p[Rr[Fe]=Fe<26?Fe+65:Fe<52?Fe+71:Fe<62?Fe-4:Fe-59|43]=Fe++;var Fe;$i.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++]=Rr[u>>2],a=(u&3)<<4,c=1;break;case 1:i[s++]=Rr[a|u>>4],a=(u&15)<<2,c=2;break;case 2:i[s++]=Rr[a|u>>6],i[s++]=Rr[u&63],c=0;break}s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),s=0)}return c&&(i[s++]=Rr[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 Ap="invalid encoding";$i.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=_p[a])===void 0)throw Error(Ap);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(Ap);return n-o};$i.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var Ip=$((r3,Tp)=>{"use strict";Tp.exports=Hi;function Hi(){this._listeners={}}Hi.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Hi.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};Hi.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 Mp=$((n3,Fp)=>{"use strict";Fp.exports=Lp(Lp);function Lp(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,Dp),t.writeFloatBE=e.bind(null,Np);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,Up),t.readFloatBE=r.bind(null,Pp)}(),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,Dp,0,4),t.writeDoubleBE=e.bind(null,Np,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,Up,0,4),t.readDoubleBE=r.bind(null,Pp,4,0)}(),t}function Dp(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 Np(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 Up(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function Pp(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Rp=$((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 zp=$(Op=>{"use strict";var Tc=Op;Tc.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};Tc.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))};Tc.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 Hp=$((i3,$p)=>{"use strict";$p.exports=Rx;function Rx(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 Vp=$((s3,jp)=>{"use strict";jp.exports=ee;var Hn=ot();function ee(t,e){this.lo=t>>>0,this.hi=e>>>0}var Xt=ee.zero=new ee(0,0);Xt.toNumber=function(){return 0};Xt.zzEncode=Xt.zzDecode=function(){return this};Xt.length=function(){return 1};var Ox=ee.zeroHash="\0\0\0\0\0\0\0\0";ee.fromNumber=function(e){if(e===0)return Xt;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 ee(n,o)};ee.from=function(e){if(typeof e=="number")return ee.fromNumber(e);if(Hn.isString(e))if(Hn.Long)e=Hn.Long.fromString(e);else return ee.fromNumber(parseInt(e,10));return e.low||e.high?new ee(e.low>>>0,e.high>>>0):Xt};ee.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};ee.prototype.toLong=function(e){return Hn.Long?new Hn.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var kt=String.prototype.charCodeAt;ee.fromHash=function(e){return e===Ox?Xt:new ee((kt.call(e,0)|kt.call(e,1)<<8|kt.call(e,2)<<16|kt.call(e,3)<<24)>>>0,(kt.call(e,4)|kt.call(e,5)<<8|kt.call(e,6)<<16|kt.call(e,7)<<24)>>>0)};ee.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)};ee.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};ee.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};ee.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 ot=$(Ic=>{"use strict";var L=Ic;L.asPromise=Sp();L.base64=Cp();L.EventEmitter=Ip();L.float=Mp();L.inquire=Rp();L.utf8=zp();L.pool=Hp();L.LongBits=Vp();L.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);L.global=L.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||Ic;L.emptyArray=Object.freeze?Object.freeze([]):[];L.emptyObject=Object.freeze?Object.freeze({}):{};L.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};L.isString=function(e){return typeof e=="string"||e instanceof String};L.isObject=function(e){return e&&typeof e=="object"};L.isset=L.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};L.Buffer=function(){try{var t=L.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();L._Buffer_from=null;L._Buffer_allocUnsafe=null;L.newBuffer=function(e){return typeof e=="number"?L.Buffer?L._Buffer_allocUnsafe(e):new L.Array(e):L.Buffer?L._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};L.Array=typeof Uint8Array<"u"?Uint8Array:Array;L.Long=L.global.dcodeIO&&L.global.dcodeIO.Long||L.global.Long||L.inquire("long");L.key2Re=/^true|false|0|1$/;L.key32Re=/^-?(?:0|[1-9][0-9]*)$/;L.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;L.longToHash=function(e){return e?L.LongBits.from(e).toHash():L.LongBits.zeroHash};L.longFromHash=function(e,r){var n=L.LongBits.fromHash(e);return L.Long?L.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function qp(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}L.merge=qp;L.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Wp(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&&qp(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}L.newError=Wp;L.ProtocolError=Wp("ProtocolError");L.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]}};L.oneOfSetter=function(e){return function(r){for(var n=0;n<e.length;++n)e[n]!==r&&delete this[e[n]]}};L.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};L._configure=function(){var t=L.Buffer;if(!t){L._Buffer_from=L._Buffer_allocUnsafe=null;return}L._Buffer_from=t.from!==Uint8Array.from&&t.from||function(r,n){return new t(r,n)},L._Buffer_allocUnsafe=t.allocUnsafe||function(r){return new t(r)}}});var Vi=$((c3,Jp)=>{"use strict";Jp.exports=M;var Ie=ot(),Lc,ji=Ie.LongBits,Kp=Ie.base64,Gp=Ie.utf8;function jn(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function Nc(){}function zx(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function M(){this.len=0,this.head=new jn(Nc,0,0),this.tail=this.head,this.states=null}var Qp=function(){return Ie.Buffer?function(){return(M.create=function(){return new Lc})()}:function(){return new M}};M.create=Qp();M.alloc=function(e){return new Ie.Array(e)};Ie.Array!==Array&&(M.alloc=Ie.pool(M.alloc,Ie.Array.prototype.subarray));M.prototype._push=function(e,r,n){return this.tail=this.tail.next=new jn(e,r,n),this.len+=r,this};function Uc(t,e,r){e[r]=t&255}function $x(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Pc(t,e){this.len=t,this.next=void 0,this.val=e}Pc.prototype=Object.create(jn.prototype);Pc.prototype.fn=$x;M.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Pc((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};M.prototype.int32=function(e){return e<0?this._push(Fc,10,ji.fromNumber(e)):this.uint32(e)};M.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Fc(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}M.prototype.uint64=function(e){var r=ji.from(e);return this._push(Fc,r.length(),r)};M.prototype.int64=M.prototype.uint64;M.prototype.sint64=function(e){var r=ji.from(e).zzEncode();return this._push(Fc,r.length(),r)};M.prototype.bool=function(e){return this._push(Uc,1,e?1:0)};function Dc(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}M.prototype.fixed32=function(e){return this._push(Dc,4,e>>>0)};M.prototype.sfixed32=M.prototype.fixed32;M.prototype.fixed64=function(e){var r=ji.from(e);return this._push(Dc,4,r.lo)._push(Dc,4,r.hi)};M.prototype.sfixed64=M.prototype.fixed64;M.prototype.float=function(e){return this._push(Ie.float.writeFloatLE,4,e)};M.prototype.double=function(e){return this._push(Ie.float.writeDoubleLE,8,e)};var Hx=Ie.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]};M.prototype.bytes=function(e){var r=e.length>>>0;if(!r)return this._push(Uc,1,0);if(Ie.isString(e)){var n=M.alloc(r=Kp.length(e));Kp.decode(e,n,0),e=n}return this.uint32(r)._push(Hx,r,e)};M.prototype.string=function(e){var r=Gp.length(e);return r?this.uint32(r)._push(Gp.write,r,e):this._push(Uc,1,0)};M.prototype.fork=function(){return this.states=new zx(this),this.head=this.tail=new jn(Nc,0,0),this.len=0,this};M.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 jn(Nc,0,0),this.len=0),this};M.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};M.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};M._configure=function(t){Lc=t,M.create=Qp(),Lc._configure()}});var Mc=$((u3,Yp)=>{"use strict";Yp.exports=Qe;var Xp=Vi();(Qe.prototype=Object.create(Xp.prototype)).constructor=Qe;var vt=ot();function Qe(){Xp.call(this)}Qe._configure=function(){Qe.alloc=vt._Buffer_allocUnsafe,Qe.writeBytesBuffer=vt.Buffer&&vt.Buffer.prototype instanceof Uint8Array&&vt.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++]}};Qe.prototype.bytes=function(e){vt.isString(e)&&(e=vt._Buffer_from(e,"base64"));var r=e.length>>>0;return this.uint32(r),r&&this._push(Qe.writeBytesBuffer,r,e),this};function jx(t,e,r){t.length<40?vt.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}Qe.prototype.string=function(e){var r=vt.Buffer.byteLength(e);return this.uint32(r),r&&this._push(jx,r,e),this};Qe._configure()});var Wi=$((l3,ny)=>{"use strict";ny.exports=Q;var Je=ot(),Oc,ty=Je.LongBits,Vx=Je.utf8;function Me(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function Q(t){this.buf=t,this.pos=0,this.len=t.length}var Zp=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new Q(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new Q(e);throw Error("illegal buffer")},ry=function(){return Je.Buffer?function(r){return(Q.create=function(o){return Je.Buffer.isBuffer(o)?new Oc(o):Zp(o)})(r)}:Zp};Q.create=ry();Q.prototype._slice=Je.Array.prototype.subarray||Je.Array.prototype.slice;Q.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,Me(this,10);return e}}();Q.prototype.int32=function(){return this.uint32()|0};Q.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Rc(){var t=new ty(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 Me(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 Me(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")}Q.prototype.bool=function(){return this.uint32()!==0};function qi(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}Q.prototype.fixed32=function(){if(this.pos+4>this.len)throw Me(this,4);return qi(this.buf,this.pos+=4)};Q.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Me(this,4);return qi(this.buf,this.pos+=4)|0};function ey(){if(this.pos+8>this.len)throw Me(this,8);return new ty(qi(this.buf,this.pos+=4),qi(this.buf,this.pos+=4))}Q.prototype.float=function(){if(this.pos+4>this.len)throw Me(this,4);var e=Je.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};Q.prototype.double=function(){if(this.pos+8>this.len)throw Me(this,4);var e=Je.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};Q.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Me(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)};Q.prototype.string=function(){var e=this.bytes();return Vx.read(e,0,e.length)};Q.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Me(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Me(this);while(this.buf[this.pos++]&128);return this};Q.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};Q._configure=function(t){Oc=t,Q.create=ry(),Oc._configure();var e=Je.Long?"toLong":"toNumber";Je.merge(Q.prototype,{int64:function(){return Rc.call(this)[e](!1)},uint64:function(){return Rc.call(this)[e](!0)},sint64:function(){return Rc.call(this).zzDecode()[e](!1)},fixed64:function(){return ey.call(this)[e](!0)},sfixed64:function(){return ey.call(this)[e](!1)}})}});var zc=$((f3,sy)=>{"use strict";sy.exports=Yt;var iy=Wi();(Yt.prototype=Object.create(iy.prototype)).constructor=Yt;var oy=ot();function Yt(t){iy.call(this,t)}Yt._configure=function(){oy.Buffer&&(Yt.prototype._slice=oy.Buffer.prototype.slice)};Yt.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))};Yt._configure()});var cy=$((d3,ay)=>{"use strict";ay.exports=Vn;var $c=ot();(Vn.prototype=Object.create($c.EventEmitter.prototype)).constructor=Vn;function Vn(t,e,r){if(typeof t!="function")throw TypeError("rpcImpl must be a function");$c.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=!!e,this.responseDelimited=!!r}Vn.prototype.rpcCall=function t(e,r,n,o,i){if(!o)throw TypeError("request must be specified");var s=this;if(!i)return $c.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}};Vn.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var ly=$(uy=>{"use strict";var qx=uy;qx.Service=cy()});var dy=$((p3,fy)=>{"use strict";fy.exports={}});var yy=$(py=>{"use strict";var fe=py;fe.build="minimal";fe.Writer=Vi();fe.BufferWriter=Mc();fe.Reader=Wi();fe.BufferReader=zc();fe.util=ot();fe.rpc=ly();fe.roots=dy();fe.configure=hy;function hy(){fe.util._configure(),fe.Writer._configure(fe.BufferWriter),fe.Reader._configure(fe.BufferReader)}hy()});var gy=$((m3,my)=>{"use strict";my.exports=yy()});var pm=$((to,hs)=>{(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,k=3432918353,v=461845907,C=0;C<w;C=C+4)b=f[C]|f[C+1]<<8|f[C+2]<<16|f[C+3]<<24,b=o(b,k),b=i(b,15),b=o(b,v),g^=b,g=i(g,13),g=o(g,5)+3864292196;switch(b=0,p){case 3:b^=f[C+2]<<16;case 2:b^=f[C+1]<<8;case 1:b^=f[C],b=o(b,k),b=i(b,15),b=o(b,v),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,k=h,v=h,C=0,N=0,S=0,U=0,ue=597399067,Eo=2869860233,So=951274213,Ao=2716044179,F=0;F<w;F=F+16)C=f[F]|f[F+1]<<8|f[F+2]<<16|f[F+3]<<24,N=f[F+4]|f[F+5]<<8|f[F+6]<<16|f[F+7]<<24,S=f[F+8]|f[F+9]<<8|f[F+10]<<16|f[F+11]<<24,U=f[F+12]|f[F+13]<<8|f[F+14]<<16|f[F+15]<<24,C=o(C,ue),C=i(C,15),C=o(C,Eo),g^=C,g=i(g,19),g+=b,g=o(g,5)+1444728091,N=o(N,Eo),N=i(N,16),N=o(N,So),b^=N,b=i(b,17),b+=k,b=o(b,5)+197830471,S=o(S,So),S=i(S,17),S=o(S,Ao),k^=S,k=i(k,15),k+=v,k=o(k,5)+2530024501,U=o(U,Ao),U=i(U,18),U=o(U,ue),v^=U,v=i(v,13),v+=g,v=o(v,5)+850148119;switch(C=0,N=0,S=0,U=0,p){case 15:U^=f[F+14]<<16;case 14:U^=f[F+13]<<8;case 13:U^=f[F+12],U=o(U,Ao),U=i(U,18),U=o(U,ue),v^=U;case 12:S^=f[F+11]<<24;case 11:S^=f[F+10]<<16;case 10:S^=f[F+9]<<8;case 9:S^=f[F+8],S=o(S,So),S=i(S,17),S=o(S,Ao),k^=S;case 8:N^=f[F+7]<<24;case 7:N^=f[F+6]<<16;case 6:N^=f[F+5]<<8;case 5:N^=f[F+4],N=o(N,Eo),N=i(N,16),N=o(N,So),b^=N;case 4:C^=f[F+3]<<24;case 3:C^=f[F+2]<<16;case 2:C^=f[F+1]<<8;case 1:C^=f[F],C=o(C,ue),C=i(C,15),C=o(C,Eo),g^=C}return g^=f.length,b^=f.length,k^=f.length,v^=f.length,g+=b,g+=k,g+=v,b+=g,k+=g,v+=g,g=s(g),b=s(b),k=s(k),v=s(v),g+=b,g+=k,g+=v,b+=g,k+=g,v+=g,("00000000"+(g>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(k>>>0).toString(16)).slice(-8)+("00000000"+(v>>>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],k=[0,0],v=[0,0],C=[2277735313,289559509],N=[1291169091,658871167],S=0;S<w;S=S+16)k=[f[S+4]|f[S+5]<<8|f[S+6]<<16|f[S+7]<<24,f[S]|f[S+1]<<8|f[S+2]<<16|f[S+3]<<24],v=[f[S+12]|f[S+13]<<8|f[S+14]<<16|f[S+15]<<24,f[S+8]|f[S+9]<<8|f[S+10]<<16|f[S+11]<<24],k=a(k,C),k=u(k,31),k=a(k,N),g=d(g,k),g=u(g,27),g=c(g,b),g=c(a(g,[0,5]),[0,1390208809]),v=a(v,N),v=u(v,33),v=a(v,C),b=d(b,v),b=u(b,31),b=c(b,g),b=c(a(b,[0,5]),[0,944331445]);switch(k=[0,0],v=[0,0],p){case 15:v=d(v,l([0,f[S+14]],48));case 14:v=d(v,l([0,f[S+13]],40));case 13:v=d(v,l([0,f[S+12]],32));case 12:v=d(v,l([0,f[S+11]],24));case 11:v=d(v,l([0,f[S+10]],16));case 10:v=d(v,l([0,f[S+9]],8));case 9:v=d(v,[0,f[S+8]]),v=a(v,N),v=u(v,33),v=a(v,C),b=d(b,v);case 8:k=d(k,l([0,f[S+7]],56));case 7:k=d(k,l([0,f[S+6]],48));case 6:k=d(k,l([0,f[S+5]],40));case 5:k=d(k,l([0,f[S+4]],32));case 4:k=d(k,l([0,f[S+3]],24));case 3:k=d(k,l([0,f[S+2]],16));case 2:k=d(k,l([0,f[S+1]],8));case 1:k=d(k,[0,f[S]]),k=a(k,C),k=u(k,31),k=a(k,N),g=d(g,k)}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 to<"u"?(typeof hs<"u"&&hs.exports&&(to=hs.exports=r),to.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)})(to)});var vu=$((H3,ym)=>{ym.exports=pm()});var Ye=$((BC,jm)=>{"use strict";function Hm(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function N2(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 Hm(t,r)}catch{r.message=t.message,r.stack=t.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(t)),Hm(new o,r)}}jm.exports=N2});var lg=$((fT,ug)=>{"use strict";ug.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(Q2,0),a=~(4294967295<<i+1),u=cg(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(J2),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(X2)}};function Q2(t,e){return t+cg(e)}function cg(t){let e=t;return e=e-(e>>1&1431655765),e=(e&858993459)+(e>>2&858993459),(e+(e>>4)&252645135)*16843009>>24}function J2(t,e){return t[0]-e[0]}function X2(t){return t[1]}});var Dg=$((v4,Yu)=>{"use strict";var Hv=Object.prototype.hasOwnProperty,ce="~";function fo(){}Object.create&&(fo.prototype=Object.create(null),new fo().__proto__||(ce=!1));function jv(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function Lg(t,e,r,n,o){if(typeof r!="function")throw new TypeError("The listener must be a function");var i=new jv(r,n||t,o),s=ce?ce+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 Is(t,e){--t._eventsCount===0?t._events=new fo:delete t._events[e]}function oe(){this._events=new fo,this._eventsCount=0}oe.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Hv.call(r,n)&&e.push(ce?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};oe.prototype.listeners=function(e){var r=ce?ce+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};oe.prototype.listenerCount=function(e){var r=ce?ce+e:e,n=this._events[r];return n?n.fn?1:n.length:0};oe.prototype.emit=function(e,r,n,o,i,s){var c=ce?ce+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};oe.prototype.on=function(e,r,n){return Lg(this,e,r,n,!1)};oe.prototype.once=function(e,r,n){return Lg(this,e,r,n,!0)};oe.prototype.removeListener=function(e,r,n,o){var i=ce?ce+e:e;if(!this._events[i])return this;if(!r)return Is(this,i),this;var s=this._events[i];if(s.fn)s.fn===r&&(!o||s.once)&&(!n||s.context===n)&&Is(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:Is(this,i)}return this};oe.prototype.removeAllListeners=function(e){var r;return e?(r=ce?ce+e:e,this._events[r]&&Is(this,r)):(this._events=new fo,this._eventsCount=0),this};oe.prototype.off=oe.prototype.removeListener;oe.prototype.addListener=oe.prototype.on;oe.prefixed=ce;oe.EventEmitter=oe;typeof Yu<"u"&&(Yu.exports=oe)});var _o="0123456789abcdef",Bo=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+=_o.charAt(this.bytes[r]>>>4),e+=_o.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+=_o.charAt(this.bytes[r]>>>4),e+=_o.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}},js=class{constructor(e){this.timestamp=0,this.counter=0,this.random=e??fw()}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 Bo.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,Bo.ofInner(e)}},fw=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new Vs;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)}},Vs=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++]}},ll,fl=()=>dw().toString(),dw=()=>(ll||(ll=new js)).generate();function dl(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 hw=yl,hl=128,pw=127,yw=~pw,mw=Math.pow(2,31);function yl(t,e,r){e=e||[],r=r||0;for(var n=r;t>=mw;)e[r++]=t&255|hl,t/=128;for(;t&yw;)e[r++]=t&255|hl,t>>>=7;return e[r]=t|0,yl.bytes=r-n+1,e}var gw=qs,ww=128,pl=127;function qs(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw qs.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&pl)<<o:(s&pl)*Math.pow(2,o),o+=7}while(s>=ww);return qs.bytes=i-n,r}var bw=Math.pow(2,7),xw=Math.pow(2,14),kw=Math.pow(2,21),vw=Math.pow(2,28),Ew=Math.pow(2,35),Sw=Math.pow(2,42),Aw=Math.pow(2,49),_w=Math.pow(2,56),Bw=Math.pow(2,63),Cw=function(t){return t<bw?1:t<xw?2:t<kw?3:t<vw?4:t<Ew?5:t<Sw?6:t<Aw?7:t<_w?8:t<Bw?9:10},Tw={encode:hw,decode:gw,encodingLength:Cw},Iw=Tw,sn=Iw;var an=(t,e=0)=>[sn.decode(t,e),sn.decode.bytes],ir=(t,e,r=0)=>(sn.encode(t,e,r),e),sr=t=>sn.encodingLength(t);var fE=new Uint8Array(0);var ml=(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},Se=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 gl=t=>new TextEncoder().encode(t),wl=t=>new TextDecoder().decode(t);var Tt=(t,e)=>{let r=e.byteLength,n=sr(t),o=n+sr(r),i=new Uint8Array(o+r);return ir(t,i,0),ir(r,i,n),i.set(e,o),new ar(t,r,e,i)},cr=t=>{let e=Se(t),[r,n]=an(e),[o,i]=an(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new ar(r,o,s,e)},bl=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&ml(t.bytes,r.bytes)}},ar=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Xs={};X(Xs,{base58btc:()=>ze,base58flickr:()=>Fw});function Lw(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 k=(b-g)*l+1>>>0,v=new Uint8Array(k);g!==b;){for(var C=h[g],N=0,S=k-1;(C!==0||N<w)&&S!==-1;S--,N++)C+=256*v[S]>>>0,v[S]=C%c>>>0,C=C/c>>>0;if(C!==0)throw new Error("Non-zero carry");w=N,g++}for(var U=k-w;U!==k&&v[U]===0;)U++;for(var ue=a.repeat(p);U<k;++U)ue+=t.charAt(v[U]);return ue}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,k=new Uint8Array(b);h[p];){var v=r[h.charCodeAt(p)];if(v===255)return;for(var C=0,N=b-1;(v!==0||C<g)&&N!==-1;N--,C++)v+=c*k[N]>>>0,k[N]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");g=C,p++}if(h[p]!==" "){for(var S=b-g;S!==b&&k[S]===0;)S++;for(var U=new Uint8Array(w+(b-S)),ue=w;S!==b;)U[ue++]=k[S++];return U}}}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 Dw=Lw,Nw=Dw,xl=Nw;var Ks=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")}},Gs=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 kl(this,e)}},Qs=class{constructor(e){this.decoders=e}or(e){return kl(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`)}},kl=(t,e)=>new Qs({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Js=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ks(e,r,n),this.decoder=new Gs(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ur=({name:t,prefix:e,encode:r,decode:n})=>new Js(t,e,r,n),ut=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=xl(r,e);return ur({prefix:t,name:e,encode:n,decode:i=>Se(o(i))})},Uw=(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},Pw=(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},K=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ur({prefix:e,name:t,encode(o){return Pw(o,n,r)},decode(o){return Uw(o,n,r,t)}});var ze=ut({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Fw=ut({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ys={};X(Ys,{base32:()=>lr,base32hex:()=>zw,base32hexpad:()=>Hw,base32hexpadupper:()=>jw,base32hexupper:()=>$w,base32pad:()=>Rw,base32padupper:()=>Ow,base32upper:()=>Mw,base32z:()=>Vw});var lr=K({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Mw=K({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Rw=K({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ow=K({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),zw=K({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),$w=K({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Hw=K({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),jw=K({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Vw=K({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Zs=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Ww(r,ea(t),e||ze.encoder);default:return Kw(r,ea(t),e||lr.encoder)}};var vl=new WeakMap,ea=t=>{let e=vl.get(t);if(e==null){let r=new Map;return vl.set(t,r),r}return e},H=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!==cn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Gw)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=Tt(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&&bl(e.multihash,n.multihash)}toString(e){return Zs(this,e)}toJSON(){return{"/":Zs(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||El(n,o,i.bytes))}else if(r[Qw]===!0){let{version:n,multihash:o,code:i}=r,s=cr(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!==cn)throw new Error(`Version 0 CID must use dag-pb (code: ${cn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=El(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,cn,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=Se(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 ar(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]=an(e.subarray(r));return r+=m,d},o=n(),i=cn;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]=qw(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 ea(i).set(n,e),i}},qw=(t,e)=>{switch(t[0]){case"Q":{let r=e||ze;return[ze.prefix,r.decode(`${ze.prefix}${t}`)]}case ze.prefix:{let r=e||ze;return[ze.prefix,r.decode(t)]}case lr.prefix:{let r=e||lr;return[lr.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)]}}},Ww=(t,e,r)=>{let{prefix:n}=r;if(n!==ze.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},Kw=(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},cn=112,Gw=18,El=(t,e,r)=>{let n=sr(t),o=n+sr(e),i=new Uint8Array(o+r.byteLength);return ir(t,i,0),ir(e,i,n),i.set(r,o),i},Qw=Symbol.for("@ipld/js-cid/CID");var Sl=(t,e)=>H.parse(t,e);var Ae=class{#e=new Map;constructor(e){e&&(this.#e=new Map(e.map(r=>[r.cid.toString(),r.bytes])))}async get(e){let r=this.#e.get(e.toString());if(r)return{cid:e,bytes:r}}async put(e,r){this.#e.set(e.toString(),r)}putSync(e,r){this.#e.set(e.toString(),r)}async delete(e){this.#e.delete(e.toString())}deleteSync(e){this.#e.delete(e.toString())}*entries(){for(let[e,r]of this.#e)yield{cid:Sl(e),bytes:r}}},Lt=class{#e;constructor(...e){this.#e=e}async get(e){for(let r of this.#e){let n=await r.get(e);if(n)return n}}};var ta=class{value;next;constructor(e){this.value=e}},un=class{#e;#t;#r;constructor(){this.clear()}enqueue(e){let r=new ta(e);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let e=this.#e;if(e)return this.#e=this.#e.next,this.#r--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}};function ln(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 un,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}import _0 from"fs";import{promisify as B0}from"util";var V={};X(V,{code:()=>xa,decode:()=>br,encode:()=>Ho,name:()=>c0});var Jw=["string","number","bigint","symbol"],Xw=["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 Al(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(Jw.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(Yw(t))return"Buffer";let r=Zw(t);return r||"Object"}function Yw(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function Zw(t){let e=Object.prototype.toString.call(t).slice(8,-1);if(Xw.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 E=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 fr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",eb=new TextDecoder,tb=new TextEncoder;function To(t){return fr&&globalThis.Buffer.isBuffer(t)}function fn(t){return t instanceof Uint8Array?To(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var Tl=fr?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):Bl(t,e,r):(t,e,r)=>r-e>64?eb.decode(t.subarray(e,r)):Bl(t,e,r),Io=fr?t=>t.length>64?globalThis.Buffer.from(t):_l(t):t=>t.length>64?tb.encode(t):_l(t),$e=t=>Uint8Array.from(t),dr=fr?(t,e,r)=>To(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),Il=fr?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),fn(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},Ll=fr?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function Dl(t,e){if(To(t)&&To(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 _l(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 Bl(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 ra(n)}var Cl=4096;function ra(t){let e=t.length;if(e<=Cl)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=Cl));return r}var rb=256,dn=class{constructor(e=rb){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=Ll(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=dr(n,0,this.cursor)}else r=Il(this.chunks,this.cursor);return e&&this.reset(),r}};var T="CBOR decode error:",Ze="CBOR encode error:",hn=[];hn[23]=1;hn[24]=2;hn[25]=3;hn[26]=5;hn[27]=9;function et(t,e,r){if(t.length-e<r)throw new Error(`${T} not enough data for type`)}var Y=[24,256,65536,4294967296,BigInt("18446744073709551616")];function he(t,e,r){et(t,e,1);let n=t[e];if(r.strict===!0&&n<Y[0])throw new Error(`${T} integer encoded in more bytes than necessary (strict decode)`);return n}function pe(t,e,r){et(t,e,2);let n=t[e]<<8|t[e+1];if(r.strict===!0&&n<Y[1])throw new Error(`${T} integer encoded in more bytes than necessary (strict decode)`);return n}function ye(t,e,r){et(t,e,4);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3];if(r.strict===!0&&n<Y[2])throw new Error(`${T} integer encoded in more bytes than necessary (strict decode)`);return n}function me(t,e,r){et(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<Y[3])throw new Error(`${T} 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(`${T} integers outside of the safe integer range are not supported`)}function Nl(t,e,r,n){return new E(y.uint,he(t,e+1,n),2)}function Ul(t,e,r,n){return new E(y.uint,pe(t,e+1,n),3)}function Pl(t,e,r,n){return new E(y.uint,ye(t,e+1,n),5)}function Fl(t,e,r,n){return new E(y.uint,me(t,e+1,n),9)}function _e(t,e){return te(t,0,e.value)}function te(t,e,r){if(r<Y[0]){let n=Number(r);t.push([e|n])}else if(r<Y[1]){let n=Number(r);t.push([e|24,n])}else if(r<Y[2]){let n=Number(r);t.push([e|25,n>>>8,n&255])}else if(r<Y[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<Y[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(`${T} encountered BigInt larger than allowable range`)}}_e.encodedSize=function(e){return te.encodedSize(e.value)};te.encodedSize=function(e){return e<Y[0]?1:e<Y[1]?2:e<Y[2]?3:e<Y[3]?5:9};_e.compareTokens=function(e,r){return e.value<r.value?-1:e.value>r.value?1:0};function Ml(t,e,r,n){return new E(y.negint,-1-he(t,e+1,n),2)}function Rl(t,e,r,n){return new E(y.negint,-1-pe(t,e+1,n),3)}function Ol(t,e,r,n){return new E(y.negint,-1-ye(t,e+1,n),5)}var na=BigInt(-1),zl=BigInt(1);function $l(t,e,r,n){let o=me(t,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new E(y.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${T} integers outside of the safe integer range are not supported`);return new E(y.negint,na-BigInt(o),9)}function Lo(t,e){let r=e.value,n=typeof r=="bigint"?r*na-zl:r*-1-1;te(t,e.type.majorEncoded,n)}Lo.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*na-zl:r*-1-1;return n<Y[0]?1:n<Y[1]?2:n<Y[2]?3:n<Y[3]?5:9};Lo.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function pn(t,e,r,n){et(t,e,r+n);let o=dr(t,e+r,e+r+n);return new E(y.bytes,o,r+n)}function Hl(t,e,r,n){return pn(t,e,1,r)}function jl(t,e,r,n){return pn(t,e,2,he(t,e+1,n))}function Vl(t,e,r,n){return pn(t,e,3,pe(t,e+1,n))}function ql(t,e,r,n){return pn(t,e,5,ye(t,e+1,n))}function Wl(t,e,r,n){let o=me(t,e+1,n);if(typeof o=="bigint")throw new Error(`${T} 64-bit integer bytes lengths not supported`);return pn(t,e,9,o)}function Do(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===y.string?Io(t.value):t.value),t.encodedBytes}function hr(t,e){let r=Do(e);te(t,e.type.majorEncoded,r.length),t.push(r)}hr.encodedSize=function(e){let r=Do(e);return te.encodedSize(r.length)+r.length};hr.compareTokens=function(e,r){return ob(Do(e),Do(r))};function ob(t,e){return t.length<e.length?-1:t.length>e.length?1:Dl(t,e)}function yn(t,e,r,n,o){let i=r+n;et(t,e,i);let s=new E(y.string,Tl(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=dr(t,e+r,e+i)),s}function Kl(t,e,r,n){return yn(t,e,1,r,n)}function Gl(t,e,r,n){return yn(t,e,2,he(t,e+1,n),n)}function Ql(t,e,r,n){return yn(t,e,3,pe(t,e+1,n),n)}function Jl(t,e,r,n){return yn(t,e,5,ye(t,e+1,n),n)}function Xl(t,e,r,n){let o=me(t,e+1,n);if(typeof o=="bigint")throw new Error(`${T} 64-bit integer string lengths not supported`);return yn(t,e,9,o,n)}var Yl=hr;function pr(t,e,r,n){return new E(y.array,n,r)}function Zl(t,e,r,n){return pr(t,e,1,r)}function ef(t,e,r,n){return pr(t,e,2,he(t,e+1,n))}function tf(t,e,r,n){return pr(t,e,3,pe(t,e+1,n))}function rf(t,e,r,n){return pr(t,e,5,ye(t,e+1,n))}function nf(t,e,r,n){let o=me(t,e+1,n);if(typeof o=="bigint")throw new Error(`${T} 64-bit integer array lengths not supported`);return pr(t,e,9,o)}function of(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${T} indefinite length items not allowed`);return pr(t,e,1,1/0)}function No(t,e){te(t,y.array.majorEncoded,e.value)}No.compareTokens=_e.compareTokens;No.encodedSize=function(e){return te.encodedSize(e.value)};function yr(t,e,r,n){return new E(y.map,n,r)}function sf(t,e,r,n){return yr(t,e,1,r)}function af(t,e,r,n){return yr(t,e,2,he(t,e+1,n))}function cf(t,e,r,n){return yr(t,e,3,pe(t,e+1,n))}function uf(t,e,r,n){return yr(t,e,5,ye(t,e+1,n))}function lf(t,e,r,n){let o=me(t,e+1,n);if(typeof o=="bigint")throw new Error(`${T} 64-bit integer map lengths not supported`);return yr(t,e,9,o)}function ff(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${T} indefinite length items not allowed`);return yr(t,e,1,1/0)}function Uo(t,e){te(t,y.map.majorEncoded,e.value)}Uo.compareTokens=_e.compareTokens;Uo.encodedSize=function(e){return te.encodedSize(e.value)};function df(t,e,r,n){return new E(y.tag,r,1)}function hf(t,e,r,n){return new E(y.tag,he(t,e+1,n),2)}function pf(t,e,r,n){return new E(y.tag,pe(t,e+1,n),3)}function yf(t,e,r,n){return new E(y.tag,ye(t,e+1,n),5)}function mf(t,e,r,n){return new E(y.tag,me(t,e+1,n),9)}function Po(t,e){te(t,y.tag.majorEncoded,e.value)}Po.compareTokens=_e.compareTokens;Po.encodedSize=function(e){return te.encodedSize(e.value)};var lb=20,fb=21,db=22,hb=23;function gf(t,e,r,n){if(n.allowUndefined===!1)throw new Error(`${T} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new E(y.null,null,1):new E(y.undefined,void 0,1)}function wf(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${T} indefinite length items not allowed`);return new E(y.break,void 0,1)}function oa(t,e,r){if(r){if(r.allowNaN===!1&&Number.isNaN(t))throw new Error(`${T} NaN values are not supported`);if(r.allowInfinity===!1&&(t===1/0||t===-1/0))throw new Error(`${T} Infinity values are not supported`)}return new E(y.float,t,e)}function bf(t,e,r,n){return oa(ia(t,e+1),3,n)}function xf(t,e,r,n){return oa(sa(t,e+1),5,n)}function kf(t,e,r,n){return oa(Af(t,e+1),9,n)}function Fo(t,e,r){let n=e.value;if(n===!1)t.push([y.float.majorEncoded|lb]);else if(n===!0)t.push([y.float.majorEncoded|fb]);else if(n===null)t.push([y.float.majorEncoded|db]);else if(n===void 0)t.push([y.float.majorEncoded|hb]);else{let o,i=!1;(!r||r.float64!==!0)&&(Ef(n),o=ia(Le,1),n===o||Number.isNaN(n)?(Le[0]=249,t.push(Le.slice(0,3)),i=!0):(Sf(n),o=sa(Le,1),n===o&&(Le[0]=250,t.push(Le.slice(0,5)),i=!0))),i||(pb(n),o=Af(Le,1),Le[0]=251,t.push(Le.slice(0,9)))}}Fo.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){Ef(n);let o=ia(Le,1);if(n===o||Number.isNaN(n))return 3;if(Sf(n),o=sa(Le,1),n===o)return 5}return 9};var vf=new ArrayBuffer(9),Be=new DataView(vf,1),Le=new Uint8Array(vf,0);function Ef(t){if(t===1/0)Be.setUint16(0,31744,!1);else if(t===-1/0)Be.setUint16(0,64512,!1);else if(Number.isNaN(t))Be.setUint16(0,32256,!1);else{Be.setFloat32(0,t);let e=Be.getUint32(0),r=(e&2139095040)>>23,n=e&8388607;if(r===255)Be.setUint16(0,31744,!1);else if(r===0)Be.setUint16(0,(t&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?Be.setUint16(0,0):o<-14?Be.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):Be.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function ia(t,e){if(t.length-e<2)throw new Error(`${T} 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 Sf(t){Be.setFloat32(0,t,!1)}function sa(t,e){if(t.length-e<4)throw new Error(`${T} not enough data for float32`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,4).getFloat32(0,!1)}function pb(t){Be.setFloat64(0,t,!1)}function Af(t,e){if(t.length-e<8)throw new Error(`${T} not enough data for float64`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,8).getFloat64(0,!1)}Fo.compareTokens=_e.compareTokens;function R(t,e,r){throw new Error(`${T} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function Mo(t){return()=>{throw new Error(`${T} ${t}`)}}var A=[];for(let t=0;t<=23;t++)A[t]=R;A[24]=Nl;A[25]=Ul;A[26]=Pl;A[27]=Fl;A[28]=R;A[29]=R;A[30]=R;A[31]=R;for(let t=32;t<=55;t++)A[t]=R;A[56]=Ml;A[57]=Rl;A[58]=Ol;A[59]=$l;A[60]=R;A[61]=R;A[62]=R;A[63]=R;for(let t=64;t<=87;t++)A[t]=Hl;A[88]=jl;A[89]=Vl;A[90]=ql;A[91]=Wl;A[92]=R;A[93]=R;A[94]=R;A[95]=Mo("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)A[t]=Kl;A[120]=Gl;A[121]=Ql;A[122]=Jl;A[123]=Xl;A[124]=R;A[125]=R;A[126]=R;A[127]=Mo("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)A[t]=Zl;A[152]=ef;A[153]=tf;A[154]=rf;A[155]=nf;A[156]=R;A[157]=R;A[158]=R;A[159]=of;for(let t=160;t<=183;t++)A[t]=sf;A[184]=af;A[185]=cf;A[186]=uf;A[187]=lf;A[188]=R;A[189]=R;A[190]=R;A[191]=ff;for(let t=192;t<=215;t++)A[t]=df;A[216]=hf;A[217]=pf;A[218]=yf;A[219]=mf;A[220]=R;A[221]=R;A[222]=R;A[223]=R;for(let t=224;t<=243;t++)A[t]=Mo("simple values are not supported");A[244]=R;A[245]=R;A[246]=R;A[247]=gf;A[248]=Mo("simple values are not supported");A[249]=bf;A[250]=xf;A[251]=kf;A[252]=R;A[253]=R;A[254]=R;A[255]=wf;var De=[];for(let t=0;t<24;t++)De[t]=new E(y.uint,t,1);for(let t=-1;t>=-24;t--)De[31-t]=new E(y.negint,t,1);De[64]=new E(y.bytes,new Uint8Array(0),1);De[96]=new E(y.string,"",1);De[128]=new E(y.array,0,1);De[160]=new E(y.map,0,1);De[244]=new E(y.false,!1,1);De[245]=new E(y.true,!0,1);De[246]=new E(y.null,null,1);function _f(t){switch(t.type){case y.false:return $e([244]);case y.true:return $e([245]);case y.null:return $e([246]);case y.bytes:return t.value.length?void 0:$e([64]);case y.string:return t.value===""?$e([96]):void 0;case y.array:return t.value===0?$e([128]):void 0;case y.map:return t.value===0?$e([160]):void 0;case y.uint:return t.value<24?$e([Number(t.value)]):void 0;case y.negint:if(t.value>=-24)return $e([31-Number(t.value)])}}var mb={float64:!1,mapSorter:bb,quickEncodeToken:_f};function gb(){let t=[];return t[y.uint.major]=_e,t[y.negint.major]=Lo,t[y.bytes.major]=hr,t[y.string.major]=Yl,t[y.array.major]=No,t[y.map.major]=Uo,t[y.tag.major]=Po,t[y.float.major]=Fo,t}var Bf=gb(),aa=new dn,Oo=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(`${Ze} object contains circular references`);return new t(r,e)}},lt={null:new E(y.null,null),undefined:new E(y.undefined,void 0),true:new E(y.true,!0),false:new E(y.false,!1),emptyArray:new E(y.array,0),emptyMap:new E(y.map,0)},ft={number(t,e,r,n){return!Number.isInteger(t)||!Number.isSafeInteger(t)?new E(y.float,t):t>=0?new E(y.uint,t):new E(y.negint,t)},bigint(t,e,r,n){return t>=BigInt(0)?new E(y.uint,t):new E(y.negint,t)},Uint8Array(t,e,r,n){return new E(y.bytes,t)},string(t,e,r,n){return new E(y.string,t)},boolean(t,e,r,n){return t?lt.true:lt.false},null(t,e,r,n){return lt.null},undefined(t,e,r,n){return lt.undefined},ArrayBuffer(t,e,r,n){return new E(y.bytes,new Uint8Array(t))},DataView(t,e,r,n){return new E(y.bytes,new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},Array(t,e,r,n){if(!t.length)return r.addBreakTokens===!0?[lt.emptyArray,new E(y.break)]:lt.emptyArray;n=Oo.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=Ro(s,r,n);return r.addBreakTokens?[new E(y.array,t.length),o,new E(y.break)]:[new E(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?[lt.emptyMap,new E(y.break)]:lt.emptyMap;n=Oo.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[Ro(u,r,n),Ro(o?t.get(u):t[u],r,n)];return wb(c,r),r.addBreakTokens?[new E(y.map,s),c,new E(y.break)]:[new E(y.map,s),c]}};ft.Map=ft.Object;ft.Buffer=ft.Uint8Array;for(let t of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))ft[`${t}Array`]=ft.DataView;function Ro(t,e={},r){let n=Al(t),o=e&&e.typeEncoders&&e.typeEncoders[n]||ft[n];if(typeof o=="function"){let s=o(t,n,e,r);if(s!=null)return s}let i=ft[n];if(!i)throw new Error(`${Ze} unsupported type: ${n}`);return i(t,n,e,r)}function wb(t,e){e.mapSorter&&t.sort(e.mapSorter)}function bb(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=Bf[o].compareTokens(r,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Cf(t,e,r,n){if(Array.isArray(e))for(let o of e)Cf(t,o,r,n);else r[e.type.major](t,e,n)}function ca(t,e,r){let n=Ro(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 dn(s);if(i(c,n,r),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return fn(c.chunks[0])}}return aa.reset(),Cf(aa,n,e,r),aa.toBytes(!0)}function ua(t,e){return e=Object.assign({},mb,e),ca(t,Bf,e)}var xb={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},la=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=De[e];if(r===void 0){let n=A[e];if(!n)throw new Error(`${T} 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}},mn=Symbol.for("DONE"),zo=Symbol.for("BREAK");function kb(t,e,r){let n=[];for(let o=0;o<t.value;o++){let i=gn(e,r);if(i===zo){if(t.value===1/0)break;throw new Error(`${T} got unexpected break to lengthed array`)}if(i===mn)throw new Error(`${T} found array but not enough entries (got ${o}, expected ${t.value})`);n[o]=i}return n}function vb(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=gn(e,r);if(c===zo){if(t.value===1/0)break;throw new Error(`${T} got unexpected break to lengthed map`)}if(c===mn)throw new Error(`${T} found map but not enough entries (got ${s} [no key], expected ${t.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${T} non-string keys not supported (got ${typeof c})`);if(r.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${T} found repeat map key "${c}"`);let a=gn(e,r);if(a===mn)throw new Error(`${T} 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 gn(t,e){if(t.done())return mn;let r=t.next();if(r.type===y.break)return zo;if(r.type.terminal)return r.value;if(r.type===y.array)return kb(r,t,e);if(r.type===y.map)return vb(r,t,e);if(r.type===y.tag){if(e.tags&&typeof e.tags[r.value]=="function"){let n=gn(t,e);return e.tags[r.value](n)}throw new Error(`${T} tag not supported (${r.value})`)}throw new Error("unsupported")}function wn(t,e){if(!(t instanceof Uint8Array))throw new Error(`${T} data to decode must be a Uint8Array`);e=Object.assign({},xb,e);let r=e.tokenizer||new la(t,e),n=gn(r,e);if(n===mn)throw new Error(`${T} did not find any content to decode`);if(n===zo)throw new Error(`${T} got unexpected break`);if(!r.done())throw new Error(`${T} too many terminals, data makes no sense`);return n}var Sb=Lf,Tf=128,Ab=127,_b=~Ab,Bb=Math.pow(2,31);function Lf(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Bb;)e[r++]=t&255|Tf,t/=128;for(;t&_b;)e[r++]=t&255|Tf,t>>>=7;return e[r]=t|0,Lf.bytes=r-n+1,e}var Cb=fa,Tb=128,If=127;function fa(t,n){var r=0,n=n||0,o=0,i=n,s,c=t.length;do{if(i>=c)throw fa.bytes=0,new RangeError("Could not decode varint");s=t[i++],r+=o<28?(s&If)<<o:(s&If)*Math.pow(2,o),o+=7}while(s>=Tb);return fa.bytes=i-n,r}var Ib=Math.pow(2,7),Lb=Math.pow(2,14),Db=Math.pow(2,21),Nb=Math.pow(2,28),Ub=Math.pow(2,35),Pb=Math.pow(2,42),Fb=Math.pow(2,49),Mb=Math.pow(2,56),Rb=Math.pow(2,63),Ob=function(t){return t<Ib?1:t<Lb?2:t<Db?3:t<Nb?4:t<Ub?5:t<Pb?6:t<Fb?7:t<Mb?8:t<Rb?9:10},zb={encode:Sb,decode:Cb,encodingLength:Ob},$b=zb,bn=$b;var xn=(t,e=0)=>[bn.decode(t,e),bn.decode.bytes],mr=(t,e,r=0)=>(bn.encode(t,e,r),e),gr=t=>bn.encodingLength(t);var Nt={};X(Nt,{coerce:()=>ie,empty:()=>Df,equals:()=>ha,fromHex:()=>jb,fromString:()=>qb,isBinary:()=>Vb,toHex:()=>Hb,toString:()=>Wb});var Df=new Uint8Array(0),Hb=t=>t.reduce((e,r)=>e+r.toString(16).padStart(2,"0"),""),jb=t=>{let e=t.match(/../g);return e?new Uint8Array(e.map(r=>parseInt(r,16))):Df},ha=(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},ie=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")},Vb=t=>t instanceof ArrayBuffer||ArrayBuffer.isView(t),qb=t=>new TextEncoder().encode(t),Wb=t=>new TextDecoder().decode(t);var Ut=(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)},$o=t=>{let e=ie(t),[r,n]=xn(e),[o,i]=xn(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new wr(r,o,s,e)},Nf=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&ha(t.bytes,r.bytes)}},wr=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};function Kb(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 k=(b-g)*l+1>>>0,v=new Uint8Array(k);g!==b;){for(var C=h[g],N=0,S=k-1;(C!==0||N<w)&&S!==-1;S--,N++)C+=256*v[S]>>>0,v[S]=C%c>>>0,C=C/c>>>0;if(C!==0)throw new Error("Non-zero carry");w=N,g++}for(var U=k-w;U!==k&&v[U]===0;)U++;for(var ue=a.repeat(p);U<k;++U)ue+=t.charAt(v[U]);return ue}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,k=new Uint8Array(b);h[p];){var v=r[h.charCodeAt(p)];if(v===255)return;for(var C=0,N=b-1;(v!==0||C<g)&&N!==-1;N--,C++)v+=c*k[N]>>>0,k[N]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");g=C,p++}if(h[p]!==" "){for(var S=b-g;S!==b&&k[S]===0;)S++;for(var U=new Uint8Array(w+(b-S)),ue=w;S!==b;)U[ue++]=k[S++];return U}}}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 Gb=Kb,Qb=Gb,Uf=Qb;var pa=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")}},ya=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 Pf(this,e)}},ma=class{constructor(e){this.decoders=e}or(e){return Pf(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`)}},Pf=(t,e)=>new ma({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ga=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new pa(e,r,n),this.decoder=new ya(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Ff=({name:t,prefix:e,encode:r,decode:n})=>new ga(t,e,r,n),wa=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Uf(r,e);return Ff({prefix:t,name:e,encode:n,decode:i=>ie(o(i))})},Jb=(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},Xb=(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},se=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Ff({prefix:e,name:t,encode(o){return Xb(o,n,r)},decode(o){return Jb(o,n,r,t)}});var tt=wa({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),OS=wa({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var vn=se({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),HS=se({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),jS=se({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),VS=se({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),qS=se({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),WS=se({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),KS=se({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),GS=se({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),QS=se({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Mf=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Zb(r,ba(t),e||tt.encoder);default:return e0(r,ba(t),e||vn.encoder)}};var Rf=new WeakMap,ba=t=>{let e=Rf.get(t);if(e==null){let r=new Map;return Rf.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!==En)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==t0)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=Ut(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&&Nf(e.multihash,n.multihash)}toString(e){return Mf(this,e)}toJSON(){return{"/":Mf(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||Of(n,o,i.bytes))}else if(r[r0]===!0){let{version:n,multihash:o,code:i}=r,s=$o(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!==En)throw new Error(`Version 0 CID must use dag-pb (code: ${En}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Of(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,En,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=ie(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]=xn(e.subarray(r));return r+=m,d},o=n(),i=En;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]=Yb(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 ba(i).set(n,e),i}},Yb=(t,e)=>{switch(t[0]){case"Q":{let r=e||tt;return[tt.prefix,r.decode(`${tt.prefix}${t}`)]}case tt.prefix:{let r=e||tt;return[tt.prefix,r.decode(t)]}case vn.prefix:{let r=e||vn;return[vn.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)]}}},Zb=(t,e,r)=>{let{prefix:n}=r;if(n!==tt.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},e0=(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},En=112,t0=18,Of=(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},r0=Symbol.for("@ipld/js-cid/CID");var zf=42;function n0(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=j.asCID(t);if(!e)return null;let r=new Uint8Array(e.bytes.byteLength+1);return r.set(e.bytes,1),[new E(y.tag,zf),new E(y.bytes,r)]}function o0(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function i0(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 s0={float64:!0,typeEncoders:{Object:n0,undefined:o0,number:i0}};function a0(t){if(t[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return j.decode(t.subarray(1))}var $f={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};$f.tags[zf]=a0;var c0="dag-cbor",xa=113,Ho=t=>ua(t,s0),br=t=>wn(t,$f);var dt={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=>!dt.Null(t)&&typeof t=="object"&&t.asCID===t,List:t=>Array.isArray(t),Map:t=>!dt.Null(t)&&typeof t=="object"&&t.asCID!==t&&!dt.List(t)&&!dt.Bytes(t)},xr={Int:dt.Int,"CarHeader > version":t=>xr.Int(t),"CarHeader > roots (anon) > valueType (anon)":dt.Link,"CarHeader > roots (anon)":t=>dt.List(t)&&Array.prototype.every.call(t,xr["CarHeader > roots (anon) > valueType (anon)"]),"CarHeader > roots":t=>xr["CarHeader > roots (anon)"](t),CarHeader:t=>{let e=t&&Object.keys(t);return dt.Map(t)&&["version"].every(r=>e.includes(r))&&Object.entries(t).every(([r,n])=>xr["CarHeader > "+r]&&xr["CarHeader > "+r](n))}},ka=xr.CarHeader;var ht=q(jo(),1),Sn={SHA2_256:18,LENGTH:32,DAG_PB:112},Sa=16+8+8+8;function kr(t,e){if(!t.length)throw new Error("Unexpected end of data");let r=ht.default.decode(t);return e.seek(ht.default.decode.bytes),r}function Aa(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 _a(t){ht.default.decode(t);let e=ht.default.decode.bytes,r=ht.default.decode(t.subarray(ht.default.decode.bytes)),n=ht.default.decode.bytes;return e+n+r}async function Vo(t,e){let r=kr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR header (zero length)");let n=await t.exactly(r,!0),o=br(n);if(!ka(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=Aa(await t.exactly(Sa,!0));t.seek(s.dataOffset-t.pos);let c=await Vo(t,1);return Object.assign(c,s)}async function v0(t){let e=await t.exactly(2,!1);if(e[0]===Sn.SHA2_256&&e[1]===Sn.LENGTH){let s=await t.exactly(34,!0),c=cr(s);return H.create(0,Sn.DAG_PB,c)}let r=kr(await t.upTo(8),t);if(r!==1)throw new Error(`Unexpected CID version (${r})`);let n=kr(await t.upTo(8),t),o=await t.exactly(_a(await t.upTo(8)),!0),i=cr(o);return H.create(r,n,i)}async function Xf(t){let e=t.pos,r=kr(await t.upTo(8),t);if(r===0)throw new Error("Invalid CAR section (zero length)");r+=t.pos-e;let n=await v0(t),o=r-Number(t.pos-e);return{cid:n,length:r,blockLength:o}}async function E0(t){let{cid:e,blockLength:r}=await Xf(t);return{bytes:await t.exactly(r,!0),cid:e}}async function S0(t){let e=t.pos,{cid:r,length:n,blockLength:o}=await Xf(t),i={cid:r,length:n,blockLength:o,offset:e,blockOffset:t.pos};return t.seek(i.blockLength),i}function vr(t){let e=(async()=>{let r=await Vo(t);if(r.version===2){let n=t.pos-r.dataOffset;t=A0(t,r.dataSize-n)}return r})();return{header:()=>e,async*blocks(){for(await e;(await t.upTo(8)).length>0;)yield await E0(t)},async*blocksIndex(){for(await e;(await t.upTo(8)).length>0;)yield await S0(t)}}}function Pt(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 Yf(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 Er(t){let e=t[Symbol.asyncIterator]();async function r(){let n=await e.next();return n.done?null:n.value}return Yf(r)}function A0(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 An=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 Zf(Pt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return Zf(Er(e))}};async function Zf(t){let e=vr(t),r=await e.header(),n=[];for await(let o of e.blocks())n.push(o);return new An(r,n)}var C0=B0(_0.read),Sr=class extends An{static async readRaw(e,r){let{cid:n,blockLength:o,blockOffset:i}=r,s=new Uint8Array(o),c;if(typeof e=="number")c=(await C0(e,s,0,o,i)).bytesRead;else if(typeof e=="object"&&typeof e.read=="function")c=(await e.read(s,0,o,i)).bytesRead;else throw new TypeError("Bad fd");if(c!==o)throw new Error(`Failed to read entire block (${c} instead of ${o})`);return{cid:n,bytes:s}}};import I0 from"fs";var TA=I0.readSync;var _n=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 ed(Pt(e))}static async fromIterable(e){if(!e||typeof e[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return ed(Er(e))}};async function ed(t){let e=vr(t),{version:r,roots:n}=await e.header();return new _n(r,n,e.blocksIndex())}var qo=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}},Ba=class t extends qo{[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 td(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await rd(e);return new t(r,n,o)}},Ca=class t extends qo{[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 td(e);return new t(r,n,o)}static async fromIterable(e){let{version:r,roots:n,iterator:o}=await rd(e);return new t(r,n,o)}};async function td(t){if(!(t instanceof Uint8Array))throw new TypeError("fromBytes() requires a Uint8Array");return nd(Pt(t))}async function rd(t){if(!t||typeof t[Symbol.asyncIterator]!="function")throw new TypeError("fromIterable() requires an async iterable");return nd(Er(t))}async function nd(t){let e=vr(t),{version:r,roots:n}=await e.header();return{version:r,roots:n,iterator:e.blocks()}}import id from"fs";import{promisify as sd}from"util";var L0=q(jo(),1);var od=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 XA=sd(id.read),YA=sd(id.write);var In=q(jo(),1);var N0=["string","number","bigint","symbol"],U0=["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 ad(t){if(t===null)return"null";if(t===void 0)return"undefined";if(t===!0||t===!1)return"boolean";let e=typeof t;if(N0.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(t))return"Array";if(P0(t))return"Buffer";let r=F0(t);return r||"Object"}function P0(t){return t&&t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer.call(null,t)}function F0(t){let e=Object.prototype.toString.call(t).slice(8,-1);if(U0.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 B=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 Ar=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",M0=new TextDecoder,R0=new TextEncoder;function Wo(t){return Ar&&globalThis.Buffer.isBuffer(t)}function fd(t){return t instanceof Uint8Array?Wo(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t:Uint8Array.from(t)}var dd=Ar?(t,e,r)=>r-e>64?globalThis.Buffer.from(t.subarray(e,r)).toString("utf8"):ud(t,e,r):(t,e,r)=>r-e>64?M0.decode(t.subarray(e,r)):ud(t,e,r),hd=Ar?t=>t.length>64?globalThis.Buffer.from(t):cd(t):t=>t.length>64?R0.encode(t):cd(t),He=t=>Uint8Array.from(t),_r=Ar?(t,e,r)=>Wo(t)?new Uint8Array(t.subarray(e,r)):t.slice(e,r):(t,e,r)=>t.slice(e,r),pd=Ar?(t,e)=>(t=t.map(r=>r instanceof Uint8Array?r:globalThis.Buffer.from(r)),fd(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},yd=Ar?t=>globalThis.Buffer.allocUnsafe(t):t=>new Uint8Array(t);function md(t,e){if(Wo(t)&&Wo(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 cd(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 ud(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 O0(n)}var ld=4096;function O0(t){let e=t.length;if(e<=ld)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=ld));return r}var z0=256,Ko=class{constructor(e=z0){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=yd(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=_r(n,0,this.cursor)}else r=pd(this.chunks,this.cursor);return e&&this.reset(),r}};var O="CBOR decode error:",Ta="CBOR encode error:",Bn=[];Bn[23]=1;Bn[24]=2;Bn[25]=3;Bn[26]=5;Bn[27]=9;function rt(t,e,r){if(t.length-e<r)throw new Error(`${O} not enough data for type`)}var Z=[24,256,65536,4294967296,BigInt("18446744073709551616")];function ge(t,e,r){rt(t,e,1);let n=t[e];if(r.strict===!0&&n<Z[0])throw new Error(`${O} integer encoded in more bytes than necessary (strict decode)`);return n}function we(t,e,r){rt(t,e,2);let n=t[e]<<8|t[e+1];if(r.strict===!0&&n<Z[1])throw new Error(`${O} integer encoded in more bytes than necessary (strict decode)`);return n}function be(t,e,r){rt(t,e,4);let n=t[e]*16777216+(t[e+1]<<16)+(t[e+2]<<8)+t[e+3];if(r.strict===!0&&n<Z[2])throw new Error(`${O} integer encoded in more bytes than necessary (strict decode)`);return n}function xe(t,e,r){rt(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<Z[3])throw new Error(`${O} 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(`${O} integers outside of the safe integer range are not supported`)}function gd(t,e,r,n){return new B(x.uint,ge(t,e+1,n),2)}function wd(t,e,r,n){return new B(x.uint,we(t,e+1,n),3)}function bd(t,e,r,n){return new B(x.uint,be(t,e+1,n),5)}function xd(t,e,r,n){return new B(x.uint,xe(t,e+1,n),9)}function Ce(t,e){return re(t,0,e.value)}function re(t,e,r){if(r<Z[0]){let n=Number(r);t.push([e|n])}else if(r<Z[1]){let n=Number(r);t.push([e|24,n])}else if(r<Z[2]){let n=Number(r);t.push([e|25,n>>>8,n&255])}else if(r<Z[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<Z[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(`${O} encountered BigInt larger than allowable range`)}}Ce.encodedSize=function(e){return re.encodedSize(e.value)};re.encodedSize=function(e){return e<Z[0]?1:e<Z[1]?2:e<Z[2]?3:e<Z[3]?5:9};Ce.compareTokens=function(e,r){return e.value<r.value?-1:e.value>r.value?1:0};function kd(t,e,r,n){return new B(x.negint,-1-ge(t,e+1,n),2)}function vd(t,e,r,n){return new B(x.negint,-1-we(t,e+1,n),3)}function Ed(t,e,r,n){return new B(x.negint,-1-be(t,e+1,n),5)}var Ia=BigInt(-1),Sd=BigInt(1);function Ad(t,e,r,n){let o=xe(t,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new B(x.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${O} integers outside of the safe integer range are not supported`);return new B(x.negint,Ia-BigInt(o),9)}function Go(t,e){let r=e.value,n=typeof r=="bigint"?r*Ia-Sd:r*-1-1;re(t,e.type.majorEncoded,n)}Go.encodedSize=function(e){let r=e.value,n=typeof r=="bigint"?r*Ia-Sd:r*-1-1;return n<Z[0]?1:n<Z[1]?2:n<Z[2]?3:n<Z[3]?5:9};Go.compareTokens=function(e,r){return e.value<r.value?1:e.value>r.value?-1:0};function Cn(t,e,r,n){rt(t,e,r+n);let o=_r(t,e+r,e+r+n);return new B(x.bytes,o,r+n)}function _d(t,e,r,n){return Cn(t,e,1,r)}function Bd(t,e,r,n){return Cn(t,e,2,ge(t,e+1,n))}function Cd(t,e,r,n){return Cn(t,e,3,we(t,e+1,n))}function Td(t,e,r,n){return Cn(t,e,5,be(t,e+1,n))}function Id(t,e,r,n){let o=xe(t,e+1,n);if(typeof o=="bigint")throw new Error(`${O} 64-bit integer bytes lengths not supported`);return Cn(t,e,9,o)}function Qo(t){return t.encodedBytes===void 0&&(t.encodedBytes=t.type===x.string?hd(t.value):t.value),t.encodedBytes}function Br(t,e){let r=Qo(e);re(t,e.type.majorEncoded,r.length),t.push(r)}Br.encodedSize=function(e){let r=Qo(e);return re.encodedSize(r.length)+r.length};Br.compareTokens=function(e,r){return H0(Qo(e),Qo(r))};function H0(t,e){return t.length<e.length?-1:t.length>e.length?1:md(t,e)}function Tn(t,e,r,n,o){let i=r+n;rt(t,e,i);let s=new B(x.string,dd(t,e+r,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=_r(t,e+r,e+i)),s}function Ld(t,e,r,n){return Tn(t,e,1,r,n)}function Dd(t,e,r,n){return Tn(t,e,2,ge(t,e+1,n),n)}function Nd(t,e,r,n){return Tn(t,e,3,we(t,e+1,n),n)}function Ud(t,e,r,n){return Tn(t,e,5,be(t,e+1,n),n)}function Pd(t,e,r,n){let o=xe(t,e+1,n);if(typeof o=="bigint")throw new Error(`${O} 64-bit integer string lengths not supported`);return Tn(t,e,9,o,n)}var Fd=Br;function Cr(t,e,r,n){return new B(x.array,n,r)}function Md(t,e,r,n){return Cr(t,e,1,r)}function Rd(t,e,r,n){return Cr(t,e,2,ge(t,e+1,n))}function Od(t,e,r,n){return Cr(t,e,3,we(t,e+1,n))}function zd(t,e,r,n){return Cr(t,e,5,be(t,e+1,n))}function $d(t,e,r,n){let o=xe(t,e+1,n);if(typeof o=="bigint")throw new Error(`${O} 64-bit integer array lengths not supported`);return Cr(t,e,9,o)}function Hd(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${O} indefinite length items not allowed`);return Cr(t,e,1,1/0)}function Jo(t,e){re(t,x.array.majorEncoded,e.value)}Jo.compareTokens=Ce.compareTokens;Jo.encodedSize=function(e){return re.encodedSize(e.value)};function Tr(t,e,r,n){return new B(x.map,n,r)}function jd(t,e,r,n){return Tr(t,e,1,r)}function Vd(t,e,r,n){return Tr(t,e,2,ge(t,e+1,n))}function qd(t,e,r,n){return Tr(t,e,3,we(t,e+1,n))}function Wd(t,e,r,n){return Tr(t,e,5,be(t,e+1,n))}function Kd(t,e,r,n){let o=xe(t,e+1,n);if(typeof o=="bigint")throw new Error(`${O} 64-bit integer map lengths not supported`);return Tr(t,e,9,o)}function Gd(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${O} indefinite length items not allowed`);return Tr(t,e,1,1/0)}function Xo(t,e){re(t,x.map.majorEncoded,e.value)}Xo.compareTokens=Ce.compareTokens;Xo.encodedSize=function(e){return re.encodedSize(e.value)};function Qd(t,e,r,n){return new B(x.tag,r,1)}function Jd(t,e,r,n){return new B(x.tag,ge(t,e+1,n),2)}function Xd(t,e,r,n){return new B(x.tag,we(t,e+1,n),3)}function Yd(t,e,r,n){return new B(x.tag,be(t,e+1,n),5)}function Zd(t,e,r,n){return new B(x.tag,xe(t,e+1,n),9)}function Yo(t,e){re(t,x.tag.majorEncoded,e.value)}Yo.compareTokens=Ce.compareTokens;Yo.encodedSize=function(e){return re.encodedSize(e.value)};var G0=20,Q0=21,J0=22,X0=23;function eh(t,e,r,n){if(n.allowUndefined===!1)throw new Error(`${O} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new B(x.null,null,1):new B(x.undefined,void 0,1)}function th(t,e,r,n){if(n.allowIndefinite===!1)throw new Error(`${O} indefinite length items not allowed`);return new B(x.break,void 0,1)}function La(t,e,r){if(r){if(r.allowNaN===!1&&Number.isNaN(t))throw new Error(`${O} NaN values are not supported`);if(r.allowInfinity===!1&&(t===1/0||t===-1/0))throw new Error(`${O} Infinity values are not supported`)}return new B(x.float,t,e)}function rh(t,e,r,n){return La(Da(t,e+1),3,n)}function nh(t,e,r,n){return La(Na(t,e+1),5,n)}function oh(t,e,r,n){return La(ch(t,e+1),9,n)}function Zo(t,e,r){let n=e.value;if(n===!1)t.push([x.float.majorEncoded|G0]);else if(n===!0)t.push([x.float.majorEncoded|Q0]);else if(n===null)t.push([x.float.majorEncoded|J0]);else if(n===void 0)t.push([x.float.majorEncoded|X0]);else{let o,i=!1;(!r||r.float64!==!0)&&(sh(n),o=Da(Ne,1),n===o||Number.isNaN(n)?(Ne[0]=249,t.push(Ne.slice(0,3)),i=!0):(ah(n),o=Na(Ne,1),n===o&&(Ne[0]=250,t.push(Ne.slice(0,5)),i=!0))),i||(Y0(n),o=ch(Ne,1),Ne[0]=251,t.push(Ne.slice(0,9)))}}Zo.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){sh(n);let o=Da(Ne,1);if(n===o||Number.isNaN(n))return 3;if(ah(n),o=Na(Ne,1),n===o)return 5}return 9};var ih=new ArrayBuffer(9),Te=new DataView(ih,1),Ne=new Uint8Array(ih,0);function sh(t){if(t===1/0)Te.setUint16(0,31744,!1);else if(t===-1/0)Te.setUint16(0,64512,!1);else if(Number.isNaN(t))Te.setUint16(0,32256,!1);else{Te.setFloat32(0,t);let e=Te.getUint32(0),r=(e&2139095040)>>23,n=e&8388607;if(r===255)Te.setUint16(0,31744,!1);else if(r===0)Te.setUint16(0,(t&2147483648)>>16|n>>13,!1);else{let o=r-127;o<-24?Te.setUint16(0,0):o<-14?Te.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):Te.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Da(t,e){if(t.length-e<2)throw new Error(`${O} 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 ah(t){Te.setFloat32(0,t,!1)}function Na(t,e){if(t.length-e<4)throw new Error(`${O} not enough data for float32`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,4).getFloat32(0,!1)}function Y0(t){Te.setFloat64(0,t,!1)}function ch(t,e){if(t.length-e<8)throw new Error(`${O} not enough data for float64`);let r=(t.byteOffset||0)+e;return new DataView(t.buffer,r,8).getFloat64(0,!1)}Zo.compareTokens=Ce.compareTokens;function z(t,e,r){throw new Error(`${O} encountered invalid minor (${r}) for major ${t[e]>>>5}`)}function ei(t){return()=>{throw new Error(`${O} ${t}`)}}var _=[];for(let t=0;t<=23;t++)_[t]=z;_[24]=gd;_[25]=wd;_[26]=bd;_[27]=xd;_[28]=z;_[29]=z;_[30]=z;_[31]=z;for(let t=32;t<=55;t++)_[t]=z;_[56]=kd;_[57]=vd;_[58]=Ed;_[59]=Ad;_[60]=z;_[61]=z;_[62]=z;_[63]=z;for(let t=64;t<=87;t++)_[t]=_d;_[88]=Bd;_[89]=Cd;_[90]=Td;_[91]=Id;_[92]=z;_[93]=z;_[94]=z;_[95]=ei("indefinite length bytes/strings are not supported");for(let t=96;t<=119;t++)_[t]=Ld;_[120]=Dd;_[121]=Nd;_[122]=Ud;_[123]=Pd;_[124]=z;_[125]=z;_[126]=z;_[127]=ei("indefinite length bytes/strings are not supported");for(let t=128;t<=151;t++)_[t]=Md;_[152]=Rd;_[153]=Od;_[154]=zd;_[155]=$d;_[156]=z;_[157]=z;_[158]=z;_[159]=Hd;for(let t=160;t<=183;t++)_[t]=jd;_[184]=Vd;_[185]=qd;_[186]=Wd;_[187]=Kd;_[188]=z;_[189]=z;_[190]=z;_[191]=Gd;for(let t=192;t<=215;t++)_[t]=Qd;_[216]=Jd;_[217]=Xd;_[218]=Yd;_[219]=Zd;_[220]=z;_[221]=z;_[222]=z;_[223]=z;for(let t=224;t<=243;t++)_[t]=ei("simple values are not supported");_[244]=z;_[245]=z;_[246]=z;_[247]=eh;_[248]=ei("simple values are not supported");_[249]=rh;_[250]=nh;_[251]=oh;_[252]=z;_[253]=z;_[254]=z;_[255]=th;var je=[];for(let t=0;t<24;t++)je[t]=new B(x.uint,t,1);for(let t=-1;t>=-24;t--)je[31-t]=new B(x.negint,t,1);je[64]=new B(x.bytes,new Uint8Array(0),1);je[96]=new B(x.string,"",1);je[128]=new B(x.array,0,1);je[160]=new B(x.map,0,1);je[244]=new B(x.false,!1,1);je[245]=new B(x.true,!0,1);je[246]=new B(x.null,null,1);function Ua(t){switch(t.type){case x.false:return He([244]);case x.true:return He([245]);case x.null:return He([246]);case x.bytes:return t.value.length?void 0:He([64]);case x.string:return t.value===""?He([96]):void 0;case x.array:return t.value===0?He([128]):void 0;case x.map:return t.value===0?He([160]):void 0;case x.uint:return t.value<24?He([Number(t.value)]):void 0;case x.negint:if(t.value>=-24)return He([31-Number(t.value)])}}function Pa(){let t=[];return t[x.uint.major]=Ce,t[x.negint.major]=Go,t[x.bytes.major]=Br,t[x.string.major]=Fd,t[x.array.major]=Jo,t[x.map.major]=Xo,t[x.tag.major]=Yo,t[x.float.major]=Zo,t}var K_=Pa(),G_=new Ko,ri=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(`${Ta} object contains circular references`);return new t(r,e)}},pt={null:new B(x.null,null),undefined:new B(x.undefined,void 0),true:new B(x.true,!0),false:new B(x.false,!1),emptyArray:new B(x.array,0),emptyMap:new B(x.map,0)},yt={number(t,e,r,n){return!Number.isInteger(t)||!Number.isSafeInteger(t)?new B(x.float,t):t>=0?new B(x.uint,t):new B(x.negint,t)},bigint(t,e,r,n){return t>=BigInt(0)?new B(x.uint,t):new B(x.negint,t)},Uint8Array(t,e,r,n){return new B(x.bytes,t)},string(t,e,r,n){return new B(x.string,t)},boolean(t,e,r,n){return t?pt.true:pt.false},null(t,e,r,n){return pt.null},undefined(t,e,r,n){return pt.undefined},ArrayBuffer(t,e,r,n){return new B(x.bytes,new Uint8Array(t))},DataView(t,e,r,n){return new B(x.bytes,new Uint8Array(t.buffer,t.byteOffset,t.byteLength))},Array(t,e,r,n){if(!t.length)return r.addBreakTokens===!0?[pt.emptyArray,new B(x.break)]:pt.emptyArray;n=ri.createCheck(n,t);let o=[],i=0;for(let s of t)o[i++]=ti(s,r,n);return r.addBreakTokens?[new B(x.array,t.length),o,new B(x.break)]:[new B(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?[pt.emptyMap,new B(x.break)]:pt.emptyMap;n=ri.createCheck(n,t);let c=[],a=0;for(let u of i)c[a++]=[ti(u,r,n),ti(o?t.get(u):t[u],r,n)];return e1(c,r),r.addBreakTokens?[new B(x.map,s),c,new B(x.break)]:[new B(x.map,s),c]}};yt.Map=yt.Object;yt.Buffer=yt.Uint8Array;for(let t of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))yt[`${t}Array`]=yt.DataView;function ti(t,e={},r){let n=ad(t),o=e&&e.typeEncoders&&e.typeEncoders[n]||yt[n];if(typeof o=="function"){let s=o(t,n,e,r);if(s!=null)return s}let i=yt[n];if(!i)throw new Error(`${Ta} unsupported type: ${n}`);return i(t,n,e,r)}function e1(t,e){e.mapSorter&&t.sort(e.mapSorter)}var Z_=Symbol.for("DONE"),e8=Symbol.for("BREAK");var t1=Pa(),r1={float64:!1,quickEncodeToken:Ua};function Fa(t,e=t1,r=r1){if(Array.isArray(t)){let n=0;for(let o of t)n+=Fa(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 Ra=class{constructor(e,r){this.bytes=e,this.byteOffset=r,this.roots=[],this.headerSize=r}addRoot(e,r){return n1(this,e,r),this}write(e){return o1(this,e),this}close(e){return i1(this,e)}},n1=(t,e,r={})=>{let{resize:n=!1}=r,{bytes:o,headerSize:i,byteOffset:s,roots:c}=t;t.roots.push(e);let a=ni(t);if(a>i)if(a-i+s<o.byteLength)if(n)fh(t,a);else throw c.pop(),new RangeError(`Header of size ${i} has no capacity for new root ${e}.
|
|
6
6
|
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}`)},lh=({cid:t,bytes:e})=>{let r=t.bytes.byteLength+e.byteLength;return In.default.encodingLength(r)+r},o1=(t,{cid:e,bytes:r})=>{let n=e.bytes.byteLength+r.byteLength,o=In.default.encode(n);if(t.byteOffset+o.length+n>t.bytes.byteLength)throw new RangeError("Buffer has no capacity for this block");Ma(t,o),Ma(t,e.bytes),Ma(t,r)},i1=(t,e={})=>{let{resize:r=!1}=e,{roots:n,bytes:o,byteOffset:i,headerSize:s}=t,c=Ho({version:1,roots:n}),a=In.default.encode(c.length),u=a.length+c.byteLength;if(s-u===0)return uh(t,a,c),o.subarray(0,i);if(r)return fh(t,u),uh(t,a,c),o.subarray(0,t.byteOffset);throw new RangeError(`Header size was overestimated.
|
|
7
|
-
You can use close({ resize: true }) to resize header`)},fh=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Ma=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},uh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},s1=[new B(x.map,2),new B(x.string,"version"),new B(x.uint,1),new B(x.string,"roots")],a1=new B(x.tag,42),c1=t=>{let e=[...s1];e.push(new B(x.array,t.length));for(let n of t)e.push(a1),e.push(new B(x.bytes,{length:n+1}));let r=Fa(e);return In.default.encodingLength(r)+r},ni=({roots:t})=>c1(t.map(e=>e.bytes.byteLength));var dh=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=ni({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Ra(s,i);for(let a of r)c.addRoot(a);return c};var Mt=({name:t,code:e,encode:r})=>new Oa(t,e,r),Oa=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?Ut(this.code,r):r.then(n=>Ut(this.code,n))}else throw Error("Unknown type, must be binary type")}};function oi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*l1(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*za(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*za(e,t)}}function*za(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*l1(i,o)}}function*f1(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*$a(n,o))}else yield*$a(e,t)}function*$a(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*f1(o,n))}}function d1(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 Ln=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:oi(),bytes:oi(),value:oi(),asBlock:oi()})}links(){return za(this.value,[])}tree(){return $a(this.value,[])}get(e="/"){return d1(this.value,e.split("/").filter(Boolean))}};async function Ve({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 Ln({value:t,bytes:n,cid:i})}async function mt({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 Ln({value:n,bytes:t,cid:i})}function h1({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 Ln({cid:e,bytes:t,value:o})}async function ii({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(!Nt.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return h1({bytes:t,cid:e,value:o,codec:n})}import ph from"crypto";var le=Mt({name:"sha2-256",code:18,encode:t=>ie(ph.createHash("sha256").update(t).digest())}),L8=Mt({name:"sha2-512",code:19,encode:t=>ie(ph.createHash("sha512").update(t).digest())});var gt={};X(gt,{code:()=>Dn,decode:()=>m1,encode:()=>y1,name:()=>p1});var p1="raw",Dn=85,y1=t=>ie(t),m1=t=>ie(t);async function si(t,e){let r=0,n=ni({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=lh({cid:s,bytes:c});let o=new Uint8Array(r),i=dh(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 Ve({value:i.bytes,hasher:le,codec:gt})}async function yh(t){return await Ve({value:{fp:t},hasher:le,codec:V})}async function mh(t){let e=await t.getRoots(),r=await t.get(e[0]);if(!r)throw new Error("missing header block");let{value:n}=await mt({bytes:r.bytes,hasher:le,codec:V});if(n&&n.fp===void 0)throw new Error("missing fp");let{fp:o}=n;return o}var Rt={};X(Rt,{code:()=>k1,crypto:()=>v1,decode:()=>x1,decrypt:()=>ui,encode:()=>b1,encrypt:()=>li,name:()=>E1});function ai(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var Nn=ai();function ci(t){let e=new Uint8Array(t);return t>0&&Nn.getRandomValues(e),e}var g1=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},w1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},gh=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},b1=({iv:t,bytes:e})=>gh([t,e]),x1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},k1=3145728+1337;async function wh(t){return await Nn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var ui=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await wh(t),i=await Nn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=w1(r.subarray(0,4)),c=j.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},li=async({key:t,cid:e,bytes:r})=>{let n=g1(e.bytes.byteLength),o=ci(12),i=gh([n,e.bytes,r]);try{let s=await wh(t),c=await Nn.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}}},v1=t=>({encrypt:e=>li({key:t,...e}),decrypt:e=>ui({key:t,...e})}),E1="jchris@encrypted-block:aes-gcm";var Un=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Pn=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 zt=(t,e)=>t===e?0:t>e?1:-1,bh=(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},Ot=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 $t=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}},wt=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)}}},xh=t=>typeof t=="string"?t:JSON.stringify(t);function S1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function A1(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 _1(t,e,{chunker:r,compare:n}){return await bt.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 B1(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 C1(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 A1(c,r,t.compare);if(a.length){let u=await _1(a,i,t),l=await B1(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 bt.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 bt.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 bt=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 Ot){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 Ot){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 Ot){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 Ot){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=xh(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=xh(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:k}=await p;c=k,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:C},{key:N})=>s.compare(C,N)),NodeClass:c,distance:i}),b=await m(g,o,s),k=await t.from({...n,entries:[...w.entryList.entries,...b,...l].sort(({key:C},{key:N})=>s.compare(C,N)),NodeClass:a,distance:i});return await m(k,o,s)}}else{let g=await d(h,w.entryList.entries),b=await t.from({...n,entries:g.sort(({key:v},{key:C})=>s.compare(v,C)),NodeClass:c,distance:i}),k=await m(b,o,s);return await d(k,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=S1(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 C1(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 wt({entries:c,closed:!0})),c=[]);return c.length&&s.push(new wt({entries:c,closed:!1})),s.map(a=>new n({entryList:a,chunker:r,distance:o,...i}))}},fi=class extends bt{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 Ve(r),this.block}},Ir=class extends fi{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}},Lr=class extends fi{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},di=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 bt.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 bt.from({entries:m,chunker:s,NodeClass:n,distance:l,opts:a}),yield*u,l++}};var Ha=({bytes:t},{bytes:e})=>bh(t,e),hi=class extends $t{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return Un(e)}},pi=class extends $t{async identity(){let{multihash:{bytes:e}}=await this.address;return Un(e)}},yi=class extends Ir{},mi=class extends Lr{},kh=(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:Ha},l,d;if(a.leaf)l=a.leaf.map(h=>new hi(h)),d=mi;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new pi({key:w,address:g})),d=yi}else throw new Error("Unknown block data, does not match schema");let m=new wt({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},vh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(Ha));let c=kh(t,e,r,o,i);return di({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:Ha,cache:e,LeafClass:mi,LeafEntryClass:hi,BranchClass:yi,BranchEntryClass:pi})},Eh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>kh(e,r,n,o,i,s)(t);var Sh=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 li({...h,key:n}),w=await Ve({...p,codec:Rt,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=>j.parse(f)),l;for await(let f of vh({list:u,get:t,cache:o,chunker:i,hasher:r,codec:V})){let h=await f.block;yield h,l=h}if(!l)throw new Error("missing last block");let d=[a,l.cid];yield await Ve({value:d,codec:V,hasher:r})},Ah=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 mt({...g,codec:V,hasher:i}):void 0),c=async w=>e(w).then(async g=>g?await mt({...g,codec:Rt,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 Eh({cid:l,get:s,cache:n,chunker:o,codec:Rt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await mt({...w,codec:Rt,hasher:i}));let{bytes:g,cid:b}=await ui({...w,key:r}).catch(v=>{throw v});return await ii({cid:b,bytes:g,hasher:i,codec:Rt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var Dr={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var _h=Pn(30);function Bh(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 Ch(t,e,r){let n=Bh(t),o=n.buffer.slice(0,n.byteLength),i=new Ae,s=[];for(let{cid:u}of r.entries())s.push(u);let c=null;for await(let u of Sh({cids:s,get:r.get.bind(r),key:o,hasher:le,chunker:_h,cache:Dr,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await si([c.cid],i)}async function Th(t,e){let n=(await e.getRoots())[0];return await T1(n,e.get.bind(e),t)}async function T1(t,e,r){let n=Bh(r),o=n.buffer.slice(0,n.byteLength),i=new Ae,s=null;for await(let c of Ah({root:t,get:e,key:o,hasher:le,chunker:_h,cache:Dr}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var ja=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(`${Ze} unsupported type: Uint8Array`)}[y.string.major](e,r){this.prefix(e);let n=Io(JSON.stringify(r.value));e.push(n.length>32?fn(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(`${Ze} 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 I1(t,e){if(Array.isArray(t[0])||Array.isArray(e[0]))throw new Error(`${Ze} 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(`${Ze} non-string map keys are not supported`);if(r<n)return-1;if(r>n)return 1;throw new Error(`${Ze} unexpected duplicate map keys, this is not supported`)}var L1={addBreakTokens:!0,mapSorter:I1};function Va(t,e){return e=Object.assign({},L1,e),ca(t,new ja,e)}var Nr=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(`${T} 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(`${T} 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 E(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(`${T} unexpected token at position ${this.pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${T} 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 E(y.float,s,this.pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new E(s>=0?y.uint:y.negint,s,this.pos-e):new E(s>=0?y.uint:y.negint,BigInt(i),this.pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${T} 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 E(y.string,a,s)}}let e=this.pos,r=[],n=()=>{if(this.pos+4>=this.data.length)throw new Error(`${T} 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(`${T} 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(`${T} 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(`${T} 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(`${T} unexpected string escape character at position ${this.pos}`)}break;case 34:return this.pos++,new E(y.string,ra(r),this.pos-e);default:if(i<32)throw new Error(`${T} invalid control character at position ${this.pos}`);i<128?(r.push(i),this.pos++):o()}}throw new Error(`${T} unexpected end of string at position ${this.pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this.pos++,new E(y.map,1/0,1);case 91:return this.modeStack.push("array-start"),this.pos++,new E(y.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new E(y.null,null,4);case 102:return this.expect([102,97,108,115,101]),new E(y.false,!1,5);case 116:return this.expect([116,114,117,101]),new E(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(`${T} 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 E(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${T} 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 E(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 E(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${T} 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 E(y.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${T} 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(`${T} unexpected parse state at position ${this.pos}; this shouldn't happen`)}}};function qa(t,e){return e=Object.assign({tokenizer:new Nr(t,e)},e),wn(t,e)}var Wa=se({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),b6=se({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x6=se({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),k6=se({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function N1(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=j.asCID(t);if(!e)return null;let r=e.toString();return[new E(y.map,1/0,1),new E(y.string,"/",1),new E(y.string,r,r.length),new E(y.break,void 0,1)]}function gi(t){let e=Wa.encode(t).slice(1);return[new E(y.map,1/0,1),new E(y.string,"/",1),new E(y.map,1/0,1),new E(y.string,"bytes",5),new E(y.string,e,e.length),new E(y.break,void 0,1),new E(y.break,void 0,1)]}function Ue(t){return gi(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function U1(t){return gi(new Uint8Array(t))}function P1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function F1(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 M1={typeEncoders:{Object:N1,Buffer:gi,Uint8Array:gi,Int8Array:Ue,Uint16Array:Ue,Int16Array:Ue,Uint32Array:Ue,Int32Array:Ue,Float32Array:Ue,Float64Array:Ue,Uint8ClampedArray:Ue,BigInt64Array:Ue,BigUint64Array:Ue,DataView:Ue,ArrayBuffer:U1,undefined:P1,number:F1}},Ka=class extends Nr{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 E(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=Wa.decode(`m${i.value}`);return new E(y.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(r)}return e}},Ga={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Ga.tags[42]=j.parse;var R1=t=>Va(t,M1),O1=t=>{let e=Object.assign(Ga,{tokenizer:new Ka(t,Ga)});return qa(t,e)},wi=t=>z1.decode(R1(t));var z1=new TextDecoder,bi=t=>O1($1.encode(t)),$1=new TextEncoder;var H1=(t,e)=>e.some(r=>t instanceof r),Ih,Lh;function j1(){return Ih||(Ih=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function V1(){return Lh||(Lh=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Dh=new WeakMap,Ja=new WeakMap,Nh=new WeakMap,Qa=new WeakMap,Ya=new WeakMap;function q1(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&&Dh.set(r,t)}).catch(()=>{}),Ya.set(e,t),e}function W1(t){if(Ja.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)});Ja.set(t,e)}var Xa={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return Ja.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Nh.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 Uh(t){Xa=t(Xa)}function K1(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(xi(this),e,...r);return Nh.set(n,e.sort?e.sort():[e]),qe(n)}:V1().includes(t)?function(...e){return t.apply(xi(this),e),qe(Dh.get(this))}:function(...e){return qe(t.apply(xi(this),e))}}function G1(t){return typeof t=="function"?K1(t):(t instanceof IDBTransaction&&W1(t),H1(t,j1())?new Proxy(t,Xa):t)}function qe(t){if(t instanceof IDBRequest)return q1(t);if(Qa.has(t))return Qa.get(t);let e=G1(t);return e!==t&&(Qa.set(t,e),Ya.set(e,t)),e}var xi=t=>Ya.get(t);function Fh(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 Q1=["get","getKey","getAll","getAllKeys","count"],J1=["put","add","delete","clear"],Za=new Map;function Ph(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Za.get(e))return Za.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=J1.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Q1.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 Za.set(e,i),i}Uh(t=>({...t,get:(e,r,n)=>Ph(e,r)||t.get(e,r,n),has:(e,r)=>!!Ph(e,r)||t.has(e,r)}));var ec="0.13.3-dev";var Mh=ec.match(/^([^.]*\.[^.]*)/);if(!Mh)throw new Error("invalid version: "+ec);var Ei=Mh[0],tc=class{STORAGE_VERSION=Ei;name;constructor(e){this.name=e}},ki=class extends tc{tag="header-base";makeHeader({car:e,key:r}){return wi({car:e,key:r})}parseHeader(e){return bi(e)}},vi=class{tag="car-base";STORAGE_VERSION=Ei;loader;constructor(e){this.loader=e}};var Si=class{tag="rwal-base";STORAGE_VERSION=Ei;loader;ready;walState={operations:[],noLoaderOps:[],fileOperations:[]};processing=void 0;constructor(e){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=ln(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 Ur=class extends vi{tag="car-browser-idb";idb=null;async _withDB(e){if(!this.idb){let r=`fp.${this.STORAGE_VERSION}.${this.loader.keyId}.${this.loader.name}`;this.idb=await Fh(r,1,{upgrade(n){n.createObjectStore("cars")}})}return await e(this.idb)}async load(e){return await this._withDB(async r=>{let o=await r.transaction(["cars"],"readonly").objectStore("cars").get(e.toString());if(!o)throw new Error(`missing idb block ${e.toString()}`);return{cid:e,bytes:o}})}async save(e){return await this._withDB(async r=>{let n=r.transaction(["cars"],"readwrite");return await n.objectStore("cars").put(e.bytes,e.cid.toString()),await n.done})}async remove(e){return await this._withDB(async r=>{let n=r.transaction(["cars"],"readwrite");return await n.objectStore("cars").delete(e.toString()),await n.done})}},Ai=class extends Si{tag="wal-browser-ls";headerKey(e){return`fp.${this.STORAGE_VERSION}.wal.${this.loader.name}.${e}`}async load(e="main"){try{let r=localStorage.getItem(this.headerKey(e));return r?bi(r):null}catch{return null}}async save(e,r="main"){try{let n=wi(e);localStorage.setItem(this.headerKey(r),n)}catch{}}},_i=class extends ki{tag="header-browser-ls";headerKey(e){return`fp.${this.STORAGE_VERSION}.meta.${this.name}.${e}`}async load(e="main"){try{let r=localStorage.getItem(this.headerKey(e));return r?[this.parseHeader(r)]:null}catch{return null}}async save(e,r="main"){try{let n=this.headerKey(r),o=this.makeHeader(e);return localStorage.setItem(n,o),null}catch{return null}}};function Oh(t,e){return t.some(r=>r.equals(e))}function Rh(t,e=[]){let r=new Map;for(let n of t)Oh(e,n)||r.set(n.toString(),n);return[...r.values()]}function X1(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Fn=class{name;opts={};remoteMetaLoading;remoteMetaStore;remoteCarStore;remoteWAL;metaStore;carStore;carLog=[];carReaders=new Map;ready;key;keyId;getBlockCache=new Map;static defaultHeader;constructor(e,r){this.name=e,this.opts=r||this.opts,this.metaStore=new _i(this.name),this.carStore=new Ur(this),this.remoteWAL=new Ai(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=j.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),Oh(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Rh([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 mh(r)}async _getKey(){return this.key?this.key:(this.opts.public||(ai()?await this.setKey(X1(ci(32))):console.warn("missing crypto module, using public mode")),this.key)}committing;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 yh(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 Ch(s,i[0],e):await si(i,e);if(rc(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=[...Rh([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 Sr.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 Th(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=ai();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=ln(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};var Pr=q(qh(),1);var Bi=class extends $t{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return Un(r)}},Ht=class extends Bi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},jt=class extends Bi{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]}},Wh=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},Kh=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},Vt=class extends Lr{get(e){return Wh(this,e)}getMany(e){return Kh(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...Gh,...r},n)}},qt=class extends Ir{get(e){return Wh(this,e)}getMany(e){return Kh(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...Gh,...r},n)}},Gh={LeafClass:Vt,LeafEntryClass:Ht,BranchClass:qt,BranchEntryClass:jt},Qh=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||Vt,a=s.LeafEntryClass||Ht,u=s.BranchClass||qt,l=s.BranchEntryClass||jt,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=ix({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},Jh=({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=Qh(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||Vt,LeafEntryClass:a.LeafEntryClass||Ht,BranchClass:a.BranchClass||qt,BranchEntryClass:a.BranchEntryClass||jt};return di(l)},Xh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>Qh(e,r,n,o,i,s,c)(t);function ix({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,k])=>new s({key:b,value:k},l)),p=c;else if(m.branch){let[b,k]=m.branch;f.distance=b,h=k.map(([v,C])=>new a({key:v,address:C},l)),p=u}else throw new Error("Unknown block data, does not match schema");let w=new wt({entries:h,closed:m.closed}),g=new p({entryList:w,...f});return e.set(g),g}}var sx=(t,e)=>{let[r,n]=t,[o,i]=e,s=zt(r,o);return s!==0?s:ax(n,i)},ax=(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)?zt(t,e):1},Yh=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}},Zh=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}},oc=class extends Vt{get(e){return Yh(this,e)}range(e,r){return Zh(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...sc,...r},n)}},ic=class extends qt{get(e){return Yh(this,e)}range(e,r){return Zh(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...sc,...r},n)}},cx=oc,ux=ic,sc={LeafClass:cx,BranchClass:ux,LeafEntryClass:Ht,BranchEntryClass:jt},ep={...sc,compare:sx},tp=t=>(t={...ep,...t},Jh(t)),ac=t=>(t={...ep,...t},Xh(t));var Wt=class{cid=null;root=null},fx=(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:zt(t,e)},dx=(t,e)=>{let[r,n]=t,[o,i]=e,s=zt(r,o);return s!==0?s:fx(n,i)},uc={cache:Dr,chunker:Pn(30),codec:V,hasher:le,compare:dx},lc={cache:Dr,chunker:Pn(30),codec:V,hasher:le,compare:zt};function rp(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:[Pr.default.encode(a),n],value:u||null})});!s&&c&&r.push({key:[Pr.default.encode(c),n],value:null})}),r}function cc(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 ii({cid:n,bytes:o,hasher:le,codec:V})}}async function fc(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await ac({cid:e.cid,get:cc(t),...n});else{let s=null,c=null;for await(let a of await tp({get:cc(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 dc(t,e,r){return await ac({cid:e,get:cc(t),...r})}async function Kt(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=Pr.default.decode(n.key),n.row&&!n.value&&(n.value=n.row,delete n.row),n))}}function hc(t){return t.map(e=>Pr.default.encode(e))}function pc(t){return Pr.default.encode(t)}function Mn({_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 yc(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var yc=class{blocks;crdt;name=null;mapFn=null;mapFnString="";byKey=new Wt;byId=new Wt;indexHead=void 0;includeDocsDefault=!1;initError=null;ready;constructor(e,r,n,o){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=hx(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 Kt(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(...hc(e.range));return await Kt(this.crdt,{result:o,...i},e)}if(e.key){let o=pc(e.key);return await Kt(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=pc(i);return(await Kt(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=hc([o,i]);return await Kt(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await Kt(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new Wt,this.byKey=new Wt,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await dc(this.blocks,this.byId.cid,lc),this.byKey.root=await dc(this.blocks,this.byKey.cid,uc))}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=rp(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 fc(a,this.byId,o.concat(s),lc),this.byKey=await fc(a,this.byKey,n.concat(i),uc),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function hx(t){return e=>{if(e[t])return e[t]}}var Ci=class t extends Fn{crdt;static defaultHeader={cars:[],compact:[],indexes:new Map};defaultHeader=t.defaultHeader;constructor(e,r,n){super(e,n),this.crdt=r}async _applyCarHeader(e){for(let[r,n]of Object.entries(e.indexes))Mn({_crdt:this.crdt},r,void 0,n)}makeCarHeader({indexes:e},r,n=!1){return n?{indexes:e,cars:[],compact:r}:{indexes:e,cars:r,compact:[]}}},Ti=class t extends Fn{static defaultHeader={cars:[],compact:[],head:[]};defaultHeader=t.defaultHeader;clock;remoteFileStore;fileStore;constructor(e,r,n){super(e,n),this.fileStore=new Ur(this),this.clock=r}async loadFileCar(e,r=!1){return await this.storesLoadCar(e,this.fileStore,this.remoteFileStore,r)}async _applyCarHeader(e,r=!1){r?await this.clock.applyHead(null,e.head,this.clock.head):await this.clock.applyHead(null,e.head,[])}makeCarHeader(e,r,n=!1){if(rc(e)){let o=[];for(let[,i]of Object.entries(e.files))o.push(i.cid);return{files:o}}else{let{head:o}=e;return n?{head:o,cars:[],compact:r}:{head:o,cars:r,compact:[]}}}};function rc(t){return t&&t.files!==void 0}var xt=class extends Ae{parent;constructor(e){super(),this.parent=e}async get(e){return this.parent.get(e)}async superGet(e){return super.get(e)}},Ii=class{ready;name=null;loader=null;opts={};transactions=new Set;constructor(e,r,n){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 xt(this);this.transactions.add(n);let o=await e(n),{car:i,done:s}=await r(n,o);return i?{...s,car:i}:s}},Li=class extends Ii{constructor(e,r,n){e?super(e,new Ci(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}))}},Di=class extends Ii{constructor(e,r,n){e?super(e,new Ti(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}))}},Ni=class{blocks;loader=null;cids=new Set;constructor(e){this.blocks=e,this.loader=e.loader}async get(e){return this.cids.add(e),await this.blocks.get(e)}};var gc=({name:t,code:e,encode:r})=>new mc(t,e,r),mc=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?Tt(this.code,r):r.then(n=>Tt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Ui({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*px(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=H.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*wc(n,o))}else{let r=H.asCID(e);r?yield[t.join("/"),r]:yield*wc(e,t)}}function*wc(t,e){if(t==null||t instanceof Uint8Array)return;let r=H.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*px(i,o)}}function*yx(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!H.asCID(n)&&(yield*bc(n,o))}else yield*bc(e,t)}function*bc(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"&&!H.asCID(n)&&(yield*yx(o,n))}}function mx(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=H.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var Pe=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:Ui(),bytes:Ui(),value:Ui(),asBlock:Ui()})}links(){return wc(this.value,[])}tree(){return bc(this.value,[])}get(e="/"){return mx(this.value,e.split("/").filter(Boolean))}};async function Pi({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=H.create(1,e.code,o);return new Pe({value:t,bytes:n,cid:i})}async function Fi({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=H.create(1,e.code,o);return new Pe({value:n,bytes:t,cid:i})}var xc={};X(xc,{sha256:()=>nt,sha512:()=>gx});import op from"crypto";var nt=gc({name:"sha2-256",code:18,encode:t=>Se(op.createHash("sha256").update(t).digest())}),gx=gc({name:"sha2-512",code:19,encode:t=>Se(op.createHash("sha512").update(t).digest())});async function On(t,e,r){let n=new We(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 ip(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 ip(n,s,r))return e;return e.concat(r)}var Rn=class extends Pe{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(e,r){return wx({data:e,parents:r??[]})}},We=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 wx(t){let{cid:e,bytes:r}=await Pi({value:t,codec:V,hasher:nt});return new Pe({cid:e,value:t,bytes:r})}async function bx(t){let{cid:e,value:r}=await Fi({bytes:t,codec:V,hasher:nt});return new Pe({cid:e,value:r,bytes:t})}async function ip(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*kc(t,e,r={}){let n=r.renderNodeLabel??(a=>xx(a.cid)),o=new We(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 xx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var Gt=class extends Pe{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(){return Ke([])}};async function Ke(t,e){let{cid:r,bytes:n}=await Pi({value:t,codec:V,hasher:nt});return new Gt({cid:r,value:t,bytes:n,prefix:e??""})}async function sp(t,e){let{cid:r,value:n}=await Fi({bytes:t,codec:V,hasher:nt});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new Gt({cid:r,value:n,bytes:t,prefix:e??""})}var Qt=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 sp(n.bytes,r)}};function vc(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 ap(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 Mi=64,vx=512*1024;async function zn(t,e,r,n,o={}){let i=new Qt(t),s=await i.get(e),c=await Ri(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Mi){let h=Array.from(Array(Math.ceil(u.length/Mi)),(w,g)=>{let b=g*Mi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Mi)}}),p=await Ke([[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 Ke([[h[w].skey,[p.cid]]],h[w].prefix),d.push(p);l=[h[0].skey,[p.cid]]}let m=vc(a.value,l),f=await Ke(m,a.prefix);if(f.bytes.length>(o.maxShardSize??vx)){let h=ap(m,l[0]);if(!h)throw new Error("shard limit reached");let{prefix:p,matches:w}=h,g=await Ke(w.filter(([v])=>v!==p).map(([v,C])=>[v.slice(p.length),C]),a.prefix+p);d.push(g);let b,k=w.find(([v])=>v===p);if(k){if(Array.isArray(k[1]))throw new Error(`expected "${p}" to be a shard value but found a shard link`);b=[g.cid,k[1]]}else b=[g.cid];m=m.filter(v=>w.every(C=>v[0]!==C[0])),m=vc(m,[p,b]),f=await Ke(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[k,v]=b;if(k!==w)return b;if(!Array.isArray(v))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return v[1]==null?[k,[f.cid]]:[k,[f.cid,v[1]]]});f=await Ke(g,p.prefix),d.push(f)}return{root:d[d.length-1].cid,additions:d,removals:c}}async function cp(t,e,r){let n=new Qt(t),o=await n.get(e),i=await Ri(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 Ec(t,e,r){let n=new Qt(t),o=await n.get(e),i=await Ri(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 Ke(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[k,v]=b;if(k!==w)return b;if(!Array.isArray(v))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return v[1]==null?[k,[f.cid]]:[k,[f.cid,v[1]]]});f=await Ke(g,p.prefix),l.push(f)}return{root:l[l.length-1].cid,additions:l,removals:d}}async function*up(t,e,r={}){let{prefix:n}=r,o=new Qt(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 Ri(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 Ri(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function lp(t,e,r,n,o){let i=new Ae;if(t=new Lt(i,t),!e.length){let g=await Gt.create();i.putSync(g.cid,g.bytes);let b=await zn(t,g.cid,r,n,o),k={type:"put",root:b.root,key:r,value:n},v=await Rn.create(k,e);return e=await On(t,e,v.cid),{root:b.root,additions:[g,...b.additions],removals:b.removals,head:e,event:v}}let s=new We(t),c=await Ac(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 dp(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 Ec(t,u,g.data.key);u=b.root;for(let k of b.additions)i.putSync(k.cid,k.bytes),d.set(k.cid.toString(),k);for(let k of b.removals)m.set(k.cid.toString(),k)}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 Rn.create(h,e);i.putSync(p.cid,p.bytes),e=await On(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 Fr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new Ae;t=new Lt(r,t);let n=new We(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 Ac(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 dp(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 Ec(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 fp(t,e,r){if(!e.length)return;let n=await Fr(t,e);return n.additions.length&&(t=new Lt(new Ae(n.additions),t)),cp(t,n.root,r)}async function*Sc(t,e,r){if(!e.length)return;let n=await Fr(t,e);n.additions.length&&(t=new Lt(new Ae(n.additions),t)),yield*up(t,n.root,r)}async function Ac(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Sx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Ax(r);if(s)return s}if(!n)return}}async function Sx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:Ac(t,r.parents):e}function Ax(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 dp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>hp(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 hp(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=>hp(t,a,r,n+1)));return i.concat(...c)}var jr={};X(jr,{DEFAULT_DIRECTORY_MODE:()=>vy,DEFAULT_FILE_MODE:()=>ky,NodeType:()=>P,code:()=>$r,createAdvancedFile:()=>Gx,createComplexFile:()=>Jx,createDirectoryShard:()=>_y,createEmptyFile:()=>Wx,createFileChunk:()=>Kx,createFileShard:()=>Qx,createFlatDirectory:()=>Ji,createRaw:()=>Ey,createShardedDirectory:()=>Ay,createSimpleFile:()=>Sy,createSymlink:()=>Cy,cumulativeContentByteLength:()=>Xe,cumulativeDagByteLength:()=>Hr,decode:()=>Ly,decodeMetadata:()=>Zt,encode:()=>Iy,encodeAdvancedFile:()=>Kc,encodeComplexFile:()=>Gc,encodeDirectory:()=>Zi,encodeDirectoryMetadata:()=>Yc,encodeFile:()=>By,encodeFileChunk:()=>Wc,encodeFileShard:()=>Xx,encodeHAMTShard:()=>Qc,encodeLink:()=>Xi,encodeMetadata:()=>Wn,encodeMode:()=>Ny,encodeRaw:()=>qc,encodeSimpleFile:()=>Yi,encodeSymlink:()=>Ty,filesize:()=>tk,matchFile:()=>ek,name:()=>Vc});var _x=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 Oi(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 pp(t,e){let r;return[r,e]=_c(t,e),[r&7,r>>3,e]}function Bx(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=pp(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]=Oi(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]=Oi(t,n),e.Name=_x.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 yp(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=pp(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]=Oi(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]=Oi(t,r),n.push(Bx(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 gp=new TextEncoder,mp=2**32,Cx=2**31;function Tx(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=$n(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=gp.encode(t.Name);r-=n.length,e.set(n,r),r=$n(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=$n(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function wp(t){let e=Lx(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=$n(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Tx(t.Links[o],r.subarray(0,n));n-=i,n=$n(r,n,i)-1,r[n]=18}return r}function Ix(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Mr(r)}if(typeof t.Name=="string"){let r=gp.encode(t.Name).length;e+=1+r+Mr(r)}return typeof t.Tsize=="number"&&(e+=1+Mr(t.Tsize)),e}function Lx(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Mr(r)}if(t.Links)for(let r of t.Links){let n=Ix(r);e+=1+n+Mr(n)}return e}function $n(t,e,r){e-=Mr(r);let n=e;for(;r>=Cx;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Mr(t){return t%2===0&&t++,Math.floor((Dx(t)+6)/7)}function Dx(t){let e=0;return t>=mp&&(t=Math.floor(t/mp),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+Nx[t]}var Nx=[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 Ux=["Data","Links"],Px=["Hash","Name","Tsize"],Bc=new TextEncoder;function xp(t,e){if(t===e)return 0;let r=t.Name?Bc.encode(t.Name):[],n=e.Name?Bc.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 bp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function Fx(t){if(typeof t.asCID=="object"){let r=H.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=H.asCID(t.Hash);try{r||(typeof t.Hash=="string"?r=H.parse(t.Hash):t.Hash instanceof Uint8Array&&(r=H.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 Cc(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=Bc.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(Fx),e.Links.sort(xp);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function kp(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!bp(t,Ux))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(!bp(r,Px))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&&xp(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var Jt=112;function vp(t){kp(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),wp(e)}function Ge(t){let e=yp(t),r={};return e.Data&&(r.Data=e.Data),e.Links&&(r.Links=e.Links.map(n=>{let o={};try{o.Hash=H.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 it=q(gy(),1),Or=it.default.Reader,Hc=it.default.Writer,D=it.default.util,ne=it.default.roots.unixfs||(it.default.roots.unixfs={}),zr=ne.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=D.newBuffer([]),t.prototype.filesize=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.blocksizes=D.emptyArray,t.prototype.hashType=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.fanout=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.mode=0,t.prototype.mtime=null,t.encode=function(r,n){if(n||(n=Hc.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")&&ne.UnixTime.encode(r.mtime,n.uint32(66).fork()).ldelim(),n},t.decode=function(r,n){r instanceof Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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=ne.UnixTime.decode(r,r.uint32());break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Type"))throw D.ProtocolError("missing required 'Type'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ne.Data)return r;var n=new ne.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"?D.base64.decode(r.Data,n.Data=D.newBuffer(D.base64.length(r.Data)),0):r.Data.length&&(n.Data=r.Data)),r.filesize!=null&&(D.Long?(n.filesize=D.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 D.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)D.Long?(n.blocksizes[o]=D.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 D.LongBits(r.blocksizes[o].low>>>0,r.blocksizes[o].high>>>0).toNumber(!0))}if(r.hashType!=null&&(D.Long?(n.hashType=D.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 D.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0))),r.fanout!=null&&(D.Long?(n.fanout=D.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 D.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=ne.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=D.newBuffer(o.Data))),D.Long){var i=new D.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(D.Long){var i=new D.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(D.Long){var i=new D.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?ne.Data.DataType[r.Type]:r.Type),r.Data!=null&&r.hasOwnProperty("Data")&&(o.Data=n.bytes===String?D.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?D.Long.prototype.toString.call(r.filesize):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.blocksizes[s]):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.hashType):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.fanout):n.longs===Number?new D.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=ne.UnixTime.toObject(r.mtime,n)),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,it.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})(),g3=ne.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=D.Long?D.Long.fromBits(0,0,!1):0,t.prototype.FractionalNanoseconds=0,t.encode=function(r,n){return n||(n=Hc.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 Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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 D.ProtocolError("missing required 'Seconds'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ne.UnixTime)return r;var n=new ne.UnixTime;return r.Seconds!=null&&(D.Long?(n.Seconds=D.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 D.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(D.Long){var i=new D.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?D.Long.prototype.toString.call(r.Seconds):n.longs===Number?new D.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,it.default.util.toJSONOptions)},t})(),w3=ne.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=Hc.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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 ne.Metadata)return r;var n=new ne.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,it.default.util.toJSONOptions)},t})();var P=zr.DataType;var xy=Object.freeze([]),jc=new Uint8Array(0),ke=Object.freeze({}),ky=parseInt("0644",8),vy=parseInt("0755",8),$r=Jt,Vc="UnixFS",Et=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),vp(Cc({Data:zr.encode(t).finish(),Links:e}))),Ey=t=>({type:P.Raw,content:t}),Wx=t=>Sy(jc,t),Sy=(t,e)=>({type:P.File,layout:"simple",content:t,metadata:Zt(e)}),Kx=t=>({type:P.File,layout:"simple",content:t}),Gx=(t,e)=>({type:P.File,layout:"advanced",parts:t,metadata:Zt(e)}),Qx=t=>({type:P.File,layout:"advanced",parts:t}),Jx=(t,e,r)=>({type:P.File,layout:"complex",content:t,parts:e,metadata:Zt(r)}),Ji=(t,e)=>({type:P.Directory,metadata:Zt(e),entries:t}),Ay=(t,e,r,n,o=ke)=>({type:P.HAMTShard,bitfield:e,fanout:Jc(r),hashType:Xc(n),entries:t,metadata:Zt(o)}),_y=(t,e,r,n)=>({type:P.HAMTShard,bitfield:e,fanout:Jc(r),hashType:Xc(n),entries:t}),qc=t=>Et({Type:P.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:xy},[]),By=(t,e=!1)=>{let r=e?ke:Object(t).metadata;switch(t.layout){case"simple":return Yi(t.content,r);case"advanced":return Kc(t.parts,r);case"complex":return Gc(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},Wc=t=>Yi(t,ke),Xx=t=>Et({Type:P.File,blocksizes:t.map(qn),filesize:Xe(t)},t.map(Xi)),Kc=(t,e=ke)=>Et({Type:P.File,blocksizes:t.map(qn),filesize:Xe(t),...Wn(e)},t.map(Xi)),Xi=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),Yi=(t,e=ke)=>Et({Type:P.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...Wn(e)},[]),Gc=(t,e,r=ke)=>Et({Type:P.File,Data:t,filesize:t.byteLength+Xe(e),blocksizes:e.map(qn)},e.map(Xi)),Zi=t=>Et({Type:t.type,...Yc(t.metadata||ke)},t.entries.map(Dy)),Qc=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=ke})=>Et({Type:P.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:Jc(e),hashType:Xc(r),...Yc(o)},n.map(Dy)),Jc=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},Xc=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var Cy=(t,e=ke)=>({type:P.Symlink,content:t,metadata:Zt(e)}),Ty=(t,e=!1)=>{let r=e?ke:Object(t).metadata;return Et({Type:P.Symlink,Data:t.content,...Wn(r||ke)},[])},Iy=(t,e=!0)=>{switch(t.type){case P.Raw:return qc(t.content);case P.File:return By(t);case P.Directory:return Zi(t);case P.HAMTShard:return Qc(t);case P.Symlink:return Ty(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},Ly=t=>{let e=Ge(t),r=zr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=zr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...Yx(i)},l=e.Links;switch(r.Type){case P.Raw:return Ey(o);case P.File:return l.length===0?new Ki(o,u):o.byteLength===0?new Gi(wy(a.blocksizes,l),u):new Qi(o,wy(a.blocksizes,l),u);case P.Directory:return Ji(by(l),u);case P.HAMTShard:return Ay(by(l),o||jc,a.fanout,a.hashType,u);case P.Symlink:return Cy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},Yx=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var wy=(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},by=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),Xe=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Hr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),qn=t=>t.contentByteLength,Dy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),Yc=t=>Wn(t,vy),Wn=({mode:t,mtime:e},r=ky)=>({mode:t!=null?Ny(t,r):void 0,mtime:e!=null?Zx(e):void 0}),Zt=t=>t==null?ke:{...t.mode==null?void 0:{mode:Uy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},Zx=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},Ny=(t,e)=>{let r=t==null?void 0:Uy(t);return r===e||r==null?void 0:r},Uy=t=>t&4095|t&4294963200,ek=({content:t=jc,parts:e=xy,metadata:r=ke,...n})=>e.length===0?new Ki(t,r):t.byteLength===0?new Gi(e,r):new Qi(t,e,r),Ki=class{constructor(e,r){this.content=e,this.metadata=r,this.layout="simple",this.type=P.File}get filesize(){return this.content.byteLength}encode(){return Yi(this.content,this.metadata)}},Gi=class{constructor(e,r){this.parts=e,this.metadata=r}get layout(){return"advanced"}get type(){return P.File}get fileSize(){return Xe(this.parts)}get blockSizes(){return this.parts.map(qn)}encode(){return Kc(this.parts,this.metadata)}},Qi=class{constructor(e,r,n){this.content=e,this.parts=r,this.metadata=n}get layout(){return"complex"}get type(){return P.File}get fileSize(){return this.content.byteLength+Xe(this.parts)}get blockSizes(){return this.parts.map(qn)}encode(){return Gc(this.content,this.parts,this.metadata)}},tk=t=>{switch(t.type){case P.Raw:case P.Symlink:return t.content.byteLength;case P.File:switch(t.layout){case"simple":return t.content.byteLength;case"advanced":return Xe(t.parts);case"complex":return t.content.byteLength+Xe(t.parts)}default:return 0}};var rk=function*(t){let e=yield*t;yield*ts(e)};function*nu(){return yield os}var qr=function*(){yield is};var es=function*(t){let e=yield*nu();if(ok(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,St(e)},o=>{r=!0,n=o,St(e)}),yield*qr(),r)throw n;return n}else return ck(nk(e)),yield*qr(),t};function*nk(t){St(t)}var ok=t=>t!=null&&typeof t.then=="function",ts=function*(t){yield t},rs=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==Qn&&e.push(yield*Kr(sk(o,n)))}yield*iu(e)},ns=t=>t.length>0?ik(t.map(rk)):Qn;function*ik(t){let e=[];for(let r of t)e.push(yield*Kr(r));yield*iu(e)}var sk=(t,e)=>t===Qn?Qn:t instanceof Kn?new Kn([...t.tags,e],t.source):new Kn([e],t),Kn=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 is:case os:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=ak(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"}},Jn=()=>Qn;var ak=(t,e)=>({type:t,[t]:e});var os=Symbol("current"),is=Symbol("suspend");var st=class t{static of(e){return e.group||Vr}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new Wr(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Ry}},Zc=class{constructor(){this.status=Gn,this.stack=new Wr,this.id=0}},Wr=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},ck=t=>St(t[Symbol.iterator]()),St=t=>{let e=st.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(Vr.status===Gn)for(Vr.status=Oy;;)try{for(let r of ou(Vr));Vr.status=Gn;break}catch{Vr.stack.active.shift()}},uk=t=>St(t),ou=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=zy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case is:t.stack.idle.add(r);break e;case os:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var Kr=(t,e)=>new ru(t,e),lk=(t,e)=>Fy(t,{ok:!0,value:e});var eu=(t,e)=>Fy(t,{ok:!1,error:e});function*Fy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===is){let{idle:o}=st.of(r).stack;o.add(r)}else St(r)}catch{}}function*iu(t){if(t.length===0)return;let e=yield*nu(),r=new st(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}fk(o,r)}try{if(n)throw n.error;for(;yield*ou(r),Wr.size(r.stack)>0;)yield*qr()}catch(o){for(let i of r.stack.active)yield*eu(i,o);for(let i of r.stack.idle)yield*eu(i,o),St(i);throw o}}var fk=(t,e)=>{let r=st.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*su(t){t.status===Gn&&(yield*t),t.result||(yield*iu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var tu=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}},ru=class extends tu{constructor(e,r=dk,n={},o=zy){super(n),this.id=++Ry,this.name=r.name||"",this.task=e,this.state=o,this.status=Gn,this.result,this.handler=n,this.controller}*resume(){uk(this)}join(){return su(this)}abort(e){return eu(this,e)}exit(e){return lk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Oy,St(this),this}panic(e){this.result={ok:!1,error:e},this.status=Py;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=Py;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)}}},My=function*(t,e){let r=yield*nu(),n=new st(r);for(st.enqueue(t[Symbol.iterator](),n);;){for(let o of ou(n))st.enqueue(e(o)[Symbol.iterator](),n);if(Wr.size(n.stack)>0)yield*qr();else break}},Ry=0,Gn="idle",Oy="active",Py="finished",zy={done:!1,value:os},dk={},Qn=function*(){}(),Vr=new Zc;function au(){}Object.defineProperties(au,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var cu=()=>new Xn;var Hy=(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 cu();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 Xn(n,t.byteOffset+o,s)},hk=(t,e)=>e.byteLength>0?(t.segments.push(e),new Xn(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,pk=(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}}},yk=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*mk(t){for(let e of t.segments)yield*e}var Xn=class extends au{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return mk(this)}slice(e,r){return Hy(this,e,r)}subarray(e,r){return Hy(this,e,r)}push(e){return hk(this,e)}get(e){return pk(this,e)}copyTo(e,r){return yk(this,e,r)}};var Yn=t=>{throw new Error(t)},jy=(t,e,...r)=>Yn(String.raw(t,JSON.stringify(e),...r)),Vy=new Uint8Array(0),qy=[];var Wy=t=>({config:t,buffer:cu()}),Ky=(t,e)=>e.byteLength>0?Qy(t.config,t.buffer.push(e),!1):{...t,chunks:qy},Gy=t=>Qy(t.config,t.buffer,!0),Qy=(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 Jy=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:fu});var du=(t,e)=>{let r=Gr(e,{});for(let n of t){let{ready:o,has:i,wants:s}=Yy(n.children,r.links);s.length===0?r=Gr(r,{links:lu(void 0,i),linked:[{id:n.id,links:o}]}):r=Gr(r,{needs:lu(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},Xy=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=Yy(o.children,{...r.links,[t]:e});return Gr(r,{needs:{[t]:void 0},links:lu(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return Gr(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return Gr(r,{links:{[t]:e}})},Gr=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?xk:void 0;return e&&(i.needs=uu(t.needs,e,s)),r&&(i.nodes=uu(t.nodes,r,s)),n&&(i.links=uu(t.links,n,s)),i.linked=o?bk(t.linked||fu,o,fu):t.linked||[],i},lu=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},uu=(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},Yy=(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}},fu=Object.freeze([]),xk=Object.freeze({});var Zy=(t,e)=>{switch(t.type){case"write":return vk(e,t.bytes);case"link":return Ek(e,t.link);case"block":return{state:e,effect:Jn()};case"close":return Sk(e);case"end":return{state:e,effect:Jn()};default:return jy`File Writer got unknown message ${t}`}},em=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:Wy({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:Jy()}),vk=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=Ky(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=du(o,t.nodeQueue),u=[...tm(i,t.config),...hu(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:rs({link:ns(u)})}}else return Yn("Unable to perform write on closed file")},Ek=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=Xy(e,r,t.nodeQueue),s=hu(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():Jn();return{state:c,effect:rs({link:ns(s),block:Bk(t.writer,n),end:a})}},Sk=t=>{if(t.status==="open"){let{chunks:e}=Gy(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Tk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=du(s,t.nodeQueue),l=[...tm(c,t.config),...hu(a,t.config)],d=Kr(qr());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:rs({link:ns(l),end:su(d)})}}else return{state:t,effect:Jn()}},tm=(t,e)=>t.map(r=>Ak(e,r,e.fileChunkEncoder)),Ak=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Ck(n):Vy),s=yield*es(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}},hu=(t,e)=>t.map(r=>_k(e,r)),_k=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:P.File,layout:"advanced",parts:r,metadata:n}),i=yield*es(Promise.resolve(t.hasher.digest(o))),s=t.linker.createLink(t.fileEncoder.code,i),c={bytes:o,cid:s},a={cid:s,contentByteLength:Xe(r),dagByteLength:Hr(o,r)};return{id:e,block:c,link:a}},Bk=function*(t,e){(t.desiredSize||0)<=0&&(yield*es(t.ready)),t.write(e)},Ck=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Tk=t=>t.children==null;var yu={};X(yu,{context:()=>Lk,cut:()=>nm,name:()=>rm,type:()=>Dk,withMaxChunkSize:()=>pu});var rm="fixed",Lk={maxChunkSize:262144},Dk="Stateless",pu=t=>({type:"Stateless",context:{maxChunkSize:t},name:rm,cut:nm}),nm=({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 Zn=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},ss=t=>({open:()=>Uk({width:t}),write:Pk,close:Fk}),Nk={width:174},Uk=({width:t}=Nk)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),Pk=(t,e)=>{if(e.length===0)return{layout:t,nodes:de,leaves:de};{let{lastID:r}=t,[n,o]=t.head?[null,(e.unshift(t.head),e)]:e.length===1&&t.leafIndex.length===0?[e[0],de]:[null,e];if(o.length===0)return{layout:{...t,head:n},nodes:de,leaves:de};{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?im({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:de}}}},im=(t,e=de,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;){om(i,1);let u=new Zn(++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 Zn(++o,u.splice(0,c));om(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},Fk=(t,e)=>{let r=t;if(t.head)return{root:{id:1,content:t.head,metadata:e},leaves:de,nodes:de};if(t.leafIndex.length===0)return{root:{id:1,metadata:e},leaves:de,nodes:de};{let{nodes:n,layout:o}=im(r,de,[],!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:de}}else return{root:new Zn(o.lastID+1,c,e),nodes:n,leaves:de}}},om=(t,e)=>{for(;t.length<e;)t.push([]);return t},de=[];var At=()=>({chunker:yu,fileChunkEncoder:mu,smallFileEncoder:mu,fileEncoder:jr,fileLayout:ss(174),hasher:nt,linker:{createLink:H.createV1}}),_t=t=>({...At(),...t}),mu={code:$r,name:Vc,encode:Wc};var eo=({writer:t,metadata:e={},settings:r=At()})=>new gu(em(t,e,_t(r))),sm=async(t,e)=>(await cm(t,ts({type:"write",bytes:e})),t),am=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await cm(t,ts({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;Yn(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},cm=(t,e)=>Kr(My(e,r=>{let{state:n,effect:o}=Zy(r,t.state);return t.state=n,o})),gu=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return sm(this,e)}close(e){return am(this,e)}};var Rk=At,bu=({writer:t,settings:e=Rk(),metadata:r={}})=>new as({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),cs=(t,e,r,{overwrite:n=!1}={})=>{let o=xu(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},us=(t,e)=>(xu(t.state).entries.delete(e),t),xu=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},um=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=xu(t.state);t.state.closed=!0;let s=[...lm(t)],c=Ji(s,i),a=Zi(c),u=await o.hasher.digest(a),l=o.linker.createLink($r,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:Hr(a,s)}},lm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},fm=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new as({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),as=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return lm(this)}set(e,r,n){return cs(this,e,r,n)}remove(e){return us(this,e)}fork(e){return fm(this,e)}close(e){return um(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var ds={};X(ds,{API:()=>ls,and:()=>Wk,bitCount:()=>fs,empty:()=>dm,from:()=>zk,fromBytes:()=>Qk,get:()=>qk,or:()=>Kk,popcount:()=>ku,set:()=>hm,size:()=>$k,toBytes:()=>Gk,unset:()=>Vk});var ls={};var dm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},zk=(t,e)=>{let r=dm(e);for(let n of t)r=hm(r,n);return r},$k=t=>32,Hk=(t,e)=>t>>>e&31,jk=(t,e)=>1<<Hk(t,e),ku=(t,e=31)=>fs(t&jk(e,0)-1),hm=(t,e)=>t|1<<e,Vk=(t,e)=>t&(255^1<<e),qk=(t,e)=>(t>>e&1)!==0,fs=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},Wk=(t,e)=>t&e,Kk=(t,e)=>t|e,Gk=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),Qk=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 mm=q(vu(),1),Jk=new TextEncoder,Xk=mm.default.x64.hash126,gm=({bitWidth:t=5,hash:e=Xk})=>{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(Jk.encode(s)),size:Math.ceil(4*8/t)}};var Qr=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 ro(this.config)}lookup(e,r,n,o){return bm(this,e,r,n,o)}associate(e,r,n,o,i,s){return Au(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return xm(this,e,r,n,o,i)}fork(e=null){return no(this,e)}entries(){return km(this)}keys(){return vm(this)}values(){return Em(this)}},ps=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 Yk(this,n,o)}associate(e,r,n,o,i,s){return Zk(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return e2(this,e,n,o,i)}fork(e=null){return t2(this,e)}entries(){return km(this)}keys(){return vm(this)}values(){return Em(this)}},Yk=(t,e,r)=>{let{children:n,count:o}=t,i=Eu(n,o,e);return n[i]===e?n[i+1]:r},Zk=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Eu(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},e2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Eu(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return Au(ro(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}},t2=(t,e=null)=>Bm(t.edit,e)?t:new ps(e,t.count,t.children.slice(),t.config),Eu=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var ro=(t,e=null)=>new Qr(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),ms=(t,e,r)=>bm(t,0,t.config.Path.from(e),e,r),bm=(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 gs(t,d)===n?ys(t,d):o}else return u.get(s,l)?ws(t,l).lookup(e+1,r,n,o):o},Su=(t,e,r,n,o)=>Au(t,e,0,t.config.Path.from(r),r,n,o),Au=(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=gs(t,f);if(o===h)return ys(t,f)===i?t:r2(t,e,f,i);{let p=Am(u,e,r+1,l.from(h),h,ys(t,f),n,o,i);return s.value=!0,o2(t,e,m,p)}}else if(d.get(a,m)){let f=ws(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Sm(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(oo(f),0,o,i),h}},_u=(t,e,r,n)=>xm(t,e,0,t.config.Path.from(r),r,n);var xm=(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===gs(t,m)){i.value=!0;let f=no(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(oo(m),2),f}else return t}else if(u.get(c,d)){let m=ws(t,d),f=m.dissociate(e,r+1,n,o,i);return i2(f)?s2(t)?f:n2(t,e,d,f):m===f?t:Sm(t,e,d,f)}else return t},km=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},no=(t,e)=>Bm(t.edit,e)?t:new Qr(e,t.datamap,t.nodemap,t.children.slice(),t.config),vm=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},Em=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},r2=(t,e,r,n)=>{let o=t.fork(e);return o.children[_m(r)]=n,o},n2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=no(t,e);return a.children.splice(bs(t,r),1),a.children.splice(oo(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Sm=(t,e,r,n)=>{let o=no(t,e);return o.children[bs(t,r)]=n,o},o2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=oo(a),l=bs(t,r),d=no(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},Am=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new ps(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new Qr(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Am(t,e,r+1,n,o,i,s,c,a)],t):new Qr(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)}},gs=({children:t},e)=>t[oo(e)],oo=t=>t*2,ys=({children:t},e)=>t[_m(e)],_m=t=>t*2+1,ws=(t,e)=>t.children[bs(t,e)],bs=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Bm=(t,e)=>t!=null&&t===e,i2=t=>t.nodeArity===0&&t.dataArity===1,s2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var xs=q(vu(),1);function a2(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 G3=Mt({name:"murmur3-32",code:35,encode:t=>a2(xs.default.x86.hash32(t))}),Tm=Mt({name:"murmur3-128",code:34,encode:t=>Nt.fromHex(xs.default.x64.hash128(t))}),io=Mt({name:"murmur3-x64-64",code:34,encode:t=>Nt.fromHex(xs.default.x64.hash128(t)).subarray(0,8)});var c2=new TextEncoder,u2=t=>io.encode(t),Im=({bitWidth:t=8,hash:e=u2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(c2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Bu(i,c,t)},size:Math.ceil(r*8/t)}},Bu=(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 Cu={};X(Cu,{API:()=>ls,and:()=>x2,empty:()=>Lm,from:()=>f2,fromBytes:()=>g2,get:()=>y2,or:()=>b2,popcount:()=>w2,set:()=>h2,size:()=>d2,toBytes:()=>m2,unset:()=>p2});var Lm=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},f2=(t,e)=>{let r=Lm(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=so(r,n);r[i]=o|1<<s}return r},d2=t=>t.byteLength*8,so=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Dm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},h2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=so(t,e);return Dm(t,n,r|1<<o)},p2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=so(t,e);return Dm(t,n,r&(255^1<<o))},y2=(t,e)=>{var{byte:r,bitOffset:n}=so(t,e);return(r>>n&1)!==0},m2=t=>t,g2=t=>t,w2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=so(t,e),i=ku(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=fs(c),s--}return i},b2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},x2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var Nm=new RangeError("Not Found");var k2=({bitWidth:t=5,BitField:e=t===5?ds:Cu,Path:r=t===5?gm({bitWidth:t}):Im({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var Iu=(t,e)=>ms(t.root,e,Nm)!==Nm,Um=(t,e,r=void 0)=>ms(t.root,e,r),Pm=t=>{let e={},r=k2(t);return new ks(e,0,ro(r,e),r)},Tu=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,ro(this.config,null),this.config)}has(e){return Iu(this,e)}get(e){return ms(this.root,e,void 0)}set(e,r){let n={value:!1},o=Su(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 ks({},this.count,this.root,this.config)}},ks=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=Su(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 Tu(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var v2=new TextEncoder,E2=t=>io.encode(t),Mm=({bitWidth:t=8,hash:e=E2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>S2(s,c,n),from:s=>v2.encode(s),size:1/0}},S2=(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:A2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Bu(l,d,f),c-=f,a+=f}return s},A2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Rm=8,B2={bitWidth:Rm,Path:Mm({bitWidth:Rm})};var Lu=(t=B2)=>Pm(t);var Om=class extends Map{constructor(e=Lu()){super(),this.builder=e}clear(){this.builder=Lu()}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 Um(this.builder,e)}has(e){return Iu(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 zm=({writable:t,settings:e=At()})=>new Du({writer:t.getWriter(),settings:e}),T2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Du=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=_t(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return eo({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return bu({writer:this.writer,settings:e,metadata:r})}close(e){return T2(this,e)}},I2=1048576,L2=I2*100,$m=(t=L2)=>({highWaterMark:t,size:e=>e.bytes.length});var Os=q(Ye(),1);function U2(t){return t[Symbol.asyncIterator]!=null}function P2(t){if(U2(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 Vm=P2;var Wg=q(Ye(),1);var qm=0,F2="identity",Wm=ie,M2=t=>Ut(qm,Wm(t)),Km={code:qm,name:F2,encode:Wm,digest:M2};var Gm=q(Ye(),1);var R2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=br(a),l=u,d=r;for(;n.length>0;){let m=n[0];if(m in l){n.shift(),d=`${d}/${m}`;let f=j.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,Gm.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}}}},Qm=R2;var Jm=q(Ye(),1);var ae=class extends Event{constructor(e,r){super(e),this.detail=r}};function O2(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 er=O2;var ao=q(Ye(),1),z2=(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,ao.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,ao.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,ao.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,ao.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},Jr=z2;var $2=t=>{async function*e(r={}){let{start:n,end:o}=Jr(t.length,r.offset,r.length),i=er(t,0n,n,o);r.onProgress?.(new ae("unixfs:exporter:progress:identity",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},H2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,Jm.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=$o(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:$2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},Xm=H2;var Ym=q(Ye(),1);var j2=t=>{async function*e(r={}){let{start:n,end:o}=Jr(t.length,r.offset,r.length),i=er(t,0n,n,o);r.onProgress?.(new ae("unixfs:exporter:progress:raw",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},V2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,Ym.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=await s.get(t,c);return{entry:{type:"raw",name:e,path:r,cid:t,content:j2(a),depth:i,size:BigInt(a.length),node:a}}},Zm=V2;var ko=q(Ye(),1);var Ru=q(Ye(),1);var Nu=q(Wi(),1),eg=q(zc(),1),tg=q(ot(),1),Uu=q(Vi(),1),rg=q(Mc(),1);function q2(){tg.default._configure(),Nu.default._configure(eg.default),Uu.default._configure(rg.default)}q2();var ng=["uint64","int64","sint64","fixed64","sfixed64"];function W2(t){for(let e of ng){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Pu(t){return W2(new Nu.default(t))}function K2(t){for(let e of ng){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Fu(){return K2(Uu.default.create())}function co(t,e){let r=Pu(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function uo(t,e){let r=Fu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Xr;(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"})(Xr||(Xr={}));function vs(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Mu(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 vs("enum",Xr.VARINT,r,n)}function lo(t,e){return vs("message",Xr.LENGTH_DELIMITED,t,e)}var Re;(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=()=>Mu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=lo((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),Es.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=Es.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>uo(o,t.codec()),t.decode=o=>co(o,t.codec())})(Re||(Re={}));var Es;(function(t){let e;t.codec=()=>(e==null&&(e=lo((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=>uo(r,t.codec()),t.decode=r=>co(r,t.codec())})(Es||(Es={}));var og;(function(t){let e;t.codec=()=>(e==null&&(e=lo((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=>uo(r,t.codec()),t.decode=r=>co(r,t.codec())})(og||(og={}));var ig={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},G2=["directory","hamt-sharded-directory"],sg=parseInt("0644",8),ag=parseInt("0755",8),Yr=class t{static unmarshal(e){let r=Re.decode(e),n=new t({type:ig[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}type;data;blockSizes;hashType;fanout;mtime;_mode;_originalMode;constructor(e={type:"file"}){let{type:r,data:n,blockSizes:o,hashType:i,fanout:s,mtime:c,mode:a}=e;if(r!=null&&!Object.values(ig).includes(r))throw(0,Ru.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}set mode(e){e==null?this._mode=this.isDirectory()?ag:sg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return G2.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=Re.DataType.Raw;break;case"directory":e=Re.DataType.Directory;break;case"file":e=Re.DataType.File;break;case"metadata":e=Re.DataType.Metadata;break;case"symlink":e=Re.DataType.Symlink;break;case"hamt-sharded-directory":e=Re.DataType.HAMTShard;break;default:throw(0,Ru.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===sg&&!this.isDirectory()&&(n=void 0),n===ag&&this.isDirectory()&&(n=void 0));let o;return this.mtime!=null&&(o={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),Re.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 wg=q(lg(),1);var Ou={};X(Ou,{identity:()=>Y2});var Y2=ur({prefix:"\0",name:"identity",encode:t=>wl(t),decode:t=>gl(t)});var zu={};X(zu,{base2:()=>Z2});var Z2=K({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var $u={};X($u,{base8:()=>ev});var ev=K({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Hu={};X(Hu,{base10:()=>tv});var tv=ut({prefix:"9",name:"base10",alphabet:"0123456789"});var ju={};X(ju,{base16:()=>rv,base16upper:()=>nv});var rv=K({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),nv=K({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Vu={};X(Vu,{base36:()=>ov,base36upper:()=>iv});var ov=ut({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),iv=ut({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var qu={};X(qu,{base64:()=>sv,base64pad:()=>av,base64url:()=>cv,base64urlpad:()=>uv});var sv=K({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),av=K({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),cv=K({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),uv=K({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Wu={};X(Wu,{base256emoji:()=>pv});var fg=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}"),lv=fg.reduce((t,e,r)=>(t[r]=e,t),[]),fv=fg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function dv(t){return t.reduce((e,r)=>(e+=lv[r],e),"")}function hv(t){let e=[];for(let r of t){let n=fv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var pv=ur({prefix:"\u{1F680}",name:"base256emoji",encode:dv,decode:hv});var Ku={};X(Ku,{identity:()=>gv});var dg=0,yv="identity",hg=Se,mv=t=>Tt(dg,hg(t)),gv={code:dg,name:yv,encode:hg,digest:mv};var ET=new TextEncoder,ST=new TextDecoder;var Gu={...Ou,...zu,...$u,...Hu,...ju,...Ys,...Vu,...Xs,...qu,...Wu},_T={...xc,...Ku};function Zr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Ss(t=0){return globalThis.Buffer?.allocUnsafe!=null?Zr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function yg(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var pg=yg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Qu=yg("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=Ss(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),xv={utf8:pg,"utf-8":pg,hex:Gu.base16,latin1:Qu,ascii:Qu,binary:Qu,...Gu},mg=xv;function gg(t,e="utf8"){let r=mg[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Zr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var tr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new wg.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 bg(this,e,r)}toJSON(){return this.serialize(vv,Ev)}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"?gg(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(kv);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 kv(t){return!!t}function vv(t,e){return t.key}function Ev(t){return t}async function bg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof tr)await bg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Sv=[255,254,252,248,240,224,192,128],Av=[1,3,7,15,31,63,127,255],As=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=_v(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 _v(t,e,r){let n=Bv(e,r);return(t&n)>>>e}function Bv(t,e){return Sv[t]&Av[Math.min(e+t-1,7)]}function xg(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Ss(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return Zr(r)}function kg(t){function e(r){return r instanceof _s?r:new _s(r,t)}return e}var _s=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?xg([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new As(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function vg(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:kg(t.hashFn)};return new tr(e)}var Cv=async function(t){return(await Tm.encode(t)).slice(0,8).reverse()},Tv=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 tr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Eg=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Iv=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Sg=async(t,e,r,n,o)=>{if(n==null){let l=vg({hashFn:Cv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Tv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Eg(i.pos),c=Iv(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Eg(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=Ge(u),Sg(t,e,r,n,o)},Ag=Sg;function Lv(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 Bs=Lv;function Dv(t){return t[Symbol.asyncIterator]!=null}function Nv(t,e){if(Dv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Bs(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 _g=Nv;function Uv(t){return t[Symbol.asyncIterator]!=null}function Pv(t,e){if(Uv(t))return async function*(){for await(let c of t)yield e(c)}();let r=Bs(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 en=Pv;function at(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Cs=globalThis.CustomEvent??Event;async function*rr(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=at(),c=at(),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=at(),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 Cs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new Cs("task-complete"))})}a=!0,o.dispatchEvent(new Cs("task-complete"))}catch(h){u=h,o.dispatchEvent(new Cs("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=at(),await c.promise),u!=null)throw u;if(n?yield*m():yield*f(),a&&i.length===0)break}}var Ts=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},tn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Ts(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 Ts(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 Ju=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function rn(t={}){return Fv(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 Fv(t,e){e=e??{};let r=e.onEnd,n=new tn,o,i,s,c=at(),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(k){g(k)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=at()})}},u=w=>i!=null?i(w):(n.push(w),o),l=w=>(n=new tn,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 tn,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,k;g!=null&&(b=new Promise((v,C)=>{k=()=>{C(new Ju)},g.addEventListener("abort",k)}));try{await Promise.race([c.promise,b])}finally{k!=null&&g!=null&&g?.removeEventListener("abort",k)}}},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 Mv(t){return t[Symbol.asyncIterator]!=null}function Rv(...t){let e=[];for(let r of t)Mv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=rn({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 Bg=Rv;function nn(t,...e){if(t==null)throw new Error("Empty pipeline");if(Xu(t)){let n=t;t=()=>n.source}else if(Tg(t)||Cg(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&Xu(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++)Xu(r[n])&&(r[n]=zv(r[n]));return Ov(...r)}var Ov=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Cg=t=>t?.[Symbol.asyncIterator]!=null,Tg=t=>t?.[Symbol.iterator]!=null,Xu=t=>t==null?!1:t.sink!=null&&t.source!=null,zv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=rn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(Cg(i))o=async function*(){yield*i,n.end()};else if(Tg(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Bg(n,o())}return t.source};var $v=(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 ae("unixfs:exporter:walk:directory",{cid:t})),yield*nn(d,m=>en(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>rr(m,{ordered:!0}),m=>_g(m,f=>f!=null))}return c},Ig=$v;var or=q(Ye(),1);var $g=q(Dg(),1);var ho=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Zu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ng=t=>globalThis.DOMException===void 0?new Zu(t):new DOMException(t),Ug=t=>{let e=t.reason===void 0?Ng("This operation was aborted."):t.reason;return e instanceof Error?e:Ng(e)};function el(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(Ug(a)),a.addEventListener("abort",()=>{c(Ug(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 ho(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 tl(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 nr=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)},ct,po=class{constructor(){ct.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&nr(this,ct,"f")[this.size-1].priority>=r.priority){nr(this,ct,"f").push(n);return}let o=tl(nr(this,ct,"f"),n,(i,s)=>s.priority-i.priority);nr(this,ct,"f").splice(o,0,n)}dequeue(){let e=nr(this,ct,"f").shift();return e?.run}filter(e){return nr(this,ct,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return nr(this,ct,"f").length}};ct=new WeakMap;var W=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},I=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)},J,mo,go,Ct,Fs,wo,Ls,Oe,yo,ve,Ds,Ee,bo,Bt,Ns,Pg,Fg,Og,Mg,Rg,Us,rl,nl,Ms,zg,Ps,Rs=class extends Error{},xo=class extends $g.default{constructor(e){var r,n,o,i;if(super(),J.add(this),mo.set(this,void 0),go.set(this,void 0),Ct.set(this,0),Fs.set(this,void 0),wo.set(this,void 0),Ls.set(this,0),Oe.set(this,void 0),yo.set(this,void 0),ve.set(this,void 0),Ds.set(this,void 0),Ee.set(this,0),bo.set(this,void 0),Bt.set(this,void 0),Ns.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:po,...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})`);W(this,mo,e.carryoverConcurrencyCount,"f"),W(this,go,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),W(this,Fs,e.intervalCap,"f"),W(this,wo,e.interval,"f"),W(this,ve,new e.queueClass,"f"),W(this,Ds,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,W(this,Ns,e.throwOnTimeout===!0,"f"),W(this,Bt,e.autoStart===!1,"f")}get concurrency(){return I(this,bo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);W(this,bo,e,"f"),I(this,J,"m",Ms).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:I(this,Ns,"f"),...r},new Promise((n,o)=>{I(this,ve,"f").enqueue(async()=>{var i,s,c;W(this,Ee,(s=I(this,Ee,"f"),s++,s),"f"),W(this,Ct,(c=I(this,Ct,"f"),c++,c),"f");try{if(!((i=r.signal)===null||i===void 0)&&i.aborted)throw new Rs("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=el(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,I(this,J,"m",zg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof ho&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{I(this,J,"m",Og).call(this)}},r),this.emit("add"),I(this,J,"m",Us).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return I(this,Bt,"f")?(W(this,Bt,!1,"f"),I(this,J,"m",Ms).call(this),this):this}pause(){W(this,Bt,!0,"f")}clear(){W(this,ve,new(I(this,Ds,"f")),"f")}async onEmpty(){I(this,ve,"f").size!==0&&await I(this,J,"m",Ps).call(this,"empty")}async onSizeLessThan(e){I(this,ve,"f").size<e||await I(this,J,"m",Ps).call(this,"next",()=>I(this,ve,"f").size<e)}async onIdle(){I(this,Ee,"f")===0&&I(this,ve,"f").size===0||await I(this,J,"m",Ps).call(this,"idle")}get size(){return I(this,ve,"f").size}sizeBy(e){return I(this,ve,"f").filter(e).length}get pending(){return I(this,Ee,"f")}get isPaused(){return I(this,Bt,"f")}};mo=new WeakMap,go=new WeakMap,Ct=new WeakMap,Fs=new WeakMap,wo=new WeakMap,Ls=new WeakMap,Oe=new WeakMap,yo=new WeakMap,ve=new WeakMap,Ds=new WeakMap,Ee=new WeakMap,bo=new WeakMap,Bt=new WeakMap,Ns=new WeakMap,J=new WeakSet,Pg=function(){return I(this,go,"f")||I(this,Ct,"f")<I(this,Fs,"f")},Fg=function(){return I(this,Ee,"f")<I(this,bo,"f")},Og=function(){var e;W(this,Ee,(e=I(this,Ee,"f"),e--,e),"f"),I(this,J,"m",Us).call(this),this.emit("next")},Mg=function(){I(this,J,"m",nl).call(this),I(this,J,"m",rl).call(this),W(this,yo,void 0,"f")},Rg=function(){let e=Date.now();if(I(this,Oe,"f")===void 0){let r=I(this,Ls,"f")-e;if(r<0)W(this,Ct,I(this,mo,"f")?I(this,Ee,"f"):0,"f");else return I(this,yo,"f")===void 0&&W(this,yo,setTimeout(()=>{I(this,J,"m",Mg).call(this)},r),"f"),!0}return!1},Us=function(){if(I(this,ve,"f").size===0)return I(this,Oe,"f")&&clearInterval(I(this,Oe,"f")),W(this,Oe,void 0,"f"),this.emit("empty"),I(this,Ee,"f")===0&&this.emit("idle"),!1;if(!I(this,Bt,"f")){let e=!I(this,J,"a",Rg);if(I(this,J,"a",Pg)&&I(this,J,"a",Fg)){let r=I(this,ve,"f").dequeue();return r?(this.emit("active"),r(),e&&I(this,J,"m",rl).call(this),!0):!1}}return!1},rl=function(){I(this,go,"f")||I(this,Oe,"f")!==void 0||(W(this,Oe,setInterval(()=>{I(this,J,"m",nl).call(this)},I(this,wo,"f")),"f"),W(this,Ls,Date.now()+I(this,wo,"f"),"f"))},nl=function(){I(this,Ct,"f")===0&&I(this,Ee,"f")===0&&I(this,Oe,"f")&&(clearInterval(I(this,Oe,"f")),W(this,Oe,void 0,"f")),W(this,Ct,I(this,mo,"f")?I(this,Ee,"f"):0,"f"),I(this,J,"m",Ms).call(this)},Ms=function(){for(;I(this,J,"m",Us).call(this););},zg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Rs("The task was aborted."))},{once:!0})})},Ps=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function Hg(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=er(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,or.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=Yr.unmarshal(e.Data)}catch(u){throw(0,or.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=er(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,or.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 nn(a,u=>en(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>rr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case Jt:f=Ge(d);break;case Dn:f=d;break;default:r.end((0,or.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new xo({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ae("unixfs:exporter:walk:file",{cid:l.Hash})),await Hg(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Vv=(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}=Jr(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=rn();a.onProgress?.(new ae("unixfs:exporter:walk:file",{cid:t})),Hg(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,or.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 ae("unixfs:exporter:progress:unixfs:file",{bytesRead:m,totalBytes:f,fileSize:u})),yield p}if(m<f)throw(0,or.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},ol=Vv;var qv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ae("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),jg(e,n,o,i,s,a)}return c};async function*jg(t,e,r,n,o,i){let s=t.Links,c=nn(s,a=>en(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=Ge(d),i.onProgress?.(new ae("unixfs:exporter:walk:hamt-sharded-directory",{cid:u.Hash})),{entries:jg(t,e,r,n,o,i)}}}),a=>rr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var Vg=qv;var Wv=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,Kv={raw:ol,file:ol,directory:Ig,"hamt-sharded-directory":Vg,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},Gv=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ge(a),l,d;if(e==null&&(e=t.toString()),u.Data==null)throw(0,ko.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=Yr.unmarshal(u.Data)}catch(f){throw(0,ko.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Ag(u,n[0],s):f=Wv(u,n[0]),f==null)throw(0,ko.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=Kv[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,ko.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}},qg=Gv;var Qv={[Jt]:qg,[Dn]:Zm,[xa]:Qm,[Km.code]:Xm},Kg=async(t,e,r,n,o,i,s)=>{let c=Qv[t.code];if(c==null)throw(0,Wg.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,Kg,o,i,s)},Gg=Kg;var Jv=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),Xv=t=>{if(t instanceof Uint8Array)return{cid:j.decode(t),toResolve:[]};let e=j.asCID(t);if(e!=null)return{cid:e,toResolve:[]};if(typeof t=="string"){t.indexOf("/ipfs/")===0&&(t=t.substring(6));let r=Jv(t);return{cid:j.parse(r[0]),toResolve:r.slice(1)}}throw(0,Os.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*Yv(t,e,r={}){let{cid:n,toResolve:o}=Xv(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await Gg(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Os.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 Qg(t,e,r={}){let n=await Vm(Yv(t,e,r));if(n==null)throw(0,Os.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var Zv=$m(),eE=_t({fileChunkEncoder:gt,smallFileEncoder:gt,chunker:pu(1024*1024),fileLayout:ss(1024)});async function Jg(t){let e=tE(t),r=await rE(e);return{cid:r.at(-1).cid,blocks:r}}async function Xg(t,e,r){let n=await Qg(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 tE(t){let{readable:e,writable:r}=new TransformStream({},Zv),n=zm({writable:r,settings:eE}),o=new il("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function rE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var il=class{#e;name;constructor(e,r){this.name=e,this.#e=r}async finalize(e){let r=eo(e);return await this.#e.stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};async function ew(t,e,r,n){let o;for(let i of r){let s=await nE(t,i);o=await lp(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 nE(t,e){let r;e.del?r={del:!0}:(await oE(t,e.value),r={doc:e.value});let n=await Ve({value:r,hasher:le,codec:V});return t.putSync(n.cid,n.bytes),n.cid}async function oE(t,e){e._files&&await Yg(t,e._files),e._publicFiles&&await Yg(t,e._publicFiles,!0)}async function Yg(t,e,r=!1){let n=t.parent,o=new xt(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 Jg(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 tw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await fp(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await ul(t,n)}function cl(t,{doc:e}){e&&(e._files&&Zg(t,e._files),e._publicFiles&&Zg(t,e._publicFiles,!0))}function Zg(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 Xg({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 ul(t,e){let r=await t.get(e);if(!r)throw new Error(`Missing linked block ${e.toString()}`);let{value:n}=await mt({bytes:r.bytes,hasher:le,codec:V});return cl(t,n),n}var sl=class extends We{async get(e){try{return await super.get(e)}catch(r){return console.error("missing event",e.toString(),r),{value:null}}}};async function vo(t,e,r,n){let o=n.dirty?new sl(t):new We(t);return{result:(await al(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function al(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 al(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await ul(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await al(t,e,l.parents,n,o,i,s,c))}}return o}async function*rw(t,e){for await(let[r,n]of Sc(t,e)){let o=await ul(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*nw(t,e){for await(let r of kc(t,e))yield r}async function ow(t,e){let r=new Ni(t),n=new xt(t);for await(let[,i]of Sc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of kc(r,e));let o=await Fr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await vo(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 zs=class{head=[];zoomers=new Set;watchers=new Set;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 xt)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 On(u,l,m);let d=await Fr(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 vo(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 $s=class{name;opts={};ready;blocks;indexBlocks;indexers=new Map;clock=new zs;constructor(e,r){this.name=e||null,this.opts=r||this.opts,this.blocks=new Di(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new Li(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 ew(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(cl(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 rw(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 nw(this.blocks,this.clock.head))e.push(r);return e.join(`
|
|
7
|
+
You can use close({ resize: true }) to resize header`)},fh=(t,e)=>{let{bytes:r,headerSize:n}=t;r.set(r.subarray(n,t.byteOffset),e),t.byteOffset+=e-n,t.headerSize=e},Ma=(t,e)=>{t.bytes.set(e,t.byteOffset),t.byteOffset+=e.length},uh=({bytes:t},e,r)=>{t.set(e),t.set(r,e.length)},s1=[new B(x.map,2),new B(x.string,"version"),new B(x.uint,1),new B(x.string,"roots")],a1=new B(x.tag,42),c1=t=>{let e=[...s1];e.push(new B(x.array,t.length));for(let n of t)e.push(a1),e.push(new B(x.bytes,{length:n+1}));let r=Fa(e);return In.default.encodingLength(r)+r},ni=({roots:t})=>c1(t.map(e=>e.bytes.byteLength));var dh=(t,e={})=>{let{roots:r=[],byteOffset:n=0,byteLength:o=t.byteLength,headerSize:i=ni({roots:r})}=e,s=new Uint8Array(t,n,o),c=new Ra(s,i);for(let a of r)c.addRoot(a);return c};var Mt=({name:t,code:e,encode:r})=>new Oa(t,e,r),Oa=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?Ut(this.code,r):r.then(n=>Ut(this.code,n))}else throw Error("Unknown type, must be binary type")}};function oi({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*l1(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*za(n,o))}else{let r=j.asCID(e);r?yield[t.join("/"),r]:yield*za(e,t)}}function*za(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*l1(i,o)}}function*f1(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*$a(n,o))}else yield*$a(e,t)}function*$a(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*f1(o,n))}}function d1(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 Ln=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:oi(),bytes:oi(),value:oi(),asBlock:oi()})}links(){return za(this.value,[])}tree(){return $a(this.value,[])}get(e="/"){return d1(this.value,e.split("/").filter(Boolean))}};async function Ve({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 Ln({value:t,bytes:n,cid:i})}async function mt({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 Ln({value:n,bytes:t,cid:i})}function h1({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 Ln({cid:e,bytes:t,value:o})}async function ii({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(!Nt.equals(e.multihash.bytes,i.bytes))throw new Error("CID hash does not match bytes");return h1({bytes:t,cid:e,value:o,codec:n})}import ph from"crypto";var le=Mt({name:"sha2-256",code:18,encode:t=>ie(ph.createHash("sha256").update(t).digest())}),L8=Mt({name:"sha2-512",code:19,encode:t=>ie(ph.createHash("sha512").update(t).digest())});var gt={};X(gt,{code:()=>Dn,decode:()=>m1,encode:()=>y1,name:()=>p1});var p1="raw",Dn=85,y1=t=>ie(t),m1=t=>ie(t);async function si(t,e){let r=0,n=ni({roots:t});r+=n;for(let{cid:s,bytes:c}of e.entries())r+=lh({cid:s,bytes:c});let o=new Uint8Array(r),i=dh(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 Ve({value:i.bytes,hasher:le,codec:gt})}async function yh(t){return await Ve({value:{fp:t},hasher:le,codec:V})}async function mh(t){let e=await t.getRoots(),r=await t.get(e[0]);if(!r)throw new Error("missing header block");let{value:n}=await mt({bytes:r.bytes,hasher:le,codec:V});if(n&&n.fp===void 0)throw new Error("missing fp");let{fp:o}=n;return o}var Rt={};X(Rt,{code:()=>k1,crypto:()=>v1,decode:()=>x1,decrypt:()=>ui,encode:()=>b1,encrypt:()=>li,name:()=>E1});function ai(){try{return window.crypto&&window.crypto.subtle?window.crypto:new Crypto}catch{return null}}var Nn=ai();function ci(t){let e=new Uint8Array(t);return t>0&&Nn.getRandomValues(e),e}var g1=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},w1=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216},gh=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},b1=({iv:t,bytes:e})=>gh([t,e]),x1=t=>{let e=t.subarray(0,12);return t=t.slice(12),{iv:e,bytes:t}},k1=3145728+1337;async function wh(t){return await Nn.subtle.importKey("raw",t,"AES-GCM",!1,["encrypt","decrypt"])}var ui=async({key:t,value:e})=>{let{bytes:r,iv:n}=e,o=await wh(t),i=await Nn.subtle.decrypt({name:"AES-GCM",iv:n,tagLength:128},o,r);r=new Uint8Array(i);let s=w1(r.subarray(0,4)),c=j.decode(r.subarray(4,4+s));return r=r.subarray(4+s),{cid:c,bytes:r}},li=async({key:t,cid:e,bytes:r})=>{let n=g1(e.bytes.byteLength),o=ci(12),i=gh([n,e.bytes,r]);try{let s=await wh(t),c=await Nn.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}}},v1=t=>({encrypt:e=>li({key:t,...e}),decrypt:e=>ui({key:t,...e})}),E1="jchris@encrypted-block:aes-gcm";var Un=t=>{let e=t.byteLength-4;return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216};var Pn=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 zt=(t,e)=>t===e?0:t>e?1:-1,bh=(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},Ot=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 $t=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}},wt=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)}}},xh=t=>typeof t=="string"?t:JSON.stringify(t);function S1(t,e){return t.sort(({key:r},{key:n})=>e.compare(r,n))}async function A1(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 _1(t,e,{chunker:r,compare:n}){return await bt.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 B1(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 C1(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 A1(c,r,t.compare);if(a.length){let u=await _1(a,i,t),l=await B1(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 bt.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 bt.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 bt=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 Ot){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 Ot){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 Ot){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 Ot){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=xh(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=xh(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:k}=await p;c=k,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:C},{key:N})=>s.compare(C,N)),NodeClass:c,distance:i}),b=await m(g,o,s),k=await t.from({...n,entries:[...w.entryList.entries,...b,...l].sort(({key:C},{key:N})=>s.compare(C,N)),NodeClass:a,distance:i});return await m(k,o,s)}}else{let g=await d(h,w.entryList.entries),b=await t.from({...n,entries:g.sort(({key:v},{key:C})=>s.compare(v,C)),NodeClass:c,distance:i}),k=await m(b,o,s);return await d(k,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=S1(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 C1(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 wt({entries:c,closed:!0})),c=[]);return c.length&&s.push(new wt({entries:c,closed:!1})),s.map(a=>new n({entryList:a,chunker:r,distance:o,...i}))}},fi=class extends bt{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 Ve(r),this.block}},Ir=class extends fi{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}},Lr=class extends fi{async encodeNode(){return{leaf:await Promise.all(this.entryList.entries.map(async r=>await r.encodeNode())),closed:this.closed}}get isLeaf(){return!0}},di=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 bt.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 bt.from({entries:m,chunker:s,NodeClass:n,distance:l,opts:a}),yield*u,l++}};var Ha=({bytes:t},{bytes:e})=>bh(t,e),hi=class extends $t{constructor(e){super({address:e,key:e}),this.cid=e}encodeNode(){return this.cid}identity(){let e=this.cid.multihash.bytes;return Un(e)}},pi=class extends $t{async identity(){let{multihash:{bytes:e}}=await this.address;return Un(e)}},yi=class extends Ir{},mi=class extends Lr{},kh=(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:Ha},l,d;if(a.leaf)l=a.leaf.map(h=>new hi(h)),d=mi;else if(a.branch){let[h,p]=a.branch;u.distance=h,l=p.map(([w,g])=>new pi({key:w,address:g})),d=yi}else throw new Error("Unknown block data, does not match schema");let m=new wt({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},vh=({get:t,cache:e,chunker:r,list:n,codec:o,hasher:i,sorted:s})=>{s||(n=n.sort(Ha));let c=kh(t,e,r,o,i);return di({list:n,codec:o,hasher:i,chunker:r,getNode:c,sorted:s,compare:Ha,cache:e,LeafClass:mi,LeafEntryClass:hi,BranchClass:yi,BranchEntryClass:pi})},Eh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,...s})=>kh(e,r,n,o,i,s)(t);var Sh=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 li({...h,key:n}),w=await Ve({...p,codec:Rt,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=>j.parse(f)),l;for await(let f of vh({list:u,get:t,cache:o,chunker:i,hasher:r,codec:V})){let h=await f.block;yield h,l=h}if(!l)throw new Error("missing last block");let d=[a,l.cid];yield await Ve({value:d,codec:V,hasher:r})},Ah=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 mt({...g,codec:V,hasher:i}):void 0),c=async w=>e(w).then(async g=>g?await mt({...g,codec:Rt,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 Eh({cid:l,get:s,cache:n,chunker:o,codec:Rt,hasher:i}),{result:f}=await m.getAllEntries(),h=async w=>{if(!w)throw new Error("missing block");w.value||(w=await mt({...w,codec:Rt,hasher:i}));let{bytes:g,cid:b}=await ui({...w,key:r}).catch(v=>{throw v});return await ii({cid:b,bytes:g,hasher:i,codec:Rt})},p=[];for(let{cid:w}of f)d.cid.equals(w)||p.push(c(w).then(h));yield*p,yield h(d)};var Dr={has:()=>!1,get:()=>{throw new Error("Cannot ask for entries from nocache")},set:()=>{}};var _h=Pn(30);function Bh(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 Ch(t,e,r){let n=Bh(t),o=n.buffer.slice(0,n.byteLength),i=new Ae,s=[];for(let{cid:u}of r.entries())s.push(u);let c=null;for await(let u of Sh({cids:s,get:r.get.bind(r),key:o,hasher:le,chunker:_h,cache:Dr,root:e}))await i.put(u.cid,u.bytes),c=u;if(!c)throw new Error("no blocks encrypted");return await si([c.cid],i)}async function Th(t,e){let n=(await e.getRoots())[0];return await T1(n,e.get.bind(e),t)}async function T1(t,e,r){let n=Bh(r),o=n.buffer.slice(0,n.byteLength),i=new Ae,s=null;for await(let c of Ah({root:t,get:e,key:o,hasher:le,chunker:_h,cache:Dr}))await i.put(c.cid,c.bytes),s=c;if(!s)throw new Error("no blocks decrypted");return{blocks:i,root:s.cid}}var ja=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(`${Ze} unsupported type: Uint8Array`)}[y.string.major](e,r){this.prefix(e);let n=Io(JSON.stringify(r.value));e.push(n.length>32?fn(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(`${Ze} 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 I1(t,e){if(Array.isArray(t[0])||Array.isArray(e[0]))throw new Error(`${Ze} 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(`${Ze} non-string map keys are not supported`);if(r<n)return-1;if(r>n)return 1;throw new Error(`${Ze} unexpected duplicate map keys, this is not supported`)}var L1={addBreakTokens:!0,mapSorter:I1};function Va(t,e){return e=Object.assign({},L1,e),ca(t,new ja,e)}var Nr=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(`${T} 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(`${T} 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 E(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(`${T} unexpected token at position ${this.pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${T} 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 E(y.float,s,this.pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new E(s>=0?y.uint:y.negint,s,this.pos-e):new E(s>=0?y.uint:y.negint,BigInt(i),this.pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${T} 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 E(y.string,a,s)}}let e=this.pos,r=[],n=()=>{if(this.pos+4>=this.data.length)throw new Error(`${T} 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(`${T} 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(`${T} 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(`${T} 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(`${T} unexpected string escape character at position ${this.pos}`)}break;case 34:return this.pos++,new E(y.string,ra(r),this.pos-e);default:if(i<32)throw new Error(`${T} invalid control character at position ${this.pos}`);i<128?(r.push(i),this.pos++):o()}}throw new Error(`${T} unexpected end of string at position ${this.pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this.pos++,new E(y.map,1/0,1);case 91:return this.modeStack.push("array-start"),this.pos++,new E(y.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new E(y.null,null,4);case 102:return this.expect([102,97,108,115,101]),new E(y.false,!1,5);case 116:return this.expect([116,114,117,101]),new E(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(`${T} 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 E(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${T} 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 E(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 E(y.break,void 0,1);if(this.ch()!==44)throw new Error(`${T} 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 E(y.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${T} 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(`${T} unexpected parse state at position ${this.pos}; this shouldn't happen`)}}};function qa(t,e){return e=Object.assign({tokenizer:new Nr(t,e)},e),wn(t,e)}var Wa=se({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),b6=se({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x6=se({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),k6=se({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function N1(t){if(t.asCID!==t&&t["/"]!==t.bytes)return null;let e=j.asCID(t);if(!e)return null;let r=e.toString();return[new E(y.map,1/0,1),new E(y.string,"/",1),new E(y.string,r,r.length),new E(y.break,void 0,1)]}function gi(t){let e=Wa.encode(t).slice(1);return[new E(y.map,1/0,1),new E(y.string,"/",1),new E(y.map,1/0,1),new E(y.string,"bytes",5),new E(y.string,e,e.length),new E(y.break,void 0,1),new E(y.break,void 0,1)]}function Ue(t){return gi(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function U1(t){return gi(new Uint8Array(t))}function P1(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function F1(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 M1={typeEncoders:{Object:N1,Buffer:gi,Uint8Array:gi,Int8Array:Ue,Uint16Array:Ue,Int16Array:Ue,Uint32Array:Ue,Int32Array:Ue,Float32Array:Ue,Float64Array:Ue,Uint8ClampedArray:Ue,BigInt64Array:Ue,BigUint64Array:Ue,DataView:Ue,ArrayBuffer:U1,undefined:P1,number:F1}},Ka=class extends Nr{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 E(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=Wa.decode(`m${i.value}`);return new E(y.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(r)}return e}},Ga={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Ga.tags[42]=j.parse;var R1=t=>Va(t,M1),O1=t=>{let e=Object.assign(Ga,{tokenizer:new Ka(t,Ga)});return qa(t,e)},wi=t=>z1.decode(R1(t));var z1=new TextDecoder,bi=t=>O1($1.encode(t)),$1=new TextEncoder;var H1=(t,e)=>e.some(r=>t instanceof r),Ih,Lh;function j1(){return Ih||(Ih=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function V1(){return Lh||(Lh=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Dh=new WeakMap,Ja=new WeakMap,Nh=new WeakMap,Qa=new WeakMap,Ya=new WeakMap;function q1(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&&Dh.set(r,t)}).catch(()=>{}),Ya.set(e,t),e}function W1(t){if(Ja.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)});Ja.set(t,e)}var Xa={get(t,e,r){if(t instanceof IDBTransaction){if(e==="done")return Ja.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Nh.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 Uh(t){Xa=t(Xa)}function K1(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let n=t.call(xi(this),e,...r);return Nh.set(n,e.sort?e.sort():[e]),qe(n)}:V1().includes(t)?function(...e){return t.apply(xi(this),e),qe(Dh.get(this))}:function(...e){return qe(t.apply(xi(this),e))}}function G1(t){return typeof t=="function"?K1(t):(t instanceof IDBTransaction&&W1(t),H1(t,j1())?new Proxy(t,Xa):t)}function qe(t){if(t instanceof IDBRequest)return q1(t);if(Qa.has(t))return Qa.get(t);let e=G1(t);return e!==t&&(Qa.set(t,e),Ya.set(e,t)),e}var xi=t=>Ya.get(t);function Fh(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 Q1=["get","getKey","getAll","getAllKeys","count"],J1=["put","add","delete","clear"],Za=new Map;function Ph(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Za.get(e))return Za.get(e);let r=e.replace(/FromIndex$/,""),n=e!==r,o=J1.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Q1.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 Za.set(e,i),i}Uh(t=>({...t,get:(e,r,n)=>Ph(e,r)||t.get(e,r,n),has:(e,r)=>!!Ph(e,r)||t.has(e,r)}));var ec="0.13.4-dev";var Mh=ec.match(/^([^.]*\.[^.]*)/);if(!Mh)throw new Error("invalid version: "+ec);var Ei=Mh[0],tc=class{STORAGE_VERSION=Ei;name;constructor(e){this.name=e}},ki=class extends tc{tag="header-base";makeHeader({car:e,key:r}){return wi({car:e,key:r})}parseHeader(e){return bi(e)}},vi=class{tag="car-base";STORAGE_VERSION=Ei;loader;constructor(e){this.loader=e}};var Si=class{tag="rwal-base";STORAGE_VERSION=Ei;loader;ready;walState={operations:[],noLoaderOps:[],fileOperations:[]};processing=void 0;constructor(e){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=ln(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 Ur=class extends vi{tag="car-browser-idb";idb=null;async _withDB(e){if(!this.idb){let r=`fp.${this.STORAGE_VERSION}.${this.loader.keyId}.${this.loader.name}`;this.idb=await Fh(r,1,{upgrade(n){n.createObjectStore("cars")}})}return await e(this.idb)}async load(e){return await this._withDB(async r=>{let o=await r.transaction(["cars"],"readonly").objectStore("cars").get(e.toString());if(!o)throw new Error(`missing idb block ${e.toString()}`);return{cid:e,bytes:o}})}async save(e){return await this._withDB(async r=>{let n=r.transaction(["cars"],"readwrite");return await n.objectStore("cars").put(e.bytes,e.cid.toString()),await n.done})}async remove(e){return await this._withDB(async r=>{let n=r.transaction(["cars"],"readwrite");return await n.objectStore("cars").delete(e.toString()),await n.done})}},Ai=class extends Si{tag="wal-browser-ls";headerKey(e){return`fp.${this.STORAGE_VERSION}.wal.${this.loader.name}.${e}`}async load(e="main"){try{let r=localStorage.getItem(this.headerKey(e));return r?bi(r):null}catch{return null}}async save(e,r="main"){try{let n=wi(e);localStorage.setItem(this.headerKey(r),n)}catch{}}},_i=class extends ki{tag="header-browser-ls";headerKey(e){return`fp.${this.STORAGE_VERSION}.meta.${this.name}.${e}`}async load(e="main"){try{let r=localStorage.getItem(this.headerKey(e));return r?[this.parseHeader(r)]:null}catch{return null}}async save(e,r="main"){try{let n=this.headerKey(r),o=this.makeHeader(e);return localStorage.setItem(n,o),null}catch{return null}}};function Oh(t,e){return t.some(r=>r.equals(e))}function Rh(t,e=[]){let r=new Map;for(let n of t)Oh(e,n)||r.set(n.toString(),n);return[...r.values()]}function X1(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}var Fn=class{name;opts={};remoteMetaLoading;remoteMetaStore;remoteCarStore;remoteWAL;metaStore;carStore;carLog=[];carReaders=new Map;ready;key;keyId;getBlockCache=new Map;static defaultHeader;constructor(e,r){this.name=e,this.opts=r||this.opts,this.metaStore=new _i(this.name),this.carStore=new Ur(this),this.remoteWAL=new Ai(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=j.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),Oh(this.carLog,e.car))return;let r=await this.loadCarHeaderFromMeta(e);await this.getMoreReaders(r.cars),this.carLog=[...Rh([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 mh(r)}async _getKey(){return this.key?this.key:(this.opts.public||(ai()?await this.setKey(X1(ci(32))):console.warn("missing crypto module, using public mode")),this.key)}committing;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 yh(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 Ch(s,i[0],e):await si(i,e);if(rc(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=[...Rh([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 Sr.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 Th(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=ai();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=ln(5),n=e.filter(o=>!this.carReaders.has(o.toString()));await Promise.all(n.map(o=>r(()=>this.loadCar(o))))}};var Pr=q(qh(),1);var Bi=class extends $t{async identity(){let e=await this.codec.encode(await this.encodeNode()),r=await this.hasher.encode(e);return Un(r)}},Ht=class extends Bi{constructor(e,r){super(e,r),this.value=e.value}encodeNode(){return[this.key,this.value]}},jt=class extends Bi{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]}},Wh=async(t,e)=>{let{result:r,cids:n}=await t.getEntry(e);return{result:r.value,cids:n}},Kh=async(t,e)=>{let{result:r,cids:n}=await t.getEntries(e);return{result:r.map(o=>o.value),cids:n}},Vt=class extends Lr{get(e){return Wh(this,e)}getMany(e){return Kh(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...Gh,...r},n)}},qt=class extends Ir{get(e){return Wh(this,e)}getMany(e){return Kh(this,e)}bulk(e,r={},n=!0){return super.bulk(e,{...Gh,...r},n)}},Gh={LeafClass:Vt,LeafEntryClass:Ht,BranchClass:qt,BranchEntryClass:jt},Qh=(t,e,r,n,o,i,s)=>{let c=s.LeafClass||Vt,a=s.LeafEntryClass||Ht,u=s.BranchClass||qt,l=s.BranchEntryClass||jt,d=async f=>e.has(f)?e.get(f):t(f).then(h=>m(h)),m=ix({chunker:r,cache:e,getNode:d,codec:n,hasher:o,compare:i,LeafEntryClass:a,LeafClass:c,BranchEntryClass:l,BranchClass:u});return d},Jh=({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=Qh(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||Vt,LeafEntryClass:a.LeafEntryClass||Ht,BranchClass:a.BranchClass||qt,BranchEntryClass:a.BranchEntryClass||jt};return di(l)},Xh=({cid:t,get:e,cache:r,chunker:n,codec:o,hasher:i,compare:s,...c})=>Qh(e,r,n,o,i,s,c)(t);function ix({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,k])=>new s({key:b,value:k},l)),p=c;else if(m.branch){let[b,k]=m.branch;f.distance=b,h=k.map(([v,C])=>new a({key:v,address:C},l)),p=u}else throw new Error("Unknown block data, does not match schema");let w=new wt({entries:h,closed:m.closed}),g=new p({entryList:w,...f});return e.set(g),g}}var sx=(t,e)=>{let[r,n]=t,[o,i]=e,s=zt(r,o);return s!==0?s:ax(n,i)},ax=(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)?zt(t,e):1},Yh=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}},Zh=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}},oc=class extends Vt{get(e){return Yh(this,e)}range(e,r){return Zh(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...sc,...r},n)}},ic=class extends qt{get(e){return Yh(this,e)}range(e,r){return Zh(this,e,r)}bulk(e,r={},n=!0){return super.bulk(e,{...sc,...r},n)}},cx=oc,ux=ic,sc={LeafClass:cx,BranchClass:ux,LeafEntryClass:Ht,BranchEntryClass:jt},ep={...sc,compare:sx},tp=t=>(t={...ep,...t},Jh(t)),ac=t=>(t={...ep,...t},Xh(t));var Wt=class{cid=null;root=null},fx=(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:zt(t,e)},dx=(t,e)=>{let[r,n]=t,[o,i]=e,s=zt(r,o);return s!==0?s:fx(n,i)},uc={cache:Dr,chunker:Pn(30),codec:V,hasher:le,compare:dx},lc={cache:Dr,chunker:Pn(30),codec:V,hasher:le,compare:zt};function rp(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:[Pr.default.encode(a),n],value:u||null})});!s&&c&&r.push({key:[Pr.default.encode(c),n],value:null})}),r}function cc(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 ii({cid:n,bytes:o,hasher:le,codec:V})}}async function fc(t,e,r,n){if(!r.length)return e;if(!e.root)if(e.cid)e.root=await ac({cid:e.cid,get:cc(t),...n});else{let s=null,c=null;for await(let a of await tp({get:cc(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 dc(t,e,r){return await ac({cid:e,get:cc(t),...r})}async function Kt(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=Pr.default.decode(n.key),n.row&&!n.value&&(n.value=n.row,delete n.row),n))}}function hc(t){return t.map(e=>Pr.default.encode(e))}function pc(t){return Pr.default.encode(t)}function Mn({_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 yc(t,e,r,n);t.indexers.set(e,o)}return t.indexers.get(e)}var yc=class{blocks;crdt;name=null;mapFn=null;mapFnString="";byKey=new Wt;byId=new Wt;indexHead=void 0;includeDocsDefault=!1;initError=null;ready;constructor(e,r,n,o){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=hx(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 Kt(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(...hc(e.range));return await Kt(this.crdt,{result:o,...i},e)}if(e.key){let o=pc(e.key);return await Kt(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=pc(i);return(await Kt(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=hc([o,i]);return await Kt(this.crdt,await this.byKey.root.range(...s),e)}let{result:r,...n}=await this.byKey.root.getAllEntries();return await Kt(this.crdt,{result:r.map(({key:[o,i],value:s})=>({key:o,id:i,value:s})),...n},e)}_resetIndex(){this.byId=new Wt,this.byKey=new Wt,this.indexHead=void 0}async _hydrateIndex(){this.byId.root&&this.byKey.root||!this.byId.cid||!this.byKey.cid||(this.byId.root=await dc(this.blocks,this.byId.cid,lc),this.byKey.root=await dc(this.blocks,this.byKey.cid,uc))}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=rp(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 fc(a,this.byId,o.concat(s),lc),this.byKey=await fc(a,this.byKey,n.concat(i),uc),this.indexHead=r,{byId:this.byId.cid,byKey:this.byKey.cid,head:r,map:this.mapFnString,name:this.name}),c)}};function hx(t){return e=>{if(e[t])return e[t]}}var Ci=class t extends Fn{crdt;static defaultHeader={cars:[],compact:[],indexes:new Map};defaultHeader=t.defaultHeader;constructor(e,r,n){super(e,n),this.crdt=r}async _applyCarHeader(e){for(let[r,n]of Object.entries(e.indexes))Mn({_crdt:this.crdt},r,void 0,n)}makeCarHeader({indexes:e},r,n=!1){return n?{indexes:e,cars:[],compact:r}:{indexes:e,cars:r,compact:[]}}},Ti=class t extends Fn{static defaultHeader={cars:[],compact:[],head:[]};defaultHeader=t.defaultHeader;clock;remoteFileStore;fileStore;constructor(e,r,n){super(e,n),this.fileStore=new Ur(this),this.clock=r}async loadFileCar(e,r=!1){return await this.storesLoadCar(e,this.fileStore,this.remoteFileStore,r)}async _applyCarHeader(e,r=!1){r?await this.clock.applyHead(null,e.head,this.clock.head):await this.clock.applyHead(null,e.head,[])}makeCarHeader(e,r,n=!1){if(rc(e)){let o=[];for(let[,i]of Object.entries(e.files))o.push(i.cid);return{files:o}}else{let{head:o}=e;return n?{head:o,cars:[],compact:r}:{head:o,cars:r,compact:[]}}}};function rc(t){return t&&t.files!==void 0}var xt=class extends Ae{parent;constructor(e){super(),this.parent=e}async get(e){return this.parent.get(e)}async superGet(e){return super.get(e)}},Ii=class{ready;name=null;loader=null;opts={};transactions=new Set;constructor(e,r,n){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 xt(this);this.transactions.add(n);let o=await e(n),{car:i,done:s}=await r(n,o);return i?{...s,car:i}:s}},Li=class extends Ii{constructor(e,r,n){e?super(e,new Ci(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}))}},Di=class extends Ii{constructor(e,r,n){e?super(e,new Ti(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}))}},Ni=class{blocks;loader=null;cids=new Set;constructor(e){this.blocks=e,this.loader=e.loader}async get(e){return this.cids.add(e),await this.blocks.get(e)}};var gc=({name:t,code:e,encode:r})=>new mc(t,e,r),mc=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?Tt(this.code,r):r.then(n=>Tt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Ui({enumerable:t=!0,configurable:e=!1}={}){return{enumerable:t,configurable:e,writable:!1}}function*px(t,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r],i=H.asCID(n);i?yield[o.join("/"),i]:typeof n=="object"&&(yield*wc(n,o))}else{let r=H.asCID(e);r?yield[t.join("/"),r]:yield*wc(e,t)}}function*wc(t,e){if(t==null||t instanceof Uint8Array)return;let r=H.asCID(t);r&&(yield[e.join("/"),r]);for(let[n,o]of Object.entries(t)){let i=[...e,n];yield*px(i,o)}}function*yx(t,e){if(Array.isArray(e))for(let[r,n]of e.entries()){let o=[...t,r];yield o.join("/"),typeof n=="object"&&!H.asCID(n)&&(yield*bc(n,o))}else yield*bc(e,t)}function*bc(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"&&!H.asCID(n)&&(yield*yx(o,n))}}function mx(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=H.asCID(r);if(i)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:r}}var Pe=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:Ui(),bytes:Ui(),value:Ui(),asBlock:Ui()})}links(){return wc(this.value,[])}tree(){return bc(this.value,[])}get(e="/"){return mx(this.value,e.split("/").filter(Boolean))}};async function Pi({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=H.create(1,e.code,o);return new Pe({value:t,bytes:n,cid:i})}async function Fi({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=H.create(1,e.code,o);return new Pe({value:n,bytes:t,cid:i})}var xc={};X(xc,{sha256:()=>nt,sha512:()=>gx});import op from"crypto";var nt=gc({name:"sha2-256",code:18,encode:t=>Se(op.createHash("sha256").update(t).digest())}),gx=gc({name:"sha2-512",code:19,encode:t=>Se(op.createHash("sha512").update(t).digest())});async function On(t,e,r){let n=new We(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 ip(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 ip(n,s,r))return e;return e.concat(r)}var Rn=class extends Pe{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(e,r){return wx({data:e,parents:r??[]})}},We=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 wx(t){let{cid:e,bytes:r}=await Pi({value:t,codec:V,hasher:nt});return new Pe({cid:e,value:t,bytes:r})}async function bx(t){let{cid:e,value:r}=await Fi({bytes:t,codec:V,hasher:nt});return new Pe({cid:e,value:r,bytes:t})}async function ip(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*kc(t,e,r={}){let n=r.renderNodeLabel??(a=>xx(a.cid)),o=new We(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 xx=t=>`${String(t).slice(0,4)}..${String(t).slice(-4)}`;var Gt=class extends Pe{constructor({cid:e,value:r,bytes:n,prefix:o}){super({cid:e,value:r,bytes:n}),this.prefix=o}static create(){return Ke([])}};async function Ke(t,e){let{cid:r,bytes:n}=await Pi({value:t,codec:V,hasher:nt});return new Gt({cid:r,value:t,bytes:n,prefix:e??""})}async function sp(t,e){let{cid:r,value:n}=await Fi({bytes:t,codec:V,hasher:nt});if(!Array.isArray(n))throw new Error(`invalid shard: ${r}`);return new Gt({cid:r,value:n,bytes:t,prefix:e??""})}var Qt=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 sp(n.bytes,r)}};function vc(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 ap(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 Mi=64,vx=512*1024;async function zn(t,e,r,n,o={}){let i=new Qt(t),s=await i.get(e),c=await Ri(i,s,r),a=c[c.length-1],u=r.slice(a.prefix.length),l=[u,n],d=[];if(u.length>Mi){let h=Array.from(Array(Math.ceil(u.length/Mi)),(w,g)=>{let b=g*Mi;return{prefix:a.prefix+u.slice(0,b),skey:u.slice(b,b+Mi)}}),p=await Ke([[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 Ke([[h[w].skey,[p.cid]]],h[w].prefix),d.push(p);l=[h[0].skey,[p.cid]]}let m=vc(a.value,l),f=await Ke(m,a.prefix);if(f.bytes.length>(o.maxShardSize??vx)){let h=ap(m,l[0]);if(!h)throw new Error("shard limit reached");let{prefix:p,matches:w}=h,g=await Ke(w.filter(([v])=>v!==p).map(([v,C])=>[v.slice(p.length),C]),a.prefix+p);d.push(g);let b,k=w.find(([v])=>v===p);if(k){if(Array.isArray(k[1]))throw new Error(`expected "${p}" to be a shard value but found a shard link`);b=[g.cid,k[1]]}else b=[g.cid];m=m.filter(v=>w.every(C=>v[0]!==C[0])),m=vc(m,[p,b]),f=await Ke(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[k,v]=b;if(k!==w)return b;if(!Array.isArray(v))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return v[1]==null?[k,[f.cid]]:[k,[f.cid,v[1]]]});f=await Ke(g,p.prefix),d.push(f)}return{root:d[d.length-1].cid,additions:d,removals:c}}async function cp(t,e,r){let n=new Qt(t),o=await n.get(e),i=await Ri(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 Ec(t,e,r){let n=new Qt(t),o=await n.get(e),i=await Ri(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 Ke(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[k,v]=b;if(k!==w)return b;if(!Array.isArray(v))throw new Error(`"${w}" is not a shard link in: ${p.cid}`);return v[1]==null?[k,[f.cid]]:[k,[f.cid,v[1]]]});f=await Ke(g,p.prefix),l.push(f)}return{root:l[l.length-1].cid,additions:l,removals:d}}async function*up(t,e,r={}){let{prefix:n}=r,o=new Qt(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 Ri(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 Ri(t,await t.get(o[0],e.prefix+n),r.slice(n.length));return[e,...i]}}return[e]}async function lp(t,e,r,n,o){let i=new Ae;if(t=new Lt(i,t),!e.length){let g=await Gt.create();i.putSync(g.cid,g.bytes);let b=await zn(t,g.cid,r,n,o),k={type:"put",root:b.root,key:r,value:n},v=await Rn.create(k,e);return e=await On(t,e,v.cid),{root:b.root,additions:[g,...b.additions],removals:b.removals,head:e,event:v}}let s=new We(t),c=await Ac(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 dp(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 Ec(t,u,g.data.key);u=b.root;for(let k of b.additions)i.putSync(k.cid,k.bytes),d.set(k.cid.toString(),k);for(let k of b.removals)m.set(k.cid.toString(),k)}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 Rn.create(h,e);i.putSync(p.cid,p.bytes),e=await On(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 Fr(t,e){if(!e.length)throw new Error("cannot determine root of headless clock");let r=new Ae;t=new Lt(r,t);let n=new We(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 Ac(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 dp(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 Ec(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 fp(t,e,r){if(!e.length)return;let n=await Fr(t,e);return n.additions.length&&(t=new Lt(new Ae(n.additions),t)),cp(t,n.root,r)}async function*Sc(t,e,r){if(!e.length)return;let n=await Fr(t,e);n.additions.length&&(t=new Lt(new Ae(n.additions),t)),yield*up(t,n.root,r)}async function Ac(t,e){if(!e.length)return;let r=e.map(n=>[n]);for(;;){let n=!1;for(let o of r){let i=await Sx(t,o[o.length-1]);if(!i)continue;n=!0,o.push(i);let s=Ax(r);if(s)return s}if(!n)return}}async function Sx(t,e){let{value:r}=await t.get(e);return r.parents.length?r.parents.length===1?r.parents[0]:Ac(t,r.parents):e}function Ax(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 dp(t,e,r){if(e.length===1&&String(e[0])===String(r))return[];let n=new Map,o=await Promise.all(e.map(s=>hp(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 hp(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=>hp(t,a,r,n+1)));return i.concat(...c)}var jr={};X(jr,{DEFAULT_DIRECTORY_MODE:()=>vy,DEFAULT_FILE_MODE:()=>ky,NodeType:()=>P,code:()=>$r,createAdvancedFile:()=>Gx,createComplexFile:()=>Jx,createDirectoryShard:()=>_y,createEmptyFile:()=>Wx,createFileChunk:()=>Kx,createFileShard:()=>Qx,createFlatDirectory:()=>Ji,createRaw:()=>Ey,createShardedDirectory:()=>Ay,createSimpleFile:()=>Sy,createSymlink:()=>Cy,cumulativeContentByteLength:()=>Xe,cumulativeDagByteLength:()=>Hr,decode:()=>Ly,decodeMetadata:()=>Zt,encode:()=>Iy,encodeAdvancedFile:()=>Kc,encodeComplexFile:()=>Gc,encodeDirectory:()=>Zi,encodeDirectoryMetadata:()=>Yc,encodeFile:()=>By,encodeFileChunk:()=>Wc,encodeFileShard:()=>Xx,encodeHAMTShard:()=>Qc,encodeLink:()=>Xi,encodeMetadata:()=>Wn,encodeMode:()=>Ny,encodeRaw:()=>qc,encodeSimpleFile:()=>Yi,encodeSymlink:()=>Ty,filesize:()=>tk,matchFile:()=>ek,name:()=>Vc});var _x=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 Oi(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 pp(t,e){let r;return[r,e]=_c(t,e),[r&7,r>>3,e]}function Bx(t){let e={},r=t.length,n=0;for(;n<r;){let o,i;if([o,i,n]=pp(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]=Oi(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]=Oi(t,n),e.Name=_x.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 yp(t){let e=t.length,r=0,n,o=!1,i;for(;r<e;){let c,a;if([c,a,r]=pp(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]=Oi(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]=Oi(t,r),n.push(Bx(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 gp=new TextEncoder,mp=2**32,Cx=2**31;function Tx(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=$n(e,r,t.Tsize)-1,e[r]=24}if(typeof t.Name=="string"){let n=gp.encode(t.Name);r-=n.length,e.set(n,r),r=$n(e,r,n.length)-1,e[r]=18}return t.Hash&&(r-=t.Hash.length,e.set(t.Hash,r),r=$n(e,r,t.Hash.length)-1,e[r]=10),e.length-r}function wp(t){let e=Lx(t),r=new Uint8Array(e),n=e;if(t.Data&&(n-=t.Data.length,r.set(t.Data,n),n=$n(r,n,t.Data.length)-1,r[n]=10),t.Links)for(let o=t.Links.length-1;o>=0;o--){let i=Tx(t.Links[o],r.subarray(0,n));n-=i,n=$n(r,n,i)-1,r[n]=18}return r}function Ix(t){let e=0;if(t.Hash){let r=t.Hash.length;e+=1+r+Mr(r)}if(typeof t.Name=="string"){let r=gp.encode(t.Name).length;e+=1+r+Mr(r)}return typeof t.Tsize=="number"&&(e+=1+Mr(t.Tsize)),e}function Lx(t){let e=0;if(t.Data){let r=t.Data.length;e+=1+r+Mr(r)}if(t.Links)for(let r of t.Links){let n=Ix(r);e+=1+n+Mr(n)}return e}function $n(t,e,r){e-=Mr(r);let n=e;for(;r>=Cx;)t[e++]=r&127|128,r/=128;for(;r>=128;)t[e++]=r&127|128,r>>>=7;return t[e]=r,n}function Mr(t){return t%2===0&&t++,Math.floor((Dx(t)+6)/7)}function Dx(t){let e=0;return t>=mp&&(t=Math.floor(t/mp),e=32),t>=65536&&(t>>>=16,e+=16),t>=256&&(t>>>=8,e+=8),e+Nx[t]}var Nx=[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 Ux=["Data","Links"],Px=["Hash","Name","Tsize"],Bc=new TextEncoder;function xp(t,e){if(t===e)return 0;let r=t.Name?Bc.encode(t.Name):[],n=e.Name?Bc.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 bp(t,e){return!Object.keys(t).some(r=>!e.includes(r))}function Fx(t){if(typeof t.asCID=="object"){let r=H.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=H.asCID(t.Hash);try{r||(typeof t.Hash=="string"?r=H.parse(t.Hash):t.Hash instanceof Uint8Array&&(r=H.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 Cc(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=Bc.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(Fx),e.Links.sort(xp);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function kp(t){if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form");if(!bp(t,Ux))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(!bp(r,Px))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&&xp(r,t.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}var Jt=112;function vp(t){kp(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),wp(e)}function Ge(t){let e=yp(t),r={};return e.Data&&(r.Data=e.Data),e.Links&&(r.Links=e.Links.map(n=>{let o={};try{o.Hash=H.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 it=q(gy(),1),Or=it.default.Reader,Hc=it.default.Writer,D=it.default.util,ne=it.default.roots.unixfs||(it.default.roots.unixfs={}),zr=ne.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=D.newBuffer([]),t.prototype.filesize=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.blocksizes=D.emptyArray,t.prototype.hashType=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.fanout=D.Long?D.Long.fromBits(0,0,!0):0,t.prototype.mode=0,t.prototype.mtime=null,t.encode=function(r,n){if(n||(n=Hc.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")&&ne.UnixTime.encode(r.mtime,n.uint32(66).fork()).ldelim(),n},t.decode=function(r,n){r instanceof Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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=ne.UnixTime.decode(r,r.uint32());break;default:r.skipType(s&7);break}}if(!i.hasOwnProperty("Type"))throw D.ProtocolError("missing required 'Type'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ne.Data)return r;var n=new ne.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"?D.base64.decode(r.Data,n.Data=D.newBuffer(D.base64.length(r.Data)),0):r.Data.length&&(n.Data=r.Data)),r.filesize!=null&&(D.Long?(n.filesize=D.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 D.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)D.Long?(n.blocksizes[o]=D.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 D.LongBits(r.blocksizes[o].low>>>0,r.blocksizes[o].high>>>0).toNumber(!0))}if(r.hashType!=null&&(D.Long?(n.hashType=D.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 D.LongBits(r.hashType.low>>>0,r.hashType.high>>>0).toNumber(!0))),r.fanout!=null&&(D.Long?(n.fanout=D.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 D.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=ne.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=D.newBuffer(o.Data))),D.Long){var i=new D.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(D.Long){var i=new D.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(D.Long){var i=new D.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?ne.Data.DataType[r.Type]:r.Type),r.Data!=null&&r.hasOwnProperty("Data")&&(o.Data=n.bytes===String?D.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?D.Long.prototype.toString.call(r.filesize):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.blocksizes[s]):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.hashType):n.longs===Number?new D.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?D.Long.prototype.toString.call(r.fanout):n.longs===Number?new D.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=ne.UnixTime.toObject(r.mtime,n)),o},t.prototype.toJSON=function(){return this.constructor.toObject(this,it.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})(),g3=ne.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=D.Long?D.Long.fromBits(0,0,!1):0,t.prototype.FractionalNanoseconds=0,t.encode=function(r,n){return n||(n=Hc.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 Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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 D.ProtocolError("missing required 'Seconds'",{instance:i});return i},t.fromObject=function(r){if(r instanceof ne.UnixTime)return r;var n=new ne.UnixTime;return r.Seconds!=null&&(D.Long?(n.Seconds=D.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 D.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(D.Long){var i=new D.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?D.Long.prototype.toString.call(r.Seconds):n.longs===Number?new D.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,it.default.util.toJSONOptions)},t})(),w3=ne.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=Hc.create()),r.MimeType!=null&&Object.hasOwnProperty.call(r,"MimeType")&&n.uint32(10).string(r.MimeType),n},t.decode=function(r,n){r instanceof Or||(r=Or.create(r));for(var o=n===void 0?r.len:r.pos+n,i=new ne.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 ne.Metadata)return r;var n=new ne.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,it.default.util.toJSONOptions)},t})();var P=zr.DataType;var xy=Object.freeze([]),jc=new Uint8Array(0),ke=Object.freeze({}),ky=parseInt("0644",8),vy=parseInt("0755",8),$r=Jt,Vc="UnixFS",Et=(t,e)=>(Object(globalThis).debug&&console.log({data:t,links:e}),vp(Cc({Data:zr.encode(t).finish(),Links:e}))),Ey=t=>({type:P.Raw,content:t}),Wx=t=>Sy(jc,t),Sy=(t,e)=>({type:P.File,layout:"simple",content:t,metadata:Zt(e)}),Kx=t=>({type:P.File,layout:"simple",content:t}),Gx=(t,e)=>({type:P.File,layout:"advanced",parts:t,metadata:Zt(e)}),Qx=t=>({type:P.File,layout:"advanced",parts:t}),Jx=(t,e,r)=>({type:P.File,layout:"complex",content:t,parts:e,metadata:Zt(r)}),Ji=(t,e)=>({type:P.Directory,metadata:Zt(e),entries:t}),Ay=(t,e,r,n,o=ke)=>({type:P.HAMTShard,bitfield:e,fanout:Jc(r),hashType:Xc(n),entries:t,metadata:Zt(o)}),_y=(t,e,r,n)=>({type:P.HAMTShard,bitfield:e,fanout:Jc(r),hashType:Xc(n),entries:t}),qc=t=>Et({Type:P.Raw,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:xy},[]),By=(t,e=!1)=>{let r=e?ke:Object(t).metadata;switch(t.layout){case"simple":return Yi(t.content,r);case"advanced":return Kc(t.parts,r);case"complex":return Gc(t.content,t.parts,r);default:throw new TypeError(`File with unknown layout "${Object(t).layout}" was passed`)}},Wc=t=>Yi(t,ke),Xx=t=>Et({Type:P.File,blocksizes:t.map(qn),filesize:Xe(t)},t.map(Xi)),Kc=(t,e=ke)=>Et({Type:P.File,blocksizes:t.map(qn),filesize:Xe(t),...Wn(e)},t.map(Xi)),Xi=t=>({Name:"",Tsize:t.dagByteLength,Hash:t.cid}),Yi=(t,e=ke)=>Et({Type:P.File,Data:t.byteLength>0?t:void 0,filesize:t.byteLength,blocksizes:[],...Wn(e)},[]),Gc=(t,e,r=ke)=>Et({Type:P.File,Data:t,filesize:t.byteLength+Xe(e),blocksizes:e.map(qn)},e.map(Xi)),Zi=t=>Et({Type:t.type,...Yc(t.metadata||ke)},t.entries.map(Dy)),Qc=({bitfield:t,fanout:e,hashType:r,entries:n,metadata:o=ke})=>Et({Type:P.HAMTShard,Data:t.byteLength>0?t:void 0,fanout:Jc(e),hashType:Xc(r),...Yc(o)},n.map(Dy)),Jc=t=>{if(Math.log2(t)%1===0)return t;throw new TypeError(`Expected hamt size to be a power of two instead got ${t}`)},Xc=t=>{if(Number.isInteger(t))return t;throw new TypeError(`Expected an integer value instead got ${t}`)};var Cy=(t,e=ke)=>({type:P.Symlink,content:t,metadata:Zt(e)}),Ty=(t,e=!1)=>{let r=e?ke:Object(t).metadata;return Et({Type:P.Symlink,Data:t.content,...Wn(r||ke)},[])},Iy=(t,e=!0)=>{switch(t.type){case P.Raw:return qc(t.content);case P.File:return By(t);case P.Directory:return Zi(t);case P.HAMTShard:return Qc(t);case P.Symlink:return Ty(t);default:throw new Error(`Unknown node type ${Object(t).type}`)}},Ly=t=>{let e=Ge(t),r=zr.decode(e.Data),{Type:n,Data:o,mtime:i,mode:s,blocksizes:c,...a}=zr.toObject(r,{defaults:!1,arrays:!0,longs:Number,objects:!1}),u={...s&&{mode:s},...Yx(i)},l=e.Links;switch(r.Type){case P.Raw:return Ey(o);case P.File:return l.length===0?new Ki(o,u):o.byteLength===0?new Gi(wy(a.blocksizes,l),u):new Qi(o,wy(a.blocksizes,l),u);case P.Directory:return Ji(by(l),u);case P.HAMTShard:return Ay(by(l),o||jc,a.fanout,a.hashType,u);case P.Symlink:return Cy(o,u);default:throw new TypeError(`Unsupported node type ${r.Type}`)}},Yx=t=>t==null?void 0:{mtime:{secs:t.Seconds,nsecs:t.FractionalNanoseconds||0}};var wy=(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},by=t=>t.map(e=>({cid:e.Hash,name:e.Name||"",dagByteLength:e.Tsize||0})),Xe=t=>t.reduce((e,r)=>e+r.contentByteLength,0),Hr=(t,e)=>e.reduce((r,n)=>r+n.dagByteLength,t.byteLength),qn=t=>t.contentByteLength,Dy=({name:t,dagByteLength:e,cid:r})=>({Name:t,Tsize:e,Hash:r}),Yc=t=>Wn(t,vy),Wn=({mode:t,mtime:e},r=ky)=>({mode:t!=null?Ny(t,r):void 0,mtime:e!=null?Zx(e):void 0}),Zt=t=>t==null?ke:{...t.mode==null?void 0:{mode:Uy(t.mode)},...t.mtime==null?void 0:{mtime:t.mtime}},Zx=t=>t==null?void 0:t.nsecs!==0?{Seconds:t.secs,FractionalNanoseconds:t.nsecs}:{Seconds:t.secs},Ny=(t,e)=>{let r=t==null?void 0:Uy(t);return r===e||r==null?void 0:r},Uy=t=>t&4095|t&4294963200,ek=({content:t=jc,parts:e=xy,metadata:r=ke,...n})=>e.length===0?new Ki(t,r):t.byteLength===0?new Gi(e,r):new Qi(t,e,r),Ki=class{constructor(e,r){this.content=e,this.metadata=r,this.layout="simple",this.type=P.File}get filesize(){return this.content.byteLength}encode(){return Yi(this.content,this.metadata)}},Gi=class{constructor(e,r){this.parts=e,this.metadata=r}get layout(){return"advanced"}get type(){return P.File}get fileSize(){return Xe(this.parts)}get blockSizes(){return this.parts.map(qn)}encode(){return Kc(this.parts,this.metadata)}},Qi=class{constructor(e,r,n){this.content=e,this.parts=r,this.metadata=n}get layout(){return"complex"}get type(){return P.File}get fileSize(){return this.content.byteLength+Xe(this.parts)}get blockSizes(){return this.parts.map(qn)}encode(){return Gc(this.content,this.parts,this.metadata)}},tk=t=>{switch(t.type){case P.Raw:case P.Symlink:return t.content.byteLength;case P.File:switch(t.layout){case"simple":return t.content.byteLength;case"advanced":return Xe(t.parts);case"complex":return t.content.byteLength+Xe(t.parts)}default:return 0}};var rk=function*(t){let e=yield*t;yield*ts(e)};function*nu(){return yield os}var qr=function*(){yield is};var es=function*(t){let e=yield*nu();if(ok(t)){let r=!1,n;if(t.then(o=>{r=!1,n=o,St(e)},o=>{r=!0,n=o,St(e)}),yield*qr(),r)throw n;return n}else return ck(nk(e)),yield*qr(),t};function*nk(t){St(t)}var ok=t=>t!=null&&typeof t.then=="function",ts=function*(t){yield t},rs=function*(t){let e=[];for(let r of Object.entries(t)){let[n,o]=r;o!==Qn&&e.push(yield*Kr(sk(o,n)))}yield*iu(e)},ns=t=>t.length>0?ik(t.map(rk)):Qn;function*ik(t){let e=[];for(let r of t)e.push(yield*Kr(r));yield*iu(e)}var sk=(t,e)=>t===Qn?Qn:t instanceof Kn?new Kn([...t.tags,e],t.source):new Kn([e],t),Kn=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 is:case os:return e;default:{let r=e,{value:n}=r;for(let o of this.tags)n=ak(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"}},Jn=()=>Qn;var ak=(t,e)=>({type:t,[t]:e});var os=Symbol("current"),is=Symbol("suspend");var st=class t{static of(e){return e.group||Vr}static enqueue(e,r){e.group=r,r.stack.active.push(e)}constructor(e,r=[],n=new Set,o=new Wr(r,n)){this.driver=e,this.parent=t.of(e),this.stack=o,this.id=++Ry}},Zc=class{constructor(){this.status=Gn,this.stack=new Wr,this.id=0}},Wr=class{constructor(e=[],r=new Set){this.active=e,this.idle=r}static size({active:e,idle:r}){return e.length+r.size}},ck=t=>St(t[Symbol.iterator]()),St=t=>{let e=st.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(Vr.status===Gn)for(Vr.status=Oy;;)try{for(let r of ou(Vr));Vr.status=Gn;break}catch{Vr.stack.active.shift()}},uk=t=>St(t),ou=function*(t){let{active:e}=t.stack,r=e[0];for(t.stack.idle.delete(r);r;){let n=zy;e:for(;!n.done&&r===e[0];){let o=n.value;switch(o){case is:t.stack.idle.add(r);break e;case os:n=r.next(r);break;default:n=r.next(yield o);break}}e.shift(),r=e[0],t.stack.idle.delete(r)}};var Kr=(t,e)=>new ru(t,e),lk=(t,e)=>Fy(t,{ok:!0,value:e});var eu=(t,e)=>Fy(t,{ok:!1,error:e});function*Fy(t,e){try{let r=t,n=e.ok?r.return(e.value):r.throw(e.error);if(!n.done)if(n.value===is){let{idle:o}=st.of(r).stack;o.add(r)}else St(r)}catch{}}function*iu(t){if(t.length===0)return;let e=yield*nu(),r=new st(e),n=null;for(let o of t){let{result:i}=o;if(i){!i.ok&&!n&&(n=i);continue}fk(o,r)}try{if(n)throw n.error;for(;yield*ou(r),Wr.size(r.stack)>0;)yield*qr()}catch(o){for(let i of r.stack.active)yield*eu(i,o);for(let i of r.stack.idle)yield*eu(i,o),St(i);throw o}}var fk=(t,e)=>{let r=st.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*su(t){t.status===Gn&&(yield*t),t.result||(yield*iu([t]));let e=t.result;if(e.ok)return e.value;throw e.error}var tu=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}},ru=class extends tu{constructor(e,r=dk,n={},o=zy){super(n),this.id=++Ry,this.name=r.name||"",this.task=e,this.state=o,this.status=Gn,this.result,this.handler=n,this.controller}*resume(){uk(this)}join(){return su(this)}abort(e){return eu(this,e)}exit(e){return lk(this,e)}get[Symbol.toStringTag](){return"Fork"}*[Symbol.iterator](){return this.activate()}activate(){return this.controller=this.task[Symbol.iterator](),this.status=Oy,St(this),this}panic(e){this.result={ok:!1,error:e},this.status=Py;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=Py;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)}}},My=function*(t,e){let r=yield*nu(),n=new st(r);for(st.enqueue(t[Symbol.iterator](),n);;){for(let o of ou(n))st.enqueue(e(o)[Symbol.iterator](),n);if(Wr.size(n.stack)>0)yield*qr();else break}},Ry=0,Gn="idle",Oy="active",Py="finished",zy={done:!1,value:os},dk={},Qn=function*(){}(),Vr=new Zc;function au(){}Object.defineProperties(au,{prototype:{value:new Proxy(Object.prototype,{get(t,e,r){return typeof e=="symbol"?Reflect.get(t,e,r):r.get(e)}})}});var cu=()=>new Xn;var Hy=(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 cu();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 Xn(n,t.byteOffset+o,s)},hk=(t,e)=>e.byteLength>0?(t.segments.push(e),new Xn(t.segments,t.byteOffset,t.byteLength+e.byteLength)):t,pk=(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}}},yk=(t,e,r)=>{let n=r;for(let o of t.segments)e.set(o,n),n+=o.byteLength;return e};function*mk(t){for(let e of t.segments)yield*e}var Xn=class extends au{constructor(e=[],r=0,n=0){super(),this.segments=e,this.byteLength=n,this.length=n,this.byteOffset=r}[Symbol.iterator](){return mk(this)}slice(e,r){return Hy(this,e,r)}subarray(e,r){return Hy(this,e,r)}push(e){return hk(this,e)}get(e){return pk(this,e)}copyTo(e,r){return yk(this,e,r)}};var Yn=t=>{throw new Error(t)},jy=(t,e,...r)=>Yn(String.raw(t,JSON.stringify(e),...r)),Vy=new Uint8Array(0),qy=[];var Wy=t=>({config:t,buffer:cu()}),Ky=(t,e)=>e.byteLength>0?Qy(t.config,t.buffer.push(e),!1):{...t,chunks:qy},Gy=t=>Qy(t.config,t.buffer,!0),Qy=(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 Jy=()=>({mutable:!0,needs:{},nodes:{},links:{},linked:fu});var du=(t,e)=>{let r=Gr(e,{});for(let n of t){let{ready:o,has:i,wants:s}=Yy(n.children,r.links);s.length===0?r=Gr(r,{links:lu(void 0,i),linked:[{id:n.id,links:o}]}):r=Gr(r,{needs:lu(n.id,s),nodes:{[n.id]:{children:n.children,count:s.length}}})}return r},Xy=(t,e,r)=>{let n=r.needs[t],o=r.nodes[n];if(o!=null)if(o.count===1){let{ready:i,has:s}=Yy(o.children,{...r.links,[t]:e});return Gr(r,{needs:{[t]:void 0},links:lu(void 0,s),nodes:{[n]:void 0},linked:[{id:n,links:i}]})}else return Gr(r,{needs:{[t]:void 0},links:{[t]:e},nodes:{[n]:{...o,count:o.count-1}}});else return Gr(r,{links:{[t]:e}})},Gr=(t,{needs:e,nodes:r,links:n,linked:o})=>{let i=t.mutable?t:{...t},s=t.mutable?xk:void 0;return e&&(i.needs=uu(t.needs,e,s)),r&&(i.nodes=uu(t.nodes,r,s)),n&&(i.links=uu(t.links,n,s)),i.linked=o?bk(t.linked||fu,o,fu):t.linked||[],i},lu=(t,e)=>{let r={};for(let n of e)r[n]=t;return r},uu=(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},Yy=(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}},fu=Object.freeze([]),xk=Object.freeze({});var Zy=(t,e)=>{switch(t.type){case"write":return vk(e,t.bytes);case"link":return Ek(e,t.link);case"block":return{state:e,effect:Jn()};case"close":return Sk(e);case"end":return{state:e,effect:Jn()};default:return jy`File Writer got unknown message ${t}`}},em=(t,e,r)=>({status:"open",metadata:e,config:r,writer:t,chunker:Wy({chunker:r.chunker}),layout:r.fileLayout.open(),nodeQueue:Jy()}),vk=(t,e)=>{if(t.status==="open"){let{chunks:r,...n}=Ky(t.chunker,e),{nodes:o,leaves:i,layout:s}=t.config.fileLayout.write(t.layout,r),{linked:c,...a}=du(o,t.nodeQueue),u=[...tm(i,t.config),...hu(c,t.config)];return{state:{...t,chunker:n,layout:s,nodeQueue:a},effect:rs({link:ns(u)})}}else return Yn("Unable to perform write on closed file")},Ek=(t,{id:e,link:r,block:n})=>{let{linked:o,...i}=Xy(e,r,t.nodeQueue),s=hu(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():Jn();return{state:c,effect:rs({link:ns(s),block:Bk(t.writer,n),end:a})}},Sk=t=>{if(t.status==="open"){let{chunks:e}=Gy(t.chunker),{layout:r,...n}=t.config.fileLayout.write(t.layout,e),{root:o,...i}=t.config.fileLayout.close(r,t.metadata),[s,c]=Tk(o)?[[...n.nodes,...i.nodes],[...n.leaves,...i.leaves,o]]:[[...n.nodes,...i.nodes,o],[...n.leaves,...i.leaves]],{linked:a,...u}=du(s,t.nodeQueue),l=[...tm(c,t.config),...hu(a,t.config)],d=Kr(qr());return{state:{...t,chunker:null,layout:null,rootID:o.id,status:"closed",end:d,nodeQueue:u},effect:rs({link:ns(l),end:su(d)})}}else return{state:t,effect:Jn()}},tm=(t,e)=>t.map(r=>Ak(e,r,e.fileChunkEncoder)),Ak=function*({hasher:t,linker:e},{id:r,content:n},o){let i=o.encode(n?Ck(n):Vy),s=yield*es(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}},hu=(t,e)=>t.map(r=>_k(e,r)),_k=function*(t,{id:e,links:r},n){let o=t.fileEncoder.encode({type:P.File,layout:"advanced",parts:r,metadata:n}),i=yield*es(Promise.resolve(t.hasher.digest(o))),s=t.linker.createLink(t.fileEncoder.code,i),c={bytes:o,cid:s},a={cid:s,contentByteLength:Xe(r),dagByteLength:Hr(o,r)};return{id:e,block:c,link:a}},Bk=function*(t,e){(t.desiredSize||0)<=0&&(yield*es(t.ready)),t.write(e)},Ck=t=>t instanceof Uint8Array?t:t.copyTo(new Uint8Array(t.byteLength),0),Tk=t=>t.children==null;var yu={};X(yu,{context:()=>Lk,cut:()=>nm,name:()=>rm,type:()=>Dk,withMaxChunkSize:()=>pu});var rm="fixed",Lk={maxChunkSize:262144},Dk="Stateless",pu=t=>({type:"Stateless",context:{maxChunkSize:t},name:rm,cut:nm}),nm=({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 Zn=class{constructor(e,r,n){this.id=e,this.children=r,this.metadata=n}},ss=t=>({open:()=>Uk({width:t}),write:Pk,close:Fk}),Nk={width:174},Uk=({width:t}=Nk)=>({width:t,head:null,leafIndex:[],nodeIndex:[],lastID:0}),Pk=(t,e)=>{if(e.length===0)return{layout:t,nodes:de,leaves:de};{let{lastID:r}=t,[n,o]=t.head?[null,(e.unshift(t.head),e)]:e.length===1&&t.leafIndex.length===0?[e[0],de]:[null,e];if(o.length===0)return{layout:{...t,head:n},nodes:de,leaves:de};{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?im({...t,leafIndex:i,head:n,lastID:r},s):{layout:{...t,head:n,leafIndex:i,lastID:r},leaves:s,nodes:de}}}},im=(t,e=de,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;){om(i,1);let u=new Zn(++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 Zn(++o,u.splice(0,c));om(i,a+1),i[a].push(l.id),r.push(l)}}return{layout:{...t,lastID:o,leafIndex:s,nodeIndex:i},leaves:e,nodes:r}},Fk=(t,e)=>{let r=t;if(t.head)return{root:{id:1,content:t.head,metadata:e},leaves:de,nodes:de};if(t.leafIndex.length===0)return{root:{id:1,metadata:e},leaves:de,nodes:de};{let{nodes:n,layout:o}=im(r,de,[],!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:de}}else return{root:new Zn(o.lastID+1,c,e),nodes:n,leaves:de}}},om=(t,e)=>{for(;t.length<e;)t.push([]);return t},de=[];var At=()=>({chunker:yu,fileChunkEncoder:mu,smallFileEncoder:mu,fileEncoder:jr,fileLayout:ss(174),hasher:nt,linker:{createLink:H.createV1}}),_t=t=>({...At(),...t}),mu={code:$r,name:Vc,encode:Wc};var eo=({writer:t,metadata:e={},settings:r=At()})=>new gu(em(t,e,_t(r))),sm=async(t,e)=>(await cm(t,ts({type:"write",bytes:e})),t),am=async(t,{releaseLock:e=!1,closeWriter:r=!1}={})=>{await cm(t,ts({type:"close"}));let{state:n}=t;if(n.status==="linked")return r?await t.state.writer.close():e&&t.state.writer.releaseLock(),n.link;Yn(`Expected writer to be in 'linked' state after close, but it is in "${n.status}" instead`)},cm=(t,e)=>Kr(My(e,r=>{let{state:n,effect:o}=Zy(r,t.state);return t.state=n,o})),gu=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.config}write(e){return sm(this,e)}close(e){return am(this,e)}};var Rk=At,bu=({writer:t,settings:e=Rk(),metadata:r={}})=>new as({writer:t,metadata:r,settings:e,entries:new Map,closed:!1}),cs=(t,e,r,{overwrite:n=!1}={})=>{let o=xu(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},us=(t,e)=>(xu(t.state).entries.delete(e),t),xu=t=>{if(t.closed)throw new Error("Can not change written directory, but you can .fork() and make changes to it");return t},um=async(t,{closeWriter:e=!1,releaseLock:r=!1}={})=>{let{writer:n,settings:o,metadata:i}=xu(t.state);t.state.closed=!0;let s=[...lm(t)],c=Ji(s,i),a=Zi(c),u=await o.hasher.digest(a),l=o.linker.createLink($r,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:Hr(a,s)}},lm=function*({state:t}){for(let[e,{dagByteLength:r,cid:n}]of t.entries)yield{name:e,dagByteLength:r,cid:n}},fm=({state:t},{writer:e=t.writer,metadata:r=t.metadata,settings:n=t.settings}={})=>new as({writer:e,metadata:r,settings:n,entries:new Map(t.entries.entries()),closed:!1}),as=class{constructor(e){this.state=e}get writer(){return this.state.writer}get settings(){return this.state.settings}links(){return lm(this)}set(e,r,n){return cs(this,e,r,n)}remove(e){return us(this,e)}fork(e){return fm(this,e)}close(e){return um(this,e)}entries(){return this.state.entries.entries()}has(e){return this.state.entries.has(e)}get size(){return this.state.entries.size}};var ds={};X(ds,{API:()=>ls,and:()=>Wk,bitCount:()=>fs,empty:()=>dm,from:()=>zk,fromBytes:()=>Qk,get:()=>qk,or:()=>Kk,popcount:()=>ku,set:()=>hm,size:()=>$k,toBytes:()=>Gk,unset:()=>Vk});var ls={};var dm=(t=32)=>{if(t!==32)throw new Error(`Uint32 BitField does not support size: ${t}`);return 0},zk=(t,e)=>{let r=dm(e);for(let n of t)r=hm(r,n);return r},$k=t=>32,Hk=(t,e)=>t>>>e&31,jk=(t,e)=>1<<Hk(t,e),ku=(t,e=31)=>fs(t&jk(e,0)-1),hm=(t,e)=>t|1<<e,Vk=(t,e)=>t&(255^1<<e),qk=(t,e)=>(t>>e&1)!==0,fs=t=>{let e=t-(t>>1&1431655765),r=(e&858993459)+(e>>2&858993459);return(r+(r>>4)&252645135)*16843009>>24},Wk=(t,e)=>t&e,Kk=(t,e)=>t|e,Gk=t=>Uint8Array.of(t>>24&255,t>>16&255,t>>8&255,t&255),Qk=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 mm=q(vu(),1),Jk=new TextEncoder,Xk=mm.default.x64.hash126,gm=({bitWidth:t=5,hash:e=Xk})=>{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(Jk.encode(s)),size:Math.ceil(4*8/t)}};var Qr=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 ro(this.config)}lookup(e,r,n,o){return bm(this,e,r,n,o)}associate(e,r,n,o,i,s){return Au(this,e,r,n,o,i,s)}dissociate(e,r,n,o,i){return xm(this,e,r,n,o,i)}fork(e=null){return no(this,e)}entries(){return km(this)}keys(){return vm(this)}values(){return Em(this)}},ps=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 Yk(this,n,o)}associate(e,r,n,o,i,s){return Zk(this,e,n,o,i,s)}dissociate(e,r,n,o,i){return e2(this,e,n,o,i)}fork(e=null){return t2(this,e)}entries(){return km(this)}keys(){return vm(this)}values(){return Em(this)}},Yk=(t,e,r)=>{let{children:n,count:o}=t,i=Eu(n,o,e);return n[i]===e?n[i+1]:r},Zk=(t,e,r,n,o,i)=>{let{children:s,count:c}=t,a=Eu(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},e2=(t,e,r,n,o)=>{let{children:i,count:s,config:c}=t,a=Eu(i,s,n);if(i[a]!==n)return t;if(o.value=!0,s===2){let u=a===0?2:0;return Au(ro(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}},t2=(t,e=null)=>Bm(t.edit,e)?t:new ps(e,t.count,t.children.slice(),t.config),Eu=(t,e,r)=>{let n=0;for(;n<e&&t[n]>r;)n+=2;return n};var ro=(t,e=null)=>new Qr(e,t.BitField.empty(Math.pow(2,t.bitWidth)),t.BitField.empty(Math.pow(2,t.bitWidth)),[],t),ms=(t,e,r)=>bm(t,0,t.config.Path.from(e),e,r),bm=(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 gs(t,d)===n?ys(t,d):o}else return u.get(s,l)?ws(t,l).lookup(e+1,r,n,o):o},Su=(t,e,r,n,o)=>Au(t,e,0,t.config.Path.from(r),r,n,o),Au=(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=gs(t,f);if(o===h)return ys(t,f)===i?t:r2(t,e,f,i);{let p=Am(u,e,r+1,l.from(h),h,ys(t,f),n,o,i);return s.value=!0,o2(t,e,m,p)}}else if(d.get(a,m)){let f=ws(t,m),h=f.associate(e,r+1,n,o,i,s);return f===h?t:Sm(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(oo(f),0,o,i),h}},_u=(t,e,r,n)=>xm(t,e,0,t.config.Path.from(r),r,n);var xm=(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===gs(t,m)){i.value=!0;let f=no(t,e);return f.datamap=u.unset(t.datamap,d),f.children.splice(oo(m),2),f}else return t}else if(u.get(c,d)){let m=ws(t,d),f=m.dissociate(e,r+1,n,o,i);return i2(f)?s2(t)?f:n2(t,e,d,f):m===f?t:Sm(t,e,d,f)}else return t},km=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},no=(t,e)=>Bm(t.edit,e)?t:new Qr(e,t.datamap,t.nodemap,t.children.slice(),t.config),vm=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},Em=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},r2=(t,e,r,n)=>{let o=t.fork(e);return o.children[_m(r)]=n,o},n2=(t,e,r,n)=>{let{datamap:o,nodemap:i,config:s}=t,{BitField:c}=s,a=no(t,e);return a.children.splice(bs(t,r),1),a.children.splice(oo(c.popcount(o,r)),0,n.children[0],n.children[1]),a.datamap=c.set(o,r),a.nodemap=c.unset(i,r),a},Sm=(t,e,r,n)=>{let o=no(t,e);return o.children[bs(t,r)]=n,o},o2=(t,e,r,n)=>{let{nodemap:o,datamap:i,config:s}=t,{BitField:c}=s,a=c.popcount(i,r),u=oo(a),l=bs(t,r),d=no(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},Am=(t,e,r,n,o,i,s,c,a)=>{let{BitField:u,Path:l}=t;if(l.size<r)return new ps(e,2,[o,i,c,a],t);{let d=l.at(n,r),m=l.at(s,r);return d===m?new Qr(e,u.empty(Math.pow(2,t.bitWidth)),u.from([d],Math.pow(2,t.bitWidth)),[Am(t,e,r+1,n,o,i,s,c,a)],t):new Qr(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)}},gs=({children:t},e)=>t[oo(e)],oo=t=>t*2,ys=({children:t},e)=>t[_m(e)],_m=t=>t*2+1,ws=(t,e)=>t.children[bs(t,e)],bs=({children:t,nodemap:e,config:r},n)=>t.length-1-r.BitField.popcount(e,n),Bm=(t,e)=>t!=null&&t===e,i2=t=>t.nodeArity===0&&t.dataArity===1,s2=({config:{BitField:t},datamap:e,nodemap:r})=>t.popcount(e)===0&&t.popcount(r)===1;var xs=q(vu(),1);function a2(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 G3=Mt({name:"murmur3-32",code:35,encode:t=>a2(xs.default.x86.hash32(t))}),Tm=Mt({name:"murmur3-128",code:34,encode:t=>Nt.fromHex(xs.default.x64.hash128(t))}),io=Mt({name:"murmur3-x64-64",code:34,encode:t=>Nt.fromHex(xs.default.x64.hash128(t)).subarray(0,8)});var c2=new TextEncoder,u2=t=>io.encode(t),Im=({bitWidth:t=8,hash:e=u2}={})=>{let r=e(new Uint8Array).byteLength;return{from:i=>e(c2.encode(i)),at:(i,s)=>{let c=s*t;if(c>r)throw new RangeError("Out of bounds");return Bu(i,c,t)},size:Math.ceil(r*8/t)}},Bu=(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 Cu={};X(Cu,{API:()=>ls,and:()=>x2,empty:()=>Lm,from:()=>f2,fromBytes:()=>g2,get:()=>y2,or:()=>b2,popcount:()=>w2,set:()=>h2,size:()=>d2,toBytes:()=>m2,unset:()=>p2});var Lm=(t=256)=>{if(t%8!==0)throw new Error("Must be multiple of 8");return new Uint8Array(t/8)},f2=(t,e)=>{let r=Lm(e);for(let n of t){let{byte:o,byteOffset:i,bitOffset:s}=so(r,n);r[i]=o|1<<s}return r},d2=t=>t.byteLength*8,so=(t,e)=>{let r=t.byteLength-1-(e/8|0),n=e%8;return{byte:t[r],byteOffset:r,bitOffset:n}},Dm=(t,e,r)=>{if(t[e]!==r){let n=t.slice(0);return n[e]=r,n}return t},h2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=so(t,e);return Dm(t,n,r|1<<o)},p2=(t,e)=>{let{byte:r,byteOffset:n,bitOffset:o}=so(t,e);return Dm(t,n,r&(255^1<<o))},y2=(t,e)=>{var{byte:r,bitOffset:n}=so(t,e);return(r>>n&1)!==0},m2=t=>t,g2=t=>t,w2=(t,e=t.byteLength*8)=>{let{byteOffset:r,bitOffset:n,byte:o}=so(t,e),i=ku(o,n),s=t.byteLength-1;for(;s>r;){let c=t[s];i+=fs(c),s--}return i},b2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]|=e[n],n++;return r},x2=(t,e)=>{let r=t.slice(),n=0;for(;n<t.length;)r[n]&=e[n],n++;return r};var Nm=new RangeError("Not Found");var k2=({bitWidth:t=5,BitField:e=t===5?ds:Cu,Path:r=t===5?gm({bitWidth:t}):Im({bitWidth:t})}={})=>({bitWidth:t,BitField:e,Path:r});var Iu=(t,e)=>ms(t.root,e,Nm)!==Nm,Um=(t,e,r=void 0)=>ms(t.root,e,r),Pm=t=>{let e={},r=k2(t);return new ks(e,0,ro(r,e),r)},Tu=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,ro(this.config,null),this.config)}has(e){return Iu(this,e)}get(e){return ms(this.root,e,void 0)}set(e,r){let n={value:!1},o=Su(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 ks({},this.count,this.root,this.config)}},ks=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=Su(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 Tu(this.count,this.root,this.config);throw new Error(".build was called on the finalized builder")}};var v2=new TextEncoder,E2=t=>io.encode(t),Mm=({bitWidth:t=8,hash:e=E2})=>{let r=e(new Uint8Array).byteLength,n={bitWidth:t,hash:e,hashSize:r};return{at:(s,c)=>S2(s,c,n),from:s=>v2.encode(s),size:1/0}},S2=(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:A2(t,u)),d=i<=a?a%i:a,m=i-d,f=m<c?m:c;s=(s<<f)+Bu(l,d,f),c-=f,a+=f}return s},A2=(t,e)=>{let r=new Uint8Array(t.byteLength+1).fill(e,t.byteLength);return r.set(t),r};var Rm=8,B2={bitWidth:Rm,Path:Mm({bitWidth:Rm})};var Lu=(t=B2)=>Pm(t);var Om=class extends Map{constructor(e=Lu()){super(),this.builder=e}clear(){this.builder=Lu()}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 Um(this.builder,e)}has(e){return Iu(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 zm=({writable:t,settings:e=At()})=>new Du({writer:t.getWriter(),settings:e}),T2=async(t,{releaseLock:e=!0,closeWriter:r=!0}={})=>(r?await t.writer.close():e&&t.writer.releaseLock(),t),Du=class{constructor({writer:e,settings:r}){this.writer=e,this.settings=_t(r)}createFileWriter({settings:e=this.settings,metadata:r}={}){return eo({writer:this.writer,settings:e,metadata:r})}createDirectoryWriter({settings:e=this.settings,metadata:r}={}){return bu({writer:this.writer,settings:e,metadata:r})}close(e){return T2(this,e)}},I2=1048576,L2=I2*100,$m=(t=L2)=>({highWaterMark:t,size:e=>e.bytes.length});var Os=q(Ye(),1);function U2(t){return t[Symbol.asyncIterator]!=null}function P2(t){if(U2(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 Vm=P2;var Wg=q(Ye(),1);var qm=0,F2="identity",Wm=ie,M2=t=>Ut(qm,Wm(t)),Km={code:qm,name:F2,encode:Wm,digest:M2};var Gm=q(Ye(),1);var R2=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=br(a),l=u,d=r;for(;n.length>0;){let m=n[0];if(m in l){n.shift(),d=`${d}/${m}`;let f=j.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,Gm.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}}}},Qm=R2;var Jm=q(Ye(),1);var ae=class extends Event{constructor(e,r){super(e),this.detail=r}};function O2(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 er=O2;var ao=q(Ye(),1),z2=(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,ao.default)(new Error("Offset must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(o>n)throw(0,ao.default)(new Error("Offset must be less than the file size"),"ERR_INVALID_PARAMS");if(i<0n)throw(0,ao.default)(new Error("Length must be greater than or equal to 0"),"ERR_INVALID_PARAMS");if(i>n)throw(0,ao.default)(new Error("Length must be less than the file size"),"ERR_INVALID_PARAMS");return{start:o,end:i}},Jr=z2;var $2=t=>{async function*e(r={}){let{start:n,end:o}=Jr(t.length,r.offset,r.length),i=er(t,0n,n,o);r.onProgress?.(new ae("unixfs:exporter:progress:identity",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},H2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,Jm.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=$o(t.multihash.bytes);return{entry:{type:"identity",name:e,path:r,cid:t,content:$2(a.digest),depth:i,size:BigInt(a.digest.length),node:a.digest}}},Xm=H2;var Ym=q(Ye(),1);var j2=t=>{async function*e(r={}){let{start:n,end:o}=Jr(t.length,r.offset,r.length),i=er(t,0n,n,o);r.onProgress?.(new ae("unixfs:exporter:progress:raw",{bytesRead:BigInt(i.byteLength),totalBytes:o-n,fileSize:BigInt(t.byteLength)})),yield i}return e},V2=async(t,e,r,n,o,i,s,c)=>{if(n.length>0)throw(0,Ym.default)(new Error(`No link named ${r} found in raw node ${t}`),"ERR_NOT_FOUND");let a=await s.get(t,c);return{entry:{type:"raw",name:e,path:r,cid:t,content:j2(a),depth:i,size:BigInt(a.length),node:a}}},Zm=V2;var ko=q(Ye(),1);var Ru=q(Ye(),1);var Nu=q(Wi(),1),eg=q(zc(),1),tg=q(ot(),1),Uu=q(Vi(),1),rg=q(Mc(),1);function q2(){tg.default._configure(),Nu.default._configure(eg.default),Uu.default._configure(rg.default)}q2();var ng=["uint64","int64","sint64","fixed64","sfixed64"];function W2(t){for(let e of ng){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Pu(t){return W2(new Nu.default(t))}function K2(t){for(let e of ng){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Fu(){return K2(Uu.default.create())}function co(t,e){let r=Pu(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function uo(t,e){let r=Fu();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Xr;(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"})(Xr||(Xr={}));function vs(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Mu(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 vs("enum",Xr.VARINT,r,n)}function lo(t,e){return vs("message",Xr.LENGTH_DELIMITED,t,e)}var Re;(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=()=>Mu(r)}(e=t.DataType||(t.DataType={}));let n;t.codec=()=>(n==null&&(n=lo((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),Es.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=Es.codec().decode(o,o.uint32());break;default:o.skipType(a&7);break}}return s})),n),t.encode=o=>uo(o,t.codec()),t.decode=o=>co(o,t.codec())})(Re||(Re={}));var Es;(function(t){let e;t.codec=()=>(e==null&&(e=lo((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=>uo(r,t.codec()),t.decode=r=>co(r,t.codec())})(Es||(Es={}));var og;(function(t){let e;t.codec=()=>(e==null&&(e=lo((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=>uo(r,t.codec()),t.decode=r=>co(r,t.codec())})(og||(og={}));var ig={Raw:"raw",Directory:"directory",File:"file",Metadata:"metadata",Symlink:"symlink",HAMTShard:"hamt-sharded-directory"},G2=["directory","hamt-sharded-directory"],sg=parseInt("0644",8),ag=parseInt("0755",8),Yr=class t{static unmarshal(e){let r=Re.decode(e),n=new t({type:ig[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}type;data;blockSizes;hashType;fanout;mtime;_mode;_originalMode;constructor(e={type:"file"}){let{type:r,data:n,blockSizes:o,hashType:i,fanout:s,mtime:c,mode:a}=e;if(r!=null&&!Object.values(ig).includes(r))throw(0,Ru.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}set mode(e){e==null?this._mode=this.isDirectory()?ag:sg:this._mode=e&4095}get mode(){return this._mode}isDirectory(){return G2.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=Re.DataType.Raw;break;case"directory":e=Re.DataType.Directory;break;case"file":e=Re.DataType.File;break;case"metadata":e=Re.DataType.Metadata;break;case"symlink":e=Re.DataType.Symlink;break;case"hamt-sharded-directory":e=Re.DataType.HAMTShard;break;default:throw(0,Ru.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===sg&&!this.isDirectory()&&(n=void 0),n===ag&&this.isDirectory()&&(n=void 0));let o;return this.mtime!=null&&(o={Seconds:this.mtime.secs,FractionalNanoseconds:this.mtime.nsecs}),Re.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 wg=q(lg(),1);var Ou={};X(Ou,{identity:()=>Y2});var Y2=ur({prefix:"\0",name:"identity",encode:t=>wl(t),decode:t=>gl(t)});var zu={};X(zu,{base2:()=>Z2});var Z2=K({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var $u={};X($u,{base8:()=>ev});var ev=K({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Hu={};X(Hu,{base10:()=>tv});var tv=ut({prefix:"9",name:"base10",alphabet:"0123456789"});var ju={};X(ju,{base16:()=>rv,base16upper:()=>nv});var rv=K({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),nv=K({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Vu={};X(Vu,{base36:()=>ov,base36upper:()=>iv});var ov=ut({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),iv=ut({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var qu={};X(qu,{base64:()=>sv,base64pad:()=>av,base64url:()=>cv,base64urlpad:()=>uv});var sv=K({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),av=K({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),cv=K({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),uv=K({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Wu={};X(Wu,{base256emoji:()=>pv});var fg=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}"),lv=fg.reduce((t,e,r)=>(t[r]=e,t),[]),fv=fg.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function dv(t){return t.reduce((e,r)=>(e+=lv[r],e),"")}function hv(t){let e=[];for(let r of t){let n=fv[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var pv=ur({prefix:"\u{1F680}",name:"base256emoji",encode:dv,decode:hv});var Ku={};X(Ku,{identity:()=>gv});var dg=0,yv="identity",hg=Se,mv=t=>Tt(dg,hg(t)),gv={code:dg,name:yv,encode:hg,digest:mv};var ET=new TextEncoder,ST=new TextDecoder;var Gu={...Ou,...zu,...$u,...Hu,...ju,...Ys,...Vu,...Xs,...qu,...Wu},_T={...xc,...Ku};function Zr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Ss(t=0){return globalThis.Buffer?.allocUnsafe!=null?Zr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function yg(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var pg=yg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Qu=yg("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=Ss(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),xv={utf8:pg,"utf-8":pg,hex:Gu.base16,latin1:Qu,ascii:Qu,binary:Qu,...Gu},mg=xv;function gg(t,e="utf8"){let r=mg[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Zr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var tr=class t{constructor(e,r,n=0){this._options=e,this._popCount=0,this._parent=r,this._posAtParent=n,this._children=new wg.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 bg(this,e,r)}toJSON(){return this.serialize(vv,Ev)}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"?gg(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(kv);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 kv(t){return!!t}function vv(t,e){return t.key}function Ev(t){return t}async function bg(t,e,r){let n=[];for(let o of t._children.compactArray())if(o instanceof tr)await bg(o,e,r);else{let i=await e(o);n.push({bitField:t._children.bitField(),children:i})}return await r(n)}var Sv=[255,254,252,248,240,224,192,128],Av=[1,3,7,15,31,63,127,255],As=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=_v(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 _v(t,e,r){let n=Bv(e,r);return(t&n)>>>e}function Bv(t,e){return Sv[t]&Av[Math.min(e+t-1,7)]}function xg(t,e){e==null&&(e=t.reduce((o,i)=>o+i.length,0));let r=Ss(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return Zr(r)}function kg(t){function e(r){return r instanceof _s?r:new _s(r,t)}return e}var _s=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?xg([this._value,Uint8Array.from([this._depth])]):this._value,r=await this._hashFn(e),n=new As(r);this._buffers.push(n),this._availableBits+=n.availableBits()}};function vg(t){if(t==null||t.hashFn==null)throw new Error("please define an options.hashFn");let e={bits:t.bits??8,hash:kg(t.hashFn)};return new tr(e)}var Cv=async function(t){return(await Tm.encode(t)).slice(0,8).reverse()},Tv=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 tr({hash:r._options.hash,bits:r._options.bits},e,o));return}await r.put(n.Name.substring(2),!0)}))},Eg=t=>t.toString(16).toUpperCase().padStart(2,"0").substring(0,2),Iv=t=>{let e=t.bucket,r=[];for(;e._parent!=null;)r.push(e),e=e._parent;return r.push(e),r.reverse()},Sg=async(t,e,r,n,o)=>{if(n==null){let l=vg({hashFn:Cv});n={rootBucket:l,hamtDepth:1,lastBucket:l}}await Tv(t.Links,n.lastBucket,n.rootBucket);let i=await n.rootBucket._findNewBucketAndPos(e),s=Eg(i.pos),c=Iv(i);c.length>n.hamtDepth&&(n.lastBucket=c[n.hamtDepth],s=Eg(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=Ge(u),Sg(t,e,r,n,o)},Ag=Sg;function Lv(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 Bs=Lv;function Dv(t){return t[Symbol.asyncIterator]!=null}function Nv(t,e){if(Dv(t))return async function*(){for await(let c of t)await e(c)&&(yield c)}();let r=Bs(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 _g=Nv;function Uv(t){return t[Symbol.asyncIterator]!=null}function Pv(t,e){if(Uv(t))return async function*(){for await(let c of t)yield e(c)}();let r=Bs(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 en=Pv;function at(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Cs=globalThis.CustomEvent??Event;async function*rr(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=at(),c=at(),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=at(),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 Cs("task-complete"))},w=>{p.done=!0,p.err=w,o.dispatchEvent(new Cs("task-complete"))})}a=!0,o.dispatchEvent(new Cs("task-complete"))}catch(h){u=h,o.dispatchEvent(new Cs("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=at(),await c.promise),u!=null)throw u;if(n?yield*m():yield*f(),a&&i.length===0)break}}var Ts=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},tn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Ts(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 Ts(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 Ju=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function rn(t={}){return Fv(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 Fv(t,e){e=e??{};let r=e.onEnd,n=new tn,o,i,s,c=at(),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(k){g(k)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=at()})}},u=w=>i!=null?i(w):(n.push(w),o),l=w=>(n=new tn,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 tn,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,k;g!=null&&(b=new Promise((v,C)=>{k=()=>{C(new Ju)},g.addEventListener("abort",k)}));try{await Promise.race([c.promise,b])}finally{k!=null&&g!=null&&g?.removeEventListener("abort",k)}}},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 Mv(t){return t[Symbol.asyncIterator]!=null}function Rv(...t){let e=[];for(let r of t)Mv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=rn({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 Bg=Rv;function nn(t,...e){if(t==null)throw new Error("Empty pipeline");if(Xu(t)){let n=t;t=()=>n.source}else if(Tg(t)||Cg(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&Xu(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++)Xu(r[n])&&(r[n]=zv(r[n]));return Ov(...r)}var Ov=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Cg=t=>t?.[Symbol.asyncIterator]!=null,Tg=t=>t?.[Symbol.iterator]!=null,Xu=t=>t==null?!1:t.sink!=null&&t.source!=null,zv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=rn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let o,i=t.source;if(Cg(i))o=async function*(){yield*i,n.end()};else if(Tg(i))o=function*(){yield*i,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Bg(n,o())}return t.source};var $v=(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 ae("unixfs:exporter:walk:directory",{cid:t})),yield*nn(d,m=>en(m,f=>async()=>{let h=f.Name??"",p=`${n}/${h}`;return(await o(f.Hash,h,p,[],i+1,s,a)).entry}),m=>rr(m,{ordered:!0}),m=>_g(m,f=>f!=null))}return c},Ig=$v;var or=q(Ye(),1);var $g=q(Dg(),1);var ho=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Zu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ng=t=>globalThis.DOMException===void 0?new Zu(t):new DOMException(t),Ug=t=>{let e=t.reason===void 0?Ng("This operation was aborted."):t.reason;return e instanceof Error?e:Ng(e)};function el(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(Ug(a)),a.addEventListener("abort",()=>{c(Ug(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 ho(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 tl(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 nr=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)},ct,po=class{constructor(){ct.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&nr(this,ct,"f")[this.size-1].priority>=r.priority){nr(this,ct,"f").push(n);return}let o=tl(nr(this,ct,"f"),n,(i,s)=>s.priority-i.priority);nr(this,ct,"f").splice(o,0,n)}dequeue(){let e=nr(this,ct,"f").shift();return e?.run}filter(e){return nr(this,ct,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return nr(this,ct,"f").length}};ct=new WeakMap;var W=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},I=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)},J,mo,go,Ct,Fs,wo,Ls,Oe,yo,ve,Ds,Ee,bo,Bt,Ns,Pg,Fg,Og,Mg,Rg,Us,rl,nl,Ms,zg,Ps,Rs=class extends Error{},xo=class extends $g.default{constructor(e){var r,n,o,i;if(super(),J.add(this),mo.set(this,void 0),go.set(this,void 0),Ct.set(this,0),Fs.set(this,void 0),wo.set(this,void 0),Ls.set(this,0),Oe.set(this,void 0),yo.set(this,void 0),ve.set(this,void 0),Ds.set(this,void 0),Ee.set(this,0),bo.set(this,void 0),Bt.set(this,void 0),Ns.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:po,...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})`);W(this,mo,e.carryoverConcurrencyCount,"f"),W(this,go,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),W(this,Fs,e.intervalCap,"f"),W(this,wo,e.interval,"f"),W(this,ve,new e.queueClass,"f"),W(this,Ds,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,W(this,Ns,e.throwOnTimeout===!0,"f"),W(this,Bt,e.autoStart===!1,"f")}get concurrency(){return I(this,bo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);W(this,bo,e,"f"),I(this,J,"m",Ms).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:I(this,Ns,"f"),...r},new Promise((n,o)=>{I(this,ve,"f").enqueue(async()=>{var i,s,c;W(this,Ee,(s=I(this,Ee,"f"),s++,s),"f"),W(this,Ct,(c=I(this,Ct,"f"),c++,c),"f");try{if(!((i=r.signal)===null||i===void 0)&&i.aborted)throw new Rs("The task was aborted.");let a=e({signal:r.signal});r.timeout&&(a=el(Promise.resolve(a),r.timeout)),r.signal&&(a=Promise.race([a,I(this,J,"m",zg).call(this,r.signal)]));let u=await a;n(u),this.emit("completed",u)}catch(a){if(a instanceof ho&&!r.throwOnTimeout){n();return}o(a),this.emit("error",a)}finally{I(this,J,"m",Og).call(this)}},r),this.emit("add"),I(this,J,"m",Us).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return I(this,Bt,"f")?(W(this,Bt,!1,"f"),I(this,J,"m",Ms).call(this),this):this}pause(){W(this,Bt,!0,"f")}clear(){W(this,ve,new(I(this,Ds,"f")),"f")}async onEmpty(){I(this,ve,"f").size!==0&&await I(this,J,"m",Ps).call(this,"empty")}async onSizeLessThan(e){I(this,ve,"f").size<e||await I(this,J,"m",Ps).call(this,"next",()=>I(this,ve,"f").size<e)}async onIdle(){I(this,Ee,"f")===0&&I(this,ve,"f").size===0||await I(this,J,"m",Ps).call(this,"idle")}get size(){return I(this,ve,"f").size}sizeBy(e){return I(this,ve,"f").filter(e).length}get pending(){return I(this,Ee,"f")}get isPaused(){return I(this,Bt,"f")}};mo=new WeakMap,go=new WeakMap,Ct=new WeakMap,Fs=new WeakMap,wo=new WeakMap,Ls=new WeakMap,Oe=new WeakMap,yo=new WeakMap,ve=new WeakMap,Ds=new WeakMap,Ee=new WeakMap,bo=new WeakMap,Bt=new WeakMap,Ns=new WeakMap,J=new WeakSet,Pg=function(){return I(this,go,"f")||I(this,Ct,"f")<I(this,Fs,"f")},Fg=function(){return I(this,Ee,"f")<I(this,bo,"f")},Og=function(){var e;W(this,Ee,(e=I(this,Ee,"f"),e--,e),"f"),I(this,J,"m",Us).call(this),this.emit("next")},Mg=function(){I(this,J,"m",nl).call(this),I(this,J,"m",rl).call(this),W(this,yo,void 0,"f")},Rg=function(){let e=Date.now();if(I(this,Oe,"f")===void 0){let r=I(this,Ls,"f")-e;if(r<0)W(this,Ct,I(this,mo,"f")?I(this,Ee,"f"):0,"f");else return I(this,yo,"f")===void 0&&W(this,yo,setTimeout(()=>{I(this,J,"m",Mg).call(this)},r),"f"),!0}return!1},Us=function(){if(I(this,ve,"f").size===0)return I(this,Oe,"f")&&clearInterval(I(this,Oe,"f")),W(this,Oe,void 0,"f"),this.emit("empty"),I(this,Ee,"f")===0&&this.emit("idle"),!1;if(!I(this,Bt,"f")){let e=!I(this,J,"a",Rg);if(I(this,J,"a",Pg)&&I(this,J,"a",Fg)){let r=I(this,ve,"f").dequeue();return r?(this.emit("active"),r(),e&&I(this,J,"m",rl).call(this),!0):!1}}return!1},rl=function(){I(this,go,"f")||I(this,Oe,"f")!==void 0||(W(this,Oe,setInterval(()=>{I(this,J,"m",nl).call(this)},I(this,wo,"f")),"f"),W(this,Ls,Date.now()+I(this,wo,"f"),"f"))},nl=function(){I(this,Ct,"f")===0&&I(this,Ee,"f")===0&&I(this,Oe,"f")&&(clearInterval(I(this,Oe,"f")),W(this,Oe,void 0,"f")),W(this,Ct,I(this,mo,"f")?I(this,Ee,"f"):0,"f"),I(this,J,"m",Ms).call(this)},Ms=function(){for(;I(this,J,"m",Us).call(this););},zg=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Rs("The task was aborted."))},{once:!0})})},Ps=async function(e,r){return new Promise(n=>{let o=()=>{r&&!r()||(this.off(e,o),n())};this.on(e,o)})};async function Hg(t,e,r,n,o,i,s){if(e instanceof Uint8Array){let u=er(e,n,o,i);r.push(u);return}if(e.Data==null)throw(0,or.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");let c;try{c=Yr.unmarshal(e.Data)}catch(u){throw(0,or.default)(u,"ERR_NOT_UNIXFS")}if(c.data!=null){let u=c.data,l=er(u,n,o,i);r.push(l),n+=BigInt(l.byteLength)}let a=[];if(e.Links.length!==c.blockSizes.length)throw(0,or.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 nn(a,u=>en(u,l=>async()=>{let d=await t.get(l.link.Hash,s);return{...l,block:d}}),u=>rr(u,{ordered:!0}),async u=>{for await(let{link:l,block:d,blockStart:m}of u){let f;switch(l.Hash.code){case Jt:f=Ge(d);break;case Dn:f=d;break;default:r.end((0,or.default)(new Error(`Unsupported codec: ${l.Hash.code}`),"ERR_NOT_UNIXFS"));return}let h=new xo({concurrency:1});h.on("error",p=>{r.end(p)}),h.add(async()=>{s.onProgress?.(new ae("unixfs:exporter:walk:file",{cid:l.Hash})),await Hg(t,f,r,m,o,i,s)}),await h.onIdle()}}),n>=i&&r.end()}var Vv=(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}=Jr(u,a.offset,a.length);if(d===0n)return;let m=0n,f=d-l,h=rn();a.onProgress?.(new ae("unixfs:exporter:walk:file",{cid:t})),Hg(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,or.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 ae("unixfs:exporter:progress:unixfs:file",{bytesRead:m,totalBytes:f,fileSize:u})),yield p}if(m<f)throw(0,or.default)(new Error("Traversed entire DAG but did not read enough bytes"),"ERR_UNDER_READ")}return c},ol=Vv;var qv=(t,e,r,n,o,i,s)=>{function c(a={}){return a.onProgress?.(new ae("unixfs:exporter:walk:hamt-sharded-directory",{cid:t})),jg(e,n,o,i,s,a)}return c};async function*jg(t,e,r,n,o,i){let s=t.Links,c=nn(s,a=>en(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=Ge(d),i.onProgress?.(new ae("unixfs:exporter:walk:hamt-sharded-directory",{cid:u.Hash})),{entries:jg(t,e,r,n,o,i)}}}),a=>rr(a,{ordered:!0}));for await(let{entries:a}of c)yield*a}var Vg=qv;var Wv=(t,e)=>t.Links.find(n=>n.Name===e)?.Hash,Kv={raw:ol,file:ol,directory:Ig,"hamt-sharded-directory":Vg,metadata:(t,e,r,n,o,i,s)=>()=>[],symlink:(t,e,r,n,o,i,s)=>()=>[]},Gv=async(t,e,r,n,o,i,s,c)=>{let a=await s.get(t,c),u=Ge(a),l,d;if(e==null&&(e=t.toString()),u.Data==null)throw(0,ko.default)(new Error("no data in PBNode"),"ERR_NOT_UNIXFS");try{l=Yr.unmarshal(u.Data)}catch(f){throw(0,ko.default)(f,"ERR_NOT_UNIXFS")}if(r==null&&(r=e),n.length>0){let f;if(l?.type==="hamt-sharded-directory"?f=await Ag(u,n[0],s):f=Wv(u,n[0]),f==null)throw(0,ko.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=Kv[l.type](t,u,l,r,o,i,s);if(m==null)throw(0,ko.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}},qg=Gv;var Qv={[Jt]:qg,[Dn]:Zm,[xa]:Qm,[Km.code]:Xm},Kg=async(t,e,r,n,o,i,s)=>{let c=Qv[t.code];if(c==null)throw(0,Wg.default)(new Error(`No resolver for code ${t.code}`),"ERR_NO_RESOLVER");return c(t,e,r,n,Kg,o,i,s)},Gg=Kg;var Jv=(t="")=>(t.trim().match(/([^\\^/]|\\\/)+/g)??[]).filter(Boolean),Xv=t=>{if(t instanceof Uint8Array)return{cid:j.decode(t),toResolve:[]};let e=j.asCID(t);if(e!=null)return{cid:e,toResolve:[]};if(typeof t=="string"){t.indexOf("/ipfs/")===0&&(t=t.substring(6));let r=Jv(t);return{cid:j.parse(r[0]),toResolve:r.slice(1)}}throw(0,Os.default)(new Error(`Unknown path type ${t}`),"ERR_BAD_PATH")};async function*Yv(t,e,r={}){let{cid:n,toResolve:o}=Xv(t),i=n.toString(),s=i,c=o.length;for(;;){let a=await Gg(n,i,s,o,c,e,r);if(a.entry==null&&a.next==null)throw(0,Os.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 Qg(t,e,r={}){let n=await Vm(Yv(t,e,r));if(n==null)throw(0,Os.default)(new Error(`Could not resolve ${t}`),"ERR_NOT_FOUND");return n}var Zv=$m(),eE=_t({fileChunkEncoder:gt,smallFileEncoder:gt,chunker:pu(1024*1024),fileLayout:ss(1024)});async function Jg(t){let e=tE(t),r=await rE(e);return{cid:r.at(-1).cid,blocks:r}}async function Xg(t,e,r){let n=await Qg(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 tE(t){let{readable:e,writable:r}=new TransformStream({},Zv),n=zm({writable:r,settings:eE}),o=new il("",t);return(async()=>(await o.finalize(n),await n.close()))(),e}async function rE(t){let e=[];return await t.pipeTo(new WritableStream({write(r){e.push(r)}})),e}var il=class{#e;name;constructor(e,r){this.name=e,this.#e=r}async finalize(e){let r=eo(e);return await this.#e.stream().pipeTo(new WritableStream({async write(n){await r.write(n)}})),await r.close()}};async function ew(t,e,r,n){let o;for(let i of r){let s=await nE(t,i);o=await lp(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 nE(t,e){let r;e.del?r={del:!0}:(await oE(t,e.value),r={doc:e.value});let n=await Ve({value:r,hasher:le,codec:V});return t.putSync(n.cid,n.bytes),n.cid}async function oE(t,e){e._files&&await Yg(t,e._files),e._publicFiles&&await Yg(t,e._publicFiles,!0)}async function Yg(t,e,r=!1){let n=t.parent,o=new xt(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 Jg(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 tw(t,e,r){if(!e.length)throw new Error("Getting from an empty database");let n=await fp(t,e,r);if(!n)throw new Error(`Missing key ${r}`);return await ul(t,n)}function cl(t,{doc:e}){e&&(e._files&&Zg(t,e._files),e._publicFiles&&Zg(t,e._publicFiles,!0))}function Zg(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 Xg({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 ul(t,e){let r=await t.get(e);if(!r)throw new Error(`Missing linked block ${e.toString()}`);let{value:n}=await mt({bytes:r.bytes,hasher:le,codec:V});return cl(t,n),n}var sl=class extends We{async get(e){try{return await super.get(e)}catch(r){return console.error("missing event",e.toString(),r),{value:null}}}};async function vo(t,e,r,n){let o=n.dirty?new sl(t):new We(t);return{result:(await al(t,o,e,r,[],new Set,new Set,n.limit||1/0)).reverse(),head:e}}async function al(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 al(t,e,l.parents,n,o,i,s,c));else{i.add(d);let f=await ul(t,m);o.push({key:d,value:f.doc,del:f.del}),c--,l.parents&&(o=await al(t,e,l.parents,n,o,i,s,c))}}return o}async function*rw(t,e){for await(let[r,n]of Sc(t,e)){let o=await ul(t,n);yield{key:r,value:o.doc,del:o.del}}}async function*nw(t,e){for await(let r of kc(t,e))yield r}async function ow(t,e){let r=new Ni(t),n=new xt(t);for await(let[,i]of Sc(r,e))if(!await r.get(i))throw new Error("Missing block: "+i.toString());for await(let i of kc(r,e));let o=await Fr(r,e);for(let{cid:i,bytes:s}of[...o.additions,...o.removals])n.putSync(i,s);await vo(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 zs=class{head=[];zoomers=new Set;watchers=new Set;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 xt)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 On(u,l,m);let d=await Fr(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 vo(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 $s=class{name;opts={};ready;blocks;indexBlocks;indexers=new Map;clock=new zs;constructor(e,r){this.name=e||null,this.opts=r||this.opts,this.blocks=new Di(this.name,this.clock,this.opts),this.clock.blocks=this.blocks,this.indexBlocks=new Li(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 ew(n,this.clock.head,e,r);return e=e.map(({key:s,value:c,del:a})=>(cl(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 rw(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 nw(this.blocks,this.clock.head))e.push(r);return e.join(`
|
|
8
8
|
`)}async get(e){await this.ready;let r=await tw(this.blocks,this.clock.head,e);return r.del?null:r}async changes(e=[],r={}){return await this.ready,await vo(this.blocks,this.clock.head,e,r)}async compact(){if(await this.ready,!(this.blocks.loader&&this.blocks.loader.carLog.length<2))return await ow(this.blocks,this.clock.head)}};var on=class{static databases=new Map;name;opts={};_listeners=new Set;_crdt;_writeQueue;constructor(e,r){this.name=e||null,this.opts=r||this.opts,this._crdt=new $s(e,this.opts),this._crdt.clock.onTick(n=>{this._notify(n)}),this._writeQueue=dl(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||fl(),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"?Mn({_crdt:this._crdt},e):Mn({_crdt:this._crdt},iE(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)})}}};function MI(t,e){return on.databases.has(t)||on.databases.set(t,new on(t,e)),on.databases.get(t)}function iE(t){let e=/\(([^,()]+,\s*[^,()]+|\[[^\]]+\],\s*[^,()]+)\)/g,r=null;return Array.from(t.matchAll(e),o=>o[1].trim()).length===0&&(r=/=>\s*(.*)/.exec(t)),r?r[1]:t}export{vi as DataStore,on as Database,yc as Index,Fn as Loader,ki as MetaStore,Ei as STORAGE_VERSION,Oh as cidListIncludes,si as encodeCarFile,yh as encodeCarHeader,MI as fireproof,Mn as index,mh as parseCarFile,X1 as toHexString};
|
|
9
9
|
/*! Bundled license information:
|
|
10
10
|
|