@helia/utils 2.1.0 → 2.1.1-3eb6f3a7
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 +2 -2
- package/dist/index.min.js.map +3 -3
- package/dist/src/abstract-session.d.ts.map +1 -1
- package/dist/src/abstract-session.js +3 -2
- package/dist/src/abstract-session.js.map +1 -1
- package/dist/src/errors.d.ts +5 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +7 -3
- package/dist/src/errors.js.map +1 -1
- package/dist/src/graph-walker.d.ts +4 -1
- package/dist/src/graph-walker.d.ts.map +1 -1
- package/dist/src/graph-walker.js +54 -72
- package/dist/src/graph-walker.js.map +1 -1
- package/dist/src/utils/datastore-version.js +2 -2
- package/dist/src/utils/datastore-version.js.map +1 -1
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js +6 -0
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/package.json +3 -3
- package/src/abstract-session.ts +3 -2
- package/src/errors.ts +8 -3
- package/src/graph-walker.ts +64 -84
- package/src/utils/datastore-version.ts +2 -2
- package/src/utils/networked-storage.ts +7 -0
- package/dist/typedoc-urls.json +0 -18
package/dist/index.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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 ea=Object.create;var pt=Object.defineProperty;var ta=Object.getOwnPropertyDescriptor;var ra=Object.getOwnPropertyNames;var na=Object.getPrototypeOf,ia=Object.prototype.hasOwnProperty;var xi=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),T=(r,e)=>{for(var t in e)pt(r,t,{get:e[t],enumerable:!0})},Ei=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ra(e))!ia.call(r,i)&&i!==t&&pt(r,i,{get:()=>e[i],enumerable:!(n=ta(e,i))||n.enumerable});return r};var vi=(r,e,t)=>(t=r!=null?ea(na(r)):{},Ei(e||!r||!r.__esModule?pt(t,"default",{value:r,enumerable:!0}):t,r)),oa=r=>Ei(pt({},"__esModule",{value:!0}),r);var Ri=xi((cf,Yr)=>{"use strict";var $a=Object.prototype.hasOwnProperty,D="~";function We(){}Object.create&&(We.prototype=Object.create(null),new We().__proto__||(D=!1));function za(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Di(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new za(t,n||r,i),s=D?D+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function bt(r,e){--r._eventsCount===0?r._events=new We:delete r._events[e]}function N(){this._events=new We,this._eventsCount=0}N.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)$a.call(t,n)&&e.push(D?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};N.prototype.listeners=function(e){var t=D?D+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};N.prototype.listenerCount=function(e){var t=D?D+e:e,n=this._events[t];return n?n.fn?1:n.length:0};N.prototype.emit=function(e,t,n,i,o,s){var a=D?D+e:e;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,o),!0;case 6:return c.fn.call(c.context,t,n,i,o,s),!0}for(f=1,l=new Array(d-1);f<d;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var g=c.length,y;for(f=0;f<g;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),d){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,t);break;case 3:c[f].fn.call(c[f].context,t,n);break;case 4:c[f].fn.call(c[f].context,t,n,i);break;default:if(!l)for(y=1,l=new Array(d-1);y<d;y++)l[y-1]=arguments[y];c[f].fn.apply(c[f].context,l)}}return!0};N.prototype.on=function(e,t,n){return Di(this,e,t,n,!1)};N.prototype.once=function(e,t,n){return Di(this,e,t,n,!0)};N.prototype.removeListener=function(e,t,n,i){var o=D?D+e:e;if(!this._events[o])return this;if(!t)return bt(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&bt(this,o);else{for(var a=0,c=[],d=s.length;a<d;a++)(s[a].fn!==t||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:bt(this,o)}return this};N.prototype.removeAllListeners=function(e){var t;return e?(t=D?D+e:e,this._events[t]&&bt(this,t)):(this._events=new We,this._eventsCount=0),this};N.prototype.off=N.prototype.removeListener;N.prototype.addListener=N.prototype.on;N.prefixed=D;N.EventEmitter=N;typeof Yr<"u"&&(Yr.exports=N)});var to=xi((ph,eo)=>{eo.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 i(o,s){t[o]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(o){return t[o]!==void 0||n[o]!==void 0},remove:function(o){t[o]!==void 0&&(t[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=t[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){t[o]!==void 0?t[o]=s:i(o,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var Nl={};T(Nl,{AbstractSession:()=>zr,Helia:()=>bi,breadthFirstWalker:()=>Zs,depthFirstWalker:()=>Xs});var Mr=Symbol.for("@libp2p/content-routing");var Y=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Te=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var mt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var gt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Or=Symbol.for("@libp2p/peer-routing");function _i(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)_i(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function de(...r){let e=[];for(let t of r)_i(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 H=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==t),this.#e.set(e,i))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Wr={};T(Wr,{base32:()=>me,base32hex:()=>ma,base32hexpad:()=>ya,base32hexpadupper:()=>wa,base32hexupper:()=>ga,base32pad:()=>da,base32padupper:()=>pa,base32upper:()=>ha,base32z:()=>ba});var zl=new Uint8Array(0);function ki(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 X(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 Ai(r){return new TextEncoder().encode(r)}function Ci(r){return new TextDecoder().decode(r)}function sa(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(t[s]!==255)throw new TypeError(o+" is ambiguous");t[s]=i}var a=r.length,c=r.charAt(0),d=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(b){if(b instanceof Uint8Array||(ArrayBuffer.isView(b)?b=new Uint8Array(b.buffer,b.byteOffset,b.byteLength):Array.isArray(b)&&(b=Uint8Array.from(b))),!(b instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(b.length===0)return"";for(var x=0,w=0,_=0,C=b.length;_!==C&&b[_]===0;)_++,x++;for(var S=(C-_)*l+1>>>0,I=new Uint8Array(S);_!==C;){for(var F=b[_],V=0,$=S-1;(F!==0||V<w)&&$!==-1;$--,V++)F+=256*I[$]>>>0,I[$]=F%a>>>0,F=F/a>>>0;if(F!==0)throw new Error("Non-zero carry");w=V,_++}for(var K=S-w;K!==S&&I[K]===0;)K++;for(var Ie=c.repeat(x);K<S;++K)Ie+=r.charAt(I[K]);return Ie}function g(b){if(typeof b!="string")throw new TypeError("Expected String");if(b.length===0)return new Uint8Array;var x=0;if(b[x]!==" "){for(var w=0,_=0;b[x]===c;)w++,x++;for(var C=(b.length-x)*d+1>>>0,S=new Uint8Array(C);b[x];){var I=t[b.charCodeAt(x)];if(I===255)return;for(var F=0,V=C-1;(I!==0||F<_)&&V!==-1;V--,F++)I+=a*S[V]>>>0,S[V]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");_=F,x++}if(b[x]!==" "){for(var $=C-_;$!==C&&S[$]===0;)$++;for(var K=new Uint8Array(w+(C-$)),Ie=w;$!==C;)K[Ie++]=S[$++];return K}}}function y(b){var x=g(b);if(x)return x;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:g,decode:y}}var aa=sa,ca=aa,Si=ca;var jr=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")}},Vr=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let i=t.codePointAt(0);if(i===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=i,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 Ii(this,e)}},Kr=class{decoders;constructor(e){this.decoders=e}or(e){return Ii(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 Ii(r,e){return new Kr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Hr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new jr(e,t,n),this.decoder=new Vr(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Le({name:r,prefix:e,encode:t,decode:n}){return new Hr(r,e,t,n)}function pe({name:r,prefix:e,alphabet:t}){let{encode:n,decode:i}=Si(t,r);return Le({prefix:e,name:r,encode:n,decode:o=>X(i(o))})}function ua(r,e,t,n){let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),s=0,a=0,c=0;for(let d=0;d<i;++d){let l=e[r[d]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|l,s+=t,s>=8&&(s-=8,o[c++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return o}function la(r,e,t){let n=e[e.length-1]==="=",i=(1<<t)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>t;)s-=t,o+=e[i&a>>s];if(s!==0&&(o+=e[i&a<<t-s]),n)for(;(o.length*t&7)!==0;)o+="=";return o}function fa(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function A({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let i=fa(n);return Le({prefix:e,name:r,encode(o){return la(o,n,t)},decode(o){return ua(o,i,t,r)}})}var me=A({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ha=A({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),da=A({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),pa=A({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ma=A({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),ga=A({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ya=A({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wa=A({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ba=A({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Gr={};T(Gr,{base58btc:()=>W,base58flickr:()=>xa});var W=pe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),xa=pe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Qr={};T(Qr,{base64:()=>ge,base64pad:()=>Ea,base64url:()=>va,base64urlpad:()=>_a});var ge=A({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ea=A({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),va=A({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),_a=A({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function ka(r,e){if(typeof r=="string")return Aa(r);if(typeof r=="number")return Ia(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var yt=ka;function Aa(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,i=parseFloat(t),o=n.toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return i*315576e5;case"months":case"month":case"mo":return i*26298e5;case"weeks":case"week":case"w":return i*6048e5;case"days":case"day":case"d":return i*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return i*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return i*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return i*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:throw Error(`Unknown unit "${o}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function Ca(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Sa(r){let e=Math.abs(r);return e>=315576e5?be(r,e,315576e5,"year"):e>=26298e5?be(r,e,26298e5,"month"):e>=6048e5?be(r,e,6048e5,"week"):e>=864e5?be(r,e,864e5,"day"):e>=36e5?be(r,e,36e5,"hour"):e>=6e4?be(r,e,6e4,"minute"):e>=1e3?be(r,e,1e3,"second"):`${r} ms`}function Ia(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Sa(r):Ca(r)}function be(r,e,t,n){let i=e>=t*1.5;return`${Math.round(r/t)} ${n}${i?"s":""}`}function Jr(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=i,t.enabled=s,t.humanize=yt,t.destroy=d,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let f=0;for(let g=0;g<l.length;g++)f=(f<<5)-f+l.charCodeAt(g),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(l){let f,g=null,y,b;function x(...w){if(!x.enabled)return;let _=x,C=Number(new Date),S=C-(f||C);_.diff=S,_.prev=f,_.curr=C,f=C,w[0]=t.coerce(w[0]),typeof w[0]!="string"&&w.unshift("%O");let I=0;w[0]=w[0].replace(/%([a-zA-Z%])/g,(V,$)=>{if(V==="%%")return"%";I++;let K=t.formatters[$];if(typeof K=="function"){let Ie=w[I];V=K.call(_,Ie),w.splice(I,1),I--}return V}),t.formatArgs.call(_,w),(_.log||t.log).apply(_,w)}return x.namespace=l,x.useColors=t.useColors(),x.color=t.selectColor(l),x.extend=n,x.destroy=t.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(y!==t.namespaces&&(y=t.namespaces,b=t.enabled(l)),b),set:w=>{g=w}}),typeof t.init=="function"&&t.init(x),x}function n(l,f){let g=t(this.namespace+(typeof f>"u"?":":f)+l);return g.log=this.log,g}function i(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let f,g=(typeof l=="string"?l:"").split(/[\s,]+/),y=g.length;for(f=0;f<y;f++)g[f]&&(l=g[f].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.substr(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function o(){let l=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let f,g;for(f=0,g=t.skips.length;f<g;f++)if(t.skips[f].test(l))return!1;for(f=0,g=t.names.length;f<g;f++)if(t.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack??l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var wt=Ua(),Ta=["#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 La(){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 Pa(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+yt(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,i=>{i!=="%%"&&(t++,i==="%c"&&(n=t))}),r.splice(n,0,e)}var Na=console.debug??console.log??(()=>{});function Da(r){try{r?wt?.setItem("debug",r):wt?.removeItem("debug")}catch{}}function Ra(){let r;try{r=wt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function Ua(){try{return localStorage}catch{}}function Ba(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var Ti=Jr({formatArgs:Pa,save:Da,load:Ra,useColors:La,setupFormatters:Ba,colors:Ta,storage:wt,log:Na});var R=Ti;R.formatters.b=r=>r==null?"undefined":W.baseEncode(r);R.formatters.t=r=>r==null?"undefined":me.baseEncode(r);R.formatters.m=r=>r==null?"undefined":ge.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=>{if(r==null)return"undefined";let e=Li(r.message),t=Li(r.stack);return e!=null&&t!=null?t.includes(e)?t:`${e}
|
|
3
|
-
${t}`:t??e??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 Pi(){return{forComponent(r){return Ni(r)}}}function Ni(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,newScope:t=>Ni(`${r}:${t}`)})}function Li(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var v=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Xr=vi(Ri(),1);var Zr=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},Ui=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function en(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout},signal:s}=e,a,c,l=new Promise((f,g)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(s?.aborted){g(Ui(s));return}if(s&&(c=()=>{g(Ui(s))},s.addEventListener("abort",c,{once:!0})),r.then(f,g),t===Number.POSITIVE_INFINITY)return;let y=new Zr;a=o.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(b){g(b)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?f():i instanceof Error?g(i):(y.message=i??`Promise timed out after ${t} milliseconds`,g(y))},t)}).finally(()=>{l.clear(),c&&s&&s.removeEventListener("abort",c)});return l.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},l}function tn(r,e,t){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;t(r[s],e)<=0?(n=++s,i-=o+1):i=o}return n}var Ge=class{#e=[];enqueue(e,t){let{priority:n=0,id:i}=t??{},o={priority:n,id:i,run:e};if(this.size===0||this.#e[this.size-1].priority>=n){this.#e.push(o);return}let s=tn(this.#e,o,(a,c)=>c.priority-a.priority);this.#e.splice(s,0,o)}setPriority(e,t){let n=this.#e.findIndex(o=>o.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[i]=this.#e.splice(n,1);this.enqueue(i.run,{priority:t,id:e})}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Qe=class extends Xr.default{#e;#n;#i=0;#d;#p=!1;#m=!1;#u;#b=0;#g=0;#o;#s;#t;#x;#r=0;#l;#a;#C=1n;#f=new Map;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ge,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#u=e.interval,this.#t=new e.queueClass,this.#x=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#a=e.autoStart===!1,this.#R()}get#S(){return this.#n||this.#i<this.#d}get#I(){return this.#r<this.#l}#T(){this.#r--,this.#r===0&&this.emit("pendingZero"),this.#y(),this.emit("next")}#L(){this.#k(),this.#_(),this.#s=void 0}get#P(){let e=Date.now();if(this.#o===void 0){let t=this.#b-e;if(t<0){if(this.#g>0){let n=e-this.#g;if(n<this.#u)return this.#E(this.#u-n),!0}this.#i=this.#e?this.#r:0}else return this.#E(t),!0}return!1}#E(e){this.#s===void 0&&(this.#s=setTimeout(()=>{this.#L()},e))}#v(){this.#o&&(clearInterval(this.#o),this.#o=void 0)}#N(){this.#s&&(clearTimeout(this.#s),this.#s=void 0)}#y(){if(this.#t.size===0)return this.#v(),this.emit("empty"),this.#r===0&&(this.#N(),this.emit("idle")),!1;let e=!1;if(!this.#a){let t=!this.#P;if(this.#S&&this.#I){let n=this.#t.dequeue();this.#n||(this.#i++,this.#h()),this.emit("active"),this.#g=Date.now(),n(),t&&this.#_(),e=!0}}return e}#_(){this.#n||this.#o!==void 0||(this.#o=setInterval(()=>{this.#k()},this.#u),this.#b=Date.now()+this.#u)}#k(){this.#i===0&&this.#r===0&&this.#o&&this.#v(),this.#i=this.#e?this.#r:0,this.#w(),this.#h()}#w(){for(;this.#y(););}get concurrency(){return this.#l}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.#l=e,this.#w()}async#D(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#t.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#C++).toString(),t={timeout:this.timeout,...t},new Promise((n,i)=>{let o=Symbol(`task-${t.id}`);this.#t.enqueue(async()=>{this.#r++,this.#f.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});try{try{t.signal?.throwIfAborted()}catch(c){throw this.#n||this.#i--,this.#f.delete(o),c}let s=e({signal:t.signal});t.timeout&&(s=en(Promise.resolve(s),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#r} running, ${this.#t.size} waiting)`})),t.signal&&(s=Promise.race([s,this.#D(t.signal)]));let a=await s;n(a),this.emit("completed",a)}catch(s){i(s),this.emit("error",s)}finally{this.#f.delete(o),queueMicrotask(()=>{this.#T()})}},t),this.emit("add"),this.#y()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#a?(this.#a=!1,this.#w(),this):this}pause(){this.#a=!0}clear(){this.#t=new this.#x,this.#A()}async onEmpty(){this.#t.size!==0&&await this.#c("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#c("next",()=>this.#t.size<e)}async onIdle(){this.#r===0&&this.#t.size===0||await this.#c("idle")}async onPendingZero(){this.#r!==0&&await this.#c("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#c("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#c("rateLimitCleared")}async onError(){return new Promise((e,t)=>{let n=i=>{this.off("error",n),t(i)};this.on("error",n)})}async#c(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#r}get isPaused(){return this.#a}#R(){this.#n||(this.on("add",()=>{this.#t.size>0&&this.#h()}),this.on("next",()=>{this.#h()}))}#h(){this.#n||this.#m||(this.#m=!0,queueMicrotask(()=>{this.#m=!1,this.#A()}))}#A(){let e=this.#p,t=!this.#n&&this.#i>=this.#d&&this.#t.size>0;t!==e&&(this.#p=t,this.emit(t?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#p}get isSaturated(){return this.#r===this.#l&&this.#t.size>0||this.isRateLimited&&this.#t.size>0}get runningTasks(){return[...this.#f.values()].map(e=>({...e}))}};function xt(r){let e=[Z.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var rn={};T(rn,{base10:()=>Ma});var Ma=pe({prefix:"9",name:"base10",alphabet:"0123456789"});var nn={};T(nn,{base16:()=>Oa,base16upper:()=>qa});var Oa=A({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),qa=A({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var on={};T(on,{base2:()=>ja});var ja=A({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var sn={};T(sn,{base256emoji:()=>Ga});var Bi=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}"),Va=Bi.reduce((r,e,t)=>(r[t]=e,r),[]),Ka=Bi.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Ha(r){return r.reduce((e,t)=>(e+=Va[t],e),"")}function Wa(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let i=Ka[n];if(i==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}var Ga=Le({prefix:"\u{1F680}",name:"base256emoji",encode:Ha,decode:Wa});var an={};T(an,{base36:()=>ae,base36upper:()=>Qa});var ae=pe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Qa=pe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var cn={};T(cn,{base8:()=>Ja});var Ja=A({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var un={};T(un,{identity:()=>Ya});var Ya=Le({prefix:"\0",name:"identity",encode:r=>Ci(r),decode:r=>Ai(r)});var Et={};T(Et,{code:()=>ln,decode:()=>rc,encode:()=>tc,name:()=>ec});var Xa=new TextEncoder,Za=new TextDecoder,ec="json",ln=512;function tc(r){return Xa.encode(JSON.stringify(r))}function rc(r){return JSON.parse(Za.decode(r))}var vt={};T(vt,{code:()=>fn,decode:()=>oc,encode:()=>ic,name:()=>nc});var nc="raw",fn=85;function ic(r){return X(r)}function oc(r){return X(r)}var dn={};T(dn,{identity:()=>kt});var sc=zi,Fi=128,ac=127,cc=~ac,uc=Math.pow(2,31);function zi(r,e,t){e=e||[],t=t||0;for(var n=t;r>=uc;)e[t++]=r&255|Fi,r/=128;for(;r&cc;)e[t++]=r&255|Fi,r>>>=7;return e[t]=r|0,zi.bytes=t-n+1,e}var lc=hn,fc=128,$i=127;function hn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw hn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&$i)<<i:(s&$i)*Math.pow(2,i),i+=7}while(s>=fc);return hn.bytes=o-n,t}var hc=Math.pow(2,7),dc=Math.pow(2,14),pc=Math.pow(2,21),mc=Math.pow(2,28),gc=Math.pow(2,35),yc=Math.pow(2,42),wc=Math.pow(2,49),bc=Math.pow(2,56),xc=Math.pow(2,63),Ec=function(r){return r<hc?1:r<dc?2:r<pc?3:r<mc?4:r<gc?5:r<yc?6:r<wc?7:r<bc?8:r<xc?9:10},vc={encode:sc,decode:lc,encodingLength:Ec},_c=vc,Je=_c;function Ye(r,e=0){return[Je.decode(r,e),Je.decode.bytes]}function Pe(r,e,t=0){return Je.encode(r,e,t),e}function Ne(r){return Je.encodingLength(r)}function Re(r,e){let t=e.byteLength,n=Ne(r),i=n+Ne(t),o=new Uint8Array(i+t);return Pe(r,o,0),Pe(t,o,n),o.set(e,i),new De(r,t,e,o)}function Mi(r){let e=X(r),[t,n]=Ye(e),[i,o]=Ye(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new De(t,i,s,e)}function Oi(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&ki(r.bytes,t.bytes)}}var De=class{code;size;digest;bytes;constructor(e,t,n,i){this.code=e,this.size=t,this.digest=n,this.bytes=i}};var qi=0,kc="identity",ji=X;function Ac(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Re(qi,ji(r))}var kt={code:qi,name:kc,encode:ji,digest:Ac};var gn={};T(gn,{sha256:()=>At,sha512:()=>Ct});var Cc=20;function mn({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:i}){return new pn(r,e,t,n,i)}var pn=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,i,o){this.name=e,this.code=t,this.encode=n,this.minDigestLength=i??Cc,this.maxDigestLength=o}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Vi(n,this.code,t?.truncate):n.then(i=>Vi(i,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Vi(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Re(e,r)}function Hi(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var At=mn({name:"sha2-256",code:18,encode:Hi("SHA-256")}),Ct=mn({name:"sha2-512",code:19,encode:Hi("SHA-512")});function Wi(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Ic(t,yn(r),e??W.encoder);default:return Tc(t,yn(r),e??me.encoder)}}var Gi=new WeakMap;function yn(r){let e=Gi.get(r);if(e==null){let t=new Map;return Gi.set(r,t),t}return e}var k=class r{code;version;multihash;bytes;"/";constructor(e,t,n,i){this.code=t,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Ze)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Lc)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=Re(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&&Oi(e.multihash,n.multihash)}toString(e){return Wi(this,e)}toJSON(){return{"/":Wi(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:i,multihash:o,bytes:s}=t;return new r(n,i,o,s??Qi(n,i,o.bytes))}else if(t[Pc]===!0){let{version:n,multihash:i,code:o}=t,s=Mi(i);return r.create(n,o,s)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Ze)throw new Error(`Version 0 CID must use dag-pb (code: ${Ze}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let i=Qi(e,t,n.bytes);return new r(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Ze,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,i=X(e.subarray(n,n+t.multihashSize));if(i.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=i.subarray(t.multihashSize-t.digestSize),s=new De(t.multihashCode,t.digestSize,o,i);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,g]=Ye(e.subarray(t));return t+=g,f},i=n(),o=Ze;if(i===18?(i=0,t=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=t,a=n(),c=n(),d=t+c,l=d-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:d}}static parse(e,t){let[n,i]=Sc(e,t),o=r.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return yn(o).set(n,e),o}};function Sc(r,e){switch(r[0]){case"Q":{let t=e??W;return[W.prefix,t.decode(`${W.prefix}${r}`)]}case W.prefix:{let t=e??W;return[W.prefix,t.decode(r)]}case me.prefix:{let t=e??me;return[me.prefix,t.decode(r)]}case ae.prefix:{let t=e??ae;return[ae.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 Ic(r,e,t){let{prefix:n}=t;if(n!==W.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let i=e.get(n);if(i==null){let o=t.encode(r).slice(1);return e.set(n,o),o}else return i}function Tc(r,e,t){let{prefix:n}=t,i=e.get(n);if(i==null){let o=t.encode(r);return e.set(n,o),o}else return i}var Ze=112,Lc=18;function Qi(r,e,t){let n=Ne(r),i=n+Ne(e),o=new Uint8Array(i+t.byteLength);return Pe(r,o,0),Pe(e,o,n),o.set(t,i),o}var Pc=Symbol.for("@ipld/js-cid/CID");var wn={...un,...on,...cn,...rn,...nn,...Wr,...an,...Gr,...Qr,...sn},Qf={...gn,...dn};function Ji(r=0){return new Uint8Array(r)}function St(r=0){return new Uint8Array(r)}function Xi(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Yi=Xi("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),bn=Xi("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=St(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Nc={utf8:Yi,"utf-8":Yi,hex:wn.base16,latin1:bn,ascii:bn,binary:bn,...wn},It=Nc;function Ue(r,e="utf8"){let t=It[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var xn=60;function Tt(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:Z[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Z[e.type],TTL:e.TTL??e.ttl??xn,data:e.data instanceof Uint8Array?Ue(e.data):e.data}))}}var Dc=4;function En(r,e={}){let t=new Qe({concurrency:e.queryConcurrency??Dc});return async(n,i={})=>{let o=new URLSearchParams;o.set("name",n),xt(i.types).forEach(a=>{o.append("type",Z[a])}),i.onProgress?.(new v("dns:query",n));let s=await t.add(async()=>{let a=await fetch(`${r}?${o}`,{headers:{accept:"application/dns-json"},signal:i?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=Tt(await a.json());return i.onProgress?.(new v("dns:response",c)),c},{signal:i.signal});if(s==null)throw new Error("No DNS response received");return s}}function Zi(){return[En("https://cloudflare-dns.com/dns-query"),En("https://dns.google/resolve")]}var ro=vi(to(),1);var vn=class{lru;constructor(e){this.lru=(0,ro.default)(e)}get(e,t){let n=!0,i=[];for(let o of t){let s=this.getAnswers(e,o);if(s.length===0){n=!1;break}i.push(...s)}if(n)return Tt({answers:i})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,i=this.lru.get(n);if(i!=null){let o=i.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:Z[a.type]}));return o.length===0&&this.lru.remove(n),o}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,i=this.lru.get(n)??[];i.push({expires:Date.now()+(t.TTL??xn)*1e3,value:t}),this.lru.set(n,i)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function no(r){return new vn(r)}var Rc=1e3,Lt=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=no(e.cacheSize??Rc),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Zi())}async query(e,t={}){let n=xt(t.types),i=t.cached!==!1?this.cache.get(e,n):void 0;if(i!=null)return t.onProgress?.(new v("dns:cache",i)),i;let o=`${e.split(".").pop()}.`,s=(this.resolvers[o]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of s){if(t.signal?.aborted===!0)break;try{let d=await c(e,{...t,types:n});for(let l of d.Answer)this.cache.add(e,l);return d}catch(d){a.push(d),t.onProgress?.(new v("dns:error",d))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Z;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Z||(Z={}));function io(r={}){return new Lt(r)}function Uc(r){return r[Symbol.asyncIterator]!=null}function Bc(r){if(Uc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var oo=Bc;function xe(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 _n(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=St(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return t}function U(r,e="utf8"){let t=It[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var kn={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},so={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},ao=new globalThis.TextEncoder;function Fc(r,e){let t=kn[e],n=so[e];for(let i=0;i<r.length;i++)n^=BigInt(r[i]),n=BigInt.asUintN(e,n*t);return n}function $c(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=kn[e],i=so[e],o=r;for(;o.length>0;){let s=ao.encodeInto(o,t);o=o.slice(s.read);for(let a=0;a<s.written;a++)i^=BigInt(t[a]),i=BigInt.asUintN(e,i*n)}return i}function An(r,{size:e=32,utf8Buffer:t}={}){if(!kn[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return $c(r,e,t);r=ao.encode(r)}return Fc(r,e)}var et={hash:r=>Number(An(r,{size:32})),hashV:(r,e)=>zc(et.hash(r,e))};function zc(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),U(e,"base16")}var Cn=64,ee=class{fp;h;seed;constructor(e,t,n,i=2){if(i>Cn)throw new TypeError("Invalid Fingerprint Size");let o=t.hashV(e,n),s=Ji(i);for(let a=0;a<s.length;a++)s[a]=o[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?xe(this.fp,e.fp):!1}};function Ee(r,e){return Math.floor(Math.random()*(e-r))+r}var ve=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof ee))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof ee))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 ee))throw new TypeError("Invalid Fingerprint");let t=Ee(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof ee))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var Mc=500,tt=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??et,this.seed=e.seed??Ee(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new ve(this.bucketSize)),this.buckets[i]==null&&(this.buckets[i]=new ve(this.bucketSize)),this.buckets[n].add(t)||this.buckets[i].add(t))return this.count++,!0;let o=[n,i],s=o[Ee(0,o.length-1)];this.buckets[s]==null&&(this.buckets[s]=new ve(this.bucketSize));for(let a=0;a<Mc;a++){let c=this.buckets[s].swap(t);if(c!=null&&(s=(s^c.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new ve(this.bucketSize)),this.buckets[s].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.has(t)??!1;if(i)return i;let o=(n^t.hash())%this.filterSize;return this.buckets[o]?.has(t)??!1}remove(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.remove(t)??!1;if(i)return this.count--,i;let o=(n^t.hash())%this.filterSize,s=this.buckets[o]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Oc={1:.5,2:.84,4:.95,8:.98};function qc(r=.001){return r>.002?2:r>1e-5?4:8}function co(r,e=.001){let t=qc(e),n=Oc[t],i=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Cn);return{filterSize:i,bucketSize:t,fingerprintSize:o}}var Pt=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??et,this.seed=e.seed??Ee(0,Math.pow(2,10)),this.filterSeries=[new tt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=U(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new tt({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Sn(r,e=.001,t){return new Pt({...co(r,e),...t??{}})}function B(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Nt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Be=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Nt(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 Nt(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 In=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Dt(r={}){return jc(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 jc(r,e){e=e??{};let t=e.onEnd,n=new Be,i,o,s,a=B(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((w,_)=>{o=C=>{o=null,n.push(C);try{w(r(n))}catch(S){_(S)}return i}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=B()})}},d=w=>o!=null?o(w):(n.push(w),i),l=w=>(n=new Be,o!=null?o({error:w}):(n.push({error:w}),i)),f=w=>{if(s)return i;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return d({done:!1,value:w})},g=w=>s?i:(s=!0,w!=null?l(w):d({done:!0})),y=()=>(n=new Be,g(),{done:!0}),b=w=>(g(w),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:b,push:f,end:g,get readableLength(){return n.size},onEmpty:async w=>{let _=w?.signal;if(_?.throwIfAborted(),n.isEmpty())return;let C,S;_!=null&&(C=new Promise((I,F)=>{S=()=>{F(new In)},_.addEventListener("abort",S)}));try{await Promise.race([a.promise,C])}finally{S!=null&&_!=null&&_?.removeEventListener("abort",S)}}},t==null)return i;let x=i;return i={[Symbol.asyncIterator](){return this},next(){return x.next()},throw(w){return x.throw(w),t!=null&&(t(w),t=void 0),{done:!0}},return(){return x.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(w){return x.end(w),t!=null&&(t(w),t=void 0),i},get readableLength(){return x.readableLength},onEmpty:w=>x.onEmpty(w)},i}var Tn=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Ln=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},uo=r=>globalThis.DOMException===void 0?new Ln(r):new DOMException(r),lo=r=>{let e=r.reason===void 0?uo("This operation was aborted."):r.reason;return e instanceof Error?e:uo(e)};function Pn(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=e,s,a,d=new Promise((l,f)=>{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:y}=e;y.aborted&&f(lo(y)),a=()=>{f(lo(y))},y.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(l,f);return}let g=new Tn;s=o.setTimeout.call(void 0,()=>{if(n){try{l(n())}catch(y){f(y)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?l():i instanceof Error?f(i):(g.message=i??`Promise timed out after ${t} milliseconds`,f(g))},t),(async()=>{try{l(await r)}catch(y){f(y)}})()}).finally(()=>{d.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return d.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},d}var Vc=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function Kc(r,e,t){let n,i=new Promise((o,s)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:d,removeListener:l}=Vc(r),f=async(...y)=>{let b=t.multiArgs?y:y[0];if(t.filter)try{if(!await t.filter(b))return}catch(x){n(),s(x);return}c.push(b),t.count===c.length&&(n(),o(c))},g=(...y)=>{n(),s(t.rejectionMultiArgs?y:y[0])};n=()=>{for(let y of a)l(y,f);for(let y of t.rejectionEvents)a.includes(y)||l(y,g)};for(let y of a)d(y,f);for(let y of t.rejectionEvents)a.includes(y)||d(y,g);t.signal&&t.signal.addEventListener("abort",()=>{g(t.signal.reason)},{once:!0}),t.resolveImmediately&&o(c)});if(i.cancel=n,typeof t.timeout=="number"){let o=Pn(i,{milliseconds:t.timeout});return o.cancel=()=>{n(),o.clear()},o}return i}function Rt(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Kc(r,e,t),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}function Nn(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Ut=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};function Hc(r){return r.reason}async function fo(r,e,t){if(e==null)return r;let n=t?.translateError??Hc;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let i;try{return await Promise.race([r,new Promise((o,s)=>{i=()=>{s(n(e))},e.addEventListener("abort",i)})])}finally{i!=null&&e.removeEventListener("abort",i)}}var Bt=class{deferred;signal;constructor(e){this.signal=e,this.deferred=B(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Y)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Wc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ft=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Wc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Y),this.cleanup())}async join(e={}){let t=new Bt(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 fo(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 G=class extends H{concurrency;maxSize;queue;pending;sort;paused;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.paused=!1,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=Nn(this.emitEmpty.bind(this),1),this.emitIdle=Nn(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}pause(){this.paused=!0}resume(){this.paused&&(this.paused=!1,this.tryToStartAnother())}tryToStartAnother(){if(this.paused)return!1;if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Ut;let n=new Ft(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("completed",{detail:i}),this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Y)}),this.clear()}async onEmpty(e){this.size!==0&&await Rt(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await Rt(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Rt(this,"idle",e)}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=Dt({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new Y("Queue aborted"))};this.addEventListener("completed",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};function oe(r){let e=new globalThis.AbortController;function t(){e.abort();for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}for(let o of r){if(o?.aborted===!0){t();break}o?.addEventListener!=null&&o.addEventListener("abort",t)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}let i=e.signal;return i.clear=n,i}var $t=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 ho(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new $t(t?.errorMessage,t?.errorCode,t?.errorName));let n,i=new $t(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((o,s)=>{n=()=>{s(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Dn=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=B(),this.haveNext=B()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=B(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=B(),await ho(this.readNext.promise,t?.signal,t)}};function po(){return new Dn}function Gc(r){return r[Symbol.asyncIterator]!=null}async function Qc(r,e,t){try{await Promise.all(r.map(async n=>{for await(let i of n)await e.push(i,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Jc(r){let e=new AbortController,t=po();Qc(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Yc(r){for(let e of r)yield*e}function Xc(...r){let e=[];for(let t of r)Gc(t)||e.push(t);return e.length===r.length?Yc(e):Jc(r)}var zt=Xc;var Zc=["string","number","bigint","symbol"],eu=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function mo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(Zc.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(tu(r))return"Buffer";let t=ru(r);return t||"Object"}function tu(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function ru(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(eu.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 h=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Fe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",nu=new TextDecoder,iu=new TextEncoder;function Mt(r){return Fe&&globalThis.Buffer.isBuffer(r)}function rt(r){return r instanceof Uint8Array?Mt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var bo=Fe?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):yo(r,e,t):(r,e,t)=>t-e>64?nu.decode(r.subarray(e,t)):yo(r,e,t),Ot=Fe?r=>r.length>64?globalThis.Buffer.from(r):go(r):r=>r.length>64?iu.encode(r):go(r),se=r=>Uint8Array.from(r),$e=Fe?(r,e,t)=>Mt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),xo=Fe?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),rt(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let i of r)n+i.length>t.length&&(i=i.subarray(0,t.length-n)),t.set(i,n),n+=i.length;return t},Eo=Fe?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function vo(r,e){if(Mt(r)&&Mt(e))return r.compare(e);for(let t=0;t<r.length;t++)if(r[t]!==e[t])return r[t]<e[t]?-1:1;return 0}function go(r){let e=[],t=0;for(let n=0;n<r.length;n++){let i=r.charCodeAt(n);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(i=65536+((i&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e}function yo(r,e,t){let n=[];for(;e<t;){let i=r[e],o=null,s=i>239?4:i>223?3:i>191?2:1;if(e+s<=t){let a,c,d,l;switch(s){case 1:i<128&&(o=i);break;case 2:a=r[e+1],(a&192)===128&&(l=(i&31)<<6|a&63,l>127&&(o=l));break;case 3:a=r[e+1],c=r[e+2],(a&192)===128&&(c&192)===128&&(l=(i&15)<<12|(a&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:a=r[e+1],c=r[e+2],d=r[e+3],(a&192)===128&&(c&192)===128&&(d&192)===128&&(l=(i&15)<<18|(a&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),e+=s}return Rn(n)}var wo=4096;function Rn(r){let e=r.length;if(e<=wo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=wo));return t}var ou=256,nt=class{constructor(e=ou){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 i=t.length-(this.maxCursor-this.cursor)-1;t.set(e,i)}else{if(t){let i=t.length-(this.maxCursor-this.cursor)-1;i<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,i),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Eo(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=$e(n,0,this.cursor)}else t=xo(this.chunks,this.cursor);return e&&this.reset(),t}};var m="CBOR decode error:",ce="CBOR encode error:",it=[];it[23]=1;it[24]=2;it[25]=3;it[26]=5;it[27]=9;function ue(r,e,t){if(r.length-e<t)throw new Error(`${m} not enough data for type`)}var L=[24,256,65536,4294967296,BigInt("18446744073709551616")];function z(r,e,t){ue(r,e,1);let n=r[e];if(t.strict===!0&&n<L[0])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function M(r,e,t){ue(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<L[1])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function O(r,e,t){ue(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<L[2])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){ue(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],i=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],o=(BigInt(n)<<BigInt(32))+BigInt(i);if(t.strict===!0&&o<L[3])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);if(o<=Number.MAX_SAFE_INTEGER)return Number(o);if(t.allowBigInt===!0)return o;throw new Error(`${m} integers outside of the safe integer range are not supported`)}function _o(r,e,t,n){return new h(u.uint,z(r,e+1,n),2)}function ko(r,e,t,n){return new h(u.uint,M(r,e+1,n),3)}function Ao(r,e,t,n){return new h(u.uint,O(r,e+1,n),5)}function Co(r,e,t,n){return new h(u.uint,q(r,e+1,n),9)}function Q(r,e){return P(r,0,e.value)}function P(r,e,t){if(t<L[0]){let n=Number(t);r.push([e|n])}else if(t<L[1]){let n=Number(t);r.push([e|24,n])}else if(t<L[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<L[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<L[4]){let i=[e|27,0,0,0,0,0,0,0],o=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));i[8]=o&255,o=o>>8,i[7]=o&255,o=o>>8,i[6]=o&255,o=o>>8,i[5]=o&255,i[4]=s&255,s=s>>8,i[3]=s&255,s=s>>8,i[2]=s&255,s=s>>8,i[1]=s&255,r.push(i)}else throw new Error(`${m} encountered BigInt larger than allowable range`)}}Q.encodedSize=function(e){return P.encodedSize(e.value)};P.encodedSize=function(e){return e<L[0]?1:e<L[1]?2:e<L[2]?3:e<L[3]?5:9};Q.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function So(r,e,t,n){return new h(u.negint,-1-z(r,e+1,n),2)}function Io(r,e,t,n){return new h(u.negint,-1-M(r,e+1,n),3)}function To(r,e,t,n){return new h(u.negint,-1-O(r,e+1,n),5)}var Un=BigInt(-1),Lo=BigInt(1);function Po(r,e,t,n){let i=q(r,e+1,n);if(typeof i!="bigint"){let o=-1-i;if(o>=Number.MIN_SAFE_INTEGER)return new h(u.negint,o,9)}if(n.allowBigInt!==!0)throw new Error(`${m} integers outside of the safe integer range are not supported`);return new h(u.negint,Un-BigInt(i),9)}function qt(r,e){let t=e.value,n=typeof t=="bigint"?t*Un-Lo:t*-1-1;P(r,e.type.majorEncoded,n)}qt.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Un-Lo:t*-1-1;return n<L[0]?1:n<L[1]?2:n<L[2]?3:n<L[3]?5:9};qt.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function ot(r,e,t,n){ue(r,e,t+n);let i=$e(r,e+t,e+t+n);return new h(u.bytes,i,t+n)}function No(r,e,t,n){return ot(r,e,1,t)}function Do(r,e,t,n){return ot(r,e,2,z(r,e+1,n))}function Ro(r,e,t,n){return ot(r,e,3,M(r,e+1,n))}function Uo(r,e,t,n){return ot(r,e,5,O(r,e+1,n))}function Bo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${m} 64-bit integer bytes lengths not supported`);return ot(r,e,9,i)}function jt(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===u.string?Ot(r.value):r.value),r.encodedBytes}function ze(r,e){let t=jt(e);P(r,e.type.majorEncoded,t.length),r.push(t)}ze.encodedSize=function(e){let t=jt(e);return P.encodedSize(t.length)+t.length};ze.compareTokens=function(e,t){return au(jt(e),jt(t))};function au(r,e){return r.length<e.length?-1:r.length>e.length?1:vo(r,e)}function st(r,e,t,n,i){let o=t+n;ue(r,e,o);let s=new h(u.string,bo(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=$e(r,e+t,e+o)),s}function Fo(r,e,t,n){return st(r,e,1,t,n)}function $o(r,e,t,n){return st(r,e,2,z(r,e+1,n),n)}function zo(r,e,t,n){return st(r,e,3,M(r,e+1,n),n)}function Mo(r,e,t,n){return st(r,e,5,O(r,e+1,n),n)}function Oo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${m} 64-bit integer string lengths not supported`);return st(r,e,9,i,n)}var qo=ze;function Me(r,e,t,n){return new h(u.array,n,t)}function jo(r,e,t,n){return Me(r,e,1,t)}function Vo(r,e,t,n){return Me(r,e,2,z(r,e+1,n))}function Ko(r,e,t,n){return Me(r,e,3,M(r,e+1,n))}function Ho(r,e,t,n){return Me(r,e,5,O(r,e+1,n))}function Wo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${m} 64-bit integer array lengths not supported`);return Me(r,e,9,i)}function Go(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return Me(r,e,1,1/0)}function Vt(r,e){P(r,u.array.majorEncoded,e.value)}Vt.compareTokens=Q.compareTokens;Vt.encodedSize=function(e){return P.encodedSize(e.value)};function Oe(r,e,t,n){return new h(u.map,n,t)}function Qo(r,e,t,n){return Oe(r,e,1,t)}function Jo(r,e,t,n){return Oe(r,e,2,z(r,e+1,n))}function Yo(r,e,t,n){return Oe(r,e,3,M(r,e+1,n))}function Xo(r,e,t,n){return Oe(r,e,5,O(r,e+1,n))}function Zo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${m} 64-bit integer map lengths not supported`);return Oe(r,e,9,i)}function es(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return Oe(r,e,1,1/0)}function Kt(r,e){P(r,u.map.majorEncoded,e.value)}Kt.compareTokens=Q.compareTokens;Kt.encodedSize=function(e){return P.encodedSize(e.value)};function ts(r,e,t,n){return new h(u.tag,t,1)}function rs(r,e,t,n){return new h(u.tag,z(r,e+1,n),2)}function ns(r,e,t,n){return new h(u.tag,M(r,e+1,n),3)}function is(r,e,t,n){return new h(u.tag,O(r,e+1,n),5)}function os(r,e,t,n){return new h(u.tag,q(r,e+1,n),9)}function Ht(r,e){P(r,u.tag.majorEncoded,e.value)}Ht.compareTokens=Q.compareTokens;Ht.encodedSize=function(e){return P.encodedSize(e.value)};var du=20,pu=21,mu=22,gu=23;function ss(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${m} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new h(u.null,null,1):new h(u.undefined,void 0,1)}function as(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return new h(u.break,void 0,1)}function Bn(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${m} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${m} Infinity values are not supported`)}return new h(u.float,r,e)}function cs(r,e,t,n){return Bn(Fn(r,e+1),3,n)}function us(r,e,t,n){return Bn($n(r,e+1),5,n)}function ls(r,e,t,n){return Bn(ps(r,e+1),9,n)}function Wt(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|du]);else if(n===!0)r.push([u.float.majorEncoded|pu]);else if(n===null)r.push([u.float.majorEncoded|mu]);else if(n===void 0)r.push([u.float.majorEncoded|gu]);else{let i,o=!1;(!t||t.float64!==!0)&&(hs(n),i=Fn(te,1),n===i||Number.isNaN(n)?(te[0]=249,r.push(te.slice(0,3)),o=!0):(ds(n),i=$n(te,1),n===i&&(te[0]=250,r.push(te.slice(0,5)),o=!0))),o||(yu(n),i=ps(te,1),te[0]=251,r.push(te.slice(0,9)))}}Wt.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){hs(n);let i=Fn(te,1);if(n===i||Number.isNaN(n))return 3;if(ds(n),i=$n(te,1),n===i)return 5}return 9};var fs=new ArrayBuffer(9),J=new DataView(fs,1),te=new Uint8Array(fs,0);function hs(r){if(r===1/0)J.setUint16(0,31744,!1);else if(r===-1/0)J.setUint16(0,64512,!1);else if(Number.isNaN(r))J.setUint16(0,32256,!1);else{J.setFloat32(0,r);let e=J.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)J.setUint16(0,31744,!1);else if(t===0)J.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?J.setUint16(0,0):i<-14?J.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):J.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function Fn(r,e){if(r.length-e<2)throw new Error(`${m} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,i=t&1023,o;return n===0?o=i*2**-24:n!==31?o=(i+1024)*2**(n-25):o=i===0?1/0:NaN,t&32768?-o:o}function ds(r){J.setFloat32(0,r,!1)}function $n(r,e){if(r.length-e<4)throw new Error(`${m} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function yu(r){J.setFloat64(0,r,!1)}function ps(r,e){if(r.length-e<8)throw new Error(`${m} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Wt.compareTokens=Q.compareTokens;function E(r,e,t){throw new Error(`${m} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Gt(r){return()=>{throw new Error(`${m} ${r}`)}}var p=[];for(let r=0;r<=23;r++)p[r]=E;p[24]=_o;p[25]=ko;p[26]=Ao;p[27]=Co;p[28]=E;p[29]=E;p[30]=E;p[31]=E;for(let r=32;r<=55;r++)p[r]=E;p[56]=So;p[57]=Io;p[58]=To;p[59]=Po;p[60]=E;p[61]=E;p[62]=E;p[63]=E;for(let r=64;r<=87;r++)p[r]=No;p[88]=Do;p[89]=Ro;p[90]=Uo;p[91]=Bo;p[92]=E;p[93]=E;p[94]=E;p[95]=Gt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)p[r]=Fo;p[120]=$o;p[121]=zo;p[122]=Mo;p[123]=Oo;p[124]=E;p[125]=E;p[126]=E;p[127]=Gt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)p[r]=jo;p[152]=Vo;p[153]=Ko;p[154]=Ho;p[155]=Wo;p[156]=E;p[157]=E;p[158]=E;p[159]=Go;for(let r=160;r<=183;r++)p[r]=Qo;p[184]=Jo;p[185]=Yo;p[186]=Xo;p[187]=Zo;p[188]=E;p[189]=E;p[190]=E;p[191]=es;for(let r=192;r<=215;r++)p[r]=ts;p[216]=rs;p[217]=ns;p[218]=is;p[219]=os;p[220]=E;p[221]=E;p[222]=E;p[223]=E;for(let r=224;r<=243;r++)p[r]=Gt("simple values are not supported");p[244]=E;p[245]=E;p[246]=E;p[247]=ss;p[248]=Gt("simple values are not supported");p[249]=cs;p[250]=us;p[251]=ls;p[252]=E;p[253]=E;p[254]=E;p[255]=as;var re=[];for(let r=0;r<24;r++)re[r]=new h(u.uint,r,1);for(let r=-1;r>=-24;r--)re[31-r]=new h(u.negint,r,1);re[64]=new h(u.bytes,new Uint8Array(0),1);re[96]=new h(u.string,"",1);re[128]=new h(u.array,0,1);re[160]=new h(u.map,0,1);re[244]=new h(u.false,!1,1);re[245]=new h(u.true,!0,1);re[246]=new h(u.null,null,1);function ms(r){switch(r.type){case u.false:return se([244]);case u.true:return se([245]);case u.null:return se([246]);case u.bytes:return r.value.length?void 0:se([64]);case u.string:return r.value===""?se([96]):void 0;case u.array:return r.value===0?se([128]):void 0;case u.map:return r.value===0?se([160]):void 0;case u.uint:return r.value<24?se([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return se([31-Number(r.value)])}}var bu={float64:!1,mapSorter:vu,quickEncodeToken:ms};function xu(){let r=[];return r[u.uint.major]=Q,r[u.negint.major]=qt,r[u.bytes.major]=ze,r[u.string.major]=qo,r[u.array.major]=Vt,r[u.map.major]=Kt,r[u.tag.major]=Ht,r[u.float.major]=Wt,r}var gs=xu(),zn=new nt,Jt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${ce} object contains circular references`);return new r(t,e)}},ye={null:new h(u.null,null),undefined:new h(u.undefined,void 0),true:new h(u.true,!0),false:new h(u.false,!1),emptyArray:new h(u.array,0),emptyMap:new h(u.map,0)},we={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new h(u.float,r):r>=0?new h(u.uint,r):new h(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new h(u.uint,r):new h(u.negint,r)},Uint8Array(r,e,t,n){return new h(u.bytes,r)},string(r,e,t,n){return new h(u.string,r)},boolean(r,e,t,n){return r?ye.true:ye.false},null(r,e,t,n){return ye.null},undefined(r,e,t,n){return ye.undefined},ArrayBuffer(r,e,t,n){return new h(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new h(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[ye.emptyArray,new h(u.break)]:ye.emptyArray;n=Jt.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=Qt(s,t,n);return t.addBreakTokens?[new h(u.array,r.length),i,new h(u.break)]:[new h(u.array,r.length),i]},Object(r,e,t,n){let i=e!=="Object",o=i?r.keys():Object.keys(r),s=i?r.size:o.length;if(!s)return t.addBreakTokens===!0?[ye.emptyMap,new h(u.break)]:ye.emptyMap;n=Jt.createCheck(n,r);let a=[],c=0;for(let d of o)a[c++]=[Qt(d,t,n),Qt(i?r.get(d):r[d],t,n)];return Eu(a,t),t.addBreakTokens?[new h(u.map,s),a,new h(u.break)]:[new h(u.map,s),a]}};we.Map=we.Object;we.Buffer=we.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))we[`${r}Array`]=we.DataView;function Qt(r,e={},t){let n=mo(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||we[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=we[n];if(!o)throw new Error(`${ce} unsupported type: ${n}`);return o(r,n,e,t)}function Eu(r,e){e.mapSorter&&r.sort(e.mapSorter)}function vu(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 i=t.type.major,o=gs[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function ys(r,e,t,n){if(Array.isArray(e))for(let i of e)ys(r,i,t,n);else t[e.type.major](r,e,n)}function Mn(r,e,t){let n=Qt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let i=t.quickEncodeToken(n);if(i)return i;let o=e[n.type.major];if(o.encodedSize){let s=o.encodedSize(n,t),a=new nt(s);if(o(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return rt(a.chunks[0])}}return zn.reset(),ys(zn,n,e,t),zn.toBytes(!0)}function ke(r,e){return e=Object.assign({},bu,e),Mn(r,gs,e)}var _u={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Yt=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=re[e];if(t===void 0){let n=p[e];if(!n)throw new Error(`${m} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let i=e&31;t=n(this.data,this._pos,i,this.options)}return this._pos+=t.encodedLength,t}},at=Symbol.for("DONE"),Xt=Symbol.for("BREAK");function ku(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=qe(e,t);if(o===Xt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed array`)}if(o===at)throw new Error(`${m} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function Au(r,e,t){let n=t.useMaps===!0,i=n?void 0:{},o=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=qe(e,t);if(a===Xt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed map`)}if(a===at)throw new Error(`${m} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${m} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&o.has(a)||!n&&a in i))throw new Error(`${m} found repeat map key "${a}"`);let c=qe(e,t);if(c===at)throw new Error(`${m} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?o.set(a,c):i[a]=c}return n?o:i}function qe(r,e){if(r.done())return at;let t=r.next();if(t.type===u.break)return Xt;if(t.type.terminal)return t.value;if(t.type===u.array)return ku(t,r,e);if(t.type===u.map)return Au(t,r,e);if(t.type===u.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=qe(r,e);return e.tags[t.value](n)}throw new Error(`${m} tag not supported (${t.value})`)}throw new Error("unsupported")}function On(r,e){if(!(r instanceof Uint8Array))throw new Error(`${m} data to decode must be a Uint8Array`);e=Object.assign({},_u,e);let t=e.tokenizer||new Yt(r,e),n=qe(t,e);if(n===at)throw new Error(`${m} did not find any content to decode`);if(n===Xt)throw new Error(`${m} got unexpected break`);return[n,r.subarray(t.pos())]}function ne(r,e){let[t,n]=On(r,e);if(n.length>0)throw new Error(`${m} too many terminals, data makes no sense`);return t}var Zt=class extends G{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var le="/",bs=new TextEncoder().encode(le),er=bs[0],fe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=U(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==er)throw new Error("Invalid key")}toString(e="utf8"){return Ue(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=bs),this._buf[0]!==er){let e=new Uint8Array(this._buf.byteLength+1);e.fill(er,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===er;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let i=0;i<t.length;i++){if(n.length<i+1)return!1;let o=t[i],s=n[i];if(o<s)return!0;if(o>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 Cu(this.baseNamespace())}name(){return Su(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(),...Iu(e.map(t=>t.namespaces()))])}};function Cu(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Su(r){let e=r.split(":");return e[e.length-1]}function Iu(r){return[].concat(...r)}function Tu(r){return r[Symbol.asyncIterator]!=null}function Lu(r){if(Tu(r))return(async()=>{let n=new Uint8Array(0);for await(let i of r)n=_n([n,i],n.length+i.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return _n(e,t)}var ct=Lu;function tr({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*Pu(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t],o=k.asCID(n);o!=null?yield[i.join("/"),o]:typeof n=="object"&&(yield*qn(n,i))}else{let t=k.asCID(e);t!=null?yield[r.join("/"),t]:yield*qn(e,r)}}function*qn(r,e){if(r==null||r instanceof Uint8Array)return;let t=k.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,i]of Object.entries(r)){let o=[...e,n];yield*Pu(o,i)}}function*Nu(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t];yield i.join("/"),typeof n=="object"&&k.asCID(n)==null&&(yield*jn(n,i))}else yield*jn(e,r)}function*jn(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let i=[...e,t];yield i.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&k.asCID(n)==null&&(yield*Nu(i,n))}}function Du(r,e){let t=r;for(let[n,i]of e.entries()){if(t=t[i],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let o=k.asCID(t);if(o!=null)return{value:o,remaining:e.slice(n+1).join("/")}}return{value:t}}var Vn=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:tr(),bytes:tr(),value:tr(),asBlock:tr()})}links(){return qn(this.value,[])}tree(){return jn(this.value,[])}get(e="/"){return Du(this.value,e.split("/").filter(Boolean))}};function ut({bytes:r,cid:e,value:t,codec:n}){let i=t!==void 0?t:n?.decode(r);if(i===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Vn({cid:e,bytes:r,value:i})}var rr=class extends Error{static name="AlreadyPinnedError";name="AlreadyPinnedError"},lt=class extends Error{static name="BlockPinnedError";name="BlockPinnedError"},nr=class extends Error{static name="InvalidDatastoreVersion";name="InvalidDatastoreVersion"};var vs="/pin/",xs="/pinned-block/",Kn=ae,Es=1;function ir(r){return r.version===0&&(r=r.toV1()),new fe(`${vs}${r.toString(Kn)}`)}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=ir(e);if(await this.datastore.has(n))throw new rr("Already pinned");let i=Math.round(t.depth??1/0);if(i<0)throw new Te("Depth must be greater than or equal to 0");let o=new G({concurrency:Es});for await(let a of this.#e(e,o,{...t,depth:i}))await this.#n(a,c=>c.pinnedBy.find(d=>xe(d,e.bytes))!=null?!1:(c.pinCount++,c.pinnedBy.push(e.bytes),!0),t),yield a;let s={depth:i,metadata:t.metadata??{}};await this.datastore.put(n,ke(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let i=await this.getCodec(e.code),o=await ct(this.blockstore.get(e,n)),s=ut({bytes:o,cid:e,codec:i});yield e;for(let[,a]of s.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#n(e,t,n){let i=new fe(`${xs}${Kn.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=ne(await this.datastore.get(i,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(o)){if(o.pinCount===0&&await this.datastore.has(i)){await this.datastore.delete(i);return}await this.datastore.put(i,ke(o),n),n.onProgress?.(new v("helia:pin:add",e))}}async*rm(e,t={}){let n=ir(e),i=await this.datastore.get(n,t),o=ne(i);await this.datastore.delete(n,t);let s=new G({concurrency:Es});for await(let a of this.#e(e,s,{...t,depth:o.depth}))await this.#n(a,c=>(c.pinCount--,c.pinnedBy=c.pinnedBy.filter(d=>xe(d,e.bytes)),!0),{...t,depth:o.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:vs+(e.cid!=null?`${e.cid.toString(ae)}`:"")},e)){let i=k.parse(t.toString().substring(5),ae),o=ne(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new fe(`${xs}${Kn.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=ir(e),i=await this.datastore.get(n,t);return ne(i)}async setMetadata(e,t,n){let i=ir(e),o=await this.datastore.get(i,n),s=ne(o);s.metadata=t??{},await this.datastore.put(i,ke(s),n)}};var sr=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"}},ar=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},cr=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var Ru=5,ur=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Ru,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await he(...this.routers)}async stop(){await de(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");let n=new Zt({concurrency:this.providerLookupConcurrency});for await(let i of zt(n.toGenerator(),...Ce(this.routers,"findProviders").map(o=>o.findProviders(e,t))))if(i!=null){if(i.multiaddrs.length===0){if(n.find(i.id)!=null)continue;n.add(async()=>{try{let o=await this.findPeer(i.id,t);return o.multiaddrs.length===0?null:o}catch(o){return this.log.error("could not load multiaddrs for peer %p",i.id,o),null}},{peerId:i.id,signal:t.signal}).catch(o=>{this.log.error("could not load multiaddrs for peer %p",i.id,o)})}yield i}}async provide(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");await Promise.all(Ce(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ce(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ce(this.routers,"put").map(async i=>{await i.put(e,t,n)}))}async get(e,t){return Promise.any(Ce(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new Ae("No peer routers available");let n=this,i=zt(...Ce(this.routers,"findPeer").map(o=>(async function*(){try{yield await o.findPeer(e,t)}catch(s){n.log.error(s)}})()));for await(let o of i)if(o!=null)return o;throw new mt("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 zt(...Ce(this.routers,"getClosestPeers").map(i=>i.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ce(r,e){return r.filter(t=>t[e]!=null)}var j=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function lr(r,e,t,n){let i=new j(n?.errorMessage);n?.errorCode!=null&&(i.code=n.errorCode);let o=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(i):new Promise((s,a)=>{function c(){Wn(t,"abort",f),Wn(r,e,d),Wn(r,o,l)}let d=g=>{try{if(n?.filter?.(g)===!1)return}catch(y){c(),a(y);return}c(),s(g)},l=g=>{if(c(),g instanceof Error){a(g);return}a(g.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(i)};Hn(t,"abort",f),Hn(r,e,d),Hn(r,o,l)})}function Hn(r,e,t){r!=null&&(_s(r)?r.addEventListener(e,t):r.addListener(e,t))}function Wn(r,e,t){r!=null&&(_s(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function _s(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var fr=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var hr=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 ks(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new hr(t?.errorMessage,t?.errorCode,t?.errorName));let n,i=new hr(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((o,s)=>{n=()=>{s(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var dr=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new j)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Uu(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var pr=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Uu(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new j),this.cleanup())}async join(e={}){let t=new dr(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 ks(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Gn(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var ft=class extends H{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Gn(this.emitEmpty.bind(this),1),this.emitIdle=Gn(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new fr;let n=new pr(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new j)}),this.clear()}async onEmpty(e){this.size!==0&&await lr(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await lr(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await lr(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=Dt({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail.result)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new j("Queue aborted"))};this.addEventListener("success",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var mr="lock:worker:request-read",gr="lock:worker:abort-read-request",yr="lock:worker:release-read",wr="lock:master:grant-read",br="lock:master:error-read",xr="lock:worker:request-write",Er="lock:worker:abort-write-request",vr="lock:worker:release-write",_r="lock:master:grant-write",kr="lock:master:error-write",Ar="lock:worker:finalize",Cr="mortice",As={singleProcess:!1};var Qn=(r,e,t,n,i,o,s,a,c)=>d=>{if(d.data==null)return;let l={type:d.data.type,name:d.data.name,identifier:d.data.identifier};l.type===i&&r.safeDispatchEvent(t,{detail:{name:l.name,identifier:l.identifier,handler:async()=>{e.postMessage({type:c,name:l.name,identifier:l.identifier}),await new Promise(f=>{let g=y=>{if(y?.data==null)return;let b={type:y.data.type,name:y.data.name,identifier:y.data.identifier};b.type===a&&b.identifier===l.identifier&&(e.removeEventListener("message",g),f())};e.addEventListener("message",g)})},onError:f=>{e.postMessage({type:s,name:l.name,identifier:l.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),l.type===o&&r.safeDispatchEvent(n,{detail:{name:l.name,identifier:l.identifier}}),l.type===Ar&&r.safeDispatchEvent("finalizeRequest",{detail:{name:l.name}})};var Cs=(r=10)=>Math.random().toString().substring(2,r+2);var Sr=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(Cr)}readLock(e){return this.sendRequest(mr,gr,wr,br,yr,e)}writeLock(e){return this.sendRequest(xr,Er,_r,kr,vr,e)}finalize(){this.channel.postMessage({type:Ar,name:this.name}),this.channel.close()}async sendRequest(e,t,n,i,o,s){s?.signal?.throwIfAborted();let a=Cs();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,d)=>{let l=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",l,{once:!0});let f=g=>{if(g.data?.identifier===a&&(g.data?.type===n&&(this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",l),c(()=>{this.channel.postMessage({type:o,identifier:a,name:this.name})})),g.data.type===i)){this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",l);let y=new Error;g.data.error!=null&&(y.message=g.data.error.message,y.name=g.data.error.name,y.stack=g.data.error.stack),d(y)}};this.channel.addEventListener("message",f)})}};var Ss=r=>{if(r=Object.assign({},As,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(Cr),n=new H;return t.addEventListener("message",Qn(n,t,"requestReadLock","abortReadLockRequest",mr,gr,br,yr,wr)),t.addEventListener("message",Qn(n,t,"requestWriteLock","abortWriteLockRequest",xr,Er,kr,vr,_r)),n}return new Sr(r.name)};var Se=new Map,ht;function Is(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function Bu(r){if(ht==null&&(ht=Ss(r),!Is(ht))){let e=ht;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=Se.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortReadLockRequest",a),o.readLock({signal:s.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=Se.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortWriteLockRequest",a),o.writeLock({signal:s.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,i=Se.get(n);i?.finalize()})}return ht}async function Jn(r,e){let t,n,i=new Promise((s,a)=>{t=s,n=a}),o=()=>{n(new j)};return e?.signal?.addEventListener("abort",o,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",o),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),i}var Ts=(r,e)=>{let t=Se.get(r);if(t!=null)return t;let n=Bu(e);if(Is(n))return t=n,Se.set(r,t),t;let i=new ft({concurrency:1}),o;return t={async readLock(s){if(o!=null)return Jn(o,s);o=new ft({concurrency:e.concurrency,autoStart:!1});let a=o,c=Jn(o,s);return i.add(async()=>{a.start(),await a.onIdle().then(()=>{o===a&&(o=null)})}),c},async writeLock(s){return o=null,Jn(i,s)},finalize:()=>{Se.delete(r)},queue:i},Se.set(r,t),e.autoFinalize===!0&&i.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var Fu={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Yn(r){let e=Object.assign({},Fu,r);return Ts(e.name,e)}var Ir=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Yn({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await de(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let i=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{i()}}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{yield*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 lt("Block was pinned - please unpin and try again");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let i=this;yield*this.child.deleteMany((async function*(){for await(let o of e){if(await i.pins.isPinned(o))throw new lt("Block was pinned - please unpin and try again");yield o}})(),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 Xn=new fe("/version"),Ls=1;async function Ps(r){if(!await r.has(Xn)){await r.put(Xn,U(`${Ls}`));return}let e=await r.get(Xn),t=Ue(e);if(parseInt(t,10)!==Ls)throw new nr("Invalid datastore version, a datastore migration may be required")}var ti={};T(ti,{code:()=>ei,decode:()=>Wu,decodeOptions:()=>Vu,encode:()=>Hu,encodeOptions:()=>qu,name:()=>Ku,toByteView:()=>Ds});var Ns=42;function Ds(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function $u(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new h(u.tag,Ns),new h(u.bytes,t)]}function zu(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Mu(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}function Ou(r){for(let e of r.keys())if(typeof e!="string"||e.length===0)throw new Error("Non-string Map keys are not supported by the IPLD Data Model and cannot be encoded");return null}var Zn={float64:!0,typeEncoders:{Map:Ou,Object:$u,undefined:zu,number:Mu}},qu={...Zn,typeEncoders:{...Zn.typeEncoders}};function ju(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return k.decode(r.subarray(1))}var Tr={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Tr.tags[Ns]=ju;var Vu={...Tr,tags:Tr.tags.slice()},Ku="dag-cbor",ei=113,Hu=r=>ke(r,Zn),Wu=r=>ne(Ds(r),Tr);var ci={};T(ci,{code:()=>ai,decode:()=>Us,encode:()=>Rs,format:()=>il,name:()=>nl,parse:()=>sl,stringify:()=>il});var ri=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),i=[];for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);e.push(i)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${ce} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=Ot(JSON.stringify(t.value));e.push(n.length>32?rt(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(`${ce} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),i=[],o=!1;for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s),!o&&(i[s]===46||i[s]===101||i[s]===69)&&(o=!0);o||(i.push(46),i.push(48)),e.push(i)}};function Gu(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ce} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${ce} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ce} unexpected duplicate map keys, this is not supported`)}var Qu={addBreakTokens:!0,mapSorter:Gu};function ni(r,e){return e=Object.assign({},Qu,e),Mn(r,new ri,e)}var je=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${m} unexpected end of input at position ${this._pos}`);for(let t=0;t<e.length;t++)if(this.data[this._pos++]!==e[t])throw new Error(`${m} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,i=a=>{for(;!this.done();){let c=this.ch();if(a.includes(c))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 h(u.uint,0,this._pos-e);if(i([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${m} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${m} unexpected token at position ${this._pos}`);n=!0,this._pos++,i([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++,i([48,49,50,51,52,53,54,55,56,57]));let o=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(o);return n?new h(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new h(s>=0?u.uint:u.negint,s,this._pos-e):new h(s>=0?u.uint:u.negint,BigInt(o),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${m} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let o=this._pos,s=0;o<this.data.length&&s<65536;o++,s++){let a=this.data[o];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,o));return this._pos=o+1,new h(u.string,c,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${m} unexpected end of unicode escape sequence at position ${this._pos}`);let o=0;for(let s=0;s<4;s++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${m} unexpected unicode escape character at position ${this._pos}`);o=o*16+a,this._pos++}return o},i=()=>{let o=this.ch(),s=null,a=o>239?4:o>223?3:o>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${m} unexpected unicode sequence at position ${this._pos}`);let c,d,l,f;switch(a){case 1:o<128&&(s=o);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(f=(o&31)<<6|c&63,f>127&&(s=f));break;case 3:c=this.data[this._pos+1],d=this.data[this._pos+2],(c&192)===128&&(d&192)===128&&(f=(o&15)<<12|(c&63)<<6|d&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:c=this.data[this._pos+1],d=this.data[this._pos+2],l=this.data[this._pos+3],(c&192)===128&&(d&192)===128&&(l&192)===128&&(f=(o&15)<<18|(c&63)<<12|(d&63)<<6|l&63,f>65535&&f<1114112&&(s=f))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let o=this.ch(),s;switch(o){case 92:if(this._pos++,this.done())throw new Error(`${m} unexpected string termination at position ${this._pos}`);switch(s=this.ch(),this._pos++,s){case 34:case 39:case 92:case 47:t.push(s);break;case 98:t.push(8);break;case 116:t.push(9);break;case 110:t.push(10);break;case 102:t.push(12);break;case 114:t.push(13);break;case 117:t.push(n());break;default:throw new Error(`${m} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new h(u.string,Rn(t),this._pos-e);default:if(o<32)throw new Error(`${m} invalid control character at position ${this._pos}`);o<128?(t.push(o),this._pos++):i()}}throw new Error(`${m} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new h(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new h(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new h(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new h(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new h(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(`${m} unexpected character at position ${this._pos}`)}}next(){switch(this.skipWhitespace(),this.currentMode()){case"value":return this.modeStack.pop(),this.parseValue();case"array-value":{if(this.modeStack.pop(),this.ch()===93)return this._pos++,this.skipWhitespace(),new h(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} unexpected character at position ${this._pos}, was expecting array delimiter but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue()}case"array-start":return this.modeStack.pop(),this.ch()===93?(this._pos++,this.skipWhitespace(),new h(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 h(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} unexpected character at position ${this._pos}, was expecting object delimiter but found '${String.fromCharCode(this.ch())}'`);this._pos++,this.skipWhitespace();case"obj-start":{if(this.modeStack.pop(),this.ch()===125)return this._pos++,this.skipWhitespace(),new h(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${m} unexpected character at position ${this._pos}, was expecting key/value delimiter ':' but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("obj-value"),e}case"obj-value":return this.modeStack.pop(),this.modeStack.push("obj-key"),this.skipWhitespace(),this.parseValue();default:throw new Error(`${m} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function ii(r,e){return e=Object.assign({tokenizer:new je(r,e)},e),ne(r,e)}function Yu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Xu(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=e.toString();return[new h(u.map,1/0,1),new h(u.string,"/",1),new h(u.string,t,t.length),new h(u.break,void 0,1)]}function Lr(r){let e=ge.encode(r).slice(1);return[new h(u.map,1/0,1),new h(u.string,"/",1),new h(u.map,1/0,1),new h(u.string,"bytes",5),new h(u.string,e,e.length),new h(u.break,void 0,1),new h(u.break,void 0,1)]}function ie(r){return Lr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function Zu(r){return Lr(new Uint8Array(r))}function el(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function tl(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 rl={typeEncoders:{Object:Xu,Buffer:Lr,Uint8Array:Lr,Int8Array:ie,Uint16Array:ie,Int16Array:ie,Uint32Array:ie,Int32Array:ie,Float32Array:ie,Float64Array:ie,Uint8ClampedArray:ie,BigInt64Array:ie,BigUint64Array:ie,DataView:ie,ArrayBuffer:Zu,undefined:el,number:tl}},oi=class extends je{constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===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 h(u.tag,42,0)}if(n.type===u.map){let i=this._next();if(i.type===u.string&&i.value==="bytes"){let o=this._next();if(o.type===u.string){for(let a=0;a<2;a++)if(this._next().type!==u.break)throw new Error("Invalid encoded Bytes form");let s=ge.decode(`m${o.value}`);return new h(u.bytes,s,o.value.length)}this.tokenBuffer.push(o)}this.tokenBuffer.push(i)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},si={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};si.tags[42]=k.parse;var nl="dag-json",ai=297,Rs=r=>ni(r,rl),Us=r=>{let e=Yu(r),t=Object.assign(si,{tokenizer:new oi(e,si)});return ii(e,t)},il=r=>ol.decode(Rs(r));var ol=new TextDecoder,sl=r=>Us(al.encode(r)),al=new TextEncoder;var pi={};T(pi,{code:()=>di,createLink:()=>Ks,createNode:()=>Vs,decode:()=>xl,encode:()=>bl,name:()=>wl,prepare:()=>fi,validate:()=>hi});var cl=new TextDecoder;function ui(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 i=r[e++];if(t+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[t,e]}function Pr(r,e){let t;[t,e]=ui(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 Bs(r,e){let t;return[t,e]=ui(r,e),[t&7,t>>3,e]}function ul(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=Bs(r,n),o===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) 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(o===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) 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=cl.decode(s)}else if(o===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[e.Tsize,n]=ui(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Fs(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=Bs(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,t]=Pr(r,t),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let d;[d,t]=Pr(r,t),n.push(ul(d))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return o&&(s.Data=o),s.Links=n||[],s}var zs=new TextEncoder,$s=2**32,ll=2**31;function fl(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=dt(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=zs.encode(r.Name);t-=n.length,e.set(n,t),t=dt(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=dt(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function Ms(r){let e=dl(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=dt(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=fl(r.Links[i],t.subarray(0,n));n-=o,n=dt(t,n,o)-1,t[n]=18}return t}function hl(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ve(t)}if(typeof r.Name=="string"){let t=zs.encode(r.Name).length;e+=1+t+Ve(t)}return typeof r.Tsize=="number"&&(e+=1+Ve(r.Tsize)),e}function dl(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ve(t)}if(r.Links)for(let t of r.Links){let n=hl(t);e+=1+n+Ve(n)}return e}function dt(r,e,t){e-=Ve(t);let n=e;for(;t>=ll;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Ve(r){return r%2===0&&r++,Math.floor((pl(r)+6)/7)}function pl(r){let e=0;return r>=$s&&(r=Math.floor(r/$s),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+ml[r]}var ml=[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 gl=["Data","Links"],yl=["Hash","Name","Tsize"],li=new TextEncoder;function qs(r,e){if(r===e)return 0;let t=r.Name?li.encode(r.Name):[],n=e.Name?li.encode(e.Name):[],i=t.length,o=n.length;for(let s=0,a=Math.min(i,o);s<a;++s)if(t[s]!==n[s]){i=t[s],o=n[s];break}return i<o?-1:o<i?1:0}function Os(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function js(r){if(typeof r.asCID=="object"){let t=k.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=k.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function fi(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=li.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(js),e.Links.sort(qs);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function hi(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!Os(r,gl))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(!Os(t,yl))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&&qs(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function Vs(r,e=[]){return fi({Data:r,Links:e})}function Ks(r,e,t){return js({Hash:t,Name:r,Tsize:e})}function Hs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var wl="dag-pb",di=112;function bl(r){hi(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),Ms(e)}function xl(r){let e=Hs(r),t=Fs(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(i=>{let o={};try{o.Hash=k.decode(i.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return i.Name!==void 0&&(o.Name=i.Name),i.Tsize!==void 0&&(o.Tsize=i.Tsize),o})),n}function Ke(r){return r?.then!=null}function Ws(r=[],e){let t={[di]:pi,[fn]:vt,[ei]:ti,[ai]:ci,[ln]:Et};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Ke(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new cr(`Could not load codec for ${n}`)}}function Gs(r=[],e){let t={[At.code]:At,[Ct.code]:Ct,[kt.code]:kt};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Ke(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new ar(`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`)}}var Nr=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 Dr=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,bytes:i}of e)await this.put(n,i,t),yield n}get(e,t){throw new Error(".get is not implemented")}async*getMany(e,t){for await(let n of e)yield{cid:n,bytes: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 Rr=0,He=class extends Error{static name="IdentityHashDigestTooLongError";name="IdentityHashDigestTooLongError"},Ur=class extends Dr{child;maxDigestLength;constructor(e,t){super(),this.child=e,this.maxDigestLength=t?.maxDigestLength}put(e,t,n){if(e.multihash.code===Rr){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return n?.signal?.throwIfAborted(),e}return this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}*get(e,t){if(e.multihash.code===Rr){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new Nr;yield*this.child.get(e,t)}has(e,t){if(e.multihash.code===Rr){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return t?.signal?.throwIfAborted(),!0}return this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===Rr){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function El(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Br=El;function vl(r){return r[Symbol.asyncIterator]!=null}function _l(r,e){let t=0;if(vl(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=Br(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s.then=="function")return(async function*(){await s&&(yield i);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){s===!0&&(yield i);for(let c of n)a(c,t++)&&(yield c)})()}var Qs=_l;function kl(r){return r[Symbol.asyncIterator]!=null}function Js(r){return r?.then!=null}function Al(r,e){let t=0;if(kl(r))return(async function*(){for await(let c of r){let d=e(c,t++);Js(d)&&await d,yield c}})();let n=Br(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();if(typeof e(i,t++)?.then=="function")return(async function*(){yield i;for(let c of n){let d=e(c,t++);Js(d)&&await d,yield c}})();let a=e;return(function*(){yield i;for(let c of n)a(c,t++),yield c})()}var mi=Al;var Sl=128,Fr=class{child;getHasher;log;logger;components;constructor(e,t={}){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Ur(e.blockstore,{maxDigestLength:t.maxIdentityHashDigestLength??Sl}),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new v("blocks:put:duplicate",e)),e):(n.onProgress?.(new v("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,n))),n.onProgress?.(new v("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Qs(e,async({cid:o})=>{let s=await this.child.has(o,t);return s&&t.onProgress?.(new v("blocks:put-many:duplicate",o)),!s}),i=mi(n,async({cid:o})=>{t.onProgress?.(new v("blocks:put-many:providers:notify",o)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(o,t)))});t.onProgress?.(new v("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(i,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 v("blocks:get:providers:get",e));let i=await Ys(e,this.components.blockBrokers,n,{...t,log:this.log});t.onProgress?.(new v("blocks:get:blockstore:put",e)),await this.child.put(e,i,t),t.onProgress?.(new v("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t))),yield i;return}t.onProgress?.(new v("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new v("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(mi(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let i=await this.getHasher(n.multihash.code);t.onProgress?.(new v("blocks:get-many:providers:get",n));let o=await Ys(n,this.components.blockBrokers,i,{...t,log:this.log});t.onProgress?.(new v("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new v("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new v("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new v("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 v("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},$r=class extends Fr{started;constructor(e,t={}){super(e,t),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await de(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(i=>i.createSession==null?i:i.createSession(t));return new gi({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},gi=class extends Fr{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let i=oe([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:i})}finally{i.clear()}}async*putMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=oe([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function Il(r){return typeof r.retrieve=="function"}var Tl=(r,e)=>{if(e==null)throw new Te(`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,i=e.digest(t);if(Ke(i)?n=await i:n=i,!xe(n.digest,r.multihash.digest))throw new gt("Hash of downloaded block did not match multihash from passed CID")}};async function Ys(r,e,t,n){let i=Tl(r,t),o=new AbortController,s=oe([o.signal,n.signal]);o.signal;let a=[];for(let c of e)Il(c)&&a.push(c);try{return await Promise.any(a.map(async c=>{try{let d=!1,l=await c.retrieve(r,{...n,signal:s,validateFn:async f=>{await i(f),d=!0}});return d||await i(l),l}catch(d){throw n.log.error("could not retrieve verified block for %c",r,d),d}}))}finally{o.abort(),s.clear()}}var zr=class extends H{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=Sn(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=ge.encode(e.multihash.bytes),i=this.requests.get(n);if(i!=null)return this.log("join existing request for %c",e),i;let o=B();if(this.requests.set(n,o.promise),this.providers.length===0){let l=!1;this.initialPeerSearchComplete==null&&(l=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.initialPeerSearchComplete,l&&this.log("found initial session peers for %c",e)}let s=!1,a=new G({concurrency:this.maxProviders});a.addEventListener("failure",l=>{this.log.error("error querying provider %o, evicting from session",l.detail.job.options.provider,l.detail.error),this.evict(l.detail.job.options.provider)}),a.addEventListener("success",l=>{s=!0,o.resolve(l.detail.result)}),a.addEventListener("idle",()=>{if(s){this.log.trace("session idle, found block");return}if(t.signal?.aborted===!0){this.log.trace("session idle, signal aborted");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let l=0;l<this.minProviders&&this.providers.length!==0;l++){let f=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(f)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),o.resolve(await this.retrieve(e,t))}).catch(l=>{this.log.error("could not find new providers for %c",e,l),o.reject(l)})});let c=l=>{a.add(async()=>this.queryProvider(e,l.detail,t),{provider:l.detail}).catch(f=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,f)})};this.addEventListener("provider",c),Promise.all([...this.providers].map(async l=>a.add(async()=>this.queryProvider(e,l,t),{provider:l}))).catch(l=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,l)});let d=()=>{o.reject(new Y(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",d);try{return await o.promise}finally{this.removeEventListener("provider",c),t.signal?.removeEventListener("abort",d),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let i=B(),o=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;o<t&&this.initialProviders.length>0;){let s=this.initialProviders.pop();if(s==null)break;let a=await this.convertToProvider(s,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",o,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),o++,o===t&&(this.log("session is ready"),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",o);break}}if(o<this.maxProviders)for await(let s of this.findNewProviders(e,n)){if(o===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(s)&&(this.log("found %d/%d new providers",o,this.maxProviders),this.providers.push(s),this.safeDispatchEvent("provider",{detail:s}),o++,o===t&&(this.log("session is ready"),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",o);break}}if(this.log("found %d/%d new session peers",o,this.maxProviders),o<t)throw new sr(`Found ${o} 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),i.reject(s)}),i.promise}};function Xs(r,e={}){return new yi(r,e)}function Zs(r,e={}){return new wi(r,e)}var yi=class{components;constructor(e,t={}){this.components=e}async*walk(e,t){let n=new G({concurrency:1,sort:(s,a)=>s.options.depth===a.options.depth?0:s.options.depth<a.options.depth?1:-1}),i=n.toGenerator(),o=async s=>{let a=s.cid,c=await ct(this.components.blockstore.get(a,s)),d=ut({cid:a,bytes:c,codec:await this.components.getCodec(a.code)});for(let[,l]of d.links())n.add(o,{...s,cid:l,depth:s.depth+1,path:[...s.path,l]}).catch(f=>{i.throw(f),n.abort()});return{block:d,depth:s.depth,path:s.path}};n.add(o,{...t,cid:e,depth:0,path:[e]}).catch(s=>{i.throw(s),n.abort()}),yield*i}},wi=class{components;constructor(e,t={}){this.components=e}async*walk(e,t){let n=new G({concurrency:1,sort:(s,a)=>s.options.depth===a.options.depth?0:s.options.depth<a.options.depth?-1:1}),i=n.toGenerator(),o=async s=>{let a=s.cid,c=await ct(this.components.blockstore.get(a,s)),d=ut({cid:a,bytes:c,codec:await this.components.getCodec(a.code)});for(let[,l]of d.links())n.add(o,{...s,cid:l,depth:s.depth+1,path:[...s.path,l]}).catch(f=>{i.throw(f),n.abort()});return{block:d,depth:s.depth,path:s.path}};n.add(o,{...t,cid:e,depth:0,path:[e]}).catch(s=>{i.throw(s),n.abort()}),yield*i}};var bi=class{libp2p;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??Pi(),this.log=this.logger.forComponent("helia"),this.getHasher=Gs(e.hashers,e.loadHasher),this.getCodec=Ws(e.codecs,e.loadCodec),this.dns=e.dns??io(),this.metrics=e.metrics,this.libp2p=e.libp2p,this.events=new H;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new ur(t,{routers:(e.routers??[]).flatMap(i=>{let o=[i];return i[Mr]!=null&&o.push(i[Mr]),i[Or]!=null&&o.push(i[Or]),o}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new $r(t,e);this.pins=new or(e.datastore,n,this.getCodec),this.blockstore=new Ir(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(i=>i(t))}async start(){await Ps(this.datastore),await he(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("start",{detail:this}))}async stop(){await de(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("stop",{detail:this}))}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,i=this.blockstore.unwrap();this.log("gc start"),await oo(i.deleteMany((async function*(){for await(let{cid:o}of i.getAll())try{if(await n.pins.isPinned(o,e))continue;yield o,e.onProgress?.(new v("helia:gc:deleted",o))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new v("helia:gc:error",s))}})()))}finally{t()}this.log("gc finished")}};return oa(Nl);})();
|
|
2
|
+
"use strict";var HeliaUtils=(()=>{var ra=Object.create;var dt=Object.defineProperty;var na=Object.getOwnPropertyDescriptor;var ia=Object.getOwnPropertyNames;var oa=Object.getPrototypeOf,sa=Object.prototype.hasOwnProperty;var ki=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),T=(r,e)=>{for(var t in e)dt(r,t,{get:e[t],enumerable:!0})},Ai=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ia(e))!sa.call(r,i)&&i!==t&&dt(r,i,{get:()=>e[i],enumerable:!(n=na(e,i))||n.enumerable});return r};var Ci=(r,e,t)=>(t=r!=null?ra(oa(r)):{},Ai(e||!r||!r.__esModule?dt(t,"default",{value:r,enumerable:!0}):t,r)),aa=r=>Ai(dt({},"__esModule",{value:!0}),r);var $i=ki((lf,tn)=>{"use strict";var Ma=Object.prototype.hasOwnProperty,D="~";function We(){}Object.create&&(We.prototype=Object.create(null),new We().__proto__||(D=!1));function Oa(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Fi(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Oa(t,n||r,i),s=D?D+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function wt(r,e){--r._eventsCount===0?r._events=new We:delete r._events[e]}function N(){this._events=new We,this._eventsCount=0}N.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Ma.call(t,n)&&e.push(D?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};N.prototype.listeners=function(e){var t=D?D+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};N.prototype.listenerCount=function(e){var t=D?D+e:e,n=this._events[t];return n?n.fn?1:n.length:0};N.prototype.emit=function(e,t,n,i,o,s){var a=D?D+e:e;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,o),!0;case 6:return c.fn.call(c.context,t,n,i,o,s),!0}for(f=1,l=new Array(d-1);f<d;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var m=c.length,y;for(f=0;f<m;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),d){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,t);break;case 3:c[f].fn.call(c[f].context,t,n);break;case 4:c[f].fn.call(c[f].context,t,n,i);break;default:if(!l)for(y=1,l=new Array(d-1);y<d;y++)l[y-1]=arguments[y];c[f].fn.apply(c[f].context,l)}}return!0};N.prototype.on=function(e,t,n){return Fi(this,e,t,n,!1)};N.prototype.once=function(e,t,n){return Fi(this,e,t,n,!0)};N.prototype.removeListener=function(e,t,n,i){var o=D?D+e:e;if(!this._events[o])return this;if(!t)return wt(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&wt(this,o);else{for(var a=0,c=[],d=s.length;a<d;a++)(s[a].fn!==t||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:wt(this,o)}return this};N.prototype.removeAllListeners=function(e){var t;return e?(t=D?D+e:e,this._events[t]&&wt(this,t)):(this._events=new We,this._eventsCount=0),this};N.prototype.off=N.prototype.removeListener;N.prototype.addListener=N.prototype.on;N.prefixed=D;N.EventEmitter=N;typeof tn<"u"&&(tn.exports=N)});var oo=ki((gh,io)=>{io.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 i(o,s){t[o]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(o){return t[o]!==void 0||n[o]!==void 0},remove:function(o){t[o]!==void 0&&(t[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=t[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){t[o]!==void 0?t[o]=s:i(o,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var Rl={};T(Rl,{AbstractSession:()=>qr,Helia:()=>_i,breadthFirstWalker:()=>ta,depthFirstWalker:()=>ea});var Vr=Symbol.for("@libp2p/content-routing");var Y=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Te=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var pt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var mt=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Kr=Symbol.for("@libp2p/peer-routing");function Si(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function he(...r){let e=[];for(let t of r)Si(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function de(...r){let e=[];for(let t of r)Si(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 H=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==t),this.#e.set(e,i))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Yr={};T(Yr,{base32:()=>me,base32hex:()=>ya,base32hexpad:()=>ba,base32hexpadupper:()=>xa,base32hexupper:()=>wa,base32pad:()=>ma,base32padupper:()=>ga,base32upper:()=>pa,base32z:()=>Ea});var Ol=new Uint8Array(0);function Ii(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 X(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 Ti(r){return new TextEncoder().encode(r)}function Li(r){return new TextDecoder().decode(r)}function ca(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(t[s]!==255)throw new TypeError(o+" is ambiguous");t[s]=i}var a=r.length,c=r.charAt(0),d=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(b){if(b instanceof Uint8Array||(ArrayBuffer.isView(b)?b=new Uint8Array(b.buffer,b.byteOffset,b.byteLength):Array.isArray(b)&&(b=Uint8Array.from(b))),!(b instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(b.length===0)return"";for(var x=0,w=0,_=0,C=b.length;_!==C&&b[_]===0;)_++,x++;for(var S=(C-_)*l+1>>>0,I=new Uint8Array(S);_!==C;){for(var F=b[_],V=0,$=S-1;(F!==0||V<w)&&$!==-1;$--,V++)F+=256*I[$]>>>0,I[$]=F%a>>>0,F=F/a>>>0;if(F!==0)throw new Error("Non-zero carry");w=V,_++}for(var K=S-w;K!==S&&I[K]===0;)K++;for(var Ie=c.repeat(x);K<S;++K)Ie+=r.charAt(I[K]);return Ie}function m(b){if(typeof b!="string")throw new TypeError("Expected String");if(b.length===0)return new Uint8Array;var x=0;if(b[x]!==" "){for(var w=0,_=0;b[x]===c;)w++,x++;for(var C=(b.length-x)*d+1>>>0,S=new Uint8Array(C);b[x];){var I=t[b.charCodeAt(x)];if(I===255)return;for(var F=0,V=C-1;(I!==0||F<_)&&V!==-1;V--,F++)I+=a*S[V]>>>0,S[V]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");_=F,x++}if(b[x]!==" "){for(var $=C-_;$!==C&&S[$]===0;)$++;for(var K=new Uint8Array(w+(C-$)),Ie=w;$!==C;)K[Ie++]=S[$++];return K}}}function y(b){var x=m(b);if(x)return x;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:m,decode:y}}var ua=ca,la=ua,Pi=la;var Wr=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")}},Gr=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let i=t.codePointAt(0);if(i===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=i,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 Ni(this,e)}},Qr=class{decoders;constructor(e){this.decoders=e}or(e){return Ni(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 Ni(r,e){return new Qr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Jr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new Wr(e,t,n),this.decoder=new Gr(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Le({name:r,prefix:e,encode:t,decode:n}){return new Jr(r,e,t,n)}function pe({name:r,prefix:e,alphabet:t}){let{encode:n,decode:i}=Pi(t,r);return Le({prefix:e,name:r,encode:n,decode:o=>X(i(o))})}function fa(r,e,t,n){let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),s=0,a=0,c=0;for(let d=0;d<i;++d){let l=e[r[d]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|l,s+=t,s>=8&&(s-=8,o[c++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return o}function ha(r,e,t){let n=e[e.length-1]==="=",i=(1<<t)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>t;)s-=t,o+=e[i&a>>s];if(s!==0&&(o+=e[i&a<<t-s]),n)for(;(o.length*t&7)!==0;)o+="=";return o}function da(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function A({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let i=da(n);return Le({prefix:e,name:r,encode(o){return ha(o,n,t)},decode(o){return fa(o,i,t,r)}})}var me=A({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),pa=A({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ma=A({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ga=A({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ya=A({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),wa=A({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ba=A({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),xa=A({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ea=A({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Xr={};T(Xr,{base58btc:()=>W,base58flickr:()=>va});var W=pe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),va=pe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Zr={};T(Zr,{base64:()=>ge,base64pad:()=>_a,base64url:()=>ka,base64urlpad:()=>Aa});var ge=A({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),_a=A({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ka=A({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Aa=A({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});function Ca(r,e){if(typeof r=="string")return Sa(r);if(typeof r=="number")return La(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var gt=Ca;function Sa(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,i=parseFloat(t),o=n.toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return i*315576e5;case"months":case"month":case"mo":return i*26298e5;case"weeks":case"week":case"w":return i*6048e5;case"days":case"day":case"d":return i*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return i*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return i*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return i*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:throw Error(`Unknown unit "${o}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function Ia(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`: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 Ta(r){let e=Math.abs(r);return e>=315576e5?be(r,e,315576e5,"year"):e>=26298e5?be(r,e,26298e5,"month"):e>=6048e5?be(r,e,6048e5,"week"):e>=864e5?be(r,e,864e5,"day"):e>=36e5?be(r,e,36e5,"hour"):e>=6e4?be(r,e,6e4,"minute"):e>=1e3?be(r,e,1e3,"second"):`${r} ms`}function La(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Ta(r):Ia(r)}function be(r,e,t,n){let i=e>=t*1.5;return`${Math.round(r/t)} ${n}${i?"s":""}`}function en(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=i,t.enabled=s,t.humanize=gt,t.destroy=d,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let f=0;for(let m=0;m<l.length;m++)f=(f<<5)-f+l.charCodeAt(m),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(l){let f,m=null,y,b;function x(...w){if(!x.enabled)return;let _=x,C=Number(new Date),S=C-(f||C);_.diff=S,_.prev=f,_.curr=C,f=C,w[0]=t.coerce(w[0]),typeof w[0]!="string"&&w.unshift("%O");let I=0;w[0]=w[0].replace(/%([a-zA-Z%])/g,(V,$)=>{if(V==="%%")return"%";I++;let K=t.formatters[$];if(typeof K=="function"){let Ie=w[I];V=K.call(_,Ie),w.splice(I,1),I--}return V}),t.formatArgs.call(_,w),(_.log||t.log).apply(_,w)}return x.namespace=l,x.useColors=t.useColors(),x.color=t.selectColor(l),x.extend=n,x.destroy=t.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>m!==null?m:(y!==t.namespaces&&(y=t.namespaces,b=t.enabled(l)),b),set:w=>{m=w}}),typeof t.init=="function"&&t.init(x),x}function n(l,f){let m=t(this.namespace+(typeof f>"u"?":":f)+l);return m.log=this.log,m}function i(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let f,m=(typeof l=="string"?l:"").split(/[\s,]+/),y=m.length;for(f=0;f<y;f++)m[f]&&(l=m[f].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.substr(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function o(){let l=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let f,m;for(f=0,m=t.skips.length;f<m;f++)if(t.skips[f].test(l))return!1;for(f=0,m=t.names.length;f<m;f++)if(t.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack??l.message:l}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var yt=Fa(),Pa=["#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 Da(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+gt(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(t++,i==="%c"&&(n=t))}),r.splice(n,0,e)}var Ra=console.debug??console.log??(()=>{});function Ua(r){try{r?yt?.setItem("debug",r):yt?.removeItem("debug")}catch{}}function Ba(){let r;try{r=yt?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function Fa(){try{return localStorage}catch{}}function $a(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var Di=en({formatArgs:Da,save:Ua,load:Ba,useColors:Na,setupFormatters:$a,colors:Pa,storage:yt,log:Ra});var R=Di;R.formatters.b=r=>r==null?"undefined":W.baseEncode(r);R.formatters.t=r=>r==null?"undefined":me.baseEncode(r);R.formatters.m=r=>r==null?"undefined":ge.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=>{if(r==null)return"undefined";let e=Ri(r.message),t=Ri(r.stack);return e!=null&&t!=null?t.includes(e)?t:`${e}
|
|
3
|
+
${t}`:t??e??r.toString()};function za(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 Ui(){return{forComponent(r){return Bi(r)}}}function Bi(r){let e=za(`${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,newScope:t=>Bi(`${r}:${t}`)})}function Ri(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var v=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var rn=Ci($i(),1);var nn=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},zi=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function on(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout},signal:s}=e,a,c,l=new Promise((f,m)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(s?.aborted){m(zi(s));return}if(s&&(c=()=>{m(zi(s))},s.addEventListener("abort",c,{once:!0})),r.then(f,m),t===Number.POSITIVE_INFINITY)return;let y=new nn;a=o.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(b){m(b)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?f():i instanceof Error?m(i):(y.message=i??`Promise timed out after ${t} milliseconds`,m(y))},t)}).finally(()=>{l.clear(),c&&s&&s.removeEventListener("abort",c)});return l.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},l}function sn(r,e,t){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;t(r[s],e)<=0?(n=++s,i-=o+1):i=o}return n}var Ge=class{#e=[];enqueue(e,t){let{priority:n=0,id:i}=t??{},o={priority:n,id:i,run:e};if(this.size===0||this.#e[this.size-1].priority>=n){this.#e.push(o);return}let s=sn(this.#e,o,(a,c)=>c.priority-a.priority);this.#e.splice(s,0,o)}setPriority(e,t){let n=this.#e.findIndex(o=>o.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[i]=this.#e.splice(n,1);this.enqueue(i.run,{priority:t,id:e})}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Qe=class extends rn.default{#e;#n;#i=0;#d;#p=!1;#m=!1;#u;#b=0;#g=0;#o;#s;#t;#x;#r=0;#l;#a;#C=1n;#f=new Map;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ge,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#u=e.interval,this.#t=new e.queueClass,this.#x=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#a=e.autoStart===!1,this.#R()}get#S(){return this.#n||this.#i<this.#d}get#I(){return this.#r<this.#l}#T(){this.#r--,this.#r===0&&this.emit("pendingZero"),this.#y(),this.emit("next")}#L(){this.#k(),this.#_(),this.#s=void 0}get#P(){let e=Date.now();if(this.#o===void 0){let t=this.#b-e;if(t<0){if(this.#g>0){let n=e-this.#g;if(n<this.#u)return this.#E(this.#u-n),!0}this.#i=this.#e?this.#r:0}else return this.#E(t),!0}return!1}#E(e){this.#s===void 0&&(this.#s=setTimeout(()=>{this.#L()},e))}#v(){this.#o&&(clearInterval(this.#o),this.#o=void 0)}#N(){this.#s&&(clearTimeout(this.#s),this.#s=void 0)}#y(){if(this.#t.size===0)return this.#v(),this.emit("empty"),this.#r===0&&(this.#N(),this.emit("idle")),!1;let e=!1;if(!this.#a){let t=!this.#P;if(this.#S&&this.#I){let n=this.#t.dequeue();this.#n||(this.#i++,this.#h()),this.emit("active"),this.#g=Date.now(),n(),t&&this.#_(),e=!0}}return e}#_(){this.#n||this.#o!==void 0||(this.#o=setInterval(()=>{this.#k()},this.#u),this.#b=Date.now()+this.#u)}#k(){this.#i===0&&this.#r===0&&this.#o&&this.#v(),this.#i=this.#e?this.#r:0,this.#w(),this.#h()}#w(){for(;this.#y(););}get concurrency(){return this.#l}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.#l=e,this.#w()}async#D(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#t.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#C++).toString(),t={timeout:this.timeout,...t},new Promise((n,i)=>{let o=Symbol(`task-${t.id}`);this.#t.enqueue(async()=>{this.#r++,this.#f.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});try{try{t.signal?.throwIfAborted()}catch(c){throw this.#n||this.#i--,this.#f.delete(o),c}let s=e({signal:t.signal});t.timeout&&(s=on(Promise.resolve(s),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#r} running, ${this.#t.size} waiting)`})),t.signal&&(s=Promise.race([s,this.#D(t.signal)]));let a=await s;n(a),this.emit("completed",a)}catch(s){i(s),this.emit("error",s)}finally{this.#f.delete(o),queueMicrotask(()=>{this.#T()})}},t),this.emit("add"),this.#y()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#a?(this.#a=!1,this.#w(),this):this}pause(){this.#a=!0}clear(){this.#t=new this.#x,this.#A()}async onEmpty(){this.#t.size!==0&&await this.#c("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#c("next",()=>this.#t.size<e)}async onIdle(){this.#r===0&&this.#t.size===0||await this.#c("idle")}async onPendingZero(){this.#r!==0&&await this.#c("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#c("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#c("rateLimitCleared")}async onError(){return new Promise((e,t)=>{let n=i=>{this.off("error",n),t(i)};this.on("error",n)})}async#c(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#r}get isPaused(){return this.#a}#R(){this.#n||(this.on("add",()=>{this.#t.size>0&&this.#h()}),this.on("next",()=>{this.#h()}))}#h(){this.#n||this.#m||(this.#m=!0,queueMicrotask(()=>{this.#m=!1,this.#A()}))}#A(){let e=this.#p,t=!this.#n&&this.#i>=this.#d&&this.#t.size>0;t!==e&&(this.#p=t,this.emit(t?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#p}get isSaturated(){return this.#r===this.#l&&this.#t.size>0||this.isRateLimited&&this.#t.size>0}get runningTasks(){return[...this.#f.values()].map(e=>({...e}))}};function bt(r){let e=[Z.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var an={};T(an,{base10:()=>qa});var qa=pe({prefix:"9",name:"base10",alphabet:"0123456789"});var cn={};T(cn,{base16:()=>ja,base16upper:()=>Va});var ja=A({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Va=A({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var un={};T(un,{base2:()=>Ka});var Ka=A({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ln={};T(ln,{base256emoji:()=>Ja});var Mi=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Ha=Mi.reduce((r,e,t)=>(r[t]=e,r),[]),Wa=Mi.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Ga(r){return r.reduce((e,t)=>(e+=Ha[t],e),"")}function Qa(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let i=Wa[n];if(i==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}var Ja=Le({prefix:"\u{1F680}",name:"base256emoji",encode:Ga,decode:Qa});var fn={};T(fn,{base36:()=>ae,base36upper:()=>Ya});var ae=pe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ya=pe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var hn={};T(hn,{base8:()=>Xa});var Xa=A({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var dn={};T(dn,{identity:()=>Za});var Za=Le({prefix:"\0",name:"identity",encode:r=>Li(r),decode:r=>Ti(r)});var xt={};T(xt,{code:()=>pn,decode:()=>ic,encode:()=>nc,name:()=>rc});var ec=new TextEncoder,tc=new TextDecoder,rc="json",pn=512;function nc(r){return ec.encode(JSON.stringify(r))}function ic(r){return JSON.parse(tc.decode(r))}var Et={};T(Et,{code:()=>mn,decode:()=>ac,encode:()=>sc,name:()=>oc});var oc="raw",mn=85;function sc(r){return X(r)}function ac(r){return X(r)}var yn={};T(yn,{identity:()=>_t});var cc=ji,Oi=128,uc=127,lc=~uc,fc=Math.pow(2,31);function ji(r,e,t){e=e||[],t=t||0;for(var n=t;r>=fc;)e[t++]=r&255|Oi,r/=128;for(;r&lc;)e[t++]=r&255|Oi,r>>>=7;return e[t]=r|0,ji.bytes=t-n+1,e}var hc=gn,dc=128,qi=127;function gn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw gn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&qi)<<i:(s&qi)*Math.pow(2,i),i+=7}while(s>=dc);return gn.bytes=o-n,t}var pc=Math.pow(2,7),mc=Math.pow(2,14),gc=Math.pow(2,21),yc=Math.pow(2,28),wc=Math.pow(2,35),bc=Math.pow(2,42),xc=Math.pow(2,49),Ec=Math.pow(2,56),vc=Math.pow(2,63),_c=function(r){return r<pc?1:r<mc?2:r<gc?3:r<yc?4:r<wc?5:r<bc?6:r<xc?7:r<Ec?8:r<vc?9:10},kc={encode:cc,decode:hc,encodingLength:_c},Ac=kc,Je=Ac;function Ye(r,e=0){return[Je.decode(r,e),Je.decode.bytes]}function Pe(r,e,t=0){return Je.encode(r,e,t),e}function Ne(r){return Je.encodingLength(r)}function Re(r,e){let t=e.byteLength,n=Ne(r),i=n+Ne(t),o=new Uint8Array(i+t);return Pe(r,o,0),Pe(t,o,n),o.set(e,i),new De(r,t,e,o)}function Vi(r){let e=X(r),[t,n]=Ye(e),[i,o]=Ye(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new De(t,i,s,e)}function Ki(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Ii(r.bytes,t.bytes)}}var De=class{code;size;digest;bytes;constructor(e,t,n,i){this.code=e,this.size=t,this.digest=n,this.bytes=i}};var Hi=0,Cc="identity",Wi=X;function Sc(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Re(Hi,Wi(r))}var _t={code:Hi,name:Cc,encode:Wi,digest:Sc};var xn={};T(xn,{sha256:()=>kt,sha512:()=>At});var Ic=20;function bn({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:i}){return new wn(r,e,t,n,i)}var wn=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,i,o){this.name=e,this.code=t,this.encode=n,this.minDigestLength=i??Ic,this.maxDigestLength=o}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Gi(n,this.code,t?.truncate):n.then(i=>Gi(i,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Gi(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Re(e,r)}function Ji(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var kt=bn({name:"sha2-256",code:18,encode:Ji("SHA-256")}),At=bn({name:"sha2-512",code:19,encode:Ji("SHA-512")});function Yi(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Lc(t,En(r),e??W.encoder);default:return Pc(t,En(r),e??me.encoder)}}var Xi=new WeakMap;function En(r){let e=Xi.get(r);if(e==null){let t=new Map;return Xi.set(r,t),t}return e}var k=class r{code;version;multihash;bytes;"/";constructor(e,t,n,i){this.code=t,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Ze)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==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=Re(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&&Ki(e.multihash,n.multihash)}toString(e){return Yi(this,e)}toJSON(){return{"/":Yi(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:i,multihash:o,bytes:s}=t;return new r(n,i,o,s??Zi(n,i,o.bytes))}else if(t[Dc]===!0){let{version:n,multihash:i,code:o}=t,s=Vi(i);return r.create(n,o,s)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Ze)throw new Error(`Version 0 CID must use dag-pb (code: ${Ze}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let i=Zi(e,t,n.bytes);return new r(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Ze,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,i=X(e.subarray(n,n+t.multihashSize));if(i.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=i.subarray(t.multihashSize-t.digestSize),s=new De(t.multihashCode,t.digestSize,o,i);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,m]=Ye(e.subarray(t));return t+=m,f},i=n(),o=Ze;if(i===18?(i=0,t=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=t,a=n(),c=n(),d=t+c,l=d-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:d}}static parse(e,t){let[n,i]=Tc(e,t),o=r.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return En(o).set(n,e),o}};function Tc(r,e){switch(r[0]){case"Q":{let t=e??W;return[W.prefix,t.decode(`${W.prefix}${r}`)]}case W.prefix:{let t=e??W;return[W.prefix,t.decode(r)]}case me.prefix:{let t=e??me;return[me.prefix,t.decode(r)]}case ae.prefix:{let t=e??ae;return[ae.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 Lc(r,e,t){let{prefix:n}=t;if(n!==W.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let i=e.get(n);if(i==null){let o=t.encode(r).slice(1);return e.set(n,o),o}else return i}function Pc(r,e,t){let{prefix:n}=t,i=e.get(n);if(i==null){let o=t.encode(r);return e.set(n,o),o}else return i}var Ze=112,Nc=18;function Zi(r,e,t){let n=Ne(r),i=n+Ne(e),o=new Uint8Array(i+t.byteLength);return Pe(r,o,0),Pe(e,o,n),o.set(t,i),o}var Dc=Symbol.for("@ipld/js-cid/CID");var vn={...dn,...un,...hn,...an,...cn,...Yr,...fn,...Xr,...Zr,...ln},Yf={...xn,...yn};function eo(r=0){return new Uint8Array(r)}function Ct(r=0){return new Uint8Array(r)}function ro(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var to=ro("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),_n=ro("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=Ct(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Rc={utf8:to,"utf-8":to,hex:vn.base16,latin1:_n,ascii:_n,binary:_n,...vn},St=Rc;function Ue(r,e="utf8"){let t=St[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var kn=60;function It(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:Z[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Z[e.type],TTL:e.TTL??e.ttl??kn,data:e.data instanceof Uint8Array?Ue(e.data):e.data}))}}var Uc=4;function An(r,e={}){let t=new Qe({concurrency:e.queryConcurrency??Uc});return async(n,i={})=>{let o=new URLSearchParams;o.set("name",n),bt(i.types).forEach(a=>{o.append("type",Z[a])}),i.onProgress?.(new v("dns:query",n));let s=await t.add(async()=>{let a=await fetch(`${r}?${o}`,{headers:{accept:"application/dns-json"},signal:i?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=It(await a.json());return i.onProgress?.(new v("dns:response",c)),c},{signal:i.signal});if(s==null)throw new Error("No DNS response received");return s}}function no(){return[An("https://cloudflare-dns.com/dns-query"),An("https://dns.google/resolve")]}var so=Ci(oo(),1);var Cn=class{lru;constructor(e){this.lru=(0,so.default)(e)}get(e,t){let n=!0,i=[];for(let o of t){let s=this.getAnswers(e,o);if(s.length===0){n=!1;break}i.push(...s)}if(n)return It({answers:i})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,i=this.lru.get(n);if(i!=null){let o=i.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:Z[a.type]}));return o.length===0&&this.lru.remove(n),o}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,i=this.lru.get(n)??[];i.push({expires:Date.now()+(t.TTL??kn)*1e3,value:t}),this.lru.set(n,i)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function ao(r){return new Cn(r)}var Bc=1e3,Tt=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=ao(e.cacheSize??Bc),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["."]=no())}async query(e,t={}){let n=bt(t.types),i=t.cached!==!1?this.cache.get(e,n):void 0;if(i!=null)return t.onProgress?.(new v("dns:cache",i)),i;let o=`${e.split(".").pop()}.`,s=(this.resolvers[o]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of s){if(t.signal?.aborted===!0)break;try{let d=await c(e,{...t,types:n});for(let l of d.Answer)this.cache.add(e,l);return d}catch(d){a.push(d),t.onProgress?.(new v("dns:error",d))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var Z;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Z||(Z={}));function co(r={}){return new Tt(r)}function Fc(r){return r[Symbol.asyncIterator]!=null}function $c(r){if(Fc(r))return(async()=>{for await(let e of r);})();for(let e of r);}var uo=$c;function xe(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 Sn(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=Ct(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return t}function U(r,e="utf8"){let t=St[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}var In={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},lo={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},fo=new globalThis.TextEncoder;function zc(r,e){let t=In[e],n=lo[e];for(let i=0;i<r.length;i++)n^=BigInt(r[i]),n=BigInt.asUintN(e,n*t);return n}function Mc(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=In[e],i=lo[e],o=r;for(;o.length>0;){let s=fo.encodeInto(o,t);o=o.slice(s.read);for(let a=0;a<s.written;a++)i^=BigInt(t[a]),i=BigInt.asUintN(e,i*n)}return i}function Tn(r,{size:e=32,utf8Buffer:t}={}){if(!In[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 Mc(r,e,t);r=fo.encode(r)}return zc(r,e)}var et={hash:r=>Number(Tn(r,{size:32})),hashV:(r,e)=>Oc(et.hash(r,e))};function Oc(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),U(e,"base16")}var Ln=64,ee=class{fp;h;seed;constructor(e,t,n,i=2){if(i>Ln)throw new TypeError("Invalid Fingerprint Size");let o=t.hashV(e,n),s=eo(i);for(let a=0;a<s.length;a++)s[a]=o[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?xe(this.fp,e.fp):!1}};function Ee(r,e){return Math.floor(Math.random()*(e-r))+r}var ve=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof ee))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof ee))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 ee))throw new TypeError("Invalid Fingerprint");let t=Ee(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof ee))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var qc=500,tt=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??et,this.seed=e.seed??Ee(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new ve(this.bucketSize)),this.buckets[i]==null&&(this.buckets[i]=new ve(this.bucketSize)),this.buckets[n].add(t)||this.buckets[i].add(t))return this.count++,!0;let o=[n,i],s=o[Ee(0,o.length-1)];this.buckets[s]==null&&(this.buckets[s]=new ve(this.bucketSize));for(let a=0;a<qc;a++){let c=this.buckets[s].swap(t);if(c!=null&&(s=(s^c.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new ve(this.bucketSize)),this.buckets[s].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.has(t)??!1;if(i)return i;let o=(n^t.hash())%this.filterSize;return this.buckets[o]?.has(t)??!1}remove(e){typeof e=="string"&&(e=U(e));let t=new ee(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.remove(t)??!1;if(i)return this.count--,i;let o=(n^t.hash())%this.filterSize,s=this.buckets[o]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},jc={1:.5,2:.84,4:.95,8:.98};function Vc(r=.001){return r>.002?2:r>1e-5?4:8}function ho(r,e=.001){let t=Vc(e),n=jc[t],i=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Ln);return{filterSize:i,bucketSize:t,fingerprintSize:o}}var Lt=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??et,this.seed=e.seed??Ee(0,Math.pow(2,10)),this.filterSeries=[new tt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=U(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new tt({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=U(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Pn(r,e=.001,t){return new Lt({...ho(r,e),...t??{}})}function B(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Pt=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Be=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Pt(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 Pt(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 Nn=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Nt(r={}){return Kc(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 Kc(r,e){e=e??{};let t=e.onEnd,n=new Be,i,o,s,a=B(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((w,_)=>{o=C=>{o=null,n.push(C);try{w(r(n))}catch(S){_(S)}return i}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=B()})}},d=w=>o!=null?o(w):(n.push(w),i),l=w=>(n=new Be,o!=null?o({error:w}):(n.push({error:w}),i)),f=w=>{if(s)return i;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return d({done:!1,value:w})},m=w=>s?i:(s=!0,w!=null?l(w):d({done:!0})),y=()=>(n=new Be,m(),{done:!0}),b=w=>(m(w),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:b,push:f,end:m,get readableLength(){return n.size},onEmpty:async w=>{let _=w?.signal;if(_?.throwIfAborted(),n.isEmpty())return;let C,S;_!=null&&(C=new Promise((I,F)=>{S=()=>{F(new Nn)},_.addEventListener("abort",S)}));try{await Promise.race([a.promise,C])}finally{S!=null&&_!=null&&_?.removeEventListener("abort",S)}}},t==null)return i;let x=i;return i={[Symbol.asyncIterator](){return this},next(){return x.next()},throw(w){return x.throw(w),t!=null&&(t(w),t=void 0),{done:!0}},return(){return x.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(w){return x.end(w),t!=null&&(t(w),t=void 0),i},get readableLength(){return x.readableLength},onEmpty:w=>x.onEmpty(w)},i}var Dn=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Rn=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},po=r=>globalThis.DOMException===void 0?new Rn(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 Un(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=e,s,a,d=new Promise((l,f)=>{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:y}=e;y.aborted&&f(mo(y)),a=()=>{f(mo(y))},y.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(l,f);return}let m=new Dn;s=o.setTimeout.call(void 0,()=>{if(n){try{l(n())}catch(y){f(y)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?l():i instanceof Error?f(i):(m.message=i??`Promise timed out after ${t} milliseconds`,f(m))},t),(async()=>{try{l(await r)}catch(y){f(y)}})()}).finally(()=>{d.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return d.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},d}var Hc=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function Wc(r,e,t){let n,i=new Promise((o,s)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:d,removeListener:l}=Hc(r),f=async(...y)=>{let b=t.multiArgs?y:y[0];if(t.filter)try{if(!await t.filter(b))return}catch(x){n(),s(x);return}c.push(b),t.count===c.length&&(n(),o(c))},m=(...y)=>{n(),s(t.rejectionMultiArgs?y:y[0])};n=()=>{for(let y of a)l(y,f);for(let y of t.rejectionEvents)a.includes(y)||l(y,m)};for(let y of a)d(y,f);for(let y of t.rejectionEvents)a.includes(y)||d(y,m);t.signal&&t.signal.addEventListener("abort",()=>{m(t.signal.reason)},{once:!0}),t.resolveImmediately&&o(c)});if(i.cancel=n,typeof t.timeout=="number"){let o=Un(i,{milliseconds:t.timeout});return o.cancel=()=>{n(),o.clear()},o}return i}function Dt(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Wc(r,e,t),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}function Bn(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Rt=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};function Gc(r){return r.reason}async function rt(r,e,t){if(e==null)return r;let n=t?.translateError??Gc;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let i;try{return await Promise.race([r,new Promise((o,s)=>{i=()=>{s(n(e))},e.addEventListener("abort",i)})])}finally{i!=null&&e.removeEventListener("abort",i)}}var Ut=class{deferred;signal;constructor(e){this.signal=e,this.deferred=B(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Y)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Qc(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Bt=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Qc(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Y),this.cleanup())}async join(e={}){let t=new Ut(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 rt(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 G=class extends H{concurrency;maxSize;queue;pending;sort;paused;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.paused=!1,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=Bn(this.emitEmpty.bind(this),1),this.emitIdle=Bn(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}pause(){this.paused=!0}resume(){this.paused&&(this.paused=!1,this.tryToStartAnother())}tryToStartAnother(){if(this.paused)return!1;if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Rt;let n=new Bt(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("completed",{detail:i}),this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Y)}),this.clear()}async onEmpty(e){this.size!==0&&await Dt(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await Dt(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Dt(this,"idle",e)}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=Nt({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new Y("Queue aborted"))};this.addEventListener("completed",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};function oe(r){let e=new globalThis.AbortController;function t(){e.abort();for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}for(let o of r){if(o?.aborted===!0){t();break}o?.addEventListener!=null&&o.addEventListener("abort",t)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}let i=e.signal;return i.clear=n,i}var Ft=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 go(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new Ft(t?.errorMessage,t?.errorCode,t?.errorName));let n,i=new Ft(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((o,s)=>{n=()=>{s(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Fn=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=B(),this.haveNext=B()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=B(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=B(),await go(this.readNext.promise,t?.signal,t)}};function yo(){return new Fn}function Jc(r){return r[Symbol.asyncIterator]!=null}async function Yc(r,e,t){try{await Promise.all(r.map(async n=>{for await(let i of n)await e.push(i,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Xc(r){let e=new AbortController,t=yo();Yc(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Zc(r){for(let e of r)yield*e}function eu(...r){let e=[];for(let t of r)Jc(t)||e.push(t);return e.length===r.length?Zc(e):Xc(r)}var $t=eu;var tu=["string","number","bigint","symbol"],ru=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function wo(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(tu.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(nu(r))return"Buffer";let t=iu(r);return t||"Object"}function nu(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function iu(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(ru.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 h=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Fe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",ou=new TextDecoder,su=new TextEncoder;function zt(r){return Fe&&globalThis.Buffer.isBuffer(r)}function nt(r){return r instanceof Uint8Array?zt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var vo=Fe?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):xo(r,e,t):(r,e,t)=>t-e>64?ou.decode(r.subarray(e,t)):xo(r,e,t),Mt=Fe?r=>r.length>64?globalThis.Buffer.from(r):bo(r):r=>r.length>64?su.encode(r):bo(r),se=r=>Uint8Array.from(r),$e=Fe?(r,e,t)=>zt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),_o=Fe?(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 i of r)n+i.length>t.length&&(i=i.subarray(0,t.length-n)),t.set(i,n),n+=i.length;return t},ko=Fe?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Ao(r,e){if(zt(r)&&zt(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 bo(r){let e=[],t=0;for(let n=0;n<r.length;n++){let i=r.charCodeAt(n);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(i=65536+((i&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e}function xo(r,e,t){let n=[];for(;e<t;){let i=r[e],o=null,s=i>239?4:i>223?3:i>191?2:1;if(e+s<=t){let a,c,d,l;switch(s){case 1:i<128&&(o=i);break;case 2:a=r[e+1],(a&192)===128&&(l=(i&31)<<6|a&63,l>127&&(o=l));break;case 3:a=r[e+1],c=r[e+2],(a&192)===128&&(c&192)===128&&(l=(i&15)<<12|(a&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:a=r[e+1],c=r[e+2],d=r[e+3],(a&192)===128&&(c&192)===128&&(d&192)===128&&(l=(i&15)<<18|(a&63)<<12|(c&63)<<6|d&63,l>65535&&l<1114112&&(o=l))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),e+=s}return $n(n)}var Eo=4096;function $n(r){let e=r.length;if(e<=Eo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Eo));return t}var au=256,it=class{constructor(e=au){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 i=t.length-(this.maxCursor-this.cursor)-1;t.set(e,i)}else{if(t){let i=t.length-(this.maxCursor-this.cursor)-1;i<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,i),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=ko(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=$e(n,0,this.cursor)}else t=_o(this.chunks,this.cursor);return e&&this.reset(),t}};var g="CBOR decode error:",ce="CBOR encode error:",ot=[];ot[23]=1;ot[24]=2;ot[25]=3;ot[26]=5;ot[27]=9;function ue(r,e,t){if(r.length-e<t)throw new Error(`${g} not enough data for type`)}var L=[24,256,65536,4294967296,BigInt("18446744073709551616")];function z(r,e,t){ue(r,e,1);let n=r[e];if(t.strict===!0&&n<L[0])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function M(r,e,t){ue(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<L[1])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function O(r,e,t){ue(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<L[2])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){ue(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],i=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],o=(BigInt(n)<<BigInt(32))+BigInt(i);if(t.strict===!0&&o<L[3])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);if(o<=Number.MAX_SAFE_INTEGER)return Number(o);if(t.allowBigInt===!0)return o;throw new Error(`${g} integers outside of the safe integer range are not supported`)}function Co(r,e,t,n){return new h(u.uint,z(r,e+1,n),2)}function So(r,e,t,n){return new h(u.uint,M(r,e+1,n),3)}function Io(r,e,t,n){return new h(u.uint,O(r,e+1,n),5)}function To(r,e,t,n){return new h(u.uint,q(r,e+1,n),9)}function Q(r,e){return P(r,0,e.value)}function P(r,e,t){if(t<L[0]){let n=Number(t);r.push([e|n])}else if(t<L[1]){let n=Number(t);r.push([e|24,n])}else if(t<L[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<L[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<L[4]){let i=[e|27,0,0,0,0,0,0,0],o=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));i[8]=o&255,o=o>>8,i[7]=o&255,o=o>>8,i[6]=o&255,o=o>>8,i[5]=o&255,i[4]=s&255,s=s>>8,i[3]=s&255,s=s>>8,i[2]=s&255,s=s>>8,i[1]=s&255,r.push(i)}else throw new Error(`${g} encountered BigInt larger than allowable range`)}}Q.encodedSize=function(e){return P.encodedSize(e.value)};P.encodedSize=function(e){return e<L[0]?1:e<L[1]?2:e<L[2]?3:e<L[3]?5:9};Q.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Lo(r,e,t,n){return new h(u.negint,-1-z(r,e+1,n),2)}function Po(r,e,t,n){return new h(u.negint,-1-M(r,e+1,n),3)}function No(r,e,t,n){return new h(u.negint,-1-O(r,e+1,n),5)}var zn=BigInt(-1),Do=BigInt(1);function Ro(r,e,t,n){let i=q(r,e+1,n);if(typeof i!="bigint"){let o=-1-i;if(o>=Number.MIN_SAFE_INTEGER)return new h(u.negint,o,9)}if(n.allowBigInt!==!0)throw new Error(`${g} integers outside of the safe integer range are not supported`);return new h(u.negint,zn-BigInt(i),9)}function Ot(r,e){let t=e.value,n=typeof t=="bigint"?t*zn-Do:t*-1-1;P(r,e.type.majorEncoded,n)}Ot.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*zn-Do:t*-1-1;return n<L[0]?1:n<L[1]?2:n<L[2]?3:n<L[3]?5:9};Ot.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function st(r,e,t,n){ue(r,e,t+n);let i=$e(r,e+t,e+t+n);return new h(u.bytes,i,t+n)}function Uo(r,e,t,n){return st(r,e,1,t)}function Bo(r,e,t,n){return st(r,e,2,z(r,e+1,n))}function Fo(r,e,t,n){return st(r,e,3,M(r,e+1,n))}function $o(r,e,t,n){return st(r,e,5,O(r,e+1,n))}function zo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer bytes lengths not supported`);return st(r,e,9,i)}function qt(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===u.string?Mt(r.value):r.value),r.encodedBytes}function ze(r,e){let t=qt(e);P(r,e.type.majorEncoded,t.length),r.push(t)}ze.encodedSize=function(e){let t=qt(e);return P.encodedSize(t.length)+t.length};ze.compareTokens=function(e,t){return uu(qt(e),qt(t))};function uu(r,e){return r.length<e.length?-1:r.length>e.length?1:Ao(r,e)}function at(r,e,t,n,i){let o=t+n;ue(r,e,o);let s=new h(u.string,vo(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=$e(r,e+t,e+o)),s}function Mo(r,e,t,n){return at(r,e,1,t,n)}function Oo(r,e,t,n){return at(r,e,2,z(r,e+1,n),n)}function qo(r,e,t,n){return at(r,e,3,M(r,e+1,n),n)}function jo(r,e,t,n){return at(r,e,5,O(r,e+1,n),n)}function Vo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer string lengths not supported`);return at(r,e,9,i,n)}var Ko=ze;function Me(r,e,t,n){return new h(u.array,n,t)}function Ho(r,e,t,n){return Me(r,e,1,t)}function Wo(r,e,t,n){return Me(r,e,2,z(r,e+1,n))}function Go(r,e,t,n){return Me(r,e,3,M(r,e+1,n))}function Qo(r,e,t,n){return Me(r,e,5,O(r,e+1,n))}function Jo(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer array lengths not supported`);return Me(r,e,9,i)}function Yo(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return Me(r,e,1,1/0)}function jt(r,e){P(r,u.array.majorEncoded,e.value)}jt.compareTokens=Q.compareTokens;jt.encodedSize=function(e){return P.encodedSize(e.value)};function Oe(r,e,t,n){return new h(u.map,n,t)}function Xo(r,e,t,n){return Oe(r,e,1,t)}function Zo(r,e,t,n){return Oe(r,e,2,z(r,e+1,n))}function es(r,e,t,n){return Oe(r,e,3,M(r,e+1,n))}function ts(r,e,t,n){return Oe(r,e,5,O(r,e+1,n))}function rs(r,e,t,n){let i=q(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer map lengths not supported`);return Oe(r,e,9,i)}function ns(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return Oe(r,e,1,1/0)}function Vt(r,e){P(r,u.map.majorEncoded,e.value)}Vt.compareTokens=Q.compareTokens;Vt.encodedSize=function(e){return P.encodedSize(e.value)};function is(r,e,t,n){return new h(u.tag,t,1)}function os(r,e,t,n){return new h(u.tag,z(r,e+1,n),2)}function ss(r,e,t,n){return new h(u.tag,M(r,e+1,n),3)}function as(r,e,t,n){return new h(u.tag,O(r,e+1,n),5)}function cs(r,e,t,n){return new h(u.tag,q(r,e+1,n),9)}function Kt(r,e){P(r,u.tag.majorEncoded,e.value)}Kt.compareTokens=Q.compareTokens;Kt.encodedSize=function(e){return P.encodedSize(e.value)};var mu=20,gu=21,yu=22,wu=23;function us(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${g} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new h(u.null,null,1):new h(u.undefined,void 0,1)}function ls(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return new h(u.break,void 0,1)}function Mn(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${g} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${g} Infinity values are not supported`)}return new h(u.float,r,e)}function fs(r,e,t,n){return Mn(On(r,e+1),3,n)}function hs(r,e,t,n){return Mn(qn(r,e+1),5,n)}function ds(r,e,t,n){return Mn(ys(r,e+1),9,n)}function Ht(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|mu]);else if(n===!0)r.push([u.float.majorEncoded|gu]);else if(n===null)r.push([u.float.majorEncoded|yu]);else if(n===void 0)r.push([u.float.majorEncoded|wu]);else{let i,o=!1;(!t||t.float64!==!0)&&(ms(n),i=On(te,1),n===i||Number.isNaN(n)?(te[0]=249,r.push(te.slice(0,3)),o=!0):(gs(n),i=qn(te,1),n===i&&(te[0]=250,r.push(te.slice(0,5)),o=!0))),o||(bu(n),i=ys(te,1),te[0]=251,r.push(te.slice(0,9)))}}Ht.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){ms(n);let i=On(te,1);if(n===i||Number.isNaN(n))return 3;if(gs(n),i=qn(te,1),n===i)return 5}return 9};var ps=new ArrayBuffer(9),J=new DataView(ps,1),te=new Uint8Array(ps,0);function ms(r){if(r===1/0)J.setUint16(0,31744,!1);else if(r===-1/0)J.setUint16(0,64512,!1);else if(Number.isNaN(r))J.setUint16(0,32256,!1);else{J.setFloat32(0,r);let e=J.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)J.setUint16(0,31744,!1);else if(t===0)J.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?J.setUint16(0,0):i<-14?J.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):J.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function On(r,e){if(r.length-e<2)throw new Error(`${g} 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,i=t&1023,o;return n===0?o=i*2**-24:n!==31?o=(i+1024)*2**(n-25):o=i===0?1/0:NaN,t&32768?-o:o}function gs(r){J.setFloat32(0,r,!1)}function qn(r,e){if(r.length-e<4)throw new Error(`${g} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function bu(r){J.setFloat64(0,r,!1)}function ys(r,e){if(r.length-e<8)throw new Error(`${g} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Ht.compareTokens=Q.compareTokens;function E(r,e,t){throw new Error(`${g} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Wt(r){return()=>{throw new Error(`${g} ${r}`)}}var p=[];for(let r=0;r<=23;r++)p[r]=E;p[24]=Co;p[25]=So;p[26]=Io;p[27]=To;p[28]=E;p[29]=E;p[30]=E;p[31]=E;for(let r=32;r<=55;r++)p[r]=E;p[56]=Lo;p[57]=Po;p[58]=No;p[59]=Ro;p[60]=E;p[61]=E;p[62]=E;p[63]=E;for(let r=64;r<=87;r++)p[r]=Uo;p[88]=Bo;p[89]=Fo;p[90]=$o;p[91]=zo;p[92]=E;p[93]=E;p[94]=E;p[95]=Wt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)p[r]=Mo;p[120]=Oo;p[121]=qo;p[122]=jo;p[123]=Vo;p[124]=E;p[125]=E;p[126]=E;p[127]=Wt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)p[r]=Ho;p[152]=Wo;p[153]=Go;p[154]=Qo;p[155]=Jo;p[156]=E;p[157]=E;p[158]=E;p[159]=Yo;for(let r=160;r<=183;r++)p[r]=Xo;p[184]=Zo;p[185]=es;p[186]=ts;p[187]=rs;p[188]=E;p[189]=E;p[190]=E;p[191]=ns;for(let r=192;r<=215;r++)p[r]=is;p[216]=os;p[217]=ss;p[218]=as;p[219]=cs;p[220]=E;p[221]=E;p[222]=E;p[223]=E;for(let r=224;r<=243;r++)p[r]=Wt("simple values are not supported");p[244]=E;p[245]=E;p[246]=E;p[247]=us;p[248]=Wt("simple values are not supported");p[249]=fs;p[250]=hs;p[251]=ds;p[252]=E;p[253]=E;p[254]=E;p[255]=ls;var re=[];for(let r=0;r<24;r++)re[r]=new h(u.uint,r,1);for(let r=-1;r>=-24;r--)re[31-r]=new h(u.negint,r,1);re[64]=new h(u.bytes,new Uint8Array(0),1);re[96]=new h(u.string,"",1);re[128]=new h(u.array,0,1);re[160]=new h(u.map,0,1);re[244]=new h(u.false,!1,1);re[245]=new h(u.true,!0,1);re[246]=new h(u.null,null,1);function ws(r){switch(r.type){case u.false:return se([244]);case u.true:return se([245]);case u.null:return se([246]);case u.bytes:return r.value.length?void 0:se([64]);case u.string:return r.value===""?se([96]):void 0;case u.array:return r.value===0?se([128]):void 0;case u.map:return r.value===0?se([160]):void 0;case u.uint:return r.value<24?se([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return se([31-Number(r.value)])}}var Eu={float64:!1,mapSorter:ku,quickEncodeToken:ws};function vu(){let r=[];return r[u.uint.major]=Q,r[u.negint.major]=Ot,r[u.bytes.major]=ze,r[u.string.major]=Ko,r[u.array.major]=jt,r[u.map.major]=Vt,r[u.tag.major]=Kt,r[u.float.major]=Ht,r}var bs=vu(),jn=new it,Qt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${ce} object contains circular references`);return new r(t,e)}},ye={null:new h(u.null,null),undefined:new h(u.undefined,void 0),true:new h(u.true,!0),false:new h(u.false,!1),emptyArray:new h(u.array,0),emptyMap:new h(u.map,0)},we={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new h(u.float,r):r>=0?new h(u.uint,r):new h(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new h(u.uint,r):new h(u.negint,r)},Uint8Array(r,e,t,n){return new h(u.bytes,r)},string(r,e,t,n){return new h(u.string,r)},boolean(r,e,t,n){return r?ye.true:ye.false},null(r,e,t,n){return ye.null},undefined(r,e,t,n){return ye.undefined},ArrayBuffer(r,e,t,n){return new h(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new h(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[ye.emptyArray,new h(u.break)]:ye.emptyArray;n=Qt.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=Gt(s,t,n);return t.addBreakTokens?[new h(u.array,r.length),i,new h(u.break)]:[new h(u.array,r.length),i]},Object(r,e,t,n){let i=e!=="Object",o=i?r.keys():Object.keys(r),s=i?r.size:o.length;if(!s)return t.addBreakTokens===!0?[ye.emptyMap,new h(u.break)]:ye.emptyMap;n=Qt.createCheck(n,r);let a=[],c=0;for(let d of o)a[c++]=[Gt(d,t,n),Gt(i?r.get(d):r[d],t,n)];return _u(a,t),t.addBreakTokens?[new h(u.map,s),a,new h(u.break)]:[new h(u.map,s),a]}};we.Map=we.Object;we.Buffer=we.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))we[`${r}Array`]=we.DataView;function Gt(r,e={},t){let n=wo(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||we[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=we[n];if(!o)throw new Error(`${ce} unsupported type: ${n}`);return o(r,n,e,t)}function _u(r,e){e.mapSorter&&r.sort(e.mapSorter)}function ku(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 i=t.type.major,o=bs[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function xs(r,e,t,n){if(Array.isArray(e))for(let i of e)xs(r,i,t,n);else t[e.type.major](r,e,n)}function Vn(r,e,t){let n=Gt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let i=t.quickEncodeToken(n);if(i)return i;let o=e[n.type.major];if(o.encodedSize){let s=o.encodedSize(n,t),a=new it(s);if(o(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return nt(a.chunks[0])}}return jn.reset(),xs(jn,n,e,t),jn.toBytes(!0)}function ke(r,e){return e=Object.assign({},Eu,e),Vn(r,bs,e)}var Au={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Jt=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=re[e];if(t===void 0){let n=p[e];if(!n)throw new Error(`${g} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let i=e&31;t=n(this.data,this._pos,i,this.options)}return this._pos+=t.encodedLength,t}},ct=Symbol.for("DONE"),Yt=Symbol.for("BREAK");function Cu(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=qe(e,t);if(o===Yt){if(r.value===1/0)break;throw new Error(`${g} got unexpected break to lengthed array`)}if(o===ct)throw new Error(`${g} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function Su(r,e,t){let n=t.useMaps===!0,i=n?void 0:{},o=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=qe(e,t);if(a===Yt){if(r.value===1/0)break;throw new Error(`${g} got unexpected break to lengthed map`)}if(a===ct)throw new Error(`${g} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${g} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&o.has(a)||!n&&a in i))throw new Error(`${g} found repeat map key "${a}"`);let c=qe(e,t);if(c===ct)throw new Error(`${g} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?o.set(a,c):i[a]=c}return n?o:i}function qe(r,e){if(r.done())return ct;let t=r.next();if(t.type===u.break)return Yt;if(t.type.terminal)return t.value;if(t.type===u.array)return Cu(t,r,e);if(t.type===u.map)return Su(t,r,e);if(t.type===u.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=qe(r,e);return e.tags[t.value](n)}throw new Error(`${g} tag not supported (${t.value})`)}throw new Error("unsupported")}function Kn(r,e){if(!(r instanceof Uint8Array))throw new Error(`${g} data to decode must be a Uint8Array`);e=Object.assign({},Au,e);let t=e.tokenizer||new Jt(r,e),n=qe(t,e);if(n===ct)throw new Error(`${g} did not find any content to decode`);if(n===Yt)throw new Error(`${g} got unexpected break`);return[n,r.subarray(t.pos())]}function ne(r,e){let[t,n]=Kn(r,e);if(n.length>0)throw new Error(`${g} too many terminals, data makes no sense`);return t}var Xt=class extends G{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var le="/",vs=new TextEncoder().encode(le),Zt=vs[0],fe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=U(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Zt)throw new Error("Invalid key")}toString(e="utf8"){return Ue(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=vs),this._buf[0]!==Zt){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Zt,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Zt;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let i=0;i<t.length;i++){if(n.length<i+1)return!1;let o=t[i],s=n[i];if(o<s)return!0;if(o>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 Iu(this.baseNamespace())}name(){return Tu(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(),...Lu(e.map(t=>t.namespaces()))])}};function Iu(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Tu(r){let e=r.split(":");return e[e.length-1]}function Lu(r){return[].concat(...r)}function Pu(r){return r[Symbol.asyncIterator]!=null}function Nu(r){if(Pu(r))return(async()=>{let n=new Uint8Array(0);for await(let i of r)n=Sn([n,i],n.length+i.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return Sn(e,t)}var er=Nu;function tr({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*Du(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t],o=k.asCID(n);o!=null?yield[i.join("/"),o]:typeof n=="object"&&(yield*Hn(n,i))}else{let t=k.asCID(e);t!=null?yield[r.join("/"),t]:yield*Hn(e,r)}}function*Hn(r,e){if(r==null||r instanceof Uint8Array)return;let t=k.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,i]of Object.entries(r)){let o=[...e,n];yield*Du(o,i)}}function*Ru(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t];yield i.join("/"),typeof n=="object"&&k.asCID(n)==null&&(yield*Wn(n,i))}else yield*Wn(e,r)}function*Wn(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let i=[...e,t];yield i.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&k.asCID(n)==null&&(yield*Ru(i,n))}}function Uu(r,e){let t=r;for(let[n,i]of e.entries()){if(t=t[i],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let o=k.asCID(t);if(o!=null)return{value:o,remaining:e.slice(n+1).join("/")}}return{value:t}}var Gn=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:tr(),bytes:tr(),value:tr(),asBlock:tr()})}links(){return Hn(this.value,[])}tree(){return Wn(this.value,[])}get(e="/"){return Uu(this.value,e.split("/").filter(Boolean))}};function rr({bytes:r,cid:e,value:t,codec:n}){let i=t!==void 0?t:n?.decode(r);if(i===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Gn({cid:e,bytes:r,value:i})}var nr=class extends Error{static name="AlreadyPinnedError";name="AlreadyPinnedError"},ut=class extends Error{static name="BlockPinnedError";name="BlockPinnedError"},ir=class extends Error{static name="InvalidDatastoreVersionError";name="InvalidDatastoreVersionError"},or=class extends Error{static name="InvalidConfigurationError";name="InvalidConfigurationError"};var As="/pin/",_s="/pinned-block/",Qn=ae,ks=1;function sr(r){return r.version===0&&(r=r.toV1()),new fe(`${As}${r.toString(Qn)}`)}var ar=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=sr(e);if(await this.datastore.has(n))throw new nr("Already pinned");let i=Math.round(t.depth??1/0);if(i<0)throw new Te("Depth must be greater than or equal to 0");let o=new G({concurrency:ks});for await(let a of this.#e(e,o,{...t,depth:i}))await this.#n(a,c=>c.pinnedBy.find(d=>xe(d,e.bytes))!=null?!1:(c.pinCount++,c.pinnedBy.push(e.bytes),!0),t),yield a;let s={depth:i,metadata:t.metadata??{}};await this.datastore.put(n,ke(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let i=await this.getCodec(e.code),o=await er(this.blockstore.get(e,n)),s=rr({bytes:o,cid:e,codec:i});yield e;for(let[,a]of s.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#n(e,t,n){let i=new fe(`${_s}${Qn.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=ne(await this.datastore.get(i,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(o)){if(o.pinCount===0&&await this.datastore.has(i)){await this.datastore.delete(i);return}await this.datastore.put(i,ke(o),n),n.onProgress?.(new v("helia:pin:add",e))}}async*rm(e,t={}){let n=sr(e),i=await this.datastore.get(n,t),o=ne(i);await this.datastore.delete(n,t);let s=new G({concurrency:ks});for await(let a of this.#e(e,s,{...t,depth:o.depth}))await this.#n(a,c=>(c.pinCount--,c.pinnedBy=c.pinnedBy.filter(d=>xe(d,e.bytes)),!0),{...t,depth:o.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:As+(e.cid!=null?`${e.cid.toString(ae)}`:"")},e)){let i=k.parse(t.toString().substring(5),ae),o=ne(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new fe(`${_s}${Qn.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=sr(e),i=await this.datastore.get(n,t);return ne(i)}async setMetadata(e,t,n){let i=sr(e),o=await this.datastore.get(i,n),s=ne(o);s.metadata=t??{},await this.datastore.put(i,ke(s),n)}};var cr=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"}},ur=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},lr=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var Bu=5,fr=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Bu,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await he(...this.routers)}async stop(){await de(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");let n=new Xt({concurrency:this.providerLookupConcurrency});for await(let i of $t(n.toGenerator(),...Ce(this.routers,"findProviders").map(o=>o.findProviders(e,t))))if(i!=null){if(i.multiaddrs.length===0){if(n.find(i.id)!=null)continue;n.add(async()=>{try{let o=await this.findPeer(i.id,t);return o.multiaddrs.length===0?null:o}catch(o){return this.log.error("could not load multiaddrs for peer %p",i.id,o),null}},{peerId:i.id,signal:t.signal}).catch(o=>{this.log.error("could not load multiaddrs for peer %p",i.id,o)})}yield i}}async provide(e,t={}){if(this.routers.length===0)throw new Ae("No content routers available");await Promise.all(Ce(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(Ce(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(Ce(this.routers,"put").map(async i=>{await i.put(e,t,n)}))}async get(e,t){return Promise.any(Ce(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new Ae("No peer routers available");let n=this,i=$t(...Ce(this.routers,"findPeer").map(o=>(async function*(){try{yield await o.findPeer(e,t)}catch(s){n.log.error(s)}})()));for await(let o of i)if(o!=null)return o;throw new pt("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 $t(...Ce(this.routers,"getClosestPeers").map(i=>i.getClosestPeers(e,t))))n!=null&&(yield n)}};function Ce(r,e){return r.filter(t=>t[e]!=null)}var j=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function hr(r,e,t,n){let i=new j(n?.errorMessage);n?.errorCode!=null&&(i.code=n.errorCode);let o=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(i):new Promise((s,a)=>{function c(){Yn(t,"abort",f),Yn(r,e,d),Yn(r,o,l)}let d=m=>{try{if(n?.filter?.(m)===!1)return}catch(y){c(),a(y);return}c(),s(m)},l=m=>{if(c(),m instanceof Error){a(m);return}a(m.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(i)};Jn(t,"abort",f),Jn(r,e,d),Jn(r,o,l)})}function Jn(r,e,t){r!=null&&(Cs(r)?r.addEventListener(e,t):r.addListener(e,t))}function Yn(r,e,t){r!=null&&(Cs(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Cs(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var dr=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var pr=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 Ss(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new pr(t?.errorMessage,t?.errorCode,t?.errorName));let n,i=new pr(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((o,s)=>{n=()=>{s(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var mr=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new j)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Fu(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var gr=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Fu(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new j),this.cleanup())}async join(e={}){let t=new mr(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 Ss(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Xn(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var lt=class extends H{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Xn(this.emitEmpty.bind(this),1),this.emitIdle=Xn(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new dr;let n=new gr(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new j)}),this.clear()}async onEmpty(e){this.size!==0&&await hr(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await hr(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await hr(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=Nt({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail.result)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new j("Queue aborted"))};this.addEventListener("success",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var yr="lock:worker:request-read",wr="lock:worker:abort-read-request",br="lock:worker:release-read",xr="lock:master:grant-read",Er="lock:master:error-read",vr="lock:worker:request-write",_r="lock:worker:abort-write-request",kr="lock:worker:release-write",Ar="lock:master:grant-write",Cr="lock:master:error-write",Sr="lock:worker:finalize",Ir="mortice",Is={singleProcess:!1};var Zn=(r,e,t,n,i,o,s,a,c)=>d=>{if(d.data==null)return;let l={type:d.data.type,name:d.data.name,identifier:d.data.identifier};l.type===i&&r.safeDispatchEvent(t,{detail:{name:l.name,identifier:l.identifier,handler:async()=>{e.postMessage({type:c,name:l.name,identifier:l.identifier}),await new Promise(f=>{let m=y=>{if(y?.data==null)return;let b={type:y.data.type,name:y.data.name,identifier:y.data.identifier};b.type===a&&b.identifier===l.identifier&&(e.removeEventListener("message",m),f())};e.addEventListener("message",m)})},onError:f=>{e.postMessage({type:s,name:l.name,identifier:l.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),l.type===o&&r.safeDispatchEvent(n,{detail:{name:l.name,identifier:l.identifier}}),l.type===Sr&&r.safeDispatchEvent("finalizeRequest",{detail:{name:l.name}})};var Ts=(r=10)=>Math.random().toString().substring(2,r+2);var Tr=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(Ir)}readLock(e){return this.sendRequest(yr,wr,xr,Er,br,e)}writeLock(e){return this.sendRequest(vr,_r,Ar,Cr,kr,e)}finalize(){this.channel.postMessage({type:Sr,name:this.name}),this.channel.close()}async sendRequest(e,t,n,i,o,s){s?.signal?.throwIfAborted();let a=Ts();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,d)=>{let l=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",l,{once:!0});let f=m=>{if(m.data?.identifier===a&&(m.data?.type===n&&(this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",l),c(()=>{this.channel.postMessage({type:o,identifier:a,name:this.name})})),m.data.type===i)){this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",l);let y=new Error;m.data.error!=null&&(y.message=m.data.error.message,y.name=m.data.error.name,y.stack=m.data.error.stack),d(y)}};this.channel.addEventListener("message",f)})}};var Ls=r=>{if(r=Object.assign({},Is,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(Ir),n=new H;return t.addEventListener("message",Zn(n,t,"requestReadLock","abortReadLockRequest",yr,wr,Er,br,xr)),t.addEventListener("message",Zn(n,t,"requestWriteLock","abortWriteLockRequest",vr,_r,Cr,kr,Ar)),n}return new Tr(r.name)};var Se=new Map,ft;function Ps(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function $u(r){if(ft==null&&(ft=Ls(r),!Ps(ft))){let e=ft;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=Se.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortReadLockRequest",a),o.readLock({signal:s.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=Se.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortWriteLockRequest",a),o.writeLock({signal:s.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,i=Se.get(n);i?.finalize()})}return ft}async function ei(r,e){let t,n,i=new Promise((s,a)=>{t=s,n=a}),o=()=>{n(new j)};return e?.signal?.addEventListener("abort",o,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",o),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),i}var Ns=(r,e)=>{let t=Se.get(r);if(t!=null)return t;let n=$u(e);if(Ps(n))return t=n,Se.set(r,t),t;let i=new lt({concurrency:1}),o;return t={async readLock(s){if(o!=null)return ei(o,s);o=new lt({concurrency:e.concurrency,autoStart:!1});let a=o,c=ei(o,s);return i.add(async()=>{a.start(),await a.onIdle().then(()=>{o===a&&(o=null)})}),c},async writeLock(s){return o=null,ei(i,s)},finalize:()=>{Se.delete(r)},queue:i},Se.set(r,t),e.autoFinalize===!0&&i.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var zu={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function ti(r){let e=Object.assign({},zu,r);return Ns(e.name,e)}var Lr=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=ti({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await he(this.child),this.started=!0}async stop(){await de(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let i=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{i()}}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{yield*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 ut("Block was pinned - please unpin and try again");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let i=this;yield*this.child.deleteMany((async function*(){for await(let o of e){if(await i.pins.isPinned(o))throw new ut("Block was pinned - please unpin and try again");yield o}})(),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 ri=new fe("/version"),Ds=1;async function Rs(r){if(!await r.has(ri)){await r.put(ri,U(`${Ds}`));return}let e=await r.get(ri),t=Ue(e);if(parseInt(t,10)!==Ds)throw new ir("Invalid datastore version, a datastore migration may be required")}var oi={};T(oi,{code:()=>ii,decode:()=>Qu,decodeOptions:()=>Hu,encode:()=>Gu,encodeOptions:()=>Vu,name:()=>Wu,toByteView:()=>Bs});var Us=42;function Bs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Mu(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new h(u.tag,Us),new h(u.bytes,t)]}function Ou(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function qu(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}function ju(r){for(let e of r.keys())if(typeof e!="string"||e.length===0)throw new Error("Non-string Map keys are not supported by the IPLD Data Model and cannot be encoded");return null}var ni={float64:!0,typeEncoders:{Map:ju,Object:Mu,undefined:Ou,number:qu}},Vu={...ni,typeEncoders:{...ni.typeEncoders}};function Ku(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return k.decode(r.subarray(1))}var Pr={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Pr.tags[Us]=Ku;var Hu={...Pr,tags:Pr.tags.slice()},Wu="dag-cbor",ii=113,Gu=r=>ke(r,ni),Qu=r=>ne(Bs(r),Pr);var hi={};T(hi,{code:()=>fi,decode:()=>$s,encode:()=>Fs,format:()=>sl,name:()=>ol,parse:()=>cl,stringify:()=>sl});var si=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),i=[];for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);e.push(i)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${ce} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=Mt(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(`${ce} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),i=[],o=!1;for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s),!o&&(i[s]===46||i[s]===101||i[s]===69)&&(o=!0);o||(i.push(46),i.push(48)),e.push(i)}};function Ju(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ce} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${ce} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ce} unexpected duplicate map keys, this is not supported`)}var Yu={addBreakTokens:!0,mapSorter:Ju};function ai(r,e){return e=Object.assign({},Yu,e),Vn(r,new si,e)}var je=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${g} 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(`${g} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,i=a=>{for(;!this.done();){let c=this.ch();if(a.includes(c))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 h(u.uint,0,this._pos-e);if(i([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${g} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${g} unexpected token at position ${this._pos}`);n=!0,this._pos++,i([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++,i([48,49,50,51,52,53,54,55,56,57]));let o=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(o);return n?new h(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new h(s>=0?u.uint:u.negint,s,this._pos-e):new h(s>=0?u.uint:u.negint,BigInt(o),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${g} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let o=this._pos,s=0;o<this.data.length&&s<65536;o++,s++){let a=this.data[o];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,o));return this._pos=o+1,new h(u.string,c,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${g} unexpected end of unicode escape sequence at position ${this._pos}`);let o=0;for(let s=0;s<4;s++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${g} unexpected unicode escape character at position ${this._pos}`);o=o*16+a,this._pos++}return o},i=()=>{let o=this.ch(),s=null,a=o>239?4:o>223?3:o>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${g} unexpected unicode sequence at position ${this._pos}`);let c,d,l,f;switch(a){case 1:o<128&&(s=o);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(f=(o&31)<<6|c&63,f>127&&(s=f));break;case 3:c=this.data[this._pos+1],d=this.data[this._pos+2],(c&192)===128&&(d&192)===128&&(f=(o&15)<<12|(c&63)<<6|d&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:c=this.data[this._pos+1],d=this.data[this._pos+2],l=this.data[this._pos+3],(c&192)===128&&(d&192)===128&&(l&192)===128&&(f=(o&15)<<18|(c&63)<<12|(d&63)<<6|l&63,f>65535&&f<1114112&&(s=f))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let o=this.ch(),s;switch(o){case 92:if(this._pos++,this.done())throw new Error(`${g} 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(`${g} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new h(u.string,$n(t),this._pos-e);default:if(o<32)throw new Error(`${g} invalid control character at position ${this._pos}`);o<128?(t.push(o),this._pos++):i()}}throw new Error(`${g} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new h(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new h(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new h(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new h(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new h(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(`${g} 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 h(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${g} 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 h(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 h(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${g} 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 h(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${g} 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(`${g} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function ci(r,e){return e=Object.assign({tokenizer:new je(r,e)},e),ne(r,e)}function Zu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function el(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=k.asCID(r);if(!e)return null;let t=e.toString();return[new h(u.map,1/0,1),new h(u.string,"/",1),new h(u.string,t,t.length),new h(u.break,void 0,1)]}function Nr(r){let e=ge.encode(r).slice(1);return[new h(u.map,1/0,1),new h(u.string,"/",1),new h(u.map,1/0,1),new h(u.string,"bytes",5),new h(u.string,e,e.length),new h(u.break,void 0,1),new h(u.break,void 0,1)]}function ie(r){return Nr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function tl(r){return Nr(new Uint8Array(r))}function rl(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function nl(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 il={typeEncoders:{Object:el,Buffer:Nr,Uint8Array:Nr,Int8Array:ie,Uint16Array:ie,Int16Array:ie,Uint32Array:ie,Int32Array:ie,Float32Array:ie,Float64Array:ie,Uint8ClampedArray:ie,BigInt64Array:ie,BigUint64Array:ie,DataView:ie,ArrayBuffer:tl,undefined:rl,number:nl}},ui=class extends je{constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===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 h(u.tag,42,0)}if(n.type===u.map){let i=this._next();if(i.type===u.string&&i.value==="bytes"){let o=this._next();if(o.type===u.string){for(let a=0;a<2;a++)if(this._next().type!==u.break)throw new Error("Invalid encoded Bytes form");let s=ge.decode(`m${o.value}`);return new h(u.bytes,s,o.value.length)}this.tokenBuffer.push(o)}this.tokenBuffer.push(i)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},li={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};li.tags[42]=k.parse;var ol="dag-json",fi=297,Fs=r=>ai(r,il),$s=r=>{let e=Zu(r),t=Object.assign(li,{tokenizer:new ui(e,li)});return ci(e,t)},sl=r=>al.decode(Fs(r));var al=new TextDecoder,cl=r=>$s(ul.encode(r)),ul=new TextEncoder;var wi={};T(wi,{code:()=>yi,createLink:()=>Gs,createNode:()=>Ws,decode:()=>vl,encode:()=>El,name:()=>xl,prepare:()=>mi,validate:()=>gi});var ll=new TextDecoder;function di(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 i=r[e++];if(t+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[t,e]}function Dr(r,e){let t;[t,e]=di(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 zs(r,e){let t;return[t,e]=di(r,e),[t&7,t>>3,e]}function fl(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=zs(r,n),o===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) 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]=Dr(r,n)}else if(o===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Dr(r,n),e.Name=ll.decode(s)}else if(o===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[e.Tsize,n]=di(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Ms(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=zs(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,t]=Dr(r,t),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let d;[d,t]=Dr(r,t),n.push(fl(d))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return o&&(s.Data=o),s.Links=n||[],s}var qs=new TextEncoder,Os=2**32,hl=2**31;function dl(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=ht(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=qs.encode(r.Name);t-=n.length,e.set(n,t),t=ht(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ht(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function js(r){let e=ml(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ht(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=dl(r.Links[i],t.subarray(0,n));n-=o,n=ht(t,n,o)-1,t[n]=18}return t}function pl(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Ve(t)}if(typeof r.Name=="string"){let t=qs.encode(r.Name).length;e+=1+t+Ve(t)}return typeof r.Tsize=="number"&&(e+=1+Ve(r.Tsize)),e}function ml(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Ve(t)}if(r.Links)for(let t of r.Links){let n=pl(t);e+=1+n+Ve(n)}return e}function ht(r,e,t){e-=Ve(t);let n=e;for(;t>=hl;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Ve(r){return r%2===0&&r++,Math.floor((gl(r)+6)/7)}function gl(r){let e=0;return r>=Os&&(r=Math.floor(r/Os),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+yl[r]}var yl=[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 wl=["Data","Links"],bl=["Hash","Name","Tsize"],pi=new TextEncoder;function Ks(r,e){if(r===e)return 0;let t=r.Name?pi.encode(r.Name):[],n=e.Name?pi.encode(e.Name):[],i=t.length,o=n.length;for(let s=0,a=Math.min(i,o);s<a;++s)if(t[s]!==n[s]){i=t[s],o=n[s];break}return i<o?-1:o<i?1:0}function Vs(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function Hs(r){if(typeof r.asCID=="object"){let t=k.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=k.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=k.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=k.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function mi(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=pi.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(Ks);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function gi(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!Vs(r,wl))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(!Vs(t,bl))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&&Ks(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function Ws(r,e=[]){return mi({Data:r,Links:e})}function Gs(r,e,t){return Hs({Hash:t,Name:r,Tsize:e})}function Qs(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var xl="dag-pb",yi=112;function El(r){gi(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),js(e)}function vl(r){let e=Qs(r),t=Ms(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(i=>{let o={};try{o.Hash=k.decode(i.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return i.Name!==void 0&&(o.Name=i.Name),i.Tsize!==void 0&&(o.Tsize=i.Tsize),o})),n}function Ke(r){return r?.then!=null}function Js(r=[],e){let t={[yi]:wi,[mn]:Et,[ii]:oi,[fi]:hi,[pn]:xt};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Ke(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new lr(`Could not load codec for ${n}`)}}function Ys(r=[],e){let t={[kt.code]:kt,[At.code]:At,[_t.code]:_t};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Ke(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new ur(`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`)}}var Rr=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var Ur=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,bytes:i}of e)await this.put(n,i,t),yield n}get(e,t){throw new Error(".get is not implemented")}async*getMany(e,t){for await(let n of e)yield{cid:n,bytes: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 Br=0,He=class extends Error{static name="IdentityHashDigestTooLongError";name="IdentityHashDigestTooLongError"},Fr=class extends Ur{child;maxDigestLength;constructor(e,t){super(),this.child=e,this.maxDigestLength=t?.maxDigestLength}put(e,t,n){if(e.multihash.code===Br){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return n?.signal?.throwIfAborted(),e}return this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}*get(e,t){if(e.multihash.code===Br){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new Rr;yield*this.child.get(e,t)}has(e,t){if(e.multihash.code===Br){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return t?.signal?.throwIfAborted(),!0}return this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===Br){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new He(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function _l(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var $r=_l;function kl(r){return r[Symbol.asyncIterator]!=null}function Al(r,e){let t=0;if(kl(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=$r(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s.then=="function")return(async function*(){await s&&(yield i);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){s===!0&&(yield i);for(let c of n)a(c,t++)&&(yield c)})()}var zr=Al;function Cl(r){return r[Symbol.asyncIterator]!=null}function Xs(r){return r?.then!=null}function Sl(r,e){let t=0;if(Cl(r))return(async function*(){for await(let c of r){let d=e(c,t++);Xs(d)&&await d,yield c}})();let n=$r(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();if(typeof e(i,t++)?.then=="function")return(async function*(){yield i;for(let c of n){let d=e(c,t++);Xs(d)&&await d,yield c}})();let a=e;return(function*(){yield i;for(let c of n)a(c,t++),yield c})()}var bi=Sl;var Tl=128,Mr=class{child;getHasher;log;logger;components;constructor(e,t={}){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Fr(e.blockstore,{maxDigestLength:t.maxIdentityHashDigestLength??Tl}),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new v("blocks:put:duplicate",e)),e):(n.onProgress?.(new v("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(e,n))),n.onProgress?.(new v("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=zr(e,async({cid:o})=>{let s=await this.child.has(o,t);return s&&t.onProgress?.(new v("blocks:put-many:duplicate",o)),!s}),i=bi(n,async({cid:o})=>{t.onProgress?.(new v("blocks:put-many:providers:notify",o)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(o,t)))});t.onProgress?.(new v("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(i,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 v("blocks:get:providers:get",e));let i=await Zs(e,this.components.blockBrokers,n,{...t,log:this.log});t.onProgress?.(new v("blocks:get:blockstore:put",e)),await this.child.put(e,i,t),t.onProgress?.(new v("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t))),yield i;return}t.onProgress?.(new v("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new v("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(bi(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let i=await this.getHasher(n.multihash.code);t.onProgress?.(new v("blocks:get-many:providers:get",n));let o=await Zs(n,this.components.blockBrokers,i,{...t,log:this.log});t.onProgress?.(new v("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new v("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new v("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new v("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 v("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Or=class extends Mr{started;constructor(e,t={}){super(e,t),this.started=!1}isStarted(){return this.started}async start(){await he(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await de(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(i=>i.createSession==null?i:i.createSession(t));return new xi({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},xi=class extends Mr{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let i=oe([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:i})}finally{i.clear()}}async*putMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=oe([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=oe([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function Ll(r){return typeof r.retrieve=="function"}var Pl=(r,e)=>{if(e==null)throw new Te(`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,i=e.digest(t);if(Ke(i)?n=await i:n=i,!xe(n.digest,r.multihash.digest))throw new mt("Hash of downloaded block did not match multihash from passed CID")}};async function Zs(r,e,t,n){let i=Pl(r,t),o=new AbortController,s=oe([o.signal,n.signal]);o.signal;let a=[];for(let c of e)Ll(c)&&a.push(c);if(a.length===0)throw new or(`No block brokers capable of retrieving blocks are configured, the CID ${r} cannot be fetched from the network`);try{return await Promise.any(a.map(async c=>{try{let d=!1,l=await c.retrieve(r,{...n,signal:s,validateFn:async f=>{await i(f),n.signal?.throwIfAborted(),d=!0}});return d||(await i(l),n.signal?.throwIfAborted()),l}catch(d){throw n.log.error("could not retrieve verified block for %c",r,d),d}}))}finally{o.abort(),s.clear()}}var qr=class extends H{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=Pn(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=ge.encode(e.multihash.bytes),i=this.requests.get(n);if(i!=null)return this.log("join existing request for %c",e),i;let o=B();if(this.requests.set(n,o.promise),this.providers.length===0){let l=!1;this.initialPeerSearchComplete==null&&(l=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await rt(this.initialPeerSearchComplete,t.signal),l&&this.log("found initial session peers for %c",e)}let s=!1,a=new G({concurrency:this.maxProviders});a.addEventListener("failure",l=>{this.log.error("error querying provider %o, evicting from session",l.detail.job.options.provider,l.detail.error),this.evict(l.detail.job.options.provider)}),a.addEventListener("success",l=>{s=!0,o.resolve(l.detail.result)}),a.addEventListener("idle",()=>{if(s){this.log.trace("session idle, found block");return}if(t.signal?.aborted===!0){this.log.trace("session idle, signal aborted");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let l=0;l<this.minProviders&&this.providers.length!==0;l++){let f=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(f)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),o.resolve(await this.retrieve(e,t))}).catch(l=>{this.log.error("could not find new providers for %c",e,l),o.reject(l)})});let c=l=>{a.add(async()=>this.queryProvider(e,l.detail,t),{provider:l.detail}).catch(f=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,f)})};this.addEventListener("provider",c),Promise.all([...this.providers].map(async l=>a.add(async()=>this.queryProvider(e,l,t),{provider:l}))).catch(l=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,l)});let d=()=>{o.reject(new Y(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",d);try{return await rt(o.promise,t.signal)}finally{this.removeEventListener("provider",c),t.signal?.removeEventListener("abort",d),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let i=B(),o=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;o<t&&this.initialProviders.length>0;){let s=this.initialProviders.pop();if(s==null)break;let a=await this.convertToProvider(s,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",o,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),o++,o===t&&(this.log("session is ready"),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",o);break}}if(o<this.maxProviders)for await(let s of this.findNewProviders(e,n)){if(o===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(s)&&(this.log("found %d/%d new providers",o,this.maxProviders),this.providers.push(s),this.safeDispatchEvent("provider",{detail:s}),o++,o===t&&(this.log("session is ready"),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",o);break}}if(this.log("found %d/%d new session peers",o,this.maxProviders),o<t)throw new cr(`Found ${o} 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),i.reject(s)}),i.promise}};function ea(r,e={}){return new Ei(r,e)}function ta(r,e={}){return new vi(r,e)}var jr=class{components;constructor(e,t){this.components=e}async*walk(e,t){let n=this.getQueue(),i=zr(n.toGenerator(t),a=>a!=null),o=!1,s=async a=>{let c=a.cid,d=await er(this.components.blockstore.get(c,a)),l=rr({cid:c,bytes:d,codec:await this.components.getCodec(c.code)});for(let[,f]of l.links())t?.includeChild?.(f,l)!==!1&&n.add(s,{...a,cid:f,depth:a.depth+1,path:[...a.path,f]}).catch(m=>{o||i.throw(m)});return{block:l,depth:a.depth,path:a.path}};n.add(s,{...t,cid:e,depth:0,path:[e]}).catch(a=>{o||i.throw(a)});try{yield*i}finally{o=!0,n.abort()}}},Ei=class extends jr{getQueue(){return new G({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?1:-1})}},vi=class extends jr{getQueue(){return new G({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?-1:1})}};var _i=class{libp2p;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??Ui(),this.log=this.logger.forComponent("helia"),this.getHasher=Ys(e.hashers,e.loadHasher),this.getCodec=Js(e.codecs,e.loadCodec),this.dns=e.dns??co(),this.metrics=e.metrics,this.libp2p=e.libp2p,this.events=new H;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new fr(t,{routers:(e.routers??[]).flatMap(i=>{let o=[i];return i[Vr]!=null&&o.push(i[Vr]),i[Kr]!=null&&o.push(i[Kr]),o}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Or(t,e);this.pins=new ar(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(i=>i(t))}async start(){await Rs(this.datastore),await he(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("start",{detail:this}))}async stop(){await de(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("stop",{detail:this}))}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,i=this.blockstore.unwrap();this.log("gc start"),await uo(i.deleteMany((async function*(){for await(let{cid:o}of i.getAll())try{if(await n.pins.isPinned(o,e))continue;yield o,e.onProgress?.(new v("helia:gc:deleted",o))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new v("helia:gc:error",s))}})()))}finally{t()}this.log("gc finished")}};return aa(Rl);})();
|
|
4
4
|
return HeliaUtils}));
|
|
5
5
|
//# sourceMappingURL=index.min.js.map
|