@helia/utils 1.3.2 → 1.4.0-7d471a02

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 vs=Object.create;var lt=Object.defineProperty;var _s=Object.getOwnPropertyDescriptor;var ks=Object.getOwnPropertyNames;var Cs=Object.getPrototypeOf,As=Object.prototype.hasOwnProperty;var Wn=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),T=(r,e)=>{for(var t in e)lt(r,t,{get:e[t],enumerable:!0})},Qn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ks(e))!As.call(r,o)&&o!==t&&lt(r,o,{get:()=>e[o],enumerable:!(n=_s(e,o))||n.enumerable});return r};var Jn=(r,e,t)=>(t=r!=null?vs(Cs(r)):{},Qn(e||!r||!r.__esModule?lt(t,"default",{value:r,enumerable:!0}):t,r)),Ss=r=>Qn(lt({},"__esModule",{value:!0}),r);var ao=Wn((El,Ir)=>{"use strict";var aa=Object.prototype.hasOwnProperty,D="~";function Ge(){}Object.create&&(Ge.prototype=Object.create(null),new Ge().__proto__||(D=!1));function ca(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function so(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new ca(t,n||r,o),s=D?D+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 yt(r,e){--r._eventsCount===0?r._events=new Ge:delete r._events[e]}function N(){this._events=new Ge,this._eventsCount=0}N.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)aa.call(t,n)&&e.push(D?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};N.prototype.listeners=function(e){var t=D?D+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=D?D+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 c=D?D+e:e;if(!this._events[c])return!1;var u=this._events[c],p=arguments.length,l,d;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){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(d=1,l=new Array(p-1);d<p;d++)l[d-1]=arguments[d];u.fn.apply(u.context,l)}else{var y=u.length,k;for(d=0;d<y;d++)switch(u[d].once&&this.removeListener(e,u[d].fn,void 0,!0),p){case 1:u[d].fn.call(u[d].context);break;case 2:u[d].fn.call(u[d].context,t);break;case 3:u[d].fn.call(u[d].context,t,n);break;case 4:u[d].fn.call(u[d].context,t,n,o);break;default:if(!l)for(k=1,l=new Array(p-1);k<p;k++)l[k-1]=arguments[k];u[d].fn.apply(u[d].context,l)}}return!0};N.prototype.on=function(e,t,n){return so(this,e,t,n,!1)};N.prototype.once=function(e,t,n){return so(this,e,t,n,!0)};N.prototype.removeListener=function(e,t,n,o){var i=D?D+e:e;if(!this._events[i])return this;if(!t)return yt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&yt(this,i);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||n&&s[c].context!==n)&&u.push(s[c]);u.length?this._events[i]=u.length===1?u[0]:u:yt(this,i)}return this};N.prototype.removeAllListeners=function(e){var t;return e?(t=D?D+e:e,this._events[t]&&yt(this,t)):(this._events=new Ge,this._eventsCount=0),this};N.prototype.off=N.prototype.removeListener;N.prototype.addListener=N.prototype.on;N.prefixed=D;N.EventEmitter=N;typeof Ir<"u"&&(Ir.exports=N)});var Po=Wn((If,To)=>{To.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 Ku={};T(Ku,{AbstractSession:()=>gr,Helia:()=>Gn});var yr=Symbol.for("@libp2p/content-routing");var wr=Symbol.for("@libp2p/peer-routing");var W=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var ft=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 ht=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Pe=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 Xn(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function le(...r){let e=[];for(let t of r)Xn(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 fe(...r){let e=[];for(let t of r)Xn(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 kr={};T(kr,{base32:()=>he,base32hex:()=>$s,base32hexpad:()=>Rs,base32hexpadupper:()=>Ms,base32hexupper:()=>zs,base32pad:()=>Bs,base32padupper:()=>Fs,base32upper:()=>Us,base32z:()=>Os});var Zu=new Uint8Array(0);function Yn(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 Zn(r){return new TextEncoder().encode(r)}function eo(r){return new TextDecoder().decode(r)}function Is(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 c=r.length,u=r.charAt(0),p=Math.log(c)/Math.log(256),l=Math.log(256)/Math.log(c);function d(E){if(E instanceof Uint8Array||(ArrayBuffer.isView(E)?E=new Uint8Array(E.buffer,E.byteOffset,E.byteLength):Array.isArray(E)&&(E=Uint8Array.from(E))),!(E instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(E.length===0)return"";for(var w=0,g=0,v=0,A=E.length;v!==A&&E[v]===0;)v++,w++;for(var S=(A-v)*l+1>>>0,I=new Uint8Array(S);v!==A;){for(var $=E[v],j=0,z=S-1;($!==0||j<g)&&z!==-1;z--,j++)$+=256*I[z]>>>0,I[z]=$%c>>>0,$=$/c>>>0;if($!==0)throw new Error("Non-zero carry");g=j,v++}for(var V=S-g;V!==S&&I[V]===0;)V++;for(var Te=u.repeat(w);V<S;++V)Te+=r.charAt(I[V]);return Te}function y(E){if(typeof E!="string")throw new TypeError("Expected String");if(E.length===0)return new Uint8Array;var w=0;if(E[w]!==" "){for(var g=0,v=0;E[w]===u;)g++,w++;for(var A=(E.length-w)*p+1>>>0,S=new Uint8Array(A);E[w];){var I=t[E.charCodeAt(w)];if(I===255)return;for(var $=0,j=A-1;(I!==0||$<v)&&j!==-1;j--,$++)I+=c*S[j]>>>0,S[j]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");v=$,w++}if(E[w]!==" "){for(var z=A-v;z!==A&&S[z]===0;)z++;for(var V=new Uint8Array(g+(A-z)),Te=g;z!==A;)V[Te++]=S[z++];return V}}}function k(E){var w=y(E);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:y,decode:k}}var Ts=Is,Ps=Ts,to=Ps;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")}},Er=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 ro(this,e)}},vr=class{decoders;constructor(e){this.decoders=e}or(e){return ro(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 ro(r,e){return new vr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var _r=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 Er(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 _r(r,e,t,n)}function de({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=to(t,r);return Le({prefix:e,name:r,encode:n,decode:i=>Q(o(i))})}function Ls(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*t/8|0),s=0,c=0,u=0;for(let p=0;p<o;++p){let l=e[r[p]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,s+=t,s>=8&&(s-=8,i[u++]=255&c>>s)}if(s>=t||(255&c<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Ns(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let u=0;u<r.length;++u)for(c=c<<8|r[u],s+=8;s>t;)s-=t,i+=e[o&c>>s];if(s!==0&&(i+=e[o&c<<t-s]),n)for(;(i.length*t&7)!==0;)i+="=";return i}function Ds(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function C({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Ds(n);return Le({prefix:e,name:r,encode(i){return Ns(i,n,t)},decode(i){return Ls(i,o,t,r)}})}var he=C({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Us=C({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Bs=C({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Fs=C({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$s=C({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),zs=C({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Rs=C({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ms=C({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Os=C({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Cr={};T(Cr,{base58btc:()=>H,base58flickr:()=>qs});var H=de({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),qs=de({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ar={};T(Ar,{base64:()=>pe,base64pad:()=>js,base64url:()=>Vs,base64urlpad:()=>Hs});var pe=C({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),js=C({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Vs=C({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Hs=C({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Ks(r,e){try{if(typeof r=="string"&&r.length>0)return Gs(r);if(typeof r=="number"&&isFinite(r))return e?.long?Qs(r):Ws(r);throw new Error("Value is not a string or number.")}catch(t){let n=Js(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Gs(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 mt=Ks;function Ws(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 Qs(r){let e=Math.abs(r);return e>=864e5?pt(r,e,864e5,"day"):e>=36e5?pt(r,e,36e5,"hour"):e>=6e4?pt(r,e,6e4,"minute"):e>=1e3?pt(r,e,1e3,"second"):`${r} ms`}function pt(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function Js(r){return typeof r=="object"&&r!==null&&"message"in r}function Sr(r){t.debug=t,t.default=t,t.coerce=u,t.disable=i,t.enable=o,t.enabled=s,t.humanize=mt,t.destroy=p,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let d=0;for(let y=0;y<l.length;y++)d=(d<<5)-d+l.charCodeAt(y),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(l){let d,y=null,k,E;function w(...g){if(!w.enabled)return;let v=w,A=Number(new Date),S=A-(d||A);v.diff=S,v.prev=d,v.curr=A,d=A,g[0]=t.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let I=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(j,z)=>{if(j==="%%")return"%";I++;let V=t.formatters[z];if(typeof V=="function"){let Te=g[I];j=V.call(v,Te),g.splice(I,1),I--}return j}),t.formatArgs.call(v,g),(v.log||t.log).apply(v,g)}return w.namespace=l,w.useColors=t.useColors(),w.color=t.selectColor(l),w.extend=n,w.destroy=t.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>y!==null?y:(k!==t.namespaces&&(k=t.namespaces,E=t.enabled(l)),E),set:g=>{y=g}}),typeof t.init=="function"&&t.init(w),w}function n(l,d){let y=t(this.namespace+(typeof d>"u"?":":d)+l);return y.log=this.log,y}function o(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let d,y=(typeof l=="string"?l:"").split(/[\s,]+/),k=y.length;for(d=0;d<k;d++)y[d]&&(l=y[d].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(c),...t.skips.map(c).map(d=>"-"+d)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let d,y;for(d=0,y=t.skips.length;d<y;d++)if(t.skips[d].test(l))return!1;for(d=0,y=t.names.length;d<y;d++)if(t.names[d].test(l))return!0;return!1}function c(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function u(l){return l instanceof Error?l.stack??l.message:l}function p(){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 gt=na(),Xs=["#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 Ys(){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 Zs(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+mt(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 ea=console.debug??console.log??(()=>{});function ta(r){try{r?gt?.setItem("debug",r):gt?.removeItem("debug")}catch{}}function ra(){let r;try{r=gt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function na(){try{return localStorage}catch{}}function oa(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var no=Sr({formatArgs:Zs,save:ta,load:ra,useColors:Ys,setupFormatters:oa,colors:Xs,storage:gt,log:ea});var U=no;U.formatters.b=r=>r==null?"undefined":H.baseEncode(r);U.formatters.t=r=>r==null?"undefined":he.baseEncode(r);U.formatters.m=r=>r==null?"undefined":pe.baseEncode(r);U.formatters.p=r=>r==null?"undefined":r.toString();U.formatters.c=r=>r==null?"undefined":r.toString();U.formatters.k=r=>r==null?"undefined":r.toString();U.formatters.a=r=>r==null?"undefined":r.toString();U.formatters.e=r=>r==null?"undefined":oo(r.stack)??oo(r.message)??r.toString();function ia(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 io(){return{forComponent(r){return sa(r)}}}function sa(r){let e=ia(`${r}:trace`);return U.enabled(`${r}:trace`)&&U.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=U(`${r}:trace`)),Object.assign(U(r),{error:U(`${r}:error`),trace:e})}function oo(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var b=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Tr=Jn(ao(),1);var We=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Pr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},co=r=>globalThis.DOMException===void 0?new Pr(r):new DOMException(r),uo=r=>{let e=r.reason===void 0?co("This operation was aborted."):r.reason;return e instanceof Error?e:co(e)};function Qe(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,c,p=new Promise((l,d)=>{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:k}=e;k.aborted&&d(uo(k)),c=()=>{d(uo(k))},k.addEventListener("abort",c,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(l,d);return}let y=new We;s=i.setTimeout.call(void 0,()=>{if(n){try{l(n())}catch(k){d(k)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?l():o instanceof Error?d(o):(y.message=o??`Promise timed out after ${t} milliseconds`,d(y))},t),(async()=>{try{l(await r)}catch(k){d(k)}})()}).finally(()=>{p.clear(),c&&e.signal&&e.signal.removeEventListener("abort",c)});return p.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},p}function Lr(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 Je=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=Lr(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 me=class extends Tr.default{#e;#o;#s=0;#h;#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:Je,...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.#h=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.#h}get#E(){return this.#n<this.#u}#v(){this.#n--,this.#l(),this.emit("next")}#_(){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.#_()},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#C(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=Qe(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#C(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.#v()}},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.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(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 wt(r){let e=[J.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Nr={};T(Nr,{base10:()=>ua});var ua=de({prefix:"9",name:"base10",alphabet:"0123456789"});var Dr={};T(Dr,{base16:()=>la,base16upper:()=>fa});var la=C({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),fa=C({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ur={};T(Ur,{base2:()=>da});var da=C({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Br={};T(Br,{base256emoji:()=>ya});var lo=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}"),ha=lo.reduce((r,e,t)=>(r[t]=e,r),[]),pa=lo.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ma(r){return r.reduce((e,t)=>(e+=ha[t],e),"")}function ga(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=pa[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var ya=Le({prefix:"\u{1F680}",name:"base256emoji",encode:ma,decode:ga});var Fr={};T(Fr,{base36:()=>oe,base36upper:()=>wa});var oe=de({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),wa=de({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var $r={};T($r,{base8:()=>xa});var xa=C({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var zr={};T(zr,{identity:()=>ba});var ba=Le({prefix:"\0",name:"identity",encode:r=>eo(r),decode:r=>Zn(r)});var xt={};T(xt,{code:()=>Rr,decode:()=>Ca,encode:()=>ka,name:()=>_a});var Ea=new TextEncoder,va=new TextDecoder,_a="json",Rr=512;function ka(r){return Ea.encode(JSON.stringify(r))}function Ca(r){return JSON.parse(va.decode(r))}var bt={};T(bt,{code:()=>Mr,decode:()=>Ia,encode:()=>Sa,name:()=>Aa});var Aa="raw",Mr=85;function Sa(r){return Q(r)}function Ia(r){return Q(r)}var qr={};T(qr,{identity:()=>vt});var Ta=po,fo=128,Pa=127,La=~Pa,Na=Math.pow(2,31);function po(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Na;)e[t++]=r&255|fo,r/=128;for(;r&La;)e[t++]=r&255|fo,r>>>=7;return e[t]=r|0,po.bytes=t-n+1,e}var Da=Or,Ua=128,ho=127;function Or(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw Or.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&ho)<<o:(s&ho)*Math.pow(2,o),o+=7}while(s>=Ua);return Or.bytes=i-n,t}var Ba=Math.pow(2,7),Fa=Math.pow(2,14),$a=Math.pow(2,21),za=Math.pow(2,28),Ra=Math.pow(2,35),Ma=Math.pow(2,42),Oa=Math.pow(2,49),qa=Math.pow(2,56),ja=Math.pow(2,63),Va=function(r){return r<Ba?1:r<Fa?2:r<$a?3:r<za?4:r<Ra?5:r<Ma?6:r<Oa?7:r<qa?8:r<ja?9:10},Ha={encode:Ta,decode:Da,encodingLength:Va},Ka=Ha,Xe=Ka;function Ye(r,e=0){return[Xe.decode(r,e),Xe.decode.bytes]}function Ne(r,e,t=0){return Xe.encode(r,e,t),e}function De(r){return Xe.encodingLength(r)}function be(r,e){let t=e.byteLength,n=De(r),o=n+De(t),i=new Uint8Array(o+t);return Ne(r,i,0),Ne(t,i,n),i.set(e,o),new Ue(r,t,e,i)}function mo(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 Ue(t,o,s,e)}function go(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Yn(r.bytes,t.bytes)}}var Ue=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var yo=0,Ga="identity",wo=Q;function Wa(r){return be(yo,wo(r))}var vt={code:yo,name:Ga,encode:wo,digest:Wa};var Hr={};T(Hr,{sha256:()=>_t,sha512:()=>kt});function Vr({name:r,code:e,encode:t}){return new jr(r,e,t)}var jr=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 bo(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var _t=Vr({name:"sha2-256",code:18,encode:bo("SHA-256")}),kt=Vr({name:"sha2-512",code:19,encode:bo("SHA-512")});function Eo(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Ja(t,Kr(r),e??H.encoder);default:return Xa(t,Kr(r),e??he.encoder)}}var vo=new WeakMap;function Kr(r){let e=vo.get(r);if(e==null){let t=new Map;return vo.set(r,t),t}return e}var _=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!==et)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Ya)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&&go(e.multihash,n.multihash)}toString(e){return Eo(this,e)}toJSON(){return{"/":Eo(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??_o(n,o,i.bytes))}else if(t[Za]===!0){let{version:n,multihash:o,code:i}=t,s=mo(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!==et)throw new Error(`Version 0 CID must use dag-pb (code: ${et}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=_o(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,et,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 Ue(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[d,y]=Ye(e.subarray(t));return t+=y,d},o=n(),i=et;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,c=n(),u=n(),p=t+u,l=p-s;return{version:o,codec:i,multihashCode:c,digestSize:u,multihashSize:l,size:p}}static parse(e,t){let[n,o]=Qa(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 Kr(i).set(n,e),i}};function Qa(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 he.prefix:{let t=e??he;return[he.prefix,t.decode(r)]}case oe.prefix:{let t=e??oe;return[oe.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 Ja(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 Xa(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 et=112,Ya=18;function _o(r,e,t){let n=De(r),o=n+De(e),i=new Uint8Array(o+t.byteLength);return Ne(r,i,0),Ne(e,i,n),i.set(t,o),i}var Za=Symbol.for("@ipld/js-cid/CID");var Gr={...zr,...Ur,...$r,...Nr,...Dr,...kr,...Fr,...Cr,...Ar,...Br},uf={...Hr,...qr};function ko(r=0){return new Uint8Array(r)}function Co(r=0){return new Uint8Array(r)}function So(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Ao=So("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Wr=So("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=Co(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),ec={utf8:Ao,"utf-8":Ao,hex:Gr.base16,latin1:Wr,ascii:Wr,binary:Wr,...Gr},Ct=ec;function Be(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var Qr=60;function At(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??Qr,data:e.data instanceof Uint8Array?Be(e.data):e.data}))}}var tc=4;function Jr(r,e={}){let t=new me({concurrency:e.queryConcurrency??tc});return async(n,o={})=>{let i=new URLSearchParams;i.set("name",n),wt(o.types).forEach(c=>{i.append("type",J[c])}),o.onProgress?.(new b("dns:query",{detail:n}));let s=await t.add(async()=>{let c=await fetch(`${r}?${i}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(c.status!==200)throw new Error(`Unexpected HTTP status: ${c.status} - ${c.statusText}`);let u=At(await c.json());return o.onProgress?.(new b("dns:response",{detail:u})),u},{signal:o.signal});if(s==null)throw new Error("No DNS response received");return s}}function Io(){return[Jr("https://cloudflare-dns.com/dns-query"),Jr("https://dns.google/resolve")]}var Lo=Jn(Po(),1);var Xr=class{lru;constructor(e){this.lru=(0,Lo.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 At({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:c})=>({...c,TTL:Math.round((s-Date.now())/1e3),type:J[c.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??Qr)*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 No(r){return new Xr(r)}var rc=1e3,St=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=No(e.cacheSize??rc),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["."]=Io())}async query(e,t={}){let n=wt(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new b("dns:cache",{detail:o})),o;let i=`${e.split(".").pop()}.`,s=(this.resolvers[i]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),c=[];for(let u of s){if(t.signal?.aborted===!0)break;try{let p=await u(e,{...t,types:n});for(let l of p.Answer)this.cache.add(e,l);return p}catch(p){c.push(p),t.onProgress?.(new b("dns:error",{detail:p}))}}throw c.length===1?c[0]:new AggregateError(c,`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 Do(r={}){return new St(r)}function nc(r){return r[Symbol.asyncIterator]!=null}function oc(r){if(nc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Uo=oc;function B(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var It=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}},Fe=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new It(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 It(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 Yr=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Bo(r={}){return ic(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 ic(r,e){e=e??{};let t=e.onEnd,n=new Fe,o,i,s,c=B(),u=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((g,v)=>{i=A=>{i=null,n.push(A);try{g(r(n))}catch(S){v(S)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=B()})}},p=g=>i!=null?i(g):(n.push(g),o),l=g=>(n=new Fe,i!=null?i({error:g}):(n.push({error:g}),o)),d=g=>{if(s)return o;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return p({done:!1,value:g})},y=g=>s?o:(s=!0,g!=null?l(g):p({done:!0})),k=()=>(n=new Fe,y(),{done:!0}),E=g=>(y(g),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:k,throw:E,push:d,end:y,get readableLength(){return n.size},onEmpty:async g=>{let v=g?.signal;if(v?.throwIfAborted(),n.isEmpty())return;let A,S;v!=null&&(A=new Promise((I,$)=>{S=()=>{$(new Yr)},v.addEventListener("abort",S)}));try{await Promise.race([c.promise,A])}finally{S!=null&&v!=null&&v?.removeEventListener("abort",S)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(g){return w.throw(g),t!=null&&(t(g),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:d,end(g){return w.end(g),t!=null&&(t(g),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:g=>w.onEmpty(g)},o}var Zr=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 Tt(r,e,t,n){let o=new Zr(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{function c(){t?.removeEventListener("abort",l),r.removeEventListener(e,u),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,p)}let u=d=>{try{if(n?.filter?.(d)===!1)return}catch(y){c(),s(y);return}c(),i(d)},p=d=>{c(),s(d.detail)},l=()=>{c(),s(o)};t?.addEventListener("abort",l),r.addEventListener(e,u),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,p)})}function en(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 Lt=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 Nt(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new Lt(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Lt(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 Dt=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 W)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function sc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ut=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=sc(),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 W),this.cleanup())}async join(e={}){let t=new Dt(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 Nt(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 ie=class extends Pe{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=en(this.emitEmpty.bind(this),1),this.emitIdle=en(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 Ut(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 W)}),this.clear()}async onEmpty(e){this.size!==0&&await Tt(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Tt(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Tt(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=Bo({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()},c=()=>{n(new W("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("error",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",c);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",c),n()}}};var ac=["string","number","bigint","symbol"],cc=["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 $o(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(ac.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(uc(r))return"Buffer";let t=lc(r);return t||"Object"}function uc(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function lc(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(cc.includes(e))return e}var a=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}};a.uint=new a(0,"uint",!0);a.negint=new a(1,"negint",!0);a.bytes=new a(2,"bytes",!0);a.string=new a(3,"string",!0);a.array=new a(4,"array",!1);a.map=new a(5,"map",!1);a.tag=new a(6,"tag",!1);a.float=new a(7,"float",!0);a.false=new a(7,"false",!0);a.true=new a(7,"true",!0);a.null=new a(7,"null",!0);a.undefined=new a(7,"undefined",!0);a.break=new a(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 $e=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",fc=new TextDecoder,dc=new TextEncoder;function Bt(r){return $e&&globalThis.Buffer.isBuffer(r)}function tt(r){return r instanceof Uint8Array?Bt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Oo=$e?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Ro(r,e,t):(r,e,t)=>t-e>64?fc.decode(r.subarray(e,t)):Ro(r,e,t),Ft=$e?r=>r.length>64?globalThis.Buffer.from(r):zo(r):r=>r.length>64?dc.encode(r):zo(r),re=r=>Uint8Array.from(r),ze=$e?(r,e,t)=>Bt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),qo=$e?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),tt(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},jo=$e?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Vo(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 zo(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 Ro(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 c,u,p,l;switch(s){case 1:o<128&&(i=o);break;case 2:c=r[e+1],(c&192)===128&&(l=(o&31)<<6|c&63,l>127&&(i=l));break;case 3:c=r[e+1],u=r[e+2],(c&192)===128&&(u&192)===128&&(l=(o&15)<<12|(c&63)<<6|u&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=r[e+1],u=r[e+2],p=r[e+3],(c&192)===128&&(u&192)===128&&(p&192)===128&&(l=(o&15)<<18|(c&63)<<12|(u&63)<<6|p&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 tn(n)}var Mo=4096;function tn(r){let e=r.length;if(e<=Mo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Mo));return t}var hc=256,rt=class{constructor(e=hc){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=jo(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=ze(n,0,this.cursor)}else t=qo(this.chunks,this.cursor);return e&&this.reset(),t}};var m="CBOR decode error:",se="CBOR encode error:",nt=[];nt[23]=1;nt[24]=2;nt[25]=3;nt[26]=5;nt[27]=9;function ae(r,e,t){if(r.length-e<t)throw new Error(`${m} not enough data for type`)}var P=[24,256,65536,4294967296,BigInt("18446744073709551616")];function R(r,e,t){ae(r,e,1);let n=r[e];if(t.strict===!0&&n<P[0])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function M(r,e,t){ae(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<P[1])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function O(r,e,t){ae(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<P[2])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){ae(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<P[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 Ho(r,e,t,n){return new f(a.uint,R(r,e+1,n),2)}function Ko(r,e,t,n){return new f(a.uint,M(r,e+1,n),3)}function Go(r,e,t,n){return new f(a.uint,O(r,e+1,n),5)}function Wo(r,e,t,n){return new f(a.uint,q(r,e+1,n),9)}function K(r,e){return L(r,0,e.value)}function L(r,e,t){if(t<P[0]){let n=Number(t);r.push([e|n])}else if(t<P[1]){let n=Number(t);r.push([e|24,n])}else if(t<P[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<P[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<P[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`)}}K.encodedSize=function(e){return L.encodedSize(e.value)};L.encodedSize=function(e){return e<P[0]?1:e<P[1]?2:e<P[2]?3:e<P[3]?5:9};K.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Qo(r,e,t,n){return new f(a.negint,-1-R(r,e+1,n),2)}function Jo(r,e,t,n){return new f(a.negint,-1-M(r,e+1,n),3)}function Xo(r,e,t,n){return new f(a.negint,-1-O(r,e+1,n),5)}var rn=BigInt(-1),Yo=BigInt(1);function Zo(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(a.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${m} integers outside of the safe integer range are not supported`);return new f(a.negint,rn-BigInt(o),9)}function $t(r,e){let t=e.value,n=typeof t=="bigint"?t*rn-Yo:t*-1-1;L(r,e.type.majorEncoded,n)}$t.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*rn-Yo:t*-1-1;return n<P[0]?1:n<P[1]?2:n<P[2]?3:n<P[3]?5:9};$t.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function ot(r,e,t,n){ae(r,e,t+n);let o=ze(r,e+t,e+t+n);return new f(a.bytes,o,t+n)}function ei(r,e,t,n){return ot(r,e,1,t)}function ti(r,e,t,n){return ot(r,e,2,R(r,e+1,n))}function ri(r,e,t,n){return ot(r,e,3,M(r,e+1,n))}function ni(r,e,t,n){return ot(r,e,5,O(r,e+1,n))}function oi(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 ot(r,e,9,o)}function zt(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===a.string?Ft(r.value):r.value),r.encodedBytes}function Re(r,e){let t=zt(e);L(r,e.type.majorEncoded,t.length),r.push(t)}Re.encodedSize=function(e){let t=zt(e);return L.encodedSize(t.length)+t.length};Re.compareTokens=function(e,t){return mc(zt(e),zt(t))};function mc(r,e){return r.length<e.length?-1:r.length>e.length?1:Vo(r,e)}function it(r,e,t,n,o){let i=t+n;ae(r,e,i);let s=new f(a.string,Oo(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=ze(r,e+t,e+i)),s}function ii(r,e,t,n){return it(r,e,1,t,n)}function si(r,e,t,n){return it(r,e,2,R(r,e+1,n),n)}function ai(r,e,t,n){return it(r,e,3,M(r,e+1,n),n)}function ci(r,e,t,n){return it(r,e,5,O(r,e+1,n),n)}function ui(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 it(r,e,9,o,n)}var li=Re;function Me(r,e,t,n){return new f(a.array,n,t)}function fi(r,e,t,n){return Me(r,e,1,t)}function di(r,e,t,n){return Me(r,e,2,R(r,e+1,n))}function hi(r,e,t,n){return Me(r,e,3,M(r,e+1,n))}function pi(r,e,t,n){return Me(r,e,5,O(r,e+1,n))}function mi(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 gi(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 Rt(r,e){L(r,a.array.majorEncoded,e.value)}Rt.compareTokens=K.compareTokens;Rt.encodedSize=function(e){return L.encodedSize(e.value)};function Oe(r,e,t,n){return new f(a.map,n,t)}function yi(r,e,t,n){return Oe(r,e,1,t)}function wi(r,e,t,n){return Oe(r,e,2,R(r,e+1,n))}function xi(r,e,t,n){return Oe(r,e,3,M(r,e+1,n))}function bi(r,e,t,n){return Oe(r,e,5,O(r,e+1,n))}function Ei(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 Oe(r,e,9,o)}function vi(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return Oe(r,e,1,1/0)}function Mt(r,e){L(r,a.map.majorEncoded,e.value)}Mt.compareTokens=K.compareTokens;Mt.encodedSize=function(e){return L.encodedSize(e.value)};function _i(r,e,t,n){return new f(a.tag,t,1)}function ki(r,e,t,n){return new f(a.tag,R(r,e+1,n),2)}function Ci(r,e,t,n){return new f(a.tag,M(r,e+1,n),3)}function Ai(r,e,t,n){return new f(a.tag,O(r,e+1,n),5)}function Si(r,e,t,n){return new f(a.tag,q(r,e+1,n),9)}function Ot(r,e){L(r,a.tag.majorEncoded,e.value)}Ot.compareTokens=K.compareTokens;Ot.encodedSize=function(e){return L.encodedSize(e.value)};var Ec=20,vc=21,_c=22,kc=23;function Ii(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${m} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new f(a.null,null,1):new f(a.undefined,void 0,1)}function Ti(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return new f(a.break,void 0,1)}function nn(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(a.float,r,e)}function Pi(r,e,t,n){return nn(on(r,e+1),3,n)}function Li(r,e,t,n){return nn(sn(r,e+1),5,n)}function Ni(r,e,t,n){return nn(Fi(r,e+1),9,n)}function qt(r,e,t){let n=e.value;if(n===!1)r.push([a.float.majorEncoded|Ec]);else if(n===!0)r.push([a.float.majorEncoded|vc]);else if(n===null)r.push([a.float.majorEncoded|_c]);else if(n===void 0)r.push([a.float.majorEncoded|kc]);else{let o,i=!1;(!t||t.float64!==!0)&&(Ui(n),o=on(X,1),n===o||Number.isNaN(n)?(X[0]=249,r.push(X.slice(0,3)),i=!0):(Bi(n),o=sn(X,1),n===o&&(X[0]=250,r.push(X.slice(0,5)),i=!0))),i||(Cc(n),o=Fi(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){Ui(n);let o=on(X,1);if(n===o||Number.isNaN(n))return 3;if(Bi(n),o=sn(X,1),n===o)return 5}return 9};var Di=new ArrayBuffer(9),G=new DataView(Di,1),X=new Uint8Array(Di,0);function Ui(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 on(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 Bi(r){G.setFloat32(0,r,!1)}function sn(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 Cc(r){G.setFloat64(0,r,!1)}function Fi(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=K.compareTokens;function x(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 h=[];for(let r=0;r<=23;r++)h[r]=x;h[24]=Ho;h[25]=Ko;h[26]=Go;h[27]=Wo;h[28]=x;h[29]=x;h[30]=x;h[31]=x;for(let r=32;r<=55;r++)h[r]=x;h[56]=Qo;h[57]=Jo;h[58]=Xo;h[59]=Zo;h[60]=x;h[61]=x;h[62]=x;h[63]=x;for(let r=64;r<=87;r++)h[r]=ei;h[88]=ti;h[89]=ri;h[90]=ni;h[91]=oi;h[92]=x;h[93]=x;h[94]=x;h[95]=jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)h[r]=ii;h[120]=si;h[121]=ai;h[122]=ci;h[123]=ui;h[124]=x;h[125]=x;h[126]=x;h[127]=jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)h[r]=fi;h[152]=di;h[153]=hi;h[154]=pi;h[155]=mi;h[156]=x;h[157]=x;h[158]=x;h[159]=gi;for(let r=160;r<=183;r++)h[r]=yi;h[184]=wi;h[185]=xi;h[186]=bi;h[187]=Ei;h[188]=x;h[189]=x;h[190]=x;h[191]=vi;for(let r=192;r<=215;r++)h[r]=_i;h[216]=ki;h[217]=Ci;h[218]=Ai;h[219]=Si;h[220]=x;h[221]=x;h[222]=x;h[223]=x;for(let r=224;r<=243;r++)h[r]=jt("simple values are not supported");h[244]=x;h[245]=x;h[246]=x;h[247]=Ii;h[248]=jt("simple values are not supported");h[249]=Pi;h[250]=Li;h[251]=Ni;h[252]=x;h[253]=x;h[254]=x;h[255]=Ti;var Y=[];for(let r=0;r<24;r++)Y[r]=new f(a.uint,r,1);for(let r=-1;r>=-24;r--)Y[31-r]=new f(a.negint,r,1);Y[64]=new f(a.bytes,new Uint8Array(0),1);Y[96]=new f(a.string,"",1);Y[128]=new f(a.array,0,1);Y[160]=new f(a.map,0,1);Y[244]=new f(a.false,!1,1);Y[245]=new f(a.true,!0,1);Y[246]=new f(a.null,null,1);function $i(r){switch(r.type){case a.false:return re([244]);case a.true:return re([245]);case a.null:return re([246]);case a.bytes:return r.value.length?void 0:re([64]);case a.string:return r.value===""?re([96]):void 0;case a.array:return r.value===0?re([128]):void 0;case a.map:return r.value===0?re([160]):void 0;case a.uint:return r.value<24?re([Number(r.value)]):void 0;case a.negint:if(r.value>=-24)return re([31-Number(r.value)])}}var Sc={float64:!1,mapSorter:Pc,quickEncodeToken:$i};function Ic(){let r=[];return r[a.uint.major]=K,r[a.negint.major]=$t,r[a.bytes.major]=Re,r[a.string.major]=li,r[a.array.major]=Rt,r[a.map.major]=Mt,r[a.tag.major]=Ot,r[a.float.major]=qt,r}var zi=Ic(),an=new rt,Ht=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(`${se} object contains circular references`);return new r(t,e)}},ge={null:new f(a.null,null),undefined:new f(a.undefined,void 0),true:new f(a.true,!0),false:new f(a.false,!1),emptyArray:new f(a.array,0),emptyMap:new f(a.map,0)},ye={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new f(a.float,r):r>=0?new f(a.uint,r):new f(a.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new f(a.uint,r):new f(a.negint,r)},Uint8Array(r,e,t,n){return new f(a.bytes,r)},string(r,e,t,n){return new f(a.string,r)},boolean(r,e,t,n){return r?ge.true:ge.false},null(r,e,t,n){return ge.null},undefined(r,e,t,n){return ge.undefined},ArrayBuffer(r,e,t,n){return new f(a.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new f(a.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[ge.emptyArray,new f(a.break)]:ge.emptyArray;n=Ht.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Vt(s,t,n);return t.addBreakTokens?[new f(a.array,r.length),o,new f(a.break)]:[new f(a.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?[ge.emptyMap,new f(a.break)]:ge.emptyMap;n=Ht.createCheck(n,r);let c=[],u=0;for(let p of i)c[u++]=[Vt(p,t,n),Vt(o?r.get(p):r[p],t,n)];return Tc(c,t),t.addBreakTokens?[new f(a.map,s),c,new f(a.break)]:[new f(a.map,s),c]}};ye.Map=ye.Object;ye.Buffer=ye.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))ye[`${r}Array`]=ye.DataView;function Vt(r,e={},t){let n=$o(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||ye[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=ye[n];if(!i)throw new Error(`${se} unsupported type: ${n}`);return i(r,n,e,t)}function Tc(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Pc(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=zi[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Ri(r,e,t,n){if(Array.isArray(e))for(let o of e)Ri(r,o,t,n);else t[e.type.major](r,e,n)}function cn(r,e,t){let n=Vt(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),c=new rt(s);if(i(c,n,t),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return tt(c.chunks[0])}}return an.reset(),Ri(an,n,e,t),an.toBytes(!0)}function ve(r,e){return e=Object.assign({},Sc,e),cn(r,zi,e)}var Lc={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Kt=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=Y[e];if(t===void 0){let n=h[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}},st=Symbol.for("DONE"),Gt=Symbol.for("BREAK");function Nc(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=qe(e,t);if(i===Gt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed array`)}if(i===st)throw new Error(`${m} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Dc(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 c=qe(e,t);if(c===Gt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed map`)}if(c===st)throw new Error(`${m} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${m} non-string keys not supported (got ${typeof c})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${m} found repeat map key "${c}"`);let u=qe(e,t);if(u===st)throw new Error(`${m} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(c,u):o[c]=u}return n?i:o}function qe(r,e){if(r.done())return st;let t=r.next();if(t.type===a.break)return Gt;if(t.type.terminal)return t.value;if(t.type===a.array)return Nc(t,r,e);if(t.type===a.map)return Dc(t,r,e);if(t.type===a.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 un(r,e){if(!(r instanceof Uint8Array))throw new Error(`${m} data to decode must be a Uint8Array`);e=Object.assign({},Lc,e);let t=e.tokenizer||new Kt(r,e),n=qe(t,e);if(n===st)throw new Error(`${m} did not find any content to decode`);if(n===Gt)throw new Error(`${m} got unexpected break`);return[n,r.subarray(t.pos())]}function Z(r,e){let[t,n]=un(r,e);if(n.length>0)throw new Error(`${m} too many terminals, data makes no sense`);return t}function F(r,e="utf8"){let t=Ct[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var ce="/",Oi=new TextEncoder().encode(ce),Wt=Oi[0],ue=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=F(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]!==Wt)throw new Error("Invalid key")}toString(e="utf8"){return Be(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(ce))}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=Oi),this._buf[0]!==Wt){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Wt,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Wt;)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(ce).slice(1)}type(){return Uc(this.baseNamespace())}name(){return Bc(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(ce)||(e+=ce),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(ce):new r(e.slice(0,-1).join(ce))}child(e){return this.toString()===ce?e:e.toString()===ce?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(),...Fc(e.map(t=>t.namespaces()))])}};function Uc(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Bc(r){let e=r.split(":");return e[e.length-1]}function Fc(r){return[].concat(...r)}function Qt({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*$c(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],i=_.asCID(n);i!=null?yield[o.join("/"),i]:typeof n=="object"&&(yield*ln(n,o))}else{let t=_.asCID(e);t!=null?yield[r.join("/"),t]:yield*ln(e,r)}}function*ln(r,e){if(r==null||r instanceof Uint8Array)return;let t=_.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let i=[...e,n];yield*$c(i,o)}}function*zc(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&_.asCID(n)==null&&(yield*fn(n,o))}else yield*fn(e,r)}function*fn(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"&&_.asCID(n)==null&&(yield*zc(o,n))}}function Rc(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=_.asCID(t);if(i!=null)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:t}}var dn=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 ln(this.value,[])}tree(){return fn(this.value,[])}get(e="/"){return Rc(this.value,e.split("/").filter(Boolean))}};function qi({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 dn({cid:e,bytes:r,value:o})}function _e(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 Hi="/pin/",ji="/pinned-block/",hn=oe,Vi=1;function Jt(r){return r.version===0&&(r=r.toV1()),new ue(`${Hi}${r.toString(hn)}`)}var Xt=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 ie({concurrency:Vi});for await(let c of this.#e(e,i,{...t,depth:o}))await this.#o(c,u=>u.pinnedBy.find(p=>_e(p,e.bytes))!=null?!1:(u.pinCount++,u.pinnedBy.push(e.bytes),!0),t),yield c;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,ve(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=qi({bytes:i,cid:e,codec:o});yield e;for(let[,c]of s.links())yield*await t.add(async()=>this.#e(c,t,{...n,depth:n.depth-1}))}async#o(e,t,n){let o=new ue(`${ji}${hn.encode(e.multihash.bytes)}`),i={pinCount:0,pinnedBy:[]};try{i=Z(await this.datastore.get(o,n))}catch(c){if(c.name!=="NotFoundError")throw c}if(t(i)){if(i.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,ve(i),n),n.onProgress?.(new b("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 ie({concurrency:Vi});for await(let c of this.#e(e,s,{...t,depth:i.depth}))await this.#o(c,u=>(u.pinCount--,u.pinnedBy=u.pinnedBy.filter(p=>_e(p,e.bytes)),!0),{...t,depth:i.depth}),yield c}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Hi+(e.cid!=null?`${e.cid.toString(oe)}`:"")},e)){let o=_.parse(t.toString().substring(5),oe),i=Z(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new ue(`${ji}${hn.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,ve(s),n)}};var Yt=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 ie{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 Nt(this.readNext.promise,t?.signal,t)}};function Ki(){return new pn}function Mc(r){return r[Symbol.asyncIterator]!=null}async function Oc(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*qc(r){let e=new AbortController,t=Ki();Oc(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*jc(r){for(let e of r)yield*e}function Vc(...r){let e=[];for(let t of r)Mc(t)||e.push(t);return e.length===r.length?jc(e):qc(r)}var rr=Vc;var Hc=5,nr=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Hc,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 le(...this.routers)}async stop(){await fe(...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(),...Ce(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(Ce(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ce(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ce(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Ce(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(...Ce(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(...Ce(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ce(r,e){return r.filter(t=>t[e]!=null)}var we={},je=r=>{r.addEventListener("message",e=>{je.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{je.dispatchEvent("message",r,e)})};je.addEventListener=(r,e)=>{we[r]==null&&(we[r]=[]),we[r].push(e)};je.removeEventListener=(r,e)=>{we[r]!=null&&(we[r]=we[r].filter(t=>t===e))};je.dispatchEvent=function(r,e,t){we[r]!=null&&we[r].forEach(n=>n(e,t))};var mn=je;var gn="lock:worker:request-read",yn="lock:worker:release-read",wn="lock:master:grant-read",xn="lock:worker:request-write",bn="lock:worker:release-write",En="lock:master:grant-write";var Gi=(r=21)=>Math.random().toString().substring(2);var Wi=(r,e,t,n,o)=>(i,s)=>{if(s.data.type!==t)return;let c={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:c.name,handler:async()=>{i.postMessage({type:o,name:c.name,identifier:c.identifier}),await new Promise(u=>{let p=l=>{if(l?.data==null)return;let d={type:l.data.type,name:l.data.name,identifier:l.data.identifier};d.type===n&&d.identifier===c.identifier&&(i.removeEventListener("message",p),u())};i.addEventListener("message",p)})}}}))},Qi=(r,e,t,n)=>async()=>{let o=Gi();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(i=>{let s=c=>{if(c?.data==null)return;let u={type:c.data.type,identifier:c.data.identifier};u.type===t&&u.identifier===o&&(globalThis.removeEventListener("message",s),i(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",s)})},Kc={singleProcess:!1},Ji=r=>{if(r=Object.assign({},Kc,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return mn.addEventListener("message",Wi(t,"requestReadLock",gn,yn,wn)),mn.addEventListener("message",Wi(t,"requestWriteLock",xn,bn,En)),t}return{isWorker:!0,readLock:t=>Qi(t,gn,wn,yn),writeLock:t=>Qi(t,xn,En,bn)}};var Ae={},xe;async function vn(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Qe((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Gc=(r,e)=>{if(xe.isWorker===!0)return{readLock:xe.readLock(r,e),writeLock:xe.writeLock(r,e)};let t=new me({concurrency:1}),n;return{async readLock(){if(n!=null)return vn(n,e);n=new me({concurrency:e.concurrency,autoStart:!1});let o=n,i=vn(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),i},async writeLock(){return n=null,vn(t,e)}}},Wc={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function _n(r){let e=Object.assign({},Wc,r);return xe==null&&(xe=Ji(e),xe.isWorker!==!0&&(xe.addEventListener("requestReadLock",t=>{Ae[t.data.name]!=null&&Ae[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),xe.addEventListener("requestWriteLock",async t=>{Ae[t.data.name]!=null&&Ae[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Ae[e.name]==null&&(Ae[e.name]=Gc(e.name,e)),Ae[e.name]}var or=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=_n({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await le(this.child),this.started=!0}async stop(){await fe(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 kn=new ue("/version"),Xi=1;async function Yi(r){if(!await r.has(kn)){await r.put(kn,F(`${Xi}`));return}let e=await r.get(kn),t=Be(e);if(parseInt(t,10)!==Xi)throw new Error("Unknown datastore version, a datastore migration may be required")}var Sn={};T(Sn,{code:()=>An,decode:()=>nu,decodeOptions:()=>eu,encode:()=>ru,encodeOptions:()=>Yc,name:()=>tu,toByteView:()=>es});var Zi=42;function es(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Qc(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=_.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new f(a.tag,Zi),new f(a.bytes,t)]}function Jc(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Xc(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 Cn={float64:!0,typeEncoders:{Object:Qc,undefined:Jc,number:Xc}},Yc={...Cn,typeEncoders:{...Cn.typeEncoders}};function Zc(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return _.decode(r.subarray(1))}var ir={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};ir.tags[Zi]=Zc;var eu={...ir,tags:ir.tags.slice()},tu="dag-cbor",An=113,ru=r=>ve(r,Cn),nu=r=>Z(es(r),ir);var Un={};T(Un,{code:()=>Dn,decode:()=>rs,encode:()=>ts,format:()=>pu,name:()=>hu,parse:()=>gu,stringify:()=>pu});var In=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===a.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===a.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[a.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)}[a.negint.major](e,t){this[a.uint.major](e,t)}[a.bytes.major](e,t){throw new Error(`${se} unsupported type: Uint8Array`)}[a.string.major](e,t){this.prefix(e);let n=Ft(JSON.stringify(t.value));e.push(n.length>32?tt(n):n)}[a.array.major](e,t){this.prefix(e),this.inRecursive.push({type:a.array,elements:0}),e.push([91])}[a.map.major](e,t){this.prefix(e),this.inRecursive.push({type:a.map,elements:0}),e.push([123])}[a.tag.major](e,t){}[a.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===a.array)e.push([93]);else if(s.type===a.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(`${se} 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 ou(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${se} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==a.string||n.type!==a.string)throw new Error(`${se} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${se} unexpected duplicate map keys, this is not supported`)}var iu={addBreakTokens:!0,mapSorter:ou};function Tn(r,e){return e=Object.assign({},iu,e),cn(r,new In,e)}var Ve=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=c=>{for(;!this.done();){let u=this.ch();if(c.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(a.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(a.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new f(s>=0?a.uint:a.negint,s,this._pos-e):new f(s>=0?a.uint:a.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 c=this.data[i];if(c===92||c<32||c>=128)break;if(c===34){let u=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new f(a.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 c=this.ch();if(c>=48&&c<=57)c-=48;else if(c>=97&&c<=102)c=c-97+10;else if(c>=65&&c<=70)c=c-65+10;else throw new Error(`${m} unexpected unicode escape character at position ${this._pos}`);i=i*16+c,this._pos++}return i},o=()=>{let i=this.ch(),s=null,c=i>239?4:i>223?3:i>191?2:1;if(this._pos+c>this.data.length)throw new Error(`${m} unexpected unicode sequence at position ${this._pos}`);let u,p,l,d;switch(c){case 1:i<128&&(s=i);break;case 2:u=this.data[this._pos+1],(u&192)===128&&(d=(i&31)<<6|u&63,d>127&&(s=d));break;case 3:u=this.data[this._pos+1],p=this.data[this._pos+2],(u&192)===128&&(p&192)===128&&(d=(i&15)<<12|(u&63)<<6|p&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:u=this.data[this._pos+1],p=this.data[this._pos+2],l=this.data[this._pos+3],(u&192)===128&&(p&192)===128&&(l&192)===128&&(d=(i&15)<<18|(u&63)<<12|(p&63)<<6|l&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${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(a.string,tn(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(a.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new f(a.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new f(a.null,null,4);case 102:return this.expect([102,97,108,115,101]),new f(a.false,!1,5);case 116:return this.expect([116,114,117,101]),new f(a.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(a.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(a.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(a.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(a.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 Pn(r,e){return e=Object.assign({tokenizer:new Ve(r,e)},e),Z(r,e)}function au(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=_.asCID(r);if(!e)return null;let t=e.toString();return[new f(a.map,1/0,1),new f(a.string,"/",1),new f(a.string,t,t.length),new f(a.break,void 0,1)]}function sr(r){let e=pe.encode(r).slice(1);return[new f(a.map,1/0,1),new f(a.string,"/",1),new f(a.map,1/0,1),new f(a.string,"bytes",5),new f(a.string,e,e.length),new f(a.break,void 0,1),new f(a.break,void 0,1)]}function ee(r){return sr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function uu(r){return sr(new Uint8Array(r))}function lu(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function fu(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 du={typeEncoders:{Object:cu,Buffer:sr,Uint8Array:sr,Int8Array:ee,Uint16Array:ee,Int16Array:ee,Uint32Array:ee,Int32Array:ee,Float32Array:ee,Float64Array:ee,Uint8ClampedArray:ee,BigInt64Array:ee,BigUint64Array:ee,DataView:ee,ArrayBuffer:uu,undefined:lu,number:fu}},Ln=class extends Ve{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===a.map){let t=this._next();if(t.type===a.string&&t.value==="/"){let n=this._next();if(n.type===a.string){if(this._next().type!==a.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new f(a.tag,42,0)}if(n.type===a.map){let o=this._next();if(o.type===a.string&&o.value==="bytes"){let i=this._next();if(i.type===a.string){for(let c=0;c<2;c++)if(this._next().type!==a.break)throw new Error("Invalid encoded Bytes form");let s=pe.decode(`m${i.value}`);return new f(a.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Nn={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Nn.tags[42]=_.parse;var hu="dag-json",Dn=297,ts=r=>Tn(r,du),rs=r=>{let e=au(r),t=Object.assign(Nn,{tokenizer:new Ln(e,Nn)});return Pn(e,t)},pu=r=>mu.decode(ts(r));var mu=new TextDecoder,gu=r=>rs(yu.encode(r)),yu=new TextEncoder;var Mn={};T(Mn,{code:()=>Rn,createLink:()=>ds,createNode:()=>fs,decode:()=>Pu,encode:()=>Tu,name:()=>Iu,prepare:()=>$n,validate:()=>zn});var wu=new TextDecoder;function Bn(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 ar(r,e){let t;[t,e]=Bn(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 ns(r,e){let t;return[t,e]=Bn(r,e),[t&7,t>>3,e]}function xu(r){let e={},t=r.length,n=0;for(;n<t;){let o,i;if([o,i,n]=ns(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]=ar(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]=ar(r,n),e.Name=wu.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]=Bn(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 os(r){let e=r.length,t=0,n,o=!1,i;for(;t<e;){let c,u;if([c,u,t]=ns(r,t),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(u===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=ar(r,t),n&&(o=!0)}else if(u===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let p;[p,t]=ar(r,t),n.push(xu(p))}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 ss=new TextEncoder,is=2**32,bu=2**31;function Eu(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=at(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=ss.encode(r.Name);t-=n.length,e.set(n,t),t=at(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=at(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function as(r){let e=_u(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=at(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let i=Eu(r.Links[o],t.subarray(0,n));n-=i,n=at(t,n,i)-1,t[n]=18}return t}function vu(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+He(t)}if(typeof r.Name=="string"){let t=ss.encode(r.Name).length;e+=1+t+He(t)}return typeof r.Tsize=="number"&&(e+=1+He(r.Tsize)),e}function _u(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+He(t)}if(r.Links)for(let t of r.Links){let n=vu(t);e+=1+n+He(n)}return e}function at(r,e,t){e-=He(t);let n=e;for(;t>=bu;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function He(r){return r%2===0&&r++,Math.floor((ku(r)+6)/7)}function ku(r){let e=0;return r>=is&&(r=Math.floor(r/is),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+Cu[r]}var Cu=[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 Au=["Data","Links"],Su=["Hash","Name","Tsize"],Fn=new TextEncoder;function us(r,e){if(r===e)return 0;let t=r.Name?Fn.encode(r.Name):[],n=e.Name?Fn.encode(e.Name):[],o=t.length,i=n.length;for(let s=0,c=Math.min(o,i);s<c;++s)if(t[s]!==n[s]){o=t[s],i=n[s];break}return o<i?-1:i<o?1:0}function cs(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function ls(r){if(typeof r.asCID=="object"){let t=_.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=_.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=_.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=_.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 $n(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=Fn.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(ls),e.Links.sort(us);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function zn(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!cs(r,Au))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(!cs(t,Su))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&&us(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function fs(r,e=[]){return $n({Data:r,Links:e})}function ds(r,e,t){return ls({Hash:t,Name:r,Tsize:e})}function hs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var Iu="dag-pb",Rn=112;function Tu(r){zn(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),as(e)}function Pu(r){let e=hs(r),t=os(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let i={};try{i.Hash=_.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 Ke(r){return r?.then!=null}function ps(r=[],e){let t={[Rn]:Mn,[Mr]:bt,[An]:Sn,[Dn]:Un,[Rr]:xt};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let i=e(n);Ke(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 ms(r=[],e){let t={[_t.code]:_t,[kt.code]:kt,[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);Ke(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 ne(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 cr=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 ur=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 lr=0,fr=class extends ur{child;constructor(e){super(),this.child=e}put(e,t){return e.multihash.code===lr||this.child==null?e:this.child.put(e,t)}get(e){if(e.multihash.code===lr)return e.multihash.digest;if(this.child==null)throw new cr;return this.child.get(e)}has(e){return e.multihash.code===lr?!0:this.child==null?!1:this.child.has(e)}delete(e){if(e.code!==lr&&this.child!=null)return this.child.delete(e)}getAll(e){return this.child!=null?this.child.getAll(e):[]}};function Lu(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 dr=Lu;function Nu(r){return r[Symbol.asyncIterator]!=null}function Du(r,e){let t=0;if(Nu(r))return async function*(){for await(let u of r)await e(u,t++)&&(yield u)}();let n=dr(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 await(let u of n)await e(u,t++)&&(yield u)}();let c=e;return function*(){s===!0&&(yield o);for(let u of n)c(u,t++)&&(yield u)}()}var gs=Du;function Uu(r){return r[Symbol.asyncIterator]!=null}function ys(r){return r?.then!=null}function Bu(r,e){let t=0;if(Uu(r))return async function*(){for await(let u of r){let p=e(u,t++);ys(p)&&await p,yield u}}();let n=dr(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 await(let u of n){let p=e(u,t++);ys(p)&&await p,yield u}}();let c=e;return function*(){yield o;for(let u of n)c(u,t++),yield u}()}var On=Bu;var hr=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 fr(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new b("blocks:put:duplicate",e)),e):(n.onProgress?.(new b("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new b("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=gs(e,async({cid:i})=>{let s=await this.child.has(i,t);return s&&t.onProgress?.(new b("blocks:put-many:duplicate",i)),!s}),o=On(n,async({cid:i,block:s})=>{t.onProgress?.(new b("blocks:put-many:providers:notify",i)),await Promise.all(this.components.blockBrokers.map(async c=>c.announce?.(i,s,t)))});t.onProgress?.(new b("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 b("blocks:get:providers:get",e));let o=await ws(e,this.components.blockBrokers,n,{...t,log:this.log});return t.onProgress?.(new b("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new b("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,o,t))),o}return t.onProgress?.(new b("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new b("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(On(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new b("blocks:get-many:providers:get",n));let i=await ws(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new b("blocks:get-many:blockstore:put",n)),await this.child.put(n,i,t),t.onProgress?.(new b("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 b("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new b("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 b("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},pr=class extends hr{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await le(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await fe(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 qn({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},qn=class extends hr{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=ne([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:o})}finally{o.clear()}}async*putMany(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async get(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{return await super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=ne([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=ne([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function Fu(r){return typeof r.retrieve=="function"}var $u=(r,e)=>{if(e==null)throw new ft(`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(Ke(o)?n=await o:n=o,!_e(n.digest,r.multihash.digest))throw new ht("Hash of downloaded block did not match multihash from passed CID")}};async function ws(r,e,t,n){let o=$u(r,t),i=new AbortController,s=ne([i.signal,n.signal]);i.signal;let c=[];for(let u of e)Fu(u)&&c.push(u);try{return await Promise.any(c.map(async u=>{try{let p=!1,l=await u.retrieve(r,{...n,signal:s,validateFn:async d=>{await o(d),p=!0}});return p||await o(l),l}catch(p){throw n.log.error("could not retrieve verified block for %c",r,p),p}}))}finally{i.abort(),s.clear()}}var jn={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},xs={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},bs=new globalThis.TextEncoder;function zu(r,e){let t=jn[e],n=xs[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Ru(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=jn[e],o=xs[e],i=r;for(;i.length>0;){let s=bs.encodeInto(i,t);i=i.slice(s.read);for(let c=0;c<s.written;c++)o^=BigInt(t[c]),o=BigInt.asUintN(e,o*n)}return o}function Vn(r,{size:e=32,utf8Buffer:t}={}){if(!jn[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 Ru(r,e,t);r=bs.encode(r)}return zu(r,e)}var ct={hash:r=>Number(Vn(r,{size:32})),hashV:(r,e)=>Mu(ct.hash(r,e))};function Mu(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),F(e,"base16")}var Hn=64,te=class{fp;h;seed;constructor(e,t,n,o=2){if(o>Hn)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),s=ko(o);for(let c=0;c<s.length;c++)s[c]=i[c];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?_e(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 te))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof te))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 te))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 te))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var Ou=500,ut=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??ct,this.seed=e.seed??Se(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=F(e));let t=new te(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 c=0;c<Ou;c++){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=F(e));let t=new te(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=F(e));let t=new te(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}},qu={1:.5,2:.84,4:.95,8:.98};function ju(r=.001){return r>.002?2:r>1e-5?4:8}function Es(r,e=.001){let t=ju(e),n=qu[t],o=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Hn);return{filterSize:o,bucketSize:t,fingerprintSize:i}}var mr=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??ct,this.seed=e.seed??Se(0,Math.pow(2,10)),this.filterSeries=[new ut({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=F(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 ut({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=F(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=F(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 Kn(r,e=.001,t){return new mr({...Es(r,e),...t??{}})}var gr=class extends Pe{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=Kn(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=pe.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,c=new ie({concurrency:this.maxProviders});c.addEventListener("error",()=>{}),c.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)}),c.addEventListener("success",l=>{s=!0,i.resolve(l.detail.result)}),c.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 d=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(d)}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=>{c.add(async()=>this.queryProvider(e,l.detail,t),{provider:l.detail}).catch(d=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,d)})};this.addEventListener("provider",u),Promise.all([...this.providers].map(async l=>c.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 p=()=>{i.reject(new W(t.signal?.reason??"Session aborted")),c.abort()};t.signal?.addEventListener("abort",p);try{return await i.promise}finally{this.removeEventListener("provider",u),t.signal?.removeEventListener("abort",p),c.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 c=await this.convertToProvider(s,n);if(n.signal?.aborted===!0)break;if(c!=null&&!this.hasProvider(c)&&(this.log("found %d/%d new providers",i,this.maxProviders),this.providers.push(c),this.safeDispatchEvent("provider",{detail:c}),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 Yt(`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 Gn=class{blockstore;datastore;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??io(),this.log=this.logger.forComponent("helia"),this.getHasher=ms(e.hashers,e.loadHasher),this.getCodec=ps(e.codecs,e.loadCodec),this.dns=e.dns??Do(),this.metrics=e.metrics;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,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[yr]!=null&&i.push(o[yr]),o[wr]!=null&&i.push(o[wr]),i}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new pr(t);this.pins=new Xt(e.datastore,n,this.getCodec),this.blockstore=new or(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await Yi(this.datastore),await le(this.blockstore,this.datastore,this.routing)}async stop(){await fe(this.blockstore,this.datastore,this.routing)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await Uo(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 b("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new b("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Ss(Ku);})();
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