@helia/utils 1.1.0-07e0bc0 → 1.1.0-1c8583c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
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 Ts=Object.create;var gt=Object.defineProperty;var Is=Object.getOwnPropertyDescriptor;var Ls=Object.getOwnPropertyNames;var Ps=Object.getPrototypeOf,Ns=Object.prototype.hasOwnProperty;var yt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),U=(r,e)=>{for(var t in e)gt(r,t,{get:e[t],enumerable:!0})},to=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ls(e))!Ns.call(r,o)&&o!==t&&gt(r,o,{get:()=>e[o],enumerable:!(n=Is(e,o))||n.enumerable});return r};var Cr=(r,e,t)=>(t=r!=null?Ts(Ps(r)):{},to(e||!r||!r.__esModule?gt(t,"default",{value:r,enumerable:!0}):t,r)),Ds=r=>to(gt({},"__esModule",{value:!0}),r);var ho=yt((Af,$r)=>{"use strict";var da=Object.prototype.hasOwnProperty,M="~";function Qe(){}Object.create&&(Qe.prototype=Object.create(null),new Qe().__proto__||(M=!1));function ha(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function lo(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new ha(t,n||r,o),s=M?M+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 kt(r,e){--r._eventsCount===0?r._events=new Qe:delete r._events[e]}function z(){this._events=new Qe,this._eventsCount=0}z.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)da.call(t,n)&&e.push(M?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};z.prototype.listeners=function(e){var t=M?M+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};z.prototype.listenerCount=function(e){var t=M?M+e:e,n=this._events[t];return n?n.fn?1:n.length:0};z.prototype.emit=function(e,t,n,o,i,s){var c=M?M+e:e;if(!this._events[c])return!1;var f=this._events[c],p=arguments.length,l,d;if(f.fn){switch(f.once&&this.removeListener(e,f.fn,void 0,!0),p){case 1:return f.fn.call(f.context),!0;case 2:return f.fn.call(f.context,t),!0;case 3:return f.fn.call(f.context,t,n),!0;case 4:return f.fn.call(f.context,t,n,o),!0;case 5:return f.fn.call(f.context,t,n,o,i),!0;case 6:return f.fn.call(f.context,t,n,o,i,s),!0}for(d=1,l=new Array(p-1);d<p;d++)l[d-1]=arguments[d];f.fn.apply(f.context,l)}else{var S=f.length,a;for(d=0;d<S;d++)switch(f[d].once&&this.removeListener(e,f[d].fn,void 0,!0),p){case 1:f[d].fn.call(f[d].context);break;case 2:f[d].fn.call(f[d].context,t);break;case 3:f[d].fn.call(f[d].context,t,n);break;case 4:f[d].fn.call(f[d].context,t,n,o);break;default:if(!l)for(a=1,l=new Array(p-1);a<p;a++)l[a-1]=arguments[a];f[d].fn.apply(f[d].context,l)}}return!0};z.prototype.on=function(e,t,n){return lo(this,e,t,n,!1)};z.prototype.once=function(e,t,n){return lo(this,e,t,n,!0)};z.prototype.removeListener=function(e,t,n,o){var i=M?M+e:e;if(!this._events[i])return this;if(!t)return kt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&kt(this,i);else{for(var c=0,f=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||n&&s[c].context!==n)&&f.push(s[c]);f.length?this._events[i]=f.length===1?f[0]:f:kt(this,i)}return this};z.prototype.removeAllListeners=function(e){var t;return e?(t=M?M+e:e,this._events[t]&&kt(this,t)):(this._events=new Qe,this._eventsCount=0),this};z.prototype.off=z.prototype.removeListener;z.prototype.addListener=z.prototype.on;z.prefixed=M;z.EventEmitter=z;typeof $r<"u"&&($r.exports=z)});var Bo=yt((Dl,Uo)=>{Uo.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 _s=yt((ft,_r)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(a){if(!Array.isArray(a)&&!ArrayBuffer.isView(a))return!1;for(var h=0;h<a.length;h++)if(!Number.isInteger(a[h])||a[h]<0||a[h]>255)return!1;return!0}function o(a,h){return(a&65535)*h+(((a>>>16)*h&65535)<<16)}function i(a,h){return a<<h|a>>>32-h}function s(a){return a^=a>>>16,a=o(a,2246822507),a^=a>>>13,a=o(a,3266489909),a^=a>>>16,a}function c(a,h){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var g=[0,0,0,0];return g[3]+=a[3]+h[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=a[2]+h[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=a[1]+h[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=a[0]+h[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function f(a,h){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var g=[0,0,0,0];return g[3]+=a[3]*h[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=a[2]*h[3],g[1]+=g[2]>>>16,g[2]&=65535,g[2]+=a[3]*h[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=a[1]*h[3],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=a[2]*h[2],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=a[3]*h[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=a[0]*h[3]+a[1]*h[2]+a[2]*h[1]+a[3]*h[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function p(a,h){return h%=64,h===32?[a[1],a[0]]:h<32?[a[0]<<h|a[1]>>>32-h,a[1]<<h|a[0]>>>32-h]:(h-=32,[a[1]<<h|a[0]>>>32-h,a[0]<<h|a[1]>>>32-h])}function l(a,h){return h%=64,h===0?a:h<32?[a[0]<<h|a[1]>>>32-h,a[1]<<h]:[a[1]<<h-32,0]}function d(a,h){return[a[0]^h[0],a[1]^h[1]]}function S(a){return a=d(a,[0,a[0]>>>1]),a=f(a,[4283543511,3981806797]),a=d(a,[0,a[0]>>>1]),a=f(a,[3301882366,444984403]),a=d(a,[0,a[0]>>>1]),a}t.x86.hash32=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%4,k=a.length-g,y=h,w=0,b=3432918353,E=461845907,C=0;C<k;C=C+4)w=a[C]|a[C+1]<<8|a[C+2]<<16|a[C+3]<<24,w=o(w,b),w=i(w,15),w=o(w,E),y^=w,y=i(y,13),y=o(y,5)+3864292196;switch(w=0,g){case 3:w^=a[C+2]<<16;case 2:w^=a[C+1]<<8;case 1:w^=a[C],w=o(w,b),w=i(w,15),w=o(w,E),y^=w}return y^=a.length,y=s(y),y>>>0},t.x86.hash128=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%16,k=a.length-g,y=h,w=h,b=h,E=h,C=0,A=0,_=0,I=0,Q=597399067,ht=2869860233,pt=951274213,mt=2716044179,T=0;T<k;T=T+16)C=a[T]|a[T+1]<<8|a[T+2]<<16|a[T+3]<<24,A=a[T+4]|a[T+5]<<8|a[T+6]<<16|a[T+7]<<24,_=a[T+8]|a[T+9]<<8|a[T+10]<<16|a[T+11]<<24,I=a[T+12]|a[T+13]<<8|a[T+14]<<16|a[T+15]<<24,C=o(C,Q),C=i(C,15),C=o(C,ht),y^=C,y=i(y,19),y+=w,y=o(y,5)+1444728091,A=o(A,ht),A=i(A,16),A=o(A,pt),w^=A,w=i(w,17),w+=b,w=o(w,5)+197830471,_=o(_,pt),_=i(_,17),_=o(_,mt),b^=_,b=i(b,15),b+=E,b=o(b,5)+2530024501,I=o(I,mt),I=i(I,18),I=o(I,Q),E^=I,E=i(E,13),E+=y,E=o(E,5)+850148119;switch(C=0,A=0,_=0,I=0,g){case 15:I^=a[T+14]<<16;case 14:I^=a[T+13]<<8;case 13:I^=a[T+12],I=o(I,mt),I=i(I,18),I=o(I,Q),E^=I;case 12:_^=a[T+11]<<24;case 11:_^=a[T+10]<<16;case 10:_^=a[T+9]<<8;case 9:_^=a[T+8],_=o(_,pt),_=i(_,17),_=o(_,mt),b^=_;case 8:A^=a[T+7]<<24;case 7:A^=a[T+6]<<16;case 6:A^=a[T+5]<<8;case 5:A^=a[T+4],A=o(A,ht),A=i(A,16),A=o(A,pt),w^=A;case 4:C^=a[T+3]<<24;case 3:C^=a[T+2]<<16;case 2:C^=a[T+1]<<8;case 1:C^=a[T],C=o(C,Q),C=i(C,15),C=o(C,ht),y^=C}return y^=a.length,w^=a.length,b^=a.length,E^=a.length,y+=w,y+=b,y+=E,w+=y,b+=y,E+=y,y=s(y),w=s(w),b=s(b),E=s(E),y+=w,y+=b,y+=E,w+=y,b+=y,E+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(E>>>0).toString(16)).slice(-8)},t.x64.hash128=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%16,k=a.length-g,y=[0,h],w=[0,h],b=[0,0],E=[0,0],C=[2277735313,289559509],A=[1291169091,658871167],_=0;_<k;_=_+16)b=[a[_+4]|a[_+5]<<8|a[_+6]<<16|a[_+7]<<24,a[_]|a[_+1]<<8|a[_+2]<<16|a[_+3]<<24],E=[a[_+12]|a[_+13]<<8|a[_+14]<<16|a[_+15]<<24,a[_+8]|a[_+9]<<8|a[_+10]<<16|a[_+11]<<24],b=f(b,C),b=p(b,31),b=f(b,A),y=d(y,b),y=p(y,27),y=c(y,w),y=c(f(y,[0,5]),[0,1390208809]),E=f(E,A),E=p(E,33),E=f(E,C),w=d(w,E),w=p(w,31),w=c(w,y),w=c(f(w,[0,5]),[0,944331445]);switch(b=[0,0],E=[0,0],g){case 15:E=d(E,l([0,a[_+14]],48));case 14:E=d(E,l([0,a[_+13]],40));case 13:E=d(E,l([0,a[_+12]],32));case 12:E=d(E,l([0,a[_+11]],24));case 11:E=d(E,l([0,a[_+10]],16));case 10:E=d(E,l([0,a[_+9]],8));case 9:E=d(E,[0,a[_+8]]),E=f(E,A),E=p(E,33),E=f(E,C),w=d(w,E);case 8:b=d(b,l([0,a[_+7]],56));case 7:b=d(b,l([0,a[_+6]],48));case 6:b=d(b,l([0,a[_+5]],40));case 5:b=d(b,l([0,a[_+4]],32));case 4:b=d(b,l([0,a[_+3]],24));case 3:b=d(b,l([0,a[_+2]],16));case 2:b=d(b,l([0,a[_+1]],8));case 1:b=d(b,[0,a[_]]),b=f(b,C),b=p(b,31),b=f(b,A),y=d(y,b)}return y=d(y,[0,a.length]),w=d(w,[0,a.length]),y=c(y,w),w=c(w,y),y=S(y),w=S(w),y=c(y,w),w=c(w,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof ft<"u"?(typeof _r<"u"&&_r.exports&&(ft=_r.exports=t),ft.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(ft)});var ks=yt((nm,vs)=>{vs.exports=_s()});var Qu={};U(Qu,{AbstractSession:()=>kr,Helia:()=>eo});var Sr=Symbol.for("@libp2p/content-routing");var Ar=Symbol.for("@libp2p/peer-routing");var ie=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var wt=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var xt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var bt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var F=(r,...e)=>{try{[...e]}catch{}};var Ne=class extends EventTarget{#e=new Map;constructor(){super(),F(1/0,this)}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 ro(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)ro(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 pe(...r){let e=[];for(let t of r)ro(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 Dr={};U(Dr,{base32:()=>ge,base32hex:()=>qs,base32hexpad:()=>Vs,base32hexpadupper:()=>Hs,base32hexupper:()=>js,base32pad:()=>Rs,base32padupper:()=>Os,base32upper:()=>Ms,base32z:()=>Ks});var of=new Uint8Array(0);function no(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 oo(r){return new TextEncoder().encode(r)}function io(r){return new TextDecoder().decode(r)}function Us(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,f=r.charAt(0),p=Math.log(c)/Math.log(256),l=Math.log(256)/Math.log(c);function d(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var g=0,k=0,y=0,w=h.length;y!==w&&h[y]===0;)y++,g++;for(var b=(w-y)*l+1>>>0,E=new Uint8Array(b);y!==w;){for(var C=h[y],A=0,_=b-1;(C!==0||A<k)&&_!==-1;_--,A++)C+=256*E[_]>>>0,E[_]=C%c>>>0,C=C/c>>>0;if(C!==0)throw new Error("Non-zero carry");k=A,y++}for(var I=b-k;I!==b&&E[I]===0;)I++;for(var Q=f.repeat(g);I<b;++I)Q+=r.charAt(E[I]);return Q}function S(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==" "){for(var k=0,y=0;h[g]===f;)k++,g++;for(var w=(h.length-g)*p+1>>>0,b=new Uint8Array(w);h[g];){var E=t[h.charCodeAt(g)];if(E===255)return;for(var C=0,A=w-1;(E!==0||C<y)&&A!==-1;A--,C++)E+=c*b[A]>>>0,b[A]=E%256>>>0,E=E/256>>>0;if(E!==0)throw new Error("Non-zero carry");y=C,g++}if(h[g]!==" "){for(var _=w-y;_!==w&&b[_]===0;)_++;for(var I=new Uint8Array(k+(w-_)),Q=k;_!==w;)I[Q++]=b[_++];return I}}}function a(h){var g=S(h);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:S,decode:a}}var Bs=Us,Fs=Bs,so=Fs;var Ir=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")}},Lr=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 ao(this,e)}},Pr=class{decoders;constructor(e){this.decoders=e}or(e){return ao(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 ao(r,e){return new Pr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Nr=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 Ir(e,t,n),this.decoder=new Lr(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function De({name:r,prefix:e,encode:t,decode:n}){return new Nr(r,e,t,n)}function me({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=so(t,r);return De({prefix:e,name:r,encode:n,decode:i=>J(o(i))})}function $s(r,e,t,n){let o={};for(let l=0;l<e.length;++l)o[e[l]]=l;let i=r.length;for(;r[i-1]==="=";)--i;let s=new Uint8Array(i*t/8|0),c=0,f=0,p=0;for(let l=0;l<i;++l){let d=o[r[l]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<t|d,c+=t,c>=8&&(c-=8,s[p++]=255&f>>c)}if(c>=t||255&f<<8-c)throw new SyntaxError("Unexpected end of data");return s}function zs(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let f=0;f<r.length;++f)for(c=c<<8|r[f],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;)i+="=";return i}function D({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return De({prefix:e,name:r,encode(o){return zs(o,n,t)},decode(o){return $s(o,n,t,r)}})}var ge=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ms=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Rs=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Os=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),qs=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),js=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Vs=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Hs=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ks=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ur={};U(Ur,{base58btc:()=>K,base58flickr:()=>Gs});var K=me({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Gs=me({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Br={};U(Br,{base64:()=>ye,base64pad:()=>Ws,base64url:()=>Qs,base64urlpad:()=>Js});var ye=D({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ws=D({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Qs=D({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Js=D({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Xs(r,e){try{if(typeof r=="string"&&r.length>0)return Ys(r);if(typeof r=="number"&&isFinite(r))return e?.long?ea(r):Zs(r);throw new Error("Value is not a string or number.")}catch(t){let n=ta(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Ys(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 _t=Xs;function Zs(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 ea(r){let e=Math.abs(r);return e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function ta(r){return typeof r=="object"&&r!==null&&"message"in r}function Fr(r){t.debug=t,t.default=t,t.coerce=f,t.disable=i,t.enable=o,t.enabled=s,t.humanize=_t,t.destroy=p,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let d=0;for(let S=0;S<l.length;S++)d=(d<<5)-d+l.charCodeAt(S),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(l){let d,S=null,a,h;function g(...k){if(!g.enabled)return;let y=g,w=Number(new Date),b=w-(d||w);y.diff=b,y.prev=d,y.curr=w,d=w,k[0]=t.coerce(k[0]),typeof k[0]!="string"&&k.unshift("%O");let E=0;k[0]=k[0].replace(/%([a-zA-Z%])/g,(A,_)=>{if(A==="%%")return"%";E++;let I=t.formatters[_];if(typeof I=="function"){let Q=k[E];A=I.call(y,Q),k.splice(E,1),E--}return A}),t.formatArgs.call(y,k),(y.log||t.log).apply(y,k)}return g.namespace=l,g.useColors=t.useColors(),g.color=t.selectColor(l),g.extend=n,g.destroy=t.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>S!==null?S:(a!==t.namespaces&&(a=t.namespaces,h=t.enabled(l)),h),set:k=>{S=k}}),typeof t.init=="function"&&t.init(g),g}function n(l,d){let S=t(this.namespace+(typeof d>"u"?":":d)+l);return S.log=this.log,S}function o(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let d,S=(typeof l=="string"?l:"").split(/[\s,]+/),a=S.length;for(d=0;d<a;d++)S[d]&&(l=S[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,S;for(d=0,S=t.skips.length;d<S;d++)if(t.skips[d].test(l))return!1;for(d=0,S=t.names.length;d<S;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 f(l){return l instanceof Error?l.stack??l.message:l}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var vt=ca(),ra=["#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 na(){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 oa(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+_t(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 ia=console.debug??console.log??(()=>{});function sa(r){try{r?vt?.setItem("debug",r):vt?.removeItem("debug")}catch{}}function aa(){let r;try{r=vt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function ca(){try{return localStorage}catch{}}function ua(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var co=Fr({formatArgs:oa,save:sa,load:aa,useColors:na,setupFormatters:ua,colors:ra,storage:vt,log:ia});var R=co;R.formatters.b=r=>r==null?"undefined":K.baseEncode(r);R.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);R.formatters.m=r=>r==null?"undefined":ye.baseEncode(r);R.formatters.p=r=>r==null?"undefined":r.toString();R.formatters.c=r=>r==null?"undefined":r.toString();R.formatters.k=r=>r==null?"undefined":r.toString();R.formatters.a=r=>r==null?"undefined":r.toString();R.formatters.e=r=>r==null?"undefined":uo(r.stack)??uo(r.message)??r.toString();function fa(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 fo(){return{forComponent(r){return la(r)}}}function la(r){let e=fa(`${r}:trace`);return R.enabled(`${r}:trace`)&&R.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=R(`${r}:trace`)),Object.assign(R(r),{error:R(`${r}:error`),trace:e})}function uo(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var P=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var zr=Cr(ho(),1);var Je=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Mr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},po=r=>globalThis.DOMException===void 0?new Mr(r):new DOMException(r),mo=r=>{let e=r.reason===void 0?po("This operation was aborted."):r.reason;return e instanceof Error?e:po(e)};function Xe(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,f=new Promise((p,l)=>{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:S}=e;S.aborted&&l(mo(S));let a=()=>{l(mo(S))};S.addEventListener("abort",a,{once:!0}),r.finally(()=>{S.removeEventListener("abort",a)})}if(t===Number.POSITIVE_INFINITY){r.then(p,l);return}let d=new Je;s=i.setTimeout.call(void 0,()=>{if(n){try{p(n())}catch(S){l(S)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?p():o instanceof Error?l(o):(d.message=o??`Promise timed out after ${t} milliseconds`,l(d))},t),(async()=>{try{p(await r)}catch(S){l(S)}})()}).finally(()=>{f.clear()});return f.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},f}function Rr(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 Ye=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Rr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}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 we=class extends zr.default{#e;#o;#s=0;#h;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ye,...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#x(){return this.#o||this.#s<this.#h}get#b(){return this.#n<this.#u}#E(){this.#n--,this.#f(),this.emit("next")}#_(){this.#w(),this.#y(),this.#c=void 0}get#v(){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}#f(){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.#v;if(this.#x&&this.#b){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.#l()}#l(){for(;this.#f(););}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.#l()}async#k(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return 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=Xe(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#k(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof Je&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#l(),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 Ct(r){let e=[X.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Or={};U(Or,{base10:()=>pa});var pa=me({prefix:"9",name:"base10",alphabet:"0123456789"});var qr={};U(qr,{base16:()=>ma,base16upper:()=>ga});var ma=D({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ga=D({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var jr={};U(jr,{base2:()=>ya});var ya=D({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vr={};U(Vr,{base256emoji:()=>_a});var go=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}"),wa=go.reduce((r,e,t)=>(r[t]=e,r),[]),xa=go.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ba(r){return r.reduce((e,t)=>(e+=wa[t],e),"")}function Ea(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=xa[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var _a=De({prefix:"\u{1F680}",name:"base256emoji",encode:ba,decode:Ea});var Hr={};U(Hr,{base36:()=>se,base36upper:()=>va});var se=me({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),va=me({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Kr={};U(Kr,{base8:()=>ka});var ka=D({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Gr={};U(Gr,{identity:()=>Ca});var Ca=De({prefix:"\0",name:"identity",encode:r=>io(r),decode:r=>oo(r)});var St={};U(St,{code:()=>Wr,decode:()=>La,encode:()=>Ia,name:()=>Ta});var Sa=new TextEncoder,Aa=new TextDecoder,Ta="json",Wr=512;function Ia(r){return Sa.encode(JSON.stringify(r))}function La(r){return JSON.parse(Aa.decode(r))}var At={};U(At,{code:()=>Qr,decode:()=>Da,encode:()=>Na,name:()=>Pa});var Pa="raw",Qr=85;function Na(r){return J(r)}function Da(r){return J(r)}var Xr={};U(Xr,{identity:()=>It});var Ua=xo,yo=128,Ba=127,Fa=~Ba,$a=Math.pow(2,31);function xo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=$a;)e[t++]=r&255|yo,r/=128;for(;r&Fa;)e[t++]=r&255|yo,r>>>=7;return e[t]=r|0,xo.bytes=t-n+1,e}var za=Jr,Ma=128,wo=127;function Jr(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw Jr.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&wo)<<o:(s&wo)*Math.pow(2,o),o+=7}while(s>=Ma);return Jr.bytes=i-n,t}var Ra=Math.pow(2,7),Oa=Math.pow(2,14),qa=Math.pow(2,21),ja=Math.pow(2,28),Va=Math.pow(2,35),Ha=Math.pow(2,42),Ka=Math.pow(2,49),Ga=Math.pow(2,56),Wa=Math.pow(2,63),Qa=function(r){return r<Ra?1:r<Oa?2:r<qa?3:r<ja?4:r<Va?5:r<Ha?6:r<Ka?7:r<Ga?8:r<Wa?9:10},Ja={encode:Ua,decode:za,encodingLength:Qa},Xa=Ja,Ze=Xa;function et(r,e=0){return[Ze.decode(r,e),Ze.decode.bytes]}function Ue(r,e,t=0){return Ze.encode(r,e,t),e}function Be(r){return Ze.encodingLength(r)}function ve(r,e){let t=e.byteLength,n=Be(r),o=n+Be(t),i=new Uint8Array(o+t);return Ue(r,i,0),Ue(t,i,n),i.set(e,o),new Fe(r,t,e,i)}function bo(r){let e=J(r),[t,n]=et(e),[o,i]=et(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Fe(t,o,s,e)}function Eo(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&no(r.bytes,t.bytes)}}var Fe=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var _o=0,Ya="identity",vo=J;function Za(r){return ve(_o,vo(r))}var It={code:_o,name:Ya,encode:vo,digest:Za};var en={};U(en,{sha256:()=>Lt,sha512:()=>Pt});function Zr({name:r,code:e,encode:t}){return new Yr(r,e,t)}var Yr=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?ve(this.code,t):t.then(n=>ve(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Co(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Lt=Zr({name:"sha2-256",code:18,encode:Co("SHA-256")}),Pt=Zr({name:"sha2-512",code:19,encode:Co("SHA-512")});function So(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return tc(t,tn(r),e??K.encoder);default:return rc(t,tn(r),e??ge.encoder)}}var Ao=new WeakMap;function tn(r){let e=Ao.get(r);if(e==null){let t=new Map;return Ao.set(r,t),t}return e}var N=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!==rt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==nc)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=ve(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&&Eo(e.multihash,n.multihash)}toString(e){return So(this,e)}toJSON(){return{"/":So(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??To(n,o,i.bytes))}else if(t[oc]===!0){let{version:n,multihash:o,code:i}=t,s=bo(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!==rt)throw new Error(`Version 0 CID must use dag-pb (code: ${rt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=To(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,rt,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 Fe(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,S]=et(e.subarray(t));return t+=S,d},o=n(),i=rt;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(),f=n(),p=t+f,l=p-s;return{version:o,codec:i,multihashCode:c,digestSize:f,multihashSize:l,size:p}}static parse(e,t){let[n,o]=ec(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 tn(i).set(n,e),i}};function ec(r,e){switch(r[0]){case"Q":{let t=e??K;return[K.prefix,t.decode(`${K.prefix}${r}`)]}case K.prefix:{let t=e??K;return[K.prefix,t.decode(r)]}case ge.prefix:{let t=e??ge;return[ge.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function tc(r,e,t){let{prefix:n}=t;if(n!==K.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 rc(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 rt=112,nc=18;function To(r,e,t){let n=Be(r),o=n+Be(e),i=new Uint8Array(o+t.byteLength);return Ue(r,i,0),Ue(e,i,n),i.set(t,o),i}var oc=Symbol.for("@ipld/js-cid/CID");var rn={...Gr,...jr,...Kr,...Or,...qr,...Dr,...Hr,...Ur,...Br,...Vr},pl={...en,...Xr};function Io(r=0){return new Uint8Array(r)}function Lo(r=0){return new Uint8Array(r)}function No(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Po=No("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),nn=No("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=Lo(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),ic={utf8:Po,"utf-8":Po,hex:rn.base16,latin1:nn,ascii:nn,binary:nn,...rn},Nt=ic;function $e(r,e="utf8"){let t=Nt[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var on=60;function Dt(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??on,data:e.data instanceof Uint8Array?$e(e.data):e.data}))}}var sc=4;function sn(r,e={}){let t=new we({concurrency:e.queryConcurrency??sc});return async(n,o={})=>{let i=new URLSearchParams;i.set("name",n),Ct(o.types).forEach(c=>{i.append("type",X[c])}),o.onProgress?.(new P("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 f=Dt(await c.json());return o.onProgress?.(new P("dns:response",{detail:f})),f},{signal:o.signal});if(s==null)throw new Error("No DNS response received");return s}}function Do(){return[sn("https://cloudflare-dns.com/dns-query"),sn("https://dns.google/resolve")]}var Fo=Cr(Bo(),1);var an=class{lru;constructor(e){this.lru=(0,Fo.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 Dt({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??on)*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 $o(r){return new an(r)}var ac=1e3,Ut=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=$o(e.cacheSize??ac),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["."]=Do())}async query(e,t={}){let n=Ct(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new P("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 f of s){if(t.signal?.aborted===!0)break;try{let p=await f(e,{...t,types:n});for(let l of p.Answer)this.cache.add(e,l);return p}catch(p){c.push(p),t.onProgress?.(new P("dns:error",{detail:p}))}}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 zo(r={}){return new Ut(r)}function cc(r){return r[Symbol.asyncIterator]!=null}function uc(r){if(cc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Mo=uc;function ae(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Bt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},ze=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Bt(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 Bt(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 cn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Ft(r={}){return fc(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 fc(r,e){e=e??{};let t=e.onEnd,n=new ze,o,i,s,c=ae(),f=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((k,y)=>{i=w=>{i=null,n.push(w);try{k(r(n))}catch(b){y(b)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=ae()})}},p=k=>i!=null?i(k):(n.push(k),o),l=k=>(n=new ze,i!=null?i({error:k}):(n.push({error:k}),o)),d=k=>{if(s)return o;if(e?.objectMode!==!0&&k?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return p({done:!1,value:k})},S=k=>s?o:(s=!0,k!=null?l(k):p({done:!0})),a=()=>(n=new ze,S(),{done:!0}),h=k=>(S(k),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:f,return:a,throw:h,push:d,end:S,get readableLength(){return n.size},onEmpty:async k=>{let y=k?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let w,b;y!=null&&(w=new Promise((E,C)=>{b=()=>{C(new cn)},y.addEventListener("abort",b)}));try{await Promise.race([c.promise,w])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},t==null)return o;let g=o;return o={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(k){return g.throw(k),t!=null&&(t(k),t=void 0),{done:!0}},return(){return g.return(),t!=null&&(t(),t=void 0),{done:!0}},push:d,end(k){return g.end(k),t!=null&&(t(k),t=void 0),o},get readableLength(){return g.readableLength},onEmpty:k=>g.onEmpty(k)},o}var un=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 $t(r,e,t,n){let o=new un(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{function c(){t?.removeEventListener("abort",l),r.removeEventListener(e,f),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,p)}let f=d=>{try{if(n?.filter?.(d)===!1)return}catch(S){c(),s(S);return}c(),i(d)},p=d=>{c(),s(d.detail)},l=()=>{c(),s(o)};t?.addEventListener("abort",l),r.addEventListener(e,f),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,p)})}var zt=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Mt=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 Ro(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Mt(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Mt(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Rt=class{deferred;signal;constructor(e){this.signal=e,this.deferred=ae(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ie)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function lc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ot=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=lc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,F(1/0,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 ie),this.cleanup())}async join(e={}){let t=new Rt(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ro(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 ce=class extends Ne{concurrency;maxSize;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!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 zt;let n=new Ot(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 ie)}),this.clear()}async onEmpty(e){this.size!==0&&await $t(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await $t(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await $t(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=Ft({objectMode:!0}),n=f=>{f!=null?this.abort():this.clear(),t.end(f)},o=f=>{f.detail!=null&&t.push(f.detail)},i=f=>{n(f.detail)},s=()=>{n()},c=()=>{n(new ie("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 dc=["string","number","bigint","symbol"],hc=["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 Oo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(dc.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(pc(r))return"Buffer";let t=mc(r);return t||"Object"}function pc(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function mc(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(hc.includes(e))return e}var u=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}};u.uint=new u(0,"uint",!0);u.negint=new u(1,"negint",!0);u.bytes=new u(2,"bytes",!0);u.string=new u(3,"string",!0);u.array=new u(4,"array",!1);u.map=new u(5,"map",!1);u.tag=new u(6,"tag",!1);u.float=new u(7,"float",!0);u.false=new u(7,"false",!0);u.true=new u(7,"true",!0);u.null=new u(7,"null",!0);u.undefined=new u(7,"undefined",!0);u.break=new u(7,"break",!0);var m=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 Me=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",gc=new TextDecoder,yc=new TextEncoder;function qt(r){return Me&&globalThis.Buffer.isBuffer(r)}function nt(r){return r instanceof Uint8Array?qt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Ho=Me?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):jo(r,e,t):(r,e,t)=>t-e>64?gc.decode(r.subarray(e,t)):jo(r,e,t),jt=Me?r=>r.length>64?globalThis.Buffer.from(r):qo(r):r=>r.length>64?yc.encode(r):qo(r),ne=r=>Uint8Array.from(r),Re=Me?(r,e,t)=>qt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Ko=Me?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),nt(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},Go=Me?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Wo(r,e){if(qt(r)&&qt(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 qo(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 jo(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,f,p,l;switch(s){case 1:o<128&&(i=o);break;case 2:c=r[e+1],(c&192)===128&&(l=(o&31)<<6|c&63,l>127&&(i=l));break;case 3:c=r[e+1],f=r[e+2],(c&192)===128&&(f&192)===128&&(l=(o&15)<<12|(c&63)<<6|f&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=r[e+1],f=r[e+2],p=r[e+3],(c&192)===128&&(f&192)===128&&(p&192)===128&&(l=(o&15)<<18|(c&63)<<12|(f&63)<<6|p&63,l>65535&&l<1114112&&(i=l))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return fn(n)}var Vo=4096;function fn(r){let e=r.length;if(e<=Vo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Vo));return t}var wc=256,ot=class{constructor(e=wc){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=Go(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=Re(n,0,this.cursor)}else t=Ko(this.chunks,this.cursor);return e&&this.reset(),t}};var v="CBOR decode error:",ue="CBOR encode error:",it=[];it[23]=1;it[24]=2;it[25]=3;it[26]=5;it[27]=9;function fe(r,e,t){if(r.length-e<t)throw new Error(`${v} not enough data for type`)}var B=[24,256,65536,4294967296,BigInt("18446744073709551616")];function q(r,e,t){fe(r,e,1);let n=r[e];if(t.strict===!0&&n<B[0])throw new Error(`${v} integer encoded in more bytes than necessary (strict decode)`);return n}function j(r,e,t){fe(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<B[1])throw new Error(`${v} integer encoded in more bytes than necessary (strict decode)`);return n}function V(r,e,t){fe(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<B[2])throw new Error(`${v} integer encoded in more bytes than necessary (strict decode)`);return n}function H(r,e,t){fe(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<B[3])throw new Error(`${v} 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(`${v} integers outside of the safe integer range are not supported`)}function Qo(r,e,t,n){return new m(u.uint,q(r,e+1,n),2)}function Jo(r,e,t,n){return new m(u.uint,j(r,e+1,n),3)}function Xo(r,e,t,n){return new m(u.uint,V(r,e+1,n),5)}function Yo(r,e,t,n){return new m(u.uint,H(r,e+1,n),9)}function G(r,e){return $(r,0,e.value)}function $(r,e,t){if(t<B[0]){let n=Number(t);r.push([e|n])}else if(t<B[1]){let n=Number(t);r.push([e|24,n])}else if(t<B[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<B[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<B[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(`${v} encountered BigInt larger than allowable range`)}}G.encodedSize=function(e){return $.encodedSize(e.value)};$.encodedSize=function(e){return e<B[0]?1:e<B[1]?2:e<B[2]?3:e<B[3]?5:9};G.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Zo(r,e,t,n){return new m(u.negint,-1-q(r,e+1,n),2)}function ei(r,e,t,n){return new m(u.negint,-1-j(r,e+1,n),3)}function ti(r,e,t,n){return new m(u.negint,-1-V(r,e+1,n),5)}var ln=BigInt(-1),ri=BigInt(1);function ni(r,e,t,n){let o=H(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new m(u.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${v} integers outside of the safe integer range are not supported`);return new m(u.negint,ln-BigInt(o),9)}function Vt(r,e){let t=e.value,n=typeof t=="bigint"?t*ln-ri:t*-1-1;$(r,e.type.majorEncoded,n)}Vt.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*ln-ri:t*-1-1;return n<B[0]?1:n<B[1]?2:n<B[2]?3:n<B[3]?5:9};Vt.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function st(r,e,t,n){fe(r,e,t+n);let o=Re(r,e+t,e+t+n);return new m(u.bytes,o,t+n)}function oi(r,e,t,n){return st(r,e,1,t)}function ii(r,e,t,n){return st(r,e,2,q(r,e+1,n))}function si(r,e,t,n){return st(r,e,3,j(r,e+1,n))}function ai(r,e,t,n){return st(r,e,5,V(r,e+1,n))}function ci(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${v} 64-bit integer bytes lengths not supported`);return st(r,e,9,o)}function Ht(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===u.string?jt(r.value):r.value),r.encodedBytes}function Oe(r,e){let t=Ht(e);$(r,e.type.majorEncoded,t.length),r.push(t)}Oe.encodedSize=function(e){let t=Ht(e);return $.encodedSize(t.length)+t.length};Oe.compareTokens=function(e,t){return bc(Ht(e),Ht(t))};function bc(r,e){return r.length<e.length?-1:r.length>e.length?1:Wo(r,e)}function at(r,e,t,n,o){let i=t+n;fe(r,e,i);let s=new m(u.string,Ho(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Re(r,e+t,e+i)),s}function ui(r,e,t,n){return at(r,e,1,t,n)}function fi(r,e,t,n){return at(r,e,2,q(r,e+1,n),n)}function li(r,e,t,n){return at(r,e,3,j(r,e+1,n),n)}function di(r,e,t,n){return at(r,e,5,V(r,e+1,n),n)}function hi(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${v} 64-bit integer string lengths not supported`);return at(r,e,9,o,n)}var pi=Oe;function qe(r,e,t,n){return new m(u.array,n,t)}function mi(r,e,t,n){return qe(r,e,1,t)}function gi(r,e,t,n){return qe(r,e,2,q(r,e+1,n))}function yi(r,e,t,n){return qe(r,e,3,j(r,e+1,n))}function wi(r,e,t,n){return qe(r,e,5,V(r,e+1,n))}function xi(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${v} 64-bit integer array lengths not supported`);return qe(r,e,9,o)}function bi(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${v} indefinite length items not allowed`);return qe(r,e,1,1/0)}function Kt(r,e){$(r,u.array.majorEncoded,e.value)}Kt.compareTokens=G.compareTokens;Kt.encodedSize=function(e){return $.encodedSize(e.value)};function je(r,e,t,n){return new m(u.map,n,t)}function Ei(r,e,t,n){return je(r,e,1,t)}function _i(r,e,t,n){return je(r,e,2,q(r,e+1,n))}function vi(r,e,t,n){return je(r,e,3,j(r,e+1,n))}function ki(r,e,t,n){return je(r,e,5,V(r,e+1,n))}function Ci(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${v} 64-bit integer map lengths not supported`);return je(r,e,9,o)}function Si(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${v} indefinite length items not allowed`);return je(r,e,1,1/0)}function Gt(r,e){$(r,u.map.majorEncoded,e.value)}Gt.compareTokens=G.compareTokens;Gt.encodedSize=function(e){return $.encodedSize(e.value)};function Ai(r,e,t,n){return new m(u.tag,t,1)}function Ti(r,e,t,n){return new m(u.tag,q(r,e+1,n),2)}function Ii(r,e,t,n){return new m(u.tag,j(r,e+1,n),3)}function Li(r,e,t,n){return new m(u.tag,V(r,e+1,n),5)}function Pi(r,e,t,n){return new m(u.tag,H(r,e+1,n),9)}function Wt(r,e){$(r,u.tag.majorEncoded,e.value)}Wt.compareTokens=G.compareTokens;Wt.encodedSize=function(e){return $.encodedSize(e.value)};var Sc=20,Ac=21,Tc=22,Ic=23;function Ni(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${v} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new m(u.null,null,1):new m(u.undefined,void 0,1)}function Di(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${v} indefinite length items not allowed`);return new m(u.break,void 0,1)}function dn(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${v} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${v} Infinity values are not supported`)}return new m(u.float,r,e)}function Ui(r,e,t,n){return dn(hn(r,e+1),3,n)}function Bi(r,e,t,n){return dn(pn(r,e+1),5,n)}function Fi(r,e,t,n){return dn(Ri(r,e+1),9,n)}function Qt(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|Sc]);else if(n===!0)r.push([u.float.majorEncoded|Ac]);else if(n===null)r.push([u.float.majorEncoded|Tc]);else if(n===void 0)r.push([u.float.majorEncoded|Ic]);else{let o,i=!1;(!t||t.float64!==!0)&&(zi(n),o=hn(Y,1),n===o||Number.isNaN(n)?(Y[0]=249,r.push(Y.slice(0,3)),i=!0):(Mi(n),o=pn(Y,1),n===o&&(Y[0]=250,r.push(Y.slice(0,5)),i=!0))),i||(Lc(n),o=Ri(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){zi(n);let o=hn(Y,1);if(n===o||Number.isNaN(n))return 3;if(Mi(n),o=pn(Y,1),n===o)return 5}return 9};var $i=new ArrayBuffer(9),W=new DataView($i,1),Y=new Uint8Array($i,0);function zi(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 hn(r,e){if(r.length-e<2)throw new Error(`${v} 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 Mi(r){W.setFloat32(0,r,!1)}function pn(r,e){if(r.length-e<4)throw new Error(`${v} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Lc(r){W.setFloat64(0,r,!1)}function Ri(r,e){if(r.length-e<8)throw new Error(`${v} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Qt.compareTokens=G.compareTokens;function L(r,e,t){throw new Error(`${v} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Jt(r){return()=>{throw new Error(`${v} ${r}`)}}var x=[];for(let r=0;r<=23;r++)x[r]=L;x[24]=Qo;x[25]=Jo;x[26]=Xo;x[27]=Yo;x[28]=L;x[29]=L;x[30]=L;x[31]=L;for(let r=32;r<=55;r++)x[r]=L;x[56]=Zo;x[57]=ei;x[58]=ti;x[59]=ni;x[60]=L;x[61]=L;x[62]=L;x[63]=L;for(let r=64;r<=87;r++)x[r]=oi;x[88]=ii;x[89]=si;x[90]=ai;x[91]=ci;x[92]=L;x[93]=L;x[94]=L;x[95]=Jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)x[r]=ui;x[120]=fi;x[121]=li;x[122]=di;x[123]=hi;x[124]=L;x[125]=L;x[126]=L;x[127]=Jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)x[r]=mi;x[152]=gi;x[153]=yi;x[154]=wi;x[155]=xi;x[156]=L;x[157]=L;x[158]=L;x[159]=bi;for(let r=160;r<=183;r++)x[r]=Ei;x[184]=_i;x[185]=vi;x[186]=ki;x[187]=Ci;x[188]=L;x[189]=L;x[190]=L;x[191]=Si;for(let r=192;r<=215;r++)x[r]=Ai;x[216]=Ti;x[217]=Ii;x[218]=Li;x[219]=Pi;x[220]=L;x[221]=L;x[222]=L;x[223]=L;for(let r=224;r<=243;r++)x[r]=Jt("simple values are not supported");x[244]=L;x[245]=L;x[246]=L;x[247]=Ni;x[248]=Jt("simple values are not supported");x[249]=Ui;x[250]=Bi;x[251]=Fi;x[252]=L;x[253]=L;x[254]=L;x[255]=Di;var Z=[];for(let r=0;r<24;r++)Z[r]=new m(u.uint,r,1);for(let r=-1;r>=-24;r--)Z[31-r]=new m(u.negint,r,1);Z[64]=new m(u.bytes,new Uint8Array(0),1);Z[96]=new m(u.string,"",1);Z[128]=new m(u.array,0,1);Z[160]=new m(u.map,0,1);Z[244]=new m(u.false,!1,1);Z[245]=new m(u.true,!0,1);Z[246]=new m(u.null,null,1);function Oi(r){switch(r.type){case u.false:return ne([244]);case u.true:return ne([245]);case u.null:return ne([246]);case u.bytes:return r.value.length?void 0:ne([64]);case u.string:return r.value===""?ne([96]):void 0;case u.array:return r.value===0?ne([128]):void 0;case u.map:return r.value===0?ne([160]):void 0;case u.uint:return r.value<24?ne([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return ne([31-Number(r.value)])}}var Nc={float64:!1,mapSorter:Bc,quickEncodeToken:Oi};function Dc(){let r=[];return r[u.uint.major]=G,r[u.negint.major]=Vt,r[u.bytes.major]=Oe,r[u.string.major]=pi,r[u.array.major]=Kt,r[u.map.major]=Gt,r[u.tag.major]=Wt,r[u.float.major]=Qt,r}var qi=Dc(),mn=new ot,Yt=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(`${ue} object contains circular references`);return new r(t,e)}},xe={null:new m(u.null,null),undefined:new m(u.undefined,void 0),true:new m(u.true,!0),false:new m(u.false,!1),emptyArray:new m(u.array,0),emptyMap:new m(u.map,0)},be={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new m(u.float,r):r>=0?new m(u.uint,r):new m(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new m(u.uint,r):new m(u.negint,r)},Uint8Array(r,e,t,n){return new m(u.bytes,r)},string(r,e,t,n){return new m(u.string,r)},boolean(r,e,t,n){return r?xe.true:xe.false},null(r,e,t,n){return xe.null},undefined(r,e,t,n){return xe.undefined},ArrayBuffer(r,e,t,n){return new m(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new m(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[xe.emptyArray,new m(u.break)]:xe.emptyArray;n=Yt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Xt(s,t,n);return t.addBreakTokens?[new m(u.array,r.length),o,new m(u.break)]:[new m(u.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?[xe.emptyMap,new m(u.break)]:xe.emptyMap;n=Yt.createCheck(n,r);let c=[],f=0;for(let p of i)c[f++]=[Xt(p,t,n),Xt(o?r.get(p):r[p],t,n)];return Uc(c,t),t.addBreakTokens?[new m(u.map,s),c,new m(u.break)]:[new m(u.map,s),c]}};be.Map=be.Object;be.Buffer=be.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))be[`${r}Array`]=be.DataView;function Xt(r,e={},t){let n=Oo(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||be[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=be[n];if(!i)throw new Error(`${ue} unsupported type: ${n}`);return i(r,n,e,t)}function Uc(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Bc(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=qi[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function ji(r,e,t,n){if(Array.isArray(e))for(let o of e)ji(r,o,t,n);else t[e.type.major](r,e,n)}function gn(r,e,t){let n=Xt(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 ot(s);if(i(c,n,t),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return nt(c.chunks[0])}}return mn.reset(),ji(mn,n,e,t),mn.toBytes(!0)}function Ce(r,e){return e=Object.assign({},Nc,e),gn(r,qi,e)}var Fc={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Zt=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=x[e];if(!n)throw new Error(`${v} 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}},ct=Symbol.for("DONE"),er=Symbol.for("BREAK");function $c(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=Ve(e,t);if(i===er){if(r.value===1/0)break;throw new Error(`${v} got unexpected break to lengthed array`)}if(i===ct)throw new Error(`${v} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function zc(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=Ve(e,t);if(c===er){if(r.value===1/0)break;throw new Error(`${v} got unexpected break to lengthed map`)}if(c===ct)throw new Error(`${v} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${v} non-string keys not supported (got ${typeof c})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${v} found repeat map key "${c}"`);let f=Ve(e,t);if(f===ct)throw new Error(`${v} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(c,f):o[c]=f}return n?i:o}function Ve(r,e){if(r.done())return ct;let t=r.next();if(t.type===u.break)return er;if(t.type.terminal)return t.value;if(t.type===u.array)return $c(t,r,e);if(t.type===u.map)return zc(t,r,e);if(t.type===u.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Ve(r,e);return e.tags[t.value](n)}throw new Error(`${v} tag not supported (${t.value})`)}throw new Error("unsupported")}function yn(r,e){if(!(r instanceof Uint8Array))throw new Error(`${v} data to decode must be a Uint8Array`);e=Object.assign({},Fc,e);let t=e.tokenizer||new Zt(r,e),n=Ve(t,e);if(n===ct)throw new Error(`${v} did not find any content to decode`);if(n===er)throw new Error(`${v} got unexpected break`);return[n,r.subarray(t.pos())]}function ee(r,e){let[t,n]=yn(r,e);if(n.length>0)throw new Error(`${v} too many terminals, data makes no sense`);return t}function O(r,e="utf8"){let t=Nt[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var le="/",Hi=new TextEncoder().encode(le),tr=Hi[0],de=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=O(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]!==tr)throw new Error("Invalid key")}toString(e="utf8"){return $e(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(le))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Hi),this._buf[0]!==tr){let e=new Uint8Array(this._buf.byteLength+1);e.fill(tr,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===tr;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(le).slice(1)}type(){return Mc(this.baseNamespace())}name(){return Rc(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(le)||(e+=le),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(le):new r(e.slice(0,-1).join(le))}child(e){return this.toString()===le?e:e.toString()===le?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Oc(e.map(t=>t.namespaces()))])}};function Mc(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Rc(r){let e=r.split(":");return e[e.length-1]}function Oc(r){return[].concat(...r)}function rr({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*qc(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],i=N.asCID(n);i!=null?yield[o.join("/"),i]:typeof n=="object"&&(yield*wn(n,o))}else{let t=N.asCID(e);t!=null?yield[r.join("/"),t]:yield*wn(e,r)}}function*wn(r,e){if(r==null||r instanceof Uint8Array)return;let t=N.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let i=[...e,n];yield*qc(i,o)}}function*jc(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&N.asCID(n)==null&&(yield*xn(n,o))}else yield*xn(e,r)}function*xn(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"&&N.asCID(n)==null&&(yield*jc(o,n))}}function Vc(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=N.asCID(t);if(i!=null)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:t}}var bn=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:rr(),bytes:rr(),value:rr(),asBlock:rr()})}links(){return wn(this.value,[])}tree(){return xn(this.value,[])}get(e="/"){return Vc(this.value,e.split("/").filter(Boolean))}};function Ki({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 bn({cid:e,bytes:r,value:o})}function Se(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 Qi="/pin/",Gi="/pinned-block/",En=se,Wi=1;function nr(r){return r.version===0&&(r=r.toV1()),new de(`${Qi}${r.toString(En)}`)}var or=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=nr(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 ce({concurrency:Wi});for await(let c of this.#e(e,i,{...t,depth:o}))await this.#o(c,f=>f.pinnedBy.find(p=>Se(p,e.bytes))!=null?!1:(f.pinCount++,f.pinnedBy.push(e.bytes),!0),t),yield c;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,Ce(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=Ki({bytes:i,cid:e,codec:o});yield e;for await(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 de(`${Gi}${En.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,Ce(i),n),n.onProgress?.(new P("helia:pin:add",e))}}async*rm(e,t={}){let n=nr(e),o=await this.datastore.get(n,t),i=ee(o);await this.datastore.delete(n,t);let s=new ce({concurrency:Wi});for await(let c of this.#e(e,s,{...t,depth:i.depth}))await this.#o(c,f=>(f.pinCount--,f.pinnedBy=f.pinnedBy.filter(p=>Se(p,e.bytes)),!0),{...t,depth:i.depth}),yield c}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Qi+(e.cid!=null?`${e.cid.toString(se)}`:"")},e)){let o=N.parse(t.toString().substring(5),se),i=ee(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new de(`${Gi}${En.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=nr(e),o=await this.datastore.get(n,t);return ee(o)}async setMetadata(e,t,n){let o=nr(e),i=await this.datastore.get(o,n),s=ee(i);s.metadata=t??{},await this.datastore.put(o,Ce(s),n)}};var ir=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},Ae=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},sr=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},ar=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var cr=class extends ce{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};function Hc(r){return r[Symbol.asyncIterator]!=null}function Kc(...r){let e=[];for(let t of r)Hc(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=Ft({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var ur=Kc;var Gc=5,fr=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Gc}async start(){await he(...this.routers)}async stop(){await pe(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");let n=new cr({concurrency:this.providerLookupConcurrency});n.addEventListener("error",()=>{});for await(let o of ur(n.toGenerator(),...Te(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 Ae("No content routers available");await Promise.all(Te(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Te(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Te(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Te(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new Ae("No peer routers available");let n=this,o=ur(...Te(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 xt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Ae("No peer routers available");for await(let n of ur(...Te(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Te(r,e){return r.filter(t=>t[e]!=null)}var Ee={},He=r=>{r.addEventListener("message",e=>{He.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{He.dispatchEvent("message",r,e)})};He.addEventListener=(r,e)=>{Ee[r]==null&&(Ee[r]=[]),Ee[r].push(e)};He.removeEventListener=(r,e)=>{Ee[r]!=null&&(Ee[r]=Ee[r].filter(t=>t===e))};He.dispatchEvent=function(r,e,t){Ee[r]!=null&&Ee[r].forEach(n=>n(e,t))};var _n=He;var vn="lock:worker:request-read",kn="lock:worker:release-read",Cn="lock:master:grant-read",Sn="lock:worker:request-write",An="lock:worker:release-write",Tn="lock:master:grant-write";var Ji=(r=21)=>Math.random().toString().substring(2);var Xi=(r,e,t,n,o)=>(i,s)=>{if(s.data.type!==t)return;let c={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:c.name,handler:async()=>{i.postMessage({type:o,name:c.name,identifier:c.identifier}),await new Promise(f=>{let p=l=>{if(l?.data==null)return;let d={type:l.data.type,name:l.data.name,identifier:l.data.identifier};d.type===n&&d.identifier===c.identifier&&(i.removeEventListener("message",p),f())};i.addEventListener("message",p)})}}}))},Yi=(r,e,t,n)=>async()=>{let o=Ji();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(i=>{let s=c=>{if(c?.data==null)return;let f={type:c.data.type,identifier:c.data.identifier};f.type===t&&f.identifier===o&&(globalThis.removeEventListener("message",s),i(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",s)})},Wc={singleProcess:!1},Zi=r=>{if(r=Object.assign({},Wc,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return _n.addEventListener("message",Xi(t,"requestReadLock",vn,kn,Cn)),_n.addEventListener("message",Xi(t,"requestWriteLock",Sn,An,Tn)),t}return{isWorker:!0,readLock:t=>Yi(t,vn,Cn,kn),writeLock:t=>Yi(t,Sn,Tn,An)}};var Ie={},_e;async function In(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Xe((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Qc=(r,e)=>{if(_e.isWorker===!0)return{readLock:_e.readLock(r,e),writeLock:_e.writeLock(r,e)};let t=new we({concurrency:1}),n;return{async readLock(){if(n!=null)return In(n,e);n=new we({concurrency:e.concurrency,autoStart:!1});let o=n,i=In(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),i},async writeLock(){return n=null,In(t,e)}}},Jc={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Ln(r){let e=Object.assign({},Jc,r);return _e==null&&(_e=Zi(e),_e.isWorker!==!0&&(_e.addEventListener("requestReadLock",t=>{Ie[t.data.name]!=null&&Ie[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),_e.addEventListener("requestWriteLock",async t=>{Ie[t.data.name]!=null&&Ie[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Ie[e.name]==null&&(Ie[e.name]=Qc(e.name,e)),Ie[e.name]}var lr=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Ln({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await pe(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 Pn=new de("/version"),es=1;async function ts(r){if(!await r.has(Pn)){await r.put(Pn,O(`${es}`));return}let e=await r.get(Pn),t=$e(e);if(parseInt(t,10)!==es)throw new Error("Unknown datastore version, a datastore migration may be required")}var Un={};U(Un,{code:()=>Dn,decode:()=>iu,decodeOptions:()=>ru,encode:()=>ou,encodeOptions:()=>eu,name:()=>nu,toByteView:()=>ns});var rs=42;function ns(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Xc(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=N.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new m(u.tag,rs),new m(u.bytes,t)]}function Yc(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Zc(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 Nn={float64:!0,typeEncoders:{Object:Xc,undefined:Yc,number:Zc}},eu={...Nn,typeEncoders:{...Nn.typeEncoders}};function tu(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return N.decode(r.subarray(1))}var dr={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};dr.tags[rs]=tu;var ru={...dr,tags:dr.tags.slice()},nu="dag-cbor",Dn=113,ou=r=>Ce(r,Nn),iu=r=>ee(ns(r),dr);var On={};U(On,{code:()=>Rn,decode:()=>is,encode:()=>os,format:()=>gu,name:()=>mu,parse:()=>wu,stringify:()=>gu});var Bn=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===u.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===u.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[u.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)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${ue} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=jt(JSON.stringify(t.value));e.push(n.length>32?nt(n):n)}[u.array.major](e,t){this.prefix(e),this.inRecursive.push({type:u.array,elements:0}),e.push([91])}[u.map.major](e,t){this.prefix(e),this.inRecursive.push({type:u.map,elements:0}),e.push([123])}[u.tag.major](e,t){}[u.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===u.array)e.push([93]);else if(s.type===u.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(`${ue} 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 su(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ue} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${ue} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ue} unexpected duplicate map keys, this is not supported`)}var au={addBreakTokens:!0,mapSorter:su};function Fn(r,e){return e=Object.assign({},au,e),gn(r,new Bn,e)}var Ke=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(`${v} 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(`${v} 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 f=this.ch();if(c.includes(f))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 m(u.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(`${v} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${v} 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 m(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new m(s>=0?u.uint:u.negint,s,this._pos-e):new m(s>=0?u.uint:u.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${v} 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 f=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new m(u.string,f,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${v} 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(`${v} 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(`${v} unexpected unicode sequence at position ${this._pos}`);let f,p,l,d;switch(c){case 1:i<128&&(s=i);break;case 2:f=this.data[this._pos+1],(f&192)===128&&(d=(i&31)<<6|f&63,d>127&&(s=d));break;case 3:f=this.data[this._pos+1],p=this.data[this._pos+2],(f&192)===128&&(p&192)===128&&(d=(i&15)<<12|(f&63)<<6|p&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:f=this.data[this._pos+1],p=this.data[this._pos+2],l=this.data[this._pos+3],(f&192)===128&&(p&192)===128&&(l&192)===128&&(d=(i&15)<<18|(f&63)<<12|(p&63)<<6|l&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${v} 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(`${v} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new m(u.string,fn(t),this._pos-e);default:if(i<32)throw new Error(`${v} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${v} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new m(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new m(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new m(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new m(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new m(u.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(`${v} 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 m(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${v} 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 m(u.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 m(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${v} 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 m(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${v} 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(`${v} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function $n(r,e){return e=Object.assign({tokenizer:new Ke(r,e)},e),ee(r,e)}function uu(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=N.asCID(r);if(!e)return null;let t=e.toString();return[new m(u.map,1/0,1),new m(u.string,"/",1),new m(u.string,t,t.length),new m(u.break,void 0,1)]}function hr(r){let e=ye.encode(r).slice(1);return[new m(u.map,1/0,1),new m(u.string,"/",1),new m(u.map,1/0,1),new m(u.string,"bytes",5),new m(u.string,e,e.length),new m(u.break,void 0,1),new m(u.break,void 0,1)]}function te(r){return hr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function lu(r){return hr(new Uint8Array(r))}function du(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function hu(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 pu={typeEncoders:{Object:fu,Buffer:hr,Uint8Array:hr,Int8Array:te,Uint16Array:te,Int16Array:te,Uint32Array:te,Int32Array:te,Float32Array:te,Float64Array:te,Uint8ClampedArray:te,BigInt64Array:te,BigUint64Array:te,DataView:te,ArrayBuffer:lu,undefined:du,number:hu}},zn=class extends Ke{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===u.map){let t=this._next();if(t.type===u.string&&t.value==="/"){let n=this._next();if(n.type===u.string){if(this._next().type!==u.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new m(u.tag,42,0)}if(n.type===u.map){let o=this._next();if(o.type===u.string&&o.value==="bytes"){let i=this._next();if(i.type===u.string){for(let c=0;c<2;c++)if(this._next().type!==u.break)throw new Error("Invalid encoded Bytes form");let s=ye.decode(`m${i.value}`);return new m(u.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Mn={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Mn.tags[42]=N.parse;var mu="dag-json",Rn=297,os=r=>Fn(r,pu),is=r=>{let e=uu(r),t=Object.assign(Mn,{tokenizer:new zn(e,Mn)});return $n(e,t)},gu=r=>yu.decode(os(r));var yu=new TextDecoder,wu=r=>is(xu.encode(r)),xu=new TextEncoder;var Gn={};U(Gn,{code:()=>Kn,createLink:()=>ms,createNode:()=>ps,decode:()=>Nu,encode:()=>Pu,name:()=>Lu,prepare:()=>Vn,validate:()=>Hn});var bu=new TextDecoder;function qn(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 pr(r,e){let t;[t,e]=qn(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]=qn(r,e),[t&7,t>>3,e]}function Eu(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]=pr(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]=pr(r,n),e.Name=bu.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]=qn(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,f;if([c,f,t]=ss(r,t),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(f===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=pr(r,t),n&&(o=!0)}else if(f===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let p;[p,t]=pr(r,t),n.push(Eu(p))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${f}`)}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 vu(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=ut(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=ut(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ut(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function fs(r){let e=Cu(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ut(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let i=vu(r.Links[o],t.subarray(0,n));n-=i,n=ut(t,n,i)-1,t[n]=18}return t}function ku(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ge(t)}if(typeof r.Name=="string"){let t=us.encode(r.Name).length;e+=1+t+Ge(t)}return typeof r.Tsize=="number"&&(e+=1+Ge(r.Tsize)),e}function Cu(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ge(t)}if(r.Links)for(let t of r.Links){let n=ku(t);e+=1+n+Ge(n)}return e}function ut(r,e,t){e-=Ge(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 Ge(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+Au[r]}var Au=[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"],Iu=["Hash","Name","Tsize"],jn=new TextEncoder;function ds(r,e){if(r===e)return 0;let t=r.Name?jn.encode(r.Name):[],n=e.Name?jn.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 ls(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function hs(r){if(typeof r.asCID=="object"){let t=N.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=N.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=N.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=N.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 Vn(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=jn.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 Hn(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!ls(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(!ls(t,Iu))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 Vn({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",Kn=112;function Pu(r){Hn(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),fs(e)}function Nu(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=N.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={[Kn]:Gn,[Qr]:At,[Dn]:Un,[Rn]:On,[Wr]:St};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 ar(`Could not load codec for ${n}`)}}function ws(r=[],e){let t={[Lt.code]:Lt,[Pt.code]:Pt,[It.code]:It};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 sr(`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 mr=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 gr=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 yr=0,wr=class extends gr{child;constructor(e){super(),this.child=e}put(e,t){return e.multihash.code===yr||this.child==null?e:this.child.put(e,t)}get(e){if(e.multihash.code===yr)return e.multihash.digest;if(this.child==null)throw new mr;return this.child.get(e)}has(e){return e.multihash.code===yr?!0:this.child==null?!1:this.child.has(e)}delete(e){if(e.code!==yr&&this.child!=null)return this.child.delete(e)}getAll(e){return this.child!=null?this.child.getAll(e):[]}};function Du(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 xr=Du;function Uu(r){return r[Symbol.asyncIterator]!=null}function Bu(r,e){let t=0;if(Uu(r))return async function*(){for await(let f of r)await e(f,t++)&&(yield f)}();let n=xr(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 f of n)await e(f,t++)&&(yield f)}();let c=e;return function*(){s===!0&&(yield o);for(let f of n)c(f,t++)&&(yield f)}()}var xs=Bu;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 f of r){let p=e(f,t++);bs(p)&&await p,yield f}}();let n=xr(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 f of n){let p=e(f,t++);bs(p)&&await p,yield f}}();let c=e;return function*(){yield o;for(let f of n)c(f,t++),yield f}()}var Wn=$u;var br=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 wr(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new P("blocks:put:duplicate",e)),e):(n.onProgress?.(new P("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new P("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 P("blocks:put-many:duplicate",i)),!s}),o=Wn(n,async({cid:i,block:s})=>{t.onProgress?.(new P("blocks:put-many:providers:notify",i)),await Promise.all(this.components.blockBrokers.map(async c=>c.announce?.(i,s,t)))});t.onProgress?.(new P("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 P("blocks:get:providers:get",e));let o=await Es(e,this.components.blockBrokers,n,{...t,log:this.log});return t.onProgress?.(new P("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new P("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,o,t))),o}return t.onProgress?.(new P("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new P("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Wn(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new P("blocks:get-many:providers:get",n));let i=await Es(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new P("blocks:get-many:blockstore:put",n)),await this.child.put(n,i,t),t.onProgress?.(new P("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 P("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new P("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 P("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Er=class extends br{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await pe(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new Qn({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},Qn=class extends br{closeController;constructor(e,t){super(e),this.closeController=new AbortController,F(1/0,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]);F(1/0,o);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]);F(1/0,n);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async get(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{return await super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=oe([this.closeController.signal,e.signal]);F(1/0,t);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 wt(`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,!Se(n.digest,r.multihash.digest))throw new bt("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]);F(1/0,i.signal,s);let c=[];for(let f of e)zu(f)&&c.push(f);try{return await Promise.any(c.map(async f=>{try{let p=!1,l=await f.retrieve(r,{...n,signal:s,validateFn:async d=>{await o(d),p=!0}});return p||await o(l),l}catch(p){throw n.log.error("could not retrieve verified block for %c",r,p),p}}))}finally{i.abort(),s.clear()}}var Jn=64,re=class{fp;h;seed;constructor(e,t,n,o=2){if(o>Jn)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),s=Io(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?Se(this.fp,e.fp):!1}};function Le(r,e){return Math.floor(Math.random()*(e-r))+r}var Pe=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=Le(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 Xn={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Cs={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Ss=new globalThis.TextEncoder;function Ru(r,e){let t=Xn[e],n=Cs[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Ou(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=Xn[e],o=Cs[e],i=r;for(;i.length>0;){let s=Ss.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 Yn(r,{size:e=32,utf8Buffer:t}={}){if(!Xn[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 Ou(r,e,t);r=Ss.encode(r)}return Ru(r,e)}var qu=Cr(ks(),1);var lt={hash:r=>Number(Yn(r,{size:32})),hashV:(r,e)=>ju(lt.hash(r,e))};function ju(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),O(e,"base16")}var Vu=500,dt=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??lt,this.seed=e.seed??Le(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=O(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 Pe(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new Pe(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let i=[n,o],s=i[Le(0,i.length-1)];this.buckets[s]==null&&(this.buckets[s]=new Pe(this.bucketSize));for(let c=0;c<Vu;c++){let f=this.buckets[s].swap(t);if(f!=null&&(s=(s^f.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new Pe(this.bucketSize)),this.buckets[s].add(f)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=O(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=O(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 As(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)),Jn);return{filterSize:o,bucketSize:t,fingerprintSize:i}}var vr=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??lt,this.seed=e.seed??Le(0,Math.pow(2,10)),this.filterSeries=[new dt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=O(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 dt({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=O(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=O(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 Zn(r,e=.001,t){return new vr({...As(r,e),...t??{}})}var kr=class extends Ne{intialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;constructor(e,t){super(),F(1/0,this),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=Zn(this.maxProviders)}async retrieve(e,t={}){let n=ye.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let i=ae();if(this.requests.set(n,i.promise),this.providers.length===0){let p=!1;this.intialPeerSearchComplete==null&&(p=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.intialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.intialPeerSearchComplete,p&&this.log("found initial session peers for %c",e)}let s=!1,c=new ce({concurrency:this.maxProviders});c.addEventListener("error",()=>{}),c.addEventListener("failure",p=>{this.log.error("error querying provider %o, evicting from session",p.detail.job.options.provider,p.detail.error),this.evict(p.detail.job.options.provider)}),c.addEventListener("success",p=>{s=!0,i.resolve(p.detail.result)}),c.addEventListener("idle",()=>{s||t.signal?.aborted===!0||Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let p=0;p<this.minProviders&&this.providers.length!==0;p++){let l=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(l)}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(p=>{this.log.error("could not find new providers for %c",e,p),i.reject(p)})});let f=p=>{c.add(async()=>this.queryProvider(e,p.detail,t),{provider:p.detail}).catch(l=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,l)})};this.addEventListener("provider",f),Promise.all([...this.providers].map(async p=>c.add(async()=>this.queryProvider(e,p,t),{provider:p}))).catch(p=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,p)});try{return await i.promise}finally{this.removeEventListener("provider",f),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=ae(),i=0;return Promise.resolve().then(async()=>{this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e);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 ir(`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 eo=class{blockstore;datastore;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??fo(),this.log=this.logger.forComponent("helia"),this.getHasher=ws(e.hashers,e.loadHasher),this.getCodec=ys(e.codecs,e.loadCodec),this.dns=e.dns??zo(),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 fr(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[Sr]!=null&&i.push(o[Sr]),o[Ar]!=null&&i.push(o[Ar]),i}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Er(t);this.pins=new or(e.datastore,n,this.getCodec),this.blockstore=new lr(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 he(this.blockstore,this.datastore,this.routing)}async stop(){await pe(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 Mo(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 P("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new P("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Ds(Qu);})();
2
+ "use strict";var HeliaUtils=(()=>{var Is=Object.create;var gt=Object.defineProperty;var Ts=Object.getOwnPropertyDescriptor;var Ps=Object.getOwnPropertyNames;var Ls=Object.getPrototypeOf,Ns=Object.prototype.hasOwnProperty;var yt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),U=(r,e)=>{for(var t in e)gt(r,t,{get:e[t],enumerable:!0})},to=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ps(e))!Ns.call(r,o)&&o!==t&&gt(r,o,{get:()=>e[o],enumerable:!(n=Ts(e,o))||n.enumerable});return r};var Cr=(r,e,t)=>(t=r!=null?Is(Ls(r)):{},to(e||!r||!r.__esModule?gt(t,"default",{value:r,enumerable:!0}):t,r)),Ds=r=>to(gt({},"__esModule",{value:!0}),r);var ho=yt((Af,$r)=>{"use strict";var da=Object.prototype.hasOwnProperty,M="~";function Qe(){}Object.create&&(Qe.prototype=Object.create(null),new Qe().__proto__||(M=!1));function ha(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function lo(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new ha(t,n||r,o),s=M?M+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 kt(r,e){--r._eventsCount===0?r._events=new Qe:delete r._events[e]}function z(){this._events=new Qe,this._eventsCount=0}z.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)da.call(t,n)&&e.push(M?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};z.prototype.listeners=function(e){var t=M?M+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};z.prototype.listenerCount=function(e){var t=M?M+e:e,n=this._events[t];return n?n.fn?1:n.length:0};z.prototype.emit=function(e,t,n,o,i,s){var c=M?M+e:e;if(!this._events[c])return!1;var f=this._events[c],p=arguments.length,d,l;if(f.fn){switch(f.once&&this.removeListener(e,f.fn,void 0,!0),p){case 1:return f.fn.call(f.context),!0;case 2:return f.fn.call(f.context,t),!0;case 3:return f.fn.call(f.context,t,n),!0;case 4:return f.fn.call(f.context,t,n,o),!0;case 5:return f.fn.call(f.context,t,n,o,i),!0;case 6:return f.fn.call(f.context,t,n,o,i,s),!0}for(l=1,d=new Array(p-1);l<p;l++)d[l-1]=arguments[l];f.fn.apply(f.context,d)}else{var S=f.length,a;for(l=0;l<S;l++)switch(f[l].once&&this.removeListener(e,f[l].fn,void 0,!0),p){case 1:f[l].fn.call(f[l].context);break;case 2:f[l].fn.call(f[l].context,t);break;case 3:f[l].fn.call(f[l].context,t,n);break;case 4:f[l].fn.call(f[l].context,t,n,o);break;default:if(!d)for(a=1,d=new Array(p-1);a<p;a++)d[a-1]=arguments[a];f[l].fn.apply(f[l].context,d)}}return!0};z.prototype.on=function(e,t,n){return lo(this,e,t,n,!1)};z.prototype.once=function(e,t,n){return lo(this,e,t,n,!0)};z.prototype.removeListener=function(e,t,n,o){var i=M?M+e:e;if(!this._events[i])return this;if(!t)return kt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&kt(this,i);else{for(var c=0,f=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||n&&s[c].context!==n)&&f.push(s[c]);f.length?this._events[i]=f.length===1?f[0]:f:kt(this,i)}return this};z.prototype.removeAllListeners=function(e){var t;return e?(t=M?M+e:e,this._events[t]&&kt(this,t)):(this._events=new Qe,this._eventsCount=0),this};z.prototype.off=z.prototype.removeListener;z.prototype.addListener=z.prototype.on;z.prefixed=M;z.EventEmitter=z;typeof $r<"u"&&($r.exports=z)});var Bo=yt((Dl,Uo)=>{Uo.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 vs=yt((ft,vr)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(a){if(!Array.isArray(a)&&!ArrayBuffer.isView(a))return!1;for(var h=0;h<a.length;h++)if(!Number.isInteger(a[h])||a[h]<0||a[h]>255)return!1;return!0}function o(a,h){return(a&65535)*h+(((a>>>16)*h&65535)<<16)}function i(a,h){return a<<h|a>>>32-h}function s(a){return a^=a>>>16,a=o(a,2246822507),a^=a>>>13,a=o(a,3266489909),a^=a>>>16,a}function c(a,h){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var g=[0,0,0,0];return g[3]+=a[3]+h[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=a[2]+h[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=a[1]+h[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=a[0]+h[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function f(a,h){a=[a[0]>>>16,a[0]&65535,a[1]>>>16,a[1]&65535],h=[h[0]>>>16,h[0]&65535,h[1]>>>16,h[1]&65535];var g=[0,0,0,0];return g[3]+=a[3]*h[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=a[2]*h[3],g[1]+=g[2]>>>16,g[2]&=65535,g[2]+=a[3]*h[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=a[1]*h[3],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=a[2]*h[2],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=a[3]*h[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=a[0]*h[3]+a[1]*h[2]+a[2]*h[1]+a[3]*h[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function p(a,h){return h%=64,h===32?[a[1],a[0]]:h<32?[a[0]<<h|a[1]>>>32-h,a[1]<<h|a[0]>>>32-h]:(h-=32,[a[1]<<h|a[0]>>>32-h,a[0]<<h|a[1]>>>32-h])}function d(a,h){return h%=64,h===0?a:h<32?[a[0]<<h|a[1]>>>32-h,a[1]<<h]:[a[1]<<h-32,0]}function l(a,h){return[a[0]^h[0],a[1]^h[1]]}function S(a){return a=l(a,[0,a[0]>>>1]),a=f(a,[4283543511,3981806797]),a=l(a,[0,a[0]>>>1]),a=f(a,[3301882366,444984403]),a=l(a,[0,a[0]>>>1]),a}t.x86.hash32=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%4,k=a.length-g,y=h,w=0,b=3432918353,E=461845907,C=0;C<k;C=C+4)w=a[C]|a[C+1]<<8|a[C+2]<<16|a[C+3]<<24,w=o(w,b),w=i(w,15),w=o(w,E),y^=w,y=i(y,13),y=o(y,5)+3864292196;switch(w=0,g){case 3:w^=a[C+2]<<16;case 2:w^=a[C+1]<<8;case 1:w^=a[C],w=o(w,b),w=i(w,15),w=o(w,E),y^=w}return y^=a.length,y=s(y),y>>>0},t.x86.hash128=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%16,k=a.length-g,y=h,w=h,b=h,E=h,C=0,A=0,v=0,T=0,Q=597399067,ht=2869860233,pt=951274213,mt=2716044179,I=0;I<k;I=I+16)C=a[I]|a[I+1]<<8|a[I+2]<<16|a[I+3]<<24,A=a[I+4]|a[I+5]<<8|a[I+6]<<16|a[I+7]<<24,v=a[I+8]|a[I+9]<<8|a[I+10]<<16|a[I+11]<<24,T=a[I+12]|a[I+13]<<8|a[I+14]<<16|a[I+15]<<24,C=o(C,Q),C=i(C,15),C=o(C,ht),y^=C,y=i(y,19),y+=w,y=o(y,5)+1444728091,A=o(A,ht),A=i(A,16),A=o(A,pt),w^=A,w=i(w,17),w+=b,w=o(w,5)+197830471,v=o(v,pt),v=i(v,17),v=o(v,mt),b^=v,b=i(b,15),b+=E,b=o(b,5)+2530024501,T=o(T,mt),T=i(T,18),T=o(T,Q),E^=T,E=i(E,13),E+=y,E=o(E,5)+850148119;switch(C=0,A=0,v=0,T=0,g){case 15:T^=a[I+14]<<16;case 14:T^=a[I+13]<<8;case 13:T^=a[I+12],T=o(T,mt),T=i(T,18),T=o(T,Q),E^=T;case 12:v^=a[I+11]<<24;case 11:v^=a[I+10]<<16;case 10:v^=a[I+9]<<8;case 9:v^=a[I+8],v=o(v,pt),v=i(v,17),v=o(v,mt),b^=v;case 8:A^=a[I+7]<<24;case 7:A^=a[I+6]<<16;case 6:A^=a[I+5]<<8;case 5:A^=a[I+4],A=o(A,ht),A=i(A,16),A=o(A,pt),w^=A;case 4:C^=a[I+3]<<24;case 3:C^=a[I+2]<<16;case 2:C^=a[I+1]<<8;case 1:C^=a[I],C=o(C,Q),C=i(C,15),C=o(C,ht),y^=C}return y^=a.length,w^=a.length,b^=a.length,E^=a.length,y+=w,y+=b,y+=E,w+=y,b+=y,E+=y,y=s(y),w=s(w),b=s(b),E=s(E),y+=w,y+=b,y+=E,w+=y,b+=y,E+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(E>>>0).toString(16)).slice(-8)},t.x64.hash128=function(a,h){if(t.inputValidation&&!n(a))return e;h=h||0;for(var g=a.length%16,k=a.length-g,y=[0,h],w=[0,h],b=[0,0],E=[0,0],C=[2277735313,289559509],A=[1291169091,658871167],v=0;v<k;v=v+16)b=[a[v+4]|a[v+5]<<8|a[v+6]<<16|a[v+7]<<24,a[v]|a[v+1]<<8|a[v+2]<<16|a[v+3]<<24],E=[a[v+12]|a[v+13]<<8|a[v+14]<<16|a[v+15]<<24,a[v+8]|a[v+9]<<8|a[v+10]<<16|a[v+11]<<24],b=f(b,C),b=p(b,31),b=f(b,A),y=l(y,b),y=p(y,27),y=c(y,w),y=c(f(y,[0,5]),[0,1390208809]),E=f(E,A),E=p(E,33),E=f(E,C),w=l(w,E),w=p(w,31),w=c(w,y),w=c(f(w,[0,5]),[0,944331445]);switch(b=[0,0],E=[0,0],g){case 15:E=l(E,d([0,a[v+14]],48));case 14:E=l(E,d([0,a[v+13]],40));case 13:E=l(E,d([0,a[v+12]],32));case 12:E=l(E,d([0,a[v+11]],24));case 11:E=l(E,d([0,a[v+10]],16));case 10:E=l(E,d([0,a[v+9]],8));case 9:E=l(E,[0,a[v+8]]),E=f(E,A),E=p(E,33),E=f(E,C),w=l(w,E);case 8:b=l(b,d([0,a[v+7]],56));case 7:b=l(b,d([0,a[v+6]],48));case 6:b=l(b,d([0,a[v+5]],40));case 5:b=l(b,d([0,a[v+4]],32));case 4:b=l(b,d([0,a[v+3]],24));case 3:b=l(b,d([0,a[v+2]],16));case 2:b=l(b,d([0,a[v+1]],8));case 1:b=l(b,[0,a[v]]),b=f(b,C),b=p(b,31),b=f(b,A),y=l(y,b)}return y=l(y,[0,a.length]),w=l(w,[0,a.length]),y=c(y,w),w=c(w,y),y=S(y),w=S(w),y=c(y,w),w=c(w,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof ft<"u"?(typeof vr<"u"&&vr.exports&&(ft=vr.exports=t),ft.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(ft)});var ks=yt((nm,_s)=>{_s.exports=vs()});var Qu={};U(Qu,{AbstractSession:()=>kr,Helia:()=>eo});var Sr=Symbol.for("@libp2p/content-routing");var Ar=Symbol.for("@libp2p/peer-routing");var ie=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var wt=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var xt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var bt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var F=(r,...e)=>{try{[...e]}catch{}};var Ne=class extends EventTarget{#e=new Map;constructor(){super(),F(1/0,this)}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 ro(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)ro(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 pe(...r){let e=[];for(let t of r)ro(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 Dr={};U(Dr,{base32:()=>ge,base32hex:()=>qs,base32hexpad:()=>Vs,base32hexpadupper:()=>Hs,base32hexupper:()=>js,base32pad:()=>Rs,base32padupper:()=>Os,base32upper:()=>Ms,base32z:()=>Ks});var of=new Uint8Array(0);function no(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 oo(r){return new TextEncoder().encode(r)}function io(r){return new TextDecoder().decode(r)}function Us(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,f=r.charAt(0),p=Math.log(c)/Math.log(256),d=Math.log(256)/Math.log(c);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var g=0,k=0,y=0,w=h.length;y!==w&&h[y]===0;)y++,g++;for(var b=(w-y)*d+1>>>0,E=new Uint8Array(b);y!==w;){for(var C=h[y],A=0,v=b-1;(C!==0||A<k)&&v!==-1;v--,A++)C+=256*E[v]>>>0,E[v]=C%c>>>0,C=C/c>>>0;if(C!==0)throw new Error("Non-zero carry");k=A,y++}for(var T=b-k;T!==b&&E[T]===0;)T++;for(var Q=f.repeat(g);T<b;++T)Q+=r.charAt(E[T]);return Q}function S(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==" "){for(var k=0,y=0;h[g]===f;)k++,g++;for(var w=(h.length-g)*p+1>>>0,b=new Uint8Array(w);h[g];){var E=t[h.charCodeAt(g)];if(E===255)return;for(var C=0,A=w-1;(E!==0||C<y)&&A!==-1;A--,C++)E+=c*b[A]>>>0,b[A]=E%256>>>0,E=E/256>>>0;if(E!==0)throw new Error("Non-zero carry");y=C,g++}if(h[g]!==" "){for(var v=w-y;v!==w&&b[v]===0;)v++;for(var T=new Uint8Array(k+(w-v)),Q=k;v!==w;)T[Q++]=b[v++];return T}}}function a(h){var g=S(h);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:S,decode:a}}var Bs=Us,Fs=Bs,so=Fs;var Tr=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")}},Pr=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 ao(this,e)}},Lr=class{decoders;constructor(e){this.decoders=e}or(e){return ao(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 ao(r,e){return new Lr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Nr=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 Tr(e,t,n),this.decoder=new Pr(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function De({name:r,prefix:e,encode:t,decode:n}){return new Nr(r,e,t,n)}function me({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=so(t,r);return De({prefix:e,name:r,encode:n,decode:i=>J(o(i))})}function $s(r,e,t,n){let o={};for(let d=0;d<e.length;++d)o[e[d]]=d;let i=r.length;for(;r[i-1]==="=";)--i;let s=new Uint8Array(i*t/8|0),c=0,f=0,p=0;for(let d=0;d<i;++d){let l=o[r[d]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<t|l,c+=t,c>=8&&(c-=8,s[p++]=255&f>>c)}if(c>=t||255&f<<8-c)throw new SyntaxError("Unexpected end of data");return s}function zs(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let f=0;f<r.length;++f)for(c=c<<8|r[f],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;)i+="=";return i}function D({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return De({prefix:e,name:r,encode(o){return zs(o,n,t)},decode(o){return $s(o,n,t,r)}})}var ge=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ms=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Rs=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Os=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),qs=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),js=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Vs=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Hs=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ks=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ur={};U(Ur,{base58btc:()=>K,base58flickr:()=>Gs});var K=me({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Gs=me({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Br={};U(Br,{base64:()=>ye,base64pad:()=>Ws,base64url:()=>Qs,base64urlpad:()=>Js});var ye=D({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ws=D({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Qs=D({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Js=D({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Xs(r,e){try{if(typeof r=="string"&&r.length>0)return Ys(r);if(typeof r=="number"&&isFinite(r))return e?.long?ea(r):Zs(r);throw new Error("Value is not a string or number.")}catch(t){let n=ta(t)?`${t.message}. value=${JSON.stringify(r)}`:"An unknown error has occured.";throw new Error(n)}}function Ys(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 vt=Xs;function Zs(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 ea(r){let e=Math.abs(r);return e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function ta(r){return typeof r=="object"&&r!==null&&"message"in r}function Fr(r){t.debug=t,t.default=t,t.coerce=f,t.disable=i,t.enable=o,t.enabled=s,t.humanize=vt,t.destroy=p,Object.keys(r).forEach(d=>{t[d]=r[d]}),t.names=[],t.skips=[],t.formatters={};function e(d){let l=0;for(let S=0;S<d.length;S++)l=(l<<5)-l+d.charCodeAt(S),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(d){let l,S=null,a,h;function g(...k){if(!g.enabled)return;let y=g,w=Number(new Date),b=w-(l||w);y.diff=b,y.prev=l,y.curr=w,l=w,k[0]=t.coerce(k[0]),typeof k[0]!="string"&&k.unshift("%O");let E=0;k[0]=k[0].replace(/%([a-zA-Z%])/g,(A,v)=>{if(A==="%%")return"%";E++;let T=t.formatters[v];if(typeof T=="function"){let Q=k[E];A=T.call(y,Q),k.splice(E,1),E--}return A}),t.formatArgs.call(y,k),(y.log||t.log).apply(y,k)}return g.namespace=d,g.useColors=t.useColors(),g.color=t.selectColor(d),g.extend=n,g.destroy=t.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>S!==null?S:(a!==t.namespaces&&(a=t.namespaces,h=t.enabled(d)),h),set:k=>{S=k}}),typeof t.init=="function"&&t.init(g),g}function n(d,l){let S=t(this.namespace+(typeof l>"u"?":":l)+d);return S.log=this.log,S}function o(d){t.save(d),t.namespaces=d,t.names=[],t.skips=[];let l,S=(typeof d=="string"?d:"").split(/[\s,]+/),a=S.length;for(l=0;l<a;l++)S[l]&&(d=S[l].replace(/\*/g,".*?"),d[0]==="-"?t.skips.push(new RegExp("^"+d.substr(1)+"$")):t.names.push(new RegExp("^"+d+"$")))}function i(){let d=[...t.names.map(c),...t.skips.map(c).map(l=>"-"+l)].join(",");return t.enable(""),d}function s(d){if(d[d.length-1]==="*")return!0;let l,S;for(l=0,S=t.skips.length;l<S;l++)if(t.skips[l].test(d))return!1;for(l=0,S=t.names.length;l<S;l++)if(t.names[l].test(d))return!0;return!1}function c(d){return d.toString().substring(2,d.toString().length-2).replace(/\.\*\?$/,"*")}function f(d){return d instanceof Error?d.stack??d.message:d}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var _t=ca(),ra=["#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 na(){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 oa(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+vt(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 ia=console.debug??console.log??(()=>{});function sa(r){try{r?_t?.setItem("debug",r):_t?.removeItem("debug")}catch{}}function aa(){let r;try{r=_t?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function ca(){try{return localStorage}catch{}}function ua(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var co=Fr({formatArgs:oa,save:sa,load:aa,useColors:na,setupFormatters:ua,colors:ra,storage:_t,log:ia});var R=co;R.formatters.b=r=>r==null?"undefined":K.baseEncode(r);R.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);R.formatters.m=r=>r==null?"undefined":ye.baseEncode(r);R.formatters.p=r=>r==null?"undefined":r.toString();R.formatters.c=r=>r==null?"undefined":r.toString();R.formatters.k=r=>r==null?"undefined":r.toString();R.formatters.a=r=>r==null?"undefined":r.toString();R.formatters.e=r=>r==null?"undefined":uo(r.stack)??uo(r.message)??r.toString();function fa(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 fo(){return{forComponent(r){return la(r)}}}function la(r){let e=fa(`${r}:trace`);return R.enabled(`${r}:trace`)&&R.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=R(`${r}:trace`)),Object.assign(R(r),{error:R(`${r}:error`),trace:e})}function uo(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var L=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var zr=Cr(ho(),1);var Je=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Mr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},po=r=>globalThis.DOMException===void 0?new Mr(r):new DOMException(r),mo=r=>{let e=r.reason===void 0?po("This operation was aborted."):r.reason;return e instanceof Error?e:po(e)};function Xe(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,c,p=new Promise((d,l)=>{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:a}=e;a.aborted&&l(mo(a)),c=()=>{l(mo(a))},a.addEventListener("abort",c,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(d,l);return}let S=new Je;s=i.setTimeout.call(void 0,()=>{if(n){try{d(n())}catch(a){l(a)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?d():o instanceof Error?l(o):(S.message=o??`Promise timed out after ${t} milliseconds`,l(S))},t),(async()=>{try{d(await r)}catch(a){l(a)}})()}).finally(()=>{p.clear(),c&&e.signal&&e.signal.removeEventListener("abort",c)});return p.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},p}function Rr(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 Ye=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Rr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}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 we=class extends zr.default{#e;#o;#s=0;#h;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ye,...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#x(){return this.#o||this.#s<this.#h}get#b(){return this.#n<this.#u}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#w(),this.#y(),this.#c=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#n:0;else return this.#c===void 0&&(this.#c=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){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.#_;if(this.#x&&this.#b){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.#l()}#l(){for(;this.#f(););}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.#l()}async#k(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return 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=Xe(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#k(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof Je&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#l(),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 Ct(r){let e=[X.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Or={};U(Or,{base10:()=>pa});var pa=me({prefix:"9",name:"base10",alphabet:"0123456789"});var qr={};U(qr,{base16:()=>ma,base16upper:()=>ga});var ma=D({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ga=D({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var jr={};U(jr,{base2:()=>ya});var ya=D({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vr={};U(Vr,{base256emoji:()=>va});var go=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}"),wa=go.reduce((r,e,t)=>(r[t]=e,r),[]),xa=go.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ba(r){return r.reduce((e,t)=>(e+=wa[t],e),"")}function Ea(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=xa[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var va=De({prefix:"\u{1F680}",name:"base256emoji",encode:ba,decode:Ea});var Hr={};U(Hr,{base36:()=>se,base36upper:()=>_a});var se=me({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),_a=me({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Kr={};U(Kr,{base8:()=>ka});var ka=D({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Gr={};U(Gr,{identity:()=>Ca});var Ca=De({prefix:"\0",name:"identity",encode:r=>io(r),decode:r=>oo(r)});var St={};U(St,{code:()=>Wr,decode:()=>Pa,encode:()=>Ta,name:()=>Ia});var Sa=new TextEncoder,Aa=new TextDecoder,Ia="json",Wr=512;function Ta(r){return Sa.encode(JSON.stringify(r))}function Pa(r){return JSON.parse(Aa.decode(r))}var At={};U(At,{code:()=>Qr,decode:()=>Da,encode:()=>Na,name:()=>La});var La="raw",Qr=85;function Na(r){return J(r)}function Da(r){return J(r)}var Xr={};U(Xr,{identity:()=>Tt});var Ua=xo,yo=128,Ba=127,Fa=~Ba,$a=Math.pow(2,31);function xo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=$a;)e[t++]=r&255|yo,r/=128;for(;r&Fa;)e[t++]=r&255|yo,r>>>=7;return e[t]=r|0,xo.bytes=t-n+1,e}var za=Jr,Ma=128,wo=127;function Jr(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw Jr.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&wo)<<o:(s&wo)*Math.pow(2,o),o+=7}while(s>=Ma);return Jr.bytes=i-n,t}var Ra=Math.pow(2,7),Oa=Math.pow(2,14),qa=Math.pow(2,21),ja=Math.pow(2,28),Va=Math.pow(2,35),Ha=Math.pow(2,42),Ka=Math.pow(2,49),Ga=Math.pow(2,56),Wa=Math.pow(2,63),Qa=function(r){return r<Ra?1:r<Oa?2:r<qa?3:r<ja?4:r<Va?5:r<Ha?6:r<Ka?7:r<Ga?8:r<Wa?9:10},Ja={encode:Ua,decode:za,encodingLength:Qa},Xa=Ja,Ze=Xa;function et(r,e=0){return[Ze.decode(r,e),Ze.decode.bytes]}function Ue(r,e,t=0){return Ze.encode(r,e,t),e}function Be(r){return Ze.encodingLength(r)}function _e(r,e){let t=e.byteLength,n=Be(r),o=n+Be(t),i=new Uint8Array(o+t);return Ue(r,i,0),Ue(t,i,n),i.set(e,o),new Fe(r,t,e,i)}function bo(r){let e=J(r),[t,n]=et(e),[o,i]=et(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Fe(t,o,s,e)}function Eo(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&no(r.bytes,t.bytes)}}var Fe=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var vo=0,Ya="identity",_o=J;function Za(r){return _e(vo,_o(r))}var Tt={code:vo,name:Ya,encode:_o,digest:Za};var en={};U(en,{sha256:()=>Pt,sha512:()=>Lt});function Zr({name:r,code:e,encode:t}){return new Yr(r,e,t)}var Yr=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?_e(this.code,t):t.then(n=>_e(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Co(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Pt=Zr({name:"sha2-256",code:18,encode:Co("SHA-256")}),Lt=Zr({name:"sha2-512",code:19,encode:Co("SHA-512")});function So(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return tc(t,tn(r),e??K.encoder);default:return rc(t,tn(r),e??ge.encoder)}}var Ao=new WeakMap;function tn(r){let e=Ao.get(r);if(e==null){let t=new Map;return Ao.set(r,t),t}return e}var N=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!==rt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==nc)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=_e(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&&Eo(e.multihash,n.multihash)}toString(e){return So(this,e)}toJSON(){return{"/":So(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??Io(n,o,i.bytes))}else if(t[oc]===!0){let{version:n,multihash:o,code:i}=t,s=bo(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!==rt)throw new Error(`Version 0 CID must use dag-pb (code: ${rt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=Io(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,rt,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 Fe(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[l,S]=et(e.subarray(t));return t+=S,l},o=n(),i=rt;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(),f=n(),p=t+f,d=p-s;return{version:o,codec:i,multihashCode:c,digestSize:f,multihashSize:d,size:p}}static parse(e,t){let[n,o]=ec(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 tn(i).set(n,e),i}};function ec(r,e){switch(r[0]){case"Q":{let t=e??K;return[K.prefix,t.decode(`${K.prefix}${r}`)]}case K.prefix:{let t=e??K;return[K.prefix,t.decode(r)]}case ge.prefix:{let t=e??ge;return[ge.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function tc(r,e,t){let{prefix:n}=t;if(n!==K.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 rc(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 rt=112,nc=18;function Io(r,e,t){let n=Be(r),o=n+Be(e),i=new Uint8Array(o+t.byteLength);return Ue(r,i,0),Ue(e,i,n),i.set(t,o),i}var oc=Symbol.for("@ipld/js-cid/CID");var rn={...Gr,...jr,...Kr,...Or,...qr,...Dr,...Hr,...Ur,...Br,...Vr},pl={...en,...Xr};function To(r=0){return new Uint8Array(r)}function Po(r=0){return new Uint8Array(r)}function No(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Lo=No("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),nn=No("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=Po(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),ic={utf8:Lo,"utf-8":Lo,hex:rn.base16,latin1:nn,ascii:nn,binary:nn,...rn},Nt=ic;function $e(r,e="utf8"){let t=Nt[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var on=60;function Dt(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??on,data:e.data instanceof Uint8Array?$e(e.data):e.data}))}}var sc=4;function sn(r,e={}){let t=new we({concurrency:e.queryConcurrency??sc});return async(n,o={})=>{let i=new URLSearchParams;i.set("name",n),Ct(o.types).forEach(c=>{i.append("type",X[c])}),o.onProgress?.(new L("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 f=Dt(await c.json());return o.onProgress?.(new L("dns:response",{detail:f})),f},{signal:o.signal});if(s==null)throw new Error("No DNS response received");return s}}function Do(){return[sn("https://cloudflare-dns.com/dns-query"),sn("https://dns.google/resolve")]}var Fo=Cr(Bo(),1);var an=class{lru;constructor(e){this.lru=(0,Fo.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 Dt({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??on)*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 $o(r){return new an(r)}var ac=1e3,Ut=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=$o(e.cacheSize??ac),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["."]=Do())}async query(e,t={}){let n=Ct(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new L("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 f of s){if(t.signal?.aborted===!0)break;try{let p=await f(e,{...t,types:n});for(let d of p.Answer)this.cache.add(e,d);return p}catch(p){c.push(p),t.onProgress?.(new L("dns:error",{detail:p}))}}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 zo(r={}){return new Ut(r)}function cc(r){return r[Symbol.asyncIterator]!=null}function uc(r){if(cc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Mo=uc;function ae(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Bt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},ze=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Bt(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 Bt(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 cn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Ft(r={}){return fc(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 fc(r,e){e=e??{};let t=e.onEnd,n=new ze,o,i,s,c=ae(),f=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((k,y)=>{i=w=>{i=null,n.push(w);try{k(r(n))}catch(b){y(b)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=ae()})}},p=k=>i!=null?i(k):(n.push(k),o),d=k=>(n=new ze,i!=null?i({error:k}):(n.push({error:k}),o)),l=k=>{if(s)return o;if(e?.objectMode!==!0&&k?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return p({done:!1,value:k})},S=k=>s?o:(s=!0,k!=null?d(k):p({done:!0})),a=()=>(n=new ze,S(),{done:!0}),h=k=>(S(k),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:f,return:a,throw:h,push:l,end:S,get readableLength(){return n.size},onEmpty:async k=>{let y=k?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let w,b;y!=null&&(w=new Promise((E,C)=>{b=()=>{C(new cn)},y.addEventListener("abort",b)}));try{await Promise.race([c.promise,w])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},t==null)return o;let g=o;return o={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(k){return g.throw(k),t!=null&&(t(k),t=void 0),{done:!0}},return(){return g.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(k){return g.end(k),t!=null&&(t(k),t=void 0),o},get readableLength(){return g.readableLength},onEmpty:k=>g.onEmpty(k)},o}var un=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 $t(r,e,t,n){let o=new un(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{function c(){t?.removeEventListener("abort",d),r.removeEventListener(e,f),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,p)}let f=l=>{try{if(n?.filter?.(l)===!1)return}catch(S){c(),s(S);return}c(),i(l)},p=l=>{c(),s(l.detail)},d=()=>{c(),s(o)};t?.addEventListener("abort",d),r.addEventListener(e,f),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,p)})}var zt=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Mt=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 Ro(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Mt(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Mt(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Rt=class{deferred;signal;constructor(e){this.signal=e,this.deferred=ae(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ie)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function lc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ot=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=lc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,F(1/0,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 ie),this.cleanup())}async join(e={}){let t=new Rt(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ro(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 ce=class extends Ne{concurrency;maxSize;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!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 zt;let n=new Ot(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 ie)}),this.clear()}async onEmpty(e){this.size!==0&&await $t(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await $t(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await $t(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=Ft({objectMode:!0}),n=f=>{f!=null?this.abort():this.clear(),t.end(f)},o=f=>{f.detail!=null&&t.push(f.detail)},i=f=>{n(f.detail)},s=()=>{n()},c=()=>{n(new ie("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 dc=["string","number","bigint","symbol"],hc=["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 Oo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(dc.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(pc(r))return"Buffer";let t=mc(r);return t||"Object"}function pc(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function mc(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(hc.includes(e))return e}var u=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}};u.uint=new u(0,"uint",!0);u.negint=new u(1,"negint",!0);u.bytes=new u(2,"bytes",!0);u.string=new u(3,"string",!0);u.array=new u(4,"array",!1);u.map=new u(5,"map",!1);u.tag=new u(6,"tag",!1);u.float=new u(7,"float",!0);u.false=new u(7,"false",!0);u.true=new u(7,"true",!0);u.null=new u(7,"null",!0);u.undefined=new u(7,"undefined",!0);u.break=new u(7,"break",!0);var m=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 Me=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",gc=new TextDecoder,yc=new TextEncoder;function qt(r){return Me&&globalThis.Buffer.isBuffer(r)}function nt(r){return r instanceof Uint8Array?qt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Ho=Me?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):jo(r,e,t):(r,e,t)=>t-e>64?gc.decode(r.subarray(e,t)):jo(r,e,t),jt=Me?r=>r.length>64?globalThis.Buffer.from(r):qo(r):r=>r.length>64?yc.encode(r):qo(r),ne=r=>Uint8Array.from(r),Re=Me?(r,e,t)=>qt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Ko=Me?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),nt(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},Go=Me?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Wo(r,e){if(qt(r)&&qt(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 qo(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 jo(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,f,p,d;switch(s){case 1:o<128&&(i=o);break;case 2:c=r[e+1],(c&192)===128&&(d=(o&31)<<6|c&63,d>127&&(i=d));break;case 3:c=r[e+1],f=r[e+2],(c&192)===128&&(f&192)===128&&(d=(o&15)<<12|(c&63)<<6|f&63,d>2047&&(d<55296||d>57343)&&(i=d));break;case 4:c=r[e+1],f=r[e+2],p=r[e+3],(c&192)===128&&(f&192)===128&&(p&192)===128&&(d=(o&15)<<18|(c&63)<<12|(f&63)<<6|p&63,d>65535&&d<1114112&&(i=d))}}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 fn(n)}var Vo=4096;function fn(r){let e=r.length;if(e<=Vo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Vo));return t}var wc=256,ot=class{constructor(e=wc){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=Go(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=Re(n,0,this.cursor)}else t=Ko(this.chunks,this.cursor);return e&&this.reset(),t}};var _="CBOR decode error:",ue="CBOR encode error:",it=[];it[23]=1;it[24]=2;it[25]=3;it[26]=5;it[27]=9;function fe(r,e,t){if(r.length-e<t)throw new Error(`${_} not enough data for type`)}var B=[24,256,65536,4294967296,BigInt("18446744073709551616")];function q(r,e,t){fe(r,e,1);let n=r[e];if(t.strict===!0&&n<B[0])throw new Error(`${_} integer encoded in more bytes than necessary (strict decode)`);return n}function j(r,e,t){fe(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<B[1])throw new Error(`${_} integer encoded in more bytes than necessary (strict decode)`);return n}function V(r,e,t){fe(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<B[2])throw new Error(`${_} integer encoded in more bytes than necessary (strict decode)`);return n}function H(r,e,t){fe(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<B[3])throw new Error(`${_} 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(`${_} integers outside of the safe integer range are not supported`)}function Qo(r,e,t,n){return new m(u.uint,q(r,e+1,n),2)}function Jo(r,e,t,n){return new m(u.uint,j(r,e+1,n),3)}function Xo(r,e,t,n){return new m(u.uint,V(r,e+1,n),5)}function Yo(r,e,t,n){return new m(u.uint,H(r,e+1,n),9)}function G(r,e){return $(r,0,e.value)}function $(r,e,t){if(t<B[0]){let n=Number(t);r.push([e|n])}else if(t<B[1]){let n=Number(t);r.push([e|24,n])}else if(t<B[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<B[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<B[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(`${_} encountered BigInt larger than allowable range`)}}G.encodedSize=function(e){return $.encodedSize(e.value)};$.encodedSize=function(e){return e<B[0]?1:e<B[1]?2:e<B[2]?3:e<B[3]?5:9};G.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Zo(r,e,t,n){return new m(u.negint,-1-q(r,e+1,n),2)}function ei(r,e,t,n){return new m(u.negint,-1-j(r,e+1,n),3)}function ti(r,e,t,n){return new m(u.negint,-1-V(r,e+1,n),5)}var ln=BigInt(-1),ri=BigInt(1);function ni(r,e,t,n){let o=H(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new m(u.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${_} integers outside of the safe integer range are not supported`);return new m(u.negint,ln-BigInt(o),9)}function Vt(r,e){let t=e.value,n=typeof t=="bigint"?t*ln-ri:t*-1-1;$(r,e.type.majorEncoded,n)}Vt.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*ln-ri:t*-1-1;return n<B[0]?1:n<B[1]?2:n<B[2]?3:n<B[3]?5:9};Vt.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function st(r,e,t,n){fe(r,e,t+n);let o=Re(r,e+t,e+t+n);return new m(u.bytes,o,t+n)}function oi(r,e,t,n){return st(r,e,1,t)}function ii(r,e,t,n){return st(r,e,2,q(r,e+1,n))}function si(r,e,t,n){return st(r,e,3,j(r,e+1,n))}function ai(r,e,t,n){return st(r,e,5,V(r,e+1,n))}function ci(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${_} 64-bit integer bytes lengths not supported`);return st(r,e,9,o)}function Ht(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===u.string?jt(r.value):r.value),r.encodedBytes}function Oe(r,e){let t=Ht(e);$(r,e.type.majorEncoded,t.length),r.push(t)}Oe.encodedSize=function(e){let t=Ht(e);return $.encodedSize(t.length)+t.length};Oe.compareTokens=function(e,t){return bc(Ht(e),Ht(t))};function bc(r,e){return r.length<e.length?-1:r.length>e.length?1:Wo(r,e)}function at(r,e,t,n,o){let i=t+n;fe(r,e,i);let s=new m(u.string,Ho(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Re(r,e+t,e+i)),s}function ui(r,e,t,n){return at(r,e,1,t,n)}function fi(r,e,t,n){return at(r,e,2,q(r,e+1,n),n)}function li(r,e,t,n){return at(r,e,3,j(r,e+1,n),n)}function di(r,e,t,n){return at(r,e,5,V(r,e+1,n),n)}function hi(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${_} 64-bit integer string lengths not supported`);return at(r,e,9,o,n)}var pi=Oe;function qe(r,e,t,n){return new m(u.array,n,t)}function mi(r,e,t,n){return qe(r,e,1,t)}function gi(r,e,t,n){return qe(r,e,2,q(r,e+1,n))}function yi(r,e,t,n){return qe(r,e,3,j(r,e+1,n))}function wi(r,e,t,n){return qe(r,e,5,V(r,e+1,n))}function xi(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${_} 64-bit integer array lengths not supported`);return qe(r,e,9,o)}function bi(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${_} indefinite length items not allowed`);return qe(r,e,1,1/0)}function Kt(r,e){$(r,u.array.majorEncoded,e.value)}Kt.compareTokens=G.compareTokens;Kt.encodedSize=function(e){return $.encodedSize(e.value)};function je(r,e,t,n){return new m(u.map,n,t)}function Ei(r,e,t,n){return je(r,e,1,t)}function vi(r,e,t,n){return je(r,e,2,q(r,e+1,n))}function _i(r,e,t,n){return je(r,e,3,j(r,e+1,n))}function ki(r,e,t,n){return je(r,e,5,V(r,e+1,n))}function Ci(r,e,t,n){let o=H(r,e+1,n);if(typeof o=="bigint")throw new Error(`${_} 64-bit integer map lengths not supported`);return je(r,e,9,o)}function Si(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${_} indefinite length items not allowed`);return je(r,e,1,1/0)}function Gt(r,e){$(r,u.map.majorEncoded,e.value)}Gt.compareTokens=G.compareTokens;Gt.encodedSize=function(e){return $.encodedSize(e.value)};function Ai(r,e,t,n){return new m(u.tag,t,1)}function Ii(r,e,t,n){return new m(u.tag,q(r,e+1,n),2)}function Ti(r,e,t,n){return new m(u.tag,j(r,e+1,n),3)}function Pi(r,e,t,n){return new m(u.tag,V(r,e+1,n),5)}function Li(r,e,t,n){return new m(u.tag,H(r,e+1,n),9)}function Wt(r,e){$(r,u.tag.majorEncoded,e.value)}Wt.compareTokens=G.compareTokens;Wt.encodedSize=function(e){return $.encodedSize(e.value)};var Sc=20,Ac=21,Ic=22,Tc=23;function Ni(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${_} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new m(u.null,null,1):new m(u.undefined,void 0,1)}function Di(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${_} indefinite length items not allowed`);return new m(u.break,void 0,1)}function dn(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${_} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${_} Infinity values are not supported`)}return new m(u.float,r,e)}function Ui(r,e,t,n){return dn(hn(r,e+1),3,n)}function Bi(r,e,t,n){return dn(pn(r,e+1),5,n)}function Fi(r,e,t,n){return dn(Ri(r,e+1),9,n)}function Qt(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|Sc]);else if(n===!0)r.push([u.float.majorEncoded|Ac]);else if(n===null)r.push([u.float.majorEncoded|Ic]);else if(n===void 0)r.push([u.float.majorEncoded|Tc]);else{let o,i=!1;(!t||t.float64!==!0)&&(zi(n),o=hn(Y,1),n===o||Number.isNaN(n)?(Y[0]=249,r.push(Y.slice(0,3)),i=!0):(Mi(n),o=pn(Y,1),n===o&&(Y[0]=250,r.push(Y.slice(0,5)),i=!0))),i||(Pc(n),o=Ri(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){zi(n);let o=hn(Y,1);if(n===o||Number.isNaN(n))return 3;if(Mi(n),o=pn(Y,1),n===o)return 5}return 9};var $i=new ArrayBuffer(9),W=new DataView($i,1),Y=new Uint8Array($i,0);function zi(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 hn(r,e){if(r.length-e<2)throw new Error(`${_} 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 Mi(r){W.setFloat32(0,r,!1)}function pn(r,e){if(r.length-e<4)throw new Error(`${_} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Pc(r){W.setFloat64(0,r,!1)}function Ri(r,e){if(r.length-e<8)throw new Error(`${_} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Qt.compareTokens=G.compareTokens;function P(r,e,t){throw new Error(`${_} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Jt(r){return()=>{throw new Error(`${_} ${r}`)}}var x=[];for(let r=0;r<=23;r++)x[r]=P;x[24]=Qo;x[25]=Jo;x[26]=Xo;x[27]=Yo;x[28]=P;x[29]=P;x[30]=P;x[31]=P;for(let r=32;r<=55;r++)x[r]=P;x[56]=Zo;x[57]=ei;x[58]=ti;x[59]=ni;x[60]=P;x[61]=P;x[62]=P;x[63]=P;for(let r=64;r<=87;r++)x[r]=oi;x[88]=ii;x[89]=si;x[90]=ai;x[91]=ci;x[92]=P;x[93]=P;x[94]=P;x[95]=Jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)x[r]=ui;x[120]=fi;x[121]=li;x[122]=di;x[123]=hi;x[124]=P;x[125]=P;x[126]=P;x[127]=Jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)x[r]=mi;x[152]=gi;x[153]=yi;x[154]=wi;x[155]=xi;x[156]=P;x[157]=P;x[158]=P;x[159]=bi;for(let r=160;r<=183;r++)x[r]=Ei;x[184]=vi;x[185]=_i;x[186]=ki;x[187]=Ci;x[188]=P;x[189]=P;x[190]=P;x[191]=Si;for(let r=192;r<=215;r++)x[r]=Ai;x[216]=Ii;x[217]=Ti;x[218]=Pi;x[219]=Li;x[220]=P;x[221]=P;x[222]=P;x[223]=P;for(let r=224;r<=243;r++)x[r]=Jt("simple values are not supported");x[244]=P;x[245]=P;x[246]=P;x[247]=Ni;x[248]=Jt("simple values are not supported");x[249]=Ui;x[250]=Bi;x[251]=Fi;x[252]=P;x[253]=P;x[254]=P;x[255]=Di;var Z=[];for(let r=0;r<24;r++)Z[r]=new m(u.uint,r,1);for(let r=-1;r>=-24;r--)Z[31-r]=new m(u.negint,r,1);Z[64]=new m(u.bytes,new Uint8Array(0),1);Z[96]=new m(u.string,"",1);Z[128]=new m(u.array,0,1);Z[160]=new m(u.map,0,1);Z[244]=new m(u.false,!1,1);Z[245]=new m(u.true,!0,1);Z[246]=new m(u.null,null,1);function Oi(r){switch(r.type){case u.false:return ne([244]);case u.true:return ne([245]);case u.null:return ne([246]);case u.bytes:return r.value.length?void 0:ne([64]);case u.string:return r.value===""?ne([96]):void 0;case u.array:return r.value===0?ne([128]):void 0;case u.map:return r.value===0?ne([160]):void 0;case u.uint:return r.value<24?ne([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return ne([31-Number(r.value)])}}var Nc={float64:!1,mapSorter:Bc,quickEncodeToken:Oi};function Dc(){let r=[];return r[u.uint.major]=G,r[u.negint.major]=Vt,r[u.bytes.major]=Oe,r[u.string.major]=pi,r[u.array.major]=Kt,r[u.map.major]=Gt,r[u.tag.major]=Wt,r[u.float.major]=Qt,r}var qi=Dc(),mn=new ot,Yt=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(`${ue} object contains circular references`);return new r(t,e)}},xe={null:new m(u.null,null),undefined:new m(u.undefined,void 0),true:new m(u.true,!0),false:new m(u.false,!1),emptyArray:new m(u.array,0),emptyMap:new m(u.map,0)},be={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new m(u.float,r):r>=0?new m(u.uint,r):new m(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new m(u.uint,r):new m(u.negint,r)},Uint8Array(r,e,t,n){return new m(u.bytes,r)},string(r,e,t,n){return new m(u.string,r)},boolean(r,e,t,n){return r?xe.true:xe.false},null(r,e,t,n){return xe.null},undefined(r,e,t,n){return xe.undefined},ArrayBuffer(r,e,t,n){return new m(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new m(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[xe.emptyArray,new m(u.break)]:xe.emptyArray;n=Yt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Xt(s,t,n);return t.addBreakTokens?[new m(u.array,r.length),o,new m(u.break)]:[new m(u.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?[xe.emptyMap,new m(u.break)]:xe.emptyMap;n=Yt.createCheck(n,r);let c=[],f=0;for(let p of i)c[f++]=[Xt(p,t,n),Xt(o?r.get(p):r[p],t,n)];return Uc(c,t),t.addBreakTokens?[new m(u.map,s),c,new m(u.break)]:[new m(u.map,s),c]}};be.Map=be.Object;be.Buffer=be.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))be[`${r}Array`]=be.DataView;function Xt(r,e={},t){let n=Oo(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||be[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=be[n];if(!i)throw new Error(`${ue} unsupported type: ${n}`);return i(r,n,e,t)}function Uc(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Bc(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=qi[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function ji(r,e,t,n){if(Array.isArray(e))for(let o of e)ji(r,o,t,n);else t[e.type.major](r,e,n)}function gn(r,e,t){let n=Xt(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 ot(s);if(i(c,n,t),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return nt(c.chunks[0])}}return mn.reset(),ji(mn,n,e,t),mn.toBytes(!0)}function Ce(r,e){return e=Object.assign({},Nc,e),gn(r,qi,e)}var Fc={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Zt=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=x[e];if(!n)throw new Error(`${_} 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}},ct=Symbol.for("DONE"),er=Symbol.for("BREAK");function $c(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=Ve(e,t);if(i===er){if(r.value===1/0)break;throw new Error(`${_} got unexpected break to lengthed array`)}if(i===ct)throw new Error(`${_} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function zc(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=Ve(e,t);if(c===er){if(r.value===1/0)break;throw new Error(`${_} got unexpected break to lengthed map`)}if(c===ct)throw new Error(`${_} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${_} non-string keys not supported (got ${typeof c})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${_} found repeat map key "${c}"`);let f=Ve(e,t);if(f===ct)throw new Error(`${_} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(c,f):o[c]=f}return n?i:o}function Ve(r,e){if(r.done())return ct;let t=r.next();if(t.type===u.break)return er;if(t.type.terminal)return t.value;if(t.type===u.array)return $c(t,r,e);if(t.type===u.map)return zc(t,r,e);if(t.type===u.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Ve(r,e);return e.tags[t.value](n)}throw new Error(`${_} tag not supported (${t.value})`)}throw new Error("unsupported")}function yn(r,e){if(!(r instanceof Uint8Array))throw new Error(`${_} data to decode must be a Uint8Array`);e=Object.assign({},Fc,e);let t=e.tokenizer||new Zt(r,e),n=Ve(t,e);if(n===ct)throw new Error(`${_} did not find any content to decode`);if(n===er)throw new Error(`${_} got unexpected break`);return[n,r.subarray(t.pos())]}function ee(r,e){let[t,n]=yn(r,e);if(n.length>0)throw new Error(`${_} too many terminals, data makes no sense`);return t}function O(r,e="utf8"){let t=Nt[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var le="/",Hi=new TextEncoder().encode(le),tr=Hi[0],de=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=O(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]!==tr)throw new Error("Invalid key")}toString(e="utf8"){return $e(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(le))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Hi),this._buf[0]!==tr){let e=new Uint8Array(this._buf.byteLength+1);e.fill(tr,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===tr;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(le).slice(1)}type(){return Mc(this.baseNamespace())}name(){return Rc(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(le)||(e+=le),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(le):new r(e.slice(0,-1).join(le))}child(e){return this.toString()===le?e:e.toString()===le?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Oc(e.map(t=>t.namespaces()))])}};function Mc(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Rc(r){let e=r.split(":");return e[e.length-1]}function Oc(r){return[].concat(...r)}function rr({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*qc(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],i=N.asCID(n);i!=null?yield[o.join("/"),i]:typeof n=="object"&&(yield*wn(n,o))}else{let t=N.asCID(e);t!=null?yield[r.join("/"),t]:yield*wn(e,r)}}function*wn(r,e){if(r==null||r instanceof Uint8Array)return;let t=N.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let i=[...e,n];yield*qc(i,o)}}function*jc(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&N.asCID(n)==null&&(yield*xn(n,o))}else yield*xn(e,r)}function*xn(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"&&N.asCID(n)==null&&(yield*jc(o,n))}}function Vc(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=N.asCID(t);if(i!=null)return{value:i,remaining:e.slice(n+1).join("/")}}return{value:t}}var bn=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:rr(),bytes:rr(),value:rr(),asBlock:rr()})}links(){return wn(this.value,[])}tree(){return xn(this.value,[])}get(e="/"){return Vc(this.value,e.split("/").filter(Boolean))}};function Ki({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 bn({cid:e,bytes:r,value:o})}function Se(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 Qi="/pin/",Gi="/pinned-block/",En=se,Wi=1;function nr(r){return r.version===0&&(r=r.toV1()),new de(`${Qi}${r.toString(En)}`)}var or=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=nr(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 ce({concurrency:Wi});for await(let c of this.#e(e,i,{...t,depth:o}))await this.#o(c,f=>f.pinnedBy.find(p=>Se(p,e.bytes))!=null?!1:(f.pinCount++,f.pinnedBy.push(e.bytes),!0),t),yield c;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,Ce(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=Ki({bytes:i,cid:e,codec:o});yield e;for await(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 de(`${Gi}${En.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,Ce(i),n),n.onProgress?.(new L("helia:pin:add",e))}}async*rm(e,t={}){let n=nr(e),o=await this.datastore.get(n,t),i=ee(o);await this.datastore.delete(n,t);let s=new ce({concurrency:Wi});for await(let c of this.#e(e,s,{...t,depth:i.depth}))await this.#o(c,f=>(f.pinCount--,f.pinnedBy=f.pinnedBy.filter(p=>Se(p,e.bytes)),!0),{...t,depth:i.depth}),yield c}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Qi+(e.cid!=null?`${e.cid.toString(se)}`:"")},e)){let o=N.parse(t.toString().substring(5),se),i=ee(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new de(`${Gi}${En.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=nr(e),o=await this.datastore.get(n,t);return ee(o)}async setMetadata(e,t,n){let o=nr(e),i=await this.datastore.get(o,n),s=ee(i);s.metadata=t??{},await this.datastore.put(o,Ce(s),n)}};var ir=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},Ae=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},sr=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},ar=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var cr=class extends ce{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};function Hc(r){return r[Symbol.asyncIterator]!=null}function Kc(...r){let e=[];for(let t of r)Hc(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=Ft({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var ur=Kc;var Gc=5,fr=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 he(...this.routers)}async stop(){await pe(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");let n=new cr({concurrency:this.providerLookupConcurrency});n.addEventListener("error",()=>{});for await(let o of ur(n.toGenerator(),...Ie(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 Ae("No content routers available");await Promise.all(Ie(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ie(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ie(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Ie(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new Ae("No peer routers available");let n=this,o=ur(...Ie(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 xt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Ae("No peer routers available");for await(let n of ur(...Ie(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ie(r,e){return r.filter(t=>t[e]!=null)}var Ee={},He=r=>{r.addEventListener("message",e=>{He.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{He.dispatchEvent("message",r,e)})};He.addEventListener=(r,e)=>{Ee[r]==null&&(Ee[r]=[]),Ee[r].push(e)};He.removeEventListener=(r,e)=>{Ee[r]!=null&&(Ee[r]=Ee[r].filter(t=>t===e))};He.dispatchEvent=function(r,e,t){Ee[r]!=null&&Ee[r].forEach(n=>n(e,t))};var vn=He;var _n="lock:worker:request-read",kn="lock:worker:release-read",Cn="lock:master:grant-read",Sn="lock:worker:request-write",An="lock:worker:release-write",In="lock:master:grant-write";var Ji=(r=21)=>Math.random().toString().substring(2);var Xi=(r,e,t,n,o)=>(i,s)=>{if(s.data.type!==t)return;let c={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:c.name,handler:async()=>{i.postMessage({type:o,name:c.name,identifier:c.identifier}),await new Promise(f=>{let p=d=>{if(d?.data==null)return;let l={type:d.data.type,name:d.data.name,identifier:d.data.identifier};l.type===n&&l.identifier===c.identifier&&(i.removeEventListener("message",p),f())};i.addEventListener("message",p)})}}}))},Yi=(r,e,t,n)=>async()=>{let o=Ji();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(i=>{let s=c=>{if(c?.data==null)return;let f={type:c.data.type,identifier:c.data.identifier};f.type===t&&f.identifier===o&&(globalThis.removeEventListener("message",s),i(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",s)})},Wc={singleProcess:!1},Zi=r=>{if(r=Object.assign({},Wc,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return vn.addEventListener("message",Xi(t,"requestReadLock",_n,kn,Cn)),vn.addEventListener("message",Xi(t,"requestWriteLock",Sn,An,In)),t}return{isWorker:!0,readLock:t=>Yi(t,_n,Cn,kn),writeLock:t=>Yi(t,Sn,In,An)}};var Te={},ve;async function Tn(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Xe((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Qc=(r,e)=>{if(ve.isWorker===!0)return{readLock:ve.readLock(r,e),writeLock:ve.writeLock(r,e)};let t=new we({concurrency:1}),n;return{async readLock(){if(n!=null)return Tn(n,e);n=new we({concurrency:e.concurrency,autoStart:!1});let o=n,i=Tn(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),i},async writeLock(){return n=null,Tn(t,e)}}},Jc={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Pn(r){let e=Object.assign({},Jc,r);return ve==null&&(ve=Zi(e),ve.isWorker!==!0&&(ve.addEventListener("requestReadLock",t=>{Te[t.data.name]!=null&&Te[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),ve.addEventListener("requestWriteLock",async t=>{Te[t.data.name]!=null&&Te[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Te[e.name]==null&&(Te[e.name]=Qc(e.name,e)),Te[e.name]}var lr=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Pn({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await pe(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 Ln=new de("/version"),es=1;async function ts(r){if(!await r.has(Ln)){await r.put(Ln,O(`${es}`));return}let e=await r.get(Ln),t=$e(e);if(parseInt(t,10)!==es)throw new Error("Unknown datastore version, a datastore migration may be required")}var Un={};U(Un,{code:()=>Dn,decode:()=>iu,decodeOptions:()=>ru,encode:()=>ou,encodeOptions:()=>eu,name:()=>nu,toByteView:()=>ns});var rs=42;function ns(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Xc(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=N.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new m(u.tag,rs),new m(u.bytes,t)]}function Yc(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Zc(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 Nn={float64:!0,typeEncoders:{Object:Xc,undefined:Yc,number:Zc}},eu={...Nn,typeEncoders:{...Nn.typeEncoders}};function tu(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return N.decode(r.subarray(1))}var dr={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};dr.tags[rs]=tu;var ru={...dr,tags:dr.tags.slice()},nu="dag-cbor",Dn=113,ou=r=>Ce(r,Nn),iu=r=>ee(ns(r),dr);var On={};U(On,{code:()=>Rn,decode:()=>is,encode:()=>os,format:()=>gu,name:()=>mu,parse:()=>wu,stringify:()=>gu});var Bn=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===u.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===u.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[u.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)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${ue} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=jt(JSON.stringify(t.value));e.push(n.length>32?nt(n):n)}[u.array.major](e,t){this.prefix(e),this.inRecursive.push({type:u.array,elements:0}),e.push([91])}[u.map.major](e,t){this.prefix(e),this.inRecursive.push({type:u.map,elements:0}),e.push([123])}[u.tag.major](e,t){}[u.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===u.array)e.push([93]);else if(s.type===u.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(`${ue} 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 su(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ue} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${ue} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ue} unexpected duplicate map keys, this is not supported`)}var au={addBreakTokens:!0,mapSorter:su};function Fn(r,e){return e=Object.assign({},au,e),gn(r,new Bn,e)}var Ke=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(`${_} 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(`${_} 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 f=this.ch();if(c.includes(f))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 m(u.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(`${_} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${_} 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 m(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new m(s>=0?u.uint:u.negint,s,this._pos-e):new m(s>=0?u.uint:u.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${_} 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 f=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new m(u.string,f,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${_} 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(`${_} 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(`${_} unexpected unicode sequence at position ${this._pos}`);let f,p,d,l;switch(c){case 1:i<128&&(s=i);break;case 2:f=this.data[this._pos+1],(f&192)===128&&(l=(i&31)<<6|f&63,l>127&&(s=l));break;case 3:f=this.data[this._pos+1],p=this.data[this._pos+2],(f&192)===128&&(p&192)===128&&(l=(i&15)<<12|(f&63)<<6|p&63,l>2047&&(l<55296||l>57343)&&(s=l));break;case 4:f=this.data[this._pos+1],p=this.data[this._pos+2],d=this.data[this._pos+3],(f&192)===128&&(p&192)===128&&(d&192)===128&&(l=(i&15)<<18|(f&63)<<12|(p&63)<<6|d&63,l>65535&&l<1114112&&(s=l))}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(`${_} 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(`${_} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new m(u.string,fn(t),this._pos-e);default:if(i<32)throw new Error(`${_} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${_} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new m(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new m(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new m(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new m(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new m(u.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(`${_} 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 m(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${_} 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 m(u.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 m(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${_} 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 m(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${_} 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(`${_} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function $n(r,e){return e=Object.assign({tokenizer:new Ke(r,e)},e),ee(r,e)}function uu(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=N.asCID(r);if(!e)return null;let t=e.toString();return[new m(u.map,1/0,1),new m(u.string,"/",1),new m(u.string,t,t.length),new m(u.break,void 0,1)]}function hr(r){let e=ye.encode(r).slice(1);return[new m(u.map,1/0,1),new m(u.string,"/",1),new m(u.map,1/0,1),new m(u.string,"bytes",5),new m(u.string,e,e.length),new m(u.break,void 0,1),new m(u.break,void 0,1)]}function te(r){return hr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function lu(r){return hr(new Uint8Array(r))}function du(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function hu(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 pu={typeEncoders:{Object:fu,Buffer:hr,Uint8Array:hr,Int8Array:te,Uint16Array:te,Int16Array:te,Uint32Array:te,Int32Array:te,Float32Array:te,Float64Array:te,Uint8ClampedArray:te,BigInt64Array:te,BigUint64Array:te,DataView:te,ArrayBuffer:lu,undefined:du,number:hu}},zn=class extends Ke{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===u.map){let t=this._next();if(t.type===u.string&&t.value==="/"){let n=this._next();if(n.type===u.string){if(this._next().type!==u.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new m(u.tag,42,0)}if(n.type===u.map){let o=this._next();if(o.type===u.string&&o.value==="bytes"){let i=this._next();if(i.type===u.string){for(let c=0;c<2;c++)if(this._next().type!==u.break)throw new Error("Invalid encoded Bytes form");let s=ye.decode(`m${i.value}`);return new m(u.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Mn={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Mn.tags[42]=N.parse;var mu="dag-json",Rn=297,os=r=>Fn(r,pu),is=r=>{let e=uu(r),t=Object.assign(Mn,{tokenizer:new zn(e,Mn)});return $n(e,t)},gu=r=>yu.decode(os(r));var yu=new TextDecoder,wu=r=>is(xu.encode(r)),xu=new TextEncoder;var Gn={};U(Gn,{code:()=>Kn,createLink:()=>ms,createNode:()=>ps,decode:()=>Nu,encode:()=>Lu,name:()=>Pu,prepare:()=>Vn,validate:()=>Hn});var bu=new TextDecoder;function qn(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 pr(r,e){let t;[t,e]=qn(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]=qn(r,e),[t&7,t>>3,e]}function Eu(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]=pr(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]=pr(r,n),e.Name=bu.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]=qn(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,f;if([c,f,t]=ss(r,t),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(f===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=pr(r,t),n&&(o=!0)}else if(f===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let p;[p,t]=pr(r,t),n.push(Eu(p))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${f}`)}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,vu=2**31;function _u(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=ut(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=ut(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ut(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function fs(r){let e=Cu(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ut(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let i=_u(r.Links[o],t.subarray(0,n));n-=i,n=ut(t,n,i)-1,t[n]=18}return t}function ku(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ge(t)}if(typeof r.Name=="string"){let t=us.encode(r.Name).length;e+=1+t+Ge(t)}return typeof r.Tsize=="number"&&(e+=1+Ge(r.Tsize)),e}function Cu(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ge(t)}if(r.Links)for(let t of r.Links){let n=ku(t);e+=1+n+Ge(n)}return e}function ut(r,e,t){e-=Ge(t);let n=e;for(;t>=vu;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Ge(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+Au[r]}var Au=[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 Iu=["Data","Links"],Tu=["Hash","Name","Tsize"],jn=new TextEncoder;function ds(r,e){if(r===e)return 0;let t=r.Name?jn.encode(r.Name):[],n=e.Name?jn.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 ls(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function hs(r){if(typeof r.asCID=="object"){let t=N.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=N.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=N.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=N.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 Vn(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=jn.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 Hn(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!ls(r,Iu))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(!ls(t,Tu))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 Vn({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 Pu="dag-pb",Kn=112;function Lu(r){Hn(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),fs(e)}function Nu(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=N.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={[Kn]:Gn,[Qr]:At,[Dn]:Un,[Rn]:On,[Wr]:St};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 ar(`Could not load codec for ${n}`)}}function ws(r=[],e){let t={[Pt.code]:Pt,[Lt.code]:Lt,[Tt.code]:Tt};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 sr(`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 mr=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 gr=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 yr=0,wr=class extends gr{child;constructor(e){super(),this.child=e}put(e,t){return e.multihash.code===yr||this.child==null?e:this.child.put(e,t)}get(e){if(e.multihash.code===yr)return e.multihash.digest;if(this.child==null)throw new mr;return this.child.get(e)}has(e){return e.multihash.code===yr?!0:this.child==null?!1:this.child.has(e)}delete(e){if(e.code!==yr&&this.child!=null)return this.child.delete(e)}getAll(e){return this.child!=null?this.child.getAll(e):[]}};function Du(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 xr=Du;function Uu(r){return r[Symbol.asyncIterator]!=null}function Bu(r,e){let t=0;if(Uu(r))return async function*(){for await(let f of r)await e(f,t++)&&(yield f)}();let n=xr(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 f of n)await e(f,t++)&&(yield f)}();let c=e;return function*(){s===!0&&(yield o);for(let f of n)c(f,t++)&&(yield f)}()}var xs=Bu;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 f of r){let p=e(f,t++);bs(p)&&await p,yield f}}();let n=xr(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 f of n){let p=e(f,t++);bs(p)&&await p,yield f}}();let c=e;return function*(){yield o;for(let f of n)c(f,t++),yield f}()}var Wn=$u;var br=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 wr(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new L("blocks:put:duplicate",e)),e):(n.onProgress?.(new L("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new L("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 L("blocks:put-many:duplicate",i)),!s}),o=Wn(n,async({cid:i,block:s})=>{t.onProgress?.(new L("blocks:put-many:providers:notify",i)),await Promise.all(this.components.blockBrokers.map(async c=>c.announce?.(i,s,t)))});t.onProgress?.(new L("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 L("blocks:get:providers:get",e));let o=await Es(e,this.components.blockBrokers,n,{...t,log:this.log});return t.onProgress?.(new L("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new L("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,o,t))),o}return t.onProgress?.(new L("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new L("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Wn(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new L("blocks:get-many:providers:get",n));let i=await Es(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new L("blocks:get-many:blockstore:put",n)),await this.child.put(n,i,t),t.onProgress?.(new L("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 L("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new L("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 L("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Er=class extends br{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await pe(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new Qn({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},Qn=class extends br{closeController;constructor(e,t){super(e),this.closeController=new AbortController,F(1/0,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]);F(1/0,o);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]);F(1/0,n);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async get(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{return await super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=oe([this.closeController.signal,t.signal]);F(1/0,n);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=oe([this.closeController.signal,e.signal]);F(1/0,t);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 wt(`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,!Se(n.digest,r.multihash.digest))throw new bt("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]);F(1/0,i.signal,s);let c=[];for(let f of e)zu(f)&&c.push(f);try{return await Promise.any(c.map(async f=>{try{let p=!1,d=await f.retrieve(r,{...n,signal:s,validateFn:async l=>{await o(l),p=!0}});return p||await o(d),d}catch(p){throw n.log.error("could not retrieve verified block for %c",r,p),p}}))}finally{i.abort(),s.clear()}}var Jn=64,re=class{fp;h;seed;constructor(e,t,n,o=2){if(o>Jn)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),s=To(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?Se(this.fp,e.fp):!1}};function Pe(r,e){return Math.floor(Math.random()*(e-r))+r}var Le=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=Pe(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 Xn={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Cs={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Ss=new globalThis.TextEncoder;function Ru(r,e){let t=Xn[e],n=Cs[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Ou(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=Xn[e],o=Cs[e],i=r;for(;i.length>0;){let s=Ss.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 Yn(r,{size:e=32,utf8Buffer:t}={}){if(!Xn[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 Ou(r,e,t);r=Ss.encode(r)}return Ru(r,e)}var qu=Cr(ks(),1);var lt={hash:r=>Number(Yn(r,{size:32})),hashV:(r,e)=>ju(lt.hash(r,e))};function ju(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),O(e,"base16")}var Vu=500,dt=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??lt,this.seed=e.seed??Pe(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=O(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 Le(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new Le(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let i=[n,o],s=i[Pe(0,i.length-1)];this.buckets[s]==null&&(this.buckets[s]=new Le(this.bucketSize));for(let c=0;c<Vu;c++){let f=this.buckets[s].swap(t);if(f!=null&&(s=(s^f.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new Le(this.bucketSize)),this.buckets[s].add(f)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=O(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=O(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 As(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)),Jn);return{filterSize:o,bucketSize:t,fingerprintSize:i}}var _r=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??lt,this.seed=e.seed??Pe(0,Math.pow(2,10)),this.filterSeries=[new dt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=O(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 dt({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=O(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=O(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 Zn(r,e=.001,t){return new _r({...As(r,e),...t??{}})}var kr=class extends Ne{intialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;constructor(e,t){super(),F(1/0,this),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=Zn(this.maxProviders)}async retrieve(e,t={}){let n=ye.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let i=ae();if(this.requests.set(n,i.promise),this.providers.length===0){let p=!1;this.intialPeerSearchComplete==null&&(p=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.intialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.intialPeerSearchComplete,p&&this.log("found initial session peers for %c",e)}let s=!1,c=new ce({concurrency:this.maxProviders});c.addEventListener("error",()=>{}),c.addEventListener("failure",p=>{this.log.error("error querying provider %o, evicting from session",p.detail.job.options.provider,p.detail.error),this.evict(p.detail.job.options.provider)}),c.addEventListener("success",p=>{s=!0,i.resolve(p.detail.result)}),c.addEventListener("idle",()=>{s||t.signal?.aborted===!0||Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let p=0;p<this.minProviders&&this.providers.length!==0;p++){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(p=>{this.log.error("could not find new providers for %c",e,p),i.reject(p)})});let f=p=>{c.add(async()=>this.queryProvider(e,p.detail,t),{provider:p.detail}).catch(d=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,d)})};this.addEventListener("provider",f),Promise.all([...this.providers].map(async p=>c.add(async()=>this.queryProvider(e,p,t),{provider:p}))).catch(p=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,p)});try{return await i.promise}finally{this.removeEventListener("provider",f),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=ae(),i=0;return Promise.resolve().then(async()=>{this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e);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 ir(`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 eo=class{blockstore;datastore;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??fo(),this.log=this.logger.forComponent("helia"),this.getHasher=ws(e.hashers,e.loadHasher),this.getCodec=ys(e.codecs,e.loadCodec),this.dns=e.dns??zo(),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 fr(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[Sr]!=null&&i.push(o[Sr]),o[Ar]!=null&&i.push(o[Ar]),i}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Er(t);this.pins=new or(e.datastore,n,this.getCodec),this.blockstore=new lr(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 he(this.blockstore,this.datastore,this.routing)}async stop(){await pe(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 Mo(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 L("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new L("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Ds(Qu);})();
3
3
  return HeliaUtils}));
@@ -1,5 +1,5 @@
1
1
  import type { Routing as RoutingInterface, Provider, RoutingOptions } from '@helia/interface';
2
- import type { AbortOptions, ComponentLogger, PeerId, PeerInfo, Startable } from '@libp2p/interface';
2
+ import type { AbortOptions, ComponentLogger, Metrics, PeerId, PeerInfo, Startable } from '@libp2p/interface';
3
3
  import type { CID } from 'multiformats/cid';
4
4
  export interface RoutingInit {
5
5
  routers: Array<Partial<RoutingInterface>>;
@@ -7,6 +7,7 @@ export interface RoutingInit {
7
7
  }
8
8
  export interface RoutingComponents {
9
9
  logger: ComponentLogger;
10
+ metrics?: Metrics;
10
11
  }
11
12
  export declare class Routing implements RoutingInterface, Startable {
12
13
  private readonly log;
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAI3C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACzC,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,OAAQ,YAAW,gBAAgB,EAAE,SAAS;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAQ;gBAErC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW;IAMvD,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC;IA0DvF;;;OAGG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D,eAAe,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF;;;OAGG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IASxE;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BxE;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAgBjG"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAU,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACpH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAI3C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACzC,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,OAAQ,YAAW,gBAAgB,EAAE,SAAS;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAQ;gBAErC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW;IA4BvD,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC;IA0DvF;;;OAGG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D,eAAe,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF;;;OAGG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IASxE;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BxE;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAgBjG"}
@@ -11,6 +11,27 @@ export class Routing {
11
11
  this.log = components.logger.forComponent('helia:routing');
12
12
  this.routers = init.routers ?? [];
13
13
  this.providerLookupConcurrency = init.providerLookupConcurrency ?? DEFAULT_PROVIDER_LOOKUP_CONCURRENCY;
14
+ this.findProviders = components.metrics?.traceFunction('helia.routing.findProviders', this.findProviders.bind(this), {
15
+ optionsIndex: 1
16
+ }) ?? this.findProviders;
17
+ this.provide = components.metrics?.traceFunction('helia.routing.provide', this.provide.bind(this), {
18
+ optionsIndex: 1
19
+ }) ?? this.provide;
20
+ this.cancelReprovide = components.metrics?.traceFunction('helia.routing.cancelReprovide', this.cancelReprovide.bind(this), {
21
+ optionsIndex: 1
22
+ }) ?? this.cancelReprovide;
23
+ this.put = components.metrics?.traceFunction('helia.routing.put', this.put.bind(this), {
24
+ optionsIndex: 2
25
+ }) ?? this.put;
26
+ this.get = components.metrics?.traceFunction('helia.routing.get', this.get.bind(this), {
27
+ optionsIndex: 1
28
+ }) ?? this.get;
29
+ this.findPeer = components.metrics?.traceFunction('helia.routing.findPeer', this.findPeer.bind(this), {
30
+ optionsIndex: 1
31
+ }) ?? this.findPeer;
32
+ this.getClosestPeers = components.metrics?.traceFunction('helia.routing.getClosestPeers', this.getClosestPeers.bind(this), {
33
+ optionsIndex: 1
34
+ }) ?? this.getClosestPeers;
14
35
  }
15
36
  async start() {
16
37
  await start(...this.routers);
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,MAAM,UAAU,CAAA;AAK5B,MAAM,mCAAmC,GAAG,CAAC,CAAA;AAW7C,MAAM,OAAO,OAAO;IACD,GAAG,CAAQ;IACX,OAAO,CAAkC;IACzC,yBAAyB,CAAQ;IAElD,YAAa,UAA6B,EAAE,IAAiB;QAC3D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,IAAI,mCAAmC,CAAA;IACxG,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAE,aAAa,CAAE,GAAQ,EAAE,UAA0B,EAAE;QAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAA;QACnE,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,gDAAgD;QAChD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAkB;YAC3C,WAAW,EAAE,IAAI,CAAC,yBAAyB;SAC5C,CAAC,CAAA;QACF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEzC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAC5B,KAAK,CAAC,WAAW,EAAE,EACnB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;aACvC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CACrD,EAAE,CAAC;YACF,qEAAqE;YACrE,sBAAsB;YACtB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,oEAAoE;YACpE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,+BAA+B;gBAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,SAAQ;gBACV,CAAC;gBAED,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBACnB,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;wBAEtD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACrC,OAAO,IAAI,CAAA;wBACb,CAAC;wBAED,OAAO,QAAQ,CAAA;oBACjB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;wBACrE,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC,EAAE;oBACD,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC;qBACC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvE,CAAC,CAAC,CAAA;YACN,CAAC;YAED,MAAM,IAAI,CAAA;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;aAC9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACzD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACtC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,KAAiB,EAAE,OAAsB;QACnE,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;aAC1B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,OAAsB;QAChD,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;aAC1B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,EAAU,EAAE,OAAwB;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,MAAM,GAAG,KAAK,CAClB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;aAClC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,SAAU,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAA0B,EAAE;QACpE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAChE,CAAC;QAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAC5B,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACzC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CACvD,EAAE,CAAC;YACF,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,MAAM,IAAI,CAAA;QACZ,CAAC;IACH,CAAC;CACF;AAED,SAAS,QAAQ,CAAoC,OAAc,EAAE,GAAc;IACjF,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,MAAM,UAAU,CAAA;AAK5B,MAAM,mCAAmC,GAAG,CAAC,CAAA;AAY7C,MAAM,OAAO,OAAO;IACD,GAAG,CAAQ;IACX,OAAO,CAAkC;IACzC,yBAAyB,CAAQ;IAElD,YAAa,UAA6B,EAAE,IAAiB;QAC3D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,IAAI,mCAAmC,CAAA;QAEtG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,6BAA6B,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnH,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjG,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzH,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAA;QAC1B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrF,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrF,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpG,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;QACnB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzH,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAE,aAAa,CAAE,GAAQ,EAAE,UAA0B,EAAE;QAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAA;QACnE,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,gDAAgD;QAChD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAkB;YAC3C,WAAW,EAAE,IAAI,CAAC,yBAAyB;SAC5C,CAAC,CAAA;QACF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEzC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAC5B,KAAK,CAAC,WAAW,EAAE,EACnB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;aACvC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CACrD,EAAE,CAAC;YACF,qEAAqE;YACrE,sBAAsB;YACtB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,oEAAoE;YACpE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,+BAA+B;gBAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,SAAQ;gBACV,CAAC;gBAED,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBACnB,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;wBAEtD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACrC,OAAO,IAAI,CAAA;wBACb,CAAC;wBAED,OAAO,QAAQ,CAAA;oBACjB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;wBACrE,OAAO,IAAI,CAAA;oBACb,CAAC;gBACH,CAAC,EAAE;oBACD,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC;qBACC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvE,CAAC,CAAC,CAAA;YACN,CAAC;YAED,MAAM,IAAI,CAAA;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;aAC9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACzD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACtC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,KAAiB,EAAE,OAAsB;QACnE,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;aAC1B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,OAAsB;QAChD,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;aAC1B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,EAAU,EAAE,OAAwB;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,MAAM,GAAG,KAAK,CAClB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;aAClC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,SAAU,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAA0B,EAAE;QACpE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAA;QAChE,CAAC;QAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAC5B,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACzC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CACvD,EAAE,CAAC;YACF,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YAED,MAAM,IAAI,CAAA;QACZ,CAAC;IACH,CAAC;CACF;AAED,SAAS,QAAQ,CAAoC,OAAc,EAAE,GAAc;IACjF,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/utils",
3
- "version": "1.1.0-07e0bc0",
3
+ "version": "1.1.0-1c8583c",
4
4
  "description": "Shared code that implements the Helia API",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/utils#readme",
@@ -54,11 +54,11 @@
54
54
  "test:electron-main": "aegir test -t electron-main"
55
55
  },
56
56
  "dependencies": {
57
- "@helia/interface": "5.1.0-07e0bc0",
57
+ "@helia/interface": "5.1.0-1c8583c",
58
58
  "@ipld/dag-cbor": "^9.2.2",
59
59
  "@ipld/dag-json": "^10.2.3",
60
60
  "@ipld/dag-pb": "^4.1.3",
61
- "@libp2p/interface": "^2.2.1",
61
+ "@libp2p/interface": "^2.4.0",
62
62
  "@libp2p/logger": "^5.1.4",
63
63
  "@libp2p/utils": "^6.2.1",
64
64
  "@multiformats/dns": "^1.0.6",
package/src/routing.ts CHANGED
@@ -3,7 +3,7 @@ import { NotFoundError, start, stop } from '@libp2p/interface'
3
3
  import { PeerQueue } from '@libp2p/utils/peer-queue'
4
4
  import merge from 'it-merge'
5
5
  import type { Routing as RoutingInterface, Provider, RoutingOptions } from '@helia/interface'
6
- import type { AbortOptions, ComponentLogger, Logger, PeerId, PeerInfo, Startable } from '@libp2p/interface'
6
+ import type { AbortOptions, ComponentLogger, Logger, Metrics, PeerId, PeerInfo, Startable } from '@libp2p/interface'
7
7
  import type { CID } from 'multiformats/cid'
8
8
 
9
9
  const DEFAULT_PROVIDER_LOOKUP_CONCURRENCY = 5
@@ -15,6 +15,7 @@ export interface RoutingInit {
15
15
 
16
16
  export interface RoutingComponents {
17
17
  logger: ComponentLogger
18
+ metrics?: Metrics
18
19
  }
19
20
 
20
21
  export class Routing implements RoutingInterface, Startable {
@@ -26,6 +27,28 @@ export class Routing implements RoutingInterface, Startable {
26
27
  this.log = components.logger.forComponent('helia:routing')
27
28
  this.routers = init.routers ?? []
28
29
  this.providerLookupConcurrency = init.providerLookupConcurrency ?? DEFAULT_PROVIDER_LOOKUP_CONCURRENCY
30
+
31
+ this.findProviders = components.metrics?.traceFunction('helia.routing.findProviders', this.findProviders.bind(this), {
32
+ optionsIndex: 1
33
+ }) ?? this.findProviders
34
+ this.provide = components.metrics?.traceFunction('helia.routing.provide', this.provide.bind(this), {
35
+ optionsIndex: 1
36
+ }) ?? this.provide
37
+ this.cancelReprovide = components.metrics?.traceFunction('helia.routing.cancelReprovide', this.cancelReprovide.bind(this), {
38
+ optionsIndex: 1
39
+ }) ?? this.cancelReprovide
40
+ this.put = components.metrics?.traceFunction('helia.routing.put', this.put.bind(this), {
41
+ optionsIndex: 2
42
+ }) ?? this.put
43
+ this.get = components.metrics?.traceFunction('helia.routing.get', this.get.bind(this), {
44
+ optionsIndex: 1
45
+ }) ?? this.get
46
+ this.findPeer = components.metrics?.traceFunction('helia.routing.findPeer', this.findPeer.bind(this), {
47
+ optionsIndex: 1
48
+ }) ?? this.findPeer
49
+ this.getClosestPeers = components.metrics?.traceFunction('helia.routing.getClosestPeers', this.getClosestPeers.bind(this), {
50
+ optionsIndex: 1
51
+ }) ?? this.getClosestPeers
29
52
  }
30
53
 
31
54
  async start (): Promise<void> {