@libp2p/websockets 9.1.1 → 9.1.2-15a70af5f

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 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:()=>E,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 Bt(t){return new TextEncoder().encode(t)}function Wt(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)}},Be=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 Be({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var We=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 We(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 E=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,En=~yn,vn=Math.pow(2,31);function Ht(t,e,r){e=e||[],r=r||0;for(var n=r;t>=vn;)e[r++]=t&255|Qt,t/=128;for(;t&En;)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 Ee(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??E.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!==Bn)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[Wn]===!0){let{version:n,multihash:o,code:s}=r,i=Ee(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??E;return[E.prefix,r.decode(`${E.prefix}${t}`)]}case E.prefix:{let r=e??E;return[E.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!==E.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,Bn=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 Wn=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=>Wt(t),decode:t=>Bt(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},ve=uo;function I(t,e="utf8"){let r=ve[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,v=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&v,r<m||(r=t[e+1],n+=(r&v)<<7,r<m)||(r=t[e+2],n+=(r&v)<<14,r<m)||(r=t[e+3],n+=(r&v)<<21,r<m)||(r=t[e+4],n+=(r&v)*it,r<m)||(r=t[e+5],n+=(r&v)*at,r<m)||(r=t[e+6],n+=(r&v)*ct,r<m)||(r=t[e+7],n+=(r&v)*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&v,r<m||(r=t.get(e+1),n+=(r&v)<<7,r<m)||(r=t.get(e+2),n+=(r&v)<<14,r<m)||(r=t.get(e+3),n+=(r&v)<<21,r<m)||(r=t.get(e+4),n+=(r&v)*it,r<m)||(r=t.get(e+5),n+=(r&v)*at,r<m)||(r=t.get(e+6),n+=(r&v)*ct,r<m)||(r=t.get(e+7),n+=(r&v)*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 B(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){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>ar))return re.new(t).parseWith(()=>re.readIPAddr())}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=ve[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"),Ea=u("ip6"),va=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 B([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=Ee(E.decode(`z${t}`)).bytes:e=j.parse(t).multihash.bytes;let r=Uint8Array.from(te(e.length));return B([r,e],r.length+e.length)}function No(t){let e=Co.decode(t),r=Uint8Array.from(te(e.length));return B([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 B([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 B([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:vt(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 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 vt(t){return B(t.map(e=>{let r=u(e[0]),n=Uint8Array.from(te(r.code));return e.length>1&&e[1]!=null&&(n=B([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=Et(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=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,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(vt(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(E.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 Er(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 vr(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=vr(e),n=yr(e),o=Er(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=vr(e),n=yr(e),o=Er(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 Bo={"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(Bo))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 Wo=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{E.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=Wo(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)),Br=d(p("ip6"),se(Ae)),Nt=S(Vr,Br),W=S(Nt,Tt,Fe,Me,Oe),Ec=g(S(Nt,d(S(Tt,Oe,Fe,Me),f(x())))),vc=g(Vr),Sc=g(Br),Ic=g(Nt),Dt=d(W,p("tcp"),fe()),me=d(W,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(W,Dt,me,Lt,ke),Wr=S(d(Ut,p("ws"),f(x()))),_r=g(Wr),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(Wr,Rr,d(Dt,f(x())),d(Ro,f(x())),d(W,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(W,p("tcp"),fe(),p("http"),f(x())),d(W,p("http"),f(x()))),Fc=g(qo),Ho=S(d(W,p("tcp"),S(d(p("443"),p("http")),d(fe(),p("https"))),f(x())),d(W,p("tls"),p("http"),f(x())),d(W,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);})();
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.1",
3
+ "version": "9.1.2-15a70af5f",
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.3.0",
78
- "@libp2p/utils": "^6.3.0",
77
+ "@libp2p/interface": "2.4.0-15a70af5f",
78
+ "@libp2p/utils": "6.3.1-15a70af5f",
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.5",
91
+ "@libp2p/logger": "5.1.6-15a70af5f",
92
92
  "aegir": "^45.0.5",
93
93
  "is-loopback-addr": "^2.0.2",
94
94
  "p-wait-for": "^5.0.2",
@@ -1,20 +0,0 @@
1
- {
2
- "all": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.all.html",
3
- "./filters:all": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.all.html",
4
- "dnsWsOrWss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.dnsWsOrWss.html",
5
- "./filters:dnsWsOrWss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.dnsWsOrWss.html",
6
- "dnsWss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.dnsWss.html",
7
- "./filters:dnsWss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.dnsWss.html",
8
- "wss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.wss.html",
9
- "./filters:wss": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.filters.wss.html",
10
- "WebSocketsComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsComponents.html",
11
- ".:WebSocketsComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsComponents.html",
12
- "WebSocketsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsInit.html",
13
- ".:WebSocketsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsInit.html",
14
- "WebSocketsMetrics": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsMetrics.html",
15
- ".:WebSocketsMetrics": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_websockets.index.WebSocketsMetrics.html",
16
- "WebSocketsDialEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_websockets.index.WebSocketsDialEvents.html",
17
- ".:WebSocketsDialEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_websockets.index.WebSocketsDialEvents.html",
18
- "webSockets": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.index.webSockets.html",
19
- ".:webSockets": "https://libp2p.github.io/js-libp2p/functions/_libp2p_websockets.index.webSockets.html"
20
- }