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