@helia/http 1.0.3-395cd9e → 1.0.3-532d6c4

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} :`}};ch=Br;D.Constructed=ch;Br.NAME="CONSTRUCTED";var js=class extends Pe{fromBER(e,t,n){return t}toBER(e){return wt}};js.override="EndOfContentValueBlock";var uh,Ws=class extends Te{constructor(e={}){super(e,js),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};uh=Ws;D.EndOfContent=uh;Ws.NAME=Eo;var lh,kr=class extends Te{constructor(e={}){super(e,Pe),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}`}};lh=kr;D.Null=lh;kr.NAME="NULL";var Ys=class extends er(Pe){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=Z.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=Z.BufferSourceConverter.toUint8Array(e);return Qt(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,Hc.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Ys.NAME="BooleanValueBlock";var fh,Zs=class extends Te{constructor(e={}){super(e,Ys),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}`}};fh=Zs;D.Boolean=fh;Zs.NAME="BOOLEAN";var Js=class extends er(_t){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=_t.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let s=0;s<this.value.length;s++){let i=this.value[s].constructor.NAME;if(i===Eo){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==oh)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?_t.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Js.NAME="OctetStringValueBlock";var hh,Jt=class r extends Te{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},Js),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 s=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(s.byteLength){let i=ki(s,0,s.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Br.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${Z.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 Z.BufferSourceConverter.concat(e)}};hh=Jt;D.OctetString=hh;Jt.NAME=oh;var Xs=class extends er(_t){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=_t.prototype.fromBER.call(this,e,t,n),o===-1)return o;for(let a of this.value){let c=a.constructor.NAME;if(c===Eo){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==sh)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 s=Z.BufferSourceConverter.toUint8Array(e);if(!Qt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=ki(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,t+n}toBER(e,t){if(this.isConstructed)return _t.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return wt;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}}};Xs.NAME="BitStringValueBlock";var dh,Fn=class extends Te{constructor({idBlock:e={},lenBlock:t={},...n}={}){var o,s;(o=n.isConstructed)!==null&&o!==void 0||(n.isConstructed=!!(!((s=n.value)===null||s===void 0)&&s.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},Xs),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 Br.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)}`}}};dh=Fn;D.BitString=dh;Fn.NAME=sh;var ph;function bw(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,f=0,u=c<i?i:c,l=0;for(let h=u;h>=0;h--,l++){switch(!0){case l<a.length:f=s[i-l]+a[c-l]+t[0];break;default:f=s[i-l]+t[0]}switch(t[0]=f/10,!0){case l>=s.length:s=Ms(new Uint8Array([f%10]),s);break;default:s[i-l]=f%10}}return t[0]>0&&(s=Ms(t,s)),s}function nh(r){if(r>=bo.length)for(let e=bo.length;e<=r;e++){let t=new Uint8Array([0]),n=bo[e-1].slice(0);for(let o=n.length-1;o>=0;o--){let s=new Uint8Array([(n[o]<<1)+t[0]]);t[0]=s[0]/10,n[o]=s[0]%10}t[0]>0&&(n=Ms(t,n)),bo.push(n)}return bo[r]}function xw(r,e){let t=0,n=new Uint8Array(r),o=new Uint8Array(e),s=n.slice(0),i=s.length-1,a=o.slice(0),c=a.length-1,f,u=0;for(let l=c;l>=0;l--,u++)switch(f=s[i-u]-a[c-u]-t,!0){case f<0:t=1,s[i-u]=f+10;break;default:t=0,s[i-u]=f}if(t>0)for(let l=i-c+1;l>=0;l--,u++)if(f=s[i-u]-t,f<0)t=1,s[i-u]=f+10;else{t=0,s[i-u]=f;break}return s.slice()}var vo=class extends er(Pe){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=Hc.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(eh(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,o=0){let s=this.fromBER(e,t,n);if(s===-1)return s;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):o!==0&&i.length<o&&(o-i.length>1&&(o=i.length+1),this.valueHexView=i.subarray(o-i.length)),s}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,s=this.valueHexView,i="",a=!1;for(let c=s.byteLength-1;c>=0;c--){o=s[c];for(let f=0;f<8;f++){if((o&1)===1)switch(n){case e:t=xw(nh(n),t),i="-";break;default:t=bw(t,nh(n))}n++,o>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(i+=rh.charAt(t[c]));return a===!1&&(i+=rh.charAt(0)),i}};ph=vo;vo.NAME="IntegerValueBlock";Object.defineProperty(ph.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var mh,we=class r extends Te{constructor(e={}){super(e,vo),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return $s(),BigInt(this.valueBlock.toString())}static fromBigInt(e){$s();let t=BigInt(e),n=new xo,o=t.toString(16).replace(/^-/,""),s=new Uint8Array(Z.Convert.FromHex(o));if(t<0){let a=new Uint8Array(s.length+(s[0]&128?1:0));a[0]|=128;let f=BigInt(`0x${Z.Convert.ToHex(a)}`)+t,u=Z.BufferSourceConverter.toUint8Array(Z.Convert.FromHex(f.toString(16)));u[0]|=128,n.write(u)}else s[0]&128&&n.write(new Uint8Array([0])),n.write(s);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()}`}};mh=we;D.Integer=mh;we.NAME="INTEGER";var yh,Qs=class extends we{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};yh=Qs;D.Enumerated=yh;Qs.NAME="ENUMERATED";var Ao=class extends er(Pe){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=Z.BufferSourceConverter.toUint8Array(e);if(!Qt(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=jr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){$s();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,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=Ar(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",wt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n}toString(){let e="";if(this.isHexOnly)e=Z.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}}};Ao.NAME="sidBlock";var ei=class extends Pe{constructor({value:e=Vn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new Ao;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.value.length===0&&(s.isFirstSid=!0),this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}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,wt;t.push(o)}return Kc(t)}fromString(e){this.value=[];let t=0,n=0,o="",s=!1;do if(n=e.indexOf(".",t),n===-1?o=e.substring(t):o=e.substring(t,n),t=n+1,s){let i=this.value[0],a=0;switch(i.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;i.valueDec=c+a,s=!1}else{let i=new Ao;if(o>Number.MAX_SAFE_INTEGER){$s();let a=BigInt(o);i.valueBigInt=a}else if(i.valueDec=parseInt(o,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,s=!0),this.value.push(i)}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}};ei.NAME="ObjectIdentifierValueBlock";var gh,gt=class extends Te{constructor(e={}){super(e,ei),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()}}};gh=gt;D.ObjectIdentifier=gh;gt.NAME="OBJECT IDENTIFIER";var Bo=class extends er(Zt){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let o=Z.BufferSourceConverter.toUint8Array(e);if(!Qt(this,o,t,n))return-1;let s=o.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=s[a]&127,this.blockLength++,!!(s[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,s[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=jr(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,s=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)s[i]=o[i]|128;return s[this.blockLength-1]=o[this.blockLength-1],s.buffer}let t=Ar(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",wt;let n=new Uint8Array(t.byteLength);if(!e){let o=new Uint8Array(t),s=t.byteLength-1;for(let i=0;i<s;i++)n[i]=o[i]|128;n[s]=o[s]}return n.buffer}toString(){let e="";return this.isHexOnly?e=Z.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Bo.NAME="relativeSidBlock";var ti=class extends Pe{constructor({value:e=Vn,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let o=t;for(;n>0;){let s=new Bo;if(o=s.fromBER(e,o,n),o===-1)return this.blockLength=0,this.error=s.error,o;this.blockLength+=s.blockLength,n-=s.blockLength,this.value.push(s)}return o}toBER(e,t){let n=[];for(let o=0;o<this.value.length;o++){let s=this.value[o].toBER(e);if(s.byteLength===0)return this.error=this.value[o].error,wt;n.push(s)}return Kc(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 s=new Bo;if(s.valueDec=parseInt(o,10),isNaN(s.valueDec))return!0;this.value.push(s)}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}};ti.NAME="RelativeObjectIdentifierValueBlock";var wh,ri=class extends Te{constructor(e={}){super(e,ti),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()}}};wh=ri;D.RelativeObjectIdentifier=wh;ri.NAME="RelativeObjectIdentifier";var bh,Ae=class extends Br{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};bh=Ae;D.Sequence=bh;Ae.NAME="SEQUENCE";var xh,ni=class extends Br{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};xh=ni;D.Set=xh;ni.NAME="SET";var oi=class extends er(Pe){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=Vn}toJSON(){return{...super.toJSON(),value:this.value}}};oi.NAME="StringValueBlock";var si=class extends oi{};si.NAME="SimpleStringValueBlock";var $e=class extends qs{constructor({...e}={}){super(e,si)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,Z.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}};$e.NAME="SIMPLE STRING";var ii=class extends $e{fromBuffer(e){this.valueBlock.valueHexView=Z.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=Z.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=Z.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(Z.Convert.FromUtf8String(e)),this.valueBlock.value=e}};ii.NAME="Utf8StringValueBlock";var Eh,Xt=class extends ii{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};Eh=Xt;D.Utf8String=Eh;Xt.NAME="UTF8String";var ai=class extends $e{fromBuffer(e){this.valueBlock.value=Z.Convert.ToUtf16String(e),this.valueBlock.valueHexView=Z.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(Z.Convert.FromUtf16String(e))}};ai.NAME="BmpStringValueBlock";var vh,ci=class extends ai{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};vh=ci;D.BmpString=vh;ci.NAME="BMPString";var ui=class extends $e{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 s=Ar(e.charCodeAt(o),8),i=new Uint8Array(s);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[o*4+c+a]=i[c]}this.valueBlock.value=e}};ui.NAME="UniversalStringValueBlock";var Ah,li=class extends ui{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Ah=li;D.UniversalString=Ah;li.NAME="UniversalString";var Bh,fi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Bh=fi;D.NumericString=Bh;fi.NAME="NumericString";var kh,hi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};kh=hi;D.PrintableString=kh;hi.NAME="PrintableString";var Sh,di=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Sh=di;D.TeletexString=Sh;di.NAME="TeletexString";var Ih,pi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Ih=pi;D.VideotexString=Ih;pi.NAME="VideotexString";var Rh,mi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Rh=mi;D.IA5String=Rh;mi.NAME="IA5String";var _h,yi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};_h=yi;D.GraphicString=_h;yi.NAME="GraphicString";var Th,ko=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Th=ko;D.VisibleString=Th;ko.NAME="VisibleString";var Nh,gi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Nh=gi;D.GeneralString=Nh;gi.NAME="GeneralString";var Ch,wi=class extends $e{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Ch=wi;D.CharacterString=Ch;wi.NAME="CharacterString";var Lh,So=class extends ko{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,Z.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]=qe(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=qe(this.month,2),t[2]=qe(this.day,2),t[3]=qe(this.hour,2),t[4]=qe(this.minute,2),t[5]=qe(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}}};Lh=So;D.UTCTime=Lh;So.NAME="UTCTime";var Uh,bi=class extends So{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="",s=0,i,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,h=n.indexOf("+"),g="";if(h===-1&&(h=n.indexOf("-"),l=-1),h!==-1){if(g=n.substring(h+1),n=n.substring(0,h),g.length!==2&&g.length!==4)throw new Error("Wrong input string for conversion");let y=parseInt(g.substring(0,2),10);if(isNaN(y.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*y,g.length===4){if(y=parseInt(g.substring(2,4),10),isNaN(y.valueOf()))throw new Error("Wrong input string for conversion");c=l*y}}}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");s=l.valueOf(),o=n.substring(0,f)}else o=n;switch(!0){case o.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,f!==-1)throw new Error("Wrong input string for conversion");break;case o.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=60*s;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(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=60*s;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case o.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,f!==-1){let l=1e3*s;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let u=i.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(qe(this.year,4)),t.push(qe(this.month,2)),t.push(qe(this.day,2)),t.push(qe(this.hour,2)),t.push(qe(this.minute,2)),t.push(qe(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(qe(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Uh=bi;D.GeneralizedTime=Uh;bi.NAME="GeneralizedTime";var Dh,xi=class extends Xt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Dh=xi;D.DATE=Dh;xi.NAME="DATE";var Ph,Ei=class extends Xt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Ph=Ei;D.TimeOfDay=Ph;Ei.NAME="TimeOfDay";var Oh,vi=class extends Xt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Oh=vi;D.DateTime=Oh;vi.NAME="DateTime";var Fh,Ai=class extends Xt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Fh=Ai;D.Duration=Fh;Ai.NAME="Duration";var Vh,Bi=class extends Xt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Vh=Bi;D.TIME=Vh;Bi.NAME="TIME";function vw(r){let{result:e}=Mn(r),t=e.valueBlock.value;return{n:z(Tt(t[1].toBigInt()),"base64url"),e:z(Tt(t[2].toBigInt()),"base64url"),d:z(Tt(t[3].toBigInt()),"base64url"),p:z(Tt(t[4].toBigInt()),"base64url"),q:z(Tt(t[5].toBigInt()),"base64url"),dp:z(Tt(t[6].toBigInt()),"base64url"),dq:z(Tt(t[7].toBigInt()),"base64url"),qi:z(Tt(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function Aw(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 N("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new Ae({value:[new we({value:0}),we.fromBigInt(Nt(Y(r.n,"base64url"))),we.fromBigInt(Nt(Y(r.e,"base64url"))),we.fromBigInt(Nt(Y(r.d,"base64url"))),we.fromBigInt(Nt(Y(r.p,"base64url"))),we.fromBigInt(Nt(Y(r.q,"base64url"))),we.fromBigInt(Nt(Y(r.dp,"base64url"))),we.fromBigInt(Nt(Y(r.dq,"base64url"))),we.fromBigInt(Nt(Y(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function Bw(r){let{result:e}=Mn(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:z(Tt(t[0].toBigInt()),"base64url"),e:z(Tt(t[1].toBigInt()),"base64url")}}function kw(r){if(r.n==null||r.e==null)throw new N("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new Ae({value:[new Ae({value:[new gt({value:"1.2.840.113549.1.1.1"}),new kr]}),new Fn({valueHex:new Ae({value:[we.fromBigInt(Nt(Y(r.n,"base64url"))),we.fromBigInt(Nt(Y(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function Tt(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),o=0,s=0;for(;o<t;)n[o]=parseInt(e.slice(s,s+2),16),o+=1,s+=2;return n}function Nt(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 Sw=16,zc=32,Gc=1e4;async function Iw(r,e){let t=Me.get(),o=new Ae({value:[new we({value:0}),new Ae({value:[new gt({value:"1.2.840.113549.1.1.1"}),new kr]}),new Jt({valueHex:r.marshal()})]}).toBER(),s=new Uint8Array(o,0,o.byteLength),i=Gr(Sw),a=await Mc(Nn,e,i,{c:Gc,dkLen:zc}),c=Gr(16),f=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),u=await t.subtle.encrypt({name:"AES-CBC",iv:c},f,s),l=new Ae({value:[new Jt({valueHex:i}),new we({value:Gc}),new we({value:zc}),new Ae({value:[new gt({value:"1.2.840.113549.2.11"}),new kr]})]}),h=new Ae({value:[new gt({value:"1.2.840.113549.1.5.13"}),new Ae({value:[new Ae({value:[new gt({value:"1.2.840.113549.1.5.12"}),l]}),new Ae({value:[new gt({value:"2.16.840.1.101.3.4.1.42"}),new Jt({valueHex:c})]})]})]}),y=new Ae({value:[h,new Jt({valueHex:u})]}).toBER(),p=new Uint8Array(y,0,y.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...z(p,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
8
- `)}async function Rw(r,e){let t=Me.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=Y(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=Mn(o),{iv:i,salt:a,iterations:c,keySize:f,cipherText:u}=_w(s),l=await Mc(Nn,e,a,{c,dkLen:f}),h=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),g=Io(await t.subtle.decrypt({name:"AES-CBC",iv:i},h,u)),{result:y}=Mn(g);n=Mh(y)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=Y(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=Mn(o);n=Mh(s)}else throw new N("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return jc(n)}function _w(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new N("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 N("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let s=n.valueBlock.value[1],i=Io(s.valueBlock.value[0].getValue()),a=Gc,c=zc;if(s.valueBlock.value.length===3)a=Number(s.valueBlock.value[1].toBigInt()),c=Number(s.valueBlock.value[2].toBigInt());else if(s.valueBlock.value.length===2)throw new N("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 N("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Io(f.valueBlock.value[1].getValue());return{cipherText:Io(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:l}}function Mh(r){return Io(r.valueBlock.value[2].getValue())}function Io(r){return new Uint8Array(r,0,r.byteLength)}async function $h(r){let e=await Me.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 qh(e);return{privateKey:t[0],publicKey:t[1]}}async function Wc(r){let t=[await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Tw(r)],n=await qh({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Hh(r,e){let t=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Kh(r,e,t){let n=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function qh(r){if(r.privateKey==null||r.publicKey==null)throw new N("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Me.get().subtle.exportKey("jwk",r.privateKey),Me.get().subtle.exportKey("jwk",r.publicKey)])}async function Tw(r){return Me.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 Si(r){if(r.kty!=="RSA")throw new N("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new N("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Y(r.n,"base64url").length*8}var _o=8192,Ro=class{_key;constructor(e){this._key=e}verify(e,t){return Kh(this._key,t,e)}marshal(){return Sr.jwkToPkix(this._key)}get bytes(){return Rt.encode({Type:ye.RSA,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}},$n=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return Gr(16)}sign(e){return Hh(this._key,e)}get public(){if(this._publicKey==null)throw new N("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ro(this._publicKey)}marshal(){return Sr.jwkToPkcs1(this._key)}get bytes(){return Wt.encode({Type:ye.RSA,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return z(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return Sr.exportToPem(this,e);if(t==="libp2p-key")return Dn(this.bytes,e);throw new N(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function jc(r){let e=Sr.pkcs1ToJwk(r);if(Si(e)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Wc(e);return new $n(t.privateKey,t.publicKey)}function Cw(r){let e=Sr.pkixToJwk(r);if(Si(e)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ro(e)}async function Lw(r){if(Si(r)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Wc(r);return new $n(e.privateKey,e.publicKey)}async function Uw(r){if(r>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await $h(r);return new $n(e.privateKey,e.publicKey)}var eu={};xe(eu,{Secp256k1PrivateKey:()=>No,Secp256k1PublicKey:()=>To,generateKeyPair:()=>jw,unmarshalSecp256k1PrivateKey:()=>zw,unmarshalSecp256k1PublicKey:()=>Gw});var Dw=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]),Ir=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Rr=new Uint32Array(64),Zc=class extends Tn{constructor(){super(64,32,8,!1),this.A=Ir[0]|0,this.B=Ir[1]|0,this.C=Ir[2]|0,this.D=Ir[3]|0,this.E=Ir[4]|0,this.F=Ir[5]|0,this.G=Ir[6]|0,this.H=Ir[7]|0}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)Rr[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=Rr[l-15],g=Rr[l-2],y=mt(h,7)^mt(h,18)^h>>>3,p=mt(g,17)^mt(g,19)^g>>>10;Rr[l]=p+Rr[l-7]+y+Rr[l-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let l=0;l<64;l++){let h=mt(a,6)^mt(a,11)^mt(a,25),g=u+h+_f(a,c,f)+Dw[l]+Rr[l]|0,p=(mt(n,2)^mt(n,13)^mt(n,22))+Tf(n,o,s)|0;u=f,f=c,c=a,a=i+g|0,i=s,s=o,o=n,n=g+p|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+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,s,i,a,c,f,u)}roundClean(){Rr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var zh=Ss(()=>new Zc);function Pw(r){let e=yo(r);It(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:Ow,hexToBytes:Fw}=_s,Wr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=Wr;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:Ow(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=Wr,t=typeof r=="string"?Fw(r):r;Cn(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:s}=Wr._parseInt(t.subarray(2)),{d:i,l:a}=Wr._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s:i}},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)),s=n.length/2,i=o.length/2,a=t(s),c=t(i);return`30${t(i+s+4)}02${c}${o}02${a}${n}`}},tr=BigInt(0),ut=BigInt(1),ok=BigInt(2),Gh=BigInt(3),sk=BigInt(4);function Vw(r){let e=Pw(r),{Fp:t}=e,n=e.toBytes||((y,p,m)=>{let w=p.toAffine();return zt(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),o=e.fromBytes||(y=>{let p=y.subarray(1),m=t.fromBytes(p.subarray(0,t.BYTES)),w=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:m,y:w}});function s(y){let{a:p,b:m}=e,w=t.sqr(y),I=t.mul(w,y);return t.add(t.add(I,t.mul(y,p)),m)}if(!t.eql(t.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function i(y){return typeof y=="bigint"&&tr<y&&y<e.n}function a(y){if(!i(y))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(y){let{allowedPrivateKeyLengths:p,nByteLength:m,wrapPrivateKey:w,n:I}=e;if(p&&typeof y!="bigint"){if(xr(y)&&(y=Kt(y)),typeof y!="string"||!p.includes(y.length))throw new Error("Invalid key");y=y.padStart(m*2,"0")}let v;try{v=typeof y=="bigint"?y:qt(pe("private key",y,m))}catch{throw new Error(`private key must be ${m} bytes, hex or bigint, not ${typeof y}`)}return w&&(v=ae(v,I)),a(v),v}let f=new Map;function u(y){if(!(y instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,m,w){if(this.px=p,this.py=m,this.pz=w,p==null||!t.isValid(p))throw new Error("x required");if(m==null||!t.isValid(m))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required")}static fromAffine(p){let{x:m,y:w}=p||{};if(!p||!t.isValid(m)||!t.isValid(w))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let I=v=>t.eql(v,t.ZERO);return I(m)&&I(w)?l.ZERO:new l(m,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let m=t.invertBatch(p.map(w=>w.pz));return p.map((w,I)=>w.toAffine(m[I])).map(l.fromAffine)}static fromHex(p){let m=l.fromAffine(o(pe("pointHex",p)));return m.assertValidity(),m}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,f.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:m}=this.toAffine();if(!t.isValid(p)||!t.isValid(m))throw new Error("bad point: x or y not FE");let w=t.sqr(m),I=s(p);if(!t.eql(w,I))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){u(p);let{px:m,py:w,pz:I}=this,{px:v,py:U,pz:S}=p,_=t.eql(t.mul(m,S),t.mul(v,I)),L=t.eql(t.mul(w,S),t.mul(U,I));return _&&L}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:m}=e,w=t.mul(m,Gh),{px:I,py:v,pz:U}=this,S=t.ZERO,_=t.ZERO,L=t.ZERO,b=t.mul(I,I),C=t.mul(v,v),O=t.mul(U,U),T=t.mul(I,v);return T=t.add(T,T),L=t.mul(I,U),L=t.add(L,L),S=t.mul(p,L),_=t.mul(w,O),_=t.add(S,_),S=t.sub(C,_),_=t.add(C,_),_=t.mul(S,_),S=t.mul(T,S),L=t.mul(w,L),O=t.mul(p,O),T=t.sub(b,O),T=t.mul(p,T),T=t.add(T,L),L=t.add(b,b),b=t.add(L,b),b=t.add(b,O),b=t.mul(b,T),_=t.add(_,b),O=t.mul(v,U),O=t.add(O,O),b=t.mul(O,T),S=t.sub(S,b),L=t.mul(O,C),L=t.add(L,L),L=t.add(L,L),new l(S,_,L)}add(p){u(p);let{px:m,py:w,pz:I}=this,{px:v,py:U,pz:S}=p,_=t.ZERO,L=t.ZERO,b=t.ZERO,C=e.a,O=t.mul(e.b,Gh),T=t.mul(m,v),V=t.mul(w,U),H=t.mul(I,S),X=t.add(m,w),E=t.add(v,U);X=t.mul(X,E),E=t.add(T,V),X=t.sub(X,E),E=t.add(m,I);let k=t.add(v,S);return E=t.mul(E,k),k=t.add(T,H),E=t.sub(E,k),k=t.add(w,I),_=t.add(U,S),k=t.mul(k,_),_=t.add(V,H),k=t.sub(k,_),b=t.mul(C,E),_=t.mul(O,H),b=t.add(_,b),_=t.sub(V,b),b=t.add(V,b),L=t.mul(_,b),V=t.add(T,T),V=t.add(V,T),H=t.mul(C,H),E=t.mul(O,E),V=t.add(V,H),H=t.sub(T,H),H=t.mul(C,H),E=t.add(E,H),T=t.mul(V,E),L=t.add(L,T),T=t.mul(k,E),_=t.mul(X,_),_=t.sub(_,T),T=t.mul(X,V),b=t.mul(k,b),b=t.add(b,T),new l(_,L,b)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return g.wNAFCached(this,f,p,m=>{let w=t.invertBatch(m.map(I=>I.pz));return m.map((I,v)=>I.toAffine(w[v])).map(l.fromAffine)})}multiplyUnsafe(p){let m=l.ZERO;if(p===tr)return m;if(a(p),p===ut)return this;let{endo:w}=e;if(!w)return g.unsafeLadder(this,p);let{k1neg:I,k1:v,k2neg:U,k2:S}=w.splitScalar(p),_=m,L=m,b=this;for(;v>tr||S>tr;)v&ut&&(_=_.add(b)),S&ut&&(L=L.add(b)),b=b.double(),v>>=ut,S>>=ut;return I&&(_=_.negate()),U&&(L=L.negate()),L=new l(t.mul(L.px,w.beta),L.py,L.pz),_.add(L)}multiply(p){a(p);let m=p,w,I,{endo:v}=e;if(v){let{k1neg:U,k1:S,k2neg:_,k2:L}=v.splitScalar(m),{p:b,f:C}=this.wNAF(S),{p:O,f:T}=this.wNAF(L);b=g.constTimeNegate(U,b),O=g.constTimeNegate(_,O),O=new l(t.mul(O.px,v.beta),O.py,O.pz),w=b.add(O),I=C.add(T)}else{let{p:U,f:S}=this.wNAF(m);w=U,I=S}return l.normalizeZ([w,I])[0]}multiplyAndAddUnsafe(p,m,w){let I=l.BASE,v=(S,_)=>_===tr||_===ut||!S.equals(I)?S.multiplyUnsafe(_):S.multiply(_),U=v(this,m).add(v(p,w));return U.is0()?void 0:U}toAffine(p){let{px:m,py:w,pz:I}=this,v=this.is0();p==null&&(p=v?t.ONE:t.inv(I));let U=t.mul(m,p),S=t.mul(w,p),_=t.mul(I,p);if(v)return{x:t.ZERO,y:t.ZERO};if(!t.eql(_,t.ONE))throw new Error("invZ was invalid");return{x:U,y:S}}isTorsionFree(){let{h:p,isTorsionFree:m}=e;if(p===ut)return!0;if(m)return m(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:m}=e;return p===ut?this:m?m(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return Kt(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,g=Cs(l,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:i}}function Mw(r){let e=yo(r);return It(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function jh(r){let e=Mw(r),{Fp:t,n}=e,o=t.BYTES+1,s=2*t.BYTES+1;function i(E){return tr<E&&E<t.ORDER}function a(E){return ae(E,n)}function c(E){return Ts(E,n)}let{ProjectivePoint:f,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:h}=Vw({...e,toBytes(E,k,$){let B=k.toAffine(),x=t.toBytes(B.x),P=zt;return $?P(Uint8Array.from([k.hasEvenY()?2:3]),x):P(Uint8Array.from([4]),x,t.toBytes(B.y))},fromBytes(E){let k=E.length,$=E[0],B=E.subarray(1);if(k===o&&($===2||$===3)){let x=qt(B);if(!i(x))throw new Error("Point is not on curve");let P=l(x),M;try{M=t.sqrt(P)}catch(W){let te=W instanceof Error?": "+W.message:"";throw new Error("Point is not on curve"+te)}let K=(M&ut)===ut;return($&1)===1!==K&&(M=t.neg(M)),{x,y:M}}else if(k===s&&$===4){let x=t.fromBytes(B.subarray(0,t.BYTES)),P=t.fromBytes(B.subarray(t.BYTES,2*t.BYTES));return{x,y:P}}else throw new Error(`Point of length ${k} was invalid. Expected ${o} compressed bytes or ${s} uncompressed bytes`)}}),g=E=>Kt(vr(E,e.nByteLength));function y(E){let k=n>>ut;return E>k}function p(E){return y(E)?a(-E):E}let m=(E,k,$)=>qt(E.slice(k,$));class w{constructor(k,$,B){this.r=k,this.s=$,this.recovery=B,this.assertValidity()}static fromCompact(k){let $=e.nByteLength;return k=pe("compactSignature",k,$*2),new w(m(k,0,$),m(k,$,2*$))}static fromDER(k){let{r:$,s:B}=Wr.toSig(pe("DER",k));return new w($,B)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new w(this.r,this.s,k)}recoverPublicKey(k){let{r:$,s:B,recovery:x}=this,P=L(pe("msgHash",k));if(x==null||![0,1,2,3].includes(x))throw new Error("recovery id invalid");let M=x===2||x===3?$+e.n:$;if(M>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let K=x&1?"03":"02",j=f.fromHex(K+g(M)),W=c(M),te=a(-P*W),J=a(B*W),Q=f.BASE.multiplyAndAddUnsafe(j,te,J);if(!Q)throw new Error("point at infinify");return Q.assertValidity(),Q}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Hr(this.toDERHex())}toDERHex(){return Wr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Hr(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let I={isValidPrivateKey(E){try{return u(E),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let E=Cc(e.n);return $f(e.randomBytes(E),e.n)},precompute(E=8,k=f.BASE){return k._setWindowSize(E),k.multiply(BigInt(3)),k}};function v(E,k=!0){return f.fromPrivateKey(E).toRawBytes(k)}function U(E){let k=xr(E),$=typeof E=="string",B=(k||$)&&E.length;return k?B===o||B===s:$?B===2*o||B===2*s:E instanceof f}function S(E,k,$=!0){if(U(E))throw new Error("first arg must be private key");if(!U(k))throw new Error("second arg must be public key");return f.fromHex(k).multiply(u(E)).toRawBytes($)}let _=e.bits2int||function(E){let k=qt(E),$=E.length*8-e.nBitLength;return $>0?k>>BigInt($):k},L=e.bits2int_modN||function(E){return a(_(E))},b=mo(e.nBitLength);function C(E){if(typeof E!="bigint")throw new Error("bigint expected");if(!(tr<=E&&E<b))throw new Error(`bigint expected < 2^${e.nBitLength}`);return vr(E,e.nByteLength)}function O(E,k,$=T){if(["recovered","canonical"].some(he=>he in $))throw new Error("sign() legacy options not supported");let{hash:B,randomBytes:x}=e,{lowS:P,prehash:M,extraEntropy:K}=$;P==null&&(P=!0),E=pe("msgHash",E),M&&(E=pe("prehashed msgHash",B(E)));let j=L(E),W=u(k),te=[C(W),C(j)];if(K!=null&&K!==!1){let he=K===!0?x(t.BYTES):K;te.push(pe("extraEntropy",he))}let J=zt(...te),Q=j;function ge(he){let ke=_(he);if(!h(ke))return;let Se=c(ke),be=f.BASE.multiply(ke).toAffine(),Le=a(be.x);if(Le===tr)return;let Pt=a(Se*a(Q+Le*W));if(Pt===tr)return;let Ur=(be.x===Le?0:2)|Number(be.y&ut),Qn=Pt;return P&&y(Pt)&&(Qn=p(Pt),Ur^=1),new w(Le,Qn,Ur)}return{seed:J,k2sig:ge}}let T={lowS:e.lowS,prehash:!1},V={lowS:e.lowS,prehash:!1};function H(E,k,$=T){let{seed:B,k2sig:x}=O(E,k,$),P=e;return Rc(P.hash.outputLen,P.nByteLength,P.hmac)(B,x)}f.BASE._setWindowSize(8);function X(E,k,$,B=V){let x=E;if(k=pe("msgHash",k),$=pe("publicKey",$),"strict"in B)throw new Error("options.strict was renamed to lowS");let{lowS:P,prehash:M}=B,K,j;try{if(typeof x=="string"||xr(x))try{K=w.fromDER(x)}catch(be){if(!(be instanceof Wr.Err))throw be;K=w.fromCompact(x)}else if(typeof x=="object"&&typeof x.r=="bigint"&&typeof x.s=="bigint"){let{r:be,s:Le}=x;K=new w(be,Le)}else throw new Error("PARSE");j=f.fromHex($)}catch(be){if(be.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(P&&K.hasHighS())return!1;M&&(k=e.hash(k));let{r:W,s:te}=K,J=L(k),Q=c(te),ge=a(J*Q),he=a(W*Q),ke=f.BASE.multiplyAndAddUnsafe(j,ge,he)?.toAffine();return ke?a(ke.x)===W:!1}return{CURVE:e,getPublicKey:v,getSharedSecret:S,sign:H,verify:X,ProjectivePoint:f,Signature:w,utils:I}}function $w(r){return{hash:r,hmac:(e,...t)=>wo(r,e,ks(...t)),randomBytes:_n}}function Wh(r,e){let t=n=>jh({...r,...$w(n)});return Object.freeze({...t(e),create:t})}var Jh=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Yh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Hw=BigInt(1),Jc=BigInt(2),Zh=(r,e)=>(r+e/Jc)/e;function Kw(r){let e=Jh,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%e,u=f*f*r%e,l=le(u,t,e)*u%e,h=le(l,t,e)*u%e,g=le(h,Jc,e)*f%e,y=le(g,o,e)*g%e,p=le(y,s,e)*y%e,m=le(p,a,e)*p%e,w=le(m,c,e)*m%e,I=le(w,a,e)*p%e,v=le(I,t,e)*u%e,U=le(v,i,e)*y%e,S=le(U,n,e)*f%e,_=le(S,Jc,e);if(!Xc.eql(Xc.sqr(_),r))throw new Error("Cannot find square root");return _}var Xc=Ns(Jh,void 0,void 0,{sqrt:Kw}),bt=Wh({a:BigInt(0),b:BigInt(7),Fp:Xc,n:Yh,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Yh,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Hw*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,i=BigInt("0x100000000000000000000000000000000"),a=Zh(s*r,e),c=Zh(-n*r,e),f=ae(r-a*t-c*o,e),u=ae(-a*n-c*s,e),l=f>i,h=u>i;if(l&&(f=e-f),h&&(u=e-u),f>i||u>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:f,k2neg:h,k2:u}}}},zh),pk=BigInt(0);var mk=bt.ProjectivePoint;function Xh(){return bt.utils.randomPrivateKey()}function Qh(r,e){let t=Ee.digest(e instanceof Uint8Array?e:e.subarray());if(at(t))return t.then(({digest:n})=>bt.sign(n,r).toDERRawBytes()).catch(n=>{throw new N(String(n),"ERR_INVALID_INPUT")});try{return bt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new N(String(n),"ERR_INVALID_INPUT")}}function ed(r,e,t){let n=Ee.digest(t instanceof Uint8Array?t:t.subarray());if(at(n))return n.then(({digest:o})=>bt.verify(e,o,r)).catch(o=>{throw new N(String(o),"ERR_INVALID_INPUT")});try{return bt.verify(e,n.digest,r)}catch(o){throw new N(String(o),"ERR_INVALID_INPUT")}}function td(r){return bt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function rd(r){try{bt.getPublicKey(r,!0)}catch(e){throw new N(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Qc(r){try{bt.ProjectivePoint.fromHex(r)}catch(e){throw new N(String(e),"ERR_INVALID_PUBLIC_KEY")}}function nd(r){try{return bt.getPublicKey(r,!0)}catch(e){throw new N(String(e),"ERR_INVALID_PRIVATE_KEY")}}var To=class{_key;constructor(e){Qc(e),this._key=e}verify(e,t){return ed(this._key,t,e)}marshal(){return td(this._key)}get bytes(){return Rt.encode({Type:ye.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}async hash(){let e=Ee.digest(this.bytes),t;return at(e)?{bytes:t}=await e:t=e.bytes,t}},No=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??nd(e),rd(this._key),Qc(this._publicKey)}sign(e){return Qh(this._key,e)}get public(){return new To(this._publicKey)}marshal(){return this._key}get bytes(){return Wt.encode({Type:ye.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return z(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dn(this.bytes,e);throw new N(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function zw(r){return new No(r)}function Gw(r){return new To(r)}async function jw(){let r=Xh();return new No(r)}var Ii={rsa:Yc,ed25519:Vc,secp256k1:eu};function Ww(r){let e=Object.keys(Ii).join(" / ");return new N(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function tu(r){let e=Rt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ye.RSA:return Ii.rsa.unmarshalRsaPublicKey(t);case ye.Ed25519:return Ii.ed25519.unmarshalEd25519PublicKey(t);case ye.Secp256k1:return Ii.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw Ww(e.Type??"unknown")}}var Rb=ot(pn(),1);var rr="/",od=new TextEncoder().encode(rr),Ri=od[0],Ne=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=Y(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]!==Ri)throw new Error("Invalid key")}toString(e="utf8"){return z(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(rr))}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=od),this._buf[0]!==Ri){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Ri,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ri;)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 s=t[o],i=n[o];if(s<i)return!0;if(s>i)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(rr).slice(1)}type(){return Yw(this.baseNamespace())}name(){return Zw(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(rr)||(e+=rr),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(rr):new r(e.slice(0,-1).join(rr))}child(e){return this.toString()===rr?e:e.toString()===rr?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(),...Jw(e.map(t=>t.namespaces()))])}};function Yw(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Zw(r){let e=r.split(":");return e[e.length-1]}function Jw(r){return[].concat(...r)}var _b=ot(nu(),1);var sd="ERR_IPNS_EXPIRED_RECORD",_i="ERR_UNRECOGNIZED_VALIDITY";var nr="ERR_SIGNATURE_VERIFICATION";var ou="ERR_UNDEFINED_PARAMETER",id="ERR_INVALID_RECORD_DATA",ad="ERR_INVALID_VALUE",cd="ERR_INVALID_EMBEDDED_KEY";var ud="ERR_RECORD_TOO_LARGE";var xt;(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=()=>uo(t)}(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=xn((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.value!=null&&(s.uint32(10),s.bytes(o.value)),o.signatureV1!=null&&(s.uint32(18),s.bytes(o.signatureV1)),o.validityType!=null&&(s.uint32(24),r.ValidityType.codec().encode(o.validityType,s)),o.validity!=null&&(s.uint32(34),s.bytes(o.validity)),o.sequence!=null&&(s.uint32(40),s.uint64(o.sequence)),o.ttl!=null&&(s.uint32(48),s.uint64(o.ttl)),o.pubKey!=null&&(s.uint32(58),s.bytes(o.pubKey)),o.signatureV2!=null&&(s.uint32(66),s.bytes(o.signatureV2)),o.data!=null&&(s.uint32(74),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.value=o.bytes();break;case 2:i.signatureV1=o.bytes();break;case 3:i.validityType=r.ValidityType.codec().decode(o);break;case 4:i.validity=o.bytes();break;case 5:i.sequence=o.uint64();break;case 6:i.ttl=o.uint64();break;case 7:i.pubKey=o.bytes();break;case 8:i.signatureV2=o.bytes();break;case 9:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>wn(o,r.codec()),r.decode=o=>gn(o,r.codec())})(xt||(xt={}));var Xw=["string","number","bigint","symbol"],Qw=["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 fd(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(Xw.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(eb(r))return"Buffer";let t=tb(r);return t||"Object"}function eb(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function tb(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Qw.includes(e))return e}var d=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}};d.uint=new d(0,"uint",!0);d.negint=new d(1,"negint",!0);d.bytes=new d(2,"bytes",!0);d.string=new d(3,"string",!0);d.array=new d(4,"array",!1);d.map=new d(5,"map",!1);d.tag=new d(6,"tag",!1);d.float=new d(7,"float",!0);d.false=new d(7,"false",!0);d.true=new d(7,"true",!0);d.null=new d(7,"null",!0);d.undefined=new d(7,"undefined",!0);d.break=new d(7,"break",!0);var A=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 Hn=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",rb=new TextDecoder,nb=new TextEncoder;function Ti(r){return Hn&&globalThis.Buffer.isBuffer(r)}function Co(r){return r instanceof Uint8Array?Ti(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var md=Hn?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):dd(r,e,t):(r,e,t)=>t-e>64?rb.decode(r.subarray(e,t)):dd(r,e,t),Ni=Hn?r=>r.length>64?globalThis.Buffer.from(r):hd(r):r=>r.length>64?nb.encode(r):hd(r),Ct=r=>Uint8Array.from(r),Kn=Hn?(r,e,t)=>Ti(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),yd=Hn?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Co(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},gd=Hn?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function wd(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 hd(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 dd(r,e,t){let n=[];for(;e<t;){let o=r[e],s=null,i=o>239?4:o>223?3:o>191?2:1;if(e+i<=t){let a,c,f,u;switch(i){case 1:o<128&&(s=o);break;case 2:a=r[e+1],(a&192)===128&&(u=(o&31)<<6|a&63,u>127&&(s=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)&&(s=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&&(s=u))}}s===null?(s=65533,i=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),e+=i}return su(n)}var pd=4096;function su(r){let e=r.length;if(e<=pd)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=pd));return t}var ob=256,Lo=class{constructor(e=ob){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=gd(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=Kn(n,0,this.cursor)}else t=yd(this.chunks,this.cursor);return e&&this.reset(),t}};var F="CBOR decode error:",qn="CBOR encode error:",Uo=[];Uo[23]=1;Uo[24]=2;Uo[25]=3;Uo[26]=5;Uo[27]=9;function or(r,e,t){if(r.length-e<t)throw new Error(`${F} not enough data for type`)}var Be=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Qe(r,e,t){or(r,e,1);let n=r[e];if(t.strict===!0&&n<Be[0])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function et(r,e,t){or(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<Be[1])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function tt(r,e,t){or(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<Be[2])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function rt(r,e,t){or(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],s=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&s<Be[3])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);if(s<=Number.MAX_SAFE_INTEGER)return Number(s);if(t.allowBigInt===!0)return s;throw new Error(`${F} integers outside of the safe integer range are not supported`)}function bd(r,e,t,n){return new A(d.uint,Qe(r,e+1,n),2)}function xd(r,e,t,n){return new A(d.uint,et(r,e+1,n),3)}function Ed(r,e,t,n){return new A(d.uint,tt(r,e+1,n),5)}function vd(r,e,t,n){return new A(d.uint,rt(r,e+1,n),9)}function lt(r,e){return Ce(r,0,e.value)}function Ce(r,e,t){if(t<Be[0]){let n=Number(t);r.push([e|n])}else if(t<Be[1]){let n=Number(t);r.push([e|24,n])}else if(t<Be[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<Be[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<Be[4]){let o=[e|27,0,0,0,0,0,0,0],s=Number(n&BigInt(4294967295)),i=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=s&255,s=s>>8,o[7]=s&255,s=s>>8,o[6]=s&255,s=s>>8,o[5]=s&255,o[4]=i&255,i=i>>8,o[3]=i&255,i=i>>8,o[2]=i&255,i=i>>8,o[1]=i&255,r.push(o)}else throw new Error(`${F} encountered BigInt larger than allowable range`)}}lt.encodedSize=function(e){return Ce.encodedSize(e.value)};Ce.encodedSize=function(e){return e<Be[0]?1:e<Be[1]?2:e<Be[2]?3:e<Be[3]?5:9};lt.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Ad(r,e,t,n){return new A(d.negint,-1-Qe(r,e+1,n),2)}function Bd(r,e,t,n){return new A(d.negint,-1-et(r,e+1,n),3)}function kd(r,e,t,n){return new A(d.negint,-1-tt(r,e+1,n),5)}var iu=BigInt(-1),Sd=BigInt(1);function Id(r,e,t,n){let o=rt(r,e+1,n);if(typeof o!="bigint"){let s=-1-o;if(s>=Number.MIN_SAFE_INTEGER)return new A(d.negint,s,9)}if(n.allowBigInt!==!0)throw new Error(`${F} integers outside of the safe integer range are not supported`);return new A(d.negint,iu-BigInt(o),9)}function Ci(r,e){let t=e.value,n=typeof t=="bigint"?t*iu-Sd:t*-1-1;Ce(r,e.type.majorEncoded,n)}Ci.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*iu-Sd:t*-1-1;return n<Be[0]?1:n<Be[1]?2:n<Be[2]?3:n<Be[3]?5:9};Ci.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function Do(r,e,t,n){or(r,e,t+n);let o=Kn(r,e+t,e+t+n);return new A(d.bytes,o,t+n)}function Rd(r,e,t,n){return Do(r,e,1,t)}function _d(r,e,t,n){return Do(r,e,2,Qe(r,e+1,n))}function Td(r,e,t,n){return Do(r,e,3,et(r,e+1,n))}function Nd(r,e,t,n){return Do(r,e,5,tt(r,e+1,n))}function Cd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer bytes lengths not supported`);return Do(r,e,9,o)}function Li(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===d.string?Ni(r.value):r.value),r.encodedBytes}function zn(r,e){let t=Li(e);Ce(r,e.type.majorEncoded,t.length),r.push(t)}zn.encodedSize=function(e){let t=Li(e);return Ce.encodedSize(t.length)+t.length};zn.compareTokens=function(e,t){return ib(Li(e),Li(t))};function ib(r,e){return r.length<e.length?-1:r.length>e.length?1:wd(r,e)}function Po(r,e,t,n,o){let s=t+n;or(r,e,s);let i=new A(d.string,md(r,e+t,e+s),s);return o.retainStringBytes===!0&&(i.byteValue=Kn(r,e+t,e+s)),i}function Ld(r,e,t,n){return Po(r,e,1,t,n)}function Ud(r,e,t,n){return Po(r,e,2,Qe(r,e+1,n),n)}function Dd(r,e,t,n){return Po(r,e,3,et(r,e+1,n),n)}function Pd(r,e,t,n){return Po(r,e,5,tt(r,e+1,n),n)}function Od(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer string lengths not supported`);return Po(r,e,9,o,n)}var Fd=zn;function Gn(r,e,t,n){return new A(d.array,n,t)}function Vd(r,e,t,n){return Gn(r,e,1,t)}function Md(r,e,t,n){return Gn(r,e,2,Qe(r,e+1,n))}function $d(r,e,t,n){return Gn(r,e,3,et(r,e+1,n))}function Hd(r,e,t,n){return Gn(r,e,5,tt(r,e+1,n))}function Kd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer array lengths not supported`);return Gn(r,e,9,o)}function qd(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return Gn(r,e,1,1/0)}function Ui(r,e){Ce(r,d.array.majorEncoded,e.value)}Ui.compareTokens=lt.compareTokens;Ui.encodedSize=function(e){return Ce.encodedSize(e.value)};function jn(r,e,t,n){return new A(d.map,n,t)}function zd(r,e,t,n){return jn(r,e,1,t)}function Gd(r,e,t,n){return jn(r,e,2,Qe(r,e+1,n))}function jd(r,e,t,n){return jn(r,e,3,et(r,e+1,n))}function Wd(r,e,t,n){return jn(r,e,5,tt(r,e+1,n))}function Yd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer map lengths not supported`);return jn(r,e,9,o)}function Zd(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return jn(r,e,1,1/0)}function Di(r,e){Ce(r,d.map.majorEncoded,e.value)}Di.compareTokens=lt.compareTokens;Di.encodedSize=function(e){return Ce.encodedSize(e.value)};function Jd(r,e,t,n){return new A(d.tag,t,1)}function Xd(r,e,t,n){return new A(d.tag,Qe(r,e+1,n),2)}function Qd(r,e,t,n){return new A(d.tag,et(r,e+1,n),3)}function ep(r,e,t,n){return new A(d.tag,tt(r,e+1,n),5)}function tp(r,e,t,n){return new A(d.tag,rt(r,e+1,n),9)}function Pi(r,e){Ce(r,d.tag.majorEncoded,e.value)}Pi.compareTokens=lt.compareTokens;Pi.encodedSize=function(e){return Ce.encodedSize(e.value)};var hb=20,db=21,pb=22,mb=23;function rp(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${F} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new A(d.null,null,1):new A(d.undefined,void 0,1)}function np(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return new A(d.break,void 0,1)}function au(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${F} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${F} Infinity values are not supported`)}return new A(d.float,r,e)}function op(r,e,t,n){return au(cu(r,e+1),3,n)}function sp(r,e,t,n){return au(uu(r,e+1),5,n)}function ip(r,e,t,n){return au(lp(r,e+1),9,n)}function Oi(r,e,t){let n=e.value;if(n===!1)r.push([d.float.majorEncoded|hb]);else if(n===!0)r.push([d.float.majorEncoded|db]);else if(n===null)r.push([d.float.majorEncoded|pb]);else if(n===void 0)r.push([d.float.majorEncoded|mb]);else{let o,s=!1;(!t||t.float64!==!0)&&(cp(n),o=cu(Et,1),n===o||Number.isNaN(n)?(Et[0]=249,r.push(Et.slice(0,3)),s=!0):(up(n),o=uu(Et,1),n===o&&(Et[0]=250,r.push(Et.slice(0,5)),s=!0))),s||(yb(n),o=lp(Et,1),Et[0]=251,r.push(Et.slice(0,9)))}}Oi.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){cp(n);let o=cu(Et,1);if(n===o||Number.isNaN(n))return 3;if(up(n),o=uu(Et,1),n===o)return 5}return 9};var ap=new ArrayBuffer(9),ft=new DataView(ap,1),Et=new Uint8Array(ap,0);function cp(r){if(r===1/0)ft.setUint16(0,31744,!1);else if(r===-1/0)ft.setUint16(0,64512,!1);else if(Number.isNaN(r))ft.setUint16(0,32256,!1);else{ft.setFloat32(0,r);let e=ft.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ft.setUint16(0,31744,!1);else if(t===0)ft.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?ft.setUint16(0,0):o<-14?ft.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):ft.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function cu(r,e){if(r.length-e<2)throw new Error(`${F} 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,s;return n===0?s=o*2**-24:n!==31?s=(o+1024)*2**(n-25):s=o===0?1/0:NaN,t&32768?-s:s}function up(r){ft.setFloat32(0,r,!1)}function uu(r,e){if(r.length-e<4)throw new Error(`${F} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function yb(r){ft.setFloat64(0,r,!1)}function lp(r,e){if(r.length-e<8)throw new Error(`${F} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Oi.compareTokens=lt.compareTokens;function ee(r,e,t){throw new Error(`${F} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Fi(r){return()=>{throw new Error(`${F} ${r}`)}}var R=[];for(let r=0;r<=23;r++)R[r]=ee;R[24]=bd;R[25]=xd;R[26]=Ed;R[27]=vd;R[28]=ee;R[29]=ee;R[30]=ee;R[31]=ee;for(let r=32;r<=55;r++)R[r]=ee;R[56]=Ad;R[57]=Bd;R[58]=kd;R[59]=Id;R[60]=ee;R[61]=ee;R[62]=ee;R[63]=ee;for(let r=64;r<=87;r++)R[r]=Rd;R[88]=_d;R[89]=Td;R[90]=Nd;R[91]=Cd;R[92]=ee;R[93]=ee;R[94]=ee;R[95]=Fi("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)R[r]=Ld;R[120]=Ud;R[121]=Dd;R[122]=Pd;R[123]=Od;R[124]=ee;R[125]=ee;R[126]=ee;R[127]=Fi("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)R[r]=Vd;R[152]=Md;R[153]=$d;R[154]=Hd;R[155]=Kd;R[156]=ee;R[157]=ee;R[158]=ee;R[159]=qd;for(let r=160;r<=183;r++)R[r]=zd;R[184]=Gd;R[185]=jd;R[186]=Wd;R[187]=Yd;R[188]=ee;R[189]=ee;R[190]=ee;R[191]=Zd;for(let r=192;r<=215;r++)R[r]=Jd;R[216]=Xd;R[217]=Qd;R[218]=ep;R[219]=tp;R[220]=ee;R[221]=ee;R[222]=ee;R[223]=ee;for(let r=224;r<=243;r++)R[r]=Fi("simple values are not supported");R[244]=ee;R[245]=ee;R[246]=ee;R[247]=rp;R[248]=Fi("simple values are not supported");R[249]=op;R[250]=sp;R[251]=ip;R[252]=ee;R[253]=ee;R[254]=ee;R[255]=np;var vt=[];for(let r=0;r<24;r++)vt[r]=new A(d.uint,r,1);for(let r=-1;r>=-24;r--)vt[31-r]=new A(d.negint,r,1);vt[64]=new A(d.bytes,new Uint8Array(0),1);vt[96]=new A(d.string,"",1);vt[128]=new A(d.array,0,1);vt[160]=new A(d.map,0,1);vt[244]=new A(d.false,!1,1);vt[245]=new A(d.true,!0,1);vt[246]=new A(d.null,null,1);function fp(r){switch(r.type){case d.false:return Ct([244]);case d.true:return Ct([245]);case d.null:return Ct([246]);case d.bytes:return r.value.length?void 0:Ct([64]);case d.string:return r.value===""?Ct([96]):void 0;case d.array:return r.value===0?Ct([128]):void 0;case d.map:return r.value===0?Ct([160]):void 0;case d.uint:return r.value<24?Ct([Number(r.value)]):void 0;case d.negint:if(r.value>=-24)return Ct([31-Number(r.value)])}}var wb={float64:!1,mapSorter:Eb,quickEncodeToken:fp};function bb(){let r=[];return r[d.uint.major]=lt,r[d.negint.major]=Ci,r[d.bytes.major]=zn,r[d.string.major]=Fd,r[d.array.major]=Ui,r[d.map.major]=Di,r[d.tag.major]=Pi,r[d.float.major]=Oi,r}var hp=bb(),lu=new Lo,Mi=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(`${qn} object contains circular references`);return new r(t,e)}},_r={null:new A(d.null,null),undefined:new A(d.undefined,void 0),true:new A(d.true,!0),false:new A(d.false,!1),emptyArray:new A(d.array,0),emptyMap:new A(d.map,0)},Tr={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new A(d.float,r):r>=0?new A(d.uint,r):new A(d.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new A(d.uint,r):new A(d.negint,r)},Uint8Array(r,e,t,n){return new A(d.bytes,r)},string(r,e,t,n){return new A(d.string,r)},boolean(r,e,t,n){return r?_r.true:_r.false},null(r,e,t,n){return _r.null},undefined(r,e,t,n){return _r.undefined},ArrayBuffer(r,e,t,n){return new A(d.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new A(d.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[_r.emptyArray,new A(d.break)]:_r.emptyArray;n=Mi.createCheck(n,r);let o=[],s=0;for(let i of r)o[s++]=Vi(i,t,n);return t.addBreakTokens?[new A(d.array,r.length),o,new A(d.break)]:[new A(d.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",s=o?r.keys():Object.keys(r),i=o?r.size:s.length;if(!i)return t.addBreakTokens===!0?[_r.emptyMap,new A(d.break)]:_r.emptyMap;n=Mi.createCheck(n,r);let a=[],c=0;for(let f of s)a[c++]=[Vi(f,t,n),Vi(o?r.get(f):r[f],t,n)];return xb(a,t),t.addBreakTokens?[new A(d.map,i),a,new A(d.break)]:[new A(d.map,i),a]}};Tr.Map=Tr.Object;Tr.Buffer=Tr.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Tr[`${r}Array`]=Tr.DataView;function Vi(r,e={},t){let n=fd(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||Tr[n];if(typeof o=="function"){let i=o(r,n,e,t);if(i!=null)return i}let s=Tr[n];if(!s)throw new Error(`${qn} unsupported type: ${n}`);return s(r,n,e,t)}function xb(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Eb(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,s=hp[o].compareTokens(t,n);return s===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),s}function dp(r,e,t,n){if(Array.isArray(e))for(let o of e)dp(r,o,t,n);else t[e.type.major](r,e,n)}function pp(r,e,t){let n=Vi(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let s=e[n.type.major];if(s.encodedSize){let i=s.encodedSize(n,t),a=new Lo(i);if(s(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Co(a.chunks[0])}}return lu.reset(),dp(lu,n,e,t),lu.toBytes(!0)}function Wn(r,e){return e=Object.assign({},wb,e),pp(r,hp,e)}var vb={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},$i=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=vt[e];if(t===void 0){let n=R[e];if(!n)throw new Error(`${F} 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}},Oo=Symbol.for("DONE"),Hi=Symbol.for("BREAK");function Ab(r,e,t){let n=[];for(let o=0;o<r.value;o++){let s=Yn(e,t);if(s===Hi){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed array`)}if(s===Oo)throw new Error(`${F} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=s}return n}function Bb(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},s=n?new Map:void 0;for(let i=0;i<r.value;i++){let a=Yn(e,t);if(a===Hi){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed map`)}if(a===Oo)throw new Error(`${F} found map but not enough entries (got ${i} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${F} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&s.has(a)||!n&&a in o))throw new Error(`${F} found repeat map key "${a}"`);let c=Yn(e,t);if(c===Oo)throw new Error(`${F} found map but not enough entries (got ${i} [no value], expected ${r.value})`);n?s.set(a,c):o[a]=c}return n?s:o}function Yn(r,e){if(r.done())return Oo;let t=r.next();if(t.type===d.break)return Hi;if(t.type.terminal)return t.value;if(t.type===d.array)return Ab(t,r,e);if(t.type===d.map)return Bb(t,r,e);if(t.type===d.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Yn(r,e);return e.tags[t.value](n)}throw new Error(`${F} tag not supported (${t.value})`)}throw new Error("unsupported")}function fu(r,e){if(!(r instanceof Uint8Array))throw new Error(`${F} data to decode must be a Uint8Array`);e=Object.assign({},vb,e);let t=e.tokenizer||new $i(r,e),n=Yn(t,e);if(n===Oo)throw new Error(`${F} did not find any content to decode`);if(n===Hi)throw new Error(`${F} got unexpected break`);return[n,r.subarray(t.pos())]}function ht(r,e){let[t,n]=fu(r,e);if(n.length>0)throw new Error(`${F} too many terminals, data makes no sense`);return t}var nt=ot(pn(),1);var mp=Je("ipns:utils"),yp=Y("/ipns/"),kb=114,gp=async(r,e)=>{if(e==null||r==null){let n=new Error("one or more of the provided parameters are not defined");throw mp.error(n),(0,nt.default)(n,ou)}let t;if(e.pubKey!=null){try{t=tu(e.pubKey)}catch(o){throw mp.error(o),o}if(!(await yf(e.pubKey)).equals(r))throw(0,nt.default)(new Error("Embedded public key did not match PeerID"),cd)}else r.publicKey!=null&&(t=tu(r.publicKey));if(t!=null)return t;throw(0,nt.default)(new Error("no public key is available"),ou)};var wp=r=>{let e=Y("ipns-signature:");return Fe([e,r])},Zr=r=>"signatureV1"in r?xt.encode({value:Y(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:Y(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):xt.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data});function Lt(r){let e=xt.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,nt.default)(new Error("missing data or signatureV2"),nr);let t=bp(e.data),n=Sb(t.Value),o=z(t.Validity);if(e.value!=null&&e.signatureV1!=null)return Ib(e),{value:n,validityType:xt.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:xt.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 hu=r=>Fe([yp,r.toBytes()]),Zn=r=>fo(r.slice(yp.length));var bp=r=>{let e=ht(r);if(e.ValidityType===0)e.ValidityType=xt.ValidityType.EOL;else throw(0,nt.default)(new Error("Unknown validity type"),_i);return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e},Sb=r=>{if(r!=null){if(Qu(r))return`/ipns/${r.toCID().toString(hr)}`;if(r instanceof Uint8Array){let n=z(r);n.startsWith("/")&&(r=n)}let e=r.toString().trim();if(e.startsWith("/")&&e.length>1)return e;let t=oe.asCID(r);if(t!=null)return t.code===kb?`/ipns/${t.toString(hr)}`:`/ipfs/${t.toV1().toString()}`;try{return r instanceof Uint8Array?`/ipfs/${oe.decode(r).toV1().toString()}`:`/ipfs/${oe.parse(e).toV1().toString()}`}catch{}}throw(0,nt.default)(new Error("Value must be a valid content path starting with /"),ad)},Ib=r=>{if(r.data==null)throw(0,nt.default)(new Error("Record data is missing"),id);let e=bp(r.data);if(!ce(e.Value,r.value??new Uint8Array(0)))throw(0,nt.default)(new Error('Field "value" did not match between protobuf and CBOR'),nr);if(!ce(e.Validity,r.validity??new Uint8Array(0)))throw(0,nt.default)(new Error('Field "validity" did not match between protobuf and CBOR'),nr);if(e.ValidityType!==r.validityType)throw(0,nt.default)(new Error('Field "validityType" did not match between protobuf and CBOR'),nr);if(e.Sequence!==r.sequence)throw(0,nt.default)(new Error('Field "sequence" did not match between protobuf and CBOR'),nr);if(e.TTL!==r.ttl)throw(0,nt.default)(new Error('Field "ttl" did not match between protobuf and CBOR'),nr)};var J8=Je("ipns"),X8=st.code,Q8=60*60*1e9,Tb="/ipns/",eS=Tb.length;var Fo=ot(pn(),1),xp=ot(nu(),1);var qi=Je("ipns:validator"),Nb=1024*10,Cb=async(r,e)=>{let t=Lt(e),n;try{let o=wp(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw qi.error("record signature verification failed"),(0,Fo.default)(new Error("record signature verification failed"),nr);if(t.validityType===xt.ValidityType.EOL){if(xp.default.fromString(t.validity).toDate().getTime()<Date.now())throw qi.error("record has expired"),(0,Fo.default)(new Error("record has expired"),sd)}else if(t.validityType!=null)throw qi.error("unrecognized validity type"),(0,Fo.default)(new Error("unrecognized validity type"),_i);qi("ipns record for %s is valid",t.value)};async function Ep(r,e){if(e.byteLength>Nb)throw(0,Fo.default)(new Error("record too large"),ud);let t=Zn(r),n=Lt(e),o=await gp(t,n);await Cb(o,e)}async function*Vo(r){let e=/\r?\n/,t=new TextDecoder("utf8"),n="";for await(let o of r){typeof o=="string"&&(o=new TextEncoder().encode(o)),n+=t.decode(o,{stream:!0});let s=n.split(e);n=s.pop()??"";for(let i=0;i<s.length;i++)yield JSON.parse(s[i])}n+=t.decode(),n!==""&&(yield JSON.parse(n))}var pu=ot(Ap(),1);var $o=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},mu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Bp=r=>globalThis.DOMException===void 0?new mu(r):new DOMException(r),kp=r=>{let e=r.reason===void 0?Bp("This operation was aborted."):r.reason;return e instanceof Error?e:Bp(e)};function Ho(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,c=new Promise((f,u)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:h}=e;h.aborted&&u(kp(h)),h.addEventListener("abort",()=>{u(kp(h))})}if(t===Number.POSITIVE_INFINITY){r.then(f,u);return}let l=new $o;i=s.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){u(h)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?f():o instanceof Error?u(o):(l.message=o??`Promise timed out after ${t} milliseconds`,u(l))},t),(async()=>{try{f(await r)}catch(h){u(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},c}function yu(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Ko=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=yu(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Ut=class extends pu.default{#e;#t;#r=0;#i;#c;#p=0;#o;#u;#n;#m;#s=0;#l;#a;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ko,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#i=e.intervalCap,this.#c=e.interval,this.#n=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#a=e.autoStart===!1}get#b(){return this.#t||this.#r<this.#i}get#x(){return this.#s<this.#l}#E(){this.#s--,this.#f(),this.emit("next")}#v(){this.#w(),this.#g(),this.#u=void 0}get#A(){let e=Date.now();if(this.#o===void 0){let t=this.#p-e;if(t<0)this.#r=this.#e?this.#s:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){if(this.#n.size===0)return this.#o&&clearInterval(this.#o),this.#o=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#a){let e=!this.#A;if(this.#b&&this.#x){let t=this.#n.dequeue();return t?(this.emit("active"),t(),e&&this.#g(),!0):!1}}return!1}#g(){this.#t||this.#o!==void 0||(this.#o=setInterval(()=>{this.#w()},this.#c),this.#p=Date.now()+this.#c)}#w(){this.#r===0&&this.#s===0&&this.#o&&(clearInterval(this.#o),this.#o=void 0),this.#r=this.#e?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#h()}async#B(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#y,...t},new Promise((n,o)=>{this.#n.enqueue(async()=>{this.#s++,this.#r++;try{t.signal?.throwIfAborted();let s=e({signal:t.signal});t.timeout&&(s=Ho(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#B(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof $o&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#a?(this.#a=!1,this.#h(),this):this}pause(){this.#a=!0}clear(){this.#n=new this.#m}async onEmpty(){this.#n.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#n.size<e||await this.#d("next",()=>this.#n.size<e)}async onIdle(){this.#s===0&&this.#n.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#n.size}sizeBy(e){return this.#n.filter(e).length}get pending(){return this.#s}get isPaused(){return this.#a}};function Db(r){return r[Symbol.asyncIterator]!=null}function Pb(r){if(Db(r))return(async()=>{for await(let e of r)return e})();for(let e of r)return e}var Gi=Pb;var gu=Y("/ipns/");function Sp(r){return ce(r.subarray(0,gu.byteLength),gu)}var Ip=r=>fo(r.slice(gu.length)),ji=class{client;constructor(e){this.client=e}async*findProviders(e,t={}){yield*yn(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs??[]}))}async provide(){}async put(e,t,n){if(!Sp(e))return;let o=Ip(e),s=Lt(t);await this.client.putIPNS(o,s,n)}async get(e,t){if(!Sp(e))throw new N("Not found","ERR_NOT_FOUND");let n=Ip(e);try{let o=await this.client.getIPNS(n,t);return Zr(o)}catch(o){throw o.code==="ERR_BAD_RESPONSE"?new N("Not found","ERR_NOT_FOUND"):o}}},Wi=class{client;constructor(e){this.client=e}async findPeer(e,t={}){let n=await Gi(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new N("Not found","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){}};var ze=Je("delegated-routing-v1-http-api-client"),Rp={concurrentRequests:4,timeout:3e4},Yi=class{started;httpQueue;shutDownController;clientUrl;timeout;contentRouting;peerRouting;constructor(e,t={}){this.started=!1,this.shutDownController=new AbortController,cr(1/0,this.shutDownController.signal),this.httpQueue=new Ut({concurrency:t.concurrentRequests??Rp.concurrentRequests}),this.clientUrl=e instanceof URL?e:new URL(e),this.timeout=t.timeout??Rp.timeout,this.contentRouting=new ji(this),this.peerRouting=new Wi(this)}get[eo](){return this.contentRouting}get[to](){return this.peerRouting}isStarted(){return this.started}start(){this.started=!0}stop(){this.httpQueue.clear(),this.shutDownController.abort(),this.started=!1}async*getProviders(e,t={}){ze("getProviders starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));try{await o.promise;let i=`${this.clientUrl}routing/v1/providers/${e.toString()}`,c=await fetch(i,{headers:{Accept:"application/x-ndjson"},signal:n});if(c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("Routing response had no body","ERR_BAD_RESPONSE");if(c.headers.get("Content-Type")==="application/json"){let u=await c.json();for(let l of u.Providers){let h=this.#e(l);h!=null&&(yield h)}}else for await(let u of Vo(vs(c.body))){let l=this.#e(u);l!=null&&(yield l)}}catch(i){ze.error("getProviders errored:",i)}finally{n.clear(),s.resolve(),ze("getProviders finished: %c",e)}}async*getPeers(e,t={}){ze("getPeers starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));try{await o.promise;let i=`${this.clientUrl}routing/v1/peers/${e.toCID().toString()}`,c=await fetch(i,{headers:{Accept:"application/x-ndjson"},signal:n});if(c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("Routing response had no body","ERR_BAD_RESPONSE");if(c.headers.get("Content-Type")==="application/json"){let u=await c.json();for(let l of u.Peers){let h=this.#e(l);h!=null&&(yield h)}}else for await(let u of Vo(vs(c.body))){let l=this.#e(u);l!=null&&(yield l)}}catch(i){ze.error("getPeers errored:",i)}finally{n.clear(),s.resolve(),ze("getPeers finished: %c",e)}}async getIPNS(e,t={}){ze("getIPNS starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));let i=`${this.clientUrl}routing/v1/ipns/${e.toCID().toString()}`;try{await o.promise;let c=await fetch(i,{headers:{Accept:"application/vnd.ipfs.ipns-record"},signal:n});if(ze("getIPNS GET %s %d",i,c.status),c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("GET ipns response had no body","ERR_BAD_RESPONSE");let f=await c.arrayBuffer(),u=new Uint8Array(f,0,f.byteLength);return t.validate!==!1&&await Ep(hu(e),u),Lt(u)}catch(a){throw ze.error("getIPNS GET %s error:",i,a),a}finally{n.clear(),s.resolve(),ze("getIPNS finished: %c",e)}}async putIPNS(e,t,n={}){ze("putIPNS starts: %c",e);let o=Dr([this.shutDownController.signal,n.signal,AbortSignal.timeout(this.timeout)]),s=Ie(),i=Ie();this.httpQueue.add(async()=>(s.resolve(),i.promise));let a=`${this.clientUrl}routing/v1/ipns/${e.toCID().toString()}`;try{await s.promise;let c=Zr(t),u=await fetch(a,{method:"PUT",headers:{"Content-Type":"application/vnd.ipfs.ipns-record"},body:c,signal:o});if(ze("putIPNS PUT %s %d",a,u.status),u.status!==200)throw new N("PUT ipns response had status other than 200","ERR_BAD_RESPONSE")}catch(c){throw ze.error("putIPNS PUT %s error:",a,c.stack),c}finally{o.clear(),i.resolve(),ze("putIPNS finished: %c",e)}}#e(e){let t=[],n=e.Addrs?.map(Fr)??[];return e.Protocols!=null&&t.push(...e.Protocols),e.Protocol!=null&&(t.push(e.Protocol),delete e.Protocol),{...e,Schema:"peer",ID:xc(e.ID),Addrs:n,Protocols:t}}};function _p(r,e={}){return new Yi(new URL(r),e)}var Tp=Y("/ipns/");function Np(r){return ce(r.subarray(0,Tp.byteLength),Tp)}var wu=class{client;constructor(e){this.client=_p(e)}async provide(e,t){}async*findProviders(e,t){yield*yn(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs,protocols:n.Protocols}))}async put(e,t,n){if(!Np(e))return;let o=Zn(e),s=Lt(t);await this.client.putIPNS(o,s,n)}async get(e,t){if(!Np(e))throw new N("Not found","ERR_NOT_FOUND");let n=Zn(e);try{let o=await this.client.getIPNS(n,t);return Zr(o)}catch(o){throw o.code==="ERR_BAD_RESPONSE"?new N("Not found","ERR_NOT_FOUND"):o}}async findPeer(e,t){let n=await Gi(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new N("Not found","ERR_NOT_FOUND")}async*getClosestPeers(e,t){}};function bu(r){return new wu(new URL(r))}function Zi(r){let e=[At.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var xu=60;function Ji(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:At[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:At[e.type],TTL:e.TTL??e.ttl??xu,data:e.data instanceof Uint8Array?z(e.data):e.data}))}}var Ob=4;function Eu(r,e={}){let t=new Ut({concurrency:e.queryConcurrency??Ob});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),Zi(o.types).forEach(a=>{s.append("type",At[a])}),o.onProgress?.(new ne("dns:query",{detail:n}));let i=await t.add(async()=>{let a=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=Ji(await a.json());return o.onProgress?.(new ne("dns:response",{detail:c})),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Cp(){return[Eu("https://cloudflare-dns.com/dns-query"),Eu("https://dns.google/resolve")]}var Dp=ot(Up(),1);var vu=class{lru;constructor(e){this.lru=(0,Dp.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return Ji({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:At[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??xu)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Pp(r){return new vu(r)}var Fb=1e3,Xi=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Pp(e.cacheSize??Fb),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Cp())}async query(e,t={}){let n=Zi(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new ne("dns:cache",{detail:o})),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let f=await c(e,{...t,types:n});for(let u of f.Answer)this.cache.add(e,u);return f}catch(f){a.push(f),t.onProgress?.(new ne("dns:error",{detail:f}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var At;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(At||(At={}));function Op(r={}){return new Xi(r)}var $p="/pin/",Fp="/pinned-block/",Au=hr,Vp=1;function Mp(r){return r.version===0&&(r=r.toV1()),new Ne(`${$p}${r.toString(Au)}`)}var Qi=class{datastore;blockstore;dagWalkers;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.dagWalkers=n}async*add(e,t={}){let n=Mp(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let s=new Pr({concurrency:Vp});for await(let a of this.#e(e,s,{...t,depth:o}))await this.#t(a,c=>c.pinnedBy.find(f=>ce(f,e.bytes))!=null?!1:(c.pinCount++,c.pinnedBy.push(e.bytes),!0),t),yield a;let i={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,Wn(i),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=this.dagWalkers[e.code];if(o==null)throw new Error(`No dag walker found for cid codec ${e.code}`);let s=await this.blockstore.get(e,n);yield e;for await(let i of o.walk(s))yield*await t.add(async()=>this.#e(i,t,{...n,depth:n.depth-1}))}async#t(e,t,n){let o=new Ne(`${Fp}${Au.encode(e.multihash.bytes)}`),s={pinCount:0,pinnedBy:[]};try{s=ht(await this.datastore.get(o,n))}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}if(t(s)){if(s.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,Wn(s),n),n.onProgress?.(new ne("helia:pin:add",e))}}async*rm(e,t={}){let n=Mp(e),o=await this.datastore.get(n,t),s=ht(o);await this.datastore.delete(n,t);let i=new Pr({concurrency:Vp});for await(let a of this.#e(e,i,{...t,depth:s.depth}))await this.#t(a,c=>(c.pinCount--,c.pinnedBy=c.pinnedBy.filter(f=>ce(f,e.bytes)),!0),{...t,depth:s.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:$p+(e.cid!=null?`${e.cid.toString(hr)}`:"")},e)){let o=oe.parse(t.toString().substring(5),hr),s=ht(n);yield{cid:o,...s}}}async isPinned(e,t={}){let n=new Ne(`${Fp}${Au.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}};var ea=class{log;routers;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[]}async start(){await ur(...this.routers)}async stop(){await lr(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new N("No content routers available","ERR_NO_ROUTERS_AVAILABLE");for await(let n of mr(...Jn(this.routers,"findProviders").map(o=>o.findProviders(e,t))))n!=null&&(yield n)}async provide(e,t={}){if(this.routers.length===0)throw new N("No content routers available","ERR_NO_ROUTERS_AVAILABLE");await Promise.all(Jn(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async put(e,t,n){await Promise.all(Jn(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Jn(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new N("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=this,o=mr(...Jn(this.routers,"findPeer").map(s=>async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error(i)}}()));for await(let s of o)if(s!=null)return s;throw new N("Could not find peer in routing","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new N("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");for await(let n of mr(...Jn(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Jn(r,e){return r.filter(t=>t[e]!=null)}var Nr={},Xn=r=>{r.addEventListener("message",e=>{Xn.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{Xn.dispatchEvent("message",r,e)})};Xn.addEventListener=(r,e)=>{Nr[r]==null&&(Nr[r]=[]),Nr[r].push(e)};Xn.removeEventListener=(r,e)=>{Nr[r]!=null&&(Nr[r]=Nr[r].filter(t=>t===e))};Xn.dispatchEvent=function(r,e,t){Nr[r]!=null&&Nr[r].forEach(n=>n(e,t))};var Bu=Xn;var ku="lock:worker:request-read",Su="lock:worker:release-read",Iu="lock:master:grant-read",Ru="lock:worker:request-write",_u="lock:worker:release-write",Tu="lock:master:grant-write";var Hp=(r=21)=>Math.random().toString().substring(2);var Kp=(r,e,t,n,o)=>(s,i)=>{if(i.data.type!==t)return;let a={type:i.data.type,name:i.data.name,identifier:i.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:o,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=u=>{if(u==null||u.data==null)return;let l={type:u.data.type,name:u.data.name,identifier:u.data.identifier};l.type===n&&l.identifier===a.identifier&&(s.removeEventListener("message",f),c())};s.addEventListener("message",f)})}}}))},qp=(r,e,t,n)=>async()=>{let o=Hp();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(s=>{let i=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===o&&(globalThis.removeEventListener("message",i),s(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",i)})},Vb={singleProcess:!1},zp=r=>{if(r=Object.assign({},Vb,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return Bu.addEventListener("message",Kp(t,"requestReadLock",ku,Su,Iu)),Bu.addEventListener("message",Kp(t,"requestWriteLock",Ru,_u,Tu)),t}return{isWorker:!0,readLock:t=>qp(t,ku,Iu,Su),writeLock:t=>qp(t,Ru,Tu,_u)}};var Jr={},Cr;async function Nu(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Ho((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Mb=(r,e)=>{if(Cr.isWorker===!0)return{readLock:Cr.readLock(r,e),writeLock:Cr.writeLock(r,e)};let t=new Ut({concurrency:1}),n;return{async readLock(){if(n!=null)return Nu(n,e);n=new Ut({concurrency:e.concurrency,autoStart:!1});let o=n,s=Nu(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),s},async writeLock(){return n=null,Nu(t,e)}}},$b={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Cu(r){let e=Object.assign({},$b,r);return Cr==null&&(Cr=zp(e),Cr.isWorker!==!0&&(Cr.addEventListener("requestReadLock",t=>{Jr[t.data.name]!=null&&Jr[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),Cr.addEventListener("requestWriteLock",async t=>{Jr[t.data.name]!=null&&Jr[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Jr[e.name]==null&&(Jr[e.name]=Mb(e.name,e)),Jr[e.name]}var ta=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Cu({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ur(this.child),this.started=!0}async stop(){await lr(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let s of e){if(await o.pins.isPinned(s))throw new Error("CID was pinned");yield s}}(),t)}finally{n()}}async has(e,t={}){let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}async createSession(e,t){let n=await this.lock.readLock();try{let o=await this.child.createSession(e,t);if(o==null)throw new N("Sessions not supported","ERR_UNSUPPORTED");return o}finally{n()}}};var jp=42;function Hb(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=oe.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new A(d.tag,jp),new A(d.bytes,t)]}function Kb(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function qb(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Gp={float64:!0,typeEncoders:{Object:Hb,undefined:Kb,number:qb}},n6={...Gp,typeEncoders:{...Gp.typeEncoders}};function zb(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return oe.decode(r.subarray(1))}var Lu={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Lu.tags[jp]=zb;var o6={...Lu,tags:Lu.tags.slice()};var Wp=113;var Yp=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===d.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===d.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[d.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s);e.push(o)}[d.negint.major](e,t){this[d.uint.major](e,t)}[d.bytes.major](e,t){throw new Error(`${qn} unsupported type: Uint8Array`)}[d.string.major](e,t){this.prefix(e);let n=Ni(JSON.stringify(t.value));e.push(n.length>32?Co(n):n)}[d.array.major](e,t){this.prefix(e),this.inRecursive.push({type:d.array,elements:0}),e.push([91])}[d.map.major](e,t){this.prefix(e),this.inRecursive.push({type:d.map,elements:0}),e.push([123])}[d.tag.major](e,t){}[d.float.major](e,t){if(t.type.name==="break"){let i=this.inRecursive.pop();if(i){if(i.type===d.array)e.push([93]);else if(i.type===d.map)e.push([125]);else throw new Error("Unexpected recursive type; this should not happen!");return}throw new Error("Unexpected break; this should not happen!")}if(t.value===void 0)throw new Error(`${qn} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),o=[],s=!1;for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i),!s&&(o[i]===46||o[i]===101||o[i]===69)&&(s=!0);s||(o.push(46),o.push(48)),e.push(o)}};var Xr=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${F} unexpected end of input at position ${this._pos}`);for(let t=0;t<e.length;t++)if(this.data[this._pos++]!==e[t])throw new Error(`${F} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=a=>{for(;!this.done();){let c=this.ch();if(a.includes(c))this._pos++;else break}};if(this.ch()===45&&(t=!0,this._pos++),this.ch()===48)if(this._pos++,this.ch()===46)this._pos++,n=!0;else return new A(d.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${F} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${F} unexpected token at position ${this._pos}`);n=!0,this._pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this._pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this._pos++,o([48,49,50,51,52,53,54,55,56,57]));let s=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),i=parseFloat(s);return n?new A(d.float,i,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(i)?new A(i>=0?d.uint:d.negint,i,this._pos-e):new A(i>=0?d.uint:d.negint,BigInt(s),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${F} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let s=this._pos,i=0;s<this.data.length&&i<65536;s++,i++){let a=this.data[s];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,s));return this._pos=s+1,new A(d.string,c,i)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${F} unexpected end of unicode escape sequence at position ${this._pos}`);let s=0;for(let i=0;i<4;i++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${F} unexpected unicode escape character at position ${this._pos}`);s=s*16+a,this._pos++}return s},o=()=>{let s=this.ch(),i=null,a=s>239?4:s>223?3:s>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${F} unexpected unicode sequence at position ${this._pos}`);let c,f,u,l;switch(a){case 1:s<128&&(i=s);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(l=(s&31)<<6|c&63,l>127&&(i=l));break;case 3:c=this.data[this._pos+1],f=this.data[this._pos+2],(c&192)===128&&(f&192)===128&&(l=(s&15)<<12|(c&63)<<6|f&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=this.data[this._pos+1],f=this.data[this._pos+2],u=this.data[this._pos+3],(c&192)===128&&(f&192)===128&&(u&192)===128&&(l=(s&15)<<18|(c&63)<<12|(f&63)<<6|u&63,l>65535&&l<1114112&&(i=l))}i===null?(i=65533,a=1):i>65535&&(i-=65536,t.push(i>>>10&1023|55296),i=56320|i&1023),t.push(i),this._pos+=a};for(;!this.done();){let s=this.ch(),i;switch(s){case 92:if(this._pos++,this.done())throw new Error(`${F} unexpected string termination at position ${this._pos}`);switch(i=this.ch(),this._pos++,i){case 34:case 39:case 92:case 47:t.push(i);break;case 98:t.push(8);break;case 116:t.push(9);break;case 110:t.push(10);break;case 102:t.push(12);break;case 114:t.push(13);break;case 117:t.push(n());break;default:throw new Error(`${F} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new A(d.string,su(t),this._pos-e);default:if(s<32)throw new Error(`${F} invalid control character at position ${this._pos}`);s<128?(t.push(s),this._pos++):o()}}throw new Error(`${F} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new A(d.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new A(d.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new A(d.null,null,4);case 102:return this.expect([102,97,108,115,101]),new A(d.false,!1,5);case 116:return this.expect([116,114,117,101]),new A(d.true,!0,4);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.parseNumber();default:throw new Error(`${F} unexpected character at position ${this._pos}`)}}next(){switch(this.skipWhitespace(),this.currentMode()){case"value":return this.modeStack.pop(),this.parseValue();case"array-value":{if(this.modeStack.pop(),this.ch()===93)return this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);if(this.ch()!==44)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting array delimiter but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue()}case"array-start":return this.modeStack.pop(),this.ch()===93?(this._pos++,this.skipWhitespace(),new A(d.break,void 0,1)):(this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue());case"obj-key":if(this.ch()===125)return this.modeStack.pop(),this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);if(this.ch()!==44)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting object delimiter but found '${String.fromCharCode(this.ch())}'`);this._pos++,this.skipWhitespace();case"obj-start":{if(this.modeStack.pop(),this.ch()===125)return this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting key/value delimiter ':' but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("obj-value"),e}case"obj-value":return this.modeStack.pop(),this.modeStack.push("obj-key"),this.skipWhitespace(),this.parseValue();default:throw new Error(`${F} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function ra(r,e){return e=Object.assign({tokenizer:new Xr(r,e)},e),ht(r,e)}var Wb={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Wb.tags[42]=oe.parse;var Jp=297;var E6=new TextDecoder;var v6=new TextEncoder;var Zb=new TextDecoder;function Uu(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function na(r,e){let t;[t,e]=Uu(r,e);let n=e+t;if(t<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(e,n),n]}function Xp(r,e){let t;return[t,e]=Uu(r,e),[t&7,t>>3,e]}function Jb(r){let e={},t=r.length,n=0;for(;n<t;){let o,s;if([o,s,n]=Xp(r,n),s===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=na(r,n)}else if(s===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let i;[i,n]=na(r,n),e.Name=Zb.decode(i)}else if(s===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=Uu(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${s}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Qp(r){let e=r.length,t=0,n,o=!1,s;for(;t<e;){let a,c;if([a,c,t]=Xp(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(s)throw new Error("protobuf: (PBNode) duplicate Data section");[s,t]=na(r,t),n&&(o=!0)}else if(c===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let f;[f,t]=na(r,t),n.push(Jb(f))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let i={};return s&&(i.Data=s),i.Links=n||[],i}var B6=new TextEncoder,k6=2**32,S6=2**31;var _6=new TextEncoder;function e0(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var t0=112;function r0(r){let e=e0(r),t=Qp(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let s={};try{s.Hash=oe.decode(o.Hash)}catch{}if(!s.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(s.Name=o.Name),o.Tsize!==void 0&&(s.Tsize=o.Tsize),s})),n}var Qb={codec:t0,*walk(r){yield*r0(r).Links.map(t=>t.Hash)}},ex={codec:is,*walk(){}},n0=42,tx={codec:Wp,*walk(r){let e=[],t=[];t[n0]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let o=oe.decode(n.subarray(1));return e.push(o),o},ht(r,{tags:t}),yield*e}},Du=class extends Xr{tokenBuffer;constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===d.map){let t=this._next();if(t.type===d.string&&t.value==="/"){let n=this._next();if(n.type===d.string){if(this._next().type!==d.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new A(d.tag,42,0)}if(n.type===d.map){let o=this._next();if(o.type===d.string&&o.value==="bytes"){let s=this._next();if(s.type===d.string){for(let a=0;a<2;a++)if(this._next().type!==d.break)throw new Error("Invalid encoded Bytes form");let i=dr.decode(`m${s.value}`);return new A(d.bytes,i,s.value.length)}this.tokenBuffer.push(s)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},rx={codec:Jp,*walk(r){let e=[],t=[];t[n0]=n=>{let o=oe.parse(n);return e.push(o),o},ra(r,{tags:t,tokenizer:new Du(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}},nx={codec:wl,*walk(){}};function o0(r=[]){let e={};return[Qb,ex,tx,rx,nx,...r].forEach(t=>{e[t.codec]=t}),e}var Pu=new Ne("/version"),s0=1;async function i0(r){if(!await r.has(Pu)){await r.put(Pu,Y(`${s0}`));return}let e=await r.get(Pu),t=z(e);if(parseInt(t,10)!==s0)throw new Error("Unknown datastore version, a datastore migration may be required")}function a0(r=[]){let e={};return[Ee,Oa,st,...r].forEach(t=>{e[t.code]=t}),e}var Dt=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,block:o}of e)await this.put(n,o,t),yield n}get(e,t){return Promise.reject(new Error(".get is not implemented"))}async*getMany(e,t){for await(let n of e)yield{cid:n,block:await this.get(n,t)}}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*deleteMany(e,t){for await(let n of e)await this.delete(n,t),yield n}async*getAll(e){throw new Error(".getAll is not implemented")}};var Qr={};xe(Qr,{abortedError:()=>cx,closeFailedError:()=>sx,deleteFailedError:()=>Fu,getFailedError:()=>ix,hasFailedError:()=>ax,notFoundError:()=>Lr,openFailedError:()=>ox,putFailedError:()=>Ou});var sr=ot(pn(),1);function ox(r){return r=r??new Error("Open failed"),(0,sr.default)(r,"ERR_OPEN_FAILED")}function sx(r){return r=r??new Error("Close failed"),(0,sr.default)(r,"ERR_CLOSE_FAILED")}function Ou(r){return r=r??new Error("Put failed"),(0,sr.default)(r,"ERR_PUT_FAILED")}function ix(r){return r=r??new Error("Get failed"),(0,sr.default)(r,"ERR_GET_FAILED")}function Fu(r){return r=r??new Error("Delete failed"),(0,sr.default)(r,"ERR_DELETE_FAILED")}function ax(r){return r=r??new Error("Has failed"),(0,sr.default)(r,"ERR_HAS_FAILED")}function Lr(r){return r=r??new Error("Not Found"),(0,sr.default)(r,"ERR_NOT_FOUND")}function cx(r){return r=r??new Error("Aborted"),(0,sr.default)(r,"ERR_ABORTED")}var c0=0,oa=class extends Dt{put(e){return e}get(e){if(e.code===c0)return e.multihash.digest;throw Lr()}has(e){return e.code===c0}delete(){}*getAll(){}};var ux=Je("blockstore:core:tiered"),qo=class extends Dt{stores;constructor(e){super(),this.stores=e.slice()}async put(e,t,n){try{return await Promise.all(this.stores.map(async o=>{await o.put(e,t,n)})),e}catch(o){throw Ou(o)}}async get(e,t){for(let n of this.stores)try{let o=await n.get(e,t);if(o!=null)return o}catch(o){ux.error(o)}throw Lr()}async has(e,t){for(let n of this.stores)if(await n.has(e,t))return!0;return!1}async delete(e,t){try{await Promise.all(this.stores.map(async n=>{await n.delete(e,t)}))}catch(n){throw Fu(n)}}async*putMany(e,t={}){let n,o=this.stores.map(s=>{let i=Ft({objectMode:!0});return $t(s.putMany(i,t)).catch(a=>{n=a}),i});try{for await(let s of e){if(n!=null)throw n;o.forEach(i=>i.push(s)),yield s.cid}}finally{o.forEach(s=>s.end())}}async*deleteMany(e,t={}){let n,o=this.stores.map(s=>{let i=Ft({objectMode:!0});return $t(s.deleteMany(i,t)).catch(a=>{n=a}),i});try{for await(let s of e){if(n!=null)throw n;o.forEach(i=>i.push(s)),yield s}}finally{o.forEach(s=>s.end())}}async*getAll(e){let t=new Set;yield*it(mr(...this.stores.map(n=>n.getAll(e))),n=>{let o=n.cid.toString();return t.has(o)?!1:(t.add(o),!0)})}};function lx(r){return r[Symbol.asyncIterator]!=null}function u0(r){return r?.then!=null}function fx(r,e){if(lx(r))return async function*(){for await(let a of r){let c=e(a);u0(c)&&await c,yield a}}();let t=mn(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();if(typeof e(n)?.then=="function")return async function*(){yield n;for await(let a of t){let c=e(a);u0(c)&&await c,yield a}}();let i=e;return function*(){yield n;for(let a of t)i(a),yield a}()}var Vu=fx;var sa=class r{child;hashers;started;log;logger;components;constructor(e,t={}){this.log=e.logger.forComponent(`helia:networked-storage${t.root==null?"":`:${t.root}`}`),this.logger=e.logger,this.components=e,this.child=new qo([new oa,e.blockstore]),this.hashers=e.hashers??{},this.started=!1}isStarted(){return this.started}async start(){await ur(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await lr(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){return await this.child.has(e)?(n.onProgress?.(new ne("blocks:put:duplicate",e)),e):(n.onProgress?.(new ne("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new ne("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=it(e,async({cid:s})=>{let i=await this.child.has(s);return i&&t.onProgress?.(new ne("blocks:put-many:duplicate",s)),!i}),o=Vu(n,async({cid:s,block:i})=>{t.onProgress?.(new ne("blocks:put-many:providers:notify",s)),await Promise.all(this.components.blockBrokers.map(async a=>a.announce?.(s,i,t)))});t.onProgress?.(new ne("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e)){t.onProgress?.(new ne("blocks:get:providers:get",e));let n=await l0(e,this.components.blockBrokers,this.hashers[e.multihash.code],{...t,log:this.log});return t.onProgress?.(new ne("blocks:get:blockstore:put",e)),await this.child.put(e,n,t),t.onProgress?.(new ne("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,n,t))),n}return t.onProgress?.(new ne("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new ne("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Vu(e,async n=>{if(t.offline!==!0&&!await this.child.has(n)){t.onProgress?.(new ne("blocks:get-many:providers:get",n));let o=await l0(n,this.components.blockBrokers,this.hashers[n.multihash.code],{...t,log:this.log});t.onProgress?.(new ne("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new ne("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,o,t)))}}))}async delete(e,t={}){t.onProgress?.(new ne("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new ne("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new ne("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}async createSession(e,t){let n=await Promise.all(this.components.blockBrokers.map(async o=>o.createSession==null?o:o.createSession(e,t)));return new r({blockstore:this.child,blockBrokers:n,hashers:this.hashers,logger:this.logger},{root:e})}};function hx(r){return typeof r.retrieve=="function"}var dx=(r,e)=>{if(e==null)throw new N(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`,"ERR_UNKNOWN_HASH_ALG");return async t=>{let n=await e.digest(t);if(!ce(n.digest,r.multihash.digest))throw new N("Hash of downloaded block did not match multihash from passed CID","ERR_HASH_MISMATCH")}};async function l0(r,e,t,n){let o=dx(r,t),s=new AbortController,i=Dr([s.signal,n.signal]);cr(1/0,s.signal,i);let a=[];for(let c of e)hx(c)&&a.push(c);try{return await Promise.any(a.map(async c=>{try{let f=!1,u=await c.retrieve(r,{...n,signal:i,validateFn:async l=>{await o(l),f=!0}});return f||await o(u),u}catch(f){throw n.log.error("could not retrieve verified block for %c",r,f),f}}))}finally{s.abort(),i.clear()}}var ia=class{blockstore;datastore;pins;logger;routing;dagWalkers;hashers;dns;log;constructor(e){this.logger=e.logger??kf(),this.log=this.logger.forComponent("helia"),this.hashers=a0(e.hashers),this.dagWalkers=o0(e.dagWalkers),this.dns=e.dns??Op();let t={blockstore:e.blockstore,datastore:e.datastore,hashers:this.hashers,dagWalkers:this.dagWalkers,logger:this.logger,blockBrokers:[],dns:this.dns,...e.components??{}};this.routing=t.routing=new ea(t,{routers:(e.routers??[]).flatMap(o=>{let s=[o];return o[eo]!=null&&s.push(o[eo]),o[to]!=null&&s.push(o[to]),s})});let n=new sa(t);this.pins=new Qi(e.datastore,n,this.dagWalkers),this.blockstore=new ta(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await i0(this.datastore),await ur(this.blockstore,this.datastore,this.routing)}async stop(){await lr(this.blockstore,this.datastore,this.routing)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await $t(o.deleteMany(async function*(){for await(let{cid:s}of o.getAll())try{if(await n.pins.isPinned(s,e))continue;yield s,e.onProgress?.(new ne("helia:gc:deleted",s))}catch(i){n.log.error("Error during gc",i),e.onProgress?.(new ne("helia:gc:error",i))}}()))}finally{t()}this.log("gc finished")}};var zo=class extends Dt{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(Re.encode(e.multihash.bytes),t),e}get(e){let t=this.data.get(Re.encode(e.multihash.bytes));if(t==null)throw Lr();return t}has(e){return this.data.has(Re.encode(e.multihash.bytes))}async delete(e){this.data.delete(Re.encode(e.multihash.bytes))}async*getAll(){for(let[e,t]of this.data.entries())yield{cid:oe.createV1(is,kt(Re.decode(e))),block:t}}};var F4={...Qr};var f0=ot(pn(),1);function aa(r){return r=r??new Error("Not Found"),(0,f0.default)(r,"ERR_NOT_FOUND")}var h0="SHARDING";function mx(r){return r[Symbol.asyncIterator]!=null}function yx(r,e){return mx(r)?async function*(){yield*(await Ec(r)).sort(e)}():function*(){yield*Ec(r).sort(e)}()}var ca=yx;var ir=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await $t(this.putMany(e,n)),e=[],await $t(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=it(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>it(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ca(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=it(n,()=>o++>=s)}return e.limit!=null&&(n=gs(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=it(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>it(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ca(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=it(n,()=>s++>=o)}return e.limit!=null&&(n=gs(n,e.limit)),n}};var jo=class extends ir{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(e.toString(),t),e}get(e){let t=this.data.get(e.toString());if(t==null)throw aa();return t}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,t]of this.data.entries())yield{key:new Ne(e),value:t}}*_allKeys(){for(let e of this.data.keys())yield new Ne(e)}};var hR=new Ne(h0);var BR=Je("datastore:core:tiered");async function bx(r={}){let e=r.datastore??new jo,t=r.blockstore??new zo,n=new ia({...r,datastore:e,blockstore:t,blockBrokers:r.blockBrokers??[vc()],routers:r.routers??[bu("https://delegated-ipfs.dev")]});return r.start!==!1&&await n.start(),n}return I0(xx);})();
8
+ `)}async function Rw(r,e){let t=Me.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=Y(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=Mn(o),{iv:i,salt:a,iterations:c,keySize:f,cipherText:u}=_w(s),l=await Mc(Nn,e,a,{c,dkLen:f}),h=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),g=Io(await t.subtle.decrypt({name:"AES-CBC",iv:i},h,u)),{result:y}=Mn(g);n=Mh(y)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=Y(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:s}=Mn(o);n=Mh(s)}else throw new N("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return jc(n)}function _w(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new N("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 N("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let s=n.valueBlock.value[1],i=Io(s.valueBlock.value[0].getValue()),a=Gc,c=zc;if(s.valueBlock.value.length===3)a=Number(s.valueBlock.value[1].toBigInt()),c=Number(s.valueBlock.value[2].toBigInt());else if(s.valueBlock.value.length===2)throw new N("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 N("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=Io(f.valueBlock.value[1].getValue());return{cipherText:Io(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:l}}function Mh(r){return Io(r.valueBlock.value[2].getValue())}function Io(r){return new Uint8Array(r,0,r.byteLength)}async function $h(r){let e=await Me.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 qh(e);return{privateKey:t[0],publicKey:t[1]}}async function Wc(r){let t=[await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Tw(r)],n=await qh({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Hh(r,e){let t=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Kh(r,e,t){let n=await Me.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function qh(r){if(r.privateKey==null||r.publicKey==null)throw new N("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Me.get().subtle.exportKey("jwk",r.privateKey),Me.get().subtle.exportKey("jwk",r.publicKey)])}async function Tw(r){return Me.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 Si(r){if(r.kty!=="RSA")throw new N("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new N("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Y(r.n,"base64url").length*8}var _o=8192,Ro=class{_key;constructor(e){this._key=e}verify(e,t){return Kh(this._key,t,e)}marshal(){return Sr.jwkToPkix(this._key)}get bytes(){return Rt.encode({Type:ye.RSA,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}},$n=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return Gr(16)}sign(e){return Hh(this._key,e)}get public(){if(this._publicKey==null)throw new N("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ro(this._publicKey)}marshal(){return Sr.jwkToPkcs1(this._key)}get bytes(){return Wt.encode({Type:ye.RSA,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return z(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return Sr.exportToPem(this,e);if(t==="libp2p-key")return Dn(this.bytes,e);throw new N(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function jc(r){let e=Sr.pkcs1ToJwk(r);if(Si(e)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Wc(e);return new $n(t.privateKey,t.publicKey)}function Cw(r){let e=Sr.pkixToJwk(r);if(Si(e)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ro(e)}async function Lw(r){if(Si(r)>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Wc(r);return new $n(e.privateKey,e.publicKey)}async function Uw(r){if(r>_o)throw new N("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await $h(r);return new $n(e.privateKey,e.publicKey)}var eu={};xe(eu,{Secp256k1PrivateKey:()=>No,Secp256k1PublicKey:()=>To,generateKeyPair:()=>jw,unmarshalSecp256k1PrivateKey:()=>zw,unmarshalSecp256k1PublicKey:()=>Gw});var Dw=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]),Ir=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Rr=new Uint32Array(64),Zc=class extends Tn{constructor(){super(64,32,8,!1),this.A=Ir[0]|0,this.B=Ir[1]|0,this.C=Ir[2]|0,this.D=Ir[3]|0,this.E=Ir[4]|0,this.F=Ir[5]|0,this.G=Ir[6]|0,this.H=Ir[7]|0}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)Rr[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=Rr[l-15],g=Rr[l-2],y=mt(h,7)^mt(h,18)^h>>>3,p=mt(g,17)^mt(g,19)^g>>>10;Rr[l]=p+Rr[l-7]+y+Rr[l-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let l=0;l<64;l++){let h=mt(a,6)^mt(a,11)^mt(a,25),g=u+h+_f(a,c,f)+Dw[l]+Rr[l]|0,p=(mt(n,2)^mt(n,13)^mt(n,22))+Tf(n,o,s)|0;u=f,f=c,c=a,a=i+g|0,i=s,s=o,o=n,n=g+p|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+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,s,i,a,c,f,u)}roundClean(){Rr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var zh=Ss(()=>new Zc);function Pw(r){let e=yo(r);It(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:Ow,hexToBytes:Fw}=_s,Wr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=Wr;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:Ow(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=Wr,t=typeof r=="string"?Fw(r):r;Cn(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:s}=Wr._parseInt(t.subarray(2)),{d:i,l:a}=Wr._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:o,s:i}},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)),s=n.length/2,i=o.length/2,a=t(s),c=t(i);return`30${t(i+s+4)}02${c}${o}02${a}${n}`}},tr=BigInt(0),ut=BigInt(1),ok=BigInt(2),Gh=BigInt(3),sk=BigInt(4);function Vw(r){let e=Pw(r),{Fp:t}=e,n=e.toBytes||((y,p,m)=>{let w=p.toAffine();return zt(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),o=e.fromBytes||(y=>{let p=y.subarray(1),m=t.fromBytes(p.subarray(0,t.BYTES)),w=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:m,y:w}});function s(y){let{a:p,b:m}=e,w=t.sqr(y),I=t.mul(w,y);return t.add(t.add(I,t.mul(y,p)),m)}if(!t.eql(t.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function i(y){return typeof y=="bigint"&&tr<y&&y<e.n}function a(y){if(!i(y))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(y){let{allowedPrivateKeyLengths:p,nByteLength:m,wrapPrivateKey:w,n:I}=e;if(p&&typeof y!="bigint"){if(xr(y)&&(y=Kt(y)),typeof y!="string"||!p.includes(y.length))throw new Error("Invalid key");y=y.padStart(m*2,"0")}let v;try{v=typeof y=="bigint"?y:qt(pe("private key",y,m))}catch{throw new Error(`private key must be ${m} bytes, hex or bigint, not ${typeof y}`)}return w&&(v=ae(v,I)),a(v),v}let f=new Map;function u(y){if(!(y instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,m,w){if(this.px=p,this.py=m,this.pz=w,p==null||!t.isValid(p))throw new Error("x required");if(m==null||!t.isValid(m))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required")}static fromAffine(p){let{x:m,y:w}=p||{};if(!p||!t.isValid(m)||!t.isValid(w))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let I=v=>t.eql(v,t.ZERO);return I(m)&&I(w)?l.ZERO:new l(m,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let m=t.invertBatch(p.map(w=>w.pz));return p.map((w,I)=>w.toAffine(m[I])).map(l.fromAffine)}static fromHex(p){let m=l.fromAffine(o(pe("pointHex",p)));return m.assertValidity(),m}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,f.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:m}=this.toAffine();if(!t.isValid(p)||!t.isValid(m))throw new Error("bad point: x or y not FE");let w=t.sqr(m),I=s(p);if(!t.eql(w,I))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){u(p);let{px:m,py:w,pz:I}=this,{px:v,py:U,pz:S}=p,_=t.eql(t.mul(m,S),t.mul(v,I)),L=t.eql(t.mul(w,S),t.mul(U,I));return _&&L}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:m}=e,w=t.mul(m,Gh),{px:I,py:v,pz:U}=this,S=t.ZERO,_=t.ZERO,L=t.ZERO,b=t.mul(I,I),C=t.mul(v,v),O=t.mul(U,U),T=t.mul(I,v);return T=t.add(T,T),L=t.mul(I,U),L=t.add(L,L),S=t.mul(p,L),_=t.mul(w,O),_=t.add(S,_),S=t.sub(C,_),_=t.add(C,_),_=t.mul(S,_),S=t.mul(T,S),L=t.mul(w,L),O=t.mul(p,O),T=t.sub(b,O),T=t.mul(p,T),T=t.add(T,L),L=t.add(b,b),b=t.add(L,b),b=t.add(b,O),b=t.mul(b,T),_=t.add(_,b),O=t.mul(v,U),O=t.add(O,O),b=t.mul(O,T),S=t.sub(S,b),L=t.mul(O,C),L=t.add(L,L),L=t.add(L,L),new l(S,_,L)}add(p){u(p);let{px:m,py:w,pz:I}=this,{px:v,py:U,pz:S}=p,_=t.ZERO,L=t.ZERO,b=t.ZERO,C=e.a,O=t.mul(e.b,Gh),T=t.mul(m,v),V=t.mul(w,U),H=t.mul(I,S),X=t.add(m,w),E=t.add(v,U);X=t.mul(X,E),E=t.add(T,V),X=t.sub(X,E),E=t.add(m,I);let k=t.add(v,S);return E=t.mul(E,k),k=t.add(T,H),E=t.sub(E,k),k=t.add(w,I),_=t.add(U,S),k=t.mul(k,_),_=t.add(V,H),k=t.sub(k,_),b=t.mul(C,E),_=t.mul(O,H),b=t.add(_,b),_=t.sub(V,b),b=t.add(V,b),L=t.mul(_,b),V=t.add(T,T),V=t.add(V,T),H=t.mul(C,H),E=t.mul(O,E),V=t.add(V,H),H=t.sub(T,H),H=t.mul(C,H),E=t.add(E,H),T=t.mul(V,E),L=t.add(L,T),T=t.mul(k,E),_=t.mul(X,_),_=t.sub(_,T),T=t.mul(X,V),b=t.mul(k,b),b=t.add(b,T),new l(_,L,b)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return g.wNAFCached(this,f,p,m=>{let w=t.invertBatch(m.map(I=>I.pz));return m.map((I,v)=>I.toAffine(w[v])).map(l.fromAffine)})}multiplyUnsafe(p){let m=l.ZERO;if(p===tr)return m;if(a(p),p===ut)return this;let{endo:w}=e;if(!w)return g.unsafeLadder(this,p);let{k1neg:I,k1:v,k2neg:U,k2:S}=w.splitScalar(p),_=m,L=m,b=this;for(;v>tr||S>tr;)v&ut&&(_=_.add(b)),S&ut&&(L=L.add(b)),b=b.double(),v>>=ut,S>>=ut;return I&&(_=_.negate()),U&&(L=L.negate()),L=new l(t.mul(L.px,w.beta),L.py,L.pz),_.add(L)}multiply(p){a(p);let m=p,w,I,{endo:v}=e;if(v){let{k1neg:U,k1:S,k2neg:_,k2:L}=v.splitScalar(m),{p:b,f:C}=this.wNAF(S),{p:O,f:T}=this.wNAF(L);b=g.constTimeNegate(U,b),O=g.constTimeNegate(_,O),O=new l(t.mul(O.px,v.beta),O.py,O.pz),w=b.add(O),I=C.add(T)}else{let{p:U,f:S}=this.wNAF(m);w=U,I=S}return l.normalizeZ([w,I])[0]}multiplyAndAddUnsafe(p,m,w){let I=l.BASE,v=(S,_)=>_===tr||_===ut||!S.equals(I)?S.multiplyUnsafe(_):S.multiply(_),U=v(this,m).add(v(p,w));return U.is0()?void 0:U}toAffine(p){let{px:m,py:w,pz:I}=this,v=this.is0();p==null&&(p=v?t.ONE:t.inv(I));let U=t.mul(m,p),S=t.mul(w,p),_=t.mul(I,p);if(v)return{x:t.ZERO,y:t.ZERO};if(!t.eql(_,t.ONE))throw new Error("invZ was invalid");return{x:U,y:S}}isTorsionFree(){let{h:p,isTorsionFree:m}=e;if(p===ut)return!0;if(m)return m(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:m}=e;return p===ut?this:m?m(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return Kt(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let h=e.nBitLength,g=Cs(l,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:i}}function Mw(r){let e=yo(r);return It(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function jh(r){let e=Mw(r),{Fp:t,n}=e,o=t.BYTES+1,s=2*t.BYTES+1;function i(E){return tr<E&&E<t.ORDER}function a(E){return ae(E,n)}function c(E){return Ts(E,n)}let{ProjectivePoint:f,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:h}=Vw({...e,toBytes(E,k,$){let B=k.toAffine(),x=t.toBytes(B.x),P=zt;return $?P(Uint8Array.from([k.hasEvenY()?2:3]),x):P(Uint8Array.from([4]),x,t.toBytes(B.y))},fromBytes(E){let k=E.length,$=E[0],B=E.subarray(1);if(k===o&&($===2||$===3)){let x=qt(B);if(!i(x))throw new Error("Point is not on curve");let P=l(x),M;try{M=t.sqrt(P)}catch(W){let te=W instanceof Error?": "+W.message:"";throw new Error("Point is not on curve"+te)}let K=(M&ut)===ut;return($&1)===1!==K&&(M=t.neg(M)),{x,y:M}}else if(k===s&&$===4){let x=t.fromBytes(B.subarray(0,t.BYTES)),P=t.fromBytes(B.subarray(t.BYTES,2*t.BYTES));return{x,y:P}}else throw new Error(`Point of length ${k} was invalid. Expected ${o} compressed bytes or ${s} uncompressed bytes`)}}),g=E=>Kt(vr(E,e.nByteLength));function y(E){let k=n>>ut;return E>k}function p(E){return y(E)?a(-E):E}let m=(E,k,$)=>qt(E.slice(k,$));class w{constructor(k,$,B){this.r=k,this.s=$,this.recovery=B,this.assertValidity()}static fromCompact(k){let $=e.nByteLength;return k=pe("compactSignature",k,$*2),new w(m(k,0,$),m(k,$,2*$))}static fromDER(k){let{r:$,s:B}=Wr.toSig(pe("DER",k));return new w($,B)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new w(this.r,this.s,k)}recoverPublicKey(k){let{r:$,s:B,recovery:x}=this,P=L(pe("msgHash",k));if(x==null||![0,1,2,3].includes(x))throw new Error("recovery id invalid");let M=x===2||x===3?$+e.n:$;if(M>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let K=x&1?"03":"02",j=f.fromHex(K+g(M)),W=c(M),te=a(-P*W),J=a(B*W),Q=f.BASE.multiplyAndAddUnsafe(j,te,J);if(!Q)throw new Error("point at infinify");return Q.assertValidity(),Q}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Hr(this.toDERHex())}toDERHex(){return Wr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Hr(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let I={isValidPrivateKey(E){try{return u(E),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let E=Cc(e.n);return $f(e.randomBytes(E),e.n)},precompute(E=8,k=f.BASE){return k._setWindowSize(E),k.multiply(BigInt(3)),k}};function v(E,k=!0){return f.fromPrivateKey(E).toRawBytes(k)}function U(E){let k=xr(E),$=typeof E=="string",B=(k||$)&&E.length;return k?B===o||B===s:$?B===2*o||B===2*s:E instanceof f}function S(E,k,$=!0){if(U(E))throw new Error("first arg must be private key");if(!U(k))throw new Error("second arg must be public key");return f.fromHex(k).multiply(u(E)).toRawBytes($)}let _=e.bits2int||function(E){let k=qt(E),$=E.length*8-e.nBitLength;return $>0?k>>BigInt($):k},L=e.bits2int_modN||function(E){return a(_(E))},b=mo(e.nBitLength);function C(E){if(typeof E!="bigint")throw new Error("bigint expected");if(!(tr<=E&&E<b))throw new Error(`bigint expected < 2^${e.nBitLength}`);return vr(E,e.nByteLength)}function O(E,k,$=T){if(["recovered","canonical"].some(he=>he in $))throw new Error("sign() legacy options not supported");let{hash:B,randomBytes:x}=e,{lowS:P,prehash:M,extraEntropy:K}=$;P==null&&(P=!0),E=pe("msgHash",E),M&&(E=pe("prehashed msgHash",B(E)));let j=L(E),W=u(k),te=[C(W),C(j)];if(K!=null&&K!==!1){let he=K===!0?x(t.BYTES):K;te.push(pe("extraEntropy",he))}let J=zt(...te),Q=j;function ge(he){let ke=_(he);if(!h(ke))return;let Se=c(ke),be=f.BASE.multiply(ke).toAffine(),Le=a(be.x);if(Le===tr)return;let Pt=a(Se*a(Q+Le*W));if(Pt===tr)return;let Ur=(be.x===Le?0:2)|Number(be.y&ut),Qn=Pt;return P&&y(Pt)&&(Qn=p(Pt),Ur^=1),new w(Le,Qn,Ur)}return{seed:J,k2sig:ge}}let T={lowS:e.lowS,prehash:!1},V={lowS:e.lowS,prehash:!1};function H(E,k,$=T){let{seed:B,k2sig:x}=O(E,k,$),P=e;return Rc(P.hash.outputLen,P.nByteLength,P.hmac)(B,x)}f.BASE._setWindowSize(8);function X(E,k,$,B=V){let x=E;if(k=pe("msgHash",k),$=pe("publicKey",$),"strict"in B)throw new Error("options.strict was renamed to lowS");let{lowS:P,prehash:M}=B,K,j;try{if(typeof x=="string"||xr(x))try{K=w.fromDER(x)}catch(be){if(!(be instanceof Wr.Err))throw be;K=w.fromCompact(x)}else if(typeof x=="object"&&typeof x.r=="bigint"&&typeof x.s=="bigint"){let{r:be,s:Le}=x;K=new w(be,Le)}else throw new Error("PARSE");j=f.fromHex($)}catch(be){if(be.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(P&&K.hasHighS())return!1;M&&(k=e.hash(k));let{r:W,s:te}=K,J=L(k),Q=c(te),ge=a(J*Q),he=a(W*Q),ke=f.BASE.multiplyAndAddUnsafe(j,ge,he)?.toAffine();return ke?a(ke.x)===W:!1}return{CURVE:e,getPublicKey:v,getSharedSecret:S,sign:H,verify:X,ProjectivePoint:f,Signature:w,utils:I}}function $w(r){return{hash:r,hmac:(e,...t)=>wo(r,e,ks(...t)),randomBytes:_n}}function Wh(r,e){let t=n=>jh({...r,...$w(n)});return Object.freeze({...t(e),create:t})}var Jh=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Yh=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Hw=BigInt(1),Jc=BigInt(2),Zh=(r,e)=>(r+e/Jc)/e;function Kw(r){let e=Jh,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%e,u=f*f*r%e,l=le(u,t,e)*u%e,h=le(l,t,e)*u%e,g=le(h,Jc,e)*f%e,y=le(g,o,e)*g%e,p=le(y,s,e)*y%e,m=le(p,a,e)*p%e,w=le(m,c,e)*m%e,I=le(w,a,e)*p%e,v=le(I,t,e)*u%e,U=le(v,i,e)*y%e,S=le(U,n,e)*f%e,_=le(S,Jc,e);if(!Xc.eql(Xc.sqr(_),r))throw new Error("Cannot find square root");return _}var Xc=Ns(Jh,void 0,void 0,{sqrt:Kw}),bt=Wh({a:BigInt(0),b:BigInt(7),Fp:Xc,n:Yh,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Yh,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Hw*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,i=BigInt("0x100000000000000000000000000000000"),a=Zh(s*r,e),c=Zh(-n*r,e),f=ae(r-a*t-c*o,e),u=ae(-a*n-c*s,e),l=f>i,h=u>i;if(l&&(f=e-f),h&&(u=e-u),f>i||u>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:f,k2neg:h,k2:u}}}},zh),pk=BigInt(0);var mk=bt.ProjectivePoint;function Xh(){return bt.utils.randomPrivateKey()}function Qh(r,e){let t=Ee.digest(e instanceof Uint8Array?e:e.subarray());if(at(t))return t.then(({digest:n})=>bt.sign(n,r).toDERRawBytes()).catch(n=>{throw new N(String(n),"ERR_INVALID_INPUT")});try{return bt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new N(String(n),"ERR_INVALID_INPUT")}}function ed(r,e,t){let n=Ee.digest(t instanceof Uint8Array?t:t.subarray());if(at(n))return n.then(({digest:o})=>bt.verify(e,o,r)).catch(o=>{throw new N(String(o),"ERR_INVALID_INPUT")});try{return bt.verify(e,n.digest,r)}catch(o){throw new N(String(o),"ERR_INVALID_INPUT")}}function td(r){return bt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function rd(r){try{bt.getPublicKey(r,!0)}catch(e){throw new N(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Qc(r){try{bt.ProjectivePoint.fromHex(r)}catch(e){throw new N(String(e),"ERR_INVALID_PUBLIC_KEY")}}function nd(r){try{return bt.getPublicKey(r,!0)}catch(e){throw new N(String(e),"ERR_INVALID_PRIVATE_KEY")}}var To=class{_key;constructor(e){Qc(e),this._key=e}verify(e,t){return ed(this._key,t,e)}marshal(){return td(this._key)}get bytes(){return Rt.encode({Type:ye.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}async hash(){let e=Ee.digest(this.bytes),t;return at(e)?{bytes:t}=await e:t=e.bytes,t}},No=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??nd(e),rd(this._key),Qc(this._publicKey)}sign(e){return Qh(this._key,e)}get public(){return new To(this._publicKey)}marshal(){return this._key}get bytes(){return Wt.encode({Type:ye.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return ce(this.bytes,e.bytes)}hash(){let e=Ee.digest(this.bytes);return at(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return z(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dn(this.bytes,e);throw new N(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function zw(r){return new No(r)}function Gw(r){return new To(r)}async function jw(){let r=Xh();return new No(r)}var Ii={rsa:Yc,ed25519:Vc,secp256k1:eu};function Ww(r){let e=Object.keys(Ii).join(" / ");return new N(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function tu(r){let e=Rt.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case ye.RSA:return Ii.rsa.unmarshalRsaPublicKey(t);case ye.Ed25519:return Ii.ed25519.unmarshalEd25519PublicKey(t);case ye.Secp256k1:return Ii.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw Ww(e.Type??"unknown")}}var Rb=ot(pn(),1);var rr="/",od=new TextEncoder().encode(rr),Ri=od[0],Ne=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=Y(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]!==Ri)throw new Error("Invalid key")}toString(e="utf8"){return z(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(rr))}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=od),this._buf[0]!==Ri){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Ri,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ri;)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 s=t[o],i=n[o];if(s<i)return!0;if(s>i)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(rr).slice(1)}type(){return Yw(this.baseNamespace())}name(){return Zw(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(rr)||(e+=rr),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(rr):new r(e.slice(0,-1).join(rr))}child(e){return this.toString()===rr?e:e.toString()===rr?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(),...Jw(e.map(t=>t.namespaces()))])}};function Yw(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Zw(r){let e=r.split(":");return e[e.length-1]}function Jw(r){return[].concat(...r)}var _b=ot(nu(),1);var sd="ERR_IPNS_EXPIRED_RECORD",_i="ERR_UNRECOGNIZED_VALIDITY";var nr="ERR_SIGNATURE_VERIFICATION";var ou="ERR_UNDEFINED_PARAMETER",id="ERR_INVALID_RECORD_DATA",ad="ERR_INVALID_VALUE",cd="ERR_INVALID_EMBEDDED_KEY";var ud="ERR_RECORD_TOO_LARGE";var xt;(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=()=>uo(t)}(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=xn((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.value!=null&&(s.uint32(10),s.bytes(o.value)),o.signatureV1!=null&&(s.uint32(18),s.bytes(o.signatureV1)),o.validityType!=null&&(s.uint32(24),r.ValidityType.codec().encode(o.validityType,s)),o.validity!=null&&(s.uint32(34),s.bytes(o.validity)),o.sequence!=null&&(s.uint32(40),s.uint64(o.sequence)),o.ttl!=null&&(s.uint32(48),s.uint64(o.ttl)),o.pubKey!=null&&(s.uint32(58),s.bytes(o.pubKey)),o.signatureV2!=null&&(s.uint32(66),s.bytes(o.signatureV2)),o.data!=null&&(s.uint32(74),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.value=o.bytes();break;case 2:i.signatureV1=o.bytes();break;case 3:i.validityType=r.ValidityType.codec().decode(o);break;case 4:i.validity=o.bytes();break;case 5:i.sequence=o.uint64();break;case 6:i.ttl=o.uint64();break;case 7:i.pubKey=o.bytes();break;case 8:i.signatureV2=o.bytes();break;case 9:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>wn(o,r.codec()),r.decode=o=>gn(o,r.codec())})(xt||(xt={}));var Xw=["string","number","bigint","symbol"],Qw=["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 fd(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(Xw.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(eb(r))return"Buffer";let t=tb(r);return t||"Object"}function eb(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function tb(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Qw.includes(e))return e}var d=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}};d.uint=new d(0,"uint",!0);d.negint=new d(1,"negint",!0);d.bytes=new d(2,"bytes",!0);d.string=new d(3,"string",!0);d.array=new d(4,"array",!1);d.map=new d(5,"map",!1);d.tag=new d(6,"tag",!1);d.float=new d(7,"float",!0);d.false=new d(7,"false",!0);d.true=new d(7,"true",!0);d.null=new d(7,"null",!0);d.undefined=new d(7,"undefined",!0);d.break=new d(7,"break",!0);var A=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 Hn=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",rb=new TextDecoder,nb=new TextEncoder;function Ti(r){return Hn&&globalThis.Buffer.isBuffer(r)}function Co(r){return r instanceof Uint8Array?Ti(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var md=Hn?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):dd(r,e,t):(r,e,t)=>t-e>64?rb.decode(r.subarray(e,t)):dd(r,e,t),Ni=Hn?r=>r.length>64?globalThis.Buffer.from(r):hd(r):r=>r.length>64?nb.encode(r):hd(r),Ct=r=>Uint8Array.from(r),Kn=Hn?(r,e,t)=>Ti(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),yd=Hn?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Co(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},gd=Hn?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function wd(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 hd(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 dd(r,e,t){let n=[];for(;e<t;){let o=r[e],s=null,i=o>239?4:o>223?3:o>191?2:1;if(e+i<=t){let a,c,f,u;switch(i){case 1:o<128&&(s=o);break;case 2:a=r[e+1],(a&192)===128&&(u=(o&31)<<6|a&63,u>127&&(s=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)&&(s=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&&(s=u))}}s===null?(s=65533,i=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),e+=i}return su(n)}var pd=4096;function su(r){let e=r.length;if(e<=pd)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=pd));return t}var ob=256,Lo=class{constructor(e=ob){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=gd(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=Kn(n,0,this.cursor)}else t=yd(this.chunks,this.cursor);return e&&this.reset(),t}};var F="CBOR decode error:",qn="CBOR encode error:",Uo=[];Uo[23]=1;Uo[24]=2;Uo[25]=3;Uo[26]=5;Uo[27]=9;function or(r,e,t){if(r.length-e<t)throw new Error(`${F} not enough data for type`)}var Be=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Qe(r,e,t){or(r,e,1);let n=r[e];if(t.strict===!0&&n<Be[0])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function et(r,e,t){or(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<Be[1])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function tt(r,e,t){or(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<Be[2])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function rt(r,e,t){or(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],s=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&s<Be[3])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);if(s<=Number.MAX_SAFE_INTEGER)return Number(s);if(t.allowBigInt===!0)return s;throw new Error(`${F} integers outside of the safe integer range are not supported`)}function bd(r,e,t,n){return new A(d.uint,Qe(r,e+1,n),2)}function xd(r,e,t,n){return new A(d.uint,et(r,e+1,n),3)}function Ed(r,e,t,n){return new A(d.uint,tt(r,e+1,n),5)}function vd(r,e,t,n){return new A(d.uint,rt(r,e+1,n),9)}function lt(r,e){return Ce(r,0,e.value)}function Ce(r,e,t){if(t<Be[0]){let n=Number(t);r.push([e|n])}else if(t<Be[1]){let n=Number(t);r.push([e|24,n])}else if(t<Be[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<Be[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<Be[4]){let o=[e|27,0,0,0,0,0,0,0],s=Number(n&BigInt(4294967295)),i=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=s&255,s=s>>8,o[7]=s&255,s=s>>8,o[6]=s&255,s=s>>8,o[5]=s&255,o[4]=i&255,i=i>>8,o[3]=i&255,i=i>>8,o[2]=i&255,i=i>>8,o[1]=i&255,r.push(o)}else throw new Error(`${F} encountered BigInt larger than allowable range`)}}lt.encodedSize=function(e){return Ce.encodedSize(e.value)};Ce.encodedSize=function(e){return e<Be[0]?1:e<Be[1]?2:e<Be[2]?3:e<Be[3]?5:9};lt.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Ad(r,e,t,n){return new A(d.negint,-1-Qe(r,e+1,n),2)}function Bd(r,e,t,n){return new A(d.negint,-1-et(r,e+1,n),3)}function kd(r,e,t,n){return new A(d.negint,-1-tt(r,e+1,n),5)}var iu=BigInt(-1),Sd=BigInt(1);function Id(r,e,t,n){let o=rt(r,e+1,n);if(typeof o!="bigint"){let s=-1-o;if(s>=Number.MIN_SAFE_INTEGER)return new A(d.negint,s,9)}if(n.allowBigInt!==!0)throw new Error(`${F} integers outside of the safe integer range are not supported`);return new A(d.negint,iu-BigInt(o),9)}function Ci(r,e){let t=e.value,n=typeof t=="bigint"?t*iu-Sd:t*-1-1;Ce(r,e.type.majorEncoded,n)}Ci.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*iu-Sd:t*-1-1;return n<Be[0]?1:n<Be[1]?2:n<Be[2]?3:n<Be[3]?5:9};Ci.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function Do(r,e,t,n){or(r,e,t+n);let o=Kn(r,e+t,e+t+n);return new A(d.bytes,o,t+n)}function Rd(r,e,t,n){return Do(r,e,1,t)}function _d(r,e,t,n){return Do(r,e,2,Qe(r,e+1,n))}function Td(r,e,t,n){return Do(r,e,3,et(r,e+1,n))}function Nd(r,e,t,n){return Do(r,e,5,tt(r,e+1,n))}function Cd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer bytes lengths not supported`);return Do(r,e,9,o)}function Li(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===d.string?Ni(r.value):r.value),r.encodedBytes}function zn(r,e){let t=Li(e);Ce(r,e.type.majorEncoded,t.length),r.push(t)}zn.encodedSize=function(e){let t=Li(e);return Ce.encodedSize(t.length)+t.length};zn.compareTokens=function(e,t){return ib(Li(e),Li(t))};function ib(r,e){return r.length<e.length?-1:r.length>e.length?1:wd(r,e)}function Po(r,e,t,n,o){let s=t+n;or(r,e,s);let i=new A(d.string,md(r,e+t,e+s),s);return o.retainStringBytes===!0&&(i.byteValue=Kn(r,e+t,e+s)),i}function Ld(r,e,t,n){return Po(r,e,1,t,n)}function Ud(r,e,t,n){return Po(r,e,2,Qe(r,e+1,n),n)}function Dd(r,e,t,n){return Po(r,e,3,et(r,e+1,n),n)}function Pd(r,e,t,n){return Po(r,e,5,tt(r,e+1,n),n)}function Od(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer string lengths not supported`);return Po(r,e,9,o,n)}var Fd=zn;function Gn(r,e,t,n){return new A(d.array,n,t)}function Vd(r,e,t,n){return Gn(r,e,1,t)}function Md(r,e,t,n){return Gn(r,e,2,Qe(r,e+1,n))}function $d(r,e,t,n){return Gn(r,e,3,et(r,e+1,n))}function Hd(r,e,t,n){return Gn(r,e,5,tt(r,e+1,n))}function Kd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer array lengths not supported`);return Gn(r,e,9,o)}function qd(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return Gn(r,e,1,1/0)}function Ui(r,e){Ce(r,d.array.majorEncoded,e.value)}Ui.compareTokens=lt.compareTokens;Ui.encodedSize=function(e){return Ce.encodedSize(e.value)};function jn(r,e,t,n){return new A(d.map,n,t)}function zd(r,e,t,n){return jn(r,e,1,t)}function Gd(r,e,t,n){return jn(r,e,2,Qe(r,e+1,n))}function jd(r,e,t,n){return jn(r,e,3,et(r,e+1,n))}function Wd(r,e,t,n){return jn(r,e,5,tt(r,e+1,n))}function Yd(r,e,t,n){let o=rt(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer map lengths not supported`);return jn(r,e,9,o)}function Zd(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return jn(r,e,1,1/0)}function Di(r,e){Ce(r,d.map.majorEncoded,e.value)}Di.compareTokens=lt.compareTokens;Di.encodedSize=function(e){return Ce.encodedSize(e.value)};function Jd(r,e,t,n){return new A(d.tag,t,1)}function Xd(r,e,t,n){return new A(d.tag,Qe(r,e+1,n),2)}function Qd(r,e,t,n){return new A(d.tag,et(r,e+1,n),3)}function ep(r,e,t,n){return new A(d.tag,tt(r,e+1,n),5)}function tp(r,e,t,n){return new A(d.tag,rt(r,e+1,n),9)}function Pi(r,e){Ce(r,d.tag.majorEncoded,e.value)}Pi.compareTokens=lt.compareTokens;Pi.encodedSize=function(e){return Ce.encodedSize(e.value)};var hb=20,db=21,pb=22,mb=23;function rp(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${F} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new A(d.null,null,1):new A(d.undefined,void 0,1)}function np(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return new A(d.break,void 0,1)}function au(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${F} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${F} Infinity values are not supported`)}return new A(d.float,r,e)}function op(r,e,t,n){return au(cu(r,e+1),3,n)}function sp(r,e,t,n){return au(uu(r,e+1),5,n)}function ip(r,e,t,n){return au(lp(r,e+1),9,n)}function Oi(r,e,t){let n=e.value;if(n===!1)r.push([d.float.majorEncoded|hb]);else if(n===!0)r.push([d.float.majorEncoded|db]);else if(n===null)r.push([d.float.majorEncoded|pb]);else if(n===void 0)r.push([d.float.majorEncoded|mb]);else{let o,s=!1;(!t||t.float64!==!0)&&(cp(n),o=cu(Et,1),n===o||Number.isNaN(n)?(Et[0]=249,r.push(Et.slice(0,3)),s=!0):(up(n),o=uu(Et,1),n===o&&(Et[0]=250,r.push(Et.slice(0,5)),s=!0))),s||(yb(n),o=lp(Et,1),Et[0]=251,r.push(Et.slice(0,9)))}}Oi.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){cp(n);let o=cu(Et,1);if(n===o||Number.isNaN(n))return 3;if(up(n),o=uu(Et,1),n===o)return 5}return 9};var ap=new ArrayBuffer(9),ft=new DataView(ap,1),Et=new Uint8Array(ap,0);function cp(r){if(r===1/0)ft.setUint16(0,31744,!1);else if(r===-1/0)ft.setUint16(0,64512,!1);else if(Number.isNaN(r))ft.setUint16(0,32256,!1);else{ft.setFloat32(0,r);let e=ft.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ft.setUint16(0,31744,!1);else if(t===0)ft.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?ft.setUint16(0,0):o<-14?ft.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):ft.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function cu(r,e){if(r.length-e<2)throw new Error(`${F} 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,s;return n===0?s=o*2**-24:n!==31?s=(o+1024)*2**(n-25):s=o===0?1/0:NaN,t&32768?-s:s}function up(r){ft.setFloat32(0,r,!1)}function uu(r,e){if(r.length-e<4)throw new Error(`${F} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function yb(r){ft.setFloat64(0,r,!1)}function lp(r,e){if(r.length-e<8)throw new Error(`${F} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}Oi.compareTokens=lt.compareTokens;function ee(r,e,t){throw new Error(`${F} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Fi(r){return()=>{throw new Error(`${F} ${r}`)}}var R=[];for(let r=0;r<=23;r++)R[r]=ee;R[24]=bd;R[25]=xd;R[26]=Ed;R[27]=vd;R[28]=ee;R[29]=ee;R[30]=ee;R[31]=ee;for(let r=32;r<=55;r++)R[r]=ee;R[56]=Ad;R[57]=Bd;R[58]=kd;R[59]=Id;R[60]=ee;R[61]=ee;R[62]=ee;R[63]=ee;for(let r=64;r<=87;r++)R[r]=Rd;R[88]=_d;R[89]=Td;R[90]=Nd;R[91]=Cd;R[92]=ee;R[93]=ee;R[94]=ee;R[95]=Fi("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)R[r]=Ld;R[120]=Ud;R[121]=Dd;R[122]=Pd;R[123]=Od;R[124]=ee;R[125]=ee;R[126]=ee;R[127]=Fi("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)R[r]=Vd;R[152]=Md;R[153]=$d;R[154]=Hd;R[155]=Kd;R[156]=ee;R[157]=ee;R[158]=ee;R[159]=qd;for(let r=160;r<=183;r++)R[r]=zd;R[184]=Gd;R[185]=jd;R[186]=Wd;R[187]=Yd;R[188]=ee;R[189]=ee;R[190]=ee;R[191]=Zd;for(let r=192;r<=215;r++)R[r]=Jd;R[216]=Xd;R[217]=Qd;R[218]=ep;R[219]=tp;R[220]=ee;R[221]=ee;R[222]=ee;R[223]=ee;for(let r=224;r<=243;r++)R[r]=Fi("simple values are not supported");R[244]=ee;R[245]=ee;R[246]=ee;R[247]=rp;R[248]=Fi("simple values are not supported");R[249]=op;R[250]=sp;R[251]=ip;R[252]=ee;R[253]=ee;R[254]=ee;R[255]=np;var vt=[];for(let r=0;r<24;r++)vt[r]=new A(d.uint,r,1);for(let r=-1;r>=-24;r--)vt[31-r]=new A(d.negint,r,1);vt[64]=new A(d.bytes,new Uint8Array(0),1);vt[96]=new A(d.string,"",1);vt[128]=new A(d.array,0,1);vt[160]=new A(d.map,0,1);vt[244]=new A(d.false,!1,1);vt[245]=new A(d.true,!0,1);vt[246]=new A(d.null,null,1);function fp(r){switch(r.type){case d.false:return Ct([244]);case d.true:return Ct([245]);case d.null:return Ct([246]);case d.bytes:return r.value.length?void 0:Ct([64]);case d.string:return r.value===""?Ct([96]):void 0;case d.array:return r.value===0?Ct([128]):void 0;case d.map:return r.value===0?Ct([160]):void 0;case d.uint:return r.value<24?Ct([Number(r.value)]):void 0;case d.negint:if(r.value>=-24)return Ct([31-Number(r.value)])}}var wb={float64:!1,mapSorter:Eb,quickEncodeToken:fp};function bb(){let r=[];return r[d.uint.major]=lt,r[d.negint.major]=Ci,r[d.bytes.major]=zn,r[d.string.major]=Fd,r[d.array.major]=Ui,r[d.map.major]=Di,r[d.tag.major]=Pi,r[d.float.major]=Oi,r}var hp=bb(),lu=new Lo,Mi=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(`${qn} object contains circular references`);return new r(t,e)}},_r={null:new A(d.null,null),undefined:new A(d.undefined,void 0),true:new A(d.true,!0),false:new A(d.false,!1),emptyArray:new A(d.array,0),emptyMap:new A(d.map,0)},Tr={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new A(d.float,r):r>=0?new A(d.uint,r):new A(d.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new A(d.uint,r):new A(d.negint,r)},Uint8Array(r,e,t,n){return new A(d.bytes,r)},string(r,e,t,n){return new A(d.string,r)},boolean(r,e,t,n){return r?_r.true:_r.false},null(r,e,t,n){return _r.null},undefined(r,e,t,n){return _r.undefined},ArrayBuffer(r,e,t,n){return new A(d.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new A(d.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[_r.emptyArray,new A(d.break)]:_r.emptyArray;n=Mi.createCheck(n,r);let o=[],s=0;for(let i of r)o[s++]=Vi(i,t,n);return t.addBreakTokens?[new A(d.array,r.length),o,new A(d.break)]:[new A(d.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",s=o?r.keys():Object.keys(r),i=o?r.size:s.length;if(!i)return t.addBreakTokens===!0?[_r.emptyMap,new A(d.break)]:_r.emptyMap;n=Mi.createCheck(n,r);let a=[],c=0;for(let f of s)a[c++]=[Vi(f,t,n),Vi(o?r.get(f):r[f],t,n)];return xb(a,t),t.addBreakTokens?[new A(d.map,i),a,new A(d.break)]:[new A(d.map,i),a]}};Tr.Map=Tr.Object;Tr.Buffer=Tr.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Tr[`${r}Array`]=Tr.DataView;function Vi(r,e={},t){let n=fd(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||Tr[n];if(typeof o=="function"){let i=o(r,n,e,t);if(i!=null)return i}let s=Tr[n];if(!s)throw new Error(`${qn} unsupported type: ${n}`);return s(r,n,e,t)}function xb(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Eb(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,s=hp[o].compareTokens(t,n);return s===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),s}function dp(r,e,t,n){if(Array.isArray(e))for(let o of e)dp(r,o,t,n);else t[e.type.major](r,e,n)}function pp(r,e,t){let n=Vi(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let s=e[n.type.major];if(s.encodedSize){let i=s.encodedSize(n,t),a=new Lo(i);if(s(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Co(a.chunks[0])}}return lu.reset(),dp(lu,n,e,t),lu.toBytes(!0)}function Wn(r,e){return e=Object.assign({},wb,e),pp(r,hp,e)}var vb={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},$i=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=vt[e];if(t===void 0){let n=R[e];if(!n)throw new Error(`${F} 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}},Oo=Symbol.for("DONE"),Hi=Symbol.for("BREAK");function Ab(r,e,t){let n=[];for(let o=0;o<r.value;o++){let s=Yn(e,t);if(s===Hi){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed array`)}if(s===Oo)throw new Error(`${F} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=s}return n}function Bb(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},s=n?new Map:void 0;for(let i=0;i<r.value;i++){let a=Yn(e,t);if(a===Hi){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed map`)}if(a===Oo)throw new Error(`${F} found map but not enough entries (got ${i} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${F} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&s.has(a)||!n&&a in o))throw new Error(`${F} found repeat map key "${a}"`);let c=Yn(e,t);if(c===Oo)throw new Error(`${F} found map but not enough entries (got ${i} [no value], expected ${r.value})`);n?s.set(a,c):o[a]=c}return n?s:o}function Yn(r,e){if(r.done())return Oo;let t=r.next();if(t.type===d.break)return Hi;if(t.type.terminal)return t.value;if(t.type===d.array)return Ab(t,r,e);if(t.type===d.map)return Bb(t,r,e);if(t.type===d.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Yn(r,e);return e.tags[t.value](n)}throw new Error(`${F} tag not supported (${t.value})`)}throw new Error("unsupported")}function fu(r,e){if(!(r instanceof Uint8Array))throw new Error(`${F} data to decode must be a Uint8Array`);e=Object.assign({},vb,e);let t=e.tokenizer||new $i(r,e),n=Yn(t,e);if(n===Oo)throw new Error(`${F} did not find any content to decode`);if(n===Hi)throw new Error(`${F} got unexpected break`);return[n,r.subarray(t.pos())]}function ht(r,e){let[t,n]=fu(r,e);if(n.length>0)throw new Error(`${F} too many terminals, data makes no sense`);return t}var nt=ot(pn(),1);var mp=Je("ipns:utils"),yp=Y("/ipns/"),kb=114,gp=async(r,e)=>{if(e==null||r==null){let n=new Error("one or more of the provided parameters are not defined");throw mp.error(n),(0,nt.default)(n,ou)}let t;if(e.pubKey!=null){try{t=tu(e.pubKey)}catch(o){throw mp.error(o),o}if(!(await yf(e.pubKey)).equals(r))throw(0,nt.default)(new Error("Embedded public key did not match PeerID"),cd)}else r.publicKey!=null&&(t=tu(r.publicKey));if(t!=null)return t;throw(0,nt.default)(new Error("no public key is available"),ou)};var wp=r=>{let e=Y("ipns-signature:");return Fe([e,r])},Zr=r=>"signatureV1"in r?xt.encode({value:Y(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:Y(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):xt.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data});function Lt(r){let e=xt.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,nt.default)(new Error("missing data or signatureV2"),nr);let t=bp(e.data),n=Sb(t.Value),o=z(t.Validity);if(e.value!=null&&e.signatureV1!=null)return Ib(e),{value:n,validityType:xt.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:xt.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 hu=r=>Fe([yp,r.toBytes()]),Zn=r=>fo(r.slice(yp.length));var bp=r=>{let e=ht(r);if(e.ValidityType===0)e.ValidityType=xt.ValidityType.EOL;else throw(0,nt.default)(new Error("Unknown validity type"),_i);return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e},Sb=r=>{if(r!=null){if(Qu(r))return`/ipns/${r.toCID().toString(hr)}`;if(r instanceof Uint8Array){let n=z(r);n.startsWith("/")&&(r=n)}let e=r.toString().trim();if(e.startsWith("/")&&e.length>1)return e;let t=oe.asCID(r);if(t!=null)return t.code===kb?`/ipns/${t.toString(hr)}`:`/ipfs/${t.toV1().toString()}`;try{return r instanceof Uint8Array?`/ipfs/${oe.decode(r).toV1().toString()}`:`/ipfs/${oe.parse(e).toV1().toString()}`}catch{}}throw(0,nt.default)(new Error("Value must be a valid content path starting with /"),ad)},Ib=r=>{if(r.data==null)throw(0,nt.default)(new Error("Record data is missing"),id);let e=bp(r.data);if(!ce(e.Value,r.value??new Uint8Array(0)))throw(0,nt.default)(new Error('Field "value" did not match between protobuf and CBOR'),nr);if(!ce(e.Validity,r.validity??new Uint8Array(0)))throw(0,nt.default)(new Error('Field "validity" did not match between protobuf and CBOR'),nr);if(e.ValidityType!==r.validityType)throw(0,nt.default)(new Error('Field "validityType" did not match between protobuf and CBOR'),nr);if(e.Sequence!==r.sequence)throw(0,nt.default)(new Error('Field "sequence" did not match between protobuf and CBOR'),nr);if(e.TTL!==r.ttl)throw(0,nt.default)(new Error('Field "ttl" did not match between protobuf and CBOR'),nr)};var J8=Je("ipns"),X8=st.code,Q8=60*60*1e9,Tb="/ipns/",eS=Tb.length;var Fo=ot(pn(),1),xp=ot(nu(),1);var qi=Je("ipns:validator"),Nb=1024*10,Cb=async(r,e)=>{let t=Lt(e),n;try{let o=wp(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw qi.error("record signature verification failed"),(0,Fo.default)(new Error("record signature verification failed"),nr);if(t.validityType===xt.ValidityType.EOL){if(xp.default.fromString(t.validity).toDate().getTime()<Date.now())throw qi.error("record has expired"),(0,Fo.default)(new Error("record has expired"),sd)}else if(t.validityType!=null)throw qi.error("unrecognized validity type"),(0,Fo.default)(new Error("unrecognized validity type"),_i);qi("ipns record for %s is valid",t.value)};async function Ep(r,e){if(e.byteLength>Nb)throw(0,Fo.default)(new Error("record too large"),ud);let t=Zn(r),n=Lt(e),o=await gp(t,n);await Cb(o,e)}async function*Vo(r){let e=/\r?\n/,t=new TextDecoder("utf8"),n="";for await(let o of r){typeof o=="string"&&(o=new TextEncoder().encode(o)),n+=t.decode(o,{stream:!0});let s=n.split(e);n=s.pop()??"";for(let i=0;i<s.length;i++)yield JSON.parse(s[i])}n+=t.decode(),n!==""&&(yield JSON.parse(n))}var pu=ot(Ap(),1);var $o=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},mu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Bp=r=>globalThis.DOMException===void 0?new mu(r):new DOMException(r),kp=r=>{let e=r.reason===void 0?Bp("This operation was aborted."):r.reason;return e instanceof Error?e:Bp(e)};function Ho(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,c=new Promise((f,u)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:h}=e;h.aborted&&u(kp(h)),h.addEventListener("abort",()=>{u(kp(h))})}if(t===Number.POSITIVE_INFINITY){r.then(f,u);return}let l=new $o;i=s.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(h){u(h)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?f():o instanceof Error?u(o):(l.message=o??`Promise timed out after ${t} milliseconds`,u(l))},t),(async()=>{try{f(await r)}catch(h){u(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},c}function yu(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Ko=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=yu(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Ut=class extends pu.default{#e;#t;#r=0;#i;#c;#p=0;#o;#u;#n;#m;#s=0;#l;#a;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ko,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#i=e.intervalCap,this.#c=e.interval,this.#n=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#a=e.autoStart===!1}get#b(){return this.#t||this.#r<this.#i}get#x(){return this.#s<this.#l}#E(){this.#s--,this.#f(),this.emit("next")}#v(){this.#w(),this.#g(),this.#u=void 0}get#A(){let e=Date.now();if(this.#o===void 0){let t=this.#p-e;if(t<0)this.#r=this.#e?this.#s:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){if(this.#n.size===0)return this.#o&&clearInterval(this.#o),this.#o=void 0,this.emit("empty"),this.#s===0&&this.emit("idle"),!1;if(!this.#a){let e=!this.#A;if(this.#b&&this.#x){let t=this.#n.dequeue();return t?(this.emit("active"),t(),e&&this.#g(),!0):!1}}return!1}#g(){this.#t||this.#o!==void 0||(this.#o=setInterval(()=>{this.#w()},this.#c),this.#p=Date.now()+this.#c)}#w(){this.#r===0&&this.#s===0&&this.#o&&(clearInterval(this.#o),this.#o=void 0),this.#r=this.#e?this.#s:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#h()}async#B(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#y,...t},new Promise((n,o)=>{this.#n.enqueue(async()=>{this.#s++,this.#r++;try{t.signal?.throwIfAborted();let s=e({signal:t.signal});t.timeout&&(s=Ho(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#B(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof $o&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#a?(this.#a=!1,this.#h(),this):this}pause(){this.#a=!0}clear(){this.#n=new this.#m}async onEmpty(){this.#n.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#n.size<e||await this.#d("next",()=>this.#n.size<e)}async onIdle(){this.#s===0&&this.#n.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#n.size}sizeBy(e){return this.#n.filter(e).length}get pending(){return this.#s}get isPaused(){return this.#a}};function Db(r){return r[Symbol.asyncIterator]!=null}function Pb(r){if(Db(r))return(async()=>{for await(let e of r)return e})();for(let e of r)return e}var Gi=Pb;var gu=Y("/ipns/");function Sp(r){return ce(r.subarray(0,gu.byteLength),gu)}var Ip=r=>fo(r.slice(gu.length)),ji=class{client;constructor(e){this.client=e}async*findProviders(e,t={}){yield*yn(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs??[]}))}async provide(){}async put(e,t,n){if(!Sp(e))return;let o=Ip(e),s=Lt(t);await this.client.putIPNS(o,s,n)}async get(e,t){if(!Sp(e))throw new N("Not found","ERR_NOT_FOUND");let n=Ip(e);try{let o=await this.client.getIPNS(n,t);return Zr(o)}catch(o){throw o.code==="ERR_BAD_RESPONSE"?new N("Not found","ERR_NOT_FOUND"):o}}},Wi=class{client;constructor(e){this.client=e}async findPeer(e,t={}){let n=await Gi(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new N("Not found","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){}};var ze=Je("delegated-routing-v1-http-api-client"),Rp={concurrentRequests:4,timeout:3e4},Yi=class{started;httpQueue;shutDownController;clientUrl;timeout;contentRouting;peerRouting;constructor(e,t={}){this.started=!1,this.shutDownController=new AbortController,cr(1/0,this.shutDownController.signal),this.httpQueue=new Ut({concurrency:t.concurrentRequests??Rp.concurrentRequests}),this.clientUrl=e instanceof URL?e:new URL(e),this.timeout=t.timeout??Rp.timeout,this.contentRouting=new ji(this),this.peerRouting=new Wi(this)}get[eo](){return this.contentRouting}get[to](){return this.peerRouting}isStarted(){return this.started}start(){this.started=!0}stop(){this.httpQueue.clear(),this.shutDownController.abort(),this.started=!1}async*getProviders(e,t={}){ze("getProviders starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));try{await o.promise;let i=`${this.clientUrl}routing/v1/providers/${e.toString()}`,c=await fetch(i,{headers:{Accept:"application/x-ndjson"},signal:n});if(c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("Routing response had no body","ERR_BAD_RESPONSE");if(c.headers.get("Content-Type")==="application/json"){let u=await c.json();for(let l of u.Providers){let h=this.#e(l);h!=null&&(yield h)}}else for await(let u of Vo(vs(c.body))){let l=this.#e(u);l!=null&&(yield l)}}catch(i){ze.error("getProviders errored:",i)}finally{n.clear(),s.resolve(),ze("getProviders finished: %c",e)}}async*getPeers(e,t={}){ze("getPeers starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));try{await o.promise;let i=`${this.clientUrl}routing/v1/peers/${e.toCID().toString()}`,c=await fetch(i,{headers:{Accept:"application/x-ndjson"},signal:n});if(c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("Routing response had no body","ERR_BAD_RESPONSE");if(c.headers.get("Content-Type")==="application/json"){let u=await c.json();for(let l of u.Peers){let h=this.#e(l);h!=null&&(yield h)}}else for await(let u of Vo(vs(c.body))){let l=this.#e(u);l!=null&&(yield l)}}catch(i){ze.error("getPeers errored:",i)}finally{n.clear(),s.resolve(),ze("getPeers finished: %c",e)}}async getIPNS(e,t={}){ze("getIPNS starts: %c",e);let n=Dr([this.shutDownController.signal,t.signal,AbortSignal.timeout(this.timeout)]),o=Ie(),s=Ie();this.httpQueue.add(async()=>(o.resolve(),s.promise));let i=`${this.clientUrl}routing/v1/ipns/${e.toCID().toString()}`;try{await o.promise;let c=await fetch(i,{headers:{Accept:"application/vnd.ipfs.ipns-record"},signal:n});if(ze("getIPNS GET %s %d",i,c.status),c.status===404)throw new N("No matching records found.","ERR_NOT_FOUND");if(c.status===422)throw new N("Request does not conform to schema or semantic constraints.","ERR_INVALID_REQUEST");if(c.body==null)throw new N("GET ipns response had no body","ERR_BAD_RESPONSE");let f=await c.arrayBuffer(),u=new Uint8Array(f,0,f.byteLength);return t.validate!==!1&&await Ep(hu(e),u),Lt(u)}catch(a){throw ze.error("getIPNS GET %s error:",i,a),a}finally{n.clear(),s.resolve(),ze("getIPNS finished: %c",e)}}async putIPNS(e,t,n={}){ze("putIPNS starts: %c",e);let o=Dr([this.shutDownController.signal,n.signal,AbortSignal.timeout(this.timeout)]),s=Ie(),i=Ie();this.httpQueue.add(async()=>(s.resolve(),i.promise));let a=`${this.clientUrl}routing/v1/ipns/${e.toCID().toString()}`;try{await s.promise;let c=Zr(t),u=await fetch(a,{method:"PUT",headers:{"Content-Type":"application/vnd.ipfs.ipns-record"},body:c,signal:o});if(ze("putIPNS PUT %s %d",a,u.status),u.status!==200)throw new N("PUT ipns response had status other than 200","ERR_BAD_RESPONSE")}catch(c){throw ze.error("putIPNS PUT %s error:",a,c.stack),c}finally{o.clear(),i.resolve(),ze("putIPNS finished: %c",e)}}#e(e){let t=[],n=e.Addrs?.map(Fr)??[];return e.Protocols!=null&&t.push(...e.Protocols),e.Protocol!=null&&(t.push(e.Protocol),delete e.Protocol),{...e,Schema:"peer",ID:xc(e.ID),Addrs:n,Protocols:t}}};function _p(r,e={}){return new Yi(new URL(r),e)}var Tp=Y("/ipns/");function Np(r){return ce(r.subarray(0,Tp.byteLength),Tp)}var wu=class{client;constructor(e){this.client=_p(e)}async provide(e,t){}async*findProviders(e,t){yield*yn(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs,protocols:n.Protocols}))}async put(e,t,n){if(!Np(e))return;let o=Zn(e),s=Lt(t);await this.client.putIPNS(o,s,n)}async get(e,t){if(!Np(e))throw new N("Not found","ERR_NOT_FOUND");let n=Zn(e);try{let o=await this.client.getIPNS(n,t);return Zr(o)}catch(o){throw o.code==="ERR_BAD_RESPONSE"?new N("Not found","ERR_NOT_FOUND"):o}}async findPeer(e,t){let n=await Gi(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new N("Not found","ERR_NOT_FOUND")}async*getClosestPeers(e,t){}};function bu(r){return new wu(new URL(r))}function Zi(r){let e=[At.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var xu=60;function Ji(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:At[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:At[e.type],TTL:e.TTL??e.ttl??xu,data:e.data instanceof Uint8Array?z(e.data):e.data}))}}var Ob=4;function Eu(r,e={}){let t=new Ut({concurrency:e.queryConcurrency??Ob});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),Zi(o.types).forEach(a=>{s.append("type",At[a])}),o.onProgress?.(new ne("dns:query",{detail:n}));let i=await t.add(async()=>{let a=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(a.status!==200)throw new Error(`Unexpected HTTP status: ${a.status} - ${a.statusText}`);let c=Ji(await a.json());return o.onProgress?.(new ne("dns:response",{detail:c})),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Cp(){return[Eu("https://cloudflare-dns.com/dns-query"),Eu("https://dns.google/resolve")]}var Dp=ot(Up(),1);var vu=class{lru;constructor(e){this.lru=(0,Dp.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return Ji({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:At[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??xu)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Pp(r){return new vu(r)}var Fb=1e3,Xi=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Pp(e.cacheSize??Fb),Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=Cp())}async query(e,t={}){let n=Zi(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new ne("dns:cache",{detail:o})),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let f=await c(e,{...t,types:n});for(let u of f.Answer)this.cache.add(e,u);return f}catch(f){a.push(f),t.onProgress?.(new ne("dns:error",{detail:f}))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var At;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(At||(At={}));function Op(r={}){return new Xi(r)}var $p="/pin/",Fp="/pinned-block/",Au=hr,Vp=1;function Mp(r){return r.version===0&&(r=r.toV1()),new Ne(`${$p}${r.toString(Au)}`)}var Qi=class{datastore;blockstore;dagWalkers;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.dagWalkers=n}async*add(e,t={}){let n=Mp(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let s=new Pr({concurrency:Vp});for await(let a of this.#e(e,s,{...t,depth:o}))await this.#t(a,c=>c.pinnedBy.find(f=>ce(f,e.bytes))!=null?!1:(c.pinCount++,c.pinnedBy.push(e.bytes),!0),t),yield a;let i={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,Wn(i),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=this.dagWalkers[e.code];if(o==null)throw new Error(`No dag walker found for cid codec ${e.code}`);let s=await this.blockstore.get(e,n);yield e;for await(let i of o.walk(s))yield*await t.add(async()=>this.#e(i,t,{...n,depth:n.depth-1}))}async#t(e,t,n){let o=new Ne(`${Fp}${Au.encode(e.multihash.bytes)}`),s={pinCount:0,pinnedBy:[]};try{s=ht(await this.datastore.get(o,n))}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}if(t(s)){if(s.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,Wn(s),n),n.onProgress?.(new ne("helia:pin:add",e))}}async*rm(e,t={}){let n=Mp(e),o=await this.datastore.get(n,t),s=ht(o);await this.datastore.delete(n,t);let i=new Pr({concurrency:Vp});for await(let a of this.#e(e,i,{...t,depth:s.depth}))await this.#t(a,c=>(c.pinCount--,c.pinnedBy=c.pinnedBy.filter(f=>ce(f,e.bytes)),!0),{...t,depth:s.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:$p+(e.cid!=null?`${e.cid.toString(hr)}`:"")},e)){let o=oe.parse(t.toString().substring(5),hr),s=ht(n);yield{cid:o,...s}}}async isPinned(e,t={}){let n=new Ne(`${Fp}${Au.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}};var ea=class{log;routers;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[]}async start(){await ur(...this.routers)}async stop(){await lr(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new N("No content routers available","ERR_NO_ROUTERS_AVAILABLE");for await(let n of mr(...Jn(this.routers,"findProviders").map(o=>o.findProviders(e,t))))n!=null&&(yield n)}async provide(e,t={}){if(this.routers.length===0)throw new N("No content routers available","ERR_NO_ROUTERS_AVAILABLE");await Promise.all(Jn(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async put(e,t,n){await Promise.all(Jn(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Jn(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new N("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=this,o=mr(...Jn(this.routers,"findPeer").map(s=>async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error(i)}}()));for await(let s of o)if(s!=null)return s;throw new N("Could not find peer in routing","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new N("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");for await(let n of mr(...Jn(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function Jn(r,e){return r.filter(t=>t[e]!=null)}var Nr={},Xn=r=>{r.addEventListener("message",e=>{Xn.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{Xn.dispatchEvent("message",r,e)})};Xn.addEventListener=(r,e)=>{Nr[r]==null&&(Nr[r]=[]),Nr[r].push(e)};Xn.removeEventListener=(r,e)=>{Nr[r]!=null&&(Nr[r]=Nr[r].filter(t=>t===e))};Xn.dispatchEvent=function(r,e,t){Nr[r]!=null&&Nr[r].forEach(n=>n(e,t))};var Bu=Xn;var ku="lock:worker:request-read",Su="lock:worker:release-read",Iu="lock:master:grant-read",Ru="lock:worker:request-write",_u="lock:worker:release-write",Tu="lock:master:grant-write";var Hp=(r=21)=>Math.random().toString().substring(2);var Kp=(r,e,t,n,o)=>(s,i)=>{if(i.data.type!==t)return;let a={type:i.data.type,name:i.data.name,identifier:i.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:o,name:a.name,identifier:a.identifier}),await new Promise(c=>{let f=u=>{if(u==null||u.data==null)return;let l={type:u.data.type,name:u.data.name,identifier:u.data.identifier};l.type===n&&l.identifier===a.identifier&&(s.removeEventListener("message",f),c())};s.addEventListener("message",f)})}}}))},qp=(r,e,t,n)=>async()=>{let o=Hp();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(s=>{let i=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===o&&(globalThis.removeEventListener("message",i),s(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",i)})},Vb={singleProcess:!1},zp=r=>{if(r=Object.assign({},Vb,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return Bu.addEventListener("message",Kp(t,"requestReadLock",ku,Su,Iu)),Bu.addEventListener("message",Kp(t,"requestWriteLock",Ru,_u,Tu)),t}return{isWorker:!0,readLock:t=>qp(t,ku,Iu,Su),writeLock:t=>qp(t,Ru,Tu,_u)}};var Jr={},Cr;async function Nu(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Ho((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Mb=(r,e)=>{if(Cr.isWorker===!0)return{readLock:Cr.readLock(r,e),writeLock:Cr.writeLock(r,e)};let t=new Ut({concurrency:1}),n;return{async readLock(){if(n!=null)return Nu(n,e);n=new Ut({concurrency:e.concurrency,autoStart:!1});let o=n,s=Nu(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),s},async writeLock(){return n=null,Nu(t,e)}}},$b={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Cu(r){let e=Object.assign({},$b,r);return Cr==null&&(Cr=zp(e),Cr.isWorker!==!0&&(Cr.addEventListener("requestReadLock",t=>{Jr[t.data.name]!=null&&Jr[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),Cr.addEventListener("requestWriteLock",async t=>{Jr[t.data.name]!=null&&Jr[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),Jr[e.name]==null&&(Jr[e.name]=Mb(e.name,e)),Jr[e.name]}var ta=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Cu({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ur(this.child),this.started=!0}async stop(){await lr(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let s of e){if(await o.pins.isPinned(s))throw new Error("CID was pinned");yield s}}(),t)}finally{n()}}async has(e,t={}){let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}async createSession(e,t){let n=await this.lock.readLock();try{let o=await this.child.createSession(e,t);if(o==null)throw new N("Sessions not supported","ERR_UNSUPPORTED");return o}finally{n()}}};var jp=42;function Hb(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=oe.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new A(d.tag,jp),new A(d.bytes,t)]}function Kb(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function qb(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Gp={float64:!0,typeEncoders:{Object:Hb,undefined:Kb,number:qb}},n6={...Gp,typeEncoders:{...Gp.typeEncoders}};function zb(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return oe.decode(r.subarray(1))}var Lu={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Lu.tags[jp]=zb;var o6={...Lu,tags:Lu.tags.slice()};var Wp=113;var Yp=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===d.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===d.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[d.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s);e.push(o)}[d.negint.major](e,t){this[d.uint.major](e,t)}[d.bytes.major](e,t){throw new Error(`${qn} unsupported type: Uint8Array`)}[d.string.major](e,t){this.prefix(e);let n=Ni(JSON.stringify(t.value));e.push(n.length>32?Co(n):n)}[d.array.major](e,t){this.prefix(e),this.inRecursive.push({type:d.array,elements:0}),e.push([91])}[d.map.major](e,t){this.prefix(e),this.inRecursive.push({type:d.map,elements:0}),e.push([123])}[d.tag.major](e,t){}[d.float.major](e,t){if(t.type.name==="break"){let i=this.inRecursive.pop();if(i){if(i.type===d.array)e.push([93]);else if(i.type===d.map)e.push([125]);else throw new Error("Unexpected recursive type; this should not happen!");return}throw new Error("Unexpected break; this should not happen!")}if(t.value===void 0)throw new Error(`${qn} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),o=[],s=!1;for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i),!s&&(o[i]===46||o[i]===101||o[i]===69)&&(s=!0);s||(o.push(46),o.push(48)),e.push(o)}};var Xr=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${F} unexpected end of input at position ${this._pos}`);for(let t=0;t<e.length;t++)if(this.data[this._pos++]!==e[t])throw new Error(`${F} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=a=>{for(;!this.done();){let c=this.ch();if(a.includes(c))this._pos++;else break}};if(this.ch()===45&&(t=!0,this._pos++),this.ch()===48)if(this._pos++,this.ch()===46)this._pos++,n=!0;else return new A(d.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${F} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${F} unexpected token at position ${this._pos}`);n=!0,this._pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this._pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this._pos++,o([48,49,50,51,52,53,54,55,56,57]));let s=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),i=parseFloat(s);return n?new A(d.float,i,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(i)?new A(i>=0?d.uint:d.negint,i,this._pos-e):new A(i>=0?d.uint:d.negint,BigInt(s),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${F} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let s=this._pos,i=0;s<this.data.length&&i<65536;s++,i++){let a=this.data[s];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,s));return this._pos=s+1,new A(d.string,c,i)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${F} unexpected end of unicode escape sequence at position ${this._pos}`);let s=0;for(let i=0;i<4;i++){let a=this.ch();if(a>=48&&a<=57)a-=48;else if(a>=97&&a<=102)a=a-97+10;else if(a>=65&&a<=70)a=a-65+10;else throw new Error(`${F} unexpected unicode escape character at position ${this._pos}`);s=s*16+a,this._pos++}return s},o=()=>{let s=this.ch(),i=null,a=s>239?4:s>223?3:s>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${F} unexpected unicode sequence at position ${this._pos}`);let c,f,u,l;switch(a){case 1:s<128&&(i=s);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(l=(s&31)<<6|c&63,l>127&&(i=l));break;case 3:c=this.data[this._pos+1],f=this.data[this._pos+2],(c&192)===128&&(f&192)===128&&(l=(s&15)<<12|(c&63)<<6|f&63,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:c=this.data[this._pos+1],f=this.data[this._pos+2],u=this.data[this._pos+3],(c&192)===128&&(f&192)===128&&(u&192)===128&&(l=(s&15)<<18|(c&63)<<12|(f&63)<<6|u&63,l>65535&&l<1114112&&(i=l))}i===null?(i=65533,a=1):i>65535&&(i-=65536,t.push(i>>>10&1023|55296),i=56320|i&1023),t.push(i),this._pos+=a};for(;!this.done();){let s=this.ch(),i;switch(s){case 92:if(this._pos++,this.done())throw new Error(`${F} unexpected string termination at position ${this._pos}`);switch(i=this.ch(),this._pos++,i){case 34:case 39:case 92:case 47:t.push(i);break;case 98:t.push(8);break;case 116:t.push(9);break;case 110:t.push(10);break;case 102:t.push(12);break;case 114:t.push(13);break;case 117:t.push(n());break;default:throw new Error(`${F} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new A(d.string,su(t),this._pos-e);default:if(s<32)throw new Error(`${F} invalid control character at position ${this._pos}`);s<128?(t.push(s),this._pos++):o()}}throw new Error(`${F} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new A(d.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new A(d.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new A(d.null,null,4);case 102:return this.expect([102,97,108,115,101]),new A(d.false,!1,5);case 116:return this.expect([116,114,117,101]),new A(d.true,!0,4);case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.parseNumber();default:throw new Error(`${F} unexpected character at position ${this._pos}`)}}next(){switch(this.skipWhitespace(),this.currentMode()){case"value":return this.modeStack.pop(),this.parseValue();case"array-value":{if(this.modeStack.pop(),this.ch()===93)return this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);if(this.ch()!==44)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting array delimiter but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue()}case"array-start":return this.modeStack.pop(),this.ch()===93?(this._pos++,this.skipWhitespace(),new A(d.break,void 0,1)):(this.modeStack.push("array-value"),this.skipWhitespace(),this.parseValue());case"obj-key":if(this.ch()===125)return this.modeStack.pop(),this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);if(this.ch()!==44)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting object delimiter but found '${String.fromCharCode(this.ch())}'`);this._pos++,this.skipWhitespace();case"obj-start":{if(this.modeStack.pop(),this.ch()===125)return this._pos++,this.skipWhitespace(),new A(d.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${F} unexpected character at position ${this._pos}, was expecting key/value delimiter ':' but found '${String.fromCharCode(this.ch())}'`);return this._pos++,this.modeStack.push("obj-value"),e}case"obj-value":return this.modeStack.pop(),this.modeStack.push("obj-key"),this.skipWhitespace(),this.parseValue();default:throw new Error(`${F} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function ra(r,e){return e=Object.assign({tokenizer:new Xr(r,e)},e),ht(r,e)}var Wb={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Wb.tags[42]=oe.parse;var Jp=297;var E6=new TextDecoder;var v6=new TextEncoder;var Zb=new TextDecoder;function Uu(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function na(r,e){let t;[t,e]=Uu(r,e);let n=e+t;if(t<0||n<0)throw new Error("protobuf: invalid length");if(n>r.length)throw new Error("protobuf: unexpected end of data");return[r.subarray(e,n),n]}function Xp(r,e){let t;return[t,e]=Uu(r,e),[t&7,t>>3,e]}function Jb(r){let e={},t=r.length,n=0;for(;n<t;){let o,s;if([o,s,n]=Xp(r,n),s===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=na(r,n)}else if(s===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let i;[i,n]=na(r,n),e.Name=Zb.decode(i)}else if(s===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=Uu(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${s}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Qp(r){let e=r.length,t=0,n,o=!1,s;for(;t<e;){let a,c;if([a,c,t]=Xp(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(s)throw new Error("protobuf: (PBNode) duplicate Data section");[s,t]=na(r,t),n&&(o=!0)}else if(c===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let f;[f,t]=na(r,t),n.push(Jb(f))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let i={};return s&&(i.Data=s),i.Links=n||[],i}var B6=new TextEncoder,k6=2**32,S6=2**31;var _6=new TextEncoder;function e0(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var t0=112;function r0(r){let e=e0(r),t=Qp(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let s={};try{s.Hash=oe.decode(o.Hash)}catch{}if(!s.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(s.Name=o.Name),o.Tsize!==void 0&&(s.Tsize=o.Tsize),s})),n}var Qb={codec:t0,*walk(r){yield*r0(r).Links.map(t=>t.Hash)}},ex={codec:is,*walk(){}},n0=42,tx={codec:Wp,*walk(r){let e=[],t=[];t[n0]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let o=oe.decode(n.subarray(1));return e.push(o),o},ht(r,{tags:t}),yield*e}},Du=class extends Xr{tokenBuffer;constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===d.map){let t=this._next();if(t.type===d.string&&t.value==="/"){let n=this._next();if(n.type===d.string){if(this._next().type!==d.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new A(d.tag,42,0)}if(n.type===d.map){let o=this._next();if(o.type===d.string&&o.value==="bytes"){let s=this._next();if(s.type===d.string){for(let a=0;a<2;a++)if(this._next().type!==d.break)throw new Error("Invalid encoded Bytes form");let i=dr.decode(`m${s.value}`);return new A(d.bytes,i,s.value.length)}this.tokenBuffer.push(s)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},rx={codec:Jp,*walk(r){let e=[],t=[];t[n0]=n=>{let o=oe.parse(n);return e.push(o),o},ra(r,{tags:t,tokenizer:new Du(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}},nx={codec:wl,*walk(){}};function o0(r=[]){let e={};return[Qb,ex,tx,rx,nx,...r].forEach(t=>{e[t.codec]=t}),e}var Pu=new Ne("/version"),s0=1;async function i0(r){if(!await r.has(Pu)){await r.put(Pu,Y(`${s0}`));return}let e=await r.get(Pu),t=z(e);if(parseInt(t,10)!==s0)throw new Error("Unknown datastore version, a datastore migration may be required")}function a0(r=[]){let e={};return[Ee,Oa,st,...r].forEach(t=>{e[t.code]=t}),e}var Dt=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,block:o}of e)await this.put(n,o,t),yield n}get(e,t){return Promise.reject(new Error(".get is not implemented"))}async*getMany(e,t){for await(let n of e)yield{cid:n,block:await this.get(n,t)}}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*deleteMany(e,t){for await(let n of e)await this.delete(n,t),yield n}async*getAll(e){throw new Error(".getAll is not implemented")}};var Qr={};xe(Qr,{abortedError:()=>cx,closeFailedError:()=>sx,deleteFailedError:()=>Fu,getFailedError:()=>ix,hasFailedError:()=>ax,notFoundError:()=>Lr,openFailedError:()=>ox,putFailedError:()=>Ou});var sr=ot(pn(),1);function ox(r){return r=r??new Error("Open failed"),(0,sr.default)(r,"ERR_OPEN_FAILED")}function sx(r){return r=r??new Error("Close failed"),(0,sr.default)(r,"ERR_CLOSE_FAILED")}function Ou(r){return r=r??new Error("Put failed"),(0,sr.default)(r,"ERR_PUT_FAILED")}function ix(r){return r=r??new Error("Get failed"),(0,sr.default)(r,"ERR_GET_FAILED")}function Fu(r){return r=r??new Error("Delete failed"),(0,sr.default)(r,"ERR_DELETE_FAILED")}function ax(r){return r=r??new Error("Has failed"),(0,sr.default)(r,"ERR_HAS_FAILED")}function Lr(r){return r=r??new Error("Not Found"),(0,sr.default)(r,"ERR_NOT_FOUND")}function cx(r){return r=r??new Error("Aborted"),(0,sr.default)(r,"ERR_ABORTED")}var c0=0,oa=class extends Dt{put(e){return e}get(e){if(e.code===c0)return e.multihash.digest;throw Lr()}has(e){return e.code===c0}delete(){}*getAll(){}};var ux=Je("blockstore:core:tiered"),qo=class extends Dt{stores;constructor(e){super(),this.stores=e.slice()}async put(e,t,n){try{return await Promise.all(this.stores.map(async o=>{await o.put(e,t,n)})),e}catch(o){throw Ou(o)}}async get(e,t){for(let n of this.stores)try{let o=await n.get(e,t);if(o!=null)return o}catch(o){ux.error(o)}throw Lr()}async has(e,t){for(let n of this.stores)if(await n.has(e,t))return!0;return!1}async delete(e,t){try{await Promise.all(this.stores.map(async n=>{await n.delete(e,t)}))}catch(n){throw Fu(n)}}async*putMany(e,t={}){let n,o=this.stores.map(s=>{let i=Ft({objectMode:!0});return $t(s.putMany(i,t)).catch(a=>{n=a}),i});try{for await(let s of e){if(n!=null)throw n;o.forEach(i=>i.push(s)),yield s.cid}}finally{o.forEach(s=>s.end())}}async*deleteMany(e,t={}){let n,o=this.stores.map(s=>{let i=Ft({objectMode:!0});return $t(s.deleteMany(i,t)).catch(a=>{n=a}),i});try{for await(let s of e){if(n!=null)throw n;o.forEach(i=>i.push(s)),yield s}}finally{o.forEach(s=>s.end())}}async*getAll(e){let t=new Set;yield*it(mr(...this.stores.map(n=>n.getAll(e))),n=>{let o=n.cid.toString();return t.has(o)?!1:(t.add(o),!0)})}};function lx(r){return r[Symbol.asyncIterator]!=null}function u0(r){return r?.then!=null}function fx(r,e){if(lx(r))return async function*(){for await(let a of r){let c=e(a);u0(c)&&await c,yield a}}();let t=mn(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();if(typeof e(n)?.then=="function")return async function*(){yield n;for await(let a of t){let c=e(a);u0(c)&&await c,yield a}}();let i=e;return function*(){yield n;for(let a of t)i(a),yield a}()}var Vu=fx;var sa=class r{child;hashers;started;log;logger;components;constructor(e,t={}){this.log=e.logger.forComponent(`helia:networked-storage${t.root==null?"":`:${t.root}`}`),this.logger=e.logger,this.components=e,this.child=new qo([new oa,e.blockstore]),this.hashers=e.hashers??{},this.started=!1}isStarted(){return this.started}async start(){await ur(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await lr(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){return await this.child.has(e)?(n.onProgress?.(new ne("blocks:put:duplicate",e)),e):(n.onProgress?.(new ne("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,t,n))),n.onProgress?.(new ne("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=it(e,async({cid:s})=>{let i=await this.child.has(s);return i&&t.onProgress?.(new ne("blocks:put-many:duplicate",s)),!i}),o=Vu(n,async({cid:s,block:i})=>{t.onProgress?.(new ne("blocks:put-many:providers:notify",s)),await Promise.all(this.components.blockBrokers.map(async a=>a.announce?.(s,i,t)))});t.onProgress?.(new ne("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e)){t.onProgress?.(new ne("blocks:get:providers:get",e));let n=await l0(e,this.components.blockBrokers,this.hashers[e.multihash.code],{...t,log:this.log});return t.onProgress?.(new ne("blocks:get:blockstore:put",e)),await this.child.put(e,n,t),t.onProgress?.(new ne("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,n,t))),n}return t.onProgress?.(new ne("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new ne("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Vu(e,async n=>{if(t.offline!==!0&&!await this.child.has(n)){t.onProgress?.(new ne("blocks:get-many:providers:get",n));let o=await l0(n,this.components.blockBrokers,this.hashers[n.multihash.code],{...t,log:this.log});t.onProgress?.(new ne("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new ne("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(n,o,t)))}}))}async delete(e,t={}){t.onProgress?.(new ne("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new ne("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new ne("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}async createSession(e,t){let n=await Promise.all(this.components.blockBrokers.map(async o=>o.createSession==null?o:o.createSession(e,t)));return new r({blockstore:this.child,blockBrokers:n,hashers:this.hashers,logger:this.logger},{root:e})}};function hx(r){return typeof r.retrieve=="function"}var dx=(r,e)=>{if(e==null)throw new N(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`,"ERR_UNKNOWN_HASH_ALG");return async t=>{let n=await e.digest(t);if(!ce(n.digest,r.multihash.digest))throw new N("Hash of downloaded block did not match multihash from passed CID","ERR_HASH_MISMATCH")}};async function l0(r,e,t,n){let o=dx(r,t),s=new AbortController,i=Dr([s.signal,n.signal]);cr(1/0,s.signal,i);let a=[];for(let c of e)hx(c)&&a.push(c);try{return await Promise.any(a.map(async c=>{try{let f=!1,u=await c.retrieve(r,{...n,signal:i,validateFn:async l=>{await o(l),f=!0}});return f||await o(u),u}catch(f){throw n.log.error("could not retrieve verified block for %c",r,f),f}}))}finally{i.clear()}}var ia=class{blockstore;datastore;pins;logger;routing;dagWalkers;hashers;dns;log;constructor(e){this.logger=e.logger??kf(),this.log=this.logger.forComponent("helia"),this.hashers=a0(e.hashers),this.dagWalkers=o0(e.dagWalkers),this.dns=e.dns??Op();let t={blockstore:e.blockstore,datastore:e.datastore,hashers:this.hashers,dagWalkers:this.dagWalkers,logger:this.logger,blockBrokers:[],dns:this.dns,...e.components??{}};this.routing=t.routing=new ea(t,{routers:(e.routers??[]).flatMap(o=>{let s=[o];return o[eo]!=null&&s.push(o[eo]),o[to]!=null&&s.push(o[to]),s})});let n=new sa(t);this.pins=new Qi(e.datastore,n,this.dagWalkers),this.blockstore=new ta(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await i0(this.datastore),await ur(this.blockstore,this.datastore,this.routing)}async stop(){await lr(this.blockstore,this.datastore,this.routing)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await $t(o.deleteMany(async function*(){for await(let{cid:s}of o.getAll())try{if(await n.pins.isPinned(s,e))continue;yield s,e.onProgress?.(new ne("helia:gc:deleted",s))}catch(i){n.log.error("Error during gc",i),e.onProgress?.(new ne("helia:gc:error",i))}}()))}finally{t()}this.log("gc finished")}};var zo=class extends Dt{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(Re.encode(e.multihash.bytes),t),e}get(e){let t=this.data.get(Re.encode(e.multihash.bytes));if(t==null)throw Lr();return t}has(e){return this.data.has(Re.encode(e.multihash.bytes))}async delete(e){this.data.delete(Re.encode(e.multihash.bytes))}async*getAll(){for(let[e,t]of this.data.entries())yield{cid:oe.createV1(is,kt(Re.decode(e))),block:t}}};var F4={...Qr};var f0=ot(pn(),1);function aa(r){return r=r??new Error("Not Found"),(0,f0.default)(r,"ERR_NOT_FOUND")}var h0="SHARDING";function mx(r){return r[Symbol.asyncIterator]!=null}function yx(r,e){return mx(r)?async function*(){yield*(await Ec(r)).sort(e)}():function*(){yield*Ec(r).sort(e)}()}var ca=yx;var ir=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await $t(this.putMany(e,n)),e=[],await $t(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=it(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>it(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ca(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=it(n,()=>o++>=s)}return e.limit!=null&&(n=gs(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=it(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>it(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>ca(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=it(n,()=>s++>=o)}return e.limit!=null&&(n=gs(n,e.limit)),n}};var jo=class extends ir{data;constructor(){super(),this.data=new Map}put(e,t){return this.data.set(e.toString(),t),e}get(e){let t=this.data.get(e.toString());if(t==null)throw aa();return t}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,t]of this.data.entries())yield{key:new Ne(e),value:t}}*_allKeys(){for(let e of this.data.keys())yield new Ne(e)}};var hR=new Ne(h0);var BR=Je("datastore:core:tiered");async function bx(r={}){let e=r.datastore??new jo,t=r.blockstore??new zo,n=new ia({...r,datastore:e,blockstore:t,blockBrokers:r.blockBrokers??[vc()],routers:r.routers??[bu("https://delegated-ipfs.dev")]});return r.start!==!1&&await n.start(),n}return I0(xx);})();
9
9
  /*! Bundled license information:
10
10
 
11
11
  pvtsutils/build/index.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/http",
3
- "version": "1.0.3-395cd9e",
3
+ "version": "1.0.3-532d6c4",
4
4
  "description": "A lightweight implementation of IPFS over HTTP in JavaScript",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia/tree/main/packages/http#readme",
@@ -53,10 +53,10 @@
53
53
  "test:electron-main": "aegir test -t electron-main"
54
54
  },
55
55
  "dependencies": {
56
- "@helia/block-brokers": "2.0.3-395cd9e",
57
- "@helia/interface": "4.1.0-395cd9e",
58
- "@helia/routers": "1.0.2-395cd9e",
59
- "@helia/utils": "0.1.0-395cd9e",
56
+ "@helia/block-brokers": "2.0.3-532d6c4",
57
+ "@helia/interface": "4.1.0-532d6c4",
58
+ "@helia/routers": "1.0.2-532d6c4",
59
+ "@helia/utils": "0.1.0-532d6c4",
60
60
  "blockstore-core": "^4.4.0",
61
61
  "datastore-core": "^9.2.9"
62
62
  },