@libp2p/peer-store 11.0.11 → 11.0.12-6ddc1b80e

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.min.js CHANGED
@@ -3,7 +3,7 @@
3
3
  `).map(s=>` ${s}`).join(`
4
4
  `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
5
5
  ${t.join(`
6
- `)}`:`${e} :`}};ja=Ae;A.Constructed=ja;Ae.NAME="CONSTRUCTED";var Nn=class extends yt{fromBER(t,e,n){return e}toBER(t){return Ft}};Nn.override="EndOfContentValueBlock";var Ya,Ln=class extends dt{constructor(t={}){super(t,Nn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Ya=Ln;A.EndOfContent=Ya;Ln.NAME=Rr;var Ja,nr=class extends dt{constructor(t={}){super(t,yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Ja=nr;A.Null=Ja;nr.NAME="NULL";var Un=class extends ae(yt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=M.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=M.BufferSourceConverter.toUint8Array(t);return oe(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ki.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Un.NAME="BooleanValueBlock";var Xa,Rn=class extends dt{constructor(t={}){super(t,Un),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Xa=Rn;A.Boolean=Xa;Rn.NAME="BOOLEAN";var _n=class extends ae(Gt){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==za)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?Gt.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};_n.NAME="OctetStringValueBlock";var Qa,Vn=class r extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},_n),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let i=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(i.byteLength){let o=ls(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Ae.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${M.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return M.BufferSourceConverter.concat(t)}};Qa=Vn;A.OctetString=Qa;Vn.NAME=za;var On=class extends ae(Gt){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Ga)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let f=a.valueBlock;if(this.unusedBits>0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return s}let i=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,i,e,n))return-1;let o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=ls(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return Gt.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Ft;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};On.NAME="BitStringValueBlock";var tc,sr=class extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},On),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ae.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};tc=sr;A.BitString=tc;sr.NAME=Ga;var ec;function Sh(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f=0,l=c<o?o:c,u=0;for(let h=l;h>=0;h--,u++){switch(!0){case u<a.length:f=i[o-u]+a[c-u]+e[0];break;default:f=i[o-u]+e[0]}switch(e[0]=f/10,!0){case u>=i.length:i=Bn(new Uint8Array([f%10]),i);break;default:i[o-u]=f%10}}return e[0]>0&&(i=Bn(e,i)),i}function $a(r){if(r>=Lr.length)for(let t=Lr.length;t<=r;t++){let e=new Uint8Array([0]),n=Lr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=i[0]/10,n[s]=i[0]%10}e[0]>0&&(n=Bn(e,n)),Lr.push(n)}return Lr[r]}function Ih(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f,l=0;for(let u=c;u>=0;u--,l++)switch(f=i[o-l]-a[c-l]-e,!0){case f<0:e=1,i[o-l]=f+10;break;default:e=0,i[o-l]=f}if(e>0)for(let u=o-c+1;u>=0;u--,l++)if(f=i[o-l]-e,f<0)e=1,i[o-l]=f+10;else{e=0,i[o-l]=f;break}return i.slice()}var _r=class extends ae(yt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Ki.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Fa(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let i=this.fromBER(t,e,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let f=0;f<8;f++){if((s&1)===1)switch(n){case t:e=Ih($a(n),e),o="-";break;default:e=Sh(e,$a(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(o+=qa.charAt(e[c]));return a===!1&&(o+=qa.charAt(0)),o}};ec=_r;_r.NAME="IntegerValueBlock";Object.defineProperty(ec.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var rc,pt=class r extends dt{constructor(t={}){super(t,_r),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return An(),BigInt(this.valueBlock.toString())}static fromBigInt(t){An();let e=BigInt(t),n=new Ur,s=e.toString(16).replace(/^-/,""),i=new Uint8Array(M.Convert.FromHex(s));if(e<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${M.Convert.ToHex(a)}`)+e,l=M.BufferSourceConverter.toUint8Array(M.Convert.FromHex(f.toString(16)));l[0]|=128,n.write(l)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};rc=pt;A.Integer=rc;pt.NAME="INTEGER";var nc,Dn=class extends pt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};nc=Dn;A.Enumerated=nc;Dn.NAME="ENUMERATED";var Vr=class extends ae(yt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){An();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Be(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let t="";if(this.isHexOnly)t=M.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Vr.NAME="sidBlock";var Pn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Vr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Ft;e.push(s)}return qi(e)}fromString(t){this.value=[];let e=0,n=0,s="",i=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new Vr;if(s>Number.MAX_SAFE_INTEGER){An();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Pn.NAME="ObjectIdentifierValueBlock";var sc,ir=class extends dt{constructor(t={}){super(t,Pn),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};sc=ir;A.ObjectIdentifier=sc;ir.NAME="OBJECT IDENTIFIER";var Or=class extends ae(ne){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Be(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let t="";return this.isHexOnly?t=M.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Or.NAME="relativeSidBlock";var Mn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Or;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(t);if(i.byteLength===0)return this.error=this.value[s].error,Ft;n.push(i)}return qi(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let i=new Or;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Mn.NAME="RelativeObjectIdentifierValueBlock";var ic,Hn=class extends dt{constructor(t={}){super(t,Mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ic=Hn;A.RelativeObjectIdentifier=ic;Hn.NAME="RelativeObjectIdentifier";var oc,se=class extends Ae{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};oc=se;A.Sequence=oc;se.NAME="SEQUENCE";var ac,Fn=class extends Ae{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};ac=Fn;A.Set=ac;Fn.NAME="SET";var Kn=class extends ae(yt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=or}toJSON(){return{...super.toJSON(),value:this.value}}};Kn.NAME="StringValueBlock";var qn=class extends Kn{};qn.NAME="SimpleStringValueBlock";var At=class extends In{constructor({...t}={}){super(t,qn)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};At.NAME="SIMPLE STRING";var $n=class extends At{fromBuffer(t){this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=M.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=M.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf8String(t)),this.valueBlock.value=t}};$n.NAME="Utf8StringValueBlock";var cc,ie=class extends $n{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};cc=ie;A.Utf8String=cc;ie.NAME="UTF8String";var zn=class extends At{fromBuffer(t){this.valueBlock.value=M.Convert.ToUtf16String(t),this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf16String(t))}};zn.NAME="BmpStringValueBlock";var lc,Gn=class extends zn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};lc=Gn;A.BmpString=lc;Gn.NAME="BMPString";var Wn=class extends At{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let i=Be(t.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=t}};Wn.NAME="UniversalStringValueBlock";var uc,Zn=class extends Wn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};uc=Zn;A.UniversalString=uc;Zn.NAME="UniversalString";var fc,jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};fc=jn;A.NumericString=fc;jn.NAME="NumericString";var hc,Yn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};hc=Yn;A.PrintableString=hc;Yn.NAME="PrintableString";var dc,Jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};dc=Jn;A.TeletexString=dc;Jn.NAME="TeletexString";var pc,Xn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};pc=Xn;A.VideotexString=pc;Xn.NAME="VideotexString";var mc,Qn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};mc=Qn;A.IA5String=mc;Qn.NAME="IA5String";var gc,ts=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};gc=ts;A.GraphicString=gc;ts.NAME="GraphicString";var yc,Dr=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};yc=Dr;A.VisibleString=yc;Dr.NAME="VisibleString";var bc,es=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};bc=es;A.GeneralString=bc;es.NAME="GeneralString";var wc,rs=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};wc=rs;A.CharacterString=wc;rs.NAME="CharacterString";var xc,Pr=class extends Dr{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Lt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Lt(this.month,2),e[2]=Lt(this.day,2),e[3]=Lt(this.hour,2),e[4]=Lt(this.minute,2),e[5]=Lt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};xc=Pr;A.UTCTime=xc;Pr.NAME="UTCTime";var vc,ns=class extends Pr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",i=0,o,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),u=-1),h!==-1){if(g=n.substring(h+1),n=n.substring(0,h),g.length!==2&&g.length!==4)throw new Error("Wrong input string for conversion");let x=parseInt(g.substring(0,2),10);if(isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*x,g.length===4){if(x=parseInt(g.substring(2,4),10),isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");c=u*x}}}let f=n.indexOf(".");if(f===-1&&(f=n.indexOf(",")),f!==-1){let u=new Number(`0${n.substring(f)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,f)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let l=o.exec(s);if(l===null)throw new Error("Wrong input string for conversion");for(let u=1;u<l.length;u++)switch(u){case 1:this.year=parseInt(l[u],10);break;case 2:this.month=parseInt(l[u],10);break;case 3:this.day=parseInt(l[u],10);break;case 4:this.hour=parseInt(l[u],10)+a;break;case 5:this.minute=parseInt(l[u],10)+c;break;case 6:this.second=parseInt(l[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Lt(this.year,4)),e.push(Lt(this.month,2)),e.push(Lt(this.day,2)),e.push(Lt(this.hour,2)),e.push(Lt(this.minute,2)),e.push(Lt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Lt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};vc=ns;A.GeneralizedTime=vc;ns.NAME="GeneralizedTime";var Ec,ss=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ec=ss;A.DATE=Ec;ss.NAME="DATE";var Bc,is=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Bc=is;A.TimeOfDay=Bc;is.NAME="TimeOfDay";var Ac,os=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Ac=os;A.DateTime=Ac;os.NAME="DateTime";var kc,as=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};kc=as;A.Duration=kc;as.NAME="Duration";var Sc,cs=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Sc=cs;A.TIME=Sc;cs.NAME="TIME";function X(r,t="utf8"){let e=bn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Mr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},us=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Ic={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new us("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var ke=Ic;async function Tc(r){let t=await ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Ch(t);return{privateKey:e[0],publicKey:e[1]}}async function Cc(r,t){let e=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function Nc(r,t,e){let n=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Ch(r){if(r.privateKey==null||r.publicKey==null)throw new K("Private and public key are required");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}function Gi(r){if(r.kty!=="RSA")throw new K("invalid key type");if(r.n==null)throw new K("invalid key modulus");return Z(r.n,"base64url").length*8}var ar=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return it.createV1(114,this._multihash)}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Nc(this._key,e,t)}},Fr=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return Cc(this._key,t)}};var fs=8192,Wi=18;function Lc(r){let{result:t}=zi(r),e=t.valueBlock.value;return{n:Wt(e[1]),e:Wt(e[2]),d:Wt(e[3]),p:Wt(e[4]),q:Wt(e[5]),dp:Wt(e[6]),dq:Wt(e[7]),qi:Wt(e[8]),kty:"RSA",alg:"RS256"}}function Nh(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new K("JWK was missing components");let e=new se({value:[new pt({value:0}),pt.fromBigInt(Zt(Z(r.n,"base64url"))),pt.fromBigInt(Zt(Z(r.e,"base64url"))),pt.fromBigInt(Zt(Z(r.d,"base64url"))),pt.fromBigInt(Zt(Z(r.p,"base64url"))),pt.fromBigInt(Zt(Z(r.q,"base64url"))),pt.fromBigInt(Zt(Z(r.dp,"base64url"))),pt.fromBigInt(Zt(Z(r.dq,"base64url"))),pt.fromBigInt(Zt(Z(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Uc(r){let{result:t}=zi(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:Wt(e[0]),e:Wt(e[1])}}function Zi(r){if(r.n==null||r.e==null)throw new K("JWK was missing components");let e=new se({value:[new se({value:[new ir({value:"1.2.840.113549.1.1.1"}),new nr]}),new sr({valueHex:new se({value:[pt.fromBigInt(Zt(Z(r.n,"base64url"))),pt.fromBigInt(Zt(Z(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Wt(r){let t=r.valueBlock.valueHexView;for(;t[0]===0;)t=t.subarray(1);return X(t,"base64url")}function Zt(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Rc(r){let t=Lc(r);return _c(t)}function ji(r){let t=Uc(r);if(Gi(t)>fs)throw new $e("Key size is too large");let e=er(zt.encode({Type:at.RSA,Data:r})),n=Ot(Wi,e);return new ar(t,n)}function _c(r){if(Gi(r)>fs)throw new K("Key size is too large");let t=Oc(r),e=er(zt.encode({Type:at.RSA,Data:Zi(t.publicKey)})),n=Ot(Wi,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}async function Vc(r){if(r>fs)throw new K("Key size is too large");let t=await Tc(r),e=er(zt.encode({Type:at.RSA,Data:Zi(t.publicKey)})),n=Ot(Wi,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}function Oc(r){if(r==null)throw new K("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var hs=class extends Je{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,ia(t);let n=Er(e);if(this.iHash=t.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 s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Ye(this),this.iHash.update(t),this}digestInto(t){Ye(this),je(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Yi=(r,t,e)=>new hs(r,t).update(e).digest();Yi.create=(r,t)=>new hs(r,t);function Dc(r){r.lowS!==void 0&&Pt("lowS",r.lowS),r.prehash!==void 0&&Pt("prehash",r.prehash)}function Lh(r){let t=kr(r);Kt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Uh,hexToBytes:Rh}=un,ce={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=ce;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Le(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let i=n>127?Le(s.length/2|128):"";return`${Le(r)}${i}${s}${t}`},decode(r,t){let{Err:e}=ce,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let l of f)o=o<<8|l;if(n+=c,o<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+o);if(a.length!==o)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+o)}}},_int:{encode(r){let{Err:t}=ce;if(r<le)throw new t("integer: negative integers are not allowed");let e=Le(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=ce;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return Uh(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ce,s=typeof r=="string"?Rh(r):r;Qe(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:f,l}=n.decode(2,c);if(l.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=ce,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},le=BigInt(0),ft=BigInt(1),Tm=BigInt(2),Pc=BigInt(3),Cm=BigInt(4);function _h(r){let t=Lh(r),{Fp:e}=t,n=we(t.n,t.nBitLength),s=t.toBytes||((b,d,w)=>{let B=d.toAffine();return ee(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),i=t.fromBytes||(b=>{let d=b.subarray(1),w=e.fromBytes(d.subarray(0,e.BYTES)),B=e.fromBytes(d.subarray(e.BYTES,2*e.BYTES));return{x:w,y:B}});function o(b){let{a:d,b:w}=t,B=e.sqr(b),m=e.mul(B,b);return e.add(e.add(m,e.mul(b,d)),w)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(b){return Br(b,ft,t.n)}function c(b){let{allowedPrivateKeyLengths:d,nByteLength:w,wrapPrivateKey:B,n:m}=t;if(d&&typeof b!="bigint"){if(ge(b)&&(b=Qt(b)),typeof b!="string"||!d.includes(b.length))throw new Error("Invalid key");b=b.padStart(w*2,"0")}let k;try{k=typeof b=="bigint"?b:te(tt("private key",b,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof b}`)}return B&&(k=z(k,m)),It("private key",k,ft,m),k}function f(b){if(!(b instanceof h))throw new Error("ProjectivePoint expected")}let l=_e((b,d)=>{let{px:w,py:B,pz:m}=b;if(e.eql(m,e.ONE))return{x:w,y:B};let k=b.is0();d==null&&(d=k?e.ONE:e.inv(m));let U=e.mul(w,d),L=e.mul(B,d),S=e.mul(m,d);if(k)return{x:e.ZERO,y:e.ZERO};if(!e.eql(S,e.ONE))throw new Error("invZ was invalid");return{x:U,y:L}}),u=_e(b=>{if(b.is0()){if(t.allowInfinityPoint&&!e.is0(b.py))return;throw new Error("bad point: ZERO")}let{x:d,y:w}=b.toAffine();if(!e.isValid(d)||!e.isValid(w))throw new Error("bad point: x or y not FE");let B=e.sqr(w),m=o(d);if(!e.eql(B,m))throw new Error("bad point: equation left != right");if(!b.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class h{constructor(d,w,B){if(this.px=d,this.py=w,this.pz=B,d==null||!e.isValid(d))throw new Error("x required");if(w==null||!e.isValid(w))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required");Object.freeze(this)}static fromAffine(d){let{x:w,y:B}=d||{};if(!d||!e.isValid(w)||!e.isValid(B))throw new Error("invalid affine point");if(d instanceof h)throw new Error("projective point not allowed");let m=k=>e.eql(k,e.ZERO);return m(w)&&m(B)?h.ZERO:new h(w,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let w=e.invertBatch(d.map(B=>B.pz));return d.map((B,m)=>B.toAffine(w[m])).map(h.fromAffine)}static fromHex(d){let w=h.fromAffine(i(tt("pointHex",d)));return w.assertValidity(),w}static fromPrivateKey(d){return h.BASE.multiply(c(d))}static msm(d,w){return dn(h,n,d,w)}_setWindowSize(d){x.setWindowSize(this,d)}assertValidity(){u(this)}hasEvenY(){let{y:d}=this.toAffine();if(e.isOdd)return!e.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){f(d);let{px:w,py:B,pz:m}=this,{px:k,py:U,pz:L}=d,S=e.eql(e.mul(w,L),e.mul(k,m)),I=e.eql(e.mul(B,L),e.mul(U,m));return S&&I}negate(){return new h(this.px,e.neg(this.py),this.pz)}double(){let{a:d,b:w}=t,B=e.mul(w,Pc),{px:m,py:k,pz:U}=this,L=e.ZERO,S=e.ZERO,I=e.ZERO,N=e.mul(m,m),rt=e.mul(k,k),F=e.mul(U,U),O=e.mul(m,k);return O=e.add(O,O),I=e.mul(m,U),I=e.add(I,I),L=e.mul(d,I),S=e.mul(B,F),S=e.add(L,S),L=e.sub(rt,S),S=e.add(rt,S),S=e.mul(L,S),L=e.mul(O,L),I=e.mul(B,I),F=e.mul(d,F),O=e.sub(N,F),O=e.mul(d,O),O=e.add(O,I),I=e.add(N,N),N=e.add(I,N),N=e.add(N,F),N=e.mul(N,O),S=e.add(S,N),F=e.mul(k,U),F=e.add(F,F),N=e.mul(F,O),L=e.sub(L,N),I=e.mul(F,rt),I=e.add(I,I),I=e.add(I,I),new h(L,S,I)}add(d){f(d);let{px:w,py:B,pz:m}=this,{px:k,py:U,pz:L}=d,S=e.ZERO,I=e.ZERO,N=e.ZERO,rt=t.a,F=e.mul(t.b,Pc),O=e.mul(w,k),nt=e.mul(B,U),E=e.mul(m,L),T=e.add(w,B),y=e.add(k,U);T=e.mul(T,y),y=e.add(O,nt),T=e.sub(T,y),y=e.add(w,m);let p=e.add(k,L);return y=e.mul(y,p),p=e.add(O,E),y=e.sub(y,p),p=e.add(B,m),S=e.add(U,L),p=e.mul(p,S),S=e.add(nt,E),p=e.sub(p,S),N=e.mul(rt,y),S=e.mul(F,E),N=e.add(S,N),S=e.sub(nt,N),N=e.add(nt,N),I=e.mul(S,N),nt=e.add(O,O),nt=e.add(nt,O),E=e.mul(rt,E),y=e.mul(F,y),nt=e.add(nt,E),E=e.sub(O,E),E=e.mul(rt,E),y=e.add(y,E),O=e.mul(nt,y),I=e.add(I,O),O=e.mul(p,y),S=e.mul(T,S),S=e.sub(S,O),O=e.mul(T,nt),N=e.mul(p,N),N=e.add(N,O),new h(S,I,N)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return x.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){It("scalar",d,le,t.n);let w=h.ZERO;if(d===le)return w;if(d===ft)return this;let{endo:B}=t;if(!B)return x.unsafeLadder(this,d);let{k1neg:m,k1:k,k2neg:U,k2:L}=B.splitScalar(d),S=w,I=w,N=this;for(;k>le||L>le;)k&ft&&(S=S.add(N)),L&ft&&(I=I.add(N)),N=N.double(),k>>=ft,L>>=ft;return m&&(S=S.negate()),U&&(I=I.negate()),I=new h(e.mul(I.px,B.beta),I.py,I.pz),S.add(I)}multiply(d){let{endo:w,n:B}=t;It("scalar",d,ft,B);let m,k;if(w){let{k1neg:U,k1:L,k2neg:S,k2:I}=w.splitScalar(d),{p:N,f:rt}=this.wNAF(L),{p:F,f:O}=this.wNAF(I);N=x.constTimeNegate(U,N),F=x.constTimeNegate(S,F),F=new h(e.mul(F.px,w.beta),F.py,F.pz),m=N.add(F),k=rt.add(O)}else{let{p:U,f:L}=this.wNAF(d);m=U,k=L}return h.normalizeZ([m,k])[0]}multiplyAndAddUnsafe(d,w,B){let m=h.BASE,k=(L,S)=>S===le||S===ft||!L.equals(m)?L.multiplyUnsafe(S):L.multiply(S),U=k(this,w).add(k(d,B));return U.is0()?void 0:U}toAffine(d){return l(this,d)}isTorsionFree(){let{h:d,isTorsionFree:w}=t;if(d===ft)return!0;if(w)return w(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:w}=t;return d===ft?this:w?w(h,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Pt("isCompressed",d),this.assertValidity(),s(h,this,d)}toHex(d=!0){return Pt("isCompressed",d),Qt(this.toRawBytes(d))}}h.BASE=new h(t.Gx,t.Gy,e.ONE),h.ZERO=new h(e.ZERO,e.ONE,e.ZERO);let g=t.nBitLength,x=hn(h,t.endo?Math.ceil(g/2):g);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Vh(r){let t=kr(r);return Kt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Mc(r){let t=Vh(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(E){return z(E,n)}function a(E){return fn(E,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:u}=_h({...t,toBytes(E,T,y){let p=T.toAffine(),v=e.toBytes(p.x),C=ee;return Pt("isCompressed",y),y?C(Uint8Array.from([T.hasEvenY()?2:3]),v):C(Uint8Array.from([4]),v,e.toBytes(p.y))},fromBytes(E){let T=E.length,y=E[0],p=E.subarray(1);if(T===s&&(y===2||y===3)){let v=te(p);if(!Br(v,ft,e.ORDER))throw new Error("Point is not on curve");let C=l(v),R;try{R=e.sqrt(C)}catch(H){let P=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+P)}let _=(R&ft)===ft;return(y&1)===1!==_&&(R=e.neg(R)),{x:v,y:R}}else if(T===i&&y===4){let v=e.fromBytes(p.subarray(0,e.BYTES)),C=e.fromBytes(p.subarray(e.BYTES,2*e.BYTES));return{x:v,y:C}}else throw new Error(`Point of length ${T} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),h=E=>Qt(be(E,t.nByteLength));function g(E){let T=n>>ft;return E>T}function x(E){return g(E)?o(-E):E}let b=(E,T,y)=>te(E.slice(T,y));class d{constructor(T,y,p){this.r=T,this.s=y,this.recovery=p,this.assertValidity()}static fromCompact(T){let y=t.nByteLength;return T=tt("compactSignature",T,y*2),new d(b(T,0,y),b(T,y,2*y))}static fromDER(T){let{r:y,s:p}=ce.toSig(tt("DER",T));return new d(y,p)}assertValidity(){It("r",this.r,ft,n),It("s",this.s,ft,n)}addRecoveryBit(T){return new d(this.r,this.s,T)}recoverPublicKey(T){let{r:y,s:p,recovery:v}=this,C=L(tt("msgHash",T));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let R=v===2||v===3?y+t.n:y;if(R>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let _=v&1?"03":"02",D=c.fromHex(_+h(R)),H=a(R),P=o(-C*H),$=o(p*H),W=c.BASE.multiplyAndAddUnsafe(D,P,$);if(!W)throw new Error("point at infinify");return W.assertValidity(),W}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Ue(this.toDERHex())}toDERHex(){return ce.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ue(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}let w={isValidPrivateKey(E){try{return f(E),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let E=ri(t.n);return ba(t.randomBytes(E),t.n)},precompute(E=8,T=c.BASE){return T._setWindowSize(E),T.multiply(BigInt(3)),T}};function B(E,T=!0){return c.fromPrivateKey(E).toRawBytes(T)}function m(E){let T=ge(E),y=typeof E=="string",p=(T||y)&&E.length;return T?p===s||p===i:y?p===2*s||p===2*i:E instanceof c}function k(E,T,y=!0){if(m(E))throw new Error("first arg must be private key");if(!m(T))throw new Error("second arg must be public key");return c.fromHex(T).multiply(f(E)).toRawBytes(y)}let U=t.bits2int||function(E){let T=te(E),y=E.length*8-t.nBitLength;return y>0?T>>BigInt(y):T},L=t.bits2int_modN||function(E){return o(U(E))},S=Ar(t.nBitLength);function I(E){return It(`num < 2^${t.nBitLength}`,E,le,S),be(E,t.nByteLength)}function N(E,T,y=rt){if(["recovered","canonical"].some(lt=>lt in y))throw new Error("sign() legacy options not supported");let{hash:p,randomBytes:v}=t,{lowS:C,prehash:R,extraEntropy:_}=y;C==null&&(C=!0),E=tt("msgHash",E),Dc(y),R&&(E=tt("prehashed msgHash",p(E)));let D=L(E),H=f(T),P=[I(H),I(D)];if(_!=null&&_!==!1){let lt=_===!0?v(e.BYTES):_;P.push(tt("extraEntropy",lt))}let $=ee(...P),W=D;function ct(lt){let ht=U(lt);if(!u(ht))return;let wt=a(ht),st=c.BASE.multiply(ht).toAffine(),St=o(st.x);if(St===le)return;let jt=o(wt*o(W+St*H));if(jt===le)return;let gr=(st.x===St?0:2)|Number(st.y&ft),yr=jt;return C&&g(jt)&&(yr=x(jt),gr^=1),new d(St,yr,gr)}return{seed:$,k2sig:ct}}let rt={lowS:t.lowS,prehash:!1},F={lowS:t.lowS,prehash:!1};function O(E,T,y=rt){let{seed:p,k2sig:v}=N(E,T,y),C=t;return Xs(C.hash.outputLen,C.nByteLength,C.hmac)(p,v)}c.BASE._setWindowSize(8);function nt(E,T,y,p=F){let v=E;if(T=tt("msgHash",T),y=tt("publicKey",y),"strict"in p)throw new Error("options.strict was renamed to lowS");Dc(p);let{lowS:C,prehash:R}=p,_,D;try{if(typeof v=="string"||ge(v))try{_=d.fromDER(v)}catch(st){if(!(st instanceof ce.Err))throw st;_=d.fromCompact(v)}else if(typeof v=="object"&&typeof v.r=="bigint"&&typeof v.s=="bigint"){let{r:st,s:St}=v;_=new d(st,St)}else throw new Error("PARSE");D=c.fromHex(y)}catch(st){if(st.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&_.hasHighS())return!1;R&&(T=t.hash(T));let{r:H,s:P}=_,$=L(T),W=a(P),ct=o($*W),lt=o(H*W),ht=c.BASE.multiplyAndAddUnsafe(D,ct,lt)?.toAffine();return ht?o(ht.x)===H:!1}return{CURVE:t,getPublicKey:B,getSharedSecret:k,sign:O,verify:nt,ProjectivePoint:c,Signature:d,utils:w}}function Oh(r){return{hash:r,hmac:(t,...e)=>Yi(r,t,$s(...e)),randomBytes:an}}function Hc(r,t){let e=n=>Mc({...r,...Oh(n)});return Object.freeze({...e(t),create:e})}var qc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Fc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Dh=BigInt(1),Ji=BigInt(2),Kc=(r,t)=>(r+t/Ji)/t;function Ph(r){let t=qc,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,l=f*f*r%t,u=Y(l,e,t)*l%t,h=Y(u,e,t)*l%t,g=Y(h,Ji,t)*f%t,x=Y(g,s,t)*g%t,b=Y(x,i,t)*x%t,d=Y(b,a,t)*b%t,w=Y(d,c,t)*d%t,B=Y(w,a,t)*b%t,m=Y(B,e,t)*l%t,k=Y(m,o,t)*x%t,U=Y(k,n,t)*f%t,L=Y(U,Ji,t);if(!Xi.eql(Xi.sqr(L),r))throw new Error("Cannot find square root");return L}var Xi=we(qc,void 0,void 0,{sqrt:Ph}),Fe=Hc({a:BigInt(0),b:BigInt(7),Fp:Xi,n:Fc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Fc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Dh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=Kc(i*r,t),c=Kc(-n*r,t),f=z(r-a*e-c*s,t),l=z(-a*n-c*i,t),u=f>o,h=l>o;if(u&&(f=t-f),h&&(l=t-l),f>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:f,k2neg:h,k2:l}}}},er),Pm=BigInt(0);var Mm=Fe.ProjectivePoint;function Rt(r,t){t==null&&(t=r.reduce((s,i)=>s+i.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function $c(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function zc(r,t,e){let n=Sr.digest(e instanceof Uint8Array?e:e.subarray());if($c(n))return n.then(({digest:s})=>Fe.verify(t,s,r)).catch(s=>{throw new Mr(String(s))});try{return Fe.verify(t,n.digest,r)}catch(s){throw new Mr(String(s))}}var ds=class{type="secp256k1";raw;_key;constructor(t){this._key=Wc(t),this.raw=Gc(this._key)}toMultihash(){return Jt.digest(qt(this))}toCID(){return it.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return zc(this._key,e,t)}};function Qi(r){return new ds(r)}function Gc(r){return Fe.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Wc(r){try{return Fe.ProjectivePoint.fromHex(r),r}catch(t){throw new $e(String(t))}}function ps(r){let{Type:t,Data:e}=zt.decode(r),n=e??new Uint8Array;switch(t){case at.RSA:return ji(n);case at.Ed25519:return ai(n);case at.secp256k1:return Qi(n);default:throw new Te}}function Zc(r){let{Type:t,Data:e}=zt.decode(r.digest),n=e??new Uint8Array;switch(t){case at.Ed25519:return ai(n);case at.secp256k1:return Qi(n);default:throw new Te}}function qt(r){return zt.encode({Type:at[r.type],Data:r.raw})}var jc=Symbol.for("nodejs.util.inspect.custom"),Mh=114,Kr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[tn]=!0;toString(){return this.string==null&&(this.string=J.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return it.createV1(Mh,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ut(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ut(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[jc](){return`PeerId(${this.toString()})`}},qr=class extends Kr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},$r=class extends Kr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},zr=class extends Kr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Hh=2336,Gr=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Jt.digest(Z(this.url))}[jc](){return`PeerId(${this.url})`}[tn]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return it.createV1(Hh,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=X(t)),t.toString()===this.toString())}};var Fh=114,Yc=2336;function Jc(r){if(r.type==="Ed25519")return new $r({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new zr({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new qr({multihash:r.toCID().multihash,publicKey:r});throw new Te}function to(r){if(qh(r))return new qr({multihash:r});if(Kh(r))try{let t=Zc(r);if(t.type==="Ed25519")return new $r({multihash:r,publicKey:t});if(t.type==="secp256k1")return new zr({multihash:r,publicKey:t})}catch{let e=X(r.digest);return new Gr(new URL(e))}throw new rn("Supplied PeerID Multihash is invalid")}function ms(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==Fh&&r.code!==Yc)throw new en("Supplied PeerID CID is invalid");if(r.code===Yc){let t=X(r.multihash.digest);return new Gr(new URL(t))}return to(r.multihash)}function Kh(r){return r.code===Jt.code}function qh(r){return r.code===Sr.code}var Qc=Symbol.for("@achingbrain/uint8arraylist");function Xc(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function gs(r){return!!r?.[Qc]}var ys=class r{bufs;length;[Qc]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(gs(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(gs(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Xc(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Xc(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(gs(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Rt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Rt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),i=new r;return i.length=s,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,t>=c)continue;let f=t>=a&&t<c,l=e>a&&e<=c;if(f&&l){if(t===a&&e===c){n.push(o);break}let u=t-a;n.push(o.subarray(u,u+(e-t)));break}if(f){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(l){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!gs(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,f=n.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let h=f;h>=0;h--){let g=this.get(u+h);if(n[h]!==g){l=Math.max(1,h-a[g]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ut(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,i)=>s+i.byteLength,0)),n.length=e,n}};var Wr;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={publicKey:et(0),payloadType:et(0),payload:et(0),signature:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.publicKey=e.bytes();break}case 2:{i.payloadType=e.bytes();break}case 3:{i.payload=e.bytes();break}case 5:{i.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Wr||(Wr={}));var bs=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var cr=class r{static createFromProtobuf=async t=>{let e=Wr.decode(t),n=ps(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,i=t.marshal(),o=tl(n,s,i),a=await e.sign(o.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:i,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new bs("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:i}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=i}marshal(){return this.marshaled==null&&(this.marshaled=Wr.encode({publicKey:qt(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ut(this.marshal(),t.marshal())}async validate(t){let e=tl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},tl=(r,t,e)=>{let n=Z(r),s=$t(n.byteLength),i=$t(t.length),o=$t(e.length);return new ys(s,n,i,t,o,e)};function el(r,t){let e=(n,s)=>n.toString().localeCompare(s.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,s)=>t[s].equals(n)))}var ws=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}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(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*s)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let h=Number.parseInt(u,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(i*=t,i+=l,i>f||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[s]=o[0],e[s+1]=o[1],e[s+2]=o[2],e[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];e[s]=i>>8,e[s+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=t(i.subarray(0,o));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var rl=45,$h=15,lr=new ws;function eo(r){if(!(r.length>$h))return lr.new(r).parseWith(()=>lr.readIPv4Addr())}function ro(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rl))return lr.new(r).parseWith(()=>lr.readIPv6Addr())}function xs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rl))return lr.new(r).parseWith(()=>lr.readIPAddr())}var gy=parseInt("0xFFFF",16),yy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function il(r){return!!eo(r)}function ol(r){return!!ro(r)}function vs(r){return!!xs(r)}var al=il,jh=ol,no=function(r){let t=0;if(r=r.toString().trim(),al(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(jh(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=al(e[n]),o;i&&(o=no(e[n]),e[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,X(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let i=parseInt(e[n],16);s[t++]=i>>8&255,s[t++]=i&255}return s}throw new Error("invalid ip address")},cl=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let i=0;i<e;i++)s.push(r[t+i]);return s.join(".")}if(e===16){let s=[];for(let i=0;i<e;i+=2)s.push(n.getUint16(t+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ur={},so={},Jh=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Jh.forEach(r=>{let t=Xh(...r);so[t.code]=t,ur[t.name]=t});function Xh(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function G(r){if(typeof r=="number"){if(so[r]!=null)return so[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(ur[r]!=null)return ur[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var tb=G("ip4"),eb=G("ip6"),rb=G("ipcidr");function co(r,t){switch(G(r).code){case 4:case 41:return td(t);case 42:return ao(t);case 6:case 273:case 33:case 132:return fl(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ao(t);case 421:return sd(t);case 444:return ul(t);case 445:return ul(t);case 466:return nd(t);case 481:return globalThis.encodeURIComponent(ao(t));default:return X(t,"base16")}}function lo(r,t){switch(G(r).code){case 4:return ll(t);case 41:return ll(t);case 42:return oo(t);case 6:case 273:case 33:case 132:return uo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return oo(t);case 421:return ed(t);case 444:return id(t);case 445:return od(t);case 466:return rd(t);case 481:return oo(globalThis.decodeURIComponent(t));default:return Z(t,"base16")}}var io=Object.values(Ir).map(r=>r.decoder),Qh=function(){let r=io[0].or(io[1]);return io.slice(2).forEach(t=>r=r.or(t)),r}();function ll(r){if(!vs(r))throw new Error("invalid ip address");return no(r)}function td(r){let t=cl(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!vs(t))throw new Error("invalid ip address");return t}function uo(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function fl(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function oo(r){let t=Z(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function ao(r){let t=Oe(r);if(r=r.slice(Nt(t)),r.length!==t)throw new Error("inconsistent lengths");return X(r)}function ed(r){let t;r[0]==="Q"||r[0]==="1"?t=Ce(J.decode(`z${r}`)).bytes:t=it.parse(r).multihash.bytes;let e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function rd(r){let t=Qh.decode(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function nd(r){let t=Oe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+X(e,"base64url")}function sd(r){let t=Oe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return X(e,"base58btc")}function id(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Vt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=uo(n);return Rt([e,s],e.length+s.length)}function od(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Vt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=uo(n);return Rt([e,s],e.length+s.length)}function ul(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=X(t,"base32"),s=fl(e);return`${n}:${s}`}function hl(r){r=fo(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=G(o);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(i++,i>=s.length)throw pl("invalid address: "+r);if(a.path===!0){n=fo(s.slice(i).join("/")),t.push([a.code,lo(a.code,n)]),e.push([a.code,n]);break}let c=lo(a.code,s[i]);t.push([a.code,c]),e.push([a.code,co(a.code,c)])}return{string:dl(e),bytes:po(t),tuples:t,stringTuples:e,path:n}}function ho(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let i=Oe(r,s),o=Nt(i),a=G(i),c=ad(a,r.slice(s+o));if(c===0){t.push([i]),e.push([i]),s+=o;continue}let f=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw pl("Invalid address Uint8Array: "+X(r,"base16"));t.push([i,f]);let l=co(i,f);if(e.push([i,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(r),string:dl(e),tuples:t,stringTuples:e,path:n}}function dl(r){let t=[];return r.map(e=>{let n=G(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),fo(t.join("/"))}function po(r){return Rt(r.map(t=>{let e=G(t[0]),n=Uint8Array.from($t(e.code));return t.length>1&&t[1]!=null&&(n=Rt([n,t[1]])),n}))}function ad(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Oe(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Nt(e)}}function fo(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function pl(r){return new Error("Error parsing address: "+r)}var cd=Symbol.for("nodejs.util.inspect.custom"),go=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ld=[G("dns").code,G("dns4").code,G("dns6").code,G("dnsaddr").code],mo=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},Es=class r{bytes;#t;#e;#i;#a;[go]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=ho(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=hl(t)}else if(Bs(t))e=ho(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#i=e.stringTuples,this.#a=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,i="",o=G("tcp"),a=G("udp"),c=G("ip4"),f=G("ip6"),l=G("dns6"),u=G("ip6zone");for(let[g,x]of this.stringTuples())g===u.code&&(i=`%${x??""}`),ld.includes(g)&&(e=o.name,s=443,n=`${x??""}${i}`,t=g===l.code?6:4),(g===o.code||g===a.code)&&(e=G(g).name,s=parseInt(x??"")),(g===c.code||g===f.code)&&(e=G(g).name,n=`${x??""}${i}`,t=g===f.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},G(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>G(t).name)}tuples(){return this.#e}stringTuples(){return this.#i}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(po(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===ur.p2p.code&&t.push([n,s]),n===ur["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?X(J.decode(`z${n}`),"base58btc"):X(it.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ut(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=ml.get(e.name);if(n==null)throw new mo(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>ue(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[cd](){return`Multiaddr(${this.#t})`}};var ml=new Map;function Bs(r){return!!r?.[go]}function ue(r){return new Es(r)}var gl="libp2p-peer-record",yl=Uint8Array.from([3,1]);var Zr;(function(r){let t;(function(n){let s;n.codec=()=>(s==null&&(s=Bt((i,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),i.multiaddr!=null&&i.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(i.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(i,o,a={})=>{let c={multiaddr:et(0)},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{c.multiaddr=i.bytes();break}default:{i.skipType(l&7);break}}}return c})),s),n.encode=i=>Et(i,n.codec()),n.decode=(i,o)=>vt(i,n.codec(),o)})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=Bt((n,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(s.uint32(10),s.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(s.uint32(16),s.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)s.uint32(26),r.AddressInfo.codec().encode(o,s);i.lengthDelimited!==!1&&s.ldelim()},(n,s,i={})=>{let o={peerId:et(0),seq:0n,addresses:[]},a=s==null?n.len:n.pos+s;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{o.peerId=n.bytes();break}case 2:{o.seq=n.uint64();break}case 3:{if(i.limits?.addresses!=null&&o.addresses.length===i.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:i.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return o})),e),r.encode=n=>Et(n,r.codec()),r.decode=(n,s)=>vt(n,r.codec(),s)})(Zr||(Zr={}));var Ke=class r{static createFromProtobuf=t=>{let e=Zr.decode(t),n=to(Ce(e.peerId)),s=(e.addresses??[]).map(o=>ue(o.multiaddr)),i=e.seq;return new r({peerId:n,multiaddrs:s,seqNumber:i})};static DOMAIN=gl;static CODEC=yl;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(t){let{peerId:e,multiaddrs:n,seqNumber:s}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=s??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Zr.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof r)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!el(this.multiaddrs,t.multiaddrs))}};function ud(r){return r[Symbol.asyncIterator]!=null}function fd(r){if(ud(r))return(async()=>{let e=[];for await(let n of r)e.push(n);return e})();let t=[];for(let e of r)t.push(e);return t}var bl=fd;var bo=Fo(xl(),1);var Yr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},wo=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},vl=r=>globalThis.DOMException===void 0?new wo(r):new DOMException(r),El=r=>{let t=r.reason===void 0?vl("This operation was aborted."):r.reason;return t instanceof Error?t:vl(t)};function Jr(r,t){let{milliseconds:e,fallback:n,message:s,customTimers:i={setTimeout,clearTimeout}}=t,o,c=new Promise((f,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(t.signal){let{signal:h}=t;h.aborted&&l(El(h));let g=()=>{l(El(h))};h.addEventListener("abort",g,{once:!0}),r.finally(()=>{h.removeEventListener("abort",g)})}if(e===Number.POSITIVE_INFINITY){r.then(f,l);return}let u=new Yr;o=i.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){l(h)}return}typeof r.cancel=="function"&&r.cancel(),s===!1?f():s instanceof Error?l(s):(u.message=s??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{f(await r)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{i.clearTimeout.call(void 0,o),o=void 0},c}function xo(r,t,e){let n=0,s=r.length;for(;s>0;){let i=Math.trunc(s/2),o=n+i;e(r[o],t)<=0?(n=++o,s-=i+1):s=i}return n}var Xr=class{#t=[];enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=e.priority){this.#t.push(n);return}let s=xo(this.#t,n,(i,o)=>o.priority-i.priority);this.#t.splice(s,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}};var fr=class extends bo.default{#t;#e;#i=0;#a;#c;#p=0;#n;#l;#r;#m;#s=0;#u;#o;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Xr,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#e=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#r=new t.queueClass,this.#m=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#o=t.autoStart===!1}get#w(){return this.#e||this.#i<this.#a}get#x(){return this.#s<this.#u}#v(){this.#s--,this.#f(),this.emit("next")}#E(){this.#b(),this.#y(),this.#l=void 0}get#B(){let t=Date.now();if(this.#n===void 0){let e=this.#p-t;if(e<0)this.#i=this.#t?this.#s:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},e)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#o){let t=!this.#B;if(this.#w&&this.#x){let e=this.#r.dequeue();return e?(this.emit("active"),e(),t&&this.#y(),!0):!1}}return!1}#y(){this.#e||this.#n!==void 0||(this.#n=setInterval(()=>{this.#b()},this.#c),this.#p=Date.now()+this.#c)}#b(){this.#i===0&&this.#s===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#i=this.#t?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#u=t,this.#h()}async#A(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:this.#g,...e},new Promise((n,s)=>{this.#r.enqueue(async()=>{this.#s++,this.#i++;try{e.signal?.throwIfAborted();let i=t({signal:e.signal});e.timeout&&(i=Jr(Promise.resolve(i),{milliseconds:e.timeout})),e.signal&&(i=Promise.race([i,this.#A(e.signal)]));let o=await i;n(o),this.emit("completed",o)}catch(i){if(i instanceof Yr&&!e.throwOnTimeout){n();return}s(i),this.emit("error",i)}finally{this.#v()}},e),this.emit("add"),this.#f()})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#r.size<t||await this.#d("next",()=>this.#r.size<t)}async onIdle(){this.#s===0&&this.#r.size===0||await this.#d("idle")}async#d(t,e){return new Promise(n=>{let s=()=>{e&&!e()||(this.off(t,s),n())};this.on(t,s)})}get size(){return this.#r.size}sizeBy(t){return this.#r.filter(t).length}get pending(){return this.#s}get isPaused(){return this.#o}};var Se={},hr=r=>{r.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)})};hr.addEventListener=(r,t)=>{Se[r]==null&&(Se[r]=[]),Se[r].push(t)};hr.removeEventListener=(r,t)=>{Se[r]!=null&&(Se[r]=Se[r].filter(e=>e===t))};hr.dispatchEvent=function(r,t,e){Se[r]!=null&&Se[r].forEach(n=>n(t,e))};var vo=hr;var Eo="lock:worker:request-read",Bo="lock:worker:release-read",Ao="lock:master:grant-read",ko="lock:worker:request-write",So="lock:worker:release-write",Io="lock:master:grant-write";var Bl=(r=21)=>Math.random().toString().substring(2);var Al=(r,t,e,n,s)=>(i,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>{i.postMessage({type:s,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=l=>{if(l?.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===n&&u.identifier===a.identifier&&(i.removeEventListener("message",f),c())};i.addEventListener("message",f)})}}}))},kl=(r,t,e,n)=>async()=>{let s=Bl();return globalThis.postMessage({type:t,identifier:s,name:r}),new Promise(i=>{let o=a=>{if(a?.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===s&&(globalThis.removeEventListener("message",o),i(()=>{globalThis.postMessage({type:n,identifier:s,name:r})}))};globalThis.addEventListener("message",o)})},pd={singleProcess:!1},Sl=r=>{if(r=Object.assign({},pd,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return vo.addEventListener("message",Al(e,"requestReadLock",Eo,Bo,Ao)),vo.addEventListener("message",Al(e,"requestWriteLock",ko,So,Io)),e}return{isWorker:!0,readLock:e=>kl(e,Eo,Ao,Bo),writeLock:e=>kl(e,ko,Io,So)}};var qe={},Ie;async function To(r,t){let e,n=new Promise(s=>{e=s});return r.add(async()=>Jr((async()=>{await new Promise(s=>{e(()=>{s()})})})(),{milliseconds:t.timeout})),n}var md=(r,t)=>{if(Ie.isWorker===!0)return{readLock:Ie.readLock(r,t),writeLock:Ie.writeLock(r,t)};let e=new fr({concurrency:1}),n;return{async readLock(){if(n!=null)return To(n,t);n=new fr({concurrency:t.concurrency,autoStart:!1});let s=n,i=To(n,t);return e.add(async()=>{s.start(),await s.onIdle().then(()=>{n===s&&(n=null)})}),i},async writeLock(){return n=null,To(e,t)}}},gd={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Co(r){let t=Object.assign({},gd,r);return Ie==null&&(Ie=Sl(t),Ie.isWorker!==!0&&(Ie.addEventListener("requestReadLock",e=>{qe[e.data.name]!=null&&qe[e.data.name].readLock().then(async n=>e.data.handler().finally(()=>{n()}))}),Ie.addEventListener("requestWriteLock",async e=>{qe[e.data.name]!=null&&qe[e.data.name].writeLock().then(async n=>e.data.handler().finally(()=>{n()}))}))),qe[t.name]==null&&(qe[t.name]=md(t.name,t)),qe[t.name]}var dr;(function(r){let t;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:"",value:et(0)},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=o.bytes();break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(t=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let e;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Ss.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:""},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=Ss.codec().decode(o,o.uint32(),{limits:c.limits?.value});break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(e=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Bt((s,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),s.addresses!=null)for(let a of s.addresses)i.uint32(10),ks.codec().encode(a,i);if(s.protocols!=null)for(let a of s.protocols)i.uint32(18),i.string(a);if(s.publicKey!=null&&(i.uint32(34),i.bytes(s.publicKey)),s.peerRecordEnvelope!=null&&(i.uint32(42),i.bytes(s.peerRecordEnvelope)),s.metadata!=null&&s.metadata.size!==0)for(let[a,c]of s.metadata.entries())i.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},i);if(s.tags!=null&&s.tags.size!==0)for(let[a,c]of s.tags.entries())i.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},i);o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let f=s.uint32();switch(f>>>3){case 1:{if(o.limits?.addresses!=null&&a.addresses.length===o.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');a.addresses.push(ks.codec().decode(s,s.uint32(),{limits:o.limits?.addresses$}));break}case 2:{if(o.limits?.protocols!=null&&a.protocols.length===o.limits.protocols)throw new Me('Decode error - map field "protocols" had too many elements');a.protocols.push(s.string());break}case 4:{a.publicKey=s.bytes();break}case 5:{a.peerRecordEnvelope=s.bytes();break}case 6:{if(o.limits?.metadata!=null&&a.metadata.size===o.limits.metadata)throw new Nr('Decode error - map field "metadata" had too many elements');let l=r.Peer$metadataEntry.codec().decode(s,s.uint32());a.metadata.set(l.key,l.value);break}case 7:{if(o.limits?.tags!=null&&a.tags.size===o.limits.tags)throw new Nr('Decode error - map field "tags" had too many elements');let l=r.Peer$tagsEntry.codec().decode(s,s.uint32(),{limits:{value:o.limits?.tags$value}});a.tags.set(l.key,l.value);break}default:{s.skipType(f&7);break}}}return a})),n),r.encode=s=>Et(s,r.codec()),r.decode=(s,i)=>vt(s,r.codec(),i)})(dr||(dr={}));var ks;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={multiaddr:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.multiaddr=e.bytes();break}case 2:{i.isCertified=e.bool();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(ks||(ks={}));var Ss;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.value!=null&&e.value!==0&&(n.uint32(8),n.uint32(e.value)),e.expiry!=null&&(n.uint32(16),n.uint64(e.expiry)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={value:0},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.value=e.uint32();break}case 2:{i.expiry=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Ss||(Ss={}));function pr(r,t){let e=dr.decode(t);if(e.publicKey!=null&&r.publicKey==null){let i=ps(e.publicKey);r=Jc(i)}let n=new Map,s=BigInt(Date.now());for(let[i,o]of e.tags.entries())o.expiry!=null&&o.expiry<s||n.set(i,o);return{...e,id:r,addresses:e.addresses.map(({multiaddr:i,isCertified:o})=>({multiaddr:ue(i),isCertified:o??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}var fe="/",Il=new TextEncoder().encode(fe),Is=Il[0],Ts=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=Z(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Is)throw new Error("Invalid key")}toString(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(fe))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Il),this._buf[0]!==Is){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Is,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Is;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let s=0;s<e.length;s++){if(n.length<s+1)return!1;let i=e[s],o=n[s];if(i<o)return!0;if(i>o)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(fe).slice(1)}type(){return yd(this.baseNamespace())}name(){return bd(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(fe)||(t+=fe),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(fe):new r(t.slice(0,-1).join(fe))}child(t){return this.toString()===fe?t:t.toString()===fe?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...wd(t.map(e=>e.namespaces()))])}};function yd(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function bd(r){let t=r.split(":");return t[t.length-1]}function wd(r){return[].concat(...r)}var No="/peers/";function mr(r){if(!Ko(r)||r.type==null)throw new K("Invalid PeerId");let t=r.toCID().toString();return new Ts(`${No}${t}`)}async function Tl(r,t,e){let n=new Map;for(let s of e){if(s==null)continue;if(s.multiaddr instanceof Uint8Array&&(s.multiaddr=ue(s.multiaddr)),!Bs(s.multiaddr))throw new K("Multiaddr was invalid");if(!await t(r,s.multiaddr))continue;let i=s.isCertified??!1,o=s.multiaddr.toString(),a=n.get(o);a!=null?s.isCertified=a.isCertified||i:n.set(o,{multiaddr:s.multiaddr,isCertified:i})}return[...n.values()].sort((s,i)=>s.multiaddr.toString().localeCompare(i.multiaddr.toString())).map(({isCertified:s,multiaddr:i})=>({isCertified:s,multiaddr:i.bytes}))}async function Ns(r,t,e,n){if(t==null)throw new K("Invalid PeerData");if(t.publicKey!=null&&r.publicKey!=null&&!t.publicKey.equals(r.publicKey))throw new K("publicKey bytes do not match peer id publicKey bytes");let s=n.existingPeer;if(s!=null&&!r.equals(s.id))throw new K("peer id did not match existing peer id");let i=s?.addresses??[],o=new Set(s?.protocols??[]),a=s?.metadata??new Map,c=s?.tags??new Map,f=s?.peerRecordEnvelope;if(e==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(i=[],t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Cs(h,{validate:Cl})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Cs(h,{validate:Nl,map:Ll})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}if(e==="merge"){if(t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[g,x]of h)x==null?a.delete(g):a.set(g,x);a=Cs([...a.entries()],{validate:Cl})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),g=new Map(c);for(let[x,b]of h)b==null?g.delete(x):g.set(x,b);c=Cs([...g.entries()],{validate:Nl,map:Ll})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}let l;s?.id.publicKey!=null?l=qt(s.id.publicKey):t.publicKey!=null?l=qt(t.publicKey):r.publicKey!=null&&(l=qt(r.publicKey));let u={addresses:await Tl(r,n.addressFilter??(async()=>!0),i),protocols:[...o.values()].sort((h,g)=>h.localeCompare(g)),metadata:a,tags:c,publicKey:l,peerRecordEnvelope:f};return r.type!=="RSA"&&delete u.publicKey,u}function Cs(r,t){let e=new Map;for(let[n,s]of r)s!=null&&t.validate(n,s);for(let[n,s]of r.sort(([i],[o])=>i.localeCompare(o)))s!=null&&e.set(n,t.map?.(n,s)??s);return e}function Cl(r,t){if(typeof r!="string")throw new K("Metadata key must be a string");if(!(t instanceof Uint8Array))throw new K("Metadata value must be a Uint8Array")}function Nl(r,t){if(typeof r!="string")throw new K("Tag name must be a string");if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new K("Tag value must be an integer");if(t.value<0||t.value>100)throw new K("Tag value must be between 0-100")}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new K("Tag ttl must be an integer");if(t.ttl<0)throw new K("Tag ttl must be between greater than 0")}}function Ll(r,t){let e;return t.expiry!=null&&(e=t.expiry),t.ttl!=null&&(e=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:e}}function Ls(r,t){let e=r.toString().split("/")[2],n=it.parse(e,Vt),s=ms(n);return pr(s,t)}function xd(r){return r==null?{}:{prefix:No,filters:(r.filters??[]).map(t=>({key:e,value:n})=>t(Ls(e,n))),orders:(r.orders??[]).map(t=>(e,n)=>t(Ls(e.key,e.value),Ls(n.key,n.value)))}}var Us=class{peerId;datastore;lock;addressFilter;constructor(t,e={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=e.addressFilter,this.lock=Co({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(mr(t))}async delete(t){if(this.peerId.equals(t))throw new K("Cannot delete self peer");await this.datastore.delete(mr(t))}async load(t){let e=await this.datastore.get(mr(t));return pr(t,e)}async save(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"patch",{addressFilter:this.addressFilter});return this.#e(t,i,n,s)}async patch(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"patch",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async merge(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"merge",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async*all(t){for await(let{key:e,value:n}of this.datastore.query(xd(t??{}))){let s=Ls(e,n);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let e=await this.datastore.get(mr(t)),n=pr(t,e);return{existingBuf:e,existingPeer:n}}catch(e){if(e.name!=="NotFoundError")throw e}return{}}async#e(t,e,n,s){let i=dr.encode(e);return n!=null&&ut(i,n)?{peer:pr(t,i),previous:s,updated:!1}:(await this.datastore.put(mr(t),i),{peer:pr(t,i),previous:s,updated:!0})}};var Lo=class{store;events;peerId;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.events=t.events,this.peerId=t.peerId,this.store=new Us(t,e)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(t,e){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let s of this.store.all(e))t(s)}finally{this.log.trace("forEach release read lock"),n()}}async all(t){this.log.trace("all await read lock");let e=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await bl(this.store.all(t))}finally{this.log.trace("all release read lock"),e()}}async delete(t){this.log.trace("delete await write lock");let e=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(t)}finally{this.log.trace("delete release write lock"),e()}}async has(t){this.log.trace("has await read lock");let e=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(t)}finally{this.log.trace("has release read lock"),e()}}async get(t){this.log.trace("get await read lock");let e=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(t)}finally{this.log.trace("get release read lock"),e()}}async save(t,e){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let s=await this.store.save(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("save release write lock"),n()}}async patch(t,e){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let s=await this.store.patch(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(t,e){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let s=await this.store.merge(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(t,e){let n=await cr.openAndCertify(t,Ke.DOMAIN),s=ms(n.publicKey.toCID());if(e?.equals(s)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",e,s),!1;let i=Ke.createFromProtobuf(n.payload),o;try{o=await this.get(s)}catch(a){if(a.name!=="NotFoundError")throw a}if(o?.peerRecordEnvelope!=null){let a=await cr.createFromProtobuf(o.peerRecordEnvelope),c=Ke.createFromProtobuf(a.payload);if(c.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:t,addresses:i.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!0}#t(t,e){e.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:e}):this.events.safeDispatchEvent("peer:update",{detail:e}))}};function vd(r,t={}){return new Lo(r,t)}return zl(Ed);})();
6
+ `)}`:`${e} :`}};ja=Ae;A.Constructed=ja;Ae.NAME="CONSTRUCTED";var Nn=class extends yt{fromBER(t,e,n){return e}toBER(t){return Ft}};Nn.override="EndOfContentValueBlock";var Ya,Ln=class extends dt{constructor(t={}){super(t,Nn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Ya=Ln;A.EndOfContent=Ya;Ln.NAME=Rr;var Ja,nr=class extends dt{constructor(t={}){super(t,yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Ja=nr;A.Null=Ja;nr.NAME="NULL";var Un=class extends ae(yt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=M.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=M.BufferSourceConverter.toUint8Array(t);return oe(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ki.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Un.NAME="BooleanValueBlock";var Xa,Rn=class extends dt{constructor(t={}){super(t,Un),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Xa=Rn;A.Boolean=Xa;Rn.NAME="BOOLEAN";var _n=class extends ae(Gt){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==za)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?Gt.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};_n.NAME="OctetStringValueBlock";var Qa,Vn=class r extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},_n),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let i=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(i.byteLength){let o=ls(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Ae.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${M.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return M.BufferSourceConverter.concat(t)}};Qa=Vn;A.OctetString=Qa;Vn.NAME=za;var On=class extends ae(Gt){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=Gt.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Rr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Ga)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let f=a.valueBlock;if(this.unusedBits>0&&f.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=f.unusedBits}return s}let i=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,i,e,n))return-1;let o=i.subarray(e,e+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=ls(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,e+n}toBER(t,e){if(this.isConstructed)return Gt.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Ft;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};On.NAME="BitStringValueBlock";var tc,sr=class extends dt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},On),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ae.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};tc=sr;A.BitString=tc;sr.NAME=Ga;var ec;function Sh(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f=0,l=c<o?o:c,u=0;for(let h=l;h>=0;h--,u++){switch(!0){case u<a.length:f=i[o-u]+a[c-u]+e[0];break;default:f=i[o-u]+e[0]}switch(e[0]=f/10,!0){case u>=i.length:i=Bn(new Uint8Array([f%10]),i);break;default:i[o-u]=f%10}}return e[0]>0&&(i=Bn(e,i)),i}function $a(r){if(r>=Lr.length)for(let t=Lr.length;t<=r;t++){let e=new Uint8Array([0]),n=Lr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=i[0]/10,n[s]=i[0]%10}e[0]>0&&(n=Bn(e,n)),Lr.push(n)}return Lr[r]}function Ih(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,f,l=0;for(let u=c;u>=0;u--,l++)switch(f=i[o-l]-a[c-l]-e,!0){case f<0:e=1,i[o-l]=f+10;break;default:e=0,i[o-l]=f}if(e>0)for(let u=o-c+1;u>=0;u--,l++)if(f=i[o-l]-e,f<0)e=1,i[o-l]=f+10;else{e=0,i[o-l]=f;break}return i.slice()}var _r=class extends ae(yt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Ki.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Fa(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let i=this.fromBER(t,e,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let f=0;f<8;f++){if((s&1)===1)switch(n){case t:e=Ih($a(n),e),o="-";break;default:e=Sh(e,$a(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(o+=qa.charAt(e[c]));return a===!1&&(o+=qa.charAt(0)),o}};ec=_r;_r.NAME="IntegerValueBlock";Object.defineProperty(ec.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var rc,pt=class r extends dt{constructor(t={}){super(t,_r),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return An(),BigInt(this.valueBlock.toString())}static fromBigInt(t){An();let e=BigInt(t),n=new Ur,s=e.toString(16).replace(/^-/,""),i=new Uint8Array(M.Convert.FromHex(s));if(e<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${M.Convert.ToHex(a)}`)+e,l=M.BufferSourceConverter.toUint8Array(M.Convert.FromHex(f.toString(16)));l[0]|=128,n.write(l)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};rc=pt;A.Integer=rc;pt.NAME="INTEGER";var nc,Dn=class extends pt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};nc=Dn;A.Enumerated=nc;Dn.NAME="ENUMERATED";var Vr=class extends ae(yt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){An();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Be(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let t="";if(this.isHexOnly)t=M.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Vr.NAME="sidBlock";var Pn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Vr;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Ft;e.push(s)}return qi(e)}fromString(t){this.value=[];let e=0,n=0,s="",i=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new Vr;if(s>Number.MAX_SAFE_INTEGER){An();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Pn.NAME="ObjectIdentifierValueBlock";var sc,ir=class extends dt{constructor(t={}){super(t,Pn),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};sc=ir;A.ObjectIdentifier=sc;ir.NAME="OBJECT IDENTIFIER";var Or=class extends ae(ne){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!oe(this,s,e,n))return-1;let i=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let e=Be(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ft;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),i=e.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let t="";return this.isHexOnly?t=M.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Or.NAME="relativeSidBlock";var Mn=class extends yt{constructor({value:t=or,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let i=new Or;if(s=i.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(t);if(i.byteLength===0)return this.error=this.value[s].error,Ft;n.push(i)}return qi(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let i=new Or;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};Mn.NAME="RelativeObjectIdentifierValueBlock";var ic,Hn=class extends dt{constructor(t={}){super(t,Mn),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ic=Hn;A.RelativeObjectIdentifier=ic;Hn.NAME="RelativeObjectIdentifier";var oc,se=class extends Ae{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};oc=se;A.Sequence=oc;se.NAME="SEQUENCE";var ac,Fn=class extends Ae{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};ac=Fn;A.Set=ac;Fn.NAME="SET";var Kn=class extends ae(yt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=or}toJSON(){return{...super.toJSON(),value:this.value}}};Kn.NAME="StringValueBlock";var qn=class extends Kn{};qn.NAME="SimpleStringValueBlock";var At=class extends In{constructor({...t}={}){super(t,qn)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};At.NAME="SIMPLE STRING";var $n=class extends At{fromBuffer(t){this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=M.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=M.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf8String(t)),this.valueBlock.value=t}};$n.NAME="Utf8StringValueBlock";var cc,ie=class extends $n{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};cc=ie;A.Utf8String=cc;ie.NAME="UTF8String";var zn=class extends At{fromBuffer(t){this.valueBlock.value=M.Convert.ToUtf16String(t),this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf16String(t))}};zn.NAME="BmpStringValueBlock";var lc,Gn=class extends zn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};lc=Gn;A.BmpString=lc;Gn.NAME="BMPString";var Wn=class extends At{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let i=Be(t.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=t}};Wn.NAME="UniversalStringValueBlock";var uc,Zn=class extends Wn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};uc=Zn;A.UniversalString=uc;Zn.NAME="UniversalString";var fc,jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};fc=jn;A.NumericString=fc;jn.NAME="NumericString";var hc,Yn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};hc=Yn;A.PrintableString=hc;Yn.NAME="PrintableString";var dc,Jn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};dc=Jn;A.TeletexString=dc;Jn.NAME="TeletexString";var pc,Xn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};pc=Xn;A.VideotexString=pc;Xn.NAME="VideotexString";var mc,Qn=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};mc=Qn;A.IA5String=mc;Qn.NAME="IA5String";var gc,ts=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};gc=ts;A.GraphicString=gc;ts.NAME="GraphicString";var yc,Dr=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};yc=Dr;A.VisibleString=yc;Dr.NAME="VisibleString";var bc,es=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};bc=es;A.GeneralString=bc;es.NAME="GeneralString";var wc,rs=class extends At{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};wc=rs;A.CharacterString=wc;rs.NAME="CharacterString";var xc,Pr=class extends Dr{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Lt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Lt(this.month,2),e[2]=Lt(this.day,2),e[3]=Lt(this.hour,2),e[4]=Lt(this.minute,2),e[5]=Lt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};xc=Pr;A.UTCTime=xc;Pr.NAME="UTCTime";var vc,ns=class extends Pr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",i=0,o,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),u=-1),h!==-1){if(g=n.substring(h+1),n=n.substring(0,h),g.length!==2&&g.length!==4)throw new Error("Wrong input string for conversion");let x=parseInt(g.substring(0,2),10);if(isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*x,g.length===4){if(x=parseInt(g.substring(2,4),10),isNaN(x.valueOf()))throw new Error("Wrong input string for conversion");c=u*x}}}let f=n.indexOf(".");if(f===-1&&(f=n.indexOf(",")),f!==-1){let u=new Number(`0${n.substring(f)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,f)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let l=o.exec(s);if(l===null)throw new Error("Wrong input string for conversion");for(let u=1;u<l.length;u++)switch(u){case 1:this.year=parseInt(l[u],10);break;case 2:this.month=parseInt(l[u],10);break;case 3:this.day=parseInt(l[u],10);break;case 4:this.hour=parseInt(l[u],10)+a;break;case 5:this.minute=parseInt(l[u],10)+c;break;case 6:this.second=parseInt(l[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Lt(this.year,4)),e.push(Lt(this.month,2)),e.push(Lt(this.day,2)),e.push(Lt(this.hour,2)),e.push(Lt(this.minute,2)),e.push(Lt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Lt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};vc=ns;A.GeneralizedTime=vc;ns.NAME="GeneralizedTime";var Ec,ss=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ec=ss;A.DATE=Ec;ss.NAME="DATE";var Bc,is=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Bc=is;A.TimeOfDay=Bc;is.NAME="TimeOfDay";var Ac,os=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Ac=os;A.DateTime=Ac;os.NAME="DateTime";var kc,as=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};kc=as;A.Duration=kc;as.NAME="Duration";var Sc,cs=class extends ie{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Sc=cs;A.TIME=Sc;cs.NAME="TIME";function X(r,t="utf8"){let e=bn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Mr=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},us=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Ic={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new us("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var ke=Ic;async function Tc(r){let t=await ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Ch(t);return{privateKey:e[0],publicKey:e[1]}}async function Cc(r,t){let e=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function Nc(r,t,e){let n=await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Ch(r){if(r.privateKey==null||r.publicKey==null)throw new K("Private and public key are required");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}function Gi(r){if(r.kty!=="RSA")throw new K("invalid key type");if(r.n==null)throw new K("invalid key modulus");return Z(r.n,"base64url").length*8}var ar=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return it.createV1(114,this._multihash)}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return Nc(this._key,e,t)}},Fr=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Hr.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}sign(t){return Cc(this._key,t)}};var fs=8192,Wi=18;function Lc(r){let{result:t}=zi(r),e=t.valueBlock.value;return{n:Wt(e[1]),e:Wt(e[2]),d:Wt(e[3]),p:Wt(e[4]),q:Wt(e[5]),dp:Wt(e[6]),dq:Wt(e[7]),qi:Wt(e[8]),kty:"RSA",alg:"RS256"}}function Nh(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new K("JWK was missing components");let e=new se({value:[new pt({value:0}),pt.fromBigInt(Zt(Z(r.n,"base64url"))),pt.fromBigInt(Zt(Z(r.e,"base64url"))),pt.fromBigInt(Zt(Z(r.d,"base64url"))),pt.fromBigInt(Zt(Z(r.p,"base64url"))),pt.fromBigInt(Zt(Z(r.q,"base64url"))),pt.fromBigInt(Zt(Z(r.dp,"base64url"))),pt.fromBigInt(Zt(Z(r.dq,"base64url"))),pt.fromBigInt(Zt(Z(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Uc(r){let{result:t}=zi(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:Wt(e[0]),e:Wt(e[1])}}function Zi(r){if(r.n==null||r.e==null)throw new K("JWK was missing components");let e=new se({value:[new se({value:[new ir({value:"1.2.840.113549.1.1.1"}),new nr]}),new sr({valueHex:new se({value:[pt.fromBigInt(Zt(Z(r.n,"base64url"))),pt.fromBigInt(Zt(Z(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Wt(r){let t=r.valueBlock.valueHexView;for(;t[0]===0;)t=t.subarray(1);return X(t,"base64url")}function Zt(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Rc(r){let t=Lc(r);return _c(t)}function ji(r){let t=Uc(r);if(Gi(t)>fs)throw new $e("Key size is too large");let e=er(zt.encode({Type:at.RSA,Data:r})),n=Ot(Wi,e);return new ar(t,n)}function _c(r){if(Gi(r)>fs)throw new K("Key size is too large");let t=Oc(r),e=er(zt.encode({Type:at.RSA,Data:Zi(t.publicKey)})),n=Ot(Wi,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}async function Vc(r){if(r>fs)throw new K("Key size is too large");let t=await Tc(r),e=er(zt.encode({Type:at.RSA,Data:Zi(t.publicKey)})),n=Ot(Wi,e);return new Fr(t.privateKey,new ar(t.publicKey,n))}function Oc(r){if(r==null)throw new K("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var hs=class extends Je{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,ia(t);let n=Er(e);if(this.iHash=t.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 s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?t.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=t.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(t){return Ye(this),this.iHash.update(t),this}digestInto(t){Ye(this),je(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=o,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Yi=(r,t,e)=>new hs(r,t).update(e).digest();Yi.create=(r,t)=>new hs(r,t);function Dc(r){r.lowS!==void 0&&Pt("lowS",r.lowS),r.prehash!==void 0&&Pt("prehash",r.prehash)}function Lh(r){let t=kr(r);Kt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Uh,hexToBytes:Rh}=un,ce={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=ce;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Le(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let i=n>127?Le(s.length/2|128):"";return`${Le(r)}${i}${s}${t}`},decode(r,t){let{Err:e}=ce,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let l of f)o=o<<8|l;if(n+=c,o<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+o);if(a.length!==o)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+o)}}},_int:{encode(r){let{Err:t}=ce;if(r<le)throw new t("integer: negative integers are not allowed");let e=Le(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=ce;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return Uh(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ce,s=typeof r=="string"?Rh(r):r;Qe(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:f,l}=n.decode(2,c);if(l.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=ce,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},le=BigInt(0),ft=BigInt(1),Tm=BigInt(2),Pc=BigInt(3),Cm=BigInt(4);function _h(r){let t=Lh(r),{Fp:e}=t,n=we(t.n,t.nBitLength),s=t.toBytes||((b,d,w)=>{let B=d.toAffine();return ee(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),i=t.fromBytes||(b=>{let d=b.subarray(1),w=e.fromBytes(d.subarray(0,e.BYTES)),B=e.fromBytes(d.subarray(e.BYTES,2*e.BYTES));return{x:w,y:B}});function o(b){let{a:d,b:w}=t,B=e.sqr(b),m=e.mul(B,b);return e.add(e.add(m,e.mul(b,d)),w)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(b){return Br(b,ft,t.n)}function c(b){let{allowedPrivateKeyLengths:d,nByteLength:w,wrapPrivateKey:B,n:m}=t;if(d&&typeof b!="bigint"){if(ge(b)&&(b=Qt(b)),typeof b!="string"||!d.includes(b.length))throw new Error("Invalid key");b=b.padStart(w*2,"0")}let k;try{k=typeof b=="bigint"?b:te(tt("private key",b,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof b}`)}return B&&(k=z(k,m)),It("private key",k,ft,m),k}function f(b){if(!(b instanceof h))throw new Error("ProjectivePoint expected")}let l=_e((b,d)=>{let{px:w,py:B,pz:m}=b;if(e.eql(m,e.ONE))return{x:w,y:B};let k=b.is0();d==null&&(d=k?e.ONE:e.inv(m));let U=e.mul(w,d),L=e.mul(B,d),S=e.mul(m,d);if(k)return{x:e.ZERO,y:e.ZERO};if(!e.eql(S,e.ONE))throw new Error("invZ was invalid");return{x:U,y:L}}),u=_e(b=>{if(b.is0()){if(t.allowInfinityPoint&&!e.is0(b.py))return;throw new Error("bad point: ZERO")}let{x:d,y:w}=b.toAffine();if(!e.isValid(d)||!e.isValid(w))throw new Error("bad point: x or y not FE");let B=e.sqr(w),m=o(d);if(!e.eql(B,m))throw new Error("bad point: equation left != right");if(!b.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class h{constructor(d,w,B){if(this.px=d,this.py=w,this.pz=B,d==null||!e.isValid(d))throw new Error("x required");if(w==null||!e.isValid(w))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required");Object.freeze(this)}static fromAffine(d){let{x:w,y:B}=d||{};if(!d||!e.isValid(w)||!e.isValid(B))throw new Error("invalid affine point");if(d instanceof h)throw new Error("projective point not allowed");let m=k=>e.eql(k,e.ZERO);return m(w)&&m(B)?h.ZERO:new h(w,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let w=e.invertBatch(d.map(B=>B.pz));return d.map((B,m)=>B.toAffine(w[m])).map(h.fromAffine)}static fromHex(d){let w=h.fromAffine(i(tt("pointHex",d)));return w.assertValidity(),w}static fromPrivateKey(d){return h.BASE.multiply(c(d))}static msm(d,w){return dn(h,n,d,w)}_setWindowSize(d){x.setWindowSize(this,d)}assertValidity(){u(this)}hasEvenY(){let{y:d}=this.toAffine();if(e.isOdd)return!e.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){f(d);let{px:w,py:B,pz:m}=this,{px:k,py:U,pz:L}=d,S=e.eql(e.mul(w,L),e.mul(k,m)),I=e.eql(e.mul(B,L),e.mul(U,m));return S&&I}negate(){return new h(this.px,e.neg(this.py),this.pz)}double(){let{a:d,b:w}=t,B=e.mul(w,Pc),{px:m,py:k,pz:U}=this,L=e.ZERO,S=e.ZERO,I=e.ZERO,N=e.mul(m,m),rt=e.mul(k,k),F=e.mul(U,U),O=e.mul(m,k);return O=e.add(O,O),I=e.mul(m,U),I=e.add(I,I),L=e.mul(d,I),S=e.mul(B,F),S=e.add(L,S),L=e.sub(rt,S),S=e.add(rt,S),S=e.mul(L,S),L=e.mul(O,L),I=e.mul(B,I),F=e.mul(d,F),O=e.sub(N,F),O=e.mul(d,O),O=e.add(O,I),I=e.add(N,N),N=e.add(I,N),N=e.add(N,F),N=e.mul(N,O),S=e.add(S,N),F=e.mul(k,U),F=e.add(F,F),N=e.mul(F,O),L=e.sub(L,N),I=e.mul(F,rt),I=e.add(I,I),I=e.add(I,I),new h(L,S,I)}add(d){f(d);let{px:w,py:B,pz:m}=this,{px:k,py:U,pz:L}=d,S=e.ZERO,I=e.ZERO,N=e.ZERO,rt=t.a,F=e.mul(t.b,Pc),O=e.mul(w,k),nt=e.mul(B,U),E=e.mul(m,L),T=e.add(w,B),y=e.add(k,U);T=e.mul(T,y),y=e.add(O,nt),T=e.sub(T,y),y=e.add(w,m);let p=e.add(k,L);return y=e.mul(y,p),p=e.add(O,E),y=e.sub(y,p),p=e.add(B,m),S=e.add(U,L),p=e.mul(p,S),S=e.add(nt,E),p=e.sub(p,S),N=e.mul(rt,y),S=e.mul(F,E),N=e.add(S,N),S=e.sub(nt,N),N=e.add(nt,N),I=e.mul(S,N),nt=e.add(O,O),nt=e.add(nt,O),E=e.mul(rt,E),y=e.mul(F,y),nt=e.add(nt,E),E=e.sub(O,E),E=e.mul(rt,E),y=e.add(y,E),O=e.mul(nt,y),I=e.add(I,O),O=e.mul(p,y),S=e.mul(T,S),S=e.sub(S,O),O=e.mul(T,nt),N=e.mul(p,N),N=e.add(N,O),new h(S,I,N)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return x.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){It("scalar",d,le,t.n);let w=h.ZERO;if(d===le)return w;if(d===ft)return this;let{endo:B}=t;if(!B)return x.unsafeLadder(this,d);let{k1neg:m,k1:k,k2neg:U,k2:L}=B.splitScalar(d),S=w,I=w,N=this;for(;k>le||L>le;)k&ft&&(S=S.add(N)),L&ft&&(I=I.add(N)),N=N.double(),k>>=ft,L>>=ft;return m&&(S=S.negate()),U&&(I=I.negate()),I=new h(e.mul(I.px,B.beta),I.py,I.pz),S.add(I)}multiply(d){let{endo:w,n:B}=t;It("scalar",d,ft,B);let m,k;if(w){let{k1neg:U,k1:L,k2neg:S,k2:I}=w.splitScalar(d),{p:N,f:rt}=this.wNAF(L),{p:F,f:O}=this.wNAF(I);N=x.constTimeNegate(U,N),F=x.constTimeNegate(S,F),F=new h(e.mul(F.px,w.beta),F.py,F.pz),m=N.add(F),k=rt.add(O)}else{let{p:U,f:L}=this.wNAF(d);m=U,k=L}return h.normalizeZ([m,k])[0]}multiplyAndAddUnsafe(d,w,B){let m=h.BASE,k=(L,S)=>S===le||S===ft||!L.equals(m)?L.multiplyUnsafe(S):L.multiply(S),U=k(this,w).add(k(d,B));return U.is0()?void 0:U}toAffine(d){return l(this,d)}isTorsionFree(){let{h:d,isTorsionFree:w}=t;if(d===ft)return!0;if(w)return w(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:w}=t;return d===ft?this:w?w(h,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Pt("isCompressed",d),this.assertValidity(),s(h,this,d)}toHex(d=!0){return Pt("isCompressed",d),Qt(this.toRawBytes(d))}}h.BASE=new h(t.Gx,t.Gy,e.ONE),h.ZERO=new h(e.ZERO,e.ONE,e.ZERO);let g=t.nBitLength,x=hn(h,t.endo?Math.ceil(g/2):g);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Vh(r){let t=kr(r);return Kt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Mc(r){let t=Vh(r),{Fp:e,n}=t,s=e.BYTES+1,i=2*e.BYTES+1;function o(E){return z(E,n)}function a(E){return fn(E,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:u}=_h({...t,toBytes(E,T,y){let p=T.toAffine(),v=e.toBytes(p.x),C=ee;return Pt("isCompressed",y),y?C(Uint8Array.from([T.hasEvenY()?2:3]),v):C(Uint8Array.from([4]),v,e.toBytes(p.y))},fromBytes(E){let T=E.length,y=E[0],p=E.subarray(1);if(T===s&&(y===2||y===3)){let v=te(p);if(!Br(v,ft,e.ORDER))throw new Error("Point is not on curve");let C=l(v),R;try{R=e.sqrt(C)}catch(H){let P=H instanceof Error?": "+H.message:"";throw new Error("Point is not on curve"+P)}let _=(R&ft)===ft;return(y&1)===1!==_&&(R=e.neg(R)),{x:v,y:R}}else if(T===i&&y===4){let v=e.fromBytes(p.subarray(0,e.BYTES)),C=e.fromBytes(p.subarray(e.BYTES,2*e.BYTES));return{x:v,y:C}}else throw new Error(`Point of length ${T} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),h=E=>Qt(be(E,t.nByteLength));function g(E){let T=n>>ft;return E>T}function x(E){return g(E)?o(-E):E}let b=(E,T,y)=>te(E.slice(T,y));class d{constructor(T,y,p){this.r=T,this.s=y,this.recovery=p,this.assertValidity()}static fromCompact(T){let y=t.nByteLength;return T=tt("compactSignature",T,y*2),new d(b(T,0,y),b(T,y,2*y))}static fromDER(T){let{r:y,s:p}=ce.toSig(tt("DER",T));return new d(y,p)}assertValidity(){It("r",this.r,ft,n),It("s",this.s,ft,n)}addRecoveryBit(T){return new d(this.r,this.s,T)}recoverPublicKey(T){let{r:y,s:p,recovery:v}=this,C=L(tt("msgHash",T));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let R=v===2||v===3?y+t.n:y;if(R>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let _=v&1?"03":"02",D=c.fromHex(_+h(R)),H=a(R),P=o(-C*H),$=o(p*H),W=c.BASE.multiplyAndAddUnsafe(D,P,$);if(!W)throw new Error("point at infinify");return W.assertValidity(),W}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Ue(this.toDERHex())}toDERHex(){return ce.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ue(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}let w={isValidPrivateKey(E){try{return f(E),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let E=ri(t.n);return ba(t.randomBytes(E),t.n)},precompute(E=8,T=c.BASE){return T._setWindowSize(E),T.multiply(BigInt(3)),T}};function B(E,T=!0){return c.fromPrivateKey(E).toRawBytes(T)}function m(E){let T=ge(E),y=typeof E=="string",p=(T||y)&&E.length;return T?p===s||p===i:y?p===2*s||p===2*i:E instanceof c}function k(E,T,y=!0){if(m(E))throw new Error("first arg must be private key");if(!m(T))throw new Error("second arg must be public key");return c.fromHex(T).multiply(f(E)).toRawBytes(y)}let U=t.bits2int||function(E){let T=te(E),y=E.length*8-t.nBitLength;return y>0?T>>BigInt(y):T},L=t.bits2int_modN||function(E){return o(U(E))},S=Ar(t.nBitLength);function I(E){return It(`num < 2^${t.nBitLength}`,E,le,S),be(E,t.nByteLength)}function N(E,T,y=rt){if(["recovered","canonical"].some(lt=>lt in y))throw new Error("sign() legacy options not supported");let{hash:p,randomBytes:v}=t,{lowS:C,prehash:R,extraEntropy:_}=y;C==null&&(C=!0),E=tt("msgHash",E),Dc(y),R&&(E=tt("prehashed msgHash",p(E)));let D=L(E),H=f(T),P=[I(H),I(D)];if(_!=null&&_!==!1){let lt=_===!0?v(e.BYTES):_;P.push(tt("extraEntropy",lt))}let $=ee(...P),W=D;function ct(lt){let ht=U(lt);if(!u(ht))return;let wt=a(ht),st=c.BASE.multiply(ht).toAffine(),St=o(st.x);if(St===le)return;let jt=o(wt*o(W+St*H));if(jt===le)return;let gr=(st.x===St?0:2)|Number(st.y&ft),yr=jt;return C&&g(jt)&&(yr=x(jt),gr^=1),new d(St,yr,gr)}return{seed:$,k2sig:ct}}let rt={lowS:t.lowS,prehash:!1},F={lowS:t.lowS,prehash:!1};function O(E,T,y=rt){let{seed:p,k2sig:v}=N(E,T,y),C=t;return Xs(C.hash.outputLen,C.nByteLength,C.hmac)(p,v)}c.BASE._setWindowSize(8);function nt(E,T,y,p=F){let v=E;if(T=tt("msgHash",T),y=tt("publicKey",y),"strict"in p)throw new Error("options.strict was renamed to lowS");Dc(p);let{lowS:C,prehash:R}=p,_,D;try{if(typeof v=="string"||ge(v))try{_=d.fromDER(v)}catch(st){if(!(st instanceof ce.Err))throw st;_=d.fromCompact(v)}else if(typeof v=="object"&&typeof v.r=="bigint"&&typeof v.s=="bigint"){let{r:st,s:St}=v;_=new d(st,St)}else throw new Error("PARSE");D=c.fromHex(y)}catch(st){if(st.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&_.hasHighS())return!1;R&&(T=t.hash(T));let{r:H,s:P}=_,$=L(T),W=a(P),ct=o($*W),lt=o(H*W),ht=c.BASE.multiplyAndAddUnsafe(D,ct,lt)?.toAffine();return ht?o(ht.x)===H:!1}return{CURVE:t,getPublicKey:B,getSharedSecret:k,sign:O,verify:nt,ProjectivePoint:c,Signature:d,utils:w}}function Oh(r){return{hash:r,hmac:(t,...e)=>Yi(r,t,$s(...e)),randomBytes:an}}function Hc(r,t){let e=n=>Mc({...r,...Oh(n)});return Object.freeze({...e(t),create:e})}var qc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Fc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Dh=BigInt(1),Ji=BigInt(2),Kc=(r,t)=>(r+t/Ji)/t;function Ph(r){let t=qc,e=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,l=f*f*r%t,u=Y(l,e,t)*l%t,h=Y(u,e,t)*l%t,g=Y(h,Ji,t)*f%t,x=Y(g,s,t)*g%t,b=Y(x,i,t)*x%t,d=Y(b,a,t)*b%t,w=Y(d,c,t)*d%t,B=Y(w,a,t)*b%t,m=Y(B,e,t)*l%t,k=Y(m,o,t)*x%t,U=Y(k,n,t)*f%t,L=Y(U,Ji,t);if(!Xi.eql(Xi.sqr(L),r))throw new Error("Cannot find square root");return L}var Xi=we(qc,void 0,void 0,{sqrt:Ph}),Fe=Hc({a:BigInt(0),b:BigInt(7),Fp:Xi,n:Fc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Fc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Dh*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=e,o=BigInt("0x100000000000000000000000000000000"),a=Kc(i*r,t),c=Kc(-n*r,t),f=z(r-a*e-c*s,t),l=z(-a*n-c*i,t),u=f>o,h=l>o;if(u&&(f=t-f),h&&(l=t-l),f>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:f,k2neg:h,k2:l}}}},er),Pm=BigInt(0);var Mm=Fe.ProjectivePoint;function Rt(r,t){t==null&&(t=r.reduce((s,i)=>s+i.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function $c(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function zc(r,t,e){let n=Sr.digest(e instanceof Uint8Array?e:e.subarray());if($c(n))return n.then(({digest:s})=>Fe.verify(t,s,r)).catch(s=>{throw new Mr(String(s))});try{return Fe.verify(t,n.digest,r)}catch(s){throw new Mr(String(s))}}var ds=class{type="secp256k1";raw;_key;constructor(t){this._key=Wc(t),this.raw=Gc(this._key)}toMultihash(){return Jt.digest(qt(this))}toCID(){return it.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ut(this.raw,t.raw)}verify(t,e){return zc(this._key,e,t)}};function Qi(r){return new ds(r)}function Gc(r){return Fe.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Wc(r){try{return Fe.ProjectivePoint.fromHex(r),r}catch(t){throw new $e(String(t))}}function ps(r){let{Type:t,Data:e}=zt.decode(r),n=e??new Uint8Array;switch(t){case at.RSA:return ji(n);case at.Ed25519:return ai(n);case at.secp256k1:return Qi(n);default:throw new Te}}function Zc(r){let{Type:t,Data:e}=zt.decode(r.digest),n=e??new Uint8Array;switch(t){case at.Ed25519:return ai(n);case at.secp256k1:return Qi(n);default:throw new Te}}function qt(r){return zt.encode({Type:at[r.type],Data:r.raw})}var jc=Symbol.for("nodejs.util.inspect.custom"),Mh=114,Kr=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[tn]=!0;toString(){return this.string==null&&(this.string=J.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return it.createV1(Mh,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ut(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ut(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[jc](){return`PeerId(${this.toString()})`}},qr=class extends Kr{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},$r=class extends Kr{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},zr=class extends Kr{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Hh=2336,Gr=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Jt.digest(Z(this.url))}[jc](){return`PeerId(${this.url})`}[tn]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return it.createV1(Hh,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=X(t)),t.toString()===this.toString())}};var Fh=114,Yc=2336;function Jc(r){if(r.type==="Ed25519")return new $r({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new zr({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new qr({multihash:r.toCID().multihash,publicKey:r});throw new Te}function to(r){if(qh(r))return new qr({multihash:r});if(Kh(r))try{let t=Zc(r);if(t.type==="Ed25519")return new $r({multihash:r,publicKey:t});if(t.type==="secp256k1")return new zr({multihash:r,publicKey:t})}catch{let e=X(r.digest);return new Gr(new URL(e))}throw new rn("Supplied PeerID Multihash is invalid")}function ms(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==Fh&&r.code!==Yc)throw new en("Supplied PeerID CID is invalid");if(r.code===Yc){let t=X(r.multihash.digest);return new Gr(new URL(t))}return to(r.multihash)}function Kh(r){return r.code===Jt.code}function qh(r){return r.code===Sr.code}var Qc=Symbol.for("@achingbrain/uint8arraylist");function Xc(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function gs(r){return!!r?.[Qc]}var ys=class r{bufs;length;[Qc]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(gs(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(gs(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Xc(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Xc(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(gs(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Rt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Rt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),i=new r;return i.length=s,i.bufs=[...n],i}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,t>=c)continue;let f=t>=a&&t<c,l=e>a&&e<=c;if(f&&l){if(t===a&&e===c){n.push(o);break}let u=t-a;n.push(o.subarray(u,u+(e-t)));break}if(f){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(l){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!gs(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,f=n.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let h=f;h>=0;h--){let g=this.get(u+h);if(n[h]!==g){l=Math.max(1,h-a[g]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=et(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=et(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=et(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ut(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,i)=>s+i.byteLength,0)),n.length=e,n}};var Wr;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={publicKey:et(0),payloadType:et(0),payload:et(0),signature:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.publicKey=e.bytes();break}case 2:{i.payloadType=e.bytes();break}case 3:{i.payload=e.bytes();break}case 5:{i.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Wr||(Wr={}));var bs=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var cr=class r{static createFromProtobuf=async t=>{let e=Wr.decode(t),n=ps(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,i=t.marshal(),o=tl(n,s,i),a=await e.sign(o.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:i,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new bs("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:i}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=i}marshal(){return this.marshaled==null&&(this.marshaled=Wr.encode({publicKey:qt(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ut(this.marshal(),t.marshal())}async validate(t){let e=tl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},tl=(r,t,e)=>{let n=Z(r),s=$t(n.byteLength),i=$t(t.length),o=$t(e.length);return new ys(s,n,i,t,o,e)};function el(r,t){let e=(n,s)=>n.toString().localeCompare(s.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,s)=>t[s].equals(n)))}var ws=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}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(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*s)-1;for(;;){let l=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let h=Number.parseInt(u,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(i*=t,i+=l,i>f||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[s]=o[0],e[s+1]=o[1],e[s+2]=o[2],e[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];e[s]=i>>8,e[s+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=t(i.subarray(0,o));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var rl=45,$h=15,lr=new ws;function eo(r){if(!(r.length>$h))return lr.new(r).parseWith(()=>lr.readIPv4Addr())}function ro(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rl))return lr.new(r).parseWith(()=>lr.readIPv6Addr())}function xs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>rl))return lr.new(r).parseWith(()=>lr.readIPAddr())}var gy=parseInt("0xFFFF",16),yy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function il(r){return!!eo(r)}function ol(r){return!!ro(r)}function vs(r){return!!xs(r)}var al=il,jh=ol,no=function(r){let t=0;if(r=r.toString().trim(),al(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(jh(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=al(e[n]),o;i&&(o=no(e[n]),e[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,X(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let i=parseInt(e[n],16);s[t++]=i>>8&255,s[t++]=i&255}return s}throw new Error("invalid ip address")},cl=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let i=0;i<e;i++)s.push(r[t+i]);return s.join(".")}if(e===16){let s=[];for(let i=0;i<e;i+=2)s.push(n.getUint16(t+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ur={},so={},Jh=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Jh.forEach(r=>{let t=Xh(...r);so[t.code]=t,ur[t.name]=t});function Xh(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function G(r){if(typeof r=="number"){if(so[r]!=null)return so[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(ur[r]!=null)return ur[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var tb=G("ip4"),eb=G("ip6"),rb=G("ipcidr");function co(r,t){switch(G(r).code){case 4:case 41:return td(t);case 42:return ao(t);case 6:case 273:case 33:case 132:return fl(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ao(t);case 421:return sd(t);case 444:return ul(t);case 445:return ul(t);case 466:return nd(t);case 481:return globalThis.encodeURIComponent(ao(t));default:return X(t,"base16")}}function lo(r,t){switch(G(r).code){case 4:return ll(t);case 41:return ll(t);case 42:return oo(t);case 6:case 273:case 33:case 132:return uo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return oo(t);case 421:return ed(t);case 444:return id(t);case 445:return od(t);case 466:return rd(t);case 481:return oo(globalThis.decodeURIComponent(t));default:return Z(t,"base16")}}var io=Object.values(Ir).map(r=>r.decoder),Qh=function(){let r=io[0].or(io[1]);return io.slice(2).forEach(t=>r=r.or(t)),r}();function ll(r){if(!vs(r))throw new Error("invalid ip address");return no(r)}function td(r){let t=cl(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!vs(t))throw new Error("invalid ip address");return t}function uo(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function fl(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function oo(r){let t=Z(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function ao(r){let t=Oe(r);if(r=r.slice(Nt(t)),r.length!==t)throw new Error("inconsistent lengths");return X(r)}function ed(r){let t;r[0]==="Q"||r[0]==="1"?t=Ce(J.decode(`z${r}`)).bytes:t=it.parse(r).multihash.bytes;let e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function rd(r){let t=Qh.decode(r),e=Uint8Array.from($t(t.length));return Rt([e,t],e.length+t.length)}function nd(r){let t=Oe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+X(e,"base64url")}function sd(r){let t=Oe(r),e=r.slice(Nt(t));if(e.length!==t)throw new Error("inconsistent lengths");return X(e,"base58btc")}function id(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Vt.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=uo(n);return Rt([e,s],e.length+s.length)}function od(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Vt.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=uo(n);return Rt([e,s],e.length+s.length)}function ul(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=X(t,"base32"),s=fl(e);return`${n}:${s}`}function hl(r){r=fo(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=G(o);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(i++,i>=s.length)throw pl("invalid address: "+r);if(a.path===!0){n=fo(s.slice(i).join("/")),t.push([a.code,lo(a.code,n)]),e.push([a.code,n]);break}let c=lo(a.code,s[i]);t.push([a.code,c]),e.push([a.code,co(a.code,c)])}return{string:dl(e),bytes:po(t),tuples:t,stringTuples:e,path:n}}function ho(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let i=Oe(r,s),o=Nt(i),a=G(i),c=ad(a,r.slice(s+o));if(c===0){t.push([i]),e.push([i]),s+=o;continue}let f=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw pl("Invalid address Uint8Array: "+X(r,"base16"));t.push([i,f]);let l=co(i,f);if(e.push([i,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(r),string:dl(e),tuples:t,stringTuples:e,path:n}}function dl(r){let t=[];return r.map(e=>{let n=G(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),fo(t.join("/"))}function po(r){return Rt(r.map(t=>{let e=G(t[0]),n=Uint8Array.from($t(e.code));return t.length>1&&t[1]!=null&&(n=Rt([n,t[1]])),n}))}function ad(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=Oe(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Nt(e)}}function fo(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function pl(r){return new Error("Error parsing address: "+r)}var cd=Symbol.for("nodejs.util.inspect.custom"),go=Symbol.for("@multiformats/js-multiaddr/multiaddr"),ld=[G("dns").code,G("dns4").code,G("dns6").code,G("dnsaddr").code],mo=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},Es=class r{bytes;#t;#e;#i;#a;[go]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=ho(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=hl(t)}else if(Bs(t))e=ho(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#i=e.stringTuples,this.#a=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,i="",o=G("tcp"),a=G("udp"),c=G("ip4"),f=G("ip6"),l=G("dns6"),u=G("ip6zone");for(let[g,x]of this.stringTuples())g===u.code&&(i=`%${x??""}`),ld.includes(g)&&(e=o.name,s=443,n=`${x??""}${i}`,t=g===l.code?6:4),(g===o.code||g===a.code)&&(e=G(g).name,s=parseInt(x??"")),(g===c.code||g===f.code)&&(e=G(g).name,n=`${x??""}${i}`,t=g===f.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},G(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>G(t).name)}tuples(){return this.#e.map(([t,e])=>e==null?[t]:[t,e])}stringTuples(){return this.#i.map(([t,e])=>e==null?[t]:[t,e])}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(po(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===ur.p2p.code&&t.push([n,s]),n===ur["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?X(J.decode(`z${n}`),"base58btc"):X(it.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ut(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=ml.get(e.name);if(n==null)throw new mo(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>ue(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[cd](){return`Multiaddr(${this.#t})`}};var ml=new Map;function Bs(r){return!!r?.[go]}function ue(r){return new Es(r)}var gl="libp2p-peer-record",yl=Uint8Array.from([3,1]);var Zr;(function(r){let t;(function(n){let s;n.codec=()=>(s==null&&(s=Bt((i,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),i.multiaddr!=null&&i.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(i.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(i,o,a={})=>{let c={multiaddr:et(0)},f=o==null?i.len:i.pos+o;for(;i.pos<f;){let l=i.uint32();switch(l>>>3){case 1:{c.multiaddr=i.bytes();break}default:{i.skipType(l&7);break}}}return c})),s),n.encode=i=>Et(i,n.codec()),n.decode=(i,o)=>vt(i,n.codec(),o)})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=Bt((n,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(s.uint32(10),s.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(s.uint32(16),s.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)s.uint32(26),r.AddressInfo.codec().encode(o,s);i.lengthDelimited!==!1&&s.ldelim()},(n,s,i={})=>{let o={peerId:et(0),seq:0n,addresses:[]},a=s==null?n.len:n.pos+s;for(;n.pos<a;){let c=n.uint32();switch(c>>>3){case 1:{o.peerId=n.bytes();break}case 2:{o.seq=n.uint64();break}case 3:{if(i.limits?.addresses!=null&&o.addresses.length===i.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');o.addresses.push(r.AddressInfo.codec().decode(n,n.uint32(),{limits:i.limits?.addresses$}));break}default:{n.skipType(c&7);break}}}return o})),e),r.encode=n=>Et(n,r.codec()),r.decode=(n,s)=>vt(n,r.codec(),s)})(Zr||(Zr={}));var Ke=class r{static createFromProtobuf=t=>{let e=Zr.decode(t),n=to(Ce(e.peerId)),s=(e.addresses??[]).map(o=>ue(o.multiaddr)),i=e.seq;return new r({peerId:n,multiaddrs:s,seqNumber:i})};static DOMAIN=gl;static CODEC=yl;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(t){let{peerId:e,multiaddrs:n,seqNumber:s}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=s??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Zr.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof r)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!el(this.multiaddrs,t.multiaddrs))}};function ud(r){return r[Symbol.asyncIterator]!=null}function fd(r){if(ud(r))return(async()=>{let e=[];for await(let n of r)e.push(n);return e})();let t=[];for(let e of r)t.push(e);return t}var bl=fd;var bo=Fo(xl(),1);var Yr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},wo=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},vl=r=>globalThis.DOMException===void 0?new wo(r):new DOMException(r),El=r=>{let t=r.reason===void 0?vl("This operation was aborted."):r.reason;return t instanceof Error?t:vl(t)};function Jr(r,t){let{milliseconds:e,fallback:n,message:s,customTimers:i={setTimeout,clearTimeout}}=t,o,c=new Promise((f,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(t.signal){let{signal:h}=t;h.aborted&&l(El(h));let g=()=>{l(El(h))};h.addEventListener("abort",g,{once:!0}),r.finally(()=>{h.removeEventListener("abort",g)})}if(e===Number.POSITIVE_INFINITY){r.then(f,l);return}let u=new Yr;o=i.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){l(h)}return}typeof r.cancel=="function"&&r.cancel(),s===!1?f():s instanceof Error?l(s):(u.message=s??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{f(await r)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{i.clearTimeout.call(void 0,o),o=void 0},c}function xo(r,t,e){let n=0,s=r.length;for(;s>0;){let i=Math.trunc(s/2),o=n+i;e(r[o],t)<=0?(n=++o,s-=i+1):s=i}return n}var Xr=class{#t=[];enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=e.priority){this.#t.push(n);return}let s=xo(this.#t,n,(i,o)=>o.priority-i.priority);this.#t.splice(s,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return this.#t.length}};var fr=class extends bo.default{#t;#e;#i=0;#a;#c;#p=0;#n;#l;#r;#m;#s=0;#u;#o;#g;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Xr,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#e=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#r=new t.queueClass,this.#m=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#g=t.throwOnTimeout===!0,this.#o=t.autoStart===!1}get#w(){return this.#e||this.#i<this.#a}get#x(){return this.#s<this.#u}#v(){this.#s--,this.#f(),this.emit("next")}#E(){this.#b(),this.#y(),this.#l=void 0}get#B(){let t=Date.now();if(this.#n===void 0){let e=this.#p-t;if(e<0)this.#i=this.#t?this.#s:0;else return this.#l===void 0&&(this.#l=setTimeout(()=>{this.#E()},e)),!0}return!1}#f(){if(this.#r.size===0)return this.#n&&clearInterval(this.#n),this.#n=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#o){let t=!this.#B;if(this.#w&&this.#x){let e=this.#r.dequeue();return e?(this.emit("active"),e(),t&&this.#y(),!0):!1}}return!1}#y(){this.#e||this.#n!==void 0||(this.#n=setInterval(()=>{this.#b()},this.#c),this.#p=Date.now()+this.#c)}#b(){this.#i===0&&this.#s===0&&this.#n&&(clearInterval(this.#n),this.#n=void 0),this.#i=this.#t?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);this.#u=t,this.#h()}async#A(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:this.#g,...e},new Promise((n,s)=>{this.#r.enqueue(async()=>{this.#s++,this.#i++;try{e.signal?.throwIfAborted();let i=t({signal:e.signal});e.timeout&&(i=Jr(Promise.resolve(i),{milliseconds:e.timeout})),e.signal&&(i=Promise.race([i,this.#A(e.signal)]));let o=await i;n(o),this.emit("completed",o)}catch(i){if(i instanceof Yr&&!e.throwOnTimeout){n();return}s(i),this.emit("error",i)}finally{this.#v()}},e),this.emit("add"),this.#f()})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#r=new this.#m}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#r.size<t||await this.#d("next",()=>this.#r.size<t)}async onIdle(){this.#s===0&&this.#r.size===0||await this.#d("idle")}async#d(t,e){return new Promise(n=>{let s=()=>{e&&!e()||(this.off(t,s),n())};this.on(t,s)})}get size(){return this.#r.size}sizeBy(t){return this.#r.filter(t).length}get pending(){return this.#s}get isPaused(){return this.#o}};var Se={},hr=r=>{r.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{hr.dispatchEvent("message",r,t)})};hr.addEventListener=(r,t)=>{Se[r]==null&&(Se[r]=[]),Se[r].push(t)};hr.removeEventListener=(r,t)=>{Se[r]!=null&&(Se[r]=Se[r].filter(e=>e===t))};hr.dispatchEvent=function(r,t,e){Se[r]!=null&&Se[r].forEach(n=>n(t,e))};var vo=hr;var Eo="lock:worker:request-read",Bo="lock:worker:release-read",Ao="lock:master:grant-read",ko="lock:worker:request-write",So="lock:worker:release-write",Io="lock:master:grant-write";var Bl=(r=21)=>Math.random().toString().substring(2);var Al=(r,t,e,n,s)=>(i,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>{i.postMessage({type:s,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=l=>{if(l?.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===n&&u.identifier===a.identifier&&(i.removeEventListener("message",f),c())};i.addEventListener("message",f)})}}}))},kl=(r,t,e,n)=>async()=>{let s=Bl();return globalThis.postMessage({type:t,identifier:s,name:r}),new Promise(i=>{let o=a=>{if(a?.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===s&&(globalThis.removeEventListener("message",o),i(()=>{globalThis.postMessage({type:n,identifier:s,name:r})}))};globalThis.addEventListener("message",o)})},pd={singleProcess:!1},Sl=r=>{if(r=Object.assign({},pd,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return vo.addEventListener("message",Al(e,"requestReadLock",Eo,Bo,Ao)),vo.addEventListener("message",Al(e,"requestWriteLock",ko,So,Io)),e}return{isWorker:!0,readLock:e=>kl(e,Eo,Ao,Bo),writeLock:e=>kl(e,ko,Io,So)}};var qe={},Ie;async function To(r,t){let e,n=new Promise(s=>{e=s});return r.add(async()=>Jr((async()=>{await new Promise(s=>{e(()=>{s()})})})(),{milliseconds:t.timeout})),n}var md=(r,t)=>{if(Ie.isWorker===!0)return{readLock:Ie.readLock(r,t),writeLock:Ie.writeLock(r,t)};let e=new fr({concurrency:1}),n;return{async readLock(){if(n!=null)return To(n,t);n=new fr({concurrency:t.concurrency,autoStart:!1});let s=n,i=To(n,t);return e.add(async()=>{s.start(),await s.onIdle().then(()=>{n===s&&(n=null)})}),i},async writeLock(){return n=null,To(e,t)}}},gd={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Co(r){let t=Object.assign({},gd,r);return Ie==null&&(Ie=Sl(t),Ie.isWorker!==!0&&(Ie.addEventListener("requestReadLock",e=>{qe[e.data.name]!=null&&qe[e.data.name].readLock().then(async n=>e.data.handler().finally(()=>{n()}))}),Ie.addEventListener("requestWriteLock",async e=>{qe[e.data.name]!=null&&qe[e.data.name].writeLock().then(async n=>e.data.handler().finally(()=>{n()}))}))),qe[t.name]==null&&(qe[t.name]=md(t.name,t)),qe[t.name]}var dr;(function(r){let t;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:"",value:et(0)},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=o.bytes();break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(t=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let e;(function(s){let i;s.codec=()=>(i==null&&(i=Bt((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Ss.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a,c={})=>{let f={key:""},l=a==null?o.len:o.pos+a;for(;o.pos<l;){let u=o.uint32();switch(u>>>3){case 1:{f.key=o.string();break}case 2:{f.value=Ss.codec().decode(o,o.uint32(),{limits:c.limits?.value});break}default:{o.skipType(u&7);break}}}return f})),i),s.encode=o=>Et(o,s.codec()),s.decode=(o,a)=>vt(o,s.codec(),a)})(e=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Bt((s,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),s.addresses!=null)for(let a of s.addresses)i.uint32(10),ks.codec().encode(a,i);if(s.protocols!=null)for(let a of s.protocols)i.uint32(18),i.string(a);if(s.publicKey!=null&&(i.uint32(34),i.bytes(s.publicKey)),s.peerRecordEnvelope!=null&&(i.uint32(42),i.bytes(s.peerRecordEnvelope)),s.metadata!=null&&s.metadata.size!==0)for(let[a,c]of s.metadata.entries())i.uint32(50),r.Peer$metadataEntry.codec().encode({key:a,value:c},i);if(s.tags!=null&&s.tags.size!==0)for(let[a,c]of s.tags.entries())i.uint32(58),r.Peer$tagsEntry.codec().encode({key:a,value:c},i);o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={addresses:[],protocols:[],metadata:new Map,tags:new Map},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let f=s.uint32();switch(f>>>3){case 1:{if(o.limits?.addresses!=null&&a.addresses.length===o.limits.addresses)throw new Me('Decode error - map field "addresses" had too many elements');a.addresses.push(ks.codec().decode(s,s.uint32(),{limits:o.limits?.addresses$}));break}case 2:{if(o.limits?.protocols!=null&&a.protocols.length===o.limits.protocols)throw new Me('Decode error - map field "protocols" had too many elements');a.protocols.push(s.string());break}case 4:{a.publicKey=s.bytes();break}case 5:{a.peerRecordEnvelope=s.bytes();break}case 6:{if(o.limits?.metadata!=null&&a.metadata.size===o.limits.metadata)throw new Nr('Decode error - map field "metadata" had too many elements');let l=r.Peer$metadataEntry.codec().decode(s,s.uint32());a.metadata.set(l.key,l.value);break}case 7:{if(o.limits?.tags!=null&&a.tags.size===o.limits.tags)throw new Nr('Decode error - map field "tags" had too many elements');let l=r.Peer$tagsEntry.codec().decode(s,s.uint32(),{limits:{value:o.limits?.tags$value}});a.tags.set(l.key,l.value);break}default:{s.skipType(f&7);break}}}return a})),n),r.encode=s=>Et(s,r.codec()),r.decode=(s,i)=>vt(s,r.codec(),i)})(dr||(dr={}));var ks;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={multiaddr:et(0)},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.multiaddr=e.bytes();break}case 2:{i.isCertified=e.bool();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(ks||(ks={}));var Ss;(function(r){let t;r.codec=()=>(t==null&&(t=Bt((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.value!=null&&e.value!==0&&(n.uint32(8),n.uint32(e.value)),e.expiry!=null&&(n.uint32(16),n.uint64(e.expiry)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let i={value:0},o=n==null?e.len:e.pos+n;for(;e.pos<o;){let a=e.uint32();switch(a>>>3){case 1:{i.value=e.uint32();break}case 2:{i.expiry=e.uint64();break}default:{e.skipType(a&7);break}}}return i})),t),r.encode=e=>Et(e,r.codec()),r.decode=(e,n)=>vt(e,r.codec(),n)})(Ss||(Ss={}));function pr(r,t){let e=dr.decode(t);if(e.publicKey!=null&&r.publicKey==null){let i=ps(e.publicKey);r=Jc(i)}let n=new Map,s=BigInt(Date.now());for(let[i,o]of e.tags.entries())o.expiry!=null&&o.expiry<s||n.set(i,o);return{...e,id:r,addresses:e.addresses.map(({multiaddr:i,isCertified:o})=>({multiaddr:ue(i),isCertified:o??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}var fe="/",Il=new TextEncoder().encode(fe),Is=Il[0],Ts=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=Z(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Is)throw new Error("Invalid key")}toString(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(fe))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Il),this._buf[0]!==Is){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Is,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Is;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let s=0;s<e.length;s++){if(n.length<s+1)return!1;let i=e[s],o=n[s];if(i<o)return!0;if(i>o)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(fe).slice(1)}type(){return yd(this.baseNamespace())}name(){return bd(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(fe)||(t+=fe),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(fe):new r(t.slice(0,-1).join(fe))}child(t){return this.toString()===fe?t:t.toString()===fe?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...wd(t.map(e=>e.namespaces()))])}};function yd(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function bd(r){let t=r.split(":");return t[t.length-1]}function wd(r){return[].concat(...r)}var No="/peers/";function mr(r){if(!Ko(r)||r.type==null)throw new K("Invalid PeerId");let t=r.toCID().toString();return new Ts(`${No}${t}`)}async function Tl(r,t,e){let n=new Map;for(let s of e){if(s==null)continue;if(s.multiaddr instanceof Uint8Array&&(s.multiaddr=ue(s.multiaddr)),!Bs(s.multiaddr))throw new K("Multiaddr was invalid");if(!await t(r,s.multiaddr))continue;let i=s.isCertified??!1,o=s.multiaddr.toString(),a=n.get(o);a!=null?s.isCertified=a.isCertified||i:n.set(o,{multiaddr:s.multiaddr,isCertified:i})}return[...n.values()].sort((s,i)=>s.multiaddr.toString().localeCompare(i.multiaddr.toString())).map(({isCertified:s,multiaddr:i})=>({isCertified:s,multiaddr:i.bytes}))}async function Ns(r,t,e,n){if(t==null)throw new K("Invalid PeerData");if(t.publicKey!=null&&r.publicKey!=null&&!t.publicKey.equals(r.publicKey))throw new K("publicKey bytes do not match peer id publicKey bytes");let s=n.existingPeer;if(s!=null&&!r.equals(s.id))throw new K("peer id did not match existing peer id");let i=s?.addresses??[],o=new Set(s?.protocols??[]),a=s?.metadata??new Map,c=s?.tags??new Map,f=s?.peerRecordEnvelope;if(e==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(i=[],t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Cs(h,{validate:Cl})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Cs(h,{validate:Nl,map:Ll})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}if(e==="merge"){if(t.multiaddrs!=null&&i.push(...t.multiaddrs.map(h=>({isCertified:!1,multiaddr:h}))),t.addresses!=null&&i.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let h=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[g,x]of h)x==null?a.delete(g):a.set(g,x);a=Cs([...a.entries()],{validate:Cl})}if(t.tags!=null){let h=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),g=new Map(c);for(let[x,b]of h)b==null?g.delete(x):g.set(x,b);c=Cs([...g.entries()],{validate:Nl,map:Ll})}t.peerRecordEnvelope!=null&&(f=t.peerRecordEnvelope)}let l;s?.id.publicKey!=null?l=qt(s.id.publicKey):t.publicKey!=null?l=qt(t.publicKey):r.publicKey!=null&&(l=qt(r.publicKey));let u={addresses:await Tl(r,n.addressFilter??(async()=>!0),i),protocols:[...o.values()].sort((h,g)=>h.localeCompare(g)),metadata:a,tags:c,publicKey:l,peerRecordEnvelope:f};return r.type!=="RSA"&&delete u.publicKey,u}function Cs(r,t){let e=new Map;for(let[n,s]of r)s!=null&&t.validate(n,s);for(let[n,s]of r.sort(([i],[o])=>i.localeCompare(o)))s!=null&&e.set(n,t.map?.(n,s)??s);return e}function Cl(r,t){if(typeof r!="string")throw new K("Metadata key must be a string");if(!(t instanceof Uint8Array))throw new K("Metadata value must be a Uint8Array")}function Nl(r,t){if(typeof r!="string")throw new K("Tag name must be a string");if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new K("Tag value must be an integer");if(t.value<0||t.value>100)throw new K("Tag value must be between 0-100")}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new K("Tag ttl must be an integer");if(t.ttl<0)throw new K("Tag ttl must be between greater than 0")}}function Ll(r,t){let e;return t.expiry!=null&&(e=t.expiry),t.ttl!=null&&(e=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:e}}function Ls(r,t){let e=r.toString().split("/")[2],n=it.parse(e,Vt),s=ms(n);return pr(s,t)}function xd(r){return r==null?{}:{prefix:No,filters:(r.filters??[]).map(t=>({key:e,value:n})=>t(Ls(e,n))),orders:(r.orders??[]).map(t=>(e,n)=>t(Ls(e.key,e.value),Ls(n.key,n.value)))}}var Us=class{peerId;datastore;lock;addressFilter;constructor(t,e={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=e.addressFilter,this.lock=Co({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(mr(t))}async delete(t){if(this.peerId.equals(t))throw new K("Cannot delete self peer");await this.datastore.delete(mr(t))}async load(t){let e=await this.datastore.get(mr(t));return pr(t,e)}async save(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"patch",{addressFilter:this.addressFilter});return this.#e(t,i,n,s)}async patch(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"patch",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async merge(t,e){let{existingBuf:n,existingPeer:s}=await this.#t(t),i=await Ns(t,e,"merge",{addressFilter:this.addressFilter,existingPeer:s});return this.#e(t,i,n,s)}async*all(t){for await(let{key:e,value:n}of this.datastore.query(xd(t??{}))){let s=Ls(e,n);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let e=await this.datastore.get(mr(t)),n=pr(t,e);return{existingBuf:e,existingPeer:n}}catch(e){if(e.name!=="NotFoundError")throw e}return{}}async#e(t,e,n,s){let i=dr.encode(e);return n!=null&&ut(i,n)?{peer:pr(t,i),previous:s,updated:!1}:(await this.datastore.put(mr(t),i),{peer:pr(t,i),previous:s,updated:!0})}};var Lo=class{store;events;peerId;log;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:peer-store"),this.events=t.events,this.peerId=t.peerId,this.store=new Us(t,e)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(t,e){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let s of this.store.all(e))t(s)}finally{this.log.trace("forEach release read lock"),n()}}async all(t){this.log.trace("all await read lock");let e=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await bl(this.store.all(t))}finally{this.log.trace("all release read lock"),e()}}async delete(t){this.log.trace("delete await write lock");let e=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(t)}finally{this.log.trace("delete release write lock"),e()}}async has(t){this.log.trace("has await read lock");let e=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(t)}finally{this.log.trace("has release read lock"),e()}}async get(t){this.log.trace("get await read lock");let e=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(t)}finally{this.log.trace("get release read lock"),e()}}async save(t,e){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let s=await this.store.save(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("save release write lock"),n()}}async patch(t,e){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let s=await this.store.patch(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(t,e){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let s=await this.store.merge(t,e);return this.#t(t,s),s.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(t,e){let n=await cr.openAndCertify(t,Ke.DOMAIN),s=ms(n.publicKey.toCID());if(e?.equals(s)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",e,s),!1;let i=Ke.createFromProtobuf(n.payload),o;try{o=await this.get(s)}catch(a){if(a.name!=="NotFoundError")throw a}if(o?.peerRecordEnvelope!=null){let a=await cr.createFromProtobuf(o.peerRecordEnvelope),c=Ke.createFromProtobuf(a.payload);if(c.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",c.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:t,addresses:i.multiaddrs.map(a=>({isCertified:!0,multiaddr:a}))}),!0}#t(t,e){e.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:e}):this.events.safeDispatchEvent("peer:update",{detail:e}))}};function vd(r,t={}){return new Lo(r,t)}return zl(Ed);})();
7
7
  /*! Bundled license information:
8
8
 
9
9
  pvtsutils/build/index.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-store",
3
- "version": "11.0.11",
3
+ "version": "11.0.12-6ddc1b80e",
4
4
  "description": "Stores information about peers libp2p knows on the network",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-store#readme",
@@ -59,10 +59,10 @@
59
59
  "test:electron-main": "aegir test -t electron-main"
60
60
  },
61
61
  "dependencies": {
62
- "@libp2p/crypto": "^5.0.6",
63
- "@libp2p/interface": "^2.2.0",
64
- "@libp2p/peer-id": "^5.0.7",
65
- "@libp2p/peer-record": "^8.0.11",
62
+ "@libp2p/crypto": "5.0.7-6ddc1b80e",
63
+ "@libp2p/interface": "2.2.1-6ddc1b80e",
64
+ "@libp2p/peer-id": "5.0.8-6ddc1b80e",
65
+ "@libp2p/peer-record": "8.0.12-6ddc1b80e",
66
66
  "@multiformats/multiaddr": "^12.2.3",
67
67
  "interface-datastore": "^8.3.0",
68
68
  "it-all": "^3.0.6",
@@ -73,7 +73,7 @@
73
73
  "uint8arrays": "^5.1.0"
74
74
  },
75
75
  "devDependencies": {
76
- "@libp2p/logger": "^5.1.3",
76
+ "@libp2p/logger": "5.1.4-6ddc1b80e",
77
77
  "@types/sinon": "^17.0.3",
78
78
  "aegir": "^44.0.1",
79
79
  "datastore-core": "^10.0.0",
@@ -1,10 +0,0 @@
1
- {
2
- "AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.AddressFilter.html",
3
- ".:AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.AddressFilter.html",
4
- "PersistentPeerStoreComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.PersistentPeerStoreComponents.html",
5
- ".:PersistentPeerStoreComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.PersistentPeerStoreComponents.html",
6
- "PersistentPeerStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.PersistentPeerStoreInit.html",
7
- ".:PersistentPeerStoreInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_peer_store.PersistentPeerStoreInit.html",
8
- "persistentPeerStore": "https://libp2p.github.io/js-libp2p/functions/_libp2p_peer_store.persistentPeerStore.html",
9
- ".:persistentPeerStore": "https://libp2p.github.io/js-libp2p/functions/_libp2p_peer_store.persistentPeerStore.html"
10
- }