@helia/utils 1.3.2-a0266903 → 1.4.0-5a911c69

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/index.min.js CHANGED
@@ -1,4 +1,4 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.HeliaUtils = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var HeliaUtils=(()=>{var Rs=Object.create;var ft=Object.defineProperty;var Ds=Object.getOwnPropertyDescriptor;var Bs=Object.getOwnPropertyNames;var Us=Object.getPrototypeOf,Fs=Object.prototype.hasOwnProperty;var so=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),T=(r,e)=>{for(var t in e)ft(r,t,{get:e[t],enumerable:!0})},ao=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Bs(e))!Fs.call(r,o)&&o!==t&&ft(r,o,{get:()=>e[o],enumerable:!(n=Ds(e,o))||n.enumerable});return r};var co=(r,e,t)=>(t=r!=null?Rs(Us(r)):{},ao(e||!r||!r.__esModule?ft(t,"default",{value:r,enumerable:!0}):t,r)),Os=r=>ao(ft({},"__esModule",{value:!0}),r);var bo=so((Rl,Kr)=>{"use strict";var wa=Object.prototype.hasOwnProperty,R="~";function He(){}Object.create&&(He.prototype=Object.create(null),new He().__proto__||(R=!1));function xa(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function xo(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new xa(t,n||r,o),s=R?R+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],i]:r._events[s].push(i):(r._events[s]=i,r._eventsCount++),r}function wt(r,e){--r._eventsCount===0?r._events=new He:delete r._events[e]}function N(){this._events=new He,this._eventsCount=0}N.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)wa.call(t,n)&&e.push(R?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};N.prototype.listeners=function(e){var t=R?R+e:e,n=this._events[t];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};N.prototype.listenerCount=function(e){var t=R?R+e:e,n=this._events[t];return n?n.fn?1:n.length:0};N.prototype.emit=function(e,t,n,o,i,s){var a=R?R+e:e;if(!this._events[a])return!1;var u=this._events[a],d=arguments.length,l,h;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,o),!0;case 5:return u.fn.call(u.context,t,n,o,i),!0;case 6:return u.fn.call(u.context,t,n,o,i,s),!0}for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u.fn.apply(u.context,l)}else{var g=u.length,w;for(h=0;h<g;h++)switch(u[h].once&&this.removeListener(e,u[h].fn,void 0,!0),d){case 1:u[h].fn.call(u[h].context);break;case 2:u[h].fn.call(u[h].context,t);break;case 3:u[h].fn.call(u[h].context,t,n);break;case 4:u[h].fn.call(u[h].context,t,n,o);break;default:if(!l)for(w=1,l=new Array(d-1);w<d;w++)l[w-1]=arguments[w];u[h].fn.apply(u[h].context,l)}}return!0};N.prototype.on=function(e,t,n){return xo(this,e,t,n,!1)};N.prototype.once=function(e,t,n){return xo(this,e,t,n,!0)};N.prototype.removeListener=function(e,t,n,o){var i=R?R+e:e;if(!this._events[i])return this;if(!t)return wt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&wt(this,i);else{for(var a=0,u=[],d=s.length;a<d;a++)(s[a].fn!==t||o&&!s[a].once||n&&s[a].context!==n)&&u.push(s[a]);u.length?this._events[i]=u.length===1?u[0]:u:wt(this,i)}return this};N.prototype.removeAllListeners=function(e){var t;return e?(t=R?R+e:e,this._events[t]&&wt(this,t)):(this._events=new He,this._eventsCount=0),this};N.prototype.off=N.prototype.removeListener;N.prototype.addListener=N.prototype.on;N.prefixed=R;N.EventEmitter=N;typeof Kr<"u"&&(Kr.exports=N)});var qo=so((Mf,$o)=>{$o.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(i,s){t[i]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(i){return t[i]!==void 0||n[i]!==void 0},remove:function(i){t[i]!==void 0&&(t[i]=void 0),n[i]!==void 0&&(n[i]=void 0)},get:function(i){var s=t[i];if(s!==void 0)return s;if((s=n[i])!==void 0)return o(i,s),s},set:function(i,s){t[i]!==void 0?t[i]=s:o(i,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var ol={};T(ol,{AbstractSession:()=>Nr,Helia:()=>io});var Rr=Symbol.for("@libp2p/content-routing");var Dr=Symbol.for("@libp2p/peer-routing");var G=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var ht=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var dt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var pt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var ne=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:i})=>i!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};function uo(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)uo(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function de(...r){let e=[];for(let t of r)uo(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Mr={};T(Mr,{base32:()=>me,base32hex:()=>Gs,base32hexpad:()=>Js,base32hexpadupper:()=>Ys,base32hexupper:()=>Qs,base32pad:()=>Hs,base32padupper:()=>Ws,base32upper:()=>Vs,base32z:()=>Xs});var fl=new Uint8Array(0);function lo(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Q(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function fo(r){return new TextEncoder().encode(r)}function ho(r){return new TextDecoder().decode(r)}function zs(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=o}var a=r.length,u=r.charAt(0),d=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var b=0,y=0,v=0,C=x.length;v!==C&&x[v]===0;)v++,b++;for(var S=(C-v)*l+1>>>0,I=new Uint8Array(S);v!==C;){for(var F=x[v],j=0,O=S-1;(F!==0||j<y)&&O!==-1;O--,j++)F+=256*I[O]>>>0,I[O]=F%a>>>0,F=F/a>>>0;if(F!==0)throw new Error("Non-zero carry");y=j,v++}for(var K=S-y;K!==S&&I[K]===0;)K++;for(var Te=u.repeat(b);K<S;++K)Te+=r.charAt(I[K]);return Te}function g(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;var b=0;if(x[b]!==" "){for(var y=0,v=0;x[b]===u;)y++,b++;for(var C=(x.length-b)*d+1>>>0,S=new Uint8Array(C);x[b];){var I=t[x.charCodeAt(b)];if(I===255)return;for(var F=0,j=C-1;(I!==0||F<v)&&j!==-1;j--,F++)I+=a*S[j]>>>0,S[j]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");v=F,b++}if(x[b]!==" "){for(var O=C-v;O!==C&&S[O]===0;)O++;for(var K=new Uint8Array(y+(C-O)),Te=y;O!==C;)K[Te++]=S[O++];return K}}}function w(x){var b=g(x);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:w}}var Ms=zs,$s=Ms,po=$s;var Ur=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Fr=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 mo(this,e)}},Or=class{decoders;constructor(e){this.decoders=e}or(e){return mo(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function mo(r,e){return new Or({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var zr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ur(e,t,n),this.decoder=new Fr(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Le({name:r,prefix:e,encode:t,decode:n}){return new zr(r,e,t,n)}function pe({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=po(t,r);return Le({prefix:e,name:r,encode:n,decode:i=>Q(o(i))})}function qs(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),s=0,a=0,u=0;for(let d=0;d<o;++d){let l=e[r[d]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|l,s+=t,s>=8&&(s-=8,i[u++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function js(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,a=0;for(let u=0;u<r.length;++u)for(a=a<<8|r[u],s+=8;s>t;)s-=t,i+=e[o&a>>s];if(s!==0&&(i+=e[o&a<<t-s]),n)for(;(i.length*t&7)!==0;)i+="=";return i}function Ks(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function A({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Ks(n);return Le({prefix:e,name:r,encode(i){return js(i,n,t)},decode(i){return qs(i,o,t,r)}})}var me=A({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Vs=A({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Hs=A({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ws=A({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Gs=A({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Qs=A({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Js=A({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ys=A({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Xs=A({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $r={};T($r,{base58btc:()=>V,base58flickr:()=>Zs});var V=pe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Zs=pe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qr={};T(qr,{base64:()=>ge,base64pad:()=>ea,base64url:()=>ta,base64urlpad:()=>ra});var ge=A({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ea=A({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ta=A({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ra=A({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function na(r,e){try{if(typeof r=="string"&&r.length>0)return oa(r);if(typeof r=="number"&&isFinite(r))return e?.long?sa(r):ia(r);throw new Error("Value is not a string or number.")}catch(t){let n=aa(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function oa(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!e)return NaN;let t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*315576e5;case"weeks":case"week":case"w":return t*6048e5;case"days":case"day":case"d":return t*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return t*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return t*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return t*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var gt=na;function ia(r){let e=Math.abs(r);return e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function sa(r){let e=Math.abs(r);return e>=864e5?mt(r,e,864e5,"day"):e>=36e5?mt(r,e,36e5,"hour"):e>=6e4?mt(r,e,6e4,"minute"):e>=1e3?mt(r,e,1e3,"second"):`${r} ms`}function mt(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function aa(r){return typeof r=="object"&&r!==null&&"message"in r}function jr(r){t.debug=t,t.default=t,t.coerce=u,t.disable=i,t.enable=o,t.enabled=s,t.humanize=gt,t.destroy=d,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let h=0;for(let g=0;g<l.length;g++)h=(h<<5)-h+l.charCodeAt(g),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=e;function t(l){let h,g=null,w,x;function b(...y){if(!b.enabled)return;let v=b,C=Number(new Date),S=C-(h||C);v.diff=S,v.prev=h,v.curr=C,h=C,y[0]=t.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let I=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(j,O)=>{if(j==="%%")return"%";I++;let K=t.formatters[O];if(typeof K=="function"){let Te=y[I];j=K.call(v,Te),y.splice(I,1),I--}return j}),t.formatArgs.call(v,y),(v.log||t.log).apply(v,y)}return b.namespace=l,b.useColors=t.useColors(),b.color=t.selectColor(l),b.extend=n,b.destroy=t.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(w!==t.namespaces&&(w=t.namespaces,x=t.enabled(l)),x),set:y=>{g=y}}),typeof t.init=="function"&&t.init(b),b}function n(l,h){let g=t(this.namespace+(typeof h>"u"?":":h)+l);return g.log=this.log,g}function o(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let h,g=(typeof l=="string"?l:"").split(/[\s,]+/),w=g.length;for(h=0;h<w;h++)g[h]&&(l=g[h].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.substr(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(a),...t.skips.map(a).map(h=>"-"+h)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let h,g;for(h=0,g=t.skips.length;h<g;h++)if(t.skips[h].test(l))return!1;for(h=0,g=t.names.length;h<g;h++)if(t.names[h].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function u(l){return l instanceof Error?l.stack??l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var yt=pa(),ca=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ua(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function la(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+gt(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var fa=console.debug??console.log??(()=>{});function ha(r){try{r?yt?.setItem("debug",r):yt?.removeItem("debug")}catch{}}function da(){let r;try{r=yt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function pa(){try{return localStorage}catch{}}function ma(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var go=jr({formatArgs:la,save:ha,load:da,useColors:ua,setupFormatters:ma,colors:ca,storage:yt,log:fa});var D=go;D.formatters.b=r=>r==null?"undefined":V.baseEncode(r);D.formatters.t=r=>r==null?"undefined":me.baseEncode(r);D.formatters.m=r=>r==null?"undefined":ge.baseEncode(r);D.formatters.p=r=>r==null?"undefined":r.toString();D.formatters.c=r=>r==null?"undefined":r.toString();D.formatters.k=r=>r==null?"undefined":r.toString();D.formatters.a=r=>r==null?"undefined":r.toString();D.formatters.e=r=>r==null?"undefined":yo(r.stack)??yo(r.message)??r.toString();function ga(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function wo(){return{forComponent(r){return ya(r)}}}function ya(r){let e=ga(`${r}:trace`);return D.enabled(`${r}:trace`)&&D.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=D(`${r}:trace`)),Object.assign(D(r),{error:D(`${r}:error`),trace:e})}function yo(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var _=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Vr=co(bo(),1);var We=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Hr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Eo=r=>globalThis.DOMException===void 0?new Hr(r):new DOMException(r),_o=r=>{let e=r.reason===void 0?Eo("This operation was aborted."):r.reason;return e instanceof Error?e:Eo(e)};function Wr(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,a,d=new Promise((l,h)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:w}=e;w.aborted&&h(_o(w)),a=()=>{h(_o(w))},w.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(l,h);return}let g=new We;s=i.setTimeout.call(void 0,()=>{if(n){try{l(n())}catch(w){h(w)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?l():o instanceof Error?h(o):(g.message=o??`Promise timed out after ${t} milliseconds`,h(g))},t),(async()=>{try{l(await r)}catch(w){h(w)}})()}).finally(()=>{d.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return d.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},d}function Gr(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var Ge=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,id:t.id,run:e};if(this.size===0||this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Gr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}setPriority(e,t){let n=this.#e.findIndex(i=>i.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Qe=class extends Vr.default{#e;#o;#s=0;#d;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#g;#x=1n;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ge,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${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 \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#o=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#a=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#o||this.#s<this.#d}get#E(){return this.#n<this.#u}#_(){this.#n--,this.#l(),this.emit("next")}#v(){this.#w(),this.#y(),this.#c=void 0}get#k(){let e=Date.now();if(this.#r===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#n:0;else return this.#c===void 0&&(this.#c=setTimeout(()=>{this.#v()},t)),!0}return!1}#l(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#k;if(this.#b&&this.#E){let t=this.#t.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#w()},this.#a),this.#p=Date.now()+this.#a)}#w(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#f()}#f(){for(;this.#l(););}get concurrency(){return this.#u}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})`);this.#u=e,this.#f()}async#A(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){this.#t.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#x++).toString(),t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{t.signal?.throwIfAborted();let i=e({signal:t.signal});t.timeout&&(i=Wr(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#A(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof We&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#_()}},t),this.emit("add"),this.#l()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#f(),this):this}pause(){this.#i=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#h("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#h("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#h("idle")}async#h(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#i}};function xt(r){let e=[J.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Qr={};T(Qr,{base10:()=>ba});var ba=pe({prefix:"9",name:"base10",alphabet:"0123456789"});var Jr={};T(Jr,{base16:()=>Ea,base16upper:()=>_a});var Ea=A({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_a=A({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Yr={};T(Yr,{base2:()=>va});var va=A({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Xr={};T(Xr,{base256emoji:()=>Ia});var vo=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}"),ka=vo.reduce((r,e,t)=>(r[t]=e,r),[]),Aa=vo.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Ca(r){return r.reduce((e,t)=>(e+=ka[t],e),"")}function Sa(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Aa[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Ia=Le({prefix:"\u{1F680}",name:"base256emoji",encode:Ca,decode:Sa});var Zr={};T(Zr,{base36:()=>se,base36upper:()=>Ta});var se=pe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ta=pe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var en={};T(en,{base8:()=>La});var La=A({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var tn={};T(tn,{identity:()=>Pa});var Pa=Le({prefix:"\0",name:"identity",encode:r=>ho(r),decode:r=>fo(r)});var bt={};T(bt,{code:()=>rn,decode:()=>Ua,encode:()=>Ba,name:()=>Da});var Na=new TextEncoder,Ra=new TextDecoder,Da="json",rn=512;function Ba(r){return Na.encode(JSON.stringify(r))}function Ua(r){return JSON.parse(Ra.decode(r))}var Et={};T(Et,{code:()=>nn,decode:()=>za,encode:()=>Oa,name:()=>Fa});var Fa="raw",nn=85;function Oa(r){return Q(r)}function za(r){return Q(r)}var sn={};T(sn,{identity:()=>vt});var Ma=Co,ko=128,$a=127,qa=~$a,ja=Math.pow(2,31);function Co(r,e,t){e=e||[],t=t||0;for(var n=t;r>=ja;)e[t++]=r&255|ko,r/=128;for(;r&qa;)e[t++]=r&255|ko,r>>>=7;return e[t]=r|0,Co.bytes=t-n+1,e}var Ka=on,Va=128,Ao=127;function on(r,n){var t=0,n=n||0,o=0,i=n,s,a=r.length;do{if(i>=a)throw on.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&Ao)<<o:(s&Ao)*Math.pow(2,o),o+=7}while(s>=Va);return on.bytes=i-n,t}var Ha=Math.pow(2,7),Wa=Math.pow(2,14),Ga=Math.pow(2,21),Qa=Math.pow(2,28),Ja=Math.pow(2,35),Ya=Math.pow(2,42),Xa=Math.pow(2,49),Za=Math.pow(2,56),ec=Math.pow(2,63),tc=function(r){return r<Ha?1:r<Wa?2:r<Ga?3:r<Qa?4:r<Ja?5:r<Ya?6:r<Xa?7:r<Za?8:r<ec?9:10},rc={encode:Ma,decode:Ka,encodingLength:tc},nc=rc,Je=nc;function Ye(r,e=0){return[Je.decode(r,e),Je.decode.bytes]}function Pe(r,e,t=0){return Je.encode(r,e,t),e}function Ne(r){return Je.encodingLength(r)}function be(r,e){let t=e.byteLength,n=Ne(r),o=n+Ne(t),i=new Uint8Array(o+t);return Pe(r,i,0),Pe(t,i,n),i.set(e,o),new Re(r,t,e,i)}function So(r){let e=Q(r),[t,n]=Ye(e),[o,i]=Ye(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Re(t,o,s,e)}function Io(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&lo(r.bytes,t.bytes)}}var Re=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var To=0,oc="identity",Lo=Q;function ic(r){return be(To,Lo(r))}var vt={code:To,name:oc,encode:Lo,digest:ic};var un={};T(un,{sha256:()=>kt,sha512:()=>At});function cn({name:r,code:e,encode:t}){return new an(r,e,t)}var an=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?be(this.code,t):t.then(n=>be(this.code,n))}else throw Error("Unknown type, must be binary type")}};function No(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var kt=cn({name:"sha2-256",code:18,encode:No("SHA-256")}),At=cn({name:"sha2-512",code:19,encode:No("SHA-512")});function Ro(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return ac(t,ln(r),e??V.encoder);default:return cc(t,ln(r),e??me.encoder)}}var Do=new WeakMap;function ln(r){let e=Do.get(r);if(e==null){let t=new Map;return Do.set(r,t),t}return e}var k=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Ze)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==uc)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=be(e,t);return r.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 r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Io(e.multihash,n.multihash)}toString(e){return Ro(this,e)}toJSON(){return{"/":Ro(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:i,bytes:s}=t;return new r(n,o,i,s??Bo(n,o,i.bytes))}else if(t[lc]===!0){let{version:n,multihash:o,code:i}=t,s=So(o);return r.create(n,i,s)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Ze)throw new Error(`Version 0 CID must use dag-pb (code: ${Ze}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=Bo(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Ze,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Q(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=o.subarray(t.multihashSize-t.digestSize),s=new Re(t.multihashCode,t.digestSize,i,o);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[h,g]=Ye(e.subarray(t));return t+=g,h},o=n(),i=Ze;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,a=n(),u=n(),d=t+u,l=d-s;return{version:o,codec:i,multihashCode:a,digestSize:u,multihashSize:l,size:d}}static parse(e,t){let[n,o]=sc(e,t),i=r.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ln(i).set(n,e),i}};function sc(r,e){switch(r[0]){case"Q":{let t=e??V;return[V.prefix,t.decode(`${V.prefix}${r}`)]}case V.prefix:{let t=e??V;return[V.prefix,t.decode(r)]}case me.prefix:{let t=e??me;return[me.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function ac(r,e,t){let{prefix:n}=t;if(n!==V.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return o}function cc(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let i=t.encode(r);return e.set(n,i),i}else return o}var Ze=112,uc=18;function Bo(r,e,t){let n=Ne(r),o=n+Ne(e),i=new Uint8Array(o+t.byteLength);return Pe(r,i,0),Pe(e,i,n),i.set(t,o),i}var lc=Symbol.for("@ipld/js-cid/CID");var fn={...tn,...Yr,...en,...Qr,...Jr,...Mr,...Zr,...$r,...qr,...Xr},Ef={...un,...sn};function Uo(r=0){return new Uint8Array(r)}function Fo(r=0){return new Uint8Array(r)}function zo(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Oo=zo("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),hn=zo("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Fo(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),fc={utf8:Oo,"utf-8":Oo,hex:fn.base16,latin1:hn,ascii:hn,binary:hn,...fn},Ct=fc;function De(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var dn=60;function St(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:J[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:J[e.type],TTL:e.TTL??e.ttl??dn,data:e.data instanceof Uint8Array?De(e.data):e.data}))}}var hc=4;function pn(r,e={}){let t=new Qe({concurrency:e.queryConcurrency??hc});return async(n,o={})=>{let i=new URLSearchParams;i.set("name",n),xt(o.types).forEach(a=>{i.append("type",J[a])}),o.onProgress?.(new _("dns:query",{detail:n}));let s=await t.add(async()=>{let a=await fetch(`${r}?${i}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let u=St(await a.json());return o.onProgress?.(new _("dns:response",{detail:u})),u},{signal:o.signal});if(s==null)throw new Error("No DNS response received");return s}}function Mo(){return[pn("https://cloudflare-dns.com/dns-query"),pn("https://dns.google/resolve")]}var jo=co(qo(),1);var mn=class{lru;constructor(e){this.lru=(0,jo.default)(e)}get(e,t){let n=!0,o=[];for(let i of t){let s=this.getAnswers(e,i);if(s.length===0){n=!1;break}o.push(...s)}if(n)return St({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let i=o.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:J[a.type]}));return i.length===0&&this.lru.remove(n),i}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??dn)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Ko(r){return new mn(r)}var dc=1e3,It=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Ko(e.cacheSize??dc),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Mo())}async query(e,t={}){let n=xt(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new _("dns:cache",{detail:o})),o;let i=`${e.split(".").pop()}.`,s=(this.resolvers[i]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let u of s){if(t.signal?.aborted===!0)break;try{let d=await u(e,{...t,types:n});for(let l of d.Answer)this.cache.add(e,l);return d}catch(d){a.push(d),t.onProgress?.(new _("dns:error",{detail:d}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var J;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(J||(J={}));function Vo(r={}){return new It(r)}function pc(r){return r[Symbol.asyncIterator]!=null}function mc(r){if(pc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ho=mc;function B(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Tt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)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}},Be=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Tt(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Tt(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var gn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Lt(r={}){return gc(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function gc(r,e){e=e??{};let t=e.onEnd,n=new Be,o,i,s,a=B(),u=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,v)=>{i=C=>{i=null,n.push(C);try{y(r(n))}catch(S){v(S)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=B()})}},d=y=>i!=null?i(y):(n.push(y),o),l=y=>(n=new Be,i!=null?i({error:y}):(n.push({error:y}),o)),h=y=>{if(s)return o;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return d({done:!1,value:y})},g=y=>s?o:(s=!0,y!=null?l(y):d({done:!0})),w=()=>(n=new Be,g(),{done:!0}),x=y=>(g(y),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:w,throw:x,push:h,end:g,get readableLength(){return n.size},onEmpty:async y=>{let v=y?.signal;if(v?.throwIfAborted(),n.isEmpty())return;let C,S;v!=null&&(C=new Promise((I,F)=>{S=()=>{F(new gn)},v.addEventListener("abort",S)}));try{await Promise.race([a.promise,C])}finally{S!=null&&v!=null&&v?.removeEventListener("abort",S)}}},t==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(y){return b.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return b.return(),t!=null&&(t(),t=void 0),{done:!0}},push:h,end(y){return b.end(y),t!=null&&(t(y),t=void 0),o},get readableLength(){return b.readableLength},onEmpty:y=>b.onEmpty(y)},o}var yn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function ye(r,e,t,n){let o=new yn(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{function a(){t?.removeEventListener("abort",l),r.removeEventListener(e,u),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,d)}let u=h=>{try{if(n?.filter?.(h)===!1)return}catch(g){a(),s(g);return}a(),i(h)},d=h=>{a(),s(h.detail)},l=()=>{a(),s(o)};t?.addEventListener("abort",l),r.addEventListener(e,u),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,d)})}function wn(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Pt=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Nt=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Ue(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new Nt(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Nt(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Rt=class{deferred;signal;constructor(e){this.signal=e,this.deferred=B(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new G)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function yc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Dt=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=yc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new G),this.cleanup())}async join(e={}){let t=new Rt(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ue(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var ae=class extends ne{concurrency;maxSize;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=wn(this.emitEmpty.bind(this),1),this.emitIdle=wn(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Pt;let n=new Dt(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("completed",{detail:o}),this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:o}),this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new G)}),this.clear()}async onEmpty(e){this.size!==0&&await ye(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ye(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ye(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Lt({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail)},i=u=>{n(u.detail)},s=()=>{n()},a=()=>{n(new G("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("error",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var wc=["string","number","bigint","symbol"],xc=["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 Wo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(wc.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(bc(r))return"Buffer";let t=Ec(r);return t||"Object"}function bc(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function Ec(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(xc.includes(e))return e}var c=class{constructor(e,t,n){this.major=e,this.majorEncoded=e<<5,this.name=t,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};c.uint=new c(0,"uint",!0);c.negint=new c(1,"negint",!0);c.bytes=new c(2,"bytes",!0);c.string=new c(3,"string",!0);c.array=new c(4,"array",!1);c.map=new c(5,"map",!1);c.tag=new c(6,"tag",!1);c.float=new c(7,"float",!0);c.false=new c(7,"false",!0);c.true=new c(7,"true",!0);c.null=new c(7,"null",!0);c.undefined=new c(7,"undefined",!0);c.break=new c(7,"break",!0);var f=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Fe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",_c=new TextDecoder,vc=new TextEncoder;function Bt(r){return Fe&&globalThis.Buffer.isBuffer(r)}function et(r){return r instanceof Uint8Array?Bt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Yo=Fe?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Qo(r,e,t):(r,e,t)=>t-e>64?_c.decode(r.subarray(e,t)):Qo(r,e,t),Ut=Fe?r=>r.length>64?globalThis.Buffer.from(r):Go(r):r=>r.length>64?vc.encode(r):Go(r),oe=r=>Uint8Array.from(r),Oe=Fe?(r,e,t)=>Bt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Xo=Fe?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),et(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},Zo=Fe?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function ei(r,e){if(Bt(r)&&Bt(e))return r.compare(e);for(let t=0;t<r.length;t++)if(r[t]!==e[t])return r[t]<e[t]?-1:1;return 0}function Go(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function Qo(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let a,u,d,l;switch(s){case 1:o<128&&(i=o);break;case 2:a=r[e+1],(a&192)===128&&(l=(o&31)<<6|a&63,l>127&&(i=l));break;case 3:a=r[e+1],u=r[e+2],(a&192)===128&&(u&192)===128&&(l=(o&15)<<12|(a&63)<<6|u&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:a=r[e+1],u=r[e+2],d=r[e+3],(a&192)===128&&(u&192)===128&&(d&192)===128&&(l=(o&15)<<18|(a&63)<<12|(u&63)<<6|d&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 xn(n)}var Jo=4096;function xn(r){let e=r.length;if(e<=Jo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Jo));return t}var kc=256,tt=class{constructor(e=kc){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 t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Zo(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=Oe(n,0,this.cursor)}else t=Xo(this.chunks,this.cursor);return e&&this.reset(),t}};var m="CBOR decode error:",ce="CBOR encode error:",rt=[];rt[23]=1;rt[24]=2;rt[25]=3;rt[26]=5;rt[27]=9;function ue(r,e,t){if(r.length-e<t)throw new Error(`${m} not enough data for type`)}var L=[24,256,65536,4294967296,BigInt("18446744073709551616")];function z(r,e,t){ue(r,e,1);let n=r[e];if(t.strict===!0&&n<L[0])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function M(r,e,t){ue(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<L[1])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function $(r,e,t){ue(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<L[2])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){ue(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<L[3])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${m} integers outside of the safe integer range are not supported`)}function ti(r,e,t,n){return new f(c.uint,z(r,e+1,n),2)}function ri(r,e,t,n){return new f(c.uint,M(r,e+1,n),3)}function ni(r,e,t,n){return new f(c.uint,$(r,e+1,n),5)}function oi(r,e,t,n){return new f(c.uint,q(r,e+1,n),9)}function H(r,e){return P(r,0,e.value)}function P(r,e,t){if(t<L[0]){let n=Number(t);r.push([e|n])}else if(t<L[1]){let n=Number(t);r.push([e|24,n])}else if(t<L[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<L[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<L[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,r.push(o)}else throw new Error(`${m} encountered BigInt larger than allowable range`)}}H.encodedSize=function(e){return P.encodedSize(e.value)};P.encodedSize=function(e){return e<L[0]?1:e<L[1]?2:e<L[2]?3:e<L[3]?5:9};H.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function ii(r,e,t,n){return new f(c.negint,-1-z(r,e+1,n),2)}function si(r,e,t,n){return new f(c.negint,-1-M(r,e+1,n),3)}function ai(r,e,t,n){return new f(c.negint,-1-$(r,e+1,n),5)}var bn=BigInt(-1),ci=BigInt(1);function ui(r,e,t,n){let o=q(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new f(c.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${m} integers outside of the safe integer range are not supported`);return new f(c.negint,bn-BigInt(o),9)}function Ft(r,e){let t=e.value,n=typeof t=="bigint"?t*bn-ci:t*-1-1;P(r,e.type.majorEncoded,n)}Ft.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*bn-ci:t*-1-1;return n<L[0]?1:n<L[1]?2:n<L[2]?3:n<L[3]?5:9};Ft.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function nt(r,e,t,n){ue(r,e,t+n);let o=Oe(r,e+t,e+t+n);return new f(c.bytes,o,t+n)}function li(r,e,t,n){return nt(r,e,1,t)}function fi(r,e,t,n){return nt(r,e,2,z(r,e+1,n))}function hi(r,e,t,n){return nt(r,e,3,M(r,e+1,n))}function di(r,e,t,n){return nt(r,e,5,$(r,e+1,n))}function pi(r,e,t,n){let o=q(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer bytes lengths not supported`);return nt(r,e,9,o)}function Ot(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===c.string?Ut(r.value):r.value),r.encodedBytes}function ze(r,e){let t=Ot(e);P(r,e.type.majorEncoded,t.length),r.push(t)}ze.encodedSize=function(e){let t=Ot(e);return P.encodedSize(t.length)+t.length};ze.compareTokens=function(e,t){return Cc(Ot(e),Ot(t))};function Cc(r,e){return r.length<e.length?-1:r.length>e.length?1:ei(r,e)}function ot(r,e,t,n,o){let i=t+n;ue(r,e,i);let s=new f(c.string,Yo(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Oe(r,e+t,e+i)),s}function mi(r,e,t,n){return ot(r,e,1,t,n)}function gi(r,e,t,n){return ot(r,e,2,z(r,e+1,n),n)}function yi(r,e,t,n){return ot(r,e,3,M(r,e+1,n),n)}function wi(r,e,t,n){return ot(r,e,5,$(r,e+1,n),n)}function xi(r,e,t,n){let o=q(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer string lengths not supported`);return ot(r,e,9,o,n)}var bi=ze;function Me(r,e,t,n){return new f(c.array,n,t)}function Ei(r,e,t,n){return Me(r,e,1,t)}function _i(r,e,t,n){return Me(r,e,2,z(r,e+1,n))}function vi(r,e,t,n){return Me(r,e,3,M(r,e+1,n))}function ki(r,e,t,n){return Me(r,e,5,$(r,e+1,n))}function Ai(r,e,t,n){let o=q(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer array lengths not supported`);return Me(r,e,9,o)}function Ci(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return Me(r,e,1,1/0)}function zt(r,e){P(r,c.array.majorEncoded,e.value)}zt.compareTokens=H.compareTokens;zt.encodedSize=function(e){return P.encodedSize(e.value)};function $e(r,e,t,n){return new f(c.map,n,t)}function Si(r,e,t,n){return $e(r,e,1,t)}function Ii(r,e,t,n){return $e(r,e,2,z(r,e+1,n))}function Ti(r,e,t,n){return $e(r,e,3,M(r,e+1,n))}function Li(r,e,t,n){return $e(r,e,5,$(r,e+1,n))}function Pi(r,e,t,n){let o=q(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer map lengths not supported`);return $e(r,e,9,o)}function Ni(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return $e(r,e,1,1/0)}function Mt(r,e){P(r,c.map.majorEncoded,e.value)}Mt.compareTokens=H.compareTokens;Mt.encodedSize=function(e){return P.encodedSize(e.value)};function Ri(r,e,t,n){return new f(c.tag,t,1)}function Di(r,e,t,n){return new f(c.tag,z(r,e+1,n),2)}function Bi(r,e,t,n){return new f(c.tag,M(r,e+1,n),3)}function Ui(r,e,t,n){return new f(c.tag,$(r,e+1,n),5)}function Fi(r,e,t,n){return new f(c.tag,q(r,e+1,n),9)}function $t(r,e){P(r,c.tag.majorEncoded,e.value)}$t.compareTokens=H.compareTokens;$t.encodedSize=function(e){return P.encodedSize(e.value)};var Nc=20,Rc=21,Dc=22,Bc=23;function Oi(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${m} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new f(c.null,null,1):new f(c.undefined,void 0,1)}function zi(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return new f(c.break,void 0,1)}function En(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${m} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${m} Infinity values are not supported`)}return new f(c.float,r,e)}function Mi(r,e,t,n){return En(_n(r,e+1),3,n)}function $i(r,e,t,n){return En(vn(r,e+1),5,n)}function qi(r,e,t,n){return En(Hi(r,e+1),9,n)}function qt(r,e,t){let n=e.value;if(n===!1)r.push([c.float.majorEncoded|Nc]);else if(n===!0)r.push([c.float.majorEncoded|Rc]);else if(n===null)r.push([c.float.majorEncoded|Dc]);else if(n===void 0)r.push([c.float.majorEncoded|Bc]);else{let o,i=!1;(!t||t.float64!==!0)&&(Ki(n),o=_n(Y,1),n===o||Number.isNaN(n)?(Y[0]=249,r.push(Y.slice(0,3)),i=!0):(Vi(n),o=vn(Y,1),n===o&&(Y[0]=250,r.push(Y.slice(0,5)),i=!0))),i||(Uc(n),o=Hi(Y,1),Y[0]=251,r.push(Y.slice(0,9)))}}qt.encodedSize=function(e,t){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!t||t.float64!==!0){Ki(n);let o=_n(Y,1);if(n===o||Number.isNaN(n))return 3;if(Vi(n),o=vn(Y,1),n===o)return 5}return 9};var ji=new ArrayBuffer(9),W=new DataView(ji,1),Y=new Uint8Array(ji,0);function Ki(r){if(r===1/0)W.setUint16(0,31744,!1);else if(r===-1/0)W.setUint16(0,64512,!1);else if(Number.isNaN(r))W.setUint16(0,32256,!1);else{W.setFloat32(0,r);let e=W.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)W.setUint16(0,31744,!1);else if(t===0)W.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?W.setUint16(0,0):o<-14?W.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):W.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function _n(r,e){if(r.length-e<2)throw new Error(`${m} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function Vi(r){W.setFloat32(0,r,!1)}function vn(r,e){if(r.length-e<4)throw new Error(`${m} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Uc(r){W.setFloat64(0,r,!1)}function Hi(r,e){if(r.length-e<8)throw new Error(`${m} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}qt.compareTokens=H.compareTokens;function E(r,e,t){throw new Error(`${m} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function jt(r){return()=>{throw new Error(`${m} ${r}`)}}var p=[];for(let r=0;r<=23;r++)p[r]=E;p[24]=ti;p[25]=ri;p[26]=ni;p[27]=oi;p[28]=E;p[29]=E;p[30]=E;p[31]=E;for(let r=32;r<=55;r++)p[r]=E;p[56]=ii;p[57]=si;p[58]=ai;p[59]=ui;p[60]=E;p[61]=E;p[62]=E;p[63]=E;for(let r=64;r<=87;r++)p[r]=li;p[88]=fi;p[89]=hi;p[90]=di;p[91]=pi;p[92]=E;p[93]=E;p[94]=E;p[95]=jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)p[r]=mi;p[120]=gi;p[121]=yi;p[122]=wi;p[123]=xi;p[124]=E;p[125]=E;p[126]=E;p[127]=jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)p[r]=Ei;p[152]=_i;p[153]=vi;p[154]=ki;p[155]=Ai;p[156]=E;p[157]=E;p[158]=E;p[159]=Ci;for(let r=160;r<=183;r++)p[r]=Si;p[184]=Ii;p[185]=Ti;p[186]=Li;p[187]=Pi;p[188]=E;p[189]=E;p[190]=E;p[191]=Ni;for(let r=192;r<=215;r++)p[r]=Ri;p[216]=Di;p[217]=Bi;p[218]=Ui;p[219]=Fi;p[220]=E;p[221]=E;p[222]=E;p[223]=E;for(let r=224;r<=243;r++)p[r]=jt("simple values are not supported");p[244]=E;p[245]=E;p[246]=E;p[247]=Oi;p[248]=jt("simple values are not supported");p[249]=Mi;p[250]=$i;p[251]=qi;p[252]=E;p[253]=E;p[254]=E;p[255]=zi;var X=[];for(let r=0;r<24;r++)X[r]=new f(c.uint,r,1);for(let r=-1;r>=-24;r--)X[31-r]=new f(c.negint,r,1);X[64]=new f(c.bytes,new Uint8Array(0),1);X[96]=new f(c.string,"",1);X[128]=new f(c.array,0,1);X[160]=new f(c.map,0,1);X[244]=new f(c.false,!1,1);X[245]=new f(c.true,!0,1);X[246]=new f(c.null,null,1);function Wi(r){switch(r.type){case c.false:return oe([244]);case c.true:return oe([245]);case c.null:return oe([246]);case c.bytes:return r.value.length?void 0:oe([64]);case c.string:return r.value===""?oe([96]):void 0;case c.array:return r.value===0?oe([128]):void 0;case c.map:return r.value===0?oe([160]):void 0;case c.uint:return r.value<24?oe([Number(r.value)]):void 0;case c.negint:if(r.value>=-24)return oe([31-Number(r.value)])}}var Oc={float64:!1,mapSorter:$c,quickEncodeToken:Wi};function zc(){let r=[];return r[c.uint.major]=H,r[c.negint.major]=Ft,r[c.bytes.major]=ze,r[c.string.major]=bi,r[c.array.major]=zt,r[c.map.major]=Mt,r[c.tag.major]=$t,r[c.float.major]=qt,r}var Gi=zc(),kn=new tt,Vt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${ce} object contains circular references`);return new r(t,e)}},we={null:new f(c.null,null),undefined:new f(c.undefined,void 0),true:new f(c.true,!0),false:new f(c.false,!1),emptyArray:new f(c.array,0),emptyMap:new f(c.map,0)},xe={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new f(c.float,r):r>=0?new f(c.uint,r):new f(c.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new f(c.uint,r):new f(c.negint,r)},Uint8Array(r,e,t,n){return new f(c.bytes,r)},string(r,e,t,n){return new f(c.string,r)},boolean(r,e,t,n){return r?we.true:we.false},null(r,e,t,n){return we.null},undefined(r,e,t,n){return we.undefined},ArrayBuffer(r,e,t,n){return new f(c.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new f(c.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[we.emptyArray,new f(c.break)]:we.emptyArray;n=Vt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Kt(s,t,n);return t.addBreakTokens?[new f(c.array,r.length),o,new f(c.break)]:[new f(c.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[we.emptyMap,new f(c.break)]:we.emptyMap;n=Vt.createCheck(n,r);let a=[],u=0;for(let d of i)a[u++]=[Kt(d,t,n),Kt(o?r.get(d):r[d],t,n)];return Mc(a,t),t.addBreakTokens?[new f(c.map,s),a,new f(c.break)]:[new f(c.map,s),a]}};xe.Map=xe.Object;xe.Buffer=xe.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))xe[`${r}Array`]=xe.DataView;function Kt(r,e={},t){let n=Wo(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||xe[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=xe[n];if(!i)throw new Error(`${ce} unsupported type: ${n}`);return i(r,n,e,t)}function Mc(r,e){e.mapSorter&&r.sort(e.mapSorter)}function $c(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=Gi[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Qi(r,e,t,n){if(Array.isArray(e))for(let o of e)Qi(r,o,t,n);else t[e.type.major](r,e,n)}function An(r,e,t){let n=Kt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),a=new tt(s);if(i(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return et(a.chunks[0])}}return kn.reset(),Qi(kn,n,e,t),kn.toBytes(!0)}function _e(r,e){return e=Object.assign({},Oc,e),An(r,Gi,e)}var qc={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Ht=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=X[e];if(t===void 0){let n=p[e];if(!n)throw new Error(`${m} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},it=Symbol.for("DONE"),Wt=Symbol.for("BREAK");function jc(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=qe(e,t);if(i===Wt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed array`)}if(i===it)throw new Error(`${m} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Kc(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=qe(e,t);if(a===Wt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed map`)}if(a===it)throw new Error(`${m} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${m} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(a)||!n&&a in o))throw new Error(`${m} found repeat map key "${a}"`);let u=qe(e,t);if(u===it)throw new Error(`${m} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(a,u):o[a]=u}return n?i:o}function qe(r,e){if(r.done())return it;let t=r.next();if(t.type===c.break)return Wt;if(t.type.terminal)return t.value;if(t.type===c.array)return jc(t,r,e);if(t.type===c.map)return Kc(t,r,e);if(t.type===c.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=qe(r,e);return e.tags[t.value](n)}throw new Error(`${m} tag not supported (${t.value})`)}throw new Error("unsupported")}function Cn(r,e){if(!(r instanceof Uint8Array))throw new Error(`${m} data to decode must be a Uint8Array`);e=Object.assign({},qc,e);let t=e.tokenizer||new Ht(r,e),n=qe(t,e);if(n===it)throw new Error(`${m} did not find any content to decode`);if(n===Wt)throw new Error(`${m} got unexpected break`);return[n,r.subarray(t.pos())]}function Z(r,e){let[t,n]=Cn(r,e);if(n.length>0)throw new Error(`${m} too many terminals, data makes no sense`);return t}function U(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var le="/",Yi=new TextEncoder().encode(le),Gt=Yi[0],fe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=U(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Gt)throw new Error("Invalid key")}toString(e="utf8"){return De(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(le))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Yi),this._buf[0]!==Gt){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Gt,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Gt;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(le).slice(1)}type(){return Vc(this.baseNamespace())}name(){return Hc(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(le)||(e+=le),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(le):new r(e.slice(0,-1).join(le))}child(e){return this.toString()===le?e:e.toString()===le?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Wc(e.map(t=>t.namespaces()))])}};function Vc(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Hc(r){let e=r.split(":");return e[e.length-1]}function Wc(r){return[].concat(...r)}function Qt({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*Gc(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],i=k.asCID(n);i!=null?yield[o.join("/"),i]:typeof n=="object"&&(yield*Sn(n,o))}else{let t=k.asCID(e);t!=null?yield[r.join("/"),t]:yield*Sn(e,r)}}function*Sn(r,e){if(r==null||r instanceof Uint8Array)return;let t=k.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let i=[...e,n];yield*Gc(i,o)}}function*Qc(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&k.asCID(n)==null&&(yield*In(n,o))}else yield*In(e,r)}function*In(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let o=[...e,t];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&k.asCID(n)==null&&(yield*Qc(o,n))}}function Jc(r,e){let t=r;for(let[n,o]of e.entries()){if(t=t[o],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=k.asCID(t);if(i!=null)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:t}}var Tn=class{cid;bytes;value;asBlock;constructor({cid:e,bytes:t,value:n}){if(e==null||t==null||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=t,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:Qt(),bytes:Qt(),value:Qt(),asBlock:Qt()})}links(){return Sn(this.value,[])}tree(){return In(this.value,[])}get(e="/"){return Jc(this.value,e.split("/").filter(Boolean))}};function Xi({bytes:r,cid:e,value:t,codec:n}){let o=t!==void 0?t:n?.decode(r);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Tn({cid:e,bytes:r,value:o})}function ve(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var ts="/pin/",Zi="/pinned-block/",Ln=se,es=1;function Jt(r){return r.version===0&&(r=r.toV1()),new fe(`${ts}${r.toString(Ln)}`)}var Yt=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=Jt(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let i=new ae({concurrency:es});for await(let a of this.#e(e,i,{...t,depth:o}))await this.#o(a,u=>u.pinnedBy.find(d=>ve(d,e.bytes))!=null?!1:(u.pinCount++,u.pinnedBy.push(e.bytes),!0),t),yield a;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,_e(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=await this.getCodec(e.code),i=await this.blockstore.get(e,n),s=Xi({bytes:i,cid:e,codec:o});yield e;for(let[,a]of s.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#o(e,t,n){let o=new fe(`${Zi}${Ln.encode(e.multihash.bytes)}`),i={pinCount:0,pinnedBy:[]};try{i=Z(await this.datastore.get(o,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(i)){if(i.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,_e(i),n),n.onProgress?.(new _("helia:pin:add",e))}}async*rm(e,t={}){let n=Jt(e),o=await this.datastore.get(n,t),i=Z(o);await this.datastore.delete(n,t);let s=new ae({concurrency:es});for await(let a of this.#e(e,s,{...t,depth:i.depth}))await this.#o(a,u=>(u.pinCount--,u.pinnedBy=u.pinnedBy.filter(d=>ve(d,e.bytes)),!0),{...t,depth:i.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:ts+(e.cid!=null?`${e.cid.toString(se)}`:"")},e)){let o=k.parse(t.toString().substring(5),se),i=Z(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new fe(`${Zi}${Ln.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=Jt(e),o=await this.datastore.get(n,t);return Z(o)}async setMetadata(e,t,n){let o=Jt(e),i=await this.datastore.get(o,n),s=Z(i);s.metadata=t??{},await this.datastore.put(o,_e(s),n)}};var Xt=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},ke=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},Zt=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},er=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var tr=class extends ae{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var Pn=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=B(),this.haveNext=B()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=B(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=B(),await Ue(this.readNext.promise,t?.signal,t)}};function rs(){return new Pn}function Yc(r){return r[Symbol.asyncIterator]!=null}async function Xc(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Zc(r){let e=new AbortController,t=rs();Xc(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*eu(r){for(let e of r)yield*e}function tu(...r){let e=[];for(let t of r)Yc(t)||e.push(t);return e.length===r.length?eu(e):Zc(r)}var rr=tu;var ru=5,nr=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??ru,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await he(...this.routers)}async stop(){await de(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new ke("No content routers available");let n=new tr({concurrency:this.providerLookupConcurrency});n.addEventListener("error",()=>{});for await(let o of rr(n.toGenerator(),...Ae(this.routers,"findProviders").map(i=>i.findProviders(e,t))))if(o!=null){if(o.multiaddrs.length===0){if(n.find(o.id)!=null)continue;n.add(async()=>{try{let i=await this.findPeer(o.id,t);return i.multiaddrs.length===0?null:i}catch(i){return this.log.error("could not load multiaddrs for peer %p",o.id,i),null}},{peerId:o.id,signal:t.signal}).catch(i=>{this.log.error("could not load multiaddrs for peer %p",o.id,i)})}yield o}}async provide(e,t={}){if(this.routers.length===0)throw new ke("No content routers available");await Promise.all(Ae(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ae(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ae(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Ae(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new ke("No peer routers available");let n=this,o=rr(...Ae(this.routers,"findPeer").map(i=>async function*(){try{yield await i.findPeer(e,t)}catch(s){n.log.error(s)}}()));for await(let i of o)if(i!=null)return i;throw new dt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new ke("No peer routers available");for await(let n of rr(...Ae(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ae(r,e){return r.filter(t=>t[e]!=null)}var ee=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};var or=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var ir=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ee)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function nu(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var sr=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=nu(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new ee),this.cleanup())}async join(e={}){let t=new ir(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ue(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Nn(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var st=class extends ne{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Nn(this.emitEmpty.bind(this),1),this.emitIdle=Nn(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new or;let n=new sr(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new ee)}),this.clear()}async onEmpty(e){this.size!==0&&await ye(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ye(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ye(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Lt({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail.result)},i=u=>{n(u.detail.error)},s=()=>{n()},a=()=>{n(new ee("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var ar="lock:worker:request-read",cr="lock:worker:abort-read-request",ur="lock:worker:release-read",lr="lock:master:grant-read",fr="lock:master:error-read",hr="lock:worker:request-write",dr="lock:worker:abort-write-request",pr="lock:worker:release-write",mr="lock:master:grant-write",gr="lock:master:error-write",yr="lock:worker:finalize",wr="mortice",ns={singleProcess:!1};var Rn=(r,e,t,n,o,i,s,a,u)=>d=>{if(d.data==null)return;let l={type:d.data.type,name:d.data.name,identifier:d.data.identifier};l.type===o&&r.safeDispatchEvent(t,{detail:{name:l.name,identifier:l.identifier,handler:async()=>{e.postMessage({type:u,name:l.name,identifier:l.identifier}),await new Promise(h=>{let g=w=>{if(w?.data==null)return;let x={type:w.data.type,name:w.data.name,identifier:w.data.identifier};x.type===a&&x.identifier===l.identifier&&(e.removeEventListener("message",g),h())};e.addEventListener("message",g)})},onError:h=>{e.postMessage({type:s,name:l.name,identifier:l.identifier,error:{message:h.message,name:h.name,stack:h.stack}})}}}),l.type===i&&r.safeDispatchEvent(n,{detail:{name:l.name,identifier:l.identifier}}),l.type===yr&&r.safeDispatchEvent("finalizeRequest",{detail:{name:l.name}})};var os=(r=10)=>Math.random().toString().substring(2,r+2);var xr=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(wr)}readLock(e){return this.sendRequest(ar,cr,lr,fr,ur,e)}writeLock(e){return this.sendRequest(hr,dr,mr,gr,pr,e)}finalize(){this.channel.postMessage({type:yr,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,i,s){s?.signal?.throwIfAborted();let a=os();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((u,d)=>{let l=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",l,{once:!0});let h=g=>{if(g.data?.identifier===a&&(g.data?.type===n&&(this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l),u(()=>{this.channel.postMessage({type:i,identifier:a,name:this.name})})),g.data.type===o)){this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l);let w=new Error;g.data.error!=null&&(w.message=g.data.error.message,w.name=g.data.error.name,w.stack=g.data.error.stack),d(w)}};this.channel.addEventListener("message",h)})}};var is=r=>{if(r=Object.assign({},ns,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(wr),n=new ne;return t.addEventListener("message",Rn(n,t,"requestReadLock","abortReadLockRequest",ar,cr,fr,ur,lr)),t.addEventListener("message",Rn(n,t,"requestWriteLock","abortWriteLockRequest",hr,dr,gr,pr,mr)),n}return new xr(r.name)};var Ce=new Map,at;function ss(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function ou(r){if(at==null&&(at=is(r),!ss(at))){let e=at;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,i=Ce.get(n);if(i==null)return;let s=new AbortController,a=u=>{u.detail.name!==n||u.detail.identifier!==o||s.abort()};e.addEventListener("abortReadLockRequest",a),i.readLock({signal:s.signal}).then(async u=>{await t.detail.handler().finally(()=>{u()})}).catch(u=>{t.detail.onError(u)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,i=Ce.get(n);if(i==null)return;let s=new AbortController,a=u=>{u.detail.name!==n||u.detail.identifier!==o||s.abort()};e.addEventListener("abortWriteLockRequest",a),i.writeLock({signal:s.signal}).then(async u=>{await t.detail.handler().finally(()=>{u()})}).catch(u=>{t.detail.onError(u)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=Ce.get(n);o?.finalize()})}return at}async function Dn(r,e){let t,n,o=new Promise((s,a)=>{t=s,n=a}),i=()=>{n(new ee)};return e?.signal?.addEventListener("abort",i,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",i),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),o}var as=(r,e)=>{let t=Ce.get(r);if(t!=null)return t;let n=ou(e);if(ss(n))return t=n,Ce.set(r,t),t;let o=new st({concurrency:1}),i;return t={async readLock(s){if(i!=null)return Dn(i,s);i=new st({concurrency:e.concurrency,autoStart:!1});let a=i,u=Dn(i,s);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{i===a&&(i=null)})}),u},async writeLock(s){return i=null,Dn(o,s)},finalize:()=>{Ce.delete(r)},queue:o},Ce.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var iu={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Bn(r){let e=Object.assign({},iu,r);return as(e.name,e)}var br=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Bn({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await de(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let i of e){if(await o.pins.isPinned(i))throw new Error("CID was pinned");yield i}}(),t)}finally{n()}}async has(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){e?.signal?.throwIfAborted();let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}createSession(e,t){return t?.signal?.throwIfAborted(),this.child.createSession(e,t)}};var Un=new fe("/version"),cs=1;async function us(r){if(!await r.has(Un)){await r.put(Un,U(`${cs}`));return}let e=await r.get(Un),t=De(e);if(parseInt(t,10)!==cs)throw new Error("Unknown datastore version, a datastore migration may be required")}var zn={};T(zn,{code:()=>On,decode:()=>pu,decodeOptions:()=>fu,encode:()=>du,encodeOptions:()=>uu,name:()=>hu,toByteView:()=>fs});var ls=42;function fs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function su(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new f(c.tag,ls),new f(c.bytes,t)]}function au(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function cu(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Fn={float64:!0,typeEncoders:{Object:su,undefined:au,number:cu}},uu={...Fn,typeEncoders:{...Fn.typeEncoders}};function lu(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return k.decode(r.subarray(1))}var Er={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Er.tags[ls]=lu;var fu={...Er,tags:Er.tags.slice()},hu="dag-cbor",On=113,du=r=>_e(r,Fn),pu=r=>Z(fs(r),Er);var Hn={};T(Hn,{code:()=>Vn,decode:()=>ds,encode:()=>hs,format:()=>Au,name:()=>ku,parse:()=>Su,stringify:()=>Au});var Mn=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===c.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===c.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[c.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[c.negint.major](e,t){this[c.uint.major](e,t)}[c.bytes.major](e,t){throw new Error(`${ce} unsupported type: Uint8Array`)}[c.string.major](e,t){this.prefix(e);let n=Ut(JSON.stringify(t.value));e.push(n.length>32?et(n):n)}[c.array.major](e,t){this.prefix(e),this.inRecursive.push({type:c.array,elements:0}),e.push([91])}[c.map.major](e,t){this.prefix(e),this.inRecursive.push({type:c.map,elements:0}),e.push([123])}[c.tag.major](e,t){}[c.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===c.array)e.push([93]);else if(s.type===c.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(t.value===void 0)throw new Error(`${ce} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.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 mu(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ce} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==c.string||n.type!==c.string)throw new Error(`${ce} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ce} unexpected duplicate map keys, this is not supported`)}var gu={addBreakTokens:!0,mapSorter:mu};function $n(r,e){return e=Object.assign({},gu,e),An(r,new Mn,e)}var je=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}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(`${m} unexpected end of input at position ${this._pos}`);for(let t=0;t<e.length;t++)if(this.data[this._pos++]!==e[t])throw new Error(`${m} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=a=>{for(;!this.done();){let u=this.ch();if(a.includes(u))this._pos++;else break}};if(this.ch()===45&&(t=!0,this._pos++),this.ch()===48)if(this._pos++,this.ch()===46)this._pos++,n=!0;else return new f(c.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${m} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${m} 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 f(c.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new f(s>=0?c.uint:c.negint,s,this._pos-e):new f(s>=0?c.uint:c.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${m} 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 a=this.data[i];if(a===92||a<32||a>=128)break;if(a===34){let u=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new f(c.string,u,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${m} unexpected end of unicode escape sequence at position ${this._pos}`);let i=0;for(let s=0;s<4;s++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${m} unexpected unicode escape character at position ${this._pos}`);i=i*16+a,this._pos++}return i},o=()=>{let i=this.ch(),s=null,a=i>239?4:i>223?3:i>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${m} unexpected unicode sequence at position ${this._pos}`);let u,d,l,h;switch(a){case 1:i<128&&(s=i);break;case 2:u=this.data[this._pos+1],(u&192)===128&&(h=(i&31)<<6|u&63,h>127&&(s=h));break;case 3:u=this.data[this._pos+1],d=this.data[this._pos+2],(u&192)===128&&(d&192)===128&&(h=(i&15)<<12|(u&63)<<6|d&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:u=this.data[this._pos+1],d=this.data[this._pos+2],l=this.data[this._pos+3],(u&192)===128&&(d&192)===128&&(l&192)===128&&(h=(i&15)<<18|(u&63)<<12|(d&63)<<6|l&63,h>65535&&h<1114112&&(s=h))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${m} unexpected string termination at position ${this._pos}`);switch(s=this.ch(),this._pos++,s){case 34:case 39:case 92:case 47:t.push(s);break;case 98:t.push(8);break;case 116:t.push(9);break;case 110:t.push(10);break;case 102:t.push(12);break;case 114:t.push(13);break;case 117:t.push(n());break;default:throw new Error(`${m} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new f(c.string,xn(t),this._pos-e);default:if(i<32)throw new Error(`${m} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${m} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new f(c.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new f(c.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new f(c.null,null,4);case 102:return this.expect([102,97,108,115,101]),new f(c.false,!1,5);case 116:return this.expect([116,114,117,101]),new f(c.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(`${m} 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 f(c.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 f(c.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 f(c.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 f(c.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${m} 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(`${m} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function qn(r,e){return e=Object.assign({tokenizer:new je(r,e)},e),Z(r,e)}function wu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function xu(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=e.toString();return[new f(c.map,1/0,1),new f(c.string,"/",1),new f(c.string,t,t.length),new f(c.break,void 0,1)]}function _r(r){let e=ge.encode(r).slice(1);return[new f(c.map,1/0,1),new f(c.string,"/",1),new f(c.map,1/0,1),new f(c.string,"bytes",5),new f(c.string,e,e.length),new f(c.break,void 0,1),new f(c.break,void 0,1)]}function te(r){return _r(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function bu(r){return _r(new Uint8Array(r))}function Eu(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function _u(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var vu={typeEncoders:{Object:xu,Buffer:_r,Uint8Array:_r,Int8Array:te,Uint16Array:te,Int16Array:te,Uint32Array:te,Int32Array:te,Float32Array:te,Float64Array:te,Uint8ClampedArray:te,BigInt64Array:te,BigUint64Array:te,DataView:te,ArrayBuffer:bu,undefined:Eu,number:_u}},jn=class extends je{constructor(e,t){super(e,t),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===c.map){let t=this._next();if(t.type===c.string&&t.value==="/"){let n=this._next();if(n.type===c.string){if(this._next().type!==c.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new f(c.tag,42,0)}if(n.type===c.map){let o=this._next();if(o.type===c.string&&o.value==="bytes"){let i=this._next();if(i.type===c.string){for(let a=0;a<2;a++)if(this._next().type!==c.break)throw new Error("Invalid encoded Bytes form");let s=ge.decode(`m${i.value}`);return new f(c.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Kn={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Kn.tags[42]=k.parse;var ku="dag-json",Vn=297,hs=r=>$n(r,vu),ds=r=>{let e=wu(r),t=Object.assign(Kn,{tokenizer:new jn(e,Kn)});return qn(e,t)},Au=r=>Cu.decode(hs(r));var Cu=new TextDecoder,Su=r=>ds(Iu.encode(r)),Iu=new TextEncoder;var Xn={};T(Xn,{code:()=>Yn,createLink:()=>vs,createNode:()=>_s,decode:()=>$u,encode:()=>Mu,name:()=>zu,prepare:()=>Qn,validate:()=>Jn});var Tu=new TextDecoder;function Wn(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function vr(r,e){let t;[t,e]=Wn(r,e);let n=e+t;if(t<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(e,n),n]}function ps(r,e){let t;return[t,e]=Wn(r,e),[t&7,t>>3,e]}function Lu(r){let e={},t=r.length,n=0;for(;n<t;){let o,i;if([o,i,n]=ps(r,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]=vr(r,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]=vr(r,n),e.Name=Tu.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]=Wn(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function ms(r){let e=r.length,t=0,n,o=!1,i;for(;t<e;){let a,u;if([a,u,t]=ps(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(u===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=vr(r,t),n&&(o=!0)}else if(u===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let d;[d,t]=vr(r,t),n.push(Lu(d))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${u}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var ys=new TextEncoder,gs=2**32,Pu=2**31;function Nu(r,e){let t=e.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");t=ct(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=ys.encode(r.Name);t-=n.length,e.set(n,t),t=ct(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ct(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function ws(r){let e=Du(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ct(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let i=Nu(r.Links[o],t.subarray(0,n));n-=i,n=ct(t,n,i)-1,t[n]=18}return t}function Ru(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ke(t)}if(typeof r.Name=="string"){let t=ys.encode(r.Name).length;e+=1+t+Ke(t)}return typeof r.Tsize=="number"&&(e+=1+Ke(r.Tsize)),e}function Du(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ke(t)}if(r.Links)for(let t of r.Links){let n=Ru(t);e+=1+n+Ke(n)}return e}function ct(r,e,t){e-=Ke(t);let n=e;for(;t>=Pu;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Ke(r){return r%2===0&&r++,Math.floor((Bu(r)+6)/7)}function Bu(r){let e=0;return r>=gs&&(r=Math.floor(r/gs),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+Uu[r]}var Uu=[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 Fu=["Data","Links"],Ou=["Hash","Name","Tsize"],Gn=new TextEncoder;function bs(r,e){if(r===e)return 0;let t=r.Name?Gn.encode(r.Name):[],n=e.Name?Gn.encode(e.Name):[],o=t.length,i=n.length;for(let s=0,a=Math.min(o,i);s<a;++s)if(t[s]!==n[s]){o=t[s],i=n[s];break}return o<i?-1:i<o?1:0}function xs(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function Es(r){if(typeof r.asCID=="object"){let t=k.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=k.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function Qn(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Data!==void 0)if(typeof r.Data=="string")e.Data=Gn.encode(r.Data);else if(r.Data instanceof Uint8Array)e.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))e.Links=r.Links.map(Es),e.Links.sort(bs);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Jn(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!xs(r,Fu))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<r.Links.length;e++){let t=r.Links[e];if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!xs(t,Ou))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(t.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(t.Hash==null||!t.Hash["/"]||t.Hash["/"]!==t.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(t.Name!==void 0&&typeof t.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(t.Tsize!==void 0){if(typeof t.Tsize!="number"||t.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(t.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&bs(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function _s(r,e=[]){return Qn({Data:r,Links:e})}function vs(r,e,t){return Es({Hash:t,Name:r,Tsize:e})}function ks(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var zu="dag-pb",Yn=112;function Mu(r){Jn(r);let e={};return r.Links&&(e.Links=r.Links.map(t=>{let n={};return t.Hash&&(n.Hash=t.Hash.bytes),t.Name!==void 0&&(n.Name=t.Name),t.Tsize!==void 0&&(n.Tsize=t.Tsize),n})),r.Data&&(e.Data=r.Data),ws(e)}function $u(r){let e=ks(r),t=ms(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let i={};try{i.Hash=k.decode(o.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(i.Name=o.Name),o.Tsize!==void 0&&(i.Tsize=o.Tsize),i})),n}function Ve(r){return r?.then!=null}function As(r=[],e){let t={[Yn]:Xn,[nn]:Et,[On]:zn,[Vn]:Hn,[rn]:bt};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let i=e(n);Ve(i)?o=await i:o=i,t[o.code]=o}if(o!=null)return o;throw new er(`Could not load codec for ${n}`)}}function Cs(r=[],e){let t={[kt.code]:kt,[At.code]:At,[vt.code]:vt};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let i=e(n);Ve(i)?o=await i:o=i,t[o.code]=o}if(o!=null)return o;throw new Zt(`No hasher configured for multihash code 0x${n.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`)}}function ie(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var kr=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var Ar=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,block:o}of e)await this.put(n,o,t),yield n}get(e,t){return Promise.reject(new Error(".get is not implemented"))}async*getMany(e,t){for await(let n of e)yield{cid:n,block:await this.get(n,t)}}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*deleteMany(e,t){for await(let n of e)await this.delete(n,t),yield n}async*getAll(e){throw new Error(".getAll is not implemented")}};var Cr=0,Sr=class extends Ar{child;constructor(e){super(),this.child=e}put(e,t,n){return e.multihash.code===Cr||this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}get(e,t){if(e.multihash.code===Cr)return t?.signal?.throwIfAborted(),e.multihash.digest;if(this.child==null)throw t?.signal?.throwIfAborted(),new kr;return this.child.get(e,t)}has(e,t){return e.multihash.code===Cr?(t?.signal?.throwIfAborted(),!0):this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===Cr){t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}getAll(e){return this.child!=null?this.child.getAll(e):(e?.signal?.throwIfAborted(),[])}};function qu(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[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(),[t](){return this}}}var Ir=qu;function ju(r){return r[Symbol.asyncIterator]!=null}function Ku(r,e){let t=0;if(ju(r))return async function*(){for await(let u of r)await e(u,t++)&&(yield u)}();let n=Ir(r),{value:o,done:i}=n.next();if(i===!0)return function*(){}();let s=e(o,t++);if(typeof s.then=="function")return async function*(){await s&&(yield o);for(let u of n)await e(u,t++)&&(yield u)}();let a=e;return function*(){s===!0&&(yield o);for(let u of n)a(u,t++)&&(yield u)}()}var Ss=Ku;function Vu(r){return r[Symbol.asyncIterator]!=null}function Is(r){return r?.then!=null}function Hu(r,e){let t=0;if(Vu(r))return async function*(){for await(let u of r){let d=e(u,t++);Is(d)&&await d,yield u}}();let n=Ir(r),{value:o,done:i}=n.next();if(i===!0)return function*(){}();if(typeof e(o,t++)?.then=="function")return async function*(){yield o;for(let u of n){let d=e(u,t++);Is(d)&&await d,yield u}}();let a=e;return function*(){yield o;for(let u of n)a(u,t++),yield u}()}var Zn=Hu;var Tr=class{child;getHasher;log;logger;components;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Sr(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new _("blocks:put:duplicate",e)),e):(n.onProgress?.(new _("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new _("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Ss(e,async({cid:i})=>{let s=await this.child.has(i,t);return s&&t.onProgress?.(new _("blocks:put-many:duplicate",i)),!s}),o=Zn(n,async({cid:i,block:s})=>{t.onProgress?.(new _("blocks:put-many:providers:notify",i)),await Promise.all(this.components.blockBrokers.map(async a=>a.announce?.(i,s,t)))});t.onProgress?.(new _("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e,t)){let n=await this.getHasher(e.multihash.code);t.onProgress?.(new _("blocks:get:providers:get",e));let o=await Ts(e,this.components.blockBrokers,n,{...t,log:this.log});return t.onProgress?.(new _("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new _("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,o,t))),o}return t.onProgress?.(new _("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new _("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Zn(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new _("blocks:get-many:providers:get",n));let i=await Ts(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new _("blocks:get-many:blockstore:put",n)),await this.child.put(n,i,t),t.onProgress?.(new _("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,i,t)))}}))}async delete(e,t={}){t.onProgress?.(new _("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new _("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new _("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Lr=class extends Tr{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await de(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new eo({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},eo=class extends Tr{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let o=ie([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:o})}finally{o.clear()}}async*putMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async get(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{return await super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=ie([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function Gu(r){return typeof r.retrieve=="function"}var Qu=(r,e)=>{if(e==null)throw new ht(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`);return async t=>{let n,o=e.digest(t);if(Ve(o)?n=await o:n=o,!ve(n.digest,r.multihash.digest))throw new pt("Hash of downloaded block did not match multihash from passed CID")}};async function Ts(r,e,t,n){let o=Qu(r,t),i=new AbortController,s=ie([i.signal,n.signal]);i.signal;let a=[];for(let u of e)Gu(u)&&a.push(u);try{return await Promise.any(a.map(async u=>{try{let d=!1,l=await u.retrieve(r,{...n,signal:s,validateFn:async h=>{await o(h),d=!0}});return d||await o(l),l}catch(d){throw n.log.error("could not retrieve verified block for %c",r,d),d}}))}finally{i.abort(),s.clear()}}var to={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Ls={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Ps=new globalThis.TextEncoder;function Ju(r,e){let t=to[e],n=Ls[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Yu(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=to[e],o=Ls[e],i=r;for(;i.length>0;){let s=Ps.encodeInto(i,t);i=i.slice(s.read);for(let a=0;a<s.written;a++)o^=BigInt(t[a]),o=BigInt.asUintN(e,o*n)}return o}function ro(r,{size:e=32,utf8Buffer:t}={}){if(!to[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return Yu(r,e,t);r=Ps.encode(r)}return Ju(r,e)}var ut={hash:r=>Number(ro(r,{size:32})),hashV:(r,e)=>Xu(ut.hash(r,e))};function Xu(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),U(e,"base16")}var no=64,re=class{fp;h;seed;constructor(e,t,n,o=2){if(o>no)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),s=Uo(o);for(let a=0;a<s.length;a++)s[a]=i[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?ve(this.fp,e.fp):!1}};function Se(r,e){return Math.floor(Math.random()*(e-r))+r}var Ie=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");let t=Se(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var Zu=500,lt=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??ut,this.seed=e.seed??Se(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=U(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new Ie(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new Ie(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let i=[n,o],s=i[Se(0,i.length-1)];this.buckets[s]==null&&(this.buckets[s]=new Ie(this.bucketSize));for(let a=0;a<Zu;a++){let u=this.buckets[s].swap(t);if(u!=null&&(s=(s^u.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new Ie(this.bucketSize)),this.buckets[s].add(u)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=U(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.has(t)??!1;if(o)return o;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=U(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.remove(t)??!1;if(o)return this.count--,o;let i=(n^t.hash())%this.filterSize,s=this.buckets[i]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},el={1:.5,2:.84,4:.95,8:.98};function tl(r=.001){return r>.002?2:r>1e-5?4:8}function Ns(r,e=.001){let t=tl(e),n=el[t],o=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),no);return{filterSize:o,bucketSize:t,fingerprintSize:i}}var Pr=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??ut,this.seed=e.seed??Se(0,Math.pow(2,10)),this.filterSeries=[new lt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=U(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new lt({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function oo(r,e=.001,t){return new Pr({...Ns(r,e),...t??{}})}var Nr=class extends ne{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=oo(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=ge.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let i=B();if(this.requests.set(n,i.promise),this.providers.length===0){let l=!1;this.initialPeerSearchComplete==null&&(l=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.initialPeerSearchComplete,l&&this.log("found initial session peers for %c",e)}let s=!1,a=new ae({concurrency:this.maxProviders});a.addEventListener("error",()=>{}),a.addEventListener("failure",l=>{this.log.error("error querying provider %o, evicting from session",l.detail.job.options.provider,l.detail.error),this.evict(l.detail.job.options.provider)}),a.addEventListener("success",l=>{s=!0,i.resolve(l.detail.result)}),a.addEventListener("idle",()=>{if(s||t.signal?.aborted===!0){this.log.trace("session idle, found block");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let l=0;l<this.minProviders&&this.providers.length!==0;l++){let h=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(h)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),i.resolve(await this.retrieve(e,t))}).catch(l=>{this.log.error("could not find new providers for %c",e,l),i.reject(l)})});let u=l=>{a.add(async()=>this.queryProvider(e,l.detail,t),{provider:l.detail}).catch(h=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,h)})};this.addEventListener("provider",u),Promise.all([...this.providers].map(async l=>a.add(async()=>this.queryProvider(e,l,t),{provider:l}))).catch(l=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,l)});let d=()=>{i.reject(new G(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",d);try{return await i.promise}finally{this.removeEventListener("provider",u),t.signal?.removeEventListener("abort",d),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let o=B(),i=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;i<t&&this.initialProviders.length>0;){let s=this.initialProviders.pop();if(s==null)break;let a=await this.convertToProvider(s,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",i,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),i++,i===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",i);break}}if(i<this.maxProviders)for await(let s of this.findNewProviders(e,n)){if(i===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(s)&&(this.log("found %d/%d new providers",i,this.maxProviders),this.providers.push(s),this.safeDispatchEvent("provider",{detail:s}),i++,i===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",i);break}}if(this.log("found %d/%d new session peers",i,this.maxProviders),i<t)throw new Xt(`Found ${i} of ${t} ${this.name} providers for ${e}`)}).catch(s=>{this.log.error("error searching routing for potential session peers for %c",e,s.errors??s),o.reject(s)}),o.promise}};var io=class{libp2p;blockstore;datastore;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??wo(),this.log=this.logger.forComponent("helia"),this.getHasher=Cs(e.hashers,e.loadHasher),this.getCodec=As(e.codecs,e.loadCodec),this.dns=e.dns??Vo(),this.metrics=e.metrics,this.libp2p=e.libp2p;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new nr(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[Rr]!=null&&i.push(o[Rr]),o[Dr]!=null&&i.push(o[Dr]),i}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Lr(t);this.pins=new Yt(e.datastore,n,this.getCodec),this.blockstore=new br(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await us(this.datastore),await he(this.blockstore,this.datastore,this.routing,this.libp2p)}async stop(){await de(this.blockstore,this.datastore,this.routing,this.libp2p)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await Ho(o.deleteMany(async function*(){for await(let{cid:i}of o.getAll())try{if(await n.pins.isPinned(i,e))continue;yield i,e.onProgress?.(new _("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new _("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Os(ol);})();
2
+ "use strict";var HeliaUtils=(()=>{var Us=Object.create;var ft=Object.defineProperty;var Bs=Object.getOwnPropertyDescriptor;var Fs=Object.getOwnPropertyNames;var Os=Object.getPrototypeOf,zs=Object.prototype.hasOwnProperty;var ao=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),T=(r,e)=>{for(var t in e)ft(r,t,{get:e[t],enumerable:!0})},co=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Fs(e))!zs.call(r,o)&&o!==t&&ft(r,o,{get:()=>e[o],enumerable:!(n=Bs(e,o))||n.enumerable});return r};var uo=(r,e,t)=>(t=r!=null?Us(Os(r)):{},co(e||!r||!r.__esModule?ft(t,"default",{value:r,enumerable:!0}):t,r)),Ms=r=>co(ft({},"__esModule",{value:!0}),r);var Eo=ao((Ul,Kr)=>{"use strict";var ba=Object.prototype.hasOwnProperty,R="~";function He(){}Object.create&&(He.prototype=Object.create(null),new He().__proto__||(R=!1));function Ea(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function bo(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new Ea(t,n||r,o),s=R?R+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],i]:r._events[s].push(i):(r._events[s]=i,r._eventsCount++),r}function wt(r,e){--r._eventsCount===0?r._events=new He:delete r._events[e]}function N(){this._events=new He,this._eventsCount=0}N.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)ba.call(t,n)&&e.push(R?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};N.prototype.listeners=function(e){var t=R?R+e:e,n=this._events[t];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};N.prototype.listenerCount=function(e){var t=R?R+e:e,n=this._events[t];return n?n.fn?1:n.length:0};N.prototype.emit=function(e,t,n,o,i,s){var a=R?R+e:e;if(!this._events[a])return!1;var u=this._events[a],d=arguments.length,l,h;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,o),!0;case 5:return u.fn.call(u.context,t,n,o,i),!0;case 6:return u.fn.call(u.context,t,n,o,i,s),!0}for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u.fn.apply(u.context,l)}else{var g=u.length,w;for(h=0;h<g;h++)switch(u[h].once&&this.removeListener(e,u[h].fn,void 0,!0),d){case 1:u[h].fn.call(u[h].context);break;case 2:u[h].fn.call(u[h].context,t);break;case 3:u[h].fn.call(u[h].context,t,n);break;case 4:u[h].fn.call(u[h].context,t,n,o);break;default:if(!l)for(w=1,l=new Array(d-1);w<d;w++)l[w-1]=arguments[w];u[h].fn.apply(u[h].context,l)}}return!0};N.prototype.on=function(e,t,n){return bo(this,e,t,n,!1)};N.prototype.once=function(e,t,n){return bo(this,e,t,n,!0)};N.prototype.removeListener=function(e,t,n,o){var i=R?R+e:e;if(!this._events[i])return this;if(!t)return wt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&wt(this,i);else{for(var a=0,u=[],d=s.length;a<d;a++)(s[a].fn!==t||o&&!s[a].once||n&&s[a].context!==n)&&u.push(s[a]);u.length?this._events[i]=u.length===1?u[0]:u:wt(this,i)}return this};N.prototype.removeAllListeners=function(e){var t;return e?(t=R?R+e:e,this._events[t]&&wt(this,t)):(this._events=new He,this._eventsCount=0),this};N.prototype.off=N.prototype.removeListener;N.prototype.addListener=N.prototype.on;N.prefixed=R;N.EventEmitter=N;typeof Kr<"u"&&(Kr.exports=N)});var jo=ao((qf,qo)=>{qo.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(i,s){t[i]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(i){return t[i]!==void 0||n[i]!==void 0},remove:function(i){t[i]!==void 0&&(t[i]=void 0),n[i]!==void 0&&(n[i]=void 0)},get:function(i){var s=t[i];if(s!==void 0)return s;if((s=n[i])!==void 0)return o(i,s),s},set:function(i,s){t[i]!==void 0?t[i]=s:o(i,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var sl={};T(sl,{AbstractSession:()=>Nr,Helia:()=>so});var Rr=Symbol.for("@libp2p/content-routing");var Dr=Symbol.for("@libp2p/peer-routing");var Q=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var ht=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var dt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var pt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var ne=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:i})=>i!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};function lo(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)lo(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function de(...r){let e=[];for(let t of r)lo(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Mr={};T(Mr,{base32:()=>me,base32hex:()=>Js,base32hexpad:()=>Xs,base32hexpadupper:()=>Zs,base32hexupper:()=>Ys,base32pad:()=>Gs,base32padupper:()=>Qs,base32upper:()=>Ws,base32z:()=>ea});var dl=new Uint8Array(0);function fo(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function J(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function ho(r){return new TextEncoder().encode(r)}function po(r){return new TextDecoder().decode(r)}function $s(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=o}var a=r.length,u=r.charAt(0),d=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function h(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var b=0,y=0,v=0,C=x.length;v!==C&&x[v]===0;)v++,b++;for(var S=(C-v)*l+1>>>0,I=new Uint8Array(S);v!==C;){for(var F=x[v],K=0,O=S-1;(F!==0||K<y)&&O!==-1;O--,K++)F+=256*I[O]>>>0,I[O]=F%a>>>0,F=F/a>>>0;if(F!==0)throw new Error("Non-zero carry");y=K,v++}for(var V=S-y;V!==S&&I[V]===0;)V++;for(var Te=u.repeat(b);V<S;++V)Te+=r.charAt(I[V]);return Te}function g(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;var b=0;if(x[b]!==" "){for(var y=0,v=0;x[b]===u;)y++,b++;for(var C=(x.length-b)*d+1>>>0,S=new Uint8Array(C);x[b];){var I=t[x.charCodeAt(b)];if(I===255)return;for(var F=0,K=C-1;(I!==0||F<v)&&K!==-1;K--,F++)I+=a*S[K]>>>0,S[K]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");v=F,b++}if(x[b]!==" "){for(var O=C-v;O!==C&&S[O]===0;)O++;for(var V=new Uint8Array(y+(C-O)),Te=y;O!==C;)V[Te++]=S[O++];return V}}}function w(x){var b=g(x);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:w}}var qs=$s,js=qs,mo=js;var Br=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Fr=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 go(this,e)}},Or=class{decoders;constructor(e){this.decoders=e}or(e){return go(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function go(r,e){return new Or({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var zr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Br(e,t,n),this.decoder=new Fr(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Le({name:r,prefix:e,encode:t,decode:n}){return new zr(r,e,t,n)}function pe({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=mo(t,r);return Le({prefix:e,name:r,encode:n,decode:i=>J(o(i))})}function Ks(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),s=0,a=0,u=0;for(let d=0;d<o;++d){let l=e[r[d]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|l,s+=t,s>=8&&(s-=8,i[u++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Vs(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,a=0;for(let u=0;u<r.length;++u)for(a=a<<8|r[u],s+=8;s>t;)s-=t,i+=e[o&a>>s];if(s!==0&&(i+=e[o&a<<t-s]),n)for(;(i.length*t&7)!==0;)i+="=";return i}function Hs(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function A({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Hs(n);return Le({prefix:e,name:r,encode(i){return Vs(i,n,t)},decode(i){return Ks(i,o,t,r)}})}var me=A({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ws=A({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Gs=A({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Qs=A({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Js=A({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ys=A({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Xs=A({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Zs=A({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ea=A({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $r={};T($r,{base58btc:()=>H,base58flickr:()=>ta});var H=pe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ta=pe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qr={};T(qr,{base64:()=>ge,base64pad:()=>ra,base64url:()=>na,base64urlpad:()=>oa});var ge=A({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ra=A({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),na=A({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),oa=A({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function ia(r,e){try{if(typeof r=="string"&&r.length>0)return sa(r);if(typeof r=="number"&&isFinite(r))return e?.long?ca(r):aa(r);throw new Error("Value is not a string or number.")}catch(t){let n=ua(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function sa(r){if(r=String(r),r.length>100)throw new Error("Value exceeds the maximum length of 100 characters.");let e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!e)return NaN;let t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*315576e5;case"weeks":case"week":case"w":return t*6048e5;case"days":case"day":case"d":return t*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return t*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return t*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return t*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:throw new Error(`The unit ${n} was matched, but no matching case exists.`)}}var gt=ia;function aa(r){let e=Math.abs(r);return e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function ca(r){let e=Math.abs(r);return e>=864e5?mt(r,e,864e5,"day"):e>=36e5?mt(r,e,36e5,"hour"):e>=6e4?mt(r,e,6e4,"minute"):e>=1e3?mt(r,e,1e3,"second"):`${r} ms`}function mt(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function ua(r){return typeof r=="object"&&r!==null&&"message"in r}function jr(r){t.debug=t,t.default=t,t.coerce=u,t.disable=i,t.enable=o,t.enabled=s,t.humanize=gt,t.destroy=d,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let h=0;for(let g=0;g<l.length;g++)h=(h<<5)-h+l.charCodeAt(g),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=e;function t(l){let h,g=null,w,x;function b(...y){if(!b.enabled)return;let v=b,C=Number(new Date),S=C-(h||C);v.diff=S,v.prev=h,v.curr=C,h=C,y[0]=t.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let I=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(K,O)=>{if(K==="%%")return"%";I++;let V=t.formatters[O];if(typeof V=="function"){let Te=y[I];K=V.call(v,Te),y.splice(I,1),I--}return K}),t.formatArgs.call(v,y),(v.log||t.log).apply(v,y)}return b.namespace=l,b.useColors=t.useColors(),b.color=t.selectColor(l),b.extend=n,b.destroy=t.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(w!==t.namespaces&&(w=t.namespaces,x=t.enabled(l)),x),set:y=>{g=y}}),typeof t.init=="function"&&t.init(b),b}function n(l,h){let g=t(this.namespace+(typeof h>"u"?":":h)+l);return g.log=this.log,g}function o(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let h,g=(typeof l=="string"?l:"").split(/[\s,]+/),w=g.length;for(h=0;h<w;h++)g[h]&&(l=g[h].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.substr(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function i(){let l=[...t.names.map(a),...t.skips.map(a).map(h=>"-"+h)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let h,g;for(h=0,g=t.skips.length;h<g;h++)if(t.skips[h].test(l))return!1;for(h=0,g=t.names.length;h<g;h++)if(t.names[h].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function u(l){return l instanceof Error?l.stack??l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var yt=ga(),la=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function fa(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function ha(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+gt(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var da=console.debug??console.log??(()=>{});function pa(r){try{r?yt?.setItem("debug",r):yt?.removeItem("debug")}catch{}}function ma(){let r;try{r=yt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function ga(){try{return localStorage}catch{}}function ya(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var yo=jr({formatArgs:ha,save:pa,load:ma,useColors:fa,setupFormatters:ya,colors:la,storage:yt,log:da});var D=yo;D.formatters.b=r=>r==null?"undefined":H.baseEncode(r);D.formatters.t=r=>r==null?"undefined":me.baseEncode(r);D.formatters.m=r=>r==null?"undefined":ge.baseEncode(r);D.formatters.p=r=>r==null?"undefined":r.toString();D.formatters.c=r=>r==null?"undefined":r.toString();D.formatters.k=r=>r==null?"undefined":r.toString();D.formatters.a=r=>r==null?"undefined":r.toString();D.formatters.e=r=>r==null?"undefined":wo(r.stack)??wo(r.message)??r.toString();function wa(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function xo(){return{forComponent(r){return xa(r)}}}function xa(r){let e=wa(`${r}:trace`);return D.enabled(`${r}:trace`)&&D.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=D(`${r}:trace`)),Object.assign(D(r),{error:D(`${r}:error`),trace:e})}function wo(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var _=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Vr=uo(Eo(),1);var We=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Hr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},_o=r=>globalThis.DOMException===void 0?new Hr(r):new DOMException(r),vo=r=>{let e=r.reason===void 0?_o("This operation was aborted."):r.reason;return e instanceof Error?e:_o(e)};function Wr(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,a,d=new Promise((l,h)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:w}=e;w.aborted&&h(vo(w)),a=()=>{h(vo(w))},w.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(l,h);return}let g=new We;s=i.setTimeout.call(void 0,()=>{if(n){try{l(n())}catch(w){h(w)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?l():o instanceof Error?h(o):(g.message=o??`Promise timed out after ${t} milliseconds`,h(g))},t),(async()=>{try{l(await r)}catch(w){h(w)}})()}).finally(()=>{d.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return d.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},d}function Gr(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var Ge=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,id:t.id,run:e};if(this.size===0||this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Gr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}setPriority(e,t){let n=this.#e.findIndex(i=>i.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Qe=class extends Vr.default{#e;#o;#s=0;#d;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#g;#x=1n;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ge,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${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 \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#o=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#a=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#o||this.#s<this.#d}get#E(){return this.#n<this.#u}#_(){this.#n--,this.#l(),this.emit("next")}#v(){this.#w(),this.#y(),this.#c=void 0}get#k(){let e=Date.now();if(this.#r===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#n:0;else return this.#c===void 0&&(this.#c=setTimeout(()=>{this.#v()},t)),!0}return!1}#l(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#k;if(this.#b&&this.#E){let t=this.#t.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#w()},this.#a),this.#p=Date.now()+this.#a)}#w(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#f()}#f(){for(;this.#l(););}get concurrency(){return this.#u}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})`);this.#u=e,this.#f()}async#A(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){this.#t.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#x++).toString(),t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{t.signal?.throwIfAborted();let i=e({signal:t.signal});t.timeout&&(i=Wr(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#A(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof We&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#_()}},t),this.emit("add"),this.#l()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#f(),this):this}pause(){this.#i=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#h("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#h("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#h("idle")}async#h(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#i}};function xt(r){let e=[Y.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Qr={};T(Qr,{base10:()=>_a});var _a=pe({prefix:"9",name:"base10",alphabet:"0123456789"});var Jr={};T(Jr,{base16:()=>va,base16upper:()=>ka});var va=A({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ka=A({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Yr={};T(Yr,{base2:()=>Aa});var Aa=A({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Xr={};T(Xr,{base256emoji:()=>La});var ko=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}"),Ca=ko.reduce((r,e,t)=>(r[t]=e,r),[]),Sa=ko.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Ia(r){return r.reduce((e,t)=>(e+=Ca[t],e),"")}function Ta(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Sa[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var La=Le({prefix:"\u{1F680}",name:"base256emoji",encode:Ia,decode:Ta});var Zr={};T(Zr,{base36:()=>se,base36upper:()=>Pa});var se=pe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Pa=pe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var en={};T(en,{base8:()=>Na});var Na=A({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var tn={};T(tn,{identity:()=>Ra});var Ra=Le({prefix:"\0",name:"identity",encode:r=>po(r),decode:r=>ho(r)});var bt={};T(bt,{code:()=>rn,decode:()=>Oa,encode:()=>Fa,name:()=>Ba});var Da=new TextEncoder,Ua=new TextDecoder,Ba="json",rn=512;function Fa(r){return Da.encode(JSON.stringify(r))}function Oa(r){return JSON.parse(Ua.decode(r))}var Et={};T(Et,{code:()=>nn,decode:()=>$a,encode:()=>Ma,name:()=>za});var za="raw",nn=85;function Ma(r){return J(r)}function $a(r){return J(r)}var sn={};T(sn,{identity:()=>vt});var qa=So,Ao=128,ja=127,Ka=~ja,Va=Math.pow(2,31);function So(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Va;)e[t++]=r&255|Ao,r/=128;for(;r&Ka;)e[t++]=r&255|Ao,r>>>=7;return e[t]=r|0,So.bytes=t-n+1,e}var Ha=on,Wa=128,Co=127;function on(r,n){var t=0,n=n||0,o=0,i=n,s,a=r.length;do{if(i>=a)throw on.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&Co)<<o:(s&Co)*Math.pow(2,o),o+=7}while(s>=Wa);return on.bytes=i-n,t}var Ga=Math.pow(2,7),Qa=Math.pow(2,14),Ja=Math.pow(2,21),Ya=Math.pow(2,28),Xa=Math.pow(2,35),Za=Math.pow(2,42),ec=Math.pow(2,49),tc=Math.pow(2,56),rc=Math.pow(2,63),nc=function(r){return r<Ga?1:r<Qa?2:r<Ja?3:r<Ya?4:r<Xa?5:r<Za?6:r<ec?7:r<tc?8:r<rc?9:10},oc={encode:qa,decode:Ha,encodingLength:nc},ic=oc,Je=ic;function Ye(r,e=0){return[Je.decode(r,e),Je.decode.bytes]}function Pe(r,e,t=0){return Je.encode(r,e,t),e}function Ne(r){return Je.encodingLength(r)}function be(r,e){let t=e.byteLength,n=Ne(r),o=n+Ne(t),i=new Uint8Array(o+t);return Pe(r,i,0),Pe(t,i,n),i.set(e,o),new Re(r,t,e,i)}function Io(r){let e=J(r),[t,n]=Ye(e),[o,i]=Ye(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Re(t,o,s,e)}function To(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&fo(r.bytes,t.bytes)}}var Re=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Lo=0,sc="identity",Po=J;function ac(r){return be(Lo,Po(r))}var vt={code:Lo,name:sc,encode:Po,digest:ac};var un={};T(un,{sha256:()=>kt,sha512:()=>At});function cn({name:r,code:e,encode:t}){return new an(r,e,t)}var an=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?be(this.code,t):t.then(n=>be(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Ro(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var kt=cn({name:"sha2-256",code:18,encode:Ro("SHA-256")}),At=cn({name:"sha2-512",code:19,encode:Ro("SHA-512")});function Do(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return uc(t,ln(r),e??H.encoder);default:return lc(t,ln(r),e??me.encoder)}}var Uo=new WeakMap;function ln(r){let e=Uo.get(r);if(e==null){let t=new Map;return Uo.set(r,t),t}return e}var k=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Ze)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==fc)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=be(e,t);return r.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 r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&To(e.multihash,n.multihash)}toString(e){return Do(this,e)}toJSON(){return{"/":Do(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:i,bytes:s}=t;return new r(n,o,i,s??Bo(n,o,i.bytes))}else if(t[hc]===!0){let{version:n,multihash:o,code:i}=t,s=Io(o);return r.create(n,i,s)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Ze)throw new Error(`Version 0 CID must use dag-pb (code: ${Ze}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=Bo(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Ze,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=J(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=o.subarray(t.multihashSize-t.digestSize),s=new Re(t.multihashCode,t.digestSize,i,o);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[h,g]=Ye(e.subarray(t));return t+=g,h},o=n(),i=Ze;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,a=n(),u=n(),d=t+u,l=d-s;return{version:o,codec:i,multihashCode:a,digestSize:u,multihashSize:l,size:d}}static parse(e,t){let[n,o]=cc(e,t),i=r.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ln(i).set(n,e),i}};function cc(r,e){switch(r[0]){case"Q":{let t=e??H;return[H.prefix,t.decode(`${H.prefix}${r}`)]}case H.prefix:{let t=e??H;return[H.prefix,t.decode(r)]}case me.prefix:{let t=e??me;return[me.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function uc(r,e,t){let{prefix:n}=t;if(n!==H.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return o}function lc(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let i=t.encode(r);return e.set(n,i),i}else return o}var Ze=112,fc=18;function Bo(r,e,t){let n=Ne(r),o=n+Ne(e),i=new Uint8Array(o+t.byteLength);return Pe(r,i,0),Pe(e,i,n),i.set(t,o),i}var hc=Symbol.for("@ipld/js-cid/CID");var fn={...tn,...Yr,...en,...Qr,...Jr,...Mr,...Zr,...$r,...qr,...Xr},vf={...un,...sn};function Fo(r=0){return new Uint8Array(r)}function Oo(r=0){return new Uint8Array(r)}function Mo(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var zo=Mo("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),hn=Mo("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Oo(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),dc={utf8:zo,"utf-8":zo,hex:fn.base16,latin1:hn,ascii:hn,binary:hn,...fn},Ct=dc;function De(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var dn=60;function St(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:Y[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Y[e.type],TTL:e.TTL??e.ttl??dn,data:e.data instanceof Uint8Array?De(e.data):e.data}))}}var pc=4;function pn(r,e={}){let t=new Qe({concurrency:e.queryConcurrency??pc});return async(n,o={})=>{let i=new URLSearchParams;i.set("name",n),xt(o.types).forEach(a=>{i.append("type",Y[a])}),o.onProgress?.(new _("dns:query",{detail:n}));let s=await t.add(async()=>{let a=await fetch(`${r}?${i}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let u=St(await a.json());return o.onProgress?.(new _("dns:response",{detail:u})),u},{signal:o.signal});if(s==null)throw new Error("No DNS response received");return s}}function $o(){return[pn("https://cloudflare-dns.com/dns-query"),pn("https://dns.google/resolve")]}var Ko=uo(jo(),1);var mn=class{lru;constructor(e){this.lru=(0,Ko.default)(e)}get(e,t){let n=!0,o=[];for(let i of t){let s=this.getAnswers(e,i);if(s.length===0){n=!1;break}o.push(...s)}if(n)return St({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let i=o.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:Y[a.type]}));return i.length===0&&this.lru.remove(n),i}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??dn)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Vo(r){return new mn(r)}var mc=1e3,It=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Vo(e.cacheSize??mc),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=$o())}async query(e,t={}){let n=xt(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new _("dns:cache",{detail:o})),o;let i=`${e.split(".").pop()}.`,s=(this.resolvers[i]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let u of s){if(t.signal?.aborted===!0)break;try{let d=await u(e,{...t,types:n});for(let l of d.Answer)this.cache.add(e,l);return d}catch(d){a.push(d),t.onProgress?.(new _("dns:error",{detail:d}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Y;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Y||(Y={}));function Ho(r={}){return new It(r)}function gc(r){return r[Symbol.asyncIterator]!=null}function yc(r){if(gc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Wo=yc;function U(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Tt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)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}},Ue=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Tt(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Tt(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var gn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Lt(r={}){return wc(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function wc(r,e){e=e??{};let t=e.onEnd,n=new Ue,o,i,s,a=U(),u=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,v)=>{i=C=>{i=null,n.push(C);try{y(r(n))}catch(S){v(S)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=U()})}},d=y=>i!=null?i(y):(n.push(y),o),l=y=>(n=new Ue,i!=null?i({error:y}):(n.push({error:y}),o)),h=y=>{if(s)return o;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return d({done:!1,value:y})},g=y=>s?o:(s=!0,y!=null?l(y):d({done:!0})),w=()=>(n=new Ue,g(),{done:!0}),x=y=>(g(y),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:w,throw:x,push:h,end:g,get readableLength(){return n.size},onEmpty:async y=>{let v=y?.signal;if(v?.throwIfAborted(),n.isEmpty())return;let C,S;v!=null&&(C=new Promise((I,F)=>{S=()=>{F(new gn)},v.addEventListener("abort",S)}));try{await Promise.race([a.promise,C])}finally{S!=null&&v!=null&&v?.removeEventListener("abort",S)}}},t==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(y){return b.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return b.return(),t!=null&&(t(),t=void 0),{done:!0}},push:h,end(y){return b.end(y),t!=null&&(t(y),t=void 0),o},get readableLength(){return b.readableLength},onEmpty:y=>b.onEmpty(y)},o}var z=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function ye(r,e,t,n){let o=new z(n?.errorMessage);n?.errorCode!=null&&(o.code=n.errorCode);let i=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(o):new Promise((s,a)=>{function u(){wn(t,"abort",h),wn(r,e,d),wn(r,i,l)}let d=g=>{try{if(n?.filter?.(g)===!1)return}catch(w){u(),a(w);return}u(),s(g)},l=g=>{if(u(),g instanceof Error){a(g);return}a(g.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},h=()=>{u(),a(o)};yn(t,"abort",h),yn(r,e,d),yn(r,i,l)})}function yn(r,e,t){r!=null&&(Go(r)?r.addEventListener(e,t):r.addListener(e,t))}function wn(r,e,t){r!=null&&(Go(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Go(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}function xn(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Pt=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Nt=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Be(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new Nt(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Nt(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Rt=class{deferred;signal;constructor(e){this.signal=e,this.deferred=U(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Q)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function xc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Dt=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=xc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Q),this.cleanup())}async join(e={}){let t=new Rt(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Be(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var ae=class extends ne{concurrency;maxSize;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=xn(this.emitEmpty.bind(this),1),this.emitIdle=xn(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Pt;let n=new Dt(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("completed",{detail:o}),this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:o}),this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Q)}),this.clear()}async onEmpty(e){this.size!==0&&await ye(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ye(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ye(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Lt({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail)},i=u=>{n(u.detail)},s=()=>{n()},a=()=>{n(new Q("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("error",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var bc=["string","number","bigint","symbol"],Ec=["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 Qo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(bc.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(_c(r))return"Buffer";let t=vc(r);return t||"Object"}function _c(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function vc(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Ec.includes(e))return e}var c=class{constructor(e,t,n){this.major=e,this.majorEncoded=e<<5,this.name=t,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};c.uint=new c(0,"uint",!0);c.negint=new c(1,"negint",!0);c.bytes=new c(2,"bytes",!0);c.string=new c(3,"string",!0);c.array=new c(4,"array",!1);c.map=new c(5,"map",!1);c.tag=new c(6,"tag",!1);c.float=new c(7,"float",!0);c.false=new c(7,"false",!0);c.true=new c(7,"true",!0);c.null=new c(7,"null",!0);c.undefined=new c(7,"undefined",!0);c.break=new c(7,"break",!0);var f=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Fe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",kc=new TextDecoder,Ac=new TextEncoder;function Ut(r){return Fe&&globalThis.Buffer.isBuffer(r)}function et(r){return r instanceof Uint8Array?Ut(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Zo=Fe?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Yo(r,e,t):(r,e,t)=>t-e>64?kc.decode(r.subarray(e,t)):Yo(r,e,t),Bt=Fe?r=>r.length>64?globalThis.Buffer.from(r):Jo(r):r=>r.length>64?Ac.encode(r):Jo(r),oe=r=>Uint8Array.from(r),Oe=Fe?(r,e,t)=>Ut(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),ei=Fe?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),et(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},ti=Fe?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function ri(r,e){if(Ut(r)&&Ut(e))return r.compare(e);for(let t=0;t<r.length;t++)if(r[t]!==e[t])return r[t]<e[t]?-1:1;return 0}function Jo(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function Yo(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let a,u,d,l;switch(s){case 1:o<128&&(i=o);break;case 2:a=r[e+1],(a&192)===128&&(l=(o&31)<<6|a&63,l>127&&(i=l));break;case 3:a=r[e+1],u=r[e+2],(a&192)===128&&(u&192)===128&&(l=(o&15)<<12|(a&63)<<6|u&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:a=r[e+1],u=r[e+2],d=r[e+3],(a&192)===128&&(u&192)===128&&(d&192)===128&&(l=(o&15)<<18|(a&63)<<12|(u&63)<<6|d&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 bn(n)}var Xo=4096;function bn(r){let e=r.length;if(e<=Xo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Xo));return t}var Cc=256,tt=class{constructor(e=Cc){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 t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=ti(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=Oe(n,0,this.cursor)}else t=ei(this.chunks,this.cursor);return e&&this.reset(),t}};var m="CBOR decode error:",ce="CBOR encode error:",rt=[];rt[23]=1;rt[24]=2;rt[25]=3;rt[26]=5;rt[27]=9;function ue(r,e,t){if(r.length-e<t)throw new Error(`${m} not enough data for type`)}var L=[24,256,65536,4294967296,BigInt("18446744073709551616")];function M(r,e,t){ue(r,e,1);let n=r[e];if(t.strict===!0&&n<L[0])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function $(r,e,t){ue(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<L[1])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){ue(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<L[2])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function j(r,e,t){ue(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<L[3])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${m} integers outside of the safe integer range are not supported`)}function ni(r,e,t,n){return new f(c.uint,M(r,e+1,n),2)}function oi(r,e,t,n){return new f(c.uint,$(r,e+1,n),3)}function ii(r,e,t,n){return new f(c.uint,q(r,e+1,n),5)}function si(r,e,t,n){return new f(c.uint,j(r,e+1,n),9)}function W(r,e){return P(r,0,e.value)}function P(r,e,t){if(t<L[0]){let n=Number(t);r.push([e|n])}else if(t<L[1]){let n=Number(t);r.push([e|24,n])}else if(t<L[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<L[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<L[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,r.push(o)}else throw new Error(`${m} encountered BigInt larger than allowable range`)}}W.encodedSize=function(e){return P.encodedSize(e.value)};P.encodedSize=function(e){return e<L[0]?1:e<L[1]?2:e<L[2]?3:e<L[3]?5:9};W.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function ai(r,e,t,n){return new f(c.negint,-1-M(r,e+1,n),2)}function ci(r,e,t,n){return new f(c.negint,-1-$(r,e+1,n),3)}function ui(r,e,t,n){return new f(c.negint,-1-q(r,e+1,n),5)}var En=BigInt(-1),li=BigInt(1);function fi(r,e,t,n){let o=j(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new f(c.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${m} integers outside of the safe integer range are not supported`);return new f(c.negint,En-BigInt(o),9)}function Ft(r,e){let t=e.value,n=typeof t=="bigint"?t*En-li:t*-1-1;P(r,e.type.majorEncoded,n)}Ft.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*En-li:t*-1-1;return n<L[0]?1:n<L[1]?2:n<L[2]?3:n<L[3]?5:9};Ft.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function nt(r,e,t,n){ue(r,e,t+n);let o=Oe(r,e+t,e+t+n);return new f(c.bytes,o,t+n)}function hi(r,e,t,n){return nt(r,e,1,t)}function di(r,e,t,n){return nt(r,e,2,M(r,e+1,n))}function pi(r,e,t,n){return nt(r,e,3,$(r,e+1,n))}function mi(r,e,t,n){return nt(r,e,5,q(r,e+1,n))}function gi(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer bytes lengths not supported`);return nt(r,e,9,o)}function Ot(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===c.string?Bt(r.value):r.value),r.encodedBytes}function ze(r,e){let t=Ot(e);P(r,e.type.majorEncoded,t.length),r.push(t)}ze.encodedSize=function(e){let t=Ot(e);return P.encodedSize(t.length)+t.length};ze.compareTokens=function(e,t){return Ic(Ot(e),Ot(t))};function Ic(r,e){return r.length<e.length?-1:r.length>e.length?1:ri(r,e)}function ot(r,e,t,n,o){let i=t+n;ue(r,e,i);let s=new f(c.string,Zo(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Oe(r,e+t,e+i)),s}function yi(r,e,t,n){return ot(r,e,1,t,n)}function wi(r,e,t,n){return ot(r,e,2,M(r,e+1,n),n)}function xi(r,e,t,n){return ot(r,e,3,$(r,e+1,n),n)}function bi(r,e,t,n){return ot(r,e,5,q(r,e+1,n),n)}function Ei(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer string lengths not supported`);return ot(r,e,9,o,n)}var _i=ze;function Me(r,e,t,n){return new f(c.array,n,t)}function vi(r,e,t,n){return Me(r,e,1,t)}function ki(r,e,t,n){return Me(r,e,2,M(r,e+1,n))}function Ai(r,e,t,n){return Me(r,e,3,$(r,e+1,n))}function Ci(r,e,t,n){return Me(r,e,5,q(r,e+1,n))}function Si(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer array lengths not supported`);return Me(r,e,9,o)}function Ii(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return Me(r,e,1,1/0)}function zt(r,e){P(r,c.array.majorEncoded,e.value)}zt.compareTokens=W.compareTokens;zt.encodedSize=function(e){return P.encodedSize(e.value)};function $e(r,e,t,n){return new f(c.map,n,t)}function Ti(r,e,t,n){return $e(r,e,1,t)}function Li(r,e,t,n){return $e(r,e,2,M(r,e+1,n))}function Pi(r,e,t,n){return $e(r,e,3,$(r,e+1,n))}function Ni(r,e,t,n){return $e(r,e,5,q(r,e+1,n))}function Ri(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer map lengths not supported`);return $e(r,e,9,o)}function Di(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return $e(r,e,1,1/0)}function Mt(r,e){P(r,c.map.majorEncoded,e.value)}Mt.compareTokens=W.compareTokens;Mt.encodedSize=function(e){return P.encodedSize(e.value)};function Ui(r,e,t,n){return new f(c.tag,t,1)}function Bi(r,e,t,n){return new f(c.tag,M(r,e+1,n),2)}function Fi(r,e,t,n){return new f(c.tag,$(r,e+1,n),3)}function Oi(r,e,t,n){return new f(c.tag,q(r,e+1,n),5)}function zi(r,e,t,n){return new f(c.tag,j(r,e+1,n),9)}function $t(r,e){P(r,c.tag.majorEncoded,e.value)}$t.compareTokens=W.compareTokens;$t.encodedSize=function(e){return P.encodedSize(e.value)};var Dc=20,Uc=21,Bc=22,Fc=23;function Mi(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${m} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new f(c.null,null,1):new f(c.undefined,void 0,1)}function $i(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return new f(c.break,void 0,1)}function _n(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${m} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${m} Infinity values are not supported`)}return new f(c.float,r,e)}function qi(r,e,t,n){return _n(vn(r,e+1),3,n)}function ji(r,e,t,n){return _n(kn(r,e+1),5,n)}function Ki(r,e,t,n){return _n(Gi(r,e+1),9,n)}function qt(r,e,t){let n=e.value;if(n===!1)r.push([c.float.majorEncoded|Dc]);else if(n===!0)r.push([c.float.majorEncoded|Uc]);else if(n===null)r.push([c.float.majorEncoded|Bc]);else if(n===void 0)r.push([c.float.majorEncoded|Fc]);else{let o,i=!1;(!t||t.float64!==!0)&&(Hi(n),o=vn(X,1),n===o||Number.isNaN(n)?(X[0]=249,r.push(X.slice(0,3)),i=!0):(Wi(n),o=kn(X,1),n===o&&(X[0]=250,r.push(X.slice(0,5)),i=!0))),i||(Oc(n),o=Gi(X,1),X[0]=251,r.push(X.slice(0,9)))}}qt.encodedSize=function(e,t){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!t||t.float64!==!0){Hi(n);let o=vn(X,1);if(n===o||Number.isNaN(n))return 3;if(Wi(n),o=kn(X,1),n===o)return 5}return 9};var Vi=new ArrayBuffer(9),G=new DataView(Vi,1),X=new Uint8Array(Vi,0);function Hi(r){if(r===1/0)G.setUint16(0,31744,!1);else if(r===-1/0)G.setUint16(0,64512,!1);else if(Number.isNaN(r))G.setUint16(0,32256,!1);else{G.setFloat32(0,r);let e=G.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)G.setUint16(0,31744,!1);else if(t===0)G.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?G.setUint16(0,0):o<-14?G.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):G.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function vn(r,e){if(r.length-e<2)throw new Error(`${m} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function Wi(r){G.setFloat32(0,r,!1)}function kn(r,e){if(r.length-e<4)throw new Error(`${m} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Oc(r){G.setFloat64(0,r,!1)}function Gi(r,e){if(r.length-e<8)throw new Error(`${m} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}qt.compareTokens=W.compareTokens;function E(r,e,t){throw new Error(`${m} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function jt(r){return()=>{throw new Error(`${m} ${r}`)}}var p=[];for(let r=0;r<=23;r++)p[r]=E;p[24]=ni;p[25]=oi;p[26]=ii;p[27]=si;p[28]=E;p[29]=E;p[30]=E;p[31]=E;for(let r=32;r<=55;r++)p[r]=E;p[56]=ai;p[57]=ci;p[58]=ui;p[59]=fi;p[60]=E;p[61]=E;p[62]=E;p[63]=E;for(let r=64;r<=87;r++)p[r]=hi;p[88]=di;p[89]=pi;p[90]=mi;p[91]=gi;p[92]=E;p[93]=E;p[94]=E;p[95]=jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)p[r]=yi;p[120]=wi;p[121]=xi;p[122]=bi;p[123]=Ei;p[124]=E;p[125]=E;p[126]=E;p[127]=jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)p[r]=vi;p[152]=ki;p[153]=Ai;p[154]=Ci;p[155]=Si;p[156]=E;p[157]=E;p[158]=E;p[159]=Ii;for(let r=160;r<=183;r++)p[r]=Ti;p[184]=Li;p[185]=Pi;p[186]=Ni;p[187]=Ri;p[188]=E;p[189]=E;p[190]=E;p[191]=Di;for(let r=192;r<=215;r++)p[r]=Ui;p[216]=Bi;p[217]=Fi;p[218]=Oi;p[219]=zi;p[220]=E;p[221]=E;p[222]=E;p[223]=E;for(let r=224;r<=243;r++)p[r]=jt("simple values are not supported");p[244]=E;p[245]=E;p[246]=E;p[247]=Mi;p[248]=jt("simple values are not supported");p[249]=qi;p[250]=ji;p[251]=Ki;p[252]=E;p[253]=E;p[254]=E;p[255]=$i;var Z=[];for(let r=0;r<24;r++)Z[r]=new f(c.uint,r,1);for(let r=-1;r>=-24;r--)Z[31-r]=new f(c.negint,r,1);Z[64]=new f(c.bytes,new Uint8Array(0),1);Z[96]=new f(c.string,"",1);Z[128]=new f(c.array,0,1);Z[160]=new f(c.map,0,1);Z[244]=new f(c.false,!1,1);Z[245]=new f(c.true,!0,1);Z[246]=new f(c.null,null,1);function Qi(r){switch(r.type){case c.false:return oe([244]);case c.true:return oe([245]);case c.null:return oe([246]);case c.bytes:return r.value.length?void 0:oe([64]);case c.string:return r.value===""?oe([96]):void 0;case c.array:return r.value===0?oe([128]):void 0;case c.map:return r.value===0?oe([160]):void 0;case c.uint:return r.value<24?oe([Number(r.value)]):void 0;case c.negint:if(r.value>=-24)return oe([31-Number(r.value)])}}var Mc={float64:!1,mapSorter:jc,quickEncodeToken:Qi};function $c(){let r=[];return r[c.uint.major]=W,r[c.negint.major]=Ft,r[c.bytes.major]=ze,r[c.string.major]=_i,r[c.array.major]=zt,r[c.map.major]=Mt,r[c.tag.major]=$t,r[c.float.major]=qt,r}var Ji=$c(),An=new tt,Vt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${ce} object contains circular references`);return new r(t,e)}},we={null:new f(c.null,null),undefined:new f(c.undefined,void 0),true:new f(c.true,!0),false:new f(c.false,!1),emptyArray:new f(c.array,0),emptyMap:new f(c.map,0)},xe={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new f(c.float,r):r>=0?new f(c.uint,r):new f(c.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new f(c.uint,r):new f(c.negint,r)},Uint8Array(r,e,t,n){return new f(c.bytes,r)},string(r,e,t,n){return new f(c.string,r)},boolean(r,e,t,n){return r?we.true:we.false},null(r,e,t,n){return we.null},undefined(r,e,t,n){return we.undefined},ArrayBuffer(r,e,t,n){return new f(c.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new f(c.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[we.emptyArray,new f(c.break)]:we.emptyArray;n=Vt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Kt(s,t,n);return t.addBreakTokens?[new f(c.array,r.length),o,new f(c.break)]:[new f(c.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[we.emptyMap,new f(c.break)]:we.emptyMap;n=Vt.createCheck(n,r);let a=[],u=0;for(let d of i)a[u++]=[Kt(d,t,n),Kt(o?r.get(d):r[d],t,n)];return qc(a,t),t.addBreakTokens?[new f(c.map,s),a,new f(c.break)]:[new f(c.map,s),a]}};xe.Map=xe.Object;xe.Buffer=xe.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))xe[`${r}Array`]=xe.DataView;function Kt(r,e={},t){let n=Qo(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||xe[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=xe[n];if(!i)throw new Error(`${ce} unsupported type: ${n}`);return i(r,n,e,t)}function qc(r,e){e.mapSorter&&r.sort(e.mapSorter)}function jc(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=Ji[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Yi(r,e,t,n){if(Array.isArray(e))for(let o of e)Yi(r,o,t,n);else t[e.type.major](r,e,n)}function Cn(r,e,t){let n=Kt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),a=new tt(s);if(i(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return et(a.chunks[0])}}return An.reset(),Yi(An,n,e,t),An.toBytes(!0)}function _e(r,e){return e=Object.assign({},Mc,e),Cn(r,Ji,e)}var Kc={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Ht=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=Z[e];if(t===void 0){let n=p[e];if(!n)throw new Error(`${m} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},it=Symbol.for("DONE"),Wt=Symbol.for("BREAK");function Vc(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=qe(e,t);if(i===Wt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed array`)}if(i===it)throw new Error(`${m} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Hc(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=qe(e,t);if(a===Wt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed map`)}if(a===it)throw new Error(`${m} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${m} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(a)||!n&&a in o))throw new Error(`${m} found repeat map key "${a}"`);let u=qe(e,t);if(u===it)throw new Error(`${m} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(a,u):o[a]=u}return n?i:o}function qe(r,e){if(r.done())return it;let t=r.next();if(t.type===c.break)return Wt;if(t.type.terminal)return t.value;if(t.type===c.array)return Vc(t,r,e);if(t.type===c.map)return Hc(t,r,e);if(t.type===c.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=qe(r,e);return e.tags[t.value](n)}throw new Error(`${m} tag not supported (${t.value})`)}throw new Error("unsupported")}function Sn(r,e){if(!(r instanceof Uint8Array))throw new Error(`${m} data to decode must be a Uint8Array`);e=Object.assign({},Kc,e);let t=e.tokenizer||new Ht(r,e),n=qe(t,e);if(n===it)throw new Error(`${m} did not find any content to decode`);if(n===Wt)throw new Error(`${m} got unexpected break`);return[n,r.subarray(t.pos())]}function ee(r,e){let[t,n]=Sn(r,e);if(n.length>0)throw new Error(`${m} too many terminals, data makes no sense`);return t}function B(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var le="/",Zi=new TextEncoder().encode(le),Gt=Zi[0],fe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=B(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Gt)throw new Error("Invalid key")}toString(e="utf8"){return De(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(le))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Zi),this._buf[0]!==Gt){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Gt,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Gt;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(le).slice(1)}type(){return Wc(this.baseNamespace())}name(){return Gc(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(le)||(e+=le),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(le):new r(e.slice(0,-1).join(le))}child(e){return this.toString()===le?e:e.toString()===le?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Qc(e.map(t=>t.namespaces()))])}};function Wc(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Gc(r){let e=r.split(":");return e[e.length-1]}function Qc(r){return[].concat(...r)}function Qt({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*Jc(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],i=k.asCID(n);i!=null?yield[o.join("/"),i]:typeof n=="object"&&(yield*In(n,o))}else{let t=k.asCID(e);t!=null?yield[r.join("/"),t]:yield*In(e,r)}}function*In(r,e){if(r==null||r instanceof Uint8Array)return;let t=k.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let i=[...e,n];yield*Jc(i,o)}}function*Yc(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&k.asCID(n)==null&&(yield*Tn(n,o))}else yield*Tn(e,r)}function*Tn(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let o=[...e,t];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&k.asCID(n)==null&&(yield*Yc(o,n))}}function Xc(r,e){let t=r;for(let[n,o]of e.entries()){if(t=t[o],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let i=k.asCID(t);if(i!=null)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:t}}var Ln=class{cid;bytes;value;asBlock;constructor({cid:e,bytes:t,value:n}){if(e==null||t==null||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=t,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:Qt(),bytes:Qt(),value:Qt(),asBlock:Qt()})}links(){return In(this.value,[])}tree(){return Tn(this.value,[])}get(e="/"){return Xc(this.value,e.split("/").filter(Boolean))}};function es({bytes:r,cid:e,value:t,codec:n}){let o=t!==void 0?t:n?.decode(r);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Ln({cid:e,bytes:r,value:o})}function ve(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var ns="/pin/",ts="/pinned-block/",Pn=se,rs=1;function Jt(r){return r.version===0&&(r=r.toV1()),new fe(`${ns}${r.toString(Pn)}`)}var Yt=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=Jt(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let i=new ae({concurrency:rs});for await(let a of this.#e(e,i,{...t,depth:o}))await this.#o(a,u=>u.pinnedBy.find(d=>ve(d,e.bytes))!=null?!1:(u.pinCount++,u.pinnedBy.push(e.bytes),!0),t),yield a;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,_e(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=await this.getCodec(e.code),i=await this.blockstore.get(e,n),s=es({bytes:i,cid:e,codec:o});yield e;for(let[,a]of s.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#o(e,t,n){let o=new fe(`${ts}${Pn.encode(e.multihash.bytes)}`),i={pinCount:0,pinnedBy:[]};try{i=ee(await this.datastore.get(o,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(i)){if(i.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,_e(i),n),n.onProgress?.(new _("helia:pin:add",e))}}async*rm(e,t={}){let n=Jt(e),o=await this.datastore.get(n,t),i=ee(o);await this.datastore.delete(n,t);let s=new ae({concurrency:rs});for await(let a of this.#e(e,s,{...t,depth:i.depth}))await this.#o(a,u=>(u.pinCount--,u.pinnedBy=u.pinnedBy.filter(d=>ve(d,e.bytes)),!0),{...t,depth:i.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:ns+(e.cid!=null?`${e.cid.toString(se)}`:"")},e)){let o=k.parse(t.toString().substring(5),se),i=ee(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new fe(`${ts}${Pn.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=Jt(e),o=await this.datastore.get(n,t);return ee(o)}async setMetadata(e,t,n){let o=Jt(e),i=await this.datastore.get(o,n),s=ee(i);s.metadata=t??{},await this.datastore.put(o,_e(s),n)}};var Xt=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},ke=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},Zt=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},er=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var tr=class extends ae{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var Nn=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=U(),this.haveNext=U()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=U(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=U(),await Be(this.readNext.promise,t?.signal,t)}};function os(){return new Nn}function Zc(r){return r[Symbol.asyncIterator]!=null}async function eu(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*tu(r){let e=new AbortController,t=os();eu(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*ru(r){for(let e of r)yield*e}function nu(...r){let e=[];for(let t of r)Zc(t)||e.push(t);return e.length===r.length?ru(e):tu(r)}var rr=nu;var ou=5,nr=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??ou,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await he(...this.routers)}async stop(){await de(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new ke("No content routers available");let n=new tr({concurrency:this.providerLookupConcurrency});n.addEventListener("error",()=>{});for await(let o of rr(n.toGenerator(),...Ae(this.routers,"findProviders").map(i=>i.findProviders(e,t))))if(o!=null){if(o.multiaddrs.length===0){if(n.find(o.id)!=null)continue;n.add(async()=>{try{let i=await this.findPeer(o.id,t);return i.multiaddrs.length===0?null:i}catch(i){return this.log.error("could not load multiaddrs for peer %p",o.id,i),null}},{peerId:o.id,signal:t.signal}).catch(i=>{this.log.error("could not load multiaddrs for peer %p",o.id,i)})}yield o}}async provide(e,t={}){if(this.routers.length===0)throw new ke("No content routers available");await Promise.all(Ae(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ae(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ae(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Ae(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new ke("No peer routers available");let n=this,o=rr(...Ae(this.routers,"findPeer").map(i=>async function*(){try{yield await i.findPeer(e,t)}catch(s){n.log.error(s)}}()));for await(let i of o)if(i!=null)return i;throw new dt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new ke("No peer routers available");for await(let n of rr(...Ae(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ae(r,e){return r.filter(t=>t[e]!=null)}var or=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var ir=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new z)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function iu(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var sr=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=iu(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new z),this.cleanup())}async join(e={}){let t=new ir(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Be(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Rn(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var st=class extends ne{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Rn(this.emitEmpty.bind(this),1),this.emitIdle=Rn(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new or;let n=new sr(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new z)}),this.clear()}async onEmpty(e){this.size!==0&&await ye(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ye(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ye(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Lt({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail.result)},i=u=>{n(u.detail.error)},s=()=>{n()},a=()=>{n(new z("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var ar="lock:worker:request-read",cr="lock:worker:abort-read-request",ur="lock:worker:release-read",lr="lock:master:grant-read",fr="lock:master:error-read",hr="lock:worker:request-write",dr="lock:worker:abort-write-request",pr="lock:worker:release-write",mr="lock:master:grant-write",gr="lock:master:error-write",yr="lock:worker:finalize",wr="mortice",is={singleProcess:!1};var Dn=(r,e,t,n,o,i,s,a,u)=>d=>{if(d.data==null)return;let l={type:d.data.type,name:d.data.name,identifier:d.data.identifier};l.type===o&&r.safeDispatchEvent(t,{detail:{name:l.name,identifier:l.identifier,handler:async()=>{e.postMessage({type:u,name:l.name,identifier:l.identifier}),await new Promise(h=>{let g=w=>{if(w?.data==null)return;let x={type:w.data.type,name:w.data.name,identifier:w.data.identifier};x.type===a&&x.identifier===l.identifier&&(e.removeEventListener("message",g),h())};e.addEventListener("message",g)})},onError:h=>{e.postMessage({type:s,name:l.name,identifier:l.identifier,error:{message:h.message,name:h.name,stack:h.stack}})}}}),l.type===i&&r.safeDispatchEvent(n,{detail:{name:l.name,identifier:l.identifier}}),l.type===yr&&r.safeDispatchEvent("finalizeRequest",{detail:{name:l.name}})};var ss=(r=10)=>Math.random().toString().substring(2,r+2);var xr=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(wr)}readLock(e){return this.sendRequest(ar,cr,lr,fr,ur,e)}writeLock(e){return this.sendRequest(hr,dr,mr,gr,pr,e)}finalize(){this.channel.postMessage({type:yr,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,i,s){s?.signal?.throwIfAborted();let a=ss();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((u,d)=>{let l=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",l,{once:!0});let h=g=>{if(g.data?.identifier===a&&(g.data?.type===n&&(this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l),u(()=>{this.channel.postMessage({type:i,identifier:a,name:this.name})})),g.data.type===o)){this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l);let w=new Error;g.data.error!=null&&(w.message=g.data.error.message,w.name=g.data.error.name,w.stack=g.data.error.stack),d(w)}};this.channel.addEventListener("message",h)})}};var as=r=>{if(r=Object.assign({},is,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(wr),n=new ne;return t.addEventListener("message",Dn(n,t,"requestReadLock","abortReadLockRequest",ar,cr,fr,ur,lr)),t.addEventListener("message",Dn(n,t,"requestWriteLock","abortWriteLockRequest",hr,dr,gr,pr,mr)),n}return new xr(r.name)};var Ce=new Map,at;function cs(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function su(r){if(at==null&&(at=as(r),!cs(at))){let e=at;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,i=Ce.get(n);if(i==null)return;let s=new AbortController,a=u=>{u.detail.name!==n||u.detail.identifier!==o||s.abort()};e.addEventListener("abortReadLockRequest",a),i.readLock({signal:s.signal}).then(async u=>{await t.detail.handler().finally(()=>{u()})}).catch(u=>{t.detail.onError(u)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,i=Ce.get(n);if(i==null)return;let s=new AbortController,a=u=>{u.detail.name!==n||u.detail.identifier!==o||s.abort()};e.addEventListener("abortWriteLockRequest",a),i.writeLock({signal:s.signal}).then(async u=>{await t.detail.handler().finally(()=>{u()})}).catch(u=>{t.detail.onError(u)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=Ce.get(n);o?.finalize()})}return at}async function Un(r,e){let t,n,o=new Promise((s,a)=>{t=s,n=a}),i=()=>{n(new z)};return e?.signal?.addEventListener("abort",i,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",i),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),o}var us=(r,e)=>{let t=Ce.get(r);if(t!=null)return t;let n=su(e);if(cs(n))return t=n,Ce.set(r,t),t;let o=new st({concurrency:1}),i;return t={async readLock(s){if(i!=null)return Un(i,s);i=new st({concurrency:e.concurrency,autoStart:!1});let a=i,u=Un(i,s);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{i===a&&(i=null)})}),u},async writeLock(s){return i=null,Un(o,s)},finalize:()=>{Ce.delete(r)},queue:o},Ce.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var au={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Bn(r){let e=Object.assign({},au,r);return us(e.name,e)}var br=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Bn({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await de(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let i of e){if(await o.pins.isPinned(i))throw new Error("CID was pinned");yield i}}(),t)}finally{n()}}async has(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){e?.signal?.throwIfAborted();let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}createSession(e,t){return t?.signal?.throwIfAborted(),this.child.createSession(e,t)}};var Fn=new fe("/version"),ls=1;async function fs(r){if(!await r.has(Fn)){await r.put(Fn,B(`${ls}`));return}let e=await r.get(Fn),t=De(e);if(parseInt(t,10)!==ls)throw new Error("Unknown datastore version, a datastore migration may be required")}var Mn={};T(Mn,{code:()=>zn,decode:()=>gu,decodeOptions:()=>du,encode:()=>mu,encodeOptions:()=>fu,name:()=>pu,toByteView:()=>ds});var hs=42;function ds(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function cu(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new f(c.tag,hs),new f(c.bytes,t)]}function uu(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function lu(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var On={float64:!0,typeEncoders:{Object:cu,undefined:uu,number:lu}},fu={...On,typeEncoders:{...On.typeEncoders}};function hu(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return k.decode(r.subarray(1))}var Er={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Er.tags[hs]=hu;var du={...Er,tags:Er.tags.slice()},pu="dag-cbor",zn=113,mu=r=>_e(r,On),gu=r=>ee(ds(r),Er);var Wn={};T(Wn,{code:()=>Hn,decode:()=>ms,encode:()=>ps,format:()=>Su,name:()=>Cu,parse:()=>Tu,stringify:()=>Su});var $n=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===c.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===c.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[c.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[c.negint.major](e,t){this[c.uint.major](e,t)}[c.bytes.major](e,t){throw new Error(`${ce} unsupported type: Uint8Array`)}[c.string.major](e,t){this.prefix(e);let n=Bt(JSON.stringify(t.value));e.push(n.length>32?et(n):n)}[c.array.major](e,t){this.prefix(e),this.inRecursive.push({type:c.array,elements:0}),e.push([91])}[c.map.major](e,t){this.prefix(e),this.inRecursive.push({type:c.map,elements:0}),e.push([123])}[c.tag.major](e,t){}[c.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===c.array)e.push([93]);else if(s.type===c.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(t.value===void 0)throw new Error(`${ce} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.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 yu(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ce} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==c.string||n.type!==c.string)throw new Error(`${ce} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ce} unexpected duplicate map keys, this is not supported`)}var wu={addBreakTokens:!0,mapSorter:yu};function qn(r,e){return e=Object.assign({},wu,e),Cn(r,new $n,e)}var je=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}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(`${m} unexpected end of input at position ${this._pos}`);for(let t=0;t<e.length;t++)if(this.data[this._pos++]!==e[t])throw new Error(`${m} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=a=>{for(;!this.done();){let u=this.ch();if(a.includes(u))this._pos++;else break}};if(this.ch()===45&&(t=!0,this._pos++),this.ch()===48)if(this._pos++,this.ch()===46)this._pos++,n=!0;else return new f(c.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${m} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${m} 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 f(c.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new f(s>=0?c.uint:c.negint,s,this._pos-e):new f(s>=0?c.uint:c.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${m} 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 a=this.data[i];if(a===92||a<32||a>=128)break;if(a===34){let u=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new f(c.string,u,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${m} unexpected end of unicode escape sequence at position ${this._pos}`);let i=0;for(let s=0;s<4;s++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${m} unexpected unicode escape character at position ${this._pos}`);i=i*16+a,this._pos++}return i},o=()=>{let i=this.ch(),s=null,a=i>239?4:i>223?3:i>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${m} unexpected unicode sequence at position ${this._pos}`);let u,d,l,h;switch(a){case 1:i<128&&(s=i);break;case 2:u=this.data[this._pos+1],(u&192)===128&&(h=(i&31)<<6|u&63,h>127&&(s=h));break;case 3:u=this.data[this._pos+1],d=this.data[this._pos+2],(u&192)===128&&(d&192)===128&&(h=(i&15)<<12|(u&63)<<6|d&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:u=this.data[this._pos+1],d=this.data[this._pos+2],l=this.data[this._pos+3],(u&192)===128&&(d&192)===128&&(l&192)===128&&(h=(i&15)<<18|(u&63)<<12|(d&63)<<6|l&63,h>65535&&h<1114112&&(s=h))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${m} unexpected string termination at position ${this._pos}`);switch(s=this.ch(),this._pos++,s){case 34:case 39:case 92:case 47:t.push(s);break;case 98:t.push(8);break;case 116:t.push(9);break;case 110:t.push(10);break;case 102:t.push(12);break;case 114:t.push(13);break;case 117:t.push(n());break;default:throw new Error(`${m} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new f(c.string,bn(t),this._pos-e);default:if(i<32)throw new Error(`${m} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${m} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new f(c.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new f(c.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new f(c.null,null,4);case 102:return this.expect([102,97,108,115,101]),new f(c.false,!1,5);case 116:return this.expect([116,114,117,101]),new f(c.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(`${m} 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 f(c.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 f(c.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 f(c.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 f(c.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${m} 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(`${m} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function jn(r,e){return e=Object.assign({tokenizer:new je(r,e)},e),ee(r,e)}function bu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Eu(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=e.toString();return[new f(c.map,1/0,1),new f(c.string,"/",1),new f(c.string,t,t.length),new f(c.break,void 0,1)]}function _r(r){let e=ge.encode(r).slice(1);return[new f(c.map,1/0,1),new f(c.string,"/",1),new f(c.map,1/0,1),new f(c.string,"bytes",5),new f(c.string,e,e.length),new f(c.break,void 0,1),new f(c.break,void 0,1)]}function te(r){return _r(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function _u(r){return _r(new Uint8Array(r))}function vu(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function ku(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Au={typeEncoders:{Object:Eu,Buffer:_r,Uint8Array:_r,Int8Array:te,Uint16Array:te,Int16Array:te,Uint32Array:te,Int32Array:te,Float32Array:te,Float64Array:te,Uint8ClampedArray:te,BigInt64Array:te,BigUint64Array:te,DataView:te,ArrayBuffer:_u,undefined:vu,number:ku}},Kn=class extends je{constructor(e,t){super(e,t),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===c.map){let t=this._next();if(t.type===c.string&&t.value==="/"){let n=this._next();if(n.type===c.string){if(this._next().type!==c.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new f(c.tag,42,0)}if(n.type===c.map){let o=this._next();if(o.type===c.string&&o.value==="bytes"){let i=this._next();if(i.type===c.string){for(let a=0;a<2;a++)if(this._next().type!==c.break)throw new Error("Invalid encoded Bytes form");let s=ge.decode(`m${i.value}`);return new f(c.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Vn={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Vn.tags[42]=k.parse;var Cu="dag-json",Hn=297,ps=r=>qn(r,Au),ms=r=>{let e=bu(r),t=Object.assign(Vn,{tokenizer:new Kn(e,Vn)});return jn(e,t)},Su=r=>Iu.decode(ps(r));var Iu=new TextDecoder,Tu=r=>ms(Lu.encode(r)),Lu=new TextEncoder;var Zn={};T(Zn,{code:()=>Xn,createLink:()=>As,createNode:()=>ks,decode:()=>ju,encode:()=>qu,name:()=>$u,prepare:()=>Jn,validate:()=>Yn});var Pu=new TextDecoder;function Gn(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function vr(r,e){let t;[t,e]=Gn(r,e);let n=e+t;if(t<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(e,n),n]}function gs(r,e){let t;return[t,e]=Gn(r,e),[t&7,t>>3,e]}function Nu(r){let e={},t=r.length,n=0;for(;n<t;){let o,i;if([o,i,n]=gs(r,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]=vr(r,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]=vr(r,n),e.Name=Pu.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]=Gn(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function ys(r){let e=r.length,t=0,n,o=!1,i;for(;t<e;){let a,u;if([a,u,t]=gs(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(u===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=vr(r,t),n&&(o=!0)}else if(u===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let d;[d,t]=vr(r,t),n.push(Nu(d))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${u}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var xs=new TextEncoder,ws=2**32,Ru=2**31;function Du(r,e){let t=e.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");t=ct(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=xs.encode(r.Name);t-=n.length,e.set(n,t),t=ct(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ct(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function bs(r){let e=Bu(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ct(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let i=Du(r.Links[o],t.subarray(0,n));n-=i,n=ct(t,n,i)-1,t[n]=18}return t}function Uu(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ke(t)}if(typeof r.Name=="string"){let t=xs.encode(r.Name).length;e+=1+t+Ke(t)}return typeof r.Tsize=="number"&&(e+=1+Ke(r.Tsize)),e}function Bu(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ke(t)}if(r.Links)for(let t of r.Links){let n=Uu(t);e+=1+n+Ke(n)}return e}function ct(r,e,t){e-=Ke(t);let n=e;for(;t>=Ru;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Ke(r){return r%2===0&&r++,Math.floor((Fu(r)+6)/7)}function Fu(r){let e=0;return r>=ws&&(r=Math.floor(r/ws),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+Ou[r]}var Ou=[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 zu=["Data","Links"],Mu=["Hash","Name","Tsize"],Qn=new TextEncoder;function _s(r,e){if(r===e)return 0;let t=r.Name?Qn.encode(r.Name):[],n=e.Name?Qn.encode(e.Name):[],o=t.length,i=n.length;for(let s=0,a=Math.min(o,i);s<a;++s)if(t[s]!==n[s]){o=t[s],i=n[s];break}return o<i?-1:i<o?1:0}function Es(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function vs(r){if(typeof r.asCID=="object"){let t=k.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=k.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function Jn(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Data!==void 0)if(typeof r.Data=="string")e.Data=Qn.encode(r.Data);else if(r.Data instanceof Uint8Array)e.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))e.Links=r.Links.map(vs),e.Links.sort(_s);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function Yn(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!Es(r,zu))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<r.Links.length;e++){let t=r.Links[e];if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!Es(t,Mu))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(t.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(t.Hash==null||!t.Hash["/"]||t.Hash["/"]!==t.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(t.Name!==void 0&&typeof t.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(t.Tsize!==void 0){if(typeof t.Tsize!="number"||t.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(t.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&_s(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function ks(r,e=[]){return Jn({Data:r,Links:e})}function As(r,e,t){return vs({Hash:t,Name:r,Tsize:e})}function Cs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var $u="dag-pb",Xn=112;function qu(r){Yn(r);let e={};return r.Links&&(e.Links=r.Links.map(t=>{let n={};return t.Hash&&(n.Hash=t.Hash.bytes),t.Name!==void 0&&(n.Name=t.Name),t.Tsize!==void 0&&(n.Tsize=t.Tsize),n})),r.Data&&(e.Data=r.Data),bs(e)}function ju(r){let e=Cs(r),t=ys(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let i={};try{i.Hash=k.decode(o.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(i.Name=o.Name),o.Tsize!==void 0&&(i.Tsize=o.Tsize),i})),n}function Ve(r){return r?.then!=null}function Ss(r=[],e){let t={[Xn]:Zn,[nn]:Et,[zn]:Mn,[Hn]:Wn,[rn]:bt};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let i=e(n);Ve(i)?o=await i:o=i,t[o.code]=o}if(o!=null)return o;throw new er(`Could not load codec for ${n}`)}}function Is(r=[],e){let t={[kt.code]:kt,[At.code]:At,[vt.code]:vt};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let i=e(n);Ve(i)?o=await i:o=i,t[o.code]=o}if(o!=null)return o;throw new Zt(`No hasher configured for multihash code 0x${n.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`)}}function ie(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var kr=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var Ar=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,block:o}of e)await this.put(n,o,t),yield n}get(e,t){return Promise.reject(new Error(".get is not implemented"))}async*getMany(e,t){for await(let n of e)yield{cid:n,block:await this.get(n,t)}}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*deleteMany(e,t){for await(let n of e)await this.delete(n,t),yield n}async*getAll(e){throw new Error(".getAll is not implemented")}};var Cr=0,Sr=class extends Ar{child;constructor(e){super(),this.child=e}put(e,t,n){return e.multihash.code===Cr||this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}get(e,t){if(e.multihash.code===Cr)return t?.signal?.throwIfAborted(),e.multihash.digest;if(this.child==null)throw t?.signal?.throwIfAborted(),new kr;return this.child.get(e,t)}has(e,t){return e.multihash.code===Cr?(t?.signal?.throwIfAborted(),!0):this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===Cr){t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}getAll(e){return this.child!=null?this.child.getAll(e):(e?.signal?.throwIfAborted(),[])}};function Ku(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[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(),[t](){return this}}}var Ir=Ku;function Vu(r){return r[Symbol.asyncIterator]!=null}function Hu(r,e){let t=0;if(Vu(r))return async function*(){for await(let u of r)await e(u,t++)&&(yield u)}();let n=Ir(r),{value:o,done:i}=n.next();if(i===!0)return function*(){}();let s=e(o,t++);if(typeof s.then=="function")return async function*(){await s&&(yield o);for(let u of n)await e(u,t++)&&(yield u)}();let a=e;return function*(){s===!0&&(yield o);for(let u of n)a(u,t++)&&(yield u)}()}var Ts=Hu;function Wu(r){return r[Symbol.asyncIterator]!=null}function Ls(r){return r?.then!=null}function Gu(r,e){let t=0;if(Wu(r))return async function*(){for await(let u of r){let d=e(u,t++);Ls(d)&&await d,yield u}}();let n=Ir(r),{value:o,done:i}=n.next();if(i===!0)return function*(){}();if(typeof e(o,t++)?.then=="function")return async function*(){yield o;for(let u of n){let d=e(u,t++);Ls(d)&&await d,yield u}}();let a=e;return function*(){yield o;for(let u of n)a(u,t++),yield u}()}var eo=Gu;var Tr=class{child;getHasher;log;logger;components;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Sr(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new _("blocks:put:duplicate",e)),e):(n.onProgress?.(new _("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new _("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Ts(e,async({cid:i})=>{let s=await this.child.has(i,t);return s&&t.onProgress?.(new _("blocks:put-many:duplicate",i)),!s}),o=eo(n,async({cid:i,block:s})=>{t.onProgress?.(new _("blocks:put-many:providers:notify",i)),await Promise.all(this.components.blockBrokers.map(async a=>a.announce?.(i,s,t)))});t.onProgress?.(new _("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e,t)){let n=await this.getHasher(e.multihash.code);t.onProgress?.(new _("blocks:get:providers:get",e));let o=await Ps(e,this.components.blockBrokers,n,{...t,log:this.log});return t.onProgress?.(new _("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new _("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,o,t))),o}return t.onProgress?.(new _("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new _("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(eo(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new _("blocks:get-many:providers:get",n));let i=await Ps(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new _("blocks:get-many:blockstore:put",n)),await this.child.put(n,i,t),t.onProgress?.(new _("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,i,t)))}}))}async delete(e,t={}){t.onProgress?.(new _("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new _("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new _("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Lr=class extends Tr{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await de(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new to({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},to=class extends Tr{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let o=ie([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:o})}finally{o.clear()}}async*putMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async get(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{return await super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=ie([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=ie([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function Ju(r){return typeof r.retrieve=="function"}var Yu=(r,e)=>{if(e==null)throw new ht(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`);return async t=>{let n,o=e.digest(t);if(Ve(o)?n=await o:n=o,!ve(n.digest,r.multihash.digest))throw new pt("Hash of downloaded block did not match multihash from passed CID")}};async function Ps(r,e,t,n){let o=Yu(r,t),i=new AbortController,s=ie([i.signal,n.signal]);i.signal;let a=[];for(let u of e)Ju(u)&&a.push(u);try{return await Promise.any(a.map(async u=>{try{let d=!1,l=await u.retrieve(r,{...n,signal:s,validateFn:async h=>{await o(h),d=!0}});return d||await o(l),l}catch(d){throw n.log.error("could not retrieve verified block for %c",r,d),d}}))}finally{i.abort(),s.clear()}}var ro={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Ns={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Rs=new globalThis.TextEncoder;function Xu(r,e){let t=ro[e],n=Ns[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Zu(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ro[e],o=Ns[e],i=r;for(;i.length>0;){let s=Rs.encodeInto(i,t);i=i.slice(s.read);for(let a=0;a<s.written;a++)o^=BigInt(t[a]),o=BigInt.asUintN(e,o*n)}return o}function no(r,{size:e=32,utf8Buffer:t}={}){if(!ro[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return Zu(r,e,t);r=Rs.encode(r)}return Xu(r,e)}var ut={hash:r=>Number(no(r,{size:32})),hashV:(r,e)=>el(ut.hash(r,e))};function el(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),B(e,"base16")}var oo=64,re=class{fp;h;seed;constructor(e,t,n,o=2){if(o>oo)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),s=Fo(o);for(let a=0;a<s.length;a++)s[a]=i[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?ve(this.fp,e.fp):!1}};function Se(r,e){return Math.floor(Math.random()*(e-r))+r}var Ie=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");let t=Se(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof re))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var tl=500,lt=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??ut,this.seed=e.seed??Se(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=B(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new Ie(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new Ie(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let i=[n,o],s=i[Se(0,i.length-1)];this.buckets[s]==null&&(this.buckets[s]=new Ie(this.bucketSize));for(let a=0;a<tl;a++){let u=this.buckets[s].swap(t);if(u!=null&&(s=(s^u.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new Ie(this.bucketSize)),this.buckets[s].add(u)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=B(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.has(t)??!1;if(o)return o;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=B(e));let t=new re(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.remove(t)??!1;if(o)return this.count--,o;let i=(n^t.hash())%this.filterSize,s=this.buckets[i]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},rl={1:.5,2:.84,4:.95,8:.98};function nl(r=.001){return r>.002?2:r>1e-5?4:8}function Ds(r,e=.001){let t=nl(e),n=rl[t],o=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),oo);return{filterSize:o,bucketSize:t,fingerprintSize:i}}var Pr=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??ut,this.seed=e.seed??Se(0,Math.pow(2,10)),this.filterSeries=[new lt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=B(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new lt({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=B(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=B(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function io(r,e=.001,t){return new Pr({...Ds(r,e),...t??{}})}var Nr=class extends ne{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=io(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=ge.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let i=U();if(this.requests.set(n,i.promise),this.providers.length===0){let l=!1;this.initialPeerSearchComplete==null&&(l=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.initialPeerSearchComplete,l&&this.log("found initial session peers for %c",e)}let s=!1,a=new ae({concurrency:this.maxProviders});a.addEventListener("error",()=>{}),a.addEventListener("failure",l=>{this.log.error("error querying provider %o, evicting from session",l.detail.job.options.provider,l.detail.error),this.evict(l.detail.job.options.provider)}),a.addEventListener("success",l=>{s=!0,i.resolve(l.detail.result)}),a.addEventListener("idle",()=>{if(s||t.signal?.aborted===!0){this.log.trace("session idle, found block");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let l=0;l<this.minProviders&&this.providers.length!==0;l++){let h=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(h)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),i.resolve(await this.retrieve(e,t))}).catch(l=>{this.log.error("could not find new providers for %c",e,l),i.reject(l)})});let u=l=>{a.add(async()=>this.queryProvider(e,l.detail,t),{provider:l.detail}).catch(h=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,h)})};this.addEventListener("provider",u),Promise.all([...this.providers].map(async l=>a.add(async()=>this.queryProvider(e,l,t),{provider:l}))).catch(l=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,l)});let d=()=>{i.reject(new Q(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",d);try{return await i.promise}finally{this.removeEventListener("provider",u),t.signal?.removeEventListener("abort",d),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let o=U(),i=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;i<t&&this.initialProviders.length>0;){let s=this.initialProviders.pop();if(s==null)break;let a=await this.convertToProvider(s,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",i,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),i++,i===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",i);break}}if(i<this.maxProviders)for await(let s of this.findNewProviders(e,n)){if(i===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(s)&&(this.log("found %d/%d new providers",i,this.maxProviders),this.providers.push(s),this.safeDispatchEvent("provider",{detail:s}),i++,i===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",i);break}}if(this.log("found %d/%d new session peers",i,this.maxProviders),i<t)throw new Xt(`Found ${i} of ${t} ${this.name} providers for ${e}`)}).catch(s=>{this.log.error("error searching routing for potential session peers for %c",e,s.errors??s),o.reject(s)}),o.promise}};var so=class{libp2p;blockstore;datastore;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??xo(),this.log=this.logger.forComponent("helia"),this.getHasher=Is(e.hashers,e.loadHasher),this.getCodec=Ss(e.codecs,e.loadCodec),this.dns=e.dns??Ho(),this.metrics=e.metrics,this.libp2p=e.libp2p;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new nr(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[Rr]!=null&&i.push(o[Rr]),o[Dr]!=null&&i.push(o[Dr]),i}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Lr(t);this.pins=new Yt(e.datastore,n,this.getCodec),this.blockstore=new br(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await fs(this.datastore),await he(this.blockstore,this.datastore,this.routing,this.libp2p)}async stop(){await de(this.blockstore,this.datastore,this.routing,this.libp2p)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await Wo(o.deleteMany(async function*(){for await(let{cid:i}of o.getAll())try{if(await n.pins.isPinned(i,e))continue;yield i,e.onProgress?.(new _("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new _("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Ms(sl);})();
3
3
  return HeliaUtils}));
4
4
  //# sourceMappingURL=index.min.js.map