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