@libp2p/websockets 6.0.3-05abd49f → 6.0.3-1f7e18b0

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/README.md CHANGED
@@ -90,7 +90,7 @@ const node = await Libp2p.create({
90
90
  transport: [
91
91
  websockets({
92
92
  // connect to all sockets, even insecure ones
93
- filters: filters.all
93
+ filter: filters.all
94
94
  })
95
95
  ],
96
96
  streamMuxers: [
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PWebsockets = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PWebsockets=(()=>{var Yo=Object.create;var Te=Object.defineProperty;var es=Object.getOwnPropertyDescriptor;var ts=Object.getOwnPropertyNames;var rs=Object.getPrototypeOf,ns=Object.prototype.hasOwnProperty;var os=(t,e,r)=>e in t?Te(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var R=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),T=(t,e)=>{for(var r in e)Te(t,r,{get:e[r],enumerable:!0})},Ir=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ts(e))!ns.call(t,o)&&o!==r&&Te(t,o,{get:()=>e[o],enumerable:!(n=es(e,o))||n.enumerable});return t};var ee=(t,e,r)=>(r=t!=null?Yo(rs(t)):{},Ir(e||!t||!t.__esModule?Te(r,"default",{value:t,enumerable:!0}):r,t)),ss=t=>Ir(Te({},"__esModule",{value:!0}),t);var $e=(t,e,r)=>(os(t,typeof e!="symbol"?e+"":e,r),r);var Lr=R((eu,Or)=>{var ce=1e3,ue=ce*60,pe=ue*60,re=pe*24,is=re*7,as=re*365.25;Or.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return cs(t);if(r==="number"&&isFinite(t))return e.long?ps(t):us(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function cs(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*as;case"weeks":case"week":case"w":return r*is;case"days":case"day":case"d":return r*re;case"hours":case"hour":case"hrs":case"hr":case"h":return r*pe;case"minutes":case"minute":case"mins":case"min":case"m":return r*ue;case"seconds":case"second":case"secs":case"sec":case"s":return r*ce;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function us(t){var e=Math.abs(t);return e>=re?Math.round(t/re)+"d":e>=pe?Math.round(t/pe)+"h":e>=ue?Math.round(t/ue)+"m":e>=ce?Math.round(t/ce)+"s":t+"ms"}function ps(t){var e=Math.abs(t);return e>=re?We(t,e,re,"day"):e>=pe?We(t,e,pe,"hour"):e>=ue?We(t,e,ue,"minute"):e>=ce?We(t,e,ce,"second"):t+" ms"}function We(t,e,r,n){var o=e>=r*1.5;return Math.round(t/r)+" "+n+(o?"s":"")}});var Dr=R((tu,kr)=>{function fs(t){r.debug=r,r.default=r,r.coerce=d,r.disable=s,r.enable=o,r.enabled=i,r.humanize=Lr(),r.destroy=b,Object.keys(t).forEach(c=>{r[c]=t[c]}),r.names=[],r.skips=[],r.formatters={};function e(c){let p=0;for(let l=0;l<c.length;l++)p=(p<<5)-p+c.charCodeAt(l),p|=0;return r.colors[Math.abs(p)%r.colors.length]}r.selectColor=e;function r(c){let p,l=null,I,u;function h(...v){if(!h.enabled)return;let w=h,x=Number(new Date),E=x-(p||x);w.diff=E,w.prev=p,w.curr=x,p=x,v[0]=r.coerce(v[0]),typeof v[0]!="string"&&v.unshift("%O");let g=0;v[0]=v[0].replace(/%([a-zA-Z%])/g,(P,y)=>{if(P==="%%")return"%";g++;let A=r.formatters[y];if(typeof A=="function"){let k=v[g];P=A.call(w,k),v.splice(g,1),g--}return P}),r.formatArgs.call(w,v),(w.log||r.log).apply(w,v)}return h.namespace=c,h.useColors=r.useColors(),h.color=r.selectColor(c),h.extend=n,h.destroy=r.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>l!==null?l:(I!==r.namespaces&&(I=r.namespaces,u=r.enabled(c)),u),set:v=>{l=v}}),typeof r.init=="function"&&r.init(h),h}function n(c,p){let l=r(this.namespace+(typeof p>"u"?":":p)+c);return l.log=this.log,l}function o(c){r.save(c),r.namespaces=c,r.names=[],r.skips=[];let p,l=(typeof c=="string"?c:"").split(/[\s,]+/),I=l.length;for(p=0;p<I;p++)l[p]&&(c=l[p].replace(/\*/g,".*?"),c[0]==="-"?r.skips.push(new RegExp("^"+c.slice(1)+"$")):r.names.push(new RegExp("^"+c+"$")))}function s(){let c=[...r.names.map(a),...r.skips.map(a).map(p=>"-"+p)].join(",");return r.enable(""),c}function i(c){if(c[c.length-1]==="*")return!0;let p,l;for(p=0,l=r.skips.length;p<l;p++)if(r.skips[p].test(c))return!1;for(p=0,l=r.names.length;p<l;p++)if(r.names[p].test(c))return!0;return!1}function a(c){return c.toString().substring(2,c.toString().length-2).replace(/\.\*\?$/,"*")}function d(c){return c instanceof Error?c.stack||c.message:c}function b(){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 r.enable(r.load()),r}kr.exports=fs});var Mr=R((B,qe)=>{B.formatArgs=ls;B.save=hs;B.load=ms;B.useColors=ds;B.storage=bs();B.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();B.colors=["#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 ds(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ls(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+qe.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),t.splice(n,0,e)}B.log=console.debug||console.log||(()=>{});function hs(t){try{t?B.storage.setItem("debug",t):B.storage.removeItem("debug")}catch{}}function ms(){let t;try{t=B.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function bs(){try{return localStorage}catch{}}qe.exports=Dr()(B);var{formatters:ws}=qe.exports;ws.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Un=R((zp,Tn)=>{Tn.exports=qt;var Pn=128,ma=127,ba=~ma,wa=Math.pow(2,31);function qt(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw qt.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=wa;)e[r++]=t&255|Pn,t/=128;for(;t&ba;)e[r++]=t&255|Pn,t>>>=7;return e[r]=t|0,qt.bytes=r-n+1,e}});var Nn=R((Rp,Fn)=>{Fn.exports=jt;var ga=128,In=127;function jt(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a||o>49)throw jt.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&In)<<o:(i&In)*Math.pow(2,o),o+=7}while(i>=ga);return jt.bytes=s-n,r}});var Ln=R((Bp,On)=>{var xa=Math.pow(2,7),ya=Math.pow(2,14),va=Math.pow(2,21),Ea=Math.pow(2,28),Ca=Math.pow(2,35),Sa=Math.pow(2,42),Aa=Math.pow(2,49),Pa=Math.pow(2,56),Ta=Math.pow(2,63);On.exports=function(t){return t<xa?1:t<ya?2:t<va?3:t<Ea?4:t<Ca?5:t<Sa?6:t<Aa?7:t<Pa?8:t<Ta?9:10}});var Ke=R(($p,kn)=>{kn.exports={encode:Un(),decode:Nn(),encodingLength:Ln()}});var uo=R(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var mr=class{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;let r={value:e,done:!1};if(this.pullQueue.length){let n=this.pullQueue.shift();n&&n.resolve(r)}else this.pushQueue.push(Promise.resolve(r)),this.highWaterMark!==void 0&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn(`EventIterator queue reached ${this.pushQueue.length} items`))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(let e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped)if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(let r of this.pullQueue)r.reject(e);this.pullQueue.length=0}else{let r=Promise.reject(e);r.catch(()=>{}),this.pushQueue.push(r)}}remove(){Promise.resolve().then(()=>{this.removeCallback&&this.removeCallback()})}[Symbol.asyncIterator](){return{next:e=>{let r=this.pushQueue.shift();return r?(this.lowWaterMark!==void 0&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),r):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise((n,o)=>{this.pullQueue.push({resolve:n,reject:o})})},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}},ot=class{constructor(e,{highWaterMark:r=100,lowWaterMark:n=1}={}){let o=new mr;o.highWaterMark=r,o.lowWaterMark=n,o.removeCallback=e({push:s=>o.push(s),stop:()=>o.stop(),fail:s=>o.fail(s),on:(s,i)=>{o.eventHandlers[s]=i}})||(()=>{}),this[Symbol.asyncIterator]=()=>o[Symbol.asyncIterator](),Object.freeze(this)}};st.EventIterator=ot;st.default=ot});var po=R(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});var br=uo();ze.EventIterator=br.EventIterator;function Ac(t,e,r){return new br.EventIterator(({push:n})=>(this.addEventListener(t,n,e),()=>this.removeEventListener(t,n,e)),r)}ze.subscribe=Ac;ze.default=br.EventIterator});var gr=R((Vd,xo)=>{"use strict";var Pc=typeof navigator<"u"&&navigator.product==="ReactNative";function Tc(){return Pc?"http://localhost":self.location?self.location.protocol+"//"+self.location.host:""}var Re=self.URL,go=Tc(),wr=class{constructor(e="",r=go){this.super=new Re(e,r),this.path=this.pathname+this.search,this.auth=this.username&&this.password?this.username+":"+this.password:null,this.query=this.search&&this.search.startsWith("?")?this.search.slice(1):null}get hash(){return this.super.hash}get host(){return this.super.host}get hostname(){return this.super.hostname}get href(){return this.super.href}get origin(){return this.super.origin}get password(){return this.super.password}get pathname(){return this.super.pathname}get port(){return this.super.port}get protocol(){return this.super.protocol}get search(){return this.super.search}get searchParams(){return this.super.searchParams}get username(){return this.super.username}set hash(e){this.super.hash=e}set host(e){this.super.host=e}set hostname(e){this.super.hostname=e}set href(e){this.super.href=e}set password(e){this.super.password=e}set pathname(e){this.super.pathname=e}set port(e){this.super.port=e}set protocol(e){this.super.protocol=e}set search(e){this.super.search=e}set username(e){this.super.username=e}static createObjectURL(e){return Re.createObjectURL(e)}static revokeObjectURL(e){Re.revokeObjectURL(e)}toJSON(){return this.super.toJSON()}toString(){return this.super.toString()}format(){return this.toString()}};function Uc(t){if(typeof t=="string")return new Re(t).toString();if(!(t instanceof Re)){let e=t.username&&t.password?`${t.username}:${t.password}@`:"",r=t.auth?t.auth+"@":"",n=t.port?":"+t.port:"",o=t.protocol?t.protocol+"//":"",s=t.host||"",i=t.hostname||"",a=t.search||(t.query?"?"+t.query:""),d=t.hash||"",b=t.pathname||"",c=t.path||b+a;return`${o}${e||r}${s||i+n}${c}${d}`}}xo.exports={URLWithLegacySupport:wr,URLSearchParams:self.URLSearchParams,defaultBase:go,format:Uc}});var Eo=R((Wd,vo)=>{"use strict";var{URLWithLegacySupport:yo,format:Ic}=gr();vo.exports=(t,e={},r={},n)=>{let o=e.protocol?e.protocol.replace(":",""):"http";o=(r[o]||n||o)+":";let s;try{s=new yo(t)}catch{s={}}let i=Object.assign({},e,{protocol:o||s.protocol,host:e.host||s.host});return new yo(t,Ic(i)).toString()}});var So=R((qd,Co)=>{"use strict";var{URLWithLegacySupport:Fc,format:Nc,URLSearchParams:Oc,defaultBase:Lc}=gr(),kc=Eo();Co.exports={URL:Fc,URLSearchParams:Oc,format:Nc,relative:kc,defaultBase:Lc}});var Io=R((Xd,Uo)=>{function zc(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}Uo.exports=zc});var Hc={};T(Hc,{webSockets:()=>Gc});var Ve=class extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=Ve.code,this.type=Ve.type}},te=Ve;$e(te,"code","ABORT_ERR"),$e(te,"type","aborted");var Nr=Symbol.for("@libp2p/transport");var Fr;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(Fr||(Fr={}));var $=ee(Mr(),1);function gs(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,d=t.charAt(0),b=Math.log(a)/Math.log(256),c=Math.log(256)/Math.log(a);function p(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";for(var h=0,v=0,w=0,x=u.length;w!==x&&u[w]===0;)w++,h++;for(var E=(x-w)*c+1>>>0,g=new Uint8Array(E);w!==x;){for(var S=u[w],P=0,y=E-1;(S!==0||P<v)&&y!==-1;y--,P++)S+=256*g[y]>>>0,g[y]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=P,w++}for(var A=E-v;A!==E&&g[A]===0;)A++;for(var k=d.repeat(h);A<E;++A)k+=t.charAt(g[A]);return k}function l(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;var h=0;if(u[h]!==" "){for(var v=0,w=0;u[h]===d;)v++,h++;for(var x=(u.length-h)*b+1>>>0,E=new Uint8Array(x);u[h];){var g=r[u.charCodeAt(h)];if(g===255)return;for(var S=0,P=x-1;(g!==0||S<w)&&P!==-1;P--,S++)g+=a*E[P]>>>0,E[P]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");w=S,h++}if(u[h]!==" "){for(var y=x-w;y!==x&&E[y]===0;)y++;for(var A=new Uint8Array(v+(x-y)),k=v;y!==x;)A[k++]=E[y++];return A}}}function I(u){var h=l(u);if(h)return h;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:l,decode:I}}var xs=gs,ys=xs,zr=ys;var nu=new Uint8Array(0);var Rr=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var ct=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ut=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),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 Br(this,e)}},pt=class{constructor(e){this.decoders=e}or(e){return Br(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Br=(t,e)=>new pt({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ft=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new ct(e,r,n),this.decoder=new ut(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},$r=({name:t,prefix:e,encode:r,decode:n})=>new ft(t,e,r,n),dt=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=zr(r,e);return $r({prefix:t,name:e,encode:n,decode:s=>Rr(o(s))})},vs=(t,e,r,n)=>{let o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,d=0,b=0;for(let c=0;c<s;++c){let p=o[t[c]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<r|p,a+=r,a>=8&&(a-=8,i[b++]=255&d>>a)}if(a>=r||255&d<<8-a)throw new SyntaxError("Unexpected end of data");return i},Es=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let d=0;d<t.length;++d)for(a=a<<8|t[d],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s},D=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>$r({prefix:e,name:t,encode(o){return Es(o,n,r)},decode(o){return vs(o,n,r,t)}});var Vr=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),uu=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),pu=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),fu=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),du=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),lu=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),hu=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),mu=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),bu=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Wr=dt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),xu=dt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qr=D({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Eu=D({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Cu=D({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Su=D({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});$.default.formatters.b=t=>t==null?"undefined":Wr.baseEncode(t);$.default.formatters.t=t=>t==null?"undefined":Vr.baseEncode(t);$.default.formatters.m=t=>t==null?"undefined":qr.baseEncode(t);$.default.formatters.p=t=>t==null?"undefined":t.toString();$.default.formatters.c=t=>t==null?"undefined":t.toString();$.default.formatters.k=t=>t==null?"undefined":t.toString();$.default.formatters.a=t=>t==null?"undefined":t.toString();function Cs(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function je(t){let e=Cs(`${t}:trace`);return $.default.enabled(`${t}:trace`)&&$.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,$.default)(`${t}:trace`)),Object.assign((0,$.default)(t),{error:(0,$.default)(`${t}:error`),trace:e})}var Qe=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var wt={};T(wt,{base58btc:()=>M,base58flickr:()=>Is});function Ss(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,d=t.charAt(0),b=Math.log(a)/Math.log(256),c=Math.log(256)/Math.log(a);function p(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";for(var h=0,v=0,w=0,x=u.length;w!==x&&u[w]===0;)w++,h++;for(var E=(x-w)*c+1>>>0,g=new Uint8Array(E);w!==x;){for(var S=u[w],P=0,y=E-1;(S!==0||P<v)&&y!==-1;y--,P++)S+=256*g[y]>>>0,g[y]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=P,w++}for(var A=E-v;A!==E&&g[A]===0;)A++;for(var k=d.repeat(h);A<E;++A)k+=t.charAt(g[A]);return k}function l(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;var h=0;if(u[h]!==" "){for(var v=0,w=0;u[h]===d;)v++,h++;for(var x=(u.length-h)*b+1>>>0,E=new Uint8Array(x);u[h];){var g=r[u.charCodeAt(h)];if(g===255)return;for(var S=0,P=x-1;(g!==0||S<w)&&P!==-1;P--,S++)g+=a*E[P]>>>0,E[P]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");w=S,h++}if(u[h]!==" "){for(var y=x-w;y!==x&&E[y]===0;)y++;for(var A=new Uint8Array(v+(x-y)),k=v;y!==x;)A[k++]=E[y++];return A}}}function I(u){var h=l(u);if(h)return h;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:l,decode:I}}var As=Ss,Ps=As,jr=Ps;var Lu=new Uint8Array(0);var Qr=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},j=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Jr=t=>new TextEncoder().encode(t),_r=t=>new TextDecoder().decode(t);var lt=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ht=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),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 Hr(this,e)}},mt=class{constructor(e){this.decoders=e}or(e){return Hr(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Hr=(t,e)=>new mt({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),bt=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new lt(e,r,n),this.decoder=new ht(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},fe=({name:t,prefix:e,encode:r,decode:n})=>new bt(t,e,r,n),H=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=jr(r,e);return fe({prefix:t,name:e,encode:n,decode:s=>j(o(s))})},Ts=(t,e,r,n)=>{let o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,d=0,b=0;for(let c=0;c<s;++c){let p=o[t[c]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<r|p,a+=r,a>=8&&(a-=8,i[b++]=255&d>>a)}if(a>=r||255&d<<8-a)throw new SyntaxError("Unexpected end of data");return i},Us=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let d=0;d<t.length;++d)for(a=a<<8|t[d],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s},F=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>fe({prefix:e,name:t,encode(o){return Us(o,n,r)},decode(o){return Ts(o,n,r,t)}});var M=H({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Is=H({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Fs=Zr,Xr=128,Ns=127,Os=~Ns,Ls=Math.pow(2,31);function Zr(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Ls;)e[r++]=t&255|Xr,t/=128;for(;t&Os;)e[r++]=t&255|Xr,t>>>=7;return e[r]=t|0,Zr.bytes=r-n+1,e}var ks=gt,Ds=128,Kr=127;function gt(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw gt.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Kr)<<o:(i&Kr)*Math.pow(2,o),o+=7}while(i>=Ds);return gt.bytes=s-n,r}var Ms=Math.pow(2,7),zs=Math.pow(2,14),Rs=Math.pow(2,21),Bs=Math.pow(2,28),$s=Math.pow(2,35),Vs=Math.pow(2,42),Ws=Math.pow(2,49),qs=Math.pow(2,56),js=Math.pow(2,63),Qs=function(t){return t<Ms?1:t<zs?2:t<Rs?3:t<Bs?4:t<$s?5:t<Vs?6:t<Ws?7:t<qs?8:t<js?9:10},Js={encode:Fs,decode:ks,encodingLength:Qs},_s=Js,Ue=_s;var Ie=(t,e=0)=>[Ue.decode(t,e),Ue.decode.bytes],de=(t,e,r=0)=>(Ue.encode(t,e,r),e),le=t=>Ue.encodingLength(t);var ne=(t,e)=>{let r=e.byteLength,n=le(t),o=n+le(r),s=new Uint8Array(o+r);return de(t,s,0),de(r,s,n),s.set(e,o),new he(t,r,e,s)},_e=t=>{let e=j(t),[r,n]=Ie(e),[o,s]=Ie(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new he(r,o,i,e)},Yr=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Qr(t.bytes,r.bytes)}},he=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var xt={};T(xt,{base32:()=>Q,base32hex:()=>Ks,base32hexpad:()=>Ys,base32hexpadupper:()=>ei,base32hexupper:()=>Zs,base32pad:()=>Hs,base32padupper:()=>Xs,base32upper:()=>Gs,base32z:()=>ti});var Q=F({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Gs=F({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Hs=F({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Xs=F({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ks=F({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Zs=F({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ys=F({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ei=F({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ti=F({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var en=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return ni(r,yt(t),e||M.encoder);default:return oi(r,yt(t),e||Q.encoder)}};var tn=new WeakMap,yt=t=>{let e=tn.get(t);if(e==null){let r=new Map;return tn.set(t,r),r}return e},U=class{constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==Fe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==si)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return U.createV0(r)}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:r}=this.multihash,n=ne(e,r);return U.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 U.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Yr(e.multihash,n.multihash)}toString(e){return en(this,e)}toJSON(){return{"/":en(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof U)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new U(n,o,s,i||rn(n,o,s.bytes))}else if(r[ii]===!0){let{version:n,multihash:o,code:s}=r,i=_e(o);return U.create(n,s,i)}else return null}static create(e,r,n){if(typeof r!="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(r!==Fe)throw new Error(`Version 0 CID must use dag-pb (code: ${Fe}) block encoding`);return new U(e,r,n,n.bytes)}case 1:{let o=rn(e,r,n.bytes);return new U(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return U.create(0,Fe,e)}static createV1(e,r){return U.create(1,e,r)}static decode(e){let[r,n]=U.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=U.inspectBytes(e),n=r.size-r.multihashSize,o=j(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new he(r.multihashCode,r.digestSize,s,o);return[r.version===0?U.createV0(i):U.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[p,l]=Ie(e.subarray(r));return r+=l,p},o=n(),s=Fe;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),d=n(),b=r+d,c=b-i;return{version:o,codec:s,multihashCode:a,digestSize:d,multihashSize:c,size:b}}static parse(e,r){let[n,o]=ri(e,r),s=U.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return yt(s).set(n,e),s}},ri=(t,e)=>{switch(t[0]){case"Q":{let r=e||M;return[M.prefix,r.decode(`${M.prefix}${t}`)]}case M.prefix:{let r=e||M;return[M.prefix,r.decode(t)]}case Q.prefix:{let r=e||Q;return[Q.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},ni=(t,e,r)=>{let{prefix:n}=r;if(n!==M.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},oi=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},Fe=112,si=18,rn=(t,e,r)=>{let n=le(t),o=n+le(e),s=new Uint8Array(o+r.byteLength);return de(t,s,0),de(e,s,n),s.set(r,o),s},ii=Symbol.for("@ipld/js-cid/CID");function nn(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var At={};T(At,{identity:()=>di});function ai(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,d=t.charAt(0),b=Math.log(a)/Math.log(256),c=Math.log(256)/Math.log(a);function p(u){if(u instanceof Uint8Array||(ArrayBuffer.isView(u)?u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength):Array.isArray(u)&&(u=Uint8Array.from(u))),!(u instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(u.length===0)return"";for(var h=0,v=0,w=0,x=u.length;w!==x&&u[w]===0;)w++,h++;for(var E=(x-w)*c+1>>>0,g=new Uint8Array(E);w!==x;){for(var S=u[w],P=0,y=E-1;(S!==0||P<v)&&y!==-1;y--,P++)S+=256*g[y]>>>0,g[y]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=P,w++}for(var A=E-v;A!==E&&g[A]===0;)A++;for(var k=d.repeat(h);A<E;++A)k+=t.charAt(g[A]);return k}function l(u){if(typeof u!="string")throw new TypeError("Expected String");if(u.length===0)return new Uint8Array;var h=0;if(u[h]!==" "){for(var v=0,w=0;u[h]===d;)v++,h++;for(var x=(u.length-h)*b+1>>>0,E=new Uint8Array(x);u[h];){var g=r[u.charCodeAt(h)];if(g===255)return;for(var S=0,P=x-1;(g!==0||S<w)&&P!==-1;P--,S++)g+=a*E[P]>>>0,E[P]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");w=S,h++}if(u[h]!==" "){for(var y=x-w;y!==x&&E[y]===0;)y++;for(var A=new Uint8Array(v+(x-y)),k=v;y!==x;)A[k++]=E[y++];return A}}}function I(u){var h=l(u);if(h)return h;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:l,decode:I}}var ci=ai,ui=ci,on=ui;var Hu=new Uint8Array(0);var sn=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},J=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var an=t=>new TextEncoder().encode(t),cn=t=>new TextDecoder().decode(t);var vt=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Et=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),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 pn(this,e)}},Ct=class{constructor(e){this.decoders=e}or(e){return pn(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},pn=(t,e)=>new Ct({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),St=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new vt(e,r,n),this.decoder=new Et(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},be=({name:t,prefix:e,encode:r,decode:n})=>new St(t,e,r,n),X=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=on(r,e);return be({prefix:t,name:e,encode:n,decode:s=>J(o(s))})},pi=(t,e,r,n)=>{let o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,d=0,b=0;for(let c=0;c<s;++c){let p=o[t[c]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<r|p,a+=r,a>=8&&(a-=8,i[b++]=255&d>>a)}if(a>=r||255&d<<8-a)throw new SyntaxError("Unexpected end of data");return i},fi=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let d=0;d<t.length;++d)for(a=a<<8|t[d],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s},N=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>be({prefix:e,name:t,encode(o){return fi(o,n,r)},decode(o){return pi(o,n,r,t)}});var di=be({prefix:"\0",name:"identity",encode:t=>cn(t),decode:t=>an(t)});var Pt={};T(Pt,{base2:()=>li});var li=N({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Tt={};T(Tt,{base8:()=>hi});var hi=N({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ut={};T(Ut,{base10:()=>mi});var mi=X({prefix:"9",name:"base10",alphabet:"0123456789"});var It={};T(It,{base16:()=>bi,base16upper:()=>wi});var bi=N({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),wi=N({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ft={};T(Ft,{base32:()=>we,base32hex:()=>vi,base32hexpad:()=>Ci,base32hexpadupper:()=>Si,base32hexupper:()=>Ei,base32pad:()=>xi,base32padupper:()=>yi,base32upper:()=>gi,base32z:()=>Ai});var we=N({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),gi=N({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),xi=N({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),yi=N({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),vi=N({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ei=N({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ci=N({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Si=N({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ai=N({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Nt={};T(Nt,{base36:()=>Pi,base36upper:()=>Ti});var Pi=X({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ti=X({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ot={};T(Ot,{base58btc:()=>W,base58flickr:()=>Ui});var W=X({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ui=X({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Lt={};T(Lt,{base64:()=>Ii,base64pad:()=>Fi,base64url:()=>Ni,base64urlpad:()=>Oi});var Ii=N({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Fi=N({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ni=N({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Oi=N({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var kt={};T(kt,{base256emoji:()=>zi});var fn=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}"),Li=fn.reduce((t,e,r)=>(t[r]=e,t),[]),ki=fn.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function Di(t){return t.reduce((e,r)=>(e+=Li[r],e),"")}function Mi(t){let e=[];for(let r of t){let n=ki[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var zi=be({prefix:"\u{1F680}",name:"base256emoji",encode:Di,decode:Mi});var Rt={};T(Rt,{sha256:()=>ra,sha512:()=>na});var Ri=hn,dn=128,Bi=127,$i=~Bi,Vi=Math.pow(2,31);function hn(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Vi;)e[r++]=t&255|dn,t/=128;for(;t&$i;)e[r++]=t&255|dn,t>>>=7;return e[r]=t|0,hn.bytes=r-n+1,e}var Wi=Dt,qi=128,ln=127;function Dt(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw Dt.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&ln)<<o:(i&ln)*Math.pow(2,o),o+=7}while(i>=qi);return Dt.bytes=s-n,r}var ji=Math.pow(2,7),Qi=Math.pow(2,14),Ji=Math.pow(2,21),_i=Math.pow(2,28),Gi=Math.pow(2,35),Hi=Math.pow(2,42),Xi=Math.pow(2,49),Ki=Math.pow(2,56),Zi=Math.pow(2,63),Yi=function(t){return t<ji?1:t<Qi?2:t<Ji?3:t<_i?4:t<Gi?5:t<Hi?6:t<Xi?7:t<Ki?8:t<Zi?9:10},ea={encode:Ri,decode:Wi,encodingLength:Yi},ta=ea,Ne=ta;var Oe=(t,e=0)=>[Ne.decode(t,e),Ne.decode.bytes],ge=(t,e,r=0)=>(Ne.encode(t,e,r),e),xe=t=>Ne.encodingLength(t);var oe=(t,e)=>{let r=e.byteLength,n=xe(t),o=n+xe(r),s=new Uint8Array(o+r);return ge(t,s,0),ge(r,s,n),s.set(e,o),new ye(t,r,e,s)},mn=t=>{let e=J(t),[r,n]=Oe(e),[o,s]=Oe(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new ye(r,o,i,e)},bn=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&sn(t.bytes,r.bytes)}},ye=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var zt=({name:t,code:e,encode:r})=>new Mt(t,e,r),Mt=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?oe(this.code,r):r.then(n=>oe(this.code,n))}else throw Error("Unknown type, must be binary type")}};var gn=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ra=zt({name:"sha2-256",code:18,encode:gn("SHA-256")}),na=zt({name:"sha2-512",code:19,encode:gn("SHA-512")});var Bt={};T(Bt,{identity:()=>ia});var xn=0,oa="identity",yn=J,sa=t=>oe(xn,yn(t)),ia={code:xn,name:oa,encode:yn,digest:sa};var bp=new TextEncoder,wp=new TextDecoder;var vn=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return pa(r,$t(t),e||W.encoder);default:return fa(r,$t(t),e||we.encoder)}};var En=new WeakMap,$t=t=>{let e=En.get(t);if(e==null){let r=new Map;return En.set(t,r),r}return e},L=class{constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==ke)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==da)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return L.createV0(r)}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:r}=this.multihash,n=oe(e,r);return L.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 L.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&bn(e.multihash,n.multihash)}toString(e){return vn(this,e)}toJSON(){return{"/":vn(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof L)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new L(n,o,s,i||Cn(n,o,s.bytes))}else if(r[la]===!0){let{version:n,multihash:o,code:s}=r,i=mn(o);return L.create(n,s,i)}else return null}static create(e,r,n){if(typeof r!="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(r!==ke)throw new Error(`Version 0 CID must use dag-pb (code: ${ke}) block encoding`);return new L(e,r,n,n.bytes)}case 1:{let o=Cn(e,r,n.bytes);return new L(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return L.create(0,ke,e)}static createV1(e,r){return L.create(1,e,r)}static decode(e){let[r,n]=L.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=L.inspectBytes(e),n=r.size-r.multihashSize,o=J(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new ye(r.multihashCode,r.digestSize,s,o);return[r.version===0?L.createV0(i):L.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[p,l]=Oe(e.subarray(r));return r+=l,p},o=n(),s=ke;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),d=n(),b=r+d,c=b-i;return{version:o,codec:s,multihashCode:a,digestSize:d,multihashSize:c,size:b}}static parse(e,r){let[n,o]=ua(e,r),s=L.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return $t(s).set(n,e),s}},ua=(t,e)=>{switch(t[0]){case"Q":{let r=e||W;return[W.prefix,r.decode(`${W.prefix}${t}`)]}case W.prefix:{let r=e||W;return[W.prefix,r.decode(t)]}case we.prefix:{let r=e||we;return[we.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},pa=(t,e,r)=>{let{prefix:n}=r;if(n!==W.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},fa=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},ke=112,da=18,Cn=(t,e,r)=>{let n=xe(t),o=n+xe(e),s=new Uint8Array(o+r.byteLength);return ge(t,s,0),ge(e,s,n),s.set(r,o),s},la=Symbol.for("@ipld/js-cid/CID");var Vt={...At,...Pt,...Tt,...Ut,...It,...Ft,...Nt,...Ot,...Lt,...kt},Tp={...Rt,...Bt};function ve(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function He(t=0){return globalThis.Buffer?.allocUnsafe!=null?ve(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function An(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Sn=An("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Wt=An("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=He(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),ha={utf8:Sn,"utf-8":Sn,hex:Vt.base16,latin1:Wt,ascii:Wt,binary:Wt,...Vt},Xe=ha;function z(t,e="utf8"){let r=Xe[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var hr=ee(Ke(),1);function _(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=He(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return ve(r)}var Ce=ee(Ke(),1);var Ze=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let d=a==="0",b=2**(8*o)-1;for(;;){let c=this.readAtomically(()=>{let p=this.readChar();if(p===void 0)return;let l=Number.parseInt(p,e);if(!Number.isNaN(l))return l});if(c===void 0)break;if(s*=e,s+=c,s>b||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&d&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let o=n*2;if(n<r.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return r[o]=i[0],r[o+1]=i[1],r[o+2]=i[2],r[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=e(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Dn=45,Ua=15,Ee=new Ze;function Qt(t){if(!(t.length>Ua))return Ee.new(t).parseWith(()=>Ee.readIPv4Addr())}function Jt(t){if(!(t.length>Dn))return Ee.new(t).parseWith(()=>Ee.readIPv6Addr())}function Ye(t){if(!(t.length>Dn))return Ee.new(t).parseWith(()=>Ee.readIPAddr())}var Yp=parseInt("0xFFFF",16),ef=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var _t={};T(_t,{identity:()=>La});var La=fe({prefix:"\0",name:"identity",encode:t=>_r(t),decode:t=>Jr(t)});var Gt={};T(Gt,{base2:()=>ka});var ka=F({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ht={};T(Ht,{base8:()=>Da});var Da=F({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Xt={};T(Xt,{base10:()=>Ma});var Ma=H({prefix:"9",name:"base10",alphabet:"0123456789"});var Kt={};T(Kt,{base16:()=>za,base16upper:()=>Ra});var za=F({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ra=F({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Zt={};T(Zt,{base36:()=>Ba,base36upper:()=>$a});var Ba=H({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),$a=H({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Yt={};T(Yt,{base64:()=>Va,base64pad:()=>Wa,base64url:()=>qa,base64urlpad:()=>ja});var Va=F({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Wa=F({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),qa=F({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ja=F({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var er={};T(er,{base256emoji:()=>Ha});var Rn=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}"),Qa=Rn.reduce((t,e,r)=>(t[r]=e,t),[]),Ja=Rn.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function _a(t){return t.reduce((e,r)=>(e+=Qa[r],e),"")}function Ga(t){let e=[];for(let r of t){let n=Ja[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Ha=fe({prefix:"\u{1F680}",name:"base256emoji",encode:_a,decode:Ga});var nr={};T(nr,{sha256:()=>Xa,sha512:()=>Ka});var rr=({name:t,code:e,encode:r})=>new tr(t,e,r),tr=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?ne(this.code,r):r.then(n=>ne(this.code,n))}else throw Error("Unknown type, must be binary type")}};var $n=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Xa=rr({name:"sha2-256",code:18,encode:$n("SHA-256")}),Ka=rr({name:"sha2-512",code:19,encode:$n("SHA-512")});var or={};T(or,{identity:()=>ec});var Vn=0,Za="identity",Wn=j,Ya=t=>ne(Vn,Wn(t)),ec={code:Vn,name:Za,encode:Wn,digest:Ya};var Df=new TextEncoder,Mf=new TextDecoder;var qn={..._t,...Gt,...Ht,...Xt,...Kt,...xt,...Zt,...wt,...Yt,...er},Vf={...nr,...or};function De(t,e="utf8"){let r=Xe[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ve(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var q=ee(Ke(),1);function jn(t){return!!Qt(t)}function Qn(t){return!!Jt(t)}function et(t){return!!Ye(t)}var Jn=jn,nc=Qn,sr=function(t){let e=0;if(t=t.toString().trim(),Jn(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(nc(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Jn(r[n]),i;s&&(i=sr(r[n]),r[n]=z(i.slice(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,z(i.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},_n=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let o=[];for(let s=0;s<r;s++)o.push(t[e+s]);return o.join(".")}if(r===16){let o=[];for(let s=0;s<r;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Me={},ir={},sc=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];sc.forEach(t=>{let e=ic(...t);ir[e.code]=e,Me[e.name]=e});function ic(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function C(t){if(typeof t=="number"){if(ir[t]!=null)return ir[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Me[t]!=null)return Me[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var ad=C("ip4"),cd=C("ip6"),ud=C("ipcidr");function Zn(t,e){switch(C(t).code){case 4:case 41:return cc(e);case 42:return Xn(e);case 6:case 273:case 33:case 132:return eo(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Xn(e);case 421:return dc(e);case 444:return Kn(e);case 445:return Kn(e);case 466:return fc(e);default:return z(e,"base16")}}function Yn(t,e){switch(C(t).code){case 4:return Gn(e);case 41:return Gn(e);case 42:return Hn(e);case 6:case 273:case 33:case 132:return cr(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Hn(e);case 421:return uc(e);case 444:return lc(e);case 445:return hc(e);case 466:return pc(e);default:return De(e,"base16")}}var ar=Object.values(qn).map(t=>t.decoder),ac=function(){let t=ar[0].or(ar[1]);return ar.slice(2).forEach(e=>t=t.or(e)),t}();function Gn(t){if(!et(t))throw new Error("invalid ip address");return sr(t)}function cc(t){let e=_n(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!et(e))throw new Error("invalid ip address");return e}function cr(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function eo(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Hn(t){let e=De(t),r=Uint8Array.from(q.default.encode(e.length));return _([r,e],r.length+e.length)}function Xn(t){let e=q.default.decode(t);if(t=t.slice(q.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return z(t)}function uc(t){let e;t[0]==="Q"||t[0]==="1"?e=_e(M.decode(`z${t}`)).bytes:e=U.parse(t).multihash.bytes;let r=Uint8Array.from(q.default.encode(e.length));return _([r,e],r.length+e.length)}function pc(t){let e=ac.decode(t),r=Uint8Array.from(q.default.encode(e.length));return _([r,e],r.length+e.length)}function fc(t){let e=q.default.decode(t),r=t.slice(q.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+z(r,"base64url")}function dc(t){let e=q.default.decode(t),r=t.slice(q.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return z(r,"base58btc")}function lc(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=Q.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=cr(n);return _([r,o],r.length+o.length)}function hc(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=Q.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=cr(n);return _([r,o],r.length+o.length)}function Kn(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=z(e,"base32"),o=eo(r);return`${n}:${o}`}function mc(t){let e=[],r=t.split("/").slice(1);if(r.length===1&&r[0]==="")return[];for(let n=0;n<r.length;n++){let o=r[n],s=C(o);if(s.size===0){e.push([o]);continue}if(n++,n>=r.length)throw ro("invalid address: "+t);if(s.path===!0){e.push([o,lr(r.slice(n).join("/"))]);break}e.push([o,r[n]])}return e}function bc(t){let e=[];return t.map(r=>{let n=nt(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),lr(e.join("/"))}function wc(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=nt(e);return e.length>1?[r.code,Yn(r.code,e[1])]:[r.code]})}function ur(t){return t.map(e=>{let r=nt(e);return e[1]!=null?[r.code,Zn(r.code,e[1])]:[r.code]})}function pr(t){return rt(_(t.map(e=>{let r=nt(e),n=Uint8Array.from(Ce.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=_([n,e[1]])),n})))}function fr(t,e){return t.size>0?t.size/8:t.size===0?0:Ce.default.decode(e)+(Ce.default.decode.bytes??0)}function tt(t){let e=[],r=0;for(;r<t.length;){let n=Ce.default.decode(t,r),o=Ce.default.decode.bytes??0,s=C(n),i=fr(s,t.slice(r+o));if(i===0){e.push([n]),r+=o;continue}let a=t.slice(r+o,r+o+i);if(r+=i+o,r>t.length)throw ro("Invalid address Uint8Array: "+z(t,"base16"));e.push([n,a])}return e}function dr(t){let e=tt(t),r=ur(e);return bc(r)}function gc(t){t=lr(t);let e=mc(t),r=wc(e);return pr(r)}function to(t){return gc(t)}function rt(t){let e=xc(t);if(e!=null)throw e;return Uint8Array.from(t)}function xc(t){try{tt(t)}catch(e){return e}}function lr(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function ro(t){return new Error("Error parsing address: "+t)}function nt(t){return C(t[0])}var vc=Symbol.for("nodejs.util.inspect.custom"),Ec=[C("dns").code,C("dns4").code,C("dns6").code,C("dnsaddr").code],Cc=new Map,no=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Sc(t){return!!t?.[no]}var G=class{bytes;#t;#r;#n;#e;[no]=!0;constructor(e){if(e==null&&(e=""),e instanceof Uint8Array)this.bytes=rt(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=to(e)}else if(Sc(e))this.bytes=rt(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return this.#t==null&&(this.#t=dr(this.bytes)),this.#t}toJSON(){return this.toString()}toOptions(){let e,r,n,o,s="",i=C("tcp"),a=C("udp"),d=C("ip4"),b=C("ip6"),c=C("dns6"),p=C("ip6zone");for(let[I,u]of this.stringTuples())I===p.code&&(s=`%${u??""}`),Ec.includes(I)&&(r=i.name,o=443,n=`${u??""}${s}`,e=I===c.code?6:4),(I===i.code||I===a.code)&&(r=C(I).name,o=parseInt(u??"")),(I===d.code||I===b.code)&&(r=C(I).name,n=`${u??""}${s}`,e=I===b.code?6:4);if(e==null||r==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:r,port:o}}protos(){return this.protoCodes().map(e=>Object.assign({},C(e)))}protoCodes(){let e=[],r=this.bytes,n=0;for(;n<r.length;){let o=hr.default.decode(r,n),s=hr.default.decode.bytes??0,i=C(o),a=fr(i,r.slice(n+s));n+=a+s,e.push(o)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return this.#r==null&&(this.#r=tt(this.bytes)),this.#r}stringTuples(){return this.#n==null&&(this.#n=ur(this.tuples())),this.#n}encapsulate(e){return e=new G(e),new G(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new G(n.slice(0,o))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new G(pr(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Me.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?z(M.decode(`z${n}`),"base58btc"):z(U.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){if(this.#e===void 0)try{this.#e=this.stringTuples().filter(e=>C(e[0]).path===!0)[0][1],this.#e==null&&(this.#e=null)}catch{this.#e=null}return this.#e}equals(e){return nn(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Cc.get(r.name);if(n==null)throw new Qe(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new G(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[vc](){return`Multiaddr(${dr(this.bytes)})`}};function Se(t){return new G(t)}function oo(t){let e;try{e=C("sni").code}catch{return null}for(let[r,n]of t)if(r===e&&n!==void 0)return n;return null}function so(t){return t.some(([e,r])=>e===C("tls").code)}function V(t,e,r){let n=io[C(t).name];if(n===void 0)throw new Error(`Can't interpret protocol ${C(t).name}`);let o=n(e,r);return t===C("ip6").code?`[${o}]`:o}var io={ip4:(t,e)=>t,ip6:(t,e)=>e.length===0?t:`[${t}]`,tcp:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`tcp://${V(r[0],r[1]??"",e)}:${t}`},udp:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`udp://${V(r[0],r[1]??"",e)}:${t}`},dnsaddr:(t,e)=>t,dns4:(t,e)=>t,dns6:(t,e)=>t,dns:(t,e)=>t,ipfs:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${V(r[0],r[1]??"",e)}/ipfs/${t}`},p2p:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${V(r[0],r[1]??"",e)}/p2p/${t}`},http:(t,e)=>{let r=so(e),n=oo(e);if(r&&n!==null)return`https://${n}`;let o=r?"https://":"http://",s=e.pop();if(s===void 0)throw new Error("Unexpected end of multiaddr");let i=V(s[0],s[1]??"",e);return i=i.replace("tcp://",""),`${o}${i}`},tls:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return V(r[0],r[1]??"",e)},sni:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return V(r[0],r[1]??"",e)},https:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");let n=V(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`https://${n}`},ws:(t,e)=>{let r=so(e),n=oo(e);if(r&&n!==null)return`wss://${n}`;let o=r?"wss://":"ws://",s=e.pop();if(s===void 0)throw new Error("Unexpected end of multiaddr");let i=V(s[0],s[1]??"",e);return i=i.replace("tcp://",""),`${o}${i}`},wss:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");let n=V(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`wss://${n}`},"p2p-websocket-star":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${V(r[0],r[1]??"",e)}/p2p-websocket-star`},"p2p-webrtc-star":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${V(r[0],r[1]??"",e)}/p2p-webrtc-star`},"p2p-webrtc-direct":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${V(r[0],r[1]??"",e)}/p2p-webrtc-direct`}};function ao(t,e){let n=Se(t).stringTuples(),o=n.pop();if(o===void 0)throw new Error("Unexpected end of multiaddr");let s=C(o[0]),i=io[s.name];if(i==null)throw new Error(`No interpreter found for ${s.name}`);let a=i(o[1]??"",n);return e?.assumeHttp!==!1&&o[0]===C("tcp").code&&(a=a.replace("tcp://","http://"),(o[1]==="443"||o[1]==="80")&&(o[1]==="443"&&(a=a.replace("http://","https://")),a=a.substring(0,a.lastIndexOf(":")))),a}var co=WebSocket;var lo=ee(po(),1);function fo(t){return t instanceof ArrayBuffer||t?.constructor?.name==="ArrayBuffer"&&typeof t?.byteLength=="number"}var ho=t=>{t.binaryType="arraybuffer";let e=async()=>{await new Promise((s,i)=>{if(n){s();return}if(o!=null){i(o);return}let a=c=>{t.removeEventListener("open",d),t.removeEventListener("error",b),c()},d=()=>{a(s)},b=c=>{a(()=>{i(c.error??new Error(`connect ECONNREFUSED ${t.url}`))})};t.addEventListener("open",d),t.addEventListener("error",b)})},r=async function*(){let s=new lo.EventIterator(({push:i,stop:a,fail:d})=>{let b=p=>{let l=null;typeof p.data=="string"&&(l=De(p.data)),fo(p.data)&&(l=new Uint8Array(p.data)),p.data instanceof Uint8Array&&(l=p.data),l!=null&&i(l)},c=p=>{d(p.error??new Error("Socket error"))};return t.addEventListener("message",b),t.addEventListener("error",c),t.addEventListener("close",a),()=>{t.removeEventListener("message",b),t.removeEventListener("error",c),t.removeEventListener("close",a)}},{highWaterMark:1/0});await e();for await(let i of s)yield fo(i)?new Uint8Array(i):i}(),n=t.readyState===1,o;return t.addEventListener("open",()=>{n=!0,o=null}),t.addEventListener("close",()=>{n=!1,o=null}),t.addEventListener("error",s=>{n||(o=s.error??new Error(`connect ECONNREFUSED ${t.url}`))}),Object.assign(r,{connected:e})};var mo=async t=>{if(t.readyState>=2)throw new Error("socket closed");t.readyState!==1&&await new Promise((e,r)=>{function n(){t.removeEventListener("open",o),t.removeEventListener("error",s)}function o(){n(),e()}function s(i){n(),r(i.error??new Error(`connect ECONNREFUSED ${t.url}`))}t.addEventListener("open",o),t.addEventListener("error",s)})};var bo=(t,e)=>(e=e??{},e.closeOnEnd=e.closeOnEnd!==!1,async n=>{for await(let o of n){try{await mo(t)}catch(s){if(s.message==="socket closed")break;throw s}t.send(o)}e.closeOnEnd!=null&&t.readyState<=1&&await new Promise((o,s)=>{t.addEventListener("close",i=>{if(i.wasClean||i.code===1006)o();else{let a=Object.assign(new Error("ws error"),{event:i});s(a)}}),setTimeout(()=>{t.close()})})});var wo=(t,e)=>{e=e??{};let r=ho(t),n=e.remoteAddress,o=e.remotePort;if(t.url!=null)try{let i=new URL(t.url);n=i.hostname,o=parseInt(i.port,10)}catch{}if(n==null||o==null)throw new Error("Remote connection did not have address and/or port");return{sink:bo(t,e),source:r,connected:async()=>{await r.connected()},close:async()=>{(t.readyState===t.CONNECTING||t.readyState===t.OPEN)&&await new Promise(i=>{t.addEventListener("close",()=>{i()}),t.close()})},destroy:()=>{t.terminate!=null?t.terminate():t.close()},remoteAddress:n,remotePort:o,socket:t}};var Ao=ee(So(),1),Dc={http:"ws",https:"wss"},Mc="ws",Po=(t,e)=>(0,Ao.relative)(t,e,Dc,Mc);function To(t,e){let r=typeof window>"u"?"":window.location;e=e??{};let n=Po(t,r.toString()),o=new co(n,e.websocket);return wo(o,e)}function xr(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Fo=ee(Io(),1),Rc=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,No=(0,Fo.default)(),Oo=Rc&&!No;var Kd=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!No,Lo=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Zd=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Yd=typeof navigator<"u"&&navigator.product==="ReactNative";var Bc=f("dns4"),$c=f("dns6"),Vc=f("dnsaddr"),Z=O(f("dns"),Vc,Bc,$c),it=O(f("ip4"),f("ip6")),Ae=O(m(it,f("tcp")),m(Z,f("tcp"))),at=m(it,f("udp")),Wc=m(at,f("utp")),qc=m(at,f("quic")),jc=m(at,f("quic-v1")),yr=O(m(Ae,f("ws")),m(Z,f("ws"))),Pe=O(m(yr,f("p2p")),yr),vr=O(m(Ae,f("wss")),m(Z,f("wss")),m(Ae,f("tls"),f("ws")),m(Z,f("tls"),f("ws"))),ie=O(m(vr,f("p2p")),vr),Er=O(m(Ae,f("http")),m(it,f("http")),m(Z,f("http"))),Cr=O(m(Ae,f("https")),m(it,f("https")),m(Z,f("https"))),ko=m(at,f("webrtc-direct"),f("certhash")),zo=O(m(ko,f("p2p")),ko),Do=m(jc,f("webtransport"),f("certhash"),f("certhash")),Ro=O(m(Do,f("p2p")),Do),Bo=O(m(Pe,f("p2p-webrtc-star"),f("p2p")),m(ie,f("p2p-webrtc-star"),f("p2p")),m(Pe,f("p2p-webrtc-star")),m(ie,f("p2p-webrtc-star"))),rl=O(m(Pe,f("p2p-websocket-star"),f("p2p")),m(ie,f("p2p-websocket-star"),f("p2p")),m(Pe,f("p2p-websocket-star")),m(ie,f("p2p-websocket-star"))),$o=O(m(Er,f("p2p-webrtc-direct"),f("p2p")),m(Cr,f("p2p-webrtc-direct"),f("p2p")),m(Er,f("p2p-webrtc-direct")),m(Cr,f("p2p-webrtc-direct"))),ae=O(yr,vr,Er,Cr,Bo,$o,Ae,Wc,qc,Z,zo,Ro),nl=O(m(ae,f("p2p-stardust"),f("p2p")),m(ae,f("p2p-stardust"))),K=O(m(ae,f("p2p")),Bo,$o,zo,Ro,f("p2p")),Mo=O(m(K,f("p2p-circuit"),K),m(K,f("p2p-circuit")),m(f("p2p-circuit"),K),m(ae,f("p2p-circuit")),m(f("p2p-circuit"),ae),f("p2p-circuit")),Vo=()=>O(m(Mo,Vo),Mo),se=Vo(),ol=O(m(se,K,se),m(K,se),m(se,K),se,K);var sl=O(m(se,f("webrtc"),f("p2p")),m(se,f("webrtc")),m(ae,f("webrtc"),f("p2p")),m(ae,f("webrtc")),f("webrtc"));function Wo(t){function e(r){let n;try{n=Se(r)}catch{return!1}let o=t(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return e}function m(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(o=>(n=typeof o=="function"?o().partialMatch(r):o.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Wo(e),partialMatch:e}}function O(...t){function e(n){let o=null;return t.some(s=>{let i=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return i!=null?(o=i,!0):!1}),o}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Wo(e),partialMatch:e}}function f(t){let e=t;function r(o){let s;try{s=Se(o)}catch{return!1}let i=s.protoNames();return i.length===1&&i[0]===e}function n(o){return o.length===0?null:o[0]===e?o.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}function Qo(t){return t.filter(e=>{if(e.protoCodes().includes(290))return!1;let r=e.decapsulateCode(421);return Pe.matches(r)||ie.matches(r)})}function Jo(t){return t.filter(e=>{if(e.protoCodes().includes(290))return!1;let r=e.decapsulateCode(421);return ie.matches(r)})}function _o(){throw new Error("WebSocket Servers can not be created in the browser!")}var Be=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Go(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function Sr(t,e,r){let n=r??{},o=Go(t);async function*s(){let i,a=()=>{i?.()};for(e.addEventListener("abort",a);;){let d;try{if(e.aborted){let{abortMessage:c,abortCode:p}=n;throw new Be(c,p)}let b=new Promise((c,p)=>{i=()=>{let{abortMessage:l,abortCode:I}=n;p(new Be(l,I))}});d=await Promise.race([b,o.next()]),i=null}catch(b){e.removeEventListener("abort",a);let c=b.type==="aborted"&&e.aborted;if(c&&n.onAbort!=null&&n.onAbort(t),typeof o.return=="function")try{let p=o.return();p instanceof Promise&&p.catch(l=>{n.onReturnError!=null&&n.onReturnError(l)})}catch(p){n.onReturnError!=null&&n.onReturnError(p)}if(c&&n.returnOnAbort===!0)return;throw b}if(d.done===!0)break;yield d.value}e.removeEventListener("abort",a)}return s()}var Ar=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Pr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ho=t=>globalThis.DOMException===void 0?new Pr(t):new DOMException(t),Xo=t=>{let e=t.reason===void 0?Ho("This operation was aborted."):t.reason;return e instanceof Error?e:Ho(e)};function Tr(t,e){let{milliseconds:r,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,d=new Promise((b,c)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:l}=e;l.aborted&&c(Xo(l)),l.addEventListener("abort",()=>{c(Xo(l))})}if(r===Number.POSITIVE_INFINITY){t.then(b,c);return}let p=new Ar;i=s.setTimeout.call(void 0,()=>{if(n){try{b(n())}catch(l){c(l)}return}typeof t.cancel=="function"&&t.cancel(),o===!1?b():o instanceof Error?c(o):(p.message=o??`Promise timed out after ${r} milliseconds`,c(p))},r),(async()=>{try{b(await t)}catch(l){c(l)}})()}).finally(()=>{d.clear()});return d.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},d}var Ko=je("libp2p:websockets:socket");function Zo(t,e,r){r=r??{};let n={async sink(o){r?.signal!=null&&(o=Sr(o,r.signal));try{await t.sink(o)}catch(s){s.type!=="aborted"&&Ko.error(s)}},source:r.signal!=null?Sr(t.source,r.signal):t.source,remoteAddr:e,timeline:{open:Date.now()},async close(){let o=Date.now();try{await Tr(t.close(),{milliseconds:2e3})}catch{let{host:i,port:a}=n.remoteAddr.toOptions();Ko("timeout closing stream to %s:%s after %dms, destroying it manually",i,a,Date.now()-o),t.destroy()}finally{n.timeline.close=Date.now()}}};return t.socket.addEventListener("close",()=>{n.timeline.close==null&&(n.timeline.close=Date.now())},{once:!0}),n}var Y=je("libp2p:websockets"),Ur=class{init;constructor(e){this.init=e}[Symbol.toStringTag]="@libp2p/websockets";[Nr]=!0;async dial(e,r){Y("dialing %s",e),r=r??{};let n=await this._connect(e,r),o=Zo(n,e);Y("new outbound connection %s",o.remoteAddr);let s=await r.upgrader.upgradeOutbound(o);return Y("outbound connection %s upgraded",o.remoteAddr),s}async _connect(e,r){if(r?.signal?.aborted===!0)throw new te;let n=e.toOptions();Y("dialing %s:%s",n.host,n.port);let o=xr(),s=b=>{Y.error("connection error:",b),o.reject(b)},i=To(ao(e),this.init);if(i.socket.on!=null?i.socket.on("error",s):i.socket.onerror=s,r.signal==null)return await Promise.race([i.connected(),o.promise]),Y("connected %s",e),i;let a,d=new Promise((b,c)=>{if(a=()=>{c(new te),i.close().catch(p=>{Y.error("error closing raw socket",p)})},r?.signal?.aborted===!0){a();return}r?.signal?.addEventListener("abort",a)});try{await Promise.race([d,o.promise,i.connected()])}finally{a!=null&&r?.signal?.removeEventListener("abort",a)}return Y("connected %s",e),i}createListener(e){return _o({...this.init,...e})}filter(e){return e=Array.isArray(e)?e:[e],this.init?.filter!=null?this.init?.filter(e):Oo||Lo?Jo(e):Qo(e)}};function Gc(t={}){return()=>new Ur(t)}return ss(Hc);})();
2
+ "use strict";var Libp2PWebsockets=(()=>{var Do=Object.create;var Me=Object.defineProperty;var Fo=Object.getOwnPropertyDescriptor;var No=Object.getOwnPropertyNames;var Lo=Object.getPrototypeOf,Oo=Object.prototype.hasOwnProperty;var O=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),E=(t,e)=>{for(var r in e)Me(t,r,{get:e[r],enumerable:!0})},wr=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of No(e))!Oo.call(t,o)&&o!==r&&Me(t,o,{get:()=>e[o],enumerable:!(n=Fo(e,o))||n.enumerable});return t};var ne=(t,e,r)=>(r=t!=null?Do(Lo(t)):{},wr(e||!t||!t.__esModule?Me(r,"default",{value:t,enumerable:!0}):r,t)),ko=t=>wr(Me({},"__esModule",{value:!0}),t);var vr=O((gc,yr)=>{var oe=1e3,se=oe*60,ie=se*60,K=ie*24,Mo=K*7,Ro=K*365.25;yr.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return $o(t);if(r==="number"&&isFinite(t))return e.long?Bo(t):zo(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function $o(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Ro;case"weeks":case"week":case"w":return r*Mo;case"days":case"day":case"d":return r*K;case"hours":case"hour":case"hrs":case"hr":case"h":return r*ie;case"minutes":case"minute":case"mins":case"min":case"m":return r*se;case"seconds":case"second":case"secs":case"sec":case"s":return r*oe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function zo(t){var e=Math.abs(t);return e>=K?Math.round(t/K)+"d":e>=ie?Math.round(t/ie)+"h":e>=se?Math.round(t/se)+"m":e>=oe?Math.round(t/oe)+"s":t+"ms"}function Bo(t){var e=Math.abs(t);return e>=K?$e(t,e,K,"day"):e>=ie?$e(t,e,ie,"hour"):e>=se?$e(t,e,se,"minute"):e>=oe?$e(t,e,oe,"second"):t+" ms"}function $e(t,e,r,n){var o=e>=r*1.5;return Math.round(t/r)+" "+n+(o?"s":"")}});var Er=O((xc,Cr)=>{function Vo(t){r.debug=r,r.default=r,r.coerce=f,r.disable=s,r.enable=o,r.enabled=i,r.humanize=vr(),r.destroy=m,Object.keys(t).forEach(c=>{r[c]=t[c]}),r.names=[],r.skips=[],r.formatters={};function e(c){let p=0;for(let h=0;h<c.length;h++)p=(p<<5)-p+c.charCodeAt(h),p|=0;return r.colors[Math.abs(p)%r.colors.length]}r.selectColor=e;function r(c){let p,h=null,U,d;function b(...y){if(!b.enabled)return;let g=b,v=Number(new Date),S=v-(p||v);g.diff=S,g.prev=p,g.curr=v,p=v,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let x=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(D,C)=>{if(D==="%%")return"%";x++;let I=r.formatters[C];if(typeof I=="function"){let $=y[x];D=I.call(g,$),y.splice(x,1),x--}return D}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return b.namespace=c,b.useColors=r.useColors(),b.color=r.selectColor(c),b.extend=n,b.destroy=r.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(U!==r.namespaces&&(U=r.namespaces,d=r.enabled(c)),d),set:y=>{h=y}}),typeof r.init=="function"&&r.init(b),b}function n(c,p){let h=r(this.namespace+(typeof p>"u"?":":p)+c);return h.log=this.log,h}function o(c){r.save(c),r.namespaces=c,r.names=[],r.skips=[];let p,h=(typeof c=="string"?c:"").split(/[\s,]+/),U=h.length;for(p=0;p<U;p++)h[p]&&(c=h[p].replace(/\*/g,".*?"),c[0]==="-"?r.skips.push(new RegExp("^"+c.slice(1)+"$")):r.names.push(new RegExp("^"+c+"$")))}function s(){let c=[...r.names.map(a),...r.skips.map(a).map(p=>"-"+p)].join(",");return r.enable(""),c}function i(c){if(c[c.length-1]==="*")return!0;let p,h;for(p=0,h=r.skips.length;p<h;p++)if(r.skips[p].test(c))return!1;for(p=0,h=r.names.length;p<h;p++)if(r.names[p].test(c))return!0;return!1}function a(c){return c.toString().substring(2,c.toString().length-2).replace(/\.\*\?$/,"*")}function f(c){return c instanceof Error?c.stack||c.message:c}function m(){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 r.enable(r.load()),r}Cr.exports=Vo});var Sr=O((k,ze)=>{k.formatArgs=qo;k.save=jo;k.load=_o;k.useColors=Wo;k.storage=Qo();k.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();k.colors=["#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 Wo(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function qo(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+ze.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),t.splice(n,0,e)}k.log=console.debug||console.log||(()=>{});function jo(t){try{t?k.storage.setItem("debug",t):k.storage.removeItem("debug")}catch{}}function _o(){let t;try{t=k.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Qo(){try{return localStorage}catch{}}ze.exports=Er()(k);var{formatters:Jo}=ze.exports;Jo.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var un=O((Ou,cn)=>{cn.exports=Lt;var an=128,qi=127,ji=~qi,_i=Math.pow(2,31);function Lt(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw Lt.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=_i;)e[r++]=t&255|an,t/=128;for(;t&ji;)e[r++]=t&255|an,t>>>=7;return e[r]=t|0,Lt.bytes=r-n+1,e}});var fn=O((ku,dn)=>{dn.exports=Ot;var Qi=128,pn=127;function Ot(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a||o>49)throw Ot.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&pn)<<o:(i&pn)*Math.pow(2,o),o+=7}while(i>=Qi);return Ot.bytes=s-n,r}});var hn=O((Mu,ln)=>{var Ji=Math.pow(2,7),Gi=Math.pow(2,14),Hi=Math.pow(2,21),Xi=Math.pow(2,28),Ki=Math.pow(2,35),Zi=Math.pow(2,42),Yi=Math.pow(2,49),ea=Math.pow(2,56),ta=Math.pow(2,63);ln.exports=function(t){return t<Ji?1:t<Gi?2:t<Hi?3:t<Xi?4:t<Ki?5:t<Zi?6:t<Yi?7:t<ea?8:t<ta?9:10}});var kt=O((Ru,mn)=>{mn.exports={encode:un(),decode:fn(),encodingLength:hn()}});var qn=O(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});var sr=class{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;let r={value:e,done:!1};if(this.pullQueue.length){let n=this.pullQueue.shift();n&&n.resolve(r)}else this.pushQueue.push(Promise.resolve(r)),this.highWaterMark!==void 0&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn(`EventIterator queue reached ${this.pushQueue.length} items`))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(let e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped)if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(let r of this.pullQueue)r.reject(e);this.pullQueue.length=0}else{let r=Promise.reject(e);r.catch(()=>{}),this.pushQueue.push(r)}}remove(){Promise.resolve().then(()=>{this.removeCallback&&this.removeCallback()})}[Symbol.asyncIterator](){return{next:e=>{let r=this.pushQueue.shift();return r?(this.lowWaterMark!==void 0&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),r):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise((n,o)=>{this.pullQueue.push({resolve:n,reject:o})})},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}},Ke=class{constructor(e,{highWaterMark:r=100,lowWaterMark:n=1}={}){let o=new sr;o.highWaterMark=r,o.lowWaterMark=n,o.removeCallback=e({push:s=>o.push(s),stop:()=>o.stop(),fail:s=>o.fail(s),on:(s,i)=>{o.eventHandlers[s]=i}})||(()=>{}),this[Symbol.asyncIterator]=()=>o[Symbol.asyncIterator](),Object.freeze(this)}};Ze.EventIterator=Ke;Ze.default=Ke});var jn=O(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});var ir=qn();Le.EventIterator=ir.EventIterator;function ja(t,e,r){return new ir.EventIterator(({push:n})=>(this.addEventListener(t,n,e),()=>this.removeEventListener(t,n,e)),r)}Le.subscribe=ja;Le.default=ir.EventIterator});var cr=O((kd,Zn)=>{"use strict";var _a=typeof navigator<"u"&&navigator.product==="ReactNative";function Qa(){return _a?"http://localhost":self.location?self.location.protocol+"//"+self.location.host:""}var Oe=self.URL,Kn=Qa(),ar=class{constructor(e="",r=Kn){this.super=new Oe(e,r),this.path=this.pathname+this.search,this.auth=this.username&&this.password?this.username+":"+this.password:null,this.query=this.search&&this.search.startsWith("?")?this.search.slice(1):null}get hash(){return this.super.hash}get host(){return this.super.host}get hostname(){return this.super.hostname}get href(){return this.super.href}get origin(){return this.super.origin}get password(){return this.super.password}get pathname(){return this.super.pathname}get port(){return this.super.port}get protocol(){return this.super.protocol}get search(){return this.super.search}get searchParams(){return this.super.searchParams}get username(){return this.super.username}set hash(e){this.super.hash=e}set host(e){this.super.host=e}set hostname(e){this.super.hostname=e}set href(e){this.super.href=e}set password(e){this.super.password=e}set pathname(e){this.super.pathname=e}set port(e){this.super.port=e}set protocol(e){this.super.protocol=e}set search(e){this.super.search=e}set username(e){this.super.username=e}static createObjectURL(e){return Oe.createObjectURL(e)}static revokeObjectURL(e){Oe.revokeObjectURL(e)}toJSON(){return this.super.toJSON()}toString(){return this.super.toString()}format(){return this.toString()}};function Ja(t){if(typeof t=="string")return new Oe(t).toString();if(!(t instanceof Oe)){let e=t.username&&t.password?`${t.username}:${t.password}@`:"",r=t.auth?t.auth+"@":"",n=t.port?":"+t.port:"",o=t.protocol?t.protocol+"//":"",s=t.host||"",i=t.hostname||"",a=t.search||(t.query?"?"+t.query:""),f=t.hash||"",m=t.pathname||"",c=t.path||m+a;return`${o}${e||r}${s||i+n}${c}${f}`}}Zn.exports={URLWithLegacySupport:ar,URLSearchParams:self.URLSearchParams,defaultBase:Kn,format:Ja}});var to=O((Md,eo)=>{"use strict";var{URLWithLegacySupport:Yn,format:Ga}=cr();eo.exports=(t,e={},r={},n)=>{let o=e.protocol?e.protocol.replace(":",""):"http";o=(r[o]||n||o)+":";let s;try{s=new Yn(t)}catch{s={}}let i=Object.assign({},e,{protocol:o||s.protocol,host:e.host||s.host});return new Yn(t,Ga(i)).toString()}});var no=O((Rd,ro)=>{"use strict";var{URLWithLegacySupport:Ha,format:Xa,URLSearchParams:Ka,defaultBase:Za}=cr(),Ya=to();ro.exports={URL:Ha,URLSearchParams:Ka,format:Xa,relative:Ya,defaultBase:Za}});var co=O((jd,ao)=>{function rc(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}ao.exports=rc});var hc={};E(hc,{webSockets:()=>lc});var Se=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},Re=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var xr=Symbol.for("@libp2p/transport");var gr;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(gr||(gr={}));var M=ne(Sr(),1);var st={};E(st,{base32:()=>z,base32hex:()=>rs,base32hexpad:()=>os,base32hexpadupper:()=>ss,base32hexupper:()=>ns,base32pad:()=>es,base32padupper:()=>ts,base32upper:()=>Yo,base32z:()=>is});function Go(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,f=t.charAt(0),m=Math.log(a)/Math.log(256),c=Math.log(256)/Math.log(a);function p(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var b=0,y=0,g=0,v=d.length;g!==v&&d[g]===0;)g++,b++;for(var S=(v-g)*c+1>>>0,x=new Uint8Array(S);g!==v;){for(var A=d[g],D=0,C=S-1;(A!==0||D<y)&&C!==-1;C--,D++)A+=256*x[C]>>>0,x[C]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");y=D,g++}for(var I=S-y;I!==S&&x[I]===0;)I++;for(var $=f.repeat(b);I<S;++I)$+=t.charAt(x[I]);return $}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var b=0;if(d[b]!==" "){for(var y=0,g=0;d[b]===f;)y++,b++;for(var v=(d.length-b)*m+1>>>0,S=new Uint8Array(v);d[b];){var x=r[d.charCodeAt(b)];if(x===255)return;for(var A=0,D=v-1;(x!==0||A<g)&&D!==-1;D--,A++)x+=a*S[D]>>>0,S[D]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");g=A,b++}if(d[b]!==" "){for(var C=v-g;C!==v&&S[C]===0;)C++;for(var I=new Uint8Array(y+(v-C)),$=y;C!==v;)I[$++]=S[C++];return I}}}function U(d){var b=h(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:h,decode:U}}var Ho=Go,Xo=Ho,Ar=Xo;var vc=new Uint8Array(0);var Ir=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},W=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Pr=t=>new TextEncoder().encode(t),Tr=t=>new TextDecoder().decode(t);var tt=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},rt=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),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 Dr(this,e)}},nt=class{constructor(e){this.decoders=e}or(e){return Dr(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Dr=(t,e)=>new nt({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ot=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new tt(e,r,n),this.decoder=new rt(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ae=({name:t,prefix:e,encode:r,decode:n})=>new ot(t,e,r,n),_=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=Ar(r,e);return ae({prefix:t,name:e,encode:n,decode:s=>W(o(s))})},Ko=(t,e,r,n)=>{let o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,f=0,m=0;for(let c=0;c<s;++c){let p=o[t[c]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<r|p,a+=r,a>=8&&(a-=8,i[m++]=255&f>>a)}if(a>=r||255&f<<8-a)throw new SyntaxError("Unexpected end of data");return i},Zo=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let f=0;f<t.length;++f)for(a=a<<8|t[f],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s},P=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>ae({prefix:e,name:t,encode(o){return Zo(o,n,r)},decode(o){return Ko(o,n,r,t)}});var z=P({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Yo=P({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),es=P({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ts=P({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),rs=P({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),ns=P({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),os=P({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ss=P({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),is=P({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var it={};E(it,{base58btc:()=>N,base58flickr:()=>as});var N=_({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),as=_({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ct={};E(ct,{base64:()=>at,base64pad:()=>cs,base64url:()=>us,base64urlpad:()=>ps});var at=P({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),cs=P({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),us=P({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ps=P({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});M.default.formatters.b=t=>t==null?"undefined":N.baseEncode(t);M.default.formatters.t=t=>t==null?"undefined":z.baseEncode(t);M.default.formatters.m=t=>t==null?"undefined":at.baseEncode(t);M.default.formatters.p=t=>t==null?"undefined":t.toString();M.default.formatters.c=t=>t==null?"undefined":t.toString();M.default.formatters.k=t=>t==null?"undefined":t.toString();M.default.formatters.a=t=>t==null?"undefined":t.toString();function ds(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Be(t){let e=ds(`${t}:trace`);return M.default.enabled(`${t}:trace`)&&M.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,M.default)(`${t}:trace`)),Object.assign((0,M.default)(t),{error:(0,M.default)(`${t}:error`),trace:e})}var Ve=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var fs=Lr,Fr=128,ls=127,hs=~ls,ms=Math.pow(2,31);function Lr(t,e,r){e=e||[],r=r||0;for(var n=r;t>=ms;)e[r++]=t&255|Fr,t/=128;for(;t&hs;)e[r++]=t&255|Fr,t>>>=7;return e[r]=t|0,Lr.bytes=r-n+1,e}var bs=ut,ws=128,Nr=127;function ut(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw ut.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Nr)<<o:(i&Nr)*Math.pow(2,o),o+=7}while(i>=ws);return ut.bytes=s-n,r}var gs=Math.pow(2,7),xs=Math.pow(2,14),ys=Math.pow(2,21),vs=Math.pow(2,28),Cs=Math.pow(2,35),Es=Math.pow(2,42),Ss=Math.pow(2,49),As=Math.pow(2,56),Is=Math.pow(2,63),Ps=function(t){return t<gs?1:t<xs?2:t<ys?3:t<vs?4:t<Cs?5:t<Es?6:t<Ss?7:t<As?8:t<Is?9:10},Ts={encode:fs,decode:bs,encodingLength:Ps},Us=Ts,Ae=Us;var Ie=(t,e=0)=>[Ae.decode(t,e),Ae.decode.bytes],ce=(t,e,r=0)=>(Ae.encode(t,e,r),e),ue=t=>Ae.encodingLength(t);var Z=(t,e)=>{let r=e.byteLength,n=ue(t),o=n+ue(r),s=new Uint8Array(o+r);return ce(t,s,0),ce(r,s,n),s.set(e,o),new pe(t,r,e,s)},qe=t=>{let e=W(t),[r,n]=Ie(e),[o,s]=Ie(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new pe(r,o,i,e)},Or=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Ir(t.bytes,r.bytes)}},pe=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var kr=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Fs(r,pt(t),e||N.encoder);default:return Ns(r,pt(t),e||z.encoder)}};var Mr=new WeakMap,pt=t=>{let e=Mr.get(t);if(e==null){let r=new Map;return Mr.set(t,r),r}return e},Q=class t{constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==Pe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Ls)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Z(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Or(e.multihash,n.multihash)}toString(e){return kr(this,e)}toJSON(){return{"/":kr(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i||Rr(n,o,s.bytes))}else if(r[Os]===!0){let{version:n,multihash:o,code:s}=r,i=qe(o);return t.create(n,s,i)}else return null}static create(e,r,n){if(typeof r!="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(r!==Pe)throw new Error(`Version 0 CID must use dag-pb (code: ${Pe}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Rr(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Pe,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=W(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new pe(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[p,h]=Ie(e.subarray(r));return r+=h,p},o=n(),s=Pe;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),f=n(),m=r+f,c=m-i;return{version:o,codec:s,multihashCode:a,digestSize:f,multihashSize:c,size:m}}static parse(e,r){let[n,o]=Ds(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return pt(s).set(n,e),s}},Ds=(t,e)=>{switch(t[0]){case"Q":{let r=e||N;return[N.prefix,r.decode(`${N.prefix}${t}`)]}case N.prefix:{let r=e||N;return[N.prefix,r.decode(t)]}case z.prefix:{let r=e||z;return[z.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},Fs=(t,e,r)=>{let{prefix:n}=r;if(n!==N.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},Ns=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},Pe=112,Ls=18,Rr=(t,e,r)=>{let n=ue(t),o=n+ue(e),s=new Uint8Array(o+r.byteLength);return ce(t,s,0),ce(e,s,n),s.set(r,o),s},Os=Symbol.for("@ipld/js-cid/CID");function $r(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var mt={};E(mt,{identity:()=>Bs});function ks(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,f=t.charAt(0),m=Math.log(a)/Math.log(256),c=Math.log(256)/Math.log(a);function p(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var b=0,y=0,g=0,v=d.length;g!==v&&d[g]===0;)g++,b++;for(var S=(v-g)*c+1>>>0,x=new Uint8Array(S);g!==v;){for(var A=d[g],D=0,C=S-1;(A!==0||D<y)&&C!==-1;C--,D++)A+=256*x[C]>>>0,x[C]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");y=D,g++}for(var I=S-y;I!==S&&x[I]===0;)I++;for(var $=f.repeat(b);I<S;++I)$+=t.charAt(x[I]);return $}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var b=0;if(d[b]!==" "){for(var y=0,g=0;d[b]===f;)y++,b++;for(var v=(d.length-b)*m+1>>>0,S=new Uint8Array(v);d[b];){var x=r[d.charCodeAt(b)];if(x===255)return;for(var A=0,D=v-1;(x!==0||A<g)&&D!==-1;D--,A++)x+=a*S[D]>>>0,S[D]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");g=A,b++}if(d[b]!==" "){for(var C=v-g;C!==v&&S[C]===0;)C++;for(var I=new Uint8Array(y+(v-C)),$=y;C!==v;)I[$++]=S[C++];return I}}}function U(d){var b=h(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:h,decode:U}}var Ms=ks,Rs=Ms,zr=Rs;var qc=new Uint8Array(0);var Br=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},q=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Vr=t=>new TextEncoder().encode(t),Wr=t=>new TextDecoder().decode(t);var dt=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ft=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),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 jr(this,e)}},lt=class{constructor(e){this.decoders=e}or(e){return jr(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},jr=(t,e)=>new lt({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ht=class{constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new dt(e,r,n),this.decoder=new ft(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},fe=({name:t,prefix:e,encode:r,decode:n})=>new ht(t,e,r,n),J=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:o}=zr(r,e);return fe({prefix:t,name:e,encode:n,decode:s=>q(o(s))})},$s=(t,e,r,n)=>{let o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,f=0,m=0;for(let c=0;c<s;++c){let p=o[t[c]];if(p===void 0)throw new SyntaxError(`Non-${n} character`);f=f<<r|p,a+=r,a>=8&&(a-=8,i[m++]=255&f>>a)}if(a>=r||255&f<<8-a)throw new SyntaxError("Unexpected end of data");return i},zs=(t,e,r)=>{let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let f=0;f<t.length;++f)for(a=a<<8|t[f],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s},T=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>fe({prefix:e,name:t,encode(o){return zs(o,n,r)},decode(o){return $s(o,n,r,t)}});var Bs=fe({prefix:"\0",name:"identity",encode:t=>Wr(t),decode:t=>Vr(t)});var bt={};E(bt,{base2:()=>Vs});var Vs=T({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var wt={};E(wt,{base8:()=>Ws});var Ws=T({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var gt={};E(gt,{base10:()=>qs});var qs=J({prefix:"9",name:"base10",alphabet:"0123456789"});var xt={};E(xt,{base16:()=>js,base16upper:()=>_s});var js=T({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_s=T({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var yt={};E(yt,{base32:()=>le,base32hex:()=>Hs,base32hexpad:()=>Ks,base32hexpadupper:()=>Zs,base32hexupper:()=>Xs,base32pad:()=>Js,base32padupper:()=>Gs,base32upper:()=>Qs,base32z:()=>Ys});var le=T({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Qs=T({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Js=T({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Gs=T({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Hs=T({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Xs=T({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ks=T({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Zs=T({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ys=T({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var vt={};E(vt,{base36:()=>ei,base36upper:()=>ti});var ei=J({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ti=J({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ct={};E(Ct,{base58btc:()=>B,base58flickr:()=>ri});var B=J({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ri=J({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Et={};E(Et,{base64:()=>ni,base64pad:()=>oi,base64url:()=>si,base64urlpad:()=>ii});var ni=T({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),oi=T({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),si=T({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ii=T({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var St={};E(St,{base256emoji:()=>di});var _r=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}"),ai=_r.reduce((t,e,r)=>(t[r]=e,t),[]),ci=_r.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function ui(t){return t.reduce((e,r)=>(e+=ai[r],e),"")}function pi(t){let e=[];for(let r of t){let n=ci[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var di=fe({prefix:"\u{1F680}",name:"base256emoji",encode:ui,decode:pi});var Tt={};E(Tt,{sha256:()=>Di,sha512:()=>Fi});var fi=Gr,Qr=128,li=127,hi=~li,mi=Math.pow(2,31);function Gr(t,e,r){e=e||[],r=r||0;for(var n=r;t>=mi;)e[r++]=t&255|Qr,t/=128;for(;t&hi;)e[r++]=t&255|Qr,t>>>=7;return e[r]=t|0,Gr.bytes=r-n+1,e}var bi=At,wi=128,Jr=127;function At(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw At.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Jr)<<o:(i&Jr)*Math.pow(2,o),o+=7}while(i>=wi);return At.bytes=s-n,r}var gi=Math.pow(2,7),xi=Math.pow(2,14),yi=Math.pow(2,21),vi=Math.pow(2,28),Ci=Math.pow(2,35),Ei=Math.pow(2,42),Si=Math.pow(2,49),Ai=Math.pow(2,56),Ii=Math.pow(2,63),Pi=function(t){return t<gi?1:t<xi?2:t<yi?3:t<vi?4:t<Ci?5:t<Ei?6:t<Si?7:t<Ai?8:t<Ii?9:10},Ti={encode:fi,decode:bi,encodingLength:Pi},Ui=Ti,Te=Ui;var Ue=(t,e=0)=>[Te.decode(t,e),Te.decode.bytes],he=(t,e,r=0)=>(Te.encode(t,e,r),e),me=t=>Te.encodingLength(t);var Y=(t,e)=>{let r=e.byteLength,n=me(t),o=n+me(r),s=new Uint8Array(o+r);return he(t,s,0),he(r,s,n),s.set(e,o),new be(t,r,e,s)},Hr=t=>{let e=q(t),[r,n]=Ue(e),[o,s]=Ue(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new be(r,o,i,e)},Xr=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Br(t.bytes,r.bytes)}},be=class{constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Pt=({name:t,code:e,encode:r})=>new It(t,e,r),It=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Y(this.code,r):r.then(n=>Y(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Zr=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Di=Pt({name:"sha2-256",code:18,encode:Zr("SHA-256")}),Fi=Pt({name:"sha2-512",code:19,encode:Zr("SHA-512")});var Ut={};E(Ut,{identity:()=>Oi});var Yr=0,Ni="identity",en=q,Li=t=>Y(Yr,en(t)),Oi={code:Yr,name:Ni,encode:en,digest:Li};var pu=new TextEncoder,du=new TextDecoder;var tn=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return $i(r,Dt(t),e||B.encoder);default:return zi(r,Dt(t),e||le.encoder)}};var rn=new WeakMap,Dt=t=>{let e=rn.get(t);if(e==null){let r=new Map;return rn.set(t,r),r}return e},_e=class t{constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==Fe)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Bi)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Y(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Xr(e.multihash,n.multihash)}toString(e){return tn(this,e)}toJSON(){return{"/":tn(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i||nn(n,o,s.bytes))}else if(r[Vi]===!0){let{version:n,multihash:o,code:s}=r,i=Hr(o);return t.create(n,s,i)}else return null}static create(e,r,n){if(typeof r!="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(r!==Fe)throw new Error(`Version 0 CID must use dag-pb (code: ${Fe}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=nn(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Fe,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=q(e.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new be(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[p,h]=Ue(e.subarray(r));return r+=h,p},o=n(),s=Fe;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),f=n(),m=r+f,c=m-i;return{version:o,codec:s,multihashCode:a,digestSize:f,multihashSize:c,size:m}}static parse(e,r){let[n,o]=Ri(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Dt(s).set(n,e),s}},Ri=(t,e)=>{switch(t[0]){case"Q":{let r=e||B;return[B.prefix,r.decode(`${B.prefix}${t}`)]}case B.prefix:{let r=e||B;return[B.prefix,r.decode(t)]}case le.prefix:{let r=e||le;return[le.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},$i=(t,e,r)=>{let{prefix:n}=r;if(n!==B.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o},zi=(t,e,r)=>{let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o},Fe=112,Bi=18,nn=(t,e,r)=>{let n=me(t),o=n+me(e),s=new Uint8Array(o+r.byteLength);return he(t,s,0),he(e,s,n),s.set(r,o),s},Vi=Symbol.for("@ipld/js-cid/CID");var Ft={...mt,...bt,...wt,...gt,...xt,...yt,...vt,...Ct,...Et,...St},vu={...Tt,...Ut};function we(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Qe(t=0){return globalThis.Buffer?.allocUnsafe!=null?we(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function sn(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var on=sn("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Nt=sn("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Qe(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Wi={utf8:on,"utf-8":on,hex:Ft.base16,latin1:Nt,ascii:Nt,binary:Nt,...Ft},Je=Wi;function L(t,e="utf8"){let r=Je[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function j(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=Qe(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return we(r)}var ye=ne(kt(),1);var Ge=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let f=a==="0",m=2**(8*o)-1;for(;;){let c=this.readAtomically(()=>{let p=this.readChar();if(p===void 0)return;let h=Number.parseInt(p,e);if(!Number.isNaN(h))return h});if(c===void 0)break;if(s*=e,s+=c,s>m||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&f&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let o=n*2;if(n<r.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return r[o]=i[0],r[o+1]=i[1],r[o+2]=i[2],r[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=e(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var bn=45,ra=15,ge=new Ge;function Mt(t){if(!(t.length>ra))return ge.new(t).parseWith(()=>ge.readIPv4Addr())}function Rt(t){if(!(t.length>bn))return ge.new(t).parseWith(()=>ge.readIPv6Addr())}function He(t){if(!(t.length>bn))return ge.new(t).parseWith(()=>ge.readIPAddr())}var Ju=parseInt("0xFFFF",16),Gu=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var $t={};E($t,{identity:()=>aa});var aa=ae({prefix:"\0",name:"identity",encode:t=>Tr(t),decode:t=>Pr(t)});var zt={};E(zt,{base2:()=>ca});var ca=P({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Bt={};E(Bt,{base8:()=>ua});var ua=P({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Vt={};E(Vt,{base10:()=>pa});var pa=_({prefix:"9",name:"base10",alphabet:"0123456789"});var Wt={};E(Wt,{base16:()=>da,base16upper:()=>fa});var da=P({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),fa=P({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var qt={};E(qt,{base36:()=>la,base36upper:()=>ha});var la=_({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ha=_({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var jt={};E(jt,{base256emoji:()=>xa});var xn=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}"),ma=xn.reduce((t,e,r)=>(t[r]=e,t),[]),ba=xn.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function wa(t){return t.reduce((e,r)=>(e+=ma[r],e),"")}function ga(t){let e=[];for(let r of t){let n=ba[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var xa=ae({prefix:"\u{1F680}",name:"base256emoji",encode:wa,decode:ga});var Jt={};E(Jt,{sha256:()=>ya,sha512:()=>va});var Qt=({name:t,code:e,encode:r})=>new _t(t,e,r),_t=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Z(this.code,r):r.then(n=>Z(this.code,n))}else throw Error("Unknown type, must be binary type")}};var vn=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ya=Qt({name:"sha2-256",code:18,encode:vn("SHA-256")}),va=Qt({name:"sha2-512",code:19,encode:vn("SHA-512")});var Gt={};E(Gt,{identity:()=>Sa});var Cn=0,Ca="identity",En=W,Ea=t=>Z(Cn,En(t)),Sa={code:Cn,name:Ca,encode:En,digest:Ea};var Pp=new TextEncoder,Tp=new TextDecoder;var Sn={...$t,...zt,...Bt,...Vt,...Wt,...st,...qt,...it,...ct,...jt},Lp={...Jt,...Gt};function Ne(t,e="utf8"){let r=Je[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?we(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var V=ne(kt(),1);function An(t){return!!Mt(t)}function In(t){return!!Rt(t)}function Xe(t){return!!He(t)}var Pn=An,Pa=In,Ht=function(t){let e=0;if(t=t.toString().trim(),Pn(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Pa(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Pn(r[n]),i;s&&(i=Ht(r[n]),r[n]=L(i.slice(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,L(i.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);o[e++]=s>>8&255,o[e++]=s&255}return o}throw new Error("invalid ip address")},Tn=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let o=[];for(let s=0;s<r;s++)o.push(t[e+s]);return o.join(".")}if(r===16){let o=[];for(let s=0;s<r;s+=2)o.push(n.getUint16(e+s).toString(16));return o.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xe={},Xt={},Ua=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Ua.forEach(t=>{let e=Da(...t);Xt[e.code]=e,xe[e.name]=e});function Da(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function w(t){if(typeof t=="number"){if(Xt[t]!=null)return Xt[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(xe[t]!=null)return xe[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var Yp=w("ip4"),ed=w("ip6"),td=w("ipcidr");function Zt(t,e){switch(w(t).code){case 4:case 41:return Na(e);case 42:return Fn(e);case 6:case 273:case 33:case 132:return Ln(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Fn(e);case 421:return Ma(e);case 444:return Nn(e);case 445:return Nn(e);case 466:return ka(e);default:return L(e,"base16")}}function Yt(t,e){switch(w(t).code){case 4:return Un(e);case 41:return Un(e);case 42:return Dn(e);case 6:case 273:case 33:case 132:return er(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Dn(e);case 421:return La(e);case 444:return Ra(e);case 445:return $a(e);case 466:return Oa(e);default:return Ne(e,"base16")}}var Kt=Object.values(Sn).map(t=>t.decoder),Fa=function(){let t=Kt[0].or(Kt[1]);return Kt.slice(2).forEach(e=>t=t.or(e)),t}();function Un(t){if(!Xe(t))throw new Error("invalid ip address");return Ht(t)}function Na(t){let e=Tn(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Xe(e))throw new Error("invalid ip address");return e}function er(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Ln(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Dn(t){let e=Ne(t),r=Uint8Array.from(V.default.encode(e.length));return j([r,e],r.length+e.length)}function Fn(t){let e=V.default.decode(t);if(t=t.slice(V.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return L(t)}function La(t){let e;t[0]==="Q"||t[0]==="1"?e=qe(N.decode(`z${t}`)).bytes:e=Q.parse(t).multihash.bytes;let r=Uint8Array.from(V.default.encode(e.length));return j([r,e],r.length+e.length)}function Oa(t){let e=Fa.decode(t),r=Uint8Array.from(V.default.encode(e.length));return j([r,e],r.length+e.length)}function ka(t){let e=V.default.decode(t),r=t.slice(V.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+L(r,"base64url")}function Ma(t){let e=V.default.decode(t),r=t.slice(V.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return L(r,"base58btc")}function Ra(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=z.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=er(n);return j([r,o],r.length+o.length)}function $a(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=z.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=er(n);return j([r,o],r.length+o.length)}function Nn(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=L(e,"base32"),o=Ln(r);return`${n}:${o}`}function On(t){t=tr(t);let e=[],r=[],n=null,o=t.split("/").slice(1);if(o.length===1&&o[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<o.length;s++){let i=o[s],a=w(i);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=o.length)throw Mn("invalid address: "+t);if(a.path===!0){n=tr(o.slice(s).join("/")),e.push([a.code,Yt(a.code,n)]),r.push([a.code,n]);break}let f=Yt(a.code,o[s]);e.push([a.code,f]),r.push([a.code,Zt(a.code,f)])}return{string:kn(r),bytes:nr(e),tuples:e,stringTuples:r,path:n}}function rr(t){let e=[],r=[],n=null,o=0;for(;o<t.length;){let s=ye.default.decode(t,o),i=ye.default.decode.bytes??0,a=w(s),f=za(a,t.slice(o+i));if(f===0){e.push([s]),r.push([s]),o+=i;continue}let m=t.slice(o+i,o+i+f);if(o+=f+i,o>t.length)throw Mn("Invalid address Uint8Array: "+L(t,"base16"));e.push([s,m]);let c=Zt(s,m);if(r.push([s,c]),a.path===!0){n=c;break}}return{bytes:Uint8Array.from(t),string:kn(r),tuples:e,stringTuples:r,path:n}}function kn(t){let e=[];return t.map(r=>{let n=w(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),tr(e.join("/"))}function nr(t){return j(t.map(e=>{let r=w(e[0]),n=Uint8Array.from(ye.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=j([n,e[1]])),n}))}function za(t,e){return t.size>0?t.size/8:t.size===0?0:ye.default.decode(e)+(ye.default.decode.bytes??0)}function tr(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Mn(t){return new Error("Error parsing address: "+t)}var Ba=Symbol.for("nodejs.util.inspect.custom"),Va=[w("dns").code,w("dns4").code,w("dns6").code,w("dnsaddr").code],Wa=new Map,Rn=Symbol.for("@multiformats/js-multiaddr/multiaddr");function qa(t){return!!t?.[Rn]}var or=class t{bytes;#t;#e;#r;#n;[Rn]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=rr(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=On(e)}else if(qa(e))r=rr(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let e,r,n,o,s="",i=w("tcp"),a=w("udp"),f=w("ip4"),m=w("ip6"),c=w("dns6"),p=w("ip6zone");for(let[U,d]of this.stringTuples())U===p.code&&(s=`%${d??""}`),Va.includes(U)&&(r=i.name,o=443,n=`${d??""}${s}`,e=U===c.code?6:4),(U===i.code||U===a.code)&&(r=w(U).name,o=parseInt(d??"")),(U===f.code||U===m.code)&&(r=w(U).name,n=`${d??""}${s}`,e=U===m.code?6:4);if(e==null||r==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:r,port:o}}protos(){return this.#e.map(([e])=>Object.assign({},w(e)))}protoCodes(){return this.#e.map(([e])=>e)}protoNames(){return this.#e.map(([e])=>w(e).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,o))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(nr(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===xe.p2p.code&&e.push([n,o]),n===xe["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?L(N.decode(`z${n}`),"base58btc"):L(Q.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return $r(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Wa.get(r.name);if(n==null)throw new Ve(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[Ba](){return`Multiaddr(${this.#t})`}};function ve(t){return new or(t)}function $n(t){let e;try{e=w("sni").code}catch{return null}for(let[r,n]of t)if(r===e&&n!==void 0)return n;return null}function zn(t){return t.some(([e,r])=>e===w("tls").code)}function R(t,e,r){let n=Bn[w(t).name];if(n===void 0)throw new Error(`Can't interpret protocol ${w(t).name}`);let o=n(e,r);return t===w("ip6").code?`[${o}]`:o}var Bn={ip4:(t,e)=>t,ip6:(t,e)=>e.length===0?t:`[${t}]`,tcp:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`tcp://${R(r[0],r[1]??"",e)}:${t}`},udp:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`udp://${R(r[0],r[1]??"",e)}:${t}`},dnsaddr:(t,e)=>t,dns4:(t,e)=>t,dns6:(t,e)=>t,dns:(t,e)=>t,ipfs:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${R(r[0],r[1]??"",e)}/ipfs/${t}`},p2p:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${R(r[0],r[1]??"",e)}/p2p/${t}`},http:(t,e)=>{let r=zn(e),n=$n(e);if(r&&n!==null)return`https://${n}`;let o=r?"https://":"http://",s=e.pop();if(s===void 0)throw new Error("Unexpected end of multiaddr");let i=R(s[0],s[1]??"",e);return i=i.replace("tcp://",""),`${o}${i}`},tls:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return R(r[0],r[1]??"",e)},sni:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return R(r[0],r[1]??"",e)},https:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");let n=R(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`https://${n}`},ws:(t,e)=>{let r=zn(e),n=$n(e);if(r&&n!==null)return`wss://${n}`;let o=r?"wss://":"ws://",s=e.pop();if(s===void 0)throw new Error("Unexpected end of multiaddr");let i=R(s[0],s[1]??"",e);return i=i.replace("tcp://",""),`${o}${i}`},wss:(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");let n=R(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`wss://${n}`},"p2p-websocket-star":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${R(r[0],r[1]??"",e)}/p2p-websocket-star`},"p2p-webrtc-star":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${R(r[0],r[1]??"",e)}/p2p-webrtc-star`},"p2p-webrtc-direct":(t,e)=>{let r=e.pop();if(r===void 0)throw new Error("Unexpected end of multiaddr");return`${R(r[0],r[1]??"",e)}/p2p-webrtc-direct`}};function Vn(t,e){let n=ve(t).stringTuples(),o=n.pop();if(o===void 0)throw new Error("Unexpected end of multiaddr");let s=w(o[0]),i=Bn[s.name];if(i==null)throw new Error(`No interpreter found for ${s.name}`);let a=i(o[1]??"",n);return e?.assumeHttp!==!1&&o[0]===w("tcp").code&&(a=a.replace("tcp://","http://"),(o[1]==="443"||o[1]==="80")&&(o[1]==="443"&&(a=a.replace("http://","https://")),a=a.substring(0,a.lastIndexOf(":")))),a}var Wn=WebSocket;var Qn=ne(jn(),1);function _n(t){return t instanceof ArrayBuffer||t?.constructor?.name==="ArrayBuffer"&&typeof t?.byteLength=="number"}var Jn=t=>{t.binaryType="arraybuffer";let e=async()=>{await new Promise((s,i)=>{if(n){s();return}if(o!=null){i(o);return}let a=c=>{t.removeEventListener("open",f),t.removeEventListener("error",m),c()},f=()=>{a(s)},m=c=>{a(()=>{i(c.error??new Error(`connect ECONNREFUSED ${t.url}`))})};t.addEventListener("open",f),t.addEventListener("error",m)})},r=async function*(){let s=new Qn.EventIterator(({push:i,stop:a,fail:f})=>{let m=p=>{let h=null;typeof p.data=="string"&&(h=Ne(p.data)),_n(p.data)&&(h=new Uint8Array(p.data)),p.data instanceof Uint8Array&&(h=p.data),h!=null&&i(h)},c=p=>{f(p.error??new Error("Socket error"))};return t.addEventListener("message",m),t.addEventListener("error",c),t.addEventListener("close",a),()=>{t.removeEventListener("message",m),t.removeEventListener("error",c),t.removeEventListener("close",a)}},{highWaterMark:1/0});await e();for await(let i of s)yield _n(i)?new Uint8Array(i):i}(),n=t.readyState===1,o;return t.addEventListener("open",()=>{n=!0,o=null}),t.addEventListener("close",()=>{n=!1,o=null}),t.addEventListener("error",s=>{n||(o=s.error??new Error(`connect ECONNREFUSED ${t.url}`))}),Object.assign(r,{connected:e})};var Gn=async t=>{if(t.readyState>=2)throw new Error("socket closed");t.readyState!==1&&await new Promise((e,r)=>{function n(){t.removeEventListener("open",o),t.removeEventListener("error",s)}function o(){n(),e()}function s(i){n(),r(i.error??new Error(`connect ECONNREFUSED ${t.url}`))}t.addEventListener("open",o),t.addEventListener("error",s)})};var Hn=(t,e)=>(e=e??{},e.closeOnEnd=e.closeOnEnd!==!1,async n=>{for await(let o of n){try{await Gn(t)}catch(s){if(s.message==="socket closed")break;throw s}t.send(o)}e.closeOnEnd!=null&&t.readyState<=1&&await new Promise((o,s)=>{t.addEventListener("close",i=>{if(i.wasClean||i.code===1006)o();else{let a=Object.assign(new Error("ws error"),{event:i});s(a)}}),setTimeout(()=>{t.close()})})});var Xn=(t,e)=>{e=e??{};let r=Jn(t),n=e.remoteAddress,o=e.remotePort;if(t.url!=null)try{let i=new URL(t.url);n=i.hostname,o=parseInt(i.port,10)}catch{}if(n==null||o==null)throw new Error("Remote connection did not have address and/or port");return{sink:Hn(t,e),source:r,connected:async()=>{await r.connected()},close:async()=>{(t.readyState===t.CONNECTING||t.readyState===t.OPEN)&&await new Promise(i=>{t.addEventListener("close",()=>{i()}),t.close()})},destroy:()=>{t.terminate!=null?t.terminate():t.close()},remoteAddress:n,remotePort:o,socket:t}};var oo=ne(no(),1),ec={http:"ws",https:"wss"},tc="ws",so=(t,e)=>(0,oo.relative)(t,e,ec,tc);function io(t,e){let r=typeof window>"u"?"":window.location;e=e??{};let n=so(t,r.toString()),o=new Wn(n,e.websocket);return Xn(o,e)}function ur(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var uo=ne(co(),1),nc=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,po=(0,uo.default)(),fo=nc&&!po;var _d=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!po,lo=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Qd=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Jd=typeof navigator<"u"&&navigator.product==="ReactNative";var oc=u("dns4"),sc=u("dns6"),ic=u("dnsaddr"),H=F(u("dns"),ic,oc,sc),Ye=F(u("ip4"),u("ip6")),Ce=F(l(Ye,u("tcp")),l(H,u("tcp"))),et=l(Ye,u("udp")),ac=l(et,u("utp")),cc=l(et,u("quic")),uc=l(et,u("quic-v1")),pr=F(l(Ce,u("ws")),l(H,u("ws"))),Ee=F(l(pr,u("p2p")),pr),dr=F(l(Ce,u("wss")),l(H,u("wss")),l(Ce,u("tls"),u("ws")),l(H,u("tls"),u("ws"))),te=F(l(dr,u("p2p")),dr),fr=F(l(Ce,u("http")),l(Ye,u("http")),l(H,u("http"))),lr=F(l(Ce,u("https")),l(Ye,u("https")),l(H,u("https"))),ho=l(et,u("webrtc-direct"),u("certhash")),wo=F(l(ho,u("p2p")),ho),mo=l(uc,u("webtransport"),u("certhash"),u("certhash")),go=F(l(mo,u("p2p")),mo),xo=F(l(Ee,u("p2p-webrtc-star"),u("p2p")),l(te,u("p2p-webrtc-star"),u("p2p")),l(Ee,u("p2p-webrtc-star")),l(te,u("p2p-webrtc-star"))),Xd=F(l(Ee,u("p2p-websocket-star"),u("p2p")),l(te,u("p2p-websocket-star"),u("p2p")),l(Ee,u("p2p-websocket-star")),l(te,u("p2p-websocket-star"))),yo=F(l(fr,u("p2p-webrtc-direct"),u("p2p")),l(lr,u("p2p-webrtc-direct"),u("p2p")),l(fr,u("p2p-webrtc-direct")),l(lr,u("p2p-webrtc-direct"))),re=F(pr,dr,fr,lr,xo,yo,Ce,ac,cc,H,wo,go),Kd=F(l(re,u("p2p-stardust"),u("p2p")),l(re,u("p2p-stardust"))),G=F(l(re,u("p2p")),xo,yo,wo,go,u("p2p")),bo=F(l(G,u("p2p-circuit"),G),l(G,u("p2p-circuit")),l(u("p2p-circuit"),G),l(re,u("p2p-circuit")),l(u("p2p-circuit"),re),u("p2p-circuit")),vo=()=>F(l(bo,vo),bo),ee=vo(),Zd=F(l(ee,G,ee),l(G,ee),l(ee,G),ee,G);var Yd=F(l(ee,u("webrtc"),u("p2p")),l(ee,u("webrtc")),l(re,u("webrtc"),u("p2p")),l(re,u("webrtc")),u("webrtc"));function Co(t){function e(r){let n;try{n=ve(r)}catch{return!1}let o=t(n.protoNames());return o===null?!1:o===!0||o===!1?o:o.length===0}return e}function l(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(o=>(n=typeof o=="function"?o().partialMatch(r):o.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Co(e),partialMatch:e}}function F(...t){function e(n){let o=null;return t.some(s=>{let i=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return i!=null?(o=i,!0):!1}),o}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:Co(e),partialMatch:e}}function u(t){let e=t;function r(o){let s;try{s=ve(o)}catch{return!1}let i=s.protoNames();return i.length===1&&i[0]===e}function n(o){return o.length===0?null:o[0]===e?o.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}function Ao(t){return t.filter(e=>{if(e.protoCodes().includes(290))return!1;let r=e.decapsulateCode(421);return Ee.matches(r)||te.matches(r)})}function Io(t){return t.filter(e=>{if(e.protoCodes().includes(290))return!1;let r=e.decapsulateCode(421);return te.matches(r)})}function Po(){throw new Error("WebSocket Servers can not be created in the browser!")}var ke=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function To(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function hr(t,e,r){let n=r??{},o=To(t);async function*s(){let i,a=()=>{i?.()};for(e.addEventListener("abort",a);;){let f;try{if(e.aborted){let{abortMessage:c,abortCode:p}=n;throw new ke(c,p)}let m=new Promise((c,p)=>{i=()=>{let{abortMessage:h,abortCode:U}=n;p(new ke(h,U))}});f=await Promise.race([m,o.next()]),i=null}catch(m){e.removeEventListener("abort",a);let c=m.type==="aborted"&&e.aborted;if(c&&n.onAbort!=null&&n.onAbort(t),typeof o.return=="function")try{let p=o.return();p instanceof Promise&&p.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(p){n.onReturnError!=null&&n.onReturnError(p)}if(c&&n.returnOnAbort===!0)return;throw m}if(f.done===!0)break;yield f.value}e.removeEventListener("abort",a)}return s()}var mr=Be("libp2p:websockets:socket");function Uo(t,e,r){r=r??{};let n={async sink(o){r?.signal!=null&&(o=hr(o,r.signal));try{await t.sink(o)}catch(s){s.type!=="aborted"&&mr.error(s)}},source:r.signal!=null?hr(t.source,r.signal):t.source,remoteAddr:e,timeline:{open:Date.now()},async close(o={}){let s=Date.now();o.signal=o.signal??AbortSignal.timeout(500);let i=()=>{let{host:a,port:f}=n.remoteAddr.toOptions();mr("timeout closing stream to %s:%s after %dms, destroying it manually",a,f,Date.now()-s),this.abort(new Re("Socket close timeout","ERR_SOCKET_CLOSE_TIMEOUT"))};o.signal.addEventListener("abort",i);try{await t.close()}catch(a){this.abort(a)}finally{o.signal.removeEventListener("abort",i),n.timeline.close=Date.now()}},abort(o){let{host:s,port:i}=n.remoteAddr.toOptions();mr("timeout closing stream to %s:%s due to error",s,i,o),t.destroy(),n.timeline.close=Date.now()}};return t.socket.addEventListener("close",()=>{n.timeline.close==null&&(n.timeline.close=Date.now())},{once:!0}),n}var X=Be("libp2p:websockets"),br=class{init;constructor(e){this.init=e}[Symbol.toStringTag]="@libp2p/websockets";[xr]=!0;async dial(e,r){X("dialing %s",e),r=r??{};let n=await this._connect(e,r),o=Uo(n,e);X("new outbound connection %s",o.remoteAddr);let s=await r.upgrader.upgradeOutbound(o);return X("outbound connection %s upgraded",o.remoteAddr),s}async _connect(e,r){if(r?.signal?.aborted===!0)throw new Se;let n=e.toOptions();X("dialing %s:%s",n.host,n.port);let o=ur(),s=m=>{X.error("connection error:",m),o.reject(m)},i=io(Vn(e),this.init);if(i.socket.on!=null?i.socket.on("error",s):i.socket.onerror=s,r.signal==null)return await Promise.race([i.connected(),o.promise]),X("connected %s",e),i;let a,f=new Promise((m,c)=>{if(a=()=>{c(new Se),i.close().catch(p=>{X.error("error closing raw socket",p)})},r?.signal?.aborted===!0){a();return}r?.signal?.addEventListener("abort",a)});try{await Promise.race([f,o.promise,i.connected()])}finally{a!=null&&r?.signal?.removeEventListener("abort",a)}return X("connected %s",e),i}createListener(e){return Po({...this.init,...e})}filter(e){return e=Array.isArray(e)?e:[e],this.init?.filter!=null?this.init?.filter(e):fo||lo?Io(e):Ao(e)}};function lc(t={}){return()=>new br(t)}return ko(hc);})();
3
3
  return Libp2PWebsockets}));
@@ -3,5 +3,5 @@ export declare const CODE_CIRCUIT = 290;
3
3
  export declare const CODE_TCP = 6;
4
4
  export declare const CODE_WS = 477;
5
5
  export declare const CODE_WSS = 478;
6
- export declare const CLOSE_TIMEOUT = 2000;
6
+ export declare const CLOSE_TIMEOUT = 500;
7
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,MAAM,CAAA;AAC3B,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B,eAAO,MAAM,QAAQ,IAAI,CAAA;AACzB,eAAO,MAAM,OAAO,MAAM,CAAA;AAC1B,eAAO,MAAM,QAAQ,MAAM,CAAA;AAG3B,eAAO,MAAM,aAAa,OAAO,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,MAAM,CAAA;AAC3B,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B,eAAO,MAAM,QAAQ,IAAI,CAAA;AACzB,eAAO,MAAM,OAAO,MAAM,CAAA;AAC1B,eAAO,MAAM,QAAQ,MAAM,CAAA;AAG3B,eAAO,MAAM,aAAa,MAAM,CAAA"}
@@ -5,5 +5,5 @@ export const CODE_TCP = 6;
5
5
  export const CODE_WS = 477;
6
6
  export const CODE_WSS = 478;
7
7
  // Time to wait for a connection to close gracefully before destroying it manually
8
- export const CLOSE_TIMEOUT = 2000;
8
+ export const CLOSE_TIMEOUT = 500;
9
9
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAA;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;AAE3B,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAA;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;AAE3B,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAInD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAID,wBAAgB,cAAc,CAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAqDlI"}
1
+ {"version":3,"file":"socket-to-conn.d.ts","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAInD,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAID,wBAAgB,cAAc,CAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAoElI"}
@@ -1,6 +1,6 @@
1
+ import { CodeError } from '@libp2p/interface/errors';
1
2
  import { logger } from '@libp2p/logger';
2
3
  import { abortableSource } from 'abortable-iterator';
3
- import pTimeout from 'p-timeout';
4
4
  import { CLOSE_TIMEOUT } from './constants.js';
5
5
  const log = logger('libp2p:websockets:socket');
6
6
  // Convert a stream into a MultiaddrConnection
@@ -24,21 +24,31 @@ export function socketToMaConn(stream, remoteAddr, options) {
24
24
  source: (options.signal != null) ? abortableSource(stream.source, options.signal) : stream.source,
25
25
  remoteAddr,
26
26
  timeline: { open: Date.now() },
27
- async close() {
27
+ async close(options = {}) {
28
28
  const start = Date.now();
29
+ options.signal = options.signal ?? AbortSignal.timeout(CLOSE_TIMEOUT);
30
+ const listener = () => {
31
+ const { host, port } = maConn.remoteAddr.toOptions();
32
+ log('timeout closing stream to %s:%s after %dms, destroying it manually', host, port, Date.now() - start);
33
+ this.abort(new CodeError('Socket close timeout', 'ERR_SOCKET_CLOSE_TIMEOUT'));
34
+ };
35
+ options.signal.addEventListener('abort', listener);
29
36
  try {
30
- await pTimeout(stream.close(), {
31
- milliseconds: CLOSE_TIMEOUT
32
- });
37
+ await stream.close();
33
38
  }
34
39
  catch (err) {
35
- const { host, port } = maConn.remoteAddr.toOptions();
36
- log('timeout closing stream to %s:%s after %dms, destroying it manually', host, port, Date.now() - start);
37
- stream.destroy();
40
+ this.abort(err);
38
41
  }
39
42
  finally {
43
+ options.signal.removeEventListener('abort', listener);
40
44
  maConn.timeline.close = Date.now();
41
45
  }
46
+ },
47
+ abort(err) {
48
+ const { host, port } = maConn.remoteAddr.toOptions();
49
+ log('timeout closing stream to %s:%s due to error', host, port, err);
50
+ stream.destroy();
51
+ maConn.timeline.close = Date.now();
42
52
  }
43
53
  };
44
54
  stream.socket.addEventListener('close', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM9C,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAM9C,8CAA8C;AAC9C,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAE,MAAuB,EAAE,UAAqB,EAAE,OAA6B;IAC3G,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,IAAI,CAAE,MAAM;YAChB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC7B,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACjD;YAED,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAC1B;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACf;aACF;QACH,CAAC;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;QAEjG,UAAU;QAEV,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAE9B,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAExB,IAAI;gBACF,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;oBAC7B,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAA;aACH;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;gBACpD,GAAG,CAAC,oEAAoE,EACtE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;gBAEjC,MAAM,CAAC,OAAO,EAAE,CAAA;aACjB;oBAAS;gBACR,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACnC;QACH,CAAC;KACF,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC3C,wDAAwD;QACxD,kEAAkE;QAClE,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;SACnC;IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAElB,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"socket-to-conn.js","sourceRoot":"","sources":["../../src/socket-to-conn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM9C,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAM9C,8CAA8C;AAC9C,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAE,MAAuB,EAAE,UAAqB,EAAE,OAA6B;IAC3G,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAEvB,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,IAAI,CAAE,MAAM;YAChB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC7B,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACjD;YAED,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAC1B;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACf;aACF;QACH,CAAC;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;QAEjG,UAAU;QAEV,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;QAE9B,KAAK,CAAC,KAAK,CAAE,UAAwB,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACxB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YAErE,MAAM,QAAQ,GAAG,GAAS,EAAE;gBAC1B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;gBACpD,GAAG,CAAC,oEAAoE,EACtE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;gBAEjC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC,CAAA;YAC/E,CAAC,CAAA;YAED,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAElD,IAAI;gBACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;aACrB;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aAChB;oBAAS;gBACR,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;aACnC;QACH,CAAC;QAED,KAAK,CAAE,GAAU;YACf,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;YACpD,GAAG,CAAC,8CAA8C,EAChD,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAElB,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACpC,CAAC;KACF,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC3C,wDAAwD;QACxD,kEAAkE;QAClE,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;SACnC;IACH,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAElB,OAAO,MAAM,CAAA;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/websockets",
3
- "version": "6.0.3-05abd49f",
3
+ "version": "6.0.3-1f7e18b0",
4
4
  "description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/transport-websockets#readme",
@@ -68,9 +68,9 @@
68
68
  "test:electron-main": "aegir test -t electron-main -f ./dist/test/node.js --cov"
69
69
  },
70
70
  "dependencies": {
71
- "@libp2p/interface": "0.0.1-05abd49f",
72
- "@libp2p/logger": "2.1.1-05abd49f",
73
- "@libp2p/utils": "3.0.12-05abd49f",
71
+ "@libp2p/interface": "0.0.1-1f7e18b0",
72
+ "@libp2p/logger": "2.1.1-1f7e18b0",
73
+ "@libp2p/utils": "3.0.12-1f7e18b0",
74
74
  "@multiformats/mafmt": "^12.1.2",
75
75
  "@multiformats/multiaddr": "^12.1.3",
76
76
  "@multiformats/multiaddr-to-uri": "^9.0.2",
@@ -78,27 +78,23 @@
78
78
  "abortable-iterator": "^5.0.1",
79
79
  "it-ws": "^6.0.0",
80
80
  "p-defer": "^4.0.0",
81
- "p-timeout": "^6.0.0",
82
81
  "wherearewe": "^2.0.1",
83
82
  "ws": "^8.12.1"
84
83
  },
85
84
  "devDependencies": {
86
- "@libp2p/interface-compliance-tests": "3.0.7-05abd49f",
87
- "aegir": "^39.0.10",
85
+ "@libp2p/interface-compliance-tests": "3.0.7-1f7e18b0",
86
+ "aegir": "^40.0.1",
88
87
  "is-loopback-addr": "^2.0.1",
89
88
  "it-all": "^3.0.1",
90
89
  "it-drain": "^3.0.2",
91
90
  "it-goodbye": "^4.0.1",
92
91
  "it-pipe": "^3.0.1",
93
92
  "it-stream-types": "^2.0.1",
94
- "p-wait-for": "^5.0.0",
93
+ "p-wait-for": "^5.0.2",
95
94
  "uint8arraylist": "^2.3.2",
96
- "uint8arrays": "^4.0.3"
95
+ "uint8arrays": "^4.0.4"
97
96
  },
98
97
  "browser": {
99
98
  "./dist/src/listener.js": "./dist/src/listener.browser.js"
100
- },
101
- "typedoc": {
102
- "entryPoint": "./src/index.ts"
103
99
  }
104
100
  }
package/src/constants.ts CHANGED
@@ -7,4 +7,4 @@ export const CODE_WS = 477
7
7
  export const CODE_WSS = 478
8
8
 
9
9
  // Time to wait for a connection to close gracefully before destroying it manually
10
- export const CLOSE_TIMEOUT = 2000
10
+ export const CLOSE_TIMEOUT = 500
@@ -1,6 +1,6 @@
1
+ import { CodeError } from '@libp2p/interface/errors'
1
2
  import { logger } from '@libp2p/logger'
2
3
  import { abortableSource } from 'abortable-iterator'
3
- import pTimeout from 'p-timeout'
4
4
  import { CLOSE_TIMEOUT } from './constants.js'
5
5
  import type { AbortOptions } from '@libp2p/interface'
6
6
  import type { MultiaddrConnection } from '@libp2p/interface/connection'
@@ -39,22 +39,37 @@ export function socketToMaConn (stream: DuplexWebSocket, remoteAddr: Multiaddr,
39
39
 
40
40
  timeline: { open: Date.now() },
41
41
 
42
- async close () {
42
+ async close (options: AbortOptions = {}) {
43
43
  const start = Date.now()
44
+ options.signal = options.signal ?? AbortSignal.timeout(CLOSE_TIMEOUT)
44
45
 
45
- try {
46
- await pTimeout(stream.close(), {
47
- milliseconds: CLOSE_TIMEOUT
48
- })
49
- } catch (err) {
46
+ const listener = (): void => {
50
47
  const { host, port } = maConn.remoteAddr.toOptions()
51
48
  log('timeout closing stream to %s:%s after %dms, destroying it manually',
52
49
  host, port, Date.now() - start)
53
50
 
54
- stream.destroy()
51
+ this.abort(new CodeError('Socket close timeout', 'ERR_SOCKET_CLOSE_TIMEOUT'))
52
+ }
53
+
54
+ options.signal.addEventListener('abort', listener)
55
+
56
+ try {
57
+ await stream.close()
58
+ } catch (err: any) {
59
+ this.abort(err)
55
60
  } finally {
61
+ options.signal.removeEventListener('abort', listener)
56
62
  maConn.timeline.close = Date.now()
57
63
  }
64
+ },
65
+
66
+ abort (err: Error): void {
67
+ const { host, port } = maConn.remoteAddr.toOptions()
68
+ log('timeout closing stream to %s:%s due to error',
69
+ host, port, err)
70
+
71
+ stream.destroy()
72
+ maConn.timeline.close = Date.now()
58
73
  }
59
74
  }
60
75