@libp2p/websockets 9.1.4-96f14e429 → 9.1.4-d72b51184

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PWebsockets = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PWebsockets=(()=>{var Xr=Object.create;var we=Object.defineProperty;var Kr=Object.getOwnPropertyDescriptor;var Zr=Object.getOwnPropertyNames;var Yr=Object.getPrototypeOf,en=Object.prototype.hasOwnProperty;var Mt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),C=(t,e)=>{for(var r in e)we(t,r,{get:e[r],enumerable:!0})},Ot=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Zr(e))!en.call(t,o)&&o!==r&&we(t,o,{get:()=>e[o],enumerable:!(n=Kr(e,o))||n.enumerable});return t};var tn=(t,e,r)=>(r=t!=null?Xr(Yr(t)):{},Ot(e||!t||!t.__esModule?we(r,"default",{value:t,enumerable:!0}):r,t)),rn=t=>Ot(we({},"__esModule",{value:!0}),t);var Ur=Mt(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});var At=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}))}}},Ne=class{constructor(e,{highWaterMark:r=100,lowWaterMark:n=1}={}){let o=new At;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)}};De.EventIterator=Ne;De.default=Ne});var Tr=Mt(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});var Ct=Ur();de.EventIterator=Ct.EventIterator;function Vo(t,e,r){return new Ct.EventIterator(({push:n})=>(this.addEventListener(t,n,e),()=>this.removeEventListener(t,n,e)),r)}de.subscribe=Vo;de.default=Ct.EventIterator});var Ko={};C(Ko,{webSockets:()=>Xo});var zt=Symbol.for("@libp2p/transport");var kt;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(kt||(kt={}));var ge=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var be=class extends Error{static name="ConnectionFailedError";constructor(e="Connection failed"){super(e),this.name="ConnectionFailedError"}};var Vt=Symbol.for("@libp2p/service-capabilities"),ts=Symbol.for("@libp2p/service-dependencies");var Re={};C(Re,{base58btc:()=>v,base58flickr:()=>un});var Ps=new Uint8Array(0);function Wt(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}function z(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")}function Bt(t){return new TextEncoder().encode(t)}function _t(t){return new TextDecoder().decode(t)}function nn(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,c=t.charAt(0),w=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function b(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var A=0,Q=0,N=0,$=h.length;N!==$&&h[N]===0;)N++,A++;for(var F=($-N)*l+1>>>0,T=new Uint8Array(F);N!==$;){for(var M=h[N],_=0,D=F-1;(M!==0||_<Q)&&D!==-1;D--,_++)M+=256*T[D]>>>0,T[D]=M%a>>>0,M=M/a>>>0;if(M!==0)throw new Error("Non-zero carry");Q=_,N++}for(var k=F-Q;k!==F&&T[k]===0;)k++;for(var xe=c.repeat(A);k<F;++k)xe+=t.charAt(T[k]);return xe}function P(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var A=0;if(h[A]!==" "){for(var Q=0,N=0;h[A]===c;)Q++,A++;for(var $=(h.length-A)*w+1>>>0,F=new Uint8Array($);h[A];){var T=r[h.charCodeAt(A)];if(T===255)return;for(var M=0,_=$-1;(T!==0||M<N)&&_!==-1;_--,M++)T+=a*F[_]>>>0,F[_]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");N=M,A++}if(h[A]!==" "){for(var D=$-N;D!==$&&F[D]===0;)D++;for(var k=new Uint8Array(Q+($-D)),xe=Q;D!==$;)k[xe++]=F[D++];return k}}}function U(h){var A=P(h);if(A)return A;throw new Error(`Non-${e} character`)}return{encode:b,decodeUnsafe:P,decode:U}}var on=nn,sn=on,jt=sn;var Ve=class{name;prefix;baseEncode;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")}},We=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Qt(this,e)}},Be=class{decoders;constructor(e){this.decoders=e}or(e){return Qt(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Qt(t,e){return new Be({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var _e=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ve(e,r,n),this.decoder=new We(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function J({name:t,prefix:e,encode:r,decode:n}){return new _e(t,e,r,n)}function R({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=jt(r,t);return J({prefix:e,name:t,encode:n,decode:s=>z(o(s))})}function an(t,e,r,n){let o={};for(let l=0;l<e.length;++l)o[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,c=0,w=0;for(let l=0;l<s;++l){let b=o[t[l]];if(b===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|b,a+=r,a>=8&&(a-=8,i[w++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function cn(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s}function y({name:t,prefix:e,bitsPerChar:r,alphabet:n}){return J({prefix:e,name:t,encode(o){return cn(o,n,r)},decode(o){return an(o,n,r,t)}})}var v=R({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),un=R({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var je={};C(je,{base32:()=>V,base32hex:()=>fn,base32hexpad:()=>mn,base32hexpadupper:()=>xn,base32hexupper:()=>hn,base32pad:()=>pn,base32padupper:()=>dn,base32upper:()=>ln,base32z:()=>wn});var V=y({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ln=y({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),pn=y({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),dn=y({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),fn=y({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hn=y({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),mn=y({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),xn=y({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),wn=y({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Qe={};C(Qe,{base36:()=>ie,base36upper:()=>gn});var ie=R({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),gn=R({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var bn=Gt,qt=128,yn=127,vn=~yn,En=Math.pow(2,31);function Gt(t,e,r){e=e||[],r=r||0;for(var n=r;t>=En;)e[r++]=t&255|qt,t/=128;for(;t&vn;)e[r++]=t&255|qt,t>>>=7;return e[r]=t|0,Gt.bytes=r-n+1,e}var Sn=qe,In=128,Ht=127;function qe(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw qe.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Ht)<<o:(i&Ht)*Math.pow(2,o),o+=7}while(i>=In);return qe.bytes=s-n,r}var Pn=Math.pow(2,7),An=Math.pow(2,14),Cn=Math.pow(2,21),Un=Math.pow(2,28),Tn=Math.pow(2,35),Nn=Math.pow(2,42),Dn=Math.pow(2,49),Ln=Math.pow(2,56),$n=Math.pow(2,63),Fn=function(t){return t<Pn?1:t<An?2:t<Cn?3:t<Un?4:t<Tn?5:t<Nn?6:t<Dn?7:t<Ln?8:t<$n?9:10},Mn={encode:bn,decode:Sn,encodingLength:Fn},On=Mn,ae=On;function ce(t,e=0){return[ae.decode(t,e),ae.decode.bytes]}function X(t,e,r=0){return ae.encode(t,e,r),e}function K(t){return ae.encodingLength(t)}function q(t,e){let r=e.byteLength,n=K(t),o=n+K(r),s=new Uint8Array(o+r);return X(t,s,0),X(r,s,n),s.set(e,o),new Z(t,r,e,s)}function ve(t){let e=z(t),[r,n]=ce(e),[o,s]=ce(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Z(r,o,i,e)}function Jt(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Wt(t.bytes,r.bytes)}}var Z=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};function Xt(t,e){let{bytes:r,version:n}=t;switch(n){case 0:return zn(r,He(t),e??v.encoder);default:return Vn(r,He(t),e??V.encoder)}}var Kt=new WeakMap;function He(t){let e=Kt.get(t);if(e==null){let r=new Map;return Kt.set(t,r),r}return e}var j=class t{code;version;multihash;bytes;"/";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!==ue)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Wn)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=q(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!=null&&e.code===n.code&&e.version===n.version&&Jt(e.multihash,n.multihash)}toString(e){return Xt(this,e)}toJSON(){return{"/":Xt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let 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??Zt(n,o,s.bytes))}else if(r[Bn]===!0){let{version:n,multihash:o,code:s}=r,i=ve(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!==ue)throw new Error(`Version 0 CID must use dag-pb (code: ${ue}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Zt(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,ue,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=z(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 Z(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[b,P]=ce(e.subarray(r));return r+=P,b},o=n(),s=ue;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(),c=n(),w=r+c,l=w-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:w}}static parse(e,r){let[n,o]=kn(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 He(s).set(n,e),s}};function kn(t,e){switch(t[0]){case"Q":{let r=e??v;return[v.prefix,r.decode(`${v.prefix}${t}`)]}case v.prefix:{let r=e??v;return[v.prefix,r.decode(t)]}case V.prefix:{let r=e??V;return[V.prefix,r.decode(t)]}case ie.prefix:{let r=e??ie;return[ie.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function zn(t,e,r){let{prefix:n}=r;if(n!==v.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}function Vn(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}var ue=112,Wn=18;function Zt(t,e,r){let n=K(t),o=n+K(e),s=new Uint8Array(o+r.byteLength);return X(t,s,0),X(e,s,n),s.set(r,o),s}var Bn=Symbol.for("@ipld/js-cid/CID");function Yt(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 Ge={};C(Ge,{base10:()=>_n});var _n=R({prefix:"9",name:"base10",alphabet:"0123456789"});var Je={};C(Je,{base16:()=>Rn,base16upper:()=>jn});var Rn=y({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),jn=y({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Xe={};C(Xe,{base2:()=>Qn});var Qn=y({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ke={};C(Ke,{base256emoji:()=>Xn});var er=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}"),qn=er.reduce((t,e,r)=>(t[r]=e,t),[]),Hn=er.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function Gn(t){return t.reduce((e,r)=>(e+=qn[r],e),"")}function Jn(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Hn[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var Xn=J({prefix:"\u{1F680}",name:"base256emoji",encode:Gn,decode:Jn});var Ye={};C(Ye,{base64:()=>Kn,base64pad:()=>Zn,base64url:()=>Ze,base64urlpad:()=>Yn});var Kn=y({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zn=y({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ze=y({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Yn=y({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var et={};C(et,{base8:()=>eo});var eo=y({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var tt={};C(tt,{identity:()=>to});var to=J({prefix:"\0",name:"identity",encode:t=>_t(t),decode:t=>Bt(t)});var Ks=new TextEncoder,Zs=new TextDecoder;var rt={};C(rt,{identity:()=>io});var tr=0,oo="identity",rr=z;function so(t){return q(tr,rr(t))}var io={code:tr,name:oo,encode:rr,digest:so};var st={};C(st,{sha256:()=>ao,sha512:()=>co});function ot({name:t,code:e,encode:r}){return new nt(t,e,r)}var nt=class{name;code;encode;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?q(this.code,r):r.then(n=>q(this.code,n))}else throw Error("Unknown type, must be binary type")}};function or(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var ao=ot({name:"sha2-256",code:18,encode:or("SHA-256")}),co=ot({name:"sha2-512",code:19,encode:or("SHA-512")});var le={...tt,...Xe,...et,...Ge,...Je,...je,...Qe,...Re,...Ye,...Ke},pi={...st,...rt};function ee(t=0){return new Uint8Array(t)}function ir(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var sr=ir("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),it=ir("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=ee(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),uo={utf8:sr,"utf-8":sr,hex:le.base16,latin1:it,ascii:it,binary:it,...le},Ee=uo;function I(t,e="utf8"){let r=Ee[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}var lo=Math.pow(2,7),po=Math.pow(2,14),fo=Math.pow(2,21),at=Math.pow(2,28),ct=Math.pow(2,35),ut=Math.pow(2,42),lt=Math.pow(2,49),m=128,E=127;function O(t){if(t<lo)return 1;if(t<po)return 2;if(t<fo)return 3;if(t<at)return 4;if(t<ct)return 5;if(t<ut)return 6;if(t<lt)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function ho(t,e,r=0){switch(O(t)){case 8:e[r++]=t&255|m,t/=128;case 7:e[r++]=t&255|m,t/=128;case 6:e[r++]=t&255|m,t/=128;case 5:e[r++]=t&255|m,t/=128;case 4:e[r++]=t&255|m,t>>>=7;case 3:e[r++]=t&255|m,t>>>=7;case 2:e[r++]=t&255|m,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function mo(t,e,r=0){switch(O(t)){case 8:e.set(r++,t&255|m),t/=128;case 7:e.set(r++,t&255|m),t/=128;case 6:e.set(r++,t&255|m),t/=128;case 5:e.set(r++,t&255|m),t/=128;case 4:e.set(r++,t&255|m),t>>>=7;case 3:e.set(r++,t&255|m),t>>>=7;case 2:e.set(r++,t&255|m),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function xo(t,e){let r=t[e],n=0;if(n+=r&E,r<m||(r=t[e+1],n+=(r&E)<<7,r<m)||(r=t[e+2],n+=(r&E)<<14,r<m)||(r=t[e+3],n+=(r&E)<<21,r<m)||(r=t[e+4],n+=(r&E)*at,r<m)||(r=t[e+5],n+=(r&E)*ct,r<m)||(r=t[e+6],n+=(r&E)*ut,r<m)||(r=t[e+7],n+=(r&E)*lt,r<m))return n;throw new RangeError("Could not decode varint")}function wo(t,e){let r=t.get(e),n=0;if(n+=r&E,r<m||(r=t.get(e+1),n+=(r&E)<<7,r<m)||(r=t.get(e+2),n+=(r&E)<<14,r<m)||(r=t.get(e+3),n+=(r&E)<<21,r<m)||(r=t.get(e+4),n+=(r&E)*at,r<m)||(r=t.get(e+5),n+=(r&E)*ct,r<m)||(r=t.get(e+6),n+=(r&E)*ut,r<m)||(r=t.get(e+7),n+=(r&E)*lt,r<m))return n;throw new RangeError("Could not decode varint")}function te(t,e,r=0){return e==null&&(e=ee(O(t))),e instanceof Uint8Array?ho(t,e,r):mo(t,e,r)}function H(t,e=0){return t instanceof Uint8Array?xo(t,e):wo(t,e)}function W(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=ee(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}var Se=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 c=a==="0",w=2**(8*o)-1;for(;;){let l=this.readAtomically(()=>{let b=this.readChar();if(b===void 0)return;let P=Number.parseInt(b,e);if(!Number.isNaN(P))return P});if(l===void 0)break;if(s*=e,s+=l,s>w||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&c&&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 cr=45,go=15,re=new Se;function pt(t){if(!(t.length>go))return re.new(t).parseWith(()=>re.readIPv4Addr())}function dt(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>cr))return re.new(t).parseWith(()=>re.readIPv6Addr())}function Ie(t,e=!1){if(t.includes("%")&&(t=t.split("%")[0]),t.length>cr)return;let r=re.new(t).parseWith(()=>re.readIPAddr());if(r)return e&&r.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,r[0],r[1],r[2],r[3]]):r}var Fi=parseInt("0xFFFF",16),Mi=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function ne(t,e="utf8"){let r=Ee[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function Pe(t){return!!pt(t)}function Ae(t){return!!dt(t)}function Ce(t){return!!Ie(t)}var pr=Pe,So=Ae,ft=function(t){let e=0;if(t=t.toString().trim(),pr(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(So(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=pr(r[n]),i;s&&(i=ft(r[n]),r[n]=I(i.slice(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,I(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")},dr=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 oe={},ht={},Po=[[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"],[481,-1,"http-path"],[777,-1,"memory"]];Po.forEach(t=>{let e=Ao(...t);ht[e.code]=e,oe[e.name]=e});function Ao(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function u(t){if(typeof t=="number"){if(ht[t]!=null)return ht[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(oe[t]!=null)return oe[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var ya=u("ip4"),va=u("ip6"),Ea=u("ipcidr");function gt(t,e){switch(u(t).code){case 4:case 41:return Uo(e);case 42:return wt(e);case 43:return I(e,"base10");case 6:case 273:case 33:case 132:return mr(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return wt(e);case 421:return Lo(e);case 444:return hr(e);case 445:return hr(e);case 466:return Do(e);case 481:return globalThis.encodeURIComponent(wt(e));default:return I(e,"base16")}}function bt(t,e){switch(u(t).code){case 4:return fr(e);case 41:return fr(e);case 42:return xt(e);case 43:return ne(e,"base10");case 6:case 273:case 33:case 132:return yt(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return xt(e);case 421:return To(e);case 444:return $o(e);case 445:return Fo(e);case 466:return No(e);case 481:return xt(globalThis.decodeURIComponent(e));default:return ne(e,"base16")}}var mt=Object.values(le).map(t=>t.decoder),Co=function(){let t=mt[0].or(mt[1]);return mt.slice(2).forEach(e=>t=t.or(e)),t}();function fr(t){if(!Ce(t))throw new Error("invalid ip address");return ft(t)}function Uo(t){let e=dr(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ce(e))throw new Error("invalid ip address");return e}function yt(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function mr(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function xt(t){let e=ne(t),r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function wt(t){let e=H(t);if(t=t.slice(O(e)),t.length!==e)throw new Error("inconsistent lengths");return I(t)}function To(t){let e;t[0]==="Q"||t[0]==="1"?e=ve(v.decode(`z${t}`)).bytes:e=j.parse(t).multihash.bytes;let r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function No(t){let e=Co.decode(t),r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function Do(t){let e=H(t),r=t.slice(O(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+I(r,"base64url")}function Lo(t){let e=H(t),r=t.slice(O(e));if(r.length!==e)throw new Error("inconsistent lengths");return I(r,"base58btc")}function $o(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=V.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=yt(n);return W([r,o],r.length+o.length)}function Fo(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=V.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=yt(n);return W([r,o],r.length+o.length)}function hr(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=I(e,"base32"),o=mr(r);return`${n}:${o}`}function xr(t){t=vt(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=u(i);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=o.length)throw new Ue("invalid address: "+t);if(a.path===!0){n=vt(o.slice(s).join("/")),e.push([a.code,bt(a.code,n)]),r.push([a.code,n]);break}let c=bt(a.code,o[s]);e.push([a.code,c]),r.push([a.code,gt(a.code,c)])}return{string:wr(r),bytes:St(e),tuples:e,stringTuples:r,path:n}}function Et(t){let e=[],r=[],n=null,o=0;for(;o<t.length;){let s=H(t,o),i=O(s),a=u(s),c=Mo(a,t.slice(o+i));if(c===0){e.push([s]),r.push([s]),o+=i;continue}let w=t.slice(o+i,o+i+c);if(o+=c+i,o>t.length)throw new Ue("Invalid address Uint8Array: "+I(t,"base16"));e.push([s,w]);let l=gt(s,w);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:wr(r),tuples:e,stringTuples:r,path:n}}function wr(t){let e=[];return t.map(r=>{let n=u(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),vt(e.join("/"))}function St(t){return W(t.map(e=>{let r=u(e[0]),n=Uint8Array.from(te(r.code));return e.length>1&&e[1]!=null&&(n=W([n,e[1]])),n}))}function Mo(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=H(e instanceof Uint8Array?e:Uint8Array.from(e));return r+O(r)}}function vt(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}var Ue=class extends Error{static name="ParseError";name="ParseError";constructor(e){super(`Error parsing address: ${e}`)}};var Oo=Symbol.for("nodejs.util.inspect.custom"),Pt=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ko=[u("dns").code,u("dns4").code,u("dns6").code,u("dnsaddr").code],It=class extends Error{constructor(e="No available resolver"){super(e),this.name="NoAvailableResolverError"}},Te=class t{bytes;#t;#e;#r;#n;[Pt]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=Et(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=xr(e)}else if(br(e))r=Et(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=u("tcp"),a=u("udp"),c=u("ip4"),w=u("ip6"),l=u("dns6"),b=u("ip6zone");for(let[U,h]of this.stringTuples())U===b.code&&(s=`%${h??""}`),ko.includes(U)&&(r=i.name==="tcp"?"tcp":"udp",o=443,n=`${h??""}${s}`,e=U===l.code?6:4),(U===i.code||U===a.code)&&(r=u(U).name==="tcp"?"tcp":"udp",o=parseInt(h??"")),(U===c.code||U===w.code)&&(r=u(U).name==="tcp"?"tcp":"udp",n=`${h??""}${s}`,e=U===w.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({},u(e)))}protoCodes(){return this.#e.map(([e])=>e)}protoNames(){return this.#e.map(([e])=>u(e).name)}tuples(){return this.#e.map(([e,r])=>r==null?[e]:[e,r])}stringTuples(){return this.#r.map(([e,r])=>r==null?[e]:[e,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(St(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===oe.p2p.code&&e.push([n,o]),n===oe["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?I(v.decode(`z${n}`),"base58btc"):I(j.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return Yt(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=gr.get(r.name);if(n==null)throw new It(`no available resolver for ${r.name}`);return(await n(this,e)).map(s=>pe(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)}[Oo](){return`Multiaddr(${this.#t})`}};var gr=new Map;function br(t){return!!t?.[Pt]}function pe(t){return new Te(t)}var zo=[u("tcp").code,u("dns").code,u("dnsaddr").code,u("dns4").code,u("dns6").code];function yr(t){return Sr("sni",t)?.[1]}function vr(t){let e=Sr("tcp",t)?.[1];return e==null?"":`:${e}`}function Sr(t,e){let r;try{r=u(t).code}catch{return}for(let[n,o]of e)if(n===r&&o!=null)return[n,o]}function Er(t){return t.some(([e,r])=>e===u("tls").code)}function L(t,e,r){let n=Ir[u(t).name];if(n==null)throw new Error(`Can't interpret protocol ${u(t).name}`);let o=n(e,r);return t===u("ip6").code?`[${o}]`:o}var Ir={ip4:(t,e)=>t,ip6:(t,e)=>e.length===0?t:`[${t}]`,tcp:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`tcp://${L(r[0],r[1]??"",e)}:${t}`},udp:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`udp://${L(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==null)throw new Error("Unexpected end of multiaddr");return`${L(r[0],r[1]??"",e)}`},p2p:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`${L(r[0],r[1]??"",e)}`},http:(t,e)=>{let r=Er(e),n=yr(e),o=vr(e);if(r&&n!=null)return`https://${n}${o}`;let s=r?"https://":"http://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=L(i[0],i[1]??"",e);return a=a.replace("tcp://",""),`${s}${a}`},"http-path":(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e),o=decodeURIComponent(t);return`${n}/${o}`},tls:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return L(r[0],r[1]??"",e)},sni:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return L(r[0],r[1]??"",e)},https:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`https://${n}`},ws:(t,e)=>{let r=Er(e),n=yr(e),o=vr(e);if(r&&n!=null)return`wss://${n}${o}`;let s=r?"wss://":"ws://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=L(i[0],i[1]??"",e);return a=a.replace("tcp://",""),`${s}${a}`},wss:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`wss://${n}`}};function Pr(t,e){let n=pe(t).stringTuples(),o=n.pop();if(o==null)throw new Error("Unexpected end of multiaddr");let s=u(o[0]),i=Ir[s.name];if(i==null)throw new Error(`No interpreter found for ${s.name}`);let a=i(o[1]??"",n);return e?.assumeHttp!==!1&&zo.includes(o[0])&&(a=a.replace(/^.*:\/\//,""),o[1]==="443"?a=`https://${a}`:a=`http://${a}`),(a.startsWith("http://")||a.startsWith("https://")||a.startsWith("ws://")||a.startsWith("wss://"))&&(a=new URL(a).toString(),a.endsWith("/")&&(a=a.substring(0,a.length-1))),a}var Ar=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 Cr=(t,e)=>(e=e??{},e.closeOnEnd=e.closeOnEnd!==!1,async n=>{for await(let o of n){try{await Ar(t)}catch(s){if(s.message==="socket closed")break;throw s}if(t.readyState===t.CLOSING||t.readyState===t.CLOSED)break;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 Dr=tn(Tr(),1);function Nr(t){return t instanceof ArrayBuffer||t?.constructor?.name==="ArrayBuffer"&&typeof t?.byteLength=="number"}var Lr=t=>{t.binaryType="arraybuffer";let e=async()=>{await new Promise((s,i)=>{if(n){s();return}if(o!=null){i(o);return}let a=l=>{t.removeEventListener("open",c),t.removeEventListener("error",w),l()},c=()=>{a(s)},w=l=>{a(()=>{i(l.error??new Error(`connect ECONNREFUSED ${t.url}`))})};t.addEventListener("open",c),t.addEventListener("error",w)})},r=async function*(){let s=new Dr.EventIterator(({push:i,stop:a,fail:c})=>{let w=b=>{let P=null;typeof b.data=="string"&&(P=ne(b.data)),Nr(b.data)&&(P=new Uint8Array(b.data)),b.data instanceof Uint8Array&&(P=b.data),P!=null&&i(P)},l=b=>{c(b.error??new Error("Socket error"))};return t.addEventListener("message",w),t.addEventListener("error",l),t.addEventListener("close",a),()=>{t.removeEventListener("message",w),t.removeEventListener("error",l),t.removeEventListener("close",a)}},{highWaterMark:1/0});await e();for await(let i of s)yield Nr(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 $r=(t,e)=>{e=e??{};let r=Lr(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:Cr(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 Fr=WebSocket;var Wo={"http:":"ws:","https:":"wss:"},Mr="ws:",Or=(t,e)=>{if(t.startsWith("//")&&(t=`${e?.protocol??Mr}${t}`),t.startsWith("/")&&e!=null){let n=e.protocol??Mr,o=e.host,s=e.port!=null&&o?.endsWith(`:${e.port}`)!==!0?`:${e.port}`:"";t=`${n}//${o}${s}${t}`}let r=new URL(t);for(let[n,o]of Object.entries(Wo))r.protocol===n&&(r.protocol=o);return r};function kr(t,e){let r=typeof window>"u"?void 0:window.location;e=e??{};let n=Or(t,r),o=new Fr(n.toString(),e.websocket);return $r(o,e)}function Ut(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Le=class extends Event{type;detail;constructor(e,r){super(e),this.type=e,this.detail=r}};var $e=class extends Error{type;code;constructor(e,r,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=r??"ABORT_ERR"}};async function zr(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new $e(r?.errorMessage,r?.errorCode,r?.errorName));let n,o=new $e(r?.errorMessage,r?.errorCode,r?.errorName);try{return await Promise.race([t,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Bo=t=>t.toString().split("/").slice(1),se=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),p=t=>({match:e=>se(r=>r===t).match(e),pattern:t}),G=()=>({match:t=>se(e=>typeof e=="string").match(t),pattern:"{string}"}),fe=()=>({match:t=>se(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),x=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{v.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),he=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{Ze.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),f=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),S=(...t)=>({match:e=>{let r;for(let n of t){let o=n.match(e);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),d=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function g(...t){function e(o){let s=Bo(o);for(let i of t){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:t,matches:r,exactMatch:n}}var Me=d(p("dns4"),G()),Oe=d(p("dns6"),G()),ke=d(p("dnsaddr"),G()),Nt=d(p("dns"),G()),gc=g(Me,f(x())),bc=g(Oe,f(x())),yc=g(ke,f(x())),_o=g(S(Nt,ke,Me,Oe),f(x())),Vr=d(p("ip4"),se(Pe)),Wr=d(p("ip6"),se(Ae)),Dt=S(Vr,Wr),B=S(Dt,Nt,Me,Oe,ke),vc=g(S(Dt,d(S(Nt,ke,Me,Oe),f(x())))),Ec=g(Vr),Sc=g(Wr),Ic=g(Dt),Lt=d(B,p("tcp"),fe()),me=d(B,p("udp"),fe()),Pc=g(d(Lt,f(x()))),Ac=g(me),$t=d(me,p("quic"),f(x())),ze=d(me,p("quic-v1"),f(x())),Ro=S($t,ze),Cc=g($t),Uc=g(ze),Tt=S(B,Lt,me,$t,ze),Br=S(d(Tt,p("ws"),f(x()))),_r=g(Br),Rr=S(d(Tt,p("wss"),f(x())),d(Tt,p("tls"),f(d(p("sni"),G())),p("ws"),f(x()))),jr=g(Rr),Qr=d(me,p("webrtc-direct"),f(he()),f(he()),f(x())),Tc=g(Qr),qr=d(ze,p("webtransport"),f(he()),f(he()),f(x())),Nc=g(qr),Fe=S(Br,Rr,d(Lt,f(x())),d(Ro,f(x())),d(B,f(x())),Qr,qr,x()),Dc=g(Fe),jo=d(Fe,p("p2p-circuit"),x()),Lc=g(jo),Qo=S(d(Fe,p("p2p-circuit"),p("webrtc"),f(x())),d(Fe,p("webrtc"),f(x())),d(p("webrtc"),f(x()))),$c=g(Qo),qo=S(d(B,p("tcp"),fe(),p("http"),f(x())),d(B,p("http"),f(x()))),Fc=g(qo),Ho=S(d(B,p("tcp"),S(d(p("443"),p("http")),d(fe(),p("https"))),f(x())),d(B,p("tls"),p("http"),f(x())),d(B,p("https"),f(x()))),Mc=g(Ho),Go=S(d(p("memory"),G(),f(x()))),Oc=g(Go);function Hr(t){return t.filter(e=>jr.exactMatch(e)||_r.exactMatch(e))}function Gr(){throw new Error("WebSocket Servers can not be created in the browser!")}function Jr(t,e,r){let n=r.logger.forComponent("libp2p:websockets:maconn"),o=r.metrics,s=r.metricPrefix??"",i={log:n,async sink(a){try{await t.sink(async function*(){for await(let c of a)c instanceof Uint8Array?yield c:yield c.subarray()}())}catch(c){c.type!=="aborted"&&n.error(c)}},source:t.source,remoteAddr:e,timeline:{open:Date.now()},async close(a={}){let c=Date.now();if(a.signal==null){let l=AbortSignal.timeout(500);a={...a,signal:l}}let w=()=>{let{host:l,port:b}=i.remoteAddr.toOptions();n("timeout closing stream to %s:%s after %dms, destroying it manually",l,b,Date.now()-c),this.abort(new ge("Socket close timeout"))};a.signal?.addEventListener("abort",w);try{await t.close()}catch(l){n.error("error closing WebSocket gracefully",l),this.abort(l)}finally{a.signal?.removeEventListener("abort",w),i.timeline.close=Date.now()}},abort(a){let{host:c,port:w}=i.remoteAddr.toOptions();n("timeout closing stream to %s:%s due to error",c,w,a),t.destroy(),i.timeline.close=Date.now(),o?.increment({[`${s}error`]:!0})}};return t.socket.addEventListener("close",()=>{o?.increment({[`${s}close`]:!0}),i.timeline.close==null&&(i.timeline.close=Date.now())},{once:!0}),i}var Ft=class{log;init;logger;metrics;components;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:websockets"),this.logger=e.logger,this.components=e,this.init=r,e.metrics!=null&&(this.metrics={dialerEvents:e.metrics.registerCounterGroup("libp2p_websockets_dialer_events_total",{label:"event",help:"Total count of WebSockets dialer events by type"})})}[zt]=!0;[Symbol.toStringTag]="@libp2p/websockets";[Vt]=["@libp2p/transport"];async dial(e,r){this.log("dialing %s",e),r=r??{};let n=await this._connect(e,r),o=Jr(n,e,{logger:this.logger,metrics:this.metrics?.dialerEvents});this.log("new outbound connection %s",o.remoteAddr);let s=await r.upgrader.upgradeOutbound(o,r);return this.log("outbound connection %s upgraded",o.remoteAddr),s}async _connect(e,r){r?.signal?.throwIfAborted();let n=e.toOptions();this.log("dialing %s:%s",n.host,n.port);let o=Ut(),s=kr(Pr(e),this.init);s.socket.addEventListener("error",()=>{let i=new be(`Could not connect to ${e.toString()}`);this.log.error("connection error:",i),this.metrics?.dialerEvents.increment({error:!0}),o.reject(i)});try{r.onProgress?.(new Le("websockets:open-connection")),await zr(Promise.race([s.connected(),o.promise]),r.signal)}catch(i){throw r.signal?.aborted===!0&&this.metrics?.dialerEvents.increment({abort:!0}),s.close().catch(a=>{this.log.error("error closing raw socket",a)}),i}return this.log("connected %s",e),this.metrics?.dialerEvents.increment({connect:!0}),s}createListener(e){return Gr({logger:this.logger,events:this.components.events,metrics:this.components.metrics},{...this.init,...e})}listenFilter(e){return e=Array.isArray(e)?e:[e],this.init?.filter!=null?this.init?.filter(e):Hr(e)}dialFilter(e){return this.listenFilter(e)}};function Xo(t={}){return e=>new Ft(e,t)}return rn(Ko);})();
2
+ "use strict";var Libp2PWebsockets=(()=>{var Xr=Object.create;var we=Object.defineProperty;var Kr=Object.getOwnPropertyDescriptor;var Zr=Object.getOwnPropertyNames;var Yr=Object.getPrototypeOf,en=Object.prototype.hasOwnProperty;var Ft=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),C=(t,e)=>{for(var r in e)we(t,r,{get:e[r],enumerable:!0})},Mt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Zr(e))!en.call(t,o)&&o!==r&&we(t,o,{get:()=>e[o],enumerable:!(n=Kr(e,o))||n.enumerable});return t};var tn=(t,e,r)=>(r=t!=null?Xr(Yr(t)):{},Mt(e||!t||!t.__esModule?we(r,"default",{value:t,enumerable:!0}):r,t)),rn=t=>Mt(we({},"__esModule",{value:!0}),t);var Ur=Ft(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});var Pt=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}))}}},Te=class{constructor(e,{highWaterMark:r=100,lowWaterMark:n=1}={}){let o=new Pt;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)}};Ne.EventIterator=Te;Ne.default=Te});var Tr=Ft(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});var At=Ur();de.EventIterator=At.EventIterator;function Vo(t,e,r){return new At.EventIterator(({push:n})=>(this.addEventListener(t,n,e),()=>this.removeEventListener(t,n,e)),r)}de.subscribe=Vo;de.default=At.EventIterator});var Ko={};C(Ko,{webSockets:()=>Xo});var kt=Symbol.for("@libp2p/transport");var Ot;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(Ot||(Ot={}));var ge=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var be=class extends Error{static name="ConnectionFailedError";constructor(e="Connection failed"){super(e),this.name="ConnectionFailedError"}};var zt=Symbol.for("@libp2p/service-capabilities"),ts=Symbol.for("@libp2p/service-dependencies");var _e={};C(_e,{base58btc:()=>v,base58flickr:()=>un});var Ps=new Uint8Array(0);function Vt(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}function z(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")}function Wt(t){return new TextEncoder().encode(t)}function Bt(t){return new TextDecoder().decode(t)}function nn(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,c=t.charAt(0),w=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function b(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var A=0,Q=0,N=0,$=h.length;N!==$&&h[N]===0;)N++,A++;for(var F=($-N)*l+1>>>0,T=new Uint8Array(F);N!==$;){for(var M=h[N],_=0,D=F-1;(M!==0||_<Q)&&D!==-1;D--,_++)M+=256*T[D]>>>0,T[D]=M%a>>>0,M=M/a>>>0;if(M!==0)throw new Error("Non-zero carry");Q=_,N++}for(var k=F-Q;k!==F&&T[k]===0;)k++;for(var xe=c.repeat(A);k<F;++k)xe+=t.charAt(T[k]);return xe}function P(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var A=0;if(h[A]!==" "){for(var Q=0,N=0;h[A]===c;)Q++,A++;for(var $=(h.length-A)*w+1>>>0,F=new Uint8Array($);h[A];){var T=r[h.charCodeAt(A)];if(T===255)return;for(var M=0,_=$-1;(T!==0||M<N)&&_!==-1;_--,M++)T+=a*F[_]>>>0,F[_]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");N=M,A++}if(h[A]!==" "){for(var D=$-N;D!==$&&F[D]===0;)D++;for(var k=new Uint8Array(Q+($-D)),xe=Q;D!==$;)k[xe++]=F[D++];return k}}}function U(h){var A=P(h);if(A)return A;throw new Error(`Non-${e} character`)}return{encode:b,decodeUnsafe:P,decode:U}}var on=nn,sn=on,Rt=sn;var ze=class{name;prefix;baseEncode;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")}},Ve=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return jt(this,e)}},We=class{decoders;constructor(e){this.decoders=e}or(e){return jt(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function jt(t,e){return new We({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var Be=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new ze(e,r,n),this.decoder=new Ve(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function J({name:t,prefix:e,encode:r,decode:n}){return new Be(t,e,r,n)}function R({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=Rt(r,t);return J({prefix:e,name:t,encode:n,decode:s=>z(o(s))})}function an(t,e,r,n){let o={};for(let l=0;l<e.length;++l)o[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let i=new Uint8Array(s*r/8|0),a=0,c=0,w=0;for(let l=0;l<s;++l){let b=o[t[l]];if(b===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|b,a+=r,a>=8&&(a-=8,i[w++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function cn(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;s.length*r&7;)s+="=";return s}function y({name:t,prefix:e,bitsPerChar:r,alphabet:n}){return J({prefix:e,name:t,encode(o){return cn(o,n,r)},decode(o){return an(o,n,r,t)}})}var v=R({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),un=R({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Re={};C(Re,{base32:()=>V,base32hex:()=>fn,base32hexpad:()=>mn,base32hexpadupper:()=>xn,base32hexupper:()=>hn,base32pad:()=>pn,base32padupper:()=>dn,base32upper:()=>ln,base32z:()=>wn});var V=y({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ln=y({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),pn=y({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),dn=y({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),fn=y({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hn=y({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),mn=y({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),xn=y({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),wn=y({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var je={};C(je,{base36:()=>ie,base36upper:()=>gn});var ie=R({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),gn=R({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var bn=Ht,Qt=128,yn=127,vn=~yn,En=Math.pow(2,31);function Ht(t,e,r){e=e||[],r=r||0;for(var n=r;t>=En;)e[r++]=t&255|Qt,t/=128;for(;t&vn;)e[r++]=t&255|Qt,t>>>=7;return e[r]=t|0,Ht.bytes=r-n+1,e}var Sn=Qe,In=128,qt=127;function Qe(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw Qe.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&qt)<<o:(i&qt)*Math.pow(2,o),o+=7}while(i>=In);return Qe.bytes=s-n,r}var Pn=Math.pow(2,7),An=Math.pow(2,14),Cn=Math.pow(2,21),Un=Math.pow(2,28),Tn=Math.pow(2,35),Nn=Math.pow(2,42),Dn=Math.pow(2,49),Ln=Math.pow(2,56),$n=Math.pow(2,63),Fn=function(t){return t<Pn?1:t<An?2:t<Cn?3:t<Un?4:t<Tn?5:t<Nn?6:t<Dn?7:t<Ln?8:t<$n?9:10},Mn={encode:bn,decode:Sn,encodingLength:Fn},On=Mn,ae=On;function ce(t,e=0){return[ae.decode(t,e),ae.decode.bytes]}function X(t,e,r=0){return ae.encode(t,e,r),e}function K(t){return ae.encodingLength(t)}function q(t,e){let r=e.byteLength,n=K(t),o=n+K(r),s=new Uint8Array(o+r);return X(t,s,0),X(r,s,n),s.set(e,o),new Z(t,r,e,s)}function ve(t){let e=z(t),[r,n]=ce(e),[o,s]=ce(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Z(r,o,i,e)}function Gt(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Vt(t.bytes,r.bytes)}}var Z=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};function Jt(t,e){let{bytes:r,version:n}=t;switch(n){case 0:return zn(r,qe(t),e??v.encoder);default:return Vn(r,qe(t),e??V.encoder)}}var Xt=new WeakMap;function qe(t){let e=Xt.get(t);if(e==null){let r=new Map;return Xt.set(t,r),r}return e}var j=class t{code;version;multihash;bytes;"/";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!==ue)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Wn)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=q(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!=null&&e.code===n.code&&e.version===n.version&&Gt(e.multihash,n.multihash)}toString(e){return Jt(this,e)}toJSON(){return{"/":Jt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let 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??Kt(n,o,s.bytes))}else if(r[Bn]===!0){let{version:n,multihash:o,code:s}=r,i=ve(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!==ue)throw new Error(`Version 0 CID must use dag-pb (code: ${ue}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Kt(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,ue,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=z(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 Z(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[b,P]=ce(e.subarray(r));return r+=P,b},o=n(),s=ue;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(),c=n(),w=r+c,l=w-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:w}}static parse(e,r){let[n,o]=kn(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 qe(s).set(n,e),s}};function kn(t,e){switch(t[0]){case"Q":{let r=e??v;return[v.prefix,r.decode(`${v.prefix}${t}`)]}case v.prefix:{let r=e??v;return[v.prefix,r.decode(t)]}case V.prefix:{let r=e??V;return[V.prefix,r.decode(t)]}case ie.prefix:{let r=e??ie;return[ie.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function zn(t,e,r){let{prefix:n}=r;if(n!==v.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}function Vn(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}var ue=112,Wn=18;function Kt(t,e,r){let n=K(t),o=n+K(e),s=new Uint8Array(o+r.byteLength);return X(t,s,0),X(e,s,n),s.set(r,o),s}var Bn=Symbol.for("@ipld/js-cid/CID");function Zt(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 He={};C(He,{base10:()=>_n});var _n=R({prefix:"9",name:"base10",alphabet:"0123456789"});var Ge={};C(Ge,{base16:()=>Rn,base16upper:()=>jn});var Rn=y({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),jn=y({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Je={};C(Je,{base2:()=>Qn});var Qn=y({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Xe={};C(Xe,{base256emoji:()=>Xn});var Yt=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}"),qn=Yt.reduce((t,e,r)=>(t[r]=e,t),[]),Hn=Yt.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function Gn(t){return t.reduce((e,r)=>(e+=qn[r],e),"")}function Jn(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Hn[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var Xn=J({prefix:"\u{1F680}",name:"base256emoji",encode:Gn,decode:Jn});var Ze={};C(Ze,{base64:()=>Kn,base64pad:()=>Zn,base64url:()=>Ke,base64urlpad:()=>Yn});var Kn=y({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zn=y({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ke=y({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Yn=y({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ye={};C(Ye,{base8:()=>eo});var eo=y({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var et={};C(et,{identity:()=>to});var to=J({prefix:"\0",name:"identity",encode:t=>Bt(t),decode:t=>Wt(t)});var Ks=new TextEncoder,Zs=new TextDecoder;var tt={};C(tt,{identity:()=>io});var er=0,oo="identity",tr=z;function so(t){return q(er,tr(t))}var io={code:er,name:oo,encode:tr,digest:so};var ot={};C(ot,{sha256:()=>ao,sha512:()=>co});function nt({name:t,code:e,encode:r}){return new rt(t,e,r)}var rt=class{name;code;encode;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?q(this.code,r):r.then(n=>q(this.code,n))}else throw Error("Unknown type, must be binary type")}};function nr(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var ao=nt({name:"sha2-256",code:18,encode:nr("SHA-256")}),co=nt({name:"sha2-512",code:19,encode:nr("SHA-512")});var le={...et,...Je,...Ye,...He,...Ge,...Re,...je,..._e,...Ze,...Xe},pi={...ot,...tt};function ee(t=0){return new Uint8Array(t)}function sr(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var or=sr("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),st=sr("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=ee(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),uo={utf8:or,"utf-8":or,hex:le.base16,latin1:st,ascii:st,binary:st,...le},Ee=uo;function I(t,e="utf8"){let r=Ee[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}var lo=Math.pow(2,7),po=Math.pow(2,14),fo=Math.pow(2,21),it=Math.pow(2,28),at=Math.pow(2,35),ct=Math.pow(2,42),ut=Math.pow(2,49),m=128,E=127;function O(t){if(t<lo)return 1;if(t<po)return 2;if(t<fo)return 3;if(t<it)return 4;if(t<at)return 5;if(t<ct)return 6;if(t<ut)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function ho(t,e,r=0){switch(O(t)){case 8:e[r++]=t&255|m,t/=128;case 7:e[r++]=t&255|m,t/=128;case 6:e[r++]=t&255|m,t/=128;case 5:e[r++]=t&255|m,t/=128;case 4:e[r++]=t&255|m,t>>>=7;case 3:e[r++]=t&255|m,t>>>=7;case 2:e[r++]=t&255|m,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function mo(t,e,r=0){switch(O(t)){case 8:e.set(r++,t&255|m),t/=128;case 7:e.set(r++,t&255|m),t/=128;case 6:e.set(r++,t&255|m),t/=128;case 5:e.set(r++,t&255|m),t/=128;case 4:e.set(r++,t&255|m),t>>>=7;case 3:e.set(r++,t&255|m),t>>>=7;case 2:e.set(r++,t&255|m),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function xo(t,e){let r=t[e],n=0;if(n+=r&E,r<m||(r=t[e+1],n+=(r&E)<<7,r<m)||(r=t[e+2],n+=(r&E)<<14,r<m)||(r=t[e+3],n+=(r&E)<<21,r<m)||(r=t[e+4],n+=(r&E)*it,r<m)||(r=t[e+5],n+=(r&E)*at,r<m)||(r=t[e+6],n+=(r&E)*ct,r<m)||(r=t[e+7],n+=(r&E)*ut,r<m))return n;throw new RangeError("Could not decode varint")}function wo(t,e){let r=t.get(e),n=0;if(n+=r&E,r<m||(r=t.get(e+1),n+=(r&E)<<7,r<m)||(r=t.get(e+2),n+=(r&E)<<14,r<m)||(r=t.get(e+3),n+=(r&E)<<21,r<m)||(r=t.get(e+4),n+=(r&E)*it,r<m)||(r=t.get(e+5),n+=(r&E)*at,r<m)||(r=t.get(e+6),n+=(r&E)*ct,r<m)||(r=t.get(e+7),n+=(r&E)*ut,r<m))return n;throw new RangeError("Could not decode varint")}function te(t,e,r=0){return e==null&&(e=ee(O(t))),e instanceof Uint8Array?ho(t,e,r):mo(t,e,r)}function H(t,e=0){return t instanceof Uint8Array?xo(t,e):wo(t,e)}function W(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=ee(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}var Se=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 c=a==="0",w=2**(8*o)-1;for(;;){let l=this.readAtomically(()=>{let b=this.readChar();if(b===void 0)return;let P=Number.parseInt(b,e);if(!Number.isNaN(P))return P});if(l===void 0)break;if(s*=e,s+=l,s>w||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&c&&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 ar=45,go=15,re=new Se;function lt(t){if(!(t.length>go))return re.new(t).parseWith(()=>re.readIPv4Addr())}function pt(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>ar))return re.new(t).parseWith(()=>re.readIPv6Addr())}function Ie(t,e=!1){if(t.includes("%")&&(t=t.split("%")[0]),t.length>ar)return;let r=re.new(t).parseWith(()=>re.readIPAddr());if(r)return e&&r.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,r[0],r[1],r[2],r[3]]):r}var Fi=parseInt("0xFFFF",16),Mi=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function ne(t,e="utf8"){let r=Ee[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function Pe(t){return!!lt(t)}function Ae(t){return!!pt(t)}function Ce(t){return!!Ie(t)}var lr=Pe,So=Ae,dt=function(t){let e=0;if(t=t.toString().trim(),lr(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(So(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=lr(r[n]),i;s&&(i=dt(r[n]),r[n]=I(i.slice(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,I(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")},pr=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 oe={},ft={},Po=[[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"],[481,-1,"http-path"],[777,-1,"memory"]];Po.forEach(t=>{let e=Ao(...t);ft[e.code]=e,oe[e.name]=e});function Ao(t,e,r,n,o){return{code:t,size:e,name:r,resolvable:!!n,path:!!o}}function u(t){if(typeof t=="number"){if(ft[t]!=null)return ft[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(oe[t]!=null)return oe[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var ya=u("ip4"),va=u("ip6"),Ea=u("ipcidr");function wt(t,e){switch(u(t).code){case 4:case 41:return Uo(e);case 42:return xt(e);case 43:return I(e,"base10");case 6:case 273:case 33:case 132:return hr(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return xt(e);case 421:return Lo(e);case 444:return fr(e);case 445:return fr(e);case 466:return Do(e);case 481:return globalThis.encodeURIComponent(xt(e));default:return I(e,"base16")}}function gt(t,e){switch(u(t).code){case 4:return dr(e);case 41:return dr(e);case 42:return mt(e);case 43:return ne(e,"base10");case 6:case 273:case 33:case 132:return bt(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return mt(e);case 421:return To(e);case 444:return $o(e);case 445:return Fo(e);case 466:return No(e);case 481:return mt(globalThis.decodeURIComponent(e));default:return ne(e,"base16")}}var ht=Object.values(le).map(t=>t.decoder),Co=function(){let t=ht[0].or(ht[1]);return ht.slice(2).forEach(e=>t=t.or(e)),t}();function dr(t){if(!Ce(t))throw new Error("invalid ip address");return dt(t)}function Uo(t){let e=pr(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ce(e))throw new Error("invalid ip address");return e}function bt(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function hr(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function mt(t){let e=ne(t),r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function xt(t){let e=H(t);if(t=t.slice(O(e)),t.length!==e)throw new Error("inconsistent lengths");return I(t)}function To(t){let e;t[0]==="Q"||t[0]==="1"?e=ve(v.decode(`z${t}`)).bytes:e=j.parse(t).multihash.bytes;let r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function No(t){let e=Co.decode(t),r=Uint8Array.from(te(e.length));return W([r,e],r.length+e.length)}function Do(t){let e=H(t),r=t.slice(O(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+I(r,"base64url")}function Lo(t){let e=H(t),r=t.slice(O(e));if(r.length!==e)throw new Error("inconsistent lengths");return I(r,"base58btc")}function $o(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=V.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=bt(n);return W([r,o],r.length+o.length)}function Fo(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=V.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=bt(n);return W([r,o],r.length+o.length)}function fr(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=I(e,"base32"),o=hr(r);return`${n}:${o}`}function mr(t){t=yt(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=u(i);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=o.length)throw wr("invalid address: "+t);if(a.path===!0){n=yt(o.slice(s).join("/")),e.push([a.code,gt(a.code,n)]),r.push([a.code,n]);break}let c=gt(a.code,o[s]);e.push([a.code,c]),r.push([a.code,wt(a.code,c)])}return{string:xr(r),bytes:Et(e),tuples:e,stringTuples:r,path:n}}function vt(t){let e=[],r=[],n=null,o=0;for(;o<t.length;){let s=H(t,o),i=O(s),a=u(s),c=Mo(a,t.slice(o+i));if(c===0){e.push([s]),r.push([s]),o+=i;continue}let w=t.slice(o+i,o+i+c);if(o+=c+i,o>t.length)throw wr("Invalid address Uint8Array: "+I(t,"base16"));e.push([s,w]);let l=wt(s,w);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:xr(r),tuples:e,stringTuples:r,path:n}}function xr(t){let e=[];return t.map(r=>{let n=u(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),yt(e.join("/"))}function Et(t){return W(t.map(e=>{let r=u(e[0]),n=Uint8Array.from(te(r.code));return e.length>1&&e[1]!=null&&(n=W([n,e[1]])),n}))}function Mo(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=H(e instanceof Uint8Array?e:Uint8Array.from(e));return r+O(r)}}function yt(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function wr(t){return new Error("Error parsing address: "+t)}var Oo=Symbol.for("nodejs.util.inspect.custom"),It=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ko=[u("dns").code,u("dns4").code,u("dns6").code,u("dnsaddr").code],St=class extends Error{constructor(e="No available resolver"){super(e),this.name="NoAvailableResolverError"}},Ue=class t{bytes;#t;#e;#r;#n;[It]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=vt(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=mr(e)}else if(br(e))r=vt(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=u("tcp"),a=u("udp"),c=u("ip4"),w=u("ip6"),l=u("dns6"),b=u("ip6zone");for(let[U,h]of this.stringTuples())U===b.code&&(s=`%${h??""}`),ko.includes(U)&&(r=i.name,o=443,n=`${h??""}${s}`,e=U===l.code?6:4),(U===i.code||U===a.code)&&(r=u(U).name,o=parseInt(h??"")),(U===c.code||U===w.code)&&(r=u(U).name,n=`${h??""}${s}`,e=U===w.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({},u(e)))}protoCodes(){return this.#e.map(([e])=>e)}protoNames(){return this.#e.map(([e])=>u(e).name)}tuples(){return this.#e.map(([e,r])=>r==null?[e]:[e,r])}stringTuples(){return this.#r.map(([e,r])=>r==null?[e]:[e,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(Et(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,o])=>{n===oe.p2p.code&&e.push([n,o]),n===oe["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?I(v.decode(`z${n}`),"base58btc"):I(j.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return Zt(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=gr.get(r.name);if(n==null)throw new St(`no available resolver for ${r.name}`);return(await n(this,e)).map(s=>pe(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)}[Oo](){return`Multiaddr(${this.#t})`}};var gr=new Map;function br(t){return!!t?.[It]}function pe(t){return new Ue(t)}var zo=[u("tcp").code,u("dns").code,u("dnsaddr").code,u("dns4").code,u("dns6").code];function yr(t){return Sr("sni",t)?.[1]}function vr(t){let e=Sr("tcp",t)?.[1];return e==null?"":`:${e}`}function Sr(t,e){let r;try{r=u(t).code}catch{return}for(let[n,o]of e)if(n===r&&o!=null)return[n,o]}function Er(t){return t.some(([e,r])=>e===u("tls").code)}function L(t,e,r){let n=Ir[u(t).name];if(n==null)throw new Error(`Can't interpret protocol ${u(t).name}`);let o=n(e,r);return t===u("ip6").code?`[${o}]`:o}var Ir={ip4:(t,e)=>t,ip6:(t,e)=>e.length===0?t:`[${t}]`,tcp:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`tcp://${L(r[0],r[1]??"",e)}:${t}`},udp:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`udp://${L(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==null)throw new Error("Unexpected end of multiaddr");return`${L(r[0],r[1]??"",e)}`},p2p:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return`${L(r[0],r[1]??"",e)}`},http:(t,e)=>{let r=Er(e),n=yr(e),o=vr(e);if(r&&n!=null)return`https://${n}${o}`;let s=r?"https://":"http://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=L(i[0],i[1]??"",e);return a=a.replace("tcp://",""),`${s}${a}`},"http-path":(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e),o=decodeURIComponent(t);return`${n}/${o}`},tls:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return L(r[0],r[1]??"",e)},sni:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");return L(r[0],r[1]??"",e)},https:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`https://${n}`},ws:(t,e)=>{let r=Er(e),n=yr(e),o=vr(e);if(r&&n!=null)return`wss://${n}${o}`;let s=r?"wss://":"ws://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=L(i[0],i[1]??"",e);return a=a.replace("tcp://",""),`${s}${a}`},wss:(t,e)=>{let r=e.pop();if(r==null)throw new Error("Unexpected end of multiaddr");let n=L(r[0],r[1]??"",e);return n=n.replace("tcp://",""),`wss://${n}`}};function Pr(t,e){let n=pe(t).stringTuples(),o=n.pop();if(o==null)throw new Error("Unexpected end of multiaddr");let s=u(o[0]),i=Ir[s.name];if(i==null)throw new Error(`No interpreter found for ${s.name}`);let a=i(o[1]??"",n);return e?.assumeHttp!==!1&&zo.includes(o[0])&&(a=a.replace(/^.*:\/\//,""),o[1]==="443"?a=`https://${a}`:a=`http://${a}`),(a.startsWith("http://")||a.startsWith("https://")||a.startsWith("ws://")||a.startsWith("wss://"))&&(a=new URL(a).toString(),a.endsWith("/")&&(a=a.substring(0,a.length-1))),a}var Ar=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 Cr=(t,e)=>(e=e??{},e.closeOnEnd=e.closeOnEnd!==!1,async n=>{for await(let o of n){try{await Ar(t)}catch(s){if(s.message==="socket closed")break;throw s}if(t.readyState===t.CLOSING||t.readyState===t.CLOSED)break;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 Dr=tn(Tr(),1);function Nr(t){return t instanceof ArrayBuffer||t?.constructor?.name==="ArrayBuffer"&&typeof t?.byteLength=="number"}var Lr=t=>{t.binaryType="arraybuffer";let e=async()=>{await new Promise((s,i)=>{if(n){s();return}if(o!=null){i(o);return}let a=l=>{t.removeEventListener("open",c),t.removeEventListener("error",w),l()},c=()=>{a(s)},w=l=>{a(()=>{i(l.error??new Error(`connect ECONNREFUSED ${t.url}`))})};t.addEventListener("open",c),t.addEventListener("error",w)})},r=async function*(){let s=new Dr.EventIterator(({push:i,stop:a,fail:c})=>{let w=b=>{let P=null;typeof b.data=="string"&&(P=ne(b.data)),Nr(b.data)&&(P=new Uint8Array(b.data)),b.data instanceof Uint8Array&&(P=b.data),P!=null&&i(P)},l=b=>{c(b.error??new Error("Socket error"))};return t.addEventListener("message",w),t.addEventListener("error",l),t.addEventListener("close",a),()=>{t.removeEventListener("message",w),t.removeEventListener("error",l),t.removeEventListener("close",a)}},{highWaterMark:1/0});await e();for await(let i of s)yield Nr(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 $r=(t,e)=>{e=e??{};let r=Lr(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:Cr(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 Fr=WebSocket;var Wo={"http:":"ws:","https:":"wss:"},Mr="ws:",Or=(t,e)=>{if(t.startsWith("//")&&(t=`${e?.protocol??Mr}${t}`),t.startsWith("/")&&e!=null){let n=e.protocol??Mr,o=e.host,s=e.port!=null&&o?.endsWith(`:${e.port}`)!==!0?`:${e.port}`:"";t=`${n}//${o}${s}${t}`}let r=new URL(t);for(let[n,o]of Object.entries(Wo))r.protocol===n&&(r.protocol=o);return r};function kr(t,e){let r=typeof window>"u"?void 0:window.location;e=e??{};let n=Or(t,r),o=new Fr(n.toString(),e.websocket);return $r(o,e)}function Ct(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var De=class extends Event{type;detail;constructor(e,r){super(e),this.type=e,this.detail=r}};var Le=class extends Error{type;code;constructor(e,r,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=r??"ABORT_ERR"}};async function zr(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new Le(r?.errorMessage,r?.errorCode,r?.errorName));let n,o=new Le(r?.errorMessage,r?.errorCode,r?.errorName);try{return await Promise.race([t,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Bo=t=>t.toString().split("/").slice(1),se=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),p=t=>({match:e=>se(r=>r===t).match(e),pattern:t}),G=()=>({match:t=>se(e=>typeof e=="string").match(t),pattern:"{string}"}),fe=()=>({match:t=>se(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),x=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{v.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),he=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{Ke.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),f=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),S=(...t)=>({match:e=>{let r;for(let n of t){let o=n.match(e);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),d=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function g(...t){function e(o){let s=Bo(o);for(let i of t){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:t,matches:r,exactMatch:n}}var Fe=d(p("dns4"),G()),Me=d(p("dns6"),G()),Oe=d(p("dnsaddr"),G()),Tt=d(p("dns"),G()),gc=g(Fe,f(x())),bc=g(Me,f(x())),yc=g(Oe,f(x())),_o=g(S(Tt,Oe,Fe,Me),f(x())),Vr=d(p("ip4"),se(Pe)),Wr=d(p("ip6"),se(Ae)),Nt=S(Vr,Wr),B=S(Nt,Tt,Fe,Me,Oe),vc=g(S(Nt,d(S(Tt,Oe,Fe,Me),f(x())))),Ec=g(Vr),Sc=g(Wr),Ic=g(Nt),Dt=d(B,p("tcp"),fe()),me=d(B,p("udp"),fe()),Pc=g(d(Dt,f(x()))),Ac=g(me),Lt=d(me,p("quic"),f(x())),ke=d(me,p("quic-v1"),f(x())),Ro=S(Lt,ke),Cc=g(Lt),Uc=g(ke),Ut=S(B,Dt,me,Lt,ke),Br=S(d(Ut,p("ws"),f(x()))),_r=g(Br),Rr=S(d(Ut,p("wss"),f(x())),d(Ut,p("tls"),f(d(p("sni"),G())),p("ws"),f(x()))),jr=g(Rr),Qr=d(me,p("webrtc-direct"),f(he()),f(he()),f(x())),Tc=g(Qr),qr=d(ke,p("webtransport"),f(he()),f(he()),f(x())),Nc=g(qr),$e=S(Br,Rr,d(Dt,f(x())),d(Ro,f(x())),d(B,f(x())),Qr,qr,x()),Dc=g($e),jo=d($e,p("p2p-circuit"),x()),Lc=g(jo),Qo=S(d($e,p("p2p-circuit"),p("webrtc"),f(x())),d($e,p("webrtc"),f(x())),d(p("webrtc"),f(x()))),$c=g(Qo),qo=S(d(B,p("tcp"),fe(),p("http"),f(x())),d(B,p("http"),f(x()))),Fc=g(qo),Ho=S(d(B,p("tcp"),S(d(p("443"),p("http")),d(fe(),p("https"))),f(x())),d(B,p("tls"),p("http"),f(x())),d(B,p("https"),f(x()))),Mc=g(Ho),Go=S(d(p("memory"),G(),f(x()))),Oc=g(Go);function Hr(t){return t.filter(e=>jr.exactMatch(e)||_r.exactMatch(e))}function Gr(){throw new Error("WebSocket Servers can not be created in the browser!")}function Jr(t,e,r){let n=r.logger.forComponent("libp2p:websockets:maconn"),o=r.metrics,s=r.metricPrefix??"",i={log:n,async sink(a){try{await t.sink(async function*(){for await(let c of a)c instanceof Uint8Array?yield c:yield c.subarray()}())}catch(c){c.type!=="aborted"&&n.error(c)}},source:t.source,remoteAddr:e,timeline:{open:Date.now()},async close(a={}){let c=Date.now();if(a.signal==null){let l=AbortSignal.timeout(500);a={...a,signal:l}}let w=()=>{let{host:l,port:b}=i.remoteAddr.toOptions();n("timeout closing stream to %s:%s after %dms, destroying it manually",l,b,Date.now()-c),this.abort(new ge("Socket close timeout"))};a.signal?.addEventListener("abort",w);try{await t.close()}catch(l){n.error("error closing WebSocket gracefully",l),this.abort(l)}finally{a.signal?.removeEventListener("abort",w),i.timeline.close=Date.now()}},abort(a){let{host:c,port:w}=i.remoteAddr.toOptions();n("timeout closing stream to %s:%s due to error",c,w,a),t.destroy(),i.timeline.close=Date.now(),o?.increment({[`${s}error`]:!0})}};return t.socket.addEventListener("close",()=>{o?.increment({[`${s}close`]:!0}),i.timeline.close==null&&(i.timeline.close=Date.now())},{once:!0}),i}var $t=class{log;init;logger;metrics;components;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:websockets"),this.logger=e.logger,this.components=e,this.init=r,e.metrics!=null&&(this.metrics={dialerEvents:e.metrics.registerCounterGroup("libp2p_websockets_dialer_events_total",{label:"event",help:"Total count of WebSockets dialer events by type"})})}[kt]=!0;[Symbol.toStringTag]="@libp2p/websockets";[zt]=["@libp2p/transport"];async dial(e,r){this.log("dialing %s",e),r=r??{};let n=await this._connect(e,r),o=Jr(n,e,{logger:this.logger,metrics:this.metrics?.dialerEvents});this.log("new outbound connection %s",o.remoteAddr);let s=await r.upgrader.upgradeOutbound(o,r);return this.log("outbound connection %s upgraded",o.remoteAddr),s}async _connect(e,r){r?.signal?.throwIfAborted();let n=e.toOptions();this.log("dialing %s:%s",n.host,n.port);let o=Ct(),s=kr(Pr(e),this.init);s.socket.addEventListener("error",()=>{let i=new be(`Could not connect to ${e.toString()}`);this.log.error("connection error:",i),this.metrics?.dialerEvents.increment({error:!0}),o.reject(i)});try{r.onProgress?.(new De("websockets:open-connection")),await zr(Promise.race([s.connected(),o.promise]),r.signal)}catch(i){throw r.signal?.aborted===!0&&this.metrics?.dialerEvents.increment({abort:!0}),s.close().catch(a=>{this.log.error("error closing raw socket",a)}),i}return this.log("connected %s",e),this.metrics?.dialerEvents.increment({connect:!0}),s}createListener(e){return Gr({logger:this.logger,events:this.components.events,metrics:this.components.metrics},{...this.init,...e})}listenFilter(e){return e=Array.isArray(e)?e:[e],this.init?.filter!=null?this.init?.filter(e):Hr(e)}dialFilter(e){return this.listenFilter(e)}};function Xo(t={}){return e=>new $t(e,t)}return rn(Ko);})();
3
3
  return Libp2PWebsockets}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/websockets",
3
- "version": "9.1.4-96f14e429",
3
+ "version": "9.1.4-d72b51184",
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/main/packages/transport-websockets#readme",
@@ -74,8 +74,8 @@
74
74
  "test:electron-main": "aegir test -t electron-main -f ./dist/test/node.js --cov"
75
75
  },
76
76
  "dependencies": {
77
- "@libp2p/interface": "2.4.1-96f14e429",
78
- "@libp2p/utils": "6.5.0-96f14e429",
77
+ "@libp2p/interface": "2.4.1-d72b51184",
78
+ "@libp2p/utils": "6.5.0-d72b51184",
79
79
  "@multiformats/multiaddr": "^12.3.3",
80
80
  "@multiformats/multiaddr-matcher": "^1.6.0",
81
81
  "@multiformats/multiaddr-to-uri": "^11.0.0",
@@ -88,7 +88,7 @@
88
88
  "ws": "^8.18.0"
89
89
  },
90
90
  "devDependencies": {
91
- "@libp2p/logger": "5.1.7-96f14e429",
91
+ "@libp2p/logger": "5.1.7-d72b51184",
92
92
  "aegir": "^45.0.5",
93
93
  "is-loopback-addr": "^2.0.2",
94
94
  "p-wait-for": "^5.0.2",