@helia/utils 2.5.2-73a28eda → 2.5.2-a464d83a
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 +22 -2
- package/dist/index.min.js.map +4 -4
- package/dist/src/abstract-session.d.ts +3 -3
- package/dist/src/abstract-session.d.ts.map +1 -1
- package/dist/src/abstract-session.js.map +1 -1
- package/dist/src/graph-walker.d.ts +3 -21
- package/dist/src/graph-walker.d.ts.map +1 -1
- package/dist/src/graph-walker.js +20 -17
- package/dist/src/graph-walker.js.map +1 -1
- package/dist/src/index.d.ts +32 -39
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +54 -29
- package/dist/src/index.js.map +1 -1
- package/dist/src/pins.d.ts +1 -1
- package/dist/src/pins.d.ts.map +1 -1
- package/dist/src/pins.js +11 -39
- package/dist/src/pins.js.map +1 -1
- package/dist/src/routing.d.ts +7 -5
- package/dist/src/routing.d.ts.map +1 -1
- package/dist/src/routing.js +10 -4
- package/dist/src/routing.js.map +1 -1
- package/dist/src/storage.d.ts +2 -2
- package/dist/src/storage.d.ts.map +1 -1
- package/dist/src/utils/is-cid.d.ts +3 -0
- package/dist/src/utils/is-cid.d.ts.map +1 -0
- package/dist/src/utils/is-cid.js +8 -0
- package/dist/src/utils/is-cid.js.map +1 -0
- package/dist/src/utils/networked-storage.d.ts +3 -2
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/dist/src/utils/session-storage.d.ts +3 -3
- package/dist/src/utils/session-storage.d.ts.map +1 -1
- package/dist/src/utils/session-storage.js.map +1 -1
- package/dist/src/utils/storage.d.ts +1 -1
- package/dist/src/utils/storage.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/abstract-session.ts +4 -4
- package/src/graph-walker.ts +30 -43
- package/src/index.ts +91 -76
- package/src/pins.ts +12 -50
- package/src/routing.ts +23 -10
- package/src/storage.ts +2 -2
- package/src/utils/is-cid.ts +9 -0
- package/src/utils/networked-storage.ts +3 -2
- package/src/utils/session-storage.ts +3 -3
- package/src/utils/storage.ts +1 -1
package/dist/index.min.js
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.HeliaUtils = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var HeliaUtils=(()=>{var du=Object.create;var fr=Object.defineProperty;var pu=Object.getOwnPropertyDescriptor;var mu=Object.getOwnPropertyNames;var gu=Object.getPrototypeOf,yu=Object.prototype.hasOwnProperty;var rt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),D=(r,e)=>{for(var t in e)fr(r,t,{get:e[t],enumerable:!0})},Xo=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of mu(e))!yu.call(r,i)&&i!==t&&fr(r,i,{get:()=>e[i],enumerable:!(n=pu(e,i))||n.enumerable});return r};var ri=(r,e,t)=>(t=r!=null?du(gu(r)):{},Xo(e||!r||!r.__esModule?fr(t,"default",{value:r,enumerable:!0}):t,r)),wu=r=>Xo(fr({},"__esModule",{value:!0}),r);var Us=rt((Bm,Bs)=>{"use strict";function Vl(r){return r>=55296&&r<=56319}function Hl(r){return r>=56320&&r<=57343}Bs.exports=function(e,t,n){if(typeof t!="string")throw new Error("Input must be string");for(var i=t.length,o=0,s,a,c=0;c<i;c+=1){if(s=t.charCodeAt(c),a=t[c],Vl(s)&&Hl(t.charCodeAt(c+1))&&(c+=1,a+=t[c]),o+=e(a),o===n)return t.slice(0,c+1);if(o>n)return t.slice(0,c-a.length+1)}return t}});var Ms=rt((Um,Os)=>{"use strict";function Wl(r){return r>=55296&&r<=56319}function Gl(r){return r>=56320&&r<=57343}Os.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var t=e.length,n=0,i=null,o=null,s=0;s<t;s++)i=e.charCodeAt(s),Gl(i)?o!=null&&Wl(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var $s=rt((Om,Fs)=>{"use strict";var Jl=Us(),Ql=Ms();Fs.exports=Jl.bind(null,Ql)});var qs=rt((Mm,Ks)=>{"use strict";var Yl=$s(),Xl=/[\/\?<>\\:\*\|"]/g,Zl=/[\x00-\x1f\x80-\x9f]/g,eh=/^\.+$/,th=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;function rh(r,e){for(var t=r.length;t>0&&(r[t-1]==="."||r[t-1]===" ");)t--;return t<r.length?r.slice(0,t)+e:r}function zs(r,e){if(typeof r!="string")throw new Error("Input must be string");var t=r.replace(Xl,e).replace(Zl,e).replace(eh,e).replace(th,e);return t=rh(t,e),Yl(t,255)}Ks.exports=function(r,e){var t=e&&e.replacement||"",n=zs(r,t);return t===""?n:zs(n,"")}});var da=rt((ny,Ji)=>{"use strict";var Fh=Object.prototype.hasOwnProperty,q="~";function Ht(){}Object.create&&(Ht.prototype=Object.create(null),new Ht().__proto__||(q=!1));function $h(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function fa(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new $h(t,n||r,i),s=q?q+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function Fr(r,e){--r._eventsCount===0?r._events=new Ht:delete r._events[e]}function U(){this._events=new Ht,this._eventsCount=0}U.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Fh.call(t,n)&&e.push(q?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};U.prototype.listeners=function(e){var t=q?q+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};U.prototype.listenerCount=function(e){var t=q?q+e:e,n=this._events[t];return n?n.fn?1:n.length:0};U.prototype.emit=function(e,t,n,i,o,s){var a=q?q+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,h,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,i),!0;case 5:return c.fn.call(c.context,t,n,i,o),!0;case 6:return c.fn.call(c.context,t,n,i,o,s),!0}for(f=1,h=new Array(l-1);f<l;f++)h[f-1]=arguments[f];c.fn.apply(c.context,h)}else{var d=c.length,y;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,i);break;default:if(!h)for(y=1,h=new Array(l-1);y<l;y++)h[y-1]=arguments[y];c[f].fn.apply(c[f].context,h)}}return!0};U.prototype.on=function(e,t,n){return fa(this,e,t,n,!1)};U.prototype.once=function(e,t,n){return fa(this,e,t,n,!0)};U.prototype.removeListener=function(e,t,n,i){var o=q?q+e:e;if(!this._events[o])return this;if(!t)return Fr(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&Fr(this,o);else{for(var a=0,c=[],l=s.length;a<l;a++)(s[a].fn!==t||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:Fr(this,o)}return this};U.prototype.removeAllListeners=function(e){var t;return e?(t=q?q+e:e,this._events[t]&&Fr(this,t)):(this._events=new Ht,this._eventsCount=0),this};U.prototype.off=U.prototype.removeListener;U.prototype.addListener=U.prototype.on;U.prefixed=q;U.EventEmitter=U;typeof Ji<"u"&&(Ji.exports=U)});var ya=rt((Sy,ga)=>{ga.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 i(o,s){t[o]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(o){return t[o]!==void 0||n[o]!==void 0},remove:function(o){t[o]!==void 0&&(t[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=t[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){t[o]!==void 0?t[o]=s:i(o,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var Yd={};D(Yd,{AbstractSession:()=>ti,Helia:()=>Yo,breadthFirstWalker:()=>hu,depthFirstWalker:()=>lu,naturalOrderWalker:()=>fu});function ce(r=0){return new Uint8Array(r)}function W(r=0){return new Uint8Array(r)}var bu=Math.pow(2,7),xu=Math.pow(2,14),Eu=Math.pow(2,21),Zo=Math.pow(2,28),es=Math.pow(2,35),ts=Math.pow(2,42),rs=Math.pow(2,49),M=128,Pe=127;function Tt(r){if(r<bu)return 1;if(r<xu)return 2;if(r<Eu)return 3;if(r<Zo)return 4;if(r<es)return 5;if(r<ts)return 6;if(r<rs)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function ns(r,e,t=0){switch(Tt(r)){case 8:e[t++]=r&255|M,r/=128;case 7:e[t++]=r&255|M,r/=128;case 6:e[t++]=r&255|M,r/=128;case 5:e[t++]=r&255|M,r/=128;case 4:e[t++]=r&255|M,r>>>=7;case 3:e[t++]=r&255|M,r>>>=7;case 2:e[t++]=r&255|M,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function is(r,e){let t=r[e],n=0;if(n+=t&Pe,t<M||(t=r[e+1],n+=(t&Pe)<<7,t<M)||(t=r[e+2],n+=(t&Pe)<<14,t<M)||(t=r[e+3],n+=(t&Pe)<<21,t<M)||(t=r[e+4],n+=(t&Pe)*Zo,t<M)||(t=r[e+5],n+=(t&Pe)*es,t<M)||(t=r[e+6],n+=(t&Pe)*ts,t<M)||(t=r[e+7],n+=(t&Pe)*rs,t<M))return n;throw new RangeError("Could not decode varint")}function vu(r){return r.buffer instanceof ArrayBuffer}function L(r){return vu(r)?r:r.slice()}var ni=new Float32Array([-0]),Ne=new Uint8Array(ni.buffer);function os(r,e,t){ni[0]=r,e[t]=Ne[0],e[t+1]=Ne[1],e[t+2]=Ne[2],e[t+3]=Ne[3]}function ss(r,e){return Ne[0]=r[e],Ne[1]=r[e+1],Ne[2]=r[e+2],Ne[3]=r[e+3],ni[0]}var ii=new Float64Array([-0]),R=new Uint8Array(ii.buffer);function as(r,e,t){ii[0]=r,e[t]=R[0],e[t+1]=R[1],e[t+2]=R[2],e[t+3]=R[3],e[t+4]=R[4],e[t+5]=R[5],e[t+6]=R[6],e[t+7]=R[7]}function cs(r,e){return R[0]=r[e],R[1]=r[e+1],R[2]=r[e+2],R[3]=r[e+3],R[4]=r[e+4],R[5]=r[e+5],R[6]=r[e+6],R[7]=r[e+7],ii[0]}var _u=BigInt(Number.MAX_SAFE_INTEGER),Au=BigInt(Number.MIN_SAFE_INTEGER),G=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 je;if(e<_u&&e>Au)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,i=e-(n<<32n);return t&&(n=~n|0n,i=~i|0n,++i>us&&(i=0n,++n>us&&(n=0n))),new r(Number(i),Number(n))}static fromNumber(e){if(e===0)return je;let t=e<0;t&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)}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):je}},je=new G(0,0);je.toBigInt=function(){return 0n};je.zzEncode=je.zzDecode=function(){return this};je.length=function(){return 1};var us=4294967296n;function ls(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 hs(r,e,t){if(t-e<1)return"";let i,o=[],s=0,a;for(;e<t;)a=r[e++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(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,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function oi(r,e,t){let n=t,i,o;for(let s=0;s<r.length;++s)i=r.charCodeAt(s),i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&((o=r.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128);return t-n}function ue(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function dr(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var si=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=L(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,ue(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 ue(this,4);return dr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ue(this,4);return dr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ue(this,4);let e=ss(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw ue(this,4);let e=cs(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 ue(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return hs(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw ue(this,e);this.pos+=e}else do if(this.pos>=this.len)throw ue(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 G(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 ue(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 ue(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 ue(this,8);let e=dr(this.buf,this.pos+=4),t=dr(this.buf,this.pos+=4);return new G(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=is(this.buf,this.pos);return this.pos+=Tt(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 Lt(r){return new si(r instanceof Uint8Array?r:r.subarray())}function pr(r,e,t){let n=Lt(r);return e.decode(n,void 0,t)}var fi={};D(fi,{base10:()=>Pu});var fp=new Uint8Array(0);function ds(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 le(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return Ve(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return Ve(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function ps(r){return new TextEncoder().encode(r)}function ms(r){return new TextDecoder().decode(r)}function ku(r){return r?.buffer instanceof ArrayBuffer}function Ve(r){return ku(r)?r:r.slice()}function Su(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(t[s]!==255)throw new TypeError(o+" is ambiguous");t[s]=i}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),h=Math.log(256)/Math.log(a);function f(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var k=0,E=0,C=0,O=w.length;C!==O&&w[C]===0;)C++,k++;for(var N=(O-C)*h+1>>>0,H=new Uint8Array(N);C!==O;){for(var te=w[C],De=0,ae=N-1;(te!==0||De<E)&&ae!==-1;ae--,De++)te+=256*H[ae]>>>0,H[ae]=te%a>>>0,te=te/a>>>0;if(te!==0)throw new Error("Non-zero carry");E=De,C++}for(var Ie=N-E;Ie!==N&&H[Ie]===0;)Ie++;for(var hr=c.repeat(k);Ie<N;++Ie)hr+=r.charAt(H[Ie]);return hr}function d(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var k=0;if(w[k]!==" "){for(var E=0,C=0;w[k]===c;)E++,k++;for(var O=(w.length-k)*l+1>>>0,N=new Uint8Array(O);w[k];){var H=t[w.charCodeAt(k)];if(H===255)return;for(var te=0,De=O-1;(H!==0||te<C)&&De!==-1;De--,te++)H+=a*N[De]>>>0,N[De]=H%256>>>0,H=H/256>>>0;if(H!==0)throw new Error("Non-zero carry");C=te,k++}if(w[k]!==" "){for(var ae=O-C;ae!==O&&N[ae]===0;)ae++;for(var Ie=new Uint8Array(E+(O-ae)),hr=E;ae!==O;)Ie[hr++]=N[ae++];return Ie}}}function y(w){var k=d(w);if(k)return k;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:y}}var Iu=Su,Tu=Iu,gs=Tu;var ci=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")}},ui=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let i=t.codePointAt(0);if(i===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=i,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 ys(this,e)}},li=class{decoders;constructor(e){this.decoders=e}or(e){return ys(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 ys(r,e){return new li({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var hi=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new ci(e,t,n),this.decoder=new ui(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function nt({name:r,prefix:e,encode:t,decode:n}){return new hi(r,e,t,n)}function Re({name:r,prefix:e,alphabet:t}){let{encode:n,decode:i}=gs(t,r);return nt({prefix:e,name:r,encode:n,decode:o=>le(i(o))})}function Lu(r,e,t,n){let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),s=0,a=0,c=0;for(let l=0;l<i;++l){let h=e[r[l]];if(h===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|h,s+=t,s>=8&&(s-=8,o[c++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return o}function Cu(r,e,t){let n=e[e.length-1]==="=",i=(1<<t)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>t;)s-=t,o+=e[i&a>>s];if(s!==0&&(o+=e[i&a<<t-s]),n)for(;(o.length*t&7)!==0;)o+="=";return o}function Du(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function T({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let i=Du(n);return nt({prefix:e,name:r,encode(o){return Cu(o,n,t)},decode(o){return Lu(o,i,t,r)}})}var Pu=Re({prefix:"9",name:"base10",alphabet:"0123456789"});var di={};D(di,{base16:()=>Nu,base16upper:()=>Ru});var Nu=T({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ru=T({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var pi={};D(pi,{base2:()=>Bu});var Bu=T({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var mi={};D(mi,{base256emoji:()=>$u});var ws=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}"),Uu=ws.reduce((r,e,t)=>(r[t]=e,r),[]),Ou=ws.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Mu(r){return r.reduce((e,t)=>(e+=Uu[t],e),"")}function Fu(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let i=Ou[n];if(i==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}var $u=nt({prefix:"\u{1F680}",name:"base256emoji",encode:Mu,decode:Fu});var gi={};D(gi,{base32:()=>it,base32hex:()=>ju,base32hexpad:()=>Hu,base32hexpadupper:()=>Wu,base32hexupper:()=>Vu,base32pad:()=>Ku,base32padupper:()=>qu,base32upper:()=>zu,base32z:()=>Gu});var it=T({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),zu=T({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ku=T({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),qu=T({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ju=T({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Vu=T({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Hu=T({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Wu=T({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Gu=T({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yi={};D(yi,{base36:()=>he,base36upper:()=>Ju});var he=Re({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ju=Re({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var wi={};D(wi,{base58btc:()=>B,base58flickr:()=>Qu});var B=Re({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Qu=Re({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var bi={};D(bi,{base64:()=>fe,base64pad:()=>Yu,base64url:()=>b,base64urlpad:()=>Xu});var fe=T({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Yu=T({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),b=T({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Xu=T({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xi={};D(xi,{base8:()=>Zu});var Zu=T({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ei={};D(Ei,{identity:()=>el});var el=nt({prefix:"\0",name:"identity",encode:r=>ms(r),decode:r=>ps(r)});var mr={};D(mr,{code:()=>vi,decode:()=>ol,encode:()=>il,name:()=>nl});var tl=new TextEncoder,rl=new TextDecoder,nl="json",vi=512;function il(r){return tl.encode(JSON.stringify(r))}function ol(r){return JSON.parse(rl.decode(r))}var gr={};D(gr,{code:()=>_i,decode:()=>cl,encode:()=>al,name:()=>sl});var sl="raw",_i=85;function al(r){return le(r)}function cl(r){return le(r)}var ki={};D(ki,{identity:()=>Be});var ul=Es,bs=128,ll=127,hl=~ll,fl=Math.pow(2,31);function Es(r,e,t){e=e||[],t=t||0;for(var n=t;r>=fl;)e[t++]=r&255|bs,r/=128;for(;r&hl;)e[t++]=r&255|bs,r>>>=7;return e[t]=r|0,Es.bytes=t-n+1,e}var dl=Ai,pl=128,xs=127;function Ai(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw Ai.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&xs)<<i:(s&xs)*Math.pow(2,i),i+=7}while(s>=pl);return Ai.bytes=o-n,t}var ml=Math.pow(2,7),gl=Math.pow(2,14),yl=Math.pow(2,21),wl=Math.pow(2,28),bl=Math.pow(2,35),xl=Math.pow(2,42),El=Math.pow(2,49),vl=Math.pow(2,56),_l=Math.pow(2,63),Al=function(r){return r<ml?1:r<gl?2:r<yl?3:r<wl?4:r<bl?5:r<xl?6:r<El?7:r<vl?8:r<_l?9:10},kl={encode:ul,decode:dl,encodingLength:Al},Sl=kl,Ct=Sl;function Dt(r,e=0){return[Ct.decode(r,e),Ct.decode.bytes]}function ot(r,e,t=0){return Ct.encode(r,e,t),e}function st(r){return Ct.encodingLength(r)}function ct(r,e){let t=e.byteLength,n=st(r),i=n+st(t),o=new Uint8Array(i+t);return ot(r,o,0),ot(t,o,n),o.set(e,i),new at(r,t,e,o)}function vs(r){let e=le(r),[t,n]=Dt(e),[i,o]=Dt(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new at(t,i,s,e)}function _s(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&ds(r.bytes,t.bytes)}}var at=class{code;size;digest;bytes;constructor(e,t,n,i){this.code=e,this.size=t,this.digest=Ve(n),this.bytes=Ve(i)}};var As=0,Il="identity",ks=le;function Tl(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 ct(As,ks(r))}var Be={code:As,name:Il,encode:ks,digest:Tl};var Ti={};D(Ti,{sha256:()=>Ue,sha512:()=>wr});var Ll=20;function Ii({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:i}){return new Si(r,e,t,n,i)}var Si=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,i,o){this.name=e,this.code=t,this.encode=n,this.minDigestLength=i??Ll,this.maxDigestLength=o}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?Ss(n,this.code,t?.truncate):n.then(i=>Ss(i,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Ss(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 ct(e,r)}function Ts(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Ue=Ii({name:"sha2-256",code:18,encode:Ts("SHA-256")}),wr=Ii({name:"sha2-512",code:19,encode:Ts("SHA-512")});function Ls(r,e){let{bytes:t,version:n}=r;return n===0?Dl(t,Li(r),e??B.encoder):Pl(t,Li(r),e??it.encoder)}var Cs=new WeakMap;function Li(r){let e=Cs.get(r);if(e==null){let t=new Map;return Cs.set(r,t),t}return e}var v=class r{code;version;multihash;bytes;"/";constructor(e,t,n,i){this.code=t,this.version=e,this.multihash=n,this.bytes=Ve(i),this["/"]=this.bytes}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!==Nt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Nl)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=ct(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&&_s(e.multihash,n.multihash)}toString(e){return Ls(this,e)}toJSON(){return{"/":Ls(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:i,multihash:o,bytes:s}=t;return new r(n,i,o,s??Ds(n,i,o.bytes))}else if(t[Rl]===!0){let{version:n,multihash:i,code:o}=t,s=vs(i);return r.create(n,o,s)}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!==Nt)throw new Error(`Version 0 CID must use dag-pb (code: ${Nt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let i=Ds(e,t,n.bytes);return new r(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Nt,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,i=le(e.subarray(n,n+t.multihashSize));if(i.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=i.subarray(t.multihashSize-t.digestSize),s=new at(t.multihashCode,t.digestSize,o,i);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,d]=Dt(e.subarray(t));return t+=d,f},i=n(),o=Nt;if(i===18?(i=0,t=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=t,a=n(),c=n(),l=t+c,h=l-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:h,size:l}}static parse(e,t){let[n,i]=Cl(e,t),o=r.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Li(o).set(n,e),o}};function Cl(r,e){switch(r[0]){case"Q":{let t=e??B;return[B.prefix,t.decode(`${B.prefix}${r}`)]}case B.prefix:{let t=e??B;return[B.prefix,t.decode(r)]}case it.prefix:{let t=e??it;return[it.prefix,t.decode(r)]}case he.prefix:{let t=e??he;return[he.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 Dl(r,e,t){let{prefix:n}=t;if(n!==B.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let i=e.get(n);if(i==null){let o=t.encode(r).slice(1);return e.set(n,o),o}else return i}function Pl(r,e,t){let{prefix:n}=t,i=e.get(n);if(i==null){let o=t.encode(r);return e.set(n,o),o}else return i}var Nt=112,Nl=18;function Ds(r,e,t){let n=st(r),i=n+st(e),o=new Uint8Array(i+t.byteLength);return ot(r,o,0),ot(e,o,n),o.set(t,i),o}var Rl=Symbol.for("@ipld/js-cid/CID");var Ci={...Ei,...pi,...xi,...fi,...di,...gi,...yi,...wi,...bi,...mi},Jp={...Ti,...ki};function Ns(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Ps=Ns("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Di=Ns("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=W(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Bl={utf8:Ps,"utf-8":Ps,hex:Ci.base16,latin1:Di,ascii:Di,binary:Di,...Ci},br=Bl;function I(r,e="utf8"){let t=br[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function Pi(r){let e=r??8192,t=e>>>1,n,i=e;return function(s){if(s<1||s>t)return W(s);i+s>e&&(n=W(e),i=0);let a=n.subarray(i,i+=s);return(i&7)!==0&&(i=(i|7)+1),a}}var He=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Ni(){}var Bi=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Ul=Pi();function Ol(r){return globalThis.Buffer!=null?W(r):Ul(r)}var Bt=class{len;head;tail;states;constructor(){this.len=0,this.head=new He(Ni,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new He(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Ui((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(xr,10,G.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=G.fromBigInt(e);return this._push(xr,t.length(),t)}uint64Number(e){return this._push(ns,Tt(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=G.fromBigInt(e).zzEncode();return this._push(xr,t.length(),t)}sint64Number(e){let t=G.fromNumber(e).zzEncode();return this._push(xr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Ri,1,e?1:0)}fixed32(e){return this._push(Rt,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=G.fromBigInt(e);return this._push(Rt,4,t.lo)._push(Rt,4,t.hi)}fixed64Number(e){let t=G.fromNumber(e);return this._push(Rt,4,t.lo)._push(Rt,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(os,4,e)}double(e){return this._push(as,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Ri,1,0):this.uint32(t)._push(Fl,t,e)}string(e){let t=ls(e);return t!==0?this.uint32(t)._push(oi,t,e):this._push(Ri,1,0)}fork(){return this.states=new Bi(this),this.head=this.tail=new He(Ni,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 He(Ni,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=Ol(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function Ri(r,e,t){e[t]=r&255}function Ml(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Ui=class extends He{next;constructor(e,t){super(Ml,e,t),this.next=void 0}};function xr(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 Rt(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 Fl(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(Bt.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push($l,e,r),this},Bt.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(zl,e,r),this});function $l(r,e,t){e.set(r,t)}function zl(r,e,t){r.length<40?oi(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(I(r),t)}function Oi(){return new Bt}function Er(r,e){let t=Oi();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}function*vr(r,e,t){let n=Lt(r);yield*e.stream(n,void 0,"$",t)}var _r={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Ar(r,e,t,n,i){return{name:r,type:e,encode:t,decode:n,stream:i}}function Mi(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,a){let c=e(s);a.int32(c)},n=function(s){let a=s.int32();return e(a)},i=function*(s){let a=s.int32();yield e(a)};return Ar("enum",_r.VARINT,t,n,i)}function kr(r,e,t){return Ar("message",_r.LENGTH_DELIMITED,r,e,t)}var Sr;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(Sr||(Sr={}));var Fi;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(Fi||(Fi={}));(function(r){r.codec=()=>Mi(Fi)})(Sr||(Sr={}));var j;(function(r){let e;r.codec=()=>(e==null&&(e=kr((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),o.Type!=null&&(s.uint32(8),s.int32(o.Type)),o.Data!=null&&(s.uint32(18),s.bytes(o.Data)),a.lengthDelimited!==!1&&s.ldelim()},(o,s,a={})=>{let c={},l=s==null?o.len:o.pos+s;for(;o.pos<l;){let h=o.uint32();switch(h>>>3){case 1:{c.Type=o.int32();break}case 2:{c.Data=o.bytes();break}default:{o.skipType(h&7);break}}}return c},function*(o,s,a,c={}){let l=s==null?o.len:o.pos+s;for(;o.pos<l;){let h=o.uint32();switch(h>>>3){case 1:{yield{field:`${a}.Type`,value:o.int32()};break}case 2:{yield{field:`${a}.Data`,value:o.bytes()};break}default:{o.skipType(h&7);break}}}})),e);function t(o){return Er(o,r.codec())}r.encode=t;function n(o,s){return pr(o,r.codec(),s)}r.decode=n;function i(o,s){return vr(o,r.codec(),s)}r.stream=i})(j||(j={}));var F;(function(r){let e;r.codec=()=>(e==null&&(e=kr((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),o.Type!=null&&(s.uint32(8),s.int32(o.Type)),o.Data!=null&&(s.uint32(18),s.bytes(o.Data)),a.lengthDelimited!==!1&&s.ldelim()},(o,s,a={})=>{let c={},l=s==null?o.len:o.pos+s;for(;o.pos<l;){let h=o.uint32();switch(h>>>3){case 1:{c.Type=o.int32();break}case 2:{c.Data=o.bytes();break}default:{o.skipType(h&7);break}}}return c},function*(o,s,a,c={}){let l=s==null?o.len:o.pos+s;for(;o.pos<l;){let h=o.uint32();switch(h>>>3){case 1:{yield{field:`${a}.Type`,value:o.int32()};break}case 2:{yield{field:`${a}.Data`,value:o.bytes()};break}default:{o.skipType(h&7);break}}}})),e);function t(o){return Er(o,r.codec())}r.encode=t;function n(o,s){return pr(o,r.codec(),s)}r.decode=n;function i(o,s){return vr(o,r.codec(),s)}r.stream=i})(F||(F={}));function re(r,e="utf8"){let t=br[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var Te="/",Rs=new TextEncoder().encode(Te),Ir=Rs[0],ne=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=I(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]!==Ir)throw new Error("Invalid key")}toString(e="utf8"){return re(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Te))}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=Rs),this._buf[0]!==Ir){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Ir,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ir;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let i=0;i<t.length;i++){if(n.length<i+1)return!1;let o=t[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Te).slice(1)}type(){return Kl(this.baseNamespace())}name(){return ql(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Te)||(e+=Te),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Te):new r(e.slice(0,-1).join(Te))}child(e){return this.toString()===Te?e:e.toString()===Te?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(),...jl(e.map(t=>t.namespaces()))])}};function Kl(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ql(r){let e=r.split(":");return e[e.length-1]}function jl(r){return[].concat(...r)}var sa=ri(qs(),1);function nh(r){return r?.buffer instanceof ArrayBuffer}function js(r){if(nh(r))return r;let e=r.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function de(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=W(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return js(t)}var $=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Ut=class extends Error{static name="DecryptionFailedError";name="DecryptionFailedError"};function Le(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}var Hs=Symbol.for("@achingbrain/uint8arraylist");function Vs(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let i=t+n.byteLength;if(e<i)return{buf:n,index:e-t};t=i}throw new RangeError("index is out of bounds")}function Tr(r){return!!r?.[Hs]}var z=class r{bufs;length;[Hs]=!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(Tr(n)){t+=n.byteLength;for(let i of n.bufs)this.bufs.push(i)}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(Tr(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=Vs(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Vs(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(Tr(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:i}=this._subList(e,t);return de(n,i)}subarray(e,t){let{bufs:n,length:i}=this._subList(e,t);return n.length===1?n[0]:de(n,i)}sublist(e,t){let{bufs:n,length:i}=this._subList(e,t),o=new r;return o.length=i,o.bufs=n,o}_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=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,e>=c)continue;let l=e>=a&&e<c,h=t>a&&t<=c;if(l&&h){if(e===a&&t===c){n.push(s);break}let f=e-a;n.push(s.subarray(f,f+(t-e)));break}if(l){if(e===0){n.push(s);continue}n.push(s.subarray(e-a));continue}if(h){if(t===c){n.push(s);break}n.push(s.subarray(0,t-a));break}n.push(s)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Tr(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 i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let f=0;f<o;f++)s[f]=-1;for(let f=0;f<i;f++)s[n[f]]=f;let a=s,c=this.byteLength-n.byteLength,l=n.byteLength-1,h;for(let f=t;f<=c;f+=h){h=0;for(let d=l;d>=0;d--){let y=this.get(f+d);if(n[d]!==y){h=Math.max(1,d-a[y]);break}}if(h===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=W(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 i=ce(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,t,n),this.write(i,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 i=ce(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,t,n),this.write(i,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 i=ce(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,t,n),this.write(i,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=W(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 i=ce(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,t,n),this.write(i,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 i=ce(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,t,n),this.write(i,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 i=ce(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,t,n),this.write(i,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 i=ce(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,t,n),this.write(i,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 i=ce(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,t,n),this.write(i,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(!Le(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((i,o)=>i+o.byteLength,0)),n.length=t,n}};var ih=parseInt("11111",2),$i=parseInt("10000000",2),oh=parseInt("01111111",2),Ws={0:Ot,1:Ot,2:sh,3:uh,4:lh,5:ch,6:ah,16:Ot,22:Ot,48:Ot};function pe(r,e={offset:0}){let t=r[e.offset]&ih;if(e.offset++,Ws[t]!=null)return Ws[t](r,e);throw new Error("No decoder for tag 0x"+t.toString(16).padStart(2,"0"))}function Mt(r,e){let t=0;if((r[e.offset]&$i)===$i){let n=r[e.offset]&oh,i="0x";e.offset++;for(let o=0;o<n;o++,e.offset++)i+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(i,16)}else t=r[e.offset],e.offset++;return t}function Ot(r,e){Mt(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=pe(r,e);if(n===null)break;t.push(n)}return t}function sh(r,e){let t=Mt(r,e),n=e.offset,i=e.offset+t,o=[];for(let s=n;s<i;s++)s===n&&r[s]===0||o.push(r[s]);return e.offset+=t,Uint8Array.from(o)}function ah(r,e){let t=Mt(r,e),n=e.offset+t,i=r[e.offset];e.offset++;let o=0,s=0;i<40?(o=0,s=i):i<80?(o=1,s=i-40):(o=2,s=i-80);let a=`${o}.${s}`,c=[];for(;e.offset<n;){let l=r[e.offset];if(e.offset++,c.push(l&127),l<128){c.reverse();let h=0;for(let f=0;f<c.length;f++)h+=c[f]<<f*7;a+=`.${h}`,c=[]}}return a}function ch(r,e){return e.offset++,null}function uh(r,e){let t=Mt(r,e),n=r[e.offset];e.offset++;let i=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 i}function lh(r,e){let t=Mt(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function hh(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new z;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function Lr(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=hh(r.byteLength);return new z(Uint8Array.from([e.byteLength|$i]),e)}function K(r){let e=new z,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new z(Uint8Array.from([2]),Lr(e),e)}function Ft(r){let e=Uint8Array.from([0]),t=new z(e,r);return new z(Uint8Array.from([3]),Lr(t),t)}function Gs(r){return new z(Uint8Array.from([4]),Lr(r),r)}function me(r,e=48){let t=new z;for(let n of r)t.append(L(n.subarray()));return new z(Uint8Array.from([e]),Lr(t),t)}var A=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"};var fh=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),dh=Uint8Array.from([6,5,43,129,4,0,34]),ph=Uint8Array.from([6,5,43,129,4,0,35]),Js={ext:!0,kty:"EC",crv:"P-256"},Qs={ext:!0,kty:"EC",crv:"P-384"},Ys={ext:!0,kty:"EC",crv:"P-521"},ut=32,lt=48,ht=66,$t=class{type="ECDSA";code=3;jwk;constructor(e){this.jwk=e}toMultihash(){return Be.digest(this.toProtobuf())}toCID(){return v.createV1(114,this.toMultihash())}toString(){return B.encode(this.toMultihash().bytes).substring(1)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}toProtobuf(){return j.encode({Type:this.code,Data:wh(this.jwk)})}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"ECDSA",namedCurve:this.jwk.crv??"P-256"},!1,["verify"]),o=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},i,L(t),L(e));return n?.signal?.throwIfAborted(),o}},Cr=class{type="ECDSA";code=3;jwk;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}toProtobuf(){return F.encode({Type:this.code,Data:bh(this.jwk)})}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"ECDSA",namedCurve:this.jwk.crv??"P-256"},!0,["sign"]),i=await crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,L(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},zi=class{type="ECDSA";code=3;async generatePrivateKey(e){let t=e?.curve??"P-256",n=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:t},!0,["sign","verify"]),i=await crypto.subtle.exportKey("jwk",n.privateKey),o=await crypto.subtle.exportKey("jwk",n.publicKey);return e?.signal?.throwIfAborted(),new Cr(i,new $t(o))}async publicKeyFromProtobuf(e,t){let n=j.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");t?.signal?.throwIfAborted();let i=yh(n.Data);return new $t(i)}async privateKeyFromProtobuf(e,t){let n=F.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");let i=gh(n.Data),o=mh(i);return t?.signal?.throwIfAborted(),new Cr(i,new $t(o))}};function Ki(){return new zi}function mh(r){return{crv:r.crv,ext:!0,key_ops:["verify"],kty:"EC",x:r.x,y:r.y}}function gh(r){let e=pe(r),t=e[1],n=b.baseEncode(t),i=e[2][1][0],o=1,s,a;if(t.byteLength===ut)return s=b.baseEncode(i.subarray(o,o+ut)),a=b.baseEncode(i.subarray(o+ut)),{...Js,key_ops:["sign"],d:n,x:s,y:a};if(t.byteLength===lt)return s=b.baseEncode(i.subarray(o,o+lt)),a=b.baseEncode(i.subarray(o+lt)),{...Qs,key_ops:["sign"],d:n,x:s,y:a};if(t.byteLength===ht)return s=b.baseEncode(i.subarray(o,o+ht)),a=b.baseEncode(i.subarray(o+ht)),{...Ys,key_ops:["sign"],d:n,x:s,y:a};throw new A(`Private key length was wrong length, got ${t.byteLength}, expected 32, 48 or 66`)}function yh(r){let t=pe(r)[1][1][0],n=1,i,o;if(t.byteLength===ut*2+1)return i=b.baseEncode(t.subarray(n,n+ut)),o=b.baseEncode(t.subarray(n+ut)),{...Js,key_ops:["verify"],x:i,y:o};if(t.byteLength===lt*2+1)return i=b.baseEncode(t.subarray(n,n+lt)),o=b.baseEncode(t.subarray(n+lt)),{...Qs,key_ops:["verify"],x:i,y:o};if(t.byteLength===ht*2+1)return i=b.baseEncode(t.subarray(n,n+ht)),o=b.baseEncode(t.subarray(n+ht)),{...Ys,key_ops:["verify"],x:i,y:o};throw new A(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function wh(r){return me([K(Uint8Array.from([1])),me([Xs(r.crv)],160),me([Ft(new z(Uint8Array.from([4]),b.baseDecode(r.x??""),b.baseDecode(r.y??"")))],161)]).subarray()}function bh(r){return me([K(Uint8Array.from([1])),Gs(b.baseDecode(r.d??"")),me([Xs(r.crv)],160),me([Ft(new z(Uint8Array.from([4]),b.baseDecode(r.x??""),b.baseDecode(r.y??"")))],161)]).subarray()}function Xs(r){if(r==="P-256")return fh;if(r==="P-384")return dh;if(r==="P-521")return ph;throw new A(`Invalid curve ${r}`)}var xh=32,zt=class{type="Ed25519";code=1;jwk;constructor(e){this.jwk=e}toMultihash(){return Be.digest(this.toProtobuf())}toCID(){return v.createV1(114,this.toMultihash())}toString(){return B.encode(this.toMultihash().bytes).substring(1)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}toProtobuf(){return j.encode({Type:this.code,Data:b.baseDecode(this.jwk.x??"")})}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"Ed25519"},!1,["verify"]),o=await crypto.subtle.verify({name:"Ed25519"},i,L(t),L(e));return n?.signal?.throwIfAborted(),o}},Dr=class{type="Ed25519";code=1;jwk;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}toProtobuf(){return F.encode({Type:this.code,Data:de([b.baseDecode(this.jwk.d??""),b.baseDecode(this.jwk.x??"")],64)})}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"Ed25519"},!0,["sign"]),i=await crypto.subtle.sign({name:"Ed25519"},n,L(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},qi=class{type="Ed25519";code=1;async generatePrivateKey(e){let t=await crypto.subtle.generateKey("Ed25519",!0,["sign","verify"]),n=await crypto.subtle.exportKey("jwk",t.privateKey),i=await crypto.subtle.exportKey("jwk",t.publicKey);return e?.signal?.throwIfAborted(),new Dr(n,new zt(i))}async publicKeyFromProtobuf(e,t){let n=j.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");t?.signal?.throwIfAborted();let i=Ah(n.Data);return new zt(i)}async privateKeyFromProtobuf(e,t){let n=F.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");let i=await Eh(n.Data,t),o=_h(i);return new Dr(i,new zt(o))}};function ji(){return new qi}async function Eh(r,e){let t=r.subarray(0,xh),n=vh(t),i=await crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!0,["sign"]),o=await crypto.subtle.exportKey("jwk",i);return e?.signal?.throwIfAborted(),o}var Zs=Uint8Array.from([48,46,2,1,0,48,5,6,3,43,101,112,4,34,4]);function vh(r){return de([Zs,Uint8Array.from([r.byteLength]),r],Zs.byteLength+1+r.byteLength)}function _h(r){return{alg:"Ed25519",crv:"Ed25519",ext:!0,key_ops:["verify"],kty:"OKP",x:r.x}}function Ah(r){return{alg:"Ed25519",crv:"Ed25519",ext:!0,key_ops:["verify"],kty:"OKP",x:b.baseEncode(r)}}var Wi=8192,Kt=class{type="RSA";code=0;_raw;digest;jwk;constructor(e,t){if(ta(e)>Wi)throw new A("Key size is too large");this.jwk=e,this.digest=t}toMultihash(){return this.digest}toCID(){return v.createV1(114,this.toMultihash())}toString(){return this.toCID().toString(he)}toProtobuf(){return Ch(this.code,this.jwk)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]),o=await crypto.subtle.verify({name:"RSASSA-PKCS1-v1_5"},i,L(t),L(e));return n?.signal?.throwIfAborted(),o}},Pr=class{type="RSA";code=0;publicKey;jwk;constructor(e,t){if(ta(e)>Wi)throw new A("Key size is too large");this.jwk=e,this.publicKey=t}toProtobuf(){return Dh(this.code,this.jwk)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),i=await crypto.subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,L(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},Hi=class{type="RSA";code=0;async generatePrivateKey(e){let t=e?.bits??2048;if(t>Wi)throw new A("Key size is too large");let n=await crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),i=await crypto.subtle.exportKey("jwk",n.privateKey),o=await crypto.subtle.exportKey("jwk",n.publicKey),s=await Vi(i);return e?.signal?.throwIfAborted(),new Pr(i,new Kt(o,s))}async publicKeyFromProtobuf(e,t){let n=j.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");let i=Th(n.Data),o=await Vi(i);return t?.signal?.throwIfAborted(),new Kt(i,o)}async privateKeyFromProtobuf(e,t){let n=F.decode(e);if(n.Data==null)throw new A("Data field was missing from protobuf");if(n.Type!==this.code)throw new A("Incorrect Type field in protobuf");let i=pe(n.Data),o=kh(i),s=Lh(o),a=await Vi(s);return t?.signal?.throwIfAborted(),new Pr(o,new Kt(s,a))}};function qt(){return new Hi}function kh(r){return{alg:"RS256",kty:"RSA",n:b.baseEncode(r[1]),e:b.baseEncode(r[2]),ext:!0,key_ops:["sign"],d:b.baseEncode(r[3]),p:b.baseEncode(r[4]),q:b.baseEncode(r[5]),dp:b.baseEncode(r[6]),dq:b.baseEncode(r[7]),qi:b.baseEncode(r[8])}}function Sh(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 A("JWK was missing components");return me([K(Uint8Array.from([0])),K(b.baseDecode(r.n)),K(b.baseDecode(r.e)),K(b.baseDecode(r.d)),K(b.baseDecode(r.p)),K(b.baseDecode(r.q)),K(b.baseDecode(r.dp)),K(b.baseDecode(r.dq)),K(b.baseDecode(r.qi))]).subarray()}var Ih=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function ea(r){if(r.n==null||r.e==null)throw new A("JWK public key was missing components");return me([Ih,Ft(me([K(b.baseDecode(r.n)),K(b.baseDecode(r.e))]))]).subarray()}function Th(r){let e=pe(r);if(e.length<2||e[0]?.[0]!=="1.2.840.113549.1.1.1")throw new Error("PKIX certificate was invalid");let t=pe(e[1]);return{kty:"RSA",n:b.baseEncode(t[0]),e:b.baseEncode(t[1])}}function Lh(r){return{key_ops:["verify"],ext:!0,alg:"RS256",kty:"RSA",n:r.n,e:"AQAB"}}function ta(r){if(r.kty!=="RSA")throw new A("Invalid key type");if(r.n==null)throw new A("Invalid key modulus");return b.baseDecode(r.n).length*8}async function Vi(r){let e=j.encode({Type:0,Data:ea(r)});return Ue.digest(e)}function Ch(r,e){return j.encode({Type:r,Data:ea(e)})}function Dh(r,e){return F.encode({Type:r,Data:Sh(e)})}async function na(r,e,t){r=r.replaceAll("-----BEGIN ENCRYPTED PRIVATE KEY-----",""),r=r.replaceAll("-----END ENCRYPTED PRIVATE KEY-----",""),r=r.replaceAll("\r",""),r=r.replaceAll(`
|
|
3
|
-
`,"");let n=fe.decode(`m${r}`),i=pe(n),o=i[0][1][0][1][0],s=ra(i[0][1][0][1][1]),a=ra(i[0][1][0][1][2]),c=i[0][1][0][1][4][1],l=i[0][1][0][1][4][2],h=await e.decrypt(o,c,l,{iterations:s,keyLength:a*8,hash:"SHA-512",algorithm:"AES-CBC",signal:t?.signal}),d=pe(h)[2],y=F.encode({Type:0,Data:d});return qt().privateKeyFromProtobuf(y)}function ra(r){if(r.length===0)return 0;let e=[...r].map(t=>t.toString(16).padStart(2,"0")).join("");return parseInt(e,16)}var Ph="/pkcs8/",aa="/info/",Nh=Symbol.for("@libp2p/service-capabilities"),jt={iterations:1e4,salt:I("you should override this value with a crypto secure random number"),hash:"SHA-512",algorithm:"AES-GCM"},ft={iterations:32767,saltLength:16,ivLength:12,hash:"SHA-256",keyLength:128,algorithm:"AES-GCM"},Gi=20,Nr={minKeyLength:112/8,minSaltLength:128/8,minIterations:1e3},ia={"SHA-256":128,"SHA-384":192,"SHA-512":256};function Vt(r){return r==null||typeof r!="string"?!1:r===(0,sa.default)(r.trim())&&r.length>0}function dt(r){return new ne(Ph+r)}function Rr(r){return new ne(aa+r)}async function Rh(r,e){let t=r.toProtobuf(),n=await Ue.digest(t);return e?.signal?.throwIfAborted(),B.encode(n.bytes).substring(1)}function Bh(r){if(typeof r=="string")return I(r);if(r instanceof Uint8Array)return L(r)}var Br=class{components;self;cipher;salt;keychainDekOptions;privateKeyDekOptions;constructor(e,t={}){if(this.components=e,this.self=t.selfKey??"self",this.salt=Bh(t.salt)??jt.salt,this.keychainDekOptions={iterations:t.iterations??jt.iterations,hash:t.hash??jt.hash,keyLength:ia[t.hash??jt.hash],algorithm:jt.algorithm},this.privateKeyDekOptions={iterations:ft.iterations,hash:ft.hash,saltLength:ft.saltLength,ivLength:ft.ivLength,keyLength:ft.keyLength,algorithm:ft.algorithm},t.password!=null&&t.password.length<Gi)throw new Error("password must be least 20 characters");if(this.salt.byteLength!=null&&this.salt.byteLength<Nr.minSaltLength)throw new Error(`salt must be least ${Nr.minSaltLength} bytes`);if(t.iterations!=null&&t.iterations<Nr.minIterations)throw new Error(`iterations must be least ${Nr.minIterations}`);if(ia[this.keychainDekOptions.hash]==null)throw new $("Unsupported hash");this.cipher=oa(t.password??"",this.salt,this.keychainDekOptions,this.privateKeyDekOptions)}[Nh]=["@ipshipyard/keychain"];async generateKey(e,t){let i=await(await this.components.getCrypto(t?.type??"Ed25519",t)).generatePrivateKey(t);return this.importKey(e,i,t)}async importKey(e,t,n){if(!Vt(e))throw new $(`Invalid key name '${e}'`);if(t==null)throw new $("Key is required");if(await this.components.datastore.has(dt(e),n))throw new $(`Key '${e}' already exists`);let o=this.components.datastore.batch();return await this._importKey(e,t,this.cipher,o,n),await o.commit(n),t}async _importKey(e,t,n,i,o){let s=t.toProtobuf(),a=await n.encrypt(s),c=de([a.salt,a.iv,a.cipherText],a.salt.byteLength+a.iv.byteLength+a.cipherText.byteLength),l=fe.encode(c),h={name:e,id:await Rh(t,o)};i.put(dt(e),I(l)),i.put(Rr(e),I(JSON.stringify(h)))}async exportKey(e,t){if(!Vt(e))throw new $(`Invalid key name '${e}'`);return this._exportKey(e,this.cipher,t)}async _exportKey(e,t,n){let i=await this.components.datastore.get(dt(e),n),o=re(i),s;if(o.includes("BEGIN ENCRYPTED PRIVATE KEY"))return na(o,t,n);try{let a=fe.decode(o),c=a.subarray(0,16),l=a.subarray(16,28),h=a.subarray(28),f=await t.decrypt(c,l,h,n),d=F.decode(f);if(d.Type==null)throw new Ut("Unknown key type");return s=await this.components.getCrypto(d.Type,n),await s.privateKeyFromProtobuf(f)}catch(a){throw a.name==="OperationError"?new Ut(a.message):a}}async removeKey(e,t){if(!Vt(e)||e===this.self)throw new $(`Invalid key name '${e}'`);let n=this.components.datastore.batch();n.delete(dt(e)),n.delete(Rr(e)),await n.commit(t)}async*listKeys(e){let t={prefix:aa};for await(let n of this.components.datastore.query(t,e))yield JSON.parse(re(n.value))}async renameKey(e,t,n){if(!Vt(e)||e===this.self)throw new $(`Invalid old key name '${e}'`);if(!Vt(t)||t===this.self)throw new $(`Invalid new key name '${t}'`);let i=dt(e),o=dt(t),s=Rr(e),a=Rr(t);if(await this.components.datastore.has(o,n))throw new $(`Key '${t}' already exists`);let l=await this.components.datastore.get(i,n),h=await this.components.datastore.get(s,n),f=JSON.parse(re(h));f.name=t;let d=this.components.datastore.batch();d.put(o,l),d.put(a,I(JSON.stringify(f))),d.delete(i),d.delete(s),await d.commit(n)}async rotateKeychainPass(e,t){if(typeof e!="string")throw new $(`Invalid new pass type '${typeof e}'`);if(e.length<Gi)throw new $(`Invalid pass length ${e.length}, must be at least ${Gi}`);let n=this.cipher,i=this.cipher=oa(e,this.salt,this.keychainDekOptions,this.privateKeyDekOptions),o=this.components.datastore.batch();for await(let s of this.listKeys(t)){let a=await this._exportKey(s.name,n);await this._importKey(s.name,a,i,o,t)}await o.commit(t)}async loadPublicKeyFromProtobuf(e,t){let n=j.decode(e);if(n.Type==null)throw new $("Protobuf was missing Type");return(await this.components.getCrypto(n.Type,t)).publicKeyFromProtobuf(e,t)}},Uh={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function oa(r,e,t,n){let i;async function o(l,h,f,d){let y,w=I(l),k=await crypto.subtle.importKey("raw",w,{name:"PBKDF2"},!1,["deriveKey"]);try{y=await crypto.subtle.deriveKey({name:"PBKDF2",salt:L(h),iterations:d.iterations,hash:{name:d.hash}},k,{name:d.algorithm??"AES-GCM",length:d.keyLength},!0,f)}catch(E){if(l==="")y=await crypto.subtle.importKey("jwk",Uh,{name:d.algorithm??"AES-GCM"},!0,f);else throw E}return y}async function s(){if(r==="")return r;let l=await o(r,e,["encrypt","decrypt"],t);return(await crypto.subtle.exportKey("jwk",l)).k??""}async function a(l,h){i==null&&(i=await s());let f=crypto.getRandomValues(new Uint8Array(n.saltLength)),d=crypto.getRandomValues(new Uint8Array(n.ivLength)),y=await o(i,f,["encrypt"],n),w=await crypto.subtle.encrypt({name:"AES-GCM",iv:d},y,l);return h?.signal?.throwIfAborted(),{salt:f,iv:d,cipherText:new Uint8Array(w)}}async function c(l,h,f,d){i==null&&(i=await s());let y=await o(i,l,["decrypt"],{iterations:d?.iterations??n.iterations,keyLength:d?.keyLength??n.keyLength,hash:d?.hash??n.hash,algorithm:d?.algorithm??"AES-GCM"}),w=await crypto.subtle.decrypt({name:d?.algorithm??"AES-GCM",iv:L(h)},y,L(f));return d?.signal?.throwIfAborted(),new Uint8Array(w)}return{encrypt:a,decrypt:c}}function ca(r){return e=>new Br(e,r)}var ua=Symbol.for("@libp2p/content-routing");var ge=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var pt=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var Ur=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var Or=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var la=Symbol.for("@libp2p/peer-routing");function ha(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Oe(...r){let e=[];for(let t of r)ha(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 Me(...r){let e=[];for(let t of r)ha(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()}))}function Oh(r){return typeof r?.handleEvent=="function"}function Mh(r){return(r!==!0&&r!==!1&&r?.once)??!1}var ie=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){let i=Mh(n);super.addEventListener(e,s=>{if(i){let a=this.#e.get(s.type);a!=null&&(a=a.filter(({callback:c})=>c!==t),this.#e.set(s.type,a))}Oh(t)?t.handleEvent(s):t(s)},n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:i})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==t),this.#e.set(e,i))}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var x=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var Mr=class extends AggregateError{static name="DNSQueryFailedError";name="DNSQueryFailedError"};var Qi=ri(da(),1);var Yi=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},pa=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function Wt(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout},signal:s}=e,a,c,h=new Promise((f,d)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(s?.aborted){d(pa(s));return}if(s&&(c=()=>{d(pa(s))},s.addEventListener("abort",c,{once:!0})),r.then(f,d),t===Number.POSITIVE_INFINITY)return;let y=new Yi;a=o.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(w){d(w)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?f():i instanceof Error?d(i):(y.message=i??`Promise timed out after ${t} milliseconds`,d(y))},t)}).finally(()=>{h.clear(),c&&s&&s.removeEventListener("abort",c)});return h.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},h}function Xi(r,e,t){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;t(r[s],e)<=0?(n=++s,i-=o+1):i=o}return n}var zh=100,mt=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:i}=t??{},{size:o}=this,s={priority:n,id:i,run:e};if(o===0){this.#e.length=0,this.#t=0,this.#e.push(s);return}if(this.#e.at(-1).priority>=n){this.#e.push(s);return}this.#o();let a=Xi(this.#e,s,(c,l)=>l.priority-c.priority);this.#e.splice(a,0,s)}setPriority(e,t){let n=this.#e.findIndex((o,s)=>s>=this.#t&&o.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[i]=this.#e.splice(n,1);this.enqueue(i.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((n,i)=>i<this.#t?!1:typeof e=="string"?n.id===e:n.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>zh&&this.#t>this.#e.length/2&&this.#o(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let i=this.#e[n];i.priority===e.priority&&t.push(i.run)}return t}get size(){return this.#e.length-this.#t}#o(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}};var Gt=class extends Qi.default{#e;#t;#o=0;#d;#m=!1;#b=!1;#c;#I=0;#x=0;#u;#l;#a;#s=[];#i=0;#r;#T;#n=0;#g;#h;#N=1n;#y=new Map;#E=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:mt,strict:!1,...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})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#c=e.interval,this.#a=e.strict,this.#r=new e.queueClass,this.#T=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#h=e.autoStart===!1,this.#z()}#v(e){for(;this.#i<this.#s.length;){let n=this.#s[this.#i];if(n!==void 0&&e-n>=this.#c)this.#i++;else break}(this.#i>100&&this.#i>this.#s.length/2||this.#i===this.#s.length)&&(this.#s=this.#s.slice(this.#i),this.#i=0)}#R(e){this.#a?this.#s.push(e):this.#o++}#B(){this.#a?this.#s.length>this.#i&&this.#s.pop():this.#o>0&&this.#o--}#_(){return this.#s.length-this.#i}get#U(){return this.#t?!0:this.#a?this.#_()<this.#d:this.#o<this.#d}get#O(){return this.#n<this.#g}#M(){this.#n--,this.#n===0&&this.emit("pendingZero"),this.#w(),this.emit("next")}#F(){this.#l=void 0,this.#D(),this.#C()}#$(e){if(this.#a){if(this.#v(e),this.#_()>=this.#d){let n=this.#s[this.#i],i=this.#c-(e-n);return this.#A(i),!0}return!1}if(this.#u===void 0){let t=this.#I-e;if(t<0){if(this.#x>0){let n=e-this.#x;if(n<this.#c)return this.#A(this.#c-n),!0}this.#o=this.#e?this.#n:0}else return this.#A(t),!0}return!1}#A(e){this.#l===void 0&&(this.#l=setTimeout(()=>{this.#F()},e))}#k(){this.#u&&(clearInterval(this.#u),this.#u=void 0)}#L(){this.#l&&(clearTimeout(this.#l),this.#l=void 0)}#w(){if(this.#r.size===0){if(this.#k(),this.emit("empty"),this.#n===0){if(this.#L(),this.#a&&this.#i>0){let t=Date.now();this.#v(t)}this.emit("idle")}return!1}let e=!1;if(!this.#h){let t=Date.now(),n=!this.#$(t);if(this.#U&&this.#O){let i=this.#r.dequeue();this.#t||(this.#R(t),this.#p()),this.emit("active"),i(),n&&this.#C(),e=!0}}return e}#C(){this.#t||this.#u!==void 0||this.#a||(this.#u=setInterval(()=>{this.#D()},this.#c),this.#I=Date.now()+this.#c)}#D(){this.#a||(this.#o===0&&this.#n===0&&this.#u&&this.#k(),this.#o=this.#e?this.#n:0),this.#S(),this.#p()}#S(){for(;this.#w(););}get concurrency(){return this.#g}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.#g=e,this.#S()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#r.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#N++).toString()},new Promise((n,i)=>{let o=Symbol(`task-${t.id}`),s=()=>{},a=async()=>{s(),this.#n++,this.#y.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let l;try{try{t.signal?.throwIfAborted()}catch(d){throw this.#K(),this.#y.delete(o),d}this.#x=Date.now();let h=e({signal:t.signal});if(t.timeout&&(h=Wt(Promise.resolve(h),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#n} running, ${this.#r.size} waiting)`})),t.signal){let{signal:d}=t;h=Promise.race([h,new Promise((y,w)=>{l=()=>{w(d.reason)},d.addEventListener("abort",l,{once:!0})})])}let f=await h;n(f),this.emit("completed",f)}catch(h){i(h),this.emit("error",h)}finally{l&&t.signal?.removeEventListener("abort",l),this.#y.delete(o),queueMicrotask(()=>{this.#M()})}};this.#r.enqueue(a,t);let c=()=>{if(this.#r instanceof mt){this.#r.remove(a);return}this.#r.remove?.(t.id)};if(t.signal){let{signal:l}=t,h=()=>{s(),c(),i(l.reason),this.#w(),this.emit("next")};if(s=()=>{l.removeEventListener("abort",h),this.#E.delete(s)},l.aborted){h();return}l.addEventListener("abort",h,{once:!0}),this.#E.add(s)}this.emit("add"),this.#w()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#h?(this.#h=!1,this.#S(),this):this}pause(){this.#h=!0}clear(){for(let e of this.#E)e();this.#r=new this.#T,this.#k(),this.#P(),this.emit("empty"),this.#n===0&&(this.#L(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#r.size!==0&&await this.#f("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#f("next",()=>this.#r.size<e)}async onIdle(){this.#n===0&&this.#r.size===0||await this.#f("idle")}async onPendingZero(){this.#n!==0&&await this.#f("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#f("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#f("rateLimitCleared")}onError(){return new Promise((e,t)=>{let n=i=>{this.off("error",n),t(i)};this.on("error",n)})}async#f(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#h}#z(){this.#t||(this.on("add",()=>{this.#r.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#t||this.#b||(this.#b=!0,queueMicrotask(()=>{this.#b=!1,this.#P()}))}#K(){this.#t||(this.#B(),this.#p())}#P(){let e=this.#m;if(this.#t||this.#r.size===0){e&&(this.#m=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){let i=Date.now();this.#v(i),t=this.#_()}else t=this.#o;let n=t>=this.#d;n!==e&&(this.#m=n,this.emit(n?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#n===this.#g&&this.#r.size>0||this.isRateLimited&&this.#r.size>0}get runningTasks(){return[...this.#y.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}};function $r(r){let e=[ye.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var Zi=60;function zr(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:ye[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:ye[e.type],TTL:e.TTL??e.ttl??Zi,data:e.data instanceof Uint8Array?re(e.data):e.data}))}}var Kh=4;function eo(r,e={}){let t=new Gt({concurrency:e.queryConcurrency??Kh});return async(n,i={})=>{let o=i?.logger?.forComponent("dns:dns-json-over-https"),s=new URLSearchParams;s.set("name",n),$r(i.types).forEach(c=>{s.append("type",ye[c])}),i.onProgress?.(new x("dns:query",n)),o?.("GET %s",`${r}?${s}`);let a=await t.add(async()=>{let c=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:i?.signal});if(o?.("GET %s %d",c.url,c.status),c.status!==200)throw new Error(`Unexpected HTTP status: ${c.status} - ${c.statusText}`);let l=zr(await c.json());return i.onProgress?.(new x("dns:response",l)),l},{signal:i.signal});if(a==null)throw new Error("No DNS response received");return a}}function ma(){return[eo("https://cloudflare-dns.com/dns-query"),eo("https://dns.google/resolve")]}var wa=ri(ya(),1);var to=class{lru;constructor(e){this.lru=(0,wa.default)(e)}get(e,t){let n=!0,i=[];for(let o of t){let s=this.getAnswers(e,o);if(s.length===0){n=!1;break}i.push(...s)}if(n)return zr({answers:i})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,i=this.lru.get(n);if(i!=null){let o=i.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:ye[a.type]}));return o.length===0&&this.lru.remove(n),o}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,i=this.lru.get(n)??[];i.push({expires:Date.now()+(t.TTL??Zi)*1e3,value:t}),this.lru.set(n,i)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function ba(r){return new to(r)}var qh=1e3,Kr=class{resolvers;cache;logger;constructor(e){this.resolvers={},this.cache=ba(e.cacheSize??qh),this.logger=e.logger,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["."]=ma())}async query(e,t={}){let n=$r(t.types),i=t.cached!==!1?this.cache.get(e,n):void 0;if(i!=null)return t.onProgress?.(new x("dns:cache",i)),i;let o=`${e.split(".").pop()}.`,s=(this.resolvers[o]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of s){if(t.signal?.aborted===!0)break;try{let l=await c(e,{...t,logger:this.logger,types:n});for(let h of l.Answer)this.cache.add(e,h);return l}catch(l){a.push(l),t.onProgress?.(new x("dns:error",l))}}throw new Mr(a,`DNS lookup of ${e} ${n} failed`)}};var ye;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(ye||(ye={}));function xa(r={}){return new Kr(r)}function jh(r){return r[Symbol.asyncIterator]!=null}function Vh(r){if(jh(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ea=Vh;var ro={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},va={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},_a=new globalThis.TextEncoder;function Hh(r,e){let t=ro[e],n=va[e];for(let i=0;i<r.length;i++)n^=BigInt(r[i]),n=BigInt.asUintN(e,n*t);return n}function Wh(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ro[e],i=va[e],o=r;for(;o.length>0;){let s=_a.encodeInto(o,t);o=o.slice(s.read);for(let a=0;a<s.written;a++)i^=BigInt(t[a]),i=BigInt.asUintN(e,i*n)}return i}function no(r,{size:e=32,utf8Buffer:t}={}){if(!ro[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 Wh(r,e,t);r=_a.encode(r)}return Hh(r,e)}var Jt={hash:r=>Number(no(r,{size:32})),hashV:(r,e)=>Gh(Jt.hash(r,e))};function Gh(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),I(e,"base16")}var io=64,we=class{fp;h;seed;constructor(e,t,n,i=2){if(i>io)throw new TypeError("Invalid Fingerprint Size");let o=t.hashV(e,n),s=ce(i);for(let a=0;a<s.length;a++)s[a]=o[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?Le(this.fp,e.fp):!1}};function We(r,e){return Math.floor(Math.random()*(e-r))+r}var Ge=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof we))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof we))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 we))throw new TypeError("Invalid Fingerprint");let t=We(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof we))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var Jh=500,Qt=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??Jt,this.seed=e.seed??We(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=I(e));let t=new we(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new Ge(this.bucketSize)),this.buckets[i]==null&&(this.buckets[i]=new Ge(this.bucketSize)),this.buckets[n].add(t)||this.buckets[i].add(t))return this.count++,!0;let o=[n,i],s=o[We(0,o.length-1)];this.buckets[s]==null&&(this.buckets[s]=new Ge(this.bucketSize));for(let a=0;a<Jh;a++){let c=this.buckets[s].swap(t);if(c!=null&&(s=(s^c.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new Ge(this.bucketSize)),this.buckets[s].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=I(e));let t=new we(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.has(t)??!1;if(i)return i;let o=(n^t.hash())%this.filterSize;return this.buckets[o]?.has(t)??!1}remove(e){typeof e=="string"&&(e=I(e));let t=new we(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.remove(t)??!1;if(i)return this.count--,i;let o=(n^t.hash())%this.filterSize,s=this.buckets[o]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Qh={1:.5,2:.84,4:.95,8:.98};function Yh(r=.001){return r>.002?2:r>1e-5?4:8}function Aa(r,e=.001){let t=Yh(e),n=Qh[t],i=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),io);return{filterSize:i,bucketSize:t,fingerprintSize:o}}var qr=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??Jt,this.seed=e.seed??We(0,Math.pow(2,10)),this.filterSeries=[new Qt({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=I(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 Qt({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=I(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=I(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 jr(r,e=.001,t){return new qr({...Aa(r,e),...t??{}})}function V(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Vr=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}},gt=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Vr(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 Vr(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 oo=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Hr(r={}){return Xh(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 Xh(r,e){e=e??{};let t=e.onEnd,n=new gt,i,o,s,a=V(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((E,C)=>{o=O=>{o=null,n.push(O);try{E(r(n))}catch(N){C(N)}return i}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=V()})}},l=E=>o!=null?o(E):(n.push(E),i),h=E=>(n=new gt,o!=null?o({error:E}):(n.push({error:E}),i)),f=E=>{if(s)return i;if(e?.objectMode!==!0&&E?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:E})},d=E=>s?i:(s=!0,E!=null?h(E):l({done:!0})),y=()=>(n=new gt,d(),{done:!0}),w=E=>(d(E),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:w,push:f,end:d,get readableLength(){return n.size},onEmpty:async E=>{let C=E?.signal;if(C?.throwIfAborted(),n.isEmpty())return;let O,N;C!=null&&(O=new Promise((H,te)=>{N=()=>{te(new oo)},C.addEventListener("abort",N)}));try{await Promise.race([a.promise,O])}finally{N!=null&&C!=null&&C?.removeEventListener("abort",N)}}},t==null)return i;let k=i;return i={[Symbol.asyncIterator](){return this},next(){return k.next()},throw(E){return k.throw(E),t!=null&&(t(E),t=void 0),{done:!0}},return(){return k.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(E){return k.end(E),t!=null&&(t(E),t=void 0),i},get readableLength(){return k.readableLength},onEmpty:E=>k.onEmpty(E)},i}var Zh=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 ef(r,e,t){let n,i=new Promise((o,s)=>{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:h}=Zh(r),f=async(...y)=>{let w=t.multiArgs?y:y[0];if(t.filter)try{if(!await t.filter(w))return}catch(k){n(),s(k);return}c.push(w),t.count===c.length&&(n(),o(c))},d=(...y)=>{n(),s(t.rejectionMultiArgs?y:y[0])};n=()=>{for(let y of a)h(y,f);for(let y of t.rejectionEvents)a.includes(y)||h(y,d)};for(let y of a)l(y,f);for(let y of t.rejectionEvents)a.includes(y)||l(y,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&o(c)});if(i.cancel=n,typeof t.timeout=="number"){let o=Wt(i,{milliseconds:t.timeout});return o.cancel=()=>{n(),o.clear()},o}return i}function Wr(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=ef(r,e,t),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}function so(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Gr=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};function tf(r){return r.reason}async function Fe(r,e,t){if(e==null)return r;let n=t?.translateError??tf;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let i;try{return await Promise.race([r,new Promise((o,s)=>{i=()=>{s(n(e))},e.addEventListener("abort",i)})])}finally{i!=null&&e.removeEventListener("abort",i)}}var Jr=class{deferred;signal;onProgress;constructor(e){this.signal=e?.signal,this.onProgress=e?.onProgress,this.deferred=V(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ge)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function rf(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Qr=class{id;fn;options;recipients;status;timeline;controller;dispatchingProgress;constructor(e,t){this.id=rf(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.dispatchingProgress=!1,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 ge),this.cleanup())}async join(e){let t=new Jr(e);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 Fe(this.fn({...this.options??{},signal:this.controller.signal,onProgress:t=>{if(!this.dispatchingProgress){this.dispatchingProgress=!0;try{this.recipients.forEach(n=>{n.onProgress?.(t)})}finally{this.dispatchingProgress=!1}}}}),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 J=class extends ie{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=so(this.emitEmpty.bind(this),1),this.emitIdle=so(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 Gr;let n=new Qr(e,t);this.enqueue(n),this.safeDispatchEvent("add");let i=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});return this.tryToStartAnother(),i}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new ge)}),this.clear()}async onEmpty(e){this.size!==0&&await Wr(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await Wr(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Wr(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=Hr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new ge("Queue aborted"))};this.addEventListener("completed",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};function be(r){let e=new globalThis.AbortController;function t(){let o=r.filter(s=>s?.aborted===!0).map(s=>s?.reason).pop();e.abort(o);for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let o of r){if(o?.aborted===!0){t();break}o?.addEventListener!=null&&o.addEventListener("abort",t)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}let i=e.signal;return i.clear=n,i}var ao=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=V(),this.haveNext=V()}[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=V(),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=V(),await Fe(this.readNext.promise,t?.signal,t)}};function ka(){return new ao}function nf(r){return r[Symbol.asyncIterator]!=null}async function of(r,e,t){try{await Promise.all(r.map(async n=>{for await(let i of n)await e.push(i,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*sf(r){let e=new AbortController,t=ka();of(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*af(r){for(let e of r)yield*e}function cf(...r){let e=[];for(let t of r)nf(t)||e.push(t);return e.length===r.length?af(e):sf(r)}var Yr=cf;var uf=["Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","Tagged"];function co(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(e==="string"||e==="number"||e==="bigint"||e==="symbol")return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(r instanceof Uint8Array)return"Uint8Array";if(r.constructor===Object)return"Object";let t=lf(r);return t||"Object"}function lf(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(uf.includes(e))return e}var u=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}static equals(e,t){return e===t||e.major===t.major&&e.name===t.name}};u.uint=new u(0,"uint",!0);u.negint=new u(1,"negint",!0);u.bytes=new u(2,"bytes",!0);u.string=new u(3,"string",!0);u.array=new u(4,"array",!1);u.map=new u(5,"map",!1);u.tag=new u(6,"tag",!1);u.float=new u(7,"float",!0);u.false=new u(7,"false",!0);u.true=new u(7,"true",!0);u.null=new u(7,"null",!0);u.undefined=new u(7,"undefined",!0);u.break=new u(7,"break",!0);var p=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 Yt=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",hf=new TextEncoder;function Xr(r){return Yt&&globalThis.Buffer.isBuffer(r)}function Je(r){return r instanceof Uint8Array?Xr(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var ff=24,df=200,yt=Yt?r=>r.length>=ff?globalThis.Buffer.from(r):Sa(r):r=>r.length>=df?hf.encode(r):Sa(r),Ae=r=>Uint8Array.from(r),Ta=Yt?(r,e,t)=>Xr(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),La=Yt?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),Je(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let i of r)n+i.length>t.length&&(i=i.subarray(0,t.length-n)),t.set(i,n),n+=i.length;return t},Ca=Yt?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Zr(r,e){if(Xr(r)&&Xr(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 Sa(r){let e=[],t=0;for(let n=0;n<r.length;n++){let i=r.charCodeAt(n);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(i=65536+((i&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(i>=55296&&i<=57343&&(i=65533),e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e}var Ia=4096;function Da(r){let e=r.length;if(e<=Ia)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=Ia));return t}var pf=256,Xt=class{constructor(e=pf){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 i=t.length-(this.maxCursor-this.cursor)-1;t.set(e,i)}else{if(t){let i=t.length-(this.maxCursor-this.cursor)-1;i<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,i),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Ca(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=Ta(n,0,this.cursor)}else t=La(this.chunks,this.cursor);return e&&this.reset(),t}},en=class{constructor(e){this.dest=e,this.cursor=0,this.chunks=[e]}reset(){this.cursor=0}push(e){if(this.cursor+e.length>this.dest.length)throw new Error("write out of bounds, destination buffer is too small");this.dest.set(e,this.cursor),this.cursor+=e.length}toBytes(e=!1){let t=this.dest.subarray(0,this.cursor);return e&&this.reset(),t}};var g="CBOR decode error:",ke="CBOR encode error:",Zt=[];Zt[23]=1;Zt[24]=2;Zt[25]=3;Zt[26]=5;Zt[27]=9;function Ce(r,e,t){if(r.length-e<t)throw new Error(`${g} not enough data for type`)}var P=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Q(r,e,t){Ce(r,e,1);let n=r[e];if(t.strict===!0&&n<P[0])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function Y(r,e,t){Ce(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<P[1])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function X(r,e,t){Ce(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<P[2])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);return n}function Z(r,e,t){Ce(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],i=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],o=(BigInt(n)<<BigInt(32))+BigInt(i);if(t.strict===!0&&o<P[3])throw new Error(`${g} integer encoded in more bytes than necessary (strict decode)`);if(o<=Number.MAX_SAFE_INTEGER)return Number(o);if(t.allowBigInt===!0)return o;throw new Error(`${g} integers outside of the safe integer range are not supported`)}function Pa(r,e,t,n){return new p(u.uint,Q(r,e+1,n),2)}function Na(r,e,t,n){return new p(u.uint,Y(r,e+1,n),3)}function Ra(r,e,t,n){return new p(u.uint,X(r,e+1,n),5)}function Ba(r,e,t,n){return new p(u.uint,Z(r,e+1,n),9)}function oe(r,e){return S(r,0,e.value)}function S(r,e,t){if(t<P[0]){let n=Number(t);r.push([e|n])}else if(t<P[1]){let n=Number(t);r.push([e|24,n])}else if(t<P[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<P[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<P[4]){let i=[e|27,0,0,0,0,0,0,0],o=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));i[8]=o&255,o=o>>8,i[7]=o&255,o=o>>8,i[6]=o&255,o=o>>8,i[5]=o&255,i[4]=s&255,s=s>>8,i[3]=s&255,s=s>>8,i[2]=s&255,s=s>>8,i[1]=s&255,r.push(i)}else throw new Error(`${g} encountered BigInt larger than allowable range`)}}oe.encodedSize=function(e){return S.encodedSize(e.value)};S.encodedSize=function(e){return e<P[0]?1:e<P[1]?2:e<P[2]?3:e<P[3]?5:9};oe.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Ua(r,e,t,n){return new p(u.negint,-1-Q(r,e+1,n),2)}function Oa(r,e,t,n){return new p(u.negint,-1-Y(r,e+1,n),3)}function Ma(r,e,t,n){return new p(u.negint,-1-X(r,e+1,n),5)}var uo=BigInt(-1),Fa=BigInt(1);function $a(r,e,t,n){let i=Z(r,e+1,n);if(typeof i!="bigint"){let o=-1-i;if(o>=Number.MIN_SAFE_INTEGER)return new p(u.negint,o,9)}if(n.allowBigInt!==!0)throw new Error(`${g} integers outside of the safe integer range are not supported`);return new p(u.negint,uo-BigInt(i),9)}function tn(r,e){let t=e.value,n=typeof t=="bigint"?t*uo-Fa:t*-1-1;S(r,e.type.majorEncoded,n)}tn.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*uo-Fa:t*-1-1;return n<P[0]?1:n<P[1]?2:n<P[2]?3:n<P[3]?5:9};tn.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function er(r,e,t,n){Ce(r,e,t+n);let i=r.slice(e+t,e+t+n);return new p(u.bytes,i,t+n)}function za(r,e,t,n){return er(r,e,1,t)}function Ka(r,e,t,n){return er(r,e,2,Q(r,e+1,n))}function qa(r,e,t,n){return er(r,e,3,Y(r,e+1,n))}function ja(r,e,t,n){return er(r,e,5,X(r,e+1,n))}function Va(r,e,t,n){let i=Z(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer bytes lengths not supported`);return er(r,e,9,i)}function rn(r){return r.encodedBytes===void 0&&(r.encodedBytes=u.equals(r.type,u.string)?yt(r.value):r.value),r.encodedBytes}function wt(r,e){let t=rn(e);S(r,e.type.majorEncoded,t.length),r.push(t)}wt.encodedSize=function(e){let t=rn(e);return S.encodedSize(t.length)+t.length};wt.compareTokens=function(e,t){return gf(rn(e),rn(t))};function gf(r,e){return r.length<e.length?-1:r.length>e.length?1:Zr(r,e)}var Ha=new TextDecoder,wf=32;function bf(r,e,t){if(t-e<wf){let i="";for(let o=e;o<t;o++){let s=r[o];if(s&128)return Ha.decode(r.subarray(e,t));i+=String.fromCharCode(s)}return i}return Ha.decode(r.subarray(e,t))}function tr(r,e,t,n,i){let o=t+n;Ce(r,e,o);let s=new p(u.string,bf(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=r.slice(e+t,e+o)),s}function Wa(r,e,t,n){return tr(r,e,1,t,n)}function Ga(r,e,t,n){return tr(r,e,2,Q(r,e+1,n),n)}function Ja(r,e,t,n){return tr(r,e,3,Y(r,e+1,n),n)}function Qa(r,e,t,n){return tr(r,e,5,X(r,e+1,n),n)}function Ya(r,e,t,n){let i=Z(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer string lengths not supported`);return tr(r,e,9,i,n)}var Xa=wt;function bt(r,e,t,n){return new p(u.array,n,t)}function Za(r,e,t,n){return bt(r,e,1,t)}function ec(r,e,t,n){return bt(r,e,2,Q(r,e+1,n))}function tc(r,e,t,n){return bt(r,e,3,Y(r,e+1,n))}function rc(r,e,t,n){return bt(r,e,5,X(r,e+1,n))}function nc(r,e,t,n){let i=Z(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer array lengths not supported`);return bt(r,e,9,i)}function ic(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return bt(r,e,1,1/0)}function nn(r,e){S(r,u.array.majorEncoded,e.value)}nn.compareTokens=oe.compareTokens;nn.encodedSize=function(e){return S.encodedSize(e.value)};function xt(r,e,t,n){return new p(u.map,n,t)}function oc(r,e,t,n){return xt(r,e,1,t)}function sc(r,e,t,n){return xt(r,e,2,Q(r,e+1,n))}function ac(r,e,t,n){return xt(r,e,3,Y(r,e+1,n))}function cc(r,e,t,n){return xt(r,e,5,X(r,e+1,n))}function uc(r,e,t,n){let i=Z(r,e+1,n);if(typeof i=="bigint")throw new Error(`${g} 64-bit integer map lengths not supported`);return xt(r,e,9,i)}function lc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return xt(r,e,1,1/0)}function on(r,e){S(r,u.map.majorEncoded,e.value)}on.compareTokens=oe.compareTokens;on.encodedSize=function(e){return S.encodedSize(e.value)};function hc(r,e,t,n){return new p(u.tag,t,1)}function fc(r,e,t,n){return new p(u.tag,Q(r,e+1,n),2)}function dc(r,e,t,n){return new p(u.tag,Y(r,e+1,n),3)}function pc(r,e,t,n){return new p(u.tag,X(r,e+1,n),5)}function mc(r,e,t,n){return new p(u.tag,Z(r,e+1,n),9)}function sn(r,e){S(r,u.tag.majorEncoded,e.value)}sn.compareTokens=oe.compareTokens;sn.encodedSize=function(e){return S.encodedSize(e.value)};var lo=20,ho=21,fo=22,po=23;function gc(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${g} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new p(u.null,null,1):new p(u.undefined,void 0,1)}function yc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${g} indefinite length items not allowed`);return new p(u.break,void 0,1)}function mo(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${g} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${g} Infinity values are not supported`)}return new p(u.float,r,e)}function wc(r,e,t,n){return mo(go(r,e+1),3,n)}function bc(r,e,t,n){return mo(yo(r,e+1),5,n)}function xc(r,e,t,n){return mo(Ac(r,e+1),9,n)}function rr(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|lo]);else if(n===!0)r.push([u.float.majorEncoded|ho]);else if(n===null)r.push([u.float.majorEncoded|fo]);else if(n===void 0)r.push([u.float.majorEncoded|po]);else{let i,o=!1;(!t||t.float64!==!0)&&(vc(n),i=go(xe,1),n===i||Number.isNaN(n)?(xe[0]=249,r.push(xe.slice(0,3)),o=!0):(_c(n),i=yo(xe,1),n===i&&(xe[0]=250,r.push(xe.slice(0,5)),o=!0))),o||(Af(n),i=Ac(xe,1),xe[0]=251,r.push(xe.slice(0,9)))}}rr.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){vc(n);let i=go(xe,1);if(n===i||Number.isNaN(n))return 3;if(_c(n),i=yo(xe,1),n===i)return 5}return 9};var Ec=new ArrayBuffer(9),se=new DataView(Ec,1),xe=new Uint8Array(Ec,0);function vc(r){if(r===1/0)se.setUint16(0,31744,!1);else if(r===-1/0)se.setUint16(0,64512,!1);else if(Number.isNaN(r))se.setUint16(0,32256,!1);else{se.setFloat32(0,r);let e=se.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)se.setUint16(0,31744,!1);else if(t===0)se.setUint16(0,(e&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?se.setUint16(0,0):i<-14?se.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):se.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function go(r,e){if(r.length-e<2)throw new Error(`${g} 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,i=t&1023,o;return n===0?o=i*2**-24:n!==31?o=(i+1024)*2**(n-25):o=i===0?1/0:NaN,t&32768?-o:o}function _c(r){se.setFloat32(0,r,!1)}function yo(r,e){if(r.length-e<4)throw new Error(`${g} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Af(r){se.setFloat64(0,r,!1)}function Ac(r,e){if(r.length-e<8)throw new Error(`${g} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}rr.compareTokens=oe.compareTokens;function _(r,e,t){throw new Error(`${g} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function an(r){return()=>{throw new Error(`${g} ${r}`)}}var m=[];for(let r=0;r<=23;r++)m[r]=_;m[24]=Pa;m[25]=Na;m[26]=Ra;m[27]=Ba;m[28]=_;m[29]=_;m[30]=_;m[31]=_;for(let r=32;r<=55;r++)m[r]=_;m[56]=Ua;m[57]=Oa;m[58]=Ma;m[59]=$a;m[60]=_;m[61]=_;m[62]=_;m[63]=_;for(let r=64;r<=87;r++)m[r]=za;m[88]=Ka;m[89]=qa;m[90]=ja;m[91]=Va;m[92]=_;m[93]=_;m[94]=_;m[95]=an("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)m[r]=Wa;m[120]=Ga;m[121]=Ja;m[122]=Qa;m[123]=Ya;m[124]=_;m[125]=_;m[126]=_;m[127]=an("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)m[r]=Za;m[152]=ec;m[153]=tc;m[154]=rc;m[155]=nc;m[156]=_;m[157]=_;m[158]=_;m[159]=ic;for(let r=160;r<=183;r++)m[r]=oc;m[184]=sc;m[185]=ac;m[186]=cc;m[187]=uc;m[188]=_;m[189]=_;m[190]=_;m[191]=lc;for(let r=192;r<=215;r++)m[r]=hc;m[216]=fc;m[217]=dc;m[218]=pc;m[219]=mc;m[220]=_;m[221]=_;m[222]=_;m[223]=_;for(let r=224;r<=243;r++)m[r]=an("simple values are not supported");m[244]=_;m[245]=_;m[246]=_;m[247]=gc;m[248]=an("simple values are not supported");m[249]=wc;m[250]=bc;m[251]=xc;m[252]=_;m[253]=_;m[254]=_;m[255]=yc;var Ee=[];for(let r=0;r<24;r++)Ee[r]=new p(u.uint,r,1);for(let r=-1;r>=-24;r--)Ee[31-r]=new p(u.negint,r,1);Ee[64]=new p(u.bytes,new Uint8Array(0),1);Ee[96]=new p(u.string,"",1);Ee[128]=new p(u.array,0,1);Ee[160]=new p(u.map,0,1);Ee[244]=new p(u.false,!1,1);Ee[245]=new p(u.true,!0,1);Ee[246]=new p(u.null,null,1);function wo(r){switch(r.type){case u.false:return Ae([244]);case u.true:return Ae([245]);case u.null:return Ae([246]);case u.bytes:return r.value.length?void 0:Ae([64]);case u.string:return r.value===""?Ae([96]):void 0;case u.array:return r.value===0?Ae([128]):void 0;case u.map:return r.value===0?Ae([160]):void 0;case u.uint:return r.value<24?Ae([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return Ae([31-Number(r.value)])}}var Sf={float64:!1,mapSorter:Lf,quickEncodeToken:wo},Lc=Object.freeze({float64:!0,mapSorter:Cf,quickEncodeToken:wo});function If(){let r=[];return r[u.uint.major]=oe,r[u.negint.major]=tn,r[u.bytes.major]=wt,r[u.string.major]=Xa,r[u.array.major]=nn,r[u.map.major]=on,r[u.tag.major]=sn,r[u.float.major]=rr,r}var vt=If(),cn=new Xt,ir=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(`${ke} object contains circular references`);return new r(t,e)}},$e={null:new p(u.null,null),undefined:new p(u.undefined,void 0),true:new p(u.true,!0),false:new p(u.false,!1),emptyArray:new p(u.array,0),emptyMap:new p(u.map,0)},Se={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new p(u.float,r):r>=0?new p(u.uint,r):new p(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new p(u.uint,r):new p(u.negint,r)},Uint8Array(r,e,t,n){return new p(u.bytes,r)},string(r,e,t,n){return new p(u.string,r)},boolean(r,e,t,n){return r?$e.true:$e.false},null(r,e,t,n){return $e.null},undefined(r,e,t,n){return $e.undefined},ArrayBuffer(r,e,t,n){return new p(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new p(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[$e.emptyArray,new p(u.break)]:$e.emptyArray;n=ir.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=Et(s,t,n);return t.addBreakTokens?[new p(u.array,r.length),i,new p(u.break)]:[new p(u.array,r.length),i]},Object(r,e,t,n){let i=e!=="Object",o=i?r.keys():Object.keys(r),s=i?r.size:o.length,a;if(s){a=new Array(s),n=ir.createCheck(n,r);let c=!i&&t.ignoreUndefinedProperties,l=0;for(let h of o){let f=i?r.get(h):r[h];c&&f===void 0||(a[l++]=[Et(h,t,n),Et(f,t,n)])}l<s&&(a.length=l)}return a?.length?(Tf(a,t),t.addBreakTokens?[new p(u.map,a.length),a,new p(u.break)]:[new p(u.map,a.length),a]):t.addBreakTokens===!0?[$e.emptyMap,new p(u.break)]:$e.emptyMap},Tagged(r,e,t,n){return[new p(u.tag,r.tag),Et(r.value,t,n)]}};Se.Map=Se.Object;Se.Buffer=Se.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Se[`${r}Array`]=Se.DataView;function Et(r,e={},t){let n=co(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||Se[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=Se[n];if(!o)throw new Error(`${ke} unsupported type: ${n}`);return o(r,n,e,t)}function Tf(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Lf(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 i=t.type.major,o=vt[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function Cf(r,e){if(r[0]instanceof p&&e[0]instanceof p){let t=r[0],n=e[0];return t._keyBytes||(t._keyBytes=kc(t.value)),n._keyBytes||(n._keyBytes=kc(n.value)),Zr(t._keyBytes,n._keyBytes)}throw new Error("rfc8949MapSorter: complex key types are not supported yet")}function kc(r){return un(r,vt,Lc)}function nr(r,e,t,n){if(Array.isArray(e))for(let i of e)nr(r,i,t,n);else t[e.type.major](r,e,n)}var Sc=u.uint.majorEncoded,Ic=u.negint.majorEncoded,Df=u.bytes.majorEncoded,Pf=u.string.majorEncoded,Tc=u.array.majorEncoded,Nf=u.float.majorEncoded|lo,Rf=u.float.majorEncoded|ho,Bf=u.float.majorEncoded|fo,Uf=u.float.majorEncoded|po,Of=BigInt(-1),Mf=BigInt(1);function Ff(r){return r.addBreakTokens!==!0}function Cc(r,e,t,n){let i=co(e),o=t.typeEncoders&&t.typeEncoders[i];if(o){let s=o(e,i,t,n);if(s!=null){nr(r,s,vt,t);return}}switch(i){case"null":r.push([Bf]);return;case"undefined":r.push([Uf]);return;case"boolean":r.push([e?Rf:Nf]);return;case"number":!Number.isInteger(e)||!Number.isSafeInteger(e)?rr(r,new p(u.float,e),t):e>=0?S(r,Sc,e):S(r,Ic,e*-1-1);return;case"bigint":e>=BigInt(0)?S(r,Sc,e):S(r,Ic,e*Of-Mf);return;case"string":{let s=yt(e);S(r,Pf,s.length),r.push(s);return}case"Uint8Array":S(r,Df,e.length),r.push(e);return;case"Array":if(!e.length){r.push([Tc]);return}n=ir.createCheck(n,e),S(r,Tc,e.length);for(let s of e)Cc(r,s,t,n);return;case"Object":case"Map":{let s=Se.Object(e,i,t,n);nr(r,s,vt,t)}return;default:{let s=Se[i];if(!s)throw new Error(`${ke} unsupported type: ${i}`);let a=s(e,i,t,n);nr(r,a,vt,t)}}}function un(r,e,t,n){let i=n instanceof Uint8Array,o=i?new en(n):cn,s=Et(r,t);if(!Array.isArray(s)&&t.quickEncodeToken){let a=t.quickEncodeToken(s);if(a)return i?(o.push(a),o.toBytes()):a;let c=e[s.type.major];if(c.encodedSize){let l=c.encodedSize(s,t);if(i||(o=new Xt(l)),c(o,s,t),o.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${s} was wrong`);return i?o.toBytes():Je(o.chunks[0])}}return o.reset(),nr(o,s,e,t),o.toBytes(!0)}function Ye(r,e){return e=Object.assign({},Sf,e),Ff(e)?(cn.reset(),Cc(cn,r,e,void 0),cn.toBytes(!0)):un(r,vt,e)}var $f={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},ln=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=Ee[e];if(t===void 0){let n=m[e];if(!n)throw new Error(`${g} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let i=e&31;t=n(this.data,this._pos,i,this.options)}return this._pos+=t.encodedLength,t}},ze=Symbol.for("DONE"),_t=Symbol.for("BREAK");function zf(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=Ke(e,t);if(o===_t){if(r.value===1/0)break;throw new Error(`${g} got unexpected break to lengthed array`)}if(o===ze)throw new Error(`${g} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function Kf(r,e,t){let n=t.useMaps===!0,i=t.rejectDuplicateMapKeys===!0,o=n?void 0:{},s=n?new Map:void 0;for(let a=0;a<r.value;a++){let c=Ke(e,t);if(c===_t){if(r.value===1/0)break;throw new Error(`${g} got unexpected break to lengthed map`)}if(c===ze)throw new Error(`${g} found map but not enough entries (got ${a} [no key], expected ${r.value})`);if(!n&&typeof c!="string")throw new Error(`${g} non-string keys not supported (got ${typeof c})`);if(i&&(n&&s.has(c)||!n&&Object.hasOwn(o,c)))throw new Error(`${g} found repeat map key "${c}"`);let l=Ke(e,t);if(l===ze)throw new Error(`${g} found map but not enough entries (got ${a} [no value], expected ${r.value})`);n?s.set(c,l):o[c]=l}return n?s:o}function*qf(r,e,t){for(let n=0;n<r.value;n++){let i=Ke(e,t);if(i===_t){if(r.value===1/0)break;throw new Error(`${g} got unexpected break to lengthed map`)}if(i===ze)throw new Error(`${g} found map but not enough entries (got ${n} [no key], expected ${r.value})`);let o=Ke(e,t);if(o===ze)throw new Error(`${g} found map but not enough entries (got ${n} [no value], expected ${r.value})`);yield[i,o]}}function jf(r,e){let t=!1,n=function(){if(t)throw new Error(`${g} tag decode() may only be called once`);t=!0;let i=Ke(r,e);if(i===ze)throw new Error(`${g} tag content missing`);if(i===_t)throw new Error(`${g} got unexpected break in tag content`);return i};return n.entries=function(){if(t)throw new Error(`${g} tag decode() may only be called once`);t=!0;let i=r.next();if(!u.equals(i.type,u.map))throw new Error(`${g} entries() requires map content, got ${i.type.name}`);let o=[];for(let s of qf(i,r,e))o.push(s);return o},Object.defineProperty(n,"_called",{get(){return t},enumerable:!1}),n}function Ke(r,e){if(r.done())return ze;let t=r.next();if(u.equals(t.type,u.break))return _t;if(t.type.terminal)return t.value;if(u.equals(t.type,u.array))return zf(t,r,e);if(u.equals(t.type,u.map))return Kf(t,r,e);if(u.equals(t.type,u.tag)){if(e.tags&&typeof e.tags[t.value]=="function"){let n=jf(r,e),i=e.tags[t.value](n);if(!n._called)throw new Error(`${g} tag decoder must call decode() or entries()`);return i}throw new Error(`${g} tag not supported (${t.value})`)}throw new Error("unsupported")}function bo(r,e){if(!(r instanceof Uint8Array))throw new Error(`${g} data to decode must be a Uint8Array`);e=Object.assign({},$f,e);let t=Je(r),n=e.tokenizer||new ln(t,e),i=Ke(n,e);if(i===ze)throw new Error(`${g} did not find any content to decode`);if(i===_t)throw new Error(`${g} got unexpected break`);return[i,r.subarray(n.pos())]}function ve(r,e){let[t,n]=bo(r,e);if(n.length>0)throw new Error(`${g} too many terminals, data makes no sense`);return t}var hn=class r{constructor(e,t){if(typeof e!="number"||!Number.isInteger(e)||e<0)throw new TypeError("Tagged: tag must be a non-negative integer");this.tag=e,this.value=t}static decoder(e){return t=>new r(e,t())}static preserve(...e){let t={};for(let n of e)t[n]=r.decoder(n);return t}};Object.defineProperty(hn.prototype,Symbol.toStringTag,{value:"Tagged"});var fn=class extends J{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};function Vf(r){return r[Symbol.asyncIterator]!=null}function Hf(r){if(Vf(r))return(async()=>{let n=new Uint8Array(0);for await(let i of r)n=de([n,i],n.length+i.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return de(e,t)}var dn=Hf;function pn({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*Wf(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t],o=v.asCID(n);o!=null?yield[i.join("/"),o]:typeof n=="object"&&(yield*xo(n,i))}else{let t=v.asCID(e);t!=null?yield[r.join("/"),t]:yield*xo(e,r)}}function*xo(r,e){if(r==null||r instanceof Uint8Array)return;let t=v.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,i]of Object.entries(r)){let o=[...e,n];yield*Wf(o,i)}}function*Gf(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t];yield i.join("/"),typeof n=="object"&&v.asCID(n)==null&&(yield*Eo(n,i))}else yield*Eo(e,r)}function*Eo(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let i=[...e,t];yield i.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&v.asCID(n)==null&&(yield*Gf(i,n))}}function Jf(r,e){let t=r;for(let[n,i]of e.entries()){if(t=t[i],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let o=v.asCID(t);if(o!=null)return{value:o,remaining:e.slice(n+1).join("/")}}return{value:t}}var vo=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:pn(),bytes:pn(),value:pn(),asBlock:pn()})}links(){return xo(this.value,[])}tree(){return Eo(this.value,[])}get(e="/"){return Jf(this.value,e.split("/").filter(Boolean))}};function mn({bytes:r,cid:e,value:t,codec:n}){let i=t!==void 0?t:n?.decode(r);if(i===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new vo({cid:e,bytes:r,value:i})}var gn=class extends Error{static name="AlreadyPinnedError";name="AlreadyPinnedError"},or=class extends Error{static name="BlockPinnedError";name="BlockPinnedError"},yn=class extends Error{static name="InvalidDatastoreVersionError";name="InvalidDatastoreVersionError"},Xe=class extends Error{static name="InvalidConfigurationError";name="InvalidConfigurationError"},wn=class extends AggregateError{static name="GetFailedError";name="GetFailedError"},bn=class extends AggregateError{static name="LoadBlockFailedError";name="LoadBlockFailedError"},sr=class extends Error{static name="BlockNotFoundWhileOfflineError";name="BlockNotFoundWhileOfflineError"};var Rc="/pin/",Pc="/pinned-block/",_o=he,Nc=1;function xn(r){return r.version===0&&(r=r.toV1()),new ne(`${Rc}${r.toString(_o)}`)}var En=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=xn(e);if(await this.datastore.has(n))throw new gn("Already pinned");let i=Math.round(t.depth??1/0);if(i<0)throw new pt("Depth must be greater than or equal to 0");let o=new J({concurrency:Nc});for await(let a of this.#e(e,o,{...t,depth:i}))await this.#t(a,c=>c.pinnedBy.find(l=>Le(l,e.bytes))!=null?!1:(c.pinCount++,c.pinnedBy.push(e.bytes),!0),t),yield a;let s={depth:i,metadata:t.metadata??{}};await this.datastore.put(n,Ye(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let i=await this.getCodec(e.code),o=await dn(this.blockstore.get(e,n)),s=mn({bytes:o,cid:e,codec:i});yield e;for(let[,a]of s.links())yield*await t.add(async()=>this.#e(a,t,{...n,depth:n.depth-1}))}async#t(e,t,n){let i=new ne(`${Pc}${_o.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=ve(await this.datastore.get(i,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(o)){if(o.pinCount===0&&await this.datastore.has(i)){await this.datastore.delete(i);return}await this.datastore.put(i,Ye(o),n),n.onProgress?.(new x("helia:pin:add",e))}}async*rm(e,t={}){let n=xn(e),i=await this.datastore.get(n,t),o=ve(i);await this.datastore.delete(n,t);let s=new J({concurrency:Nc});for await(let a of this.#e(e,s,{...t,depth:o.depth}))await this.#t(a,c=>(c.pinCount--,c.pinnedBy=c.pinnedBy.filter(l=>Le(l,e.bytes)),!0),{...t,depth:o.depth}),yield a}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Rc+(e.cid!=null?`${e.cid.toString(he)}`:"")},e)){let i=v.parse(t.toString().substring(5),he),o=ve(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new ne(`${Pc}${_o.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=xn(e),i=await this.datastore.get(n,t);return ve(i)}async setMetadata(e,t,n){let i=xn(e),o=await this.datastore.get(i,n),s=ve(o);s.metadata=t??{},await this.datastore.put(i,Ye(s),n)}};var vn=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},Ze=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},_n=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},An=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var kn=class extends Error{static name="UnknownCryptoError";name="UnknownCryptoError"};var Qf=5,Sn=class{name;log;routers;providerLookupConcurrency;constructor(e,t){this.name="helia",this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Qf,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 Oe(...this.routers)}async stop(){await Me(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new Ze("No content routers available");let n=new fn({concurrency:this.providerLookupConcurrency}),i=0,o=[],s=this,a=0;this.log("findProviders for %c start using routers %s",e,this.routers.map(l=>l.toString()).join(", "));let c=et(this.routers,"findProviders").map(async function*(l){let h=0;t?.onProgress?.(new x("helia:routing:find-providers:start",{routing:l.name,cid:e}));try{for await(let f of l.findProviders(e,t))h++,t?.onProgress?.(new x("helia:routing:find-providers:provider",{routing:l.name,cid:e,provider:f})),yield f}catch(f){o.push(f)}finally{s.log("router %s found %d providers for %c",l,h,e),t?.onProgress?.(new x("helia:routing:find-providers:end",{routing:l.name,cid:e,found:h})),a++,a===c.length&&n.size===0&&n.emitIdle()}});for await(let l of Yr(n.toGenerator(),...c))if(l!=null){if(l.multiaddrs.length===0){if(n.find(l.id)!=null)continue;n.add(async()=>{try{let h=await this.findPeer(l.id,t);return h.multiaddrs.length===0?null:{...h,protocols:l.protocols,routing:l.routing}}catch(h){return this.log.error("could not load multiaddrs for peer %p - %e",l.id,h),null}},{peerId:l.id,signal:t.signal}).catch(h=>{this.log.error("could not load multiaddrs for peer %p - %e",l.id,h)});continue}i++,yield l}this.log("findProviders finished, found %d providers for %c",i,e)}async provide(e,t={}){if(this.routers.length===0)throw new Ze("No content routers available");await Promise.all(et(this.routers,"provide").map(async n=>{t?.onProgress?.(new x("helia:routing:provide:start",{routing:n.name,cid:e})),await n.provide(e,t),t?.onProgress?.(new x("helia:routing:provide:end",{routing:n.name,cid:e}))}))}async cancelReprovide(e,t={}){await Promise.all(et(this.routers,"cancelReprovide").map(async n=>{t?.onProgress?.(new x("helia:routing:cancel-reprovide:start",{routing:n.name,cid:e})),await n.cancelReprovide(e,t),t?.onProgress?.(new x("helia:routing:cancel-reprovide:end",{routing:n.name,cid:e}))}))}async put(e,t,n){await Promise.all(et(this.routers,"put").map(async i=>{n?.onProgress?.(new x("helia:routing:put:start",{routing:i.name,key:e,value:t})),await i.put(e,t,n),n?.onProgress?.(new x("helia:routing:put:end",{routing:i.name,key:e,value:t}))}))}async get(e,t){let n=[],i;try{i=await Promise.any(et(this.routers,"get").map(async o=>{t?.onProgress?.(new x("helia:routing:get:start",{routing:o.name,key:e}));try{return await o.get(e,t)}catch(s){this.log("router %s failed with %e",o,s),n.push(s)}finally{t?.onProgress?.(new x("helia:routing:get:end",{routing:o.name,key:e}))}}))}catch{}if(i==null)throw new wn(n,`Failed to get value key ${re(e,"base58btc")}`);return i}async findPeer(e,t){if(this.routers.length===0)throw new Ze("No peer routers available");let n=this,i=Yr(...et(this.routers,"findPeer").map(o=>(async function*(){t?.onProgress?.(new x("helia:routing:find-peer:start",{routing:o.name,peerId:e}));try{yield await o.findPeer(e,t)}catch(s){n.log.error(s)}finally{t?.onProgress?.(new x("helia:routing:find-peer:end",{routing:o.name,peerId:e}))}})()));for await(let o of i)if(o!=null)return o;throw new Ur("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Ze("No peer routers available");for await(let n of Yr(...et(this.routers,"getClosestPeers").map(async function*(i){t?.onProgress?.(new x("helia:routing:get-closest-peers:start",{routing:i.name,key:e}));try{yield*i.getClosestPeers(e,t)}finally{t?.onProgress?.(new x("helia:routing:get-closest-peers:end",{routing:i.name,key:e}))}})))n!=null&&(yield n)}};function et(r,e){return r.filter(t=>t[e]!=null)}var ee=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function In(r,e,t,n){let i=new ee(n?.errorMessage);n?.errorCode!=null&&(i.code=n.errorCode);let o=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(i):new Promise((s,a)=>{function c(){ko(t,"abort",f),ko(r,e,l),ko(r,o,h)}let l=d=>{try{if(n?.filter?.(d)===!1)return}catch(y){c(),a(y);return}c(),s(d)},h=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(i)};Ao(t,"abort",f),Ao(r,e,l),Ao(r,o,h)})}function Ao(r,e,t){r!=null&&(Bc(r)?r.addEventListener(e,t):r.addListener(e,t))}function ko(r,e,t){r!=null&&(Bc(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Bc(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var Tn=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Ln=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 ee)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Yf(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Cn=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Yf(),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 ee),this.cleanup())}async join(e={}){let t=new Ln(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 Fe(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 So(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var ar=class extends ie{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=So(this.emitEmpty.bind(this),1),this.emitIdle=So(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 Tn;let n=new Cn(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new ee)}),this.clear()}async onEmpty(e){this.size!==0&&await In(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await In(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await In(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=Hr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail.result)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new ee("Queue aborted"))};this.addEventListener("success",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var Dn="lock:worker:request-read",Pn="lock:worker:abort-read-request",Nn="lock:worker:release-read",Rn="lock:master:grant-read",Bn="lock:master:error-read",Un="lock:worker:request-write",On="lock:worker:abort-write-request",Mn="lock:worker:release-write",Fn="lock:master:grant-write",$n="lock:master:error-write",zn="lock:worker:finalize",Kn="mortice",Uc={singleProcess:!1};var Io=(r,e,t,n,i,o,s,a,c)=>l=>{if(l.data==null)return;let h={type:l.data.type,name:l.data.name,identifier:l.data.identifier};h.type===i&&r.safeDispatchEvent(t,{detail:{name:h.name,identifier:h.identifier,handler:async()=>{e.postMessage({type:c,name:h.name,identifier:h.identifier}),await new Promise(f=>{let d=y=>{if(y?.data==null)return;let w={type:y.data.type,name:y.data.name,identifier:y.data.identifier};w.type===a&&w.identifier===h.identifier&&(e.removeEventListener("message",d),f())};e.addEventListener("message",d)})},onError:f=>{e.postMessage({type:s,name:h.name,identifier:h.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),h.type===o&&r.safeDispatchEvent(n,{detail:{name:h.name,identifier:h.identifier}}),h.type===zn&&r.safeDispatchEvent("finalizeRequest",{detail:{name:h.name}})};var Oc=(r=10)=>Math.random().toString().substring(2,r+2);var qn=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(Kn)}readLock(e){return this.sendRequest(Dn,Pn,Rn,Bn,Nn,e)}writeLock(e){return this.sendRequest(Un,On,Fn,$n,Mn,e)}finalize(){this.channel.postMessage({type:zn,name:this.name}),this.channel.close()}async sendRequest(e,t,n,i,o,s){s?.signal?.throwIfAborted();let a=Oc();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,l)=>{let h=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",h,{once:!0});let f=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",h),c(()=>{this.channel.postMessage({type:o,identifier:a,name:this.name})})),d.data.type===i)){this.channel.removeEventListener("message",f),s?.signal?.removeEventListener("abort",h);let y=new Error;d.data.error!=null&&(y.message=d.data.error.message,y.name=d.data.error.name,y.stack=d.data.error.stack),l(y)}};this.channel.addEventListener("message",f)})}};var Mc=r=>{if(r=Object.assign({},Uc,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(Kn),n=new ie;return t.addEventListener("message",Io(n,t,"requestReadLock","abortReadLockRequest",Dn,Pn,Bn,Nn,Rn)),t.addEventListener("message",Io(n,t,"requestWriteLock","abortWriteLockRequest",Un,On,$n,Mn,Fn)),n}return new qn(r.name)};var tt=new Map,cr;function Fc(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function Xf(r){if(cr==null&&(cr=Mc(r),!Fc(cr))){let e=cr;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=tt.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortReadLockRequest",a),o.readLock({signal:s.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,i=t.detail.identifier,o=tt.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortWriteLockRequest",a),o.writeLock({signal:s.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,i=tt.get(n);i?.finalize()})}return cr}async function To(r,e){let t,n,i=new Promise((s,a)=>{t=s,n=a}),o=()=>{n(new ee)};return e?.signal?.addEventListener("abort",o,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",o),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),i}var $c=(r,e)=>{let t=tt.get(r);if(t!=null)return t;let n=Xf(e);if(Fc(n))return t=n,tt.set(r,t),t;let i=new ar({concurrency:1}),o;return t={async readLock(s){if(o!=null)return To(o,s);o=new ar({concurrency:e.concurrency,autoStart:!1});let a=o,c=To(o,s);return i.add(async()=>{a.start(),await a.onIdle().then(()=>{o===a&&(o=null)})}),c},async writeLock(s){return o=null,To(i,s)},finalize:()=>{tt.delete(r)},queue:i},tt.set(r,t),e.autoFinalize===!0&&i.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var Zf={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function Lo(r){let e=Object.assign({},Zf,r);return $c(e.name,e)}var jn=class{lock;child;pins;routing;started;constructor(e,t,n,i={}){this.child=e,this.pins=t,this.routing=n,this.lock=Lo({singleProcess:i.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await Oe(this.child),this.started=!0}async stop(){await Me(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let i=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{i()}}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 or("Block was pinned - please unpin and try again");await this.routing.cancelReprovide(e,t),await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let i=this;yield*this.child.deleteMany((async function*(){for await(let o of e){if(await i.pins.isPinned(o))throw new or("Block was pinned - please unpin and try again");await i.routing.cancelReprovide(o,t),yield o}})(),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 Co=new ne("/version"),zc=1;async function Kc(r){if(!await r.has(Co)){await r.put(Co,I(`${zc}`));return}let e=await r.get(Co),t=re(e);if(parseInt(t,10)!==zc)throw new yn("Invalid datastore version, a datastore migration may be required")}var Ro={};D(Ro,{code:()=>No,decode:()=>ud,decodeOptions:()=>sd,encode:()=>cd,encodeOptions:()=>id,name:()=>ad,toByteView:()=>jc});var qc=42;function jc(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function ed(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 p(u.tag,qc),new p(u.bytes,t)]}function td(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function rd(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 nd(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 Do={float64:!0,typeEncoders:{Map:nd,Object:ed,undefined:td,number:rd}},id={...Do,typeEncoders:{...Do.typeEncoders}};function od(r){let e=r();if(e[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return v.decode(e.subarray(1))}var Po={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:{[qc]:od}},sd={...Po,tags:{...Po.tags}},ad="dag-cbor",No=113,cd=r=>Ye(r,Do),ud=r=>ve(jc(r),Po);var $o={};D($o,{code:()=>Fo,decode:()=>Wc,encode:()=>Hc,format:()=>xd,name:()=>bd,parse:()=>vd,stringify:()=>xd});var Bo=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(u.equals(t.type,u.array)&&(t.elements++,t.elements!==1&&e.push([44])),u.equals(t.type,u.map)&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[u.uint.major](e,t){this.prefix(e);let n=String(t.value),i=[];for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);e.push(i)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${ke} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=yt(JSON.stringify(t.value));e.push(n.length>32?Je(n):n)}[u.array.major](e,t){this.prefix(e),this.inRecursive.push({type:u.array,elements:0}),e.push([91])}[u.map.major](e,t){this.prefix(e),this.inRecursive.push({type:u.map,elements:0}),e.push([123])}[u.tag.major](e,t){}[u.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(u.equals(s.type,u.array))e.push([93]);else if(u.equals(s.type,u.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(`${ke} 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),i=[],o=!1;for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s),!o&&(i[s]===46||i[s]===101||i[s]===69)&&(o=!0);o||(i.push(46),i.push(48)),e.push(i)}};function ld(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${ke} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${ke} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${ke} unexpected duplicate map keys, this is not supported`)}var hd={addBreakTokens:!0,mapSorter:ld};function Uo(r,e){return e=Object.assign({},hd,e),un(r,new Bo,e)}var At=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(`${g} 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(`${g} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,i=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 p(u.uint,0,this._pos-e);if(i([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${g} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${g} unexpected token at position ${this._pos}`);n=!0,this._pos++,i([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++,i([48,49,50,51,52,53,54,55,56,57]));let o=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(o);return n?new p(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new p(s>=0?u.uint:u.negint,s,this._pos-e):new p(s>=0?u.uint:u.negint,BigInt(o),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${g} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let o=this._pos,s=0;o<this.data.length&&s<65536;o++,s++){let a=this.data[o];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,o));return this._pos=o+1,new p(u.string,c,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${g} unexpected end of unicode escape sequence at position ${this._pos}`);let o=0;for(let s=0;s<4;s++){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(`${g} unexpected unicode escape character at position ${this._pos}`);o=o*16+a,this._pos++}return o},i=()=>{let o=this.ch(),s=null,a=o>239?4:o>223?3:o>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${g} unexpected unicode sequence at position ${this._pos}`);let c,l,h,f;switch(a){case 1:o<128&&(s=o);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(f=(o&31)<<6|c&63,f>127&&(s=f));break;case 3:c=this.data[this._pos+1],l=this.data[this._pos+2],(c&192)===128&&(l&192)===128&&(f=(o&15)<<12|(c&63)<<6|l&63,f>2047&&(f<55296||f>57343)&&(s=f));break;case 4:c=this.data[this._pos+1],l=this.data[this._pos+2],h=this.data[this._pos+3],(c&192)===128&&(l&192)===128&&(h&192)===128&&(f=(o&15)<<18|(c&63)<<12|(l&63)<<6|h&63,f>65535&&f<1114112&&(s=f))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let o=this.ch(),s;switch(o){case 92:if(this._pos++,this.done())throw new Error(`${g} unexpected string termination at position ${this._pos}`);switch(s=this.ch(),this._pos++,s){case 34:case 39:case 92:case 47:t.push(s);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(`${g} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new p(u.string,Da(t),this._pos-e);default:if(o<32)throw new Error(`${g} invalid control character at position ${this._pos}`);o<128?(t.push(o),this._pos++):i()}}throw new Error(`${g} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new p(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new p(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new p(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new p(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new p(u.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(`${g} 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 p(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${g} 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 p(u.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 p(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${g} 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 p(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${g} 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(`${g} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function Oo(r,e){return e=Object.assign({tokenizer:new At(r,e)},e),ve(r,e)}function dd(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function pd(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 p(u.map,1/0,1),new p(u.string,"/",1),new p(u.string,t,t.length),new p(u.break,void 0,1)]}function Vn(r){let e=fe.encode(r).slice(1);return[new p(u.map,1/0,1),new p(u.string,"/",1),new p(u.map,1/0,1),new p(u.string,"bytes",5),new p(u.string,e,e.length),new p(u.break,void 0,1),new p(u.break,void 0,1)]}function _e(r){return Vn(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function md(r){return Vn(new Uint8Array(r))}function gd(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function yd(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 wd={typeEncoders:{Object:pd,Buffer:Vn,Uint8Array:Vn,Int8Array:_e,Uint16Array:_e,Int16Array:_e,Uint32Array:_e,Int32Array:_e,Float32Array:_e,Float64Array:_e,Uint8ClampedArray:_e,BigInt64Array:_e,BigUint64Array:_e,DataView:_e,ArrayBuffer:md,undefined:gd,number:yd}},Mo=class extends At{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(u.equals(e.type,u.map)){let t=this._next();if(u.equals(t.type,u.string)&&t.value==="/"){let n=this._next();if(u.equals(n.type,u.string)){let i=this._next();if(!u.equals(i.type,u.break))throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new p(u.tag,42,0)}if(u.equals(n.type,u.map)){let i=this._next();if(u.equals(i.type,u.string)&&i.value==="bytes"){let o=this._next();if(u.equals(o.type,u.string)){for(let a=0;a<2;a++){let c=this._next();if(!u.equals(c.type,u.break))throw new Error("Invalid encoded Bytes form")}let s=fe.decode(`m${o.value}`);return new p(u.bytes,s,o.value.length)}this.tokenBuffer.push(o)}this.tokenBuffer.push(i)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Vc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:{42:r=>v.parse(r())}},bd="dag-json",Fo=297,Hc=r=>Uo(r,wd),Wc=r=>{let e=dd(r),t=Object.assign(Vc,{tokenizer:new Mo(e,Vc)});return Oo(e,t)},xd=r=>Ed.decode(Hc(r));var Ed=new TextDecoder,vd=r=>Wc(_d.encode(r)),_d=new TextEncoder;var Ho={};D(Ho,{code:()=>Vo,createLink:()=>nu,createNode:()=>ru,decode:()=>Ud,encode:()=>Bd,name:()=>Rd,prepare:()=>qo,validate:()=>jo});var Ad=new TextDecoder;function zo(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 i=r[e++];if(t+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[t,e]}function Hn(r,e){let t;[t,e]=zo(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 Gc(r,e){let t;return[t,e]=zo(r,e),[t&7,t>>3,e]}function kd(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=Gc(r,n),o===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) 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]=Hn(r,n)}else if(o===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Hn(r,n),e.Name=Ad.decode(s)}else if(o===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[e.Tsize,n]=zo(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Jc(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=Gc(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,t]=Hn(r,t),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let l;[l,t]=Hn(r,t),n.push(kd(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 s={};return o&&(s.Data=o),s.Links=n||[],s}var Yc=new TextEncoder,Qc=2**32,Sd=2**31;function Id(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=ur(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=Yc.encode(r.Name);t-=n.length,e.set(n,t),t=ur(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=ur(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function Xc(r){let e=Ld(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=ur(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=Id(r.Links[i],t.subarray(0,n));n-=o,n=ur(t,n,o)-1,t[n]=18}return t}function Td(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+kt(t)}if(typeof r.Name=="string"){let t=Yc.encode(r.Name).length;e+=1+t+kt(t)}return typeof r.Tsize=="number"&&(e+=1+kt(r.Tsize)),e}function Ld(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+kt(t)}if(r.Links)for(let t of r.Links){let n=Td(t);e+=1+n+kt(n)}return e}function ur(r,e,t){e-=kt(t);let n=e;for(;t>=Sd;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function kt(r){return r%2===0&&r++,Math.floor((Cd(r)+6)/7)}function Cd(r){let e=0;return r>=Qc&&(r=Math.floor(r/Qc),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+Dd[r]}var Dd=[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 Pd=["Data","Links"],Nd=["Hash","Name","Tsize"],Ko=new TextEncoder;function eu(r,e){if(r===e)return 0;let t=r.Name?Ko.encode(r.Name):[],n=e.Name?Ko.encode(e.Name):[],i=t.length,o=n.length;for(let s=0,a=Math.min(i,o);s<a;++s)if(t[s]!==n[s]){i=t[s],o=n[s];break}return i<o?-1:o<i?1:0}function Zc(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function tu(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 qo(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=Ko.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(tu),e.Links.sort(eu);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function jo(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!Zc(r,Pd))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(!Zc(t,Nd))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&&eu(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function ru(r,e=[]){return qo({Data:r,Links:e})}function nu(r,e,t){return tu({Hash:t,Name:r,Tsize:e})}function iu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var Rd="dag-pb",Vo=112;function Bd(r){jo(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),Xc(e)}function Ud(r){let e=iu(r),t=Jc(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(i=>{let o={};try{o.Hash=v.decode(i.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return i.Name!==void 0&&(o.Name=i.Name),i.Tsize!==void 0&&(o.Tsize=i.Tsize),o})),n}function qe(r){return r?.then!=null}function ou(r=[],e){let t={[Vo]:Ho,[_i]:gr,[No]:Ro,[Fo]:$o,[vi]:mr};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);qe(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new An(`Could not load codec for ${n}`)}}function su(r=[],e){let t={};return r=[Ki(),ji(),qt(),...r],r.forEach(n=>{t[n.type]=n,t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);qe(o)?i=await o:i=o,t[i.type]=i,t[i.code]=i}if(i!=null)return i;throw new kn(`Could not load crypto for ${i}`)}}function au(r=[],e){let t={[Ue.code]:Ue,[wr.code]:wr,[Be.code]:Be};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);qe(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new _n(`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 Wn=class r extends Error{static name="NotFoundError";name=r.name;static code="ERR_NOT_FOUND";code=r.code;constructor(e="Not Found"){super(e)}};var Gn=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:i}of e)await this.put(n,i,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 Jn=0,St=class extends Error{static name="IdentityHashDigestTooLongError";name="IdentityHashDigestTooLongError"},Qn=class extends Gn{child;maxDigestLength;constructor(e,t){super(),this.child=e,this.maxDigestLength=t?.maxDigestLength}put(e,t,n){if(e.multihash.code===Jn){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new St(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return n?.signal?.throwIfAborted(),e}return this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}async*get(e,t){if(e.multihash.code===Jn){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new St(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new Wn;yield*this.child.get(e,t)}has(e,t){if(e.multihash.code===Jn){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new St(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return t?.signal?.throwIfAborted(),!0}return this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===Jn){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new St(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}async*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function Od(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Yn=Od;function Md(r){return r[Symbol.asyncIterator]!=null}function Fd(r,e){let t=0;if(Md(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=Yn(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s.then=="function")return(async function*(){await s&&(yield i);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){s===!0&&(yield i);for(let c of n)a(c,t++)&&(yield c)})()}var Xn=Fd;function $d(r){return r[Symbol.asyncIterator]!=null}function cu(r){return r?.then!=null}function zd(r,e){let t=0;if($d(r))return(async function*(){for await(let c of r){let l=e(c,t++);cu(l)&&await l,yield c}})();let n=Yn(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s?.then=="function")return(async function*(){await s,yield i;for(let c of n){let l=e(c,t++);cu(l)&&await l,yield c}})();let a=e;return(function*(){yield i;for(let c of n)a(c,t++),yield c})()}var Wo=zd;var qd=128,It=class{child;getHasher;log;logger;blockBrokers;constructor(e,t={}){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.blockBrokers=e.blockBrokers,this.child=new Qn(e.blockstore,{maxDigestLength:t.maxIdentityHashDigestLength??qd}),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new x("blocks:put:duplicate",e)),e):(n.onProgress?.(new x("blocks:put:providers:notify",e)),await Promise.all(this.blockBrokers.map(async i=>i.announce?.(e,n))),n.onProgress?.(new x("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Xn(e,async({cid:o})=>{let s=await this.child.has(o,t);return s&&t.onProgress?.(new x("blocks:put-many:duplicate",o)),!s}),i=Wo(n,async({cid:o})=>{t.onProgress?.(new x("blocks:put-many:providers:notify",o)),await Promise.all(this.blockBrokers.map(async s=>s.announce?.(o,t)))});t.onProgress?.(new x("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(i,t)}async*get(e,t={}){let n=await this.child.has(e,t),i=t.offline===!0;if(!n){if(i)throw new sr("The block was present in the blockstore and the node is running offline so cannot fetch it");let o=await this.getHasher(e.multihash.code);t?.signal?.throwIfAborted(),t.onProgress?.(new x("blocks:get:providers:get",e));let s=await uu(e,this.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new x("blocks:get:blockstore:put",e)),await this.child.put(e,s,t),t.onProgress?.(new x("blocks:get:providers:notify",e)),await Promise.all(this.blockBrokers.map(async a=>a.announce?.(e,t))),yield s;return}t.onProgress?.(new x("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new x("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Wo(e,async n=>{let i=await this.child.has(n,t),o=t.offline===!0;if(!i){if(o)throw new sr("The block was present in the blockstore and the node is running offline so cannot fetch it");let s=await this.getHasher(n.multihash.code);t?.signal?.throwIfAborted(),t.onProgress?.(new x("blocks:get-many:providers:get",n));let a=await uu(n,this.blockBrokers,s,{...t,log:this.log});t.onProgress?.(new x("blocks:get-many:blockstore:put",n)),await this.child.put(n,a,t),t.onProgress?.(new x("blocks:get-many:providers:notify",n)),await Promise.all(this.blockBrokers.map(async c=>c.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new x("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new x("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 x("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}};async function uu(r,e,t,n){let i=Vd(r,t),o=new AbortController,s=be([o.signal,n.signal]);o.signal;let a=[];for(let c of e)jd(c)&&a.push(c);if(a.length===0)throw new Xe(`No block brokers capable of retrieving blocks are configured, the CID ${r} cannot be fetched from the network`);try{return await Promise.any(a.map(async c=>{try{let l=!1,h=await c.retrieve(r,{...n,signal:s,validateFn:async f=>{await i(f),n.signal?.throwIfAborted(),l=!0}});return l||(await i(h),n.signal?.throwIfAborted()),h}catch(l){throw n.log.error("could not retrieve verified block for %c from %s - %e",r,c.name,l),l}}))}catch(c){throw new bn(c.errors,`Failed to load block for ${r}`)}finally{o.abort(),s.clear()}}function jd(r){return typeof r.retrieve=="function"}var Vd=(r,e)=>{if(e==null)throw new pt(`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,i=e.digest(t,{truncate:r.multihash.digest.byteLength});if(qe(i)?n=await i:n=i,!Le(n.digest,r.multihash.digest))throw new Or("Hash of downloaded block did not match multihash from passed CID")}};var Zn=class extends It{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 addPeer(e,t){await Promise.all(this.blockBrokers.map(n=>n.addPeer(e,t)))}async put(e,t,n={}){let i=be([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:i})}finally{i.clear()}}async*putMany(e,t={}){let n=be([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=be([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=be([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=be([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=be([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=be([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=be([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};var ei=class extends It{started;constructor(e,t={}){super(e,t),this.started=!1}isStarted(){return this.started}async start(){await Oe(this.child,...this.blockBrokers),this.started=!0}async stop(){await Me(this.child,...this.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){if(this.blockBrokers.length===0)throw new Xe("No block brokers configured");let n=this.blockBrokers.map(i=>i.createSession?.(t)).filter(i=>i!=null);if(n.length===0)throw new Xe(`No configured block brokers support sessions - tried ${this.blockBrokers.map(i=>i.name).join(", ")}`);return new Zn({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}};var ti=class extends ie{initialPeerSearchComplete;requests;logName;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;cidPeerFilterSize;constructor(e,t){super(),this.logName=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.logName),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.cidPeerFilterSize=t.cidPeerFilterSize??100,this.providers=[],this.evictionFilter=jr(this.maxProviders),this.initialProviders=[...t.providers??[]]}async retrieve(e,t={}){let n=fe.encode(e.multihash.bytes),i=this.requests.get(n);if(i!=null)return this.log("join existing request for %c",e),i.observers++,i.promise;let o=V(),s={promise:o.promise,observers:1,queryFilter:jr(this.cidPeerFilterSize)};this.requests.set(n,s);let a=!1;this.initialPeerSearchComplete==null&&(a=!0,this.log=this.logger.forComponent(`${this.logName}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t));let c=!1,l=new J({concurrency:this.maxProviders});l.addEventListener("failure",d=>{this.log.error("error querying provider %s, evicting from session - %e",d.detail.job.options.provider,d.detail.error),this.evict(d.detail.job.options.provider)}),l.addEventListener("success",d=>{c=!0,o.resolve(d.detail.result)}),l.addEventListener("idle",()=>{if(c){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 d=0;d<this.minProviders&&this.providers.length!==0;d++){let y=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(y)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),o.resolve(await this.retrieve(e,t))}).catch(d=>{this.log.error("could not find new providers for %c - %e",e,d),o.reject(d)})});let h=d=>{let y=this.toFilterKey(d.detail);s.queryFilter.has(y)||(s.queryFilter.add(y),this.emitFoundProviderProgressEvent(e,d.detail,t),l.add(async()=>this.queryProvider(e,d.detail,t),{provider:d.detail}).catch(w=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c - %e",e,w)}))};if(this.addEventListener("provider",h),a)try{await Fe(this.initialPeerSearchComplete,t.signal),a&&this.log("found initial session peers for %c",e)}catch(d){throw a&&this.log("failed to find initial session peers for %c - %e",e,d),this.requests.delete(n),s.observers>1&&o.reject(d),d}Promise.all([...this.providers].filter(d=>{let y=this.toFilterKey(d),w=s.queryFilter.has(y);return w||s.queryFilter.add(this.toFilterKey(d)),!w}).map(async d=>l.add(async()=>this.queryProvider(e,d,t),{provider:d}))).catch(d=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c - %e",e,d)});let f=()=>{o.reject(new ge(t.signal?.reason??"Session aborted")),l.abort()};t.signal?.addEventListener("abort",f);try{return await o.promise}finally{this.removeEventListener("provider",h),t.signal?.removeEventListener("abort",f),l.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toFilterKey(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.toFilterKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async addPeer(e,t){let n=await this.convertToProvider(e,"manually-added",t);n==null||this.hasProvider(n)||(this.providers.push(n),this.safeDispatchEvent("provider",{detail:n}))}async findProviders(e,t,n){let i=V(),o=0;return Promise.resolve().then(async()=>{this.log("finding %d-%d new provider(s) for %c - %d initial providers",t,this.maxProviders,e,this.initialProviders.length);let s=this,a=async function*(){for(;s.initialProviders.length>0;){let l=s.initialProviders.pop();if(l==null)continue;let h=await s.convertToProvider(l,"manual",n);h!=null&&(yield h)}},c=async function*(){yield*a(),yield*s.findNewProviders(e,n)};for await(let l of c()){if(this.providers.length===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(l)&&(this.log("found %d providers, %d in session",o,this.providers.length),this.providers.push(l),this.safeDispatchEvent("provider",{detail:l}),o++,this.providers.length===t&&(this.log("session is ready with %d peer(s), new peers present",this.providers.length),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers %d",this.providers.length);break}}if(this.log("found %d new session peers while trying to find %d, %d in session",o,t,this.providers.length),this.providers.length<t)throw new vn(`Found ${o} of ${t} ${this.name} providers for ${e}, ${this.providers.length} in session after evictions`)}).catch(s=>{this.log.error("error searching routing for potential session peers for %c - %e",e,s),i.reject(s)}),i.promise}};function lu(r){return e=>new Go(e,r)}function hu(r){return e=>new Jo(e,r)}function fu(r){return e=>new Qo(e,r)}var lr=class{components;constructor(e,t={}){this.components=e}async*walk(e,t){let n=this.getQueue(),i=Xn(n.toGenerator(t),a=>a!=null),o=!1,s=async a=>{let c=a.cid,l=await dn(this.components.blockstore.get(c,a)),h=mn({cid:c,bytes:l,codec:await this.components.getCodec(c.code)});for(let[,f]of h.links())t?.includeChild?.(f,h)!==!1&&n.add(s,{...a,cid:f,depth:a.depth+1,path:[...a.path,f]}).catch(d=>{o||i.throw(d)});return{block:h,depth:a.depth,path:a.path}};n.add(s,{...t,cid:e,depth:0,path:[e]}).catch(a=>{o||i.throw(a)});try{yield*i}finally{o=!0,n.abort()}}},Go=class extends lr{getQueue(){return new J({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?1:-1})}},Jo=class extends lr{getQueue(){return new J({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?-1:1})}},Qo=class extends lr{getQueue(){return new J({concurrency:1})}};var Yo=class{libp2p;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;getCrypto;dns;keychain;metrics;log;constructor(e){this.logger=e.logger??e.libp2p.logger,this.log=this.logger.forComponent("helia"),this.getHasher=au(e.hashers,e.loadHasher),this.getCodec=ou(e.codecs,e.loadCodec),this.getCrypto=su(e.cryptos,e.loadCrypto),this.dns=e.dns??xa(),this.metrics=e.metrics,this.libp2p=e.libp2p,this.events=new ie;let t={blockstore:e.blockstore,datastore:e.datastore,logger:this.logger,libp2p:this.libp2p,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,getCrypto:this.getCrypto,dns:this.dns,metrics:this.metrics,...e.components??{}};this.keychain=t.keychain=ca()(t),this.routing=t.routing=new Sn(t,{routers:(e.routers??[]).flatMap(i=>{typeof i=="function"&&(i=i(t));let o=[i],s=Jd(i);s!=null&&o.push(s);let a=Qd(i);return a!=null&&o.push(a),o}),providerLookupConcurrency:e.providerLookupConcurrency}),t.blockBrokers=e.blockBrokers.map(i=>i(t));let n=new ei(t,e);this.pins=new En(e.datastore,n,this.getCodec),this.blockstore=new jn(n,this.pins,this.routing,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore}async start(){await Kc(this.datastore),await Oe(this.blockstore,this.datastore,this.routing,this.libp2p),this.events.dispatchEvent(new CustomEvent("start",{detail:this}))}async stop(){await Me(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,i=this.blockstore.unwrap();this.log("gc start"),await Ea(i.deleteMany((async function*(){for await(let{cid:o}of i.getAll())try{if(await n.pins.isPinned(o,e))continue;yield o,e.onProgress?.(new x("helia:gc:deleted",o))}catch(s){n.log.error("error during gc - %e",s),e.onProgress?.(new x("helia:gc:error",s))}})()))}finally{t()}this.log("gc finished")}};function Jd(r){return r?.[ua]}function Qd(r){return r?.[la]}return wu(Yd);})();
|
|
2
|
+
"use strict";var HeliaUtils=(()=>{var Ru=Object.create;var Tr=Object.defineProperty;var Bu=Object.getOwnPropertyDescriptor;var Fu=Object.getOwnPropertyNames;var Uu=Object.getPrototypeOf,Mu=Object.prototype.hasOwnProperty;var ft=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},F=(r,e)=>{for(var t in e)Tr(r,t,{get:e[t],enumerable:!0})},ls=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fu(e))!Mu.call(r,i)&&i!==t&&Tr(r,i,{get:()=>e[i],enumerable:!(n=Bu(e,i))||n.enumerable});return r};var pi=(r,e,t)=>(t=r!=null?Ru(Uu(r)):{},ls(e||!r||!r.__esModule?Tr(t,"default",{value:r,enumerable:!0}):t,r)),$u=r=>ls(Tr({},"__esModule",{value:!0}),r);var Ws=ft((Ay,Hs)=>{"use strict";function df(r){return r>=55296&&r<=56319}function pf(r){return r>=56320&&r<=57343}Hs.exports=function(e,t,n){if(typeof t!="string")throw new Error("Input must be string");for(var i=t.length,o=0,s,a,c=0;c<i;c+=1){if(s=t.charCodeAt(c),a=t[c],df(s)&&pf(t.charCodeAt(c+1))&&(c+=1,a+=t[c]),o+=e(a),o===n)return t.slice(0,c+1);if(o>n)return t.slice(0,c-a.length+1)}return t}});var Js=ft((Sy,Gs)=>{"use strict";function mf(r){return r>=55296&&r<=56319}function yf(r){return r>=56320&&r<=57343}Gs.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var t=e.length,n=0,i=null,o=null,s=0;s<t;s++)i=e.charCodeAt(s),yf(i)?o!=null&&mf(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var Ys=ft((Iy,Qs)=>{"use strict";var gf=Ws(),wf=Js();Qs.exports=gf.bind(null,wf)});var ea=ft((Cy,Zs)=>{"use strict";var bf=Ys(),xf=/[\/\?<>\\:\*\|"]/g,Ef=/[\x00-\x1f\x80-\x9f]/g,vf=/^\.+$/,_f=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;function kf(r,e){for(var t=r.length;t>0&&(r[t-1]==="."||r[t-1]===" ");)t--;return t<r.length?r.slice(0,t)+e:r}function Xs(r,e){if(typeof r!="string")throw new Error("Input must be string");var t=r.replace(xf,e).replace(Ef,e).replace(vf,e).replace(_f,e);return t=kf(t,e),bf(t,255)}Zs.exports=function(r,e){var t=e&&e.replacement||"",n=Xs(r,t);return t===""?n:Xs(n,"")}});var va=ft((Vg,so)=>{"use strict";var ah=Object.prototype.hasOwnProperty,Q="~";function rr(){}Object.create&&(rr.prototype=Object.create(null),new rr().__proto__||(Q=!1));function ch(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Ea(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new ch(t,n||r,i),s=Q?Q+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],o]:r._events[s].push(o):(r._events[s]=o,r._eventsCount++),r}function rn(r,e){--r._eventsCount===0?r._events=new rr:delete r._events[e]}function K(){this._events=new rr,this._eventsCount=0}K.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)ah.call(t,n)&&e.push(Q?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};K.prototype.listeners=function(e){var t=Q?Q+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};K.prototype.listenerCount=function(e){var t=Q?Q+e:e,n=this._events[t];return n?n.fn?1:n.length:0};K.prototype.emit=function(e,t,n,i,o,s){var a=Q?Q+e:e;if(!this._events[a])return!1;var c=this._events[a],f=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),f){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,i),!0;case 5:return c.fn.call(c.context,t,n,i,o),!0;case 6:return c.fn.call(c.context,t,n,i,o,s),!0}for(h=1,l=new Array(f-1);h<f;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var d=c.length,g;for(h=0;h<d;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),f){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,n);break;case 4:c[h].fn.call(c[h].context,t,n,i);break;default:if(!l)for(g=1,l=new Array(f-1);g<f;g++)l[g-1]=arguments[g];c[h].fn.apply(c[h].context,l)}}return!0};K.prototype.on=function(e,t,n){return Ea(this,e,t,n,!1)};K.prototype.once=function(e,t,n){return Ea(this,e,t,n,!0)};K.prototype.removeListener=function(e,t,n,i){var o=Q?Q+e:e;if(!this._events[o])return this;if(!t)return rn(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&rn(this,o);else{for(var a=0,c=[],f=s.length;a<f;a++)(s[a].fn!==t||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:rn(this,o)}return this};K.prototype.removeAllListeners=function(e){var t;return e?(t=Q?Q+e:e,this._events[t]&&rn(this,t)):(this._events=new rr,this._eventsCount=0),this};K.prototype.off=K.prototype.removeListener;K.prototype.addListener=K.prototype.on;K.prefixed=Q;K.EventEmitter=K;typeof so<"u"&&(so.exports=K)});var Sa=ft((pw,Aa)=>{Aa.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 i(o,s){t[o]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(o){return t[o]!==void 0||n[o]!==void 0},remove:function(o){t[o]!==void 0&&(t[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var s=t[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){t[o]!==void 0?t[o]=s:i(o,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var Kp={};F(Kp,{AbstractSession:()=>di,Helia:()=>us,breadthFirstWalker:()=>Zc,depthFirstWalker:()=>Ar,isCID:()=>Pu,naturalOrderWalker:()=>eu});function pe(r=0){return new Uint8Array(r)}function Z(r=0){return new Uint8Array(r)}var Ou=Math.pow(2,7),Ku=Math.pow(2,14),zu=Math.pow(2,21),fs=Math.pow(2,28),hs=Math.pow(2,35),ds=Math.pow(2,42),ps=Math.pow(2,49),j=128,Me=127;function Ut(r){if(r<Ou)return 1;if(r<Ku)return 2;if(r<zu)return 3;if(r<fs)return 4;if(r<hs)return 5;if(r<ds)return 6;if(r<ps)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function ms(r,e,t=0){switch(Ut(r)){case 8:e[t++]=r&255|j,r/=128;case 7:e[t++]=r&255|j,r/=128;case 6:e[t++]=r&255|j,r/=128;case 5:e[t++]=r&255|j,r/=128;case 4:e[t++]=r&255|j,r>>>=7;case 3:e[t++]=r&255|j,r>>>=7;case 2:e[t++]=r&255|j,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function ys(r,e){let t=r[e],n=0;if(n+=t&Me,t<j||(t=r[e+1],n+=(t&Me)<<7,t<j)||(t=r[e+2],n+=(t&Me)<<14,t<j)||(t=r[e+3],n+=(t&Me)<<21,t<j)||(t=r[e+4],n+=(t&Me)*fs,t<j)||(t=r[e+5],n+=(t&Me)*hs,t<j)||(t=r[e+6],n+=(t&Me)*ds,t<j)||(t=r[e+7],n+=(t&Me)*ps,t<j))return n;throw new RangeError("Could not decode varint")}function qu(r){return r.buffer instanceof ArrayBuffer}function N(r){return qu(r)?r:r.slice()}var mi=new Float32Array([-0]),$e=new Uint8Array(mi.buffer);function gs(r,e,t){mi[0]=r,e[t]=$e[0],e[t+1]=$e[1],e[t+2]=$e[2],e[t+3]=$e[3]}function ws(r,e){return $e[0]=r[e],$e[1]=r[e+1],$e[2]=r[e+2],$e[3]=r[e+3],mi[0]}var yi=new Float64Array([-0]),$=new Uint8Array(yi.buffer);function bs(r,e,t){yi[0]=r,e[t]=$[0],e[t+1]=$[1],e[t+2]=$[2],e[t+3]=$[3],e[t+4]=$[4],e[t+5]=$[5],e[t+6]=$[6],e[t+7]=$[7]}function xs(r,e){return $[0]=r[e],$[1]=r[e+1],$[2]=r[e+2],$[3]=r[e+3],$[4]=r[e+4],$[5]=r[e+5],$[6]=r[e+6],$[7]=r[e+7],yi[0]}var ju=BigInt(Number.MAX_SAFE_INTEGER),Vu=BigInt(Number.MIN_SAFE_INTEGER),ee=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 Ye;if(e<ju&&e>Vu)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,i=e-(n<<32n);return t&&(n=~n|0n,i=~i|0n,++i>Es&&(i=0n,++n>Es&&(n=0n))),new r(Number(i),Number(n))}static fromNumber(e){if(e===0)return Ye;let t=e<0;t&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)}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):Ye}},Ye=new ee(0,0);Ye.toBigInt=function(){return 0n};Ye.zzEncode=Ye.zzDecode=function(){return this};Ye.length=function(){return 1};var Es=4294967296n;function vs(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 _s(r,e,t){if(t-e<1)return"";let i,o=[],s=0,a;for(;e<t;)a=r[e++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(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,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function gi(r,e,t){let n=t,i,o;for(let s=0;s<r.length;++s)i=r.charCodeAt(s),i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&((o=r.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128);return t-n}function me(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Lr(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var wi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=N(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,me(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 me(this,4);return Lr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw me(this,4);return Lr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw me(this,4);let e=ws(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw me(this,4);let e=xs(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 me(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return _s(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw me(this,e);this.pos+=e}else do if(this.pos>=this.len)throw me(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 ee(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 me(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 me(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 me(this,8);let e=Lr(this.buf,this.pos+=4),t=Lr(this.buf,this.pos+=4);return new ee(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=ys(this.buf,this.pos);return this.pos+=Ut(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 Mt(r){return new wi(r instanceof Uint8Array?r:r.subarray())}function Dr(r,e,t){let n=Mt(r);return e.decode(n,void 0,t)}var ki={};F(ki,{base10:()=>Zu});var rm=new Uint8Array(0);function As(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 ye(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return Xe(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return Xe(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function Ss(r){return new TextEncoder().encode(r)}function Is(r){return new TextDecoder().decode(r)}function Hu(r){return r?.buffer instanceof ArrayBuffer}function Xe(r){return Hu(r)?r:r.slice()}function Wu(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 i=0;i<r.length;i++){var o=r.charAt(i),s=o.charCodeAt(0);if(t[s]!==255)throw new TypeError(o+" is ambiguous");t[s]=i}var a=r.length,c=r.charAt(0),f=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function h(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var A=0,E=0,_=0,T=w.length;_!==T&&w[_]===0;)_++,A++;for(var D=(T-_)*l+1>>>0,z=new Uint8Array(D);_!==T;){for(var M=w[_],Pe=0,q=D-1;(M!==0||Pe<E)&&q!==-1;q--,Pe++)M+=256*z[q]>>>0,z[q]=M%a>>>0,M=M/a>>>0;if(M!==0)throw new Error("Non-zero carry");E=Pe,_++}for(var de=D-E;de!==D&&z[de]===0;)de++;for(var Qe=c.repeat(A);de<D;++de)Qe+=r.charAt(z[de]);return Qe}function d(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var A=0;if(w[A]!==" "){for(var E=0,_=0;w[A]===c;)E++,A++;for(var T=(w.length-A)*f+1>>>0,D=new Uint8Array(T);w[A];){var z=t[w.charCodeAt(A)];if(z===255)return;for(var M=0,Pe=T-1;(z!==0||M<_)&&Pe!==-1;Pe--,M++)z+=a*D[Pe]>>>0,D[Pe]=z%256>>>0,z=z/256>>>0;if(z!==0)throw new Error("Non-zero carry");_=M,A++}if(w[A]!==" "){for(var q=T-_;q!==T&&D[q]===0;)q++;for(var de=new Uint8Array(E+(T-q)),Qe=E;q!==T;)de[Qe++]=D[q++];return de}}}function g(w){var A=d(w);if(A)return A;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:g}}var Gu=Wu,Ju=Gu,Cs=Ju;var xi=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")}},Ei=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let i=t.codePointAt(0);if(i===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=i,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 Ts(this,e)}},vi=class{decoders;constructor(e){this.decoders=e}or(e){return Ts(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 Ts(r,e){return new vi({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var _i=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new xi(e,t,n),this.decoder=new Ei(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function ht({name:r,prefix:e,encode:t,decode:n}){return new _i(r,e,t,n)}function Oe({name:r,prefix:e,alphabet:t}){let{encode:n,decode:i}=Cs(t,r);return ht({prefix:e,name:r,encode:n,decode:o=>ye(i(o))})}function Qu(r,e,t,n){let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),s=0,a=0,c=0;for(let f=0;f<i;++f){let l=e[r[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|l,s+=t,s>=8&&(s-=8,o[c++]=255&a>>s)}if(s>=t||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return o}function Yu(r,e,t){let n=e[e.length-1]==="=",i=(1<<t)-1,o="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>t;)s-=t,o+=e[i&a>>s];if(s!==0&&(o+=e[i&a<<t-s]),n)for(;(o.length*t&7)!==0;)o+="=";return o}function Xu(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function P({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let i=Xu(n);return ht({prefix:e,name:r,encode(o){return Yu(o,n,t)},decode(o){return Qu(o,i,t,r)}})}var Zu=Oe({prefix:"9",name:"base10",alphabet:"0123456789"});var Ai={};F(Ai,{base16:()=>el,base16upper:()=>tl});var el=P({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),tl=P({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Si={};F(Si,{base2:()=>rl});var rl=P({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ii={};F(Ii,{base256emoji:()=>al});var Ls=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}"),nl=Ls.reduce((r,e,t)=>(r[t]=e,r),[]),il=Ls.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ol(r){return r.reduce((e,t)=>(e+=nl[t],e),"")}function sl(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let i=il[n];if(i==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(i)}return new Uint8Array(e)}var al=ht({prefix:"\u{1F680}",name:"base256emoji",encode:ol,decode:sl});var Ci={};F(Ci,{base32:()=>O,base32hex:()=>fl,base32hexpad:()=>dl,base32hexpadupper:()=>pl,base32hexupper:()=>hl,base32pad:()=>ul,base32padupper:()=>ll,base32upper:()=>cl,base32z:()=>ml});var O=P({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),cl=P({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ul=P({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ll=P({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),fl=P({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),hl=P({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),dl=P({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),pl=P({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ml=P({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ti={};F(Ti,{base36:()=>te,base36upper:()=>yl});var te=Oe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),yl=Oe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Li={};F(Li,{base58btc:()=>R,base58flickr:()=>gl});var R=Oe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),gl=Oe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Di={};F(Di,{base64:()=>V,base64pad:()=>wl,base64url:()=>b,base64urlpad:()=>bl});var V=P({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),wl=P({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),b=P({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),bl=P({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Pi={};F(Pi,{base8:()=>xl});var xl=P({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ni={};F(Ni,{identity:()=>El});var El=ht({prefix:"\0",name:"identity",encode:r=>Is(r),decode:r=>Ss(r)});var Pr={};F(Pr,{code:()=>Ri,decode:()=>Sl,encode:()=>Al,name:()=>kl});var vl=new TextEncoder,_l=new TextDecoder,kl="json",Ri=512;function Al(r){return vl.encode(JSON.stringify(r))}function Sl(r){return JSON.parse(_l.decode(r))}var Ot={};F(Ot,{code:()=>$t,decode:()=>Tl,encode:()=>Cl,name:()=>Il});var Il="raw",$t=85;function Cl(r){return ye(r)}function Tl(r){return ye(r)}var Fi={};F(Fi,{identity:()=>Ke});var Ll=Ns,Ds=128,Dl=127,Pl=~Dl,Nl=Math.pow(2,31);function Ns(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Nl;)e[t++]=r&255|Ds,r/=128;for(;r&Pl;)e[t++]=r&255|Ds,r>>>=7;return e[t]=r|0,Ns.bytes=t-n+1,e}var Rl=Bi,Bl=128,Ps=127;function Bi(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw Bi.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&Ps)<<i:(s&Ps)*Math.pow(2,i),i+=7}while(s>=Bl);return Bi.bytes=o-n,t}var Fl=Math.pow(2,7),Ul=Math.pow(2,14),Ml=Math.pow(2,21),$l=Math.pow(2,28),Ol=Math.pow(2,35),Kl=Math.pow(2,42),zl=Math.pow(2,49),ql=Math.pow(2,56),jl=Math.pow(2,63),Vl=function(r){return r<Fl?1:r<Ul?2:r<Ml?3:r<$l?4:r<Ol?5:r<Kl?6:r<zl?7:r<ql?8:r<jl?9:10},Hl={encode:Ll,decode:Rl,encodingLength:Vl},Wl=Hl,Kt=Wl;function zt(r,e=0){return[Kt.decode(r,e),Kt.decode.bytes]}function dt(r,e,t=0){return Kt.encode(r,e,t),e}function pt(r){return Kt.encodingLength(r)}function yt(r,e){let t=e.byteLength,n=pt(r),i=n+pt(t),o=new Uint8Array(i+t);return dt(r,o,0),dt(t,o,n),o.set(e,i),new mt(r,t,e,o)}function Rr(r){let e=ye(r),[t,n]=zt(e),[i,o]=zt(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new mt(t,i,s,e)}function Rs(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&As(r.bytes,t.bytes)}}var mt=class{code;size;digest;bytes;constructor(e,t,n,i){this.code=e,this.size=t,this.digest=Xe(n),this.bytes=Xe(i)}};var Bs=0,Gl="identity",Fs=ye;function Jl(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 yt(Bs,Fs(r))}var Ke={code:Bs,name:Gl,encode:Fs,digest:Jl};var $i={};F($i,{sha256:()=>ze,sha512:()=>Br});var Ql=20;function Mi({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:i}){return new Ui(r,e,t,n,i)}var Ui=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,i,o){this.name=e,this.code=t,this.encode=n,this.minDigestLength=i??Ql,this.maxDigestLength=o}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?Us(n,this.code,t?.truncate):n.then(i=>Us(i,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Us(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 yt(e,r)}function $s(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var ze=Mi({name:"sha2-256",code:18,encode:$s("SHA-256")}),Br=Mi({name:"sha2-512",code:19,encode:$s("SHA-512")});function Os(r,e){let{bytes:t,version:n}=r;return n===0?Xl(t,Oi(r),e??R.encoder):Zl(t,Oi(r),e??O.encoder)}var Ks=new WeakMap;function Oi(r){let e=Ks.get(r);if(e==null){let t=new Map;return Ks.set(r,t),t}return e}var v=class r{code;version;multihash;bytes;"/";constructor(e,t,n,i){this.code=t,this.version=e,this.multihash=n,this.bytes=Xe(i),this["/"]=this.bytes}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!==qt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==ef)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=yt(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&&Rs(e.multihash,n.multihash)}toString(e){return Os(this,e)}toJSON(){return{"/":Os(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:i,multihash:o,bytes:s}=t;return new r(n,i,o,s??zs(n,i,o.bytes))}else if(t[tf]===!0){let{version:n,multihash:i,code:o}=t,s=Rr(i);return r.create(n,o,s)}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!==qt)throw new Error(`Version 0 CID must use dag-pb (code: ${qt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let i=zs(e,t,n.bytes);return new r(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,qt,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,i=ye(e.subarray(n,n+t.multihashSize));if(i.byteLength!==t.multihashSize)throw new Error("Incorrect length");let o=i.subarray(t.multihashSize-t.digestSize),s=new mt(t.multihashCode,t.digestSize,o,i);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[h,d]=zt(e.subarray(t));return t+=d,h},i=n(),o=qt;if(i===18?(i=0,t=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=t,a=n(),c=n(),f=t+c,l=f-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:f}}static parse(e,t){let[n,i]=Yl(e,t),o=r.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oi(o).set(n,e),o}};function Yl(r,e){switch(r[0]){case"Q":{let t=e??R;return[R.prefix,t.decode(`${R.prefix}${r}`)]}case R.prefix:{let t=e??R;return[R.prefix,t.decode(r)]}case O.prefix:{let t=e??O;return[O.prefix,t.decode(r)]}case te.prefix:{let t=e??te;return[te.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 Xl(r,e,t){let{prefix:n}=t;if(n!==R.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let i=e.get(n);if(i==null){let o=t.encode(r).slice(1);return e.set(n,o),o}else return i}function Zl(r,e,t){let{prefix:n}=t,i=e.get(n);if(i==null){let o=t.encode(r);return e.set(n,o),o}else return i}var qt=112,ef=18;function zs(r,e,t){let n=pt(r),i=n+pt(e),o=new Uint8Array(i+t.byteLength);return dt(r,o,0),dt(e,o,n),o.set(t,i),o}var tf=Symbol.for("@ipld/js-cid/CID");var Ki={...Ni,...Si,...Pi,...ki,...Ai,...Ci,...Ti,...Li,...Di,...Ii},$m={...$i,...Fi};function js(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var qs=js("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),zi=js("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=Z(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),rf={utf8:qs,"utf-8":qs,hex:Ki.base16,latin1:zi,ascii:zi,binary:zi,...Ki},Fr=rf;function L(r,e="utf8"){let t=Fr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function qi(r){let e=r??8192,t=e>>>1,n,i=e;return function(s){if(s<1||s>t)return Z(s);i+s>e&&(n=Z(e),i=0);let a=n.subarray(i,i+=s);return(i&7)!==0&&(i=(i|7)+1),a}}var Ze=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function ji(){}var Hi=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},nf=qi();function of(r){return globalThis.Buffer!=null?Z(r):nf(r)}var Vt=class{len;head;tail;states;constructor(){this.len=0,this.head=new Ze(ji,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new Ze(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Wi((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(Ur,10,ee.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=ee.fromBigInt(e);return this._push(Ur,t.length(),t)}uint64Number(e){return this._push(ms,Ut(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=ee.fromBigInt(e).zzEncode();return this._push(Ur,t.length(),t)}sint64Number(e){let t=ee.fromNumber(e).zzEncode();return this._push(Ur,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Vi,1,e?1:0)}fixed32(e){return this._push(jt,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=ee.fromBigInt(e);return this._push(jt,4,t.lo)._push(jt,4,t.hi)}fixed64Number(e){let t=ee.fromNumber(e);return this._push(jt,4,t.lo)._push(jt,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(gs,4,e)}double(e){return this._push(bs,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Vi,1,0):this.uint32(t)._push(af,t,e)}string(e){let t=vs(e);return t!==0?this.uint32(t)._push(gi,t,e):this._push(Vi,1,0)}fork(){return this.states=new Hi(this),this.head=this.tail=new Ze(ji,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 Ze(ji,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=of(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function Vi(r,e,t){e[t]=r&255}function sf(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Wi=class extends Ze{next;constructor(e,t){super(sf,e,t),this.next=void 0}};function Ur(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 jt(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 af(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(Vt.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(cf,e,r),this},Vt.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(uf,e,r),this});function cf(r,e,t){e.set(r,t)}function uf(r,e,t){r.length<40?gi(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(L(r),t)}function Gi(){return new Vt}function Mr(r,e){let t=Gi();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}function*$r(r,e,t){let n=Mt(r);yield*e.stream(n,void 0,"$",t)}var Or={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Kr(r,e,t,n,i){return{name:r,type:e,encode:t,decode:n,stream:i}}function Ji(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,a){let c=e(s);a.int32(c)},n=function(s){let a=s.int32();return e(a)},i=function*(s){let a=s.int32();yield e(a)};return Kr("enum",Or.VARINT,t,n,i)}function zr(r,e,t){return Kr("message",Or.LENGTH_DELIMITED,r,e,t)}var qr;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(qr||(qr={}));var Qi;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(Qi||(Qi={}));(function(r){r.codec=()=>Ji(Qi)})(qr||(qr={}));var Y;(function(r){let e;r.codec=()=>(e==null&&(e=zr((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),o.Type!=null&&(s.uint32(8),s.int32(o.Type)),o.Data!=null&&(s.uint32(18),s.bytes(o.Data)),a.lengthDelimited!==!1&&s.ldelim()},(o,s,a={})=>{let c={},f=s==null?o.len:o.pos+s;for(;o.pos<f;){let l=o.uint32();switch(l>>>3){case 1:{c.Type=o.int32();break}case 2:{c.Data=o.bytes();break}default:{o.skipType(l&7);break}}}return c},function*(o,s,a,c={}){let f=s==null?o.len:o.pos+s;for(;o.pos<f;){let l=o.uint32();switch(l>>>3){case 1:{yield{field:`${a}.Type`,value:o.int32()};break}case 2:{yield{field:`${a}.Data`,value:o.bytes()};break}default:{o.skipType(l&7);break}}}})),e);function t(o){return Mr(o,r.codec())}r.encode=t;function n(o,s){return Dr(o,r.codec(),s)}r.decode=n;function i(o,s){return $r(o,r.codec(),s)}r.stream=i})(Y||(Y={}));var H;(function(r){let e;r.codec=()=>(e==null&&(e=zr((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),o.Type!=null&&(s.uint32(8),s.int32(o.Type)),o.Data!=null&&(s.uint32(18),s.bytes(o.Data)),a.lengthDelimited!==!1&&s.ldelim()},(o,s,a={})=>{let c={},f=s==null?o.len:o.pos+s;for(;o.pos<f;){let l=o.uint32();switch(l>>>3){case 1:{c.Type=o.int32();break}case 2:{c.Data=o.bytes();break}default:{o.skipType(l&7);break}}}return c},function*(o,s,a,c={}){let f=s==null?o.len:o.pos+s;for(;o.pos<f;){let l=o.uint32();switch(l>>>3){case 1:{yield{field:`${a}.Type`,value:o.int32()};break}case 2:{yield{field:`${a}.Data`,value:o.bytes()};break}default:{o.skipType(l&7);break}}}})),e);function t(o){return Mr(o,r.codec())}r.encode=t;function n(o,s){return Dr(o,r.codec(),s)}r.decode=n;function i(o,s){return $r(o,r.codec(),s)}r.stream=i})(H||(H={}));function ce(r,e="utf8"){let t=Fr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var Ne="/",Vs=new TextEncoder().encode(Ne),jr=Vs[0],B=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=L(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]!==jr)throw new Error("Invalid key")}toString(e="utf8"){return ce(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Ne))}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=Vs),this._buf[0]!==jr){let e=new Uint8Array(this._buf.byteLength+1);e.fill(jr,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===jr;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let i=0;i<t.length;i++){if(n.length<i+1)return!1;let o=t[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ne).slice(1)}type(){return lf(this.baseNamespace())}name(){return ff(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ne)||(e+=Ne),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Ne):new r(e.slice(0,-1).join(Ne))}child(e){return this.toString()===Ne?e:e.toString()===Ne?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(),...hf(e.map(t=>t.namespaces()))])}};function lf(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function ff(r){let e=r.split(":");return e[e.length-1]}function hf(r){return[].concat(...r)}var ga=pi(ea(),1);function Af(r){return r?.buffer instanceof ArrayBuffer}function ta(r){if(Af(r))return r;let e=r.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function ge(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=Z(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return ta(t)}var W=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Ht=class extends Error{static name="DecryptionFailedError";name="DecryptionFailedError"};function Re(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}var na=Symbol.for("@achingbrain/uint8arraylist");function ra(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let i=t+n.byteLength;if(e<i)return{buf:n,index:e-t};t=i}throw new RangeError("index is out of bounds")}function Vr(r){return!!r?.[na]}var G=class r{bufs;length;[na]=!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(Vr(n)){t+=n.byteLength;for(let i of n.bufs)this.bufs.push(i)}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(Vr(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=ra(this.bufs,e);return t.buf[t.index]}set(e,t){let n=ra(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(Vr(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:i}=this._subList(e,t);return ge(n,i)}subarray(e,t){let{bufs:n,length:i}=this._subList(e,t);return n.length===1?n[0]:ge(n,i)}sublist(e,t){let{bufs:n,length:i}=this._subList(e,t),o=new r;return o.length=i,o.bufs=n,o}_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=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,e>=c)continue;let f=e>=a&&e<c,l=t>a&&t<=c;if(f&&l){if(e===a&&t===c){n.push(s);break}let h=e-a;n.push(s.subarray(h,h+(t-e)));break}if(f){if(e===0){n.push(s);continue}n.push(s.subarray(e-a));continue}if(l){if(t===c){n.push(s);break}n.push(s.subarray(0,t-a));break}n.push(s)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Vr(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 i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let h=0;h<o;h++)s[h]=-1;for(let h=0;h<i;h++)s[n[h]]=h;let a=s,c=this.byteLength-n.byteLength,f=n.byteLength-1,l;for(let h=t;h<=c;h+=l){l=0;for(let d=f;d>=0;d--){let g=this.get(h+d);if(n[d]!==g){l=Math.max(1,d-a[g]);break}}if(l===0)return h}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=Z(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 i=pe(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,t,n),this.write(i,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 i=pe(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,t,n),this.write(i,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 i=pe(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,t,n),this.write(i,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=Z(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 i=pe(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,t,n),this.write(i,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 i=pe(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,t,n),this.write(i,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 i=pe(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,t,n),this.write(i,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 i=pe(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,t,n),this.write(i,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 i=pe(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,t,n),this.write(i,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(!Re(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((i,o)=>i+o.byteLength,0)),n.length=t,n}};var Sf=parseInt("11111",2),Yi=parseInt("10000000",2),If=parseInt("01111111",2),ia={0:Wt,1:Wt,2:Cf,3:Df,4:Pf,5:Lf,6:Tf,16:Wt,22:Wt,48:Wt};function we(r,e={offset:0}){let t=r[e.offset]&Sf;if(e.offset++,ia[t]!=null)return ia[t](r,e);throw new Error("No decoder for tag 0x"+t.toString(16).padStart(2,"0"))}function Gt(r,e){let t=0;if((r[e.offset]&Yi)===Yi){let n=r[e.offset]&If,i="0x";e.offset++;for(let o=0;o<n;o++,e.offset++)i+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(i,16)}else t=r[e.offset],e.offset++;return t}function Wt(r,e){Gt(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=we(r,e);if(n===null)break;t.push(n)}return t}function Cf(r,e){let t=Gt(r,e),n=e.offset,i=e.offset+t,o=[];for(let s=n;s<i;s++)s===n&&r[s]===0||o.push(r[s]);return e.offset+=t,Uint8Array.from(o)}function Tf(r,e){let t=Gt(r,e),n=e.offset+t,i=r[e.offset];e.offset++;let o=0,s=0;i<40?(o=0,s=i):i<80?(o=1,s=i-40):(o=2,s=i-80);let a=`${o}.${s}`,c=[];for(;e.offset<n;){let f=r[e.offset];if(e.offset++,c.push(f&127),f<128){c.reverse();let l=0;for(let h=0;h<c.length;h++)l+=c[h]<<h*7;a+=`.${l}`,c=[]}}return a}function Lf(r,e){return e.offset++,null}function Df(r,e){let t=Gt(r,e),n=r[e.offset];e.offset++;let i=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 i}function Pf(r,e){let t=Gt(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function Nf(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new G;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function Hr(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=Nf(r.byteLength);return new G(Uint8Array.from([e.byteLength|Yi]),e)}function J(r){let e=new G,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new G(Uint8Array.from([2]),Hr(e),e)}function Jt(r){let e=Uint8Array.from([0]),t=new G(e,r);return new G(Uint8Array.from([3]),Hr(t),t)}function oa(r){return new G(Uint8Array.from([4]),Hr(r),r)}function be(r,e=48){let t=new G;for(let n of r)t.append(N(n.subarray()));return new G(Uint8Array.from([e]),Hr(t),t)}var S=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"};var Rf=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Bf=Uint8Array.from([6,5,43,129,4,0,34]),Ff=Uint8Array.from([6,5,43,129,4,0,35]),sa={ext:!0,kty:"EC",crv:"P-256"},aa={ext:!0,kty:"EC",crv:"P-384"},ca={ext:!0,kty:"EC",crv:"P-521"},wt=32,bt=48,xt=66,Qt=class{type="ECDSA";code=3;jwk;constructor(e){this.jwk=e}toMultihash(){return Ke.digest(this.toProtobuf())}toCID(){return v.createV1(114,this.toMultihash())}toString(){return R.encode(this.toMultihash().bytes).substring(1)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}toProtobuf(){return Y.encode({Type:this.code,Data:Of(this.jwk)})}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"ECDSA",namedCurve:this.jwk.crv??"P-256"},!1,["verify"]),o=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},i,N(t),N(e));return n?.signal?.throwIfAborted(),o}},Wr=class{type="ECDSA";code=3;jwk;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}toProtobuf(){return H.encode({Type:this.code,Data:Kf(this.jwk)})}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"ECDSA",namedCurve:this.jwk.crv??"P-256"},!0,["sign"]),i=await crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,N(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},Xi=class{type="ECDSA";code=3;async generatePrivateKey(e){let t=e?.curve??"P-256",n=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:t},!0,["sign","verify"]),i=await crypto.subtle.exportKey("jwk",n.privateKey),o=await crypto.subtle.exportKey("jwk",n.publicKey);return e?.signal?.throwIfAborted(),new Wr(i,new Qt(o))}async publicKeyFromProtobuf(e,t){let n=Y.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");t?.signal?.throwIfAborted();let i=$f(n.Data);return new Qt(i)}async privateKeyFromProtobuf(e,t){let n=H.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");let i=Mf(n.Data),o=Uf(i);return t?.signal?.throwIfAborted(),new Wr(i,new Qt(o))}};function Zi(){return new Xi}function Uf(r){return{crv:r.crv,ext:!0,key_ops:["verify"],kty:"EC",x:r.x,y:r.y}}function Mf(r){let e=we(r),t=e[1],n=b.baseEncode(t),i=e[2][1][0],o=1,s,a;if(t.byteLength===wt)return s=b.baseEncode(i.subarray(o,o+wt)),a=b.baseEncode(i.subarray(o+wt)),{...sa,key_ops:["sign"],d:n,x:s,y:a};if(t.byteLength===bt)return s=b.baseEncode(i.subarray(o,o+bt)),a=b.baseEncode(i.subarray(o+bt)),{...aa,key_ops:["sign"],d:n,x:s,y:a};if(t.byteLength===xt)return s=b.baseEncode(i.subarray(o,o+xt)),a=b.baseEncode(i.subarray(o+xt)),{...ca,key_ops:["sign"],d:n,x:s,y:a};throw new S(`Private key length was wrong length, got ${t.byteLength}, expected 32, 48 or 66`)}function $f(r){let t=we(r)[1][1][0],n=1,i,o;if(t.byteLength===wt*2+1)return i=b.baseEncode(t.subarray(n,n+wt)),o=b.baseEncode(t.subarray(n+wt)),{...sa,key_ops:["verify"],x:i,y:o};if(t.byteLength===bt*2+1)return i=b.baseEncode(t.subarray(n,n+bt)),o=b.baseEncode(t.subarray(n+bt)),{...aa,key_ops:["verify"],x:i,y:o};if(t.byteLength===xt*2+1)return i=b.baseEncode(t.subarray(n,n+xt)),o=b.baseEncode(t.subarray(n+xt)),{...ca,key_ops:["verify"],x:i,y:o};throw new S(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function Of(r){return be([J(Uint8Array.from([1])),be([ua(r.crv)],160),be([Jt(new G(Uint8Array.from([4]),b.baseDecode(r.x??""),b.baseDecode(r.y??"")))],161)]).subarray()}function Kf(r){return be([J(Uint8Array.from([1])),oa(b.baseDecode(r.d??"")),be([ua(r.crv)],160),be([Jt(new G(Uint8Array.from([4]),b.baseDecode(r.x??""),b.baseDecode(r.y??"")))],161)]).subarray()}function ua(r){if(r==="P-256")return Rf;if(r==="P-384")return Bf;if(r==="P-521")return Ff;throw new S(`Invalid curve ${r}`)}var zf=32,Yt=class{type="Ed25519";code=1;jwk;constructor(e){this.jwk=e}toMultihash(){return Ke.digest(this.toProtobuf())}toCID(){return v.createV1(114,this.toMultihash())}toString(){return R.encode(this.toMultihash().bytes).substring(1)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}toProtobuf(){return Y.encode({Type:this.code,Data:b.baseDecode(this.jwk.x??"")})}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"Ed25519"},!1,["verify"]),o=await crypto.subtle.verify({name:"Ed25519"},i,N(t),N(e));return n?.signal?.throwIfAborted(),o}},Gr=class{type="Ed25519";code=1;jwk;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}toProtobuf(){return H.encode({Type:this.code,Data:ge([b.baseDecode(this.jwk.d??""),b.baseDecode(this.jwk.x??"")],64)})}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"Ed25519"},!0,["sign"]),i=await crypto.subtle.sign({name:"Ed25519"},n,N(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},eo=class{type="Ed25519";code=1;async generatePrivateKey(e){let t=await crypto.subtle.generateKey("Ed25519",!0,["sign","verify"]),n=await crypto.subtle.exportKey("jwk",t.privateKey),i=await crypto.subtle.exportKey("jwk",t.publicKey);return e?.signal?.throwIfAborted(),new Gr(n,new Yt(i))}async publicKeyFromProtobuf(e,t){let n=Y.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");t?.signal?.throwIfAborted();let i=Hf(n.Data);return new Yt(i)}async privateKeyFromProtobuf(e,t){let n=H.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");let i=await qf(n.Data,t),o=Vf(i);return new Gr(i,new Yt(o))}};function to(){return new eo}async function qf(r,e){let t=r.subarray(0,zf),n=jf(t),i=await crypto.subtle.importKey("pkcs8",n,{name:"Ed25519"},!0,["sign"]),o=await crypto.subtle.exportKey("jwk",i);return e?.signal?.throwIfAborted(),o}var la=Uint8Array.from([48,46,2,1,0,48,5,6,3,43,101,112,4,34,4]);function jf(r){return ge([la,Uint8Array.from([r.byteLength]),r],la.byteLength+1+r.byteLength)}function Vf(r){return{alg:"Ed25519",crv:"Ed25519",ext:!0,key_ops:["verify"],kty:"OKP",x:r.x}}function Hf(r){return{alg:"Ed25519",crv:"Ed25519",ext:!0,key_ops:["verify"],kty:"OKP",x:b.baseEncode(r)}}var io=8192,Xt=class{type="RSA";code=0;_raw;digest;jwk;constructor(e,t){if(ha(e)>io)throw new S("Key size is too large");this.jwk=e,this.digest=t}toMultihash(){return this.digest}toCID(){return v.createV1(114,this.toMultihash())}toString(){return this.toCID().toString(te)}toProtobuf(){return Xf(this.code,this.jwk)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async verify(e,t,n){let i=await crypto.subtle.importKey("jwk",this.jwk,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]),o=await crypto.subtle.verify({name:"RSASSA-PKCS1-v1_5"},i,N(t),N(e));return n?.signal?.throwIfAborted(),o}},Jr=class{type="RSA";code=0;publicKey;jwk;constructor(e,t){if(ha(e)>io)throw new S("Key size is too large");this.jwk=e,this.publicKey=t}toProtobuf(){return Zf(this.code,this.jwk)}toJWK(){return JSON.parse(JSON.stringify(this.jwk))}async sign(e,t){let n=await crypto.subtle.importKey("jwk",this.jwk,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),i=await crypto.subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,N(e));return t?.signal?.throwIfAborted(),new Uint8Array(i,0,i.byteLength)}},no=class{type="RSA";code=0;async generatePrivateKey(e){let t=e?.bits??2048;if(t>io)throw new S("Key size is too large");let n=await crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),i=await crypto.subtle.exportKey("jwk",n.privateKey),o=await crypto.subtle.exportKey("jwk",n.publicKey),s=await ro(i);return e?.signal?.throwIfAborted(),new Jr(i,new Xt(o,s))}async publicKeyFromProtobuf(e,t){let n=Y.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");let i=Qf(n.Data),o=await ro(i);return t?.signal?.throwIfAborted(),new Xt(i,o)}async privateKeyFromProtobuf(e,t){let n=H.decode(e);if(n.Data==null)throw new S("Data field was missing from protobuf");if(n.Type!==this.code)throw new S("Incorrect Type field in protobuf");let i=we(n.Data),o=Wf(i),s=Yf(o),a=await ro(s);return t?.signal?.throwIfAborted(),new Jr(o,new Xt(s,a))}};function Zt(){return new no}function Wf(r){return{alg:"RS256",kty:"RSA",n:b.baseEncode(r[1]),e:b.baseEncode(r[2]),ext:!0,key_ops:["sign"],d:b.baseEncode(r[3]),p:b.baseEncode(r[4]),q:b.baseEncode(r[5]),dp:b.baseEncode(r[6]),dq:b.baseEncode(r[7]),qi:b.baseEncode(r[8])}}function Gf(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 S("JWK was missing components");return be([J(Uint8Array.from([0])),J(b.baseDecode(r.n)),J(b.baseDecode(r.e)),J(b.baseDecode(r.d)),J(b.baseDecode(r.p)),J(b.baseDecode(r.q)),J(b.baseDecode(r.dp)),J(b.baseDecode(r.dq)),J(b.baseDecode(r.qi))]).subarray()}var Jf=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function fa(r){if(r.n==null||r.e==null)throw new S("JWK public key was missing components");return be([Jf,Jt(be([J(b.baseDecode(r.n)),J(b.baseDecode(r.e))]))]).subarray()}function Qf(r){let e=we(r);if(e.length<2||e[0]?.[0]!=="1.2.840.113549.1.1.1")throw new Error("PKIX certificate was invalid");let t=we(e[1]);return{kty:"RSA",n:b.baseEncode(t[0]),e:b.baseEncode(t[1])}}function Yf(r){return{key_ops:["verify"],ext:!0,alg:"RS256",kty:"RSA",n:r.n,e:"AQAB"}}function ha(r){if(r.kty!=="RSA")throw new S("Invalid key type");if(r.n==null)throw new S("Invalid key modulus");return b.baseDecode(r.n).length*8}async function ro(r){let e=Y.encode({Type:0,Data:fa(r)});return ze.digest(e)}function Xf(r,e){return Y.encode({Type:r,Data:fa(e)})}function Zf(r,e){return H.encode({Type:r,Data:Gf(e)})}async function pa(r,e,t){r=r.replaceAll("-----BEGIN ENCRYPTED PRIVATE KEY-----",""),r=r.replaceAll("-----END ENCRYPTED PRIVATE KEY-----",""),r=r.replaceAll("\r",""),r=r.replaceAll(`
|
|
3
|
+
`,"");let n=V.decode(`m${r}`),i=we(n),o=i[0][1][0][1][0],s=da(i[0][1][0][1][1]),a=da(i[0][1][0][1][2]),c=i[0][1][0][1][4][1],f=i[0][1][0][1][4][2],l=await e.decrypt(o,c,f,{iterations:s,keyLength:a*8,hash:"SHA-512",algorithm:"AES-CBC",signal:t?.signal}),d=we(l)[2],g=H.encode({Type:0,Data:d});return Zt().privateKeyFromProtobuf(g)}function da(r){if(r.length===0)return 0;let e=[...r].map(t=>t.toString(16).padStart(2,"0")).join("");return parseInt(e,16)}var eh="/pkcs8/",wa="/info/",th=Symbol.for("@libp2p/service-capabilities"),er={iterations:1e4,salt:L("you should override this value with a crypto secure random number"),hash:"SHA-512",algorithm:"AES-GCM"},Et={iterations:32767,saltLength:16,ivLength:12,hash:"SHA-256",keyLength:128,algorithm:"AES-GCM"},oo=20,Qr={minKeyLength:112/8,minSaltLength:128/8,minIterations:1e3},ma={"SHA-256":128,"SHA-384":192,"SHA-512":256};function tr(r){return r==null||typeof r!="string"?!1:r===(0,ga.default)(r.trim())&&r.length>0}function vt(r){return new B(eh+r)}function Yr(r){return new B(wa+r)}async function rh(r,e){let t=r.toProtobuf(),n=await ze.digest(t);return e?.signal?.throwIfAborted(),R.encode(n.bytes).substring(1)}function nh(r){if(typeof r=="string")return L(r);if(r instanceof Uint8Array)return N(r)}var Xr=class{components;self;cipher;salt;keychainDekOptions;privateKeyDekOptions;constructor(e,t={}){if(this.components=e,this.self=t.selfKey??"self",this.salt=nh(t.salt)??er.salt,this.keychainDekOptions={iterations:t.iterations??er.iterations,hash:t.hash??er.hash,keyLength:ma[t.hash??er.hash],algorithm:er.algorithm},this.privateKeyDekOptions={iterations:Et.iterations,hash:Et.hash,saltLength:Et.saltLength,ivLength:Et.ivLength,keyLength:Et.keyLength,algorithm:Et.algorithm},t.password!=null&&t.password.length<oo)throw new Error("password must be least 20 characters");if(this.salt.byteLength!=null&&this.salt.byteLength<Qr.minSaltLength)throw new Error(`salt must be least ${Qr.minSaltLength} bytes`);if(t.iterations!=null&&t.iterations<Qr.minIterations)throw new Error(`iterations must be least ${Qr.minIterations}`);if(ma[this.keychainDekOptions.hash]==null)throw new W("Unsupported hash");this.cipher=ya(t.password??"",this.salt,this.keychainDekOptions,this.privateKeyDekOptions)}[th]=["@ipshipyard/keychain"];async generateKey(e,t){let i=await(await this.components.getCrypto(t?.type??"Ed25519",t)).generatePrivateKey(t);return this.importKey(e,i,t)}async importKey(e,t,n){if(!tr(e))throw new W(`Invalid key name '${e}'`);if(t==null)throw new W("Key is required");if(await this.components.datastore.has(vt(e),n))throw new W(`Key '${e}' already exists`);let o=this.components.datastore.batch();return await this._importKey(e,t,this.cipher,o,n),await o.commit(n),t}async _importKey(e,t,n,i,o){let s=t.toProtobuf(),a=await n.encrypt(s),c=ge([a.salt,a.iv,a.cipherText],a.salt.byteLength+a.iv.byteLength+a.cipherText.byteLength),f=V.encode(c),l={name:e,id:await rh(t,o)};i.put(vt(e),L(f)),i.put(Yr(e),L(JSON.stringify(l)))}async exportKey(e,t){if(!tr(e))throw new W(`Invalid key name '${e}'`);return this._exportKey(e,this.cipher,t)}async _exportKey(e,t,n){let i=await this.components.datastore.get(vt(e),n),o=ce(i),s;if(o.includes("BEGIN ENCRYPTED PRIVATE KEY"))return pa(o,t,n);try{let a=V.decode(o),c=a.subarray(0,16),f=a.subarray(16,28),l=a.subarray(28),h=await t.decrypt(c,f,l,n),d=H.decode(h);if(d.Type==null)throw new Ht("Unknown key type");return s=await this.components.getCrypto(d.Type,n),await s.privateKeyFromProtobuf(h)}catch(a){throw a.name==="OperationError"?new Ht(a.message):a}}async removeKey(e,t){if(!tr(e)||e===this.self)throw new W(`Invalid key name '${e}'`);let n=this.components.datastore.batch();n.delete(vt(e)),n.delete(Yr(e)),await n.commit(t)}async*listKeys(e){let t={prefix:wa};for await(let n of this.components.datastore.query(t,e))yield JSON.parse(ce(n.value))}async renameKey(e,t,n){if(!tr(e)||e===this.self)throw new W(`Invalid old key name '${e}'`);if(!tr(t)||t===this.self)throw new W(`Invalid new key name '${t}'`);let i=vt(e),o=vt(t),s=Yr(e),a=Yr(t);if(await this.components.datastore.has(o,n))throw new W(`Key '${t}' already exists`);let f=await this.components.datastore.get(i,n),l=await this.components.datastore.get(s,n),h=JSON.parse(ce(l));h.name=t;let d=this.components.datastore.batch();d.put(o,f),d.put(a,L(JSON.stringify(h))),d.delete(i),d.delete(s),await d.commit(n)}async rotateKeychainPass(e,t){if(typeof e!="string")throw new W(`Invalid new pass type '${typeof e}'`);if(e.length<oo)throw new W(`Invalid pass length ${e.length}, must be at least ${oo}`);let n=this.cipher,i=this.cipher=ya(e,this.salt,this.keychainDekOptions,this.privateKeyDekOptions),o=this.components.datastore.batch();for await(let s of this.listKeys(t)){let a=await this._exportKey(s.name,n);await this._importKey(s.name,a,i,o,t)}await o.commit(t)}async loadPublicKeyFromProtobuf(e,t){let n=Y.decode(e);if(n.Type==null)throw new W("Protobuf was missing Type");return(await this.components.getCrypto(n.Type,t)).publicKeyFromProtobuf(e,t)}},ih={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function ya(r,e,t,n){let i;async function o(f,l,h,d){let g,w=L(f),A=await crypto.subtle.importKey("raw",w,{name:"PBKDF2"},!1,["deriveKey"]);try{g=await crypto.subtle.deriveKey({name:"PBKDF2",salt:N(l),iterations:d.iterations,hash:{name:d.hash}},A,{name:d.algorithm??"AES-GCM",length:d.keyLength},!0,h)}catch(E){if(f==="")g=await crypto.subtle.importKey("jwk",ih,{name:d.algorithm??"AES-GCM"},!0,h);else throw E}return g}async function s(){if(r==="")return r;let f=await o(r,e,["encrypt","decrypt"],t);return(await crypto.subtle.exportKey("jwk",f)).k??""}async function a(f,l){i==null&&(i=await s());let h=crypto.getRandomValues(new Uint8Array(n.saltLength)),d=crypto.getRandomValues(new Uint8Array(n.ivLength)),g=await o(i,h,["encrypt"],n),w=await crypto.subtle.encrypt({name:"AES-GCM",iv:d},g,f);return l?.signal?.throwIfAborted(),{salt:h,iv:d,cipherText:new Uint8Array(w)}}async function c(f,l,h,d){i==null&&(i=await s());let g=await o(i,f,["decrypt"],{iterations:d?.iterations??n.iterations,keyLength:d?.keyLength??n.keyLength,hash:d?.hash??n.hash,algorithm:d?.algorithm??"AES-GCM"}),w=await crypto.subtle.decrypt({name:d?.algorithm??"AES-GCM",iv:N(l)},g,N(h));return d?.signal?.throwIfAborted(),new Uint8Array(w)}return{encrypt:a,decrypt:c}}function ba(r){return e=>new Xr(e,r)}var xe=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var _t=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}};var Zr=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}};var en=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};function xa(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function qe(...r){let e=[];for(let t of r)xa(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 je(...r){let e=[];for(let t of r)xa(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()}))}function oh(r){return typeof r?.handleEvent=="function"}function sh(r){return(r!==!0&&r!==!1&&r?.once)??!1}var ue=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){let i=sh(n);super.addEventListener(e,s=>{if(i){let a=this.#e.get(s.type);a!=null&&(a=a.filter(({callback:c})=>c!==t),this.#e.set(s.type,a))}oh(t)?t.handleEvent(s):t(s)},n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:i})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:o})=>o!==t),this.#e.set(e,i))}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var x=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var tn=class extends AggregateError{static name="DNSQueryFailedError";name="DNSQueryFailedError"};var ao=pi(va(),1);var co=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},_a=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function nr(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout},signal:s}=e,a,c,l=new Promise((h,d)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(s?.aborted){d(_a(s));return}if(s&&(c=()=>{d(_a(s))},s.addEventListener("abort",c,{once:!0})),r.then(h,d),t===Number.POSITIVE_INFINITY)return;let g=new co;a=o.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(w){d(w)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?h():i instanceof Error?d(i):(g.message=i??`Promise timed out after ${t} milliseconds`,d(g))},t)}).finally(()=>{l.clear(),c&&s&&s.removeEventListener("abort",c)});return l.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},l}function uo(r,e,t){let n=0,i=r.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;t(r[s],e)<=0?(n=++s,i-=o+1):i=o}return n}var uh=100,kt=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:i}=t??{},{size:o}=this,s={priority:n,id:i,run:e};if(o===0){this.#e.length=0,this.#t=0,this.#e.push(s);return}if(this.#e.at(-1).priority>=n){this.#e.push(s);return}this.#o();let a=uo(this.#e,s,(c,f)=>f.priority-c.priority);this.#e.splice(a,0,s)}setPriority(e,t){let n=this.#e.findIndex((o,s)=>s>=this.#t&&o.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[i]=this.#e.splice(n,1);this.enqueue(i.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((n,i)=>i<this.#t?!1:typeof e=="string"?n.id===e:n.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>uh&&this.#t>this.#e.length/2&&this.#o(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let i=this.#e[n];i.priority===e.priority&&t.push(i.run)}return t}get size(){return this.#e.length-this.#t}#o(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}};var ir=class extends ao.default{#e;#t;#o=0;#d;#m=!1;#b=!1;#c;#I=0;#x=0;#u;#l;#a;#s=[];#i=0;#r;#C;#n=0;#y;#f;#N=1n;#g=new Map;#E=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:kt,strict:!1,...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})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#d=e.intervalCap,this.#c=e.interval,this.#a=e.strict,this.#r=new e.queueClass,this.#C=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#f=e.autoStart===!1,this.#K()}#v(e){for(;this.#i<this.#s.length;){let n=this.#s[this.#i];if(n!==void 0&&e-n>=this.#c)this.#i++;else break}(this.#i>100&&this.#i>this.#s.length/2||this.#i===this.#s.length)&&(this.#s=this.#s.slice(this.#i),this.#i=0)}#R(e){this.#a?this.#s.push(e):this.#o++}#B(){this.#a?this.#s.length>this.#i&&this.#s.pop():this.#o>0&&this.#o--}#_(){return this.#s.length-this.#i}get#F(){return this.#t?!0:this.#a?this.#_()<this.#d:this.#o<this.#d}get#U(){return this.#n<this.#y}#M(){this.#n--,this.#n===0&&this.emit("pendingZero"),this.#w(),this.emit("next")}#$(){this.#l=void 0,this.#D(),this.#L()}#O(e){if(this.#a){if(this.#v(e),this.#_()>=this.#d){let n=this.#s[this.#i],i=this.#c-(e-n);return this.#k(i),!0}return!1}if(this.#u===void 0){let t=this.#I-e;if(t<0){if(this.#x>0){let n=e-this.#x;if(n<this.#c)return this.#k(this.#c-n),!0}this.#o=this.#e?this.#n:0}else return this.#k(t),!0}return!1}#k(e){this.#l===void 0&&(this.#l=setTimeout(()=>{this.#$()},e))}#A(){this.#u&&(clearInterval(this.#u),this.#u=void 0)}#T(){this.#l&&(clearTimeout(this.#l),this.#l=void 0)}#w(){if(this.#r.size===0){if(this.#A(),this.emit("empty"),this.#n===0){if(this.#T(),this.#a&&this.#i>0){let t=Date.now();this.#v(t)}this.emit("idle")}return!1}let e=!1;if(!this.#f){let t=Date.now(),n=!this.#O(t);if(this.#F&&this.#U){let i=this.#r.dequeue();this.#t||(this.#R(t),this.#p()),this.emit("active"),i(),n&&this.#L(),e=!0}}return e}#L(){this.#t||this.#u!==void 0||this.#a||(this.#u=setInterval(()=>{this.#D()},this.#c),this.#I=Date.now()+this.#c)}#D(){this.#a||(this.#o===0&&this.#n===0&&this.#u&&this.#A(),this.#o=this.#e?this.#n:0),this.#S(),this.#p()}#S(){for(;this.#w(););}get concurrency(){return this.#y}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.#y=e,this.#S()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#r.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#N++).toString()},new Promise((n,i)=>{let o=Symbol(`task-${t.id}`),s=()=>{},a=async()=>{s(),this.#n++,this.#g.set(o,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let f;try{try{t.signal?.throwIfAborted()}catch(d){throw this.#z(),this.#g.delete(o),d}this.#x=Date.now();let l=e({signal:t.signal});if(t.timeout&&(l=nr(Promise.resolve(l),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#n} running, ${this.#r.size} waiting)`})),t.signal){let{signal:d}=t;l=Promise.race([l,new Promise((g,w)=>{f=()=>{w(d.reason)},d.addEventListener("abort",f,{once:!0})})])}let h=await l;n(h),this.emit("completed",h)}catch(l){i(l),this.emit("error",l)}finally{f&&t.signal?.removeEventListener("abort",f),this.#g.delete(o),queueMicrotask(()=>{this.#M()})}};this.#r.enqueue(a,t);let c=()=>{if(this.#r instanceof kt){this.#r.remove(a);return}this.#r.remove?.(t.id)};if(t.signal){let{signal:f}=t,l=()=>{s(),c(),i(f.reason),this.#w(),this.emit("next")};if(s=()=>{f.removeEventListener("abort",l),this.#E.delete(s)},f.aborted){l();return}f.addEventListener("abort",l,{once:!0}),this.#E.add(s)}this.emit("add"),this.#w()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#f?(this.#f=!1,this.#S(),this):this}pause(){this.#f=!0}clear(){for(let e of this.#E)e();this.#r=new this.#C,this.#A(),this.#P(),this.emit("empty"),this.#n===0&&(this.#T(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#r.size!==0&&await this.#h("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#h("next",()=>this.#r.size<e)}async onIdle(){this.#n===0&&this.#r.size===0||await this.#h("idle")}async onPendingZero(){this.#n!==0&&await this.#h("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#h("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#h("rateLimitCleared")}onError(){return new Promise((e,t)=>{let n=i=>{this.off("error",n),t(i)};this.on("error",n)})}async#h(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#f}#K(){this.#t||(this.on("add",()=>{this.#r.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#t||this.#b||(this.#b=!0,queueMicrotask(()=>{this.#b=!1,this.#P()}))}#z(){this.#t||(this.#B(),this.#p())}#P(){let e=this.#m;if(this.#t||this.#r.size===0){e&&(this.#m=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){let i=Date.now();this.#v(i),t=this.#_()}else t=this.#o;let n=t>=this.#d;n!==e&&(this.#m=n,this.emit(n?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#n===this.#y&&this.#r.size>0||this.isRateLimited&&this.#r.size>0}get runningTasks(){return[...this.#g.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}};function nn(r){let e=[Ee.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var lo=60;function on(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:Ee[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:Ee[e.type],TTL:e.TTL??e.ttl??lo,data:e.data instanceof Uint8Array?ce(e.data):e.data}))}}var lh=4;function fo(r,e={}){let t=new ir({concurrency:e.queryConcurrency??lh});return async(n,i={})=>{let o=i?.logger?.forComponent("dns:dns-json-over-https"),s=new URLSearchParams;s.set("name",n),nn(i.types).forEach(c=>{s.append("type",Ee[c])}),i.onProgress?.(new x("dns:query",n)),o?.("GET %s",`${r}?${s}`);let a=await t.add(async()=>{let c=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:i?.signal});if(o?.("GET %s %d",c.url,c.status),c.status!==200)throw new Error(`Unexpected HTTP status: ${c.status} - ${c.statusText}`);let f=on(await c.json());return i.onProgress?.(new x("dns:response",f)),f},{signal:i.signal});if(a==null)throw new Error("No DNS response received");return a}}function ka(){return[fo("https://cloudflare-dns.com/dns-query"),fo("https://dns.google/resolve")]}var Ia=pi(Sa(),1);var ho=class{lru;constructor(e){this.lru=(0,Ia.default)(e)}get(e,t){let n=!0,i=[];for(let o of t){let s=this.getAnswers(e,o);if(s.length===0){n=!1;break}i.push(...s)}if(n)return on({answers:i})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,i=this.lru.get(n);if(i!=null){let o=i.filter(s=>s.expires>Date.now()).map(({expires:s,value:a})=>({...a,TTL:Math.round((s-Date.now())/1e3),type:Ee[a.type]}));return o.length===0&&this.lru.remove(n),o}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,i=this.lru.get(n)??[];i.push({expires:Date.now()+(t.TTL??lo)*1e3,value:t}),this.lru.set(n,i)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Ca(r){return new ho(r)}var fh=1e3,sn=class{resolvers;cache;logger;constructor(e){this.resolvers={},this.cache=Ca(e.cacheSize??fh),this.logger=e.logger,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["."]=ka())}async query(e,t={}){let n=nn(t.types),i=t.cached!==!1?this.cache.get(e,n):void 0;if(i!=null)return t.onProgress?.(new x("dns:cache",i)),i;let o=`${e.split(".").pop()}.`,s=(this.resolvers[o]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),a=[];for(let c of s){if(t.signal?.aborted===!0)break;try{let f=await c(e,{...t,logger:this.logger,types:n});for(let l of f.Answer)this.cache.add(e,l);return f}catch(f){a.push(f),t.onProgress?.(new x("dns:error",f))}}throw new tn(a,`DNS lookup of ${e} ${n} failed`)}};var Ee;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(Ee||(Ee={}));function Ta(r={}){return new sn(r)}function an(r,e){if(typeof r=="string")return hh(r);if(typeof r=="number")return mh(r,e);throw new Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}function hh(r){if(typeof r!="string"||r.length===0||r.length>100)throw new 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,i=parseFloat(t),o=n.toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return i*315576e5;case"months":case"month":case"mo":return i*26298e5;case"weeks":case"week":case"w":return i*6048e5;case"days":case"day":case"d":return i*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return i*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return i*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return i*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:throw new Error(`Unknown unit "${o}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function dh(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 ph(r){let e=Math.abs(r);return e>=315576e5?et(r,e,315576e5,"year"):e>=26298e5?et(r,e,26298e5,"month"):e>=6048e5?et(r,e,6048e5,"week"):e>=864e5?et(r,e,864e5,"day"):e>=36e5?et(r,e,36e5,"hour"):e>=6e4?et(r,e,6e4,"minute"):e>=1e3?et(r,e,1e3,"second"):`${r} ms`}function mh(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error("Value provided to ms.format() must be of type number.");return e?.long?ph(r):dh(r)}function et(r,e,t,n){let i=e>=t*1.5;return`${Math.round(r/t)} ${n}${i?"s":""}`}function po(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=i,t.enabled=s,t.humanize=an,t.destroy=f,Object.keys(r).forEach(l=>{t[l]=r[l]}),t.names=[],t.skips=[],t.formatters={};function e(l){let h=0;for(let d=0;d<l.length;d++)h=(h<<5)-h+l.charCodeAt(d),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=e;function t(l,h){let d,g=null,w,A;function E(..._){if(!E.enabled)return;let T=E,D=Number(new Date),z=D-(d||D);T.diff=z,T.prev=d,T.curr=D,d=D,_[0]=t.coerce(_[0]),typeof _[0]!="string"&&_.unshift("%O");let M=0;_[0]=_[0].replace(/%([a-zA-Z%])/g,(q,de)=>{if(q==="%%")return"%";M++;let Qe=t.formatters[de];if(typeof Qe=="function"){let Nu=_[M];q=Qe.call(T,Nu),_.splice(M,1),M--}return q}),t.formatArgs.call(T,_),h?.onLog!=null&&h.onLog(..._),(T.log||t.log).apply(T,_)}return E.namespace=l,E.useColors=t.useColors(),E.color=t.selectColor(l),E.extend=n,E.destroy=t.destroy,Object.defineProperty(E,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(w!==t.namespaces&&(w=t.namespaces,A=t.enabled(l)),A),set:_=>{g=_}}),typeof t.init=="function"&&t.init(E),E}function n(l,h){let d=t(this.namespace+(typeof h>"u"?":":h)+l);return d.log=this.log,d}function i(l){t.save(l),t.namespaces=l,t.names=[],t.skips=[];let h,d=(typeof l=="string"?l:"").split(/[\s,]+/),g=d.length;for(h=0;h<g;h++)d[h]&&(l=d[h].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.substr(1)+"$")):t.names.push(new RegExp("^"+l+"$")))}function o(){let l=[...t.names.map(a),...t.skips.map(a).map(h=>"-"+h)].join(",");return t.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let h,d;for(h=0,d=t.skips.length;h<d;h++)if(t.skips[h].test(l))return!1;for(h=0,d=t.names.length;h<d;h++)if(t.names[h].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack??l.message:l}function f(){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 cn=vh(),yh=["#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 gh(){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 wh(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+an(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,i=>{i!=="%%"&&(t++,i==="%c"&&(n=t))}),r.splice(n,0,e)}var bh=console.debug??console.log??(()=>{});function xh(r){try{r?cn?.setItem("debug",r):cn?.removeItem("debug")}catch{}}function Eh(){let r;try{r=cn?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function vh(){try{return localStorage}catch{}}function _h(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var La=po({formatArgs:wh,save:xh,load:Eh,useColors:gh,setupFormatters:_h,colors:yh,storage:cn,log:bh});var I=La;I.formatters.z=r=>r==null?"undefined":R.baseEncode(r);I.formatters.b=r=>r==null?"undefined":O.baseEncode(r);I.formatters.k=r=>r==null?"undefined":te.baseEncode(r);I.formatters.m=r=>r==null?"undefined":V.baseEncode(r);I.formatters.e=r=>r==null?"undefined":Na(r);function Da(r,e=""){let t=Pa(r.message),n=Pa(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
|
|
4
|
+
`).join(`
|
|
5
|
+
${e}`)}`:`${t}
|
|
6
|
+
${e}${n.split(`
|
|
7
|
+
`).join(`
|
|
8
|
+
${e}`)}`:n!=null?`${n.split(`
|
|
9
|
+
`).join(`
|
|
10
|
+
${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function kh(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function Na(r,e=""){if(kh(r)){let t=Da(r,e);return r.errors.length>0?(e=`${e} `,t+=`
|
|
11
|
+
${e}${r.errors.map(n=>`${Na(n,`${e}`)}`).join(`
|
|
12
|
+
${e}`)}`):t+=`
|
|
13
|
+
${e}[Error list was empty]`,t.trim()}return Da(r,e)}function Ah(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e.useColors=()=>!1,e}function Ra(r){return{forComponent(e){return Ba(e,r)}}}function Ba(r,e){let t=Ah(`${r}:trace`);return I.enabled(`${r}:trace`)&&I.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=I(`${r}:trace`,e)),Object.assign(I(r,e),{error:I(`${r}:error`,e),trace:t,newScope:n=>Ba(`${r}:${n}`,e)})}function Pa(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var Be=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:i}of e)await this.put(n,i,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 le=class r extends Error{static name="NotFoundError";name=r.name;static code="ERR_NOT_FOUND";code=r.code;constructor(e="Not Found"){super(e)}};function Sh(r){return r[Symbol.asyncIterator]!=null}function Ih(r){if(Sh(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var or=Ih;function Ch(r){return typeof r?.then=="function"}var sr=class extends Be{data;constructor(){super(),this.data=new Map}put(e,t,n){n?.signal?.throwIfAborted();let i;if(t instanceof Uint8Array)i=[t];else{let o=or(t);if(Ch(o))return o.then(s=>this._put(e,s,n));i=o}return this._put(e,i,n)}_put(e,t,n){return n?.signal?.throwIfAborted(),this.data.set(O.encode(e.multihash.bytes),t),e}*get(e,t){t?.signal?.throwIfAborted();let n=this.data.get(O.encode(e.multihash.bytes));if(n==null)throw new le;yield*n}has(e,t){return t?.signal?.throwIfAborted(),this.data.has(O.encode(e.multihash.bytes))}async delete(e,t){t?.signal?.throwIfAborted(),this.data.delete(O.encode(e.multihash.bytes))}*getAll(e){e?.signal?.throwIfAborted();for(let[t,n]of this.data.entries())yield{cid:v.createV1($t,Rr(O.decode(t))),bytes:(async function*(){yield*n})()},e?.signal?.throwIfAborted()}};I.formatters.b=r=>r==null?"undefined":R.baseEncode(r);I.formatters.t=r=>r==null?"undefined":O.baseEncode(r);I.formatters.m=r=>r==null?"undefined":V.baseEncode(r);I.formatters.p=r=>r==null?"undefined":r.toString();I.formatters.c=r=>r==null?"undefined":r.toString();I.formatters.k=r=>r==null?"undefined":r.toString();I.formatters.a=r=>r==null?"undefined":r.toString();function Fa(r,e=""){let t=Ua(r.message),n=Ua(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
|
|
14
|
+
`).join(`
|
|
15
|
+
${e}`)}`:`${t}
|
|
16
|
+
${e}${n.split(`
|
|
17
|
+
`).join(`
|
|
18
|
+
${e}`)}`:n!=null?`${n.split(`
|
|
19
|
+
`).join(`
|
|
20
|
+
${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function Th(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function Ma(r,e=""){if(Th(r)){let t=Fa(r,e);return r.errors.length>0?(e=`${e} `,t+=`
|
|
21
|
+
${e}${r.errors.map(n=>`${Ma(n,`${e}`)}`).join(`
|
|
22
|
+
${e}`)}`):t+=`
|
|
23
|
+
${e}[Error list was empty]`,t.trim()}return Fa(r,e)}I.formatters.e=r=>r==null?"undefined":Ma(r);function Lh(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e.useColors=()=>!1,e}function ar(r,e){let t=Lh(`${r}:trace`);return I.enabled(`${r}:trace`)&&I.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=I(`${r}:trace`,e)),Object.assign(I(r,e),{error:I(`${r}:error`,e),trace:t,newScope:n=>ar(`${r}:${n}`,e)})}function Ua(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}function Dh(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var cr=Dh;function Ph(r){return r[Symbol.asyncIterator]!=null}function Nh(r,e){let t=0;if(Ph(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=cr(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s.then=="function")return(async function*(){await s&&(yield i);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){s===!0&&(yield i);for(let c of n)a(c,t++)&&(yield c)})()}var re=Nh;function X(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}function Rh(r){return r.reason}async function Ve(r,e,t){if(e==null)return r;let n=t?.translateError??Rh;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let i;try{return await Promise.race([r,new Promise((o,s)=>{i=()=>{s(n(e))},e.addEventListener("abort",i)})])}finally{i!=null&&e.removeEventListener("abort",i)}}var mo=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=X(),this.haveNext=X()}[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=X(),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=X(),await Ve(this.readNext.promise,t?.signal,t)}};function $a(){return new mo}function Bh(r){return r[Symbol.asyncIterator]!=null}async function Fh(r,e,t){try{await Promise.all(r.map(async n=>{for await(let i of n)await e.push(i,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Uh(r){let e=new AbortController,t=$a();Fh(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Mh(r){for(let e of r)yield*e}function $h(...r){let e=[];for(let t of r)Bh(t)||e.push(t);return e.length===r.length?Mh(e):Uh(r)}var tt=$h;var xb=ar("blockstore:core:tiered");var Oa="SHARDING";function Kh(r){return r[Symbol.asyncIterator]!=null}function zh(r){if(Kh(r))return(async()=>{for await(let e of r);})();for(let e of r);}var ur=zh;function qh(r){return r[Symbol.asyncIterator]!=null}function jh(r,e){return qh(r)?(async function*(){yield*(await or(r)).sort(e)})():(function*(){yield*or(r).sort(e)})()}var un=jh;function Vh(r){return r[Symbol.asyncIterator]!=null}function Hh(r,e){return Vh(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 ln=Hh;var Fe=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:i}of e)await this.put(n,i,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,i){e.push({key:n,value:i})},delete(n){t.push(n)},commit:async n=>{await ur(this.putMany(e,n)),e=[],await ur(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let i=e.prefix;n=re(n,o=>o.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>re(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>un(i,o),n)),e.offset!=null){let i=0,o=e.offset;n=re(n,()=>i++>=o)}return e.limit!=null&&(n=ln(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let i=e.prefix;n=re(n,o=>o.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>re(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>un(i,o),n)),e.offset!=null){let i=e.offset,o=0;n=re(n,()=>o++>=i)}return e.limit!=null&&(n=ln(n,e.limit)),n}};var lr=class extends Fe{data;constructor(){super(),this.data=new Map}put(e,t,n){return n?.signal?.throwIfAborted(),this.data.set(e.toString(),t),e}get(e,t){t?.signal?.throwIfAborted();let n=this.data.get(e.toString());if(n==null)throw new le;return n}has(e,t){return t?.signal?.throwIfAborted(),this.data.has(e.toString())}delete(e,t){t?.signal?.throwIfAborted(),this.data.delete(e.toString())}*_all(e,t){t?.signal?.throwIfAborted();for(let[n,i]of this.data.entries())yield{key:new B(n),value:i},t?.signal?.throwIfAborted()}*_allKeys(e,t){t?.signal?.throwIfAborted();for(let n of this.data.keys())yield new B(n),t?.signal?.throwIfAborted()}};var fn=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}},At=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new fn(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 fn(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 yo=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function fr(r={}){return Wh(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 Wh(r,e){e=e??{};let t=e.onEnd,n=new At,i,o,s,a=X(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((E,_)=>{o=T=>{o=null,n.push(T);try{E(r(n))}catch(D){_(D)}return i}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=X()})}},f=E=>o!=null?o(E):(n.push(E),i),l=E=>(n=new At,o!=null?o({error:E}):(n.push({error:E}),i)),h=E=>{if(s)return i;if(e?.objectMode!==!0&&E?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:E})},d=E=>s?i:(s=!0,E!=null?l(E):f({done:!0})),g=()=>(n=new At,d(),{done:!0}),w=E=>(d(E),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:g,throw:w,push:h,end:d,get readableLength(){return n.size},onEmpty:async E=>{let _=E?.signal;if(_?.throwIfAborted(),n.isEmpty())return;let T,D;_!=null&&(T=new Promise((z,M)=>{D=()=>{M(new yo)},_.addEventListener("abort",D)}));try{await Promise.race([a.promise,T])}finally{D!=null&&_!=null&&_?.removeEventListener("abort",D)}}},t==null)return i;let A=i;return i={[Symbol.asyncIterator](){return this},next(){return A.next()},throw(E){return A.throw(E),t!=null&&(t(E),t=void 0),{done:!0}},return(){return A.return(),t!=null&&(t(),t=void 0),{done:!0}},push:h,end(E){return A.end(E),t!=null&&(t(E),t=void 0),i},get readableLength(){return A.readableLength},onEmpty:E=>A.onEmpty(E)},i}var h0=new B(Oa);var S0=ar("datastore:core:tiered");var Jh=["Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","Tagged"];function go(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(e==="string"||e==="number"||e==="bigint"||e==="symbol")return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(r instanceof Uint8Array)return"Uint8Array";if(r.constructor===Object)return"Object";let t=Qh(r);return t||"Object"}function Qh(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Jh.includes(e))return e}var u=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}static equals(e,t){return e===t||e.major===t.major&&e.name===t.name}};u.uint=new u(0,"uint",!0);u.negint=new u(1,"negint",!0);u.bytes=new u(2,"bytes",!0);u.string=new u(3,"string",!0);u.array=new u(4,"array",!1);u.map=new u(5,"map",!1);u.tag=new u(6,"tag",!1);u.float=new u(7,"float",!0);u.false=new u(7,"false",!0);u.true=new u(7,"true",!0);u.null=new u(7,"null",!0);u.undefined=new u(7,"undefined",!0);u.break=new u(7,"break",!0);var p=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 hr=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",Yh=new TextEncoder;function hn(r){return hr&&globalThis.Buffer.isBuffer(r)}function rt(r){return r instanceof Uint8Array?hn(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Xh=24,Zh=200,St=hr?r=>r.length>=Xh?globalThis.Buffer.from(r):za(r):r=>r.length>=Zh?Yh.encode(r):za(r),Ce=r=>Uint8Array.from(r),ja=hr?(r,e,t)=>hn(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Va=hr?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),rt(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let i of r)n+i.length>t.length&&(i=i.subarray(0,t.length-n)),t.set(i,n),n+=i.length;return t},Ha=hr?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function dn(r,e){if(hn(r)&&hn(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 za(r){let e=[],t=0;for(let n=0;n<r.length;n++){let i=r.charCodeAt(n);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(i=65536+((i&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(i>=55296&&i<=57343&&(i=65533),e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e}var qa=4096;function Wa(r){let e=r.length;if(e<=qa)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=qa));return t}var ed=256,dr=class{constructor(e=ed){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 i=t.length-(this.maxCursor-this.cursor)-1;t.set(e,i)}else{if(t){let i=t.length-(this.maxCursor-this.cursor)-1;i<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,i),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=Ha(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=ja(n,0,this.cursor)}else t=Va(this.chunks,this.cursor);return e&&this.reset(),t}},pn=class{constructor(e){this.dest=e,this.cursor=0,this.chunks=[e]}reset(){this.cursor=0}push(e){if(this.cursor+e.length>this.dest.length)throw new Error("write out of bounds, destination buffer is too small");this.dest.set(e,this.cursor),this.cursor+=e.length}toBytes(e=!1){let t=this.dest.subarray(0,this.cursor);return e&&this.reset(),t}};var y="CBOR decode error:",Te="CBOR encode error:",pr=[];pr[23]=1;pr[24]=2;pr[25]=3;pr[26]=5;pr[27]=9;function Ue(r,e,t){if(r.length-e<t)throw new Error(`${y} not enough data for type`)}var U=[24,256,65536,4294967296,BigInt("18446744073709551616")];function ne(r,e,t){Ue(r,e,1);let n=r[e];if(t.strict===!0&&n<U[0])throw new Error(`${y} integer encoded in more bytes than necessary (strict decode)`);return n}function ie(r,e,t){Ue(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<U[1])throw new Error(`${y} integer encoded in more bytes than necessary (strict decode)`);return n}function oe(r,e,t){Ue(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<U[2])throw new Error(`${y} integer encoded in more bytes than necessary (strict decode)`);return n}function se(r,e,t){Ue(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],i=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],o=(BigInt(n)<<BigInt(32))+BigInt(i);if(t.strict===!0&&o<U[3])throw new Error(`${y} integer encoded in more bytes than necessary (strict decode)`);if(o<=Number.MAX_SAFE_INTEGER)return Number(o);if(t.allowBigInt===!0)return o;throw new Error(`${y} integers outside of the safe integer range are not supported`)}function Ga(r,e,t,n){return new p(u.uint,ne(r,e+1,n),2)}function Ja(r,e,t,n){return new p(u.uint,ie(r,e+1,n),3)}function Qa(r,e,t,n){return new p(u.uint,oe(r,e+1,n),5)}function Ya(r,e,t,n){return new p(u.uint,se(r,e+1,n),9)}function fe(r,e){return C(r,0,e.value)}function C(r,e,t){if(t<U[0]){let n=Number(t);r.push([e|n])}else if(t<U[1]){let n=Number(t);r.push([e|24,n])}else if(t<U[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<U[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<U[4]){let i=[e|27,0,0,0,0,0,0,0],o=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));i[8]=o&255,o=o>>8,i[7]=o&255,o=o>>8,i[6]=o&255,o=o>>8,i[5]=o&255,i[4]=s&255,s=s>>8,i[3]=s&255,s=s>>8,i[2]=s&255,s=s>>8,i[1]=s&255,r.push(i)}else throw new Error(`${y} encountered BigInt larger than allowable range`)}}fe.encodedSize=function(e){return C.encodedSize(e.value)};C.encodedSize=function(e){return e<U[0]?1:e<U[1]?2:e<U[2]?3:e<U[3]?5:9};fe.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Xa(r,e,t,n){return new p(u.negint,-1-ne(r,e+1,n),2)}function Za(r,e,t,n){return new p(u.negint,-1-ie(r,e+1,n),3)}function ec(r,e,t,n){return new p(u.negint,-1-oe(r,e+1,n),5)}var wo=BigInt(-1),tc=BigInt(1);function rc(r,e,t,n){let i=se(r,e+1,n);if(typeof i!="bigint"){let o=-1-i;if(o>=Number.MIN_SAFE_INTEGER)return new p(u.negint,o,9)}if(n.allowBigInt!==!0)throw new Error(`${y} integers outside of the safe integer range are not supported`);return new p(u.negint,wo-BigInt(i),9)}function mn(r,e){let t=e.value,n=typeof t=="bigint"?t*wo-tc:t*-1-1;C(r,e.type.majorEncoded,n)}mn.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*wo-tc:t*-1-1;return n<U[0]?1:n<U[1]?2:n<U[2]?3:n<U[3]?5:9};mn.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function mr(r,e,t,n){Ue(r,e,t+n);let i=r.slice(e+t,e+t+n);return new p(u.bytes,i,t+n)}function nc(r,e,t,n){return mr(r,e,1,t)}function ic(r,e,t,n){return mr(r,e,2,ne(r,e+1,n))}function oc(r,e,t,n){return mr(r,e,3,ie(r,e+1,n))}function sc(r,e,t,n){return mr(r,e,5,oe(r,e+1,n))}function ac(r,e,t,n){let i=se(r,e+1,n);if(typeof i=="bigint")throw new Error(`${y} 64-bit integer bytes lengths not supported`);return mr(r,e,9,i)}function yn(r){return r.encodedBytes===void 0&&(r.encodedBytes=u.equals(r.type,u.string)?St(r.value):r.value),r.encodedBytes}function It(r,e){let t=yn(e);C(r,e.type.majorEncoded,t.length),r.push(t)}It.encodedSize=function(e){let t=yn(e);return C.encodedSize(t.length)+t.length};It.compareTokens=function(e,t){return rd(yn(e),yn(t))};function rd(r,e){return r.length<e.length?-1:r.length>e.length?1:dn(r,e)}var cc=new TextDecoder,id=32;function od(r,e,t){if(t-e<id){let i="";for(let o=e;o<t;o++){let s=r[o];if(s&128)return cc.decode(r.subarray(e,t));i+=String.fromCharCode(s)}return i}return cc.decode(r.subarray(e,t))}function yr(r,e,t,n,i){let o=t+n;Ue(r,e,o);let s=new p(u.string,od(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=r.slice(e+t,e+o)),s}function uc(r,e,t,n){return yr(r,e,1,t,n)}function lc(r,e,t,n){return yr(r,e,2,ne(r,e+1,n),n)}function fc(r,e,t,n){return yr(r,e,3,ie(r,e+1,n),n)}function hc(r,e,t,n){return yr(r,e,5,oe(r,e+1,n),n)}function dc(r,e,t,n){let i=se(r,e+1,n);if(typeof i=="bigint")throw new Error(`${y} 64-bit integer string lengths not supported`);return yr(r,e,9,i,n)}var pc=It;function Ct(r,e,t,n){return new p(u.array,n,t)}function mc(r,e,t,n){return Ct(r,e,1,t)}function yc(r,e,t,n){return Ct(r,e,2,ne(r,e+1,n))}function gc(r,e,t,n){return Ct(r,e,3,ie(r,e+1,n))}function wc(r,e,t,n){return Ct(r,e,5,oe(r,e+1,n))}function bc(r,e,t,n){let i=se(r,e+1,n);if(typeof i=="bigint")throw new Error(`${y} 64-bit integer array lengths not supported`);return Ct(r,e,9,i)}function xc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${y} indefinite length items not allowed`);return Ct(r,e,1,1/0)}function gn(r,e){C(r,u.array.majorEncoded,e.value)}gn.compareTokens=fe.compareTokens;gn.encodedSize=function(e){return C.encodedSize(e.value)};function Tt(r,e,t,n){return new p(u.map,n,t)}function Ec(r,e,t,n){return Tt(r,e,1,t)}function vc(r,e,t,n){return Tt(r,e,2,ne(r,e+1,n))}function _c(r,e,t,n){return Tt(r,e,3,ie(r,e+1,n))}function kc(r,e,t,n){return Tt(r,e,5,oe(r,e+1,n))}function Ac(r,e,t,n){let i=se(r,e+1,n);if(typeof i=="bigint")throw new Error(`${y} 64-bit integer map lengths not supported`);return Tt(r,e,9,i)}function Sc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${y} indefinite length items not allowed`);return Tt(r,e,1,1/0)}function wn(r,e){C(r,u.map.majorEncoded,e.value)}wn.compareTokens=fe.compareTokens;wn.encodedSize=function(e){return C.encodedSize(e.value)};function Ic(r,e,t,n){return new p(u.tag,t,1)}function Cc(r,e,t,n){return new p(u.tag,ne(r,e+1,n),2)}function Tc(r,e,t,n){return new p(u.tag,ie(r,e+1,n),3)}function Lc(r,e,t,n){return new p(u.tag,oe(r,e+1,n),5)}function Dc(r,e,t,n){return new p(u.tag,se(r,e+1,n),9)}function bn(r,e){C(r,u.tag.majorEncoded,e.value)}bn.compareTokens=fe.compareTokens;bn.encodedSize=function(e){return C.encodedSize(e.value)};var bo=20,xo=21,Eo=22,vo=23;function Pc(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${y} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new p(u.null,null,1):new p(u.undefined,void 0,1)}function Nc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${y} indefinite length items not allowed`);return new p(u.break,void 0,1)}function _o(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${y} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${y} Infinity values are not supported`)}return new p(u.float,r,e)}function Rc(r,e,t,n){return _o(ko(r,e+1),3,n)}function Bc(r,e,t,n){return _o(Ao(r,e+1),5,n)}function Fc(r,e,t,n){return _o(Oc(r,e+1),9,n)}function gr(r,e,t){let n=e.value;if(n===!1)r.push([u.float.majorEncoded|bo]);else if(n===!0)r.push([u.float.majorEncoded|xo]);else if(n===null)r.push([u.float.majorEncoded|Eo]);else if(n===void 0)r.push([u.float.majorEncoded|vo]);else{let i,o=!1;(!t||t.float64!==!0)&&(Mc(n),i=ko(ve,1),n===i||Number.isNaN(n)?(ve[0]=249,r.push(ve.slice(0,3)),o=!0):($c(n),i=Ao(ve,1),n===i&&(ve[0]=250,r.push(ve.slice(0,5)),o=!0))),o||(ld(n),i=Oc(ve,1),ve[0]=251,r.push(ve.slice(0,9)))}}gr.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){Mc(n);let i=ko(ve,1);if(n===i||Number.isNaN(n))return 3;if($c(n),i=Ao(ve,1),n===i)return 5}return 9};var Uc=new ArrayBuffer(9),he=new DataView(Uc,1),ve=new Uint8Array(Uc,0);function Mc(r){if(r===1/0)he.setUint16(0,31744,!1);else if(r===-1/0)he.setUint16(0,64512,!1);else if(Number.isNaN(r))he.setUint16(0,32256,!1);else{he.setFloat32(0,r);let e=he.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)he.setUint16(0,31744,!1);else if(t===0)he.setUint16(0,(e&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?he.setUint16(0,0):i<-14?he.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):he.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function ko(r,e){if(r.length-e<2)throw new Error(`${y} 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,i=t&1023,o;return n===0?o=i*2**-24:n!==31?o=(i+1024)*2**(n-25):o=i===0?1/0:NaN,t&32768?-o:o}function $c(r){he.setFloat32(0,r,!1)}function Ao(r,e){if(r.length-e<4)throw new Error(`${y} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function ld(r){he.setFloat64(0,r,!1)}function Oc(r,e){if(r.length-e<8)throw new Error(`${y} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}gr.compareTokens=fe.compareTokens;function k(r,e,t){throw new Error(`${y} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function xn(r){return()=>{throw new Error(`${y} ${r}`)}}var m=[];for(let r=0;r<=23;r++)m[r]=k;m[24]=Ga;m[25]=Ja;m[26]=Qa;m[27]=Ya;m[28]=k;m[29]=k;m[30]=k;m[31]=k;for(let r=32;r<=55;r++)m[r]=k;m[56]=Xa;m[57]=Za;m[58]=ec;m[59]=rc;m[60]=k;m[61]=k;m[62]=k;m[63]=k;for(let r=64;r<=87;r++)m[r]=nc;m[88]=ic;m[89]=oc;m[90]=sc;m[91]=ac;m[92]=k;m[93]=k;m[94]=k;m[95]=xn("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)m[r]=uc;m[120]=lc;m[121]=fc;m[122]=hc;m[123]=dc;m[124]=k;m[125]=k;m[126]=k;m[127]=xn("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)m[r]=mc;m[152]=yc;m[153]=gc;m[154]=wc;m[155]=bc;m[156]=k;m[157]=k;m[158]=k;m[159]=xc;for(let r=160;r<=183;r++)m[r]=Ec;m[184]=vc;m[185]=_c;m[186]=kc;m[187]=Ac;m[188]=k;m[189]=k;m[190]=k;m[191]=Sc;for(let r=192;r<=215;r++)m[r]=Ic;m[216]=Cc;m[217]=Tc;m[218]=Lc;m[219]=Dc;m[220]=k;m[221]=k;m[222]=k;m[223]=k;for(let r=224;r<=243;r++)m[r]=xn("simple values are not supported");m[244]=k;m[245]=k;m[246]=k;m[247]=Pc;m[248]=xn("simple values are not supported");m[249]=Rc;m[250]=Bc;m[251]=Fc;m[252]=k;m[253]=k;m[254]=k;m[255]=Nc;var _e=[];for(let r=0;r<24;r++)_e[r]=new p(u.uint,r,1);for(let r=-1;r>=-24;r--)_e[31-r]=new p(u.negint,r,1);_e[64]=new p(u.bytes,new Uint8Array(0),1);_e[96]=new p(u.string,"",1);_e[128]=new p(u.array,0,1);_e[160]=new p(u.map,0,1);_e[244]=new p(u.false,!1,1);_e[245]=new p(u.true,!0,1);_e[246]=new p(u.null,null,1);function So(r){switch(r.type){case u.false:return Ce([244]);case u.true:return Ce([245]);case u.null:return Ce([246]);case u.bytes:return r.value.length?void 0:Ce([64]);case u.string:return r.value===""?Ce([96]):void 0;case u.array:return r.value===0?Ce([128]):void 0;case u.map:return r.value===0?Ce([160]):void 0;case u.uint:return r.value<24?Ce([Number(r.value)]):void 0;case u.negint:if(r.value>=-24)return Ce([31-Number(r.value)])}}var hd={float64:!1,mapSorter:md,quickEncodeToken:So},Vc=Object.freeze({float64:!0,mapSorter:yd,quickEncodeToken:So});function dd(){let r=[];return r[u.uint.major]=fe,r[u.negint.major]=mn,r[u.bytes.major]=It,r[u.string.major]=pc,r[u.array.major]=gn,r[u.map.major]=wn,r[u.tag.major]=bn,r[u.float.major]=gr,r}var Dt=dd(),En=new dr,br=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(`${Te} object contains circular references`);return new r(t,e)}},He={null:new p(u.null,null),undefined:new p(u.undefined,void 0),true:new p(u.true,!0),false:new p(u.false,!1),emptyArray:new p(u.array,0),emptyMap:new p(u.map,0)},Le={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new p(u.float,r):r>=0?new p(u.uint,r):new p(u.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new p(u.uint,r):new p(u.negint,r)},Uint8Array(r,e,t,n){return new p(u.bytes,r)},string(r,e,t,n){return new p(u.string,r)},boolean(r,e,t,n){return r?He.true:He.false},null(r,e,t,n){return He.null},undefined(r,e,t,n){return He.undefined},ArrayBuffer(r,e,t,n){return new p(u.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new p(u.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[He.emptyArray,new p(u.break)]:He.emptyArray;n=br.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=Lt(s,t,n);return t.addBreakTokens?[new p(u.array,r.length),i,new p(u.break)]:[new p(u.array,r.length),i]},Object(r,e,t,n){let i=e!=="Object",o=i?r.keys():Object.keys(r),s=i?r.size:o.length,a;if(s){a=new Array(s),n=br.createCheck(n,r);let c=!i&&t.ignoreUndefinedProperties,f=0;for(let l of o){let h=i?r.get(l):r[l];c&&h===void 0||(a[f++]=[Lt(l,t,n),Lt(h,t,n)])}f<s&&(a.length=f)}return a?.length?(pd(a,t),t.addBreakTokens?[new p(u.map,a.length),a,new p(u.break)]:[new p(u.map,a.length),a]):t.addBreakTokens===!0?[He.emptyMap,new p(u.break)]:He.emptyMap},Tagged(r,e,t,n){return[new p(u.tag,r.tag),Lt(r.value,t,n)]}};Le.Map=Le.Object;Le.Buffer=Le.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))Le[`${r}Array`]=Le.DataView;function Lt(r,e={},t){let n=go(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||Le[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=Le[n];if(!o)throw new Error(`${Te} unsupported type: ${n}`);return o(r,n,e,t)}function pd(r,e){e.mapSorter&&r.sort(e.mapSorter)}function md(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 i=t.type.major,o=Dt[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function yd(r,e){if(r[0]instanceof p&&e[0]instanceof p){let t=r[0],n=e[0];return t._keyBytes||(t._keyBytes=Kc(t.value)),n._keyBytes||(n._keyBytes=Kc(n.value)),dn(t._keyBytes,n._keyBytes)}throw new Error("rfc8949MapSorter: complex key types are not supported yet")}function Kc(r){return vn(r,Dt,Vc)}function wr(r,e,t,n){if(Array.isArray(e))for(let i of e)wr(r,i,t,n);else t[e.type.major](r,e,n)}var zc=u.uint.majorEncoded,qc=u.negint.majorEncoded,gd=u.bytes.majorEncoded,wd=u.string.majorEncoded,jc=u.array.majorEncoded,bd=u.float.majorEncoded|bo,xd=u.float.majorEncoded|xo,Ed=u.float.majorEncoded|Eo,vd=u.float.majorEncoded|vo,_d=BigInt(-1),kd=BigInt(1);function Ad(r){return r.addBreakTokens!==!0}function Hc(r,e,t,n){let i=go(e),o=t.typeEncoders&&t.typeEncoders[i];if(o){let s=o(e,i,t,n);if(s!=null){wr(r,s,Dt,t);return}}switch(i){case"null":r.push([Ed]);return;case"undefined":r.push([vd]);return;case"boolean":r.push([e?xd:bd]);return;case"number":!Number.isInteger(e)||!Number.isSafeInteger(e)?gr(r,new p(u.float,e),t):e>=0?C(r,zc,e):C(r,qc,e*-1-1);return;case"bigint":e>=BigInt(0)?C(r,zc,e):C(r,qc,e*_d-kd);return;case"string":{let s=St(e);C(r,wd,s.length),r.push(s);return}case"Uint8Array":C(r,gd,e.length),r.push(e);return;case"Array":if(!e.length){r.push([jc]);return}n=br.createCheck(n,e),C(r,jc,e.length);for(let s of e)Hc(r,s,t,n);return;case"Object":case"Map":{let s=Le.Object(e,i,t,n);wr(r,s,Dt,t)}return;default:{let s=Le[i];if(!s)throw new Error(`${Te} unsupported type: ${i}`);let a=s(e,i,t,n);wr(r,a,Dt,t)}}}function vn(r,e,t,n){let i=n instanceof Uint8Array,o=i?new pn(n):En,s=Lt(r,t);if(!Array.isArray(s)&&t.quickEncodeToken){let a=t.quickEncodeToken(s);if(a)return i?(o.push(a),o.toBytes()):a;let c=e[s.type.major];if(c.encodedSize){let f=c.encodedSize(s,t);if(i||(o=new dr(f)),c(o,s,t),o.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${s} was wrong`);return i?o.toBytes():rt(o.chunks[0])}}return o.reset(),wr(o,s,e,t),o.toBytes(!0)}function it(r,e){return e=Object.assign({},hd,e),Ad(e)?(En.reset(),Hc(En,r,e,void 0),En.toBytes(!0)):vn(r,Dt,e)}var Sd={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},_n=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=_e[e];if(t===void 0){let n=m[e];if(!n)throw new Error(`${y} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let i=e&31;t=n(this.data,this._pos,i,this.options)}return this._pos+=t.encodedLength,t}},We=Symbol.for("DONE"),Pt=Symbol.for("BREAK");function Id(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=Ge(e,t);if(o===Pt){if(r.value===1/0)break;throw new Error(`${y} got unexpected break to lengthed array`)}if(o===We)throw new Error(`${y} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function Cd(r,e,t){let n=t.useMaps===!0,i=t.rejectDuplicateMapKeys===!0,o=n?void 0:{},s=n?new Map:void 0;for(let a=0;a<r.value;a++){let c=Ge(e,t);if(c===Pt){if(r.value===1/0)break;throw new Error(`${y} got unexpected break to lengthed map`)}if(c===We)throw new Error(`${y} found map but not enough entries (got ${a} [no key], expected ${r.value})`);if(!n&&typeof c!="string")throw new Error(`${y} non-string keys not supported (got ${typeof c})`);if(i&&(n&&s.has(c)||!n&&Object.hasOwn(o,c)))throw new Error(`${y} found repeat map key "${c}"`);let f=Ge(e,t);if(f===We)throw new Error(`${y} found map but not enough entries (got ${a} [no value], expected ${r.value})`);n?s.set(c,f):o[c]=f}return n?s:o}function*Td(r,e,t){for(let n=0;n<r.value;n++){let i=Ge(e,t);if(i===Pt){if(r.value===1/0)break;throw new Error(`${y} got unexpected break to lengthed map`)}if(i===We)throw new Error(`${y} found map but not enough entries (got ${n} [no key], expected ${r.value})`);let o=Ge(e,t);if(o===We)throw new Error(`${y} found map but not enough entries (got ${n} [no value], expected ${r.value})`);yield[i,o]}}function Ld(r,e){let t=!1,n=function(){if(t)throw new Error(`${y} tag decode() may only be called once`);t=!0;let i=Ge(r,e);if(i===We)throw new Error(`${y} tag content missing`);if(i===Pt)throw new Error(`${y} got unexpected break in tag content`);return i};return n.entries=function(){if(t)throw new Error(`${y} tag decode() may only be called once`);t=!0;let i=r.next();if(!u.equals(i.type,u.map))throw new Error(`${y} entries() requires map content, got ${i.type.name}`);let o=[];for(let s of Td(i,r,e))o.push(s);return o},Object.defineProperty(n,"_called",{get(){return t},enumerable:!1}),n}function Ge(r,e){if(r.done())return We;let t=r.next();if(u.equals(t.type,u.break))return Pt;if(t.type.terminal)return t.value;if(u.equals(t.type,u.array))return Id(t,r,e);if(u.equals(t.type,u.map))return Cd(t,r,e);if(u.equals(t.type,u.tag)){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Ld(r,e),i=e.tags[t.value](n);if(!n._called)throw new Error(`${y} tag decoder must call decode() or entries()`);return i}throw new Error(`${y} tag not supported (${t.value})`)}throw new Error("unsupported")}function Io(r,e){if(!(r instanceof Uint8Array))throw new Error(`${y} data to decode must be a Uint8Array`);e=Object.assign({},Sd,e);let t=rt(r),n=e.tokenizer||new _n(t,e),i=Ge(n,e);if(i===We)throw new Error(`${y} did not find any content to decode`);if(i===Pt)throw new Error(`${y} got unexpected break`);return[i,r.subarray(n.pos())]}function ke(r,e){let[t,n]=Io(r,e);if(n.length>0)throw new Error(`${y} too many terminals, data makes no sense`);return t}var kn=class r{constructor(e,t){if(typeof e!="number"||!Number.isInteger(e)||e<0)throw new TypeError("Tagged: tag must be a non-negative integer");this.tag=e,this.value=t}static decoder(e){return t=>new r(e,t())}static preserve(...e){let t={};for(let n of e)t[n]=r.decoder(n);return t}};Object.defineProperty(kn.prototype,Symbol.toStringTag,{value:"Tagged"});var An=class extends Error{static name="AlreadyPinnedError";name="AlreadyPinnedError"},xr=class extends Error{static name="BlockPinnedError";name="BlockPinnedError"},Sn=class extends Error{static name="InvalidDatastoreVersionError";name="InvalidDatastoreVersionError"},ot=class extends Error{static name="InvalidConfigurationError";name="InvalidConfigurationError"},In=class extends AggregateError{static name="GetFailedError";name="GetFailedError"},Cn=class extends AggregateError{static name="LoadBlockFailedError";name="LoadBlockFailedError"},Er=class extends Error{static name="BlockNotFoundWhileOfflineError";name="BlockNotFoundWhileOfflineError"};var Co={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Gc={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Jc=new globalThis.TextEncoder;function Dd(r,e){let t=Co[e],n=Gc[e];for(let i=0;i<r.length;i++)n^=BigInt(r[i]),n=BigInt.asUintN(e,n*t);return n}function Pd(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=Co[e],i=Gc[e],o=r;for(;o.length>0;){let s=Jc.encodeInto(o,t);o=o.slice(s.read);for(let a=0;a<s.written;a++)i^=BigInt(t[a]),i=BigInt.asUintN(e,i*n)}return i}function To(r,{size:e=32,utf8Buffer:t}={}){if(!Co[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 Pd(r,e,t);r=Jc.encode(r)}return Dd(r,e)}var vr={hash:r=>Number(To(r,{size:32})),hashV:(r,e)=>Nd(vr.hash(r,e))};function Nd(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),L(e,"base16")}var Lo=64,Ae=class{fp;h;seed;constructor(e,t,n,i=2){if(i>Lo)throw new TypeError("Invalid Fingerprint Size");let o=t.hashV(e,n),s=pe(i);for(let a=0;a<s.length;a++)s[a]=o[a];s.length===0&&(s[0]=7),this.fp=s,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?Re(this.fp,e.fp):!1}};function st(r,e){return Math.floor(Math.random()*(e-r))+r}var at=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof Ae))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof Ae))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 Ae))throw new TypeError("Invalid Fingerprint");let t=st(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof Ae))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var Rd=500,_r=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??vr,this.seed=e.seed??st(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=L(e));let t=new Ae(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new at(this.bucketSize)),this.buckets[i]==null&&(this.buckets[i]=new at(this.bucketSize)),this.buckets[n].add(t)||this.buckets[i].add(t))return this.count++,!0;let o=[n,i],s=o[st(0,o.length-1)];this.buckets[s]==null&&(this.buckets[s]=new at(this.bucketSize));for(let a=0;a<Rd;a++){let c=this.buckets[s].swap(t);if(c!=null&&(s=(s^c.hash())%this.filterSize,this.buckets[s]==null&&(this.buckets[s]=new at(this.bucketSize)),this.buckets[s].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=L(e));let t=new Ae(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.has(t)??!1;if(i)return i;let o=(n^t.hash())%this.filterSize;return this.buckets[o]?.has(t)??!1}remove(e){typeof e=="string"&&(e=L(e));let t=new Ae(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,i=this.buckets[n]?.remove(t)??!1;if(i)return this.count--,i;let o=(n^t.hash())%this.filterSize,s=this.buckets[o]?.remove(t)??!1;return s&&this.count--,s}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Bd={1:.5,2:.84,4:.95,8:.98};function Fd(r=.001){return r>.002?2:r>1e-5?4:8}function Qc(r,e=.001){let t=Fd(e),n=Bd[t],i=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Lo);return{filterSize:i,bucketSize:t,fingerprintSize:o}}var Tn=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??vr,this.seed=e.seed??st(0,Math.pow(2,10)),this.filterSeries=[new _r({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=L(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 _r({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=L(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=L(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 Ln(r,e=.001,t){return new Tn({...Qc(r,e),...t??{}})}var Ud=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 Md(r,e,t){let n,i=new Promise((o,s)=>{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:f,removeListener:l}=Ud(r),h=async(...g)=>{let w=t.multiArgs?g:g[0];if(t.filter)try{if(!await t.filter(w))return}catch(A){n(),s(A);return}c.push(w),t.count===c.length&&(n(),o(c))},d=(...g)=>{n(),s(t.rejectionMultiArgs?g:g[0])};n=()=>{for(let g of a)l(g,h);for(let g of t.rejectionEvents)a.includes(g)||l(g,d)};for(let g of a)f(g,h);for(let g of t.rejectionEvents)a.includes(g)||f(g,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&o(c)});if(i.cancel=n,typeof t.timeout=="number"){let o=nr(i,{milliseconds:t.timeout});return o.cancel=()=>{n(),o.clear()},o}return i}function Dn(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Md(r,e,t),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}function Do(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Pn=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Nn=class{deferred;signal;onProgress;constructor(e){this.signal=e?.signal,this.onProgress=e?.onProgress,this.deferred=X(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new xe)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function $d(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Rn=class{id;fn;options;recipients;status;timeline;controller;dispatchingProgress;constructor(e,t){this.id=$d(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.dispatchingProgress=!1,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 xe),this.cleanup())}async join(e){let t=new Nn(e);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 Ve(this.fn({...this.options??{},signal:this.controller.signal,onProgress:t=>{if(!this.dispatchingProgress){this.dispatchingProgress=!0;try{this.recipients.forEach(n=>{n.onProgress?.(t)})}finally{this.dispatchingProgress=!1}}}}),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 De=class extends ue{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=Do(this.emitEmpty.bind(this),1),this.emitIdle=Do(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 Pn;let n=new Rn(e,t);this.enqueue(n),this.safeDispatchEvent("add");let i=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});return this.tryToStartAnother(),i}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new xe)}),this.clear()}async onEmpty(e){this.size!==0&&await Dn(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await Dn(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Dn(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=fr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new xe("Queue aborted"))};this.addEventListener("completed",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};function Se(r){let e=new globalThis.AbortController;function t(){let o=r.filter(s=>s?.aborted===!0).map(s=>s?.reason).pop();e.abort(o);for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let o of r){if(o?.aborted===!0){t();break}o?.addEventListener!=null&&o.addEventListener("abort",t)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",t)}let i=e.signal;return i.clear=n,i}function Od(r){return r[Symbol.asyncIterator]!=null}function Kd(r){if(Od(r))return(async()=>{let n=new Uint8Array(0);for await(let i of r)n=ge([n,i],n.length+i.length);return n})();let e=[],t=0;for(let n of r)e.push(n),t+=n.byteLength;return ge(e,t)}var Yc=Kd;function Bn({enumerable:r=!0,configurable:e=!1}={}){return{enumerable:r,configurable:e,writable:!1}}function*zd(r,e){if(e!=null&&typeof e=="object")if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t],o=v.asCID(n);o!=null?yield[i.join("/"),o]:typeof n=="object"&&(yield*Po(n,i))}else{let t=v.asCID(e);t!=null?yield[r.join("/"),t]:yield*Po(e,r)}}function*Po(r,e){if(r==null||r instanceof Uint8Array)return;let t=v.asCID(r);t!=null&&(yield[e.join("/"),t]);for(let[n,i]of Object.entries(r)){let o=[...e,n];yield*zd(o,i)}}function*qd(r,e){if(Array.isArray(e))for(let[t,n]of e.entries()){let i=[...r,t];yield i.join("/"),typeof n=="object"&&v.asCID(n)==null&&(yield*No(n,i))}else yield*No(e,r)}function*No(r,e){if(!(r==null||typeof r!="object"))for(let[t,n]of Object.entries(r)){let i=[...e,t];yield i.join("/"),n!=null&&!(n instanceof Uint8Array)&&typeof n=="object"&&v.asCID(n)==null&&(yield*qd(i,n))}}function jd(r,e){let t=r;for(let[n,i]of e.entries()){if(t=t[i],t==null)throw new Error(`Object has no property at ${e.slice(0,n+1).map(s=>`[${JSON.stringify(s)}]`).join("")}`);let o=v.asCID(t);if(o!=null)return{value:o,remaining:e.slice(n+1).join("/")}}return{value:t}}var Ro=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:Bn(),bytes:Bn(),value:Bn(),asBlock:Bn()})}links(){return Po(this.value,[])}tree(){return No(this.value,[])}get(e="/"){return jd(this.value,e.split("/").filter(Boolean))}};function Xc({bytes:r,cid:e,value:t,codec:n}){let i=t!==void 0?t:n?.decode(r);if(i===void 0)throw new Error('Missing required argument, must either provide "value" or "codec"');return new Ro({cid:e,bytes:r,value:i})}function Ar(r){return e=>new Bo(e,r)}function Zc(r){return e=>new Fo(e,r)}function eu(r){return e=>new Uo(e,r)}var kr=class{components;constructor(e,t={}){this.components=e}async*walk(e,t){let n=this.getQueue(),i=re(n.toGenerator(t),c=>c!=null),o=!1,s=t?.depth??1/0,a=async c=>{let f=c.cid,l=await Yc(this.components.blockstore.get(f,c)),h=Xc({cid:f,bytes:l,codec:await this.components.getCodec(f.code)});if(c.depth<s)for(let[,d]of h.links())t?.includeChild?.(d,h)!==!1&&n.add(a,{...c,cid:d,depth:c.depth+1,path:[...c.path,d]}).catch(g=>{o||i.throw(g)});return{block:h,depth:c.depth,path:c.path}};n.add(a,{...t,cid:e,depth:0,path:[e]}).catch(c=>{o||i.throw(c)});try{yield*i}finally{o=!0,n.abort()}}},Bo=class extends kr{getQueue(){return new De({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?1:-1})}},Fo=class extends kr{getQueue(){return new De({concurrency:1,sort:(e,t)=>e.options.depth===t.options.depth?0:e.options.depth<t.options.depth?-1:1})}},Uo=class extends kr{getQueue(){return new De({concurrency:1})}};var ru="/pin/",tu="/pinned-block/",Mo=te;function Fn(r){return r.version===0&&(r=r.toV1()),new B(`${ru}${r.toString(Mo)}`)}var Un=class{datastore;blockstore;getCodec;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.getCodec=n}async*add(e,t={}){let n=Fn(e);if(await this.datastore.has(n))throw new An("Already pinned");let i=Math.round(t.depth??1/0);if(i<0)throw new _t("Depth must be greater than or equal to 0");let o=(t.walker??Ar())({blockstore:this.blockstore,getCodec:this.getCodec});for await(let a of o.walk(e,{...t,depth:i})){let c=a.block.cid;await this.#e(c,f=>f.pinnedBy.find(l=>Re(l,e.bytes))!=null?!1:(f.pinCount++,f.pinnedBy.push(e.bytes),!0),t),yield c}let s={depth:i,metadata:t.metadata??{}};await this.datastore.put(n,it(s),t)}async#e(e,t,n){let i=new B(`${tu}${Mo.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=ke(await this.datastore.get(i,n))}catch(a){if(a.name!=="NotFoundError")throw a}if(t(o)){if(o.pinCount===0&&await this.datastore.has(i)){await this.datastore.delete(i);return}await this.datastore.put(i,it(o),n),n.onProgress?.(new x("helia:pin:add",e))}}async*rm(e,t={}){let n=Fn(e),i=await this.datastore.get(n,t),o=ke(i);await this.datastore.delete(n,t);let s=(t.walker??Ar())({blockstore:this.blockstore,getCodec:this.getCodec});for await(let a of s.walk(e,{...t,depth:o.depth})){let c=a.block.cid;await this.#e(c,f=>(f.pinCount--,f.pinnedBy=f.pinnedBy.filter(l=>Re(l,e.bytes)),!0),{...t,depth:o.depth}),yield c}}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:ru+(e.cid!=null?`${e.cid.toString(te)}`:"")},e)){let i=v.parse(t.toString().substring(5),te),o=ke(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new B(`${tu}${Mo.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}async get(e,t){let n=Fn(e),i=await this.datastore.get(n,t);return ke(i)}async setMetadata(e,t,n){let i=Fn(e),o=await this.datastore.get(i,n),s=ke(o);s.metadata=t??{},await this.datastore.put(i,it(s),n)}};var Mn=class extends Error{static name="InsufficientProvidersError";constructor(e="Insufficient providers found"){super(e),this.name="InsufficientProvidersError"}},ct=class extends Error{static name="NoRoutersAvailableError";constructor(e="No routers available"){super(e),this.name="NoRoutersAvailableError"}},$n=class extends Error{static name="UnknownHashAlgorithmError";constructor(e="Unknown hash algorithm"){super(e),this.name="UnknownHashAlgorithmError"}},On=class extends Error{static name="UnknownCodecError";constructor(e="Unknown codec"){super(e),this.name="UnknownCodecError"}};var Kn=class extends Error{static name="UnknownCryptoError";name="UnknownCryptoError"};var Vd=5,zn=class{name;log;routers;providerLookupConcurrency;constructor(e,t){this.name="helia",this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[],this.providerLookupConcurrency=t.providerLookupConcurrency??Vd,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 qe(...this.routers)}async stop(){await je(...this.routers)}hasRouter(e){return this.routers.findIndex(t=>t.name===e)!==-1}addRouter(e){this.routers.push(e)}async*findProviders(e,t={}){if(this.routers.length===0)throw new ct("No content routers available");let n=new De({concurrency:this.providerLookupConcurrency}),i=0,o=[],s=this,a=0;this.log("findProviders for %c start using routers %s",e,this.routers.map(f=>f.toString()).join(", "));let c=ut(this.routers,"findProviders").map(async function*(f){let l=0;t?.onProgress?.(new x("helia:routing:find-providers:start",{routing:f.name,cid:e}));try{for await(let h of f.findProviders(e,t))l++,t?.onProgress?.(new x("helia:routing:find-providers:provider",{routing:f.name,cid:e,provider:h})),yield h}catch(h){o.push(h)}finally{s.log("router %s found %d providers for %c",f,l,e),t?.onProgress?.(new x("helia:routing:find-providers:end",{routing:f.name,cid:e,found:l})),a++,a===c.length&&n.size===0&&n.emitIdle()}});for await(let f of tt(n.toGenerator(),...c))if(f!=null){if(f.multiaddrs.length===0){if(n.queue.find(l=>l.options.peer.equals(f.id))!=null)continue;n.add(async()=>{try{let l=await this.findPeer(f.id,t);return l.multiaddrs.length===0?null:{...l,protocols:f.protocols,routing:f.routing}}catch(l){return this.log.error("could not load multiaddrs for peer %p - %e",f.id,l),null}},{peer:f.id,signal:t.signal}).catch(l=>{this.log.error("could not load multiaddrs for peer %p - %e",f.id,l)});continue}i++,yield f}this.log("findProviders finished, found %d providers for %c",i,e)}async provide(e,t={}){if(this.routers.length===0)throw new ct("No content routers available");await Promise.all(ut(this.routers,"provide").map(async n=>{t?.onProgress?.(new x("helia:routing:provide:start",{routing:n.name,cid:e})),await n.provide(e,t),t?.onProgress?.(new x("helia:routing:provide:end",{routing:n.name,cid:e}))}))}async cancelReprovide(e,t={}){await Promise.all(ut(this.routers,"cancelReprovide").map(async n=>{t?.onProgress?.(new x("helia:routing:cancel-reprovide:start",{routing:n.name,cid:e})),await n.cancelReprovide(e,t),t?.onProgress?.(new x("helia:routing:cancel-reprovide:end",{routing:n.name,cid:e}))}))}async put(e,t,n){await Promise.all(ut(this.routers,"put").map(async i=>{n?.onProgress?.(new x("helia:routing:put:start",{routing:i.name,key:e,value:t})),await i.put(e,t,n),n?.onProgress?.(new x("helia:routing:put:end",{routing:i.name,key:e,value:t}))}))}async get(e,t){let n=[],i;try{i=await Promise.any(ut(this.routers,"get").map(async o=>{t?.onProgress?.(new x("helia:routing:get:start",{routing:o.name,key:e}));try{return await o.get(e,t)}catch(s){this.log("router %s failed with %e",o,s),n.push(s)}finally{t?.onProgress?.(new x("helia:routing:get:end",{routing:o.name,key:e}))}}))}catch{}if(i==null)throw new In(n,`Failed to get value key ${ce(e,"base58btc")}`);return i}async findPeer(e,t){if(this.routers.length===0)throw new ct("No peer routers available");let n=this,i=tt(...ut(this.routers,"findPeer").map(o=>(async function*(){t?.onProgress?.(new x("helia:routing:find-peer:start",{routing:o.name,peerId:e}));try{yield await o.findPeer(e,t)}catch(s){n.log.error(s)}finally{t?.onProgress?.(new x("helia:routing:find-peer:end",{routing:o.name,peerId:e}))}})()));for await(let o of i)if(o!=null)return o;throw new Zr("Could not find peer in routing")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new ct("No peer routers available");for await(let n of tt(...ut(this.routers,"getClosestPeers").map(async function*(i){t?.onProgress?.(new x("helia:routing:get-closest-peers:start",{routing:i.name,key:e}));try{yield*i.getClosestPeers(e,t)}finally{t?.onProgress?.(new x("helia:routing:get-closest-peers:end",{routing:i.name,key:e}))}})))n!=null&&(yield n)}};function ut(r,e){return r.filter(t=>t[e]!=null)}var ae=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function qn(r,e,t,n){let i=new ae(n?.errorMessage);n?.errorCode!=null&&(i.code=n.errorCode);let o=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(i):new Promise((s,a)=>{function c(){Oo(t,"abort",h),Oo(r,e,f),Oo(r,o,l)}let f=d=>{try{if(n?.filter?.(d)===!1)return}catch(g){c(),a(g);return}c(),s(d)},l=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.`))},h=()=>{c(),a(i)};$o(t,"abort",h),$o(r,e,f),$o(r,o,l)})}function $o(r,e,t){r!=null&&(nu(r)?r.addEventListener(e,t):r.addListener(e,t))}function Oo(r,e,t){r!=null&&(nu(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function nu(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var jn=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Vn=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 ae)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Hd(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Hn=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=Hd(),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 ae),this.cleanup())}async join(e={}){let t=new Vn(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 Ve(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 Ko(r,e){let t,n=function(){let i=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(i,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Sr=class extends ue{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=Ko(this.emitEmpty.bind(this),1),this.emitIdle=Ko(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 jn;let n=new Hn(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(i=>(this.safeDispatchEvent("success",{detail:{job:n,result:i}}),i)).catch(i=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:i}}),i})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new ae)}),this.clear()}async onEmpty(e){this.size!==0&&await qn(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await qn(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await qn(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=fr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},i=c=>{c.detail!=null&&t.push(c.detail.result)},o=c=>{n(c.detail.error)},s=()=>{n()},a=()=>{n(new ae("Queue aborted"))};this.addEventListener("success",i),this.addEventListener("failure",o),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",i),this.removeEventListener("failure",o),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",a),n()}}};var Wn="lock:worker:request-read",Gn="lock:worker:abort-read-request",Jn="lock:worker:release-read",Qn="lock:master:grant-read",Yn="lock:master:error-read",Xn="lock:worker:request-write",Zn="lock:worker:abort-write-request",ei="lock:worker:release-write",ti="lock:master:grant-write",ri="lock:master:error-write",ni="lock:worker:finalize",ii="mortice",iu={singleProcess:!1};var zo=(r,e,t,n,i,o,s,a,c)=>f=>{if(f.data==null)return;let l={type:f.data.type,name:f.data.name,identifier:f.data.identifier};l.type===i&&r.safeDispatchEvent(t,{detail:{name:l.name,identifier:l.identifier,handler:async()=>{e.postMessage({type:c,name:l.name,identifier:l.identifier}),await new Promise(h=>{let d=g=>{if(g?.data==null)return;let w={type:g.data.type,name:g.data.name,identifier:g.data.identifier};w.type===a&&w.identifier===l.identifier&&(e.removeEventListener("message",d),h())};e.addEventListener("message",d)})},onError:h=>{e.postMessage({type:s,name:l.name,identifier:l.identifier,error:{message:h.message,name:h.name,stack:h.stack}})}}}),l.type===o&&r.safeDispatchEvent(n,{detail:{name:l.name,identifier:l.identifier}}),l.type===ni&&r.safeDispatchEvent("finalizeRequest",{detail:{name:l.name}})};var ou=(r=10)=>Math.random().toString().substring(2,r+2);var oi=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(ii)}readLock(e){return this.sendRequest(Wn,Gn,Qn,Yn,Jn,e)}writeLock(e){return this.sendRequest(Xn,Zn,ti,ri,ei,e)}finalize(){this.channel.postMessage({type:ni,name:this.name}),this.channel.close()}async sendRequest(e,t,n,i,o,s){s?.signal?.throwIfAborted();let a=ou();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,f)=>{let l=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};s?.signal?.addEventListener("abort",l,{once:!0});let h=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l),c(()=>{this.channel.postMessage({type:o,identifier:a,name:this.name})})),d.data.type===i)){this.channel.removeEventListener("message",h),s?.signal?.removeEventListener("abort",l);let g=new Error;d.data.error!=null&&(g.message=d.data.error.message,g.name=d.data.error.name,g.stack=d.data.error.stack),f(g)}};this.channel.addEventListener("message",h)})}};var su=r=>{if(r=Object.assign({},iu,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(ii),n=new ue;return t.addEventListener("message",zo(n,t,"requestReadLock","abortReadLockRequest",Wn,Gn,Yn,Jn,Qn)),t.addEventListener("message",zo(n,t,"requestWriteLock","abortWriteLockRequest",Xn,Zn,ri,ei,ti)),n}return new oi(r.name)};var lt=new Map,Ir;function au(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function Wd(r){if(Ir==null&&(Ir=su(r),!au(Ir))){let e=Ir;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,i=t.detail.identifier,o=lt.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortReadLockRequest",a),o.readLock({signal:s.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,i=t.detail.identifier,o=lt.get(n);if(o==null)return;let s=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==i||s.abort()};e.addEventListener("abortWriteLockRequest",a),o.writeLock({signal:s.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,i=lt.get(n);i?.finalize()})}return Ir}async function qo(r,e){let t,n,i=new Promise((s,a)=>{t=s,n=a}),o=()=>{n(new ae)};return e?.signal?.addEventListener("abort",o,{once:!0}),r.add(async()=>{await new Promise(s=>{t(()=>{e?.signal?.removeEventListener("abort",o),s()})})},{signal:e?.signal}).catch(s=>{n(s)}),i}var cu=(r,e)=>{let t=lt.get(r);if(t!=null)return t;let n=Wd(e);if(au(n))return t=n,lt.set(r,t),t;let i=new Sr({concurrency:1}),o;return t={async readLock(s){if(o!=null)return qo(o,s);o=new Sr({concurrency:e.concurrency,autoStart:!1});let a=o,c=qo(o,s);return i.add(async()=>{a.start(),await a.onIdle().then(()=>{o===a&&(o=null)})}),c},async writeLock(s){return o=null,qo(i,s)},finalize:()=>{lt.delete(r)},queue:i},lt.set(r,t),e.autoFinalize===!0&&i.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var Gd={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function jo(r){let e=Object.assign({},Gd,r);return cu(e.name,e)}var si=class{lock;child;pins;routing;started;constructor(e,t,n,i={}){this.child=e,this.pins=t,this.routing=n,this.lock=jo({singleProcess:i.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await qe(this.child),this.started=!0}async stop(){await je(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){n?.signal?.throwIfAborted();let i=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{i()}}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 xr("Block was pinned - please unpin and try again");await this.routing.cancelReprovide(e,t),await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){t?.signal?.throwIfAborted();let n=await this.lock.writeLock();try{let i=this;yield*this.child.deleteMany((async function*(){for await(let o of e){if(await i.pins.isPinned(o))throw new xr("Block was pinned - please unpin and try again");await i.routing.cancelReprovide(o,t),yield o}})(),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 Vo=new B("/version"),uu=1;async function lu(r){if(!await r.has(Vo)){await r.put(Vo,L(`${uu}`));return}let e=await r.get(Vo),t=ce(e);if(parseInt(t,10)!==uu)throw new Sn("Invalid datastore version, a datastore migration may be required")}var Jo={};F(Jo,{code:()=>Go,decode:()=>ip,decodeOptions:()=>tp,encode:()=>np,encodeOptions:()=>Zd,name:()=>rp,toByteView:()=>hu});var fu=42;function hu(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function Jd(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 p(u.tag,fu),new p(u.bytes,t)]}function Qd(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Yd(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 Xd(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 Ho={float64:!0,typeEncoders:{Map:Xd,Object:Jd,undefined:Qd,number:Yd}},Zd={...Ho,typeEncoders:{...Ho.typeEncoders}};function ep(r){let e=r();if(e[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return v.decode(e.subarray(1))}var Wo={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:{[fu]:ep}},tp={...Wo,tags:{...Wo.tags}},rp="dag-cbor",Go=113,np=r=>it(r,Ho),ip=r=>ke(hu(r),Wo);var ts={};F(ts,{code:()=>es,decode:()=>mu,encode:()=>pu,format:()=>mp,name:()=>pp,parse:()=>gp,stringify:()=>mp});var Qo=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(u.equals(t.type,u.array)&&(t.elements++,t.elements!==1&&e.push([44])),u.equals(t.type,u.map)&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[u.uint.major](e,t){this.prefix(e);let n=String(t.value),i=[];for(let o=0;o<n.length;o++)i[o]=n.charCodeAt(o);e.push(i)}[u.negint.major](e,t){this[u.uint.major](e,t)}[u.bytes.major](e,t){throw new Error(`${Te} unsupported type: Uint8Array`)}[u.string.major](e,t){this.prefix(e);let n=St(JSON.stringify(t.value));e.push(n.length>32?rt(n):n)}[u.array.major](e,t){this.prefix(e),this.inRecursive.push({type:u.array,elements:0}),e.push([91])}[u.map.major](e,t){this.prefix(e),this.inRecursive.push({type:u.map,elements:0}),e.push([123])}[u.tag.major](e,t){}[u.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(u.equals(s.type,u.array))e.push([93]);else if(u.equals(s.type,u.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(`${Te} 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),i=[],o=!1;for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s),!o&&(i[s]===46||i[s]===101||i[s]===69)&&(o=!0);o||(i.push(46),i.push(48)),e.push(i)}};function op(r,e){if(Array.isArray(r[0])||Array.isArray(e[0]))throw new Error(`${Te} complex map keys are not supported`);let t=r[0],n=e[0];if(t.type!==u.string||n.type!==u.string)throw new Error(`${Te} non-string map keys are not supported`);if(t<n)return-1;if(t>n)return 1;throw new Error(`${Te} unexpected duplicate map keys, this is not supported`)}var sp={addBreakTokens:!0,mapSorter:op};function Yo(r,e){return e=Object.assign({},sp,e),vn(r,new Qo,e)}var Nt=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(`${y} 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(`${y} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,i=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 p(u.uint,0,this._pos-e);if(i([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${y} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${y} unexpected token at position ${this._pos}`);n=!0,this._pos++,i([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++,i([48,49,50,51,52,53,54,55,56,57]));let o=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(o);return n?new p(u.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new p(s>=0?u.uint:u.negint,s,this._pos-e):new p(s>=0?u.uint:u.negint,BigInt(o),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${y} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let o=this._pos,s=0;o<this.data.length&&s<65536;o++,s++){let a=this.data[o];if(a===92||a<32||a>=128)break;if(a===34){let c=String.fromCharCode.apply(null,this.data.subarray(this._pos,o));return this._pos=o+1,new p(u.string,c,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${y} unexpected end of unicode escape sequence at position ${this._pos}`);let o=0;for(let s=0;s<4;s++){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(`${y} unexpected unicode escape character at position ${this._pos}`);o=o*16+a,this._pos++}return o},i=()=>{let o=this.ch(),s=null,a=o>239?4:o>223?3:o>191?2:1;if(this._pos+a>this.data.length)throw new Error(`${y} unexpected unicode sequence at position ${this._pos}`);let c,f,l,h;switch(a){case 1:o<128&&(s=o);break;case 2:c=this.data[this._pos+1],(c&192)===128&&(h=(o&31)<<6|c&63,h>127&&(s=h));break;case 3:c=this.data[this._pos+1],f=this.data[this._pos+2],(c&192)===128&&(f&192)===128&&(h=(o&15)<<12|(c&63)<<6|f&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:c=this.data[this._pos+1],f=this.data[this._pos+2],l=this.data[this._pos+3],(c&192)===128&&(f&192)===128&&(l&192)===128&&(h=(o&15)<<18|(c&63)<<12|(f&63)<<6|l&63,h>65535&&h<1114112&&(s=h))}s===null?(s=65533,a=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=a};for(;!this.done();){let o=this.ch(),s;switch(o){case 92:if(this._pos++,this.done())throw new Error(`${y} unexpected string termination at position ${this._pos}`);switch(s=this.ch(),this._pos++,s){case 34:case 39:case 92:case 47:t.push(s);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(`${y} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new p(u.string,Wa(t),this._pos-e);default:if(o<32)throw new Error(`${y} invalid control character at position ${this._pos}`);o<128?(t.push(o),this._pos++):i()}}throw new Error(`${y} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new p(u.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new p(u.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new p(u.null,null,4);case 102:return this.expect([102,97,108,115,101]),new p(u.false,!1,5);case 116:return this.expect([116,114,117,101]),new p(u.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(`${y} 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 p(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${y} 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 p(u.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 p(u.break,void 0,1);if(this.ch()!==44)throw new Error(`${y} 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 p(u.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${y} 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(`${y} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function Xo(r,e){return e=Object.assign({tokenizer:new Nt(r,e)},e),ke(r,e)}function cp(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}function up(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 p(u.map,1/0,1),new p(u.string,"/",1),new p(u.string,t,t.length),new p(u.break,void 0,1)]}function ai(r){let e=V.encode(r).slice(1);return[new p(u.map,1/0,1),new p(u.string,"/",1),new p(u.map,1/0,1),new p(u.string,"bytes",5),new p(u.string,e,e.length),new p(u.break,void 0,1),new p(u.break,void 0,1)]}function Ie(r){return ai(new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function lp(r){return ai(new Uint8Array(r))}function fp(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function hp(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 dp={typeEncoders:{Object:up,Buffer:ai,Uint8Array:ai,Int8Array:Ie,Uint16Array:Ie,Int16Array:Ie,Uint32Array:Ie,Int32Array:Ie,Float32Array:Ie,Float64Array:Ie,Uint8ClampedArray:Ie,BigInt64Array:Ie,BigUint64Array:Ie,DataView:Ie,ArrayBuffer:lp,undefined:fp,number:hp}},Zo=class extends Nt{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(u.equals(e.type,u.map)){let t=this._next();if(u.equals(t.type,u.string)&&t.value==="/"){let n=this._next();if(u.equals(n.type,u.string)){let i=this._next();if(!u.equals(i.type,u.break))throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new p(u.tag,42,0)}if(u.equals(n.type,u.map)){let i=this._next();if(u.equals(i.type,u.string)&&i.value==="bytes"){let o=this._next();if(u.equals(o.type,u.string)){for(let a=0;a<2;a++){let c=this._next();if(!u.equals(c.type,u.break))throw new Error("Invalid encoded Bytes form")}let s=V.decode(`m${o.value}`);return new p(u.bytes,s,o.value.length)}this.tokenBuffer.push(o)}this.tokenBuffer.push(i)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},du={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:{42:r=>v.parse(r())}},pp="dag-json",es=297,pu=r=>Yo(r,dp),mu=r=>{let e=cp(r),t=Object.assign(du,{tokenizer:new Zo(e,du)});return Xo(e,t)},mp=r=>yp.decode(pu(r));var yp=new TextDecoder,gp=r=>mu(wp.encode(r)),wp=new TextEncoder;var as={};F(as,{code:()=>ss,createLink:()=>Au,createNode:()=>ku,decode:()=>Dp,encode:()=>Lp,name:()=>Tp,prepare:()=>is,validate:()=>os});var bp=new TextDecoder;function rs(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 i=r[e++];if(t+=n<28?(i&127)<<n:(i&127)*2**n,i<128)break}return[t,e]}function ci(r,e){let t;[t,e]=rs(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 yu(r,e){let t;return[t,e]=rs(r,e),[t&7,t>>3,e]}function xp(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=yu(r,n),o===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) 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]=ci(r,n)}else if(o===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(i!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=ci(r,n),e.Name=bp.decode(s)}else if(o===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(i!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${i}) for Tsize`);[e.Tsize,n]=rs(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${o}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function gu(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=yu(r,t),a!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${a}`);if(c===1){if(o)throw new Error("protobuf: (PBNode) duplicate Data section");[o,t]=ci(r,t),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let f;[f,t]=ci(r,t),n.push(xp(f))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${c}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return o&&(s.Data=o),s.Links=n||[],s}var bu=new TextEncoder,wu=2**32,Ep=2**31;function vp(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=Cr(e,t,r.Tsize)-1,e[t]=24}if(typeof r.Name=="string"){let n=bu.encode(r.Name);t-=n.length,e.set(n,t),t=Cr(e,t,n.length)-1,e[t]=18}return r.Hash&&(t-=r.Hash.length,e.set(r.Hash,t),t=Cr(e,t,r.Hash.length)-1,e[t]=10),e.length-t}function xu(r){let e=kp(r),t=new Uint8Array(e),n=e;if(r.Data&&(n-=r.Data.length,t.set(r.Data,n),n=Cr(t,n,r.Data.length)-1,t[n]=10),r.Links)for(let i=r.Links.length-1;i>=0;i--){let o=vp(r.Links[i],t.subarray(0,n));n-=o,n=Cr(t,n,o)-1,t[n]=18}return t}function _p(r){let e=0;if(r.Hash){let t=r.Hash.length;e+=1+t+Rt(t)}if(typeof r.Name=="string"){let t=bu.encode(r.Name).length;e+=1+t+Rt(t)}return typeof r.Tsize=="number"&&(e+=1+Rt(r.Tsize)),e}function kp(r){let e=0;if(r.Data){let t=r.Data.length;e+=1+t+Rt(t)}if(r.Links)for(let t of r.Links){let n=_p(t);e+=1+n+Rt(n)}return e}function Cr(r,e,t){e-=Rt(t);let n=e;for(;t>=Ep;)r[e++]=t&127|128,t/=128;for(;t>=128;)r[e++]=t&127|128,t>>>=7;return r[e]=t,n}function Rt(r){return r%2===0&&r++,Math.floor((Ap(r)+6)/7)}function Ap(r){let e=0;return r>=wu&&(r=Math.floor(r/wu),e=32),r>=65536&&(r>>>=16,e+=16),r>=256&&(r>>>=8,e+=8),e+Sp[r]}var Sp=[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 Ip=["Data","Links"],Cp=["Hash","Name","Tsize"],ns=new TextEncoder;function vu(r,e){if(r===e)return 0;let t=r.Name?ns.encode(r.Name):[],n=e.Name?ns.encode(e.Name):[],i=t.length,o=n.length;for(let s=0,a=Math.min(i,o);s<a;++s)if(t[s]!==n[s]){i=t[s],o=n[s];break}return i<o?-1:o<i?1:0}function Eu(r,e){return!Object.keys(r).some(t=>!e.includes(t))}function _u(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 is(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=ns.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(_u),e.Links.sort(vu);else throw new TypeError("Invalid DAG-PB form");else e.Links=[];return e}function os(r){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array||r["/"]&&r["/"]===r.bytes)throw new TypeError("Invalid DAG-PB form");if(!Eu(r,Ip))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(!Eu(t,Cp))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&&vu(t,r.Links[e-1])===-1)throw new TypeError("Invalid DAG-PB form (links must be sorted by Name bytes)")}}function ku(r,e=[]){return is({Data:r,Links:e})}function Au(r,e,t){return _u({Hash:t,Name:r,Tsize:e})}function Su(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var Tp="dag-pb",ss=112;function Lp(r){os(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),xu(e)}function Dp(r){let e=Su(r),t=gu(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(i=>{let o={};try{o.Hash=v.decode(i.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return i.Name!==void 0&&(o.Name=i.Name),i.Tsize!==void 0&&(o.Tsize=i.Tsize),o})),n}function Je(r){return r?.then!=null}function Iu(r=[],e){let t={[ss]:as,[$t]:Ot,[Go]:Jo,[es]:ts,[Ri]:Pr};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Je(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new On(`Could not load codec for ${n}`)}}function Cu(r=[],e){let t={};return r=[Zi(),to(),Zt(),...r],r.forEach(n=>{t[n.type]=n,t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Je(o)?i=await o:i=o,t[i.type]=i,t[i.code]=i}if(i!=null)return i;throw new Kn(`Could not load crypto for ${i}`)}}function Tu(r=[],e){let t={[ze.code]:ze,[Br.code]:Br,[Ke.code]:Ke};return r.forEach(n=>{t[n.code]=n}),async n=>{let i=t[n];if(i==null&&e!=null){let o=e(n);Je(o)?i=await o:i=o,t[i.code]=i}if(i!=null)return i;throw new $n(`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 ui=0,Bt=class extends Error{static name="IdentityHashDigestTooLongError";name="IdentityHashDigestTooLongError"},li=class extends Be{child;maxDigestLength;constructor(e,t){super(),this.child=e,this.maxDigestLength=t?.maxDigestLength}put(e,t,n){if(e.multihash.code===ui){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new Bt(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return n?.signal?.throwIfAborted(),e}return this.child==null?(n?.signal?.throwIfAborted(),e):this.child.put(e,t,n)}async*get(e,t){if(e.multihash.code===ui){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new Bt(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted(),yield e.multihash.digest;return}if(this.child==null)throw t?.signal?.throwIfAborted(),new le;yield*this.child.get(e,t)}has(e,t){if(e.multihash.code===ui){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new Bt(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);return t?.signal?.throwIfAborted(),!0}return this.child==null?(t?.signal?.throwIfAborted(),!1):this.child.has(e,t)}delete(e,t){if(e.code===ui){if(this.maxDigestLength!=null&&e.multihash.digest.byteLength>this.maxDigestLength)throw new Bt(`Identity digest too long - ${e.multihash.digest.byteLength} > this.maxDigestLength`);t?.signal?.throwIfAborted();return}if(this.child!=null)return this.child.delete(e,t)}async*getAll(e){this.child!=null&&(yield*this.child.getAll(e)),e?.signal?.throwIfAborted()}};function Pp(r){return r[Symbol.asyncIterator]!=null}function Lu(r){return r?.then!=null}function Np(r,e){let t=0;if(Pp(r))return(async function*(){for await(let c of r){let f=e(c,t++);Lu(f)&&await f,yield c}})();let n=cr(r),{value:i,done:o}=n.next();if(o===!0)return(function*(){})();let s=e(i,t++);if(typeof s?.then=="function")return(async function*(){await s,yield i;for(let c of n){let f=e(c,t++);Lu(f)&&await f,yield c}})();let a=e;return(function*(){yield i;for(let c of n)a(c,t++),yield c})()}var cs=Np;var Bp=128,Ft=class{child;getHasher;log;logger;blockBrokers;constructor(e,t={}){this.log=e.logger.forComponent("helia:networked-storage"),this.logger=e.logger,this.blockBrokers=e.blockBrokers,this.child=new li(e.blockstore,{maxDigestLength:t.maxIdentityHashDigestLength??Bp}),this.getHasher=e.getHasher}async put(e,t,n={}){return await this.child.has(e,n)?(n.onProgress?.(new x("blocks:put:duplicate",e)),e):(n.onProgress?.(new x("blocks:put:providers:notify",e)),await Promise.all(this.blockBrokers.map(async i=>i.announce?.(e,n))),n.onProgress?.(new x("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=re(e,async({cid:o})=>{let s=await this.child.has(o,t);return s&&t.onProgress?.(new x("blocks:put-many:duplicate",o)),!s}),i=cs(n,async({cid:o})=>{t.onProgress?.(new x("blocks:put-many:providers:notify",o)),await Promise.all(this.blockBrokers.map(async s=>s.announce?.(o,t)))});t.onProgress?.(new x("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(i,t)}async*get(e,t={}){let n=await this.child.has(e,t),i=t.offline===!0;if(!n){if(i)throw new Er("The block was present in the blockstore and the node is running offline so cannot fetch it");let o=await this.getHasher(e.multihash.code);t?.signal?.throwIfAborted(),t.onProgress?.(new x("blocks:get:providers:get",e));let s=await Du(e,this.blockBrokers,o,{...t,log:this.log});t.onProgress?.(new x("blocks:get:blockstore:put",e)),await this.child.put(e,s,t),t.onProgress?.(new x("blocks:get:providers:notify",e)),await Promise.all(this.blockBrokers.map(async a=>a.announce?.(e,t))),yield s;return}t.onProgress?.(new x("blocks:get:blockstore:get",e)),yield*this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new x("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(cs(e,async n=>{let i=await this.child.has(n,t),o=t.offline===!0;if(!i){if(o)throw new Er("The block was present in the blockstore and the node is running offline so cannot fetch it");let s=await this.getHasher(n.multihash.code);t?.signal?.throwIfAborted(),t.onProgress?.(new x("blocks:get-many:providers:get",n));let a=await Du(n,this.blockBrokers,s,{...t,log:this.log});t.onProgress?.(new x("blocks:get-many:blockstore:put",n)),await this.child.put(n,a,t),t.onProgress?.(new x("blocks:get-many:providers:notify",n)),await Promise.all(this.blockBrokers.map(async c=>c.announce?.(n,t)))}}))}async delete(e,t={}){t.onProgress?.(new x("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new x("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 x("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}};async function Du(r,e,t,n){let i=Up(r,t),o=new AbortController,s=Se([o.signal,n.signal]);o.signal;let a=[];for(let c of e)Fp(c)&&a.push(c);if(a.length===0)throw new ot(`No block brokers capable of retrieving blocks are configured, the CID ${r} cannot be fetched from the network`);try{return await Promise.any(a.map(async c=>{try{let f=!1,l=await c.retrieve(r,{...n,signal:s,validateFn:async h=>{await i(h),n.signal?.throwIfAborted(),f=!0}});return f||(await i(l),n.signal?.throwIfAborted()),l}catch(f){throw n.log.error("could not retrieve verified block for %c from %s - %e",r,c.name,f),f}}))}catch(c){throw new Cn(c.errors,`Failed to load block for ${r}`)}finally{o.abort(),s.clear()}}function Fp(r){return typeof r.retrieve=="function"}var Up=(r,e)=>{if(e==null)throw new _t(`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,i=e.digest(t,{truncate:r.multihash.digest.byteLength});if(Je(i)?n=await i:n=i,!Re(n.digest,r.multihash.digest))throw new en("Hash of downloaded block did not match multihash from passed CID")}};var fi=class extends Ft{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 addPeer(e,t){await Promise.all(this.blockBrokers.map(n=>n.addPeer(e,t)))}async put(e,t,n={}){let i=Se([this.closeController.signal,n.signal]);try{return await super.put(e,t,{...n,signal:i})}finally{i.clear()}}async*putMany(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{yield*super.putMany(e,{...t,signal:n})}finally{n.clear()}}async*get(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{yield*super.get(e,{...t,signal:n})}finally{n.clear()}}async*getMany(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{yield*super.getMany(e,{...t,signal:n})}finally{n.clear()}}async delete(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{await super.delete(e,{...t,signal:n})}finally{n.clear()}}async*deleteMany(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{yield*super.deleteMany(e,{...t,signal:n})}finally{n.clear()}}async has(e,t={}){let n=Se([this.closeController.signal,t.signal]);try{return await super.has(e,{...t,signal:n})}finally{n.clear()}}async*getAll(e={}){let t=Se([this.closeController.signal,e.signal]);try{yield*super.getAll({...e,signal:t})}finally{t.clear()}}};var hi=class extends Ft{started;constructor(e,t={}){super(e,t),this.started=!1}isStarted(){return this.started}async start(){await qe(this.child,...this.blockBrokers),this.started=!0}async stop(){await je(this.child,...this.blockBrokers),this.started=!1}unwrap(){return this.child}createSession(e,t){if(this.blockBrokers.length===0)throw new ot("No block brokers configured");let n=this.blockBrokers.map(i=>i.createSession?.(t)).filter(i=>i!=null);if(n.length===0)throw new ot(`No configured block brokers support sessions - tried ${this.blockBrokers.map(i=>i.name).join(", ")}`);return new fi({blockstore:this.child,blockBrokers:n,getHasher:this.getHasher,logger:this.logger},{root:e})}};var di=class extends ue{initialPeerSearchComplete;requests;logName;log;logger;minProviders;maxProviders;providers;evictionFilter;initialProviders;cidPeerFilterSize;constructor(e,t){super(),this.logName=t.name,this.logger=e.logger,this.log=e.logger.forComponent(this.logName),this.requests=new Map,this.minProviders=t.minProviders??1,this.maxProviders=t.maxProviders??5,this.cidPeerFilterSize=t.cidPeerFilterSize??100,this.providers=[],this.evictionFilter=Ln(this.maxProviders),this.initialProviders=[...t.providers??[]]}async retrieve(e,t={}){let n=V.encode(e.multihash.bytes),i=this.requests.get(n);if(i!=null)return this.log("join existing request for %c",e),i.observers++,i.promise;let o=X(),s={promise:o.promise,observers:1,queryFilter:Ln(this.cidPeerFilterSize)};this.requests.set(n,s);let a=!1;this.initialPeerSearchComplete==null&&(a=!0,this.log=this.logger.forComponent(`${this.logName}:${e}`),this.initialPeerSearchComplete=this.findProviders(e,this.minProviders,t));let c=!1,f=new De({concurrency:this.maxProviders});f.addEventListener("failure",d=>{this.log.error("error querying provider %s, evicting from session - %e",d.detail.job.options.provider,d.detail.error),this.evict(d.detail.job.options.provider)}),f.addEventListener("success",d=>{c=!0,o.resolve(d.detail.result)}),f.addEventListener("idle",()=>{if(c){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 d=0;d<this.minProviders&&this.providers.length!==0;d++){let g=this.providers[Math.floor(Math.random()*this.providers.length)];this.evict(g)}await this.findProviders(e,this.minProviders,t),this.log("found new providers re-retrieving %c",e),this.requests.delete(n),o.resolve(await this.retrieve(e,t))}).catch(d=>{this.log.error("could not find new providers for %c - %e",e,d),o.reject(d)})});let l=d=>{let g=this.toFilterKey(d.detail);s.queryFilter.has(g)||(s.queryFilter.add(g),this.emitFoundProviderProgressEvent(e,d.detail,t),f.add(async()=>this.queryProvider(e,d.detail,t),{provider:d.detail}).catch(w=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c - %e",e,w)}))};if(this.addEventListener("provider",l),a)try{await Ve(this.initialPeerSearchComplete,t.signal),a&&this.log("found initial session peers for %c",e)}catch(d){throw a&&this.log("failed to find initial session peers for %c - %e",e,d),this.requests.delete(n),s.observers>1&&o.reject(d),d}Promise.all([...this.providers].filter(d=>{let g=this.toFilterKey(d),w=s.queryFilter.has(g);return w||s.queryFilter.add(this.toFilterKey(d)),!w}).map(async d=>f.add(async()=>this.queryProvider(e,d,t),{provider:d}))).catch(d=>{t.signal?.aborted!==!0&&this.log.error("error retrieving session block for %c - %e",e,d)});let h=()=>{o.reject(new xe(t.signal?.reason??"Session aborted")),f.abort()};t.signal?.addEventListener("abort",h);try{return await o.promise}finally{this.removeEventListener("provider",l),t.signal?.removeEventListener("abort",h),f.clear(),this.requests.delete(n)}}evict(e){this.evictionFilter.add(this.toFilterKey(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.toFilterKey(e))}hasProvider(e){return!!(this.providers.find(t=>this.equals(t,e))!=null||this.isEvicted(e))}async addPeer(e,t){let n=await this.convertToProvider(e,"manually-added",t);n==null||this.hasProvider(n)||(this.providers.push(n),this.safeDispatchEvent("provider",{detail:n}))}async findProviders(e,t,n){let i=X(),o=0;return Promise.resolve().then(async()=>{this.log("finding %d-%d new provider(s) for %c - %d initial providers",t,this.maxProviders,e,this.initialProviders.length);let s=this,a=async function*(){for(;s.initialProviders.length>0;){let f=s.initialProviders.pop();if(f==null)continue;let l=await s.convertToProvider(f,"manual",n);l!=null&&(yield l)}},c=async function*(){yield*a(),yield*s.findNewProviders(e,n)};for await(let f of c()){if(this.providers.length===this.maxProviders||n.signal?.aborted===!0)break;if(!this.hasProvider(f)&&(this.log("found %d providers, %d in session",o,this.providers.length),this.providers.push(f),this.safeDispatchEvent("provider",{detail:f}),o++,this.providers.length===t&&(this.log("session is ready with %d peer(s), new peers present",this.providers.length),i.resolve()),this.providers.length===this.maxProviders)){this.log("found max session peers %d",this.providers.length);break}}if(this.log("found %d new session peers while trying to find %d, %d in session",o,t,this.providers.length),this.providers.length<t)throw new Mn(`Found ${o} of ${t} ${this.name} providers for ${e}, ${this.providers.length} in session after evictions`)}).catch(s=>{this.log.error("error searching routing for potential session peers for %c - %e",e,s),i.reject(s)}),i.promise}};function Pu(r){return r==null?!1:v.asCID(r)!=null}var us=class{info;blockstore;datastore;events;pins;logger;routing;getCodec;getHasher;getCrypto;dns;keychain;metrics;status;log;blockBrokers;mixins;constructor(e){this.info={name:e.name,version:e.version},this.logger=e.logger??Ra(),this.log=this.logger.forComponent("helia"),this.getHasher=Tu(e.hashers,e.loadHasher),this.getCodec=Iu(e.codecs,e.loadCodec),this.getCrypto=Cu(e.cryptos,e.loadCrypto),this.dns=e.dns??Ta(),this.metrics=e.metrics,this.events=new ue,this.status="stopped",this.mixins=[];let t={blockstore:e.blockstore??new sr,datastore:e.datastore??new lr,logger:this.logger,blockBrokers:[],getHasher:this.getHasher,getCodec:this.getCodec,getCrypto:this.getCrypto,dns:this.dns,metrics:this.metrics,...e.components??{}};this.keychain=t.keychain=ba()(t),this.routing=t.routing=new zn(t,{routers:(e.routers??[]).flatMap(i=>(typeof i=="function"&&(i=i(t)),[i])),providerLookupConcurrency:e.providerLookupConcurrency}),this.blockBrokers=t.blockBrokers=(e.blockBrokers??[]).map(i=>(typeof i=="function"&&(i=i(t)),i));let n=new hi(t,e);this.pins=new Un(t.datastore,n,this.getCodec),this.blockstore=new si(n,this.pins,this.routing,{holdGcLock:e.holdGcLock??!0}),this.datastore=t.datastore}hasRouter(e){return this.routing.hasRouter(e)}addRouter(e){this.routing.addRouter(e)}hasBlockBroker(e){return this.blockBrokers.findIndex(t=>t.name===e)!==-1}addBlockBroker(e){this.blockBrokers.push(e)}addMixin(e){this.mixins.push(e)}async start(){this.status="starting",await lu(this.datastore),await qe(this.blockstore,this.datastore,this.routing,...this.blockBrokers);for(let e of this.mixins)await e.start?.(this);return this.status="started",this.events.dispatchEvent(new CustomEvent("start",{detail:this})),this}async stop(){this.status="stopping";for(let e of this.mixins)await e.stop?.(this);return await je(this.blockstore,this.datastore,this.routing,...this.blockBrokers),this.status="stopped",this.events.dispatchEvent(new CustomEvent("stop",{detail:this})),this}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,i=this.blockstore.unwrap();this.log("gc start"),await ur(i.deleteMany((async function*(){for await(let{cid:o}of i.getAll())try{if(await n.pins.isPinned(o,e))continue;yield o,e.onProgress?.(new x("helia:gc:deleted",o))}catch(s){n.log.error("error during gc - %e",s),e.onProgress?.(new x("helia:gc:error",s))}})()))}finally{t()}this.log("gc finished")}};return $u(Kp);})();
|
|
4
24
|
return HeliaUtils}));
|
|
5
25
|
//# sourceMappingURL=index.min.js.map
|