@helia/http 2.2.1-1f0e7f7d → 2.2.1-215a6672
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +2 -2
- package/package.json +5 -5
package/dist/index.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.HeliaHttp = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
2
|
"use strict";var HeliaHttp=(()=>{var v1=Object.create;var Ma=Object.defineProperty;var E1=Object.getOwnPropertyDescriptor;var S1=Object.getOwnPropertyNames;var A1=Object.getPrototypeOf,I1=Object.prototype.hasOwnProperty;var xr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),_e=(r,e)=>{for(var t in e)Ma(r,t,{get:e[t],enumerable:!0})},qg=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S1(e))!I1.call(r,o)&&o!==t&&Ma(r,o,{get:()=>e[o],enumerable:!(n=E1(e,o))||n.enumerable});return r};var vn=(r,e,t)=>(t=r!=null?v1(A1(r)):{},qg(e||!r||!r.__esModule?Ma(t,"default",{value:r,enumerable:!0}):t,r)),C1=r=>qg(Ma({},"__esModule",{value:!0}),r);var mw=xr(Ei=>{(function(){var r,e,t,n,o,s,i,a;a=function(c){var l,u,f,d;return l=(c&255<<24)>>>24,u=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[l,u,f,d].join(".")},i=function(c){var l,u,f,d,h,m;for(l=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}m=e(c),h=m[0],u=m[1],c=c.substring(u),l.push(h)}if(c.length!==0)throw new Error("Invalid IP");switch(l.length){case 1:if(l[0]>4294967295)throw new Error("Invalid IP");return l[0]>>>0;case 2:if(l[0]>255||l[1]>16777215)throw new Error("Invalid IP");return(l[0]<<24|l[1])>>>0;case 3:if(l[0]>255||l[1]>255||l[2]>65535)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2])>>>0;case 4:if(l[0]>255||l[1]>255||l[2]>255||l[3]>255)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2]<<8|l[3])>>>0;default:throw new Error("Invalid IP")}},t=function(c){return c.charCodeAt(0)},n=t("0"),s=t("a"),o=t("A"),e=function(c){var l,u,f,d,h;for(d=0,l=10,u="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,l=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,l=8,u="7")),h=f;f<c.length;){if("0"<=c[f]&&c[f]<=u)d=d*l+(t(c[f])-n)>>>0;else if(l===16)if("a"<=c[f]&&c[f]<="f")d=d*l+(10+t(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*l+(10+t(c[f])-o)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===h)throw new Error("empty octet");return[d,f]},r=(function(){function c(l,u){var f,d,h,m;if(typeof l!="string")throw new Error("Missing `net' parameter");if(u||(m=l.split("/",2),l=m[0],u=m[1]),u||(u=32),typeof u=="string"&&u.indexOf(".")>-1){try{this.maskLong=i(u)}catch(y){throw f=y,new Error("Invalid mask: "+u)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(u||u===0)this.bitmask=parseInt(u,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(i(l)&this.maskLong)>>>0}catch(y){throw f=y,new Error("Invalid net address: "+l)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+u);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(l){return typeof l=="string"&&(l.indexOf("/")>0||l.split(".").length!==4)&&(l=new c(l)),l instanceof c?this.contains(l.base)&&this.contains(l.broadcast||l.last):(i(l)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(l){return l==null&&(l=1),new c(a(this.netLong+this.size*l),this.mask)},c.prototype.forEach=function(l){var u,f,d;for(d=i(this.first),f=i(this.last),u=0;d<=f;)l(a(d),d,u),u++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c})(),Ei.ip2long=i,Ei.long2ip=a,Ei.Netmask=r}).call(Ei)});var zb=xr((O5,Kp)=>{"use strict";var cC=Object.prototype.hasOwnProperty,ct="~";function qi(){}Object.create&&(qi.prototype=Object.create(null),new qi().__proto__||(ct=!1));function lC(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function qb(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new lC(t,n||r,o),i=ct?ct+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],s]:r._events[i].push(s):(r._events[i]=s,r._eventsCount++),r}function ll(r,e){--r._eventsCount===0?r._events=new qi:delete r._events[e]}function rt(){this._events=new qi,this._eventsCount=0}rt.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)cC.call(t,n)&&e.push(ct?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};rt.prototype.listeners=function(e){var t=ct?ct+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,s=n.length,i=new Array(s);o<s;o++)i[o]=n[o].fn;return i};rt.prototype.listenerCount=function(e){var t=ct?ct+e:e,n=this._events[t];return n?n.fn?1:n.length:0};rt.prototype.emit=function(e,t,n,o,s,i){var a=ct?ct+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,s),!0;case 6:return c.fn.call(c.context,t,n,o,s,i),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,t);break;case 3:c[f].fn.call(c[f].context,t,n);break;case 4:c[f].fn.call(c[f].context,t,n,o);break;default:if(!u)for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c[f].fn.apply(c[f].context,u)}}return!0};rt.prototype.on=function(e,t,n){return qb(this,e,t,n,!1)};rt.prototype.once=function(e,t,n){return qb(this,e,t,n,!0)};rt.prototype.removeListener=function(e,t,n,o){var s=ct?ct+e:e;if(!this._events[s])return this;if(!t)return ll(this,s),this;var i=this._events[s];if(i.fn)i.fn===t&&(!o||i.once)&&(!n||i.context===n)&&ll(this,s);else{for(var a=0,c=[],l=i.length;a<l;a++)(i[a].fn!==t||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:ll(this,s)}return this};rt.prototype.removeAllListeners=function(e){var t;return e?(t=ct?ct+e:e,this._events[t]&&ll(this,t)):(this._events=new qi,this._eventsCount=0),this};rt.prototype.off=rt.prototype.removeListener;rt.prototype.addListener=rt.prototype.on;rt.prefixed=ct;rt.EventEmitter=rt;typeof Kp<"u"&&(Kp.exports=rt)});var jb=xr((oO,Wb)=>{Wb.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(s,i){t[s]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(s){return t[s]!==void 0||n[s]!==void 0},remove:function(s){t[s]!==void 0&&(t[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){t[s]!==void 0?t[s]=i:o(s,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var Qm=xr((w9,Jm)=>{var y9=(function(){typeof Jm<"u"&&(Jm.exports=y);var r=86400,e=3200,t=146097*e/400,n=r*t,o=1e3*n,s=864e13,i=4294967296,a=1e6,c="000000000",l=Math.trunc||function(b){var v=b-b%1;return v==0&&(b<0||b===0&&1/b!=1/0)?-0:v},u=y.prototype,f=(y.fromDate=function(b){return new y(+b)},y.fromInt64BE=N(0,1,2,3,0,4),y.fromInt64LE=N(3,2,1,0,4,0),y.fromString=function(R){var v,L=new y,R=(R+="").replace(/^\s*[+\-]?\d+/,function(E){var E=+E,S=1970+(E-1970)%400;return L.year=E-S,S}).replace(/(?:Z|([+\-]\d{2}):?(\d{2}))$/,function(k,E,S){return E<0&&(S*=-1),v=6e4*(60*+E+ +S),""}).replace(/\.\d+$/,function(k){return L.nano=+(k+c).substr(1,9),""}).split(/\D+/);if(1<R.length?R[1]--:R[1]=0,L.time=v=Date.UTC.apply(Date,R)-(v||0),isNaN(v))throw new TypeError("Invalid Date");return w(L)},y.fromTimeT=function(b){return P(b,0)},u.year=0,u.time=0,u.nano=0,u.addNano=function(b){return this.nano+=+b||0,this},u.getNano=function(){var b=w(this);return(b.time%1e3*a+ +b.nano+1e9)%1e9},u.getTimeT=function(){var v=w(this),b=Math.floor(v.time/1e3),v=v.year;return v&&(b+=v*t*r/e),b},u.getYear=function(){return this.toDate().getUTCFullYear()+this.year},u.toDate=function(){return x(w(this).time)},u.toJSON=function(){return this.toString().replace(/0{1,6}Z$/,"Z")},u.toString=function(b){var v=this,L=v.toDate(),R={H:function(){return G(L.getUTCHours())},L:function(){return Y(L.getUTCMilliseconds(),3)},M:function(){return G(L.getUTCMinutes())},N:function(){return Y(v.getNano(),9)},S:function(){return G(L.getUTCSeconds())},Y:function(){var k=v.getYear();return 999999<k?"+"+k:9999<k?"+"+Y(k,6):0<=k?Y(k,4):-999999<=k?"-"+Y(-k,6):k},a:function(){return h[L.getUTCDay()]},b:function(){return d[L.getUTCMonth()]},d:function(){return G(L.getUTCDate())},e:function(){return(function(k){return(9<k?"":" ")+(0|k)})(L.getUTCDate())},m:function(){return G(L.getUTCMonth()+1)}};return(function k(E){return E.replace(/%./g,function(S){var C=S[1],g=m[C],C=R[C];return g?k(g):C?C():S})})(b||f)},u.writeInt64BE=A(0,1,2,3,0,4),u.writeInt64LE=A(3,2,1,0,4,0),"%Y-%m-%dT%H:%M:%S.%NZ"),d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],h=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],m={"%":"%",F:"%Y-%m-%d",n:`
|
|
3
3
|
`,R:"%H:%M",T:"%H:%M:%S",t:" ",X:"%T",Z:"GMT",z:"+0000"};return y;function y(b,v,L){var R=this;if(!(R instanceof y))return new y(b,v,L);R.time=+b||0,R.nano=+v||0,R.year=+L||0,w(R)}function w(b){var v,L,R,k=b.year,E=b.time,S=b.nano,g=((S<0||a<=S)&&(S-=(L=Math.floor(S/a))*a,E+=L,L=1),k%e);return(E<-s||s<E||g)&&((v=l(E/o))&&(k+=v*e,E-=v*o),(R=x(E)).setUTCFullYear(g+R.getUTCFullYear()),R=(E=+R)+(v=l((k-=g)/e))*o,v&&-s<=R&&R<=s&&(k-=v*e,E=R),L=1),L&&(b.year=k,b.time=E,b.nano=S),b}function x(b){var v=new Date(0);return v.setTime(b),v}function P(k,R){k=+k||0;var L=l((R=(R|0)*i)/n)+l(k/n),R=R%n+k%n,k=l(R/n);return k&&(L+=k,R-=k*n),new y(1e3*R,0,L*e)}function A(b,v,L,R,k,E){return function(g,C){var M=w(this);g=g||new Array(8),H(g,C|=0);var $=Math.floor(M.time/1e3),M=M.year*(t*r/e),O=l(M/i)+l($/i),M=M%i+$%i,$=Math.floor(M/i);return $&&(O+=$,M-=$*i),S(g,C+k,O),S(g,C+E,M),g};function S(g,C,O){g[C+b]=O>>24&255,g[C+v]=O>>16&255,g[C+L]=O>>8&255,g[C+R]=255&O}}function N(b,v,L,R,k,E){return function(g,C){H(g,C|=0);var O=S(g,C+k);return P(S(g,C+E),O)};function S(g,C){return 16777216*g[C+b]+(g[C+v]<<16|g[C+L]<<8|g[C+R])}}function H(b,v){if(b=b&&b.length,b==null)throw new TypeError("Invalid Buffer");if(b<v+8)throw new RangeError("Out of range")}function G(b){return(9<b?"":"0")+(0|b)}function Y(b,v){return(c+(0|b)).substr(-v)}})()});var xE=xr((PW,bE)=>{"use strict";function Ok(r){return r>=55296&&r<=56319}function Mk(r){return r>=56320&&r<=57343}bE.exports=function(e,t,n){if(typeof t!="string")throw new Error("Input must be string");for(var o=t.length,s=0,i,a,c=0;c<o;c+=1){if(i=t.charCodeAt(c),a=t[c],Ok(i)&&Mk(t.charCodeAt(c+1))&&(c+=1,a+=t[c]),s+=e(a),s===n)return t.slice(0,c+1);if(s>n)return t.slice(0,c-a.length+1)}return t}});var EE=xr((BW,vE)=>{"use strict";function Uk(r){return r>=55296&&r<=56319}function Fk(r){return r>=56320&&r<=57343}vE.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var t=e.length,n=0,o=null,s=null,i=0;i<t;i++)o=e.charCodeAt(i),Fk(o)?s!=null&&Uk(s)?n+=1:n+=3:o<=127?n+=1:o>=128&&o<=2047?n+=2:o>=2048&&o<=65535&&(n+=3),s=o;return n}});var AE=xr((DW,SE)=>{"use strict";var $k=xE(),Vk=EE();SE.exports=$k.bind(null,Vk)});var _E=xr((LW,CE)=>{"use strict";var Kk=AE(),Hk=/[\/\?<>\\:\*\|"]/g,qk=/[\x00-\x1f\x80-\x9f]/g,zk=/^\.+$/,Gk=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Wk=/[\. ]+$/;function IE(r,e){if(typeof r!="string")throw new Error("Input must be string");var t=r.replace(Hk,e).replace(qk,e).replace(zk,e).replace(Gk,e).replace(Wk,e);return Kk(t,255)}CE.exports=function(r,e){var t=e&&e.replacement||"",n=IE(r,t);return t===""?n:IE(n,"")}});var TE=xr(Ds=>{"use strict";var Yk="[object ArrayBuffer]",$r=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Yk}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),o=r.toUint8Array(t);if(n.length!==o.byteLength)return!1;for(let s=0;s<n.length;s++)if(n[s]!==o[s])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let i of t)n+=i.byteLength;let o=new Uint8Array(n),s=0;for(let i of t){let a=this.toUint8Array(i);o.set(a,s),s+=a.length}return e[e.length-1]instanceof Function?this.toView(o,e[e.length-1]):o.buffer}},Lg="string",Zk=/^[0-9a-f\s]+$/i,Xk=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Jk=/^[a-zA-Z0-9-_]+$/,wf=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n.buffer}static toString(e){let t=$r.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return decodeURIComponent(escape(n))}},Nt=class{static toString(e,t=!1){let n=$r.toArrayBuffer(e),o=new DataView(n),s="";for(let i=0;i<n.byteLength;i+=2){let a=o.getUint16(i,t);s+=String.fromCharCode(a)}return s}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),o=new DataView(n);for(let s=0;s<e.length;s++)o.setUint16(s*2,e.charCodeAt(s),t);return n}},bf=class r{static isHex(e){return typeof e===Lg&&Zk.test(e)}static isBase64(e){return typeof e===Lg&&Xk.test(e)}static isBase64Url(e){return typeof e===Lg&&Jk.test(e)}static ToString(e,t="utf8"){let n=$r.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return Nt.toString(n,!0);case"utf16":case"utf16be":return Nt.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Nt.fromString(e,!0);case"utf16":case"utf16be":return Nt.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=$r.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return wf.fromString(e);case"utf16":case"utf16be":return Nt.fromString(e);case"utf16le":case"usc2":return Nt.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return wf.toString(e);case"utf16":case"utf16be":return Nt.toString(e);case"utf16le":case"usc2":return Nt.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);return n.buffer}static ToBinary(e){let t=$r.toUint8Array(e),n="";for(let o=0;o<t.length;o++)n+=String.fromCharCode(t[o]);return n}static ToHex(e){let t=$r.toUint8Array(e),n="",o=t.length;for(let s=0;s<o;s++){let i=t[s];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let o=0;o<t.length;o=o+2){let s=t.slice(o,o+2);n[o/2]=parseInt(s,16)}return n.buffer}static ToUtf16String(e,t=!1){return Nt.toString(e,t)}static FromUtf16String(e,t=!1){return Nt.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};bf.DEFAULT_UTF8_ENCODING="utf8";function Qk(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let o=arguments[n];for(let s in o)t[s]=o[s]}return t}function e6(...r){let e=r.map(o=>o.byteLength).reduce((o,s)=>o+s),t=new Uint8Array(e),n=0;return r.map(o=>new Uint8Array(o)).forEach(o=>{for(let s of o)t[n++]=s}),t.buffer}function t6(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)if(t[o]!==n[o])return!1;return!0}Ds.BufferSourceConverter=$r;Ds.Convert=bf;Ds.assign=Qk;Ds.combine=e6;Ds.isEqual=t6});var w6={};_e(w6,{DEFAULT_SESSION_MAX_PROVIDERS:()=>Qp,DEFAULT_SESSION_MIN_PROVIDERS:()=>Jp,InsufficientProvidersError:()=>Gi,InvalidCodecError:()=>em,NoRoutersAvailableError:()=>mn,UnknownCodecError:()=>ji,UnknownHashAlgorithmError:()=>Wi,createHeliaHTTP:()=>y6,heliaDefaults:()=>x1});var zg=Symbol.for("@libp2p/connection");var bo=Symbol.for("@libp2p/content-routing");var mt=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var _=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},xo=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}},Os=class extends Error{static name="InvalidPrivateKeyError";constructor(e="Invalid private key"){super(e),this.name="InvalidPrivateKeyError"}};var En=class extends Error{static name="ConnectionClosedError";constructor(e="The connection is closed"){super(e),this.name="ConnectionClosedError"}};var Rt=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}},vo=class extends Error{static name="InvalidPeerIdError";constructor(e="Invalid PeerID"){super(e),this.name="InvalidPeerIdError"}},Wr=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Ua=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},Eo=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}},Fa=class extends Error{static name="UnsupportedProtocolError";constructor(e="Unsupported protocol error"){super(e),this.name="UnsupportedProtocolError"}},$a=class extends Error{static name="InvalidMessageError";constructor(e="Invalid message"){super(e),this.name="InvalidMessageError"}};var Va=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},vr=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}};var So=class extends Error{static name="DialError";constructor(e="Dial error"){super(e),this.name="DialError"}};var Ms=class extends Error{static name="LimitedConnectionError";constructor(e="Limited connection"){super(e),this.name="LimitedConnectionError"}},Ka=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(e="Too many inbound protocol streams"){super(e),this.name="TooManyInboundProtocolStreamsError"}},Ha=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(e="Too many outbound protocol streams"){super(e),this.name="TooManyOutboundProtocolStreamsError"}},Ot=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var qa=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}};var fd=Symbol.for("@libp2p/peer-discovery");var za=Symbol.for("@libp2p/peer-id");function sr(r){return!!r?.[za]}var Ao=Symbol.for("@libp2p/peer-routing");var dd="keep-alive";function Ga(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function ir(...r){let e=[];for(let t of r)Ga(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function ar(...r){let e=[];for(let t of r)Ga(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var k6=Symbol.for("@libp2p/transport");var Us;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Us||(Us={}));var De=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Sn=Symbol.for("@libp2p/service-capabilities"),hd=Symbol.for("@libp2p/service-dependencies");function me(r){let e=new globalThis.AbortController;function t(){e.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var Z=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Fs=class extends Error{constructor(e="An error occurred while signing a message"){super(e),this.name="SigningError"}},$s=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},Wa=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var Gg={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw new Wa("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return e}};var Te=Gg;var bd={};_e(bd,{base58btc:()=>ee,base58flickr:()=>L1});var u8=new Uint8Array(0);function Wg(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Mt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function jg(r){return new TextEncoder().encode(r)}function Yg(r){return new TextDecoder().decode(r)}function _1(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(m){if(m instanceof Uint8Array||(ArrayBuffer.isView(m)?m=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):Array.isArray(m)&&(m=Uint8Array.from(m))),!(m instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(m.length===0)return"";for(var y=0,w=0,x=0,P=m.length;x!==P&&m[x]===0;)x++,y++;for(var A=(P-x)*u+1>>>0,N=new Uint8Array(A);x!==P;){for(var H=m[x],G=0,Y=A-1;(H!==0||G<w)&&Y!==-1;Y--,G++)H+=256*N[Y]>>>0,N[Y]=H%a>>>0,H=H/a>>>0;if(H!==0)throw new Error("Non-zero carry");w=G,x++}for(var b=A-w;b!==A&&N[b]===0;)b++;for(var v=c.repeat(y);b<A;++b)v+=r.charAt(N[b]);return v}function d(m){if(typeof m!="string")throw new TypeError("Expected String");if(m.length===0)return new Uint8Array;var y=0;if(m[y]!==" "){for(var w=0,x=0;m[y]===c;)w++,y++;for(var P=(m.length-y)*l+1>>>0,A=new Uint8Array(P);m[y];){var N=t[m.charCodeAt(y)];if(N===255)return;for(var H=0,G=P-1;(N!==0||H<x)&&G!==-1;G--,H++)N+=a*A[G]>>>0,A[G]=N%256>>>0,N=N/256>>>0;if(N!==0)throw new Error("Non-zero carry");x=H,y++}if(m[y]!==" "){for(var Y=P-x;Y!==P&&A[Y]===0;)Y++;for(var b=new Uint8Array(w+(P-Y)),v=w;Y!==P;)b[v++]=A[Y++];return b}}}function h(m){var y=d(m);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:h}}var T1=_1,k1=T1,Zg=k1;var md=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},gd=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Xg(this,e)}},yd=class{decoders;constructor(e){this.decoders=e}or(e){return Xg(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Xg(r,e){return new yd({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var wd=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new md(e,t,n),this.decoder=new gd(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Io({name:r,prefix:e,encode:t,decode:n}){return new wd(r,e,t,n)}function jr({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Zg(t,r);return Io({prefix:e,name:r,encode:n,decode:s=>Mt(o(s))})}function P1(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,c=0;for(let l=0;l<o;++l){let u=e[r[l]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function B1(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function D1(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function Ae({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=D1(n);return Io({prefix:e,name:r,encode(s){return B1(s,n,t)},decode(s){return P1(s,o,t,r)}})}var ee=jr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),L1=jr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var xd={};_e(xd,{base32:()=>ge,base32hex:()=>M1,base32hexpad:()=>F1,base32hexpadupper:()=>$1,base32hexupper:()=>U1,base32pad:()=>R1,base32padupper:()=>O1,base32upper:()=>N1,base32z:()=>V1});var ge=Ae({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),N1=Ae({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),R1=Ae({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),O1=Ae({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),M1=Ae({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),U1=Ae({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),F1=Ae({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),$1=Ae({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),V1=Ae({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var vd={};_e(vd,{base36:()=>cr,base36upper:()=>K1});var cr=jr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),K1=jr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var H1=ey,Jg=128,q1=127,z1=~q1,G1=Math.pow(2,31);function ey(r,e,t){e=e||[],t=t||0;for(var n=t;r>=G1;)e[t++]=r&255|Jg,r/=128;for(;r&z1;)e[t++]=r&255|Jg,r>>>=7;return e[t]=r|0,ey.bytes=t-n+1,e}var W1=Ed,j1=128,Qg=127;function Ed(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Ed.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Qg)<<o:(i&Qg)*Math.pow(2,o),o+=7}while(i>=j1);return Ed.bytes=s-n,t}var Y1=Math.pow(2,7),Z1=Math.pow(2,14),X1=Math.pow(2,21),J1=Math.pow(2,28),Q1=Math.pow(2,35),eS=Math.pow(2,42),tS=Math.pow(2,49),rS=Math.pow(2,56),nS=Math.pow(2,63),oS=function(r){return r<Y1?1:r<Z1?2:r<X1?3:r<J1?4:r<Q1?5:r<eS?6:r<tS?7:r<rS?8:r<nS?9:10},sS={encode:H1,decode:W1,encodingLength:oS},iS=sS,Vs=iS;function Ks(r,e=0){return[Vs.decode(r,e),Vs.decode.bytes]}function Co(r,e,t=0){return Vs.encode(r,e,t),e}function _o(r){return Vs.encodingLength(r)}function lr(r,e){let t=e.byteLength,n=_o(r),o=n+_o(t),s=new Uint8Array(o+t);return Co(r,s,0),Co(t,s,n),s.set(e,o),new To(r,t,e,s)}function Xe(r){let e=Mt(r),[t,n]=Ks(e),[o,s]=Ks(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new To(t,o,i,e)}function ty(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Wg(r.bytes,t.bytes)}}var To=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};function ry(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return cS(t,Sd(r),e??ee.encoder);default:return lS(t,Sd(r),e??ge.encoder)}}var ny=new WeakMap;function Sd(r){let e=ny.get(r);if(e==null){let t=new Map;return ny.set(r,t),t}return e}var V=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Hs)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==uS)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=lr(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&ty(e.multihash,n.multihash)}toString(e){return ry(this,e)}toJSON(){return{"/":ry(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??oy(n,o,s.bytes))}else if(t[fS]===!0){let{version:n,multihash:o,code:s}=t,i=Xe(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==Hs)throw new Error(`Version 0 CID must use dag-pb (code: ${Hs}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=oy(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Hs,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Mt(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new To(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,d]=Ks(e.subarray(t));return t+=d,f},o=n(),s=Hs;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),l=t+c,u=l-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(e,t){let[n,o]=aS(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Sd(s).set(n,e),s}};function aS(r,e){switch(r[0]){case"Q":{let t=e??ee;return[ee.prefix,t.decode(`${ee.prefix}${r}`)]}case ee.prefix:{let t=e??ee;return[ee.prefix,t.decode(r)]}case ge.prefix:{let t=e??ge;return[ge.prefix,t.decode(r)]}case cr.prefix:{let t=e??cr;return[cr.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function cS(r,e,t){let{prefix:n}=t;if(n!==ee.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function lS(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var Hs=112,uS=18;function oy(r,e,t){let n=_o(r),o=n+_o(e),s=new Uint8Array(o+t.byteLength);return Co(r,s,0),Co(e,s,n),s.set(t,o),s}var fS=Symbol.for("@ipld/js-cid/CID");var Ad={};_e(Ad,{identity:()=>ke});var sy=0,dS="identity",iy=Mt;function hS(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return lr(sy,iy(r))}var ke={code:sy,name:dS,encode:iy,digest:hS};function W(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Ie(r=0){return new Uint8Array(r)}function Je(r=0){return new Uint8Array(r)}function ye(r,e){e==null&&(e=r.reduce((o,s)=>o+s.length,0));let t=Je(e),n=0;for(let o of r)t.set(o,n),n+=o.length;return t}var cy=Symbol.for("@achingbrain/uint8arraylist");function ay(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function ko(r){return!!r?.[cy]}var ae=class r{bufs;length;[cy]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(ko(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(ko(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=ay(this.bufs,e);return t.buf[t.index]}set(e,t){let n=ay(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(ko(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return ye(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:ye(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,e>=c)continue;let l=e>=a&&e<c,u=t>a&&t<=c;if(l&&u){if(e===a&&t===c){n.push(i);break}let f=e-a;n.push(i.subarray(f,f+(t-e)));break}if(l){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(u){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!ko(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let f=0;f<s;f++)i[f]=-1;for(let f=0;f<o;f++)i[n[f]]=f;let a=i,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=t;f<=c;f+=u){u=0;for(let d=l;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){u=Math.max(1,d-a[h]);break}}if(u===0)return f}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Je(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=Ie(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=Ie(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=Ie(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Je(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=Ie(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=Ie(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=Ie(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=Ie(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=Ie(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!W(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var Id={};_e(Id,{base10:()=>pS});var pS=jr({prefix:"9",name:"base10",alphabet:"0123456789"});var Cd={};_e(Cd,{base16:()=>mS,base16upper:()=>gS});var mS=Ae({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),gS=Ae({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var _d={};_e(_d,{base2:()=>yS});var yS=Ae({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Td={};_e(Td,{base256emoji:()=>ES});var ly=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),wS=ly.reduce((r,e,t)=>(r[t]=e,r),[]),bS=ly.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function xS(r){return r.reduce((e,t)=>(e+=wS[t],e),"")}function vS(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=bS[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var ES=Io({prefix:"\u{1F680}",name:"base256emoji",encode:xS,decode:vS});var kd={};_e(kd,{base64:()=>Pe,base64pad:()=>SS,base64url:()=>qs,base64urlpad:()=>AS});var Pe=Ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),SS=Ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),qs=Ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),AS=Ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Pd={};_e(Pd,{base8:()=>IS});var IS=Ae({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Bd={};_e(Bd,{identity:()=>CS});var CS=Io({prefix:"\0",name:"identity",encode:r=>Yg(r),decode:r=>jg(r)});var Ya={};_e(Ya,{code:()=>Dd,decode:()=>BS,encode:()=>PS,name:()=>kS});var _S=new TextEncoder,TS=new TextDecoder,kS="json",Dd=512;function PS(r){return _S.encode(JSON.stringify(r))}function BS(r){return JSON.parse(TS.decode(r))}var Gs={};_e(Gs,{code:()=>zs,decode:()=>NS,encode:()=>LS,name:()=>DS});var DS="raw",zs=85;function LS(r){return Mt(r)}function NS(r){return Mt(r)}var Rd={};_e(Rd,{sha256:()=>gt,sha512:()=>Za});var RS=20;function Nd({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new Ld(r,e,t,n,o)}var Ld=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??RS,this.maxDigestLength=s}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?uy(n,this.code,t?.truncate):n.then(o=>uy(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function uy(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return lr(e,r)}function dy(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var gt=Nd({name:"sha2-256",code:18,encode:dy("SHA-256")}),Za=Nd({name:"sha2-512",code:19,encode:dy("SHA-512")});var An={...Bd,..._d,...Pd,...Id,...Cd,...xd,...vd,...bd,...kd,...Td},oP={...Rd,...Ad};function py(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var hy=py("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Od=py("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Je(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),OS={utf8:hy,"utf-8":hy,hex:An.base16,latin1:Od,ascii:Od,binary:Od,...An},Xa=OS;function T(r,e="utf8"){let t=Xa[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function B(r,e="utf8"){let t=Xa[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var MS=parseInt("11111",2),Md=parseInt("10000000",2),US=parseInt("01111111",2),my={0:Ws,1:Ws,2:FS,3:KS,4:HS,5:VS,6:$S,16:Ws,22:Ws,48:Ws};function _t(r,e={offset:0}){let t=r[e.offset]&MS;if(e.offset++,my[t]!=null)return my[t](r,e);throw new Error("No decoder for tag "+t)}function js(r,e){let t=0;if((r[e.offset]&Md)===Md){let n=r[e.offset]&US,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(o,16)}else t=r[e.offset],e.offset++;return t}function Ws(r,e){js(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=_t(r,e);if(n===null)break;t.push(n)}return t}function FS(r,e){let t=js(r,e),n=e.offset,o=e.offset+t,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return e.offset+=t,Uint8Array.from(s)}function $S(r,e){let t=js(r,e),n=e.offset+t,o=r[e.offset];e.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;e.offset<n;){let l=r[e.offset];if(e.offset++,c.push(l&127),l<128){c.reverse();let u=0;for(let f=0;f<c.length;f++)u+=c[f]<<f*7;a+=`.${u}`,c=[]}}return a}function VS(r,e){return e.offset++,null}function KS(r,e){let t=js(r,e),n=r[e.offset];e.offset++;let o=r.subarray(e.offset,e.offset+t-1);if(e.offset+=t,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function HS(r,e){let t=js(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function qS(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new ae;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function Ja(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=qS(r.byteLength);return new ae(Uint8Array.from([e.byteLength|Md]),e)}function st(r){let e=new ae,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new ae(Uint8Array.from([2]),Ja(e),e)}function Ys(r){let e=Uint8Array.from([0]),t=new ae(e,r);return new ae(Uint8Array.from([3]),Ja(t),t)}function gy(r){return new ae(Uint8Array.from([4]),Ja(r),r)}function Ft(r,e=48){let t=new ae;for(let n of r)t.append(n);return new ae(Uint8Array.from([e]),Ja(t),t)}var yy="1.2.840.10045.3.1.7",wy="1.3.132.0.34",by="1.3.132.0.35";async function xy(r="P-256"){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:r},!0,["sign","verify"]);return{publicKey:await crypto.subtle.exportKey("jwk",e.publicKey),privateKey:await crypto.subtle.exportKey("jwk",e.privateKey)}}async function vy(r,e,t){let n=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["sign"]);t?.signal?.throwIfAborted();let o=await crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,e.subarray());return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Ey(r,e,t,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,e,t.subarray());return n?.signal?.throwIfAborted(),s}var zS=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),GS=Uint8Array.from([6,5,43,129,4,0,34]),WS=Uint8Array.from([6,5,43,129,4,0,35]),Sy={ext:!0,kty:"EC",crv:"P-256"},Ay={ext:!0,kty:"EC",crv:"P-384"},Iy={ext:!0,kty:"EC",crv:"P-521"},Po=32,Bo=48,Do=66;function Cy(r){let e=_t(r);return Ud(e)}function Ud(r){let e=r[1],t=B(e,"base64url"),n=r[2][1][0],o=1,s,i;if(e.byteLength===Po)return s=B(n.subarray(o,o+Po),"base64url"),i=B(n.subarray(o+Po),"base64url"),new Cn({...Sy,key_ops:["sign"],d:t,x:s,y:i});if(e.byteLength===Bo)return s=B(n.subarray(o,o+Bo),"base64url"),i=B(n.subarray(o+Bo),"base64url"),new Cn({...Ay,key_ops:["sign"],d:t,x:s,y:i});if(e.byteLength===Do)return s=B(n.subarray(o,o+Do),"base64url"),i=B(n.subarray(o+Do),"base64url"),new Cn({...Iy,key_ops:["sign"],d:t,x:s,y:i});throw new _(`Private key length was wrong length, got ${e.byteLength}, expected 32, 48 or 66`)}function Fd(r){let e=_t(r);return _y(e)}function _y(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===Po*2+1)return n=B(e.subarray(t,t+Po),"base64url"),o=B(e.subarray(t+Po),"base64url"),new In({...Sy,key_ops:["verify"],x:n,y:o});if(e.byteLength===Bo*2+1)return n=B(e.subarray(t,t+Bo),"base64url"),o=B(e.subarray(t+Bo),"base64url"),new In({...Ay,key_ops:["verify"],x:n,y:o});if(e.byteLength===Do*2+1)return n=B(e.subarray(t,t+Do),"base64url"),o=B(e.subarray(t+Do),"base64url"),new In({...Iy,key_ops:["verify"],x:n,y:o});throw new _(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function Ty(r){return Ft([st(Uint8Array.from([1])),gy(T(r.d??"","base64url")),Ft([Py(r.crv)],160),Ft([Ys(new ae(Uint8Array.from([4]),T(r.x??"","base64url"),T(r.y??"","base64url")))],161)]).subarray()}function ky(r){return Ft([st(Uint8Array.from([1])),Ft([Py(r.crv)],160),Ft([Ys(new ae(Uint8Array.from([4]),T(r.x??"","base64url"),T(r.y??"","base64url")))],161)]).subarray()}function Py(r){if(r==="P-256")return zS;if(r==="P-384")return GS;if(r==="P-521")return WS;throw new _(`Invalid curve ${r}`)}async function By(r="P-256"){let e=await xy(r);return new Cn(e.privateKey)}var In=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=ky(this.jwk)),this._raw}toMultihash(){return ke.digest(Tt(this))}toCID(){return V.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}async verify(e,t,n){return Ey(this.jwk,t,e,n)}},Cn=class{type="ECDSA";jwk;publicKey;_raw;constructor(e){this.jwk=e,this.publicKey=new In({crv:e.crv,ext:e.ext,key_ops:["verify"],kty:"EC",x:e.x,y:e.y})}get raw(){return this._raw==null&&(this._raw=Ty(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}async sign(e,t){return vy(this.jwk,e,t)}};function _n(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function ut(r,e=""){if(!Number.isSafeInteger(r)||r<0){let t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${r}`)}}function Q(r,e,t=""){let n=_n(r),o=r?.length,s=e!==void 0;if(!n||s&&o!==e){let i=t&&`"${t}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return r}function Lo(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash must wrapped by utils.createHasher");ut(r.outputLen),ut(r.blockLen)}function No(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function Ly(r,e){Q(r,void 0,"digestInto() output");let t=e.outputLen;if(r.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function ft(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function Tn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function $t(r,e){return r<<32-e|r>>>e}function Qa(r,e){return r<<e|r>>>32-e>>>0}var Ny=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",jS=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function Sr(r){if(Q(r),Ny)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=jS[r[t]];return e}var Er={_0:48,_9:57,A:65,F:70,a:97,f:102};function Dy(r){if(r>=Er._0&&r<=Er._9)return r-Er._0;if(r>=Er.A&&r<=Er.F)return r-(Er.A-10);if(r>=Er.a&&r<=Er.f)return r-(Er.a-10)}function Ar(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(Ny)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=Dy(r.charCodeAt(s)),a=Dy(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}var YS=async()=>{};async function Ry(r,e,t){let n=Date.now();for(let o=0;o<r;o++){t(o);let s=Date.now()-n;s>=0&&s<e||(await YS(),n+=s)}}function ZS(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function $d(r,e=""){return typeof r=="string"?ZS(r):Q(r,void 0,e)}function dt(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];Q(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Oy(r,e){if(e!==void 0&&{}.toString.call(e)!=="[object Object]")throw new Error("options must be object or undefined");return Object.assign(r,e)}function Zs(r,e={}){let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function Yr(r=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(r))}var Vd=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function ec(r,e,t){return r&e^~r&t}function tc(r,e,t){return r&e^r&t^e&t}var kn=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,o){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=Tn(this.buffer)}update(e){No(this),Q(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Tn(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){No(this),Ly(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,ft(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let f=i;f<o;f++)t[f]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=Tn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let l=c/4,u=this.get();if(l>u.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<l;f++)a.setUint32(4*f,u[f],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Ir=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Fe=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var rc=BigInt(4294967295),My=BigInt(32);function XS(r,e=!1){return e?{h:Number(r&rc),l:Number(r>>My&rc)}:{h:Number(r>>My&rc)|0,l:Number(r&rc)|0}}function Uy(r,e=!1){let t=r.length,n=new Uint32Array(t),o=new Uint32Array(t);for(let s=0;s<t;s++){let{h:i,l:a}=XS(r[s],e);[n[s],o[s]]=[i,a]}return[n,o]}var Kd=(r,e,t)=>r>>>t,Hd=(r,e,t)=>r<<32-t|e>>>t,Pn=(r,e,t)=>r>>>t|e<<32-t,Bn=(r,e,t)=>r<<32-t|e>>>t,Xs=(r,e,t)=>r<<64-t|e>>>t-32,Js=(r,e,t)=>r>>>t-32|e<<64-t;function ur(r,e,t,n){let o=(e>>>0)+(n>>>0);return{h:r+t+(o/2**32|0)|0,l:o|0}}var Fy=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),$y=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,Vy=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),Ky=(r,e,t,n,o)=>e+t+n+o+(r/2**32|0)|0,Hy=(r,e,t,n,o)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),qy=(r,e,t,n,o,s)=>e+t+n+o+s+(r/2**32|0)|0;var QS=Uint32Array.from([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]),Zr=new Uint32Array(64),qd=class extends kn{constructor(e){super(64,e,8,!1)}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 f=0;f<16;f++,t+=4)Zr[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let d=Zr[f-15],h=Zr[f-2],m=$t(d,7)^$t(d,18)^d>>>3,y=$t(h,17)^$t(h,19)^h>>>10;Zr[f]=y+Zr[f-7]+m+Zr[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:l,H:u}=this;for(let f=0;f<64;f++){let d=$t(a,6)^$t(a,11)^$t(a,25),h=u+d+ec(a,c,l)+QS[f]+Zr[f]|0,y=($t(n,2)^$t(n,13)^$t(n,22))+tc(n,o,s)|0;u=l,l=c,c=a,a=i+h|0,i=s,s=o,o=n,n=h+y|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,l=l+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,l,u)}roundClean(){ft(Zr)}destroy(){this.set(0,0,0,0,0,0,0,0),ft(this.buffer)}},zd=class extends qd{A=Ir[0]|0;B=Ir[1]|0;C=Ir[2]|0;D=Ir[3]|0;E=Ir[4]|0;F=Ir[5]|0;G=Ir[6]|0;H=Ir[7]|0;constructor(){super(32)}};var zy=Uy(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),e2=zy[0],t2=zy[1],Xr=new Uint32Array(80),Jr=new Uint32Array(80),Gd=class extends kn{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:t,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:l,El:u,Fh:f,Fl:d,Gh:h,Gl:m,Hh:y,Hl:w}=this;return[e,t,n,o,s,i,a,c,l,u,f,d,h,m,y,w]}set(e,t,n,o,s,i,a,c,l,u,f,d,h,m,y,w){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=u|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=m|0,this.Hh=y|0,this.Hl=w|0}process(e,t){for(let A=0;A<16;A++,t+=4)Xr[A]=e.getUint32(t),Jr[A]=e.getUint32(t+=4);for(let A=16;A<80;A++){let N=Xr[A-15]|0,H=Jr[A-15]|0,G=Pn(N,H,1)^Pn(N,H,8)^Kd(N,H,7),Y=Bn(N,H,1)^Bn(N,H,8)^Hd(N,H,7),b=Xr[A-2]|0,v=Jr[A-2]|0,L=Pn(b,v,19)^Xs(b,v,61)^Kd(b,v,6),R=Bn(b,v,19)^Js(b,v,61)^Hd(b,v,6),k=Vy(Y,R,Jr[A-7],Jr[A-16]),E=Ky(k,G,L,Xr[A-7],Xr[A-16]);Xr[A]=E|0,Jr[A]=k|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:l,Dl:u,Eh:f,El:d,Fh:h,Fl:m,Gh:y,Gl:w,Hh:x,Hl:P}=this;for(let A=0;A<80;A++){let N=Pn(f,d,14)^Pn(f,d,18)^Xs(f,d,41),H=Bn(f,d,14)^Bn(f,d,18)^Js(f,d,41),G=f&h^~f&y,Y=d&m^~d&w,b=Hy(P,H,Y,t2[A],Jr[A]),v=qy(b,x,N,G,e2[A],Xr[A]),L=b|0,R=Pn(n,o,28)^Xs(n,o,34)^Xs(n,o,39),k=Bn(n,o,28)^Js(n,o,34)^Js(n,o,39),E=n&s^n&a^s&a,S=o&i^o&c^i&c;x=y|0,P=w|0,y=h|0,w=m|0,h=f|0,m=d|0,{h:f,l:d}=ur(l|0,u|0,v|0,L|0),l=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let g=Fy(L,k,S);n=$y(g,v,R,E),o=g|0}({h:n,l:o}=ur(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=ur(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=ur(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:u}=ur(this.Dh|0,this.Dl|0,l|0,u|0),{h:f,l:d}=ur(this.Eh|0,this.El|0,f|0,d|0),{h,l:m}=ur(this.Fh|0,this.Fl|0,h|0,m|0),{h:y,l:w}=ur(this.Gh|0,this.Gl|0,y|0,w|0),{h:x,l:P}=ur(this.Hh|0,this.Hl|0,x|0,P|0),this.set(n,o,s,i,a,c,l,u,f,d,h,m,y,w,x,P)}roundClean(){ft(Xr,Jr)}destroy(){ft(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Wd=class extends Gd{Ah=Fe[0]|0;Al=Fe[1]|0;Bh=Fe[2]|0;Bl=Fe[3]|0;Ch=Fe[4]|0;Cl=Fe[5]|0;Dh=Fe[6]|0;Dl=Fe[7]|0;Eh=Fe[8]|0;El=Fe[9]|0;Fh=Fe[10]|0;Fl=Fe[11]|0;Gh=Fe[12]|0;Gl=Fe[13]|0;Hh=Fe[14]|0;Hl=Fe[15]|0;constructor(){super(64)}};var Qr=Zs(()=>new zd,Vd(1));var en=Zs(()=>new Wd,Vd(3));var Yd=BigInt(0),jd=BigInt(1);function Cr(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}" `;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Gy(r){if(typeof r=="bigint"){if(!nc(r))throw new Error("positive bigint expected, got "+r)}else ut(r);return r}function Qs(r){let e=Gy(r).toString(16);return e.length&1?"0"+e:e}function Wy(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Yd:BigInt("0x"+r)}function Ro(r){return Wy(Sr(r))}function Dn(r){return Wy(Sr(sc(Q(r)).reverse()))}function oc(r,e){ut(e),r=Gy(r);let t=Ar(r.toString(16).padStart(e*2,"0"));if(t.length!==e)throw new Error("number too large");return t}function Zd(r,e){return oc(r,e).reverse()}function sc(r){return Uint8Array.from(r)}var nc=r=>typeof r=="bigint"&&Yd<=r;function r2(r,e,t){return nc(r)&&nc(e)&&nc(t)&&e<=r&&r<t}function ei(r,e,t,n){if(!r2(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Xd(r){let e;for(e=0;r>Yd;r>>=jd,e+=1);return e}var ti=r=>(jd<<BigInt(r))-jd;function jy(r,e,t){if(ut(r,"hashLen"),ut(e,"qByteLen"),typeof t!="function")throw new Error("hmacFn must be a function");let n=w=>new Uint8Array(w),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),l=n(r),u=0,f=()=>{c.fill(1),l.fill(0),u=0},d=(...w)=>t(l,dt(c,...w)),h=(w=o)=>{l=d(s,w),c=d(),w.length!==0&&(l=d(i,w),c=d())},m=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let w=0,x=[];for(;w<e;){c=d();let P=c.slice();x.push(P),w+=c.length}return dt(...x)};return(w,x)=>{f(),h(w);let P;for(;!(P=x(m()));)h();return f(),P}}function tn(r,e={},t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function n(s,i,a){let c=r[s];if(a&&c===void 0)return;let l=typeof c;if(l!==i||c===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${l}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(e,!1),o(t,!0)}function Oo(r){let e=new WeakMap;return(t,...n)=>{let o=e.get(t);if(o!==void 0)return o;let s=r(t,...n);return e.set(t,s),s}}var it=BigInt(0),Le=BigInt(1),Ln=BigInt(2),Xy=BigInt(3),Jy=BigInt(4),Qy=BigInt(5),n2=BigInt(7),e0=BigInt(8),o2=BigInt(9),t0=BigInt(16);function Ce(r,e){let t=r%e;return t>=it?t:e+t}function we(r,e,t){let n=r;for(;e-- >it;)n*=n,n%=t;return n}function Yy(r,e){if(r===it)throw new Error("invert: expected non-zero number");if(e<=it)throw new Error("invert: expected positive modulus, got "+e);let t=Ce(r,e),n=e,o=it,s=Le,i=Le,a=it;for(;t!==it;){let l=n/t,u=n%t,f=o-i*l,d=s-a*l;n=t,t=u,o=i,s=a,i=f,a=d}if(n!==Le)throw new Error("invert: does not exist");return Ce(o,e)}function Qd(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function r0(r,e){let t=(r.ORDER+Le)/Jy,n=r.pow(e,t);return Qd(r,n,e),n}function s2(r,e){let t=(r.ORDER-Qy)/e0,n=r.mul(e,Ln),o=r.pow(n,t),s=r.mul(e,o),i=r.mul(r.mul(s,Ln),o),a=r.mul(s,r.sub(i,r.ONE));return Qd(r,a,e),a}function i2(r){let e=Mo(r),t=n0(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+n2)/t0;return(a,c)=>{let l=a.pow(c,i),u=a.mul(l,n),f=a.mul(l,o),d=a.mul(l,s),h=a.eql(a.sqr(u),c),m=a.eql(a.sqr(f),c);l=a.cmov(l,u,h),u=a.cmov(d,f,m);let y=a.eql(a.sqr(u),c),w=a.cmov(l,u,y);return Qd(a,w,c),w}}function n0(r){if(r<Xy)throw new Error("sqrt is not defined for small field");let e=r-Le,t=0;for(;e%Ln===it;)e/=Ln,t++;let n=Ln,o=Mo(r);for(;Zy(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return r0;let s=o.pow(n,e),i=(e+Le)/Ln;return function(c,l){if(c.is0(l))return l;if(Zy(c,l)!==1)throw new Error("Cannot find square root");let u=t,f=c.mul(c.ONE,s),d=c.pow(l,e),h=c.pow(l,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let m=1,y=c.sqr(d);for(;!c.eql(y,c.ONE);)if(m++,y=c.sqr(y),m===u)throw new Error("Cannot find square root");let w=Le<<BigInt(u-m-1),x=c.pow(f,w);u=m,f=c.sqr(x),d=c.mul(d,f),h=c.mul(h,x)}return h}}function a2(r){return r%Jy===Xy?r0:r%e0===Qy?s2:r%t0===o2?i2(r):n0(r)}var o0=(r,e)=>(Ce(r,e)&Le)===Le,c2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function eh(r){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},t=c2.reduce((n,o)=>(n[o]="function",n),e);return tn(r,t),r}function l2(r,e,t){if(t<it)throw new Error("invalid exponent, negatives unsupported");if(t===it)return r.ONE;if(t===Le)return e;let n=r.ONE,o=e;for(;t>it;)t&Le&&(n=r.mul(n,o)),o=r.sqr(o),t>>=Le;return n}function ri(r,e,t=!1){let n=new Array(e.length).fill(t?r.ZERO:void 0),o=e.reduce((i,a,c)=>r.is0(a)?i:(n[c]=i,r.mul(i,a)),r.ONE),s=r.inv(o);return e.reduceRight((i,a,c)=>r.is0(a)?i:(n[c]=r.mul(i,n[c]),r.mul(i,a)),s),n}function Zy(r,e){let t=(r.ORDER-Le)/Ln,n=r.pow(e,t),o=r.eql(n,r.ONE),s=r.eql(n,r.ZERO),i=r.eql(n,r.neg(r.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function u2(r,e){e!==void 0&&ut(e);let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}var Jd=class{ORDER;BITS;BYTES;isLE;ZERO=it;ONE=Le;_lengths;_sqrt;_mod;constructor(e,t={}){if(e<=it)throw new Error("invalid field: expected ORDER > 0, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&(this.sqrt=t.sqrt),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=t.allowedLengths?.slice()),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=u2(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return Ce(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return it<=e&&e<this.ORDER}is0(e){return e===it}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&Le)===Le}neg(e){return Ce(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return Ce(e*e,this.ORDER)}add(e,t){return Ce(e+t,this.ORDER)}sub(e,t){return Ce(e-t,this.ORDER)}mul(e,t){return Ce(e*t,this.ORDER)}pow(e,t){return l2(this,e,t)}div(e,t){return Ce(e*Yy(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return Yy(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=a2(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?Zd(e,this.BYTES):oc(e,this.BYTES)}fromBytes(e,t=!1){Q(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(o);l.set(e,s?0:l.length-e.length),e=l}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Dn(e):Ro(e);if(a&&(c=Ce(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return ri(this,e)}cmov(e,t,n){return n?t:e}};function Mo(r,e={}){return new Jd(r,e)}function s0(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function th(r){let e=s0(r);return e+Math.ceil(e/2)}function rh(r,e,t=!1){Q(r);let n=r.length,o=s0(e),s=th(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?Dn(r):Ro(r),a=Ce(i,e-Le)+Le;return t?Zd(a,o):oc(a,o)}var Uo=BigInt(0),Nn=BigInt(1);function ni(r,e){let t=e.negate();return r?t:e}function Rn(r,e){let t=ri(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function l0(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function nh(r,e){l0(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1),o=2**r,s=ti(r),i=BigInt(r);return{windows:t,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function i0(r,e,t){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=t,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=Nn);let l=e*n,u=l+Math.abs(a)-1,f=a===0,d=a<0,h=e%2!==0;return{nextN:c,offset:u,isZero:f,isNeg:d,isNegF:h,offsetF:l}}var oh=new WeakMap,u0=new WeakMap;function sh(r){return u0.get(r)||1}function a0(r){if(r!==Uo)throw new Error("invalid wNAF")}var Fo=class{BASE;ZERO;Fn;bits;constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let o=e;for(;t>Uo;)t&Nn&&(n=n.add(o)),o=o.double(),t>>=Nn;return n}precomputeWindow(e,t){let{windows:n,windowSize:o}=nh(t,this.bits),s=[],i=e,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let l=1;l<o;l++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=nh(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:l,isZero:u,isNeg:f,isNegF:d,offsetF:h}=i0(n,a,i);n=c,u?s=s.add(ni(d,t[h])):o=o.add(ni(f,t[l]))}return a0(n),{p:o,f:s}}wNAFUnsafe(e,t,n,o=this.ZERO){let s=nh(e,this.bits);for(let i=0;i<s.windows&&n!==Uo;i++){let{nextN:a,offset:c,isZero:l,isNeg:u}=i0(n,i,s);if(n=a,!l){let f=t[c];o=o.add(u?f.negate():f)}}return a0(n),o}getPrecomputes(e,t,n){let o=oh.get(t);return o||(o=this.precomputeWindow(t,e),e!==1&&(typeof n=="function"&&(o=n(o)),oh.set(t,o))),o}cached(e,t,n){let o=sh(e);return this.wNAF(o,this.getPrecomputes(o,e,n),t)}unsafe(e,t,n,o){let s=sh(e);return s===1?this._unsafeLadder(e,t,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,o)}createCache(e,t){l0(t,this.bits),u0.set(e,t),oh.delete(e)}hasCache(e){return sh(e)!==1}};function f0(r,e,t,n){let o=e,s=r.ZERO,i=r.ZERO;for(;t>Uo||n>Uo;)t&Nn&&(s=s.add(o)),n&Nn&&(i=i.add(o)),o=o.double(),t>>=Nn,n>>=Nn;return{p1:s,p2:i}}function c0(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return eh(e),e}else return Mo(r,{isLE:t})}function ic(r,e,t={},n){if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Uo))throw new Error(`CURVE.${c} must be positive bigint`)}let o=c0(e.p,t.Fp,n),s=c0(e.n,t.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function ac(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var rn=BigInt(0),Ne=BigInt(1),ih=BigInt(2),f2=BigInt(8);function d2(r,e,t,n){let o=r.sqr(t),s=r.sqr(n),i=r.add(r.mul(e.a,o),s),a=r.add(r.ONE,r.mul(e.d,r.mul(o,s)));return r.eql(i,a)}function d0(r,e={}){let t=ic("edwards",r,e,e.FpFnLE),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i}=s;tn(e,{},{uvRatio:"function"});let a=ih<<BigInt(o.BYTES*8)-Ne,c=w=>n.create(w),l=e.uvRatio||((w,x)=>{try{return{isValid:!0,value:n.sqrt(n.div(w,x))}}catch{return{isValid:!1,value:rn}}});if(!d2(n,s,s.Gx,s.Gy))throw new Error("bad curve params: generator point");function u(w,x,P=!1){let A=P?Ne:rn;return ei("coordinate "+w,x,A,a),x}function f(w){if(!(w instanceof m))throw new Error("EdwardsPoint expected")}let d=Oo((w,x)=>{let{X:P,Y:A,Z:N}=w,H=w.is0();x==null&&(x=H?f2:n.inv(N));let G=c(P*x),Y=c(A*x),b=n.mul(N,x);if(H)return{x:rn,y:Ne};if(b!==Ne)throw new Error("invZ was invalid");return{x:G,y:Y}}),h=Oo(w=>{let{a:x,d:P}=s;if(w.is0())throw new Error("bad point: ZERO");let{X:A,Y:N,Z:H,T:G}=w,Y=c(A*A),b=c(N*N),v=c(H*H),L=c(v*v),R=c(Y*x),k=c(v*c(R+b)),E=c(L+c(P*c(Y*b)));if(k!==E)throw new Error("bad point: equation left != right (1)");let S=c(A*N),g=c(H*G);if(S!==g)throw new Error("bad point: equation left != right (2)");return!0});class m{static BASE=new m(s.Gx,s.Gy,Ne,c(s.Gx*s.Gy));static ZERO=new m(rn,Ne,Ne,rn);static Fp=n;static Fn=o;X;Y;Z;T;constructor(x,P,A,N){this.X=u("x",x),this.Y=u("y",P),this.Z=u("z",A,!0),this.T=u("t",N),Object.freeze(this)}static CURVE(){return s}static fromAffine(x){if(x instanceof m)throw new Error("extended point not allowed");let{x:P,y:A}=x||{};return u("x",P),u("y",A),new m(P,A,Ne,c(P*A))}static fromBytes(x,P=!1){let A=n.BYTES,{a:N,d:H}=s;x=sc(Q(x,A,"point")),Cr(P,"zip215");let G=sc(x),Y=x[A-1];G[A-1]=Y&-129;let b=Dn(G),v=P?a:n.ORDER;ei("point.y",b,rn,v);let L=c(b*b),R=c(L-Ne),k=c(H*L-N),{isValid:E,value:S}=l(R,k);if(!E)throw new Error("bad point: invalid y coordinate");let g=(S&Ne)===Ne,C=(Y&128)!==0;if(!P&&S===rn&&C)throw new Error("bad point: x=0 and x_0=1");return C!==g&&(S=c(-S)),m.fromAffine({x:S,y:b})}static fromHex(x,P=!1){return m.fromBytes(Ar(x),P)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=8,P=!0){return y.createCache(this,x),P||this.multiply(ih),this}assertValidity(){h(this)}equals(x){f(x);let{X:P,Y:A,Z:N}=this,{X:H,Y:G,Z:Y}=x,b=c(P*Y),v=c(H*N),L=c(A*Y),R=c(G*N);return b===v&&L===R}is0(){return this.equals(m.ZERO)}negate(){return new m(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:x}=s,{X:P,Y:A,Z:N}=this,H=c(P*P),G=c(A*A),Y=c(ih*c(N*N)),b=c(x*H),v=P+A,L=c(c(v*v)-H-G),R=b+G,k=R-Y,E=b-G,S=c(L*k),g=c(R*E),C=c(L*E),O=c(k*R);return new m(S,g,O,C)}add(x){f(x);let{a:P,d:A}=s,{X:N,Y:H,Z:G,T:Y}=this,{X:b,Y:v,Z:L,T:R}=x,k=c(N*b),E=c(H*v),S=c(Y*A*R),g=c(G*L),C=c((N+H)*(b+v)-k-E),O=g-S,M=g+S,$=c(E-P*k),K=c(C*O),z=c(M*$),J=c(C*$),ve=c(O*M);return new m(K,z,ve,J)}subtract(x){return this.add(x.negate())}multiply(x){if(!o.isValidNot0(x))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:P,f:A}=y.cached(this,x,N=>Rn(m,N));return Rn(m,[P,A])[0]}multiplyUnsafe(x,P=m.ZERO){if(!o.isValid(x))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return x===rn?m.ZERO:this.is0()||x===Ne?this:y.unsafe(this,x,A=>Rn(m,A),P)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return y.unsafe(this,s.n).is0()}toAffine(x){return d(this,x)}clearCofactor(){return i===Ne?this:this.multiplyUnsafe(i)}toBytes(){let{x,y:P}=this.toAffine(),A=n.toBytes(P);return A[A.length-1]|=x&Ne?128:0,A}toHex(){return Sr(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let y=new Fo(m,o.BITS);return m.BASE.precompute(8),m}function h0(r,e,t={}){if(typeof e!="function")throw new Error('"hash" function param is required');tn(t,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=t,{BASE:o,Fp:s,Fn:i}=r,a=t.randomBytes||Yr,c=t.adjustScalarBytes||(b=>b),l=t.domain||((b,v,L)=>{if(Cr(L,"phflag"),v.length||L)throw new Error("Contexts/pre-hash are not supported");return b});function u(b){return i.create(Dn(b))}function f(b){let v=A.secretKey;Q(b,A.secretKey,"secretKey");let L=Q(e(b),2*v,"hashedSecretKey"),R=c(L.slice(0,v)),k=L.slice(v,2*v),E=u(R);return{head:R,prefix:k,scalar:E}}function d(b){let{head:v,prefix:L,scalar:R}=f(b),k=o.multiply(R),E=k.toBytes();return{head:v,prefix:L,scalar:R,point:k,pointBytes:E}}function h(b){return d(b).pointBytes}function m(b=Uint8Array.of(),...v){let L=dt(...v);return u(e(l(L,Q(b,void 0,"context"),!!n)))}function y(b,v,L={}){b=Q(b,void 0,"message"),n&&(b=n(b));let{prefix:R,scalar:k,pointBytes:E}=d(v),S=m(L.context,R,b),g=o.multiply(S).toBytes(),C=m(L.context,g,E,b),O=i.create(S+C*k);if(!i.isValid(O))throw new Error("sign failed: invalid s");let M=dt(g,i.toBytes(O));return Q(M,A.signature,"result")}let w={zip215:!0};function x(b,v,L,R=w){let{context:k,zip215:E}=R,S=A.signature;b=Q(b,S,"signature"),v=Q(v,void 0,"message"),L=Q(L,A.publicKey,"publicKey"),E!==void 0&&Cr(E,"zip215"),n&&(v=n(v));let g=S/2,C=b.subarray(0,g),O=Dn(b.subarray(g,S)),M,$,K;try{M=r.fromBytes(L,E),$=r.fromBytes(C,E),K=o.multiplyUnsafe(O)}catch{return!1}if(!E&&M.isSmallOrder())return!1;let z=m(k,$.toBytes(),M.toBytes(),v);return $.add(M.multiplyUnsafe(z)).subtract(K).clearCofactor().is0()}let P=s.BYTES,A={secretKey:P,publicKey:P,signature:2*P,seed:P};function N(b=a(A.seed)){return Q(b,A.seed,"seed")}function H(b){return _n(b)&&b.length===i.BYTES}function G(b,v){try{return!!r.fromBytes(b,v)}catch{return!1}}let Y={getExtendedPublicKey:d,randomSecretKey:N,isValidSecretKey:H,isValidPublicKey:G,toMontgomery(b){let{y:v}=r.fromBytes(b),L=A.publicKey,R=L===32;if(!R&&L!==57)throw new Error("only defined for 25519 and 448");let k=R?s.div(Ne+v,Ne-v):s.div(v-Ne,v+Ne);return s.toBytes(k)},toMontgomerySecret(b){let v=A.secretKey;Q(b,v);let L=e(b.subarray(0,v));return c(L).subarray(0,v)}};return Object.freeze({keygen:ac(N,h),getPublicKey:h,sign:y,verify:x,utils:Y,Point:r,lengths:A})}var h2=BigInt(1),p0=BigInt(2);var p2=BigInt(5),m2=BigInt(8),ah=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),g2={p:ah,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:m2,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function y2(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),o=BigInt(80),s=ah,a=r*r%s*r%s,c=we(a,p0,s)*a%s,l=we(c,h2,s)*r%s,u=we(l,p2,s)*l%s,f=we(u,e,s)*u%s,d=we(f,t,s)*f%s,h=we(d,n,s)*d%s,m=we(h,o,s)*h%s,y=we(m,o,s)*h%s,w=we(y,e,s)*u%s;return{pow_p_5_8:we(w,p0,s)*r%s,b2:a}}function w2(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var m0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function b2(r,e){let t=ah,n=Ce(e*e*e,t),o=Ce(n*n*e,t),s=y2(r*o).pow_p_5_8,i=Ce(r*n*s,t),a=Ce(e*i*i,t),c=i,l=Ce(i*m0,t),u=a===r,f=a===Ce(-r,t),d=a===Ce(-r*m0,t);return u&&(i=c),(f||d)&&(i=l),o0(i,t)&&(i=Ce(-i,t)),{isValid:u||f,value:i}}var x2=d0(g2,{uvRatio:b2});function v2(r){return h0(x2,en,Object.assign({adjustScalarBytes:w2},r))}var oi=v2({});var On=32,yt=64,ch=32;var $o,g0=(async()=>{try{return await Te.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();function y0(){let r=oi.utils.randomSecretKey(),e=oi.getPublicKey(r);return{privateKey:C2(r,e),publicKey:e}}async function E2(r,e){let t;r.length===yt?t=r.subarray(0,32):t=r;let n={crv:"Ed25519",kty:"OKP",x:B(r.subarray(32),"base64url"),d:B(t,"base64url"),ext:!0,key_ops:["sign"]},o=await Te.get().subtle.importKey("jwk",n,{name:"Ed25519"},!0,["sign"]),s=await Te.get().subtle.sign({name:"Ed25519"},o,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(s,0,s.byteLength)}function S2(r,e){let t=r.subarray(0,ch);return oi.sign(e instanceof Uint8Array?e:e.subarray(),t)}async function w0(r,e){return $o==null&&($o=await g0),$o?E2(r,e):S2(r,e)}async function A2(r,e,t){if(r.buffer instanceof ArrayBuffer){let n=await Te.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await Te.get().subtle.verify({name:"Ed25519"},n,e,t instanceof Uint8Array?t:t.subarray())}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function I2(r,e,t){return oi.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}async function b0(r,e,t){return $o==null&&($o=await g0),$o?A2(r,e,t):I2(r,e,t)}function C2(r,e){let t=new Uint8Array(yt);for(let n=0;n<ch;n++)t[n]=r[n],t[ch+n]=e[n];return t}function Vo(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var si=class{type="Ed25519";raw;constructor(e){this.raw=Ho(e,On)}toMultihash(){return ke.digest(Tt(this))}toCID(){return V.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=b0(this.raw,t,e);return Vo(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}},Ko=class{type="Ed25519";raw;publicKey;constructor(e,t){this.raw=Ho(e,yt),this.publicKey=new si(t)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}sign(e,t){t?.signal?.throwIfAborted();let n=w0(this.raw,e);return Vo(n)?n.then(o=>(t?.signal?.throwIfAborted(),o)):(t?.signal?.throwIfAborted(),n)}};function lh(r){if(r.length>yt){r=Ho(r,yt+On);let n=r.subarray(0,yt),o=r.subarray(yt,r.length);return new Ko(n,o)}r=Ho(r,yt);let e=r.subarray(0,yt),t=r.subarray(On);return new Ko(e,t)}function uh(r){return r=Ho(r,On),new si(r)}async function v0(){let{privateKey:r,publicKey:e}=y0();return new Ko(r,e)}function Ho(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new _(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var _2=Math.pow(2,7),T2=Math.pow(2,14),k2=Math.pow(2,21),fh=Math.pow(2,28),dh=Math.pow(2,35),hh=Math.pow(2,42),ph=Math.pow(2,49),ce=128,Qe=127;function be(r){if(r<_2)return 1;if(r<T2)return 2;if(r<k2)return 3;if(r<fh)return 4;if(r<dh)return 5;if(r<hh)return 6;if(r<ph)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function _r(r,e,t=0){switch(be(r)){case 8:e[t++]=r&255|ce,r/=128;case 7:e[t++]=r&255|ce,r/=128;case 6:e[t++]=r&255|ce,r/=128;case 5:e[t++]=r&255|ce,r/=128;case 4:e[t++]=r&255|ce,r>>>=7;case 3:e[t++]=r&255|ce,r>>>=7;case 2:e[t++]=r&255|ce,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function P2(r,e,t=0){switch(be(r)){case 8:e.set(t++,r&255|ce),r/=128;case 7:e.set(t++,r&255|ce),r/=128;case 6:e.set(t++,r&255|ce),r/=128;case 5:e.set(t++,r&255|ce),r/=128;case 4:e.set(t++,r&255|ce),r>>>=7;case 3:e.set(t++,r&255|ce),r>>>=7;case 2:e.set(t++,r&255|ce),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function mh(r,e){let t=r[e],n=0;if(n+=t&Qe,t<ce||(t=r[e+1],n+=(t&Qe)<<7,t<ce)||(t=r[e+2],n+=(t&Qe)<<14,t<ce)||(t=r[e+3],n+=(t&Qe)<<21,t<ce)||(t=r[e+4],n+=(t&Qe)*fh,t<ce)||(t=r[e+5],n+=(t&Qe)*dh,t<ce)||(t=r[e+6],n+=(t&Qe)*hh,t<ce)||(t=r[e+7],n+=(t&Qe)*ph,t<ce))return n;throw new RangeError("Could not decode varint")}function B2(r,e){let t=r.get(e),n=0;if(n+=t&Qe,t<ce||(t=r.get(e+1),n+=(t&Qe)<<7,t<ce)||(t=r.get(e+2),n+=(t&Qe)<<14,t<ce)||(t=r.get(e+3),n+=(t&Qe)<<21,t<ce)||(t=r.get(e+4),n+=(t&Qe)*fh,t<ce)||(t=r.get(e+5),n+=(t&Qe)*dh,t<ce)||(t=r.get(e+6),n+=(t&Qe)*hh,t<ce)||(t=r.get(e+7),n+=(t&Qe)*ph,t<ce))return n;throw new RangeError("Could not decode varint")}function nn(r,e,t=0){return e==null&&(e=Je(be(r))),e instanceof Uint8Array?_r(r,e,t):P2(r,e,t)}function fr(r,e=0){return r instanceof Uint8Array?mh(r,e):B2(r,e)}var gh=new Float32Array([-0]),on=new Uint8Array(gh.buffer);function E0(r,e,t){gh[0]=r,e[t]=on[0],e[t+1]=on[1],e[t+2]=on[2],e[t+3]=on[3]}function S0(r,e){return on[0]=r[e],on[1]=r[e+1],on[2]=r[e+2],on[3]=r[e+3],gh[0]}var yh=new Float64Array([-0]),et=new Uint8Array(yh.buffer);function A0(r,e,t){yh[0]=r,e[t]=et[0],e[t+1]=et[1],e[t+2]=et[2],e[t+3]=et[3],e[t+4]=et[4],e[t+5]=et[5],e[t+6]=et[6],e[t+7]=et[7]}function I0(r,e){return et[0]=r[e],et[1]=r[e+1],et[2]=r[e+2],et[3]=r[e+3],et[4]=r[e+4],et[5]=r[e+5],et[6]=r[e+6],et[7]=r[e+7],yh[0]}var D2=BigInt(Number.MAX_SAFE_INTEGER),L2=BigInt(Number.MIN_SAFE_INTEGER),wt=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return Mn;if(e<D2&&e>L2)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>C0&&(o=0n,++n>C0&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return Mn;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):Mn}},Mn=new wt(0,0);Mn.toBigInt=function(){return 0n};Mn.zzEncode=Mn.zzDecode=function(){return this};Mn.length=function(){return 1};var C0=4294967296n;function _0(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function T0(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function wh(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,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 t-n}function Vt(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function cc(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var bh=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Vt(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Vt(this,4);return cc(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Vt(this,4);return cc(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Vt(this,4);let e=S0(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Vt(this,4);let e=I0(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Vt(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return T0(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Vt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Vt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new wt(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Vt(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Vt(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Vt(this,8);let e=cc(this.buf,this.pos+=4),t=cc(this.buf,this.pos+=4);return new wt(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=mh(this.buf,this.pos);return this.pos+=be(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function xh(r){return new bh(r instanceof Uint8Array?r:r.subarray())}function $e(r,e,t){let n=xh(r);return e.decode(n,void 0,t)}function vh(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Je(i);o+i>e&&(n=Je(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var Un=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Eh(){}var Ah=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},N2=vh();function R2(r){return globalThis.Buffer!=null?Je(r):N2(r)}var ai=class{len;head;tail;states;constructor(){this.len=0,this.head=new Un(Eh,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new Un(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Ih((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(lc,10,wt.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=wt.fromBigInt(e);return this._push(lc,t.length(),t)}uint64Number(e){return this._push(_r,be(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=wt.fromBigInt(e).zzEncode();return this._push(lc,t.length(),t)}sint64Number(e){let t=wt.fromNumber(e).zzEncode();return this._push(lc,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Sh,1,e?1:0)}fixed32(e){return this._push(ii,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=wt.fromBigInt(e);return this._push(ii,4,t.lo)._push(ii,4,t.hi)}fixed64Number(e){let t=wt.fromNumber(e);return this._push(ii,4,t.lo)._push(ii,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(E0,4,e)}double(e){return this._push(A0,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Sh,1,0):this.uint32(t)._push(M2,t,e)}string(e){let t=_0(e);return t!==0?this.uint32(t)._push(wh,t,e):this._push(Sh,1,0)}fork(){return this.states=new Ah(this),this.head=this.tail=new Un(Eh,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Un(Eh,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=R2(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function Sh(r,e,t){e[t]=r&255}function O2(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Ih=class extends Un{next;constructor(e,t){super(O2,e,t),this.next=void 0}};function lc(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function ii(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function M2(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(ai.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(U2,e,r),this},ai.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(F2,e,r),this});function U2(r,e,t){e.set(r,t)}function F2(r,e,t){r.length<40?wh(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(T(r),t)}function Ch(){return new ai}function Ve(r,e){let t=Ch();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var zo;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(zo||(zo={}));function uc(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function ci(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return uc("enum",zo.VARINT,t,n)}function Ke(r,e){return uc("message",zo.LENGTH_DELIMITED,r,e)}var Fn=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"},li=class extends Error{code="ERR_MAX_SIZE";name="MaxSizeError"};var fe;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(fe||(fe={}));var _h;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(_h||(_h={}));(function(r){r.codec=()=>ci(_h)})(fe||(fe={}));var dr;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),fe.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=fe.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>$e(t,r.codec(),n)})(dr||(dr={}));var ui;(function(r){let e;r.codec=()=>(e==null&&(e=Ke((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),fe.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=fe.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>$e(t,r.codec(),n)})(ui||(ui={}));function Kt(r){if(isNaN(r)||r<=0)throw new _("random bytes length must be a Number bigger than 0");return Yr(r)}var di={};_e(di,{MAX_RSA_KEY_SIZE:()=>Th,generateRSAKeyPair:()=>Mh,jwkToJWKKeyPair:()=>L0,jwkToPkcs1:()=>H2,jwkToPkix:()=>Dh,jwkToRSAPrivateKey:()=>Oh,pkcs1MessageToJwk:()=>Ph,pkcs1MessageToRSAPrivateKey:()=>fc,pkcs1ToJwk:()=>K2,pkcs1ToRSAPrivateKey:()=>Lh,pkixMessageToJwk:()=>Bh,pkixMessageToRSAPublicKey:()=>Rh,pkixToJwk:()=>q2,pkixToRSAPublicKey:()=>Nh});var Go=class{type="RSA";jwk;_raw;_multihash;constructor(e,t){this.jwk=e,this._multihash=t}get raw(){return this._raw==null&&(this._raw=di.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return V.createV1(114,this._multihash)}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}verify(e,t,n){return D0(this.jwk,t,e,n)}},fi=class{type="RSA";jwk;_raw;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}get raw(){return this._raw==null&&(this._raw=di.jwkToPkcs1(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}sign(e,t){return B0(this.jwk,e,t)}};var Th=8192,kh=18,$2=1062,V2=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function K2(r){let e=_t(r);return Ph(e)}function Ph(r){return{n:B(r[1],"base64url"),e:B(r[2],"base64url"),d:B(r[3],"base64url"),p:B(r[4],"base64url"),q:B(r[5],"base64url"),dp:B(r[6],"base64url"),dq:B(r[7],"base64url"),qi:B(r[8],"base64url"),kty:"RSA"}}function H2(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new _("JWK was missing components");return Ft([st(Uint8Array.from([0])),st(T(r.n,"base64url")),st(T(r.e,"base64url")),st(T(r.d,"base64url")),st(T(r.p,"base64url")),st(T(r.q,"base64url")),st(T(r.dp,"base64url")),st(T(r.dq,"base64url")),st(T(r.qi,"base64url"))]).subarray()}function q2(r){let e=_t(r,{offset:0});return Bh(e)}function Bh(r){let e=_t(r[1],{offset:0});return{kty:"RSA",n:B(e[0],"base64url"),e:B(e[1],"base64url")}}function Dh(r){if(r.n==null||r.e==null)throw new _("JWK was missing components");return Ft([V2,Ys(Ft([st(T(r.n,"base64url")),st(T(r.e,"base64url"))]))]).subarray()}function Lh(r){let e=_t(r);return fc(e)}function fc(r){let e=Ph(r);return Oh(e)}function Nh(r,e){if(r.byteLength>=$2)throw new xo("Key size is too large");let t=_t(r,{offset:0});return Rh(t,r,e)}function Rh(r,e,t){let n=Bh(r);if(t==null){let o=Qr(dr.encode({Type:fe.RSA,Data:e}));t=lr(kh,o)}return new Go(n,t)}function Oh(r){if(R0(r)>Th)throw new _("Key size is too large");let e=L0(r),t=Qr(dr.encode({Type:fe.RSA,Data:Dh(e.publicKey)})),n=lr(kh,t);return new fi(e.privateKey,new Go(e.publicKey,n))}async function Mh(r){if(r>Th)throw new _("Key size is too large");let e=await N0(r),t=Qr(dr.encode({Type:fe.RSA,Data:Dh(e.publicKey)})),n=lr(kh,t);return new fi(e.privateKey,new Go(e.publicKey,n))}function L0(r){if(r==null)throw new _("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function N0(r,e){let t=await Te.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);e?.signal?.throwIfAborted();let n=await z2(t,e);return{privateKey:n[0],publicKey:n[1]}}async function B0(r,e,t){let n=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);t?.signal?.throwIfAborted();let o=await Te.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,e instanceof Uint8Array?e:e.subarray());return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function D0(r,e,t,n){let o=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await Te.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,e,t instanceof Uint8Array?t:t.subarray());return n?.signal?.throwIfAborted(),s}async function z2(r,e){if(r.privateKey==null||r.publicKey==null)throw new _("Private and public key are required");let t=await Promise.all([Te.get().subtle.exportKey("jwk",r.privateKey),Te.get().subtle.exportKey("jwk",r.publicKey)]);return e?.signal?.throwIfAborted(),t}function R0(r){if(r.kty!=="RSA")throw new _("invalid key type");if(r.n==null)throw new _("invalid key modulus");return T(r.n,"base64url").length*8}var dc=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){if(Lo(e),Q(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(t.length>n?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),ft(o)}update(e){return No(this),this.iHash.update(e),this}digestInto(e){No(this),Q(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},hi=(r,e,t)=>new dc(r,e).update(t).digest();hi.create=(r,e)=>new dc(r,e);var O0=(r,e)=>(r+(r>=0?e:-e)/M0)/e;function G2(r,e,t){let[[n,o],[s,i]]=e,a=O0(i*r,t),c=O0(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<Tr,d=u<Tr;f&&(l=-l),d&&(u=-u);let h=ti(Math.ceil(Xd(t)/2))+Wo;if(l<Tr||l>=h||u<Tr||u>=h)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:f,k1:l,k2neg:d,k2:u}}function Fh(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function Uh(r,e){let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return Cr(t.lowS,"lowS"),Cr(t.prehash,"prehash"),t.format!==void 0&&Fh(t.format),t}var $h=class extends Error{constructor(e=""){super(e)}},sn={Err:$h,_tlv:{encode:(r,e)=>{let{Err:t}=sn;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=Qs(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?Qs(o.length/2|128):"";return Qs(r)+s+o+e},decode(r,e){let{Err:t}=sn,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let o=e[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(n,n+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of l)i=i<<8|u;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=sn;if(r<Tr)throw new e("integer: negative integers are not allowed");let t=Qs(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=sn;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Ro(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=sn,o=Q(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:l,l:u}=n.decode(2,c);if(u.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=sn,n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},Tr=BigInt(0),Wo=BigInt(1),M0=BigInt(2),hc=BigInt(3),W2=BigInt(4);function U0(r,e={}){let t=ic("weierstrass",r,e),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i,n:a}=s;tn(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=$0(n,o);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function f(k,E,S){let{x:g,y:C}=E.toAffine(),O=n.toBytes(g);if(Cr(S,"isCompressed"),S){u();let M=!n.isOdd(C);return dt(F0(M),O)}else return dt(Uint8Array.of(4),O,n.toBytes(C))}function d(k){Q(k,void 0,"Point");let{publicKey:E,publicKeyUncompressed:S}=l,g=k.length,C=k[0],O=k.subarray(1);if(g===E&&(C===2||C===3)){let M=n.fromBytes(O);if(!n.isValid(M))throw new Error("bad point: is not on curve, wrong x");let $=y(M),K;try{K=n.sqrt($)}catch(ve){let pe=ve instanceof Error?": "+ve.message:"";throw new Error("bad point: is not on curve, sqrt error"+pe)}u();let z=n.isOdd(K);return(C&1)===1!==z&&(K=n.neg(K)),{x:M,y:K}}else if(g===S&&C===4){let M=n.BYTES,$=n.fromBytes(O.subarray(0,M)),K=n.fromBytes(O.subarray(M,M*2));if(!w($,K))throw new Error("bad point: is not on curve");return{x:$,y:K}}else throw new Error(`bad point: got length ${g}, expected compressed=${E} or uncompressed=${S}`)}let h=e.toBytes||f,m=e.fromBytes||d;function y(k){let E=n.sqr(k),S=n.mul(E,k);return n.add(n.add(S,n.mul(k,s.a)),s.b)}function w(k,E){let S=n.sqr(E),g=y(k);return n.eql(S,g)}if(!w(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let x=n.mul(n.pow(s.a,hc),W2),P=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(x,P)))throw new Error("bad curve params: a or b");function A(k,E,S=!1){if(!n.isValid(E)||S&&n.is0(E))throw new Error(`bad point coordinate ${k}`);return E}function N(k){if(!(k instanceof v))throw new Error("Weierstrass Point expected")}function H(k){if(!c||!c.basises)throw new Error("no endo");return G2(k,c.basises,o.ORDER)}let G=Oo((k,E)=>{let{X:S,Y:g,Z:C}=k;if(n.eql(C,n.ONE))return{x:S,y:g};let O=k.is0();E==null&&(E=O?n.ONE:n.inv(C));let M=n.mul(S,E),$=n.mul(g,E),K=n.mul(C,E);if(O)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:M,y:$}}),Y=Oo(k=>{if(k.is0()){if(e.allowInfinityPoint&&!n.is0(k.Y))return;throw new Error("bad point: ZERO")}let{x:E,y:S}=k.toAffine();if(!n.isValid(E)||!n.isValid(S))throw new Error("bad point: x or y not field elements");if(!w(E,S))throw new Error("bad point: equation left != right");if(!k.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function b(k,E,S,g,C){return S=new v(n.mul(S.X,k),S.Y,S.Z),E=ni(g,E),S=ni(C,S),E.add(S)}class v{static BASE=new v(s.Gx,s.Gy,n.ONE);static ZERO=new v(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(E,S,g){this.X=A("x",E),this.Y=A("y",S,!0),this.Z=A("z",g),Object.freeze(this)}static CURVE(){return s}static fromAffine(E){let{x:S,y:g}=E||{};if(!E||!n.isValid(S)||!n.isValid(g))throw new Error("invalid affine point");if(E instanceof v)throw new Error("projective point not allowed");return n.is0(S)&&n.is0(g)?v.ZERO:new v(S,g,n.ONE)}static fromBytes(E){let S=v.fromAffine(m(Q(E,void 0,"point")));return S.assertValidity(),S}static fromHex(E){return v.fromBytes(Ar(E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,S=!0){return R.createCache(this,E),S||this.multiply(hc),this}assertValidity(){Y(this)}hasEvenY(){let{y:E}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(E)}equals(E){N(E);let{X:S,Y:g,Z:C}=this,{X:O,Y:M,Z:$}=E,K=n.eql(n.mul(S,$),n.mul(O,C)),z=n.eql(n.mul(g,$),n.mul(M,C));return K&&z}negate(){return new v(this.X,n.neg(this.Y),this.Z)}double(){let{a:E,b:S}=s,g=n.mul(S,hc),{X:C,Y:O,Z:M}=this,$=n.ZERO,K=n.ZERO,z=n.ZERO,J=n.mul(C,C),ve=n.mul(O,O),pe=n.mul(M,M),se=n.mul(C,O);return se=n.add(se,se),z=n.mul(C,M),z=n.add(z,z),$=n.mul(E,z),K=n.mul(g,pe),K=n.add($,K),$=n.sub(ve,K),K=n.add(ve,K),K=n.mul($,K),$=n.mul(se,$),z=n.mul(g,z),pe=n.mul(E,pe),se=n.sub(J,pe),se=n.mul(E,se),se=n.add(se,z),z=n.add(J,J),J=n.add(z,J),J=n.add(J,pe),J=n.mul(J,se),K=n.add(K,J),pe=n.mul(O,M),pe=n.add(pe,pe),J=n.mul(pe,se),$=n.sub($,J),z=n.mul(pe,ve),z=n.add(z,z),z=n.add(z,z),new v($,K,z)}add(E){N(E);let{X:S,Y:g,Z:C}=this,{X:O,Y:M,Z:$}=E,K=n.ZERO,z=n.ZERO,J=n.ZERO,ve=s.a,pe=n.mul(s.b,hc),se=n.mul(S,O),Ee=n.mul(g,M),Ue=n.mul(C,$),or=n.add(S,g),Se=n.add(O,M);or=n.mul(or,Se),Se=n.add(se,Ee),or=n.sub(or,Se),Se=n.add(S,C);let Ze=n.add(O,$);return Se=n.mul(Se,Ze),Ze=n.add(se,Ue),Se=n.sub(Se,Ze),Ze=n.add(g,C),K=n.add(M,$),Ze=n.mul(Ze,K),K=n.add(Ee,Ue),Ze=n.sub(Ze,K),J=n.mul(ve,Se),K=n.mul(pe,Ue),J=n.add(K,J),K=n.sub(Ee,J),J=n.add(Ee,J),z=n.mul(K,J),Ee=n.add(se,se),Ee=n.add(Ee,se),Ue=n.mul(ve,Ue),Se=n.mul(pe,Se),Ee=n.add(Ee,Ue),Ue=n.sub(se,Ue),Ue=n.mul(ve,Ue),Se=n.add(Se,Ue),se=n.mul(Ee,Se),z=n.add(z,se),se=n.mul(Ze,Se),K=n.mul(or,K),K=n.sub(K,se),se=n.mul(or,Ee),J=n.mul(Ze,J),J=n.add(J,se),new v(K,z,J)}subtract(E){return this.add(E.negate())}is0(){return this.equals(v.ZERO)}multiply(E){let{endo:S}=e;if(!o.isValidNot0(E))throw new Error("invalid scalar: out of range");let g,C,O=M=>R.cached(this,M,$=>Rn(v,$));if(S){let{k1neg:M,k1:$,k2neg:K,k2:z}=H(E),{p:J,f:ve}=O($),{p:pe,f:se}=O(z);C=ve.add(se),g=b(S.beta,J,pe,M,K)}else{let{p:M,f:$}=O(E);g=M,C=$}return Rn(v,[g,C])[0]}multiplyUnsafe(E){let{endo:S}=e,g=this;if(!o.isValid(E))throw new Error("invalid scalar: out of range");if(E===Tr||g.is0())return v.ZERO;if(E===Wo)return g;if(R.hasCache(this))return this.multiply(E);if(S){let{k1neg:C,k1:O,k2neg:M,k2:$}=H(E),{p1:K,p2:z}=f0(v,g,O,$);return b(S.beta,K,z,C,M)}else return R.unsafe(g,E)}toAffine(E){return G(this,E)}isTorsionFree(){let{isTorsionFree:E}=e;return i===Wo?!0:E?E(v,this):R.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:E}=e;return i===Wo?this:E?E(v,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return Cr(E,"isCompressed"),this.assertValidity(),h(v,this,E)}toHex(E=!0){return Sr(this.toBytes(E))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let L=o.BITS,R=new Fo(v,e.endo?Math.ceil(L/2):L);return v.BASE.precompute(8),v}function F0(r){return Uint8Array.of(r?2:3)}function $0(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function j2(r,e={}){let{Fn:t}=r,n=e.randomBytes||Yr,o=Object.assign($0(r.Fp,t),{seed:th(t.ORDER)});function s(h){try{let m=t.fromBytes(h);return t.isValidNot0(m)}catch{return!1}}function i(h,m){let{publicKey:y,publicKeyUncompressed:w}=o;try{let x=h.length;return m===!0&&x!==y||m===!1&&x!==w?!1:!!r.fromBytes(h)}catch{return!1}}function a(h=n(o.seed)){return rh(Q(h,o.seed,"seed"),t.ORDER)}function c(h,m=!0){return r.BASE.multiply(t.fromBytes(h)).toBytes(m)}function l(h){let{secretKey:m,publicKey:y,publicKeyUncompressed:w}=o;if(!_n(h)||"_lengths"in t&&t._lengths||m===y)return;let x=Q(h,void 0,"key").length;return x===y||x===w}function u(h,m,y=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(m)===!1)throw new Error("second arg must be public key");let w=t.fromBytes(h);return r.fromBytes(m).multiply(w).toBytes(y)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},d=ac(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:r,utils:f,lengths:o})}function V0(r,e,t={}){Lo(e),tn(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),t=Object.assign({},t);let n=t.randomBytes||Yr,o=t.hmac||((S,g)=>hi(e,S,g)),{Fp:s,Fn:i}=r,{ORDER:a,BITS:c}=i,{keygen:l,getPublicKey:u,getSharedSecret:f,utils:d,lengths:h}=j2(r,t),m={prehash:!0,lowS:typeof t.lowS=="boolean"?t.lowS:!0,format:"compact",extraEntropy:!1},y=a*M0<s.ORDER;function w(S){let g=a>>Wo;return S>g}function x(S,g){if(!i.isValidNot0(g))throw new Error(`invalid signature ${S}: out of range 1..Point.Fn.ORDER`);return g}function P(){if(y)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function A(S,g){Fh(g);let C=h.signature,O=g==="compact"?C:g==="recovered"?C+1:void 0;return Q(S,O)}class N{r;s;recovery;constructor(g,C,O){if(this.r=x("r",g),this.s=x("s",C),O!=null){if(P(),![0,1,2,3].includes(O))throw new Error("invalid recovery id");this.recovery=O}Object.freeze(this)}static fromBytes(g,C=m.format){A(g,C);let O;if(C==="der"){let{r:z,s:J}=sn.toSig(Q(g));return new N(z,J)}C==="recovered"&&(O=g[0],C="compact",g=g.subarray(1));let M=h.signature/2,$=g.subarray(0,M),K=g.subarray(M,M*2);return new N(i.fromBytes($),i.fromBytes(K),O)}static fromHex(g,C){return this.fromBytes(Ar(g),C)}assertRecovery(){let{recovery:g}=this;if(g==null)throw new Error("invalid recovery id: must be present");return g}addRecoveryBit(g){return new N(this.r,this.s,g)}recoverPublicKey(g){let{r:C,s:O}=this,M=this.assertRecovery(),$=M===2||M===3?C+a:C;if(!s.isValid($))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let K=s.toBytes($),z=r.fromBytes(dt(F0((M&1)===0),K)),J=i.inv($),ve=G(Q(g,void 0,"msgHash")),pe=i.create(-ve*J),se=i.create(O*J),Ee=r.BASE.multiplyUnsafe(pe).add(z.multiplyUnsafe(se));if(Ee.is0())throw new Error("invalid recovery: point at infinify");return Ee.assertValidity(),Ee}hasHighS(){return w(this.s)}toBytes(g=m.format){if(Fh(g),g==="der")return Ar(sn.hexFromSig(this));let{r:C,s:O}=this,M=i.toBytes(C),$=i.toBytes(O);return g==="recovered"?(P(),dt(Uint8Array.of(this.assertRecovery()),M,$)):dt(M,$)}toHex(g){return Sr(this.toBytes(g))}}let H=t.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");let C=Ro(g),O=g.length*8-c;return O>0?C>>BigInt(O):C},G=t.bits2int_modN||function(g){return i.create(H(g))},Y=ti(c);function b(S){return ei("num < 2^"+c,S,Tr,Y),i.toBytes(S)}function v(S,g){return Q(S,void 0,"message"),g?Q(e(S),void 0,"prehashed message"):S}function L(S,g,C){let{lowS:O,prehash:M,extraEntropy:$}=Uh(C,m);S=v(S,M);let K=G(S),z=i.fromBytes(g);if(!i.isValidNot0(z))throw new Error("invalid private key");let J=[b(z),b(K)];if($!=null&&$!==!1){let Ee=$===!0?n(h.secretKey):$;J.push(Q(Ee,void 0,"extraEntropy"))}let ve=dt(...J),pe=K;function se(Ee){let Ue=H(Ee);if(!i.isValidNot0(Ue))return;let or=i.inv(Ue),Se=r.BASE.multiply(Ue).toAffine(),Ze=i.create(Se.x);if(Ze===Tr)return;let Oa=i.create(or*i.create(pe+Ze*z));if(Oa===Tr)return;let Kg=(Se.x===Ze?0:2)|Number(Se.y&Wo),Hg=Oa;return O&&w(Oa)&&(Hg=i.neg(Oa),Kg^=1),new N(Ze,Hg,y?void 0:Kg)}return{seed:ve,k2sig:se}}function R(S,g,C={}){let{seed:O,k2sig:M}=L(S,g,C);return jy(e.outputLen,i.BYTES,o)(O,M).toBytes(C.format)}function k(S,g,C,O={}){let{lowS:M,prehash:$,format:K}=Uh(O,m);if(C=Q(C,void 0,"publicKey"),g=v(g,$),!_n(S)){let z=S instanceof N?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+z)}A(S,K);try{let z=N.fromBytes(S,K),J=r.fromBytes(C);if(M&&z.hasHighS())return!1;let{r:ve,s:pe}=z,se=G(g),Ee=i.inv(pe),Ue=i.create(se*Ee),or=i.create(ve*Ee),Se=r.BASE.multiplyUnsafe(Ue).add(J.multiplyUnsafe(or));return Se.is0()?!1:i.create(Se.x)===ve}catch{return!1}}function E(S,g,C={}){let{prehash:O}=Uh(C,m);return g=v(g,O),N.fromBytes(S,"recovered").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:f,utils:d,lengths:h,Point:r,sign:R,verify:k,recoverPublicKey:E,Signature:N,hash:e})}var Kh={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Y2={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var K0=BigInt(2);function Z2(r){let e=Kh.p,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,u=l*l*r%e,f=we(u,t,e)*u%e,d=we(f,t,e)*u%e,h=we(d,K0,e)*l%e,m=we(h,o,e)*h%e,y=we(m,s,e)*m%e,w=we(y,a,e)*y%e,x=we(w,c,e)*w%e,P=we(x,a,e)*y%e,A=we(P,t,e)*u%e,N=we(A,i,e)*m%e,H=we(N,n,e)*l%e,G=we(H,K0,e);if(!Vh.eql(Vh.sqr(G),r))throw new Error("Cannot find square root");return G}var Vh=Mo(Kh.p,{sqrt:Z2}),X2=U0(Kh,{Fp:Vh,endo:Y2}),Ht=V0(X2,Qr);var H0=32;function q0(r,e,t){let n=gt.digest(e instanceof Uint8Array?e:e.subarray());if(Vo(n))return n.then(({digest:o})=>(t?.signal?.throwIfAborted(),Ht.sign(o,r,{prehash:!1,format:"der"}))).catch(o=>{throw o.name==="AbortError"?o:new Fs(String(o))});try{return Ht.sign(n.digest,r,{prehash:!1,format:"der"})}catch(o){throw new Fs(String(o))}}function z0(r,e,t,n){let o=gt.digest(t instanceof Uint8Array?t:t.subarray());if(Vo(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Ht.verify(e,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new $s(String(s))});try{return n?.signal?.throwIfAborted(),Ht.verify(e,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new $s(String(s))}}var pi=class{type="secp256k1";raw;_key;constructor(e){this._key=j0(e),this.raw=G0(this._key)}toMultihash(){return ke.digest(Tt(this))}toCID(){return V.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}verify(e,t,n){return z0(this._key,t,e,n)}},mi=class{type="secp256k1";raw;publicKey;constructor(e,t){this.raw=W0(e),this.publicKey=new pi(t??Y0(e))}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:W(this.raw,e.raw)}sign(e,t){return q0(this.raw,e,t)}};function Hh(r){return new mi(r)}function qh(r){return new pi(r)}async function Z0(){let r=J2();return new mi(r)}function G0(r){return Ht.Point.fromBytes(r).toBytes()}function W0(r){try{return Ht.getPublicKey(r,!0),r}catch(e){throw new Os(String(e))}}function j0(r){try{return Ht.Point.fromBytes(r),r}catch(e){throw new xo(String(e))}}function Y0(r){try{return Ht.getPublicKey(r,!0)}catch(e){throw new Os(String(e))}}function J2(){return Ht.utils.randomSecretKey()}async function pc(r,e){if(r==="Ed25519")return v0();if(r==="secp256k1")return Z0();if(r==="RSA")return Mh(Q2(e));if(r==="ECDSA")return By(eA(e));throw new Ot}function an(r,e){let{Type:t,Data:n}=dr.decode(r),o=n??new Uint8Array;switch(t){case fe.RSA:return Nh(o,e);case fe.Ed25519:return uh(o);case fe.secp256k1:return qh(o);case fe.ECDSA:return Fd(o);default:throw new Ot}}function jo(r){let{Type:e,Data:t}=dr.decode(r.digest),n=t??new Uint8Array;switch(e){case fe.Ed25519:return uh(n);case fe.secp256k1:return qh(n);case fe.ECDSA:return Fd(n);default:throw new Ot}}function Tt(r){return dr.encode({Type:fe[r.type],Data:r.raw})}function X0(r){let e=ui.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case fe.RSA:return Lh(t);case fe.Ed25519:return lh(t);case fe.secp256k1:return Hh(t);case fe.ECDSA:return Cy(t);default:throw new Ot}}function J0(r){if(r.byteLength===yt)return lh(r);if(r.byteLength===H0)return Hh(r);let e=_t(r),t=e[2]?.[0];if(t===yy||t===wy||t===by)return Ud(e);if(e.length>8)return fc(e);throw new _("Could not extract private key from raw bytes")}function $n(r){return ui.encode({Type:fe[r.type],Data:r.raw})}function Q2(r){return r==null?2048:parseInt(r,10)}function eA(r){if(r==="P-256"||r==null)return"P-256";if(r==="P-384")return"P-384";if(r==="P-521")return"P-521";throw new _("Unsupported curve, should be P-256, P-384 or P-521")}var gi=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),cn=new Uint32Array(80),zh=class extends kn{A=gi[0]|0;B=gi[1]|0;C=gi[2]|0;D=gi[3]|0;E=gi[4]|0;constructor(){super(64,20,8,!1)}get(){let{A:e,B:t,C:n,D:o,E:s}=this;return[e,t,n,o,s]}set(e,t,n,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0}process(e,t){for(let c=0;c<16;c++,t+=4)cn[c]=e.getUint32(t,!1);for(let c=16;c<80;c++)cn[c]=Qa(cn[c-3]^cn[c-8]^cn[c-14]^cn[c-16],1);let{A:n,B:o,C:s,D:i,E:a}=this;for(let c=0;c<80;c++){let l,u;c<20?(l=ec(o,s,i),u=1518500249):c<40?(l=o^s^i,u=1859775393):c<60?(l=tc(o,s,i),u=2400959708):(l=o^s^i,u=3395469782);let f=Qa(n,5)+l+a+u+cn[c]|0;a=i,i=s,s=Qa(o,30),o=n,n=f}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,this.set(n,o,s,i,a)}roundClean(){ft(cn)}destroy(){this.set(0,0,0,0,0),ft(this.buffer)}},Q0=Zs(()=>new zh);function ew(r,e,t,n){Lo(r);let o=Oy({dkLen:32,asyncTick:10},n),{c:s,dkLen:i,asyncTick:a}=o;if(ut(s,"c"),ut(i,"dkLen"),ut(a,"asyncTick"),s<1)throw new Error("iterations (c) must be >= 1");let c=$d(e,"password"),l=$d(t,"salt"),u=new Uint8Array(i),f=hi.create(r,c),d=f._cloneInto().update(l);return{c:s,dkLen:i,asyncTick:a,DK:u,PRF:f,PRFSalt:d}}function tw(r,e,t,n,o){return r.destroy(),e.destroy(),n&&n.destroy(),ft(o),t}function rw(r,e,t,n){let{c:o,dkLen:s,DK:i,PRF:a,PRFSalt:c}=ew(r,e,t,n),l,u=new Uint8Array(4),f=Tn(u),d=new Uint8Array(a.outputLen);for(let h=1,m=0;m<s;h++,m+=a.outputLen){let y=i.subarray(m,m+a.outputLen);f.setInt32(0,h,!1),(l=c._cloneInto(l)).update(u).digestInto(d),y.set(d.subarray(0,y.length));for(let w=1;w<o;w++){a._cloneInto(l).update(d).digestInto(d);for(let x=0;x<y.length;x++)y[x]^=d[x]}}return tw(a,c,i,l,d)}async function mc(r,e,t,n){let{c:o,dkLen:s,asyncTick:i,DK:a,PRF:c,PRFSalt:l}=ew(r,e,t,n),u,f=new Uint8Array(4),d=Tn(f),h=new Uint8Array(c.outputLen);for(let m=1,y=0;y<s;m++,y+=c.outputLen){let w=a.subarray(y,y+c.outputLen);d.setInt32(0,m,!1),(u=l._cloneInto(u)).update(f).digestInto(h),w.set(h.subarray(0,w.length)),await Ry(o-1,i,()=>{c._cloneInto(u).update(h).digestInto(h);for(let x=0;x<w.length;x++)w[x]^=h[x]})}return tw(c,l,a,u,h)}var nw={sha1:Q0,"sha2-256":Qr,"sha2-512":en};function yi(r,e,t,n,o){if(o!=="sha1"&&o!=="sha2-256"&&o!=="sha2-512"){let a=Object.keys(nw).join(" / ");throw new _(`Hash '${o}' is unknown or not supported. Must be ${a}`)}let s=nw[o],i=rw(s,r,e,{c:t,dkLen:n});return Pe.encode(i).substring(1)}var Gh={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},ow={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},sw=new globalThis.TextEncoder;function tA(r,e){let t=Gh[e],n=ow[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function rA(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=Gh[e],o=ow[e],s=r;for(;s.length>0;){let i=sw.encodeInto(s,t);s=s.slice(i.read);for(let a=0;a<i.written;a++)o^=BigInt(t[a]),o=BigInt.asUintN(e,o*n)}return o}function Wh(r,{size:e=32,utf8Buffer:t}={}){if(!Gh[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return rA(r,e,t);r=sw.encode(r)}return tA(r,e)}var wi={hash:r=>Number(Wh(r,{size:32})),hashV:(r,e)=>nA(wi.hash(r,e))};function nA(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),T(e,"base16")}var jh=64,qt=class{fp;h;seed;constructor(e,t,n,o=2){if(o>jh)throw new TypeError("Invalid Fingerprint Size");let s=t.hashV(e,n),i=Ie(o);for(let a=0;a<i.length;a++)i[a]=s[a];i.length===0&&(i[0]=7),this.fp=i,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?W(this.fp,e.fp):!1}};function Vn(r,e){return Math.floor(Math.random()*(e-r))+r}var Kn=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof qt))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof qt))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof qt))throw new TypeError("Invalid Fingerprint");let t=Vn(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof qt))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var oA=500,bi=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??wi,this.seed=e.seed??Vn(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=T(e));let t=new qt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new Kn(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new Kn(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let s=[n,o],i=s[Vn(0,s.length-1)];this.buckets[i]==null&&(this.buckets[i]=new Kn(this.bucketSize));for(let a=0;a<oA;a++){let c=this.buckets[i].swap(t);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new Kn(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=T(e));let t=new qt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.has(t)??!1;if(o)return o;let s=(n^t.hash())%this.filterSize;return this.buckets[s]?.has(t)??!1}remove(e){typeof e=="string"&&(e=T(e));let t=new qt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.remove(t)??!1;if(o)return this.count--,o;let s=(n^t.hash())%this.filterSize,i=this.buckets[s]?.remove(t)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},sA={1:.5,2:.84,4:.95,8:.98};function iA(r=.001){return r>.002?2:r>1e-5?4:8}function iw(r,e=.001){let t=iA(e),n=sA[t],o=Math.round(r/n),s=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),jh);return{filterSize:o,bucketSize:t,fingerprintSize:s}}var gc=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??wi,this.seed=e.seed??Vn(0,Math.pow(2,10)),this.filterSeries=[new bi({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=T(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new bi({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=T(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=T(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Hn(r,e=.001,t){return new gc({...iw(r,e),...t??{}})}function te(r){let e=r.getComponents(),t={},n=0;if(e[n]?.name==="ip6zone"&&(t.zone=`${e[n].value}`,n++),e[n].name==="ip4"||e[n].name==="ip6"||e[n].name==="dns"||e[n].name==="dns4"||e[n].name==="dns6"?(t.type=e[n].name,t.host=e[n].value,n++):e[n].name==="dnsaddr"&&(t.type=e[n].name,t.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(t.protocol=e[n].name==="tcp"?"tcp":"udp",t.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(t.type==="ip4"?t.cidr=parseInt(`${e[n].value}`):t.type==="ip6"&&(t.cidr=`${e[n].value}`),n++),t.type==null||t.host==null)throw new _(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t}var yc=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(u===void 0)break;if(s*=e,s+=u,s>l||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let o=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[o]=i[0],t[o+1]=i[1],t[o+2]=i[2],t[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];t[o]=s>>8,t[o+1]=s&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,o]=e(t);if(n===16)return t;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return t.set(s.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var aw=45,aA=15,Yo=new yc;function wc(r){if(!(r.length>aA))return Yo.new(r).parseWith(()=>Yo.readIPv4Addr())}function bc(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>aw))return Yo.new(r).parseWith(()=>Yo.readIPv6Addr())}function Zo(r,e=!1){if(r.includes("%")&&(r=r.split("%")[0]),r.length>aw)return;let t=Yo.new(r).parseWith(()=>Yo.readIPAddr());if(t)return e&&t.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,t[0],t[1],t[2],t[3]]):t}function cw(r,e,t){let n=0;for(let o of r)if(!(n<e)){if(n>t)break;if(o!==255)return!1;n++}return!0}function lw(r,e,t,n){let o=0;for(let s of r)if(!(o<t)){if(o>n)break;if(s!==e[o])return!1;o++}return!0}function Yh(r){switch(r.length){case qn:return r.join(".");case zn:{let e=[];for(let t=0;t<r.length;t++)t%2===0&&e.push(r[t].toString(16).padStart(2,"0")+r[t+1].toString(16).padStart(2,"0"));return e.join(":")}default:throw new Error("Invalid ip length")}}function uw(r){let e=0;for(let[t,n]of r.entries()){if(n===255){e+=8;continue}for(;(n&128)!=0;)e++,n=n<<1;if((n&128)!=0)return-1;for(let o=t+1;o<r.length;o++)if(r[o]!=0)return-1;break}return e}function fw(r){let e="0x";for(let t of r)e+=(t>>4).toString(16)+(t&15).toString(16);return e}var qn=4,zn=16,nL=parseInt("0xFFFF",16),cA=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function xi(r,e){e.length===zn&&r.length===qn&&cw(e,0,11)&&(e=e.slice(12)),e.length===qn&&r.length===zn&&lw(r,cA,0,11)&&(r=r.slice(12));let t=r.length;if(t!=e.length)throw new Error("Failed to mask ip");let n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=r[o]&e[o];return n}function dw(r,e){if(typeof e=="string"&&(e=Zo(e)),e==null)throw new Error("Invalid ip");if(e.length!==r.network.length)return!1;for(let t=0;t<e.length;t++)if((r.network[t]&r.mask[t])!==(e[t]&r.mask[t]))return!1;return!0}function Zh(r){let[e,t]=r.split("/");if(!e||!t)throw new Error("Failed to parse given CIDR: "+r);let n=qn,o=wc(e);if(o==null&&(n=zn,o=bc(e),o==null))throw new Error("Failed to parse given CIDR: "+r);let s=parseInt(t,10);if(Number.isNaN(s)||String(s).length!==t.length||s<0||s>n*8)throw new Error("Failed to parse given CIDR: "+r);let i=Xh(s,8*n);return{network:xi(o,i),mask:i}}function Xh(r,e){if(e!==8*qn&&e!==8*zn)throw new Error("Invalid CIDR mask");if(r<0||r>e)throw new Error("Invalid CIDR mask");let t=e/8,n=new Uint8Array(t);for(let o=0;o<t;o++){if(r>=8){n[o]=255,r-=8;continue}n[o]=255-(255>>r),r=0}return n}var Gn=class{constructor(e,t){if(t==null)({network:this.network,mask:this.mask}=Zh(e));else{let n=Zo(e);if(n==null)throw new Error("Failed to parse network");t=String(t);let o=parseInt(t,10);if(Number.isNaN(o)||String(o).length!==t.length||o<0||o>n.length*8){let s=Zo(t);if(s==null)throw new Error("Failed to parse mask");this.mask=s}else this.mask=Xh(o,8*n.length);this.network=xi(n,this.mask)}}contains(e){return dw({network:this.network,mask:this.mask},e)}toString(){let e=uw(this.mask),t=e!==-1?String(e):fw(this.mask);return Yh(this.network)+"/"+t}};function hw(r){try{let e=te(r);switch(e.type){case"ip4":return e.host.startsWith("169.254.");case"ip6":return e.host.toLowerCase().startsWith("fe80");default:return!1}}catch{return!1}}function pw(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function vi(r){try{let e=te(r);switch(e.type){case"ip4":case"ip6":return pw(e.host);default:return!1}}catch{return!1}}function He(r){try{return te(r),!0}catch{return!1}}function at(r){return!!wc(r)}function Xo(r){return!!bc(r)}var gw=vn(mw(),1),lA=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],uA=lA.map(r=>new gw.Netmask(r));function Jh(r){for(let e of uA)if(e.contains(r))return!0;return!1}function fA(r){return/^::ffff:([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})$/.test(r)}function dA(r){let e=r.split(":");if(e.length<2)return!1;let t=e[e.length-1].padStart(4,"0"),n=e[e.length-2].padStart(4,"0"),o=`${parseInt(n.substring(0,2),16)}.${parseInt(n.substring(2),16)}.${parseInt(t.substring(0,2),16)}.${parseInt(t.substring(2),16)}`;return Jh(o)}function hA(r){return/^::ffff:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)}function pA(r){let e=r.split(":"),t=e[e.length-1];return Jh(t)}function mA(r){return/^::$/.test(r)||/^::1$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}function Jo(r){if(at(r))return Jh(r);if(fA(r))return dA(r);if(hA(r))return pA(r);if(Xo(r))return mA(r)}function zt(r){try{let e=te(r);switch(e.type){case"ip4":case"ip6":return Jo(e.host)??!1;default:return e.host==="localhost"}}catch{return!1}}function le(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var xc=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Qo=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new xc(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new xc(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Qh=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function es(r={}){return gA(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function gA(r,e){e=e??{};let t=e.onEnd,n=new Qo,o,s,i,a=le(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((w,x)=>{s=P=>{s=null,n.push(P);try{w(r(n))}catch(A){x(A)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=le()})}},l=w=>s!=null?s(w):(n.push(w),o),u=w=>(n=new Qo,s!=null?s({error:w}):(n.push({error:w}),o)),f=w=>{if(i)return o;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:w})},d=w=>i?o:(i=!0,w!=null?u(w):l({done:!0})),h=()=>(n=new Qo,d(),{done:!0}),m=w=>(d(w),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:h,throw:m,push:f,end:d,get readableLength(){return n.size},onEmpty:async w=>{let x=w?.signal;if(x?.throwIfAborted(),n.isEmpty())return;let P,A;x!=null&&(P=new Promise((N,H)=>{A=()=>{H(new Qh)},x.addEventListener("abort",A)}));try{await Promise.race([a.promise,P])}finally{A!=null&&x!=null&&x?.removeEventListener("abort",A)}}},t==null)return o;let y=o;return o={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(w){return y.throw(w),t!=null&&(t(w),t=void 0),{done:!0}},return(){return y.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(w){return y.end(w),t!=null&&(t(w),t=void 0),o},get readableLength(){return y.readableLength},onEmpty:w=>y.onEmpty(w)},o}var Si=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},ep=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},yw=r=>globalThis.DOMException===void 0?new ep(r):new DOMException(r),ww=r=>{let e=r.reason===void 0?yw("This operation was aborted."):r.reason;return e instanceof Error?e:yw(e)};function Ai(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,l=new Promise((u,f)=>{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&&f(ww(h)),a=()=>{f(ww(h))},h.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let d=new Si;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(d.message=o??`Promise timed out after ${t} milliseconds`,f(d))},t),(async()=>{try{u(await r)}catch(h){f(h)}})()}).finally(()=>{l.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return l.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},l}var yA=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function wA(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:l,removeListener:u}=yA(r),f=async(...h)=>{let m=t.multiArgs?h:h[0];if(t.filter)try{if(!await t.filter(m))return}catch(y){n(),i(y);return}c.push(m),t.count===c.length&&(n(),s(c))},d=(...h)=>{n(),i(t.rejectionMultiArgs?h:h[0])};n=()=>{for(let h of a)u(h,f);for(let h of t.rejectionEvents)a.includes(h)||u(h,d)};for(let h of a)l(h,f);for(let h of t.rejectionEvents)a.includes(h)||l(h,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=Ai(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Gt(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=wA(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}function Ii(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var vc=class extends Error{remainingPoints;msBeforeNext;consumedPoints;isFirstInDuration;constructor(e="Rate limit exceeded",t){super(e),this.name="RateLimitError",this.remainingPoints=t.remainingPoints,this.msBeforeNext=t.msBeforeNext,this.consumedPoints=t.consumedPoints,this.isFirstInDuration=t.isFirstInDuration}},Ec=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}},Wn=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};function bA(r){return r.reason}async function kr(r,e,t){if(e==null)return r;let n=t?.translateError??bA;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var Sc=class{deferred;signal;constructor(e){this.signal=e,this.deferred=le(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new mt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function xA(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ac=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=xA(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new mt),this.cleanup())}async join(e={}){let t=new Sc(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await kr(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var Wt=class extends De{concurrency;maxSize;queue;pending;sort;paused;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.paused=!1,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=Ii(this.emitEmpty.bind(this),1),this.emitIdle=Ii(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}pause(){this.paused=!0}resume(){this.paused&&(this.paused=!1,this.tryToStartAnother())}tryToStartAnother(){if(this.paused)return!1;if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Ec;let n=new Ac(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("completed",{detail:o}),this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new mt)}),this.clear()}async onEmpty(e){this.size!==0&&await Gt(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await Gt(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Gt(this,"idle",e)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=es({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new mt("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var ts=class{movingAverage;variance;deviation;forecast;timeSpan;previousTime;constructor(e){this.timeSpan=e,this.movingAverage=0,this.variance=0,this.deviation=0,this.forecast=0}alpha(e,t){return 1-Math.exp(-(e-t)/this.timeSpan)}push(e,t=Date.now()){if(this.previousTime!=null){let n=this.alpha(t,this.previousTime),o=e-this.movingAverage,s=n*o;this.movingAverage=n*e+(1-n)*this.movingAverage,this.variance=(1-n)*(this.variance+o*s),this.deviation=Math.sqrt(this.variance),this.forecast=this.movingAverage+n*o}else this.movingAverage=e;this.previousTime=t}};var vA=1.2,EA=2,SA=5e3,AA=6e4,IA=5e3,Ic=class{success;failure;next;metric;timeoutMultiplier;failureMultiplier;minTimeout;maxTimeout;constructor(e={}){let t=e.interval??IA;this.success=new ts(t),this.failure=new ts(t),this.next=new ts(t),this.failureMultiplier=e.failureMultiplier??EA,this.timeoutMultiplier=e.timeoutMultiplier??vA,this.minTimeout=e.minTimeout??SA,this.maxTimeout=e.maxTimeout??AA,e.metricName!=null&&(this.metric=e.metrics?.registerMetricGroup(e.metricName))}getTimeoutSignal(e={}){let t=Math.round(this.next.movingAverage*(e.timeoutFactor??this.timeoutMultiplier));t<this.minTimeout&&(t=this.minTimeout),t>this.maxTimeout&&(t=this.maxTimeout);let n=AbortSignal.timeout(t),o=me([e.signal,n]);return o.start=Date.now(),o.timeout=t,o}cleanUp(e){let t=Date.now()-e.start;e.aborted?(this.failure.push(t),this.next.push(t*this.failureMultiplier),this.metric?.update({failureMovingAverage:this.failure.movingAverage,failureDeviation:this.failure.deviation,failureForecast:this.failure.forecast,failureVariance:this.failure.variance,failure:t})):(this.success.push(t),this.next.push(t),this.metric?.update({successMovingAverage:this.success.movingAverage,successDeviation:this.success.deviation,successForecast:this.success.forecast,successVariance:this.success.variance,success:t}))}};var qe=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},Pr=class extends Error{static name="ValidationError";name="ValidationError"},Cc=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},_c=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function rp(r){return e=>B(e,r)}function np(r){return e=>T(e,r)}function rs(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function jn(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function bw(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=T(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=jn(n);return ye([t,o],t.length+o.length)}function xw(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ge.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=jn(n);return ye([t,o],t.length+o.length)}function op(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=B(e,"base32"),o=rs(t);return`${n}:${o}`}var sp=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new qe("Invalid byte value in IP address");e[n]=o}),e},vw=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=at(t[n]),i;s&&(i=sp(t[n]),t[n]=B(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,B(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new qe("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Ew=function(r){if(r.byteLength!==4)throw new qe("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},Sw=function(r){if(r.byteLength!==16)throw new qe("IPv6 address was incorrect length");let e=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new qe(`Invalid IPv6 address "${t}"`)}};function Aw(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new qe(`Invalid IPv6 address "${r}"`)}}var tp=Object.values(An).map(r=>r.decoder),CA=(function(){let r=tp[0].or(tp[1]);return tp.slice(2).forEach(e=>r=r.or(e)),r})();function Iw(r){return CA.decode(r)}function Cw(r){return e=>r.encoder.encode(e)}function _A(r){if(parseInt(r).toString()!==r)throw new Pr("Value must be an integer")}function TA(r){if(r<0)throw new Pr("Value must be a positive integer, or zero")}function kA(r){return e=>{if(e>r)throw new Pr(`Value must be smaller than or equal to ${r}`)}}function PA(...r){return e=>{for(let t of r)t(e)}}var Ci=PA(_A,TA,kA(65535));var Re=-1,ip=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new _c(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Dr=new ip,zA=[{code:4,name:"ip4",size:32,valueToBytes:sp,bytesToValue:Ew,validate:r=>{if(!at(r))throw new Pr(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:jn,bytesToValue:rs,validate:Ci},{code:273,name:"udp",size:16,valueToBytes:jn,bytesToValue:rs,validate:Ci},{code:33,name:"dccp",size:16,valueToBytes:jn,bytesToValue:rs,validate:Ci},{code:41,name:"ip6",size:128,valueToBytes:vw,bytesToValue:Sw,stringToValue:Aw,validate:r=>{if(!Xo(r))throw new Pr(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:Re},{code:43,name:"ipcidr",size:8,bytesToValue:rp("base10"),valueToBytes:np("base10")},{code:53,name:"dns",size:Re},{code:54,name:"dns4",size:Re},{code:55,name:"dns6",size:Re},{code:56,name:"dnsaddr",size:Re},{code:132,name:"sctp",size:16,valueToBytes:jn,bytesToValue:rs,validate:Ci},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:Re,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:Re,bytesToValue:rp("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?np("base58btc")(r):V.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:op,valueToBytes:bw},{code:445,name:"onion3",size:296,bytesToValue:op,valueToBytes:xw},{code:446,name:"garlic64",size:Re},{code:447,name:"garlic32",size:Re},{code:448,name:"tls"},{code:449,name:"sni",size:Re},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:Re,bytesToValue:Cw(qs),valueToBytes:Iw},{code:480,name:"http"},{code:481,name:"http-path",size:Re,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:Re}];zA.forEach(r=>{Dr.addProtocol(r)});function _w(r){let e=[],t=0;for(;t<r.length;){let n=fr(r,t),o=Dr.getProtocol(n),s=be(n),i=GA(o,r,t+s),a=0;i>0&&o.size===Re&&(a=be(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??B(f)}e.push(l),t+=c}return e}function Tw(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=Dr.getProtocol(n.code),s=be(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??T(n.value),a=i.byteLength,o.size===Re&&(c=be(a)));let l=new Uint8Array(s+c+a),u=0;_r(n.code,l,u),u+=s,i!=null&&(o.size===Re&&(_r(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return ye(t,e)}function kw(r){if(r.charAt(0)!=="/")throw new qe('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Dr.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new qe(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new qe(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new qe("Incomplete multiaddr");return e}function Pw(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=Dr.getProtocol(e.code);if(t==null)throw new qe(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function GA(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:fr(e,t)}var WA=Symbol.for("nodejs.util.inspect.custom"),gp=Symbol.for("@multiformats/multiaddr");function jA(r){if(r==null&&(r="/"),un(r))return r.getComponents();if(r instanceof Uint8Array)return _w(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),kw(r);if(Array.isArray(r))return r;throw new qe("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Dc=class r{[gp]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=jA(e),t.validate!==!1&&YA(this)}get bytes(){return this.#r==null&&(this.#r=Tw(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=Pw(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Cc(`Address ${this.toString()} does not contain subaddress: ${t}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}equals(e){return W(this.bytes,e.bytes)}[WA](){return`Multiaddr(${this.toString()})`}};function YA(r){r.getComponents().forEach(e=>{let t=Dr.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function un(r){return!!r?.[gp]}function oe(r){return new Dc(r)}var Lc=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Bw(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new Lc(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new Lc(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var yp=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=le(),this.haveNext=le()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=le(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=le(),await Bw(this.readNext.promise,t?.signal,t)}};function Dw(){return new yp}function ZA(r){return r[Symbol.asyncIterator]!=null}async function XA(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*JA(r){let e=new AbortController,t=Dw();XA(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*QA(r){for(let e of r)yield*e}function eI(...r){let e=[];for(let t of r)ZA(t)||e.push(t);return e.length===r.length?QA(e):JA(r)}var kt=eI;var rI=4194304,Nc=class extends Error{static name="UnwrappedError";name="UnwrappedError"},bp=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},xp=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},vp=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function nI(r){return typeof r?.closeRead=="function"}function oI(r){return typeof r?.close=="function"}function wp(r){return nI(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:oI(r)?r.status!=="open":!1}function sI(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Ep(r,e){let t=e?.maxBufferSize??rI,n=new ae,o,s=!1;if(!sI(r))throw new _("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>t){let f=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${f} > ${t}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let l={readBuffer:n,async read(u){if(s===!0)throw new Nc("Stream was unwrapped");if(wp(r)){if(u?.bytes==null)return null;if(n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new Wn(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let f=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=f){o.resolve();break}if(await kr(o.promise,u?.signal),wp(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let d=u?.bytes??n.byteLength;if(n.byteLength<d){if(wp(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,d),new Wn(`Unexpected EOF - stream closed while reading ${n.byteLength}/${d} bytes`);return l.read(u)}let h=n.sublist(0,d);return n.consume(d),h},async write(u,f){if(s===!0)throw new Nc("Stream was unwrapped");r.send(u)||await Gt(r,"drain",{signal:f?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.push(n))),r}};return l}function Rc(r,e={}){let t=Ep(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=be(e.maxDataLength));let n=e?.lengthDecoder??fr,o=e?.lengthEncoder??nn;return{async read(i){let a=-1,c=new ae;for(;;){let u=await t.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(f){if(f instanceof RangeError)continue;throw f}if(a<0)throw new bp("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new vp(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new xp(`Message length too long - ${a} > ${e.maxDataLength}`);let l=await t.read({...i,bytes:a});if(l==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new Wn(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(l.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",l.byteLength,a),new Wn(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new ae(o(i.byteLength),i),a)},async writeV(i,a){let c=new ae(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}var iI=["string","number","bigint","symbol"],aI=["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 Lw(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(iI.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(cI(r))return"Buffer";let t=lI(r);return t||"Object"}function cI(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function lI(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(aI.includes(e))return e}var p=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}};p.uint=new p(0,"uint",!0);p.negint=new p(1,"negint",!0);p.bytes=new p(2,"bytes",!0);p.string=new p(3,"string",!0);p.array=new p(4,"array",!1);p.map=new p(5,"map",!1);p.tag=new p(6,"tag",!1);p.float=new p(7,"float",!0);p.false=new p(7,"false",!0);p.true=new p(7,"true",!0);p.null=new p(7,"null",!0);p.undefined=new p(7,"undefined",!0);p.break=new p(7,"break",!0);var I=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 as=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",uI=new TextDecoder,fI=new TextEncoder;function Oc(r){return as&&globalThis.Buffer.isBuffer(r)}function Bi(r){return r instanceof Uint8Array?Oc(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Mw=as?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):Rw(r,e,t):(r,e,t)=>t-e>64?uI.decode(r.subarray(e,t)):Rw(r,e,t),Mc=as?r=>r.length>64?globalThis.Buffer.from(r):Nw(r):r=>r.length>64?fI.encode(r):Nw(r),pr=r=>Uint8Array.from(r),cs=as?(r,e,t)=>Oc(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Uw=as?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Bi(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},Fw=as?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function $w(r,e){if(Oc(r)&&Oc(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 Nw(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 Rw(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,l,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],l=r[e+3],(a&192)===128&&(c&192)===128&&(l&192)===128&&(u=(o&15)<<18|(a&63)<<12|(c&63)<<6|l&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 Sp(n)}var Ow=4096;function Sp(r){let e=r.length;if(e<=Ow)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Ow));return t}var dI=256,Di=class{constructor(e=dI){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=Fw(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=cs(n,0,this.cursor)}else t=Uw(this.chunks,this.cursor);return e&&this.reset(),t}};var F="CBOR decode error:",Lr="CBOR encode error:",Li=[];Li[23]=1;Li[24]=2;Li[25]=3;Li[26]=5;Li[27]=9;function Nr(r,e,t){if(r.length-e<t)throw new Error(`${F} not enough data for type`)}var Oe=[24,256,65536,4294967296,BigInt("18446744073709551616")];function bt(r,e,t){Nr(r,e,1);let n=r[e];if(t.strict===!0&&n<Oe[0])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function xt(r,e,t){Nr(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<Oe[1])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function vt(r,e,t){Nr(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<Oe[2])throw new Error(`${F} integer encoded in more bytes than necessary (strict decode)`);return n}function Et(r,e,t){Nr(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<Oe[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 Vw(r,e,t,n){return new I(p.uint,bt(r,e+1,n),2)}function Kw(r,e,t,n){return new I(p.uint,xt(r,e+1,n),3)}function Hw(r,e,t,n){return new I(p.uint,vt(r,e+1,n),5)}function qw(r,e,t,n){return new I(p.uint,Et(r,e+1,n),9)}function Pt(r,e){return ze(r,0,e.value)}function ze(r,e,t){if(t<Oe[0]){let n=Number(t);r.push([e|n])}else if(t<Oe[1]){let n=Number(t);r.push([e|24,n])}else if(t<Oe[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<Oe[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<Oe[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`)}}Pt.encodedSize=function(e){return ze.encodedSize(e.value)};ze.encodedSize=function(e){return e<Oe[0]?1:e<Oe[1]?2:e<Oe[2]?3:e<Oe[3]?5:9};Pt.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function zw(r,e,t,n){return new I(p.negint,-1-bt(r,e+1,n),2)}function Gw(r,e,t,n){return new I(p.negint,-1-xt(r,e+1,n),3)}function Ww(r,e,t,n){return new I(p.negint,-1-vt(r,e+1,n),5)}var Ap=BigInt(-1),jw=BigInt(1);function Yw(r,e,t,n){let o=Et(r,e+1,n);if(typeof o!="bigint"){let s=-1-o;if(s>=Number.MIN_SAFE_INTEGER)return new I(p.negint,s,9)}if(n.allowBigInt!==!0)throw new Error(`${F} integers outside of the safe integer range are not supported`);return new I(p.negint,Ap-BigInt(o),9)}function Uc(r,e){let t=e.value,n=typeof t=="bigint"?t*Ap-jw:t*-1-1;ze(r,e.type.majorEncoded,n)}Uc.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Ap-jw:t*-1-1;return n<Oe[0]?1:n<Oe[1]?2:n<Oe[2]?3:n<Oe[3]?5:9};Uc.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function Ni(r,e,t,n){Nr(r,e,t+n);let o=cs(r,e+t,e+t+n);return new I(p.bytes,o,t+n)}function Zw(r,e,t,n){return Ni(r,e,1,t)}function Xw(r,e,t,n){return Ni(r,e,2,bt(r,e+1,n))}function Jw(r,e,t,n){return Ni(r,e,3,xt(r,e+1,n))}function Qw(r,e,t,n){return Ni(r,e,5,vt(r,e+1,n))}function eb(r,e,t,n){let o=Et(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer bytes lengths not supported`);return Ni(r,e,9,o)}function Fc(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===p.string?Mc(r.value):r.value),r.encodedBytes}function ls(r,e){let t=Fc(e);ze(r,e.type.majorEncoded,t.length),r.push(t)}ls.encodedSize=function(e){let t=Fc(e);return ze.encodedSize(t.length)+t.length};ls.compareTokens=function(e,t){return pI(Fc(e),Fc(t))};function pI(r,e){return r.length<e.length?-1:r.length>e.length?1:$w(r,e)}function Ri(r,e,t,n,o){let s=t+n;Nr(r,e,s);let i=new I(p.string,Mw(r,e+t,e+s),s);return o.retainStringBytes===!0&&(i.byteValue=cs(r,e+t,e+s)),i}function tb(r,e,t,n){return Ri(r,e,1,t,n)}function rb(r,e,t,n){return Ri(r,e,2,bt(r,e+1,n),n)}function nb(r,e,t,n){return Ri(r,e,3,xt(r,e+1,n),n)}function ob(r,e,t,n){return Ri(r,e,5,vt(r,e+1,n),n)}function sb(r,e,t,n){let o=Et(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer string lengths not supported`);return Ri(r,e,9,o,n)}var ib=ls;function us(r,e,t,n){return new I(p.array,n,t)}function ab(r,e,t,n){return us(r,e,1,t)}function cb(r,e,t,n){return us(r,e,2,bt(r,e+1,n))}function lb(r,e,t,n){return us(r,e,3,xt(r,e+1,n))}function ub(r,e,t,n){return us(r,e,5,vt(r,e+1,n))}function fb(r,e,t,n){let o=Et(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer array lengths not supported`);return us(r,e,9,o)}function db(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return us(r,e,1,1/0)}function $c(r,e){ze(r,p.array.majorEncoded,e.value)}$c.compareTokens=Pt.compareTokens;$c.encodedSize=function(e){return ze.encodedSize(e.value)};function fs(r,e,t,n){return new I(p.map,n,t)}function hb(r,e,t,n){return fs(r,e,1,t)}function pb(r,e,t,n){return fs(r,e,2,bt(r,e+1,n))}function mb(r,e,t,n){return fs(r,e,3,xt(r,e+1,n))}function gb(r,e,t,n){return fs(r,e,5,vt(r,e+1,n))}function yb(r,e,t,n){let o=Et(r,e+1,n);if(typeof o=="bigint")throw new Error(`${F} 64-bit integer map lengths not supported`);return fs(r,e,9,o)}function wb(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return fs(r,e,1,1/0)}function Vc(r,e){ze(r,p.map.majorEncoded,e.value)}Vc.compareTokens=Pt.compareTokens;Vc.encodedSize=function(e){return ze.encodedSize(e.value)};function bb(r,e,t,n){return new I(p.tag,t,1)}function xb(r,e,t,n){return new I(p.tag,bt(r,e+1,n),2)}function vb(r,e,t,n){return new I(p.tag,xt(r,e+1,n),3)}function Eb(r,e,t,n){return new I(p.tag,vt(r,e+1,n),5)}function Sb(r,e,t,n){return new I(p.tag,Et(r,e+1,n),9)}function Kc(r,e){ze(r,p.tag.majorEncoded,e.value)}Kc.compareTokens=Pt.compareTokens;Kc.encodedSize=function(e){return ze.encodedSize(e.value)};var xI=20,vI=21,EI=22,SI=23;function Ab(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${F} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new I(p.null,null,1):new I(p.undefined,void 0,1)}function Ib(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${F} indefinite length items not allowed`);return new I(p.break,void 0,1)}function Ip(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 I(p.float,r,e)}function Cb(r,e,t,n){return Ip(Cp(r,e+1),3,n)}function _b(r,e,t,n){return Ip(_p(r,e+1),5,n)}function Tb(r,e,t,n){return Ip(Db(r,e+1),9,n)}function Hc(r,e,t){let n=e.value;if(n===!1)r.push([p.float.majorEncoded|xI]);else if(n===!0)r.push([p.float.majorEncoded|vI]);else if(n===null)r.push([p.float.majorEncoded|EI]);else if(n===void 0)r.push([p.float.majorEncoded|SI]);else{let o,s=!1;(!t||t.float64!==!0)&&(Pb(n),o=Cp(jt,1),n===o||Number.isNaN(n)?(jt[0]=249,r.push(jt.slice(0,3)),s=!0):(Bb(n),o=_p(jt,1),n===o&&(jt[0]=250,r.push(jt.slice(0,5)),s=!0))),s||(AI(n),o=Db(jt,1),jt[0]=251,r.push(jt.slice(0,9)))}}Hc.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){Pb(n);let o=Cp(jt,1);if(n===o||Number.isNaN(n))return 3;if(Bb(n),o=_p(jt,1),n===o)return 5}return 9};var kb=new ArrayBuffer(9),Bt=new DataView(kb,1),jt=new Uint8Array(kb,0);function Pb(r){if(r===1/0)Bt.setUint16(0,31744,!1);else if(r===-1/0)Bt.setUint16(0,64512,!1);else if(Number.isNaN(r))Bt.setUint16(0,32256,!1);else{Bt.setFloat32(0,r);let e=Bt.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)Bt.setUint16(0,31744,!1);else if(t===0)Bt.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?Bt.setUint16(0,0):o<-14?Bt.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):Bt.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Cp(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 Bb(r){Bt.setFloat32(0,r,!1)}function _p(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 AI(r){Bt.setFloat64(0,r,!1)}function Db(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)}Hc.compareTokens=Pt.compareTokens;function ie(r,e,t){throw new Error(`${F} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function qc(r){return()=>{throw new Error(`${F} ${r}`)}}var D=[];for(let r=0;r<=23;r++)D[r]=ie;D[24]=Vw;D[25]=Kw;D[26]=Hw;D[27]=qw;D[28]=ie;D[29]=ie;D[30]=ie;D[31]=ie;for(let r=32;r<=55;r++)D[r]=ie;D[56]=zw;D[57]=Gw;D[58]=Ww;D[59]=Yw;D[60]=ie;D[61]=ie;D[62]=ie;D[63]=ie;for(let r=64;r<=87;r++)D[r]=Zw;D[88]=Xw;D[89]=Jw;D[90]=Qw;D[91]=eb;D[92]=ie;D[93]=ie;D[94]=ie;D[95]=qc("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)D[r]=tb;D[120]=rb;D[121]=nb;D[122]=ob;D[123]=sb;D[124]=ie;D[125]=ie;D[126]=ie;D[127]=qc("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)D[r]=ab;D[152]=cb;D[153]=lb;D[154]=ub;D[155]=fb;D[156]=ie;D[157]=ie;D[158]=ie;D[159]=db;for(let r=160;r<=183;r++)D[r]=hb;D[184]=pb;D[185]=mb;D[186]=gb;D[187]=yb;D[188]=ie;D[189]=ie;D[190]=ie;D[191]=wb;for(let r=192;r<=215;r++)D[r]=bb;D[216]=xb;D[217]=vb;D[218]=Eb;D[219]=Sb;D[220]=ie;D[221]=ie;D[222]=ie;D[223]=ie;for(let r=224;r<=243;r++)D[r]=qc("simple values are not supported");D[244]=ie;D[245]=ie;D[246]=ie;D[247]=Ab;D[248]=qc("simple values are not supported");D[249]=Cb;D[250]=_b;D[251]=Tb;D[252]=ie;D[253]=ie;D[254]=ie;D[255]=Ib;var Yt=[];for(let r=0;r<24;r++)Yt[r]=new I(p.uint,r,1);for(let r=-1;r>=-24;r--)Yt[31-r]=new I(p.negint,r,1);Yt[64]=new I(p.bytes,new Uint8Array(0),1);Yt[96]=new I(p.string,"",1);Yt[128]=new I(p.array,0,1);Yt[160]=new I(p.map,0,1);Yt[244]=new I(p.false,!1,1);Yt[245]=new I(p.true,!0,1);Yt[246]=new I(p.null,null,1);function Lb(r){switch(r.type){case p.false:return pr([244]);case p.true:return pr([245]);case p.null:return pr([246]);case p.bytes:return r.value.length?void 0:pr([64]);case p.string:return r.value===""?pr([96]):void 0;case p.array:return r.value===0?pr([128]):void 0;case p.map:return r.value===0?pr([160]):void 0;case p.uint:return r.value<24?pr([Number(r.value)]):void 0;case p.negint:if(r.value>=-24)return pr([31-Number(r.value)])}}var CI={float64:!1,mapSorter:kI,quickEncodeToken:Lb};function _I(){let r=[];return r[p.uint.major]=Pt,r[p.negint.major]=Uc,r[p.bytes.major]=ls,r[p.string.major]=ib,r[p.array.major]=$c,r[p.map.major]=Vc,r[p.tag.major]=Kc,r[p.float.major]=Hc,r}var Nb=_I(),Tp=new Di,Gc=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(`${Lr} object contains circular references`);return new r(t,e)}},fn={null:new I(p.null,null),undefined:new I(p.undefined,void 0),true:new I(p.true,!0),false:new I(p.false,!1),emptyArray:new I(p.array,0),emptyMap:new I(p.map,0)},dn={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new I(p.float,r):r>=0?new I(p.uint,r):new I(p.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new I(p.uint,r):new I(p.negint,r)},Uint8Array(r,e,t,n){return new I(p.bytes,r)},string(r,e,t,n){return new I(p.string,r)},boolean(r,e,t,n){return r?fn.true:fn.false},null(r,e,t,n){return fn.null},undefined(r,e,t,n){return fn.undefined},ArrayBuffer(r,e,t,n){return new I(p.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new I(p.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[fn.emptyArray,new I(p.break)]:fn.emptyArray;n=Gc.createCheck(n,r);let o=[],s=0;for(let i of r)o[s++]=zc(i,t,n);return t.addBreakTokens?[new I(p.array,r.length),o,new I(p.break)]:[new I(p.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?[fn.emptyMap,new I(p.break)]:fn.emptyMap;n=Gc.createCheck(n,r);let a=[],c=0;for(let l of s)a[c++]=[zc(l,t,n),zc(o?r.get(l):r[l],t,n)];return TI(a,t),t.addBreakTokens?[new I(p.map,i),a,new I(p.break)]:[new I(p.map,i),a]}};dn.Map=dn.Object;dn.Buffer=dn.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))dn[`${r}Array`]=dn.DataView;function zc(r,e={},t){let n=Lw(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||dn[n];if(typeof o=="function"){let i=o(r,n,e,t);if(i!=null)return i}let s=dn[n];if(!s)throw new Error(`${Lr} unsupported type: ${n}`);return s(r,n,e,t)}function TI(r,e){e.mapSorter&&r.sort(e.mapSorter)}function kI(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=Nb[o].compareTokens(t,n);return s===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),s}function Rb(r,e,t,n){if(Array.isArray(e))for(let o of e)Rb(r,o,t,n);else t[e.type.major](r,e,n)}function kp(r,e,t){let n=zc(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 Di(i);if(s(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return Bi(a.chunks[0])}}return Tp.reset(),Rb(Tp,n,e,t),Tp.toBytes(!0)}function hn(r,e){return e=Object.assign({},CI,e),kp(r,Nb,e)}var PI={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Wc=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=Yt[e];if(t===void 0){let n=D[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}},Oi=Symbol.for("DONE"),jc=Symbol.for("BREAK");function BI(r,e,t){let n=[];for(let o=0;o<r.value;o++){let s=ds(e,t);if(s===jc){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed array`)}if(s===Oi)throw new Error(`${F} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=s}return n}function DI(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=ds(e,t);if(a===jc){if(r.value===1/0)break;throw new Error(`${F} got unexpected break to lengthed map`)}if(a===Oi)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=ds(e,t);if(c===Oi)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 ds(r,e){if(r.done())return Oi;let t=r.next();if(t.type===p.break)return jc;if(t.type.terminal)return t.value;if(t.type===p.array)return BI(t,r,e);if(t.type===p.map)return DI(t,r,e);if(t.type===p.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=ds(r,e);return e.tags[t.value](n)}throw new Error(`${F} tag not supported (${t.value})`)}throw new Error("unsupported")}function Pp(r,e){if(!(r instanceof Uint8Array))throw new Error(`${F} data to decode must be a Uint8Array`);e=Object.assign({},PI,e);let t=e.tokenizer||new Wc(r,e),n=ds(t,e);if(n===Oi)throw new Error(`${F} did not find any content to decode`);if(n===jc)throw new Error(`${F} got unexpected break`);return[n,r.subarray(t.pos())]}function St(r,e){let[t,n]=Pp(r,e);if(n.length>0)throw new Error(`${F} too many terminals, data makes no sense`);return t}var Yc=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},hs=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Zc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Mi=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function Xc(r){return r[Symbol.asyncIterator]!=null}function Ob(r,e){if(r.byteLength>e)throw new hs("Message length too long")}var Qc=r=>{let e=be(r),t=Je(e);return nn(r,t),Qc.bytes=e,t};Qc.bytes=0;function el(r,e){e=e??{};let t=e.lengthEncoder??Qc,n=e?.maxDataLength??4194304;function*o(s){Ob(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return Xc(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}el.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Qc,n=e?.maxDataLength??4194304;return Ob(r,n),new ae(t(r.byteLength),r)};var Xn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Xn||(Xn={}));var Lp=r=>{let e=fr(r);return Lp.bytes=be(e),e};Lp.bytes=0;function Dp(r,e){let t=new ae,n=Xn.LENGTH,o=-1,s=e?.lengthDecoder??Lp,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Xn.LENGTH)try{if(o=s(t),o<0)throw new Yc("Invalid message length");if(o>a)throw new hs("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Xn.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new Zc("Message length length too long");break}throw l}if(n===Xn.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Xn.LENGTH}}}return Xc(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Mi("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Mi("Unexpected end of input")})()}Dp.fromReader=(r,e)=>{let t=1,n=(async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}})();return Dp(n,{...e??{},onLength:s=>{t=s}})};function NI(r,e){if(typeof r=="string")return RI(r);if(typeof r=="number")return UI(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var tl=NI;function RI(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,o=parseFloat(t),s=n.toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return o*315576e5;case"months":case"month":case"mo":return o*26298e5;case"weeks":case"week":case"w":return o*6048e5;case"days":case"day":case"d":return o*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return o*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return o*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return o*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:throw Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function OI(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function MI(r){let e=Math.abs(r);return e>=315576e5?Jn(r,e,315576e5,"year"):e>=26298e5?Jn(r,e,26298e5,"month"):e>=6048e5?Jn(r,e,6048e5,"week"):e>=864e5?Jn(r,e,864e5,"day"):e>=36e5?Jn(r,e,36e5,"hour"):e>=6e4?Jn(r,e,6e4,"minute"):e>=1e3?Jn(r,e,1e3,"second"):`${r} ms`}function UI(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?MI(r):OI(r)}function Jn(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function Np(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=tl,t.destroy=l,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let f=0;for(let d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u){let f,d=null,h,m;function y(...w){if(!y.enabled)return;let x=y,P=Number(new Date),A=P-(f||P);x.diff=A,x.prev=f,x.curr=P,f=P,w[0]=t.coerce(w[0]),typeof w[0]!="string"&&w.unshift("%O");let N=0;w[0]=w[0].replace(/%([a-zA-Z%])/g,(G,Y)=>{if(G==="%%")return"%";N++;let b=t.formatters[Y];if(typeof b=="function"){let v=w[N];G=b.call(x,v),w.splice(N,1),N--}return G}),t.formatArgs.call(x,w),(x.log||t.log).apply(x,w)}return y.namespace=u,y.useColors=t.useColors(),y.color=t.selectColor(u),y.extend=n,y.destroy=t.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==t.namespaces&&(h=t.namespaces,m=t.enabled(u)),m),set:w=>{d=w}}),typeof t.init=="function"&&t.init(y),y}function n(u,f){let d=t(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(u=d[f].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=t.skips.length;f<d;f++)if(t.skips[f].test(u))return!1;for(f=0,d=t.names.length;f<d;f++)if(t.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack??u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var rl=zI(),FI=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function $I(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function VI(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+tl(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var KI=console.debug??console.log??(()=>{});function HI(r){try{r?rl?.setItem("debug",r):rl?.removeItem("debug")}catch{}}function qI(){let r;try{r=rl?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function zI(){try{return localStorage}catch{}}function GI(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var Mb=Np({formatArgs:VI,save:HI,load:qI,useColors:$I,setupFormatters:GI,colors:FI,storage:rl,log:KI});var X=Mb;X.formatters.b=r=>r==null?"undefined":ee.baseEncode(r);X.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);X.formatters.m=r=>r==null?"undefined":Pe.baseEncode(r);X.formatters.p=r=>r==null?"undefined":r.toString();X.formatters.c=r=>r==null?"undefined":r.toString();X.formatters.k=r=>r==null?"undefined":r.toString();X.formatters.a=r=>r==null?"undefined":r.toString();X.formatters.e=r=>{if(r==null)return"undefined";let e=Ub(r.message),t=Ub(r.stack);return e!=null&&t!=null?t.includes(e)?t:`${e}
|
|
4
|
-
${t}`:t??e??r.toString()};function WI(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function pn(){return{forComponent(r){return ps(r)}}}function ps(r){let e=WI(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>ps(`${r}:${t}`)})}function Ub(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var ms=class extends Wt{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var nl=class extends Wt{constructor(e={}){super({...e,sort:(t,n)=>t.options.priority>n.options.priority?-1:t.options.priority<n.options.priority?1:0})}};var ol=class{memoryStorage;points;duration;blockDuration;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new Rp}consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new vc("Rate limit exceeded",i);return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},Rp=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};var Op=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function tt(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Op({name:e,metrics:t}):n=new Map,n}function jI(r){return r[Symbol.asyncIterator]!=null}function YI(r){if(jI(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ui=YI;function ZI(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var gs=ZI;function XI(r){return r[Symbol.asyncIterator]!=null}function JI(r,e){let t=0;if(XI(r))return(async function*(){for await(let c of r)yield e(c,t++)})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){yield await i;for(let c of n)yield e(c,t++)})();let a=e;return(function*(){yield i;for(let c of n)yield a(c,t++)})()}var sl=JI;function QI(r){return r[Symbol.asyncIterator]!=null}function eC(r,e){return QI(r)?(async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}})():(function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}})()}var il=eC;var At=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function al(r,e,t,n){let o=new At(n?.errorMessage);n?.errorCode!=null&&(o.code=n.errorCode);let s=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(o):new Promise((i,a)=>{function c(){Up(t,"abort",f),Up(r,e,l),Up(r,s,u)}let l=d=>{try{if(n?.filter?.(d)===!1)return}catch(h){c(),a(h);return}c(),i(d)},u=d=>{if(c(),d instanceof Error){a(d);return}a(d.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(o)};Mp(t,"abort",f),Mp(r,e,l),Mp(r,s,u)})}function Mp(r,e,t){r!=null&&(Fb(r)?r.addEventListener(e,t):r.addListener(e,t))}function Up(r,e,t){r!=null&&(Fb(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Fb(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var $b=Symbol.for("nodejs.util.inspect.custom"),tC=114,Fi=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[za]=!0;toString(){return this.string==null&&(this.string=ee.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return V.createV1(tC,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return W(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return W(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[$b](){return`PeerId(${this.toString()})`}},$i=class extends Fi{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Vi=class extends Fi{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},Ki=class extends Fi{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},rC=2336,Hi=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=ke.digest(T(this.url))}[$b](){return`PeerId(${this.url})`}[za]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return V.createV1(rC,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=B(e)),e.toString()===this.toString())}};var nC=114,Vb=2336;function mr(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Xe(ee.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return Qn(V.parse(r));if(e==null)throw new _('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Xe(e.decode(r))}return ys(t)}function Fp(r){if(r.type==="Ed25519")return new Vi({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new Ki({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new $i({multihash:r.toCID().multihash,publicKey:r});throw new Ot}function Kb(r){return Fp(r.publicKey)}function ys(r){if(sC(r))return new $i({multihash:r});if(oC(r))try{let e=jo(r);if(e.type==="Ed25519")return new Vi({multihash:r,publicKey:e});if(e.type==="secp256k1")return new Ki({multihash:r,publicKey:e})}catch{let t=B(r.digest);return new Hi(new URL(t))}throw new Eo("Supplied PeerID Multihash is invalid")}function Qn(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==nC&&r.code!==Vb)throw new Ua("Supplied PeerID CID is invalid");if(r.code===Vb){let e=B(r.multihash.digest);return new Hi(new URL(e))}return ys(r.multihash)}function oC(r){return r.code===ke.code}function sC(r){return r.code===gt.code}function eo(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}function cl(r){let e=Xe(ee.decode(`z${r}`));return ys(e)}var Dt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),{key:t,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return eo(this.map.entries(),e=>[e[1].key,e[1].value])}forEach(e){this.map.forEach((t,n)=>{e(t.value,t.key,this)})}get(e){return this.map.get(e.toString())?.value}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),{key:e,value:t})}keys(){return eo(this.map.values(),e=>e.key)}values(){return eo(this.map.values(),e=>e.value)}get size(){return this.map.size}};var to=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return eo(this.set.entries(),e=>{let t=cl(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=cl(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return eo(this.set.values(),e=>cl(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var $p=class extends Dt{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Vp(r){let{name:e,metrics:t}=r,n;return t!=null?n=new $p({name:e,metrics:t}):n=new Dt,n}function iC(r){return r[Symbol.asyncIterator]!=null}function aC(r){if(iC(r))return(async()=>{let n=new Uint8Array(0);for await(let o of r)n=ye([n,o],n.length+o.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return ye(e,t)}var Hb=aC;var Hp=vn(zb(),1);function qp(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 zi=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,id:t.id,run:e};if(this.size===0||this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=qp(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}setPriority(e,t){let n=this.#e.findIndex(s=>s.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}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 ro=class extends Hp.default{#e;#t;#r=0;#a;#i;#l=0;#o;#u;#n;#m;#s=0;#f;#c;#g;#b=1n;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:zi,...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.#a=e.intervalCap,this.#i=e.interval,this.#n=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#c=e.autoStart===!1}get#x(){return this.#t||this.#r<this.#a}get#v(){return this.#s<this.#f}#E(){this.#s--,this.#d(),this.emit("next")}#S(){this.#w(),this.#y(),this.#u=void 0}get#A(){let e=Date.now();if(this.#o===void 0){let t=this.#l-e;if(t<0)this.#r=this.#e?this.#s:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#S()},t)),!0}return!1}#d(){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.#c){let e=!this.#A;if(this.#x&&this.#v){let t=this.#n.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#t||this.#o!==void 0||(this.#o=setInterval(()=>{this.#w()},this.#i),this.#l=Date.now()+this.#i)}#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.#d(););}get concurrency(){return this.#f}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.#f=e,this.#h()}async#I(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){this.#n.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#b++).toString(),t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#n.enqueue(async()=>{this.#s++;try{t.signal?.throwIfAborted(),this.#r++;let s=e({signal:t.signal});t.timeout&&(s=Ai(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#I(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof Si&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#E()}},t),this.emit("add"),this.#d()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#c?(this.#c=!1,this.#h(),this):this}pause(){this.#c=!0}clear(){this.#n=new this.#m}async onEmpty(){this.#n.size!==0&&await this.#p("empty")}async onSizeLessThan(e){this.#n.size<e||await this.#p("next",()=>this.#n.size<e)}async onIdle(){this.#s===0&&this.#n.size===0||await this.#p("idle")}async#p(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.#c}};function ul(r){let e=[It.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var zp=60;function fl(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:It[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:It[e.type],TTL:e.TTL??e.ttl??zp,data:e.data instanceof Uint8Array?B(e.data):e.data}))}}var uC=4;function Gp(r,e={}){let t=new ro({concurrency:e.queryConcurrency??uC});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),ul(o.types).forEach(a=>{s.append("type",It[a])}),o.onProgress?.(new Z("dns:query",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=fl(await a.json());return o.onProgress?.(new Z("dns:response",c)),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Gb(){return[Gp("https://cloudflare-dns.com/dns-query"),Gp("https://dns.google/resolve")]}var Yb=vn(jb(),1);var Wp=class{lru;constructor(e){this.lru=(0,Yb.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 fl({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:It[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??zp)*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 Zb(r){return new Wp(r)}var fC=1e3,dl=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Zb(e.cacheSize??fC),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["."]=Gb())}async query(e,t={}){let n=ul(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new Z("dns:cache",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 l=await c(e,{...t,types:n});for(let u of l.Answer)this.cache.add(e,u);return l}catch(l){a.push(l),t.onProgress?.(new Z("dns:error",l))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var It;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(It||(It={}));function hl(r={}){return new dl(r)}var Rr="/",Xb=new TextEncoder().encode(Rr),pl=Xb[0],xe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=T(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]!==pl)throw new Error("Invalid key")}toString(e="utf8"){return B(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=Xb),this._buf[0]!==pl){let e=new Uint8Array(this._buf.byteLength+1);e.fill(pl,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===pl;)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 dC(this.baseNamespace())}name(){return hC(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(),...pC(e.map(t=>t.namespaces()))])}};function dC(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function hC(r){let e=r.split(":");return e[e.length-1]}function pC(r){return[].concat(...r)}function ml({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*mC(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],s=V.asCID(n);s!=null?yield[o.join("/"),s]:typeof n=="object"&&(yield*jp(n,o))}else{let t=V.asCID(e);t!=null?yield[r.join("/"),t]:yield*jp(e,r)}}function*jp(r,e){if(r==null||r instanceof Uint8Array)return;let t=V.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let s=[...e,n];yield*mC(s,o)}}function*gC(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&V.asCID(n)==null&&(yield*Yp(n,o))}else yield*Yp(e,r)}function*Yp(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let o=[...e,t];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&V.asCID(n)==null&&(yield*gC(o,n))}}function yC(r,e){let t=r;for(let[n,o]of e.entries()){if(t=t[o],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(i=>`[${JSON.stringify(i)}]`).join("")}`);let s=V.asCID(t);if(s!=null)return{value:s,remaining:e.slice(n+1).join("/")}}return{value:t}}var Zp=class{cid;bytes;value;asBlock;constructor({cid:e,bytes:t,value:n}){if(e==null||t==null||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=t,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:ml(),bytes:ml(),value:ml(),asBlock:ml()})}links(){return jp(this.value,[])}tree(){return Yp(this.value,[])}get(e="/"){return yC(this.value,e.split("/").filter(Boolean))}};function Jb({bytes:r,cid:e,value:t,codec:n}){let o=t!==void 0?t:n?.decode(r);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Zp({cid:e,bytes:r,value:o})}var tx="/pin/",Qb="/pinned-block/",Xp=cr,ex=1;function gl(r){return r.version===0&&(r=r.toV1()),new xe(`${tx}${r.toString(Xp)}`)}var yl=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=gl(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 Wt({concurrency:ex});for await(let a of this.#e(e,s,{...t,depth:o}))await this.#t(a,c=>c.pinnedBy.find(l=>W(l,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,hn(i),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=await this.getCodec(e.code),s=await Hb(this.blockstore.get(e,n)),i=Jb({bytes:s,cid:e,codec:o});yield e;for(let[,a]of i.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#t(e,t,n){let o=new xe(`${Qb}${Xp.encode(e.multihash.bytes)}`),s={pinCount:0,pinnedBy:[]};try{s=St(await this.datastore.get(o,n))}catch(a){if(a.name!=="NotFoundError")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,hn(s),n),n.onProgress?.(new Z("helia:pin:add",e))}}async*rm(e,t={}){let n=gl(e),o=await this.datastore.get(n,t),s=St(o);await this.datastore.delete(n,t);let i=new Wt({concurrency:ex});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(l=>W(l,e.bytes)),!0),{...t,depth:s.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:tx+(e.cid!=null?`${e.cid.toString(cr)}`:"")},e)){let o=V.parse(t.toString().substring(5),cr),s=St(n);yield{cid:o,...s}}}async isPinned(e,t={}){let n=new xe(`${Qb}${Xp.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=gl(e),o=await this.datastore.get(n,t);return St(o)}async setMetadata(e,t,n){let o=gl(e),s=await this.datastore.get(o,n),i=St(s);i.metadata=t??{},await this.datastore.put(o,hn(i),n)}};var Jp=1,Qp=5;var Gi=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},mn=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},Wi=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},ji=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}},em=class extends Error{static name="InvalidCodecError";constructor(e="Invalid codec"){super(e),this.name="InvalidCodecError"}};var wC=5,wl=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??wC,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await ir(...this.routers)}async stop(){await ar(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new mn("No content routers available");let n=new ms({concurrency:this.providerLookupConcurrency});for await(let o of kt(n.toGenerator(),...no(this.routers,"findProviders").map(s=>s.findProviders(e,t))))if(o!=null){if(o.multiaddrs.length===0){if(n.find(o.id)!=null)continue;n.add(async()=>{try{let s=await this.findPeer(o.id,t);return s.multiaddrs.length===0?null:s}catch(s){return this.log.error("could not load multiaddrs for peer %p",o.id,s),null}},{peerId:o.id,signal:t.signal}).catch(s=>{this.log.error("could not load multiaddrs for peer %p",o.id,s)})}yield o}}async provide(e,t={}){if(this.routers.length===0)throw new mn("No content routers available");await Promise.all(no(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(no(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(no(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(no(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new mn("No peer routers available");let n=this,o=kt(...no(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 Rt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new mn("No peer routers available");for await(let n of kt(...no(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function no(r,e){return r.filter(t=>t[e]!=null)}var bl=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var xl=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function rx(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new xl(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new xl(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var vl=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new At)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function bC(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var El=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=bC(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new At),this.cleanup())}async join(e={}){let t=new vl(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await rx(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function tm(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Yi=class extends De{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=tm(this.emitEmpty.bind(this),1),this.emitIdle=tm(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new bl;let n=new El(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new At)}),this.clear()}async onEmpty(e){this.size!==0&&await al(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await al(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await al(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=es({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail.result)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new At("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var Sl="lock:worker:request-read",Al="lock:worker:abort-read-request",Il="lock:worker:release-read",Cl="lock:master:grant-read",_l="lock:master:error-read",Tl="lock:worker:request-write",kl="lock:worker:abort-write-request",Pl="lock:worker:release-write",Bl="lock:master:grant-write",Dl="lock:master:error-write",Ll="lock:worker:finalize",Nl="mortice",nx={singleProcess:!1};var rm=(r,e,t,n,o,s,i,a,c)=>l=>{if(l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===o&&r.safeDispatchEvent(t,{detail:{name:u.name,identifier:u.identifier,handler:async()=>{e.postMessage({type:c,name:u.name,identifier:u.identifier}),await new Promise(f=>{let d=h=>{if(h?.data==null)return;let m={type:h.data.type,name:h.data.name,identifier:h.data.identifier};m.type===a&&m.identifier===u.identifier&&(e.removeEventListener("message",d),f())};e.addEventListener("message",d)})},onError:f=>{e.postMessage({type:i,name:u.name,identifier:u.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),u.type===s&&r.safeDispatchEvent(n,{detail:{name:u.name,identifier:u.identifier}}),u.type===Ll&&r.safeDispatchEvent("finalizeRequest",{detail:{name:u.name}})};var ox=(r=10)=>Math.random().toString().substring(2,r+2);var Rl=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(Nl)}readLock(e){return this.sendRequest(Sl,Al,Cl,_l,Il,e)}writeLock(e){return this.sendRequest(Tl,kl,Bl,Dl,Pl,e)}finalize(){this.channel.postMessage({type:Ll,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,s,i){i?.signal?.throwIfAborted();let a=ox();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,l)=>{let u=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};i?.signal?.addEventListener("abort",u,{once:!0});let f=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u),c(()=>{this.channel.postMessage({type:s,identifier:a,name:this.name})})),d.data.type===o)){this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u);let h=new Error;d.data.error!=null&&(h.message=d.data.error.message,h.name=d.data.error.name,h.stack=d.data.error.stack),l(h)}};this.channel.addEventListener("message",f)})}};var sx=r=>{if(r=Object.assign({},nx,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(Nl),n=new De;return t.addEventListener("message",rm(n,t,"requestReadLock","abortReadLockRequest",Sl,Al,_l,Il,Cl)),t.addEventListener("message",rm(n,t,"requestWriteLock","abortWriteLockRequest",Tl,kl,Dl,Pl,Bl)),n}return new Rl(r.name)};var oo=new Map,Zi;function ix(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function xC(r){if(Zi==null&&(Zi=sx(r),!ix(Zi))){let e=Zi;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=oo.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortReadLockRequest",a),s.readLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=oo.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortWriteLockRequest",a),s.writeLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=oo.get(n);o?.finalize()})}return Zi}async function nm(r,e){let t,n,o=new Promise((i,a)=>{t=i,n=a}),s=()=>{n(new At)};return e?.signal?.addEventListener("abort",s,{once:!0}),r.add(async()=>{await new Promise(i=>{t(()=>{e?.signal?.removeEventListener("abort",s),i()})})},{signal:e?.signal}).catch(i=>{n(i)}),o}var ax=(r,e)=>{let t=oo.get(r);if(t!=null)return t;let n=xC(e);if(ix(n))return t=n,oo.set(r,t),t;let o=new Yi({concurrency:1}),s;return t={async readLock(i){if(s!=null)return nm(s,i);s=new Yi({concurrency:e.concurrency,autoStart:!1});let a=s,c=nm(s,i);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{s===a&&(s=null)})}),c},async writeLock(i){return s=null,nm(o,i)},finalize:()=>{oo.delete(r)},queue:o},oo.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var vC={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Xi(r){let e=Object.assign({},vC,r);return ax(e.name,e)}var Ol=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Xi({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ir(this.child),this.started=!0}async stop(){await ar(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async*get(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){t?.signal?.throwIfAborted();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={}){t?.signal?.throwIfAborted();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={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){e?.signal?.throwIfAborted();let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}createSession(e,t){return t?.signal?.throwIfAborted(),this.child.createSession(e,t)}};var om=new xe("/version"),cx=1;async function lx(r){if(!await r.has(om)){await r.put(om,T(`${cx}`));return}let e=await r.get(om),t=B(e);if(parseInt(t,10)!==cx)throw new Error("Unknown datastore version, a datastore migration may be required")}var am={};_e(am,{code:()=>im,decode:()=>BC,decodeOptions:()=>TC,encode:()=>PC,encodeOptions:()=>CC,name:()=>kC,toByteView:()=>fx});var ux=42;function fx(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function EC(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=V.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new I(p.tag,ux),new I(p.bytes,t)]}function SC(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function AC(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}function IC(r){for(let e of r.keys())if(typeof e!="string"||e.length===0)throw new Error("Non-string Map keys are not supported by the IPLD Data Model and cannot be encoded");return null}var sm={float64:!0,typeEncoders:{Map:IC,Object:EC,undefined:SC,number:AC}},CC={...sm,typeEncoders:{...sm.typeEncoders}};function _C(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return V.decode(r.subarray(1))}var Ml={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Ml.tags[ux]=_C;var TC={...Ml,tags:Ml.tags.slice()},kC="dag-cbor",im=113,PC=r=>hn(r,sm),BC=r=>St(fx(r),Ml);var pm={};_e(pm,{code:()=>hm,decode:()=>hx,encode:()=>dx,format:()=>KC,name:()=>VC,parse:()=>qC,stringify:()=>KC});var cm=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===p.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===p.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[p.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)}[p.negint.major](e,t){this[p.uint.major](e,t)}[p.bytes.major](e,t){throw new Error(`${Lr} unsupported type: Uint8Array`)}[p.string.major](e,t){this.prefix(e);let n=Mc(JSON.stringify(t.value));e.push(n.length>32?Bi(n):n)}[p.array.major](e,t){this.prefix(e),this.inRecursive.push({type:p.array,elements:0}),e.push([91])}[p.map.major](e,t){this.prefix(e),this.inRecursive.push({type:p.map,elements:0}),e.push([123])}[p.tag.major](e,t){}[p.float.major](e,t){if(t.type.name==="break"){let i=this.inRecursive.pop();if(i){if(i.type===p.array)e.push([93]);else if(i.type===p.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(`${Lr} 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)}};function DC(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${Lr} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==p.string||n.type!==p.string)throw new Error(`${Lr} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${Lr} unexpected duplicate map keys, this is not supported`)}var LC={addBreakTokens:!0,mapSorter:DC};function lm(r,e){return e=Object.assign({},LC,e),kp(r,new cm,e)}var ws=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 I(p.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 I(p.float,i,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(i)?new I(i>=0?p.uint:p.negint,i,this._pos-e):new I(i>=0?p.uint:p.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 I(p.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,l,u,f;switch(a){case 1:s<128&&(i=s);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(f=(s&31)<<6|c&63,f>127&&(i=f));break;case 3:c=this.data[this._pos+1],l=this.data[this._pos+2],(c&192)===128&&(l&192)===128&&(f=(s&15)<<12|(c&63)<<6|l&63,f>2047&&(f<55296||f>57343)&&(i=f));break;case 4:c=this.data[this._pos+1],l=this.data[this._pos+2],u=this.data[this._pos+3],(c&192)===128&&(l&192)===128&&(u&192)===128&&(f=(s&15)<<18|(c&63)<<12|(l&63)<<6|u&63,f>65535&&f<1114112&&(i=f))}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 I(p.string,Sp(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 I(p.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new I(p.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new I(p.null,null,4);case 102:return this.expect([102,97,108,115,101]),new I(p.false,!1,5);case 116:return this.expect([116,114,117,101]),new I(p.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 I(p.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 I(p.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 I(p.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 I(p.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 um(r,e){return e=Object.assign({tokenizer:new ws(r,e)},e),St(r,e)}function RC(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function OC(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=V.asCID(r);if(!e)return null;let t=e.toString();return[new I(p.map,1/0,1),new I(p.string,"/",1),new I(p.string,t,t.length),new I(p.break,void 0,1)]}function Ul(r){let e=Pe.encode(r).slice(1);return[new I(p.map,1/0,1),new I(p.string,"/",1),new I(p.map,1/0,1),new I(p.string,"bytes",5),new I(p.string,e,e.length),new I(p.break,void 0,1),new I(p.break,void 0,1)]}function Zt(r){return Ul(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function MC(r){return Ul(new Uint8Array(r))}function UC(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function FC(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 $C={typeEncoders:{Object:OC,Buffer:Ul,Uint8Array:Ul,Int8Array:Zt,Uint16Array:Zt,Int16Array:Zt,Uint32Array:Zt,Int32Array:Zt,Float32Array:Zt,Float64Array:Zt,Uint8ClampedArray:Zt,BigInt64Array:Zt,BigUint64Array:Zt,DataView:Zt,ArrayBuffer:MC,undefined:UC,number:FC}},fm=class extends ws{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===p.map){let t=this._next();if(t.type===p.string&&t.value==="/"){let n=this._next();if(n.type===p.string){if(this._next().type!==p.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new I(p.tag,42,0)}if(n.type===p.map){let o=this._next();if(o.type===p.string&&o.value==="bytes"){let s=this._next();if(s.type===p.string){for(let a=0;a<2;a++)if(this._next().type!==p.break)throw new Error("Invalid encoded Bytes form");let i=Pe.decode(`m${s.value}`);return new I(p.bytes,i,s.value.length)}this.tokenBuffer.push(s)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},dm={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};dm.tags[42]=V.parse;var VC="dag-json",hm=297,dx=r=>lm(r,$C),hx=r=>{let e=RC(r),t=Object.assign(dm,{tokenizer:new fm(e,dm)});return um(e,t)},KC=r=>HC.decode(dx(r));var HC=new TextDecoder,qC=r=>hx(zC.encode(r)),zC=new TextEncoder;var xm={};_e(xm,{code:()=>bm,createLink:()=>Sx,createNode:()=>Ex,decode:()=>o_,encode:()=>n_,name:()=>r_,prepare:()=>ym,validate:()=>wm});var GC=new TextDecoder;function mm(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 Fl(r,e){let t;[t,e]=mm(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 px(r,e){let t;return[t,e]=mm(r,e),[t&7,t>>3,e]}function WC(r){let e={},t=r.length,n=0;for(;n<t;){let o,s;if([o,s,n]=px(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]=Fl(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]=Fl(r,n),e.Name=GC.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]=mm(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 mx(r){let e=r.length,t=0,n,o=!1,s;for(;t<e;){let a,c;if([a,c,t]=px(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]=Fl(r,t),n&&(o=!0)}else if(c===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let l;[l,t]=Fl(r,t),n.push(WC(l))}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 yx=new TextEncoder,gx=2**32,jC=2**31;function YC(r,e){let t=e.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");t=Ji(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=yx.encode(r.Name);t-=n.length,e.set(n,t),t=Ji(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=Ji(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function wx(r){let e=XC(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=Ji(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let s=YC(r.Links[o],t.subarray(0,n));n-=s,n=Ji(t,n,s)-1,t[n]=18}return t}function ZC(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+bs(t)}if(typeof r.Name=="string"){let t=yx.encode(r.Name).length;e+=1+t+bs(t)}return typeof r.Tsize=="number"&&(e+=1+bs(r.Tsize)),e}function XC(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+bs(t)}if(r.Links)for(let t of r.Links){let n=ZC(t);e+=1+n+bs(n)}return e}function Ji(r,e,t){e-=bs(t);let n=e;for(;t>=jC;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function bs(r){return r%2===0&&r++,Math.floor((JC(r)+6)/7)}function JC(r){let e=0;return r>=gx&&(r=Math.floor(r/gx),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+QC[r]}var QC=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var e_=["Data","Links"],t_=["Hash","Name","Tsize"],gm=new TextEncoder;function xx(r,e){if(r===e)return 0;let t=r.Name?gm.encode(r.Name):[],n=e.Name?gm.encode(e.Name):[],o=t.length,s=n.length;for(let i=0,a=Math.min(o,s);i<a;++i)if(t[i]!==n[i]){o=t[i],s=n[i];break}return o<s?-1:s<o?1:0}function bx(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function vx(r){if(typeof r.asCID=="object"){let t=V.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=V.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=V.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=V.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function ym(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Data!==void 0)if(typeof r.Data=="string")e.Data=gm.encode(r.Data);else if(r.Data instanceof Uint8Array)e.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))e.Links=r.Links.map(vx),e.Links.sort(xx);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function wm(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!bx(r,e_))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<r.Links.length;e++){let t=r.Links[e];if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!bx(t,t_))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(t.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(t.Hash==null||!t.Hash["/"]||t.Hash["/"]!==t.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(t.Name!==void 0&&typeof t.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(t.Tsize!==void 0){if(typeof t.Tsize!="number"||t.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(t.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&xx(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function Ex(r,e=[]){return ym({Data:r,Links:e})}function Sx(r,e,t){return vx({Hash:t,Name:r,Tsize:e})}function Ax(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var r_="dag-pb",bm=112;function n_(r){wm(r);let e={};return r.Links&&(e.Links=r.Links.map(t=>{let n={};return t.Hash&&(n.Hash=t.Hash.bytes),t.Name!==void 0&&(n.Name=t.Name),t.Tsize!==void 0&&(n.Tsize=t.Tsize),n})),r.Data&&(e.Data=r.Data),wx(e)}function o_(r){let e=Ax(r),t=mx(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let s={};try{s.Hash=V.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}function xs(r){return r?.then!=null}function Ix(r=[],e){let t={[bm]:xm,[zs]:Gs,[im]:am,[hm]:pm,[Dd]:Ya};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let s=e(n);xs(s)?o=await s:o=s,t[o.code]=o}if(o!=null)return o;throw new ji(`Could not load codec for ${n}`)}}function Cx(r=[],e){let t={[gt.code]:gt,[Za.code]:Za,[ke.code]:ke};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let s=e(n);xs(s)?o=await s:o=s,t[o.code]=o}if(o!=null)return o;throw new Wi(`No hasher configured for multihash code 0x${n.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`)}}var Lt=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var Or=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,bytes:o}of e)await this.put(n,o,t),yield n}get(e,t){throw new Error(".get is not implemented")}async*getMany(e,t){for await(let n of e)yield{cid:n,bytes: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 $l=0,Vl=class extends Or{child;constructor(e){super(),this.child=e}put(e,t,n){return e.multihash.code===$l||this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}*get(e,t){if(e.multihash.code===$l){t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new Lt;yield*this.child.get(e,t)}has(e,t){return e.multihash.code===$l?(t?.signal?.throwIfAborted(),!0):this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===$l){t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function s_(r){return r[Symbol.asyncIterator]!=null}function i_(r,e){let t=0;if(s_(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){await i&&(yield o);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){i===!0&&(yield o);for(let c of n)a(c,t++)&&(yield c)})()}var Xt=i_;function a_(r){return r[Symbol.asyncIterator]!=null}function _x(r){return r?.then!=null}function c_(r,e){let t=0;if(a_(r))return(async function*(){for await(let c of r){let l=e(c,t++);_x(l)&&await l,yield c}})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();if(typeof e(o,t++)?.then=="function")return(async function*(){yield o;for(let c of n){let l=e(c,t++);_x(l)&&await l,yield c}})();let a=e;return(function*(){yield o;for(let c of n)a(c,t++),yield c})()}var vm=c_;var Kl=class{child;getHasher;log;logger;components;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Vl(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new Z("blocks:put:duplicate",e)),e):(n.onProgress?.(new Z("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,n))),n.onProgress?.(new Z("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Xt(e,async({cid:s})=>{let i=await this.child.has(s,t);return i&&t.onProgress?.(new Z("blocks:put-many:duplicate",s)),!i}),o=vm(n,async({cid:s})=>{t.onProgress?.(new Z("blocks:put-many:providers:notify",s)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(s,t)))});t.onProgress?.(new Z("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)){let n=await this.getHasher(e.multihash.code);t.onProgress?.(new Z("blocks:get:providers:get",e));let o=await Tx(e,this.components.blockBrokers,n,{...t,log:this.log});t.onProgress?.(new Z("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new Z("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(e,t))),yield o;return}t.onProgress?.(new Z("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new Z("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(vm(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new Z("blocks:get-many:providers:get",n));let s=await Tx(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new Z("blocks:get-many:blockstore:put",n)),await this.child.put(n,s,t),t.onProgress?.(new Z("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new Z("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new Z("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 Z("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Hl=class extends Kl{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await ir(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await ar(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new Em({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},Em=class extends Kl{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let o=me([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:o})}finally{o.clear()}}async*putMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=me([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=me([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=me([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function l_(r){return typeof r.retrieve=="function"}var u_=(r,e)=>{if(e==null)throw new _(`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`);return async t=>{let n,o=e.digest(t);if(xs(o)?n=await o:n=o,!W(n.digest,r.multihash.digest))throw new Eo("Hash of downloaded block did not match multihash from passed CID")}};async function Tx(r,e,t,n){let o=u_(r,t),s=new AbortController,i=me([s.signal,n.signal]);s.signal;let a=[];for(let c of e)l_(c)&&a.push(c);try{return await Promise.any(a.map(async c=>{try{let l=!1,u=await c.retrieve(r,{...n,signal:i,validateFn:async f=>{await o(f),l=!0}});return l||await o(u),u}catch(l){throw n.log.error("could not retrieve verified block for %c",r,l),l}}))}finally{s.abort(),i.clear()}}var ea=class extends De{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=Hn(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=Pe.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let s=le();if(this.requests.set(n,s.promise),this.providers.length===0){let u=!1;this.initialPeerSearchComplete==null&&(u=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.initialPeerSearchComplete,u&&this.log("found initial session peers for %c",e)}let i=!1,a=new Wt({concurrency:this.maxProviders});a.addEventListener("failure",u=>{this.log.error("error querying provider %o, evicting from session",u.detail.job.options.provider,u.detail.error),this.evict(u.detail.job.options.provider)}),a.addEventListener("success",u=>{i=!0,s.resolve(u.detail.result)}),a.addEventListener("idle",()=>{if(i||t.signal?.aborted===!0){this.log.trace("session idle, found block");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let u=0;u<this.minProviders&&this.providers.length!==0;u++){let f=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(f)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),s.resolve(await this.retrieve(e,t))}).catch(u=>{this.log.error("could not find new providers for %c",e,u),s.reject(u)})});let c=u=>{a.add(async()=>this.queryProvider(e,u.detail,t),{provider:u.detail}).catch(f=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,f)})};this.addEventListener("provider",c),Promise.all([...this.providers].map(async u=>a.add(async()=>this.queryProvider(e,u,t),{provider:u}))).catch(u=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,u)});let l=()=>{s.reject(new mt(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",l);try{return await s.promise}finally{this.removeEventListener("provider",c),t.signal?.removeEventListener("abort",l),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let o=le(),s=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;s<t&&this.initialProviders.length>0;){let i=this.initialProviders.pop();if(i==null)break;let a=await this.convertToProvider(i,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",s,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),s++,s===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",s);break}}if(s<this.maxProviders)for await(let i of this.findNewProviders(e,n)){if(s===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(i)&&(this.log("found %d/%d new providers",s,this.maxProviders),this.providers.push(i),this.safeDispatchEvent("provider",{detail:i}),s++,s===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",s);break}}if(this.log("found %d/%d new session peers",s,this.maxProviders),s<t)throw new Gi(`Found ${s} of ${t} ${this.name} providers for ${e}`)}).catch(i=>{this.log.error("error searching routing for potential session peers for %c",e,i.errors??i),o.reject(i)}),o.promise}};var ql=class{libp2p;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??pn(),this.log=this.logger.forComponent("helia"),this.getHasher=Cx(e.hashers,e.loadHasher),this.getCodec=Ix(e.codecs,e.loadCodec),this.dns=e.dns??hl(),this.metrics=e.metrics,this.libp2p=e.libp2p,this.events=new De;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new wl(t,{routers:(e.routers??[]).flatMap(o=>{let s=[o];return o[bo]!=null&&s.push(o[bo]),o[Ao]!=null&&s.push(o[Ao]),s}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Hl(t);this.pins=new yl(e.datastore,n,this.getCodec),this.blockstore=new Ol(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await lx(this.datastore),await ir(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("start",{detail:this}))}async stop(){await ar(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("stop",{detail:this}))}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await Ui(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 Z("helia:gc:deleted",s))}catch(i){n.log.error("Error during gc",i),e.onProgress?.(new Z("helia:gc:error",i))}})()))}finally{t()}this.log("gc finished")}};var f_=[6,53,56,54,55];function kx(r){return Dx("sni",r)?.value}function Px(r){let e=Dx("tcp",r)?.value;return e==null?"":`:${e}`}function Dx(r,e){return e.find(t=>t.name===r)}function Bx(r){return r.some(({code:e})=>e===448)}function Jt(r,e){let t=Lx[r.name];if(t==null)throw new Error(`Can't interpret protocol ${r.name}`);let n=t(r,e);return r.code===41?`[${n}]`:n}var Lx={ip4:(r,e)=>r.value,ip6:(r,e)=>e.length===0?r.value:`[${r.value}]`,tcp:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`tcp://${Jt(t,e)}:${r.value}`},udp:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`udp://${Jt(t,e)}:${r.value}`},dnsaddr:(r,e)=>r.value,dns4:(r,e)=>r.value,dns6:(r,e)=>r.value,dns:(r,e)=>r.value,ipfs:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`${Jt(t,e)}`},p2p:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`${Jt(t,e)}`},http:(r,e)=>{let t=Bx(e),n=kx(e),o=Px(e);if(t&&n!=null)return`https://${n}${o}`;let s=t?"https://":"http://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=Jt(i,e);return a=a?.replace("tcp://",""),`${s}${a}`},"http-path":(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e),o=decodeURIComponent(r.value??"");return`${n}${o}`},tls:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return Jt(t,e)},sni:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return Jt(t,e)},https:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e);return n=n?.replace("tcp://",""),`https://${n}`},ws:(r,e)=>{let t=Bx(e),n=kx(e),o=Px(e);if(t&&n!=null)return`wss://${n}${o}`;let s=t?"wss://":"ws://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=Jt(i,e);return a=a?.replace("tcp://",""),`${s}${a}`},wss:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e);return n=n?.replace("tcp://",""),`wss://${n}`}};function zl(r,e){let n=oe(r).getComponents(),o=n.pop();if(o==null)throw new Error("Unexpected end of multiaddr");let s=Lx[o.name];if(s==null)throw new Error(`No interpreter found for ${o.name}`);let i=s(o,n)??"";return e?.assumeHttp!==!1&&f_.includes(o.code)&&(i=i.replace(/^.*:\/\//,""),o.value==="443"?i=`https://${i}`:i=`http://${i}`),(i.startsWith("http://")||i.startsWith("https://")||i.startsWith("ws://")||i.startsWith("wss://"))&&(i=new URL(i).toString(),i.endsWith("/")&&(i=i.substring(0,i.length-1))),i}var de=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),q=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Nx=r=>({match:e=>r.match(e)===!1?e:!1}),re=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),nt=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),ue=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function he(...r){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var d_=q(421),Rx=he(d_),Wl=q(54),jl=q(55),Yl=q(56),Am=q(53),eF=he(Wl,re(q(421))),tF=he(jl,re(q(421))),rF=he(Yl,re(q(421))),Ox=he(nt(Am,Yl,Wl,jl),re(q(421))),Mx=ue(q(4),re(q(43))),Ux=ue(re(q(42)),q(41),re(q(43))),Im=nt(Mx,Ux),so=nt(Im,Am,Wl,jl,Yl),nF=he(nt(Im,ue(nt(Am,Yl,Wl,jl),re(q(421))))),Cm=he(Mx),_m=he(Ux),oF=he(Im),Tm=ue(so,q(6)),ta=ue(so,q(273)),ra=he(ue(Tm,re(q(421)))),sF=he(ta),km=ue(ta,de(460),re(q(421))),Zl=ue(ta,de(461),re(q(421))),h_=nt(km,Zl),iF=he(km),Fx=he(Zl),Sm=nt(so,Tm,ta,km,Zl),$x=nt(ue(Sm,de(477),re(q(421)))),io=he($x),Vx=nt(ue(Sm,de(478),re(q(421))),ue(Sm,de(448),re(q(449)),de(477),re(q(421)))),na=he(Vx),Kx=ue(ta,de(280),re(q(466)),re(q(466)),re(q(421))),Pm=he(Kx),Hx=ue(Zl,de(465),re(q(466)),re(q(466)),re(q(421))),Bm=he(Hx),Gl=nt($x,Vx,ue(Tm,re(q(421))),ue(h_,re(q(421))),ue(so,re(q(421))),Kx,Hx,q(421)),aF=he(Gl),p_=ue(re(Gl),de(290),Nx(de(281)),re(q(421))),ao=he(p_),m_=nt(ue(Gl,de(290),de(281),re(q(421))),ue(Gl,de(281),re(q(421))),ue(de(281),re(q(421)))),Dm=he(m_),g_=nt(ue(so,q(6),de(480),re(q(421))),ue(so,de(480),re(q(421)))),qx=he(g_),y_=ue(so,nt(ue(q(6,"443"),de(480)),ue(q(6),de(443)),ue(q(6),de(448),de(480)),ue(de(448),de(480)),de(448),de(443)),re(q(421))),zx=he(y_),w_=nt(ue(q(777),re(q(421)))),cF=he(w_),b_=nt(ue(q(400),re(q(421)))),lF=he(b_);function Lm(r,e,t){return r.filter(n=>{if(zx.matches(n)||e&&qx.matches(n))return t||Ox.matches(n)?!0:zt(n)===!1;if(!e&&t){let{host:o}=te(n);if(o==="127.0.0.1"||o==="localhost"||o.endsWith(".localhost"))return!0}return!1})}async function*Xl(r,e,t,n,o,s={}){for await(let i of e.findProviders(r,s)){let a=Lm(i.multiaddrs,n,o);if(a.length===0)continue;let c=zl(a[0]);yield new vs(c,{logger:t,transformRequestInit:s.transformRequestInit})}}async function Gx(r,e,t){let{signal:n,log:o}=t??{},s=r.headers.get("content-length");if(s!=null){let c=parseInt(s,10);if(c>e)throw o?.error("content-length header (%d) is greater than the limit (%d)",c,e),r.body!=null&&await r.body.cancel().catch(l=>{o?.error("error cancelling response body after content-length check - %e",l)}),new Error(`Content-Length header (${c}) is greater than the limit (${e}).`)}let i=r.body?.getReader();if(i==null)throw new Error("Response body is not readable");let a=new ae;try{for(;;){if(n?.aborted===!0)throw new Error("Response body read was aborted.");let{done:c,value:l}=await i.read();if(c)break;if(a.append(l),a.byteLength>e)throw new Error(`Response body is greater than the limit (${e}), received ${a.byteLength} bytes.`)}}finally{i.cancel().catch(c=>{o?.error("error cancelling reader - %e",c)}).finally(()=>{i.releaseLock()})}return a.subarray()}var vs=class{url;#e=0;#t=0;#r=0;#a=0;#i=new Map;log;transformRequestInit;constructor(e,{logger:t,transformRequestInit:n}){this.url=e instanceof URL?e:new URL(e),this.transformRequestInit=n,this.log=t.forComponent(`helia:trustless-gateway-block-broker:${this.url.hostname}`)}#l(e){let t=e.multihash.bytes;return Pe.encode(t)}async getRawBlock(e,{signal:t,maxSize:n=Wx}={}){let o=new URL(this.url.toString());if(o.pathname=`/ipfs/${e.toString()}`,o.search="?format=raw",t?.aborted===!0)throw new Error(`Signal to fetch raw block for CID ${e} from gateway ${this.url} was aborted prior to fetch`);let s=this.#l(e),i=new AbortController,a=()=>{i.abort()};t?.addEventListener("abort",a);try{let c=this.#i.get(s);if(c==null){this.#e++;let l={signal:i.signal,headers:{Accept:"application/vnd.ipld.raw"},cache:"force-cache"},u=this.transformRequestInit!=null?await this.transformRequestInit(l):l;c=fetch(o.toString(),u).then(async f=>{if(this.log("GET %s %d",o,f.status),!f.ok)throw this.#t++,new Error(`unable to fetch raw block for CID ${e} from gateway ${this.url}`);let d=await Gx(f,n,{signal:i.signal,log:this.log});return this.#a++,d}),this.#i.set(s,c)}return await c}catch{throw t?.aborted===!0?new Error(`fetching raw block for CID ${e} from gateway ${this.url} was aborted`):(this.#t++,new Error(`unable to fetch raw block for CID ${e}`))}finally{t?.removeEventListener("abort",a),this.#i.delete(s)}}reliability(){return this.#e===0?1:this.#r>0?-1/0:this.#a/(this.#e+this.#t*3)}incrementInvalidBlocks(){this.#r++}getStats(){return{attempts:this.#e,errors:this.#t,invalidBlocks:this.#r,successes:this.#a,pendingResponses:this.#i.size}}};var Nm=class extends ea{routing;allowInsecure;allowLocal;transformRequestInit;constructor(e,t){super(e,{...t,name:"helia:trustless-gateway:session"}),this.routing=e.routing,this.allowInsecure=t.allowInsecure??Jl,this.allowLocal=t.allowLocal??Ql,this.transformRequestInit=t.transformRequestInit}async queryProvider(e,t,n){this.log("fetching BLOCK for %c from %s",e,t.url);let o=await t.getRawBlock(e,n);return this.log.trace("got block for %c from %s",e,t.url),await n.validateFn?.(o),o}async*findNewProviders(e,t={}){yield*Xl(e,this.routing,this.logger,this.allowInsecure,this.allowLocal,{...t,transformRequestInit:this.transformRequestInit})}toEvictionKey(e){return e.url.toString()}equals(e,t){return e.url.toString()===t.url.toString()}async convertToProvider(e,t){if(sr(e))return;let n=Lm(Array.isArray(e)?e:[e],this.allowInsecure,this.allowLocal);if(n.length===0)return;let o=zl(n[0]);return new vs(o,{logger:this.logger,transformRequestInit:this.transformRequestInit})}};function jx(r,e){return new Nm(r,e)}var eu=class{allowInsecure;allowLocal;transformRequestInit;routing;log;logger;constructor(e,t={}){this.log=e.logger.forComponent("helia:trustless-gateway-block-broker"),this.logger=e.logger,this.routing=e.routing,this.allowInsecure=t.allowInsecure??Jl,this.allowLocal=t.allowLocal??Ql,this.transformRequestInit=t.transformRequestInit}async retrieve(e,t={}){let n=[];for await(let o of Xl(e,this.routing,this.logger,this.allowInsecure,this.allowLocal,{...t,transformRequestInit:this.transformRequestInit})){this.log("getting block for %c from %s",e,o.url);try{let s=await o.getRawBlock(e,t);this.log.trace("got block for %c from %s",e,o.url);try{await t.validateFn?.(s)}catch(i){this.log.error("failed to validate block for %c from %s",e,o.url,i);continue}return s}catch(s){if(this.log.error("failed to get block for %c from %s",e,o.url,s),s instanceof Error?n.push(s):n.push(new Error(`Unable to fetch raw block for CID ${e} from gateway ${o.url}`)),t.signal?.aborted===!0){this.log.trace("request aborted while fetching raw block for CID %c from gateway %s",e,o.url);break}}}throw n.length>0?new AggregateError(n,`Unable to fetch raw block for CID ${e} from any gateway`):new Error(`Unable to fetch raw block for CID ${e} from any gateway`)}createSession(e={}){return jx({logger:this.logger,routing:this.routing},{...e,allowLocal:this.allowLocal,allowInsecure:this.allowInsecure,transformRequestInit:this.transformRequestInit})}};var Jl=!1,Ql=!1,Wx=2097152;function Rm(r={}){return e=>new eu(e,r)}var Yx=Symbol.for("@libp2p/content-routing");var Om=Symbol.for("@libp2p/peer-id");var Zx=Symbol.for("@libp2p/peer-routing");var tu=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var gr=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var ru=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},nu=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};X.formatters.b=r=>r==null?"undefined":ee.baseEncode(r);X.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);X.formatters.m=r=>r==null?"undefined":Pe.baseEncode(r);X.formatters.p=r=>r==null?"undefined":r.toString();X.formatters.c=r=>r==null?"undefined":r.toString();X.formatters.k=r=>r==null?"undefined":r.toString();X.formatters.a=r=>r==null?"undefined":r.toString();X.formatters.e=r=>r==null?"undefined":Xx(r.stack)??Xx(r.message)??r.toString();function x_(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Mm(r){let e=x_(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>Mm(`${r}:${t}`)})}function Xx(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var Jx=Symbol.for("nodejs.util.inspect.custom"),v_=114,oa=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Om]=!0;toString(){return this.string==null&&(this.string=ee.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return V.createV1(v_,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return W(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return W(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Jx](){return`PeerId(${this.toString()})`}},ou=class extends oa{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},su=class extends oa{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},iu=class extends oa{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},E_=2336,sa=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=ke.digest(T(this.url))}[Jx](){return`PeerId(${this.url})`}[Om]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return V.createV1(E_,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=B(e)),e.toString()===this.toString())}};var S_=114,Qx=2336;function ev(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Xe(ee.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return A_(V.parse(r));if(e==null)throw new tu('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Xe(e.decode(r))}return tv(t)}function tv(r){if(C_(r))return new ou({multihash:r});if(I_(r))try{let e=jo(r);if(e.type==="Ed25519")return new su({multihash:r,publicKey:e});if(e.type==="secp256k1")return new iu({multihash:r,publicKey:e})}catch{let t=B(r.digest);return new sa(new URL(t))}throw new nu("Supplied PeerID Multihash is invalid")}function A_(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==S_&&r.code!==Qx)throw new ru("Supplied PeerID CID is invalid");if(r.code===Qx){let e=B(r.multihash.digest);return new sa(new URL(e))}return tv(r.multihash)}function I_(r){return r.code===ke.code}function C_(r){return r.code===gt.code}var Ge=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},Mr=class extends Error{static name="ValidationError";name="ValidationError"},ia=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},au=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function Fm(r){return e=>B(e,r)}function $m(r){return e=>T(e,r)}function Es(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function co(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function rv(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=T(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=co(n);return ye([t,o],t.length+o.length)}function nv(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ge.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=co(n);return ye([t,o],t.length+o.length)}function Vm(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=B(e,"base32"),o=Es(t);return`${n}:${o}`}var Km=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new Ge("Invalid byte value in IP address");e[n]=o}),e},ov=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=at(t[n]),i;s&&(i=Km(t[n]),t[n]=B(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,B(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new Ge("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},sv=function(r){if(r.byteLength!==4)throw new Ge("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},iv=function(r){if(r.byteLength!==16)throw new Ge("IPv6 address was incorrect length");let e=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new Ge(`Invalid IPv6 address "${t}"`)}};function av(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new Ge(`Invalid IPv6 address "${r}"`)}}var Um=Object.values(An).map(r=>r.decoder),__=(function(){let r=Um[0].or(Um[1]);return Um.slice(2).forEach(e=>r=r.or(e)),r})();function cv(r){return __.decode(r)}function lv(r){return e=>r.encoder.encode(e)}function T_(r){if(parseInt(r).toString()!==r)throw new Mr("Value must be an integer")}function k_(r){if(r<0)throw new Mr("Value must be a positive integer, or zero")}function P_(r){return e=>{if(e>r)throw new Mr(`Value must be smaller than or equal to ${r}`)}}function B_(...r){return e=>{for(let t of r)t(e)}}var aa=B_(T_,k_,P_(65535));var Me=-1,Hm=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new au(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Ct=new Hm,aT=[{code:4,name:"ip4",size:32,valueToBytes:Km,bytesToValue:sv,validate:r=>{if(!at(r))throw new Mr(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:273,name:"udp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:33,name:"dccp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:41,name:"ip6",size:128,valueToBytes:ov,bytesToValue:iv,stringToValue:av,validate:r=>{if(!Xo(r))throw new Mr(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:Me},{code:43,name:"ipcidr",size:8,bytesToValue:Fm("base10"),valueToBytes:$m("base10")},{code:53,name:"dns",size:Me,resolvable:!0},{code:54,name:"dns4",size:Me,resolvable:!0},{code:55,name:"dns6",size:Me,resolvable:!0},{code:56,name:"dnsaddr",size:Me,resolvable:!0},{code:132,name:"sctp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:Me,path:!0,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:Me,bytesToValue:Fm("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?$m("base58btc")(r):V.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Vm,valueToBytes:rv},{code:445,name:"onion3",size:296,bytesToValue:Vm,valueToBytes:nv},{code:446,name:"garlic64",size:Me},{code:447,name:"garlic32",size:Me},{code:448,name:"tls"},{code:449,name:"sni",size:Me},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:Me,bytesToValue:lv(qs),valueToBytes:cv},{code:480,name:"http"},{code:481,name:"http-path",size:Me,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:Me}];aT.forEach(r=>{Ct.addProtocol(r)});function uv(r){let e=[],t=0;for(;t<r.length;){let n=fr(r,t),o=Ct.getProtocol(n),s=be(n),i=cT(o,r,t+s),a=0;i>0&&o.size===Me&&(a=be(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??B(f)}e.push(l),t+=c}return e}function fv(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=Ct.getProtocol(n.code),s=be(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??T(n.value),a=i.byteLength,o.size===Me&&(c=be(a)));let l=new Uint8Array(s+c+a),u=0;_r(n.code,l,u),u+=s,i!=null&&(o.size===Me&&(_r(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return ye(t,e)}function dv(r){if(r.charAt(0)!=="/")throw new Ge('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Ct.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new Ge(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new Ge(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new Ge("Incomplete multiaddr");return e}function hv(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=Ct.getProtocol(e.code);if(t==null)throw new Ge(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function cT(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:fr(e,t)}var lT=Symbol.for("nodejs.util.inspect.custom"),Xm=Symbol.for("@multiformats/multiaddr"),uT=[53,54,55,56],Zm=class extends Error{constructor(e="No available resolver"){super(e),this.name="NoAvailableResolverError"}};function fT(r){if(r==null&&(r="/"),mv(r))return r.getComponents();if(r instanceof Uint8Array)return uv(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),dv(r);if(Array.isArray(r))return r;throw new Ge("Must be a string, Uint8Array, Component[], or another Multiaddr")}var du=class r{[Xm]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=fT(e),t.validate!==!1&&dT(this)}get bytes(){return this.#r==null&&(this.#r=fv(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=hv(this.#e)),this.#t}toJSON(){return this.toString()}toOptions(){let e,t,n,o,s="";for(let{code:a,name:c,value:l}of this.#e)a===42&&(s=`%${l??""}`),uT.includes(a)&&(t="tcp",o=443,n=`${l??""}${s}`,e=a===55?6:4),(a===6||a===273)&&(t=c==="tcp"?"tcp":"udp",o=parseInt(l??"")),(a===4||a===41)&&(t="tcp",n=`${l??""}${s}`,e=a===41?6:4);if(e==null||t==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:o}}getComponents(){return[...this.#e]}protos(){return this.#e.map(({code:e,value:t})=>{let n=Ct.getProtocol(e);return{code:e,size:n.size??0,name:n.name,resolvable:!!n.resolvable,path:!!n.path}})}protoCodes(){return this.#e.map(({code:e})=>e)}protoNames(){return this.#e.map(({name:e})=>e)}tuples(){return this.#e.map(({code:e,value:t})=>{if(t==null)return[e];let n=Ct.getProtocol(e),o=[e];return t!=null&&o.push(n.valueToBytes?.(t)??T(t)),o})}stringTuples(){return this.#e.map(({code:e,value:t})=>t==null?[e]:[e,t])}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new ia(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}getPeerId(){try{let e=[];this.#e.forEach(({code:n,value:o})=>{n===421&&e.push([n,o]),n===290&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?B(ee.decode(`z${n}`),"base58btc"):B(V.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){for(let e of this.#e)if(Ct.getProtocol(e.code).path)return e.value??null;return null}equals(e){return W(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(s=>s.resolvable);if(t==null)return[this];let n=pv.get(t.name);if(n==null)throw new Zm(`no available resolver for ${t.name}`);return(await n(this,e)).map(s=>la(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(){return!(this.#e.length!==2||this.#e[0].code!==4&&this.#e[0].code!==41||this.#e[1].code!==6&&this.#e[1].code!==273)}[lT](){return`Multiaddr(${this.toString()})`}};function dT(r){r.getComponents().forEach(e=>{let t=Ct.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}var pv=new Map;function mv(r){return!!r?.[Xm]}function la(r){return new du(r)}async function*hu(r,e={}){let t=r.getReader();try{for(;;){let n=await t.read();if(n.done)return;yield n.value}}finally{e.preventCancel!==!0&&await t.cancel(),t.releaseLock()}}X.formatters.b=r=>r==null?"undefined":ee.baseEncode(r);X.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);X.formatters.m=r=>r==null?"undefined":Pe.baseEncode(r);X.formatters.p=r=>r==null?"undefined":r.toString();X.formatters.c=r=>r==null?"undefined":r.toString();X.formatters.k=r=>r==null?"undefined":r.toString();X.formatters.a=r=>r==null?"undefined":r.toString();X.formatters.e=r=>r==null?"undefined":gv(r.stack)??gv(r.message)??r.toString();function hT(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function lo(r){let e=hT(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>lo(`${r}:${t}`)})}function gv(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var bT=vn(Qm(),1);var Qt=class extends Error{static name="SignatureVerificationError";constructor(e="Record signature verification failed"){super(e),this.name="SignatureVerificationError"}},pu=class extends Error{static name="RecordExpiredError";constructor(e="Record has expired"){super(e),this.name="RecordExpiredError"}},Ss=class extends Error{static name="UnsupportedValidityError";constructor(e="The validity type is unsupported"){super(e),this.name="UnsupportedValidityError"}},mu=class extends Error{static name="RecordTooLargeError";constructor(e="The record is too large"){super(e),this.name="RecordTooLargeError"}},gu=class extends Error{static name="InvalidValueError";constructor(e="Value must be a valid content path starting with /"){super(e),this.name="InvalidValueError"}},yu=class extends Error{static name="InvalidRecordDataError";constructor(e="Invalid record data"){super(e),this.name="InvalidRecordDataError"}},ua=class extends Error{static name="InvalidEmbeddedPublicKeyError";constructor(e="Invalid embedded public key"){super(e),this.name="InvalidEmbeddedPublicKeyError"}};var er;(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=()=>ci(t)})(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=Ke((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,i={})=>{let a={},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let l=o.uint32();switch(l>>>3){case 1:{a.value=o.bytes();break}case 2:{a.signatureV1=o.bytes();break}case 3:{a.validityType=r.ValidityType.codec().decode(o);break}case 4:{a.validity=o.bytes();break}case 5:{a.sequence=o.uint64();break}case 6:{a.ttl=o.uint64();break}case 7:{a.pubKey=o.bytes();break}case 8:{a.signatureV2=o.bytes();break}case 9:{a.data=o.bytes();break}default:{o.skipType(l&7);break}}}return a})),n),r.encode=o=>Ve(o,r.codec()),r.decode=(o,s)=>$e(o,r.codec(),s)})(er||(er={}));var wu=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var pT=lo("ipns:utils"),yv=T("/ipns/");var mT=0,gT=18;function wv(r){let e;if(r.pubKey!=null)try{e=an(r.pubKey)}catch(t){throw pT.error(t),t}if(e!=null)return e}function bv(r){let e=T("ipns-signature:");return ye([e,r])}function fa(r){return"signatureV1"in r?er.encode({value:T(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:T(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):er.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data})}function gn(r){let e=er.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 new Qt("Missing data or signatureV2");let t=xv(e.data),n=yT(t.Value),o=B(t.Validity);if(e.value!=null&&e.signatureV1!=null)return wT(e),{value:n,validityType:er.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:er.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")}function da(r){return ye([yv,r.bytes])}function As(r){let e=Xe(r.slice(yv.length));if(!bu(e,mT)&&!bu(e,gT))throw new wu("Multihash in IPNS key was not identity or sha2-256");return e}function xv(r){let e=St(r);if(e.ValidityType===0)e.ValidityType=er.ValidityType.EOL;else throw new Ss("The validity type is unsupported");return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e}function yT(r){let e=B(r).trim();if(e.startsWith("/"))return e;try{return`/ipfs/${V.decode(r).toV1().toString()}`}catch{}try{return`/ipfs/${V.parse(e).toV1().toString()}`}catch{}throw new gu("Value must be a valid content path starting with /")}function wT(r){if(r.data==null)throw new yu("Record data is missing");let e=xv(r.data);if(!W(e.Value,r.value??new Uint8Array(0)))throw new Qt('Field "value" did not match between protobuf and CBOR');if(!W(e.Validity,r.validity??new Uint8Array(0)))throw new Qt('Field "validity" did not match between protobuf and CBOR');if(e.ValidityType!==r.validityType)throw new Qt('Field "validityType" did not match between protobuf and CBOR');if(e.Sequence!==r.sequence)throw new Qt('Field "sequence" did not match between protobuf and CBOR');if(e.TTL!==r.ttl)throw new Qt('Field "ttl" did not match between protobuf and CBOR')}function bu(r,e){return r.code===e}var M9=lo("ipns"),U9=300*1e9,xT="/ipns/",F9=xT.length;var vv=vn(Qm(),1);var xu=lo("ipns:validator"),vT=1024*10;async function ET(r,e){let t=gn(e),n;try{let o=bv(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw xu.error("record signature verification failed"),new Qt("Record signature verification failed");if(t.validityType===er.ValidityType.EOL){if(vv.default.fromString(t.validity).toDate().getTime()<Date.now())throw xu.error("record has expired"),new pu("record has expired")}else if(t.validityType!=null)throw xu.error("the validity type is unsupported"),new Ss("The validity type is unsupported");xu("ipns record for %s is valid",t.value)}async function Ev(r,e){if(e.byteLength>vT)throw new mu("The record is too large");let t=As(r),n;bu(t,0)&&(n=jo(t));let o=gn(e),s=wv(o)??n;if(s==null)throw new ua("Could not extract public key from IPNS record or routing key");let i=da(s.toMultihash());if(!W(i,r))throw new ua("Embedded public key did not match routing key");await ET(s,e)}var vu=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MESSAGE_LENGTH"};async function*ha(r,e={}){let t=/\r?\n/,n=new TextDecoder("utf8"),o="";for await(let s of r){if(typeof s=="string"&&(s=new TextEncoder().encode(s)),ko(s)&&(s=s.subarray()),o+=n.decode(s,{stream:!0}),o.length>(e?.maxMessageLength??o.length))throw new vu("Incoming message too long");let i=o.split(t);o=i.pop()??"";for(let a=0;a<i.length;a++)yield JSON.parse(i[a])}o+=n.decode(),o!==""&&(yield JSON.parse(o))}var Is=class extends Error{static name="InvalidRequestError";constructor(e="Invalid request"){super(e),this.name="InvalidRequestError"}},tr=class extends Error{static name="BadResponseError";constructor(e="Bad response"){super(e),this.name="BadResponseError"}};function ST(r){return r[Symbol.asyncIterator]!=null}function AT(r){if(ST(r))return(async()=>{for await(let e of r)return e})();for(let e of r)return e}var Sv=AT;var Av=T("/ipns/");function Iv(r){return W(r.subarray(0,Av.byteLength),Av)}var Eu=class{client;constructor(e){this.client=e}async*findProviders(e,t={}){yield*sl(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs??[]}))}async provide(){}async cancelReprovide(){}async put(e,t,n){if(!Iv(e))return;let o=As(e),s=V.createV1(114,o),i=gn(t);await this.client.putIPNS(s,i,n)}async get(e,t){if(!Iv(e))throw new gr("Not found");let n=As(e),o=V.createV1(114,n);try{let s=await this.client.getIPNS(o,t);return fa(s)}catch(s){throw s.name==="BadResponseError"?new gr("Not found"):s}}},Su=class{client;constructor(e){this.client=e}async findPeer(e,t={}){let n=await Sv(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new gr("Not found")}async*getClosestPeers(e,t={}){}};var We=Mm("delegated-routing-v1-http-api-client"),Au={concurrentRequests:4,timeout:3e4,cacheTTL:300*1e3,cacheName:"delegated-routing-v1-cache"},Iu=class{started;httpQueue;shutDownController;clientUrl;timeout;contentRouting;peerRouting;filterAddrs;filterProtocols;inFlightRequests;cacheName;cache;cacheTTL;constructor(e,t={}){this.started=!1,this.shutDownController=new AbortController,this.shutDownController.signal,this.httpQueue=new ro({concurrency:t.concurrentRequests??Au.concurrentRequests}),this.inFlightRequests=new Map,this.clientUrl=e instanceof URL?e:new URL(e),this.timeout=t.timeout??Au.timeout,this.filterAddrs=t.filterAddrs,this.filterProtocols=t.filterProtocols,this.contentRouting=new Eu(this),this.peerRouting=new Su(this),this.cacheName=t.cacheName??Au.cacheName,this.cacheTTL=t.cacheTTL??Au.cacheTTL}get[Yx](){return this.contentRouting}get[Zx](){return this.peerRouting}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cacheTTL>0&&(this.cache=await globalThis.caches?.open(this.cacheName),this.cache!=null&&We("cache enabled with ttl %d",this.cacheTTL)))}async stop(){this.httpQueue.clear(),this.shutDownController.abort(),await globalThis.caches?.delete(this.cacheName),this.started=!1}async*getProviders(e,t={}){We("getProviders starts: %c",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));try{await s.promise;let a=new URL(`${this.clientUrl}routing/v1/providers/${e.toString()}`);this.#t(a,t.filterAddrs,t.filterProtocols);let c={headers:{Accept:"application/x-ndjson"},signal:o},l=await this.#r(a.toString(),c);if(l==null)throw new tr("No response received");if(!l.ok)throw l.status===404?new gr("No matching records found"):l.status===422?new Is("Request does not conform to schema or semantic constraints"):new tr(`Unexpected status code: ${l.status}`);if(l.body==null)throw new tr("Routing response had no body");let u=l.headers.get("Content-Type");if(u==null)throw new tr("No Content-Type header received");if(u?.startsWith("application/json")){let f=await l.json();for(let d of f.Providers){let h=this.#e(d);h!=null&&(yield h)}}else if(u.includes("application/x-ndjson"))for await(let f of ha(hu(l.body))){let d=this.#e(f);d!=null&&(yield d)}else throw new tr(`Unsupported Content-Type: ${u}`)}finally{o.clear(),i.resolve(),We("getProviders finished: %c",e)}}async*getPeers(e,t={}){We("getPeers starts: %c",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));try{await s.promise;let a=new URL(`${this.clientUrl}routing/v1/peers/${e.toCID().toString()}`);this.#t(a,t.filterAddrs,t.filterProtocols);let c={headers:{Accept:"application/x-ndjson"},signal:o},l=await this.#r(a.toString(),c);if(l.status===404)throw new gr("No matching records found");if(l.status===422)throw new Is("Request does not conform to schema or semantic constraints");if(l.body==null)throw new tr("Routing response had no body");if(l.headers.get("Content-Type")==="application/json"){let f=await l.json();for(let d of f.Peers){let h=this.#e(d);h!=null&&(yield h)}}else for await(let f of ha(hu(l.body))){let d=this.#e(f);d!=null&&(yield d)}}catch(a){We.error("getPeers errored:",a)}finally{o.clear(),i.resolve(),We("getPeers finished: %c",e)}}async getIPNS(e,t={}){We("getIPNS starts: %s",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));let a=`${this.clientUrl}routing/v1/ipns/${e}`;try{await s.promise;let c={headers:{Accept:"application/vnd.ipfs.ipns-record"},signal:o},l=await this.#r(a,c);if(We("getIPNS GET %s %d",a,l.status),l.status===404)throw new gr("No matching records found");if(l.status===422)throw new Is("Request does not conform to schema or semantic constraints");if(l.body==null)throw new tr("GET ipns response had no body");let u=await l.arrayBuffer(),f=new Uint8Array(u,0,u.byteLength);return t.validate!==!1&&await Ev(da(e.multihash),f),gn(f)}catch(c){throw We.error("getIPNS GET %s error:",a,c),c}finally{o.clear(),i.resolve(),We("getIPNS finished: %s",e)}}async putIPNS(e,t,n={}){We("putIPNS starts: %c",e);let o=AbortSignal.timeout(this.timeout),s=me([this.shutDownController.signal,o,n.signal]);let i=le(),a=le();this.httpQueue.add(async()=>(i.resolve(),a.promise));let c=`${this.clientUrl}routing/v1/ipns/${e}`;try{await i.promise;let l=fa(t),u={method:"PUT",headers:{"Content-Type":"application/vnd.ipfs.ipns-record"},body:l,signal:s},f=await this.#r(c,u);if(We("putIPNS PUT %s %d",c,f.status),f.status!==200)throw new tr("PUT ipns response had status other than 200")}catch(l){throw We.error("putIPNS PUT %s error:",c,l.stack),l}finally{s.clear(),a.resolve(),We("putIPNS finished: %c",e)}}#e(e){try{let t=[],n=e.Addrs?.map(la)??[];return e.Protocols!=null&&t.push(...e.Protocols),e.Protocol!=null&&(t.push(e.Protocol),delete e.Protocol),{...e,Schema:"peer",ID:ev(e.ID),Addrs:n,Protocols:t}}catch(t){We.error("could not conform record to peer schema",t)}}#t(e,t,n){if(t!=null||this.filterAddrs!=null){let o=t?.join(",")??this.filterAddrs?.join(",")??"";o!==""&&e.searchParams.set("filter-addrs",o)}if(n!=null||this.filterProtocols!=null){let o=n?.join(",")??this.filterProtocols?.join(",")??"";o!==""&&e.searchParams.set("filter-protocols",o)}}async#r(e,t){let n=t.method??"GET",o=`${n}-${e}`;if(n==="GET"){let c=await this.cache?.match(e);if(c!=null){if(parseInt(c.headers.get("x-cache-expires")??"0",10)>Date.now())return We("returning cached response for %s",o),c;await this.cache?.delete(e)}}let s=this.inFlightRequests.get(o);if(s!=null){let c=await s;return We("deduplicating outgoing request for %s",o),c.clone()}let i=fetch(e,t).then(async c=>{if(this.cache!=null&&c.ok&&n==="GET"){let l=Date.now()+this.cacheTTL,u=new Headers(c.headers);u.set("x-cache-expires",l.toString());let f=new Response(c.clone().body,{status:c.status,statusText:c.statusText,headers:u});await this.cache.put(e,f)}return c}).finally(()=>{this.inFlightRequests.delete(o)});return this.inFlightRequests.set(o,i),await i}};function Cv(r,e={}){return new Iu(new URL(r),e)}var _v="[a-fA-F\\d:]",yn=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${_v})|(?<=${_v})(?=\\s|$))`:"",rr="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Be="[a-fA-F\\d]{1,4}",Cu=`
|
|
4
|
+
${t}`:t??e??r.toString()};function WI(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function pn(){return{forComponent(r){return ps(r)}}}function ps(r){let e=WI(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>ps(`${r}:${t}`)})}function Ub(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var ms=class extends Wt{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var nl=class extends Wt{constructor(e={}){super({...e,sort:(t,n)=>t.options.priority>n.options.priority?-1:t.options.priority<n.options.priority?1:0})}};var ol=class{memoryStorage;points;duration;blockDuration;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new Rp}consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new vc("Rate limit exceeded",i);return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},Rp=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};var Op=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function tt(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Op({name:e,metrics:t}):n=new Map,n}function jI(r){return r[Symbol.asyncIterator]!=null}function YI(r){if(jI(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ui=YI;function ZI(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var gs=ZI;function XI(r){return r[Symbol.asyncIterator]!=null}function JI(r,e){let t=0;if(XI(r))return(async function*(){for await(let c of r)yield e(c,t++)})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){yield await i;for(let c of n)yield e(c,t++)})();let a=e;return(function*(){yield i;for(let c of n)yield a(c,t++)})()}var sl=JI;function QI(r){return r[Symbol.asyncIterator]!=null}function eC(r,e){return QI(r)?(async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}})():(function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}})()}var il=eC;var At=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function al(r,e,t,n){let o=new At(n?.errorMessage);n?.errorCode!=null&&(o.code=n.errorCode);let s=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(o):new Promise((i,a)=>{function c(){Up(t,"abort",f),Up(r,e,l),Up(r,s,u)}let l=d=>{try{if(n?.filter?.(d)===!1)return}catch(h){c(),a(h);return}c(),i(d)},u=d=>{if(c(),d instanceof Error){a(d);return}a(d.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(o)};Mp(t,"abort",f),Mp(r,e,l),Mp(r,s,u)})}function Mp(r,e,t){r!=null&&(Fb(r)?r.addEventListener(e,t):r.addListener(e,t))}function Up(r,e,t){r!=null&&(Fb(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Fb(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var $b=Symbol.for("nodejs.util.inspect.custom"),tC=114,Fi=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[za]=!0;toString(){return this.string==null&&(this.string=ee.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return V.createV1(tC,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return W(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return W(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[$b](){return`PeerId(${this.toString()})`}},$i=class extends Fi{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Vi=class extends Fi{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},Ki=class extends Fi{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},rC=2336,Hi=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=ke.digest(T(this.url))}[$b](){return`PeerId(${this.url})`}[za]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return V.createV1(rC,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=B(e)),e.toString()===this.toString())}};var nC=114,Vb=2336;function mr(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Xe(ee.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return Qn(V.parse(r));if(e==null)throw new _('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Xe(e.decode(r))}return ys(t)}function Fp(r){if(r.type==="Ed25519")return new Vi({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new Ki({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new $i({multihash:r.toCID().multihash,publicKey:r});throw new Ot}function Kb(r){return Fp(r.publicKey)}function ys(r){if(sC(r))return new $i({multihash:r});if(oC(r))try{let e=jo(r);if(e.type==="Ed25519")return new Vi({multihash:r,publicKey:e});if(e.type==="secp256k1")return new Ki({multihash:r,publicKey:e})}catch{let t=B(r.digest);return new Hi(new URL(t))}throw new Eo("Supplied PeerID Multihash is invalid")}function Qn(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==nC&&r.code!==Vb)throw new Ua("Supplied PeerID CID is invalid");if(r.code===Vb){let e=B(r.multihash.digest);return new Hi(new URL(e))}return ys(r.multihash)}function oC(r){return r.code===ke.code}function sC(r){return r.code===gt.code}function eo(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}function cl(r){let e=Xe(ee.decode(`z${r}`));return ys(e)}var Dt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),{key:t,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return eo(this.map.entries(),e=>[e[1].key,e[1].value])}forEach(e){this.map.forEach((t,n)=>{e(t.value,t.key,this)})}get(e){return this.map.get(e.toString())?.value}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),{key:e,value:t})}keys(){return eo(this.map.values(),e=>e.key)}values(){return eo(this.map.values(),e=>e.value)}get size(){return this.map.size}};var to=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return eo(this.set.entries(),e=>{let t=cl(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=cl(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return eo(this.set.values(),e=>cl(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var $p=class extends Dt{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Vp(r){let{name:e,metrics:t}=r,n;return t!=null?n=new $p({name:e,metrics:t}):n=new Dt,n}function iC(r){return r[Symbol.asyncIterator]!=null}function aC(r){if(iC(r))return(async()=>{let n=new Uint8Array(0);for await(let o of r)n=ye([n,o],n.length+o.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return ye(e,t)}var Hb=aC;var Hp=vn(zb(),1);function qp(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 zi=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,id:t.id,run:e};if(this.size===0||this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=qp(this.#e,n,(s,i)=>i.priority-s.priority);this.#e.splice(o,0,n)}setPriority(e,t){let n=this.#e.findIndex(s=>s.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}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 ro=class extends Hp.default{#e;#t;#r=0;#a;#i;#l=0;#o;#u;#n;#m;#s=0;#f;#c;#g;#b=1n;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:zi,...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.#a=e.intervalCap,this.#i=e.interval,this.#n=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#c=e.autoStart===!1}get#x(){return this.#t||this.#r<this.#a}get#v(){return this.#s<this.#f}#E(){this.#s--,this.#d(),this.emit("next")}#S(){this.#w(),this.#y(),this.#u=void 0}get#A(){let e=Date.now();if(this.#o===void 0){let t=this.#l-e;if(t<0)this.#r=this.#e?this.#s:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#S()},t)),!0}return!1}#d(){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.#c){let e=!this.#A;if(this.#x&&this.#v){let t=this.#n.dequeue();return t?(this.emit("active"),t(),e&&this.#y(),!0):!1}}return!1}#y(){this.#t||this.#o!==void 0||(this.#o=setInterval(()=>{this.#w()},this.#i),this.#l=Date.now()+this.#i)}#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.#d(););}get concurrency(){return this.#f}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.#f=e,this.#h()}async#I(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){this.#n.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#b++).toString(),t={timeout:this.timeout,throwOnTimeout:this.#g,...t},new Promise((n,o)=>{this.#n.enqueue(async()=>{this.#s++;try{t.signal?.throwIfAborted(),this.#r++;let s=e({signal:t.signal});t.timeout&&(s=Ai(Promise.resolve(s),{milliseconds:t.timeout})),t.signal&&(s=Promise.race([s,this.#I(t.signal)]));let i=await s;n(i),this.emit("completed",i)}catch(s){if(s instanceof Si&&!t.throwOnTimeout){n();return}o(s),this.emit("error",s)}finally{this.#E()}},t),this.emit("add"),this.#d()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#c?(this.#c=!1,this.#h(),this):this}pause(){this.#c=!0}clear(){this.#n=new this.#m}async onEmpty(){this.#n.size!==0&&await this.#p("empty")}async onSizeLessThan(e){this.#n.size<e||await this.#p("next",()=>this.#n.size<e)}async onIdle(){this.#s===0&&this.#n.size===0||await this.#p("idle")}async#p(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.#c}};function ul(r){let e=[It.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var zp=60;function fl(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:It[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:It[e.type],TTL:e.TTL??e.ttl??zp,data:e.data instanceof Uint8Array?B(e.data):e.data}))}}var uC=4;function Gp(r,e={}){let t=new ro({concurrency:e.queryConcurrency??uC});return async(n,o={})=>{let s=new URLSearchParams;s.set("name",n),ul(o.types).forEach(a=>{s.append("type",It[a])}),o.onProgress?.(new Z("dns:query",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=fl(await a.json());return o.onProgress?.(new Z("dns:response",c)),c},{signal:o.signal});if(i==null)throw new Error("No DNS response received");return i}}function Gb(){return[Gp("https://cloudflare-dns.com/dns-query"),Gp("https://dns.google/resolve")]}var Yb=vn(jb(),1);var Wp=class{lru;constructor(e){this.lru=(0,Yb.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 fl({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:It[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??zp)*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 Zb(r){return new Wp(r)}var fC=1e3,dl=class{resolvers;cache;constructor(e){this.resolvers={},this.cache=Zb(e.cacheSize??fC),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["."]=Gb())}async query(e,t={}){let n=ul(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new Z("dns:cache",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 l=await c(e,{...t,types:n});for(let u of l.Answer)this.cache.add(e,u);return l}catch(l){a.push(l),t.onProgress?.(new Z("dns:error",l))}}throw a.length===1?a[0]:new AggregateError(a,`DNS lookup of ${e} ${n} failed`)}};var It;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(It||(It={}));function hl(r={}){return new dl(r)}var Rr="/",Xb=new TextEncoder().encode(Rr),pl=Xb[0],xe=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=T(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]!==pl)throw new Error("Invalid key")}toString(e="utf8"){return B(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=Xb),this._buf[0]!==pl){let e=new Uint8Array(this._buf.byteLength+1);e.fill(pl,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===pl;)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 dC(this.baseNamespace())}name(){return hC(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(),...pC(e.map(t=>t.namespaces()))])}};function dC(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function hC(r){let e=r.split(":");return e[e.length-1]}function pC(r){return[].concat(...r)}function ml({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*mC(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t],s=V.asCID(n);s!=null?yield[o.join("/"),s]:typeof n=="object"&&(yield*jp(n,o))}else{let t=V.asCID(e);t!=null?yield[r.join("/"),t]:yield*jp(e,r)}}function*jp(r,e){if(r==null||r instanceof Uint8Array)return;let t=V.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,o]of Object.entries(r)){let s=[...e,n];yield*mC(s,o)}}function*gC(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let o=[...r,t];yield o.join("/"),typeof n=="object"&&V.asCID(n)==null&&(yield*Yp(n,o))}else yield*Yp(e,r)}function*Yp(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let o=[...e,t];yield o.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&V.asCID(n)==null&&(yield*gC(o,n))}}function yC(r,e){let t=r;for(let[n,o]of e.entries()){if(t=t[o],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(i=>`[${JSON.stringify(i)}]`).join("")}`);let s=V.asCID(t);if(s!=null)return{value:s,remaining:e.slice(n+1).join("/")}}return{value:t}}var Zp=class{cid;bytes;value;asBlock;constructor({cid:e,bytes:t,value:n}){if(e==null||t==null||typeof n>"u")throw new Error("Missing required argument");this.cid=e,this.bytes=t,this.value=n,this.asBlock=this,Object.defineProperties(this,{cid:ml(),bytes:ml(),value:ml(),asBlock:ml()})}links(){return jp(this.value,[])}tree(){return Yp(this.value,[])}get(e="/"){return yC(this.value,e.split("/").filter(Boolean))}};function Jb({bytes:r,cid:e,value:t,codec:n}){let o=t!==void 0?t:n?.decode(r);if(o===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Zp({cid:e,bytes:r,value:o})}var tx="/pin/",Qb="/pinned-block/",Xp=cr,ex=1;function gl(r){return r.version===0&&(r=r.toV1()),new xe(`${tx}${r.toString(Xp)}`)}var yl=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=gl(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 Wt({concurrency:ex});for await(let a of this.#e(e,s,{...t,depth:o}))await this.#t(a,c=>c.pinnedBy.find(l=>W(l,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,hn(i),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=await this.getCodec(e.code),s=await Hb(this.blockstore.get(e,n)),i=Jb({bytes:s,cid:e,codec:o});yield e;for(let[,a]of i.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#t(e,t,n){let o=new xe(`${Qb}${Xp.encode(e.multihash.bytes)}`),s={pinCount:0,pinnedBy:[]};try{s=St(await this.datastore.get(o,n))}catch(a){if(a.name!=="NotFoundError")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,hn(s),n),n.onProgress?.(new Z("helia:pin:add",e))}}async*rm(e,t={}){let n=gl(e),o=await this.datastore.get(n,t),s=St(o);await this.datastore.delete(n,t);let i=new Wt({concurrency:ex});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(l=>W(l,e.bytes)),!0),{...t,depth:s.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:tx+(e.cid!=null?`${e.cid.toString(cr)}`:"")},e)){let o=V.parse(t.toString().substring(5),cr),s=St(n);yield{cid:o,...s}}}async isPinned(e,t={}){let n=new xe(`${Qb}${Xp.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=gl(e),o=await this.datastore.get(n,t);return St(o)}async setMetadata(e,t,n){let o=gl(e),s=await this.datastore.get(o,n),i=St(s);i.metadata=t??{},await this.datastore.put(o,hn(i),n)}};var Jp=1,Qp=5;var Gi=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},mn=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},Wi=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},ji=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}},em=class extends Error{static name="InvalidCodecError";constructor(e="Invalid codec"){super(e),this.name="InvalidCodecError"}};var wC=5,wl=class{log;routers;providerLookupConcurrency;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??wC,this.findProviders=e.metrics?.traceFunction("helia.routing.findProviders",this.findProviders.bind(this),{optionsIndex:1})??this.findProviders,this.provide=e.metrics?.traceFunction("helia.routing.provide",this.provide.bind(this),{optionsIndex:1})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("helia.routing.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1})??this.cancelReprovide,this.put=e.metrics?.traceFunction("helia.routing.put",this.put.bind(this),{optionsIndex:2})??this.put,this.get=e.metrics?.traceFunction("helia.routing.get",this.get.bind(this),{optionsIndex:1})??this.get,this.findPeer=e.metrics?.traceFunction("helia.routing.findPeer",this.findPeer.bind(this),{optionsIndex:1})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("helia.routing.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1})??this.getClosestPeers}async start(){await ir(...this.routers)}async stop(){await ar(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new mn("No content routers available");let n=new ms({concurrency:this.providerLookupConcurrency});for await(let o of kt(n.toGenerator(),...no(this.routers,"findProviders").map(s=>s.findProviders(e,t))))if(o!=null){if(o.multiaddrs.length===0){if(n.find(o.id)!=null)continue;n.add(async()=>{try{let s=await this.findPeer(o.id,t);return s.multiaddrs.length===0?null:s}catch(s){return this.log.error("could not load multiaddrs for peer %p",o.id,s),null}},{peerId:o.id,signal:t.signal}).catch(s=>{this.log.error("could not load multiaddrs for peer %p",o.id,s)})}yield o}}async provide(e,t={}){if(this.routers.length===0)throw new mn("No content routers available");await Promise.all(no(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){await Promise.all(no(this.routers,"cancelReprovide").map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){await Promise.all(no(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(no(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new mn("No peer routers available");let n=this,o=kt(...no(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 Rt("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new mn("No peer routers available");for await(let n of kt(...no(this.routers,"getClosestPeers").map(o=>o.getClosestPeers(e,t))))n!=null&&(yield n)}};function no(r,e){return r.filter(t=>t[e]!=null)}var bl=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var xl=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function rx(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new xl(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new xl(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var vl=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new At)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function bC(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var El=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=bC(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new At),this.cleanup())}async join(e={}){let t=new vl(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await rx(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function tm(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Yi=class extends De{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=tm(this.emitEmpty.bind(this),1),this.emitIdle=tm(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new bl;let n=new El(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new At)}),this.clear()}async onEmpty(e){this.size!==0&&await al(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await al(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await al(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=es({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail.result)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new At("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var Sl="lock:worker:request-read",Al="lock:worker:abort-read-request",Il="lock:worker:release-read",Cl="lock:master:grant-read",_l="lock:master:error-read",Tl="lock:worker:request-write",kl="lock:worker:abort-write-request",Pl="lock:worker:release-write",Bl="lock:master:grant-write",Dl="lock:master:error-write",Ll="lock:worker:finalize",Nl="mortice",nx={singleProcess:!1};var rm=(r,e,t,n,o,s,i,a,c)=>l=>{if(l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===o&&r.safeDispatchEvent(t,{detail:{name:u.name,identifier:u.identifier,handler:async()=>{e.postMessage({type:c,name:u.name,identifier:u.identifier}),await new Promise(f=>{let d=h=>{if(h?.data==null)return;let m={type:h.data.type,name:h.data.name,identifier:h.data.identifier};m.type===a&&m.identifier===u.identifier&&(e.removeEventListener("message",d),f())};e.addEventListener("message",d)})},onError:f=>{e.postMessage({type:i,name:u.name,identifier:u.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),u.type===s&&r.safeDispatchEvent(n,{detail:{name:u.name,identifier:u.identifier}}),u.type===Ll&&r.safeDispatchEvent("finalizeRequest",{detail:{name:u.name}})};var ox=(r=10)=>Math.random().toString().substring(2,r+2);var Rl=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(Nl)}readLock(e){return this.sendRequest(Sl,Al,Cl,_l,Il,e)}writeLock(e){return this.sendRequest(Tl,kl,Bl,Dl,Pl,e)}finalize(){this.channel.postMessage({type:Ll,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,s,i){i?.signal?.throwIfAborted();let a=ox();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,l)=>{let u=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};i?.signal?.addEventListener("abort",u,{once:!0});let f=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u),c(()=>{this.channel.postMessage({type:s,identifier:a,name:this.name})})),d.data.type===o)){this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u);let h=new Error;d.data.error!=null&&(h.message=d.data.error.message,h.name=d.data.error.name,h.stack=d.data.error.stack),l(h)}};this.channel.addEventListener("message",f)})}};var sx=r=>{if(r=Object.assign({},nx,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(Nl),n=new De;return t.addEventListener("message",rm(n,t,"requestReadLock","abortReadLockRequest",Sl,Al,_l,Il,Cl)),t.addEventListener("message",rm(n,t,"requestWriteLock","abortWriteLockRequest",Tl,kl,Dl,Pl,Bl)),n}return new Rl(r.name)};var oo=new Map,Zi;function ix(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function xC(r){if(Zi==null&&(Zi=sx(r),!ix(Zi))){let e=Zi;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=oo.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortReadLockRequest",a),s.readLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=oo.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortWriteLockRequest",a),s.writeLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=oo.get(n);o?.finalize()})}return Zi}async function nm(r,e){let t,n,o=new Promise((i,a)=>{t=i,n=a}),s=()=>{n(new At)};return e?.signal?.addEventListener("abort",s,{once:!0}),r.add(async()=>{await new Promise(i=>{t(()=>{e?.signal?.removeEventListener("abort",s),i()})})},{signal:e?.signal}).catch(i=>{n(i)}),o}var ax=(r,e)=>{let t=oo.get(r);if(t!=null)return t;let n=xC(e);if(ix(n))return t=n,oo.set(r,t),t;let o=new Yi({concurrency:1}),s;return t={async readLock(i){if(s!=null)return nm(s,i);s=new Yi({concurrency:e.concurrency,autoStart:!1});let a=s,c=nm(s,i);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{s===a&&(s=null)})}),c},async writeLock(i){return s=null,nm(o,i)},finalize:()=>{oo.delete(r)},queue:o},oo.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var vC={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Xi(r){let e=Object.assign({},vC,r);return ax(e.name,e)}var Ol=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Xi({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ir(this.child),this.started=!0}async stop(){await ar(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async*get(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){t?.signal?.throwIfAborted();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={}){t?.signal?.throwIfAborted();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={}){t?.signal?.throwIfAborted();let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){e?.signal?.throwIfAborted();let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}createSession(e,t){return t?.signal?.throwIfAborted(),this.child.createSession(e,t)}};var om=new xe("/version"),cx=1;async function lx(r){if(!await r.has(om)){await r.put(om,T(`${cx}`));return}let e=await r.get(om),t=B(e);if(parseInt(t,10)!==cx)throw new Error("Unknown datastore version, a datastore migration may be required")}var am={};_e(am,{code:()=>im,decode:()=>BC,decodeOptions:()=>TC,encode:()=>PC,encodeOptions:()=>CC,name:()=>kC,toByteView:()=>fx});var ux=42;function fx(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function EC(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=V.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new I(p.tag,ux),new I(p.bytes,t)]}function SC(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function AC(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}function IC(r){for(let e of r.keys())if(typeof e!="string"||e.length===0)throw new Error("Non-string Map keys are not supported by the IPLD Data Model and cannot be encoded");return null}var sm={float64:!0,typeEncoders:{Map:IC,Object:EC,undefined:SC,number:AC}},CC={...sm,typeEncoders:{...sm.typeEncoders}};function _C(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return V.decode(r.subarray(1))}var Ml={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Ml.tags[ux]=_C;var TC={...Ml,tags:Ml.tags.slice()},kC="dag-cbor",im=113,PC=r=>hn(r,sm),BC=r=>St(fx(r),Ml);var pm={};_e(pm,{code:()=>hm,decode:()=>hx,encode:()=>dx,format:()=>KC,name:()=>VC,parse:()=>qC,stringify:()=>KC});var cm=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===p.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===p.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[p.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)}[p.negint.major](e,t){this[p.uint.major](e,t)}[p.bytes.major](e,t){throw new Error(`${Lr} unsupported type: Uint8Array`)}[p.string.major](e,t){this.prefix(e);let n=Mc(JSON.stringify(t.value));e.push(n.length>32?Bi(n):n)}[p.array.major](e,t){this.prefix(e),this.inRecursive.push({type:p.array,elements:0}),e.push([91])}[p.map.major](e,t){this.prefix(e),this.inRecursive.push({type:p.map,elements:0}),e.push([123])}[p.tag.major](e,t){}[p.float.major](e,t){if(t.type.name==="break"){let i=this.inRecursive.pop();if(i){if(i.type===p.array)e.push([93]);else if(i.type===p.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(`${Lr} 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)}};function DC(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${Lr} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==p.string||n.type!==p.string)throw new Error(`${Lr} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${Lr} unexpected duplicate map keys, this is not supported`)}var LC={addBreakTokens:!0,mapSorter:DC};function lm(r,e){return e=Object.assign({},LC,e),kp(r,new cm,e)}var ws=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 I(p.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 I(p.float,i,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(i)?new I(i>=0?p.uint:p.negint,i,this._pos-e):new I(i>=0?p.uint:p.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 I(p.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,l,u,f;switch(a){case 1:s<128&&(i=s);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(f=(s&31)<<6|c&63,f>127&&(i=f));break;case 3:c=this.data[this._pos+1],l=this.data[this._pos+2],(c&192)===128&&(l&192)===128&&(f=(s&15)<<12|(c&63)<<6|l&63,f>2047&&(f<55296||f>57343)&&(i=f));break;case 4:c=this.data[this._pos+1],l=this.data[this._pos+2],u=this.data[this._pos+3],(c&192)===128&&(l&192)===128&&(u&192)===128&&(f=(s&15)<<18|(c&63)<<12|(l&63)<<6|u&63,f>65535&&f<1114112&&(i=f))}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 I(p.string,Sp(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 I(p.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new I(p.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new I(p.null,null,4);case 102:return this.expect([102,97,108,115,101]),new I(p.false,!1,5);case 116:return this.expect([116,114,117,101]),new I(p.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 I(p.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 I(p.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 I(p.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 I(p.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 um(r,e){return e=Object.assign({tokenizer:new ws(r,e)},e),St(r,e)}function RC(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function OC(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=V.asCID(r);if(!e)return null;let t=e.toString();return[new I(p.map,1/0,1),new I(p.string,"/",1),new I(p.string,t,t.length),new I(p.break,void 0,1)]}function Ul(r){let e=Pe.encode(r).slice(1);return[new I(p.map,1/0,1),new I(p.string,"/",1),new I(p.map,1/0,1),new I(p.string,"bytes",5),new I(p.string,e,e.length),new I(p.break,void 0,1),new I(p.break,void 0,1)]}function Zt(r){return Ul(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function MC(r){return Ul(new Uint8Array(r))}function UC(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function FC(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 $C={typeEncoders:{Object:OC,Buffer:Ul,Uint8Array:Ul,Int8Array:Zt,Uint16Array:Zt,Int16Array:Zt,Uint32Array:Zt,Int32Array:Zt,Float32Array:Zt,Float64Array:Zt,Uint8ClampedArray:Zt,BigInt64Array:Zt,BigUint64Array:Zt,DataView:Zt,ArrayBuffer:MC,undefined:UC,number:FC}},fm=class extends ws{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===p.map){let t=this._next();if(t.type===p.string&&t.value==="/"){let n=this._next();if(n.type===p.string){if(this._next().type!==p.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new I(p.tag,42,0)}if(n.type===p.map){let o=this._next();if(o.type===p.string&&o.value==="bytes"){let s=this._next();if(s.type===p.string){for(let a=0;a<2;a++)if(this._next().type!==p.break)throw new Error("Invalid encoded Bytes form");let i=Pe.decode(`m${s.value}`);return new I(p.bytes,i,s.value.length)}this.tokenBuffer.push(s)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},dm={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};dm.tags[42]=V.parse;var VC="dag-json",hm=297,dx=r=>lm(r,$C),hx=r=>{let e=RC(r),t=Object.assign(dm,{tokenizer:new fm(e,dm)});return um(e,t)},KC=r=>HC.decode(dx(r));var HC=new TextDecoder,qC=r=>hx(zC.encode(r)),zC=new TextEncoder;var xm={};_e(xm,{code:()=>bm,createLink:()=>Sx,createNode:()=>Ex,decode:()=>o_,encode:()=>n_,name:()=>r_,prepare:()=>ym,validate:()=>wm});var GC=new TextDecoder;function mm(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 Fl(r,e){let t;[t,e]=mm(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 px(r,e){let t;return[t,e]=mm(r,e),[t&7,t>>3,e]}function WC(r){let e={},t=r.length,n=0;for(;n<t;){let o,s;if([o,s,n]=px(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]=Fl(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]=Fl(r,n),e.Name=GC.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]=mm(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 mx(r){let e=r.length,t=0,n,o=!1,s;for(;t<e;){let a,c;if([a,c,t]=px(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]=Fl(r,t),n&&(o=!0)}else if(c===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let l;[l,t]=Fl(r,t),n.push(WC(l))}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 yx=new TextEncoder,gx=2**32,jC=2**31;function YC(r,e){let t=e.length;if(typeof r.Tsize=="number"){if(r.Tsize<0)throw new Error("Tsize cannot be negative");if(!Number.isSafeInteger(r.Tsize))throw new Error("Tsize too large for encoding");t=Ji(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=yx.encode(r.Name);t-=n.length,e.set(n,t),t=Ji(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=Ji(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function wx(r){let e=XC(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=Ji(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let o=r.Links.length-1;o>=0;o--){let s=YC(r.Links[o],t.subarray(0,n));n-=s,n=Ji(t,n,s)-1,t[n]=18}return t}function ZC(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+bs(t)}if(typeof r.Name=="string"){let t=yx.encode(r.Name).length;e+=1+t+bs(t)}return typeof r.Tsize=="number"&&(e+=1+bs(r.Tsize)),e}function XC(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+bs(t)}if(r.Links)for(let t of r.Links){let n=ZC(t);e+=1+n+bs(n)}return e}function Ji(r,e,t){e-=bs(t);let n=e;for(;t>=jC;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function bs(r){return r%2===0&&r++,Math.floor((JC(r)+6)/7)}function JC(r){let e=0;return r>=gx&&(r=Math.floor(r/gx),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+QC[r]}var QC=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];var e_=["Data","Links"],t_=["Hash","Name","Tsize"],gm=new TextEncoder;function xx(r,e){if(r===e)return 0;let t=r.Name?gm.encode(r.Name):[],n=e.Name?gm.encode(e.Name):[],o=t.length,s=n.length;for(let i=0,a=Math.min(o,s);i<a;++i)if(t[i]!==n[i]){o=t[i],s=n[i];break}return o<s?-1:s<o?1:0}function bx(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function vx(r){if(typeof r.asCID=="object"){let t=V.asCID(r);if(!t)throw new TypeError("Invalid DAG-PB form");return{Hash:t}}if(typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Hash){let t=V.asCID(r.Hash);try{t||(typeof r.Hash=="string"?t=V.parse(r.Hash):r.Hash instanceof Uint8Array&&(t=V.decode(r.Hash)))}catch(n){throw new TypeError(`Invalid DAG-PB form: ${n.message}`)}t&&(e.Hash=t)}if(!e.Hash)throw new TypeError("Invalid DAG-PB form");return typeof r.Name=="string"&&(e.Name=r.Name),typeof r.Tsize=="number"&&(e.Tsize=r.Tsize),e}function ym(r){if((r instanceof Uint8Array||typeof r=="string")&&(r={Data:r}),typeof r!="object"||Array.isArray(r))throw new TypeError("Invalid DAG-PB form");let e={};if(r.Data!==void 0)if(typeof r.Data=="string")e.Data=gm.encode(r.Data);else if(r.Data instanceof Uint8Array)e.Data=r.Data;else throw new TypeError("Invalid DAG-PB form");if(r.Links!==void 0)if(Array.isArray(r.Links))e.Links=r.Links.map(vx),e.Links.sort(xx);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function wm(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!bx(r,e_))throw new TypeError("Invalid DAG-PB form (extraneous properties)");if(r.Data!==void 0&&!(r.Data instanceof Uint8Array))throw new TypeError("Invalid DAG-PB form (Data must be bytes)");if(!Array.isArray(r.Links))throw new TypeError("Invalid DAG-PB form (Links must be a list)");for(let e=0;e<r.Links.length;e++){let t=r.Links[e];if(!t||typeof t!="object"||Array.isArray(t)||t instanceof Uint8Array||t["/"]&&t["/"]===t.bytes)throw new TypeError("Invalid DAG-PB form (bad link)");if(!bx(t,t_))throw new TypeError("Invalid DAG-PB form (extraneous properties on link)");if(t.Hash===void 0)throw new TypeError("Invalid DAG-PB form (link must have a Hash)");if(t.Hash==null||!t.Hash["/"]||t.Hash["/"]!==t.Hash.bytes)throw new TypeError("Invalid DAG-PB form (link Hash must be a CID)");if(t.Name!==void 0&&typeof t.Name!="string")throw new TypeError("Invalid DAG-PB form (link Name must be a string)");if(t.Tsize!==void 0){if(typeof t.Tsize!="number"||t.Tsize%1!==0)throw new TypeError("Invalid DAG-PB form (link Tsize must be an integer)");if(t.Tsize<0)throw new TypeError("Invalid DAG-PB form (link Tsize cannot be negative)")}if(e>0&&xx(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function Ex(r,e=[]){return ym({Data:r,Links:e})}function Sx(r,e,t){return vx({Hash:t,Name:r,Tsize:e})}function Ax(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var r_="dag-pb",bm=112;function n_(r){wm(r);let e={};return r.Links&&(e.Links=r.Links.map(t=>{let n={};return t.Hash&&(n.Hash=t.Hash.bytes),t.Name!==void 0&&(n.Name=t.Name),t.Tsize!==void 0&&(n.Tsize=t.Tsize),n})),r.Data&&(e.Data=r.Data),wx(e)}function o_(r){let e=Ax(r),t=mx(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let s={};try{s.Hash=V.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}function xs(r){return r?.then!=null}function Ix(r=[],e){let t={[bm]:xm,[zs]:Gs,[im]:am,[hm]:pm,[Dd]:Ya};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let s=e(n);xs(s)?o=await s:o=s,t[o.code]=o}if(o!=null)return o;throw new ji(`Could not load codec for ${n}`)}}function Cx(r=[],e){let t={[gt.code]:gt,[Za.code]:Za,[ke.code]:ke};return r.forEach(n=>{t[n.code]=n}),async n=>{let o=t[n];if(o==null&&e!=null){let s=e(n);xs(s)?o=await s:o=s,t[o.code]=o}if(o!=null)return o;throw new Wi(`No hasher configured for multihash code 0x${n.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`)}}var Lt=class r extends Error{static name="NotFoundError";static code="ERR_NOT_FOUND";name=r.name;code=r.code;constructor(e="Not Found"){super(e)}};var Or=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,bytes:o}of e)await this.put(n,o,t),yield n}get(e,t){throw new Error(".get is not implemented")}async*getMany(e,t){for await(let n of e)yield{cid:n,bytes: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 $l=0,Vl=class extends Or{child;constructor(e){super(),this.child=e}put(e,t,n){return e.multihash.code===$l||this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}*get(e,t){if(e.multihash.code===$l){t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new Lt;yield*this.child.get(e,t)}has(e,t){return e.multihash.code===$l?(t?.signal?.throwIfAborted(),!0):this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===$l){t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function s_(r){return r[Symbol.asyncIterator]!=null}function i_(r,e){let t=0;if(s_(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){await i&&(yield o);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){i===!0&&(yield o);for(let c of n)a(c,t++)&&(yield c)})()}var Xt=i_;function a_(r){return r[Symbol.asyncIterator]!=null}function _x(r){return r?.then!=null}function c_(r,e){let t=0;if(a_(r))return(async function*(){for await(let c of r){let l=e(c,t++);_x(l)&&await l,yield c}})();let n=gs(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();if(typeof e(o,t++)?.then=="function")return(async function*(){yield o;for(let c of n){let l=e(c,t++);_x(l)&&await l,yield c}})();let a=e;return(function*(){yield o;for(let c of n)a(c,t++),yield c})()}var vm=c_;var Kl=class{child;getHasher;log;logger;components;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.components=e,this.child=new Vl(e.blockstore),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new Z("blocks:put:duplicate",e)),e):(n.onProgress?.(new Z("blocks:put:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async o=>o.announce?.(e,n))),n.onProgress?.(new Z("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Xt(e,async({cid:s})=>{let i=await this.child.has(s,t);return i&&t.onProgress?.(new Z("blocks:put-many:duplicate",s)),!i}),o=vm(n,async({cid:s})=>{t.onProgress?.(new Z("blocks:put-many:providers:notify",s)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(s,t)))});t.onProgress?.(new Z("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)){let n=await this.getHasher(e.multihash.code);t.onProgress?.(new Z("blocks:get:providers:get",e));let o=await Tx(e,this.components.blockBrokers,n,{...t,log:this.log});t.onProgress?.(new Z("blocks:get:blockstore:put",e)),await this.child.put(e,o,t),t.onProgress?.(new Z("blocks:get:providers:notify",e)),await Promise.all(this.components.blockBrokers.map(async s=>s.announce?.(e,t))),yield o;return}t.onProgress?.(new Z("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new Z("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(vm(e,async n=>{if(t.offline!==!0&&!await this.child.has(n,t)){let o=await this.getHasher(n.multihash.code);t.onProgress?.(new Z("blocks:get-many:providers:get",n));let s=await Tx(n,this.components.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new Z("blocks:get-many:blockstore:put",n)),await this.child.put(n,s,t),t.onProgress?.(new Z("blocks:get-many:providers:notify",n)),await Promise.all(this.components.blockBrokers.map(async i=>i.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new Z("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new Z("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 Z("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Hl=class extends Kl{started;constructor(e){super(e),this.started=!1}isStarted(){return this.started}async start(){await ir(this.child,...this.components.blockBrokers),this.started=!0}async stop(){await ar(this.child,...this.components.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){let n=this.components.blockBrokers.map(o=>o.createSession==null?o:o.createSession(t));return new Em({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}},Em=class extends Kl{closeController;constructor(e,t){super(e),this.closeController=new AbortController,this.closeController.signal,this.log=e.logger.forComponent(`helia:session-storage:${t.root}`)}close(){this.closeController.abort()}async put(e,t,n={}){let o=me([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:o})}finally{o.clear()}}async*putMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=me([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=me([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=me([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=me([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};function l_(r){return typeof r.retrieve=="function"}var u_=(r,e)=>{if(e==null)throw new _(`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`);return async t=>{let n,o=e.digest(t);if(xs(o)?n=await o:n=o,!W(n.digest,r.multihash.digest))throw new Eo("Hash of downloaded block did not match multihash from passed CID")}};async function Tx(r,e,t,n){let o=u_(r,t),s=new AbortController,i=me([s.signal,n.signal]);s.signal;let a=[];for(let c of e)l_(c)&&a.push(c);try{return await Promise.any(a.map(async c=>{try{let l=!1,u=await c.retrieve(r,{...n,signal:i,validateFn:async f=>{await o(f),l=!0}});return l||await o(u),u}catch(l){throw n.log.error("could not retrieve verified block for %c",r,l),l}}))}finally{s.abort(),i.clear()}}var ea=class extends De{initialPeerSearchComplete;requests;name;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;constructor(e,t){super(),this.name=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.name),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.providers=[],this.evictionFilter=Hn(this.maxProviders),this.initialProviders=t.providers??[]}async retrieve(e,t={}){let n=Pe.encode(e.multihash.bytes),o=this.requests.get(n);if(o!=null)return this.log("join existing request for %c",e),o;let s=le();if(this.requests.set(n,s.promise),this.providers.length===0){let u=!1;this.initialPeerSearchComplete==null&&(u=!0,this.log=this.logger.forComponent(`${this.name}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t)),await this.initialPeerSearchComplete,u&&this.log("found initial session peers for %c",e)}let i=!1,a=new Wt({concurrency:this.maxProviders});a.addEventListener("failure",u=>{this.log.error("error querying provider %o, evicting from session",u.detail.job.options.provider,u.detail.error),this.evict(u.detail.job.options.provider)}),a.addEventListener("success",u=>{i=!0,s.resolve(u.detail.result)}),a.addEventListener("idle",()=>{if(i){this.log.trace("session idle, found block");return}if(t.signal?.aborted===!0){this.log.trace("session idle, signal aborted");return}Promise.resolve().then(async()=>{this.log("no session peers had block for for %c, finding new providers",e);for(let u=0;u<this.minProviders&&this.providers.length!==0;u++){let f=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(f)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),s.resolve(await this.retrieve(e,t))}).catch(u=>{this.log.error("could not find new providers for %c",e,u),s.reject(u)})});let c=u=>{a.add(async()=>this.queryProvider(e,u.detail,t),{provider:u.detail}).catch(f=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,f)})};this.addEventListener("provider",c),Promise.all([...this.providers].map(async u=>a.add(async()=>this.queryProvider(e,u,t),{provider:u}))).catch(u=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c",e,u)});let l=()=>{s.reject(new mt(t.signal?.reason??"Session aborted")),a.abort()};t.signal?.addEventListener("abort",l);try{return await s.promise}finally{this.removeEventListener("provider",c),t.signal?.removeEventListener("abort",l),a.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toEvictionKey(e));let t=this.providers.findIndex(n=>this.equals(n,e));t!==-1&&this.providers.splice(t,1)}isEvicted(e){return this.evictionFilter.has(this.toEvictionKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async findProviders(e,t,n){let o=le(),s=0;return Promise.resolve().then(async()=>{if(this.log("finding %d-%d new provider(s) for %c",t,this.maxProviders,e),this.initialProviders.length>0)for(;s<t&&this.initialProviders.length>0;){let i=this.initialProviders.pop();if(i==null)break;let a=await this.convertToProvider(i,n);if(n.signal?.aborted===!0)break;if(a!=null&&!this.hasProvider(a)&&(this.log("found %d/%d new providers",s,this.maxProviders),this.providers.push(a),this.safeDispatchEvent("provider",{detail:a}),s++,s===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",s);break}}if(s<this.maxProviders)for await(let i of this.findNewProviders(e,n)){if(s===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(i)&&(this.log("found %d/%d new providers",s,this.maxProviders),this.providers.push(i),this.safeDispatchEvent("provider",{detail:i}),s++,s===t&&(this.log("session is ready"),o.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers",s);break}}if(this.log("found %d/%d new session peers",s,this.maxProviders),s<t)throw new Gi(`Found ${s} of ${t} ${this.name} providers for ${e}`)}).catch(i=>{this.log.error("error searching routing for potential session peers for %c",e,i.errors??i),o.reject(i)}),o.promise}};var ql=class{libp2p;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;dns;metrics;log;constructor(e){this.logger=e.logger??pn(),this.log=this.logger.forComponent("helia"),this.getHasher=Cx(e.hashers,e.loadHasher),this.getCodec=Ix(e.codecs,e.loadCodec),this.dns=e.dns??hl(),this.metrics=e.metrics,this.libp2p=e.libp2p,this.events=new De;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,dns:this.dns,metrics:this.metrics,...e.components??{}};this.routing=t.routing=new wl(t,{routers:(e.routers??[]).flatMap(o=>{let s=[o];return o[bo]!=null&&s.push(o[bo]),o[Ao]!=null&&s.push(o[Ao]),s}),providerLookupConcurrency:e.providerLookupConcurrency});let n=new Hl(t);this.pins=new yl(e.datastore,n,this.getCodec),this.blockstore=new Ol(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,t.blockBrokers=e.blockBrokers.map(o=>o(t))}async start(){await lx(this.datastore),await ir(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("start",{detail:this}))}async stop(){await ar(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("stop",{detail:this}))}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await Ui(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 Z("helia:gc:deleted",s))}catch(i){n.log.error("Error during gc",i),e.onProgress?.(new Z("helia:gc:error",i))}})()))}finally{t()}this.log("gc finished")}};var f_=[6,53,56,54,55];function kx(r){return Dx("sni",r)?.value}function Px(r){let e=Dx("tcp",r)?.value;return e==null?"":`:${e}`}function Dx(r,e){return e.find(t=>t.name===r)}function Bx(r){return r.some(({code:e})=>e===448)}function Jt(r,e){let t=Lx[r.name];if(t==null)throw new Error(`Can't interpret protocol ${r.name}`);let n=t(r,e);return r.code===41?`[${n}]`:n}var Lx={ip4:(r,e)=>r.value,ip6:(r,e)=>e.length===0?r.value:`[${r.value}]`,tcp:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`tcp://${Jt(t,e)}:${r.value}`},udp:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`udp://${Jt(t,e)}:${r.value}`},dnsaddr:(r,e)=>r.value,dns4:(r,e)=>r.value,dns6:(r,e)=>r.value,dns:(r,e)=>r.value,ipfs:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`${Jt(t,e)}`},p2p:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return`${Jt(t,e)}`},http:(r,e)=>{let t=Bx(e),n=kx(e),o=Px(e);if(t&&n!=null)return`https://${n}${o}`;let s=t?"https://":"http://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=Jt(i,e);return a=a?.replace("tcp://",""),`${s}${a}`},"http-path":(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e),o=decodeURIComponent(r.value??"");return`${n}${o}`},tls:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return Jt(t,e)},sni:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");return Jt(t,e)},https:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e);return n=n?.replace("tcp://",""),`https://${n}`},ws:(r,e)=>{let t=Bx(e),n=kx(e),o=Px(e);if(t&&n!=null)return`wss://${n}${o}`;let s=t?"wss://":"ws://",i=e.pop();if(i==null)throw new Error("Unexpected end of multiaddr");let a=Jt(i,e);return a=a?.replace("tcp://",""),`${s}${a}`},wss:(r,e)=>{let t=e.pop();if(t==null)throw new Error("Unexpected end of multiaddr");let n=Jt(t,e);return n=n?.replace("tcp://",""),`wss://${n}`}};function zl(r,e){let n=oe(r).getComponents(),o=n.pop();if(o==null)throw new Error("Unexpected end of multiaddr");let s=Lx[o.name];if(s==null)throw new Error(`No interpreter found for ${o.name}`);let i=s(o,n)??"";return e?.assumeHttp!==!1&&f_.includes(o.code)&&(i=i.replace(/^.*:\/\//,""),o.value==="443"?i=`https://${i}`:i=`http://${i}`),(i.startsWith("http://")||i.startsWith("https://")||i.startsWith("ws://")||i.startsWith("wss://"))&&(i=new URL(i).toString(),i.endsWith("/")&&(i=i.substring(0,i.length-1))),i}var de=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),q=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Nx=r=>({match:e=>r.match(e)===!1?e:!1}),re=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),nt=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),ue=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function he(...r){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var d_=q(421),Rx=he(d_),Wl=q(54),jl=q(55),Yl=q(56),Am=q(53),eF=he(Wl,re(q(421))),tF=he(jl,re(q(421))),rF=he(Yl,re(q(421))),Ox=he(nt(Am,Yl,Wl,jl),re(q(421))),Mx=ue(q(4),re(q(43))),Ux=ue(re(q(42)),q(41),re(q(43))),Im=nt(Mx,Ux),so=nt(Im,Am,Wl,jl,Yl),nF=he(nt(Im,ue(nt(Am,Yl,Wl,jl),re(q(421))))),Cm=he(Mx),_m=he(Ux),oF=he(Im),Tm=ue(so,q(6)),ta=ue(so,q(273)),ra=he(ue(Tm,re(q(421)))),sF=he(ta),km=ue(ta,de(460),re(q(421))),Zl=ue(ta,de(461),re(q(421))),h_=nt(km,Zl),iF=he(km),Fx=he(Zl),Sm=nt(so,Tm,ta,km,Zl),$x=nt(ue(Sm,de(477),re(q(421)))),io=he($x),Vx=nt(ue(Sm,de(478),re(q(421))),ue(Sm,de(448),re(q(449)),de(477),re(q(421)))),na=he(Vx),Kx=ue(ta,de(280),re(q(466)),re(q(466)),re(q(421))),Pm=he(Kx),Hx=ue(Zl,de(465),re(q(466)),re(q(466)),re(q(421))),Bm=he(Hx),Gl=nt($x,Vx,ue(Tm,re(q(421))),ue(h_,re(q(421))),ue(so,re(q(421))),Kx,Hx,q(421)),aF=he(Gl),p_=ue(re(Gl),de(290),Nx(de(281)),re(q(421))),ao=he(p_),m_=nt(ue(Gl,de(290),de(281),re(q(421))),ue(Gl,de(281),re(q(421))),ue(de(281),re(q(421)))),Dm=he(m_),g_=nt(ue(so,q(6),de(480),re(q(421))),ue(so,de(480),re(q(421)))),qx=he(g_),y_=ue(so,nt(ue(q(6,"443"),de(480)),ue(q(6),de(443)),ue(q(6),de(448),de(480)),ue(de(448),de(480)),de(448),de(443)),re(q(421))),zx=he(y_),w_=nt(ue(q(777),re(q(421)))),cF=he(w_),b_=nt(ue(q(400),re(q(421)))),lF=he(b_);function Lm(r,e,t){return r.filter(n=>{if(zx.matches(n)||e&&qx.matches(n))return t||Ox.matches(n)?!0:zt(n)===!1;if(!e&&t){let{host:o}=te(n);if(o==="127.0.0.1"||o==="localhost"||o.endsWith(".localhost"))return!0}return!1})}async function*Xl(r,e,t,n,o,s={}){for await(let i of e.findProviders(r,s)){let a=Lm(i.multiaddrs,n,o);if(a.length===0)continue;let c=zl(a[0]);yield new vs(c,{logger:t,transformRequestInit:s.transformRequestInit})}}async function Gx(r,e,t){let{signal:n,log:o}=t??{},s=r.headers.get("content-length");if(s!=null){let c=parseInt(s,10);if(c>e)throw o?.error("content-length header (%d) is greater than the limit (%d)",c,e),r.body!=null&&await r.body.cancel().catch(l=>{o?.error("error cancelling response body after content-length check - %e",l)}),new Error(`Content-Length header (${c}) is greater than the limit (${e}).`)}let i=r.body?.getReader();if(i==null)throw new Error("Response body is not readable");let a=new ae;try{for(;;){if(n?.aborted===!0)throw new Error("Response body read was aborted.");let{done:c,value:l}=await i.read();if(c)break;if(a.append(l),a.byteLength>e)throw new Error(`Response body is greater than the limit (${e}), received ${a.byteLength} bytes.`)}}finally{i.cancel().catch(c=>{o?.error("error cancelling reader - %e",c)}).finally(()=>{i.releaseLock()})}return a.subarray()}var vs=class{url;#e=0;#t=0;#r=0;#a=0;#i=new Map;log;transformRequestInit;constructor(e,{logger:t,transformRequestInit:n}){this.url=e instanceof URL?e:new URL(e),this.transformRequestInit=n,this.log=t.forComponent(`helia:trustless-gateway-block-broker:${this.url.hostname}`)}#l(e){let t=e.multihash.bytes;return Pe.encode(t)}async getRawBlock(e,{signal:t,maxSize:n=Wx}={}){let o=new URL(this.url.toString());if(o.pathname=`/ipfs/${e.toString()}`,o.search="?format=raw",t?.aborted===!0)throw new Error(`Signal to fetch raw block for CID ${e} from gateway ${this.url} was aborted prior to fetch`);let s=this.#l(e),i=new AbortController,a=()=>{i.abort()};t?.addEventListener("abort",a);try{let c=this.#i.get(s);if(c==null){this.#e++;let l={signal:i.signal,headers:{Accept:"application/vnd.ipld.raw"},cache:"force-cache"},u=this.transformRequestInit!=null?await this.transformRequestInit(l):l;c=fetch(o.toString(),u).then(async f=>{if(this.log("GET %s %d",o,f.status),!f.ok)throw this.#t++,new Error(`unable to fetch raw block for CID ${e} from gateway ${this.url}`);let d=await Gx(f,n,{signal:i.signal,log:this.log});return this.#a++,d}),this.#i.set(s,c)}return await c}catch{throw t?.aborted===!0?new Error(`fetching raw block for CID ${e} from gateway ${this.url} was aborted`):(this.#t++,new Error(`unable to fetch raw block for CID ${e}`))}finally{t?.removeEventListener("abort",a),this.#i.delete(s)}}reliability(){return this.#e===0?1:this.#r>0?-1/0:this.#a/(this.#e+this.#t*3)}incrementInvalidBlocks(){this.#r++}getStats(){return{attempts:this.#e,errors:this.#t,invalidBlocks:this.#r,successes:this.#a,pendingResponses:this.#i.size}}};var Nm=class extends ea{routing;allowInsecure;allowLocal;transformRequestInit;constructor(e,t){super(e,{...t,name:"helia:trustless-gateway:session"}),this.routing=e.routing,this.allowInsecure=t.allowInsecure??Jl,this.allowLocal=t.allowLocal??Ql,this.transformRequestInit=t.transformRequestInit}async queryProvider(e,t,n){this.log("fetching BLOCK for %c from %s",e,t.url);let o=await t.getRawBlock(e,n);return this.log.trace("got block for %c from %s",e,t.url),await n.validateFn?.(o),o}async*findNewProviders(e,t={}){yield*Xl(e,this.routing,this.logger,this.allowInsecure,this.allowLocal,{...t,transformRequestInit:this.transformRequestInit})}toEvictionKey(e){return e.url.toString()}equals(e,t){return e.url.toString()===t.url.toString()}async convertToProvider(e,t){if(sr(e))return;let n=Lm(Array.isArray(e)?e:[e],this.allowInsecure,this.allowLocal);if(n.length===0)return;let o=zl(n[0]);return new vs(o,{logger:this.logger,transformRequestInit:this.transformRequestInit})}};function jx(r,e){return new Nm(r,e)}var eu=class{allowInsecure;allowLocal;transformRequestInit;routing;log;logger;constructor(e,t={}){this.log=e.logger.forComponent("helia:trustless-gateway-block-broker"),this.logger=e.logger,this.routing=e.routing,this.allowInsecure=t.allowInsecure??Jl,this.allowLocal=t.allowLocal??Ql,this.transformRequestInit=t.transformRequestInit}async retrieve(e,t={}){let n=[];for await(let o of Xl(e,this.routing,this.logger,this.allowInsecure,this.allowLocal,{...t,transformRequestInit:this.transformRequestInit})){this.log("getting block for %c from %s",e,o.url);try{let s=await o.getRawBlock(e,t);this.log.trace("got block for %c from %s",e,o.url);try{await t.validateFn?.(s)}catch(i){this.log.error("failed to validate block for %c from %s",e,o.url,i);continue}return s}catch(s){if(this.log.error("failed to get block for %c from %s",e,o.url,s),s instanceof Error?n.push(s):n.push(new Error(`Unable to fetch raw block for CID ${e} from gateway ${o.url}`)),t.signal?.aborted===!0){this.log.trace("request aborted while fetching raw block for CID %c from gateway %s",e,o.url);break}}}throw n.length>0?new AggregateError(n,`Unable to fetch raw block for CID ${e} from any gateway`):new Error(`Unable to fetch raw block for CID ${e} from any gateway`)}createSession(e={}){return jx({logger:this.logger,routing:this.routing},{...e,allowLocal:this.allowLocal,allowInsecure:this.allowInsecure,transformRequestInit:this.transformRequestInit})}};var Jl=!1,Ql=!1,Wx=2097152;function Rm(r={}){return e=>new eu(e,r)}var Yx=Symbol.for("@libp2p/content-routing");var Om=Symbol.for("@libp2p/peer-id");var Zx=Symbol.for("@libp2p/peer-routing");var tu=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var gr=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var ru=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},nu=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};X.formatters.b=r=>r==null?"undefined":ee.baseEncode(r);X.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);X.formatters.m=r=>r==null?"undefined":Pe.baseEncode(r);X.formatters.p=r=>r==null?"undefined":r.toString();X.formatters.c=r=>r==null?"undefined":r.toString();X.formatters.k=r=>r==null?"undefined":r.toString();X.formatters.a=r=>r==null?"undefined":r.toString();X.formatters.e=r=>r==null?"undefined":Xx(r.stack)??Xx(r.message)??r.toString();function x_(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Mm(r){let e=x_(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>Mm(`${r}:${t}`)})}function Xx(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var Jx=Symbol.for("nodejs.util.inspect.custom"),v_=114,oa=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Om]=!0;toString(){return this.string==null&&(this.string=ee.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return V.createV1(v_,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return W(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return W(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Jx](){return`PeerId(${this.toString()})`}},ou=class extends oa{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},su=class extends oa{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},iu=class extends oa{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},E_=2336,sa=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=ke.digest(T(this.url))}[Jx](){return`PeerId(${this.url})`}[Om]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return V.createV1(E_,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=B(e)),e.toString()===this.toString())}};var S_=114,Qx=2336;function ev(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Xe(ee.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return A_(V.parse(r));if(e==null)throw new tu('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Xe(e.decode(r))}return tv(t)}function tv(r){if(C_(r))return new ou({multihash:r});if(I_(r))try{let e=jo(r);if(e.type==="Ed25519")return new su({multihash:r,publicKey:e});if(e.type==="secp256k1")return new iu({multihash:r,publicKey:e})}catch{let t=B(r.digest);return new sa(new URL(t))}throw new nu("Supplied PeerID Multihash is invalid")}function A_(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==S_&&r.code!==Qx)throw new ru("Supplied PeerID CID is invalid");if(r.code===Qx){let e=B(r.multihash.digest);return new sa(new URL(e))}return tv(r.multihash)}function I_(r){return r.code===ke.code}function C_(r){return r.code===gt.code}var Ge=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},Mr=class extends Error{static name="ValidationError";name="ValidationError"},ia=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},au=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function Fm(r){return e=>B(e,r)}function $m(r){return e=>T(e,r)}function Es(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function co(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function rv(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=T(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=co(n);return ye([t,o],t.length+o.length)}function nv(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ge.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=co(n);return ye([t,o],t.length+o.length)}function Vm(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=B(e,"base32"),o=Es(t);return`${n}:${o}`}var Km=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new Ge("Invalid byte value in IP address");e[n]=o}),e},ov=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=at(t[n]),i;s&&(i=Km(t[n]),t[n]=B(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,B(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new Ge("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},sv=function(r){if(r.byteLength!==4)throw new Ge("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},iv=function(r){if(r.byteLength!==16)throw new Ge("IPv6 address was incorrect length");let e=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new Ge(`Invalid IPv6 address "${t}"`)}};function av(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new Ge(`Invalid IPv6 address "${r}"`)}}var Um=Object.values(An).map(r=>r.decoder),__=(function(){let r=Um[0].or(Um[1]);return Um.slice(2).forEach(e=>r=r.or(e)),r})();function cv(r){return __.decode(r)}function lv(r){return e=>r.encoder.encode(e)}function T_(r){if(parseInt(r).toString()!==r)throw new Mr("Value must be an integer")}function k_(r){if(r<0)throw new Mr("Value must be a positive integer, or zero")}function P_(r){return e=>{if(e>r)throw new Mr(`Value must be smaller than or equal to ${r}`)}}function B_(...r){return e=>{for(let t of r)t(e)}}var aa=B_(T_,k_,P_(65535));var Me=-1,Hm=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new au(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Ct=new Hm,aT=[{code:4,name:"ip4",size:32,valueToBytes:Km,bytesToValue:sv,validate:r=>{if(!at(r))throw new Mr(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:273,name:"udp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:33,name:"dccp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:41,name:"ip6",size:128,valueToBytes:ov,bytesToValue:iv,stringToValue:av,validate:r=>{if(!Xo(r))throw new Mr(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:Me},{code:43,name:"ipcidr",size:8,bytesToValue:Fm("base10"),valueToBytes:$m("base10")},{code:53,name:"dns",size:Me,resolvable:!0},{code:54,name:"dns4",size:Me,resolvable:!0},{code:55,name:"dns6",size:Me,resolvable:!0},{code:56,name:"dnsaddr",size:Me,resolvable:!0},{code:132,name:"sctp",size:16,valueToBytes:co,bytesToValue:Es,validate:aa},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:Me,path:!0,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:Me,bytesToValue:Fm("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?$m("base58btc")(r):V.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Vm,valueToBytes:rv},{code:445,name:"onion3",size:296,bytesToValue:Vm,valueToBytes:nv},{code:446,name:"garlic64",size:Me},{code:447,name:"garlic32",size:Me},{code:448,name:"tls"},{code:449,name:"sni",size:Me},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:Me,bytesToValue:lv(qs),valueToBytes:cv},{code:480,name:"http"},{code:481,name:"http-path",size:Me,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:Me}];aT.forEach(r=>{Ct.addProtocol(r)});function uv(r){let e=[],t=0;for(;t<r.length;){let n=fr(r,t),o=Ct.getProtocol(n),s=be(n),i=cT(o,r,t+s),a=0;i>0&&o.size===Me&&(a=be(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??B(f)}e.push(l),t+=c}return e}function fv(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=Ct.getProtocol(n.code),s=be(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??T(n.value),a=i.byteLength,o.size===Me&&(c=be(a)));let l=new Uint8Array(s+c+a),u=0;_r(n.code,l,u),u+=s,i!=null&&(o.size===Me&&(_r(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return ye(t,e)}function dv(r){if(r.charAt(0)!=="/")throw new Ge('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Ct.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new Ge(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new Ge(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new Ge("Incomplete multiaddr");return e}function hv(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=Ct.getProtocol(e.code);if(t==null)throw new Ge(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function cT(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:fr(e,t)}var lT=Symbol.for("nodejs.util.inspect.custom"),Xm=Symbol.for("@multiformats/multiaddr"),uT=[53,54,55,56],Zm=class extends Error{constructor(e="No available resolver"){super(e),this.name="NoAvailableResolverError"}};function fT(r){if(r==null&&(r="/"),mv(r))return r.getComponents();if(r instanceof Uint8Array)return uv(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),dv(r);if(Array.isArray(r))return r;throw new Ge("Must be a string, Uint8Array, Component[], or another Multiaddr")}var du=class r{[Xm]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=fT(e),t.validate!==!1&&dT(this)}get bytes(){return this.#r==null&&(this.#r=fv(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=hv(this.#e)),this.#t}toJSON(){return this.toString()}toOptions(){let e,t,n,o,s="";for(let{code:a,name:c,value:l}of this.#e)a===42&&(s=`%${l??""}`),uT.includes(a)&&(t="tcp",o=443,n=`${l??""}${s}`,e=a===55?6:4),(a===6||a===273)&&(t=c==="tcp"?"tcp":"udp",o=parseInt(l??"")),(a===4||a===41)&&(t="tcp",n=`${l??""}${s}`,e=a===41?6:4);if(e==null||t==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:o}}getComponents(){return[...this.#e]}protos(){return this.#e.map(({code:e,value:t})=>{let n=Ct.getProtocol(e);return{code:e,size:n.size??0,name:n.name,resolvable:!!n.resolvable,path:!!n.path}})}protoCodes(){return this.#e.map(({code:e})=>e)}protoNames(){return this.#e.map(({name:e})=>e)}tuples(){return this.#e.map(({code:e,value:t})=>{if(t==null)return[e];let n=Ct.getProtocol(e),o=[e];return t!=null&&o.push(n.valueToBytes?.(t)??T(t)),o})}stringTuples(){return this.#e.map(({code:e,value:t})=>t==null?[e]:[e,t])}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new ia(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}getPeerId(){try{let e=[];this.#e.forEach(({code:n,value:o})=>{n===421&&e.push([n,o]),n===290&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?B(ee.decode(`z${n}`),"base58btc"):B(V.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){for(let e of this.#e)if(Ct.getProtocol(e.code).path)return e.value??null;return null}equals(e){return W(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(s=>s.resolvable);if(t==null)return[this];let n=pv.get(t.name);if(n==null)throw new Zm(`no available resolver for ${t.name}`);return(await n(this,e)).map(s=>la(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(){return!(this.#e.length!==2||this.#e[0].code!==4&&this.#e[0].code!==41||this.#e[1].code!==6&&this.#e[1].code!==273)}[lT](){return`Multiaddr(${this.toString()})`}};function dT(r){r.getComponents().forEach(e=>{let t=Ct.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}var pv=new Map;function mv(r){return!!r?.[Xm]}function la(r){return new du(r)}async function*hu(r,e={}){let t=r.getReader();try{for(;;){let n=await t.read();if(n.done)return;yield n.value}}finally{e.preventCancel!==!0&&await t.cancel(),t.releaseLock()}}X.formatters.b=r=>r==null?"undefined":ee.baseEncode(r);X.formatters.t=r=>r==null?"undefined":ge.baseEncode(r);X.formatters.m=r=>r==null?"undefined":Pe.baseEncode(r);X.formatters.p=r=>r==null?"undefined":r.toString();X.formatters.c=r=>r==null?"undefined":r.toString();X.formatters.k=r=>r==null?"undefined":r.toString();X.formatters.a=r=>r==null?"undefined":r.toString();X.formatters.e=r=>r==null?"undefined":gv(r.stack)??gv(r.message)??r.toString();function hT(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function lo(r){let e=hT(`${r}:trace`);return X.enabled(`${r}:trace`)&&X.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=X(`${r}:trace`)),Object.assign(X(r),{error:X(`${r}:error`),trace:e,newScope:t=>lo(`${r}:${t}`)})}function gv(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var bT=vn(Qm(),1);var Qt=class extends Error{static name="SignatureVerificationError";constructor(e="Record signature verification failed"){super(e),this.name="SignatureVerificationError"}},pu=class extends Error{static name="RecordExpiredError";constructor(e="Record has expired"){super(e),this.name="RecordExpiredError"}},Ss=class extends Error{static name="UnsupportedValidityError";constructor(e="The validity type is unsupported"){super(e),this.name="UnsupportedValidityError"}},mu=class extends Error{static name="RecordTooLargeError";constructor(e="The record is too large"){super(e),this.name="RecordTooLargeError"}},gu=class extends Error{static name="InvalidValueError";constructor(e="Value must be a valid content path starting with /"){super(e),this.name="InvalidValueError"}},yu=class extends Error{static name="InvalidRecordDataError";constructor(e="Invalid record data"){super(e),this.name="InvalidRecordDataError"}},ua=class extends Error{static name="InvalidEmbeddedPublicKeyError";constructor(e="Invalid embedded public key"){super(e),this.name="InvalidEmbeddedPublicKeyError"}};var er;(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=()=>ci(t)})(e=r.ValidityType||(r.ValidityType={}));let n;r.codec=()=>(n==null&&(n=Ke((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,i={})=>{let a={},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let l=o.uint32();switch(l>>>3){case 1:{a.value=o.bytes();break}case 2:{a.signatureV1=o.bytes();break}case 3:{a.validityType=r.ValidityType.codec().decode(o);break}case 4:{a.validity=o.bytes();break}case 5:{a.sequence=o.uint64();break}case 6:{a.ttl=o.uint64();break}case 7:{a.pubKey=o.bytes();break}case 8:{a.signatureV2=o.bytes();break}case 9:{a.data=o.bytes();break}default:{o.skipType(l&7);break}}}return a})),n),r.encode=o=>Ve(o,r.codec()),r.decode=(o,s)=>$e(o,r.codec(),s)})(er||(er={}));var wu=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var pT=lo("ipns:utils"),yv=T("/ipns/");var mT=0,gT=18;function wv(r){let e;if(r.pubKey!=null)try{e=an(r.pubKey)}catch(t){throw pT.error(t),t}if(e!=null)return e}function bv(r){let e=T("ipns-signature:");return ye([e,r])}function fa(r){return"signatureV1"in r?er.encode({value:T(r.value),signatureV1:r.signatureV1,validityType:r.validityType,validity:T(r.validity),sequence:r.sequence,ttl:r.ttl,pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data}):er.encode({pubKey:r.pubKey,signatureV2:r.signatureV2,data:r.data})}function gn(r){let e=er.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 new Qt("Missing data or signatureV2");let t=xv(e.data),n=yT(t.Value),o=B(t.Validity);if(e.value!=null&&e.signatureV1!=null)return wT(e),{value:n,validityType:er.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:er.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")}function da(r){return ye([yv,r.bytes])}function As(r){let e=Xe(r.slice(yv.length));if(!bu(e,mT)&&!bu(e,gT))throw new wu("Multihash in IPNS key was not identity or sha2-256");return e}function xv(r){let e=St(r);if(e.ValidityType===0)e.ValidityType=er.ValidityType.EOL;else throw new Ss("The validity type is unsupported");return Number.isInteger(e.Sequence)&&(e.Sequence=BigInt(e.Sequence)),Number.isInteger(e.TTL)&&(e.TTL=BigInt(e.TTL)),e}function yT(r){let e=B(r).trim();if(e.startsWith("/"))return e;try{return`/ipfs/${V.decode(r).toV1().toString()}`}catch{}try{return`/ipfs/${V.parse(e).toV1().toString()}`}catch{}throw new gu("Value must be a valid content path starting with /")}function wT(r){if(r.data==null)throw new yu("Record data is missing");let e=xv(r.data);if(!W(e.Value,r.value??new Uint8Array(0)))throw new Qt('Field "value" did not match between protobuf and CBOR');if(!W(e.Validity,r.validity??new Uint8Array(0)))throw new Qt('Field "validity" did not match between protobuf and CBOR');if(e.ValidityType!==r.validityType)throw new Qt('Field "validityType" did not match between protobuf and CBOR');if(e.Sequence!==r.sequence)throw new Qt('Field "sequence" did not match between protobuf and CBOR');if(e.TTL!==r.ttl)throw new Qt('Field "ttl" did not match between protobuf and CBOR')}function bu(r,e){return r.code===e}var M9=lo("ipns"),U9=300*1e9,xT="/ipns/",F9=xT.length;var vv=vn(Qm(),1);var xu=lo("ipns:validator"),vT=1024*10;async function ET(r,e){let t=gn(e),n;try{let o=bv(t.data);n=await r.verify(o,t.signatureV2)}catch{n=!1}if(!n)throw xu.error("record signature verification failed"),new Qt("Record signature verification failed");if(t.validityType===er.ValidityType.EOL){if(vv.default.fromString(t.validity).toDate().getTime()<Date.now())throw xu.error("record has expired"),new pu("record has expired")}else if(t.validityType!=null)throw xu.error("the validity type is unsupported"),new Ss("The validity type is unsupported");xu("ipns record for %s is valid",t.value)}async function Ev(r,e){if(e.byteLength>vT)throw new mu("The record is too large");let t=As(r),n;bu(t,0)&&(n=jo(t));let o=gn(e),s=wv(o)??n;if(s==null)throw new ua("Could not extract public key from IPNS record or routing key");let i=da(s.toMultihash());if(!W(i,r))throw new ua("Embedded public key did not match routing key");await ET(s,e)}var vu=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MESSAGE_LENGTH"};async function*ha(r,e={}){let t=/\r?\n/,n=new TextDecoder("utf8"),o="";for await(let s of r){if(typeof s=="string"&&(s=new TextEncoder().encode(s)),ko(s)&&(s=s.subarray()),o+=n.decode(s,{stream:!0}),o.length>(e?.maxMessageLength??o.length))throw new vu("Incoming message too long");let i=o.split(t);o=i.pop()??"";for(let a=0;a<i.length;a++)yield JSON.parse(i[a])}o+=n.decode(),o!==""&&(yield JSON.parse(o))}var Is=class extends Error{static name="InvalidRequestError";constructor(e="Invalid request"){super(e),this.name="InvalidRequestError"}},tr=class extends Error{static name="BadResponseError";constructor(e="Bad response"){super(e),this.name="BadResponseError"}};function ST(r){return r[Symbol.asyncIterator]!=null}function AT(r){if(ST(r))return(async()=>{for await(let e of r)return e})();for(let e of r)return e}var Sv=AT;var Av=T("/ipns/");function Iv(r){return W(r.subarray(0,Av.byteLength),Av)}var Eu=class{client;constructor(e){this.client=e}async*findProviders(e,t={}){yield*sl(this.client.getProviders(e,t),n=>({id:n.ID,multiaddrs:n.Addrs??[]}))}async provide(){}async cancelReprovide(){}async put(e,t,n){if(!Iv(e))return;let o=As(e),s=V.createV1(114,o),i=gn(t);await this.client.putIPNS(s,i,n)}async get(e,t){if(!Iv(e))throw new gr("Not found");let n=As(e),o=V.createV1(114,n);try{let s=await this.client.getIPNS(o,t);return fa(s)}catch(s){throw s.name==="BadResponseError"?new gr("Not found"):s}}},Su=class{client;constructor(e){this.client=e}async findPeer(e,t={}){let n=await Sv(this.client.getPeers(e,t));if(n!=null)return{id:n.ID,multiaddrs:n.Addrs??[]};throw new gr("Not found")}async*getClosestPeers(e,t={}){}};var We=Mm("delegated-routing-v1-http-api-client"),Au={concurrentRequests:4,timeout:3e4,cacheTTL:300*1e3,cacheName:"delegated-routing-v1-cache"},Iu=class{started;httpQueue;shutDownController;clientUrl;timeout;contentRouting;peerRouting;filterAddrs;filterProtocols;inFlightRequests;cacheName;cache;cacheTTL;constructor(e,t={}){this.started=!1,this.shutDownController=new AbortController,this.shutDownController.signal,this.httpQueue=new ro({concurrency:t.concurrentRequests??Au.concurrentRequests}),this.inFlightRequests=new Map,this.clientUrl=e instanceof URL?e:new URL(e),this.timeout=t.timeout??Au.timeout,this.filterAddrs=t.filterAddrs,this.filterProtocols=t.filterProtocols,this.contentRouting=new Eu(this),this.peerRouting=new Su(this),this.cacheName=t.cacheName??Au.cacheName,this.cacheTTL=t.cacheTTL??Au.cacheTTL}get[Yx](){return this.contentRouting}get[Zx](){return this.peerRouting}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cacheTTL>0&&(this.cache=await globalThis.caches?.open(this.cacheName),this.cache!=null&&We("cache enabled with ttl %d",this.cacheTTL)))}async stop(){this.httpQueue.clear(),this.shutDownController.abort(),await globalThis.caches?.delete(this.cacheName),this.started=!1}async*getProviders(e,t={}){We("getProviders starts: %c",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));try{await s.promise;let a=new URL(`${this.clientUrl}routing/v1/providers/${e.toString()}`);this.#t(a,t.filterAddrs,t.filterProtocols);let c={headers:{Accept:"application/x-ndjson"},signal:o},l=await this.#r(a.toString(),c);if(l==null)throw new tr("No response received");if(!l.ok)throw l.status===404?new gr("No matching records found"):l.status===422?new Is("Request does not conform to schema or semantic constraints"):new tr(`Unexpected status code: ${l.status}`);if(l.body==null)throw new tr("Routing response had no body");let u=l.headers.get("Content-Type");if(u==null)throw new tr("No Content-Type header received");if(u?.startsWith("application/json")){let f=await l.json();for(let d of f.Providers){let h=this.#e(d);h!=null&&(yield h)}}else if(u.includes("application/x-ndjson"))for await(let f of ha(hu(l.body))){let d=this.#e(f);d!=null&&(yield d)}else throw new tr(`Unsupported Content-Type: ${u}`)}finally{o.clear(),i.resolve(),We("getProviders finished: %c",e)}}async*getPeers(e,t={}){We("getPeers starts: %c",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));try{await s.promise;let a=new URL(`${this.clientUrl}routing/v1/peers/${e.toCID().toString()}`);this.#t(a,t.filterAddrs,t.filterProtocols);let c={headers:{Accept:"application/x-ndjson"},signal:o},l=await this.#r(a.toString(),c);if(l.status===404)throw new gr("No matching records found");if(l.status===422)throw new Is("Request does not conform to schema or semantic constraints");if(l.body==null)throw new tr("Routing response had no body");if(l.headers.get("Content-Type")==="application/json"){let f=await l.json();for(let d of f.Peers){let h=this.#e(d);h!=null&&(yield h)}}else for await(let f of ha(hu(l.body))){let d=this.#e(f);d!=null&&(yield d)}}catch(a){We.error("getPeers errored:",a)}finally{o.clear(),i.resolve(),We("getPeers finished: %c",e)}}async getIPNS(e,t={}){We("getIPNS starts: %s",e);let n=AbortSignal.timeout(this.timeout),o=me([this.shutDownController.signal,n,t.signal]);let s=le(),i=le();this.httpQueue.add(async()=>(s.resolve(),i.promise));let a=`${this.clientUrl}routing/v1/ipns/${e}`;try{await s.promise;let c={headers:{Accept:"application/vnd.ipfs.ipns-record"},signal:o},l=await this.#r(a,c);if(We("getIPNS GET %s %d",a,l.status),l.status===404)throw new gr("No matching records found");if(l.status===422)throw new Is("Request does not conform to schema or semantic constraints");if(l.body==null)throw new tr("GET ipns response had no body");let u=await l.arrayBuffer(),f=new Uint8Array(u,0,u.byteLength);return t.validate!==!1&&await Ev(da(e.multihash),f),gn(f)}catch(c){throw We.error("getIPNS GET %s error:",a,c),c}finally{o.clear(),i.resolve(),We("getIPNS finished: %s",e)}}async putIPNS(e,t,n={}){We("putIPNS starts: %c",e);let o=AbortSignal.timeout(this.timeout),s=me([this.shutDownController.signal,o,n.signal]);let i=le(),a=le();this.httpQueue.add(async()=>(i.resolve(),a.promise));let c=`${this.clientUrl}routing/v1/ipns/${e}`;try{await i.promise;let l=fa(t),u={method:"PUT",headers:{"Content-Type":"application/vnd.ipfs.ipns-record"},body:l,signal:s},f=await this.#r(c,u);if(We("putIPNS PUT %s %d",c,f.status),f.status!==200)throw new tr("PUT ipns response had status other than 200")}catch(l){throw We.error("putIPNS PUT %s error:",c,l.stack),l}finally{s.clear(),a.resolve(),We("putIPNS finished: %c",e)}}#e(e){try{let t=[],n=e.Addrs?.map(la)??[];return e.Protocols!=null&&t.push(...e.Protocols),e.Protocol!=null&&(t.push(e.Protocol),delete e.Protocol),{...e,Schema:"peer",ID:ev(e.ID),Addrs:n,Protocols:t}}catch(t){We.error("could not conform record to peer schema",t)}}#t(e,t,n){if(t!=null||this.filterAddrs!=null){let o=t?.join(",")??this.filterAddrs?.join(",")??"";o!==""&&e.searchParams.set("filter-addrs",o)}if(n!=null||this.filterProtocols!=null){let o=n?.join(",")??this.filterProtocols?.join(",")??"";o!==""&&e.searchParams.set("filter-protocols",o)}}async#r(e,t){let n=t.method??"GET",o=`${n}-${e}`;if(n==="GET"){let c=await this.cache?.match(e);if(c!=null){if(parseInt(c.headers.get("x-cache-expires")??"0",10)>Date.now())return We("returning cached response for %s",o),c;await this.cache?.delete(e)}}let s=this.inFlightRequests.get(o);if(s!=null){let c=await s;return We("deduplicating outgoing request for %s",o),c.clone()}let i=fetch(e,t).then(async c=>{if(this.cache!=null&&c.ok&&n==="GET"){let l=Date.now()+this.cacheTTL,u=new Headers(c.headers);u.set("x-cache-expires",l.toString());let f=new Response(c.clone().body,{status:c.status,statusText:c.statusText,headers:u});await this.cache.put(e,f)}return c}).finally(()=>{this.inFlightRequests.delete(o)});return this.inFlightRequests.set(o,i),await i}};function Cv(r,e={}){return new Iu(new URL(r),e)}var _v="[a-fA-F\\d:]",yn=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${_v})|(?<=${_v})(?=\\s|$))`:"",rr="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Be="[a-fA-F\\d]{1,4}",Cu=`
|
|
5
5
|
(?:
|
|
6
6
|
(?:${Be}:){7}(?:${Be}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
7
7
|
(?:${Be}:){6}(?:${rr}|:${Be}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
|