@helia/ipns 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -5,7 +5,7 @@
5
5
  `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
6
6
  ${e.join(`
7
7
  `)}`:`${t} :`}};Vc=zt;_.Constructed=Vc;zt.NAME="CONSTRUCTED";var wo=class extends Se{fromBER(e,t,n){return t}toBER(e){return We}};wo.override="EndOfContentValueBlock";var Oc,bo=class extends xe{constructor(e={}){super(e,wo),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};Oc=bo;_.EndOfContent=Oc;bo.NAME=bn;var Fc,Gt=class extends xe{constructor(e={}){super(e,Se),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,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,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let o=new Uint8Array(n);o[0]=5,o[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Fc=Gt;_.Null=Fc;Gt.NAME="NULL";var xo=class extends At(Se){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=j.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let o=j.BufferSourceConverter.toUint8Array(e);return Bt(this,o,t,n)?(this.valueHexView=o.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,xs.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};xo.NAME="BooleanValueBlock";var Pc,Eo=class extends xe{constructor(e={}){super(e,xo),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Pc=Eo;_.Boolean=Pc;Eo.NAME="BOOLEAN";var vo=class extends At(st){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let o=0;if(this.isConstructed){if(this.isHexOnly=!1,o=st.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let i=0;i<this.value.length;i++){let s=this.value[i].constructor.NAME;if(s===bn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(s!==_c)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,o=super.fromBER(e,t,n),this.blockLength=n;return o}toBER(e,t){return this.isConstructed?st.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};vo.NAME="OctetStringValueBlock";var Mc,Et=class r extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,i;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},vo),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,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),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(i.byteLength){let s=Wo(i,0,i.byteLength);s.offset!==-1&&s.offset===n&&(this.valueBlock.value=[s.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?zt.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${j.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return j.BufferSourceConverter.concat(e)}};Mc=Et;_.OctetString=Mc;Et.NAME=_c;var Bo=class extends At(st){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let o=-1;if(this.isConstructed){if(o=st.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let a of this.value){let c=a.constructor.NAME;if(c===bn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==Uc)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 o}let i=j.BufferSourceConverter.toUint8Array(e);if(!Bt(this,i,t,n))return-1;let s=i.subarray(t,t+n);if(this.unusedBits=s[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=s.subarray(1);try{if(a.byteLength){let c=Wo(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=s.subarray(1),this.blockLength=s.length,t+n}toBER(e,t){if(this.isConstructed)return st.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return We;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}}};Bo.NAME="BitStringValueBlock";var Hc,$r=class extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,i;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},Bo),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return zt.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let o of t)e.push(o.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};Hc=$r;_.BitString=Hc;$r.NAME=Uc;var Kc;function I0(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),o=new Uint8Array(e),i=n.slice(0),s=i.length-1,a=o.slice(0),c=a.length-1,f=0,u=c<s?s:c,l=0;for(let d=u;d>=0;d--,l++){switch(!0){case l<a.length:f=i[s-l]+a[c-l]+t[0];break;default:f=i[s-l]+t[0]}switch(t[0]=f/10,!0){case l>=i.length:i=lo(new Uint8Array([f%10]),i);break;default:i[s-l]=f%10}}return t[0]>0&&(i=lo(t,i)),i}function Nc(r){if(r>=yn.length)for(let e=yn.length;e<=r;e++){let t=new Uint8Array([0]),n=yn[e-1].slice(0);for(let o=n.length-1;o>=0;o--){let i=new Uint8Array([(n[o]<<1)+t[0]]);t[0]=i[0]/10,n[o]=i[0]%10}t[0]>0&&(n=lo(t,n)),yn.push(n)}return yn[r]}function T0(r,e){let t=0,n=new Uint8Array(r),o=new Uint8Array(e),i=n.slice(0),s=i.length-1,a=o.slice(0),c=a.length-1,f,u=0;for(let l=c;l>=0;l--,u++)switch(f=i[s-u]-a[c-u]-t,!0){case f<0:t=1,i[s-u]=f+10;break;default:t=0,i[s-u]=f}if(t>0)for(let l=s-c+1;l>=0;l--,u++)if(f=i[s-u]-t,f<0)t=1,i[s-u]=f+10;else{t=0,i[s-u]=f;break}return i.slice()}var xn=class extends At(Se){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}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=xs.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Ic(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,o=0){let i=this.fromBER(e,t,n);if(i===-1)return i;let s=this.valueHexView;return s[0]===0&&s[1]&128?this.valueHexView=s.subarray(1):o!==0&&s.length<o&&(o-s.length>1&&(o=s.length+1),this.valueHexView=s.subarray(o-s.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let o=super.fromBER(e,t,n);return o===-1||this.setValueHex(),o}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,o,i=this.valueHexView,s="",a=!1;for(let c=i.byteLength-1;c>=0;c--){o=i[c];for(let f=0;f<8;f++){if((o&1)===1)switch(n){case e:t=T0(Nc(n),t),s="-";break;default:t=I0(t,Nc(n))}n++,o>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(s+=Cc.charAt(t[c]));return a===!1&&(s+=Cc.charAt(0)),s}};Kc=xn;xn.NAME="IntegerValueBlock";Object.defineProperty(Kc.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var $c,ue=class r extends xe{constructor(e={}){super(e,xn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return fo(),BigInt(this.valueBlock.toString())}static fromBigInt(e){fo();let t=BigInt(e),n=new wn,o=t.toString(16).replace(/^-/,""),i=new Uint8Array(j.Convert.FromHex(o));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${j.Convert.ToHex(a)}`)+t,u=j.BufferSourceConverter.toUint8Array(j.Convert.FromHex(f.toString(16)));u[0]|=128,n.write(u)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}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()}`}};$c=ue;_.Integer=$c;ue.NAME="INTEGER";var qc,Ao=class extends ue{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};qc=Ao;_.Enumerated=qc;Ao.NAME="ENUMERATED";var En=class extends At(Se){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let o=j.BufferSourceConverter.toUint8Array(e);if(!Bt(this,o,t,n))return-1;let i=o.subarray(t,t+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 s=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)s[a]=this.valueHexView[a];return this.valueHexView=s,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=hr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){fo();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let o=0;o<n.length;o++)n[o]=parseInt(t.slice(o*7,o*7+7),2)+(o+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,i=new Uint8Array(this.blockLength);for(let s=0;s<this.blockLength-1;s++)i[s]=o[s]|128;return i[this.blockLength-1]=o[this.blockLength-1],i.buffer}let t=qt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",We;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),i=t.byteLength-1;for(let s=0;s<i;s++)n[s]=o[s]|128;n[i]=o[i]}return n}toString(){let e="";if(this.isHexOnly)e=j.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};En.NAME="sidBlock";var So=class extends Se{constructor({value:e=qr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let i=new En;if(o=i.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=i.error,o;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return o}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let o=this.value[n].toBER(e);if(o.byteLength===0)return this.error=this.value[n].error,We;t.push(o)}return Es(t)}fromString(e){this.value=[];let t=0,n=0,o="",i=!1;do if(n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1,i){let s=this.value[0],a=0;switch(s.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(o,10);if(isNaN(c))return;s.valueDec=c+a,i=!1}else{let s=new En;if(o>Number.MAX_SAFE_INTEGER){fo();let a=BigInt(o);s.valueBigInt=a}else if(s.valueDec=parseInt(o,10),isNaN(s.valueDec))return;this.value.length||(s.isFirstSid=!0,i=!0),this.value.push(s)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t?(o=`{${o}}`,this.value[n].isFirstSid?e=`2.{${o} - 80}`:e+=o):e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};So.NAME="ObjectIdentifierValueBlock";var zc,Ze=class extends xe{constructor(e={}){super(e,So),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};zc=Ze;_.ObjectIdentifier=zc;Ze.NAME="OBJECT IDENTIFIER";var vn=class extends At(xt){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let o=j.BufferSourceConverter.toUint8Array(e);if(!Bt(this,o,t,n))return-1;let i=o.subarray(t,t+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 s=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)s[a]=this.valueHexView[a];return this.valueHexView=s,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=hr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let o=this.valueHexView,i=new Uint8Array(this.blockLength);for(let s=0;s<this.blockLength-1;s++)i[s]=o[s]|128;return i[this.blockLength-1]=o[this.blockLength-1],i.buffer}let t=qt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",We;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),i=t.byteLength-1;for(let s=0;s<i;s++)n[s]=o[s]|128;n[i]=o[i]}return n.buffer}toString(){let e="";return this.isHexOnly?e=j.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};vn.NAME="relativeSidBlock";var Ro=class extends Se{constructor({value:e=qr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let i=new vn;if(o=i.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=i.error,o;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return o}toBER(e,t){let n=[];for(let o=0;o<this.value.length;o++){let i=this.value[o].toBER(e);if(i.byteLength===0)return this.error=this.value[o].error,We;n.push(i)}return Es(n)}fromString(e){this.value=[];let t=0,n=0,o="";do{n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1;let i=new vn;if(i.valueDec=parseInt(o,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let o=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(o=`{${o}}`),e+=o}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};Ro.NAME="RelativeObjectIdentifierValueBlock";var Gc,ko=class extends xe{constructor(e={}){super(e,Ro),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};Gc=ko;_.RelativeObjectIdentifier=Gc;ko.NAME="RelativeObjectIdentifier";var jc,de=class extends zt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};jc=de;_.Sequence=jc;de.NAME="SEQUENCE";var Yc,Io=class extends zt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};Yc=Io;_.Set=Yc;Io.NAME="SET";var To=class extends At(Se){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=qr}toJSON(){return{...super.toJSON(),value:this.value}}};To.NAME="StringValueBlock";var Co=class extends To{};Co.NAME="SimpleStringValueBlock";var Te=class extends go{constructor({...e}={}){super(e,Co)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,j.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);this.valueBlock.value=e}};Te.NAME="SIMPLE STRING";var No=class extends Te{fromBuffer(e){this.valueBlock.valueHexView=j.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=j.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=j.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(j.Convert.FromUtf8String(e)),this.valueBlock.value=e}};No.NAME="Utf8StringValueBlock";var Zc,vt=class extends No{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};Zc=vt;_.Utf8String=Zc;vt.NAME="UTF8String";var _o=class extends Te{fromBuffer(e){this.valueBlock.value=j.Convert.ToUtf16String(e),this.valueBlock.valueHexView=j.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(j.Convert.FromUtf16String(e))}};_o.NAME="BmpStringValueBlock";var Wc,Uo=class extends _o{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};Wc=Uo;_.BmpString=Wc;Uo.NAME="BMPString";var Do=class extends Te{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let o=0;o<n.length;o+=4)n[o]=n[o+3],n[o+1]=n[o+2],n[o+2]=0,n[o+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let o=0;o<t;o++){let i=qt(e.charCodeAt(o),8),s=new Uint8Array(i);if(s.length>4)continue;let a=4-s.length;for(let c=s.length-1;c>=0;c--)n[o*4+c+a]=s[c]}this.valueBlock.value=e}};Do.NAME="UniversalStringValueBlock";var Jc,Lo=class extends Do{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Jc=Lo;_.UniversalString=Jc;Lo.NAME="UniversalString";var Xc,Vo=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Xc=Vo;_.NumericString=Xc;Vo.NAME="NumericString";var Qc,Oo=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};Qc=Oo;_.PrintableString=Qc;Oo.NAME="PrintableString";var eu,Fo=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};eu=Fo;_.TeletexString=eu;Fo.NAME="TeletexString";var tu,Po=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};tu=Po;_.VideotexString=tu;Po.NAME="VideotexString";var ru,Mo=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};ru=Mo;_.IA5String=ru;Mo.NAME="IA5String";var nu,Ho=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};nu=Ho;_.GraphicString=nu;Ho.NAME="GraphicString";var ou,Bn=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};ou=Bn;_.VisibleString=ou;Bn.NAME="VisibleString";var iu,Ko=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};iu=Ko;_.GeneralString=iu;Ko.NAME="GeneralString";var su,$o=class extends Te{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};su=$o;_.CharacterString=su;$o.NAME="CharacterString";var au,An=class extends Bn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let o=0;o<e.length;o++)this.valueBlock.valueHexView[o]=e.charCodeAt(o)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,j.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let o=parseInt(n[1],10);o>=50?this.year=1900+o:this.year=2e3+o,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(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=Ne(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=Ne(this.month,2),t[2]=Ne(this.day,2),t[3]=Ne(this.hour,2),t[4]=Ne(this.minute,2),t[5]=Ne(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}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}}};au=An;_.UTCTime=au;An.NAME="UTCTime";var cu,qo=class extends An{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",o="",i=0,s,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){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 l=1,d=n.indexOf("+"),v="";if(d===-1&&(d=n.indexOf("-"),l=-1),d!==-1){if(v=n.substring(d+1),n=n.substring(0,d),v.length!==2&&v.length!==4)throw new Error("Wrong input string for conversion");let m=parseInt(v.substring(0,2),10);if(isNaN(m.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*m,v.length===4){if(m=parseInt(v.substring(2,4),10),isNaN(m.valueOf()))throw new Error("Wrong input string for conversion");c=l*m}}}let f=n.indexOf(".");if(f===-1&&(f=n.indexOf(",")),f!==-1){let l=new Number(`0${n.substring(f)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");i=l.valueOf(),o=n.substring(0,f)}else o=n;switch(!0){case o.length===8:if(s=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case o.length===10:if(s=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=60*i;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===12:if(s=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=60*i;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===14:if(s=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=1e3*i;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let u=s.exec(o);if(u===null)throw new Error("Wrong input string for conversion");for(let l=1;l<u.length;l++)switch(l){case 1:this.year=parseInt(u[l],10);break;case 2:this.month=parseInt(u[l],10);break;case 3:this.day=parseInt(u[l],10);break;case 4:this.hour=parseInt(u[l],10)+a;break;case 5:this.minute=parseInt(u[l],10)+c;break;case 6:this.second=parseInt(u[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(Ne(this.year,4)),t.push(Ne(this.month,2)),t.push(Ne(this.day,2)),t.push(Ne(this.hour,2)),t.push(Ne(this.minute,2)),t.push(Ne(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(Ne(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};cu=qo;_.GeneralizedTime=cu;qo.NAME="GeneralizedTime";var uu,zo=class extends vt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};uu=zo;_.DATE=uu;zo.NAME="DATE";var lu,Go=class extends vt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};lu=Go;_.TimeOfDay=lu;Go.NAME="TimeOfDay";var fu,jo=class extends vt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};fu=jo;_.DateTime=fu;jo.NAME="DateTime";var hu,Yo=class extends vt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};hu=Yo;_.Duration=hu;Yo.NAME="Duration";var du,Zo=class extends vt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};du=Zo;_.TIME=du;Zo.NAME="TIME";function N0(r){let{result:e}=zr(r),t=e.valueBlock.value;return{n:oe(at(t[1].toBigInt()),"base64url"),e:oe(at(t[2].toBigInt()),"base64url"),d:oe(at(t[3].toBigInt()),"base64url"),p:oe(at(t[4].toBigInt()),"base64url"),q:oe(at(t[5].toBigInt()),"base64url"),dp:oe(at(t[6].toBigInt()),"base64url"),dq:oe(at(t[7].toBigInt()),"base64url"),qi:oe(at(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function _0(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 $("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new de({value:[new ue({value:0}),ue.fromBigInt(ct(J(r.n,"base64url"))),ue.fromBigInt(ct(J(r.e,"base64url"))),ue.fromBigInt(ct(J(r.d,"base64url"))),ue.fromBigInt(ct(J(r.p,"base64url"))),ue.fromBigInt(ct(J(r.q,"base64url"))),ue.fromBigInt(ct(J(r.dp,"base64url"))),ue.fromBigInt(ct(J(r.dq,"base64url"))),ue.fromBigInt(ct(J(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function U0(r){let{result:e}=zr(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:oe(at(t[0].toBigInt()),"base64url"),e:oe(at(t[1].toBigInt()),"base64url")}}function D0(r){if(r.n==null||r.e==null)throw new $("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new de({value:[new de({value:[new Ze({value:"1.2.840.113549.1.1.1"}),new Gt]}),new $r({valueHex:new de({value:[ue.fromBigInt(ct(J(r.n,"base64url"))),ue.fromBigInt(ct(J(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function at(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),o=0,i=0;for(;o<t;)n[o]=parseInt(e.slice(i,i+2),16),o+=1,i+=2;return n}function ct(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var L0=16,Bs=32,As=1e4;async function V0(r,e){let t=ke.get(),o=new de({value:[new ue({value:0}),new de({value:[new Ze({value:"1.2.840.113549.1.1.1"}),new Gt]}),new Et({valueHex:r.marshal()})]}).toBER(),i=new Uint8Array(o,0,o.byteLength),s=fr(L0),a=await ws(Lr,e,s,{c:As,dkLen:Bs}),c=fr(16),f=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),u=await t.subtle.encrypt({name:"AES-CBC",iv:c},f,i),l=new de({value:[new Et({valueHex:s}),new ue({value:As}),new ue({value:Bs}),new de({value:[new Ze({value:"1.2.840.113549.2.11"}),new Gt]})]}),d=new de({value:[new Ze({value:"1.2.840.113549.1.5.13"}),new de({value:[new de({value:[new Ze({value:"1.2.840.113549.1.5.12"}),l]}),new de({value:[new Ze({value:"2.16.840.1.101.3.4.1.42"}),new Et({valueHex:c})]})]})]}),m=new de({value:[d,new Et({valueHex:u})]}).toBER(),h=new Uint8Array(m,0,m.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...oe(h,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
8
- `)}async function O0(r,e){let t=ke.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=J(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=zr(o),{iv:s,salt:a,iterations:c,keySize:f,cipherText:u}=F0(i),l=await ws(Lr,e,a,{c,dkLen:f}),d=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),v=Sn(await t.subtle.decrypt({name:"AES-CBC",iv:s},d,u)),{result:m}=zr(v);n=pu(m)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=J(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=zr(o);n=pu(i)}else throw new $("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Ss(n)}function F0(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new $("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new $("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],s=Sn(i.valueBlock.value[0].getValue()),a=As,c=Bs;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new $("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let f=e.valueBlock.value[1].valueBlock.value[1],u=f.valueBlock.value[0].toString();if(u!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(u!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new $("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Sn(f.valueBlock.value[1].getValue());return{cipherText:Sn(r.valueBlock.value[1].getValue()),salt:s,iterations:a,keySize:c,iv:l}}function pu(r){return Sn(r.valueBlock.value[2].getValue())}function Sn(r){return new Uint8Array(r,0,r.byteLength)}async function gu(r){let e=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"]),t=await wu(e);return{privateKey:t[0],publicKey:t[1]}}async function Rs(r){let t=[await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await P0(r)],n=await wu({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function mu(r,e){let t=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"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function yu(r,e,t){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,e,t instanceof Uint8Array?t:t.subarray())}async function wu(r){if(r.privateKey==null||r.publicKey==null)throw new $("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}async function P0(r){return ke.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Jo(r){if(r.kty!=="RSA")throw new $("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new $("invalid key modulus","ERR_INVALID_KEY_MODULUS");return J(r.n,"base64url").length*8}var kn=8192,Rn=class{_key;constructor(e){this._key=e}verify(e,t){return yu(this._key,t,e)}marshal(){return jt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:ne.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}},Gr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return fr(16)}sign(e){return mu(this._key,e)}get public(){if(this._publicKey==null)throw new $("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Rn(this._publicKey)}marshal(){return jt.jwkToPkcs1(this._key)}get bytes(){return it.encode({Type:ne.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return oe(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return jt.exportToPem(this,e);if(t==="libp2p-key")return Pr(this.bytes,e);throw new $(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Ss(r){let e=jt.pkcs1ToJwk(r);if(Jo(e)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Rs(e);return new Gr(t.privateKey,t.publicKey)}function H0(r){let e=jt.pkixToJwk(r);if(Jo(e)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Rn(e)}async function K0(r){if(Jo(r)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Rs(r);return new Gr(e.privateKey,e.publicKey)}async function $0(r){if(r>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await gu(r);return new Gr(e.privateKey,e.publicKey)}var _s={};he(_s,{Secp256k1PrivateKey:()=>Tn,Secp256k1PublicKey:()=>In,generateKeyPair:()=>rp,unmarshalSecp256k1PrivateKey:()=>ep,unmarshalSecp256k1PublicKey:()=>tp});var q0=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Zt=new Uint32Array(64),Is=class extends Dr{constructor(){super(64,32,8,!1),this.A=Yt[0]|0,this.B=Yt[1]|0,this.C=Yt[2]|0,this.D=Yt[3]|0,this.E=Yt[4]|0,this.F=Yt[5]|0,this.G=Yt[6]|0,this.H=Yt[7]|0}get(){let{A:e,B:t,C:n,D:o,E:i,F:s,G:a,H:c}=this;return[e,t,n,o,i,s,a,c]}set(e,t,n,o,i,s,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)Zt[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let d=Zt[l-15],v=Zt[l-2],m=Ge(d,7)^Ge(d,18)^d>>>3,h=Ge(v,17)^Ge(v,19)^v>>>10;Zt[l]=h+Zt[l-7]+m+Zt[l-16]|0}let{A:n,B:o,C:i,D:s,E:a,F:c,G:f,H:u}=this;for(let l=0;l<64;l++){let d=Ge(a,6)^Ge(a,11)^Ge(a,25),v=u+d+$a(a,c,f)+q0[l]+Zt[l]|0,h=(Ge(n,2)^Ge(n,13)^Ge(n,22))+qa(n,o,i)|0;u=f,f=c,c=a,a=s+v|0,s=i,i=o,o=n,n=v+h|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,i,s,a,c,f,u)}roundClean(){Zt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var bu=jn(()=>new Is);function z0(r){let e=ln(r);nt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:o}=e;if(t){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:G0,hexToBytes:j0}=Wn,dr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=dr;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:G0(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=dr,t=typeof r=="string"?j0(r):r;Vr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:o,l:i}=dr._parseInt(t.subarray(2)),{d:s,l:a}=dr._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s}},hexFromSig(r){let e=f=>Number.parseInt(f[0],16)&8?"00"+f:f,t=f=>{let u=f.toString(16);return u.length&1?`0${u}`:u},n=e(t(r.s)),o=e(t(r.r)),i=n.length/2,s=o.length/2,a=t(i),c=t(s);return`30${t(s+i+4)}02${c}${o}02${a}${n}`}},St=BigInt(0),$e=BigInt(1),Fw=BigInt(2),xu=BigInt(3),Pw=BigInt(4);function Y0(r){let e=z0(r),{Fp:t}=e,n=e.toBytes||((m,h,p)=>{let b=h.toAffine();return mt(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),o=e.fromBytes||(m=>{let h=m.subarray(1),p=t.fromBytes(h.subarray(0,t.BYTES)),b=t.fromBytes(h.subarray(t.BYTES,2*t.BYTES));return{x:p,y:b}});function i(m){let{a:h,b:p}=e,b=t.sqr(m),k=t.mul(b,m);return t.add(t.add(k,t.mul(m,h)),p)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function s(m){return typeof m=="bigint"&&St<m&&m<e.n}function a(m){if(!s(m))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(m){let{allowedPrivateKeyLengths:h,nByteLength:p,wrapPrivateKey:b,n:k}=e;if(h&&typeof m!="bigint"){if(Vt(m)&&(m=pt(m)),typeof m!="string"||!h.includes(m.length))throw new Error("Invalid key");m=m.padStart(p*2,"0")}let E;try{E=typeof m=="bigint"?m:gt(ae("private key",m,p))}catch{throw new Error(`private key must be ${p} bytes, hex or bigint, not ${typeof m}`)}return b&&(E=ee(E,k)),a(E),E}let f=new Map;function u(m){if(!(m instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(h,p,b){if(this.px=h,this.py=p,this.pz=b,h==null||!t.isValid(h))throw new Error("x required");if(p==null||!t.isValid(p))throw new Error("y required");if(b==null||!t.isValid(b))throw new Error("z required")}static fromAffine(h){let{x:p,y:b}=h||{};if(!h||!t.isValid(p)||!t.isValid(b))throw new Error("invalid affine point");if(h instanceof l)throw new Error("projective point not allowed");let k=E=>t.eql(E,t.ZERO);return k(p)&&k(b)?l.ZERO:new l(p,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){let p=t.invertBatch(h.map(b=>b.pz));return h.map((b,k)=>b.toAffine(p[k])).map(l.fromAffine)}static fromHex(h){let p=l.fromAffine(o(ae("pointHex",h)));return p.assertValidity(),p}static fromPrivateKey(h){return l.BASE.multiply(c(h))}_setWindowSize(h){this._WINDOW_SIZE=h,f.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:h,y:p}=this.toAffine();if(!t.isValid(h)||!t.isValid(p))throw new Error("bad point: x or y not FE");let b=t.sqr(p),k=i(h);if(!t.eql(b,k))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:h}=this.toAffine();if(t.isOdd)return!t.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){u(h);let{px:p,py:b,pz:k}=this,{px:E,py:D,pz:S}=h,I=t.eql(t.mul(p,S),t.mul(E,k)),N=t.eql(t.mul(b,S),t.mul(D,k));return I&&N}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:h,b:p}=e,b=t.mul(p,xu),{px:k,py:E,pz:D}=this,S=t.ZERO,I=t.ZERO,N=t.ZERO,y=t.mul(k,k),C=t.mul(E,E),V=t.mul(D,D),T=t.mul(k,E);return T=t.add(T,T),N=t.mul(k,D),N=t.add(N,N),S=t.mul(h,N),I=t.mul(b,V),I=t.add(S,I),S=t.sub(C,I),I=t.add(C,I),I=t.mul(S,I),S=t.mul(T,S),N=t.mul(b,N),V=t.mul(h,V),T=t.sub(y,V),T=t.mul(h,T),T=t.add(T,N),N=t.add(y,y),y=t.add(N,y),y=t.add(y,V),y=t.mul(y,T),I=t.add(I,y),V=t.mul(E,D),V=t.add(V,V),y=t.mul(V,T),S=t.sub(S,y),N=t.mul(V,C),N=t.add(N,N),N=t.add(N,N),new l(S,I,N)}add(h){u(h);let{px:p,py:b,pz:k}=this,{px:E,py:D,pz:S}=h,I=t.ZERO,N=t.ZERO,y=t.ZERO,C=e.a,V=t.mul(e.b,xu),T=t.mul(p,E),O=t.mul(b,D),M=t.mul(k,S),Z=t.add(p,b),x=t.add(E,D);Z=t.mul(Z,x),x=t.add(T,O),Z=t.sub(Z,x),x=t.add(p,k);let A=t.add(E,S);return x=t.mul(x,A),A=t.add(T,M),x=t.sub(x,A),A=t.add(b,k),I=t.add(D,S),A=t.mul(A,I),I=t.add(O,M),A=t.sub(A,I),y=t.mul(C,x),I=t.mul(V,M),y=t.add(I,y),I=t.sub(O,y),y=t.add(O,y),N=t.mul(I,y),O=t.add(T,T),O=t.add(O,T),M=t.mul(C,M),x=t.mul(V,x),O=t.add(O,M),M=t.sub(T,M),M=t.mul(C,M),x=t.add(x,M),T=t.mul(O,x),N=t.add(N,T),T=t.mul(A,x),I=t.mul(Z,I),I=t.sub(I,T),T=t.mul(Z,O),y=t.mul(A,y),y=t.add(y,T),new l(I,N,y)}subtract(h){return this.add(h.negate())}is0(){return this.equals(l.ZERO)}wNAF(h){return v.wNAFCached(this,f,h,p=>{let b=t.invertBatch(p.map(k=>k.pz));return p.map((k,E)=>k.toAffine(b[E])).map(l.fromAffine)})}multiplyUnsafe(h){let p=l.ZERO;if(h===St)return p;if(a(h),h===$e)return this;let{endo:b}=e;if(!b)return v.unsafeLadder(this,h);let{k1neg:k,k1:E,k2neg:D,k2:S}=b.splitScalar(h),I=p,N=p,y=this;for(;E>St||S>St;)E&$e&&(I=I.add(y)),S&$e&&(N=N.add(y)),y=y.double(),E>>=$e,S>>=$e;return k&&(I=I.negate()),D&&(N=N.negate()),N=new l(t.mul(N.px,b.beta),N.py,N.pz),I.add(N)}multiply(h){a(h);let p=h,b,k,{endo:E}=e;if(E){let{k1neg:D,k1:S,k2neg:I,k2:N}=E.splitScalar(p),{p:y,f:C}=this.wNAF(S),{p:V,f:T}=this.wNAF(N);y=v.constTimeNegate(D,y),V=v.constTimeNegate(I,V),V=new l(t.mul(V.px,E.beta),V.py,V.pz),b=y.add(V),k=C.add(T)}else{let{p:D,f:S}=this.wNAF(p);b=D,k=S}return l.normalizeZ([b,k])[0]}multiplyAndAddUnsafe(h,p,b){let k=l.BASE,E=(S,I)=>I===St||I===$e||!S.equals(k)?S.multiplyUnsafe(I):S.multiply(I),D=E(this,p).add(E(h,b));return D.is0()?void 0:D}toAffine(h){let{px:p,py:b,pz:k}=this,E=this.is0();h==null&&(h=E?t.ONE:t.inv(k));let D=t.mul(p,h),S=t.mul(b,h),I=t.mul(k,h);if(E)return{x:t.ZERO,y:t.ZERO};if(!t.eql(I,t.ONE))throw new Error("invZ was invalid");return{x:D,y:S}}isTorsionFree(){let{h,isTorsionFree:p}=e;if(h===$e)return!0;if(p)return p(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h,clearCofactor:p}=e;return h===$e?this:p?p(l,this):this.multiplyUnsafe(e.h)}toRawBytes(h=!0){return this.assertValidity(),n(l,this,h)}toHex(h=!0){return pt(this.toRawBytes(h))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let d=e.nBitLength,v=Qn(l,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function Z0(r){let e=ln(r);return nt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Eu(r){let e=Z0(r),{Fp:t,n}=e,o=t.BYTES+1,i=2*t.BYTES+1;function s(x){return St<x&&x<t.ORDER}function a(x){return ee(x,n)}function c(x){return Jn(x,n)}let{ProjectivePoint:f,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:d}=Y0({...e,toBytes(x,A,P){let B=A.toAffine(),w=t.toBytes(B.x),L=mt;return P?L(Uint8Array.from([A.hasEvenY()?2:3]),w):L(Uint8Array.from([4]),w,t.toBytes(B.y))},fromBytes(x){let A=x.length,P=x[0],B=x.subarray(1);if(A===o&&(P===2||P===3)){let w=gt(B);if(!s(w))throw new Error("Point is not on curve");let L=l(w),F;try{F=t.sqrt(L)}catch(G){let Q=G instanceof Error?": "+G.message:"";throw new Error("Point is not on curve"+Q)}let H=(F&$e)===$e;return(P&1)===1!==H&&(F=t.neg(F)),{x:w,y:F}}else if(A===i&&P===4){let w=t.fromBytes(B.subarray(0,t.BYTES)),L=t.fromBytes(B.subarray(t.BYTES,2*t.BYTES));return{x:w,y:L}}else throw new Error(`Point of length ${A} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}}),v=x=>pt(Ft(x,e.nByteLength));function m(x){let A=n>>$e;return x>A}function h(x){return m(x)?a(-x):x}let p=(x,A,P)=>gt(x.slice(A,P));class b{constructor(A,P,B){this.r=A,this.s=P,this.recovery=B,this.assertValidity()}static fromCompact(A){let P=e.nByteLength;return A=ae("compactSignature",A,P*2),new b(p(A,0,P),p(A,P,2*P))}static fromDER(A){let{r:P,s:B}=dr.toSig(ae("DER",A));return new b(P,B)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(A){return new b(this.r,this.s,A)}recoverPublicKey(A){let{r:P,s:B,recovery:w}=this,L=N(ae("msgHash",A));if(w==null||![0,1,2,3].includes(w))throw new Error("recovery id invalid");let F=w===2||w===3?P+e.n:P;if(F>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=w&1?"03":"02",z=f.fromHex(H+v(F)),G=c(F),Q=a(-L*G),Y=a(B*G),W=f.BASE.multiplyAndAddUnsafe(z,Q,Y);if(!W)throw new Error("point at infinify");return W.assertValidity(),W}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return ir(this.toDERHex())}toDERHex(){return dr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ir(this.toCompactHex())}toCompactHex(){return v(this.r)+v(this.s)}}let k={isValidPrivateKey(x){try{return u(x),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let x=Qi(e.n);return tc(e.randomBytes(x),e.n)},precompute(x=8,A=f.BASE){return A._setWindowSize(x),A.multiply(BigInt(3)),A}};function E(x,A=!0){return f.fromPrivateKey(x).toRawBytes(A)}function D(x){let A=Vt(x),P=typeof x=="string",B=(A||P)&&x.length;return A?B===o||B===i:P?B===2*o||B===2*i:x instanceof f}function S(x,A,P=!0){if(D(x))throw new Error("first arg must be private key");if(!D(A))throw new Error("second arg must be public key");return f.fromHex(A).multiply(u(x)).toRawBytes(P)}let I=e.bits2int||function(x){let A=gt(x),P=x.length*8-e.nBitLength;return P>0?A>>BigInt(P):A},N=e.bits2int_modN||function(x){return a(I(x))},y=un(e.nBitLength);function C(x){if(typeof x!="bigint")throw new Error("bigint expected");if(!(St<=x&&x<y))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Ft(x,e.nByteLength)}function V(x,A,P=T){if(["recovered","canonical"].some(ie=>ie in P))throw new Error("sign() legacy options not supported");let{hash:B,randomBytes:w}=e,{lowS:L,prehash:F,extraEntropy:H}=P;L==null&&(L=!0),x=ae("msgHash",x),F&&(x=ae("prehashed msgHash",B(x)));let z=N(x),G=u(A),Q=[C(G),C(z)];if(H!=null&&H!==!1){let ie=H===!0?w(t.BYTES):H;Q.push(ae("extraEntropy",ie))}let Y=mt(...Q),W=z;function ce(ie){let ge=I(ie);if(!d(ge))return;let me=c(ge),le=f.BASE.multiply(ge).toAffine(),Be=a(le.x);if(Be===St)return;let lt=a(me*a(W+Be*G));if(lt===St)return;let Qt=(le.x===Be?0:2)|Number(le.y&$e),tn=lt;return L&&m(lt)&&(tn=h(lt),Qt^=1),new b(Be,tn,Qt)}return{seed:Y,k2sig:ce}}let T={lowS:e.lowS,prehash:!1},O={lowS:e.lowS,prehash:!1};function M(x,A,P=T){let{seed:B,k2sig:w}=V(x,A,P),L=e;return Zi(L.hash.outputLen,L.nByteLength,L.hmac)(B,w)}f.BASE._setWindowSize(8);function Z(x,A,P,B=O){let w=x;if(A=ae("msgHash",A),P=ae("publicKey",P),"strict"in B)throw new Error("options.strict was renamed to lowS");let{lowS:L,prehash:F}=B,H,z;try{if(typeof w=="string"||Vt(w))try{H=b.fromDER(w)}catch(le){if(!(le instanceof dr.Err))throw le;H=b.fromCompact(w)}else if(typeof w=="object"&&typeof w.r=="bigint"&&typeof w.s=="bigint"){let{r:le,s:Be}=w;H=new b(le,Be)}else throw new Error("PARSE");z=f.fromHex(P)}catch(le){if(le.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(L&&H.hasHighS())return!1;F&&(A=e.hash(A));let{r:G,s:Q}=H,Y=N(A),W=c(Q),ce=a(Y*W),ie=a(G*W),ge=f.BASE.multiplyAndAddUnsafe(z,ce,ie)?.toAffine();return ge?a(ge.x)===G:!1}return{CURVE:e,getPublicKey:E,getSharedSecret:S,sign:M,verify:Z,ProjectivePoint:f,Signature:b,utils:k}}function W0(r){return{hash:r,hmac:(e,...t)=>mn(r,e,Gn(...t)),randomBytes:Ur}}function vu(r,e){let t=n=>Eu({...r,...W0(n)});return Object.freeze({...t(e),create:t})}var Su=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Bu=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),J0=BigInt(1),Ts=BigInt(2),Au=(r,e)=>(r+e/Ts)/e;function X0(r){let e=Su,t=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%e,u=f*f*r%e,l=re(u,t,e)*u%e,d=re(l,t,e)*u%e,v=re(d,Ts,e)*f%e,m=re(v,o,e)*v%e,h=re(m,i,e)*m%e,p=re(h,a,e)*h%e,b=re(p,c,e)*p%e,k=re(b,a,e)*h%e,E=re(k,t,e)*u%e,D=re(E,s,e)*m%e,S=re(D,n,e)*f%e,I=re(S,Ts,e);if(!Cs.eql(Cs.sqr(I),r))throw new Error("Cannot find square root");return I}var Cs=Xn(Su,void 0,void 0,{sqrt:X0}),Je=vu({a:BigInt(0),b:BigInt(7),Fp:Cs,n:Bu,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Bu,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-J0*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,s=BigInt("0x100000000000000000000000000000000"),a=Au(i*r,e),c=Au(-n*r,e),f=ee(r-a*t-c*o,e),u=ee(-a*n-c*i,e),l=f>s,d=u>s;if(l&&(f=e-f),d&&(u=e-u),f>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:f,k2neg:d,k2:u}}}},bu),Yw=BigInt(0);var Zw=Je.ProjectivePoint;function Ru(){return Je.utils.randomPrivateKey()}function ku(r,e){let t=we.digest(e instanceof Uint8Array?e:e.subarray());if(He(t))return t.then(({digest:n})=>Je.sign(n,r).toDERRawBytes()).catch(n=>{throw new $(String(n),"ERR_INVALID_INPUT")});try{return Je.sign(t.digest,r).toDERRawBytes()}catch(n){throw new $(String(n),"ERR_INVALID_INPUT")}}function Iu(r,e,t){let n=we.digest(t instanceof Uint8Array?t:t.subarray());if(He(n))return n.then(({digest:o})=>Je.verify(e,o,r)).catch(o=>{throw new $(String(o),"ERR_INVALID_INPUT")});try{return Je.verify(e,n.digest,r)}catch(o){throw new $(String(o),"ERR_INVALID_INPUT")}}function Tu(r){return Je.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Cu(r){try{Je.getPublicKey(r,!0)}catch(e){throw new $(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Ns(r){try{Je.ProjectivePoint.fromHex(r)}catch(e){throw new $(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Nu(r){try{return Je.getPublicKey(r,!0)}catch(e){throw new $(String(e),"ERR_INVALID_PRIVATE_KEY")}}var In=class{_key;constructor(e){Ns(e),this._key=e}verify(e,t){return Iu(this._key,t,e)}marshal(){return Tu(this._key)}get bytes(){return ot.encode({Type:ne.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}async hash(){let e=we.digest(this.bytes),t;return He(e)?{bytes:t}=await e:t=e.bytes,t}},Tn=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??Nu(e),Cu(this._key),Ns(this._publicKey)}sign(e){return ku(this._key,e)}get public(){return new In(this._publicKey)}marshal(){return this._key}get bytes(){return it.encode({Type:ne.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return oe(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Pr(this.bytes,e);throw new $(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function ep(r){return new Tn(r)}function tp(r){return new In(r)}async function rp(){let r=Ru();return new Tn(r)}var pr={rsa:ks,ed25519:ys,secp256k1:_s};function _u(r){let e=Object.keys(pr).join(" / ");return new $(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Us(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ne.RSA:return pr.rsa.unmarshalRsaPublicKey(t);case ne.Ed25519:return pr.ed25519.unmarshalEd25519PublicKey(t);case ne.Secp256k1:return pr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw _u(e.Type??"unknown")}}async function Uu(r){let e=it.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ne.RSA:return pr.rsa.unmarshalRsaPrivateKey(t);case ne.Ed25519:return pr.ed25519.unmarshalEd25519PrivateKey(t);case ne.Secp256k1:return pr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw _u(e.Type??"RSA")}}var Ys=ft(Xo(),1);var Rt="/",Vu=new TextEncoder().encode(Rt),Qo=Vu[0],jr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=J(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Qo)throw new Error("Invalid key")}toString(e="utf8"){return oe(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Rt))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Vu),this._buf[0]!==Qo){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Qo,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Qo;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Rt).slice(1)}type(){return op(this.baseNamespace())}name(){return ip(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Rt)||(e+=Rt),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Rt):new r(e.slice(0,-1).join(Rt))}child(e){return this.toString()===Rt?e:e.toString()===Rt?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...sp(e.map(t=>t.namespaces()))])}};function op(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ip(r){let e=r.split(":");return e[e.length-1]}function sp(r){return[].concat(...r)}var rf=ft(ei(),1);var Ou="ERR_IPNS_EXPIRED_RECORD",Cn="ERR_UNRECOGNIZED_VALIDITY",Fu="ERR_SIGNATURE_CREATION",kt="ERR_SIGNATURE_VERIFICATION";var Ls="ERR_UNDEFINED_PARAMETER",Pu="ERR_INVALID_RECORD_DATA",Mu="ERR_INVALID_VALUE",Hu="ERR_INVALID_EMBEDDED_KEY",Ku="ERR_MISSING_PRIVATE_KEY",$u="ERR_RECORD_TOO_LARGE";var Ee;(function(r){let e;(function(o){o.EOL="EOL"})(e=r.ValidityType||(r.ValidityType={}));let t;(function(o){o[o.EOL=0]="EOL"})(t||(t={})),function(o){o.codec=()=>pn(t)}(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=$t((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.value!=null&&(i.uint32(10),i.bytes(o.value)),o.signatureV1!=null&&(i.uint32(18),i.bytes(o.signatureV1)),o.validityType!=null&&(i.uint32(24),r.ValidityType.codec().encode(o.validityType,i)),o.validity!=null&&(i.uint32(34),i.bytes(o.validity)),o.sequence!=null&&(i.uint32(40),i.uint64(o.sequence)),o.ttl!=null&&(i.uint32(48),i.uint64(o.ttl)),o.pubKey!=null&&(i.uint32(58),i.bytes(o.pubKey)),o.signatureV2!=null&&(i.uint32(66),i.bytes(o.signatureV2)),o.data!=null&&(i.uint32(74),i.bytes(o.data)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},a=i==null?o.len:o.pos+i;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:s.value=o.bytes();break;case 2:s.signatureV1=o.bytes();break;case 3:s.validityType=r.ValidityType.codec().decode(o);break;case 4:s.validity=o.bytes();break;case 5:s.sequence=o.uint64();break;case 6:s.ttl=o.uint64();break;case 7:s.pubKey=o.bytes();break;case 8:s.signatureV2=o.bytes();break;case 9:s.data=o.bytes();break;default:o.skipType(c&7);break}}return s})),n),r.encode=o=>Kt(o,r.codec()),r.decode=o=>Ht(o,r.codec())})(Ee||(Ee={}));var ap=["string","number","bigint","symbol"],cp=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function qu(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(ap.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(up(r))return"Buffer";let t=lp(r);return t||"Object"}function up(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function lp(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(cp.includes(e))return e}var g=class{constructor(e,t,n){this.major=e,this.majorEncoded=e<<5,this.name=t,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};g.uint=new g(0,"uint",!0);g.negint=new g(1,"negint",!0);g.bytes=new g(2,"bytes",!0);g.string=new g(3,"string",!0);g.array=new g(4,"array",!1);g.map=new g(5,"map",!1);g.tag=new g(6,"tag",!1);g.float=new g(7,"float",!0);g.false=new g(7,"false",!0);g.true=new g(7,"true",!0);g.null=new g(7,"null",!0);g.undefined=new g(7,"undefined",!0);g.break=new g(7,"break",!0);var U=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Yr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",fp=new TextDecoder,hp=new TextEncoder;function ti(r){return Yr&&globalThis.Buffer.isBuffer(r)}function Os(r){return r instanceof Uint8Array?ti(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Yu=Yr?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Gu(r,e,t):(r,e,t)=>t-e>64?fp.decode(r.subarray(e,t)):Gu(r,e,t),Zu=Yr?r=>r.length>64?globalThis.Buffer.from(r):zu(r):r=>r.length>64?hp.encode(r):zu(r),ut=r=>Uint8Array.from(r),Zr=Yr?(r,e,t)=>ti(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Wu=Yr?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Os(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},Ju=Yr?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Xu(r,e){if(ti(r)&&ti(e))return r.compare(e);for(let t=0;t<r.length;t++)if(r[t]!==e[t])return r[t]<e[t]?-1:1;return 0}function zu(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function Gu(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let a,c,f,u;switch(s){case 1:o<128&&(i=o);break;case 2:a=r[e+1],(a&192)===128&&(u=(o&31)<<6|a&63,u>127&&(i=u));break;case 3:a=r[e+1],c=r[e+2],(a&192)===128&&(c&192)===128&&(u=(o&15)<<12|(a&63)<<6|c&63,u>2047&&(u<55296||u>57343)&&(i=u));break;case 4:a=r[e+1],c=r[e+2],f=r[e+3],(a&192)===128&&(c&192)===128&&(f&192)===128&&(u=(o&15)<<18|(a&63)<<12|(c&63)<<6|f&63,u>65535&&u<1114112&&(i=u))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return dp(n)}var ju=4096;function dp(r){let e=r.length;if(e<=ju)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=ju));return t}var pp=256,Nn=class{constructor(e=pp){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Ju(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=Zr(n,0,this.cursor)}else t=Wu(this.chunks,this.cursor);return e&&this.reset(),t}};var K="CBOR decode error:",Fs="CBOR encode error:",_n=[];_n[23]=1;_n[24]=2;_n[25]=3;_n[26]=5;_n[27]=9;function It(r,e,t){if(r.length-e<t)throw new Error(`${K} not enough data for type`)}var pe=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Oe(r,e,t){It(r,e,1);let n=r[e];if(t.strict===!0&&n<pe[0])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Fe(r,e,t){It(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<pe[1])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Pe(r,e,t){It(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<pe[2])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Me(r,e,t){It(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<pe[3])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${K} integers outside of the safe integer range are not supported`)}function Qu(r,e,t,n){return new U(g.uint,Oe(r,e+1,n),2)}function el(r,e,t,n){return new U(g.uint,Fe(r,e+1,n),3)}function tl(r,e,t,n){return new U(g.uint,Pe(r,e+1,n),5)}function rl(r,e,t,n){return new U(g.uint,Me(r,e+1,n),9)}function qe(r,e){return ve(r,0,e.value)}function ve(r,e,t){if(t<pe[0]){let n=Number(t);r.push([e|n])}else if(t<pe[1]){let n=Number(t);r.push([e|24,n])}else if(t<pe[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<pe[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<pe[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,r.push(o)}else throw new Error(`${K} encountered BigInt larger than allowable range`)}}qe.encodedSize=function(e){return ve.encodedSize(e.value)};ve.encodedSize=function(e){return e<pe[0]?1:e<pe[1]?2:e<pe[2]?3:e<pe[3]?5:9};qe.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function nl(r,e,t,n){return new U(g.negint,-1-Oe(r,e+1,n),2)}function ol(r,e,t,n){return new U(g.negint,-1-Fe(r,e+1,n),3)}function il(r,e,t,n){return new U(g.negint,-1-Pe(r,e+1,n),5)}var Ps=BigInt(-1),sl=BigInt(1);function al(r,e,t,n){let o=Me(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new U(g.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${K} integers outside of the safe integer range are not supported`);return new U(g.negint,Ps-BigInt(o),9)}function ri(r,e){let t=e.value,n=typeof t=="bigint"?t*Ps-sl:t*-1-1;ve(r,e.type.majorEncoded,n)}ri.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Ps-sl:t*-1-1;return n<pe[0]?1:n<pe[1]?2:n<pe[2]?3:n<pe[3]?5:9};ri.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function Un(r,e,t,n){It(r,e,t+n);let o=Zr(r,e+t,e+t+n);return new U(g.bytes,o,t+n)}function cl(r,e,t,n){return Un(r,e,1,t)}function ul(r,e,t,n){return Un(r,e,2,Oe(r,e+1,n))}function ll(r,e,t,n){return Un(r,e,3,Fe(r,e+1,n))}function fl(r,e,t,n){return Un(r,e,5,Pe(r,e+1,n))}function hl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer bytes lengths not supported`);return Un(r,e,9,o)}function ni(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===g.string?Zu(r.value):r.value),r.encodedBytes}function Wr(r,e){let t=ni(e);ve(r,e.type.majorEncoded,t.length),r.push(t)}Wr.encodedSize=function(e){let t=ni(e);return ve.encodedSize(t.length)+t.length};Wr.compareTokens=function(e,t){return mp(ni(e),ni(t))};function mp(r,e){return r.length<e.length?-1:r.length>e.length?1:Xu(r,e)}function Dn(r,e,t,n,o){let i=t+n;It(r,e,i);let s=new U(g.string,Yu(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Zr(r,e+t,e+i)),s}function dl(r,e,t,n){return Dn(r,e,1,t,n)}function pl(r,e,t,n){return Dn(r,e,2,Oe(r,e+1,n),n)}function gl(r,e,t,n){return Dn(r,e,3,Fe(r,e+1,n),n)}function ml(r,e,t,n){return Dn(r,e,5,Pe(r,e+1,n),n)}function yl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer string lengths not supported`);return Dn(r,e,9,o,n)}var wl=Wr;function Jr(r,e,t,n){return new U(g.array,n,t)}function bl(r,e,t,n){return Jr(r,e,1,t)}function xl(r,e,t,n){return Jr(r,e,2,Oe(r,e+1,n))}function El(r,e,t,n){return Jr(r,e,3,Fe(r,e+1,n))}function vl(r,e,t,n){return Jr(r,e,5,Pe(r,e+1,n))}function Bl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer array lengths not supported`);return Jr(r,e,9,o)}function Al(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return Jr(r,e,1,1/0)}function oi(r,e){ve(r,g.array.majorEncoded,e.value)}oi.compareTokens=qe.compareTokens;oi.encodedSize=function(e){return ve.encodedSize(e.value)};function Xr(r,e,t,n){return new U(g.map,n,t)}function Sl(r,e,t,n){return Xr(r,e,1,t)}function Rl(r,e,t,n){return Xr(r,e,2,Oe(r,e+1,n))}function kl(r,e,t,n){return Xr(r,e,3,Fe(r,e+1,n))}function Il(r,e,t,n){return Xr(r,e,5,Pe(r,e+1,n))}function Tl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer map lengths not supported`);return Xr(r,e,9,o)}function Cl(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return Xr(r,e,1,1/0)}function ii(r,e){ve(r,g.map.majorEncoded,e.value)}ii.compareTokens=qe.compareTokens;ii.encodedSize=function(e){return ve.encodedSize(e.value)};function Nl(r,e,t,n){return new U(g.tag,t,1)}function _l(r,e,t,n){return new U(g.tag,Oe(r,e+1,n),2)}function Ul(r,e,t,n){return new U(g.tag,Fe(r,e+1,n),3)}function Dl(r,e,t,n){return new U(g.tag,Pe(r,e+1,n),5)}function Ll(r,e,t,n){return new U(g.tag,Me(r,e+1,n),9)}function si(r,e){ve(r,g.tag.majorEncoded,e.value)}si.compareTokens=qe.compareTokens;si.encodedSize=function(e){return ve.encodedSize(e.value)};var vp=20,Bp=21,Ap=22,Sp=23;function Vl(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${K} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new U(g.null,null,1):new U(g.undefined,void 0,1)}function Ol(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return new U(g.break,void 0,1)}function Ms(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${K} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${K} Infinity values are not supported`)}return new U(g.float,r,e)}function Fl(r,e,t,n){return Ms(Hs(r,e+1),3,n)}function Pl(r,e,t,n){return Ms(Ks(r,e+1),5,n)}function Ml(r,e,t,n){return Ms(ql(r,e+1),9,n)}function ai(r,e,t){let n=e.value;if(n===!1)r.push([g.float.majorEncoded|vp]);else if(n===!0)r.push([g.float.majorEncoded|Bp]);else if(n===null)r.push([g.float.majorEncoded|Ap]);else if(n===void 0)r.push([g.float.majorEncoded|Sp]);else{let o,i=!1;(!t||t.float64!==!0)&&(Kl(n),o=Hs(Xe,1),n===o||Number.isNaN(n)?(Xe[0]=249,r.push(Xe.slice(0,3)),i=!0):($l(n),o=Ks(Xe,1),n===o&&(Xe[0]=250,r.push(Xe.slice(0,5)),i=!0))),i||(Rp(n),o=ql(Xe,1),Xe[0]=251,r.push(Xe.slice(0,9)))}}ai.encodedSize=function(e,t){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!t||t.float64!==!0){Kl(n);let o=Hs(Xe,1);if(n===o||Number.isNaN(n))return 3;if($l(n),o=Ks(Xe,1),n===o)return 5}return 9};var Hl=new ArrayBuffer(9),ze=new DataView(Hl,1),Xe=new Uint8Array(Hl,0);function Kl(r){if(r===1/0)ze.setUint16(0,31744,!1);else if(r===-1/0)ze.setUint16(0,64512,!1);else if(Number.isNaN(r))ze.setUint16(0,32256,!1);else{ze.setFloat32(0,r);let e=ze.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ze.setUint16(0,31744,!1);else if(t===0)ze.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?ze.setUint16(0,0):o<-14?ze.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):ze.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Hs(r,e){if(r.length-e<2)throw new Error(`${K} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function $l(r){ze.setFloat32(0,r,!1)}function Ks(r,e){if(r.length-e<4)throw new Error(`${K} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Rp(r){ze.setFloat64(0,r,!1)}function ql(r,e){if(r.length-e<8)throw new Error(`${K} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}ai.compareTokens=qe.compareTokens;function X(r,e,t){throw new Error(`${K} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function ci(r){return()=>{throw new Error(`${K} ${r}`)}}var R=[];for(let r=0;r<=23;r++)R[r]=X;R[24]=Qu;R[25]=el;R[26]=tl;R[27]=rl;R[28]=X;R[29]=X;R[30]=X;R[31]=X;for(let r=32;r<=55;r++)R[r]=X;R[56]=nl;R[57]=ol;R[58]=il;R[59]=al;R[60]=X;R[61]=X;R[62]=X;R[63]=X;for(let r=64;r<=87;r++)R[r]=cl;R[88]=ul;R[89]=ll;R[90]=fl;R[91]=hl;R[92]=X;R[93]=X;R[94]=X;R[95]=ci("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)R[r]=dl;R[120]=pl;R[121]=gl;R[122]=ml;R[123]=yl;R[124]=X;R[125]=X;R[126]=X;R[127]=ci("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)R[r]=bl;R[152]=xl;R[153]=El;R[154]=vl;R[155]=Bl;R[156]=X;R[157]=X;R[158]=X;R[159]=Al;for(let r=160;r<=183;r++)R[r]=Sl;R[184]=Rl;R[185]=kl;R[186]=Il;R[187]=Tl;R[188]=X;R[189]=X;R[190]=X;R[191]=Cl;for(let r=192;r<=215;r++)R[r]=Nl;R[216]=_l;R[217]=Ul;R[218]=Dl;R[219]=Ll;R[220]=X;R[221]=X;R[222]=X;R[223]=X;for(let r=224;r<=243;r++)R[r]=ci("simple values are not supported");R[244]=X;R[245]=X;R[246]=X;R[247]=Vl;R[248]=ci("simple values are not supported");R[249]=Fl;R[250]=Pl;R[251]=Ml;R[252]=X;R[253]=X;R[254]=X;R[255]=Ol;var Qe=[];for(let r=0;r<24;r++)Qe[r]=new U(g.uint,r,1);for(let r=-1;r>=-24;r--)Qe[31-r]=new U(g.negint,r,1);Qe[64]=new U(g.bytes,new Uint8Array(0),1);Qe[96]=new U(g.string,"",1);Qe[128]=new U(g.array,0,1);Qe[160]=new U(g.map,0,1);Qe[244]=new U(g.false,!1,1);Qe[245]=new U(g.true,!0,1);Qe[246]=new U(g.null,null,1);function zl(r){switch(r.type){case g.false:return ut([244]);case g.true:return ut([245]);case g.null:return ut([246]);case g.bytes:return r.value.length?void 0:ut([64]);case g.string:return r.value===""?ut([96]):void 0;case g.array:return r.value===0?ut([128]):void 0;case g.map:return r.value===0?ut([160]):void 0;case g.uint:return r.value<24?ut([Number(r.value)]):void 0;case g.negint:if(r.value>=-24)return ut([31-Number(r.value)])}}var Ip={float64:!1,mapSorter:Np,quickEncodeToken:zl};function Tp(){let r=[];return r[g.uint.major]=qe,r[g.negint.major]=ri,r[g.bytes.major]=Wr,r[g.string.major]=wl,r[g.array.major]=oi,r[g.map.major]=ii,r[g.tag.major]=si,r[g.float.major]=ai,r}var Gl=Tp(),$s=new Nn,li=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${Fs} object contains circular references`);return new r(t,e)}},Wt={null:new U(g.null,null),undefined:new U(g.undefined,void 0),true:new U(g.true,!0),false:new U(g.false,!1),emptyArray:new U(g.array,0),emptyMap:new U(g.map,0)},Jt={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new U(g.float,r):r>=0?new U(g.uint,r):new U(g.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new U(g.uint,r):new U(g.negint,r)},Uint8Array(r,e,t,n){return new U(g.bytes,r)},string(r,e,t,n){return new U(g.string,r)},boolean(r,e,t,n){return r?Wt.true:Wt.false},null(r,e,t,n){return Wt.null},undefined(r,e,t,n){return Wt.undefined},ArrayBuffer(r,e,t,n){return new U(g.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new U(g.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[Wt.emptyArray,new U(g.break)]:Wt.emptyArray;n=li.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=ui(s,t,n);return t.addBreakTokens?[new U(g.array,r.length),o,new U(g.break)]:[new U(g.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[Wt.emptyMap,new U(g.break)]:Wt.emptyMap;n=li.createCheck(n,r);let a=[],c=0;for(let f of i)a[c++]=[ui(f,t,n),ui(o?r.get(f):r[f],t,n)];return Cp(a,t),t.addBreakTokens?[new U(g.map,s),a,new U(g.break)]:[new U(g.map,s),a]}};Jt.Map=Jt.Object;Jt.Buffer=Jt.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Jt[`${r}Array`]=Jt.DataView;function ui(r,e={},t){let n=qu(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||Jt[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=Jt[n];if(!i)throw new Error(`${Fs} unsupported type: ${n}`);return i(r,n,e,t)}function Cp(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Np(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=Gl[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function jl(r,e,t,n){if(Array.isArray(e))for(let o of e)jl(r,o,t,n);else t[e.type.major](r,e,n)}function _p(r,e,t){let n=ui(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),a=new Nn(s);if(i(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Os(a.chunks[0])}}return $s.reset(),jl($s,n,e,t),$s.toBytes(!0)}function qs(r,e){return e=Object.assign({},Ip,e),_p(r,Gl,e)}var Up={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},fi=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=Qe[e];if(t===void 0){let n=R[e];if(!n)throw new Error(`${K} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},Ln=Symbol.for("DONE"),hi=Symbol.for("BREAK");function Dp(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=Qr(e,t);if(i===hi){if(r.value===1/0)break;throw new Error(`${K} got unexpected break to lengthed array`)}if(i===Ln)throw new Error(`${K} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Lp(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=Qr(e,t);if(a===hi){if(r.value===1/0)break;throw new Error(`${K} got unexpected break to lengthed map`)}if(a===Ln)throw new Error(`${K} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${K} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(a)||!n&&a in o))throw new Error(`${K} found repeat map key "${a}"`);let c=Qr(e,t);if(c===Ln)throw new Error(`${K} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(a,c):o[a]=c}return n?i:o}function Qr(r,e){if(r.done())return Ln;let t=r.next();if(t.type===g.break)return hi;if(t.type.terminal)return t.value;if(t.type===g.array)return Dp(t,r,e);if(t.type===g.map)return Lp(t,r,e);if(t.type===g.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Qr(r,e);return e.tags[t.value](n)}throw new Error(`${K} tag not supported (${t.value})`)}throw new Error("unsupported")}function Yl(r,e){if(!(r instanceof Uint8Array))throw new Error(`${K} data to decode must be a Uint8Array`);e=Object.assign({},Up,e);let t=e.tokenizer||new fi(r,e),n=Qr(t,e);if(n===Ln)throw new Error(`${K} did not find any content to decode`);if(n===hi)throw new Error(`${K} got unexpected break`);return[n,r.subarray(t.pos())]}function zs(r,e){let[t,n]=Yl(r,e);if(n.length>0)throw new Error(`${K} too many terminals, data makes no sense`);return t}var _e=ft(Xo(),1);var Zl=_t("ipns:utils"),Wl=J("/ipns/"),Op=114,Jl=async(r,e)=>{if(e==null||r==null){let n=new Error("one or more of the provided parameters are not defined");throw Zl.error(n),(0,_e.default)(n,Ls)}let t;if(e.pubKey!=null){try{t=Us(e.pubKey)}catch(o){throw Zl.error(o),o}if(!(await Oa(e.pubKey)).equals(r))throw(0,_e.default)(new Error("Embedded public key did not match PeerID"),Hu)}else r.publicKey!=null&&(t=Us(r.publicKey));if(t!=null)return t;throw(0,_e.default)(new Error("no public key is available"),Ls)},Xl=(r,e,t)=>{let n=J(e);return or([r,t,n])},di=r=>{let e=J("ipns-signature:");return or([e,r])},Gs=r=>"signatureV1"in r?Ee.encode({value:J(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:J(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):Ee.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data});function Tt(r){let e=Ee.decode(r);if(e.sequence!=null&&(e.sequence=BigInt(e.sequence)),e.ttl!=null&&(e.ttl=BigInt(e.ttl)),e.signatureV2==null||e.data==null)throw(0,_e.default)(new Error("missing data or signatureV2"),kt);let t=tf(e.data),n=js(t.Value),o=oe(t.Validity);if(e.value!=null&&e.signatureV1!=null)return Fp(e),{value:n,validityType:Ee.ValidityType.EOL,validity:o,sequence:t.Sequence,ttl:t.TTL,pubKey:e.pubKey,signatureV1:e.signatureV1,signatureV2:e.signatureV2,data:e.data};if(e.signatureV2!=null)return{value:n,validityType:Ee.ValidityType.EOL,validity:o,sequence:t.Sequence,ttl:t.TTL,pubKey:e.pubKey,signatureV2:e.signatureV2,data:e.data};throw new Error("invalid record: does not include signatureV1 or signatureV2")}var pi=r=>or([Wl,r.toBytes()]),Ql=r=>Ki(r.slice(Wl.length)),ef=(r,e,t,n,o)=>{let i;if(e===Ee.ValidityType.EOL)i=0;else throw(0,_e.default)(new Error("Unknown validity type"),Cn);return qs({Value:r,Validity:t,ValidityType:i,Sequence:n,TTL:o})},tf=r=>{let e=zs(r);if(e.ValidityType===0)e.ValidityType=Ee.ValidityType.EOL;else throw(0,_e.default)(new Error("Unknown validity type"),Cn);return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e},js=r=>{if(r!=null){if(la(r))return`/ipns/${r.toCID().toString(Hn)}`;if(r instanceof Uint8Array){let n=oe(r);n.startsWith("/")&&(r=n)}let e=r.toString().trim();if(e.startsWith("/")&&e.length>1)return e;let t=Re.asCID(r);if(t!=null)return t.code===Op?`/ipns/${t.toString(Hn)}`:`/ipfs/${t.toV1().toString()}`;try{return r instanceof Uint8Array?`/ipfs/${Re.decode(r).toV1().toString()}`:`/ipfs/${Re.parse(e).toV1().toString()}`}catch{}}throw(0,_e.default)(new Error("Value must be a valid content path starting with /"),Mu)},Fp=r=>{if(r.data==null)throw(0,_e.default)(new Error("Record data is missing"),Pu);let e=tf(r.data);if(!be(e.Value,r.value??new Uint8Array(0)))throw(0,_e.default)(new Error('Field "value" did not match between protobuf and CBOR'),kt);if(!be(e.Validity,r.validity??new Uint8Array(0)))throw(0,_e.default)(new Error('Field "validity" did not match between protobuf and CBOR'),kt);if(e.ValidityType!==r.validityType)throw(0,_e.default)(new Error('Field "validityType" did not match between protobuf and CBOR'),kt);if(e.Sequence!==r.sequence)throw(0,_e.default)(new Error('Field "sequence" did not match between protobuf and CBOR'),kt);if(e.TTL!==r.ttl)throw(0,_e.default)(new Error('Field "ttl" did not match between protobuf and CBOR'),kt)};var Pp=_t("ipns"),Mp=tt.code,Hp="/ipns/",Lx=Hp.length,nf={v1Compatible:!0};async function of(r,e,t,n,o=nf){let i=new rf.default(Date.now()+Number(n)),s=Ee.ValidityType.EOL,[a,c]=n.toString().split("."),f=BigInt(a)*BigInt(1e5)+BigInt(c??"0");return Kp(r,e,t,s,i.toString(),f,o)}var Kp=async(r,e,t,n,o,i,s=nf)=>{t=BigInt(t);let a=J(o),c=js(e),f=J(c);if(r.privateKey==null)throw(0,Ys.default)(new Error("Missing private key"),Ku);let u=await Uu(r.privateKey),l=ef(f,n,a,t,i),d=di(l),v=await u.sign(d),m;if(r.publicKey!=null){let h=rr(r.toBytes());(h.code!==Mp||!be(r.publicKey,h.digest))&&(m=r.publicKey)}if(s.v1Compatible===!0){let h=await $p(u,f,n,a),p={value:c,signatureV1:h,validity:o,validityType:n,sequence:t,ttl:i,signatureV2:v,data:l};return m!=null&&(p.pubKey=m),p}else{let h={value:c,validity:o,validityType:n,sequence:t,ttl:i,signatureV2:v,data:l};return m!=null&&(h.pubKey=m),h}};var $p=async(r,e,t,n)=>{try{let o=Xl(e,t,n);return await r.sign(o)}catch(o){throw Pp.error("record signature creation failed",o),(0,Ys.default)(new Error("record signature creation failed"),Fu)}};var Zs=ft(ei(),1);function gi(r,e){let t=e.map((n,o)=>({record:Tt(n),index:o}));return t.sort((n,o)=>{let i=n.record.sequence,s=o.record.sequence;if(i>s)return-1;if(i<s)return 1;if(n.record.validityType===Ee.ValidityType.EOL&&o.record.validityType===Ee.ValidityType.EOL){let a=Zs.default.fromString(n.record.validity).toDate(),c=Zs.default.fromString(o.record.validity).toDate();if(a.getTime()>c.getTime())return-1;if(a.getTime()<c.getTime())return 1}return 0}),t[0].index}var Vn=ft(Xo(),1),sf=ft(ei(),1);var mi=_t("ipns:validator"),qp=1024*10,zp=async(r,e)=>{let t=Tt(e),n;try{let o=di(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw mi.error("record signature verification failed"),(0,Vn.default)(new Error("record signature verification failed"),kt);if(t.validityType===Ee.ValidityType.EOL){if(sf.default.fromString(t.validity).toDate().getTime()<Date.now())throw mi.error("record has expired"),(0,Vn.default)(new Error("record has expired"),Ou)}else if(t.validityType!=null)throw mi.error("unrecognized validity type"),(0,Vn.default)(new Error("unrecognized validity type"),Cn);mi("ipns record for %s is valid",t.value)};async function Ws(r,e){if(e.byteLength>qp)throw(0,Vn.default)(new Error("record too large"),$u);let t=Ql(r),n=Tt(e),o=await Jl(t,n);await zp(o,e)}var Ce=class extends Event{constructor(e,t){super(e),this.detail=t}};var Yp=ft(cf(),1);var Xt;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Xt||(Xt={}));var Zp=32;async function uf(r,e,t,n,o={}){if(e===0)throw new Error("recursion limit exceeded");n("query %s for TXT and CNAME records",r);let s=(await t.query(r,{...o,types:[Xt.TXT]})).Answer.sort((f,u)=>f.data.localeCompare(u.data));n("found %d TXT records for %s",s.length,r);for(let f of s)try{let u=f.data;if(u.startsWith('"')&&u.endsWith('"')&&(u=u.substring(1,u.length-1)),!u.startsWith("dnslink="))continue;n("%s TXT %s",f.name,u),u=u.replace("dnslink=","");let[,l,d,...v]=u.split("/");if(l==="ipfs")try{return`/ipfs/${Re.parse(d)}${v.length>0?`/${v.join("/")}`:""}`}catch{}else if(l==="ipns"){try{return`/ipns/${cn(d)}${v.length>0?`/${v.join("/")}`:""}`}catch{}return await yi(d,e-1,t,n,o)}else{if(l==="dnslink")return await yi(d,e-1,t,n,o);n('unknown protocol "%s" in DNSLink record for domain: %s',l,r);continue}}catch(u){n.error("could not parse DNS link record for domain %s, %s",r,f.data,u)}n("no DNSLink records found for %s, falling back to CNAME",r);let c=(await t.query(r,{...o,types:[Xt.CNAME]})).Answer.sort((f,u)=>f.data.localeCompare(u.data));n("found %d CNAME records for %s",c.length,r);for(let f of c)try{return await yi(f.data,e-1,t,n,o)}catch(u){n.error("domain %s cname %s had no DNSLink records",r,f.data,u)}throw new $(`No DNSLink records found for domain: ${r}`,"ERR_DNSLINK_NOT_FOUND")}async function yi(r,e,t,n,o={}){if(e===0)throw new Error("recursion limit exceeded");r.startsWith("_dnslink.")||(r=`_dnslink.${r}`);try{return await uf(r,e,t,n,o)}catch(i){if(i.code!=="ENOTFOUND"&&i.code!=="ERR_DNSLINK_NOT_FOUND"&&i.code!=="ENODATA")throw i;return r.startsWith("_dnslink.")?r=r.replace("_dnslink.",""):r=`_dnslink.${r}`,await uf(r,e,t,n,o)}}async function lf(r,e,t,n={}){return yi(r,n.maxRecursiveDepth??Zp,e,t,n)}var Js=class{routing;constructor(e){this.routing=e}async put(e,t,n={}){try{await this.routing.put(e,t,n)}catch(o){n.onProgress?.(new Ce("ipns:routing:helia:error",o))}}async get(e,t={}){try{return await this.routing.get(e,t)}catch(n){t.onProgress?.(new Ce("ipns:routing:helia:error",n))}throw new Error("Not found")}};function ff(r){return new Js(r)}var On;(function(r){let e;r.codec=()=>(e==null&&(e=$t((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.key!=null&&t.key.byteLength>0&&(n.uint32(10),n.bytes(t.key)),t.value!=null&&t.value.byteLength>0&&(n.uint32(18),n.bytes(t.value)),t.timeReceived!=null&&t.timeReceived!==""&&(n.uint32(42),n.string(t.timeReceived)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let s=t.uint32();switch(s>>>3){case 1:o.key=t.bytes();break;case 2:o.value=t.bytes();break;case 5:o.timeReceived=t.string();break;default:t.skipType(s&7);break}}return o})),e),r.encode=t=>Kt(t,r.codec()),r.decode=t=>Ht(t,r.codec())})(On||(On={}));function hf(r){let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0"),o=String(r.getUTCHours()).padStart(2,"0"),i=String(r.getUTCMinutes()).padStart(2,"0"),s=String(r.getUTCSeconds()).padStart(2,"0"),a=r.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${e}-${t}-${n}T${o}:${i}:${s}.${c}Z`}function df(r){let e=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),t=String(r).trim().match(e);if(t==null)throw new Error("Invalid format");let n=parseInt(t[1],10),o=parseInt(t[2],10)-1,i=parseInt(t[3],10),s=parseInt(t[4],10),a=parseInt(t[5],10),c=parseInt(t[6],10),f=parseInt(t[7].slice(0,-6),10);return new Date(Date.UTC(n,o,i,s,a,c,f))}var en=class r{key;value;timeReceived;constructor(e,t,n){if(!(e instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(t instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=e,this.value=t,this.timeReceived=n}serialize(){return On.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:hf(this.timeReceived)}}static deserialize(e){let t=On.decode(e);return new r(t.key,t.value,new Date(t.timeReceived))}static fromDeserialized(e){let t=df(e.timeReceived);if(e.key==null)throw new Error("key missing from deserialized object");if(e.value==null)throw new Error("value missing from deserialized object");return new r(e.key,e.value,t)}};var pf;(function(r){r[r.SEND_QUERY=0]="SEND_QUERY",r[r.PEER_RESPONSE=1]="PEER_RESPONSE",r[r.FINAL_PEER=2]="FINAL_PEER",r[r.QUERY_ERROR=3]="QUERY_ERROR",r[r.PROVIDER=4]="PROVIDER",r[r.VALUE=5]="VALUE",r[r.ADD_PEER=6]="ADD_PEER",r[r.DIAL_PEER=7]="DIAL_PEER"})(pf||(pf={}));function Xs(r){return new jr("/dht/record/"+oe(r,"base32"),!1)}function gf(r){return{async put(e,t,n={}){try{let o=Xs(e),i=new en(e,t,new Date);n.onProgress?.(new Ce("ipns:routing:datastore:put")),await r.put(o,i.serialize(),n)}catch(o){throw n.onProgress?.(new Ce("ipns:routing:datastore:error",o)),o}},async get(e,t={}){try{let n=Xs(e);t.onProgress?.(new Ce("ipns:routing:datastore:get"));let o=await r.get(n,t);return en.deserialize(o).value}catch(n){throw t.onProgress?.(new Ce("ipns:routing:datastore:error",n)),n}},async has(e,t={}){let n=Xs(e);return r.has(n,t)}}}var mr=_t("helia:ipns"),Jp=60*1e3,mf=60*Jp,Xp=24*mf,Qs=23*mf,ea=class{routers;localStore;timeout;dns;log;constructor(e,t=[]){this.routers=[ff(e.routing),...t],this.localStore=gf(e.datastore),this.dns=e.dns,this.log=e.logger.forComponent("helia:ipns")}async publish(e,t,n={}){try{let o=1n,i=pi(e);if(await this.localStore.has(i,n)){let c=await this.localStore.get(i,n);o=Tt(c).sequence+1n}let s=await of(e,t,o,n.lifetime??Xp,n),a=Gs(s);return await this.localStore.put(i,a,n),n.offline!==!0&&await Promise.all(this.routers.map(async c=>{await c.put(i,a,n)})),s}catch(o){throw n.onProgress?.(new Ce("ipns:publish:error",o)),o}}async resolve(e,t={}){let n=pi(e),o=await this.#t(n,t);return this.#e(o.value,t)}async resolveDNSLink(e,t={}){let n=await lf(e,this.dns,this.log,t);return this.#e(n,t)}republish(e={}){if(this.timeout!=null)throw new Error("Republish is already running");e.signal?.addEventListener("abort",()=>{clearTimeout(this.timeout)});async function t(){let n=Date.now();e.onProgress?.(new Ce("ipns:republish:start"));let i=Date.now()-n,s=Qs-i;s<0&&(s=e.interval??Qs),setTimeout(()=>{t().catch(a=>{mr.error("error republishing",a)})},s)}this.timeout=setTimeout(()=>{t().catch(n=>{mr.error("error republishing",n)})},e.interval??Qs)}async#e(e,t={}){let n=e.split("/");try{let o=n[1];if(o==="ipns"){let{cid:i}=await this.resolve(cn(n[2]),t),s=n.slice(3).join("/");return{cid:i,path:s}}else if(o==="ipfs"){let i=Re.parse(n[2]),s=n.slice(3).join("/");return{cid:i,path:s}}}catch(o){mr.error("error parsing ipfs path",o)}throw mr.error("invalid ipfs path %s",e),new Error("Invalid value")}async#t(e,t={}){let n=[this.localStore,...this.routers];t.offline===!0&&(n=[this.localStore]);let o=[],i=0;if(await Promise.all(n.map(async a=>{let c;try{c=await a.get(e,{...t,validate:!1})}catch(f){a===this.localStore&&f.code==="ERR_NOT_FOUND"?mr("did not have record locally"):mr.error("error finding IPNS record",f);return}try{await Ws(e,c),o.push(c)}catch(f){i++,mr.error("error finding IPNS record",f)}})),o.length===0)throw i>0?new $(`${i>1?`${i} records`:"Record"} found for routing key ${i>1?"were":"was"} invalid`,"ERR_RECORDS_FAILED_VALIDATION"):new $("Could not find record for routing key","ERR_NOT_FOUND");let s=o[gi(e,o)];return await this.localStore.put(e,s,t),Tt(s)}};function Qp(r,{routers:e=[]}={}){return new ea(r,e)}return Cf(eg);})();
8
+ `)}async function O0(r,e){let t=ke.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=J(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=zr(o),{iv:s,salt:a,iterations:c,keySize:f,cipherText:u}=F0(i),l=await ws(Lr,e,a,{c,dkLen:f}),d=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),v=Sn(await t.subtle.decrypt({name:"AES-CBC",iv:s},d,u)),{result:m}=zr(v);n=pu(m)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=J(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=zr(o);n=pu(i)}else throw new $("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Ss(n)}function F0(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new $("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new $("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],s=Sn(i.valueBlock.value[0].getValue()),a=As,c=Bs;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new $("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let f=e.valueBlock.value[1].valueBlock.value[1],u=f.valueBlock.value[0].toString();if(u!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(u!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(u!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new $("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Sn(f.valueBlock.value[1].getValue());return{cipherText:Sn(r.valueBlock.value[1].getValue()),salt:s,iterations:a,keySize:c,iv:l}}function pu(r){return Sn(r.valueBlock.value[2].getValue())}function Sn(r){return new Uint8Array(r,0,r.byteLength)}async function gu(r){let e=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"]),t=await wu(e);return{privateKey:t[0],publicKey:t[1]}}async function Rs(r){let t=[await ke.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await P0(r)],n=await wu({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function mu(r,e){let t=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"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function yu(r,e,t){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,e,t instanceof Uint8Array?t:t.subarray())}async function wu(r){if(r.privateKey==null||r.publicKey==null)throw new $("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([ke.get().subtle.exportKey("jwk",r.privateKey),ke.get().subtle.exportKey("jwk",r.publicKey)])}async function P0(r){return ke.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Jo(r){if(r.kty!=="RSA")throw new $("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new $("invalid key modulus","ERR_INVALID_KEY_MODULUS");return J(r.n,"base64url").length*8}var kn=8192,Rn=class{_key;constructor(e){this._key=e}verify(e,t){return yu(this._key,t,e)}marshal(){return jt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:ne.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}},Gr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return fr(16)}sign(e){return mu(this._key,e)}get public(){if(this._publicKey==null)throw new $("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Rn(this._publicKey)}marshal(){return jt.jwkToPkcs1(this._key)}get bytes(){return it.encode({Type:ne.RSA,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return oe(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return jt.exportToPem(this,e);if(t==="libp2p-key")return Pr(this.bytes,e);throw new $(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Ss(r){let e=jt.pkcs1ToJwk(r);if(Jo(e)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Rs(e);return new Gr(t.privateKey,t.publicKey)}function H0(r){let e=jt.pkixToJwk(r);if(Jo(e)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Rn(e)}async function K0(r){if(Jo(r)>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Rs(r);return new Gr(e.privateKey,e.publicKey)}async function $0(r){if(r>kn)throw new $("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await gu(r);return new Gr(e.privateKey,e.publicKey)}var _s={};he(_s,{Secp256k1PrivateKey:()=>Tn,Secp256k1PublicKey:()=>In,generateKeyPair:()=>rp,unmarshalSecp256k1PrivateKey:()=>ep,unmarshalSecp256k1PublicKey:()=>tp});var q0=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Zt=new Uint32Array(64),Is=class extends Dr{constructor(){super(64,32,8,!1),this.A=Yt[0]|0,this.B=Yt[1]|0,this.C=Yt[2]|0,this.D=Yt[3]|0,this.E=Yt[4]|0,this.F=Yt[5]|0,this.G=Yt[6]|0,this.H=Yt[7]|0}get(){let{A:e,B:t,C:n,D:o,E:i,F:s,G:a,H:c}=this;return[e,t,n,o,i,s,a,c]}set(e,t,n,o,i,s,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)Zt[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let d=Zt[l-15],v=Zt[l-2],m=Ge(d,7)^Ge(d,18)^d>>>3,h=Ge(v,17)^Ge(v,19)^v>>>10;Zt[l]=h+Zt[l-7]+m+Zt[l-16]|0}let{A:n,B:o,C:i,D:s,E:a,F:c,G:f,H:u}=this;for(let l=0;l<64;l++){let d=Ge(a,6)^Ge(a,11)^Ge(a,25),v=u+d+$a(a,c,f)+q0[l]+Zt[l]|0,h=(Ge(n,2)^Ge(n,13)^Ge(n,22))+qa(n,o,i)|0;u=f,f=c,c=a,a=s+v|0,s=i,i=o,o=n,n=v+h|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,i,s,a,c,f,u)}roundClean(){Zt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var bu=jn(()=>new Is);function z0(r){let e=ln(r);nt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:o}=e;if(t){if(!n.eql(o,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:G0,hexToBytes:j0}=Wn,dr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=dr;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:G0(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=dr,t=typeof r=="string"?j0(r):r;Vr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:o,l:i}=dr._parseInt(t.subarray(2)),{d:s,l:a}=dr._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s}},hexFromSig(r){let e=f=>Number.parseInt(f[0],16)&8?"00"+f:f,t=f=>{let u=f.toString(16);return u.length&1?`0${u}`:u},n=e(t(r.s)),o=e(t(r.r)),i=n.length/2,s=o.length/2,a=t(i),c=t(s);return`30${t(s+i+4)}02${c}${o}02${a}${n}`}},St=BigInt(0),$e=BigInt(1),Fw=BigInt(2),xu=BigInt(3),Pw=BigInt(4);function Y0(r){let e=z0(r),{Fp:t}=e,n=e.toBytes||((m,h,p)=>{let b=h.toAffine();return mt(Uint8Array.from([4]),t.toBytes(b.x),t.toBytes(b.y))}),o=e.fromBytes||(m=>{let h=m.subarray(1),p=t.fromBytes(h.subarray(0,t.BYTES)),b=t.fromBytes(h.subarray(t.BYTES,2*t.BYTES));return{x:p,y:b}});function i(m){let{a:h,b:p}=e,b=t.sqr(m),k=t.mul(b,m);return t.add(t.add(k,t.mul(m,h)),p)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function s(m){return typeof m=="bigint"&&St<m&&m<e.n}function a(m){if(!s(m))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(m){let{allowedPrivateKeyLengths:h,nByteLength:p,wrapPrivateKey:b,n:k}=e;if(h&&typeof m!="bigint"){if(Vt(m)&&(m=pt(m)),typeof m!="string"||!h.includes(m.length))throw new Error("Invalid key");m=m.padStart(p*2,"0")}let E;try{E=typeof m=="bigint"?m:gt(ae("private key",m,p))}catch{throw new Error(`private key must be ${p} bytes, hex or bigint, not ${typeof m}`)}return b&&(E=ee(E,k)),a(E),E}let f=new Map;function u(m){if(!(m instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(h,p,b){if(this.px=h,this.py=p,this.pz=b,h==null||!t.isValid(h))throw new Error("x required");if(p==null||!t.isValid(p))throw new Error("y required");if(b==null||!t.isValid(b))throw new Error("z required")}static fromAffine(h){let{x:p,y:b}=h||{};if(!h||!t.isValid(p)||!t.isValid(b))throw new Error("invalid affine point");if(h instanceof l)throw new Error("projective point not allowed");let k=E=>t.eql(E,t.ZERO);return k(p)&&k(b)?l.ZERO:new l(p,b,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){let p=t.invertBatch(h.map(b=>b.pz));return h.map((b,k)=>b.toAffine(p[k])).map(l.fromAffine)}static fromHex(h){let p=l.fromAffine(o(ae("pointHex",h)));return p.assertValidity(),p}static fromPrivateKey(h){return l.BASE.multiply(c(h))}_setWindowSize(h){this._WINDOW_SIZE=h,f.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:h,y:p}=this.toAffine();if(!t.isValid(h)||!t.isValid(p))throw new Error("bad point: x or y not FE");let b=t.sqr(p),k=i(h);if(!t.eql(b,k))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:h}=this.toAffine();if(t.isOdd)return!t.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){u(h);let{px:p,py:b,pz:k}=this,{px:E,py:D,pz:S}=h,I=t.eql(t.mul(p,S),t.mul(E,k)),N=t.eql(t.mul(b,S),t.mul(D,k));return I&&N}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:h,b:p}=e,b=t.mul(p,xu),{px:k,py:E,pz:D}=this,S=t.ZERO,I=t.ZERO,N=t.ZERO,y=t.mul(k,k),C=t.mul(E,E),V=t.mul(D,D),T=t.mul(k,E);return T=t.add(T,T),N=t.mul(k,D),N=t.add(N,N),S=t.mul(h,N),I=t.mul(b,V),I=t.add(S,I),S=t.sub(C,I),I=t.add(C,I),I=t.mul(S,I),S=t.mul(T,S),N=t.mul(b,N),V=t.mul(h,V),T=t.sub(y,V),T=t.mul(h,T),T=t.add(T,N),N=t.add(y,y),y=t.add(N,y),y=t.add(y,V),y=t.mul(y,T),I=t.add(I,y),V=t.mul(E,D),V=t.add(V,V),y=t.mul(V,T),S=t.sub(S,y),N=t.mul(V,C),N=t.add(N,N),N=t.add(N,N),new l(S,I,N)}add(h){u(h);let{px:p,py:b,pz:k}=this,{px:E,py:D,pz:S}=h,I=t.ZERO,N=t.ZERO,y=t.ZERO,C=e.a,V=t.mul(e.b,xu),T=t.mul(p,E),O=t.mul(b,D),M=t.mul(k,S),Z=t.add(p,b),x=t.add(E,D);Z=t.mul(Z,x),x=t.add(T,O),Z=t.sub(Z,x),x=t.add(p,k);let A=t.add(E,S);return x=t.mul(x,A),A=t.add(T,M),x=t.sub(x,A),A=t.add(b,k),I=t.add(D,S),A=t.mul(A,I),I=t.add(O,M),A=t.sub(A,I),y=t.mul(C,x),I=t.mul(V,M),y=t.add(I,y),I=t.sub(O,y),y=t.add(O,y),N=t.mul(I,y),O=t.add(T,T),O=t.add(O,T),M=t.mul(C,M),x=t.mul(V,x),O=t.add(O,M),M=t.sub(T,M),M=t.mul(C,M),x=t.add(x,M),T=t.mul(O,x),N=t.add(N,T),T=t.mul(A,x),I=t.mul(Z,I),I=t.sub(I,T),T=t.mul(Z,O),y=t.mul(A,y),y=t.add(y,T),new l(I,N,y)}subtract(h){return this.add(h.negate())}is0(){return this.equals(l.ZERO)}wNAF(h){return v.wNAFCached(this,f,h,p=>{let b=t.invertBatch(p.map(k=>k.pz));return p.map((k,E)=>k.toAffine(b[E])).map(l.fromAffine)})}multiplyUnsafe(h){let p=l.ZERO;if(h===St)return p;if(a(h),h===$e)return this;let{endo:b}=e;if(!b)return v.unsafeLadder(this,h);let{k1neg:k,k1:E,k2neg:D,k2:S}=b.splitScalar(h),I=p,N=p,y=this;for(;E>St||S>St;)E&$e&&(I=I.add(y)),S&$e&&(N=N.add(y)),y=y.double(),E>>=$e,S>>=$e;return k&&(I=I.negate()),D&&(N=N.negate()),N=new l(t.mul(N.px,b.beta),N.py,N.pz),I.add(N)}multiply(h){a(h);let p=h,b,k,{endo:E}=e;if(E){let{k1neg:D,k1:S,k2neg:I,k2:N}=E.splitScalar(p),{p:y,f:C}=this.wNAF(S),{p:V,f:T}=this.wNAF(N);y=v.constTimeNegate(D,y),V=v.constTimeNegate(I,V),V=new l(t.mul(V.px,E.beta),V.py,V.pz),b=y.add(V),k=C.add(T)}else{let{p:D,f:S}=this.wNAF(p);b=D,k=S}return l.normalizeZ([b,k])[0]}multiplyAndAddUnsafe(h,p,b){let k=l.BASE,E=(S,I)=>I===St||I===$e||!S.equals(k)?S.multiplyUnsafe(I):S.multiply(I),D=E(this,p).add(E(h,b));return D.is0()?void 0:D}toAffine(h){let{px:p,py:b,pz:k}=this,E=this.is0();h==null&&(h=E?t.ONE:t.inv(k));let D=t.mul(p,h),S=t.mul(b,h),I=t.mul(k,h);if(E)return{x:t.ZERO,y:t.ZERO};if(!t.eql(I,t.ONE))throw new Error("invZ was invalid");return{x:D,y:S}}isTorsionFree(){let{h,isTorsionFree:p}=e;if(h===$e)return!0;if(p)return p(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h,clearCofactor:p}=e;return h===$e?this:p?p(l,this):this.multiplyUnsafe(e.h)}toRawBytes(h=!0){return this.assertValidity(),n(l,this,h)}toHex(h=!0){return pt(this.toRawBytes(h))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let d=e.nBitLength,v=Qn(l,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function Z0(r){let e=ln(r);return nt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Eu(r){let e=Z0(r),{Fp:t,n}=e,o=t.BYTES+1,i=2*t.BYTES+1;function s(x){return St<x&&x<t.ORDER}function a(x){return ee(x,n)}function c(x){return Jn(x,n)}let{ProjectivePoint:f,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:d}=Y0({...e,toBytes(x,A,P){let B=A.toAffine(),w=t.toBytes(B.x),L=mt;return P?L(Uint8Array.from([A.hasEvenY()?2:3]),w):L(Uint8Array.from([4]),w,t.toBytes(B.y))},fromBytes(x){let A=x.length,P=x[0],B=x.subarray(1);if(A===o&&(P===2||P===3)){let w=gt(B);if(!s(w))throw new Error("Point is not on curve");let L=l(w),F;try{F=t.sqrt(L)}catch(G){let Q=G instanceof Error?": "+G.message:"";throw new Error("Point is not on curve"+Q)}let H=(F&$e)===$e;return(P&1)===1!==H&&(F=t.neg(F)),{x:w,y:F}}else if(A===i&&P===4){let w=t.fromBytes(B.subarray(0,t.BYTES)),L=t.fromBytes(B.subarray(t.BYTES,2*t.BYTES));return{x:w,y:L}}else throw new Error(`Point of length ${A} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}}),v=x=>pt(Ft(x,e.nByteLength));function m(x){let A=n>>$e;return x>A}function h(x){return m(x)?a(-x):x}let p=(x,A,P)=>gt(x.slice(A,P));class b{constructor(A,P,B){this.r=A,this.s=P,this.recovery=B,this.assertValidity()}static fromCompact(A){let P=e.nByteLength;return A=ae("compactSignature",A,P*2),new b(p(A,0,P),p(A,P,2*P))}static fromDER(A){let{r:P,s:B}=dr.toSig(ae("DER",A));return new b(P,B)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(A){return new b(this.r,this.s,A)}recoverPublicKey(A){let{r:P,s:B,recovery:w}=this,L=N(ae("msgHash",A));if(w==null||![0,1,2,3].includes(w))throw new Error("recovery id invalid");let F=w===2||w===3?P+e.n:P;if(F>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=w&1?"03":"02",z=f.fromHex(H+v(F)),G=c(F),Q=a(-L*G),Y=a(B*G),W=f.BASE.multiplyAndAddUnsafe(z,Q,Y);if(!W)throw new Error("point at infinify");return W.assertValidity(),W}hasHighS(){return m(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return ir(this.toDERHex())}toDERHex(){return dr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ir(this.toCompactHex())}toCompactHex(){return v(this.r)+v(this.s)}}let k={isValidPrivateKey(x){try{return u(x),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let x=Qi(e.n);return tc(e.randomBytes(x),e.n)},precompute(x=8,A=f.BASE){return A._setWindowSize(x),A.multiply(BigInt(3)),A}};function E(x,A=!0){return f.fromPrivateKey(x).toRawBytes(A)}function D(x){let A=Vt(x),P=typeof x=="string",B=(A||P)&&x.length;return A?B===o||B===i:P?B===2*o||B===2*i:x instanceof f}function S(x,A,P=!0){if(D(x))throw new Error("first arg must be private key");if(!D(A))throw new Error("second arg must be public key");return f.fromHex(A).multiply(u(x)).toRawBytes(P)}let I=e.bits2int||function(x){let A=gt(x),P=x.length*8-e.nBitLength;return P>0?A>>BigInt(P):A},N=e.bits2int_modN||function(x){return a(I(x))},y=un(e.nBitLength);function C(x){if(typeof x!="bigint")throw new Error("bigint expected");if(!(St<=x&&x<y))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Ft(x,e.nByteLength)}function V(x,A,P=T){if(["recovered","canonical"].some(ie=>ie in P))throw new Error("sign() legacy options not supported");let{hash:B,randomBytes:w}=e,{lowS:L,prehash:F,extraEntropy:H}=P;L==null&&(L=!0),x=ae("msgHash",x),F&&(x=ae("prehashed msgHash",B(x)));let z=N(x),G=u(A),Q=[C(G),C(z)];if(H!=null&&H!==!1){let ie=H===!0?w(t.BYTES):H;Q.push(ae("extraEntropy",ie))}let Y=mt(...Q),W=z;function ce(ie){let ge=I(ie);if(!d(ge))return;let me=c(ge),le=f.BASE.multiply(ge).toAffine(),Be=a(le.x);if(Be===St)return;let lt=a(me*a(W+Be*G));if(lt===St)return;let Qt=(le.x===Be?0:2)|Number(le.y&$e),tn=lt;return L&&m(lt)&&(tn=h(lt),Qt^=1),new b(Be,tn,Qt)}return{seed:Y,k2sig:ce}}let T={lowS:e.lowS,prehash:!1},O={lowS:e.lowS,prehash:!1};function M(x,A,P=T){let{seed:B,k2sig:w}=V(x,A,P),L=e;return Zi(L.hash.outputLen,L.nByteLength,L.hmac)(B,w)}f.BASE._setWindowSize(8);function Z(x,A,P,B=O){let w=x;if(A=ae("msgHash",A),P=ae("publicKey",P),"strict"in B)throw new Error("options.strict was renamed to lowS");let{lowS:L,prehash:F}=B,H,z;try{if(typeof w=="string"||Vt(w))try{H=b.fromDER(w)}catch(le){if(!(le instanceof dr.Err))throw le;H=b.fromCompact(w)}else if(typeof w=="object"&&typeof w.r=="bigint"&&typeof w.s=="bigint"){let{r:le,s:Be}=w;H=new b(le,Be)}else throw new Error("PARSE");z=f.fromHex(P)}catch(le){if(le.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(L&&H.hasHighS())return!1;F&&(A=e.hash(A));let{r:G,s:Q}=H,Y=N(A),W=c(Q),ce=a(Y*W),ie=a(G*W),ge=f.BASE.multiplyAndAddUnsafe(z,ce,ie)?.toAffine();return ge?a(ge.x)===G:!1}return{CURVE:e,getPublicKey:E,getSharedSecret:S,sign:M,verify:Z,ProjectivePoint:f,Signature:b,utils:k}}function W0(r){return{hash:r,hmac:(e,...t)=>mn(r,e,Gn(...t)),randomBytes:Ur}}function vu(r,e){let t=n=>Eu({...r,...W0(n)});return Object.freeze({...t(e),create:t})}var Su=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Bu=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),J0=BigInt(1),Ts=BigInt(2),Au=(r,e)=>(r+e/Ts)/e;function X0(r){let e=Su,t=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%e,u=f*f*r%e,l=re(u,t,e)*u%e,d=re(l,t,e)*u%e,v=re(d,Ts,e)*f%e,m=re(v,o,e)*v%e,h=re(m,i,e)*m%e,p=re(h,a,e)*h%e,b=re(p,c,e)*p%e,k=re(b,a,e)*h%e,E=re(k,t,e)*u%e,D=re(E,s,e)*m%e,S=re(D,n,e)*f%e,I=re(S,Ts,e);if(!Cs.eql(Cs.sqr(I),r))throw new Error("Cannot find square root");return I}var Cs=Xn(Su,void 0,void 0,{sqrt:X0}),Je=vu({a:BigInt(0),b:BigInt(7),Fp:Cs,n:Bu,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Bu,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-J0*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,s=BigInt("0x100000000000000000000000000000000"),a=Au(i*r,e),c=Au(-n*r,e),f=ee(r-a*t-c*o,e),u=ee(-a*n-c*i,e),l=f>s,d=u>s;if(l&&(f=e-f),d&&(u=e-u),f>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:f,k2neg:d,k2:u}}}},bu),Yw=BigInt(0);var Zw=Je.ProjectivePoint;function Ru(){return Je.utils.randomPrivateKey()}function ku(r,e){let t=we.digest(e instanceof Uint8Array?e:e.subarray());if(He(t))return t.then(({digest:n})=>Je.sign(n,r).toDERRawBytes()).catch(n=>{throw new $(String(n),"ERR_INVALID_INPUT")});try{return Je.sign(t.digest,r).toDERRawBytes()}catch(n){throw new $(String(n),"ERR_INVALID_INPUT")}}function Iu(r,e,t){let n=we.digest(t instanceof Uint8Array?t:t.subarray());if(He(n))return n.then(({digest:o})=>Je.verify(e,o,r)).catch(o=>{throw new $(String(o),"ERR_INVALID_INPUT")});try{return Je.verify(e,n.digest,r)}catch(o){throw new $(String(o),"ERR_INVALID_INPUT")}}function Tu(r){return Je.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Cu(r){try{Je.getPublicKey(r,!0)}catch(e){throw new $(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Ns(r){try{Je.ProjectivePoint.fromHex(r)}catch(e){throw new $(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Nu(r){try{return Je.getPublicKey(r,!0)}catch(e){throw new $(String(e),"ERR_INVALID_PRIVATE_KEY")}}var In=class{_key;constructor(e){Ns(e),this._key=e}verify(e,t){return Iu(this._key,t,e)}marshal(){return Tu(this._key)}get bytes(){return ot.encode({Type:ne.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}async hash(){let e=we.digest(this.bytes),t;return He(e)?{bytes:t}=await e:t=e.bytes,t}},Tn=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??Nu(e),Cu(this._key),Ns(this._publicKey)}sign(e){return ku(this._key,e)}get public(){return new In(this._publicKey)}marshal(){return this._key}get bytes(){return it.encode({Type:ne.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return be(this.bytes,e.bytes)}hash(){let e=we.digest(this.bytes);return He(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return oe(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Pr(this.bytes,e);throw new $(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function ep(r){return new Tn(r)}function tp(r){return new In(r)}async function rp(){let r=Ru();return new Tn(r)}var pr={rsa:ks,ed25519:ys,secp256k1:_s};function _u(r){let e=Object.keys(pr).join(" / ");return new $(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Us(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ne.RSA:return pr.rsa.unmarshalRsaPublicKey(t);case ne.Ed25519:return pr.ed25519.unmarshalEd25519PublicKey(t);case ne.Secp256k1:return pr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw _u(e.Type??"unknown")}}async function Uu(r){let e=it.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ne.RSA:return pr.rsa.unmarshalRsaPrivateKey(t);case ne.Ed25519:return pr.ed25519.unmarshalEd25519PrivateKey(t);case ne.Secp256k1:return pr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw _u(e.Type??"RSA")}}var Ys=ft(Xo(),1);var Rt="/",Vu=new TextEncoder().encode(Rt),Qo=Vu[0],jr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=J(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Qo)throw new Error("Invalid key")}toString(e="utf8"){return oe(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Rt))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Vu),this._buf[0]!==Qo){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Qo,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Qo;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Rt).slice(1)}type(){return op(this.baseNamespace())}name(){return ip(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Rt)||(e+=Rt),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Rt):new r(e.slice(0,-1).join(Rt))}child(e){return this.toString()===Rt?e:e.toString()===Rt?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...sp(e.map(t=>t.namespaces()))])}};function op(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ip(r){let e=r.split(":");return e[e.length-1]}function sp(r){return[].concat(...r)}var rf=ft(ei(),1);var Ou="ERR_IPNS_EXPIRED_RECORD",Cn="ERR_UNRECOGNIZED_VALIDITY",Fu="ERR_SIGNATURE_CREATION",kt="ERR_SIGNATURE_VERIFICATION";var Ls="ERR_UNDEFINED_PARAMETER",Pu="ERR_INVALID_RECORD_DATA",Mu="ERR_INVALID_VALUE",Hu="ERR_INVALID_EMBEDDED_KEY",Ku="ERR_MISSING_PRIVATE_KEY",$u="ERR_RECORD_TOO_LARGE";var Ee;(function(r){let e;(function(o){o.EOL="EOL"})(e=r.ValidityType||(r.ValidityType={}));let t;(function(o){o[o.EOL=0]="EOL"})(t||(t={})),function(o){o.codec=()=>pn(t)}(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=$t((o,i,s={})=>{s.lengthDelimited!==!1&&i.fork(),o.value!=null&&(i.uint32(10),i.bytes(o.value)),o.signatureV1!=null&&(i.uint32(18),i.bytes(o.signatureV1)),o.validityType!=null&&(i.uint32(24),r.ValidityType.codec().encode(o.validityType,i)),o.validity!=null&&(i.uint32(34),i.bytes(o.validity)),o.sequence!=null&&(i.uint32(40),i.uint64(o.sequence)),o.ttl!=null&&(i.uint32(48),i.uint64(o.ttl)),o.pubKey!=null&&(i.uint32(58),i.bytes(o.pubKey)),o.signatureV2!=null&&(i.uint32(66),i.bytes(o.signatureV2)),o.data!=null&&(i.uint32(74),i.bytes(o.data)),s.lengthDelimited!==!1&&i.ldelim()},(o,i)=>{let s={},a=i==null?o.len:o.pos+i;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:s.value=o.bytes();break;case 2:s.signatureV1=o.bytes();break;case 3:s.validityType=r.ValidityType.codec().decode(o);break;case 4:s.validity=o.bytes();break;case 5:s.sequence=o.uint64();break;case 6:s.ttl=o.uint64();break;case 7:s.pubKey=o.bytes();break;case 8:s.signatureV2=o.bytes();break;case 9:s.data=o.bytes();break;default:o.skipType(c&7);break}}return s})),n),r.encode=o=>Kt(o,r.codec()),r.decode=o=>Ht(o,r.codec())})(Ee||(Ee={}));var ap=["string","number","bigint","symbol"],cp=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function qu(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(ap.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(up(r))return"Buffer";let t=lp(r);return t||"Object"}function up(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function lp(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(cp.includes(e))return e}var g=class{constructor(e,t,n){this.major=e,this.majorEncoded=e<<5,this.name=t,this.terminal=n}toString(){return`Type[${this.major}].${this.name}`}compare(e){return this.major<e.major?-1:this.major>e.major?1:0}};g.uint=new g(0,"uint",!0);g.negint=new g(1,"negint",!0);g.bytes=new g(2,"bytes",!0);g.string=new g(3,"string",!0);g.array=new g(4,"array",!1);g.map=new g(5,"map",!1);g.tag=new g(6,"tag",!1);g.float=new g(7,"float",!0);g.false=new g(7,"false",!0);g.true=new g(7,"true",!0);g.null=new g(7,"null",!0);g.undefined=new g(7,"undefined",!0);g.break=new g(7,"break",!0);var U=class{constructor(e,t,n){this.type=e,this.value=t,this.encodedLength=n,this.encodedBytes=void 0,this.byteValue=void 0}toString(){return`Token[${this.type}].${this.value}`}};var Yr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",fp=new TextDecoder,hp=new TextEncoder;function ti(r){return Yr&&globalThis.Buffer.isBuffer(r)}function Os(r){return r instanceof Uint8Array?ti(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Yu=Yr?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Gu(r,e,t):(r,e,t)=>t-e>64?fp.decode(r.subarray(e,t)):Gu(r,e,t),Zu=Yr?r=>r.length>64?globalThis.Buffer.from(r):zu(r):r=>r.length>64?hp.encode(r):zu(r),ut=r=>Uint8Array.from(r),Zr=Yr?(r,e,t)=>ti(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Wu=Yr?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Os(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},Ju=Yr?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Xu(r,e){if(ti(r)&&ti(e))return r.compare(e);for(let t=0;t<r.length;t++)if(r[t]!==e[t])return r[t]<e[t]?-1:1;return 0}function zu(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function Gu(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let a,c,f,u;switch(s){case 1:o<128&&(i=o);break;case 2:a=r[e+1],(a&192)===128&&(u=(o&31)<<6|a&63,u>127&&(i=u));break;case 3:a=r[e+1],c=r[e+2],(a&192)===128&&(c&192)===128&&(u=(o&15)<<12|(a&63)<<6|c&63,u>2047&&(u<55296||u>57343)&&(i=u));break;case 4:a=r[e+1],c=r[e+2],f=r[e+3],(a&192)===128&&(c&192)===128&&(f&192)===128&&(u=(o&15)<<18|(a&63)<<12|(c&63)<<6|f&63,u>65535&&u<1114112&&(i=u))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return dp(n)}var ju=4096;function dp(r){let e=r.length;if(e<=ju)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=ju));return t}var pp=256,Nn=class{constructor(e=pp){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Ju(this.chunkSize),this.chunks.push(t),this.maxCursor+=t.length,this._initReuseChunk===null&&(this._initReuseChunk=t),t.set(e,0)):(this.chunks.push(e),this.maxCursor+=e.length)}this.cursor+=e.length}toBytes(e=!1){let t;if(this.chunks.length===1){let n=this.chunks[0];e&&this.cursor>n.length/2?(t=this.cursor===n.length?n:n.subarray(0,this.cursor),this._initReuseChunk=null,this.chunks=[]):t=Zr(n,0,this.cursor)}else t=Wu(this.chunks,this.cursor);return e&&this.reset(),t}};var K="CBOR decode error:",Fs="CBOR encode error:",_n=[];_n[23]=1;_n[24]=2;_n[25]=3;_n[26]=5;_n[27]=9;function It(r,e,t){if(r.length-e<t)throw new Error(`${K} not enough data for type`)}var pe=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Oe(r,e,t){It(r,e,1);let n=r[e];if(t.strict===!0&&n<pe[0])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Fe(r,e,t){It(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<pe[1])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Pe(r,e,t){It(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<pe[2])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);return n}function Me(r,e,t){It(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<pe[3])throw new Error(`${K} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${K} integers outside of the safe integer range are not supported`)}function Qu(r,e,t,n){return new U(g.uint,Oe(r,e+1,n),2)}function el(r,e,t,n){return new U(g.uint,Fe(r,e+1,n),3)}function tl(r,e,t,n){return new U(g.uint,Pe(r,e+1,n),5)}function rl(r,e,t,n){return new U(g.uint,Me(r,e+1,n),9)}function qe(r,e){return ve(r,0,e.value)}function ve(r,e,t){if(t<pe[0]){let n=Number(t);r.push([e|n])}else if(t<pe[1]){let n=Number(t);r.push([e|24,n])}else if(t<pe[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<pe[3]){let n=Number(t);r.push([e|26,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}else{let n=BigInt(t);if(n<pe[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,r.push(o)}else throw new Error(`${K} encountered BigInt larger than allowable range`)}}qe.encodedSize=function(e){return ve.encodedSize(e.value)};ve.encodedSize=function(e){return e<pe[0]?1:e<pe[1]?2:e<pe[2]?3:e<pe[3]?5:9};qe.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function nl(r,e,t,n){return new U(g.negint,-1-Oe(r,e+1,n),2)}function ol(r,e,t,n){return new U(g.negint,-1-Fe(r,e+1,n),3)}function il(r,e,t,n){return new U(g.negint,-1-Pe(r,e+1,n),5)}var Ps=BigInt(-1),sl=BigInt(1);function al(r,e,t,n){let o=Me(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new U(g.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${K} integers outside of the safe integer range are not supported`);return new U(g.negint,Ps-BigInt(o),9)}function ri(r,e){let t=e.value,n=typeof t=="bigint"?t*Ps-sl:t*-1-1;ve(r,e.type.majorEncoded,n)}ri.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Ps-sl:t*-1-1;return n<pe[0]?1:n<pe[1]?2:n<pe[2]?3:n<pe[3]?5:9};ri.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function Un(r,e,t,n){It(r,e,t+n);let o=Zr(r,e+t,e+t+n);return new U(g.bytes,o,t+n)}function cl(r,e,t,n){return Un(r,e,1,t)}function ul(r,e,t,n){return Un(r,e,2,Oe(r,e+1,n))}function ll(r,e,t,n){return Un(r,e,3,Fe(r,e+1,n))}function fl(r,e,t,n){return Un(r,e,5,Pe(r,e+1,n))}function hl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer bytes lengths not supported`);return Un(r,e,9,o)}function ni(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===g.string?Zu(r.value):r.value),r.encodedBytes}function Wr(r,e){let t=ni(e);ve(r,e.type.majorEncoded,t.length),r.push(t)}Wr.encodedSize=function(e){let t=ni(e);return ve.encodedSize(t.length)+t.length};Wr.compareTokens=function(e,t){return mp(ni(e),ni(t))};function mp(r,e){return r.length<e.length?-1:r.length>e.length?1:Xu(r,e)}function Dn(r,e,t,n,o){let i=t+n;It(r,e,i);let s=new U(g.string,Yu(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Zr(r,e+t,e+i)),s}function dl(r,e,t,n){return Dn(r,e,1,t,n)}function pl(r,e,t,n){return Dn(r,e,2,Oe(r,e+1,n),n)}function gl(r,e,t,n){return Dn(r,e,3,Fe(r,e+1,n),n)}function ml(r,e,t,n){return Dn(r,e,5,Pe(r,e+1,n),n)}function yl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer string lengths not supported`);return Dn(r,e,9,o,n)}var wl=Wr;function Jr(r,e,t,n){return new U(g.array,n,t)}function bl(r,e,t,n){return Jr(r,e,1,t)}function xl(r,e,t,n){return Jr(r,e,2,Oe(r,e+1,n))}function El(r,e,t,n){return Jr(r,e,3,Fe(r,e+1,n))}function vl(r,e,t,n){return Jr(r,e,5,Pe(r,e+1,n))}function Bl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer array lengths not supported`);return Jr(r,e,9,o)}function Al(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return Jr(r,e,1,1/0)}function oi(r,e){ve(r,g.array.majorEncoded,e.value)}oi.compareTokens=qe.compareTokens;oi.encodedSize=function(e){return ve.encodedSize(e.value)};function Xr(r,e,t,n){return new U(g.map,n,t)}function Sl(r,e,t,n){return Xr(r,e,1,t)}function Rl(r,e,t,n){return Xr(r,e,2,Oe(r,e+1,n))}function kl(r,e,t,n){return Xr(r,e,3,Fe(r,e+1,n))}function Il(r,e,t,n){return Xr(r,e,5,Pe(r,e+1,n))}function Tl(r,e,t,n){let o=Me(r,e+1,n);if(typeof o=="bigint")throw new Error(`${K} 64-bit integer map lengths not supported`);return Xr(r,e,9,o)}function Cl(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return Xr(r,e,1,1/0)}function ii(r,e){ve(r,g.map.majorEncoded,e.value)}ii.compareTokens=qe.compareTokens;ii.encodedSize=function(e){return ve.encodedSize(e.value)};function Nl(r,e,t,n){return new U(g.tag,t,1)}function _l(r,e,t,n){return new U(g.tag,Oe(r,e+1,n),2)}function Ul(r,e,t,n){return new U(g.tag,Fe(r,e+1,n),3)}function Dl(r,e,t,n){return new U(g.tag,Pe(r,e+1,n),5)}function Ll(r,e,t,n){return new U(g.tag,Me(r,e+1,n),9)}function si(r,e){ve(r,g.tag.majorEncoded,e.value)}si.compareTokens=qe.compareTokens;si.encodedSize=function(e){return ve.encodedSize(e.value)};var vp=20,Bp=21,Ap=22,Sp=23;function Vl(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${K} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new U(g.null,null,1):new U(g.undefined,void 0,1)}function Ol(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${K} indefinite length items not allowed`);return new U(g.break,void 0,1)}function Ms(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${K} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${K} Infinity values are not supported`)}return new U(g.float,r,e)}function Fl(r,e,t,n){return Ms(Hs(r,e+1),3,n)}function Pl(r,e,t,n){return Ms(Ks(r,e+1),5,n)}function Ml(r,e,t,n){return Ms(ql(r,e+1),9,n)}function ai(r,e,t){let n=e.value;if(n===!1)r.push([g.float.majorEncoded|vp]);else if(n===!0)r.push([g.float.majorEncoded|Bp]);else if(n===null)r.push([g.float.majorEncoded|Ap]);else if(n===void 0)r.push([g.float.majorEncoded|Sp]);else{let o,i=!1;(!t||t.float64!==!0)&&(Kl(n),o=Hs(Xe,1),n===o||Number.isNaN(n)?(Xe[0]=249,r.push(Xe.slice(0,3)),i=!0):($l(n),o=Ks(Xe,1),n===o&&(Xe[0]=250,r.push(Xe.slice(0,5)),i=!0))),i||(Rp(n),o=ql(Xe,1),Xe[0]=251,r.push(Xe.slice(0,9)))}}ai.encodedSize=function(e,t){let n=e.value;if(n===!1||n===!0||n===null||n===void 0)return 1;if(!t||t.float64!==!0){Kl(n);let o=Hs(Xe,1);if(n===o||Number.isNaN(n))return 3;if($l(n),o=Ks(Xe,1),n===o)return 5}return 9};var Hl=new ArrayBuffer(9),ze=new DataView(Hl,1),Xe=new Uint8Array(Hl,0);function Kl(r){if(r===1/0)ze.setUint16(0,31744,!1);else if(r===-1/0)ze.setUint16(0,64512,!1);else if(Number.isNaN(r))ze.setUint16(0,32256,!1);else{ze.setFloat32(0,r);let e=ze.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ze.setUint16(0,31744,!1);else if(t===0)ze.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?ze.setUint16(0,0):o<-14?ze.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):ze.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Hs(r,e){if(r.length-e<2)throw new Error(`${K} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function $l(r){ze.setFloat32(0,r,!1)}function Ks(r,e){if(r.length-e<4)throw new Error(`${K} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Rp(r){ze.setFloat64(0,r,!1)}function ql(r,e){if(r.length-e<8)throw new Error(`${K} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}ai.compareTokens=qe.compareTokens;function X(r,e,t){throw new Error(`${K} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function ci(r){return()=>{throw new Error(`${K} ${r}`)}}var R=[];for(let r=0;r<=23;r++)R[r]=X;R[24]=Qu;R[25]=el;R[26]=tl;R[27]=rl;R[28]=X;R[29]=X;R[30]=X;R[31]=X;for(let r=32;r<=55;r++)R[r]=X;R[56]=nl;R[57]=ol;R[58]=il;R[59]=al;R[60]=X;R[61]=X;R[62]=X;R[63]=X;for(let r=64;r<=87;r++)R[r]=cl;R[88]=ul;R[89]=ll;R[90]=fl;R[91]=hl;R[92]=X;R[93]=X;R[94]=X;R[95]=ci("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)R[r]=dl;R[120]=pl;R[121]=gl;R[122]=ml;R[123]=yl;R[124]=X;R[125]=X;R[126]=X;R[127]=ci("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)R[r]=bl;R[152]=xl;R[153]=El;R[154]=vl;R[155]=Bl;R[156]=X;R[157]=X;R[158]=X;R[159]=Al;for(let r=160;r<=183;r++)R[r]=Sl;R[184]=Rl;R[185]=kl;R[186]=Il;R[187]=Tl;R[188]=X;R[189]=X;R[190]=X;R[191]=Cl;for(let r=192;r<=215;r++)R[r]=Nl;R[216]=_l;R[217]=Ul;R[218]=Dl;R[219]=Ll;R[220]=X;R[221]=X;R[222]=X;R[223]=X;for(let r=224;r<=243;r++)R[r]=ci("simple values are not supported");R[244]=X;R[245]=X;R[246]=X;R[247]=Vl;R[248]=ci("simple values are not supported");R[249]=Fl;R[250]=Pl;R[251]=Ml;R[252]=X;R[253]=X;R[254]=X;R[255]=Ol;var Qe=[];for(let r=0;r<24;r++)Qe[r]=new U(g.uint,r,1);for(let r=-1;r>=-24;r--)Qe[31-r]=new U(g.negint,r,1);Qe[64]=new U(g.bytes,new Uint8Array(0),1);Qe[96]=new U(g.string,"",1);Qe[128]=new U(g.array,0,1);Qe[160]=new U(g.map,0,1);Qe[244]=new U(g.false,!1,1);Qe[245]=new U(g.true,!0,1);Qe[246]=new U(g.null,null,1);function zl(r){switch(r.type){case g.false:return ut([244]);case g.true:return ut([245]);case g.null:return ut([246]);case g.bytes:return r.value.length?void 0:ut([64]);case g.string:return r.value===""?ut([96]):void 0;case g.array:return r.value===0?ut([128]):void 0;case g.map:return r.value===0?ut([160]):void 0;case g.uint:return r.value<24?ut([Number(r.value)]):void 0;case g.negint:if(r.value>=-24)return ut([31-Number(r.value)])}}var Ip={float64:!1,mapSorter:Np,quickEncodeToken:zl};function Tp(){let r=[];return r[g.uint.major]=qe,r[g.negint.major]=ri,r[g.bytes.major]=Wr,r[g.string.major]=wl,r[g.array.major]=oi,r[g.map.major]=ii,r[g.tag.major]=si,r[g.float.major]=ai,r}var Gl=Tp(),$s=new Nn,li=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${Fs} object contains circular references`);return new r(t,e)}},Wt={null:new U(g.null,null),undefined:new U(g.undefined,void 0),true:new U(g.true,!0),false:new U(g.false,!1),emptyArray:new U(g.array,0),emptyMap:new U(g.map,0)},Jt={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new U(g.float,r):r>=0?new U(g.uint,r):new U(g.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new U(g.uint,r):new U(g.negint,r)},Uint8Array(r,e,t,n){return new U(g.bytes,r)},string(r,e,t,n){return new U(g.string,r)},boolean(r,e,t,n){return r?Wt.true:Wt.false},null(r,e,t,n){return Wt.null},undefined(r,e,t,n){return Wt.undefined},ArrayBuffer(r,e,t,n){return new U(g.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new U(g.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[Wt.emptyArray,new U(g.break)]:Wt.emptyArray;n=li.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=ui(s,t,n);return t.addBreakTokens?[new U(g.array,r.length),o,new U(g.break)]:[new U(g.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[Wt.emptyMap,new U(g.break)]:Wt.emptyMap;n=li.createCheck(n,r);let a=[],c=0;for(let f of i)a[c++]=[ui(f,t,n),ui(o?r.get(f):r[f],t,n)];return Cp(a,t),t.addBreakTokens?[new U(g.map,s),a,new U(g.break)]:[new U(g.map,s),a]}};Jt.Map=Jt.Object;Jt.Buffer=Jt.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Jt[`${r}Array`]=Jt.DataView;function ui(r,e={},t){let n=qu(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||Jt[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=Jt[n];if(!i)throw new Error(`${Fs} unsupported type: ${n}`);return i(r,n,e,t)}function Cp(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Np(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=Gl[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function jl(r,e,t,n){if(Array.isArray(e))for(let o of e)jl(r,o,t,n);else t[e.type.major](r,e,n)}function _p(r,e,t){let n=ui(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),a=new Nn(s);if(i(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Os(a.chunks[0])}}return $s.reset(),jl($s,n,e,t),$s.toBytes(!0)}function qs(r,e){return e=Object.assign({},Ip,e),_p(r,Gl,e)}var Up={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},fi=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=Qe[e];if(t===void 0){let n=R[e];if(!n)throw new Error(`${K} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},Ln=Symbol.for("DONE"),hi=Symbol.for("BREAK");function Dp(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=Qr(e,t);if(i===hi){if(r.value===1/0)break;throw new Error(`${K} got unexpected break to lengthed array`)}if(i===Ln)throw new Error(`${K} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Lp(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=Qr(e,t);if(a===hi){if(r.value===1/0)break;throw new Error(`${K} got unexpected break to lengthed map`)}if(a===Ln)throw new Error(`${K} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${K} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(a)||!n&&a in o))throw new Error(`${K} found repeat map key "${a}"`);let c=Qr(e,t);if(c===Ln)throw new Error(`${K} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(a,c):o[a]=c}return n?i:o}function Qr(r,e){if(r.done())return Ln;let t=r.next();if(t.type===g.break)return hi;if(t.type.terminal)return t.value;if(t.type===g.array)return Dp(t,r,e);if(t.type===g.map)return Lp(t,r,e);if(t.type===g.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Qr(r,e);return e.tags[t.value](n)}throw new Error(`${K} tag not supported (${t.value})`)}throw new Error("unsupported")}function Yl(r,e){if(!(r instanceof Uint8Array))throw new Error(`${K} data to decode must be a Uint8Array`);e=Object.assign({},Up,e);let t=e.tokenizer||new fi(r,e),n=Qr(t,e);if(n===Ln)throw new Error(`${K} did not find any content to decode`);if(n===hi)throw new Error(`${K} got unexpected break`);return[n,r.subarray(t.pos())]}function zs(r,e){let[t,n]=Yl(r,e);if(n.length>0)throw new Error(`${K} too many terminals, data makes no sense`);return t}var _e=ft(Xo(),1);var Zl=_t("ipns:utils"),Wl=J("/ipns/"),Op=114,Jl=async(r,e)=>{if(e==null||r==null){let n=new Error("one or more of the provided parameters are not defined");throw Zl.error(n),(0,_e.default)(n,Ls)}let t;if(e.pubKey!=null){try{t=Us(e.pubKey)}catch(o){throw Zl.error(o),o}if(!(await Oa(e.pubKey)).equals(r))throw(0,_e.default)(new Error("Embedded public key did not match PeerID"),Hu)}else r.publicKey!=null&&(t=Us(r.publicKey));if(t!=null)return t;throw(0,_e.default)(new Error("no public key is available"),Ls)},Xl=(r,e,t)=>{let n=J(e);return or([r,t,n])},di=r=>{let e=J("ipns-signature:");return or([e,r])},Gs=r=>"signatureV1"in r?Ee.encode({value:J(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:J(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):Ee.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data});function Tt(r){let e=Ee.decode(r);if(e.sequence!=null&&(e.sequence=BigInt(e.sequence)),e.ttl!=null&&(e.ttl=BigInt(e.ttl)),e.signatureV2==null||e.data==null)throw(0,_e.default)(new Error("missing data or signatureV2"),kt);let t=tf(e.data),n=js(t.Value),o=oe(t.Validity);if(e.value!=null&&e.signatureV1!=null)return Fp(e),{value:n,validityType:Ee.ValidityType.EOL,validity:o,sequence:t.Sequence,ttl:t.TTL,pubKey:e.pubKey,signatureV1:e.signatureV1,signatureV2:e.signatureV2,data:e.data};if(e.signatureV2!=null)return{value:n,validityType:Ee.ValidityType.EOL,validity:o,sequence:t.Sequence,ttl:t.TTL,pubKey:e.pubKey,signatureV2:e.signatureV2,data:e.data};throw new Error("invalid record: does not include signatureV1 or signatureV2")}var pi=r=>or([Wl,r.toBytes()]),Ql=r=>Ki(r.slice(Wl.length)),ef=(r,e,t,n,o)=>{let i;if(e===Ee.ValidityType.EOL)i=0;else throw(0,_e.default)(new Error("Unknown validity type"),Cn);return qs({Value:r,Validity:t,ValidityType:i,Sequence:n,TTL:o})},tf=r=>{let e=zs(r);if(e.ValidityType===0)e.ValidityType=Ee.ValidityType.EOL;else throw(0,_e.default)(new Error("Unknown validity type"),Cn);return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e},js=r=>{if(r!=null){if(la(r))return`/ipns/${r.toCID().toString(Hn)}`;if(r instanceof Uint8Array){let n=oe(r);n.startsWith("/")&&(r=n)}let e=r.toString().trim();if(e.startsWith("/")&&e.length>1)return e;let t=Re.asCID(r);if(t!=null)return t.code===Op?`/ipns/${t.toString(Hn)}`:`/ipfs/${t.toV1().toString()}`;try{return r instanceof Uint8Array?`/ipfs/${Re.decode(r).toV1().toString()}`:`/ipfs/${Re.parse(e).toV1().toString()}`}catch{}}throw(0,_e.default)(new Error("Value must be a valid content path starting with /"),Mu)},Fp=r=>{if(r.data==null)throw(0,_e.default)(new Error("Record data is missing"),Pu);let e=tf(r.data);if(!be(e.Value,r.value??new Uint8Array(0)))throw(0,_e.default)(new Error('Field "value" did not match between protobuf and CBOR'),kt);if(!be(e.Validity,r.validity??new Uint8Array(0)))throw(0,_e.default)(new Error('Field "validity" did not match between protobuf and CBOR'),kt);if(e.ValidityType!==r.validityType)throw(0,_e.default)(new Error('Field "validityType" did not match between protobuf and CBOR'),kt);if(e.Sequence!==r.sequence)throw(0,_e.default)(new Error('Field "sequence" did not match between protobuf and CBOR'),kt);if(e.TTL!==r.ttl)throw(0,_e.default)(new Error('Field "ttl" did not match between protobuf and CBOR'),kt)};var Pp=_t("ipns"),Mp=tt.code,Hp="/ipns/",Lx=Hp.length,nf={v1Compatible:!0};async function of(r,e,t,n,o=nf){let i=new rf.default(Date.now()+Number(n)),s=Ee.ValidityType.EOL,[a,c]=n.toString().split("."),f=BigInt(a)*BigInt(1e5)+BigInt(c??"0");return Kp(r,e,t,s,i.toString(),f,o)}var Kp=async(r,e,t,n,o,i,s=nf)=>{t=BigInt(t);let a=J(o),c=js(e),f=J(c);if(r.privateKey==null)throw(0,Ys.default)(new Error("Missing private key"),Ku);let u=await Uu(r.privateKey),l=ef(f,n,a,t,i),d=di(l),v=await u.sign(d),m;if(r.publicKey!=null){let h=rr(r.toBytes());(h.code!==Mp||!be(r.publicKey,h.digest))&&(m=r.publicKey)}if(s.v1Compatible===!0){let h=await $p(u,f,n,a),p={value:c,signatureV1:h,validity:o,validityType:n,sequence:t,ttl:i,signatureV2:v,data:l};return m!=null&&(p.pubKey=m),p}else{let h={value:c,validity:o,validityType:n,sequence:t,ttl:i,signatureV2:v,data:l};return m!=null&&(h.pubKey=m),h}};var $p=async(r,e,t,n)=>{try{let o=Xl(e,t,n);return await r.sign(o)}catch(o){throw Pp.error("record signature creation failed",o),(0,Ys.default)(new Error("record signature creation failed"),Fu)}};var Zs=ft(ei(),1);function gi(r,e){let t=e.map((n,o)=>({record:Tt(n),index:o}));return t.sort((n,o)=>{let i=n.record.sequence,s=o.record.sequence;if(i>s)return-1;if(i<s)return 1;if(n.record.validityType===Ee.ValidityType.EOL&&o.record.validityType===Ee.ValidityType.EOL){let a=Zs.default.fromString(n.record.validity).toDate(),c=Zs.default.fromString(o.record.validity).toDate();if(a.getTime()>c.getTime())return-1;if(a.getTime()<c.getTime())return 1}return 0}),t[0].index}var Vn=ft(Xo(),1),sf=ft(ei(),1);var mi=_t("ipns:validator"),qp=1024*10,zp=async(r,e)=>{let t=Tt(e),n;try{let o=di(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw mi.error("record signature verification failed"),(0,Vn.default)(new Error("record signature verification failed"),kt);if(t.validityType===Ee.ValidityType.EOL){if(sf.default.fromString(t.validity).toDate().getTime()<Date.now())throw mi.error("record has expired"),(0,Vn.default)(new Error("record has expired"),Ou)}else if(t.validityType!=null)throw mi.error("unrecognized validity type"),(0,Vn.default)(new Error("unrecognized validity type"),Cn);mi("ipns record for %s is valid",t.value)};async function Ws(r,e){if(e.byteLength>qp)throw(0,Vn.default)(new Error("record too large"),$u);let t=Ql(r),n=Tt(e),o=await Jl(t,n);await zp(o,e)}var Ce=class extends Event{constructor(e,t){super(e),this.detail=t}};var Yp=ft(cf(),1);var Xt;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Xt||(Xt={}));var Zp=32;async function uf(r,e,t,n,o={}){if(e===0)throw new Error("recursion limit exceeded");n("query %s for TXT and CNAME records",r);let s=(await t.query(r,{...o,types:[Xt.TXT]})).Answer.sort((f,u)=>f.data.localeCompare(u.data));n("found %d TXT records for %s",s.length,r);for(let f of s)try{let u=f.data;if(u.startsWith('"')&&u.endsWith('"')&&(u=u.substring(1,u.length-1)),!u.startsWith("dnslink="))continue;n("%s TXT %s",f.name,u),u=u.replace("dnslink=","");let[,l,d,...v]=u.split("/");if(l==="ipfs")try{return{value:`/ipfs/${Re.parse(d)}${v.length>0?`/${v.join("/")}`:""}`,answer:f}}catch{}else if(l==="ipns"){try{return{value:`/ipns/${cn(d)}${v.length>0?`/${v.join("/")}`:""}`,answer:f}}catch{}return await yi(d,e-1,t,n,o)}else{if(l==="dnslink")return await yi(d,e-1,t,n,o);n('unknown protocol "%s" in DNSLink record for domain: %s',l,r);continue}}catch(u){n.error("could not parse DNS link record for domain %s, %s",r,f.data,u)}n("no DNSLink records found for %s, falling back to CNAME",r);let c=(await t.query(r,{...o,types:[Xt.CNAME]})).Answer.sort((f,u)=>f.data.localeCompare(u.data));n("found %d CNAME records for %s",c.length,r);for(let f of c)try{return await yi(f.data,e-1,t,n,o)}catch(u){n.error("domain %s cname %s had no DNSLink records",r,f.data,u)}throw new $(`No DNSLink records found for domain: ${r}`,"ERR_DNSLINK_NOT_FOUND")}async function yi(r,e,t,n,o={}){if(e===0)throw new Error("recursion limit exceeded");r.startsWith("_dnslink.")||(r=`_dnslink.${r}`);try{return await uf(r,e,t,n,o)}catch(i){if(i.code!=="ENOTFOUND"&&i.code!=="ERR_DNSLINK_NOT_FOUND"&&i.code!=="ENODATA")throw i;return r.startsWith("_dnslink.")?r=r.replace("_dnslink.",""):r=`_dnslink.${r}`,await uf(r,e,t,n,o)}}async function lf(r,e,t,n={}){return yi(r,n.maxRecursiveDepth??Zp,e,t,n)}var Js=class{routing;constructor(e){this.routing=e}async put(e,t,n={}){try{await this.routing.put(e,t,n)}catch(o){n.onProgress?.(new Ce("ipns:routing:helia:error",o))}}async get(e,t={}){try{return await this.routing.get(e,t)}catch(n){t.onProgress?.(new Ce("ipns:routing:helia:error",n))}throw new Error("Not found")}};function ff(r){return new Js(r)}var On;(function(r){let e;r.codec=()=>(e==null&&(e=$t((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.key!=null&&t.key.byteLength>0&&(n.uint32(10),n.bytes(t.key)),t.value!=null&&t.value.byteLength>0&&(n.uint32(18),n.bytes(t.value)),t.timeReceived!=null&&t.timeReceived!==""&&(n.uint32(42),n.string(t.timeReceived)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let s=t.uint32();switch(s>>>3){case 1:o.key=t.bytes();break;case 2:o.value=t.bytes();break;case 5:o.timeReceived=t.string();break;default:t.skipType(s&7);break}}return o})),e),r.encode=t=>Kt(t,r.codec()),r.decode=t=>Ht(t,r.codec())})(On||(On={}));function hf(r){let e=r.getUTCFullYear(),t=String(r.getUTCMonth()+1).padStart(2,"0"),n=String(r.getUTCDate()).padStart(2,"0"),o=String(r.getUTCHours()).padStart(2,"0"),i=String(r.getUTCMinutes()).padStart(2,"0"),s=String(r.getUTCSeconds()).padStart(2,"0"),a=r.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${e}-${t}-${n}T${o}:${i}:${s}.${c}Z`}function df(r){let e=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),t=String(r).trim().match(e);if(t==null)throw new Error("Invalid format");let n=parseInt(t[1],10),o=parseInt(t[2],10)-1,i=parseInt(t[3],10),s=parseInt(t[4],10),a=parseInt(t[5],10),c=parseInt(t[6],10),f=parseInt(t[7].slice(0,-6),10);return new Date(Date.UTC(n,o,i,s,a,c,f))}var en=class r{key;value;timeReceived;constructor(e,t,n){if(!(e instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(t instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=e,this.value=t,this.timeReceived=n}serialize(){return On.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:hf(this.timeReceived)}}static deserialize(e){let t=On.decode(e);return new r(t.key,t.value,new Date(t.timeReceived))}static fromDeserialized(e){let t=df(e.timeReceived);if(e.key==null)throw new Error("key missing from deserialized object");if(e.value==null)throw new Error("value missing from deserialized object");return new r(e.key,e.value,t)}};var pf;(function(r){r[r.SEND_QUERY=0]="SEND_QUERY",r[r.PEER_RESPONSE=1]="PEER_RESPONSE",r[r.FINAL_PEER=2]="FINAL_PEER",r[r.QUERY_ERROR=3]="QUERY_ERROR",r[r.PROVIDER=4]="PROVIDER",r[r.VALUE=5]="VALUE",r[r.ADD_PEER=6]="ADD_PEER",r[r.DIAL_PEER=7]="DIAL_PEER"})(pf||(pf={}));function Xs(r){return new jr("/dht/record/"+oe(r,"base32"),!1)}function gf(r){return{async put(e,t,n={}){try{let o=Xs(e),i=new en(e,t,new Date);n.onProgress?.(new Ce("ipns:routing:datastore:put")),await r.put(o,i.serialize(),n)}catch(o){throw n.onProgress?.(new Ce("ipns:routing:datastore:error",o)),o}},async get(e,t={}){try{let n=Xs(e);t.onProgress?.(new Ce("ipns:routing:datastore:get"));let o=await r.get(n,t);return en.deserialize(o).value}catch(n){throw t.onProgress?.(new Ce("ipns:routing:datastore:error",n)),n}},async has(e,t={}){let n=Xs(e);return r.has(n,t)}}}var mr=_t("helia:ipns"),Jp=60*1e3,mf=60*Jp,Xp=24*mf,Qs=23*mf,ea=class{routers;localStore;timeout;dns;log;constructor(e,t=[]){this.routers=[ff(e.routing),...t],this.localStore=gf(e.datastore),this.dns=e.dns,this.log=e.logger.forComponent("helia:ipns")}async publish(e,t,n={}){try{let o=1n,i=pi(e);if(await this.localStore.has(i,n)){let c=await this.localStore.get(i,n);o=Tt(c).sequence+1n}let s=await of(e,t,o,n.lifetime??Xp,n),a=Gs(s);return await this.localStore.put(i,a,n),n.offline!==!0&&await Promise.all(this.routers.map(async c=>{await c.put(i,a,n)})),s}catch(o){throw n.onProgress?.(new Ce("ipns:publish:error",o)),o}}async resolve(e,t={}){let n=pi(e),o=await this.#t(n,t);return{...await this.#e(o.value,t),record:o}}async resolveDNSLink(e,t={}){let n=await lf(e,this.dns,this.log,t);return{...await this.#e(n.value,t),answer:n.answer}}republish(e={}){if(this.timeout!=null)throw new Error("Republish is already running");e.signal?.addEventListener("abort",()=>{clearTimeout(this.timeout)});async function t(){let n=Date.now();e.onProgress?.(new Ce("ipns:republish:start"));let i=Date.now()-n,s=Qs-i;s<0&&(s=e.interval??Qs),setTimeout(()=>{t().catch(a=>{mr.error("error republishing",a)})},s)}this.timeout=setTimeout(()=>{t().catch(n=>{mr.error("error republishing",n)})},e.interval??Qs)}async#e(e,t={}){let n=e.split("/");try{let o=n[1];if(o==="ipns"){let{cid:i}=await this.resolve(cn(n[2]),t),s=n.slice(3).join("/");return{cid:i,path:s}}else if(o==="ipfs"){let i=Re.parse(n[2]),s=n.slice(3).join("/");return{cid:i,path:s}}}catch(o){mr.error("error parsing ipfs path",o)}throw mr.error("invalid ipfs path %s",e),new Error("Invalid value")}async#t(e,t={}){let n=[this.localStore,...this.routers];t.offline===!0&&(n=[this.localStore]);let o=[],i=0;if(await Promise.all(n.map(async a=>{let c;try{c=await a.get(e,{...t,validate:!1})}catch(f){a===this.localStore&&f.code==="ERR_NOT_FOUND"?mr("did not have record locally"):mr.error("error finding IPNS record",f);return}try{await Ws(e,c),o.push(c)}catch(f){i++,mr.error("error finding IPNS record",f)}})),o.length===0)throw i>0?new $(`${i>1?`${i} records`:"Record"} found for routing key ${i>1?"were":"was"} invalid`,"ERR_RECORDS_FAILED_VALIDATION"):new $("Could not find record for routing key","ERR_NOT_FOUND");let s=o[gi(e,o)];return await this.localStore.put(e,s,t),Tt(s)}};function Qp(r,{routers:e=[]}={}){return new ea(r,e)}return Cf(eg);})();
9
9
  /*! Bundled license information:
10
10
 
11
11
  pvtsutils/build/index.js:
@@ -1,5 +1,9 @@
1
1
  import { type Logger } from '@libp2p/interface';
2
2
  import type { ResolveDNSLinkOptions } from './index.js';
3
- import type { DNS } from '@multiformats/dns';
4
- export declare function resolveDNSLink(domain: string, dns: DNS, log: Logger, options?: ResolveDNSLinkOptions): Promise<string>;
3
+ import type { Answer, DNS } from '@multiformats/dns';
4
+ export interface DNSLinkResult {
5
+ answer: Answer;
6
+ value: string;
7
+ }
8
+ export declare function resolveDNSLink(domain: string, dns: DNS, log: Logger, options?: ResolveDNSLinkOptions): Promise<DNSLinkResult>;
5
9
  //# sourceMappingURL=dnslink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAsI5C,wBAAsB,cAAc,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjI"}
1
+ {"version":3,"file":"dnslink.d.ts","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAIpD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AA0ID,wBAAsB,cAAc,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,aAAa,CAAC,CAExI"}
@@ -37,7 +37,10 @@ async function recursiveResolveDnslink(domain, depth, dns, log, options = {}) {
37
37
  try {
38
38
  const cid = CID.parse(domainOrCID);
39
39
  // if the result is a CID, we've reached the end of the recursion
40
- return `/ipfs/${cid}${rest.length > 0 ? `/${rest.join('/')}` : ''}`;
40
+ return {
41
+ value: `/ipfs/${cid}${rest.length > 0 ? `/${rest.join('/')}` : ''}`,
42
+ answer
43
+ };
41
44
  }
42
45
  catch { }
43
46
  }
@@ -45,7 +48,10 @@ async function recursiveResolveDnslink(domain, depth, dns, log, options = {}) {
45
48
  try {
46
49
  const peerId = peerIdFromString(domainOrCID);
47
50
  // if the result is a PeerId, we've reached the end of the recursion
48
- return `/ipns/${peerId}${rest.length > 0 ? `/${rest.join('/')}` : ''}`;
51
+ return {
52
+ value: `/ipns/${peerId}${rest.length > 0 ? `/${rest.join('/')}` : ''}`,
53
+ answer
54
+ };
49
55
  }
50
56
  catch { }
51
57
  // if the result was another IPNS domain, try to follow it
@@ -1 +1 @@
1
- {"version":3,"file":"dnslink.js","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dnslink.js","sourceRoot":"","sources":["../../src/dnslink.ts"],"names":[],"mappings":"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"}
@@ -231,7 +231,7 @@ import { CID } from 'multiformats/cid';
231
231
  import type { IPNSRouting, IPNSRoutingEvents } from './routing/index.js';
232
232
  import type { Routing } from '@helia/interface';
233
233
  import type { AbortOptions, ComponentLogger, PeerId } from '@libp2p/interface';
234
- import type { DNS, ResolveDnsProgressEvents } from '@multiformats/dns';
234
+ import type { Answer, DNS, ResolveDnsProgressEvents } from '@multiformats/dns';
235
235
  import type { Datastore } from 'interface-datastore';
236
236
  import type { IPNSRecord } from 'ipns';
237
237
  import type { ProgressEvent, ProgressOptions } from 'progress-events';
@@ -291,9 +291,29 @@ export interface RepublishOptions extends AbortOptions, ProgressOptions<Republis
291
291
  interval?: number;
292
292
  }
293
293
  export interface ResolveResult {
294
+ /**
295
+ * The CID that was resolved
296
+ */
294
297
  cid: CID;
298
+ /**
299
+ * Any path component that was part of the resolved record
300
+ *
301
+ * @default ""
302
+ */
295
303
  path: string;
296
304
  }
305
+ export interface IPNSResolveResult extends ResolveResult {
306
+ /**
307
+ * The resolved record
308
+ */
309
+ record: IPNSRecord;
310
+ }
311
+ export interface DNSLinkResolveResult extends ResolveResult {
312
+ /**
313
+ * The resolved record
314
+ */
315
+ answer: Answer;
316
+ }
297
317
  export interface IPNS {
298
318
  /**
299
319
  * Creates an IPNS record signed by the passed PeerId that will resolve to the passed value
@@ -305,11 +325,11 @@ export interface IPNS {
305
325
  * Accepts a public key formatted as a libp2p PeerID and resolves the IPNS record
306
326
  * corresponding to that public key until a value is found
307
327
  */
308
- resolve(key: PeerId, options?: ResolveOptions): Promise<ResolveResult>;
328
+ resolve(key: PeerId, options?: ResolveOptions): Promise<IPNSResolveResult>;
309
329
  /**
310
330
  * Resolve a CID from a dns-link style IPNS record
311
331
  */
312
- resolveDNSLink(domain: string, options?: ResolveDNSLinkOptions): Promise<ResolveResult>;
332
+ resolveDNSLink(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResolveResult>;
313
333
  /**
314
334
  * Periodically republish all IPNS records found in the datastore
315
335
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -285,11 +285,17 @@ class DefaultIPNS {
285
285
  async resolve(key, options = {}) {
286
286
  const routingKey = peerIdToRoutingKey(key);
287
287
  const record = await this.#findIpnsRecord(routingKey, options);
288
- return this.#resolve(record.value, options);
288
+ return {
289
+ ...(await this.#resolve(record.value, options)),
290
+ record
291
+ };
289
292
  }
290
293
  async resolveDNSLink(domain, options = {}) {
291
294
  const dnslink = await resolveDNSLink(domain, this.dns, this.log, options);
292
- return this.#resolve(dnslink, options);
295
+ return {
296
+ ...(await this.#resolve(dnslink.value, options)),
297
+ answer: dnslink.answer
298
+ };
293
299
  }
294
300
  republish(options = {}) {
295
301
  if (this.timeout != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  {
2
+ "DNSLinkResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.DNSLinkResolveResult.html",
3
+ ".:DNSLinkResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.DNSLinkResolveResult.html",
2
4
  "IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNS.html",
3
5
  ".:IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNS.html",
4
6
  "IPNSComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSComponents.html",
5
7
  ".:IPNSComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSComponents.html",
6
8
  "IPNSOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSOptions.html",
7
9
  ".:IPNSOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSOptions.html",
10
+ "IPNSResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolveResult.html",
11
+ ".:IPNSResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolveResult.html",
8
12
  "PublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.PublishOptions.html",
9
13
  ".:PublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.PublishOptions.html",
10
14
  "RepublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.RepublishOptions.html",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/ipns",
3
- "version": "7.0.0",
3
+ "version": "7.1.0",
4
4
  "description": "An implementation of IPNS for Helia",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/ipns#readme",
package/src/dnslink.ts CHANGED
@@ -3,11 +3,16 @@ import { peerIdFromString } from '@libp2p/peer-id'
3
3
  import { RecordType } from '@multiformats/dns'
4
4
  import { CID } from 'multiformats/cid'
5
5
  import type { ResolveDNSLinkOptions } from './index.js'
6
- import type { DNS } from '@multiformats/dns'
6
+ import type { Answer, DNS } from '@multiformats/dns'
7
7
 
8
8
  const MAX_RECURSIVE_DEPTH = 32
9
9
 
10
- async function recursiveResolveDnslink (domain: string, depth: number, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<string> {
10
+ export interface DNSLinkResult {
11
+ answer: Answer
12
+ value: string
13
+ }
14
+
15
+ async function recursiveResolveDnslink (domain: string, depth: number, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
11
16
  if (depth === 0) {
12
17
  throw new Error('recursion limit exceeded')
13
18
  }
@@ -52,14 +57,20 @@ async function recursiveResolveDnslink (domain: string, depth: number, dns: DNS,
52
57
  const cid = CID.parse(domainOrCID)
53
58
 
54
59
  // if the result is a CID, we've reached the end of the recursion
55
- return `/ipfs/${cid}${rest.length > 0 ? `/${rest.join('/')}` : ''}`
60
+ return {
61
+ value: `/ipfs/${cid}${rest.length > 0 ? `/${rest.join('/')}` : ''}`,
62
+ answer
63
+ }
56
64
  } catch {}
57
65
  } else if (protocol === 'ipns') {
58
66
  try {
59
67
  const peerId = peerIdFromString(domainOrCID)
60
68
 
61
69
  // if the result is a PeerId, we've reached the end of the recursion
62
- return `/ipns/${peerId}${rest.length > 0 ? `/${rest.join('/')}` : ''}`
70
+ return {
71
+ value: `/ipns/${peerId}${rest.length > 0 ? `/${rest.join('/')}` : ''}`,
72
+ answer
73
+ }
63
74
  } catch {}
64
75
 
65
76
  // if the result was another IPNS domain, try to follow it
@@ -103,7 +114,7 @@ async function recursiveResolveDnslink (domain: string, depth: number, dns: DNS,
103
114
  throw new CodeError(`No DNSLink records found for domain: ${domain}`, 'ERR_DNSLINK_NOT_FOUND')
104
115
  }
105
116
 
106
- async function recursiveResolveDomain (domain: string, depth: number, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<string> {
117
+ async function recursiveResolveDomain (domain: string, depth: number, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
107
118
  if (depth === 0) {
108
119
  throw new Error('recursion limit exceeded')
109
120
  }
@@ -137,6 +148,6 @@ async function recursiveResolveDomain (domain: string, depth: number, dns: DNS,
137
148
  }
138
149
  }
139
150
 
140
- export async function resolveDNSLink (domain: string, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<string> {
151
+ export async function resolveDNSLink (domain: string, dns: DNS, log: Logger, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResult> {
141
152
  return recursiveResolveDomain(domain, options.maxRecursiveDepth ?? MAX_RECURSIVE_DEPTH, dns, log, options)
142
153
  }
package/src/index.ts CHANGED
@@ -241,7 +241,7 @@ import { localStore, type LocalStore } from './routing/local-store.js'
241
241
  import type { IPNSRouting, IPNSRoutingEvents } from './routing/index.js'
242
242
  import type { Routing } from '@helia/interface'
243
243
  import type { AbortOptions, ComponentLogger, Logger, PeerId } from '@libp2p/interface'
244
- import type { DNS, ResolveDnsProgressEvents } from '@multiformats/dns'
244
+ import type { Answer, DNS, ResolveDnsProgressEvents } from '@multiformats/dns'
245
245
  import type { Datastore } from 'interface-datastore'
246
246
  import type { IPNSRecord } from 'ipns'
247
247
  import type { ProgressEvent, ProgressOptions } from 'progress-events'
@@ -331,10 +331,33 @@ export interface RepublishOptions extends AbortOptions, ProgressOptions<Republis
331
331
  }
332
332
 
333
333
  export interface ResolveResult {
334
+ /**
335
+ * The CID that was resolved
336
+ */
334
337
  cid: CID
338
+
339
+ /**
340
+ * Any path component that was part of the resolved record
341
+ *
342
+ * @default ""
343
+ */
335
344
  path: string
336
345
  }
337
346
 
347
+ export interface IPNSResolveResult extends ResolveResult {
348
+ /**
349
+ * The resolved record
350
+ */
351
+ record: IPNSRecord
352
+ }
353
+
354
+ export interface DNSLinkResolveResult extends ResolveResult {
355
+ /**
356
+ * The resolved record
357
+ */
358
+ answer: Answer
359
+ }
360
+
338
361
  export interface IPNS {
339
362
  /**
340
363
  * Creates an IPNS record signed by the passed PeerId that will resolve to the passed value
@@ -347,12 +370,12 @@ export interface IPNS {
347
370
  * Accepts a public key formatted as a libp2p PeerID and resolves the IPNS record
348
371
  * corresponding to that public key until a value is found
349
372
  */
350
- resolve(key: PeerId, options?: ResolveOptions): Promise<ResolveResult>
373
+ resolve(key: PeerId, options?: ResolveOptions): Promise<IPNSResolveResult>
351
374
 
352
375
  /**
353
376
  * Resolve a CID from a dns-link style IPNS record
354
377
  */
355
- resolveDNSLink(domain: string, options?: ResolveDNSLinkOptions): Promise<ResolveResult>
378
+ resolveDNSLink(domain: string, options?: ResolveDNSLinkOptions): Promise<DNSLinkResolveResult>
356
379
 
357
380
  /**
358
381
  * Periodically republish all IPNS records found in the datastore
@@ -416,17 +439,23 @@ class DefaultIPNS implements IPNS {
416
439
  }
417
440
  }
418
441
 
419
- async resolve (key: PeerId, options: ResolveOptions = {}): Promise<ResolveResult> {
442
+ async resolve (key: PeerId, options: ResolveOptions = {}): Promise<IPNSResolveResult> {
420
443
  const routingKey = peerIdToRoutingKey(key)
421
444
  const record = await this.#findIpnsRecord(routingKey, options)
422
445
 
423
- return this.#resolve(record.value, options)
446
+ return {
447
+ ...(await this.#resolve(record.value, options)),
448
+ record
449
+ }
424
450
  }
425
451
 
426
- async resolveDNSLink (domain: string, options: ResolveDNSLinkOptions = {}): Promise<ResolveResult> {
452
+ async resolveDNSLink (domain: string, options: ResolveDNSLinkOptions = {}): Promise<DNSLinkResolveResult> {
427
453
  const dnslink = await resolveDNSLink(domain, this.dns, this.log, options)
428
454
 
429
- return this.#resolve(dnslink, options)
455
+ return {
456
+ ...(await this.#resolve(dnslink.value, options)),
457
+ answer: dnslink.answer
458
+ }
430
459
  }
431
460
 
432
461
  republish (options: RepublishOptions = {}): void {
@@ -465,7 +494,7 @@ class DefaultIPNS implements IPNS {
465
494
  }, options.interval ?? DEFAULT_REPUBLISH_INTERVAL_MS)
466
495
  }
467
496
 
468
- async #resolve (ipfsPath: string, options: ResolveOptions = {}): Promise<ResolveResult> {
497
+ async #resolve (ipfsPath: string, options: ResolveOptions = {}): Promise<{ cid: CID, path: string }> {
469
498
  const parts = ipfsPath.split('/')
470
499
  try {
471
500
  const scheme = parts[1]