@libp2p/webrtc 2.0.6 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js
CHANGED
|
@@ -31,7 +31,7 @@ if (cid) {
|
|
|
31
31
|
doSomethingWithCID(cid)
|
|
32
32
|
}
|
|
33
33
|
`;pu.CID=Ge});var D2=_(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});var k4=yu(),R4=no(),L4=ar(),N4=Zs(),P4=pi();Cn.CID=k4.CID;Cn.varint=R4;Cn.bytes=L4;Cn.hasher=N4;Cn.digest=P4});var B2=_(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});var U4=j1(),O4=X1(),F4=Q1(),M4=Z1(),K4=e2(),V4=uu(),q4=r2(),H4=fu(),z4=i2(),G4=s2(),$4=x2(),W4=v2(),Y4=E2(),j4=S2();D2();var X4=yu(),Q4=Zs(),Z4=pi(),J4=no(),e6=ar(),t6={...U4,...O4,...F4,...M4,...K4,...V4,...q4,...H4,...z4,...G4},r6={...$4,...W4},n6={raw:Y4,json:j4};cr.CID=X4.CID;cr.hasher=Q4;cr.digest=Z4;cr.varint=J4;cr.bytes=e6;cr.bases=t6;cr.codecs=n6;cr.hashes=r6});var ia=_(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});function i6(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}gu.asUint8Array=i6});var xu=_(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});var _2=ia();function o6(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.alloc!=null?_2.asUint8Array(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function s6(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?_2.asUint8Array(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}oa.alloc=o6;oa.allocUnsafe=s6});var bu=_((dk,R2)=>{"use strict";var T2=B2(),a6=xu();function k2(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var I2=k2("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),mu=k2("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=a6.allocUnsafe(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),c6={utf8:I2,"utf-8":I2,hex:T2.bases.base16,latin1:mu,ascii:mu,binary:mu,...T2.bases};R2.exports=c6});var L2=_(vu=>{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});var u6=bu();function f6(t,e="utf8"){let r=u6[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}vu.toString=f6});var N2=_(wu=>{"use strict";Object.defineProperty(wu,"__esModule",{value:!0});var h6=bu(),l6=ia();function d6(t,e="utf8"){let r=h6[e];if(!r)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?l6.asUint8Array(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}wu.fromString=d6});var P2=_(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});var p6=xu(),y6=ia();function g6(t,e){e||(e=t.reduce((i,o)=>i+o.length,0));let r=p6.allocUnsafe(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return y6.asUint8Array(r)}Eu.concat=g6});var Cu=_((xk,V2)=>{"use strict";var U2=k1(),xi=q1(),{names:ao}=z1(),{toString:sa}=L2(),{fromString:x6}=N2(),{concat:m6}=P2(),mi={};for(let t in ao){let e=t;mi[ao[e]]=e}Object.freeze(mi);function b6(t){if(!(t instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return sa(t,"base16")}function v6(t){return x6(t,"base16")}function w6(t){if(!(t instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return sa(U2.encode("base58btc",t)).slice(1)}function E6(t){let e=t instanceof Uint8Array?sa(t):t;return U2.decode("z"+e)}function O2(t){if(!(t instanceof Uint8Array))throw new Error("multihash must be a Uint8Array");if(t.length<2)throw new Error("multihash too short. must be > 2 bytes.");let e=xi.decode(t);if(!M2(e))throw new Error(`multihash unknown function code: 0x${e.toString(16)}`);t=t.slice(xi.decode.bytes);let r=xi.decode(t);if(r<0)throw new Error(`multihash invalid length: ${r}`);if(t=t.slice(xi.decode.bytes),t.length!==r)throw new Error(`multihash length inconsistent: 0x${sa(t,"base16")}`);return{code:e,name:mi[e],length:r,digest:t}}function S6(t,e,r){if(!t||e===void 0)throw new Error("multihash encode requires at least two args: digest, code");let n=F2(e);if(!(t instanceof Uint8Array))throw new Error("digest should be a Uint8Array");if(r==null&&(r=t.length),r&&t.length!==r)throw new Error("digest length should be equal to specified length.");let i=xi.encode(n),o=xi.encode(r);return m6([i,o,t],i.length+o.length+t.length)}function F2(t){let e=t;if(typeof t=="string"){if(ao[t]===void 0)throw new Error(`Unrecognized hash function named: ${t}`);e=ao[t]}if(typeof e!="number")throw new Error(`Hash function code should be a number. Got: ${e}`);if(mi[e]===void 0&&!Su(e))throw new Error(`Unrecognized function code: ${e}`);return e}function Su(t){return t>0&&t<16}function M2(t){return!!(Su(t)||mi[t])}function K2(t){O2(t)}function C6(t){return K2(t),t.subarray(0,2)}V2.exports={names:ao,codes:mi,toHexString:b6,fromHexString:v6,toB58String:w6,fromB58String:E6,decode:O2,encode:S6,coerceCode:F2,isAppCode:Su,validate:K2,prefix:C6,isValidCode:M2}});var U6={};$e(U6,{webRTC:()=>P6,webRTCDirect:()=>N6});var uo=Symbol.for("@libp2p/transport");var ku;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(ku||(ku={}));var G=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var ht=re(qu(),1);var xa={};$e(xa,{base58btc:()=>Re,base58flickr:()=>Iy});function Ay(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 i=0;i<t.length;i++){var o=t.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function h(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";for(var y=0,g=0,m=0,w=l.length;m!==w&&l[m]===0;)m++,y++;for(var v=(w-m)*f+1>>>0,A=new Uint8Array(v);m!==w;){for(var E=l[m],S=0,B=v-1;(E!==0||S<g)&&B!==-1;B--,S++)E+=256*A[B]>>>0,A[B]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var I=v-g;I!==v&&A[I]===0;)I++;for(var U=c.repeat(y);I<v;++I)U+=t.charAt(A[I]);return U}function d(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;var y=0;if(l[y]!==" "){for(var g=0,m=0;l[y]===c;)g++,y++;for(var w=(l.length-y)*u+1>>>0,v=new Uint8Array(w);l[y];){var A=r[l.charCodeAt(y)];if(A===255)return;for(var E=0,S=w-1;(A!==0||E<m)&&S!==-1;S--,E++)A+=a*v[S]>>>0,v[S]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");m=E,y++}if(l[y]!==" "){for(var B=w-m;B!==w&&v[B]===0;)B++;for(var I=new Uint8Array(g+(w-B)),U=g;B!==w;)I[U++]=v[B++];return I}}}function p(l){var y=d(l);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:p}}var Dy=Ay,By=Dy,Hu=By;var W6=new Uint8Array(0);var zu=(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},bt=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Gu=t=>new TextEncoder().encode(t),$u=t=>new TextDecoder().decode(t);var da=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},pa=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Yu(this,e)}},ya=class{constructor(e){this.decoders=e}or(e){return Yu(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Yu=(t,e)=>new ya({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ga=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new da(e,r,n),this.decoder=new pa(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Tn=({name:t,prefix:e,encode:r,decode:n})=>new ga(t,e,r,n),Sr=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=Hu(r,e);return Tn({prefix:t,name:e,encode:n,decode:o=>bt(i(o))})},_y=(t,e,r,n)=>{let i={};for(let f=0;f<e.length;++f)i[e[f]]=f;let o=t.length;for(;t[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let h=i[t[f]];if(h===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|h,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},Ty=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],s+=8;s>r;)s-=r,o+=e[i&a>>s];if(s&&(o+=e[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Te=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Tn({prefix:e,name:t,encode(i){return Ty(i,n,r)},decode(i){return _y(i,n,r,t)}});var Re=Sr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Iy=Sr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ma={};$e(ma,{base32:()=>_t,base32hex:()=>Ny,base32hexpad:()=>Uy,base32hexpadupper:()=>Oy,base32hexupper:()=>Py,base32pad:()=>Ry,base32padupper:()=>Ly,base32upper:()=>ky,base32z:()=>Fy});var _t=Te({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ky=Te({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ry=Te({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ly=Te({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ny=Te({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Py=Te({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Uy=Te({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Oy=Te({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Fy=Te({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ba={};$e(ba,{base64:()=>In,base64pad:()=>My,base64url:()=>Ky,base64urlpad:()=>Vy});var In=Te({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),My=Te({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ky=Te({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Vy=Te({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ht.default.formatters.b=t=>t==null?"undefined":Re.baseEncode(t);ht.default.formatters.t=t=>t==null?"undefined":_t.baseEncode(t);ht.default.formatters.m=t=>t==null?"undefined":In.baseEncode(t);ht.default.formatters.p=t=>t==null?"undefined":t.toString();ht.default.formatters.c=t=>t==null?"undefined":t.toString();ht.default.formatters.k=t=>t==null?"undefined":t.toString();ht.default.formatters.a=t=>t==null?"undefined":t.toString();function qy(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Me(t){let e=qy(`${t}:trace`);return ht.default.enabled(`${t}:trace`)&&ht.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,ht.default)(`${t}:trace`)),Object.assign((0,ht.default)(t),{error:(0,ht.default)(`${t}:error`),trace:e})}var Hy=Qu,ju=128,zy=127,Gy=~zy,$y=Math.pow(2,31);function Qu(t,e,r){e=e||[],r=r||0;for(var n=r;t>=$y;)e[r++]=t&255|ju,t/=128;for(;t&Gy;)e[r++]=t&255|ju,t>>>=7;return e[r]=t|0,Qu.bytes=r-n+1,e}var Wy=va,Yy=128,Xu=127;function va(t,n){var r=0,n=n||0,i=0,o=n,s,a=t.length;do{if(o>=a)throw va.bytes=0,new RangeError("Could not decode varint");s=t[o++],r+=i<28?(s&Xu)<<i:(s&Xu)*Math.pow(2,i),i+=7}while(s>=Yy);return va.bytes=o-n,r}var jy=Math.pow(2,7),Xy=Math.pow(2,14),Qy=Math.pow(2,21),Zy=Math.pow(2,28),Jy=Math.pow(2,35),eg=Math.pow(2,42),tg=Math.pow(2,49),rg=Math.pow(2,56),ng=Math.pow(2,63),ig=function(t){return t<jy?1:t<Xy?2:t<Qy?3:t<Zy?4:t<Jy?5:t<eg?6:t<tg?7:t<rg?8:t<ng?9:10},og={encode:Hy,decode:Wy,encodingLength:ig},sg=og,vi=sg;var wi=(t,e=0)=>[vi.decode(t,e),vi.decode.bytes],kn=(t,e,r=0)=>(vi.encode(t,e,r),e),Rn=t=>vi.encodingLength(t);var Ht=(t,e)=>{let r=e.byteLength,n=Rn(t),i=n+Rn(r),o=new Uint8Array(i+r);return kn(t,o,0),kn(r,o,n),o.set(e,i),new Ln(t,r,e,o)},zr=t=>{let e=bt(t),[r,n]=wi(e),[i,o]=wi(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Ln(r,i,s,e)},Zu=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&zu(t.bytes,r.bytes)}},Ln=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var Ju=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return cg(r,wa(t),e||Re.encoder);default:return ug(r,wa(t),e||_t.encoder)}};var ef=new WeakMap,wa=t=>{let e=ef.get(t);if(e==null){let r=new Map;return ef.set(t,r),r}return e},me=class{constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}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!==Ei)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==fg)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return me.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=Ht(e,r);return me.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 me.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Zu(e.multihash,n.multihash)}toString(e){return Ju(this,e)}toJSON(){return{"/":Ju(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof me)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new me(n,i,o,s||tf(n,i,o.bytes))}else if(r[hg]===!0){let{version:n,multihash:i,code:o}=r,s=zr(i);return me.create(n,o,s)}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!==Ei)throw new Error(`Version 0 CID must use dag-pb (code: ${Ei}) block encoding`);return new me(e,r,n,n.bytes)}case 1:{let i=tf(e,r,n.bytes);return new me(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return me.create(0,Ei,e)}static createV1(e,r){return me.create(1,e,r)}static decode(e){let[r,n]=me.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=me.inspectBytes(e),n=r.size-r.multihashSize,i=bt(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new Ln(r.multihashCode,r.digestSize,o,i);return[r.version===0?me.createV0(s):me.createV1(r.codec,s),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,d]=wi(e.subarray(r));return r+=d,h},i=n(),o=Ei;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(e,r){let[n,i]=ag(e,r),o=me.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return wa(o).set(n,e),o}},ag=(t,e)=>{switch(t[0]){case"Q":{let r=e||Re;return[Re.prefix,r.decode(`${Re.prefix}${t}`)]}case Re.prefix:{let r=e||Re;return[Re.prefix,r.decode(t)]}case _t.prefix:{let r=e||_t;return[_t.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},cg=(t,e,r)=>{let{prefix:n}=r;if(n!==Re.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let o=r.encode(t).slice(1);return e.set(n,o),o}else return i},ug=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let o=r.encode(t);return e.set(n,o),o}else return i},Ei=112,fg=18,tf=(t,e,r)=>{let n=Rn(t),i=n+Rn(e),o=new Uint8Array(i+r.byteLength);return kn(t,o,0),kn(e,o,n),o.set(r,i),o},hg=Symbol.for("@ipld/js-cid/CID");var Ea={};$e(Ea,{identity:()=>lg});var lg=Tn({prefix:"\0",name:"identity",encode:t=>$u(t),decode:t=>Gu(t)});var Sa={};$e(Sa,{base2:()=>dg});var dg=Te({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ca={};$e(Ca,{base8:()=>pg});var pg=Te({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Aa={};$e(Aa,{base10:()=>yg});var yg=Sr({prefix:"9",name:"base10",alphabet:"0123456789"});var Da={};$e(Da,{base16:()=>gg,base16upper:()=>xg});var gg=Te({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),xg=Te({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ba={};$e(Ba,{base36:()=>mg,base36upper:()=>bg});var mg=Sr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),bg=Sr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var _a={};$e(_a,{base256emoji:()=>Cg});var rf=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}"),vg=rf.reduce((t,e,r)=>(t[r]=e,t),[]),wg=rf.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function Eg(t){return t.reduce((e,r)=>(e+=vg[r],e),"")}function Sg(t){let e=[];for(let r of t){let n=wg[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var Cg=Tn({prefix:"\u{1F680}",name:"base256emoji",encode:Eg,decode:Sg});var Ra={};$e(Ra,{sha256:()=>Ye,sha512:()=>Ag});var ka=re(Oe("crypto"),1);var Ia=({name:t,code:e,encode:r})=>new Ta(t,e,r),Ta=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Ht(this.code,r):r.then(n=>Ht(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Ye=Ia({name:"sha2-256",code:18,encode:t=>bt(ka.default.createHash("sha256").update(t).digest())}),Ag=Ia({name:"sha2-512",code:19,encode:t=>bt(ka.default.createHash("sha512").update(t).digest())});var La={};$e(La,{identity:()=>Cr});var of=0,Dg="identity",sf=bt,Bg=t=>Ht(of,sf(t)),Cr={code:of,name:Dg,encode:sf,digest:Bg};var C5=new TextEncoder,A5=new TextDecoder;var zt={...Ea,...Sa,...Ca,...Aa,...Da,...ma,...Ba,...xa,...ba,..._a},I5={...Ra,...La};function Fe(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 af=Symbol.for("@libp2p/peer-id");var Ig=Symbol.for("nodejs.util.inspect.custom"),cf=Object.values(zt).map(t=>t.decoder).reduce((t,e)=>t.or(e),zt.identity.decoder),uf=114,Na=36,Pa=37,Si=class{constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[af](){return!0}toString(){return this.string==null&&(this.string=Re.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return me.createV1(uf,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return Fe(this.multihash.bytes,e);if(typeof e=="string")return Ci(e).equals(this);if(e?.multihash?.bytes!=null)return Fe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[Ig](){return`PeerId(${this.toString()})`}},Nn=class extends Si{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Pn=class extends Si{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},Un=class extends Si{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Ci(t,e){if(e=e??cf,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=zr(Re.decode(`z${t}`));return t.startsWith("12D")?new Pn({multihash:r}):t.startsWith("16U")?new Un({multihash:r}):new Nn({multihash:r})}return kg(cf.decode(t))}function kg(t){try{let e=zr(t);if(e.code===Cr.code){if(e.digest.length===Na)return new Pn({multihash:e});if(e.digest.length===Pa)return new Un({multihash:e})}if(e.code===Ye.code)return new Nn({multihash:e})}catch{return Rg(me.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function Rg(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==uf)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===Ye.code)return new Nn({multihash:t.multihash});if(e.code===Cr.code){if(e.digest.length===Na)return new Pn({multihash:t.multihash});if(e.digest.length===Pa)return new Un({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Ua(t,e){return t.length===Na?new Pn({multihash:Ht(Cr.code,t),privateKey:e}):t.length===Pa?new Un({multihash:Ht(Cr.code,t),privateKey:e}):new Nn({multihash:await Ye.digest(t),publicKey:t,privateKey:e})}function Ar(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ur(t=0){return globalThis.Buffer?.alloc!=null?Ar(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function vt(t=0){return globalThis.Buffer?.allocUnsafe!=null?Ar(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function hf(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var ff=hf("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Oa=hf("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=vt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Ng={utf8:ff,"utf-8":ff,hex:zt.base16,latin1:Oa,ascii:Oa,binary:Oa,...zt},go=Ng;function j(t,e="utf8"){let r=go[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var ja=re(xo(),1);function pe(t,e){e==null&&(e=t.reduce((i,o)=>i+o.length,0));let r=vt(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Ar(r)}var On=re(xo(),1);var mo=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,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let d=Number.parseInt(h,e);if(!Number.isNaN(d))return d});if(f===void 0)break;if(o*=e,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}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 i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=e(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var oS=new mo;var dS=parseInt("0xFFFF",16),pS=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Ee(t,e="utf8"){let r=go[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Ar(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Gt=re(xo(),1);var Dr=Oe("node:net");function bo(t){return!!(0,Dr.isIP)(t)}var Sf=Dr.isIPv4,Jg=Dr.isIPv6,Ka=function(t){let e=0;if(t=t.toString().trim(),Sf(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Jg(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let o=Sf(r[n]),s;o&&(s=Ka(r[n]),r[n]=j(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,j(s.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 o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[e++]=o>>8&255,i[e++]=o&255}return i}throw new Error("invalid ip address")},Cf=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(t[e+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(e+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Ai={},Va={},tx=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];tx.forEach(t=>{let e=rx(...t);Va[e.code]=e,Ai[e.name]=e});function rx(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function ye(t){if(typeof t=="number"){if(Va[t]!=null)return Va[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Ai[t]!=null)return Ai[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var tC=ye("ip4"),rC=ye("ip6"),nC=ye("ipcidr");function Tf(t,e){switch(ye(t).code){case 4:case 41:return ix(e);case 42:return Bf(e);case 6:case 273:case 33:case 132:return kf(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Bf(e);case 421:return cx(e);case 444:return _f(e);case 445:return _f(e);case 466:return ax(e);default:return j(e,"base16")}}function If(t,e){switch(ye(t).code){case 4:return Af(e);case 41:return Af(e);case 42:return Df(e);case 6:case 273:case 33:case 132:return Ha(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Df(e);case 421:return ox(e);case 444:return ux(e);case 445:return fx(e);case 466:return sx(e);default:return Ee(e,"base16")}}var qa=Object.values(zt).map(t=>t.decoder),nx=function(){let t=qa[0].or(qa[1]);return qa.slice(2).forEach(e=>t=t.or(e)),t}();function Af(t){if(!bo(t))throw new Error("invalid ip address");return Ka(t)}function ix(t){let e=Cf(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!bo(e))throw new Error("invalid ip address");return e}function Ha(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function kf(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Df(t){let e=Ee(t),r=Uint8Array.from(Gt.default.encode(e.length));return pe([r,e],r.length+e.length)}function Bf(t){let e=Gt.default.decode(t);if(t=t.slice(Gt.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return j(t)}function ox(t){let e;t[0]==="Q"||t[0]==="1"?e=zr(Re.decode(`z${t}`)).bytes:e=me.parse(t).multihash.bytes;let r=Uint8Array.from(Gt.default.encode(e.length));return pe([r,e],r.length+e.length)}function sx(t){let e=nx.decode(t),r=Uint8Array.from(Gt.default.encode(e.length));return pe([r,e],r.length+e.length)}function ax(t){let e=Gt.default.decode(t),r=t.slice(Gt.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+j(r,"base64url")}function cx(t){let e=Gt.default.decode(t),r=t.slice(Gt.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return j(r,"base58btc")}function ux(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=_t.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 i=Ha(n);return pe([r,i],r.length+i.length)}function fx(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=_t.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 i=Ha(n);return pe([r,i],r.length+i.length)}function _f(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=j(e,"base32"),i=kf(r);return`${n}:${i}`}function hx(t){let e=[],r=t.split("/").slice(1);if(r.length===1&&r[0]==="")return[];for(let n=0;n<r.length;n++){let i=r[n],o=ye(i);if(o.size===0){e.push([i]);continue}if(n++,n>=r.length)throw Lf("invalid address: "+t);if(o.path===!0){e.push([i,Ya(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function lx(t){let e=[];return t.map(r=>{let n=Eo(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Ya(e.join("/"))}function dx(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=Eo(e);return e.length>1?[r.code,If(r.code,e[1])]:[r.code]})}function za(t){return t.map(e=>{let r=Eo(e);return e[1]!=null?[r.code,Tf(r.code,e[1])]:[r.code]})}function Ga(t){return wo(pe(t.map(e=>{let r=Eo(e),n=Uint8Array.from(On.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=pe([n,e[1]])),n})))}function $a(t,e){return t.size>0?t.size/8:t.size===0?0:On.default.decode(e)+(On.default.decode.bytes??0)}function vo(t){let e=[],r=0;for(;r<t.length;){let n=On.default.decode(t,r),i=On.default.decode.bytes??0,o=ye(n),s=$a(o,t.slice(r+i));if(s===0){e.push([n]),r+=i;continue}let a=t.slice(r+i,r+i+s);if(r+=s+i,r>t.length)throw Lf("Invalid address Uint8Array: "+j(t,"base16"));e.push([n,a])}return e}function Wa(t){let e=vo(t),r=za(e);return lx(r)}function px(t){t=Ya(t);let e=hx(t),r=dx(e);return Ga(r)}function Rf(t){return px(t)}function wo(t){let e=yx(t);if(e!=null)throw e;return Uint8Array.from(t)}function yx(t){try{vo(t)}catch(e){return e}}function Ya(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Lf(t){return new Error("Error parsing address: "+t)}function Eo(t){return ye(t[0])}var xx=Symbol.for("nodejs.util.inspect.custom"),mx=[ye("dns").code,ye("dns4").code,ye("dns6").code,ye("dnsaddr").code],bx=new Map,Nf=Symbol.for("@multiformats/js-multiaddr/multiaddr");function vx(t){return!!t?.[Nf]}var hr=class{bytes;#e;#r;#n;#t;[Nf]=!0;constructor(e){if(e==null&&(e=""),e instanceof Uint8Array)this.bytes=wo(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=Rf(e)}else if(vx(e))this.bytes=wo(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return this.#e==null&&(this.#e=Wa(this.bytes)),this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,i,o="",s=ye("tcp"),a=ye("udp"),c=ye("ip4"),u=ye("ip6"),f=ye("dns6"),h=ye("ip6zone");for(let[p,l]of this.stringTuples())p===h.code&&(o=`%${l??""}`),mx.includes(p)&&(r=s.name,i=443,n=`${l??""}${o}`,e=p===f.code?6:4),(p===s.code||p===a.code)&&(r=ye(p).name,i=parseInt(l??"")),(p===c.code||p===u.code)&&(r=ye(p).name,n=`${l??""}${o}`,e=p===u.code?6:4);if(e==null||r==null||n==null||i==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:i}}protos(){return this.protoCodes().map(e=>Object.assign({},ye(e)))}protoCodes(){let e=[],r=this.bytes,n=0;for(;n<r.length;){let i=ja.default.decode(r,n),o=ja.default.decode.bytes??0,s=ye(i),a=$a(s,r.slice(n+o));n+=a+o,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return this.#r==null&&(this.#r=vo(this.bytes)),this.#r}stringTuples(){return this.#n==null&&(this.#n=za(this.tuples())),this.#n}encapsulate(e){return e=new hr(e),new hr(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new hr(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new hr(Ga(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Ai.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?j(Re.decode(`z${n}`),"base58btc"):j(me.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){if(this.#t===void 0)try{this.#t=this.stringTuples().filter(e=>ye(e[0]).path===!0)[0][1],this.#t==null&&(this.#t=null)}catch{this.#t=null}return this.#t}equals(e){return Fe(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=bx.get(r.name);if(n==null)throw new G(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(o=>new hr(o))}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)}[xx](){return`Multiaddr(${Wa(this.bytes)})`}};function fr(t){return new hr(t)}var lt;(function(t){t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_DATA_CHANNEL="ERR_DATA_CHANNEL",t.ERR_CONNECTION_CLOSED="ERR_CONNECTION_CLOSED",t.ERR_HASH_NOT_SUPPORTED="ERR_HASH_NOT_SUPPORTED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_INVALID_FINGERPRINT="ERR_INVALID_FINGERPRINT",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS"})(lt||(lt={}));var Br=class extends G{constructor(e,r){super(`WebRTC transport error: ${e}`,r??""),this.name="WebRTCTransportError"}};var Xa=class extends Br{constructor(e,r){super(`[stream: ${e}] data channel error: ${r}`,lt.ERR_DATA_CHANNEL),this.name="WebRTC/DataChannelError"}};function rc(t,e){return new Xa(t,e)}var Qa=class extends Br{constructor(e){super(`There was a problem with the Multiaddr which was passed in: ${e}`,lt.ERR_INVALID_MULTIADDR),this.name="WebRTC/InappropriateMultiaddrError"}};function So(t){return new Qa(t)}var Za=class extends Br{constructor(e){super(`There was a problem with a provided argument: ${e}`,lt.ERR_INVALID_PARAMETERS),this.name="WebRTC/InvalidArgumentError"}};function Di(t){return new Za(t)}var Ja=class extends Br{constructor(e,r){super(`Invalid fingerprint "${e}" within ${r}`,lt.ERR_INVALID_FINGERPRINT),this.name="WebRTC/InvalidFingerprintError"}};function nc(t,e){return new Ja(t,e)}var ec=class extends Br{constructor(e){super(`A method (${e}) was called though it has been intentionally left unimplemented.`,lt.ERR_NOT_IMPLEMENTED),this.name="WebRTC/UnimplementedError"}};function Pf(t){return new ec(t)}var tc=class extends Br{constructor(e){super(`unsupported hash algorithm: ${e}`,lt.ERR_HASH_NOT_SUPPORTED),this.name="WebRTC/UnsupportedHashAlgorithmError"}};function Uf(t){return new tc(t)}var Xf=re(Yf(),1),jf=(0,Xf.detect)(),Bi=jf!=null&&jf.name==="firefox",Co=async function*(){},Ao=async t=>{};var Qf=Me("libp2p:webrtc:connection"),$r=class{peerConnection;remoteAddr;timeline;metrics;source=Co();sink=Ao;constructor(e){this.remoteAddr=e.remoteAddr,this.timeline=e.timeline,this.peerConnection=e.peerConnection,this.peerConnection.onconnectionstatechange=()=>{(this.peerConnection.connectionState==="closed"||this.peerConnection.connectionState==="disconnected"||this.peerConnection.connectionState==="failed")&&(this.timeline.close=Date.now())}}async close(e){e!==void 0&&Qf.error("error closing connection",e),Qf.trace("closing connection"),this.timeline.close=Date.now(),this.peerConnection.close(),this.metrics?.increment({close:!0})}};var _i=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Zf(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function Do(t,e,r){let n=r??{},i=Zf(t);async function*o(){let s,a=()=>{s?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:f,abortCode:h}=n;throw new _i(f,h)}let u=new Promise((f,h)=>{s=()=>{let{abortMessage:d,abortCode:p}=n;h(new _i(d,p))}});c=await Promise.race([u,i.next()]),s=null}catch(u){e.removeEventListener("abort",a);let f=u.type==="aborted"&&e.aborted;if(f&&n.onAbort!=null&&n.onAbort(t),typeof i.return=="function")try{let h=i.return();h instanceof Promise&&h.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(h){n.onReturnError!=null&&n.onReturnError(h)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}e.removeEventListener("abort",a)}return o()}function Bx(t,e,r){return n=>t(Do(n,e,r))}function oc(t,e,r){return{sink:Bx(t.sink,e,{...r,onAbort:void 0}),source:Do(t.source,e,r)}}var eh=Symbol.for("@achingbrain/uint8arraylist");function Jf(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function Bo(t){return!!t?.[eh]}var Le=class{constructor(...e){Object.defineProperty(this,eh,{value:!0}),this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Bo(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Bo(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=Jf(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Jf(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(Bo(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:i}=this._subList(e,r);return pe(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:pe(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),o=new Le;return o.length=i,o.bufs=n,o}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,f=r>a&&r<=c;if(u&&f){if(e===a&&r===c){n.push(s);break}let h=e-a;n.push(s.subarray(h,h+(r-e)));break}if(u){if(e===0){n.push(s);continue}n.push(s.subarray(e-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!Bo(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let h=0;h<o;h++)s[h]=-1;for(let h=0;h<i;h++)s[n[h]]=h;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let h=r;h<=c;h+=f){f=0;for(let d=u;d>=0;d--){let p=this.get(h+d);if(n[d]!==p){f=Math.max(1,d-a[p]);break}}if(f===0)return h}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=vt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=vt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof Le)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Fe(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new Le;return n.bufs=e,r==null&&(r=e.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};function _o(t){return t instanceof Uint8Array?{get(e){return t[e]},set(e,r){t[e]=r}}:{get(e){return t.get(e)},set(e,r){t.set(e,r)}}}var th=4294967296,dt=class{constructor(e=0,r=0){this.hi=e,this.lo=r}toBigInt(e){if(e===!0)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(e){return Number(this.toBigInt(e))}zzDecode(){let e=-(this.lo&1),r=((this.lo>>>1|this.hi<<31)^e)>>>0,n=(this.hi>>>1^e)>>>0;return new dt(n,r)}zzEncode(){let e=this.hi>>31,r=((this.hi<<1|this.lo>>>31)^e)>>>0,n=(this.lo<<1^e)>>>0;return new dt(r,n)}toBytes(e,r=0){let n=_o(e);for(;this.hi>0;)n.set(r++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(r++,this.lo&127|128),this.lo=this.lo>>>7;n.set(r++,this.lo)}static fromBigInt(e){if(e===0n)return new dt;let r=e<0;r&&(e=-e);let n=Number(e>>32n)|0,i=Number(e-(BigInt(n)<<32n))|0;return r&&(n=~n>>>0,i=~i>>>0,++i>th&&(i=0,++n>th&&(n=0))),new dt(n,i)}static fromNumber(e){if(e===0)return new dt;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new dt(i,n)}static fromBytes(e,r=0){let n=_o(e),i=new dt,o=0;if(e.length-r>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i;if(i.lo=(i.lo|(n.get(r)&127)<<28)>>>0,i.hi=(i.hi|(n.get(r)&127)>>4)>>>0,n.get(r++)<128)return i;o=0}else for(;o<4;++o){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i}if(e.length-r>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}else if(r<e.byteLength)for(;o<5;++o){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var _x=Math.pow(2,7),Tx=Math.pow(2,14),Ix=Math.pow(2,21),kx=Math.pow(2,28),Rx=Math.pow(2,35),Lx=Math.pow(2,42),Nx=Math.pow(2,49),Px=Math.pow(2,56),Ux=Math.pow(2,63),lr={encodingLength(t){return t<_x?1:t<Tx?2:t<Ix?3:t<kx?4:t<Rx?5:t<Lx?6:t<Nx?7:t<Px?8:t<Ux?9:10},encode(t,e,r=0){if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return e==null&&(e=vt(lr.encodingLength(t))),dt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return dt.fromBytes(t,e).toNumber(!0)}};function To(t){return t[Symbol.asyncIterator]!=null}var Io=t=>{let e=lr.encodingLength(t),r=vt(e);return lr.encode(t,r),Io.bytes=e,r};Io.bytes=0;function Wr(t,e){e=e??{};let r=e.lengthEncoder??Io;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return To(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}Wr.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Io;return new Le(r(t.byteLength),t)};var Fn=re(sc(),1);var Fx=8,Mx=1024*1024*4,Yr;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(Yr||(Yr={}));var ac=t=>{let e=lr.decode(t);return ac.bytes=lr.encodingLength(e),e};ac.bytes=0;function jr(t,e){let r=new Le,n=Yr.LENGTH,i=-1,o=e?.lengthDecoder??ac,s=e?.maxLengthLength??Fx,a=e?.maxDataLength??Mx;function*c(){for(;r.byteLength>0;){if(n===Yr.LENGTH)try{if(i=o(r),i<0)throw(0,Fn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Fn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=Yr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,Fn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Yr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=Yr.LENGTH}}}return To(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,Fn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,Fn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}jr.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await t.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return jr(n,{...e??{},onLength:o=>{r=o}})};var ko=class{constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Mn=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ko(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new ko(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};function $t(t={}){return Kx(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function Kx(t,e){e=e??{};let r=e.onEnd,n=new Mn,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((y,g)=>{o=m=>{o=null,n.push(m);try{y(t(n))}catch(w){g(w)}return i}}):t(n),c=y=>o!=null?o(y):(n.push(y),i),u=y=>(n=new Mn,o!=null?o({error:y}):(n.push({error:y}),i)),f=y=>{if(s)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:y})},h=y=>s?i:(s=!0,y!=null?u(y):c({done:!0})),d=()=>(n=new Mn,h(),{done:!0}),p=y=>(h(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:p,push:f,end:h,get readableLength(){return n.size}},r==null)return i;let l=i;return i={[Symbol.asyncIterator](){return this},next(){return l.next()},throw(y){return l.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return l.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return l.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return l.readableLength}},i}var Ro=re(sc(),1),oh=t=>lr.decode(t);oh.bytes=0;function Kn(t,e){let r=$t();t.sink(r).catch(s=>{r.end(s)}),t.sink=async s=>{for await(let a of s)r.push(a);r.end()};let n=t.source;t.source[Symbol.iterator]!=null?n=t.source[Symbol.iterator]():t.source[Symbol.asyncIterator]!=null&&(n=t.source[Symbol.asyncIterator]());let i=new Le,o={read:async s=>{if(s==null){let{done:c,value:u}=await n.next();return c===!0?new Le:u}for(;i.byteLength<s;){let{value:c,done:u}=await n.next();if(u===!0)throw(0,Ro.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF");i.append(c)}let a=i.sublist(0,s);return i.consume(s),a},readLP:async()=>{let s=-1,a=new Le,c=e?.lengthDecoder??oh;for(;;){a.append(await o.read(1));try{s=c(a)}catch(u){if(u instanceof RangeError)continue;throw u}if(s>-1)break;if(e?.maxLengthLength!=null&&a.byteLength>e.maxLengthLength)throw(0,Ro.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG")}if(e?.maxDataLength!=null&&s>e.maxDataLength)throw(0,Ro.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");return await o.read(s)},readPB:async s=>{let a=await o.readLP();if(a==null)throw new Error("Value is null");let c=a instanceof Uint8Array?a:a.subarray();return s.decode(c)},write:s=>{s instanceof Uint8Array?r.push(s):r.push(s.subarray())},writeLP:s=>{o.write(Wr.single(s,e))},writePB:(s,a)=>{o.writeLP(a.encode(s))},pb:s=>({read:async()=>await o.readPB(s),write:a=>{o.writePB(a,s)},unwrap:()=>o}),unwrap:()=>{let s=t.source;return t.source=async function*(){yield*i,yield*s}(),t}};return o}function Xr(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function sh(t){let e=new globalThis.AbortController;function r(){e.abort();for(let o of t)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of t){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of t)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}var pt=Me("libp2p:stream"),cc="ERR_STREAM_RESET",Vx="ERR_STREAM_ABORT",qx="ERR_SINK_ENDED",Hx="ERR_DOUBLE_SINK";function Qr(t){return t!=null&&typeof t.then=="function"}var Lo=class{id;stat;metadata;source;abortController;resetController;closeController;sourceEnded;sinkEnded;sinkSunk;endErr;streamSource;onEnd;maxDataSize;constructor(e){this.abortController=new AbortController,this.resetController=new AbortController,this.closeController=new AbortController,this.sourceEnded=!1,this.sinkEnded=!1,this.sinkSunk=!1,this.id=e.id,this.metadata=e.metadata??{},this.stat={direction:e.direction,timeline:{open:Date.now()}},this.maxDataSize=e.maxDataSize,this.onEnd=e.onEnd,this.source=this.streamSource=$t({onEnd:()=>{if(this.stat.timeline.reset!==null){let r=this.sendCloseRead();Qr(r)&&r.catch(n=>{pt.error("error while sending close read",n)})}this.onSourceEnd()}}),this.sink=this.sink.bind(this)}onSourceEnd(e){this.sourceEnded||(this.stat.timeline.closeRead=Date.now(),this.sourceEnded=!0,pt.trace("%s stream %s source end - err: %o",this.stat.direction,this.id,e),e!=null&&this.endErr==null&&(this.endErr=e),this.sinkEnded&&(this.stat.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)))}onSinkEnd(e){this.sinkEnded||(this.stat.timeline.closeWrite=Date.now(),this.sinkEnded=!0,pt.trace("%s stream %s sink end - err: %o",this.stat.direction,this.id,e),e!=null&&this.endErr==null&&(this.endErr=e),this.sourceEnded&&(this.stat.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)))}close(){pt.trace("%s stream %s close",this.stat.direction,this.id),this.closeRead(),this.closeWrite()}closeRead(){pt.trace("%s stream %s closeRead",this.stat.direction,this.id),!this.sourceEnded&&this.streamSource.end()}closeWrite(){if(pt.trace("%s stream %s closeWrite",this.stat.direction,this.id),!this.sinkEnded){this.closeController.abort();try{let e=this.sendCloseWrite();Qr(e)&&e.catch(r=>{pt.error("error while sending close write",r)})}catch(e){pt.trace("%s stream %s error sending close",this.stat.direction,this.id,e)}this.onSinkEnd()}}abort(e){pt.trace("%s stream %s abort",this.stat.direction,this.id,e),this.streamSource.end(e),this.abortController.abort(),this.onSinkEnd(e)}reset(){let e=new G("stream reset",cc);this.resetController.abort(),this.streamSource.end(e),this.onSinkEnd(e)}async sink(e){if(this.sinkSunk)throw new G("sink already called on stream",Hx);if(this.sinkSunk=!0,this.sinkEnded)throw new G("stream closed for writing",qx);let r=sh([this.abortController.signal,this.resetController.signal,this.closeController.signal]);try{if(e=Do(e,r),this.stat.direction==="outbound"){let n=this.sendNewStream();Qr(n)&&await n}for await(let n of e)for(;n.length>0;){if(n.length<=this.maxDataSize){let o=this.sendData(n instanceof Uint8Array?new Le(n):n);Qr(o)&&await o;break}n=n instanceof Uint8Array?new Le(n):n;let i=this.sendData(n.sublist(0,this.maxDataSize));Qr(i)&&await i,n.consume(this.maxDataSize)}}catch(n){if(n.type==="aborted"&&n.message==="The operation was aborted"){if(this.closeController.signal.aborted)return;this.resetController.signal.aborted&&(n.message="stream reset",n.code=cc),this.abortController.signal.aborted&&(n.message="stream aborted",n.code=Vx)}if(n.code===cc)pt.trace("%s stream %s reset",this.stat.direction,this.id);else{pt.trace("%s stream %s error",this.stat.direction,this.id,n);try{let i=this.sendReset();Qr(i)&&await i,this.stat.timeline.reset=Date.now()}catch(i){pt.trace("%s stream %s error sending reset",this.stat.direction,this.id,i)}}throw this.streamSource.end(n),this.onSinkEnd(n),n}finally{r.clear()}try{let n=this.sendCloseWrite();Qr(n)&&await n}catch(n){pt.trace("%s stream %s error sending close",this.stat.direction,this.id,n)}this.onSinkEnd()}sourcePush(e){this.streamSource.push(e)}sourceReadableLength(){return this.streamSource.readableLength}};var Vn=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},uc=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},ah=t=>globalThis.DOMException===void 0?new uc(t):new DOMException(t),ch=t=>{let e=t.reason===void 0?ah("This operation was aborted."):t.reason;return e instanceof Error?e:ah(e)};function fc(t,e,r,n){let i,o=new Promise((s,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){s(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(ch(c)),c.addEventListener("abort",()=>{a(ch(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(f){a(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new Vn(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{s(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}var zx=t=>{let e=t.on||t.addListener||t.addEventListener,r=t.off||t.removeListener||t.removeEventListener;if(!e||!r)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(t),removeListener:r.bind(t)}};function Gx(t,e,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");let a=[e].flat(),c=[],{addListener:u,removeListener:f}=zx(t),h=(...p)=>{let l=r.multiArgs?p:p[0];r.filter&&!r.filter(l)||(c.push(l),r.count===c.length&&(n(),o(c)))},d=p=>{n(),s(p)};n=()=>{for(let p of a)f(p,h);for(let p of r.rejectionEvents)f(p,d)};for(let p of a)u(p,h);for(let p of r.rejectionEvents)u(p,d);r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=fc(i,r.timeout);return o.cancel=n,o}return i}function uh(t,e,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Gx(t,e,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var Sc=re(yc(),1),Xh=re(qh(),1),Qh=re(Jr(),1),Cc=re(Ec(),1),Zh=re(jh(),1);function em(){Qh.default._configure(),Sc.default._configure(Xh.default),Cc.default._configure(Zh.default)}em();var Jh=["uint64","int64","sint64","fixed64","sfixed64"];function tm(t){for(let e of Jh){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function Ac(t){return tm(new Sc.default(t))}function rm(t){for(let e of Jh){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function Dc(){return rm(Cc.default.create())}function kt(t,e){let r=Ac(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Rt(t,e){let r=Dc();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Hn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(Hn||(Hn={}));function Fo(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function tn(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(o,s){let a=e(o);s.int32(a)},n=function(o){let s=o.int32();return e(s)};return Fo("enum",Hn.VARINT,r,n)}function Lt(t,e){return Fo("message",Hn.LENGTH_DELIMITED,t,e)}var Et;(function(t){let e;(function(i){i.FIN="FIN",i.STOP_SENDING="STOP_SENDING",i.RESET="RESET"})(e=t.Flag||(t.Flag={}));let r;(function(i){i[i.FIN=0]="FIN",i[i.STOP_SENDING=1]="STOP_SENDING",i[i.RESET=2]="RESET"})(r||(r={})),function(i){i.codec=()=>tn(r)}(e=t.Flag||(t.Flag={}));let n;t.codec=()=>(n==null&&(n=Lt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.flag!=null&&(o.uint32(8),t.Flag.codec().encode(i.flag,o)),i.message!=null&&(o.uint32(18),o.bytes(i.message)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.flag=t.Flag.codec().decode(i);break;case 2:s.message=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),t.encode=i=>Rt(i,t.codec()),t.decode=i=>kt(i,t.codec())})(Et||(Et={}));var Mo=Me("libp2p:webrtc:stream"),el=16*1024,nm=16*1024*1024,im=30*1e3,om=3,Bc=class extends Lo{channel;dataChannelOptions;incomingData;messageQueue;constructor(e){switch(super(e),this.channel=e.channel,this.channel.binaryType="arraybuffer",this.incomingData=$t(),this.messageQueue=new Le,this.dataChannelOptions={bufferedAmountLowEventTimeout:e.dataChannelOptions?.bufferedAmountLowEventTimeout??im,maxBufferedAmount:e.dataChannelOptions?.maxBufferedAmount??nm,maxMessageSize:e.dataChannelOptions?.maxMessageSize??el},this.channel.readyState){case"open":break;case"closed":case"closing":(this.stat.timeline.close===void 0||this.stat.timeline.close===0)&&(this.stat.timeline.close=Date.now());break;case"connecting":break;default:throw Mo.error("unknown datachannel state %s",this.channel.readyState),new G("Unknown datachannel state","ERR_INVALID_STATE")}this.channel.onopen=n=>{this.stat.timeline.open=new Date().getTime(),this.messageQueue!=null&&(this._sendMessage(this.messageQueue).catch(i=>{this.abort(i)}),this.messageQueue=void 0)},this.channel.onclose=n=>{this.close()},this.channel.onerror=n=>{let i=n.error;this.abort(i)};let r=this;this.channel.onmessage=async n=>{let{data:i}=n;i===null||i.byteLength===0||this.incomingData.push(new Uint8Array(i,0,i.byteLength))},Promise.resolve().then(async()=>{for await(let n of jr(this.incomingData)){let i=r.processIncomingProtobuf(n.subarray());i!=null&&r.sourcePush(new Le(i))}}).catch(n=>{Mo.error("error processing incoming data channel messages",n)})}sendNewStream(){}async _sendMessage(e,r=!0){if(r&&this.channel.bufferedAmount>this.dataChannelOptions.maxBufferedAmount)try{await uh(this.channel,"bufferedamountlow",{timeout:this.dataChannelOptions.bufferedAmountLowEventTimeout})}catch(n){throw n instanceof Vn?(this.abort(n),new Error("Timed out waiting for DataChannel buffer to clear")):n}if(this.channel.readyState==="closed"||this.channel.readyState==="closing")throw new G("Invalid datachannel state - closed or closing","ERR_INVALID_STATE");if(this.channel.readyState==="open")for(let n of e)this.channel.send(n);else if(this.channel.readyState==="connecting")this.messageQueue==null&&(this.messageQueue=new Le),this.messageQueue.append(e);else throw Mo.error("unknown datachannel state %s",this.channel.readyState),new G("Unknown datachannel state","ERR_INVALID_STATE")}async sendData(e){let r=Et.encode({message:e.subarray()}),n=Wr.single(r);await this._sendMessage(n)}async sendReset(){await this._sendFlag(Et.Flag.RESET)}async sendCloseWrite(){await this._sendFlag(Et.Flag.FIN)}async sendCloseRead(){await this._sendFlag(Et.Flag.STOP_SENDING)}processIncomingProtobuf(e){let r=Et.decode(e);return r.flag!==void 0&&(r.flag===Et.Flag.FIN&&(this.incomingData.end(),this.closeRead()),r.flag===Et.Flag.RESET&&this.reset(),r.flag===Et.Flag.STOP_SENDING&&this.closeWrite()),r.message}async _sendFlag(e){Mo.trace("Sending flag: %s",e.toString());let r=Et.encode({flag:e}),n=Wr.single(r);await this._sendMessage(n,!1)}};function zn(t){let{channel:e,direction:r,onEnd:n,dataChannelOptions:i}=t;return new Bc({id:r==="inbound"?`i${e.id}`:`r${e.id}`,direction:r,maxDataSize:(i?.maxMessageSize??el)-om,dataChannelOptions:i,onEnd:n,channel:e})}var tl="/webrtc",rn=class{protocol;peerConnection;streamBuffer=[];metrics;dataChannelOptions;constructor(e){this.peerConnection=e.peerConnection,this.metrics=e.metrics,this.protocol=e.protocol??tl,this.dataChannelOptions=e.dataChannelOptions,this.peerConnection.ondatachannel=({channel:r})=>{let n=zn({channel:r,direction:"inbound",dataChannelOptions:e.dataChannelOptions,onEnd:()=>{this.streamBuffer=this.streamBuffer.filter(i=>i.id!==n.id)}});this.streamBuffer.push(n)}}createStreamMuxer(e){return new _c({...e,peerConnection:this.peerConnection,dataChannelOptions:this.dataChannelOptions,metrics:this.metrics,streams:this.streamBuffer,protocol:this.protocol})}},_c=class{init;streams;protocol;peerConnection;dataChannelOptions;metrics;close=()=>{};source=Co();sink=Ao;constructor(e){this.init=e,this.streams=e.streams,this.peerConnection=e.peerConnection,this.protocol=e.protocol??tl,this.metrics=e.metrics,this.peerConnection.ondatachannel=({channel:n})=>{let i=zn({channel:n,direction:"inbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(o=>o.id!==i.id),this.metrics?.increment({stream_end:!0}),e?.onStreamEnd?.(i)}});this.streams.push(i),e?.onIncomingStream!=null&&(this.metrics?.increment({incoming_stream:!0}),e.onIncomingStream(i))};let r=e?.onIncomingStream;r!=null&&this.streams.forEach(n=>{r(n)})}newStream(){let e=this.peerConnection.createDataChannel(""),r=zn({channel:e,direction:"outbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(n=>n.id!==r.id),this.metrics?.increment({stream_end:!0}),this.init?.onStreamEnd?.(r)}});return this.streams.push(r),this.metrics?.increment({outgoing_stream:!0}),r}};var yt;(function(t){let e;(function(i){i.SDP_OFFER="SDP_OFFER",i.SDP_ANSWER="SDP_ANSWER",i.ICE_CANDIDATE="ICE_CANDIDATE"})(e=t.Type||(t.Type={}));let r;(function(i){i[i.SDP_OFFER=0]="SDP_OFFER",i[i.SDP_ANSWER=1]="SDP_ANSWER",i[i.ICE_CANDIDATE=2]="ICE_CANDIDATE"})(r||(r={})),function(i){i.codec=()=>tn(r)}(e=t.Type||(t.Type={}));let n;t.codec=()=>(n==null&&(n=Lt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),t.Type.codec().encode(i.type,o)),i.data!=null&&(o.uint32(18),o.string(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=t.Type.codec().decode(i);break;case 2:s.data=i.string();break;default:i.skipType(c&7);break}}return s})),n),t.encode=i=>Rt(i,t.codec()),t.decode=i=>kt(i,t.codec())})(yt||(yt={}));var Ko=Me("libp2p:webrtc:peer:util"),Tc=async(t,e,r)=>{for(;;){let n=await Promise.race([t.promise,r.read()]);if(n instanceof Object){let i=n;if(i.type!==yt.Type.ICE_CANDIDATE)throw new Error("expected only ice candidates");if(i.data==null||i.data===""){Ko.trace("end-of-candidates received");break}Ko.trace("received new ICE candidate: %s",i.data);try{await e.addIceCandidate(new RTCIceCandidate(JSON.parse(i.data)))}catch(o){throw Ko.error("bad candidate received: ",o),new Error("bad candidate received")}}else break}await t.promise};function Ic(t,e){t[Bi?"oniceconnectionstatechange":"onconnectionstatechange"]=r=>{switch(Ko.trace("receiver peerConnectionState state: ",t.connectionState),Bi?t.iceConnectionState:t.connectionState){case"connected":e.resolve();break;case"failed":case"disconnected":case"closed":e.reject(new Error("RTCPeerConnection was closed"));break;default:break}}}var sm=30*1e3,nn=Me("libp2p:webrtc:peer");async function rl({rtcConfiguration:t,dataChannelOptions:e,stream:r}){let n=AbortSignal.timeout(sm),i=Kn(oc(r,n)).pb(yt),o=new RTCPeerConnection(t),s=new rn({peerConnection:o,dataChannelOptions:e}),a=Xr(),c=Xr();n.onabort=()=>{a.reject()},o.onicecandidate=({candidate:p})=>{c.promise.then(()=>{i.write({type:yt.Type.ICE_CANDIDATE,data:p!=null?JSON.stringify(p.toJSON()):""})},l=>{nn.error("cannot set candidate since sending answer failed",l)})},Ic(o,a);let u=await i.read();if(u.type!==yt.Type.SDP_OFFER)throw new Error(`expected message type SDP_OFFER, received: ${u.type??"undefined"} `);let f=new RTCSessionDescription({type:"offer",sdp:u.data});await o.setRemoteDescription(f).catch(p=>{throw nn.error("could not execute setRemoteDescription",p),new Error("Failed to set remoteDescription")});let h=await o.createAnswer().catch(p=>{throw nn.error("could not execute createAnswer",p),c.reject(p),new Error("Failed to create answer")});i.write({type:yt.Type.SDP_ANSWER,data:h.sdp}),await o.setLocalDescription(h).catch(p=>{throw nn.error("could not execute setLocalDescription",p),c.reject(p),new Error("Failed to set localDescription")}),c.resolve(),await Tc(a,o,i);let d=il(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:d}}async function nl({rtcConfiguration:t,dataChannelOptions:e,signal:r,stream:n}){let i=Kn(oc(n,r)).pb(yt),o=new RTCPeerConnection(t),s=new rn({peerConnection:o,dataChannelOptions:e}),a=Xr();Ic(o,a),r.onabort=a.reject;let c=o.createDataChannel("init");o.onicecandidate=({candidate:p})=>{i.write({type:yt.Type.ICE_CANDIDATE,data:p!=null?JSON.stringify(p.toJSON()):""})};let u=await o.createOffer();i.write({type:yt.Type.SDP_OFFER,data:u.sdp}),await o.setLocalDescription(u).catch(p=>{throw nn.error("could not execute setLocalDescription",p),new Error("Failed to set localDescription")});let f=await i.read();if(f.type!==yt.Type.SDP_ANSWER)throw new Error("remote should send an SDP answer");let h=new RTCSessionDescription({type:"answer",sdp:f.data});await o.setRemoteDescription(h).catch(p=>{throw nn.error("could not execute setRemoteDescription",p),new Error("Failed to set remoteDescription")}),await Tc(a,o,i),c.close();let d=il(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:d}}function il(t){let e=t.split(`\r
|
|
34
|
-
`).filter(n=>n.startsWith("a=candidate")).pop(),r=e?.split(" ");return e==null||r==null||r.length<5?(nn("could not parse remote address from",e),"/webrtc"):`/dnsaddr/${r[4]}/${r[2]}/${r[3]}/webrtc`}var Vo=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new am(e,r))}},kc=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},am=globalThis.CustomEvent??kc;var cm=L("dns4"),um=L("dns6"),fm=L("dnsaddr"),on=Pe(L("dns"),fm,cm,um),zo=Pe(L("ip4"),L("ip6")),Gn=Pe(V(zo,L("tcp")),V(on,L("tcp"))),Go=V(zo,L("udp")),hm=V(Go,L("utp")),lm=V(Go,L("quic")),dm=V(Go,L("quic-v1")),Rc=Pe(V(Gn,L("ws")),V(on,L("ws"))),qo=Pe(V(Rc,L("p2p")),Rc),Lc=Pe(V(Gn,L("wss")),V(on,L("wss")),V(Gn,L("tls"),L("ws")),V(on,L("tls"),L("ws"))),Ho=Pe(V(Lc,L("p2p")),Lc),Nc=Pe(V(Gn,L("http")),V(zo,L("http")),V(on,L("http"))),Pc=Pe(V(Gn,L("https")),V(zo,L("https")),V(on,L("https"))),ol=V(Go,L("webrtc-direct"),L("certhash")),cl=Pe(V(ol,L("p2p")),ol),sl=V(dm,L("webtransport"),L("certhash"),L("certhash")),ul=Pe(V(sl,L("p2p")),sl),fl=Pe(V(qo,L("p2p-webrtc-star"),L("p2p")),V(Ho,L("p2p-webrtc-star"),L("p2p")),V(qo,L("p2p-webrtc-star")),V(Ho,L("p2p-webrtc-star"))),DD=Pe(V(qo,L("p2p-websocket-star"),L("p2p")),V(Ho,L("p2p-websocket-star"),L("p2p")),V(qo,L("p2p-websocket-star")),V(Ho,L("p2p-websocket-star"))),hl=Pe(V(Nc,L("p2p-webrtc-direct"),L("p2p")),V(Pc,L("p2p-webrtc-direct"),L("p2p")),V(Nc,L("p2p-webrtc-direct")),V(Pc,L("p2p-webrtc-direct"))),sn=Pe(Rc,Lc,Nc,Pc,fl,hl,Gn,hm,lm,on,cl,ul),BD=Pe(V(sn,L("p2p-stardust"),L("p2p")),V(sn,L("p2p-stardust"))),Ir=Pe(V(sn,L("p2p")),fl,hl,cl,ul,L("p2p")),al=Pe(V(Ir,L("p2p-circuit"),Ir),V(Ir,L("p2p-circuit")),V(L("p2p-circuit"),Ir),V(sn,L("p2p-circuit")),V(L("p2p-circuit"),sn),L("p2p-circuit")),ll=()=>Pe(V(al,ll),al),dr=ll(),_D=Pe(V(dr,Ir,dr),V(Ir,dr),V(dr,Ir),dr,Ir);var TD=Pe(V(dr,L("webrtc"),L("p2p")),V(dr,L("webrtc")),V(sn,L("webrtc"),L("p2p")),V(sn,L("webrtc")),L("webrtc"));function dl(t){function e(r){let n;try{n=fr(r)}catch{return!1}let i=t(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return e}function V(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:dl(e),partialMatch:e}}function Pe(...t){function e(n){let i=null;return t.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:dl(e),partialMatch:e}}function L(t){let e=t;function r(i){let o;try{o=fr(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===e}function n(i){return i.length===0?null:i[0]===e?i.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var $o=class extends Vo{peerId;transportManager;constructor(e){super(),this.peerId=e.peerId,this.transportManager=e.transportManager}async listen(){this.safeDispatchEvent("listening",{})}getAddrs(){return this.transportManager.getListeners().filter(e=>e!==this).map(e=>e.getAddrs().filter(r=>dr.matches(r)).map(r=>r.encapsulate(`/webrtc/p2p/${this.peerId}`))).flat()}async close(){this.safeDispatchEvent("close",{})}};var pl=Me("libp2p:webrtc:peer"),pm="/webrtc",ym="/p2p-circuit",Uc="/webrtc-signaling/0.0.1",gm=ye("webrtc").code,Wo=class{components;init;_started=!1;constructor(e,r={}){this.components=e,this.init=r}isStarted(){return this._started}async start(){await this.components.registrar.handle(Uc,e=>{this._onProtocol(e).catch(r=>{pl.error("failed to handle incoming connect from %p",e.connection.remotePeer,r)})}),this._started=!0}async stop(){await this.components.registrar.unhandle(Uc),this._started=!1}createListener(e){return new $o(this.components)}[Symbol.toStringTag]="@libp2p/webrtc";[uo]=!0;filter(e){return e.filter(r=>r.protoCodes().includes(gm))}async dial(e,r){pl.trace("dialing address: ",e);let{baseAddr:n,peerId:i}=xm(e);if(r.signal==null){let a=new AbortController;r.signal=a.signal}let s=await(await this.components.transportManager.dial(n,r)).newStream([Uc],r);try{let{pc:a,muxerFactory:c,remoteAddress:u}=await nl({stream:s,rtcConfiguration:this.init.rtcConfiguration,dataChannelOptions:this.init.dataChannel,signal:r.signal}),f=await r.upgrader.upgradeOutbound(new $r({peerConnection:a,timeline:{open:Date.now()},remoteAddr:fr(u).encapsulate(`/p2p/${i.toString()}`)}),{skipProtection:!0,skipEncryption:!0,muxerFactory:c});return s.close(),f}catch(a){throw s.reset(),a}}async _onProtocol({connection:e,stream:r}){try{let{pc:n,muxerFactory:i,remoteAddress:o}=await rl({rtcConfiguration:this.init.rtcConfiguration,connection:e,stream:r,dataChannelOptions:this.init.dataChannel});await this.components.upgrader.upgradeInbound(new $r({peerConnection:n,timeline:{open:new Date().getTime()},remoteAddr:fr(o).encapsulate(`/p2p/${e.remotePeer.toString()}`)}),{skipEncryption:!0,skipProtection:!0,muxerFactory:i})}catch(n){throw r.reset(),n}}};function xm(t){let e=t.toString().split(pm+"/");if(e.length!==2)throw new G("webrtc protocol was not present in multiaddr",lt.ERR_INVALID_MULTIADDR);if(!e[0].includes(ym))throw new G("p2p-circuit protocol was not present in multiaddr",lt.ERR_INVALID_MULTIADDR);let r=fr(e[0]),i=fr("/"+e[1]).getPeerId();if(i==null)throw new G("destination peer id was missing",lt.ERR_INVALID_MULTIADDR);let o=r.protos().pop();if(o===void 0)throw new G("invalid multiaddr",lt.ERR_INVALID_MULTIADDR);return o.name!=="p2p"&&(r=r.encapsulate(`/p2p/${i}`)),{baseAddr:r,peerId:Ci(i)}}function Oc(){let t=Xr(),e=!1;return{sink:async r=>{if(e)throw new Error("already piped");e=!0,t.resolve(r)},source:async function*(){yield*await t.promise}()}}function yl(){let t=Oc(),e=Oc();return[{source:t.source,sink:e.sink},{source:e.source,sink:t.sink}]}function mm(t){return t[Symbol.asyncIterator]!=null}function bm(...t){let e=[];for(let r of t)mm(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=$t({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var gl=bm;function xl(t,...e){if(t==null)throw new Error("Empty pipeline");if(Fc(t)){let n=t;t=()=>n.source}else if(bl(t)||ml(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&Fc(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)Fc(r[n])&&(r[n]=wm(r[n]));return vm(...r)}var vm=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},ml=t=>t?.[Symbol.asyncIterator]!=null,bl=t=>t?.[Symbol.iterator]!=null,Fc=t=>t==null?!1:t.sink!=null&&t.source!=null,wm=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=$t({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=t.source;if(ml(o))i=async function*(){yield*o,n.end()};else if(bl(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return gl(n,i())}return t.source};var vl=!!globalThis.process?.env?.DUMP_SESSION_KEYS;function Mc(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function Em(t){if(typeof t!="boolean")throw new Error(`Expected boolean, not ${t}`)}function wl(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function Sm(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Mc(t.outputLen),Mc(t.blockLen)}function Cm(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Am(t,e){wl(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Dm={number:Mc,bool:Em,bytes:wl,hash:Sm,exists:Cm,output:Am},gt=Dm;var ki=re(Oe("node:crypto"),1),Bm=ki&&typeof ki=="object"&&"webcrypto"in ki?ki.webcrypto:void 0;var _m=t=>t instanceof Uint8Array;var Yo=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Nt=(t,e)=>t<<32-e|t>>>e,Tm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Tm)throw new Error("Non little-endian hardware is not supported");var nB=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Im(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function kr(t){if(typeof t=="string"&&(t=Im(t)),!_m(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}var $n=class{clone(){return this._cloneInto()}};function Kc(t){let e=n=>t().update(kr(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}var jo=class extends $n{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,gt.hash(e);let n=kr(r);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?e.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(e){return gt.exists(this),this.iHash.update(e),this}digestInto(e){gt.exists(this),gt.bytes(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=o,e.blockLen=s,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Xo=(t,e,r)=>new jo(t,e).update(r).digest();Xo.create=(t,e)=>new jo(t,e);function km(t,e,r){return gt.hash(t),r===void 0&&(r=new Uint8Array(t.outputLen)),Xo(t,kr(r),kr(e))}var Vc=new Uint8Array([0]),El=new Uint8Array;function Rm(t,e,r,n=32){if(gt.hash(t),gt.number(n),n>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");let i=Math.ceil(n/t.outputLen);r===void 0&&(r=El);let o=new Uint8Array(i*t.outputLen),s=Xo.create(t,e),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let u=0;u<i;u++)Vc[0]=u+1,a.update(u===0?El:c).update(r).update(Vc).digestInto(c),o.set(c,t.outputLen*u),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Vc.fill(0),o.slice(0,n)}var Sl=(t,e,r,n,i)=>Rm(t,km(t,e,r),n,i);function Lm(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;t.setUint32(e+c,s,n),t.setUint32(e+u,a,n)}var Qo=class extends $n{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Yo(this.buffer)}update(e){gt.exists(this);let{view:r,buffer:n,blockLen:i}=this;e=kr(e);let o=e.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=Yo(e);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){gt.exists(this),gt.output(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let h=s;h<i;h++)r[h]=0;Lm(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Yo(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],o)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return e.length=i,e.pos=a,e.finished=o,e.destroyed=s,i%r&&e.buffer.set(n),e}};var Nm=(t,e,r)=>t&e^~t&r,Pm=(t,e,r)=>t&e^t&r^e&r,Um=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Rr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Lr=new Uint32Array(64),Zo=class extends Qo{constructor(){super(64,32,8,!1),this.A=Rr[0]|0,this.B=Rr[1]|0,this.C=Rr[2]|0,this.D=Rr[3]|0,this.E=Rr[4]|0,this.F=Rr[5]|0,this.G=Rr[6]|0,this.H=Rr[7]|0}get(){let{A:e,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[e,r,n,i,o,s,a,c]}set(e,r,n,i,o,s,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(e,r){for(let h=0;h<16;h++,r+=4)Lr[h]=e.getUint32(r,!1);for(let h=16;h<64;h++){let d=Lr[h-15],p=Lr[h-2],l=Nt(d,7)^Nt(d,18)^d>>>3,y=Nt(p,17)^Nt(p,19)^p>>>10;Lr[h]=y+Lr[h-7]+l+Lr[h-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){let d=Nt(a,6)^Nt(a,11)^Nt(a,25),p=f+d+Nm(a,c,u)+Um[h]+Lr[h]|0,y=(Nt(n,2)^Nt(n,13)^Nt(n,22))+Pm(n,i,o)|0;f=u,u=c,c=a,a=s+p|0,s=o,o=i,i=n,n=p+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Lr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},qc=class extends Zo{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},Hc=Kc(()=>new Zo),xB=Kc(()=>new qc);var i0=re(Qc(),1),Yn=re(Yl(),1),o0={hashSHA256(t){return Hc(t)},getHKDF(t,e){let r=Sl(Hc,e,t,void 0,96),n=r.subarray(0,32),i=r.subarray(32,64),o=r.subarray(64,96);return[n,i,o]},generateX25519KeyPair(){let t=Yn.generateKeyPair();return{publicKey:t.publicKey,privateKey:t.secretKey}},generateX25519KeyPairFromSeed(t){let e=Yn.generateKeyPairFromSeed(t);return{publicKey:e.publicKey,privateKey:e.secretKey}},generateX25519SharedKey(t,e){return Yn.sharedKey(t,e)},chaCha20Poly1305Encrypt(t,e,r,n){return new i0.ChaCha20Poly1305(n).seal(e,t,r)},chaCha20Poly1305Decrypt(t,e,r,n,i){return new i0.ChaCha20Poly1305(n).open(e,t,r,i)}};var s0=re(Qc(),1);var Fb=t=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t),jn=t=>{let e=Fb(2);return new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(0,t,!1),e};jn.bytes=2;var Pi=t=>{if(t.length<2)throw RangeError("Could not decode int16BE");return t instanceof Uint8Array?new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1):t.getUint16(0)};Pi.bytes=2;function jl(t){return pe([t.ne,t.ciphertext],t.ne.length+t.ciphertext.length)}function Xl(t){return pe([t.ne,t.ns,t.ciphertext],t.ne.length+t.ns.length+t.ciphertext.length)}function Ql(t){return pe([t.ns,t.ciphertext],t.ns.length+t.ciphertext.length)}function Zl(t){if(t.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:t.subarray(0,32),ciphertext:t.subarray(32,t.length),ns:new Uint8Array(0)}}function Jl(t){if(t.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:t.subarray(0,32),ns:t.subarray(32,80),ciphertext:t.subarray(80,t.length)}}function ed(t){if(t.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:t.subarray(0,48),ciphertext:t.subarray(48,t.length)}}function rd(t,e){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65519){let o=i+65519;o>n.length&&(o=n.length);let s=t.encrypt(n.subarray(i,o),t.session);e?.encryptedPackets.increment(),yield jn(s.byteLength),yield s}}}function nd(t,e){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65535){let o=i+65535;if(o>n.length&&(o=n.length),o-s0.TAG_LENGTH<i)throw new Error("Invalid chunk");let s=n.subarray(i,o),a=n.subarray(i,o-s0.TAG_LENGTH),{plaintext:c,valid:u}=t.decrypt(s,t.session,a);if(!u)throw e?.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");e?.decryptedPackets.increment(),yield c}}}var a0=class extends Error{code;constructor(e="Unexpected Peer"){super(e),this.code=a0.code}},Xn=a0;co(Xn,"code","ERR_UNEXPECTED_PEER");var c0=class extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=c0.code}},Nr=c0;co(Nr,"code","ERR_INVALID_CRYPTO_EXCHANGE");var vT=re(Ki(),1),wT=re(bp(),1);var j3=re(be(),1);var N0={};$e(N0,{Ed25519PrivateKey:()=>gn,Ed25519PublicKey:()=>Hi,generateKeyPair:()=>p3,generateKeyPairFromSeed:()=>_p,unmarshalEd25519PrivateKey:()=>l3,unmarshalEd25519PublicKey:()=>d3});var dn=re(Oe("crypto"),1),vp=Oe("util");var u3=(0,vp.promisify)(dn.default.generateKeyPair),pn=32,rr=64,Ds=32,f3=64;function wp(t){let r=dn.default.createPrivateKey({format:"jwk",key:{crv:"Ed25519",x:"",d:j(t,"base64url"),kty:"OKP"}}).export({format:"jwk"});if(r.x==null||r.x==="")throw new Error("Could not export JWK public key");return Ee(r.x,"base64url")}async function Ep(){let t=await u3("ed25519",{publicKeyEncoding:{type:"spki",format:"jwk"},privateKeyEncoding:{type:"pkcs8",format:"jwk"}}),e=Ee(t.privateKey.d,"base64url"),r=Ee(t.privateKey.x,"base64url");return{privateKey:Dp(e,r),publicKey:r}}async function Sp(t){if(t.length!==Ds)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=wp(t);return{privateKey:Dp(t,e),publicKey:e}}async function Cp(t,e){if(!(t instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');let r,n;if(t.byteLength===rr)r=t.subarray(0,32),n=t.subarray(32);else if(t.byteLength===Ds)r=t.subarray(0,32),n=wp(r);else throw new TypeError('"key" must be 64 or 32 bytes in length.');let i=dn.default.createPrivateKey({format:"jwk",key:{crv:"Ed25519",d:j(r,"base64url"),x:j(n,"base64url"),kty:"OKP"}});return dn.default.sign(null,e,i)}async function Ap(t,e,r){if(t.byteLength!==pn)throw new TypeError('"key" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==f3)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=dn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:j(t,"base64url"),kty:"OKP"}});return dn.default.verify(null,r,n,e)}function Dp(t,e){let r=new Uint8Array(rr);for(let n=0;n<Ds;n++)r[n]=t[n],r[Ds+n]=e[n];return r}var yn=re(Oe("crypto"),1);function R0(t){let e=t?.algorithm??"aes-128-gcm",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"sha256",o=t?.saltLength??16,s=t?.iterations??32767,a=t?.algorithmTagLength??16;async function c(p,l){let y=yn.default.randomBytes(n),g=yn.default.createCipheriv(e,l,y),m=pe([g.update(p),g.final()]);return pe([y,m,g.getAuthTag()])}async function u(p,l){let y=yn.default.randomBytes(o);typeof l=="string"&&(l=Ee(l));let g=yn.default.pbkdf2Sync(l,y,s,r,i);return pe([y,await c(Uint8Array.from(p),g)])}async function f(p,l){let y=p.subarray(0,n),g=p.subarray(n,p.length-a),m=p.subarray(g.length+n),w=yn.default.createDecipheriv(e,l,y);return w.setAuthTag(m),pe([w.update(g),w.final()])}async function h(p,l){let y=p.subarray(0,o),g=p.subarray(o);typeof l=="string"&&(l=Ee(l));let m=yn.default.pbkdf2Sync(l,y,s,r,i);return f(g,m)}return{encrypt:u,decrypt:h}}async function ti(t,e){let n=await R0().encrypt(t,e);return In.encode(n)}var _e;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(_e||(_e={}));var L0;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(L0||(L0={}));(function(t){t.codec=()=>tn(L0)})(_e||(_e={}));var nr;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(nr||(nr={}));var ir;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(ir||(ir={}));var Hi=class{_key;constructor(e){this._key=ri(e,pn)}async verify(e,r){return Ap(this._key,r,e)}marshal(){return this._key}get bytes(){return nr.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},gn=class{_key;_publicKey;constructor(e,r){this._key=ri(e,rr),this._publicKey=ri(r,pn)}async sign(e){return Cp(this._key,e)}get public(){return new Hi(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=Cr.digest(this.public.bytes);return Re.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function l3(t){if(t.length>rr){t=ri(t,rr+pn);let n=t.subarray(0,rr),i=t.subarray(rr,t.length);return new gn(n,i)}t=ri(t,rr);let e=t.subarray(0,rr),r=t.subarray(pn);return new gn(e,r)}function d3(t){return t=ri(t,pn),new Hi(t)}async function p3(){let{privateKey:t,publicKey:e}=await Ep();return new gn(t,e)}async function _p(t){let{privateKey:e,publicKey:r}=await Sp(t);return new gn(e,r)}function ri(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new G(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var y3={"P-256":"prime256v1","P-384":"secp384r1","P-521":"secp521r1"},g3=Object.keys(y3),A_=g3.join(" / ");var z0={};$e(z0,{RsaPrivateKey:()=>ui,RsaPublicKey:()=>Xi,fromJwk:()=>H3,generateKeyPair:()=>z3,unmarshalRsaPrivateKey:()=>V3,unmarshalRsaPublicKey:()=>q3});var ji=re(be(),1);var aT=re(Lp(),1);var vn=re(Oe("crypto"),1),jp=Oe("util");var b3=re(Oe("crypto"),1);var ie=BigInt(0),Ae=BigInt(1),Kr=BigInt(2),$i=BigInt(3),Np=BigInt(8),ke=Object.freeze({a:ie,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Ae,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Pp=(t,e)=>(t+e/Kr)/e,_s={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(t){let{n:e}=ke,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ae*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=Pp(o*t,e),c=Pp(-n*t,e),u=P(t-a*r-c*i,e),f=P(-a*n-c*o,e),h=u>s,d=f>s;if(h&&(u=e-u),d&&(f=e-f),u>s||f>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}},Ot=32,oi=32,v3=32,Up=Ot+1,Op=2*Ot+1;function Fp(t){let{a:e,b:r}=ke,n=P(t*t),i=P(n*t);return P(i+e*t+r)}var Ts=ke.a===ie,Rs=class extends Error{constructor(e){super(e)}};function Mp(t){if(!(t instanceof ae))throw new TypeError("JacobianPoint expected")}var ae=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(ge.ZERO)?ae.ZERO:new ae(e.x,e.y,Ae)}static toAffineBatch(e){let r=A3(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return ae.toAffineBatch(e).map(ae.fromAffine)}equals(e){Mp(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e,c=P(i*i),u=P(a*a),f=P(r*u),h=P(o*c),d=P(P(n*a)*u),p=P(P(s*i)*c);return f===h&&d===p}negate(){return new ae(this.x,P(-this.y),this.z)}double(){let{x:e,y:r,z:n}=this,i=P(e*e),o=P(r*r),s=P(o*o),a=e+o,c=P(Kr*(P(a*a)-i-s)),u=P($i*i),f=P(u*u),h=P(f-Kr*c),d=P(u*(c-h)-Np*s),p=P(Kr*r*n);return new ae(h,d,p)}add(e){Mp(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e;if(o===ie||s===ie)return this;if(r===ie||n===ie)return e;let c=P(i*i),u=P(a*a),f=P(r*u),h=P(o*c),d=P(P(n*a)*u),p=P(P(s*i)*c),l=P(h-f),y=P(p-d);if(l===ie)return y===ie?this.double():ae.ZERO;let g=P(l*l),m=P(l*g),w=P(f*g),v=P(y*y-m-Kr*w),A=P(y*(w-v)-d*m),E=P(i*a*l);return new ae(v,A,E)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=ae.ZERO;if(typeof e=="bigint"&&e===ie)return r;let n=qp(e);if(n===Ae)return this;if(!Ts){let h=r,d=this;for(;n>ie;)n&Ae&&(h=h.add(d)),d=d.double(),n>>=Ae;return h}let{k1neg:i,k1:o,k2neg:s,k2:a}=_s.splitScalar(n),c=r,u=r,f=this;for(;o>ie||a>ie;)o&Ae&&(c=c.add(f)),a&Ae&&(u=u.add(f)),f=f.double(),o>>=Ae,a>>=Ae;return i&&(c=c.negate()),s&&(u=u.negate()),u=new ae(P(u.x*_s.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=Ts?128/e+1:256/e+1,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(e-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(e,r){!r&&this.equals(ae.BASE)&&(r=ge.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&F0.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ae.normalizeZ(i),F0.set(r,i)));let o=ae.ZERO,s=ae.BASE,a=1+(Ts?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),f=2**n,h=BigInt(n);for(let d=0;d<a;d++){let p=d*c,l=Number(e&u);e>>=h,l>c&&(l-=f,e+=Ae);let y=p,g=p+Math.abs(l)-1,m=d%2!==0,w=l<0;l===0?s=s.add(Is(m,i[y])):o=o.add(Is(w,i[g]))}return{p:o,f:s}}multiply(e,r){let n=qp(e),i,o;if(Ts){let{k1neg:s,k1:a,k2neg:c,k2:u}=_s.splitScalar(n),{p:f,f:h}=this.wNAF(a,r),{p:d,f:p}=this.wNAF(u,r);f=Is(s,f),d=Is(c,d),d=new ae(P(d.x*_s.beta),d.y,d.z),i=f.add(d),o=h.add(p)}else{let{p:s,f:a}=this.wNAF(n,r);i=s,o=a}return ae.normalizeZ([i,o])[0]}toAffine(e){let{x:r,y:n,z:i}=this,o=this.equals(ae.ZERO);e==null&&(e=o?Np:ci(i));let s=e,a=P(s*s),c=P(a*s),u=P(r*a),f=P(n*c),h=P(i*s);if(o)return ge.ZERO;if(h!==Ae)throw new Error("invZ was invalid");return new ge(u,f)}};ae.BASE=new ae(ke.Gx,ke.Gy,Ae);ae.ZERO=new ae(ie,Ae,ie);function Is(t,e){let r=e.negate();return t?r:e}var F0=new WeakMap,ge=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,F0.delete(this)}hasEvenY(){return this.y%Kr===ie}static fromCompressedHex(e){let r=e.length===32,n=Vr(r?e:e.subarray(1));if(!O0(n))throw new Error("Point is not on curve");let i=Fp(n),o=C3(i),s=(o&Ae)===Ae;r?s&&(o=P(-o)):(e[0]&1)===1!==s&&(o=P(-o));let a=new ge(n,o);return a.assertValidity(),a}static fromUncompressedHex(e){let r=Vr(e.subarray(1,Ot+1)),n=Vr(e.subarray(Ot+1,Ot*2+1)),i=new ge(r,n);return i.assertValidity(),i}static fromHex(e){let r=ai(e),n=r.length,i=r[0];if(n===Ot)return this.fromCompressedHex(r);if(n===Up&&(i===2||i===3))return this.fromCompressedHex(r);if(n===Op&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Up} compressed bytes or ${Op} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return ge.BASE.multiply(Ns(e))}static fromSignature(e,r,n){let{r:i,s:o}=Hp(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=V0(ai(e)),{n:a}=ke,c=n===2||n===3?i+a:i,u=ci(c,a),f=P(-s*u,a),h=P(o*u,a),d=n&1?"03":"02",p=ge.fromHex(d+ni(c)),l=ge.BASE.multiplyAndAddUnsafe(p,f,h);if(!l)throw new Error("Cannot recover signature: point at infinify");return l.assertValidity(),l}toRawBytes(e=!1){return mn(this.toHex(e))}toHex(e=!1){let r=ni(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${ni(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let e="Point is not on elliptic curve",{x:r,y:n}=this;if(!O0(r)||!O0(n))throw new Error(e);let i=P(n*n),o=Fp(r);if(P(i-o)!==ie)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new ge(this.x,P(-this.y))}double(){return ae.fromAffine(this).double().toAffine()}add(e){return ae.fromAffine(this).add(ae.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ae.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=ae.fromAffine(this),o=r===ie||r===Ae||this!==ge.BASE?i.multiplyUnsafe(r):i.multiply(r),s=ae.fromAffine(e).multiplyUnsafe(n),a=o.add(s);return a.equals(ae.ZERO)?void 0:a.toAffine()}};ge.BASE=new ge(ke.Gx,ke.Gy);ge.ZERO=new ge(ie,ie);function Kp(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function Vp(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${si(t)}`);let e=t[1],r=t.subarray(2,e+2);if(!e||r.length!==e)throw new Error("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Vr(r),left:t.subarray(e+2)}}function w3(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${si(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=Vp(t.subarray(2)),{data:n,left:i}=Vp(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${si(i)}`);return{r:e,s:n}}var or=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromCompact(e){let r=e instanceof Uint8Array,n="Signature.fromCompact";if(typeof e!="string"&&!r)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=r?si(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new or(Ls(i.slice(0,64)),Ls(i.slice(64,128)))}static fromDER(e){let r=e instanceof Uint8Array;if(typeof e!="string"&&!r)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=w3(r?e:mn(e));return new or(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!Yi(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Yi(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=ke.n>>Ae;return this.s>e}normalizeS(){return this.hasHighS()?new or(this.r,P(-this.s,ke.n)):this}toDERRawBytes(){return mn(this.toDERHex())}toDERHex(){let e=Kp(Gi(this.s)),r=Kp(Gi(this.r)),n=e.length/2,i=r.length/2,o=Gi(n),s=Gi(i);return`30${Gi(i+n+4)}02${s}${r}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return mn(this.toCompactHex())}toCompactHex(){return ni(this.r)+ni(this.s)}};function Mr(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let o=t[n];r.set(o,i),i+=o.length}return r}var E3=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function si(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=E3[t[r]];return e}var S3=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function ni(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(ie<=t&&t<S3))throw new Error("Expected number 0 <= n < 2^256");return t.toString(16).padStart(64,"0")}function M0(t){let e=mn(ni(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function Gi(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ls(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function mn(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+t.length);let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[r]=o}return e}function Vr(t){return Ls(si(t))}function ai(t){return t instanceof Uint8Array?Uint8Array.from(t):mn(t)}function qp(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&Yi(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(t,e=ke.P){let r=t%e;return r>=ie?r:e+r}function At(t,e){let{P:r}=ke,n=t;for(;e-- >ie;)n*=n,n%=r;return n}function C3(t){let{P:e}=ke,r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=t*t*t%e,u=c*c*t%e,f=At(u,$i)*u%e,h=At(f,$i)*u%e,d=At(h,Kr)*c%e,p=At(d,n)*d%e,l=At(p,i)*p%e,y=At(l,s)*l%e,g=At(y,a)*y%e,m=At(g,s)*l%e,w=At(m,$i)*u%e,v=At(w,o)*p%e,A=At(v,r)*c%e,E=At(A,Kr);if(E*E%e!==t)throw new Error("Cannot find square root");return E}function ci(t,e=ke.P){if(t===ie||e<=ie)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=P(t,e),n=e,i=ie,o=Ae,s=Ae,a=ie;for(;r!==ie;){let u=n/r,f=n%r,h=i-s*u,d=o-a*u;n=r,r=f,i=s,o=a,s=h,a=d}if(n!==Ae)throw new Error("invert: does not exist");return P(i,e)}function A3(t,e=ke.P){let r=new Array(t.length),n=t.reduce((o,s,a)=>s===ie?o:(r[a]=o,P(o*s,e)),Ae),i=ci(n,e);return t.reduceRight((o,s,a)=>s===ie?o:(r[a]=P(o*r[a],e),P(o*s,e)),i),r}function D3(t){let e=t.length*8-oi*8,r=Vr(t);return e>0?r>>BigInt(e):r}function V0(t,e=!1){let r=D3(t);if(e)return r;let{n}=ke;return r>=n?r-n:r}var ii,Wi,K0=class{constructor(e,r){if(this.hashLen=e,this.qByteLen=r,typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(...e){return Ft.hmacSha256(this.k,...e)}hmacSync(...e){return Wi(this.k,...e)}checkSync(){if(typeof Wi!="function")throw new Rs("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),e.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),e.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Mr(...r)}generateSync(){this.checkSync(),this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Mr(...r)}};function Yi(t){return ie<t&&t<ke.n}function O0(t){return ie<t&&t<ke.P}function B3(t,e,r,n=!0){let{n:i}=ke,o=V0(t,!0);if(!Yi(o))return;let s=ci(o,i),a=ge.BASE.multiply(o),c=P(a.x,i);if(c===ie)return;let u=P(s*P(e+r*c,i),i);if(u===ie)return;let f=new or(c,u),h=(a.x===f.r?0:2)|Number(a.y&Ae);return n&&f.hasHighS()&&(f=f.normalizeS(),h^=1),{sig:f,recovery:h}}function Ns(t){let e;if(typeof t=="bigint")e=t;else if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)e=BigInt(t);else if(typeof t=="string"){if(t.length!==2*oi)throw new Error("Expected 32 bytes of private key");e=Ls(t)}else if(t instanceof Uint8Array){if(t.length!==oi)throw new Error("Expected 32 bytes of private key");e=Vr(t)}else throw new TypeError("Expected valid private key");if(!Yi(e))throw new Error("Expected private key: 0 < key < n");return e}function _3(t){return t instanceof ge?(t.assertValidity(),t):ge.fromHex(t)}function Hp(t){if(t instanceof or)return t.assertValidity(),t;try{return or.fromDER(t)}catch{return or.fromCompact(t)}}function q0(t,e=!1){return ge.fromPrivateKey(t).toRawBytes(e)}function zp(t){let e=t.length>Ot?t.slice(0,Ot):t;return Vr(e)}function T3(t){let e=zp(t),r=P(e,ke.n);return Gp(r<ie?e:r)}function Gp(t){return M0(t)}function I3(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ai(t),i=Ns(e),o=[Gp(i),T3(n)];if(r!=null){r===!0&&(r=Ft.randomBytes(Ot));let c=ai(r);if(c.length!==Ot)throw new Error(`sign: Expected ${Ot} bytes of extra data`);o.push(c)}let s=Mr(...o),a=zp(n);return{seed:s,m:a,d:i}}function k3(t,e){let{sig:r,recovery:n}=t,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},e),s=i?r.toDERRawBytes():r.toCompactRawBytes();return o?[s,n]:s}async function $p(t,e,r={}){let{seed:n,m:i,d:o}=I3(t,e,r.extraEntropy),s=new K0(v3,oi);await s.reseed(n);let a;for(;!(a=B3(await s.generate(),i,o,r.canonical));)await s.reseed();return k3(a,r)}var R3={strict:!0};function Wp(t,e,r,n=R3){let i;try{i=Hp(t),e=ai(e)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=V0(e),c;try{c=_3(r)}catch{return!1}let{n:u}=ke,f=ci(s,u),h=P(a*f,u),d=P(o*f,u),p=ge.BASE.multiplyAndAddUnsafe(c,h,d);return p?P(p.x,u)===o:!1}ge.BASE._setWindowSize(8);var mt={node:b3,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var ks={},Ft={bytesToHex:si,hexToBytes:mn,concatBytes:Mr,mod:P,invert:ci,isValidPrivateKey(t){try{return Ns(t),!0}catch{return!1}},_bigintTo32Bytes:M0,_normalizePrivateKey:Ns,hashToPrivateKey:t=>{t=ai(t);let e=oi+8;if(t.length<e||t.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=P(Vr(t),ke.n-Ae)+Ae;return M0(r)},randomBytes:(t=32)=>{if(mt.web)return mt.web.getRandomValues(new Uint8Array(t));if(mt.node){let{randomBytes:e}=mt.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Ft.hashToPrivateKey(Ft.randomBytes(oi+8)),precompute(t=8,e=ge.BASE){let r=e===ge.BASE?e:new ge(e.x,e.y);return r._setWindowSize(t),r.multiply($i),r},sha256:async(...t)=>{if(mt.web){let e=await mt.web.subtle.digest("SHA-256",Mr(...t));return new Uint8Array(e)}else if(mt.node){let{createHash:e}=mt.node,r=e("sha256");return t.forEach(n=>r.update(n)),Uint8Array.from(r.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(t,...e)=>{if(mt.web){let r=await mt.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Mr(...e),i=await mt.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(mt.node){let{createHmac:r}=mt.node,n=r("sha256",t);return e.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(t,...e)=>{let r=ks[t];if(r===void 0){let n=await Ft.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Mr(n,n),ks[t]=r}return Ft.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof ii!="function")throw new Rs("sha256Sync is undefined, you need to set it");let r=ks[t];if(r===void 0){let n=ii(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Mr(n,n),ks[t]=r}return ii(r,...e)},_JacobianPoint:ae};Object.defineProperties(Ft,{sha256Sync:{configurable:!1,get(){return ii},set(t){ii||(ii=t)}},hmacSha256Sync:{configurable:!1,get(){return Wi},set(t){Wi||(Wi=t)}}});function Ps(t){if(isNaN(t)||t<=0)throw new G("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ft.randomBytes(t)}var bn={};$e(bn,{jwkToPkcs1:()=>U3,jwkToPkix:()=>F3,pkcs1ToJwk:()=>P3,pkixToJwk:()=>O3});var X_=re(Ki(),1),Q_=re(k0(),1);var vr=re(be(),1);var z_=re(Ue(),1),G_=re(Ss(),1),Yp=re(be(),1);function Mt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=pe([new Uint8Array(e-r.length),r])}return j(r,"base64url")}function Kt(t){let e=N3(t);return new Yp.default.jsbn.BigInteger(j(e,"base16"),16)}function N3(t,e){let r=Ee(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=pe([new Uint8Array(e-r.length),r])}return r}function P3(t){let e=vr.default.asn1.fromDer(j(t,"ascii")),r=vr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Mt(r.n),e:Mt(r.e),d:Mt(r.d),p:Mt(r.p),q:Mt(r.q),dp:Mt(r.dP),dq:Mt(r.dQ),qi:Mt(r.qInv),alg:"RS256"}}function U3(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new G("JWK was missing components","ERR_INVALID_PARAMETERS");let e=vr.default.pki.privateKeyToAsn1({n:Kt(t.n),e:Kt(t.e),d:Kt(t.d),p:Kt(t.p),q:Kt(t.q),dP:Kt(t.dp),dQ:Kt(t.dq),qInv:Kt(t.qi)});return Ee(vr.default.asn1.toDer(e).getBytes(),"ascii")}function O3(t){let e=vr.default.asn1.fromDer(j(t,"ascii")),r=vr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Mt(r.n),e:Mt(r.e)}}function F3(t){if(t.n==null||t.e==null)throw new G("JWK was missing components","ERR_INVALID_PARAMETERS");let e=vr.default.pki.publicKeyToAsn1({n:Kt(t.n),e:Kt(t.e)});return Ee(vr.default.asn1.toDer(e).getBytes(),"ascii")}var M3=(0,jp.promisify)(vn.default.generateKeyPair);async function Xp(t){let e=await M3("rsa",{modulusLength:t,publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}});return{privateKey:e.privateKey,publicKey:e.publicKey}}async function H0(t){if(t==null)throw new G("Missing key parameter","ERR_MISSING_KEY");return{privateKey:t,publicKey:{kty:t.kty,n:t.n,e:t.e}}}async function Qp(t,e){return vn.default.createSign("RSA-SHA256").update(e).sign({format:"jwk",key:t})}async function Zp(t,e,r){return vn.default.createVerify("RSA-SHA256").update(r).verify({format:"jwk",key:t},e)}var Jp=vn.default.constants.RSA_PKCS1_PADDING;function e1(t,e){return vn.default.publicEncrypt({format:"jwk",key:t,padding:Jp},e)}function t1(t,e){return vn.default.privateDecrypt({format:"jwk",key:t,padding:Jp},e)}var Xi=class{_key;constructor(e){this._key=e}async verify(e,r){return Zp(this._key,r,e)}marshal(){return bn.jwkToPkix(this._key)}get bytes(){return nr.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}encrypt(e){return e1(this._key,e)}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},ui=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Ps(16)}async sign(e){return Qp(this._key,e)}get public(){if(this._publicKey==null)throw new G("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Xi(this._publicKey)}decrypt(e){return t1(this._key,e)}marshal(){return bn.jwkToPkcs1(this._key)}get bytes(){return ir.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=await this.public.hash();return j(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new ji.default.util.ByteBuffer(this.marshal()),i=ji.default.asn1.fromDer(n),o=ji.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ji.default.pki.encryptRsaPrivateKey(o,e,s)}else{if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function V3(t){let e=bn.pkcs1ToJwk(t),r=await H0(e);return new ui(r.privateKey,r.publicKey)}function q3(t){let e=bn.pkixToJwk(t);return new Xi(e)}async function H3(t){let e=await H0(t);return new ui(e.privateKey,e.publicKey)}async function z3(t){let e=await Xp(t);return new ui(e.privateKey,e.publicKey)}var $0={};$e($0,{Secp256k1PrivateKey:()=>Zi,Secp256k1PublicKey:()=>Qi,generateKeyPair:()=>Y3,unmarshalSecp256k1PrivateKey:()=>$3,unmarshalSecp256k1PublicKey:()=>W3});function r1(){return Ft.randomPrivateKey()}async function n1(t,e){let{digest:r}=await Ye.digest(e);try{return await $p(r,t)}catch(n){throw new G(String(n),"ERR_INVALID_INPUT")}}async function i1(t,e,r){try{let{digest:n}=await Ye.digest(r);return Wp(e,n,t)}catch(n){throw new G(String(n),"ERR_INVALID_INPUT")}}function o1(t){return ge.fromHex(t).toRawBytes(!0)}function s1(t){try{q0(t,!0)}catch(e){throw new G(String(e),"ERR_INVALID_PRIVATE_KEY")}}function G0(t){try{ge.fromHex(t)}catch(e){throw new G(String(e),"ERR_INVALID_PUBLIC_KEY")}}function a1(t){try{return q0(t,!0)}catch(e){throw new G(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Qi=class{_key;constructor(e){G0(e),this._key=e}async verify(e,r){return i1(this._key,r,e)}marshal(){return o1(this._key)}get bytes(){return nr.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},Zi=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??a1(e),s1(this._key),G0(this._publicKey)}async sign(e){return n1(this._key,e)}get public(){return new Qi(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=await this.public.hash();return j(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function $3(t){return new Zi(t)}function W3(t){return new Qi(t)}async function Y3(){let t=r1();return new Zi(t)}var wn={rsa:z0,ed25519:N0,secp256k1:$0};function c1(t){let e=Object.keys(wn).join(" / ");return new G(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function u1(t){let e=nr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case _e.RSA:return wn.rsa.unmarshalRsaPublicKey(r);case _e.Ed25519:return wn.ed25519.unmarshalEd25519PublicKey(r);case _e.Secp256k1:return wn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw c1(e.Type??"RSA")}}async function f1(t){let e=ir.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case _e.RSA:return wn.rsa.unmarshalRsaPrivateKey(r);case _e.Ed25519:return wn.ed25519.unmarshalEd25519PrivateKey(r);case _e.Secp256k1:return wn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw c1(e.Type??"RSA")}}var Us;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let o of r.webtransportCerthashes)n.uint32(10),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={webtransportCerthashes:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.webtransportCerthashes.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(Us||(Us={}));var Ji;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identityKey!=null&&r.identityKey.byteLength>0)&&(n.uint32(10),n.bytes(r.identityKey??new Uint8Array(0))),(i.writeDefaults===!0||r.identitySig!=null&&r.identitySig.byteLength>0)&&(n.uint32(18),n.bytes(r.identitySig??new Uint8Array(0))),r.extensions!=null&&(n.uint32(34),Us.codec().encode(r.extensions,n,{writeDefaults:!1})),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identityKey=r.bytes();break;case 2:i.identitySig=r.bytes();break;case 4:i.extensions=Us.codec().decode(r,r.uint32());break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(Ji||(Ji={}));async function h1(t,e,r){let n=await Q3(t,l1(e));if(t.publicKey==null)throw new Error("PublicKey was missing from local PeerId");return X3(t.publicKey,n,r)}function X3(t,e,r){return Ji.encode({identityKey:t,identitySig:e,extensions:r??{webtransportCerthashes:[]}}).subarray()}async function Q3(t,e){if(t.privateKey==null)throw new Error("PrivateKey was missing from PeerId");return(await f1(t.privateKey)).sign(e)}async function W0(t){return Ua(t.identityKey)}function Y0(t){return Ji.decode(t)}function l1(t){let e=Ee("noise-libp2p-static-key:");return pe([e,t],e.length+t.length)}async function j0(t,e,r){let n=await Ua(e.identityKey);if(!n.equals(r))throw new Error(`Payload identity key ${n.toString()} does not match expected remote peer ${r.toString()}`);let i=l1(t);if(n.publicKey==null)throw new Error("PublicKey was missing from PeerId");if(e.identitySig==null)throw new Error("Signature was missing from message");if(!await u1(n.publicKey).verify(i,e.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function eo(t){return!(!(t instanceof Uint8Array)||t.length!==32)}var ze=Me("libp2p:noise");var Dt;vl?Dt=ze:Dt=Object.assign(()=>{},{enabled:!1,trace:()=>{},error:()=>{}});function d1(t){Dt(`LOCAL_STATIC_PUBLIC_KEY ${j(t.publicKey,"hex")}`),Dt(`LOCAL_STATIC_PRIVATE_KEY ${j(t.privateKey,"hex")}`)}function X0(t){t?(Dt(`LOCAL_PUBLIC_EPHEMERAL_KEY ${j(t.publicKey,"hex")}`),Dt(`LOCAL_PRIVATE_EPHEMERAL_KEY ${j(t.privateKey,"hex")}`)):Dt("Missing local ephemeral keys.")}function p1(t){Dt(`REMOTE_STATIC_PUBLIC_KEY ${j(t,"hex")}`)}function Q0(t){Dt(`REMOTE_EPHEMERAL_PUBLIC_KEY ${j(t,"hex")}`)}function y1(t){t.cs1&&t.cs2?(Dt(`CIPHER_STATE_1 ${t.cs1.n.getUint64()} ${j(t.cs1.k,"hex")}`),Dt(`CIPHER_STATE_2 ${t.cs2.n.getUint64()} ${j(t.cs2.k,"hex")}`)):Dt("Missing cipher state.")}var Z3="Cipherstate has reached maximum n, a new handshake must be performed",Os=class{n;bytes;view;constructor(e=0){this.n=e,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error(Z3)}};var Fs=class{crypto;constructor(e){this.crypto=e}encryptWithAd(e,r,n){let i=this.encrypt(e.k,e.n,r,n);return e.n.increment(),i}decryptWithAd(e,r,n,i){let{plaintext:o,valid:s}=this.decrypt(e.k,e.n,r,n,i);return s&&e.n.increment(),{plaintext:o,valid:s}}hasKey(e){return!this.isEmptyKey(e.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(e){let r=this.createEmptyKey();return Fe(r,e)}encrypt(e,r,n,i){return r.assertValue(),this.crypto.chaCha20Poly1305Encrypt(i,r.getBytes(),n,e)}encryptAndHash(e,r){let n;return this.hasKey(e.cs)?n=this.encryptWithAd(e.cs,e.h,r):n=r,this.mixHash(e,n),n}decrypt(e,r,n,i,o){r.assertValue();let s=this.crypto.chaCha20Poly1305Decrypt(i,r.getBytes(),n,e,o);return s?{plaintext:s,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(e,r){let n,i=!0;return this.hasKey(e.cs)?{plaintext:n,valid:i}=this.decryptWithAd(e.cs,e.h,r):n=r,this.mixHash(e,r),{plaintext:n,valid:i}}dh(e,r){try{let n=this.crypto.generateX25519SharedKey(e,r);return n.length===32?n:n.subarray(0,32)}catch(n){let i=n;return ze.error(i),new Uint8Array(32)}}mixHash(e,r){e.h=this.getHash(e.h,r)}getHash(e,r){return this.crypto.hashSHA256(pe([e,r],e.length+r.length))}mixKey(e,r){let[n,i]=this.crypto.getHKDF(e.ck,r);e.cs=this.initializeKey(i),e.ck=n}initializeKey(e){return{k:e,n:new Os}}initializeSymmetric(e){let r=Ee(e,"utf-8"),n=this.hashProtocolName(r),i=n,o=this.createEmptyKey();return{cs:this.initializeKey(o),ck:i,h:n}}hashProtocolName(e){if(e.length<=32){let r=new Uint8Array(32);return r.set(e),r}else return this.getHash(e,new Uint8Array(0))}split(e){let[r,n]=this.crypto.getHKDF(e.ck,new Uint8Array(0)),i=this.initializeKey(r),o=this.initializeKey(n);return{cs1:i,cs2:o}}writeMessageRegular(e,r){let n=this.encryptWithAd(e,new Uint8Array(0),r),i=this.createEmptyKey(),o=new Uint8Array(0);return{ne:i,ns:o,ciphertext:n}}readMessageRegular(e,r){return this.decryptWithAd(e,new Uint8Array(0),r.ciphertext)}};var Ms=class extends Fs{initializeInitiator(e,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,e);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}initializeResponder(e,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,e);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}writeMessageA(e,r,n){let i=new Uint8Array(0);n!==void 0?e.e=n:e.e=this.crypto.generateX25519KeyPair();let o=e.e.publicKey;this.mixHash(e.ss,o);let s=this.encryptAndHash(e.ss,r);return{ne:o,ns:i,ciphertext:s}}writeMessageB(e,r){e.e=this.crypto.generateX25519KeyPair();let n=e.e.publicKey;this.mixHash(e.ss,n),this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));let i=e.s.publicKey,o=this.encryptAndHash(e.ss,i);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));let s=this.encryptAndHash(e.ss,r);return{ne:n,ns:o,ciphertext:s}}writeMessageC(e,r){let n=e.s.publicKey,i=this.encryptAndHash(e.ss,n);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));let o=this.encryptAndHash(e.ss,r),a={ne:this.createEmptyKey(),ns:i,ciphertext:o},{cs1:c,cs2:u}=this.split(e.ss);return{h:e.ss.h,messageBuffer:a,cs1:c,cs2:u}}readMessageA(e,r){return eo(r.ne)&&(e.re=r.ne),this.mixHash(e.ss,e.re),this.decryptAndHash(e.ss,r.ciphertext)}readMessageB(e,r){if(eo(r.ne)&&(e.re=r.ne),this.mixHash(e.ss,e.re),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));let{plaintext:n,valid:i}=this.decryptAndHash(e.ss,r.ns);i&&eo(n)&&(e.rs=n),this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));let{plaintext:o,valid:s}=this.decryptAndHash(e.ss,r.ciphertext);return{plaintext:o,valid:i&&s}}readMessageC(e,r){let{plaintext:n,valid:i}=this.decryptAndHash(e.ss,r.ns);if(i&&eo(n)&&(e.rs=n),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));let{plaintext:o,valid:s}=this.decryptAndHash(e.ss,r.ciphertext),{cs1:a,cs2:c}=this.split(e.ss);return{h:e.ss.h,plaintext:o,valid:i&&s,cs1:a,cs2:c}}initSession(e,r,n){let i=this.createEmptyKey(),o=new Uint8Array(32),s;return e?s=this.initializeInitiator(r,n,o,i):s=this.initializeResponder(r,n,o,i),{hs:s,i:e,mc:0}}sendMessage(e,r,n){let i;if(e.mc===0)i=this.writeMessageA(e.hs,r,n);else if(e.mc===1)i=this.writeMessageB(e.hs,r);else if(e.mc===2){let{h:o,messageBuffer:s,cs1:a,cs2:c}=this.writeMessageC(e.hs,r);i=s,e.h=o,e.cs1=a,e.cs2=c}else if(e.mc>2)if(e.i){if(!e.cs1)throw new Error("CS1 (cipher state) is not defined");i=this.writeMessageRegular(e.cs1,r)}else{if(!e.cs2)throw new Error("CS2 (cipher state) is not defined");i=this.writeMessageRegular(e.cs2,r)}else throw new Error("Session invalid.");return e.mc++,i}recvMessage(e,r){let n=new Uint8Array(0),i=!1;if(e.mc===0)({plaintext:n,valid:i}=this.readMessageA(e.hs,r));else if(e.mc===1)({plaintext:n,valid:i}=this.readMessageB(e.hs,r));else if(e.mc===2){let{h:o,plaintext:s,valid:a,cs1:c,cs2:u}=this.readMessageC(e.hs,r);n=s,i=a,e.h=o,e.cs1=c,e.cs2=u}return e.mc++,{plaintext:n,valid:i}}};var Ks=class{isInitiator;session;remotePeer;remoteExtensions={webtransportCerthashes:[]};payload;connection;xx;staticKeypair;prologue;constructor(e,r,n,i,o,s,a,c){this.isInitiator=e,this.payload=r,this.prologue=n,this.staticKeypair=o,this.connection=s,a&&(this.remotePeer=a),this.xx=c??new Ms(i),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){if(d1(this.session.hs.s),this.isInitiator){ze.trace("Stage 0 - Initiator starting to send first message.");let e=this.xx.sendMessage(this.session,new Uint8Array(0));this.connection.writeLP(jl(e)),ze.trace("Stage 0 - Initiator finished sending first message."),X0(this.session.hs.e)}else{ze.trace("Stage 0 - Responder waiting to receive first message...");let e=Zl((await this.connection.readLP()).subarray()),{valid:r}=this.xx.recvMessage(this.session,e);if(!r)throw new Nr("xx handshake stage 0 validation fail");ze.trace("Stage 0 - Responder received first message."),Q0(this.session.hs.re)}}async exchange(){if(this.isInitiator){ze.trace("Stage 1 - Initiator waiting to receive first message from responder...");let e=Jl((await this.connection.readLP()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,e);if(!n)throw new Nr("xx handshake stage 1 validation fail");ze.trace("Stage 1 - Initiator received the message."),Q0(this.session.hs.re),p1(this.session.hs.rs),ze.trace("Initiator going to check remote's signature...");try{let i=Y0(r);this.remotePeer=this.remotePeer||await W0(i),await j0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new Xn(`Error occurred while verifying signed payload: ${o.message}`)}ze.trace("All good with the signature!")}else{ze.trace("Stage 1 - Responder sending out first message with signed payload and static key.");let e=this.xx.sendMessage(this.session,this.payload);this.connection.writeLP(Xl(e)),ze.trace("Stage 1 - Responder sent the second handshake message with signed payload."),X0(this.session.hs.e)}}async finish(){if(this.isInitiator){ze.trace("Stage 2 - Initiator sending third handshake message.");let e=this.xx.sendMessage(this.session,this.payload);this.connection.writeLP(Ql(e)),ze.trace("Stage 2 - Initiator sent message with signed payload.")}else{ze.trace("Stage 2 - Responder waiting for third handshake message...");let e=ed((await this.connection.readLP()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,e);if(!n)throw new Nr("xx handshake stage 2 validation fail");ze.trace("Stage 2 - Responder received the message, finished handshake.");try{let i=Y0(r);this.remotePeer=this.remotePeer||await W0(i),await j0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new Xn(`Error occurred while verifying signed payload: ${o.message}`)}}y1(this.session)}encrypt(e,r){let n=this.getCS(r);return this.xx.encryptWithAd(n,new Uint8Array(0),e)}decrypt(e,r,n){let i=this.getCS(r,!1);return this.xx.decryptWithAd(i,new Uint8Array(0),e,n)}getRemoteStaticKey(){return this.session.hs.rs}getCS(e,r=!0){if(!e.cs1||!e.cs2)throw new Nr("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?r?e.cs1:e.cs2:r?e.cs2:e.cs1}setRemoteNoiseExtension(e){e&&(this.remoteExtensions=e)}};function g1(t){return{xxHandshakeSuccesses:t.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:t.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:t.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:t.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:t.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var Vs=class{protocol="/noise";crypto;prologue;staticKeys;extensions;metrics;constructor(e={}){let{staticNoiseKey:r,extensions:n,crypto:i,prologueBytes:o,metrics:s}=e;this.crypto=i??o0,this.extensions=n,this.metrics=s?g1(s):void 0,r?this.staticKeys=this.crypto.generateX25519KeyPairFromSeed(r):this.staticKeys=this.crypto.generateX25519KeyPair(),this.prologue=o??new Uint8Array(0)}async secureOutbound(e,r,n){let i=Kn(r,{lengthEncoder:jn,lengthDecoder:Pi,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!0,localPeer:e,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remoteExtensions:o.remoteExtensions,remotePeer:o.remotePeer}}async secureInbound(e,r,n){let i=Kn(r,{lengthEncoder:jn,lengthDecoder:Pi,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!1,localPeer:e,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remotePeer:o.remotePeer,remoteExtensions:o.remoteExtensions}}async performHandshake(e){let r=await h1(e.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(e,r)}async performXXHandshake(e,r){let{isInitiator:n,remotePeer:i,connection:o}=e,s=new Ks(n,r,this.prologue,this.crypto,this.staticKeys,o,i);try{await s.propose(),await s.exchange(),await s.finish(),this.metrics?.xxHandshakeSuccesses.increment()}catch(a){if(this.metrics?.xxHandshakeErrors.increment(),a instanceof Error)throw a.message=`Error occurred during XX handshake: ${a.message}`,a}return s}async createSecureConnection(e,r){let[n,i]=yl(),o=e.unwrap();return await xl(n,rd(r,this.metrics),o,s=>jr(s,{lengthDecoder:Pi}),nd(r,this.metrics),n),i}};function x1(t={}){return()=>new Vs(t)}var Y2=re(Cu(),1);var q2=re(Cu(),1);var Au=Me("libp2p:webrtc:sdp"),Du=Object.values(zt).map(t=>t.decoder).reduce((t,e)=>t.or(e));function H2(t){let e=t.getConfiguration().certificates?.at(0);if(e==null||e.getFingerprints==null){Au.trace("fetching fingerprint from local SDP");let n=t.localDescription;return n==null?void 0:D6(n.sdp)}if(Au.trace("fetching fingerprint from local certificate"),e.getFingerprints().length===0)return;let r=e.getFingerprints()[0].value;if(r==null)throw nc("","no fingerprint on local certificate");return r}var A6=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function D6(t){return t.match(A6)?.groups?.fingerprint}function B6(t){for(let e of t.protoNames())if(e.startsWith("ip"))return e.toUpperCase();return Au("Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6",t),"IP6"}function aa(t){let r=t.stringTuples().filter(n=>n[0]===Tu).map(n=>n[1])[0];if(r===void 0||r==="")throw So(`Couldn't find a certhash component of multiaddr: ${t.toString()}`);return r}function Bu(t){let e=Du.decode(t);return q2.decode(e)}function _6(t){let e=Bu(aa(t)),r=_u(e.name),n=e.digest.reduce((o,s)=>o+s.toString(16).padStart(2,"0"),""),i=n.match(/.{1,2}/g);if(i==null)throw nc(n,t.toString());return[`${r.toUpperCase()} ${i.join(":").toUpperCase()}`,n]}function _u(t){switch(t){case"sha1":return"sha-1";case"sha2-256":return"sha-256";case"sha2-512":return"sha-512";default:throw Uf(t)}}function T6(t,e){let{host:r,port:n}=t.toOptions(),i=B6(t),[o]=_6(t);return`v=0
|
|
34
|
+
`).filter(n=>n.startsWith("a=candidate")).pop(),r=e?.split(" ");return e==null||r==null||r.length<5?(nn("could not parse remote address from",e),"/webrtc"):`/dnsaddr/${r[4]}/${r[2].toLowerCase()}/${r[3]}/webrtc`}var Vo=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new am(e,r))}},kc=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},am=globalThis.CustomEvent??kc;var cm=L("dns4"),um=L("dns6"),fm=L("dnsaddr"),on=Pe(L("dns"),fm,cm,um),zo=Pe(L("ip4"),L("ip6")),Gn=Pe(V(zo,L("tcp")),V(on,L("tcp"))),Go=V(zo,L("udp")),hm=V(Go,L("utp")),lm=V(Go,L("quic")),dm=V(Go,L("quic-v1")),Rc=Pe(V(Gn,L("ws")),V(on,L("ws"))),qo=Pe(V(Rc,L("p2p")),Rc),Lc=Pe(V(Gn,L("wss")),V(on,L("wss")),V(Gn,L("tls"),L("ws")),V(on,L("tls"),L("ws"))),Ho=Pe(V(Lc,L("p2p")),Lc),Nc=Pe(V(Gn,L("http")),V(zo,L("http")),V(on,L("http"))),Pc=Pe(V(Gn,L("https")),V(zo,L("https")),V(on,L("https"))),ol=V(Go,L("webrtc-direct"),L("certhash")),cl=Pe(V(ol,L("p2p")),ol),sl=V(dm,L("webtransport"),L("certhash"),L("certhash")),ul=Pe(V(sl,L("p2p")),sl),fl=Pe(V(qo,L("p2p-webrtc-star"),L("p2p")),V(Ho,L("p2p-webrtc-star"),L("p2p")),V(qo,L("p2p-webrtc-star")),V(Ho,L("p2p-webrtc-star"))),DD=Pe(V(qo,L("p2p-websocket-star"),L("p2p")),V(Ho,L("p2p-websocket-star"),L("p2p")),V(qo,L("p2p-websocket-star")),V(Ho,L("p2p-websocket-star"))),hl=Pe(V(Nc,L("p2p-webrtc-direct"),L("p2p")),V(Pc,L("p2p-webrtc-direct"),L("p2p")),V(Nc,L("p2p-webrtc-direct")),V(Pc,L("p2p-webrtc-direct"))),sn=Pe(Rc,Lc,Nc,Pc,fl,hl,Gn,hm,lm,on,cl,ul),BD=Pe(V(sn,L("p2p-stardust"),L("p2p")),V(sn,L("p2p-stardust"))),Ir=Pe(V(sn,L("p2p")),fl,hl,cl,ul,L("p2p")),al=Pe(V(Ir,L("p2p-circuit"),Ir),V(Ir,L("p2p-circuit")),V(L("p2p-circuit"),Ir),V(sn,L("p2p-circuit")),V(L("p2p-circuit"),sn),L("p2p-circuit")),ll=()=>Pe(V(al,ll),al),dr=ll(),_D=Pe(V(dr,Ir,dr),V(Ir,dr),V(dr,Ir),dr,Ir);var TD=Pe(V(dr,L("webrtc"),L("p2p")),V(dr,L("webrtc")),V(sn,L("webrtc"),L("p2p")),V(sn,L("webrtc")),L("webrtc"));function dl(t){function e(r){let n;try{n=fr(r)}catch{return!1}let i=t(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return e}function V(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:dl(e),partialMatch:e}}function Pe(...t){function e(n){let i=null;return t.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:dl(e),partialMatch:e}}function L(t){let e=t;function r(i){let o;try{o=fr(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===e}function n(i){return i.length===0?null:i[0]===e?i.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var $o=class extends Vo{peerId;transportManager;constructor(e){super(),this.peerId=e.peerId,this.transportManager=e.transportManager}async listen(){this.safeDispatchEvent("listening",{})}getAddrs(){return this.transportManager.getListeners().filter(e=>e!==this).map(e=>e.getAddrs().filter(r=>dr.matches(r)).map(r=>r.encapsulate(`/webrtc/p2p/${this.peerId}`))).flat()}async close(){this.safeDispatchEvent("close",{})}};var pl=Me("libp2p:webrtc:peer"),pm="/webrtc",ym="/p2p-circuit",Uc="/webrtc-signaling/0.0.1",gm=ye("webrtc").code,Wo=class{components;init;_started=!1;constructor(e,r={}){this.components=e,this.init=r}isStarted(){return this._started}async start(){await this.components.registrar.handle(Uc,e=>{this._onProtocol(e).catch(r=>{pl.error("failed to handle incoming connect from %p",e.connection.remotePeer,r)})}),this._started=!0}async stop(){await this.components.registrar.unhandle(Uc),this._started=!1}createListener(e){return new $o(this.components)}[Symbol.toStringTag]="@libp2p/webrtc";[uo]=!0;filter(e){return e.filter(r=>r.protoCodes().includes(gm))}async dial(e,r){pl.trace("dialing address: ",e);let{baseAddr:n,peerId:i}=xm(e);if(r.signal==null){let a=new AbortController;r.signal=a.signal}let s=await(await this.components.transportManager.dial(n,r)).newStream([Uc],r);try{let{pc:a,muxerFactory:c,remoteAddress:u}=await nl({stream:s,rtcConfiguration:this.init.rtcConfiguration,dataChannelOptions:this.init.dataChannel,signal:r.signal}),f=await r.upgrader.upgradeOutbound(new $r({peerConnection:a,timeline:{open:Date.now()},remoteAddr:fr(u).encapsulate(`/p2p/${i.toString()}`)}),{skipProtection:!0,skipEncryption:!0,muxerFactory:c});return s.close(),f}catch(a){throw s.reset(),a}}async _onProtocol({connection:e,stream:r}){try{let{pc:n,muxerFactory:i,remoteAddress:o}=await rl({rtcConfiguration:this.init.rtcConfiguration,connection:e,stream:r,dataChannelOptions:this.init.dataChannel});await this.components.upgrader.upgradeInbound(new $r({peerConnection:n,timeline:{open:new Date().getTime()},remoteAddr:fr(o).encapsulate(`/p2p/${e.remotePeer.toString()}`)}),{skipEncryption:!0,skipProtection:!0,muxerFactory:i})}catch(n){throw r.reset(),n}}};function xm(t){let e=t.toString().split(pm+"/");if(e.length!==2)throw new G("webrtc protocol was not present in multiaddr",lt.ERR_INVALID_MULTIADDR);if(!e[0].includes(ym))throw new G("p2p-circuit protocol was not present in multiaddr",lt.ERR_INVALID_MULTIADDR);let r=fr(e[0]),i=fr("/"+e[1]).getPeerId();if(i==null)throw new G("destination peer id was missing",lt.ERR_INVALID_MULTIADDR);let o=r.protos().pop();if(o===void 0)throw new G("invalid multiaddr",lt.ERR_INVALID_MULTIADDR);return o.name!=="p2p"&&(r=r.encapsulate(`/p2p/${i}`)),{baseAddr:r,peerId:Ci(i)}}function Oc(){let t=Xr(),e=!1;return{sink:async r=>{if(e)throw new Error("already piped");e=!0,t.resolve(r)},source:async function*(){yield*await t.promise}()}}function yl(){let t=Oc(),e=Oc();return[{source:t.source,sink:e.sink},{source:e.source,sink:t.sink}]}function mm(t){return t[Symbol.asyncIterator]!=null}function bm(...t){let e=[];for(let r of t)mm(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=$t({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var gl=bm;function xl(t,...e){if(t==null)throw new Error("Empty pipeline");if(Fc(t)){let n=t;t=()=>n.source}else if(bl(t)||ml(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&Fc(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)Fc(r[n])&&(r[n]=wm(r[n]));return vm(...r)}var vm=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},ml=t=>t?.[Symbol.asyncIterator]!=null,bl=t=>t?.[Symbol.iterator]!=null,Fc=t=>t==null?!1:t.sink!=null&&t.source!=null,wm=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=$t({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=t.source;if(ml(o))i=async function*(){yield*o,n.end()};else if(bl(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return gl(n,i())}return t.source};var vl=!!globalThis.process?.env?.DUMP_SESSION_KEYS;function Mc(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function Em(t){if(typeof t!="boolean")throw new Error(`Expected boolean, not ${t}`)}function wl(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function Sm(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Mc(t.outputLen),Mc(t.blockLen)}function Cm(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Am(t,e){wl(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Dm={number:Mc,bool:Em,bytes:wl,hash:Sm,exists:Cm,output:Am},gt=Dm;var ki=re(Oe("node:crypto"),1),Bm=ki&&typeof ki=="object"&&"webcrypto"in ki?ki.webcrypto:void 0;var _m=t=>t instanceof Uint8Array;var Yo=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Nt=(t,e)=>t<<32-e|t>>>e,Tm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Tm)throw new Error("Non little-endian hardware is not supported");var nB=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Im(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function kr(t){if(typeof t=="string"&&(t=Im(t)),!_m(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}var $n=class{clone(){return this._cloneInto()}};function Kc(t){let e=n=>t().update(kr(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}var jo=class extends $n{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,gt.hash(e);let n=kr(r);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?e.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(e){return gt.exists(this),this.iHash.update(e),this}digestInto(e){gt.exists(this),gt.bytes(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=o,e.blockLen=s,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Xo=(t,e,r)=>new jo(t,e).update(r).digest();Xo.create=(t,e)=>new jo(t,e);function km(t,e,r){return gt.hash(t),r===void 0&&(r=new Uint8Array(t.outputLen)),Xo(t,kr(r),kr(e))}var Vc=new Uint8Array([0]),El=new Uint8Array;function Rm(t,e,r,n=32){if(gt.hash(t),gt.number(n),n>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");let i=Math.ceil(n/t.outputLen);r===void 0&&(r=El);let o=new Uint8Array(i*t.outputLen),s=Xo.create(t,e),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let u=0;u<i;u++)Vc[0]=u+1,a.update(u===0?El:c).update(r).update(Vc).digestInto(c),o.set(c,t.outputLen*u),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Vc.fill(0),o.slice(0,n)}var Sl=(t,e,r,n,i)=>Rm(t,km(t,e,r),n,i);function Lm(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;t.setUint32(e+c,s,n),t.setUint32(e+u,a,n)}var Qo=class extends $n{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Yo(this.buffer)}update(e){gt.exists(this);let{view:r,buffer:n,blockLen:i}=this;e=kr(e);let o=e.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=Yo(e);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){gt.exists(this),gt.output(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let h=s;h<i;h++)r[h]=0;Lm(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Yo(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],o)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return e.length=i,e.pos=a,e.finished=o,e.destroyed=s,i%r&&e.buffer.set(n),e}};var Nm=(t,e,r)=>t&e^~t&r,Pm=(t,e,r)=>t&e^t&r^e&r,Um=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Rr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Lr=new Uint32Array(64),Zo=class extends Qo{constructor(){super(64,32,8,!1),this.A=Rr[0]|0,this.B=Rr[1]|0,this.C=Rr[2]|0,this.D=Rr[3]|0,this.E=Rr[4]|0,this.F=Rr[5]|0,this.G=Rr[6]|0,this.H=Rr[7]|0}get(){let{A:e,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[e,r,n,i,o,s,a,c]}set(e,r,n,i,o,s,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(e,r){for(let h=0;h<16;h++,r+=4)Lr[h]=e.getUint32(r,!1);for(let h=16;h<64;h++){let d=Lr[h-15],p=Lr[h-2],l=Nt(d,7)^Nt(d,18)^d>>>3,y=Nt(p,17)^Nt(p,19)^p>>>10;Lr[h]=y+Lr[h-7]+l+Lr[h-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){let d=Nt(a,6)^Nt(a,11)^Nt(a,25),p=f+d+Nm(a,c,u)+Um[h]+Lr[h]|0,y=(Nt(n,2)^Nt(n,13)^Nt(n,22))+Pm(n,i,o)|0;f=u,u=c,c=a,a=s+p|0,s=o,o=i,i=n,n=p+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Lr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},qc=class extends Zo{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}},Hc=Kc(()=>new Zo),xB=Kc(()=>new qc);var i0=re(Qc(),1),Yn=re(Yl(),1),o0={hashSHA256(t){return Hc(t)},getHKDF(t,e){let r=Sl(Hc,e,t,void 0,96),n=r.subarray(0,32),i=r.subarray(32,64),o=r.subarray(64,96);return[n,i,o]},generateX25519KeyPair(){let t=Yn.generateKeyPair();return{publicKey:t.publicKey,privateKey:t.secretKey}},generateX25519KeyPairFromSeed(t){let e=Yn.generateKeyPairFromSeed(t);return{publicKey:e.publicKey,privateKey:e.secretKey}},generateX25519SharedKey(t,e){return Yn.sharedKey(t,e)},chaCha20Poly1305Encrypt(t,e,r,n){return new i0.ChaCha20Poly1305(n).seal(e,t,r)},chaCha20Poly1305Decrypt(t,e,r,n,i){return new i0.ChaCha20Poly1305(n).open(e,t,r,i)}};var s0=re(Qc(),1);var Fb=t=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t),jn=t=>{let e=Fb(2);return new DataView(e.buffer,e.byteOffset,e.byteLength).setUint16(0,t,!1),e};jn.bytes=2;var Pi=t=>{if(t.length<2)throw RangeError("Could not decode int16BE");return t instanceof Uint8Array?new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1):t.getUint16(0)};Pi.bytes=2;function jl(t){return pe([t.ne,t.ciphertext],t.ne.length+t.ciphertext.length)}function Xl(t){return pe([t.ne,t.ns,t.ciphertext],t.ne.length+t.ns.length+t.ciphertext.length)}function Ql(t){return pe([t.ns,t.ciphertext],t.ns.length+t.ciphertext.length)}function Zl(t){if(t.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:t.subarray(0,32),ciphertext:t.subarray(32,t.length),ns:new Uint8Array(0)}}function Jl(t){if(t.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:t.subarray(0,32),ns:t.subarray(32,80),ciphertext:t.subarray(80,t.length)}}function ed(t){if(t.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:t.subarray(0,48),ciphertext:t.subarray(48,t.length)}}function rd(t,e){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65519){let o=i+65519;o>n.length&&(o=n.length);let s=t.encrypt(n.subarray(i,o),t.session);e?.encryptedPackets.increment(),yield jn(s.byteLength),yield s}}}function nd(t,e){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65535){let o=i+65535;if(o>n.length&&(o=n.length),o-s0.TAG_LENGTH<i)throw new Error("Invalid chunk");let s=n.subarray(i,o),a=n.subarray(i,o-s0.TAG_LENGTH),{plaintext:c,valid:u}=t.decrypt(s,t.session,a);if(!u)throw e?.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");e?.decryptedPackets.increment(),yield c}}}var a0=class extends Error{code;constructor(e="Unexpected Peer"){super(e),this.code=a0.code}},Xn=a0;co(Xn,"code","ERR_UNEXPECTED_PEER");var c0=class extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=c0.code}},Nr=c0;co(Nr,"code","ERR_INVALID_CRYPTO_EXCHANGE");var vT=re(Ki(),1),wT=re(bp(),1);var j3=re(be(),1);var N0={};$e(N0,{Ed25519PrivateKey:()=>gn,Ed25519PublicKey:()=>Hi,generateKeyPair:()=>p3,generateKeyPairFromSeed:()=>_p,unmarshalEd25519PrivateKey:()=>l3,unmarshalEd25519PublicKey:()=>d3});var dn=re(Oe("crypto"),1),vp=Oe("util");var u3=(0,vp.promisify)(dn.default.generateKeyPair),pn=32,rr=64,Ds=32,f3=64;function wp(t){let r=dn.default.createPrivateKey({format:"jwk",key:{crv:"Ed25519",x:"",d:j(t,"base64url"),kty:"OKP"}}).export({format:"jwk"});if(r.x==null||r.x==="")throw new Error("Could not export JWK public key");return Ee(r.x,"base64url")}async function Ep(){let t=await u3("ed25519",{publicKeyEncoding:{type:"spki",format:"jwk"},privateKeyEncoding:{type:"pkcs8",format:"jwk"}}),e=Ee(t.privateKey.d,"base64url"),r=Ee(t.privateKey.x,"base64url");return{privateKey:Dp(e,r),publicKey:r}}async function Sp(t){if(t.length!==Ds)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=wp(t);return{privateKey:Dp(t,e),publicKey:e}}async function Cp(t,e){if(!(t instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');let r,n;if(t.byteLength===rr)r=t.subarray(0,32),n=t.subarray(32);else if(t.byteLength===Ds)r=t.subarray(0,32),n=wp(r);else throw new TypeError('"key" must be 64 or 32 bytes in length.');let i=dn.default.createPrivateKey({format:"jwk",key:{crv:"Ed25519",d:j(r,"base64url"),x:j(n,"base64url"),kty:"OKP"}});return dn.default.sign(null,e,i)}async function Ap(t,e,r){if(t.byteLength!==pn)throw new TypeError('"key" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==f3)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=dn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:j(t,"base64url"),kty:"OKP"}});return dn.default.verify(null,r,n,e)}function Dp(t,e){let r=new Uint8Array(rr);for(let n=0;n<Ds;n++)r[n]=t[n],r[Ds+n]=e[n];return r}var yn=re(Oe("crypto"),1);function R0(t){let e=t?.algorithm??"aes-128-gcm",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"sha256",o=t?.saltLength??16,s=t?.iterations??32767,a=t?.algorithmTagLength??16;async function c(p,l){let y=yn.default.randomBytes(n),g=yn.default.createCipheriv(e,l,y),m=pe([g.update(p),g.final()]);return pe([y,m,g.getAuthTag()])}async function u(p,l){let y=yn.default.randomBytes(o);typeof l=="string"&&(l=Ee(l));let g=yn.default.pbkdf2Sync(l,y,s,r,i);return pe([y,await c(Uint8Array.from(p),g)])}async function f(p,l){let y=p.subarray(0,n),g=p.subarray(n,p.length-a),m=p.subarray(g.length+n),w=yn.default.createDecipheriv(e,l,y);return w.setAuthTag(m),pe([w.update(g),w.final()])}async function h(p,l){let y=p.subarray(0,o),g=p.subarray(o);typeof l=="string"&&(l=Ee(l));let m=yn.default.pbkdf2Sync(l,y,s,r,i);return f(g,m)}return{encrypt:u,decrypt:h}}async function ti(t,e){let n=await R0().encrypt(t,e);return In.encode(n)}var _e;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(_e||(_e={}));var L0;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(L0||(L0={}));(function(t){t.codec=()=>tn(L0)})(_e||(_e={}));var nr;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(nr||(nr={}));var ir;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(ir||(ir={}));var Hi=class{_key;constructor(e){this._key=ri(e,pn)}async verify(e,r){return Ap(this._key,r,e)}marshal(){return this._key}get bytes(){return nr.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},gn=class{_key;_publicKey;constructor(e,r){this._key=ri(e,rr),this._publicKey=ri(r,pn)}async sign(e){return Cp(this._key,e)}get public(){return new Hi(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=Cr.digest(this.public.bytes);return Re.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function l3(t){if(t.length>rr){t=ri(t,rr+pn);let n=t.subarray(0,rr),i=t.subarray(rr,t.length);return new gn(n,i)}t=ri(t,rr);let e=t.subarray(0,rr),r=t.subarray(pn);return new gn(e,r)}function d3(t){return t=ri(t,pn),new Hi(t)}async function p3(){let{privateKey:t,publicKey:e}=await Ep();return new gn(t,e)}async function _p(t){let{privateKey:e,publicKey:r}=await Sp(t);return new gn(e,r)}function ri(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new G(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var y3={"P-256":"prime256v1","P-384":"secp384r1","P-521":"secp521r1"},g3=Object.keys(y3),A_=g3.join(" / ");var z0={};$e(z0,{RsaPrivateKey:()=>ui,RsaPublicKey:()=>Xi,fromJwk:()=>H3,generateKeyPair:()=>z3,unmarshalRsaPrivateKey:()=>V3,unmarshalRsaPublicKey:()=>q3});var ji=re(be(),1);var aT=re(Lp(),1);var vn=re(Oe("crypto"),1),jp=Oe("util");var b3=re(Oe("crypto"),1);var ie=BigInt(0),Ae=BigInt(1),Kr=BigInt(2),$i=BigInt(3),Np=BigInt(8),ke=Object.freeze({a:ie,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Ae,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Pp=(t,e)=>(t+e/Kr)/e,_s={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(t){let{n:e}=ke,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ae*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=Pp(o*t,e),c=Pp(-n*t,e),u=P(t-a*r-c*i,e),f=P(-a*n-c*o,e),h=u>s,d=f>s;if(h&&(u=e-u),d&&(f=e-f),u>s||f>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}},Ot=32,oi=32,v3=32,Up=Ot+1,Op=2*Ot+1;function Fp(t){let{a:e,b:r}=ke,n=P(t*t),i=P(n*t);return P(i+e*t+r)}var Ts=ke.a===ie,Rs=class extends Error{constructor(e){super(e)}};function Mp(t){if(!(t instanceof ae))throw new TypeError("JacobianPoint expected")}var ae=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof ge))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(ge.ZERO)?ae.ZERO:new ae(e.x,e.y,Ae)}static toAffineBatch(e){let r=A3(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return ae.toAffineBatch(e).map(ae.fromAffine)}equals(e){Mp(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e,c=P(i*i),u=P(a*a),f=P(r*u),h=P(o*c),d=P(P(n*a)*u),p=P(P(s*i)*c);return f===h&&d===p}negate(){return new ae(this.x,P(-this.y),this.z)}double(){let{x:e,y:r,z:n}=this,i=P(e*e),o=P(r*r),s=P(o*o),a=e+o,c=P(Kr*(P(a*a)-i-s)),u=P($i*i),f=P(u*u),h=P(f-Kr*c),d=P(u*(c-h)-Np*s),p=P(Kr*r*n);return new ae(h,d,p)}add(e){Mp(e);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=e;if(o===ie||s===ie)return this;if(r===ie||n===ie)return e;let c=P(i*i),u=P(a*a),f=P(r*u),h=P(o*c),d=P(P(n*a)*u),p=P(P(s*i)*c),l=P(h-f),y=P(p-d);if(l===ie)return y===ie?this.double():ae.ZERO;let g=P(l*l),m=P(l*g),w=P(f*g),v=P(y*y-m-Kr*w),A=P(y*(w-v)-d*m),E=P(i*a*l);return new ae(v,A,E)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=ae.ZERO;if(typeof e=="bigint"&&e===ie)return r;let n=qp(e);if(n===Ae)return this;if(!Ts){let h=r,d=this;for(;n>ie;)n&Ae&&(h=h.add(d)),d=d.double(),n>>=Ae;return h}let{k1neg:i,k1:o,k2neg:s,k2:a}=_s.splitScalar(n),c=r,u=r,f=this;for(;o>ie||a>ie;)o&Ae&&(c=c.add(f)),a&Ae&&(u=u.add(f)),f=f.double(),o>>=Ae,a>>=Ae;return i&&(c=c.negate()),s&&(u=u.negate()),u=new ae(P(u.x*_s.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=Ts?128/e+1:256/e+1,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(e-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(e,r){!r&&this.equals(ae.BASE)&&(r=ge.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&F0.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ae.normalizeZ(i),F0.set(r,i)));let o=ae.ZERO,s=ae.BASE,a=1+(Ts?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),f=2**n,h=BigInt(n);for(let d=0;d<a;d++){let p=d*c,l=Number(e&u);e>>=h,l>c&&(l-=f,e+=Ae);let y=p,g=p+Math.abs(l)-1,m=d%2!==0,w=l<0;l===0?s=s.add(Is(m,i[y])):o=o.add(Is(w,i[g]))}return{p:o,f:s}}multiply(e,r){let n=qp(e),i,o;if(Ts){let{k1neg:s,k1:a,k2neg:c,k2:u}=_s.splitScalar(n),{p:f,f:h}=this.wNAF(a,r),{p:d,f:p}=this.wNAF(u,r);f=Is(s,f),d=Is(c,d),d=new ae(P(d.x*_s.beta),d.y,d.z),i=f.add(d),o=h.add(p)}else{let{p:s,f:a}=this.wNAF(n,r);i=s,o=a}return ae.normalizeZ([i,o])[0]}toAffine(e){let{x:r,y:n,z:i}=this,o=this.equals(ae.ZERO);e==null&&(e=o?Np:ci(i));let s=e,a=P(s*s),c=P(a*s),u=P(r*a),f=P(n*c),h=P(i*s);if(o)return ge.ZERO;if(h!==Ae)throw new Error("invZ was invalid");return new ge(u,f)}};ae.BASE=new ae(ke.Gx,ke.Gy,Ae);ae.ZERO=new ae(ie,Ae,ie);function Is(t,e){let r=e.negate();return t?r:e}var F0=new WeakMap,ge=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,F0.delete(this)}hasEvenY(){return this.y%Kr===ie}static fromCompressedHex(e){let r=e.length===32,n=Vr(r?e:e.subarray(1));if(!O0(n))throw new Error("Point is not on curve");let i=Fp(n),o=C3(i),s=(o&Ae)===Ae;r?s&&(o=P(-o)):(e[0]&1)===1!==s&&(o=P(-o));let a=new ge(n,o);return a.assertValidity(),a}static fromUncompressedHex(e){let r=Vr(e.subarray(1,Ot+1)),n=Vr(e.subarray(Ot+1,Ot*2+1)),i=new ge(r,n);return i.assertValidity(),i}static fromHex(e){let r=ai(e),n=r.length,i=r[0];if(n===Ot)return this.fromCompressedHex(r);if(n===Up&&(i===2||i===3))return this.fromCompressedHex(r);if(n===Op&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Up} compressed bytes or ${Op} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return ge.BASE.multiply(Ns(e))}static fromSignature(e,r,n){let{r:i,s:o}=Hp(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=V0(ai(e)),{n:a}=ke,c=n===2||n===3?i+a:i,u=ci(c,a),f=P(-s*u,a),h=P(o*u,a),d=n&1?"03":"02",p=ge.fromHex(d+ni(c)),l=ge.BASE.multiplyAndAddUnsafe(p,f,h);if(!l)throw new Error("Cannot recover signature: point at infinify");return l.assertValidity(),l}toRawBytes(e=!1){return mn(this.toHex(e))}toHex(e=!1){let r=ni(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${ni(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let e="Point is not on elliptic curve",{x:r,y:n}=this;if(!O0(r)||!O0(n))throw new Error(e);let i=P(n*n),o=Fp(r);if(P(i-o)!==ie)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new ge(this.x,P(-this.y))}double(){return ae.fromAffine(this).double().toAffine()}add(e){return ae.fromAffine(this).add(ae.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ae.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=ae.fromAffine(this),o=r===ie||r===Ae||this!==ge.BASE?i.multiplyUnsafe(r):i.multiply(r),s=ae.fromAffine(e).multiplyUnsafe(n),a=o.add(s);return a.equals(ae.ZERO)?void 0:a.toAffine()}};ge.BASE=new ge(ke.Gx,ke.Gy);ge.ZERO=new ge(ie,ie);function Kp(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function Vp(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${si(t)}`);let e=t[1],r=t.subarray(2,e+2);if(!e||r.length!==e)throw new Error("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Vr(r),left:t.subarray(e+2)}}function w3(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${si(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=Vp(t.subarray(2)),{data:n,left:i}=Vp(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${si(i)}`);return{r:e,s:n}}var or=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromCompact(e){let r=e instanceof Uint8Array,n="Signature.fromCompact";if(typeof e!="string"&&!r)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=r?si(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new or(Ls(i.slice(0,64)),Ls(i.slice(64,128)))}static fromDER(e){let r=e instanceof Uint8Array;if(typeof e!="string"&&!r)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=w3(r?e:mn(e));return new or(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!Yi(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Yi(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=ke.n>>Ae;return this.s>e}normalizeS(){return this.hasHighS()?new or(this.r,P(-this.s,ke.n)):this}toDERRawBytes(){return mn(this.toDERHex())}toDERHex(){let e=Kp(Gi(this.s)),r=Kp(Gi(this.r)),n=e.length/2,i=r.length/2,o=Gi(n),s=Gi(i);return`30${Gi(i+n+4)}02${s}${r}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return mn(this.toCompactHex())}toCompactHex(){return ni(this.r)+ni(this.s)}};function Mr(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let o=t[n];r.set(o,i),i+=o.length}return r}var E3=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function si(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=E3[t[r]];return e}var S3=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function ni(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(ie<=t&&t<S3))throw new Error("Expected number 0 <= n < 2^256");return t.toString(16).padStart(64,"0")}function M0(t){let e=mn(ni(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function Gi(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ls(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function mn(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+t.length);let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[r]=o}return e}function Vr(t){return Ls(si(t))}function ai(t){return t instanceof Uint8Array?Uint8Array.from(t):mn(t)}function qp(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&Yi(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(t,e=ke.P){let r=t%e;return r>=ie?r:e+r}function At(t,e){let{P:r}=ke,n=t;for(;e-- >ie;)n*=n,n%=r;return n}function C3(t){let{P:e}=ke,r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=t*t*t%e,u=c*c*t%e,f=At(u,$i)*u%e,h=At(f,$i)*u%e,d=At(h,Kr)*c%e,p=At(d,n)*d%e,l=At(p,i)*p%e,y=At(l,s)*l%e,g=At(y,a)*y%e,m=At(g,s)*l%e,w=At(m,$i)*u%e,v=At(w,o)*p%e,A=At(v,r)*c%e,E=At(A,Kr);if(E*E%e!==t)throw new Error("Cannot find square root");return E}function ci(t,e=ke.P){if(t===ie||e<=ie)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=P(t,e),n=e,i=ie,o=Ae,s=Ae,a=ie;for(;r!==ie;){let u=n/r,f=n%r,h=i-s*u,d=o-a*u;n=r,r=f,i=s,o=a,s=h,a=d}if(n!==Ae)throw new Error("invert: does not exist");return P(i,e)}function A3(t,e=ke.P){let r=new Array(t.length),n=t.reduce((o,s,a)=>s===ie?o:(r[a]=o,P(o*s,e)),Ae),i=ci(n,e);return t.reduceRight((o,s,a)=>s===ie?o:(r[a]=P(o*r[a],e),P(o*s,e)),i),r}function D3(t){let e=t.length*8-oi*8,r=Vr(t);return e>0?r>>BigInt(e):r}function V0(t,e=!1){let r=D3(t);if(e)return r;let{n}=ke;return r>=n?r-n:r}var ii,Wi,K0=class{constructor(e,r){if(this.hashLen=e,this.qByteLen=r,typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(...e){return Ft.hmacSha256(this.k,...e)}hmacSync(...e){return Wi(this.k,...e)}checkSync(){if(typeof Wi!="function")throw new Rs("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),e.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),e.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Mr(...r)}generateSync(){this.checkSync(),this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Mr(...r)}};function Yi(t){return ie<t&&t<ke.n}function O0(t){return ie<t&&t<ke.P}function B3(t,e,r,n=!0){let{n:i}=ke,o=V0(t,!0);if(!Yi(o))return;let s=ci(o,i),a=ge.BASE.multiply(o),c=P(a.x,i);if(c===ie)return;let u=P(s*P(e+r*c,i),i);if(u===ie)return;let f=new or(c,u),h=(a.x===f.r?0:2)|Number(a.y&Ae);return n&&f.hasHighS()&&(f=f.normalizeS(),h^=1),{sig:f,recovery:h}}function Ns(t){let e;if(typeof t=="bigint")e=t;else if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)e=BigInt(t);else if(typeof t=="string"){if(t.length!==2*oi)throw new Error("Expected 32 bytes of private key");e=Ls(t)}else if(t instanceof Uint8Array){if(t.length!==oi)throw new Error("Expected 32 bytes of private key");e=Vr(t)}else throw new TypeError("Expected valid private key");if(!Yi(e))throw new Error("Expected private key: 0 < key < n");return e}function _3(t){return t instanceof ge?(t.assertValidity(),t):ge.fromHex(t)}function Hp(t){if(t instanceof or)return t.assertValidity(),t;try{return or.fromDER(t)}catch{return or.fromCompact(t)}}function q0(t,e=!1){return ge.fromPrivateKey(t).toRawBytes(e)}function zp(t){let e=t.length>Ot?t.slice(0,Ot):t;return Vr(e)}function T3(t){let e=zp(t),r=P(e,ke.n);return Gp(r<ie?e:r)}function Gp(t){return M0(t)}function I3(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ai(t),i=Ns(e),o=[Gp(i),T3(n)];if(r!=null){r===!0&&(r=Ft.randomBytes(Ot));let c=ai(r);if(c.length!==Ot)throw new Error(`sign: Expected ${Ot} bytes of extra data`);o.push(c)}let s=Mr(...o),a=zp(n);return{seed:s,m:a,d:i}}function k3(t,e){let{sig:r,recovery:n}=t,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},e),s=i?r.toDERRawBytes():r.toCompactRawBytes();return o?[s,n]:s}async function $p(t,e,r={}){let{seed:n,m:i,d:o}=I3(t,e,r.extraEntropy),s=new K0(v3,oi);await s.reseed(n);let a;for(;!(a=B3(await s.generate(),i,o,r.canonical));)await s.reseed();return k3(a,r)}var R3={strict:!0};function Wp(t,e,r,n=R3){let i;try{i=Hp(t),e=ai(e)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=V0(e),c;try{c=_3(r)}catch{return!1}let{n:u}=ke,f=ci(s,u),h=P(a*f,u),d=P(o*f,u),p=ge.BASE.multiplyAndAddUnsafe(c,h,d);return p?P(p.x,u)===o:!1}ge.BASE._setWindowSize(8);var mt={node:b3,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var ks={},Ft={bytesToHex:si,hexToBytes:mn,concatBytes:Mr,mod:P,invert:ci,isValidPrivateKey(t){try{return Ns(t),!0}catch{return!1}},_bigintTo32Bytes:M0,_normalizePrivateKey:Ns,hashToPrivateKey:t=>{t=ai(t);let e=oi+8;if(t.length<e||t.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=P(Vr(t),ke.n-Ae)+Ae;return M0(r)},randomBytes:(t=32)=>{if(mt.web)return mt.web.getRandomValues(new Uint8Array(t));if(mt.node){let{randomBytes:e}=mt.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Ft.hashToPrivateKey(Ft.randomBytes(oi+8)),precompute(t=8,e=ge.BASE){let r=e===ge.BASE?e:new ge(e.x,e.y);return r._setWindowSize(t),r.multiply($i),r},sha256:async(...t)=>{if(mt.web){let e=await mt.web.subtle.digest("SHA-256",Mr(...t));return new Uint8Array(e)}else if(mt.node){let{createHash:e}=mt.node,r=e("sha256");return t.forEach(n=>r.update(n)),Uint8Array.from(r.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(t,...e)=>{if(mt.web){let r=await mt.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Mr(...e),i=await mt.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(mt.node){let{createHmac:r}=mt.node,n=r("sha256",t);return e.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(t,...e)=>{let r=ks[t];if(r===void 0){let n=await Ft.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Mr(n,n),ks[t]=r}return Ft.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof ii!="function")throw new Rs("sha256Sync is undefined, you need to set it");let r=ks[t];if(r===void 0){let n=ii(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Mr(n,n),ks[t]=r}return ii(r,...e)},_JacobianPoint:ae};Object.defineProperties(Ft,{sha256Sync:{configurable:!1,get(){return ii},set(t){ii||(ii=t)}},hmacSha256Sync:{configurable:!1,get(){return Wi},set(t){Wi||(Wi=t)}}});function Ps(t){if(isNaN(t)||t<=0)throw new G("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ft.randomBytes(t)}var bn={};$e(bn,{jwkToPkcs1:()=>U3,jwkToPkix:()=>F3,pkcs1ToJwk:()=>P3,pkixToJwk:()=>O3});var X_=re(Ki(),1),Q_=re(k0(),1);var vr=re(be(),1);var z_=re(Ue(),1),G_=re(Ss(),1),Yp=re(be(),1);function Mt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=pe([new Uint8Array(e-r.length),r])}return j(r,"base64url")}function Kt(t){let e=N3(t);return new Yp.default.jsbn.BigInteger(j(e,"base16"),16)}function N3(t,e){let r=Ee(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=pe([new Uint8Array(e-r.length),r])}return r}function P3(t){let e=vr.default.asn1.fromDer(j(t,"ascii")),r=vr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Mt(r.n),e:Mt(r.e),d:Mt(r.d),p:Mt(r.p),q:Mt(r.q),dp:Mt(r.dP),dq:Mt(r.dQ),qi:Mt(r.qInv),alg:"RS256"}}function U3(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new G("JWK was missing components","ERR_INVALID_PARAMETERS");let e=vr.default.pki.privateKeyToAsn1({n:Kt(t.n),e:Kt(t.e),d:Kt(t.d),p:Kt(t.p),q:Kt(t.q),dP:Kt(t.dp),dQ:Kt(t.dq),qInv:Kt(t.qi)});return Ee(vr.default.asn1.toDer(e).getBytes(),"ascii")}function O3(t){let e=vr.default.asn1.fromDer(j(t,"ascii")),r=vr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Mt(r.n),e:Mt(r.e)}}function F3(t){if(t.n==null||t.e==null)throw new G("JWK was missing components","ERR_INVALID_PARAMETERS");let e=vr.default.pki.publicKeyToAsn1({n:Kt(t.n),e:Kt(t.e)});return Ee(vr.default.asn1.toDer(e).getBytes(),"ascii")}var M3=(0,jp.promisify)(vn.default.generateKeyPair);async function Xp(t){let e=await M3("rsa",{modulusLength:t,publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}});return{privateKey:e.privateKey,publicKey:e.publicKey}}async function H0(t){if(t==null)throw new G("Missing key parameter","ERR_MISSING_KEY");return{privateKey:t,publicKey:{kty:t.kty,n:t.n,e:t.e}}}async function Qp(t,e){return vn.default.createSign("RSA-SHA256").update(e).sign({format:"jwk",key:t})}async function Zp(t,e,r){return vn.default.createVerify("RSA-SHA256").update(r).verify({format:"jwk",key:t},e)}var Jp=vn.default.constants.RSA_PKCS1_PADDING;function e1(t,e){return vn.default.publicEncrypt({format:"jwk",key:t,padding:Jp},e)}function t1(t,e){return vn.default.privateDecrypt({format:"jwk",key:t,padding:Jp},e)}var Xi=class{_key;constructor(e){this._key=e}async verify(e,r){return Zp(this._key,r,e)}marshal(){return bn.jwkToPkix(this._key)}get bytes(){return nr.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}encrypt(e){return e1(this._key,e)}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},ui=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Ps(16)}async sign(e){return Qp(this._key,e)}get public(){if(this._publicKey==null)throw new G("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Xi(this._publicKey)}decrypt(e){return t1(this._key,e)}marshal(){return bn.jwkToPkcs1(this._key)}get bytes(){return ir.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=await this.public.hash();return j(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new ji.default.util.ByteBuffer(this.marshal()),i=ji.default.asn1.fromDer(n),o=ji.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ji.default.pki.encryptRsaPrivateKey(o,e,s)}else{if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function V3(t){let e=bn.pkcs1ToJwk(t),r=await H0(e);return new ui(r.privateKey,r.publicKey)}function q3(t){let e=bn.pkixToJwk(t);return new Xi(e)}async function H3(t){let e=await H0(t);return new ui(e.privateKey,e.publicKey)}async function z3(t){let e=await Xp(t);return new ui(e.privateKey,e.publicKey)}var $0={};$e($0,{Secp256k1PrivateKey:()=>Zi,Secp256k1PublicKey:()=>Qi,generateKeyPair:()=>Y3,unmarshalSecp256k1PrivateKey:()=>$3,unmarshalSecp256k1PublicKey:()=>W3});function r1(){return Ft.randomPrivateKey()}async function n1(t,e){let{digest:r}=await Ye.digest(e);try{return await $p(r,t)}catch(n){throw new G(String(n),"ERR_INVALID_INPUT")}}async function i1(t,e,r){try{let{digest:n}=await Ye.digest(r);return Wp(e,n,t)}catch(n){throw new G(String(n),"ERR_INVALID_INPUT")}}function o1(t){return ge.fromHex(t).toRawBytes(!0)}function s1(t){try{q0(t,!0)}catch(e){throw new G(String(e),"ERR_INVALID_PRIVATE_KEY")}}function G0(t){try{ge.fromHex(t)}catch(e){throw new G(String(e),"ERR_INVALID_PUBLIC_KEY")}}function a1(t){try{return q0(t,!0)}catch(e){throw new G(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Qi=class{_key;constructor(e){G0(e),this._key=e}async verify(e,r){return i1(this._key,r,e)}marshal(){return o1(this._key)}get bytes(){return nr.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}},Zi=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??a1(e),s1(this._key),G0(this._publicKey)}async sign(e){return n1(this._key,e)}get public(){return new Qi(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Fe(this.bytes,e.bytes)}async hash(){let{bytes:e}=await Ye.digest(this.bytes);return e}async id(){let e=await this.public.hash();return j(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return ti(this.bytes,e);throw new G(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function $3(t){return new Zi(t)}function W3(t){return new Qi(t)}async function Y3(){let t=r1();return new Zi(t)}var wn={rsa:z0,ed25519:N0,secp256k1:$0};function c1(t){let e=Object.keys(wn).join(" / ");return new G(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function u1(t){let e=nr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case _e.RSA:return wn.rsa.unmarshalRsaPublicKey(r);case _e.Ed25519:return wn.ed25519.unmarshalEd25519PublicKey(r);case _e.Secp256k1:return wn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw c1(e.Type??"RSA")}}async function f1(t){let e=ir.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case _e.RSA:return wn.rsa.unmarshalRsaPrivateKey(r);case _e.Ed25519:return wn.ed25519.unmarshalEd25519PrivateKey(r);case _e.Secp256k1:return wn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw c1(e.Type??"RSA")}}var Us;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let o of r.webtransportCerthashes)n.uint32(10),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={webtransportCerthashes:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.webtransportCerthashes.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(Us||(Us={}));var Ji;(function(t){let e;t.codec=()=>(e==null&&(e=Lt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identityKey!=null&&r.identityKey.byteLength>0)&&(n.uint32(10),n.bytes(r.identityKey??new Uint8Array(0))),(i.writeDefaults===!0||r.identitySig!=null&&r.identitySig.byteLength>0)&&(n.uint32(18),n.bytes(r.identitySig??new Uint8Array(0))),r.extensions!=null&&(n.uint32(34),Us.codec().encode(r.extensions,n,{writeDefaults:!1})),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identityKey=r.bytes();break;case 2:i.identitySig=r.bytes();break;case 4:i.extensions=Us.codec().decode(r,r.uint32());break;default:r.skipType(s&7);break}}return i})),e),t.encode=r=>Rt(r,t.codec()),t.decode=r=>kt(r,t.codec())})(Ji||(Ji={}));async function h1(t,e,r){let n=await Q3(t,l1(e));if(t.publicKey==null)throw new Error("PublicKey was missing from local PeerId");return X3(t.publicKey,n,r)}function X3(t,e,r){return Ji.encode({identityKey:t,identitySig:e,extensions:r??{webtransportCerthashes:[]}}).subarray()}async function Q3(t,e){if(t.privateKey==null)throw new Error("PrivateKey was missing from PeerId");return(await f1(t.privateKey)).sign(e)}async function W0(t){return Ua(t.identityKey)}function Y0(t){return Ji.decode(t)}function l1(t){let e=Ee("noise-libp2p-static-key:");return pe([e,t],e.length+t.length)}async function j0(t,e,r){let n=await Ua(e.identityKey);if(!n.equals(r))throw new Error(`Payload identity key ${n.toString()} does not match expected remote peer ${r.toString()}`);let i=l1(t);if(n.publicKey==null)throw new Error("PublicKey was missing from PeerId");if(e.identitySig==null)throw new Error("Signature was missing from message");if(!await u1(n.publicKey).verify(i,e.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function eo(t){return!(!(t instanceof Uint8Array)||t.length!==32)}var ze=Me("libp2p:noise");var Dt;vl?Dt=ze:Dt=Object.assign(()=>{},{enabled:!1,trace:()=>{},error:()=>{}});function d1(t){Dt(`LOCAL_STATIC_PUBLIC_KEY ${j(t.publicKey,"hex")}`),Dt(`LOCAL_STATIC_PRIVATE_KEY ${j(t.privateKey,"hex")}`)}function X0(t){t?(Dt(`LOCAL_PUBLIC_EPHEMERAL_KEY ${j(t.publicKey,"hex")}`),Dt(`LOCAL_PRIVATE_EPHEMERAL_KEY ${j(t.privateKey,"hex")}`)):Dt("Missing local ephemeral keys.")}function p1(t){Dt(`REMOTE_STATIC_PUBLIC_KEY ${j(t,"hex")}`)}function Q0(t){Dt(`REMOTE_EPHEMERAL_PUBLIC_KEY ${j(t,"hex")}`)}function y1(t){t.cs1&&t.cs2?(Dt(`CIPHER_STATE_1 ${t.cs1.n.getUint64()} ${j(t.cs1.k,"hex")}`),Dt(`CIPHER_STATE_2 ${t.cs2.n.getUint64()} ${j(t.cs2.k,"hex")}`)):Dt("Missing cipher state.")}var Z3="Cipherstate has reached maximum n, a new handshake must be performed",Os=class{n;bytes;view;constructor(e=0){this.n=e,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error(Z3)}};var Fs=class{crypto;constructor(e){this.crypto=e}encryptWithAd(e,r,n){let i=this.encrypt(e.k,e.n,r,n);return e.n.increment(),i}decryptWithAd(e,r,n,i){let{plaintext:o,valid:s}=this.decrypt(e.k,e.n,r,n,i);return s&&e.n.increment(),{plaintext:o,valid:s}}hasKey(e){return!this.isEmptyKey(e.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(e){let r=this.createEmptyKey();return Fe(r,e)}encrypt(e,r,n,i){return r.assertValue(),this.crypto.chaCha20Poly1305Encrypt(i,r.getBytes(),n,e)}encryptAndHash(e,r){let n;return this.hasKey(e.cs)?n=this.encryptWithAd(e.cs,e.h,r):n=r,this.mixHash(e,n),n}decrypt(e,r,n,i,o){r.assertValue();let s=this.crypto.chaCha20Poly1305Decrypt(i,r.getBytes(),n,e,o);return s?{plaintext:s,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(e,r){let n,i=!0;return this.hasKey(e.cs)?{plaintext:n,valid:i}=this.decryptWithAd(e.cs,e.h,r):n=r,this.mixHash(e,r),{plaintext:n,valid:i}}dh(e,r){try{let n=this.crypto.generateX25519SharedKey(e,r);return n.length===32?n:n.subarray(0,32)}catch(n){let i=n;return ze.error(i),new Uint8Array(32)}}mixHash(e,r){e.h=this.getHash(e.h,r)}getHash(e,r){return this.crypto.hashSHA256(pe([e,r],e.length+r.length))}mixKey(e,r){let[n,i]=this.crypto.getHKDF(e.ck,r);e.cs=this.initializeKey(i),e.ck=n}initializeKey(e){return{k:e,n:new Os}}initializeSymmetric(e){let r=Ee(e,"utf-8"),n=this.hashProtocolName(r),i=n,o=this.createEmptyKey();return{cs:this.initializeKey(o),ck:i,h:n}}hashProtocolName(e){if(e.length<=32){let r=new Uint8Array(32);return r.set(e),r}else return this.getHash(e,new Uint8Array(0))}split(e){let[r,n]=this.crypto.getHKDF(e.ck,new Uint8Array(0)),i=this.initializeKey(r),o=this.initializeKey(n);return{cs1:i,cs2:o}}writeMessageRegular(e,r){let n=this.encryptWithAd(e,new Uint8Array(0),r),i=this.createEmptyKey(),o=new Uint8Array(0);return{ne:i,ns:o,ciphertext:n}}readMessageRegular(e,r){return this.decryptWithAd(e,new Uint8Array(0),r.ciphertext)}};var Ms=class extends Fs{initializeInitiator(e,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,e);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}initializeResponder(e,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,e);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}writeMessageA(e,r,n){let i=new Uint8Array(0);n!==void 0?e.e=n:e.e=this.crypto.generateX25519KeyPair();let o=e.e.publicKey;this.mixHash(e.ss,o);let s=this.encryptAndHash(e.ss,r);return{ne:o,ns:i,ciphertext:s}}writeMessageB(e,r){e.e=this.crypto.generateX25519KeyPair();let n=e.e.publicKey;this.mixHash(e.ss,n),this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));let i=e.s.publicKey,o=this.encryptAndHash(e.ss,i);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));let s=this.encryptAndHash(e.ss,r);return{ne:n,ns:o,ciphertext:s}}writeMessageC(e,r){let n=e.s.publicKey,i=this.encryptAndHash(e.ss,n);this.mixKey(e.ss,this.dh(e.s.privateKey,e.re));let o=this.encryptAndHash(e.ss,r),a={ne:this.createEmptyKey(),ns:i,ciphertext:o},{cs1:c,cs2:u}=this.split(e.ss);return{h:e.ss.h,messageBuffer:a,cs1:c,cs2:u}}readMessageA(e,r){return eo(r.ne)&&(e.re=r.ne),this.mixHash(e.ss,e.re),this.decryptAndHash(e.ss,r.ciphertext)}readMessageB(e,r){if(eo(r.ne)&&(e.re=r.ne),this.mixHash(e.ss,e.re),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.re));let{plaintext:n,valid:i}=this.decryptAndHash(e.ss,r.ns);i&&eo(n)&&(e.rs=n),this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));let{plaintext:o,valid:s}=this.decryptAndHash(e.ss,r.ciphertext);return{plaintext:o,valid:i&&s}}readMessageC(e,r){let{plaintext:n,valid:i}=this.decryptAndHash(e.ss,r.ns);if(i&&eo(n)&&(e.rs=n),!e.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(e.ss,this.dh(e.e.privateKey,e.rs));let{plaintext:o,valid:s}=this.decryptAndHash(e.ss,r.ciphertext),{cs1:a,cs2:c}=this.split(e.ss);return{h:e.ss.h,plaintext:o,valid:i&&s,cs1:a,cs2:c}}initSession(e,r,n){let i=this.createEmptyKey(),o=new Uint8Array(32),s;return e?s=this.initializeInitiator(r,n,o,i):s=this.initializeResponder(r,n,o,i),{hs:s,i:e,mc:0}}sendMessage(e,r,n){let i;if(e.mc===0)i=this.writeMessageA(e.hs,r,n);else if(e.mc===1)i=this.writeMessageB(e.hs,r);else if(e.mc===2){let{h:o,messageBuffer:s,cs1:a,cs2:c}=this.writeMessageC(e.hs,r);i=s,e.h=o,e.cs1=a,e.cs2=c}else if(e.mc>2)if(e.i){if(!e.cs1)throw new Error("CS1 (cipher state) is not defined");i=this.writeMessageRegular(e.cs1,r)}else{if(!e.cs2)throw new Error("CS2 (cipher state) is not defined");i=this.writeMessageRegular(e.cs2,r)}else throw new Error("Session invalid.");return e.mc++,i}recvMessage(e,r){let n=new Uint8Array(0),i=!1;if(e.mc===0)({plaintext:n,valid:i}=this.readMessageA(e.hs,r));else if(e.mc===1)({plaintext:n,valid:i}=this.readMessageB(e.hs,r));else if(e.mc===2){let{h:o,plaintext:s,valid:a,cs1:c,cs2:u}=this.readMessageC(e.hs,r);n=s,i=a,e.h=o,e.cs1=c,e.cs2=u}return e.mc++,{plaintext:n,valid:i}}};var Ks=class{isInitiator;session;remotePeer;remoteExtensions={webtransportCerthashes:[]};payload;connection;xx;staticKeypair;prologue;constructor(e,r,n,i,o,s,a,c){this.isInitiator=e,this.payload=r,this.prologue=n,this.staticKeypair=o,this.connection=s,a&&(this.remotePeer=a),this.xx=c??new Ms(i),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){if(d1(this.session.hs.s),this.isInitiator){ze.trace("Stage 0 - Initiator starting to send first message.");let e=this.xx.sendMessage(this.session,new Uint8Array(0));this.connection.writeLP(jl(e)),ze.trace("Stage 0 - Initiator finished sending first message."),X0(this.session.hs.e)}else{ze.trace("Stage 0 - Responder waiting to receive first message...");let e=Zl((await this.connection.readLP()).subarray()),{valid:r}=this.xx.recvMessage(this.session,e);if(!r)throw new Nr("xx handshake stage 0 validation fail");ze.trace("Stage 0 - Responder received first message."),Q0(this.session.hs.re)}}async exchange(){if(this.isInitiator){ze.trace("Stage 1 - Initiator waiting to receive first message from responder...");let e=Jl((await this.connection.readLP()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,e);if(!n)throw new Nr("xx handshake stage 1 validation fail");ze.trace("Stage 1 - Initiator received the message."),Q0(this.session.hs.re),p1(this.session.hs.rs),ze.trace("Initiator going to check remote's signature...");try{let i=Y0(r);this.remotePeer=this.remotePeer||await W0(i),await j0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new Xn(`Error occurred while verifying signed payload: ${o.message}`)}ze.trace("All good with the signature!")}else{ze.trace("Stage 1 - Responder sending out first message with signed payload and static key.");let e=this.xx.sendMessage(this.session,this.payload);this.connection.writeLP(Xl(e)),ze.trace("Stage 1 - Responder sent the second handshake message with signed payload."),X0(this.session.hs.e)}}async finish(){if(this.isInitiator){ze.trace("Stage 2 - Initiator sending third handshake message.");let e=this.xx.sendMessage(this.session,this.payload);this.connection.writeLP(Ql(e)),ze.trace("Stage 2 - Initiator sent message with signed payload.")}else{ze.trace("Stage 2 - Responder waiting for third handshake message...");let e=ed((await this.connection.readLP()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,e);if(!n)throw new Nr("xx handshake stage 2 validation fail");ze.trace("Stage 2 - Responder received the message, finished handshake.");try{let i=Y0(r);this.remotePeer=this.remotePeer||await W0(i),await j0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new Xn(`Error occurred while verifying signed payload: ${o.message}`)}}y1(this.session)}encrypt(e,r){let n=this.getCS(r);return this.xx.encryptWithAd(n,new Uint8Array(0),e)}decrypt(e,r,n){let i=this.getCS(r,!1);return this.xx.decryptWithAd(i,new Uint8Array(0),e,n)}getRemoteStaticKey(){return this.session.hs.rs}getCS(e,r=!0){if(!e.cs1||!e.cs2)throw new Nr("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?r?e.cs1:e.cs2:r?e.cs2:e.cs1}setRemoteNoiseExtension(e){e&&(this.remoteExtensions=e)}};function g1(t){return{xxHandshakeSuccesses:t.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:t.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:t.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:t.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:t.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var Vs=class{protocol="/noise";crypto;prologue;staticKeys;extensions;metrics;constructor(e={}){let{staticNoiseKey:r,extensions:n,crypto:i,prologueBytes:o,metrics:s}=e;this.crypto=i??o0,this.extensions=n,this.metrics=s?g1(s):void 0,r?this.staticKeys=this.crypto.generateX25519KeyPairFromSeed(r):this.staticKeys=this.crypto.generateX25519KeyPair(),this.prologue=o??new Uint8Array(0)}async secureOutbound(e,r,n){let i=Kn(r,{lengthEncoder:jn,lengthDecoder:Pi,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!0,localPeer:e,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remoteExtensions:o.remoteExtensions,remotePeer:o.remotePeer}}async secureInbound(e,r,n){let i=Kn(r,{lengthEncoder:jn,lengthDecoder:Pi,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!1,localPeer:e,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remotePeer:o.remotePeer,remoteExtensions:o.remoteExtensions}}async performHandshake(e){let r=await h1(e.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(e,r)}async performXXHandshake(e,r){let{isInitiator:n,remotePeer:i,connection:o}=e,s=new Ks(n,r,this.prologue,this.crypto,this.staticKeys,o,i);try{await s.propose(),await s.exchange(),await s.finish(),this.metrics?.xxHandshakeSuccesses.increment()}catch(a){if(this.metrics?.xxHandshakeErrors.increment(),a instanceof Error)throw a.message=`Error occurred during XX handshake: ${a.message}`,a}return s}async createSecureConnection(e,r){let[n,i]=yl(),o=e.unwrap();return await xl(n,rd(r,this.metrics),o,s=>jr(s,{lengthDecoder:Pi}),nd(r,this.metrics),n),i}};function x1(t={}){return()=>new Vs(t)}var Y2=re(Cu(),1);var q2=re(Cu(),1);var Au=Me("libp2p:webrtc:sdp"),Du=Object.values(zt).map(t=>t.decoder).reduce((t,e)=>t.or(e));function H2(t){let e=t.getConfiguration().certificates?.at(0);if(e==null||e.getFingerprints==null){Au.trace("fetching fingerprint from local SDP");let n=t.localDescription;return n==null?void 0:D6(n.sdp)}if(Au.trace("fetching fingerprint from local certificate"),e.getFingerprints().length===0)return;let r=e.getFingerprints()[0].value;if(r==null)throw nc("","no fingerprint on local certificate");return r}var A6=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function D6(t){return t.match(A6)?.groups?.fingerprint}function B6(t){for(let e of t.protoNames())if(e.startsWith("ip"))return e.toUpperCase();return Au("Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6",t),"IP6"}function aa(t){let r=t.stringTuples().filter(n=>n[0]===Tu).map(n=>n[1])[0];if(r===void 0||r==="")throw So(`Couldn't find a certhash component of multiaddr: ${t.toString()}`);return r}function Bu(t){let e=Du.decode(t);return q2.decode(e)}function _6(t){let e=Bu(aa(t)),r=_u(e.name),n=e.digest.reduce((o,s)=>o+s.toString(16).padStart(2,"0"),""),i=n.match(/.{1,2}/g);if(i==null)throw nc(n,t.toString());return[`${r.toUpperCase()} ${i.join(":").toUpperCase()}`,n]}function _u(t){switch(t){case"sha1":return"sha-1";case"sha2-256":return"sha-256";case"sha2-512":return"sha-512";default:throw Uf(t)}}function T6(t,e){let{host:r,port:n}=t.toOptions(),i=B6(t),[o]=_6(t);return`v=0
|
|
35
35
|
o=- 0 0 IN ${i} ${r}
|
|
36
36
|
s=-
|
|
37
37
|
c=IN ${i} ${r}
|
|
@@ -112,6 +112,6 @@ function parseRemoteAddress(sdp) {
|
|
|
112
112
|
log('could not parse remote address from', candidateLine);
|
|
113
113
|
return '/webrtc';
|
|
114
114
|
}
|
|
115
|
-
return `/dnsaddr/${candidateParts[4]}/${candidateParts[2]}/${candidateParts[3]}/webrtc`;
|
|
115
|
+
return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[3]}/webrtc`;
|
|
116
116
|
}
|
|
117
117
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/private-to-private/handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/webrtc",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "A libp2p transport using WebRTC connections",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"build": "aegir build",
|
|
128
128
|
"test": "aegir test -t browser",
|
|
129
129
|
"test:chrome": "aegir test -t browser --cov",
|
|
130
|
-
"test:firefox": "aegir test -t browser --browser firefox",
|
|
130
|
+
"test:firefox": "aegir test -t browser -- --browser firefox",
|
|
131
131
|
"lint": "aegir lint",
|
|
132
132
|
"lint:fix": "aegir lint --fix",
|
|
133
133
|
"clean": "aegir clean",
|
|
@@ -152,5 +152,5 @@ function parseRemoteAddress (sdp: string): string {
|
|
|
152
152
|
return '/webrtc'
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
return `/dnsaddr/${candidateParts[4]}/${candidateParts[2]}/${candidateParts[3]}/webrtc`
|
|
155
|
+
return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[3]}/webrtc`
|
|
156
156
|
}
|