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