helia 0.0.0-031ca73
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/LICENSE +4 -0
- package/README.md +59 -0
- package/dist/index.min.js +3 -0
- package/dist/src/helia.d.ts +18 -0
- package/dist/src/helia.d.ts.map +1 -0
- package/dist/src/helia.js +101 -0
- package/dist/src/helia.js.map +1 -0
- package/dist/src/index.d.ts +77 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +38 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/pins.d.ts +17 -0
- package/dist/src/pins.d.ts.map +1 -0
- package/dist/src/pins.js +181 -0
- package/dist/src/pins.js.map +1 -0
- package/dist/src/storage.d.ts +66 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +178 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/utils/dag-walkers.d.ts +22 -0
- package/dist/src/utils/dag-walkers.d.ts.map +1 -0
- package/dist/src/utils/dag-walkers.js +145 -0
- package/dist/src/utils/dag-walkers.js.map +1 -0
- package/dist/src/utils/datastore-version.d.ts +3 -0
- package/dist/src/utils/datastore-version.d.ts.map +1 -0
- package/dist/src/utils/datastore-version.js +19 -0
- package/dist/src/utils/datastore-version.js.map +1 -0
- package/package.json +176 -0
- package/src/helia.ts +117 -0
- package/src/index.ts +94 -0
- package/src/pins.ts +238 -0
- package/src/storage.ts +214 -0
- package/src/utils/dag-walkers.ts +169 -0
- package/src/utils/datastore-version.ts +23 -0
package/LICENSE
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://github.com/ipfs/helia" title="Helia">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/ipfs/helia/main/assets/helia.png" alt="Helia logo" width="300" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
# helia <!-- omit in toc -->
|
|
8
|
+
|
|
9
|
+
[](https://ipfs.tech)
|
|
10
|
+
[](https://discuss.ipfs.tech)
|
|
11
|
+
[](https://codecov.io/gh/ipfs/helia)
|
|
12
|
+
[](https://github.com/ipfs/helia/actions/workflows/main.yml?query=branch%3Amain)
|
|
13
|
+
|
|
14
|
+
> An implementation of IPFS in JavaScript
|
|
15
|
+
|
|
16
|
+
## Table of contents <!-- omit in toc -->
|
|
17
|
+
|
|
18
|
+
- [Install](#install)
|
|
19
|
+
- [Browser `<script>` tag](#browser-script-tag)
|
|
20
|
+
- [API Docs](#api-docs)
|
|
21
|
+
- [License](#license)
|
|
22
|
+
- [Contribute](#contribute)
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```console
|
|
27
|
+
$ npm i helia
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Browser `<script>` tag
|
|
31
|
+
|
|
32
|
+
Loading this module through a script tag will make it's exports available as `Helia` in the global namespace.
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<script src="https://unpkg.com/helia/dist/index.min.js"></script>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## API Docs
|
|
39
|
+
|
|
40
|
+
- <https://ipfs.github.io/helia/modules/helia.html>
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
Licensed under either of
|
|
45
|
+
|
|
46
|
+
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
47
|
+
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
|
48
|
+
|
|
49
|
+
## Contribute
|
|
50
|
+
|
|
51
|
+
Contributions welcome! Please check out [the issues](https://github.com/ipfs/helia/issues).
|
|
52
|
+
|
|
53
|
+
Also see our [contributing document](https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md) for more information on how we work, and about contributing in general.
|
|
54
|
+
|
|
55
|
+
Please be aware that all interactions related to this repo are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
|
|
56
|
+
|
|
57
|
+
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
|
58
|
+
|
|
59
|
+
[](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Helia = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
+
"use strict";var Helia=(()=>{var Vu=Object.create;var yr=Object.defineProperty;var Gu=Object.getOwnPropertyDescriptor;var Ku=Object.getOwnPropertyNames;var Qu=Object.getPrototypeOf,Xu=Object.prototype.hasOwnProperty;var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),V=(r,e)=>{for(var t in e)yr(r,t,{get:e[t],enumerable:!0})},go=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ku(e))!Xu.call(r,i)&&i!==t&&yr(r,i,{get:()=>e[i],enumerable:!(n=Gu(e,i))||n.enumerable});return r};var F=(r,e,t)=>(t=r!=null?Vu(Qu(r)):{},go(e||!r||!r.__esModule?yr(t,"default",{value:r,enumerable:!0}):t,r)),Ju=r=>go(yr({},"__esModule",{value:!0}),r);var Oo=T((Qd,Fo)=>{Fo.exports=Uo;var Mo=128,Fl=127,Ol=~Fl,Rl=Math.pow(2,31);function Uo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Rl;)e[t++]=r&255|Mo,r/=128;for(;r&Ol;)e[t++]=r&255|Mo,r>>>=7;return e[t]=r|0,Uo.bytes=t-n+1,e}});var $o=T((Xd,zo)=>{zo.exports=jn;var zl=128,Ro=127;function jn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw jn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&Ro)<<i:(s&Ro)*Math.pow(2,i),i+=7}while(s>=zl);return jn.bytes=o-n,t}});var Ho=T((Jd,Wo)=>{var $l=Math.pow(2,7),Wl=Math.pow(2,14),Hl=Math.pow(2,21),jl=Math.pow(2,28),ql=Math.pow(2,35),Vl=Math.pow(2,42),Gl=Math.pow(2,49),Kl=Math.pow(2,56),Ql=Math.pow(2,63);Wo.exports=function(r){return r<$l?1:r<Wl?2:r<Hl?3:r<jl?4:r<ql?5:r<Vl?6:r<Gl?7:r<Kl?8:r<Ql?9:10}});var qo=T((Zd,jo)=>{jo.exports={encode:Oo(),decode:$o(),encodingLength:Ho()}});var Ko=T((Yd,Go)=>{"use strict";var Vo=qo();Go.exports=r=>{if(!(r instanceof Uint8Array))throw new Error("arg needs to be a Uint8Array");let e=[];for(;r.length>0;){let t=Vo.decode(r);e.push(t),r=r.slice(Vo.decode.bytes)}return e}});var Jo=T((ep,Xo)=>{Xo.exports=qn;var Qo=128,Xl=127,Jl=~Xl,Zl=Math.pow(2,31);function qn(r,e,t){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw qn.bytes=0,new RangeError("Could not encode varint");e=e||[],t=t||0;for(var n=t;r>=Zl;)e[t++]=r&255|Qo,r/=128;for(;r&Jl;)e[t++]=r&255|Qo,r>>>=7;return e[t]=r|0,qn.bytes=t-n+1,e}});var es=T((tp,Yo)=>{Yo.exports=Vn;var Yl=128,Zo=127;function Vn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a||i>49)throw Vn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&Zo)<<i:(s&Zo)*Math.pow(2,i),i+=7}while(s>=Yl);return Vn.bytes=o-n,t}});var rs=T((rp,ts)=>{var ef=Math.pow(2,7),tf=Math.pow(2,14),rf=Math.pow(2,21),nf=Math.pow(2,28),of=Math.pow(2,35),sf=Math.pow(2,42),af=Math.pow(2,49),cf=Math.pow(2,56),uf=Math.pow(2,63);ts.exports=function(r){return r<ef?1:r<tf?2:r<rf?3:r<nf?4:r<of?5:r<sf?6:r<af?7:r<cf?8:r<uf?9:10}});var is=T((np,ns)=>{ns.exports={encode:Jo(),decode:es(),encodingLength:rs()}});var as=T((op,ss)=>{var yt=1e3,gt=yt*60,wt=gt*60,Ke=wt*24,ff=Ke*7,hf=Ke*365.25;ss.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return df(r);if(t==="number"&&isFinite(r))return e.long?mf(r):pf(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function df(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*hf;case"weeks":case"week":case"w":return t*ff;case"days":case"day":case"d":return t*Ke;case"hours":case"hour":case"hrs":case"hr":case"h":return t*wt;case"minutes":case"minute":case"mins":case"min":case"m":return t*gt;case"seconds":case"second":case"secs":case"sec":case"s":return t*yt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function pf(r){var e=Math.abs(r);return e>=Ke?Math.round(r/Ke)+"d":e>=wt?Math.round(r/wt)+"h":e>=gt?Math.round(r/gt)+"m":e>=yt?Math.round(r/yt)+"s":r+"ms"}function mf(r){var e=Math.abs(r);return e>=Ke?wr(r,e,Ke,"day"):e>=wt?wr(r,e,wt,"hour"):e>=gt?wr(r,e,gt,"minute"):e>=yt?wr(r,e,yt,"second"):r+" ms"}function wr(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var us=T((sp,cs)=>{function yf(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=i,t.enabled=s,t.humanize=as(),t.destroy=u,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){let h,d=null,x,y;function g(...k){if(!g.enabled)return;let P=g,U=Number(new Date),ne=U-(h||U);P.diff=ne,P.prev=h,P.curr=U,h=U,k[0]=t.coerce(k[0]),typeof k[0]!="string"&&k.unshift("%O");let $=0;k[0]=k[0].replace(/%([a-zA-Z%])/g,(ie,K)=>{if(ie==="%%")return"%";$++;let oe=t.formatters[K];if(typeof oe=="function"){let lt=k[$];ie=oe.call(P,lt),k.splice($,1),$--}return ie}),t.formatArgs.call(P,k),(P.log||t.log).apply(P,k)}return g.namespace=l,g.useColors=t.useColors(),g.color=t.selectColor(l),g.extend=n,g.destroy=t.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(x!==t.namespaces&&(x=t.namespaces,y=t.enabled(l)),y),set:k=>{d=k}}),typeof t.init=="function"&&t.init(g),g}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,]+/),x=d.length;for(h=0;h<x;h++)d[h]&&(l=d[h].replace(/\*/g,".*?"),l[0]==="-"?t.skips.push(new RegExp("^"+l.slice(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 u(){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.enable(t.load()),t}cs.exports=yf});var ls=T((Q,br)=>{Q.formatArgs=wf;Q.save=bf;Q.load=_f;Q.useColors=gf;Q.storage=vf();Q.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Q.colors=["#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 gf(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function wf(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+br.exports.humanize(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)}Q.log=console.debug||console.log||(()=>{});function bf(r){try{r?Q.storage.setItem("debug",r):Q.storage.removeItem("debug")}catch{}}function _f(){let r;try{r=Q.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function vf(){try{return localStorage}catch{}}br.exports=us()(Q);var{formatters:xf}=br.exports;xf.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var hs=T((xp,fs)=>{"use strict";fs.exports=Sf;function Sf(r,e){for(var t=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)t[n++]=arguments[i++];return new Promise(function(a,c){t[n]=function(l){if(o)if(o=!1,l)c(l);else{for(var h=new Array(arguments.length-1),d=0;d<h.length;)h[d++]=arguments[d];a.apply(null,h)}};try{r.apply(e||null,t)}catch(u){o&&(o=!1,c(u))}})}});var ys=T(ms=>{"use strict";var xr=ms;xr.length=function(e){var t=e.length;if(!t)return 0;for(var n=0;--t%4>1&&e.charAt(t)==="=";)++n;return Math.ceil(e.length*3)/4-n};var bt=new Array(64),ps=new Array(123);for(fe=0;fe<64;)ps[bt[fe]=fe<26?fe+65:fe<52?fe+71:fe<62?fe-4:fe-59|43]=fe++;var fe;xr.encode=function(e,t,n){for(var i=null,o=[],s=0,a=0,c;t<n;){var u=e[t++];switch(a){case 0:o[s++]=bt[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=bt[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=bt[c|u>>6],o[s++]=bt[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=bt[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var ds="invalid encoding";xr.decode=function(e,t,n){for(var i=n,o=0,s,a=0;a<e.length;){var c=e.charCodeAt(a++);if(c===61&&o>1)break;if((c=ps[c])===void 0)throw Error(ds);switch(o){case 0:s=c,o=1;break;case 1:t[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:t[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:t[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(ds);return n-i};xr.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var ws=T((Ep,gs)=>{"use strict";gs.exports=kr;function kr(){this._listeners={}}kr.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this};kr.prototype.off=function(e,t){if(e===void 0)this._listeners={};else if(t===void 0)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i<n.length;)n[i].fn===t?n.splice(i,1):++i;return this};kr.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,n)}return this}});var Ts=T((Tp,Es)=>{"use strict";Es.exports=bs(bs);function bs(r){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),t=new Uint8Array(e.buffer),n=t[3]===128;function i(c,u,l){e[0]=c,u[l]=t[0],u[l+1]=t[1],u[l+2]=t[2],u[l+3]=t[3]}function o(c,u,l){e[0]=c,u[l]=t[3],u[l+1]=t[2],u[l+2]=t[1],u[l+3]=t[0]}r.writeFloatLE=n?i:o,r.writeFloatBE=n?o:i;function s(c,u){return t[0]=c[u],t[1]=c[u+1],t[2]=c[u+2],t[3]=c[u+3],e[0]}function a(c,u){return t[3]=c[u],t[2]=c[u+1],t[1]=c[u+2],t[0]=c[u+3],e[0]}r.readFloatLE=n?s:a,r.readFloatBE=n?a:s}():function(){function e(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,o,s)}}r.writeFloatLE=e.bind(null,_s),r.writeFloatBE=e.bind(null,vs);function t(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,u=s&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}r.readFloatLE=t.bind(null,xs),r.readFloatBE=t.bind(null,ks)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),t=new Uint8Array(e.buffer),n=t[7]===128;function i(c,u,l){e[0]=c,u[l]=t[0],u[l+1]=t[1],u[l+2]=t[2],u[l+3]=t[3],u[l+4]=t[4],u[l+5]=t[5],u[l+6]=t[6],u[l+7]=t[7]}function o(c,u,l){e[0]=c,u[l]=t[7],u[l+1]=t[6],u[l+2]=t[5],u[l+3]=t[4],u[l+4]=t[3],u[l+5]=t[2],u[l+6]=t[1],u[l+7]=t[0]}r.writeDoubleLE=n?i:o,r.writeDoubleBE=n?o:i;function s(c,u){return t[0]=c[u],t[1]=c[u+1],t[2]=c[u+2],t[3]=c[u+3],t[4]=c[u+4],t[5]=c[u+5],t[6]=c[u+6],t[7]=c[u+7],e[0]}function a(c,u){return t[7]=c[u],t[6]=c[u+1],t[5]=c[u+2],t[4]=c[u+3],t[3]=c[u+4],t[2]=c[u+5],t[1]=c[u+6],t[0]=c[u+7],e[0]}r.readDoubleLE=n?s:a,r.readDoubleBE=n?a:s}():function(){function e(n,i,o,s,a,c){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+o);else{var l;if(s<22250738585072014e-324)l=s/5e-324,n(l>>>0,a,c+i),n((u<<31|l/4294967296)>>>0,a,c+o);else{var h=Math.floor(Math.log(s)/Math.LN2);h===1024&&(h=1023),l=s*Math.pow(2,-h),n(l*4503599627370496>>>0,a,c+i),n((u<<31|h+1023<<20|l*1048576&1048575)>>>0,a,c+o)}}}r.writeDoubleLE=e.bind(null,_s,0,4),r.writeDoubleBE=e.bind(null,vs,4,0);function t(n,i,o,s,a){var c=n(s,a+i),u=n(s,a+o),l=(u>>31)*2+1,h=u>>>20&2047,d=4294967296*(u&1048575)+c;return h===2047?d?NaN:l*(1/0):h===0?l*5e-324*d:l*Math.pow(2,h-1075)*(d+4503599627370496)}r.readDoubleLE=t.bind(null,xs,0,4),r.readDoubleBE=t.bind(null,ks,4,0)}(),r}function _s(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 vs(r,e,t){e[t]=r>>>24,e[t+1]=r>>>16&255,e[t+2]=r>>>8&255,e[t+3]=r&255}function xs(r,e){return(r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24)>>>0}function ks(r,e){return(r[e]<<24|r[e+1]<<16|r[e+2]<<8|r[e+3])>>>0}});var Ss=T((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var Bs=T(As=>{"use strict";var Kn=As;Kn.length=function(e){for(var t=0,n=0,i=0;i<e.length;++i)n=e.charCodeAt(i),n<128?t+=1:n<2048?t+=2:(n&64512)===55296&&(e.charCodeAt(i+1)&64512)===56320?(++i,t+=4):t+=3;return t};Kn.read=function(e,t,n){var i=n-t;if(i<1)return"";for(var o=null,s=[],a=0,c;t<n;)c=e[t++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|e[t++]&63:c>239&&c<365?(c=((c&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(e[t++]&63)<<6|e[t++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};Kn.write=function(e,t,n){for(var i=n,o,s,a=0;a<e.length;++a)o=e.charCodeAt(a),o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=o&63|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=o&63|128);return n-i}});var Ls=T((Ap,Cs)=>{"use strict";Cs.exports=Af;function Af(r,e,t){var n=t||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return r(c);s+c>n&&(o=r(n),s=0);var u=e.call(o,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var Ns=T((Bp,Ps)=>{"use strict";Ps.exports=O;var $t=Ze();function O(r,e){this.lo=r>>>0,this.hi=e>>>0}var Je=O.zero=new O(0,0);Je.toNumber=function(){return 0};Je.zzEncode=Je.zzDecode=function(){return this};Je.length=function(){return 1};var Bf=O.zeroHash="\0\0\0\0\0\0\0\0";O.fromNumber=function(e){if(e===0)return Je;var t=e<0;t&&(e=-e);var 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 O(n,i)};O.from=function(e){if(typeof e=="number")return O.fromNumber(e);if($t.isString(e))if($t.Long)e=$t.Long.fromString(e);else return O.fromNumber(parseInt(e,10));return e.low||e.high?new O(e.low>>>0,e.high>>>0):Je};O.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=~this.lo+1>>>0,n=~this.hi>>>0;return t||(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296};O.prototype.toLong=function(e){return $t.Long?new $t.Long(this.lo|0,this.hi|0,Boolean(e)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(e)}};var Me=String.prototype.charCodeAt;O.fromHash=function(e){return e===Bf?Je:new O((Me.call(e,0)|Me.call(e,1)<<8|Me.call(e,2)<<16|Me.call(e,3)<<24)>>>0,(Me.call(e,4)|Me.call(e,5)<<8|Me.call(e,6)<<16|Me.call(e,7)<<24)>>>0)};O.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};O.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};O.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};O.prototype.length=function(){var 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}});var Ze=T(Qn=>{"use strict";var _=Qn;_.asPromise=hs();_.base64=ys();_.EventEmitter=ws();_.float=Ts();_.inquire=Ss();_.utf8=Bs();_.pool=Ls();_.LongBits=Ns();_.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);_.global=_.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Qn;_.emptyArray=Object.freeze?Object.freeze([]):[];_.emptyObject=Object.freeze?Object.freeze({}):{};_.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};_.isString=function(e){return typeof e=="string"||e instanceof String};_.isObject=function(e){return e&&typeof e=="object"};_.isset=_.isSet=function(e,t){var n=e[t];return n!=null&&e.hasOwnProperty(t)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};_.Buffer=function(){try{var r=_.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();_._Buffer_from=null;_._Buffer_allocUnsafe=null;_.newBuffer=function(e){return typeof e=="number"?_.Buffer?_._Buffer_allocUnsafe(e):new _.Array(e):_.Buffer?_._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};_.Array=typeof Uint8Array<"u"?Uint8Array:Array;_.Long=_.global.dcodeIO&&_.global.dcodeIO.Long||_.global.Long||_.inquire("long");_.key2Re=/^true|false|0|1$/;_.key32Re=/^-?(?:0|[1-9][0-9]*)$/;_.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;_.longToHash=function(e){return e?_.LongBits.from(e).toHash():_.LongBits.zeroHash};_.longFromHash=function(e,t){var n=_.LongBits.fromHash(e);return _.Long?_.Long.fromBits(n.lo,n.hi,t):n.toNumber(Boolean(t))};function Ds(r,e,t){for(var n=Object.keys(e),i=0;i<n.length;++i)(r[n[i]]===void 0||!t)&&(r[n[i]]=e[n[i]]);return r}_.merge=Ds;_.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Is(r){function e(t,n){if(!(this instanceof e))return new e(t,n);Object.defineProperty(this,"message",{get:function(){return t}}),Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&Ds(this,n)}return e.prototype=Object.create(Error.prototype,{constructor:{value:e,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),e}_.newError=Is;_.ProtocolError=Is("ProtocolError");_.oneOfGetter=function(e){for(var t={},n=0;n<e.length;++n)t[e[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(t[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};_.oneOfSetter=function(e){return function(t){for(var n=0;n<e.length;++n)e[n]!==t&&delete this[e[n]]}};_.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};_._configure=function(){var r=_.Buffer;if(!r){_._Buffer_from=_._Buffer_allocUnsafe=null;return}_._Buffer_from=r.from!==Uint8Array.from&&r.from||function(t,n){return new r(t,n)},_._Buffer_allocUnsafe=r.allocUnsafe||function(t){return new r(t)}}});var Zn=T((Lp,Rs)=>{"use strict";Rs.exports=I;var ge=Ze(),Jn,Fs=ge.LongBits,Cf=ge.utf8;function he(r,e){return RangeError("index out of range: "+r.pos+" + "+(e||1)+" > "+r.len)}function I(r){this.buf=r,this.pos=0,this.len=r.length}var Ms=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new I(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new I(e);throw Error("illegal buffer")},Os=function(){return ge.Buffer?function(t){return(I.create=function(i){return ge.Buffer.isBuffer(i)?new Jn(i):Ms(i)})(t)}:Ms};I.create=Os();I.prototype._slice=ge.Array.prototype.subarray||ge.Array.prototype.slice;I.prototype.uint32=function(){var e=4294967295;return function(){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,he(this,10);return e}}();I.prototype.int32=function(){return this.uint32()|0};I.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Xn(){var r=new Fs(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw he(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,r}if(this.len-this.pos>4){for(;e<5;++e)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;e<5;++e){if(this.pos>=this.len)throw he(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}I.prototype.bool=function(){return this.uint32()!==0};function Er(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}I.prototype.fixed32=function(){if(this.pos+4>this.len)throw he(this,4);return Er(this.buf,this.pos+=4)};I.prototype.sfixed32=function(){if(this.pos+4>this.len)throw he(this,4);return Er(this.buf,this.pos+=4)|0};function Us(){if(this.pos+8>this.len)throw he(this,8);return new Fs(Er(this.buf,this.pos+=4),Er(this.buf,this.pos+=4))}I.prototype.float=function(){if(this.pos+4>this.len)throw he(this,4);var e=ge.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};I.prototype.double=function(){if(this.pos+8>this.len)throw he(this,4);var e=ge.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};I.prototype.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw he(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,n):t===n?new this.buf.constructor(0):this._slice.call(this.buf,t,n)};I.prototype.string=function(){var e=this.bytes();return Cf.read(e,0,e.length)};I.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw he(this,e);this.pos+=e}else do if(this.pos>=this.len)throw he(this);while(this.buf[this.pos++]&128);return this};I.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};I._configure=function(r){Jn=r,I.create=Os(),Jn._configure();var e=ge.Long?"toLong":"toNumber";ge.merge(I.prototype,{int64:function(){return Xn.call(this)[e](!1)},uint64:function(){return Xn.call(this)[e](!0)},sint64:function(){return Xn.call(this).zzDecode()[e](!1)},fixed64:function(){return Us.call(this)[e](!0)},sfixed64:function(){return Us.call(this)[e](!1)}})}});var Hs=T((Pp,Ws)=>{"use strict";Ws.exports=Ye;var $s=Zn();(Ye.prototype=Object.create($s.prototype)).constructor=Ye;var zs=Ze();function Ye(r){$s.call(this,r)}Ye._configure=function(){zs.Buffer&&(Ye.prototype._slice=zs.Buffer.prototype.slice)};Ye.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};Ye._configure()});var oi=T((Np,Gs)=>{"use strict";Gs.exports=S;var ae=Ze(),Yn,Tr=ae.LongBits,js=ae.base64,qs=ae.utf8;function Wt(r,e,t){this.fn=r,this.len=e,this.next=void 0,this.val=t}function ti(){}function Lf(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function S(){this.len=0,this.head=new Wt(ti,0,0),this.tail=this.head,this.states=null}var Vs=function(){return ae.Buffer?function(){return(S.create=function(){return new Yn})()}:function(){return new S}};S.create=Vs();S.alloc=function(e){return new ae.Array(e)};ae.Array!==Array&&(S.alloc=ae.pool(S.alloc,ae.Array.prototype.subarray));S.prototype._push=function(e,t,n){return this.tail=this.tail.next=new Wt(e,t,n),this.len+=t,this};function ri(r,e,t){e[t]=r&255}function Pf(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}function ni(r,e){this.len=r,this.next=void 0,this.val=e}ni.prototype=Object.create(Wt.prototype);ni.prototype.fn=Pf;S.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new ni((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};S.prototype.int32=function(e){return e<0?this._push(ii,10,Tr.fromNumber(e)):this.uint32(e)};S.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function ii(r,e,t){for(;r.hi;)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}S.prototype.uint64=function(e){var t=Tr.from(e);return this._push(ii,t.length(),t)};S.prototype.int64=S.prototype.uint64;S.prototype.sint64=function(e){var t=Tr.from(e).zzEncode();return this._push(ii,t.length(),t)};S.prototype.bool=function(e){return this._push(ri,1,e?1:0)};function ei(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}S.prototype.fixed32=function(e){return this._push(ei,4,e>>>0)};S.prototype.sfixed32=S.prototype.fixed32;S.prototype.fixed64=function(e){var t=Tr.from(e);return this._push(ei,4,t.lo)._push(ei,4,t.hi)};S.prototype.sfixed64=S.prototype.fixed64;S.prototype.float=function(e){return this._push(ae.float.writeFloatLE,4,e)};S.prototype.double=function(e){return this._push(ae.float.writeDoubleLE,8,e)};var Nf=ae.Array.prototype.set?function(e,t,n){t.set(e,n)}:function(e,t,n){for(var i=0;i<e.length;++i)t[n+i]=e[i]};S.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this._push(ri,1,0);if(ae.isString(e)){var n=S.alloc(t=js.length(e));js.decode(e,n,0),e=n}return this.uint32(t)._push(Nf,t,e)};S.prototype.string=function(e){var t=qs.length(e);return t?this.uint32(t)._push(qs.write,t,e):this._push(ri,1,0)};S.prototype.fork=function(){return this.states=new Lf(this),this.head=this.tail=new Wt(ti,0,0),this.len=0,this};S.prototype.reset=function(){return this.states?(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 Wt(ti,0,0),this.len=0),this};S.prototype.ldelim=function(){var e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=t,this.len+=n),this};S.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t};S._configure=function(r){Yn=r,S.create=Vs(),Yn._configure()}});var Xs=T((Dp,Qs)=>{"use strict";Qs.exports=we;var Ks=oi();(we.prototype=Object.create(Ks.prototype)).constructor=we;var Ue=Ze();function we(){Ks.call(this)}we._configure=function(){we.alloc=Ue._Buffer_allocUnsafe,we.writeBytesBuffer=Ue.Buffer&&Ue.Buffer.prototype instanceof Uint8Array&&Ue.Buffer.prototype.set.name==="set"?function(e,t,n){t.set(e,n)}:function(e,t,n){if(e.copy)e.copy(t,n,0,e.length);else for(var i=0;i<e.length;)t[n++]=e[i++]}};we.prototype.bytes=function(e){Ue.isString(e)&&(e=Ue._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(we.writeBytesBuffer,t,e),this};function Df(r,e,t){r.length<40?Ue.utf8.write(r,e,t):e.utf8Write?e.utf8Write(r,t):e.write(r,t)}we.prototype.string=function(e){var t=Ue.Buffer.byteLength(e);return this.uint32(t),t&&this._push(Df,t,e),this};we._configure()});var Mr=T((Km,ha)=>{"use strict";function fa(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function Qf(r,e,t){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return fa(r,t)}catch{t.message=r.message,t.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),fa(new i,t)}}ha.exports=Qf});var ga=T((fy,ya)=>{"use strict";ya.exports=function(){return Date.now()}});var ba=T((hy,wa)=>{"use strict";var Or=ga(),gi=class{constructor(e,t,n){let i=this;this._started=Or(),this._rescheduled=0,this._scheduled=t,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(Or()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,e.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,t)}reschedule(e){e||(e=this._scheduled);let t=Or();t+e-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(e)):this._triggered?this._schedule(e):(this._started=t,this._rescheduled=e)}_schedule(e){this._triggered=!1,this._started=Or(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function rh(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let r;if(arguments.length>0){r=new Array(arguments.length-2);for(var e=0;e<r.length;e++)r[e]=arguments[e+2]}return new gi(arguments[0],arguments[1],r)}wa.exports=rh});var xa=T((dy,va)=>{"use strict";var{AbortController:nh}=globalThis,_a=ba(),qt=class extends nh{constructor(e){super(),this._ms=e,this._timer=_a(()=>this.abort(),e),Object.setPrototypeOf(this,qt.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=_a(()=>this.abort(),this._ms)}};va.exports={TimeoutController:qt}});var Vr=T(($y,xi)=>{"use strict";var kt=typeof Reflect=="object"?Reflect:null,Ba=kt&&typeof kt.apply=="function"?kt.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},jr;kt&&typeof kt.ownKeys=="function"?jr=kt.ownKeys:Object.getOwnPropertySymbols?jr=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:jr=function(e){return Object.getOwnPropertyNames(e)};function hh(r){console&&console.warn&&console.warn(r)}var La=Number.isNaN||function(e){return e!==e};function L(){L.init.call(this)}xi.exports=L;xi.exports.once=yh;L.EventEmitter=L;L.prototype._events=void 0;L.prototype._eventsCount=0;L.prototype._maxListeners=void 0;var Ca=10;function qr(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(L,"defaultMaxListeners",{enumerable:!0,get:function(){return Ca},set:function(r){if(typeof r!="number"||r<0||La(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");Ca=r}});L.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};L.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||La(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Pa(r){return r._maxListeners===void 0?L.defaultMaxListeners:r._maxListeners}L.prototype.getMaxListeners=function(){return Pa(this)};L.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=e==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[e];if(c===void 0)return!1;if(typeof c=="function")Ba(c,this,t);else for(var u=c.length,l=Ua(c,u),n=0;n<u;++n)Ba(l[n],this,t);return!0};function Na(r,e,t,n){var i,o,s;if(qr(t),o=r._events,o===void 0?(o=r._events=Object.create(null),r._eventsCount=0):(o.newListener!==void 0&&(r.emit("newListener",e,t.listener?t.listener:t),o=r._events),s=o[e]),s===void 0)s=o[e]=t,++r._eventsCount;else if(typeof s=="function"?s=o[e]=n?[t,s]:[s,t]:n?s.unshift(t):s.push(t),i=Pa(r),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=e,a.count=s.length,hh(a)}return r}L.prototype.addListener=function(e,t){return Na(this,e,t,!1)};L.prototype.on=L.prototype.addListener;L.prototype.prependListener=function(e,t){return Na(this,e,t,!0)};function dh(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Da(r,e,t){var n={fired:!1,wrapFn:void 0,target:r,type:e,listener:t},i=dh.bind(n);return i.listener=t,n.wrapFn=i,i}L.prototype.once=function(e,t){return qr(t),this.on(e,Da(this,e,t)),this};L.prototype.prependOnceListener=function(e,t){return qr(t),this.prependListener(e,Da(this,e,t)),this};L.prototype.removeListener=function(e,t){var n,i,o,s,a;if(qr(t),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():ph(n,o),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this};L.prototype.off=L.prototype.removeListener;L.prototype.removeAllListeners=function(e){var t,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t=="function")this.removeListener(e,t);else if(t!==void 0)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this};function Ia(r,e,t){var n=r._events;if(n===void 0)return[];var i=n[e];return i===void 0?[]:typeof i=="function"?t?[i.listener||i]:[i]:t?mh(i):Ua(i,i.length)}L.prototype.listeners=function(e){return Ia(this,e,!0)};L.prototype.rawListeners=function(e){return Ia(this,e,!1)};L.listenerCount=function(r,e){return typeof r.listenerCount=="function"?r.listenerCount(e):Ma.call(r,e)};L.prototype.listenerCount=Ma;function Ma(r){var e=this._events;if(e!==void 0){var t=e[r];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}L.prototype.eventNames=function(){return this._eventsCount>0?jr(this._events):[]};function Ua(r,e){for(var t=new Array(e),n=0;n<e;++n)t[n]=r[n];return t}function ph(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];r.pop()}function mh(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].listener||r[t];return e}function yh(r,e){return new Promise(function(t,n){function i(s){r.removeListener(e,o),n(s)}function o(){typeof r.removeListener=="function"&&r.removeListener("error",i),t([].slice.call(arguments))}Fa(r,e,o,{once:!0}),e!=="error"&&gh(r,i,{once:!0})})}function gh(r,e,t){typeof r.on=="function"&&Fa(r,"error",e,t)}function Fa(r,e,t,n){if(typeof r.on=="function")n.once?r.once(e,t):r.on(e,t);else if(typeof r.addEventListener=="function")r.addEventListener(e,function i(o){n.once&&r.removeEventListener(e,i),t(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var Va=T((ja,qa)=>{"use strict";var Nh=Math.exp;ja=qa.exports=function(e){if(typeof e!="number")throw new Error("must provide a timespan to the moving average constructor");if(e<=0)throw new Error("must provide a timespan > 0 to the moving average constructor");let t,n=0,i=0,o=0,s,a={};function c(u,l){return 1-Nh(-(u-l)/e)}return a.push=function(l,h){if(s){let d=c(l,s),x=h-t,y=d*x;t=d*h+(1-d)*t,n=(1-d)*(n+x*y),i=Math.sqrt(n),o=t+d*x}else t=h;s=l},a.movingAverage=function(){return t},a.variance=function(){return n},a.deviation=function(){return i},a.forecast=function(){return o},a}});var Ja=T((gg,Ii)=>{function Xa(r){let e=new globalThis.AbortController;function t(){e.abort();for(let n of r)!n||!n.removeEventListener||n.removeEventListener("abort",t)}for(let n of r)if(!(!n||!n.addEventListener)){if(n.aborted){t();break}n.addEventListener("abort",t)}return e.signal}Ii.exports=Xa;Ii.exports.anySignal=Xa});var rc=T((Vg,Fi)=>{"use strict";var Fh=Object.prototype.hasOwnProperty,q="~";function Yt(){}Object.create&&(Yt.prototype=Object.create(null),new Yt().__proto__||(q=!1));function Oh(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function tc(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Oh(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 Zr(r,e){--r._eventsCount===0?r._events=new Yt:delete r._events[e]}function H(){this._events=new Yt,this._eventsCount=0}H.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};H.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};H.prototype.listenerCount=function(e){var t=q?q+e:e,n=this._events[t];return n?n.fn?1:n.length:0};H.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],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){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(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var d=c.length,x;for(h=0;h<d;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){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(x=1,l=new Array(u-1);x<u;x++)l[x-1]=arguments[x];c[h].fn.apply(c[h].context,l)}}return!0};H.prototype.on=function(e,t,n){return tc(this,e,t,n,!1)};H.prototype.once=function(e,t,n){return tc(this,e,t,n,!0)};H.prototype.removeListener=function(e,t,n,i){var o=q?q+e:e;if(!this._events[o])return this;if(!t)return Zr(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&Zr(this,o);else{for(var a=0,c=[],u=s.length;a<u;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:Zr(this,o)}return this};H.prototype.removeAllListeners=function(e){var t;return e?(t=q?q+e:e,this._events[t]&&Zr(this,t)):(this._events=new Yt,this._eventsCount=0),this};H.prototype.off=H.prototype.removeListener;H.prototype.addListener=H.prototype.on;H.prefixed=q;H.EventEmitter=H;typeof Fi<"u"&&(Fi.exports=H)});var Ld={};V(Ld,{createHelia:()=>Cd});var Nn={};V(Nn,{identity:()=>Pn});var Nd=new Uint8Array(0);var wo=(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},xe=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")};var bo=r=>new TextEncoder().encode(r),_o=r=>new TextDecoder().decode(r);var Zu=Eo,xo=128,Yu=127,el=~Yu,tl=Math.pow(2,31);function Eo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=tl;)e[t++]=r&255|xo,r/=128;for(;r⪙)e[t++]=r&255|xo,r>>>=7;return e[t]=r|0,Eo.bytes=t-n+1,e}var rl=Ln,nl=128,ko=127;function Ln(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw Ln.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&ko)<<i:(s&ko)*Math.pow(2,i),i+=7}while(s>=nl);return Ln.bytes=o-n,t}var il=Math.pow(2,7),ol=Math.pow(2,14),sl=Math.pow(2,21),al=Math.pow(2,28),cl=Math.pow(2,35),ul=Math.pow(2,42),ll=Math.pow(2,49),fl=Math.pow(2,56),hl=Math.pow(2,63),dl=function(r){return r<il?1:r<ol?2:r<sl?3:r<al?4:r<cl?5:r<ul?6:r<ll?7:r<fl?8:r<hl?9:10},pl={encode:Zu,decode:rl,encodingLength:dl},ml=pl,Mt=ml;var Ut=(r,e=0)=>[Mt.decode(r,e),Mt.decode.bytes],ft=(r,e,t=0)=>(Mt.encode(r,e,t),e),ht=r=>Mt.encodingLength(r);var Ve=(r,e)=>{let t=e.byteLength,n=ht(r),i=n+ht(t),o=new Uint8Array(i+t);return ft(r,o,0),ft(t,o,n),o.set(e,i),new dt(r,t,e,o)},Ft=r=>{let e=xe(r),[t,n]=Ut(e),[i,o]=Ut(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new dt(t,i,s,e)},To=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&wo(r.bytes,t.bytes)}},dt=class{constructor(e,t,n,i){this.code=e,this.size=t,this.digest=n,this.bytes=i}};var So=0,yl="identity",Ao=xe,gl=r=>Ve(So,Ao(r)),Pn={code:So,name:yl,encode:Ao,digest:gl};var Un={};V(Un,{sha256:()=>Ge,sha512:()=>Mn});var In=({name:r,code:e,encode:t})=>new Dn(r,e,t),Dn=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?Ve(this.code,t):t.then(n=>Ve(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Co=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Ge=In({name:"sha2-256",code:18,encode:Co("SHA-256")}),Mn=In({name:"sha2-512",code:19,encode:Co("SHA-512")});var $n={};V($n,{base58btc:()=>E,base58flickr:()=>kl});function wl(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),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function h(y){if(y instanceof Uint8Array||(ArrayBuffer.isView(y)?y=new Uint8Array(y.buffer,y.byteOffset,y.byteLength):Array.isArray(y)&&(y=Uint8Array.from(y))),!(y instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(y.length===0)return"";for(var g=0,k=0,P=0,U=y.length;P!==U&&y[P]===0;)P++,g++;for(var ne=(U-P)*l+1>>>0,$=new Uint8Array(ne);P!==U;){for(var le=y[P],ie=0,K=ne-1;(le!==0||ie<k)&&K!==-1;K--,ie++)le+=256*$[K]>>>0,$[K]=le%a>>>0,le=le/a>>>0;if(le!==0)throw new Error("Non-zero carry");k=ie,P++}for(var oe=ne-k;oe!==ne&&$[oe]===0;)oe++;for(var lt=c.repeat(g);oe<ne;++oe)lt+=r.charAt($[oe]);return lt}function d(y){if(typeof y!="string")throw new TypeError("Expected String");if(y.length===0)return new Uint8Array;var g=0;if(y[g]!==" "){for(var k=0,P=0;y[g]===c;)k++,g++;for(var U=(y.length-g)*u+1>>>0,ne=new Uint8Array(U);y[g];){var $=t[y.charCodeAt(g)];if($===255)return;for(var le=0,ie=U-1;($!==0||le<P)&&ie!==-1;ie--,le++)$+=a*ne[ie]>>>0,ne[ie]=$%256>>>0,$=$/256>>>0;if($!==0)throw new Error("Non-zero carry");P=le,g++}if(y[g]!==" "){for(var K=U-P;K!==U&&ne[K]===0;)K++;for(var oe=new Uint8Array(k+(U-K)),lt=k;K!==U;)oe[lt++]=ne[K++];return oe}}}function x(y){var g=d(y);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:x}}var bl=wl,_l=bl,Lo=_l;var Fn=class{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")}},On=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),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 Po(this,e)}},Rn=class{constructor(e){this.decoders=e}or(e){return Po(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Po=(r,e)=>new Rn({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),zn=class{constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new Fn(e,t,n),this.decoder=new On(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},mt=({name:r,prefix:e,encode:t,decode:n})=>new zn(r,e,t,n),De=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:i}=Lo(t,e);return mt({prefix:r,name:e,encode:n,decode:o=>xe(i(o))})},vl=(r,e,t,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),a=0,c=0,u=0;for(let l=0;l<o;++l){let h=i[r[l]];if(h===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|h,a+=t,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},xl=(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&&(o+=e[i&a<<t-s]),n)for(;o.length*t&7;)o+="=";return o},D=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>mt({prefix:e,name:r,encode(i){return xl(i,n,t)},decode(i){return vl(i,n,t,r)}});var E=De({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),kl=De({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Wn={};V(Wn,{base32:()=>j,base32hex:()=>Al,base32hexpad:()=>Cl,base32hexpadupper:()=>Ll,base32hexupper:()=>Bl,base32pad:()=>Tl,base32padupper:()=>Sl,base32upper:()=>El,base32z:()=>Pl});var j=D({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),El=D({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Tl=D({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Sl=D({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Al=D({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Bl=D({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Cl=D({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ll=D({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Pl=D({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var No=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return Dl(t,Hn(r),e||E.encoder);default:return Il(t,Hn(r),e||j.encoder)}};var Do=new WeakMap,Hn=r=>{let e=Do.get(r);if(e==null){let t=new Map;return Do.set(r,t),t}return e},v=class{constructor(e,t,n,i){this.code=t,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}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!==Ot)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Ml)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return v.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=Ve(e,t);return v.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 v.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&To(e.multihash,n.multihash)}toString(e){return No(this,e)}toJSON(){return{"/":No(this)}}link(){return this}get[Symbol.toStringTag](){return"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 v)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:i,multihash:o,bytes:s}=t;return new v(n,i,o,s||Io(n,i,o.bytes))}else if(t[Ul]===!0){let{version:n,multihash:i,code:o}=t,s=Ft(i);return v.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!==Ot)throw new Error(`Version 0 CID must use dag-pb (code: ${Ot}) block encoding`);return new v(e,t,n,n.bytes)}case 1:{let i=Io(e,t,n.bytes);return new v(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return v.create(0,Ot,e)}static createV1(e,t){return v.create(1,e,t)}static decode(e){let[t,n]=v.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=v.inspectBytes(e),n=t.size-t.multihashSize,i=xe(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 dt(t.multihashCode,t.digestSize,o,i);return[t.version===0?v.createV0(s):v.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[h,d]=Ut(e.subarray(t));return t+=d,h},i=n(),o=Ot;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(),u=t+c,l=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,t){let[n,i]=Nl(e,t),o=v.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Hn(o).set(n,e),o}},Nl=(r,e)=>{switch(r[0]){case"Q":{let t=e||E;return[E.prefix,t.decode(`${E.prefix}${r}`)]}case E.prefix:{let t=e||E;return[E.prefix,t.decode(r)]}case j.prefix:{let t=e||j;return[j.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}},Dl=(r,e,t)=>{let{prefix:n}=t;if(n!==E.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},Il=(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},Ot=112,Ml=18,Io=(r,e,t)=>{let n=ht(r),i=n+ht(e),o=new Uint8Array(i+t.byteLength);return ft(r,o,0),ft(e,o,n),o.set(t,i),o},Ul=Symbol.for("@ipld/js-cid/CID");var ta=F(Ko(),1);var Rt=F(is(),1);function lf(r){let e=new Uint8Array(r.reduce((n,i)=>n+Rt.default.encodingLength(i),0)),t=0;for(let n of r)e=Rt.encode(n,e,t),t+=Rt.default.encodingLength(n);return e}var os=lf;var ye=F(ls(),1);var Gn={};V(Gn,{base64:()=>zt,base64pad:()=>kf,base64url:()=>Ef,base64urlpad:()=>Tf});var zt=D({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),kf=D({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ef=D({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Tf=D({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ye.default.formatters.b=r=>r==null?"undefined":E.baseEncode(r);ye.default.formatters.t=r=>r==null?"undefined":j.baseEncode(r);ye.default.formatters.m=r=>r==null?"undefined":zt.baseEncode(r);ye.default.formatters.p=r=>r==null?"undefined":r.toString();ye.default.formatters.c=r=>r==null?"undefined":r.toString();ye.default.formatters.k=r=>r==null?"undefined":r.toString();function _r(r){return Object.assign((0,ye.default)(r),{error:(0,ye.default)(`${r}:error`),trace:(0,ye.default)(`${r}:trace`)})}function Qe(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 Xe=class{constructor(e,t,n){this._refCounter=1,this.cid=e,this.priority=t??1,this.wantType=n}inc(){this._refCounter+=1}dec(){this._refCounter=Math.max(0,this._refCounter-1)}hasRefs(){return this._refCounter>0}get[Symbol.toStringTag](){return`WantlistEntry <key: ${this.cid.toString(E)}, priority: ${this.priority}, refs: ${this._refCounter}>`}equals(e){return this._refCounter===e._refCounter&&this.cid.equals(e.cid)&&this.priority===e.priority&&this.wantType===e.wantType}};var Ie=class{constructor(e,t,n,i,o){this.entry=new Xe(e,t,n),this.cancel=Boolean(i),this.sendDontHave=Boolean(o)}get cid(){return this.entry.cid}set cid(e){this.entry.cid=e}get priority(){return this.entry.priority}set priority(e){this.entry.priority=e}get wantType(){return this.entry.wantType}set wantType(e){this.entry.wantType=e}get[Symbol.toStringTag](){return`BitswapMessageEntry ${this.cid.toString(E)} <cancel: ${this.cancel}, priority: ${this.priority}>`}equals(e){return this.cancel===e.cancel&&this.sendDontHave===e.sendDontHave&&this.wantType===e.wantType&&this.entry.equals(e.entry)}};var se=(r,e)=>{let t=["bitswap"];return e!=null&&t.push(e),r!=null&&t.push(`${r.toString().slice(0,8)}`),_r(t.join(":"))};var vr=(r,e)=>{if(r.size!==e.size)return!1;for(let[t,n]of r){let i=e.get(t);if(i===void 0||n instanceof Uint8Array&&i instanceof Uint8Array&&!Qe(n,i)||n instanceof Ie&&i instanceof Ie&&!n.equals(i))return!1}return!0};var si=F(Zn(),1),Js=F(Hs(),1),Zs=F(Ze(),1),ai=F(oi(),1),Ys=F(Xs(),1);function If(){Zs.default._configure(),si.default._configure(Js.default),ai.default._configure(Ys.default)}If();var ea=["uint64","int64","sint64","fixed64","sfixed64"];function Mf(r){for(let e of ea){if(r[e]==null)continue;let t=r[e];r[e]=function(){return BigInt(t.call(this).toString())}}return r}function ci(r){return Mf(new si.default(r))}function Uf(r){for(let e of ea){if(r[e]==null)continue;let t=r[e];r[e]=function(n){return t.call(this,n.toString())}}return r}function ui(){return Uf(ai.default.create())}function et(r,e){let t=ci(r instanceof Uint8Array?r:r.subarray());return e.decode(t)}function tt(r,e){let t=ui();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var _t;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(_t||(_t={}));function Sr(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function Ar(r){function e(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let t=function(o,s){let a=e(o);s.int32(a)},n=function(o){let s=o.int32();return e(s)};return Sr("enum",_t.VARINT,t,n)}function rt(r,e){return Sr("message",_t.LENGTH_DELIMITED,r,e)}var G;(function(r){let e;(function(a){let c;(function(d){d.Block="Block",d.Have="Have"})(c=a.WantType||(a.WantType={}));let u;(function(d){d[d.Block=0]="Block",d[d.Have=1]="Have"})(u||(u={})),function(d){d.codec=()=>Ar(u)}(c=a.WantType||(a.WantType={}));let l;(function(d){let x;d.codec=()=>(x==null&&(x=rt((y,g,k={})=>{k.lengthDelimited!==!1&&g.fork(),y.block!=null&&y.block.byteLength>0&&(g.uint32(10),g.bytes(y.block)),y.priority!=null&&y.priority!==0&&(g.uint32(16),g.int32(y.priority)),y.cancel!=null&&y.cancel!==!1&&(g.uint32(24),g.bool(y.cancel)),y.wantType!=null&&u[y.wantType]!==0&&(g.uint32(32),r.Wantlist.WantType.codec().encode(y.wantType,g)),y.sendDontHave!=null&&y.sendDontHave!==!1&&(g.uint32(40),g.bool(y.sendDontHave)),k.lengthDelimited!==!1&&g.ldelim()},(y,g)=>{let k={block:new Uint8Array(0),priority:0,cancel:!1,wantType:c.Block,sendDontHave:!1},P=g==null?y.len:y.pos+g;for(;y.pos<P;){let U=y.uint32();switch(U>>>3){case 1:k.block=y.bytes();break;case 2:k.priority=y.int32();break;case 3:k.cancel=y.bool();break;case 4:k.wantType=r.Wantlist.WantType.codec().decode(y);break;case 5:k.sendDontHave=y.bool();break;default:y.skipType(U&7);break}}return k})),x),d.encode=y=>tt(y,d.codec()),d.decode=y=>et(y,d.codec())})(l=a.Entry||(a.Entry={}));let h;a.codec=()=>(h==null&&(h=rt((d,x,y={})=>{if(y.lengthDelimited!==!1&&x.fork(),d.entries!=null)for(let g of d.entries)x.uint32(10),r.Wantlist.Entry.codec().encode(g,x);d.full!=null&&d.full!==!1&&(x.uint32(16),x.bool(d.full)),y.lengthDelimited!==!1&&x.ldelim()},(d,x)=>{let y={entries:[],full:!1},g=x==null?d.len:d.pos+x;for(;d.pos<g;){let k=d.uint32();switch(k>>>3){case 1:y.entries.push(r.Wantlist.Entry.codec().decode(d,d.uint32()));break;case 2:y.full=d.bool();break;default:d.skipType(k&7);break}}return y})),h),a.encode=d=>tt(d,a.codec()),a.decode=d=>et(d,a.codec())})(e=r.Wantlist||(r.Wantlist={}));let t;(function(a){let c;a.codec=()=>(c==null&&(c=rt((u,l,h={})=>{h.lengthDelimited!==!1&&l.fork(),u.prefix!=null&&u.prefix.byteLength>0&&(l.uint32(10),l.bytes(u.prefix)),u.data!=null&&u.data.byteLength>0&&(l.uint32(18),l.bytes(u.data)),h.lengthDelimited!==!1&&l.ldelim()},(u,l)=>{let h={prefix:new Uint8Array(0),data:new Uint8Array(0)},d=l==null?u.len:u.pos+l;for(;u.pos<d;){let x=u.uint32();switch(x>>>3){case 1:h.prefix=u.bytes();break;case 2:h.data=u.bytes();break;default:u.skipType(x&7);break}}return h})),c),a.encode=u=>tt(u,a.codec()),a.decode=u=>et(u,a.codec())})(t=r.Block||(r.Block={}));let n;(function(a){a.Have="Have",a.DontHave="DontHave"})(n=r.BlockPresenceType||(r.BlockPresenceType={}));let i;(function(a){a[a.Have=0]="Have",a[a.DontHave=1]="DontHave"})(i||(i={})),function(a){a.codec=()=>Ar(i)}(n=r.BlockPresenceType||(r.BlockPresenceType={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=rt((u,l,h={})=>{h.lengthDelimited!==!1&&l.fork(),u.cid!=null&&u.cid.byteLength>0&&(l.uint32(10),l.bytes(u.cid)),u.type!=null&&i[u.type]!==0&&(l.uint32(16),r.BlockPresenceType.codec().encode(u.type,l)),h.lengthDelimited!==!1&&l.ldelim()},(u,l)=>{let h={cid:new Uint8Array(0),type:n.Have},d=l==null?u.len:u.pos+l;for(;u.pos<d;){let x=u.uint32();switch(x>>>3){case 1:h.cid=u.bytes();break;case 2:h.type=r.BlockPresenceType.codec().decode(u);break;default:u.skipType(x&7);break}}return h})),c),a.encode=u=>tt(u,a.codec()),a.decode=u=>et(u,a.codec())})(o=r.BlockPresence||(r.BlockPresence={}));let s;r.codec=()=>(s==null&&(s=rt((a,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),a.wantlist!=null&&(c.uint32(10),r.Wantlist.codec().encode(a.wantlist,c)),a.blocks!=null)for(let l of a.blocks)c.uint32(18),c.bytes(l);if(a.payload!=null)for(let l of a.payload)c.uint32(26),r.Block.codec().encode(l,c);if(a.blockPresences!=null)for(let l of a.blockPresences)c.uint32(34),r.BlockPresence.codec().encode(l,c);a.pendingBytes!=null&&a.pendingBytes!==0&&(c.uint32(40),c.int32(a.pendingBytes)),u.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let u={blocks:[],payload:[],blockPresences:[],pendingBytes:0},l=c==null?a.len:a.pos+c;for(;a.pos<l;){let h=a.uint32();switch(h>>>3){case 1:u.wantlist=r.Wantlist.codec().decode(a,a.uint32());break;case 2:u.blocks.push(a.bytes());break;case 3:u.payload.push(r.Block.codec().decode(a,a.uint32()));break;case 4:u.blockPresences.push(r.BlockPresence.codec().decode(a,a.uint32()));break;case 5:u.pendingBytes=a.int32();break;default:a.skipType(h&7);break}}return u})),s),r.encode=a=>tt(a,r.codec()),r.decode=a=>et(a,r.codec())})(G||(G={}));var Br=class extends Error{constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var Ff,B=class{constructor(e){this.full=e,this.wantlist=new Map,this.blocks=new Map,this.blockPresences=new Map,this.pendingBytes=0}get empty(){return this.blocks.size===0&&this.wantlist.size===0&&this.blockPresences.size===0}addEntry(e,t,n,i,o){n==null&&(n=B.WantType.Block);let s=e.toString(E),a=this.wantlist.get(s);a!=null?(a.wantType===n&&(a.priority=t),i===!0&&(a.cancel=Boolean(i)),o===!0&&(a.sendDontHave=Boolean(o)),n===B.WantType.Block&&a.wantType===B.WantType.Have&&(a.wantType=n)):this.wantlist.set(s,new Ie(e,t,n,i,o))}addBlock(e,t){let n=e.toString(E);this.blocks.set(n,t)}addHave(e){let t=e.toString(E);this.blockPresences.has(t)||this.blockPresences.set(t,B.BlockPresenceType.Have)}addDontHave(e){let t=e.toString(E);this.blockPresences.has(t)||this.blockPresences.set(t,B.BlockPresenceType.DontHave)}cancel(e){let t=e.toString(E);this.wantlist.delete(t),this.addEntry(e,0,B.WantType.Block,!0,!1)}setPendingBytes(e){this.pendingBytes=e}serializeToBitswap100(){return G.encode({wantlist:{entries:Array.from(this.wantlist.values()).map(e=>({block:e.cid.bytes,priority:Number(e.priority),cancel:Boolean(e.cancel),wantType:G.Wantlist.WantType.Block,sendDontHave:!1})),full:Boolean(this.full)},blocks:Array.from(this.blocks.values())})}serializeToBitswap110(){let e={wantlist:{entries:Array.from(this.wantlist.values()).map(t=>({block:t.cid.bytes,priority:Number(t.priority),wantType:t.wantType,cancel:Boolean(t.cancel),sendDontHave:Boolean(t.sendDontHave)})),full:Boolean(this.full)},blockPresences:[],payload:[],pendingBytes:this.pendingBytes,blocks:[]};for(let[t,n]of this.blocks.entries()){let i=v.parse(t),o=i.version,s=i.code,a=i.multihash.code,c=i.multihash.digest.length,u=os([o,s,a,c]);e.payload.push({prefix:u,data:n})}for(let[t,n]of this.blockPresences)e.blockPresences.push({cid:v.parse(t).bytes,type:n});return this.pendingBytes>0&&(e.pendingBytes=this.pendingBytes),G.encode(e)}equals(e){return!(this.full!==e.full||this.pendingBytes!==e.pendingBytes||!vr(this.wantlist,e.wantlist)||!vr(this.blocks,e.blocks)||!vr(this.blockPresences,e.blockPresences))}get[Symbol.toStringTag](){let e=Array.from(this.wantlist.keys()),t=Array.from(this.blocks.keys());return`BitswapMessage <full: ${this.full}, list: ${e}, blocks: ${t}>`}};Ff=B;B.Entry=Ie;B.WantType={Block:G.Wantlist.WantType.Block,Have:G.Wantlist.WantType.Have};B.BlockPresenceType={Have:G.BlockPresenceType.Have,DontHave:G.BlockPresenceType.DontHave};B.deserialize=async(r,e)=>{let t=G.decode(r),n=t.wantlist?.full===!0,i=new B(n);return t.wantlist?.entries.forEach(o=>{if(o.block==null)return;let s=v.decode(o.block);i.addEntry(s,o.priority??0,o.wantType,Boolean(o.cancel),Boolean(o.sendDontHave))}),t.blockPresences.forEach(o=>{if(o.cid==null)return;let s=v.decode(o.cid);o.type===B.BlockPresenceType.Have?i.addHave(s):i.addDontHave(s)}),t.blocks.length>0?(await Promise.all(t.blocks.map(async o=>{let s=await Ge.digest(o),a=v.createV0(s);i.addBlock(a,o)})),i):(t.payload.length>0&&(await Promise.all(t.payload.map(async o=>{if(o.prefix==null||o.data==null)return;let s=(0,ta.default)(o.prefix),a=s[0],c=s[1],u=s[2],l=u===Ge.code?Ge:await e?.getHasher(u);if(l==null)throw new Br("Unknown hash algorithm","ERR_UNKNOWN_HASH_ALG");let h=await l.digest(o.data),d=v.create(a,c,h);i.addBlock(d,o.data)})),i.setPendingBytes(t.pendingBytes)),i)};B.blockPresenceSize=r=>r.bytes.length+1;var li=class extends Map{constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Fe(r){let{name:e,metrics:t}=r,n;return t!=null?n=new li({name:e,metrics:t}):n=new Map,n}var ra={Block:G.Wantlist.WantType.Block,Have:G.Wantlist.WantType.Have},Of=(r,e)=>Array.prototype.slice.call(e,0).sort((t,n)=>{let i=r(t),o=r(n);return i<o?-1:i>o?1:0}),ke=class{constructor(e,t){this.set=t!=null?Fe({name:"ipfs_bitswap_wantlist",metrics:t.metrics}):new Map,this._stats=e}get length(){return this.set.size}add(e,t,n){let i=e.toString(E),o=this.set.get(i);o!=null?(o.inc(),o.priority=t,o.wantType===ra.Have&&n===ra.Block&&(o.wantType=n)):(this.set.set(i,new Xe(e,t,n)),this._stats!=null&&this._stats.push(void 0,"wantListSize",1))}remove(e){let t=e.toString(E),n=this.set.get(t);n!=null&&(n.dec(),!n.hasRefs()&&(this.set.delete(t),this._stats!=null&&this._stats.push(void 0,"wantListSize",-1)))}removeForce(e){this.set.has(e)&&this.set.delete(e)}forEach(e){this.set.forEach(e)}entries(){return this.set.entries()}sortedEntries(){return new Map(Of(e=>e[1].key,Array.from(this.set.entries())))}contains(e){let t=e.toString(E);return this.set.has(t)}get(e){let t=e.toString(E);return this.set.get(t)}};ke.Entry=Xe;var na=Math.pow(2,31)-1,ia=1e3,oa=1;var sa=Rf;function Rf(r,e,t){var n=null,i=null,o=function(){n&&(clearTimeout(n),i=null,n=null)},s=function(){var c=i;o(),c&&c()},a=function(){if(!e)return r.apply(this,arguments);var c=this,u=arguments,l=t&&!n;if(o(),i=function(){r.apply(c,u)},n=setTimeout(function(){if(n=null,!l){var h=i;return i=null,h()}},e),l)return i()};return a.cancel=o,a.flush=s,a}var Cr=class{constructor(e,t,n){this.peerId=t,this.network=n,this.refcnt=1,this._entries=[],this._log=se(e,"msgqueue"),this.sendEntries=sa(this.sendEntries.bind(this),oa)}addMessage(e){e.empty||this.send(e)}addEntries(e){this._entries=this._entries.concat(e),this.sendEntries()}sendEntries(){if(this._entries.length===0)return;let e=new B(!1);this._entries.forEach(t=>{t.cancel===!0?e.cancel(t.cid):e.addEntry(t.cid,t.priority)}),this._entries=[],this.addMessage(e)}async send(e){try{await this.network.connectTo(this.peerId)}catch(t){this._log.error("cant connect to peer %p: %s",this.peerId,t.message);return}this._log("sending message to peer %p",this.peerId),this.network.sendMessage(this.peerId,e).catch(t=>{this._log.error("send error",t)})}};var Lr=class{constructor(e,t,n,i){this.peers=Fe({name:"ipfs_bitswap_want_manager_peers",metrics:i.metrics}),this.wantlist=new ke(n,i),this.network=t,this._peerId=e,this._log=se(e,"want")}_addEntries(e,t,n){let i=e.map((o,s)=>new B.Entry(o,na-s,B.WantType.Block,t));i.forEach(o=>{o.cancel?n===!0?this.wantlist.removeForce(o.cid.toString(E)):this.wantlist.remove(o.cid):(this._log("adding to wantlist"),this.wantlist.add(o.cid,o.priority))});for(let o of this.peers.values())o.addEntries(i)}_startPeerHandler(e){let t=this.peers.get(e.toString());if(t!=null){t.refcnt++;return}t=new Cr(this._peerId,e,this.network);let n=new B(!0);for(let i of this.wantlist.entries())n.addEntry(i[1].cid,i[1].priority);return t.addMessage(n),this.peers.set(e.toString(),t),t}_stopPeerHandler(e){let t=this.peers.get(e.toString());t!=null&&(t.refcnt--,!(t.refcnt>0)&&this.peers.delete(e.toString()))}wantBlocks(e,t={}){this._addEntries(e,!1),t.signal?.addEventListener("abort",()=>{this.cancelWants(e)})}unwantBlocks(e){this._log("unwant blocks: %s",e.length),this._addEntries(e,!0,!0)}cancelWants(e){this._log("cancel wants: %s",e.length),this._addEntries(e,!0)}connectedPeers(){return Array.from(this.peers.keys())}connected(e){this._startPeerHandler(e)}disconnected(e){this._stopPeerHandler(e)}start(){}stop(){this.peers.forEach(e=>{this.disconnected(e.peerId)})}};function nt(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Ee(r=0){return globalThis.Buffer?.alloc!=null?nt(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function Te(r=0){return globalThis.Buffer?.allocUnsafe!=null?nt(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function hi(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=Te(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return nt(t)}var ca=Symbol.for("@achingbrain/uint8arraylist");function aa(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 Pr(r){return Boolean(r?.[ca])}var be=class{constructor(...e){Object.defineProperty(this,ca,{value:!0}),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(Pr(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Pr(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=aa(this.bufs,e);return t.buf[t.index]}set(e,t){let n=aa(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(Pr(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 hi(n,i)}subarray(e,t){let{bufs:n,length:i}=this._subList(e,t);return n.length===1?n[0]:hi(n,i)}sublist(e,t){let{bufs:n,length:i}=this._subList(e,t),o=new be;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 u=e>=a&&e<c,l=t>a&&t<=c;if(u&&l){if(e===a&&t===c){n.push(s);break}let h=e-a;n.push(s.subarray(h,h+(t-e)));break}if(u){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(!Pr(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,u=n.byteLength-1,l;for(let h=t;h<=c;h+=l){l=0;for(let d=u;d>=0;d--){let x=this.get(h+d);if(n[d]!==x){l=Math.max(1,d-a[x]);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=Te(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=Ee(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=Ee(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=Ee(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=Te(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=Ee(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=Ee(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=Ee(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=Ee(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=Ee(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,t,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof be)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Qe(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new be;return n.bufs=e,t==null&&(t=e.reduce((i,o)=>i+o.byteLength,0)),n.length=t,n}};function Nr(r){return r instanceof Uint8Array?{get(e){return r[e]},set(e,t){r[e]=t}}:{get(e){return r.get(e)},set(e,t){r.set(e,t)}}}var ua=4294967296,X=class{constructor(e=0,t=0){this.hi=e,this.lo=t}toBigInt(e){if(e===!0)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)}toNumber(e){return Number(this.toBigInt(e))}zzDecode(){let e=-(this.lo&1),t=((this.lo>>>1|this.hi<<31)^e)>>>0,n=(this.hi>>>1^e)>>>0;return new X(n,t)}zzEncode(){let e=this.hi>>31,t=((this.hi<<1|this.lo>>>31)^e)>>>0,n=(this.lo<<1^e)>>>0;return new X(t,n)}toBytes(e,t=0){let n=Nr(e);for(;this.hi>0;)n.set(t++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(t++,this.lo&127|128),this.lo=this.lo>>>7;n.set(t++,this.lo)}static fromBigInt(e){if(e===0n)return new X;let t=e<0;t&&(e=-e);let n=Number(e>>32n)|0,i=Number(e-(BigInt(n)<<32n))|0;return t&&(n=~n>>>0,i=~i>>>0,++i>ua&&(i=0,++n>ua&&(n=0))),new X(n,i)}static fromNumber(e){if(e===0)return new X;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 X(i,n)}static fromBytes(e,t=0){let n=Nr(e),i=new X,o=0;if(e.length-t>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(t)&127)<<o*7)>>>0,n.get(t++)<128)return i;if(i.lo=(i.lo|(n.get(t)&127)<<28)>>>0,i.hi=(i.hi|(n.get(t)&127)>>4)>>>0,n.get(t++)<128)return i;o=0}else for(;o<4;++o){if(t>=e.length)throw RangeError(`index out of range: ${t} > ${e.length}`);if(i.lo=(i.lo|(n.get(t)&127)<<o*7)>>>0,n.get(t++)<128)return i}if(e.length-t>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(t)&127)<<o*7+3)>>>0,n.get(t++)<128)return i}else if(t<e.byteLength)for(;o<5;++o){if(t>=e.length)throw RangeError(`index out of range: ${t} > ${e.length}`);if(i.hi=(i.hi|(n.get(t)&127)<<o*7+3)>>>0,n.get(t++)<128)return i}throw RangeError("invalid varint encoding")}};var zf=Math.pow(2,7),$f=Math.pow(2,14),Wf=Math.pow(2,21),Hf=Math.pow(2,28),jf=Math.pow(2,35),qf=Math.pow(2,42),Vf=Math.pow(2,49),Gf=Math.pow(2,56),Kf=Math.pow(2,63),it={encodingLength(r){return r<zf?1:r<$f?2:r<Wf?3:r<Hf?4:r<jf?5:r<qf?6:r<Vf?7:r<Gf?8:r<Kf?9:10},encode(r,e,t=0){if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return e==null&&(e=Te(it.encodingLength(r))),X.fromNumber(r).toBytes(e,t),e},decode(r,e=0){return X.fromBytes(r,e).toNumber(!0)}};function la(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Dr=r=>{let e=it.encodingLength(r),t=la(e);return it.encode(r,t),Dr.bytes=e,t};Dr.bytes=0;function Ir(r){r=r??{};let e=r.lengthEncoder??Dr;return async function*(n){for await(let i of n){let o=e(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}}}Ir.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Dr;return new be(t(r.byteLength),r)};var Ht=F(Mr(),1),Xf=8,Jf=1024*1024*4,ot;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(ot||(ot={}));var di=r=>{let e=it.decode(r);return di.bytes=it.encodingLength(e),e};di.bytes=0;function jt(r){return async function*(t){let n=new be,i=ot.LENGTH,o=-1,s=r?.lengthDecoder??di,a=r?.maxLengthLength??Xf,c=r?.maxDataLength??Jf;for await(let u of t)for(n.append(u);n.byteLength>0;){if(i===ot.LENGTH)try{if(o=s(n),o<0)throw(0,Ht.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,Ht.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let l=s.bytes;n.consume(l),r?.onLength!=null&&r.onLength(o),i=ot.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Ht.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===ot.DATA){if(n.byteLength<o)break;let l=n.sublist(0,o);n.consume(o),r?.onData!=null&&r.onData(l),yield l,i=ot.LENGTH}}if(n.byteLength>0)throw(0,Ht.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}jt.fromReader=(r,e)=>{let t=1,n=async function*(){for(;;)try{let{done:o,value:s}=await r.next(t);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{t=1}}();return jt({...e??{},onLength:o=>{t=o}})(n)};var Ur=class{constructor(e){if(!(e>0)||e-1&e)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}},vt=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Ur(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 Ur(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()}};function Oe(r={}){return Yf(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 Yf(r,e){e=e??{};let t=e.onEnd,n=new vt,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((g,k)=>{o=P=>{o=null,n.push(P);try{g(r(n))}catch(U){k(U)}return i}}):r(n),c=g=>o!=null?o(g):(n.push(g),i),u=g=>(n=new vt,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(s)return i;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:g})},h=g=>s?i:(s=!0,g!=null?u(g):c({done:!0})),d=()=>(n=new vt,h(),{done:!0}),x=g=>(h(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:x,push:l,end:h,get readableLength(){return n.size}},t==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),t!=null&&(t(g),t=void 0),{done:!0}},return(){return y.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(g){return y.end(g),t!=null&&(t(g),t=void 0),i},get readableLength(){return y.readableLength}},i}async function*xt(...r){let e=Oe({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async t=>{for await(let n of t)e.push(n)})),e.end()}catch(t){e.end(t)}}),yield*e}var eh=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},da=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),pi=r=>r!=null&&typeof r.sink=="function"&&da(r.source),th=r=>e=>{let t=r.sink(e);if(t.then!=null){let n=Oe({objectMode:!0});return t.then(()=>{n.end()},o=>{n.end(o)}),xt(n,async function*(){yield*r.source,n.end()}())}return r.source};function Fr(r,...e){if(pi(r)){let n=r;r=()=>n.source}else if(da(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&pi(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)pi(t[n])&&(t[n]=th(t[n]));return eh(...t)}var mi=Symbol.for("@libp2p/topology");var pa=()=>{},yi=class{constructor(e){this.min=e.min??0,this.max=e.max??1/0,this.peers=new Set,this.onConnect=e.onConnect??pa,this.onDisconnect=e.onDisconnect??pa}get[Symbol.toStringTag](){return mi.toString()}get[mi](){return!0}async setRegistrar(e){this.registrar=e}disconnect(e){this.onDisconnect(e)}};function ma(r){return new yi(r)}var Ta=F(xa(),1);var Vt=class extends Error{constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function ka(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function Ea(r,e,t){let n=t??{},i=ka(r);async function*o(){let s,a=()=>{s?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:l,abortCode:h}=n;throw new Vt(l,h)}let u=new Promise((l,h)=>{s=()=>{let{abortMessage:d,abortCode:x}=n;h(new Vt(d,x))}});c=await Promise.race([u,i.next()]),s=null}catch(u){e.removeEventListener("abort",a);let l=u.type==="aborted"&&e.aborted;if(l&&n.onAbort!=null&&await n.onAbort(r),typeof i.return=="function")try{let h=i.return();h instanceof Promise&&h.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(h){n.onReturnError!=null&&n.onReturnError(h)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}e.removeEventListener("abort",a)}return o()}var wi="/ipfs/bitswap/1.0.0",bi="/ipfs/bitswap/1.1.0",_i="/ipfs/bitswap/1.2.0",oh=32,sh=128,ah=3e4,Rr=class{constructor(e,t,n,i={}){this._log=se(e.peerId,"network"),this._libp2p=e,this._bitswap=t,this._protocols=[wi],i.b100Only!==!0&&(this._protocols.unshift(bi),this._protocols.unshift(_i)),this._stats=n,this._running=!1,this._onPeerConnect=this._onPeerConnect.bind(this),this._onPeerDisconnect=this._onPeerDisconnect.bind(this),this._onConnection=this._onConnection.bind(this),this._hashLoader=i.hashLoader??{async getHasher(){throw new Error("Not implemented")}},this._maxInboundStreams=i.maxInboundStreams??oh,this._maxOutboundStreams=i.maxOutboundStreams??sh,this._incomingStreamTimeout=i.incomingStreamTimeout??ah}async start(){this._running=!0,await this._libp2p.handle(this._protocols,this._onConnection,{maxInboundStreams:this._maxInboundStreams,maxOutboundStreams:this._maxOutboundStreams});let e=ma({onConnect:this._onPeerConnect,onDisconnect:this._onPeerDisconnect});this._registrarIds=[];for(let t of this._protocols)this._registrarIds.push(await this._libp2p.register(t,e));this._libp2p.getConnections().forEach(t=>{this._onPeerConnect(t.remotePeer)})}async stop(){if(this._running=!1,await this._libp2p.unhandle(this._protocols),this._registrarIds!=null){for(let e of this._registrarIds)this._libp2p.unregister(e);this._registrarIds=[]}}_onConnection(e){if(!this._running)return;let{stream:t,connection:n}=e,i=new Ta.TimeoutController(this._incomingStreamTimeout);Promise.resolve().then(async()=>{this._log("incoming new bitswap %s connection from %p",t.stat.protocol,n.remotePeer),await Fr(Ea(t.source,i.signal),jt(),async o=>{for await(let s of o){try{let a=await B.deserialize(s.subarray(),this._hashLoader);await this._bitswap._receiveMessage(n.remotePeer,a)}catch(a){this._bitswap._receiveError(a);break}i.reset()}})}).catch(o=>{this._log(o),t.abort(o)}).finally(()=>{i.clear(),t.close()})}_onPeerConnect(e){this._bitswap._onPeerConnected(e)}_onPeerDisconnect(e){this._bitswap._onPeerDisconnected(e)}findProviders(e,t={}){return this._libp2p.contentRouting.findProviders(e,t)}async findAndConnect(e,t){let n=[],i=0;for await(let o of this.findProviders(e,t))if(this._log(`connecting to provider ${o.id}`),n.push(this.connectTo(o.id,t).catch(s=>{this._log.error(s)})),i++,i===3)break;await Promise.all(n)}async provide(e,t){await this._libp2p.contentRouting.provide(e,t)}async sendMessage(e,t){if(!this._running)throw new Error("network isn't running");let n=e.toString();this._log("sendMessage to %s",n,t);let o=await(await this._libp2p.dial(e)).newStream([_i,bi,wi]);await ch(o,t,this._log),this._updateSentStats(e,t.blocks)}async connectTo(e,t){if(!this._running)throw new Error("network isn't running");return await this._libp2p.dial(e,t)}_updateSentStats(e,t){let n=e.toString();if(this._stats!=null){for(let i of t.values())this._stats.push(n,"dataSent",i.length);this._stats.push(n,"blocksSent",t.size)}}};async function ch(r,e,t){try{let n;switch(r.stat.protocol){case wi:n=e.serializeToBitswap100();break;case bi:case _i:n=e.serializeToBitswap110();break;default:throw new Error(`Unknown protocol: ${r.stat.protocol}`)}await Fr([n],Ir(),r)}catch(n){t(n)}finally{r.close()}}var zr=class{constructor(e){this.partner=e,this.wantlist=new ke,this.exchangeCount=0,this.accounting={bytesSent:0,bytesRecv:0}}sentBytes(e){this.exchangeCount++,this.lastExchange=new Date().getTime(),this.accounting.bytesSent+=e}receivedBytes(e){this.exchangeCount++,this.lastExchange=new Date().getTime(),this.accounting.bytesRecv+=e}wants(e,t,n){this.wantlist.add(e,t,n)}cancelWant(e){this.wantlist.remove(e)}wantlistContains(e){return this.wantlist.get(e)}debtRatio(){return this.accounting.bytesSent/(this.accounting.bytesRecv+1)}};var Gt=class extends Map{constructor(e,t){super(),this._cmp=t??this._defaultSort,this._keys=[];for(let[n,i]of e??[])this.set(n,i)}update(e){if(e<0||e>=this._keys.length)return;let t=this._keys[e];this._keys.splice(e,1);let n=this._find(t);this._keys.splice(n,0,t)}set(e,t){if(this.has(e)){let i=this.indexOf(e);this._keys.splice(i,1)}super.set(e,t);let n=this._find(e);return this._keys.splice(n,0,e),this}clear(){super.clear(),this._keys=[]}delete(e){if(!this.has(e))return!1;let t=this.indexOf(e);return this._keys.splice(t,1),super.delete(e)}indexOf(e){if(!this.has(e))return-1;let t=this._find(e);if(this._keys[t]===e)return t;for(let n=1;n<this._keys.length;n++){if(this._keys[t+n]===e)return t+n;if(this._keys[t-n]===e)return t-n}return-1}_find(e){let t=0,n=this._keys.length;for(;t<n;){let i=t+n>>>1,o=this._kCmp(this._keys[i],e);if(o<0)t=i+1;else if(o>0)n=i;else return i}return t}*keys(){for(let e of this._keys)yield e}*values(){for(let e of this._keys)yield this.get(e)}*entries(){for(let e of this._keys)yield[e,this.get(e)]}*[Symbol.iterator](){yield*this.entries()}forEach(e,t=this){if(e!=null)for(let n of this._keys){let i=this.get(n);if(i==null)throw new Error("Value cannot be undefined");e.apply(t,[[n,i]])}}_defaultSort(e,t){return e[0]<t[0]?-1:t[0]<e[0]?1:0}_kCmp(e,t){return this._cmp([e,this.get(e)],[t,this.get(t)])}};var uh={hasNewInfo(){return!1},merge(){}},$r=class{constructor(e=uh){this._taskMerger=e,this._byPeer=new Gt([],Wr.compare)}pushTasks(e,t){let n=this._byPeer.get(e.toString());n==null&&(n=new Wr(e,this._taskMerger)),n.pushTasks(t),this._byPeer.set(e.toString(),n)}popTasks(e){let t=this._head();if(t===void 0)return{tasks:[],pendingSize:0};let{tasks:n,pendingSize:i}=t.popTasks(e);if(n.length===0)return{tasks:n,pendingSize:i};let o=t.peerId;return t.isIdle()?this._byPeer.delete(o.toString()):this._byPeer.update(0),{peerId:o,tasks:n,pendingSize:i}}_head(){if(this._byPeer.size!==0)for(let[,e]of this._byPeer)return e}remove(e,t){this._byPeer.get(t.toString())?.remove(e)}tasksDone(e,t){let n=this._byPeer.get(e.toString());if(n==null)return;let i=this._byPeer.indexOf(e.toString());for(let o of t)n.taskDone(o);this._byPeer.update(i)}},Wr=class{constructor(e,t){this.peerId=e,this._taskMerger=t,this._activeTotalSize=0,this._pending=new vi,this._active=new Set}pushTasks(e){for(let t of e)this._pushTask(t)}_pushTask(e){if(!this._taskHasMoreInfoThanActiveTasks(e))return;let t=this._pending.get(e.topic);if(t!=null){e.priority>t.priority&&this._pending.updatePriority(e.topic,e.priority),this._taskMerger.merge(e,t);return}this._pending.add(e)}_taskHasMoreInfoThanActiveTasks(e){let t=[];for(let n of this._active)n.topic===e.topic&&t.push(n);return t.length===0?!0:this._taskMerger.hasNewInfo(e,t)}popTasks(e){let t=0,n=[],i=this._pending.tasks();for(let o=0;o<i.length&&t<e;o++){let s=i[o];n.push(s),t+=s.size,this._pending.delete(s.topic),this._activeTotalSize+=s.size,this._active.add(s)}return{tasks:n,pendingSize:this._pending.totalSize}}taskDone(e){this._active.has(e)&&(this._activeTotalSize-=e.size,this._active.delete(e))}remove(e){this._pending.delete(e)}isIdle(){return this._pending.length===0&&this._active.size===0}static compare(e,t){return e[1]._pending.length===0?1:t[1]._pending.length===0?-1:e[1]._activeTotalSize===t[1]._activeTotalSize?t[1]._pending.length-e[1]._pending.length:e[1]._activeTotalSize-t[1]._activeTotalSize}},vi=class{constructor(){this._tasks=new Gt([],this._compare)}get length(){return this._tasks.size}get totalSize(){return[...this._tasks.values()].reduce((e,t)=>e+t.task.size,0)}get(e){return this._tasks?.get(e)?.task}add(e){this._tasks.set(e.topic,{created:Date.now(),task:e})}delete(e){this._tasks.delete(e)}tasks(){return[...this._tasks.values()].map(e=>e.task)}updatePriority(e,t){let n=this._tasks.get(e);if(n==null)return;let i=this._tasks.indexOf(e);n.task.priority=t,this._tasks.update(i)}_compare(e,t){return e[1].task.priority===t[1].task.priority?e[1].created-t[1].created:t[1].task.priority-e[1].task.priority}};var Sa={hasNewInfo(r,e){let t=!1,n=!1;for(let i of e)i.data.haveBlock&&(t=!0),i.data.isWantBlock&&(n=!0);return!!(!n&&r.data.isWantBlock||!t&&r.data.haveBlock)},merge(r,e){let t=r.data,n=e.data;!n.haveBlock&&t.haveBlock&&(n.haveBlock=t.haveBlock,n.blockSize=t.blockSize),!n.isWantBlock&&t.isWantBlock&&(n.isWantBlock=!0,(!n.haveBlock||t.haveBlock)&&(n.haveBlock=t.haveBlock,e.size=r.size)),n.isWantBlock&&n.haveBlock&&(e.size=n.blockSize)}};var Aa=B.WantType,lh=16*1024,fh=1024,Hr=class{constructor(e,t,n,i,o,s={}){this._log=se(e,"engine"),this.blockstore=t,this.network=n,this._stats=i,this._opts=this._processOpts(s),this.ledgerMap=Fe({name:"ipfs_bitswap_ledger_map",metrics:o.metrics}),this._running=!1,this._requestQueue=new $r(Sa)}_processOpts(e){return{maxSizeReplaceHasWithBlock:fh,targetMessageSize:lh,...e}}_scheduleProcessTasks(){setTimeout(()=>{this._processTasks().catch(e=>{this._log.error("error processing stats",e)})})}async _processTasks(){if(!this._running)return;let{peerId:e,tasks:t,pendingSize:n}=this._requestQueue.popTasks(this._opts.targetMessageSize);if(t.length===0)return;let i=new B(!1);i.setPendingBytes(n);let o=[],s=new Map;for(let c of t){let u=v.parse(c.topic);c.data.haveBlock?c.data.isWantBlock?(o.push(u),s.set(c.topic,c.data)):i.addHave(u):i.addDontHave(u)}let a=await this._getBlocks(o);for(let[c,u]of s){let l=v.parse(c),h=a.get(c);h!=null?i.addBlock(l,h):u.sendDontHave&&i.addDontHave(l)}if(i.empty){e!=null&&this._requestQueue.tasksDone(e,t),this._scheduleProcessTasks();return}try{e!=null&&await this.network.sendMessage(e,i);for(let[c,u]of a.entries())e!=null&&this.messageSent(e,v.parse(c),u)}catch(c){this._log.error(c)}e!=null&&this._requestQueue.tasksDone(e,t),this._scheduleProcessTasks()}wantlistForPeer(e){let t=e.toString(),n=this.ledgerMap.get(t);return n!=null?n.wantlist.sortedEntries():new Map}ledgerForPeer(e){let t=e.toString(),n=this.ledgerMap.get(t);if(n!=null)return{peer:n.partner,value:n.debtRatio(),sent:n.accounting.bytesSent,recv:n.accounting.bytesRecv,exchanged:n.exchangeCount}}peers(){return Array.from(this.ledgerMap.values()).map(e=>e.partner)}receivedBlocks(e){if(e.length!==0){for(let t of this.ledgerMap.values())for(let n of e){let i=t.wantlistContains(n.cid);if(i==null)continue;let o=n.data.length,s=this._sendAsBlock(i.wantType,o),a=o;s||(a=B.blockPresenceSize(i.cid)),this._requestQueue.pushTasks(t.partner,[{topic:i.cid.toString(E),priority:i.priority,size:a,data:{blockSize:o,isWantBlock:s,haveBlock:!0,sendDontHave:!1}}])}this._scheduleProcessTasks()}}async messageReceived(e,t){let n=this._findOrCreate(e);if(t.empty)return;if(t.full&&(n.wantlist=new ke),this._updateBlockAccounting(t.blocks,n),t.wantlist.size===0){this._scheduleProcessTasks();return}let i=[],o=[];t.wantlist.forEach(s=>{s.cancel?(n.cancelWant(s.cid),i.push(s.cid)):(n.wants(s.cid,s.priority,s.wantType),o.push(s))}),this._cancelWants(e,i),await this._addWants(e,o),this._scheduleProcessTasks()}_cancelWants(e,t){for(let n of t)this._requestQueue.remove(n.toString(E),e)}async _addWants(e,t){let n=await this._getBlockSizes(t.map(o=>o.cid)),i=[];for(let o of t){let s=o.cid.toString(E),a=n.get(s);if(a==null)o.sendDontHave&&i.push({topic:s,priority:o.priority,size:B.blockPresenceSize(o.cid),data:{isWantBlock:o.wantType===Aa.Block,blockSize:0,haveBlock:!1,sendDontHave:o.sendDontHave}});else{let c=this._sendAsBlock(o.wantType,a),u=a;c||(u=B.blockPresenceSize(o.cid)),i.push({topic:s,priority:o.priority,size:u,data:{isWantBlock:c,blockSize:a,haveBlock:!0,sendDontHave:o.sendDontHave}})}this._requestQueue.pushTasks(e,i)}}_sendAsBlock(e,t){return e===Aa.Block||t<=this._opts.maxSizeReplaceHasWithBlock}async _getBlockSizes(e){let t=await this._getBlocks(e);return new Map([...t].map(([n,i])=>[n,i.length]))}async _getBlocks(e){let t=new Map;return await Promise.all(e.map(async n=>{try{let i=await this.blockstore.get(n);t.set(n.toString(E),i)}catch(i){i.code!=="ERR_NOT_FOUND"&&this._log.error("failed to query blockstore for %s: %s",n,i)}})),t}_updateBlockAccounting(e,t){for(let n of e.values())this._log("got block (%s bytes)",n.length),t.receivedBytes(n.length)}messageSent(e,t,n){let i=this._findOrCreate(e);i.sentBytes(n.length),i.wantlist.remove(t)}numBytesSentTo(e){return this._findOrCreate(e).accounting.bytesSent}numBytesReceivedFrom(e){return this._findOrCreate(e).accounting.bytesRecv}peerDisconnected(e){this.ledgerMap.delete(e.toString())}_findOrCreate(e){let t=e.toString(),n=this.ledgerMap.get(t);if(n!=null)return n;let i=new zr(e);return this.ledgerMap.set(t,i),this._stats!=null&&this._stats.push(t,"peerCount",1),i}start(){this._running=!0}stop(){this._running=!1}};var Ha=F(Vr(),1);var ki={};V(ki,{identity:()=>wh});var wh=mt({prefix:"\0",name:"identity",encode:r=>_o(r),decode:r=>bo(r)});var Ei={};V(Ei,{base2:()=>bh});var bh=D({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ti={};V(Ti,{base8:()=>_h});var _h=D({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Si={};V(Si,{base10:()=>vh});var vh=De({prefix:"9",name:"base10",alphabet:"0123456789"});var Ai={};V(Ai,{base16:()=>xh,base16upper:()=>kh});var xh=D({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),kh=D({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Bi={};V(Bi,{base36:()=>Kt,base36upper:()=>Eh});var Kt=De({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Eh=De({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ci={};V(Ci,{base256emoji:()=>Ch});var Oa=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}"),Th=Oa.reduce((r,e,t)=>(r[t]=e,r),[]),Sh=Oa.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Ah(r){return r.reduce((e,t)=>(e+=Th[t],e),"")}function Bh(r){let e=[];for(let t of r){let n=Sh[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Ch=mt({prefix:"\u{1F680}",name:"base256emoji",encode:Ah,decode:Bh});var Qt=85;var Jy=new TextEncoder,Zy=new TextDecoder;var Pi={...ki,...Ei,...Ti,...Si,...Ai,...Wn,...Bi,...$n,...Gn,...Ci},ng={...Un,...Nn};function za(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Ra=za("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Ni=za("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=Te(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Ph={utf8:Ra,"utf-8":Ra,hex:Pi.base16,latin1:Ni,ascii:Ni,binary:Ni,...Pi},Gr=Ph;function st(r,e="utf8"){let t=Gr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}var $a=r=>`unwant:${st(r.multihash.bytes,"base64")}`,Wa=r=>`block:${st(r.multihash.bytes,"base64")}`,Kr=class extends Ha.EventEmitter{constructor(e){super(),this.setMaxListeners(ia),this._log=se(e,"notif")}hasBlock(e,t){let n=Wa(e);this._log(n),this.emit(n,t)}async wantBlock(e,t={}){if(e==null)throw new Error("Not a valid cid");let n=Wa(e),i=$a(e);return this._log(`wantBlock:${e}`),await new Promise((o,s)=>{let a=()=>{this.removeListener(n,c),s(new Error(`Block for ${e} unwanted`))},c=u=>{this.removeListener(i,a),o(u)};this.once(i,a),this.once(n,c),t.signal?.addEventListener("abort",()=>{this.removeListener(n,c),this.removeListener(i,a),s(new Error(`Want for ${e} aborted`))})})}unwantBlock(e){let t=$a(e);this._log(t),this.emit(t)}};var Qa=F(Vr(),1);var Ga=F(Vr(),1),Di=F(Va(),1),Xt=class extends Ga.EventEmitter{constructor(e,t){super(),this._options=t,this._queue=[],this._stats={},this._frequencyLastTime=Date.now(),this._frequencyAccumulators={},this._movingAverages={},this._update=this._update.bind(this),e.forEach(n=>{this._stats[n]=BigInt(0),this._movingAverages[n]={},this._options.movingAverageIntervals.forEach(i=>{(this._movingAverages[n][i]=(0,Di.default)(i)).push(this._frequencyLastTime,0)})}),this._enabled=this._options.enabled}enable(){this._enabled=!0}disable(){this._enabled=!1}stop(){this._timeout!=null&&clearTimeout(this._timeout)}get snapshot(){return Object.assign({},this._stats)}get movingAverages(){return Object.assign({},this._movingAverages)}push(e,t){this._enabled&&(this._queue.push([e,t,Date.now()]),this._resetComputeTimeout())}_resetComputeTimeout(){this._timeout!=null&&clearTimeout(this._timeout),this._timeout=setTimeout(this._update,this._nextTimeout())}_nextTimeout(){let e=this._queue.length/this._options.computeThrottleMaxQueueSize;return Math.max(this._options.computeThrottleTimeout*(1-e),0)}_update(){if(this._timeout=void 0,this._queue.length>0){let e;for(;this._queue.length>0;){let t=e=this._queue.shift();t!=null&&this._applyOp(t)}e!=null&&this._updateFrequency(e[2]),this.emit("update",this._stats)}}_updateFrequency(e){let t=e-this._frequencyLastTime;t>0&&Object.keys(this._stats).forEach(n=>{this._updateFrequencyFor(n,t,e)}),this._frequencyLastTime=e}_updateFrequencyFor(e,t,n){let i=this._frequencyAccumulators[e]??0;this._frequencyAccumulators[e]=0;let o=i/t*1e3,s=this._movingAverages[e];s==null&&(s=this._movingAverages[e]={}),this._options.movingAverageIntervals.forEach(a=>{let c=s[a];c==null&&(c=s[a]=(0,Di.default)(a)),c.push(n,o)})}_applyOp(e){let t=e[0],n=e[1];if(typeof n!="number")throw new Error(`invalid increment number: ${n}`);Object.prototype.hasOwnProperty.call(this._stats,t)||(this._stats[t]=BigInt(0)),this._stats[t]=BigInt(this._stats[t])+BigInt(n),this._frequencyAccumulators[t]==null&&(this._frequencyAccumulators[t]=0),this._frequencyAccumulators[t]+=n}};var Ka={enabled:!1,computeThrottleTimeout:1e3,computeThrottleMaxQueueSize:1e3,movingAverageIntervals:[60*1e3,5*60*1e3,15*60*1e3]},Qr=class extends Qa.EventEmitter{constructor(e,t=[],n=Ka){super();let i=Object.assign({},Ka,n);if(typeof i.computeThrottleTimeout!="number")throw new Error("need computeThrottleTimeout");if(typeof i.computeThrottleMaxQueueSize!="number")throw new Error("need computeThrottleMaxQueueSize");this._initialCounters=t,this._options=i,this._enabled=this._options.enabled,this._global=new Xt(t,i),this._global.on("update",o=>this.emit("update",o)),this._peers=Fe({name:"ipfs_bitswap_stats_peers",metrics:e.metrics})}enable(){this._enabled=!0,this._options.enabled=!0,this._global.enable()}disable(){this._enabled=!1,this._options.enabled=!1,this._global.disable()}stop(){this._enabled=!1,this._global.stop();for(let e of this._peers)e[1].stop()}get snapshot(){return this._global.snapshot}get movingAverages(){return this._global.movingAverages}forPeer(e){let t=e.toString();return this._peers.get(t)}push(e,t,n){if(this._enabled&&(this._global.push(t,n),e!=null)){let i=this._peers.get(e);i==null&&(i=new Xt(this._initialCounters,this._options),this._peers.set(e,i)),i.push(t,n)}}disconnected(e){let t=e.toString(),n=this._peers.get(t);n!=null&&(n.stop(),this._peers.delete(t))}};var Ya=F(Ja(),1);async function _e(r){for await(let e of r);}async function*R(r,e){for await(let t of r)await e(t)&&(yield t)}async function*Re(r,e){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}async function Jt(r){let e=[];for await(let t of r)e.push(t);return e}var Za=(r,e)=>async function*(){yield*(await Jt(r)).sort(e)}(),Se=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}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{key:n,value:i}}async*getMany(e,t={}){for await(let n of e)yield 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 _e(this.putMany(e,n)),e=[],await _e(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&&(n=R(n,i=>i.key.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>R(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Za(i,o),n)),e.offset!=null){let i=0;n=R(n,()=>i++>=(e.offset||0))}return e.limit!=null&&(n=Re(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null&&(n=R(n,i=>i.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>R(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Za(i,o),n)),e.offset!=null){let i=0;n=R(n,()=>i++>=e.offset)}return e.limit!=null&&(n=Re(n,e.limit)),n}};var Dh={async getHasher(){throw new Error("Not implemented")}},Ih={maxInboundStreams:32,maxOutboundStreams:128,incomingStreamTimeout:3e4,hashLoader:Dh,statsEnabled:!1,statsComputeThrottleTimeout:1e3,statsComputeThrottleMaxQueueSize:1e3},Mh=["blocksReceived","dataReceived","dupBlksReceived","dupDataReceived","blocksSent","dataSent","providesBufferLength","wantListLength","peerCount"],Xr=class extends Se{constructor(e,t,n={}){super(),this._libp2p=e,this._log=se(this.peerId),this._options=Object.assign({},Ih,n),this._stats=new Qr(e,Mh,{enabled:this._options.statsEnabled,computeThrottleTimeout:this._options.statsComputeThrottleTimeout,computeThrottleMaxQueueSize:this._options.statsComputeThrottleMaxQueueSize}),this.network=new Rr(e,this,this._stats,{hashLoader:n.hashLoader,maxInboundStreams:n.maxInboundStreams,maxOutboundStreams:n.maxOutboundStreams,incomingStreamTimeout:n.incomingStreamTimeout}),this.blockstore=t,this.engine=new Hr(this.peerId,t,this.network,this._stats,e),this.wm=new Lr(this.peerId,this.network,this._stats,e),this.notifications=new Kr(this.peerId),this.started=!1}isStarted(){return this.started}get peerId(){return this._libp2p.peerId}async _receiveMessage(e,t){try{await this.engine.messageReceived(e,t)}catch{this._log("failed to receive message",t)}if(t.blocks.size===0)return;let n=[];for(let[i,o]of t.blocks.entries()){let s=v.parse(i);n.push({wasWanted:this.wm.wantlist.contains(s),cid:s,data:o})}this.wm.cancelWants(n.filter(({wasWanted:i})=>i).map(({cid:i})=>i)),await Promise.all(n.map(async({cid:i,wasWanted:o,data:s})=>{await this._handleReceivedBlock(e,i,s,o)}))}async _handleReceivedBlock(e,t,n,i){this._log("received block");let o=await this.blockstore.has(t);this._updateReceiveCounters(e.toString(),t,n,o),i&&await this.put(t,n)}_updateReceiveCounters(e,t,n,i){this._stats.push(e,"blocksReceived",1),this._stats.push(e,"dataReceived",n.length),i&&(this._stats.push(e,"dupBlksReceived",1),this._stats.push(e,"dupDataReceived",n.length))}_receiveError(e){this._log.error("ReceiveError",e)}_onPeerConnected(e){this.wm.connected(e)}_onPeerDisconnected(e){this.wm.disconnected(e),this.engine.peerDisconnected(e),this._stats.disconnected(e)}enableStats(){this._stats.enable()}disableStats(){this._stats.disable()}wantlistForPeer(e,t){return this.engine.wantlistForPeer(e)}ledgerForPeer(e){return this.engine.ledgerForPeer(e)}async get(e,t={}){let n=async(c,u)=>(this.wm.wantBlocks([c],u),await this.notifications.wantBlock(c,u)),i=!1,o=async(c,u)=>{try{return await this.blockstore.get(c,u)}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;return i||(i=!0,this.network.findAndConnect(c,u).catch(h=>{this._log.error(h)})),await n(c,u)}},s=new AbortController,a=t.signal!=null?(0,Ya.anySignal)([t.signal,s.signal]):s.signal;try{return await Promise.race([this.notifications.wantBlock(e,{signal:a}),o(e,{signal:a})])}finally{s.abort()}}async*getMany(e,t={}){for await(let n of e)yield this.get(n,t)}unwant(e){let t=Array.isArray(e)?e:[e];this.wm.unwantBlocks(t),t.forEach(n=>{this.notifications.unwantBlock(n)})}cancelWants(e){this.wm.cancelWants(Array.isArray(e)?e:[e])}async put(e,t,n){await this.blockstore.put(e,t),this._sendHaveBlockNotifications(e,t)}async*putMany(e,t){for await(let{key:n,value:i}of this.blockstore.putMany(e,t))this._sendHaveBlockNotifications(n,i),yield{key:n,value:i}}_sendHaveBlockNotifications(e,t){this.notifications.hasBlock(e,t),this.engine.receivedBlocks([{cid:e,data:t}]),this.network.provide(e).catch(n=>{this._log.error("Failed to provide: %s",n.message)})}getWantlist(){return this.wm.wantlist.entries()}peers(){return this.engine.peers()}stat(){return this._stats}async start(){this.wm.start(),await this.network.start(),this.engine.start(),this.started=!0}async stop(){this._stats.stop(),this.wm.stop(),await this.network.stop(),this.engine.stop(),this.started=!1}unwrap(){return this.blockstore}async has(e){return await this.blockstore.has(e)}};var ec=(r,e,t={})=>new Xr(r,e,t);var Jr={};V(Jr,{abortedError:()=>Uh,notFoundError:()=>Ui});var Mi=F(Mr(),1);function Ui(r){return r=r||new Error("Not Found"),(0,Mi.default)(r,"ERR_NOT_FOUND")}function Uh(r){return r=r||new Error("Aborted"),(0,Mi.default)(r,"ERR_ABORTED")}var Zt=class extends Se{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(e,t){this.data[j.encode(e.multihash.bytes)]=t}async get(e){if(!await this.has(e))throw Ui();return this.data[j.encode(e.multihash.bytes)]}async has(e){return this.data[j.encode(e.multihash.bytes)]!==void 0}async delete(e){delete this.data[j.encode(e.multihash.bytes)]}async*_all(){yield*Object.entries(this.data).map(([e,t])=>({key:v.createV1(Qt,Ft(j.decode(e))),value:t}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>v.createV1(Qt,Ft(j.decode(e))))}};var Wg={...Jr};var fc=F(rc(),1);var er=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Oi=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},nc=r=>globalThis.DOMException===void 0?new Oi(r):new DOMException(r),ic=r=>{let e=r.reason===void 0?nc("This operation was aborted."):r.reason;return e instanceof Error?e:nc(e)};function Ri(r,e,t,n){let i,o=new Promise((s,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){s(r);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(ic(c)),c.addEventListener("abort",()=>{a(ic(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof t=="function"){try{s(t())}catch(l){a(l)}return}let c=typeof t=="string"?t:`Promise timed out after ${e} milliseconds`,u=t instanceof Error?t:new er(c);typeof r.cancel=="function"&&r.cancel(),a(u)},e),(async()=>{try{s(await r)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function zi(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 at=function(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)},Ae,tr=class{constructor(){Ae.set(this,[])}enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&at(this,Ae,"f")[this.size-1].priority>=t.priority){at(this,Ae,"f").push(n);return}let i=zi(at(this,Ae,"f"),n,(o,s)=>s.priority-o.priority);at(this,Ae,"f").splice(i,0,n)}dequeue(){let e=at(this,Ae,"f").shift();return e?.run}filter(e){return at(this,Ae,"f").filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return at(this,Ae,"f").length}};Ae=new WeakMap;var N=function(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t},b=function(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)},M,nr,ir,$e,on,or,Yr,de,rr,J,en,Z,sr,ze,tn,oc,sc,uc,ac,cc,rn,$i,Wi,sn,lc,nn,an=class extends Error{},Be=class extends fc.default{constructor(e){var t,n,i,o;if(super(),M.add(this),nr.set(this,void 0),ir.set(this,void 0),$e.set(this,0),on.set(this,void 0),or.set(this,void 0),Yr.set(this,0),de.set(this,void 0),rr.set(this,void 0),J.set(this,void 0),en.set(this,void 0),Z.set(this,0),sr.set(this,void 0),ze.set(this,void 0),tn.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:tr,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(t=e.intervalCap)===null||t===void 0?void 0:t.toString())!==null&&n!==void 0?n:""}\` (${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 \`${(o=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof e.interval})`);N(this,nr,e.carryoverConcurrencyCount,"f"),N(this,ir,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),N(this,on,e.intervalCap,"f"),N(this,or,e.interval,"f"),N(this,J,new e.queueClass,"f"),N(this,en,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,N(this,tn,e.throwOnTimeout===!0,"f"),N(this,ze,e.autoStart===!1,"f")}get concurrency(){return b(this,sr,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);N(this,sr,e,"f"),b(this,M,"m",sn).call(this)}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:b(this,tn,"f"),...t},new Promise((n,i)=>{b(this,J,"f").enqueue(async()=>{var o,s,a;N(this,Z,(s=b(this,Z,"f"),s++,s),"f"),N(this,$e,(a=b(this,$e,"f"),a++,a),"f");try{if(!((o=t.signal)===null||o===void 0)&&o.aborted)throw new an("The task was aborted.");let c=e({signal:t.signal});t.timeout&&(c=Ri(Promise.resolve(c),t.timeout)),t.signal&&(c=Promise.race([c,b(this,M,"m",lc).call(this,t.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof er&&!t.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{b(this,M,"m",uc).call(this)}},t),this.emit("add"),b(this,M,"m",rn).call(this)})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return b(this,ze,"f")?(N(this,ze,!1,"f"),b(this,M,"m",sn).call(this),this):this}pause(){N(this,ze,!0,"f")}clear(){N(this,J,new(b(this,en,"f")),"f")}async onEmpty(){b(this,J,"f").size!==0&&await b(this,M,"m",nn).call(this,"empty")}async onSizeLessThan(e){b(this,J,"f").size<e||await b(this,M,"m",nn).call(this,"next",()=>b(this,J,"f").size<e)}async onIdle(){b(this,Z,"f")===0&&b(this,J,"f").size===0||await b(this,M,"m",nn).call(this,"idle")}get size(){return b(this,J,"f").size}sizeBy(e){return b(this,J,"f").filter(e).length}get pending(){return b(this,Z,"f")}get isPaused(){return b(this,ze,"f")}};nr=new WeakMap,ir=new WeakMap,$e=new WeakMap,on=new WeakMap,or=new WeakMap,Yr=new WeakMap,de=new WeakMap,rr=new WeakMap,J=new WeakMap,en=new WeakMap,Z=new WeakMap,sr=new WeakMap,ze=new WeakMap,tn=new WeakMap,M=new WeakSet,oc=function(){return b(this,ir,"f")||b(this,$e,"f")<b(this,on,"f")},sc=function(){return b(this,Z,"f")<b(this,sr,"f")},uc=function(){var e;N(this,Z,(e=b(this,Z,"f"),e--,e),"f"),b(this,M,"m",rn).call(this),this.emit("next")},ac=function(){b(this,M,"m",Wi).call(this),b(this,M,"m",$i).call(this),N(this,rr,void 0,"f")},cc=function(){let e=Date.now();if(b(this,de,"f")===void 0){let t=b(this,Yr,"f")-e;if(t<0)N(this,$e,b(this,nr,"f")?b(this,Z,"f"):0,"f");else return b(this,rr,"f")===void 0&&N(this,rr,setTimeout(()=>{b(this,M,"m",ac).call(this)},t),"f"),!0}return!1},rn=function(){if(b(this,J,"f").size===0)return b(this,de,"f")&&clearInterval(b(this,de,"f")),N(this,de,void 0,"f"),this.emit("empty"),b(this,Z,"f")===0&&this.emit("idle"),!1;if(!b(this,ze,"f")){let e=!b(this,M,"a",cc);if(b(this,M,"a",oc)&&b(this,M,"a",sc)){let t=b(this,J,"f").dequeue();return t?(this.emit("active"),t(),e&&b(this,M,"m",$i).call(this),!0):!1}}return!1},$i=function(){b(this,ir,"f")||b(this,de,"f")!==void 0||(N(this,de,setInterval(()=>{b(this,M,"m",Wi).call(this)},b(this,or,"f")),"f"),N(this,Yr,Date.now()+b(this,or,"f"),"f"))},Wi=function(){b(this,$e,"f")===0&&b(this,Z,"f")===0&&b(this,de,"f")&&(clearInterval(b(this,de,"f")),N(this,de,void 0,"f")),N(this,$e,b(this,nr,"f")?b(this,Z,"f"):0,"f"),b(this,M,"m",sn).call(this)},sn=function(){for(;b(this,M,"m",rn).call(this););},lc=async function(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(new an("The task was aborted."))},{once:!0})})},nn=async function(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})};var Hi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},ji=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},hc=r=>globalThis.DOMException===void 0?new ji(r):new DOMException(r),dc=r=>{let e=r.reason===void 0?hc("This operation was aborted."):r.reason;return e instanceof Error?e:hc(e)};function qi(r,e){let{milliseconds:t,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=e,s,a=new Promise((c,u)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){c(r);return}if(e.signal){let{signal:h}=e;h.aborted&&u(dc(h)),h.addEventListener("abort",()=>{u(dc(h))})}let l=new Hi;s=o.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(h){u(h)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?c():i instanceof Error?u(i):(l.message=i??`Promise timed out after ${t} milliseconds`,u(l))},t),(async()=>{try{c(await r)}catch(h){u(h)}finally{o.clearTimeout.call(void 0,s)}})()});return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}var pc=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((e,t)=>(t&=63,t<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");var Vi="lock:worker:request-read",Gi="lock:worker:release-read",Ki="lock:master:grant-read",Qi="lock:worker:request-write",Xi="lock:worker:release-write",Ji="lock:master:grant-write";var We={},Et=r=>{r.addEventListener("message",e=>{Et.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{Et.dispatchEvent("message",r,e)})};Et.addEventListener=(r,e)=>{We[r]==null&&(We[r]=[]),We[r].push(e)};Et.removeEventListener=(r,e)=>{We[r]!=null&&(We[r]=We[r].filter(t=>t===e))};Et.dispatchEvent=function(r,e,t){We[r]!=null&&We[r].forEach(n=>n(e,t))};var Zi=Et;var mc=(r,e,t,n,i)=>(o,s)=>{if(s.data.type!==t)return;let a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>(o.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let h={type:l.data.type,name:l.data.name,identifier:l.data.identifier};h.type===n&&h.identifier===a.identifier&&(o.removeEventListener("message",u),c())};o.addEventListener("message",u)}))}}))},yc=(r,e,t,n)=>async()=>{let i=pc();return globalThis.postMessage({type:e,identifier:i,name:r}),await new Promise(o=>{let s=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===t&&c.identifier===i&&(globalThis.removeEventListener("message",s),o(()=>{globalThis.postMessage({type:n,identifier:i,name:r})}))};globalThis.addEventListener("message",s)})},Rh={singleProcess:!1},gc=r=>{if(r=Object.assign({},Rh,r),Boolean(globalThis.document)||r.singleProcess){let t=new EventTarget;return Zi.addEventListener("message",mc(t,"requestReadLock",Vi,Gi,Ki)),Zi.addEventListener("message",mc(t,"requestWriteLock",Qi,Xi,Ji)),t}return{isWorker:!0,readLock:t=>yc(t,Vi,Ki,Gi),writeLock:t=>yc(t,Qi,Ji,Xi)}};var ct={},He;async function Yi(r,e){let t,n=new Promise(i=>{t=i});return r.add(async()=>await qi((async()=>await new Promise(i=>{t(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var zh=(r,e)=>{if(He.isWorker===!0)return{readLock:He.readLock(r,e),writeLock:He.writeLock(r,e)};let t=new Be({concurrency:1}),n;return{async readLock(){if(n!=null)return await Yi(n,e);n=new Be({concurrency:e.concurrency,autoStart:!1});let i=n,o=Yi(n,e);return t.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await Yi(t,e)}}},$h={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function eo(r){let e=Object.assign({},$h,r);return He==null&&(He=gc(e),He.isWorker!==!0&&(He.addEventListener("requestReadLock",t=>{ct[t.data.name]!=null&&ct[t.data.name].readLock().then(async n=>await t.data.handler().finally(()=>n()))}),He.addEventListener("requestWriteLock",async t=>{ct[t.data.name]!=null&&ct[t.data.name].writeLock().then(async n=>await t.data.handler().finally(()=>n()))}))),ct[e.name]==null&&(ct[e.name]=zh(e.name,e)),ct[e.name]}var cn=class extends Se{constructor(e,t,n){super(),this.child=e,this.bitswap=n,this.pins=t,this.lock=eo()}async open(){await this.child.open()}async close(){await this.child.close()}unwrap(){return this.child}async put(e,t,n={}){let i=await this.lock.readLock();try{this.bitswap?.isStarted()===!0?await this.bitswap.put(e,t,n):await this.child.put(e,t,n)}finally{i()}}async*putMany(e,t={}){let n=await this.lock.readLock();try{let i=R(e,async({key:s})=>!await this.child.has(s));yield*(this.bitswap?.isStarted()===!0?this.bitswap:this.child).putMany(i,t)}finally{n()}}async get(e,t={}){let n=await this.lock.readLock();try{return!await this.has(e)&&this.bitswap?.isStarted()===!0?await this.bitswap?.get(e,t):await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){let n=await this.lock.readLock();try{let i=Oe({objectMode:!0}),o=Oe({objectMode:!0});Promise.resolve().then(async()=>{for await(let a of e)!await this.has(a)&&this.bitswap?.isStarted()===!0?i.push(a):o.push(a);i.end(),o.end()}).catch(a=>{i.throw(a)});let s=[this.child.getMany(o,t)];this.bitswap?.isStarted()===!0&&s.push(this.bitswap.getMany(i,t)),yield*xt(...s)}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let i=this;yield*this.child.deleteMany(async function*(){for await(let o of e){if(await i.pins.isPinned(o))throw new Error("CID was pinned");yield o}}(),t)}finally{n()}}async has(e,t={}){let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*query(e,t={}){let n=await this.lock.readLock();try{yield*this.child.query(e,t)}finally{n()}}async*queryKeys(e,t={}){let n=await this.lock.readLock();try{yield*this.child.queryKeys(e,t)}finally{n()}}};var wc=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((e,t)=>(t&=63,t<36?e+=t.toString(36):t<62?e+=(t-26).toString(36).toUpperCase():t>62?e+="-":e+="_",e),"");function un(r,e="utf8"){let t=Gr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?nt(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}var Ce="/",bc=new TextEncoder().encode(Ce),ln=bc[0],C=class{constructor(e,t){if(typeof e=="string")this._buf=un(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]!==ln)throw new Error("Invalid key")}toString(e="utf8"){return st(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new C(e.join(Ce))}static random(){return new C(wc().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new C(e):typeof e.uint8Array=="function"?new C(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=bc),this._buf[0]!==ln){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ln,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ln;)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 C.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ce).slice(1)}type(){return Wh(this.baseNamespace())}name(){return Hh(this.baseNamespace())}instance(e){return new C(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ce)||(e+=Ce),e+=this.type(),new C(e)}parent(){let e=this.list();return e.length===1?new C(Ce):new C(e.slice(0,-1).join(Ce))}child(e){return this.toString()===Ce?e:e.toString()===Ce?this:new C(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 C.withNamespaces([...this.namespaces(),...jh(e.map(t=>t.namespaces()))])}};function Wh(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Hh(r){let e=r.split(":");return e[e.length-1]}function jh(r){return[].concat(...r)}var qh=["string","number","bigint","symbol"],Vh=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","HTMLElement","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function _c(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(qh.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(Gh(r))return"Buffer";let t=Kh(r);return t||"Object"}function Gh(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function Kh(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Vh.includes(e))return e}var f=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}};f.uint=new f(0,"uint",!0);f.negint=new f(1,"negint",!0);f.bytes=new f(2,"bytes",!0);f.string=new f(3,"string",!0);f.array=new f(4,"array",!1);f.map=new f(5,"map",!1);f.tag=new f(6,"tag",!1);f.float=new f(7,"float",!0);f.false=new f(7,"false",!0);f.true=new f(7,"true",!0);f.null=new f(7,"null",!0);f.undefined=new f(7,"undefined",!0);f.break=new f(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 Tt=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",Qh=new TextDecoder,Xh=new TextEncoder;function fn(r){return Tt&&globalThis.Buffer.isBuffer(r)}function ar(r){return r instanceof Uint8Array?fn(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var Ec=Tt?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):xc(r,e,t):(r,e,t)=>t-e>64?Qh.decode(r.subarray(e,t)):xc(r,e,t),hn=Tt?r=>r.length>64?globalThis.Buffer.from(r):vc(r):r=>r.length>64?Xh.encode(r):vc(r),ve=r=>Uint8Array.from(r),St=Tt?(r,e,t)=>fn(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),Tc=Tt?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),ar(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},Sc=Tt?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Ac(r,e){if(fn(r)&&fn(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 vc(r,e=1/0){let t,n=r.length,i=null,o=[];for(let s=0;s<n;++s){if(t=r.charCodeAt(s),t>55295&&t<57344){if(!i){if(t>56319){(e-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=t;continue}if(t<56320){(e-=3)>-1&&o.push(239,191,189),i=t;continue}t=(i-55296<<10|t-56320)+65536}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,t<128){if((e-=1)<0)break;o.push(t)}else if(t<2048){if((e-=2)<0)break;o.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=3)<0)break;o.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;o.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error("Invalid code point")}return o}function xc(r,e,t){let n=[];for(;e<t;){let i=r[e],o=null,s=i>239?4:i>223?3:i>191?2:1;if(e+s<=t){let a,c,u,l;switch(s){case 1:i<128&&(o=i);break;case 2:a=r[e+1],(a&192)===128&&(l=(i&31)<<6|a&63,l>127&&(o=l));break;case 3:a=r[e+1],c=r[e+2],(a&192)===128&&(c&192)===128&&(l=(i&15)<<12|(a&63)<<6|c&63,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:a=r[e+1],c=r[e+2],u=r[e+3],(a&192)===128&&(c&192)===128&&(u&192)===128&&(l=(i&15)<<18|(a&63)<<12|(c&63)<<6|u&63,l>65535&&l<1114112&&(o=l))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),e+=s}return to(n)}var kc=4096;function to(r){let e=r.length;if(e<=kc)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=kc));return t}var Jh=256,cr=class{constructor(e=Jh){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=Sc(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=St(n,0,this.cursor)}else t=Tc(this.chunks,this.cursor);return e&&this.reset(),t}};var w="CBOR decode error:",At="CBOR encode error:",ur=[];ur[23]=1;ur[24]=2;ur[25]=3;ur[26]=5;ur[27]=9;function Le(r,e,t){if(r.length-e<t)throw new Error(`${w} not enough data for type`)}var z=[24,256,65536,4294967296,BigInt("18446744073709551616")];function Y(r,e,t){Le(r,e,1);let n=r[e];if(t.strict===!0&&n<z[0])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function ee(r,e,t){Le(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<z[1])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function te(r,e,t){Le(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<z[2])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function re(r,e,t){Le(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<z[3])throw new Error(`${w} 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(`${w} integers outside of the safe integer range are not supported`)}function Bc(r,e,t,n){return new p(f.uint,Y(r,e+1,n),2)}function Cc(r,e,t,n){return new p(f.uint,ee(r,e+1,n),3)}function Lc(r,e,t,n){return new p(f.uint,te(r,e+1,n),5)}function Pc(r,e,t,n){return new p(f.uint,re(r,e+1,n),9)}function ce(r,e){return W(r,0,e.value)}function W(r,e,t){if(t<z[0]){let n=Number(t);r.push([e|n])}else if(t<z[1]){let n=Number(t);r.push([e|24,n])}else if(t<z[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<z[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<z[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(`${w} encountered BigInt larger than allowable range`)}}ce.encodedSize=function(e){return W.encodedSize(e.value)};W.encodedSize=function(e){return e<z[0]?1:e<z[1]?2:e<z[2]?3:e<z[3]?5:9};ce.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Nc(r,e,t,n){return new p(f.negint,-1-Y(r,e+1,n),2)}function Dc(r,e,t,n){return new p(f.negint,-1-ee(r,e+1,n),3)}function Ic(r,e,t,n){return new p(f.negint,-1-te(r,e+1,n),5)}var ro=BigInt(-1),Mc=BigInt(1);function Uc(r,e,t,n){let i=re(r,e+1,n);if(typeof i!="bigint"){let o=-1-i;if(o>=Number.MIN_SAFE_INTEGER)return new p(f.negint,o,9)}if(n.allowBigInt!==!0)throw new Error(`${w} integers outside of the safe integer range are not supported`);return new p(f.negint,ro-BigInt(i),9)}function dn(r,e){let t=e.value,n=typeof t=="bigint"?t*ro-Mc:t*-1-1;W(r,e.type.majorEncoded,n)}dn.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*ro-Mc:t*-1-1;return n<z[0]?1:n<z[1]?2:n<z[2]?3:n<z[3]?5:9};dn.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function lr(r,e,t,n){Le(r,e,t+n);let i=St(r,e+t,e+t+n);return new p(f.bytes,i,t+n)}function Fc(r,e,t,n){return lr(r,e,1,t)}function Oc(r,e,t,n){return lr(r,e,2,Y(r,e+1,n))}function Rc(r,e,t,n){return lr(r,e,3,ee(r,e+1,n))}function zc(r,e,t,n){return lr(r,e,5,te(r,e+1,n))}function $c(r,e,t,n){let i=re(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer bytes lengths not supported`);return lr(r,e,9,i)}function pn(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===f.string?hn(r.value):r.value),r.encodedBytes}function Bt(r,e){let t=pn(e);W(r,e.type.majorEncoded,t.length),r.push(t)}Bt.encodedSize=function(e){let t=pn(e);return W.encodedSize(t.length)+t.length};Bt.compareTokens=function(e,t){return Yh(pn(e),pn(t))};function Yh(r,e){return r.length<e.length?-1:r.length>e.length?1:Ac(r,e)}function fr(r,e,t,n,i){let o=t+n;Le(r,e,o);let s=new p(f.string,Ec(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=St(r,e+t,e+o)),s}function Wc(r,e,t,n){return fr(r,e,1,t,n)}function Hc(r,e,t,n){return fr(r,e,2,Y(r,e+1,n),n)}function jc(r,e,t,n){return fr(r,e,3,ee(r,e+1,n),n)}function qc(r,e,t,n){return fr(r,e,5,te(r,e+1,n),n)}function Vc(r,e,t,n){let i=re(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer string lengths not supported`);return fr(r,e,9,i,n)}var Gc=Bt;function Ct(r,e,t,n){return new p(f.array,n,t)}function Kc(r,e,t,n){return Ct(r,e,1,t)}function Qc(r,e,t,n){return Ct(r,e,2,Y(r,e+1,n))}function Xc(r,e,t,n){return Ct(r,e,3,ee(r,e+1,n))}function Jc(r,e,t,n){return Ct(r,e,5,te(r,e+1,n))}function Zc(r,e,t,n){let i=re(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer array lengths not supported`);return Ct(r,e,9,i)}function Yc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${w} indefinite length items not allowed`);return Ct(r,e,1,1/0)}function mn(r,e){W(r,f.array.majorEncoded,e.value)}mn.compareTokens=ce.compareTokens;mn.encodedSize=function(e){return W.encodedSize(e.value)};function Lt(r,e,t,n){return new p(f.map,n,t)}function eu(r,e,t,n){return Lt(r,e,1,t)}function tu(r,e,t,n){return Lt(r,e,2,Y(r,e+1,n))}function ru(r,e,t,n){return Lt(r,e,3,ee(r,e+1,n))}function nu(r,e,t,n){return Lt(r,e,5,te(r,e+1,n))}function iu(r,e,t,n){let i=re(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer map lengths not supported`);return Lt(r,e,9,i)}function ou(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${w} indefinite length items not allowed`);return Lt(r,e,1,1/0)}function yn(r,e){W(r,f.map.majorEncoded,e.value)}yn.compareTokens=ce.compareTokens;yn.encodedSize=function(e){return W.encodedSize(e.value)};function su(r,e,t,n){return new p(f.tag,t,1)}function au(r,e,t,n){return new p(f.tag,Y(r,e+1,n),2)}function cu(r,e,t,n){return new p(f.tag,ee(r,e+1,n),3)}function uu(r,e,t,n){return new p(f.tag,te(r,e+1,n),5)}function lu(r,e,t,n){return new p(f.tag,re(r,e+1,n),9)}function gn(r,e){W(r,f.tag.majorEncoded,e.value)}gn.compareTokens=ce.compareTokens;gn.encodedSize=function(e){return W.encodedSize(e.value)};var od=20,sd=21,ad=22,cd=23;function fu(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${w} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new p(f.null,null,1):new p(f.undefined,void 0,1)}function hu(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${w} indefinite length items not allowed`);return new p(f.break,void 0,1)}function no(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${w} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${w} Infinity values are not supported`)}return new p(f.float,r,e)}function du(r,e,t,n){return no(io(r,e+1),3,n)}function pu(r,e,t,n){return no(oo(r,e+1),5,n)}function mu(r,e,t,n){return no(bu(r,e+1),9,n)}function wn(r,e,t){let n=e.value;if(n===!1)r.push([f.float.majorEncoded|od]);else if(n===!0)r.push([f.float.majorEncoded|sd]);else if(n===null)r.push([f.float.majorEncoded|ad]);else if(n===void 0)r.push([f.float.majorEncoded|cd]);else{let i,o=!1;(!t||t.float64!==!0)&&(gu(n),i=io(pe,1),n===i||Number.isNaN(n)?(pe[0]=249,r.push(pe.slice(0,3)),o=!0):(wu(n),i=oo(pe,1),n===i&&(pe[0]=250,r.push(pe.slice(0,5)),o=!0))),o||(ud(n),i=bu(pe,1),pe[0]=251,r.push(pe.slice(0,9)))}}wn.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){gu(n);let i=io(pe,1);if(n===i||Number.isNaN(n))return 3;if(wu(n),i=oo(pe,1),n===i)return 5}return 9};var yu=new ArrayBuffer(9),ue=new DataView(yu,1),pe=new Uint8Array(yu,0);function gu(r){if(r===1/0)ue.setUint16(0,31744,!1);else if(r===-1/0)ue.setUint16(0,64512,!1);else if(Number.isNaN(r))ue.setUint16(0,32256,!1);else{ue.setFloat32(0,r);let e=ue.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ue.setUint16(0,31744,!1);else if(t===0)ue.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?ue.setUint16(0,0):i<-14?ue.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):ue.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function io(r,e){if(r.length-e<2)throw new Error(`${w} 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 wu(r){ue.setFloat32(0,r,!1)}function oo(r,e){if(r.length-e<4)throw new Error(`${w} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function ud(r){ue.setFloat64(0,r,!1)}function bu(r,e){if(r.length-e<8)throw new Error(`${w} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}wn.compareTokens=ce.compareTokens;function A(r,e,t){throw new Error(`${w} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function bn(r){return()=>{throw new Error(`${w} ${r}`)}}var m=[];for(let r=0;r<=23;r++)m[r]=A;m[24]=Bc;m[25]=Cc;m[26]=Lc;m[27]=Pc;m[28]=A;m[29]=A;m[30]=A;m[31]=A;for(let r=32;r<=55;r++)m[r]=A;m[56]=Nc;m[57]=Dc;m[58]=Ic;m[59]=Uc;m[60]=A;m[61]=A;m[62]=A;m[63]=A;for(let r=64;r<=87;r++)m[r]=Fc;m[88]=Oc;m[89]=Rc;m[90]=zc;m[91]=$c;m[92]=A;m[93]=A;m[94]=A;m[95]=bn("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)m[r]=Wc;m[120]=Hc;m[121]=jc;m[122]=qc;m[123]=Vc;m[124]=A;m[125]=A;m[126]=A;m[127]=bn("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)m[r]=Kc;m[152]=Qc;m[153]=Xc;m[154]=Jc;m[155]=Zc;m[156]=A;m[157]=A;m[158]=A;m[159]=Yc;for(let r=160;r<=183;r++)m[r]=eu;m[184]=tu;m[185]=ru;m[186]=nu;m[187]=iu;m[188]=A;m[189]=A;m[190]=A;m[191]=ou;for(let r=192;r<=215;r++)m[r]=su;m[216]=au;m[217]=cu;m[218]=uu;m[219]=lu;m[220]=A;m[221]=A;m[222]=A;m[223]=A;for(let r=224;r<=243;r++)m[r]=bn("simple values are not supported");m[244]=A;m[245]=A;m[246]=A;m[247]=fu;m[248]=bn("simple values are not supported");m[249]=du;m[250]=pu;m[251]=mu;m[252]=A;m[253]=A;m[254]=A;m[255]=hu;var me=[];for(let r=0;r<24;r++)me[r]=new p(f.uint,r,1);for(let r=-1;r>=-24;r--)me[31-r]=new p(f.negint,r,1);me[64]=new p(f.bytes,new Uint8Array(0),1);me[96]=new p(f.string,"",1);me[128]=new p(f.array,0,1);me[160]=new p(f.map,0,1);me[244]=new p(f.false,!1,1);me[245]=new p(f.true,!0,1);me[246]=new p(f.null,null,1);function _u(r){switch(r.type){case f.false:return ve([244]);case f.true:return ve([245]);case f.null:return ve([246]);case f.bytes:return r.value.length?void 0:ve([64]);case f.string:return r.value===""?ve([96]):void 0;case f.array:return r.value===0?ve([128]):void 0;case f.map:return r.value===0?ve([160]):void 0;case f.uint:return r.value<24?ve([Number(r.value)]):void 0;case f.negint:if(r.value>=-24)return ve([31-Number(r.value)])}}var fd={float64:!1,mapSorter:pd,quickEncodeToken:_u};function hd(){let r=[];return r[f.uint.major]=ce,r[f.negint.major]=dn,r[f.bytes.major]=Bt,r[f.string.major]=Gc,r[f.array.major]=mn,r[f.map.major]=yn,r[f.tag.major]=gn,r[f.float.major]=wn,r}var vu=hd(),so=new cr,Pt=class{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(`${At} object contains circular references`);return new Pt(t,e)}},je={null:new p(f.null,null),undefined:new p(f.undefined,void 0),true:new p(f.true,!0),false:new p(f.false,!1),emptyArray:new p(f.array,0),emptyMap:new p(f.map,0)},qe={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new p(f.float,r):r>=0?new p(f.uint,r):new p(f.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new p(f.uint,r):new p(f.negint,r)},Uint8Array(r,e,t,n){return new p(f.bytes,r)},string(r,e,t,n){return new p(f.string,r)},boolean(r,e,t,n){return r?je.true:je.false},null(r,e,t,n){return je.null},undefined(r,e,t,n){return je.undefined},ArrayBuffer(r,e,t,n){return new p(f.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new p(f.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[je.emptyArray,new p(f.break)]:je.emptyArray;n=Pt.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=_n(s,t,n);return t.addBreakTokens?[new p(f.array,r.length),i,new p(f.break)]:[new p(f.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;if(!s)return t.addBreakTokens===!0?[je.emptyMap,new p(f.break)]:je.emptyMap;n=Pt.createCheck(n,r);let a=[],c=0;for(let u of o)a[c++]=[_n(u,t,n),_n(i?r.get(u):r[u],t,n)];return dd(a,t),t.addBreakTokens?[new p(f.map,s),a,new p(f.break)]:[new p(f.map,s),a]}};qe.Map=qe.Object;qe.Buffer=qe.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))qe[`${r}Array`]=qe.DataView;function _n(r,e={},t){let n=_c(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||qe[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=qe[n];if(!o)throw new Error(`${At} unsupported type: ${n}`);return o(r,n,e,t)}function dd(r,e){e.mapSorter&&r.sort(e.mapSorter)}function pd(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=vu[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function xu(r,e,t,n){if(Array.isArray(e))for(let i of e)xu(r,i,t,n);else t[e.type.major](r,e,n)}function ku(r,e,t){let n=_n(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let i=t.quickEncodeToken(n);if(i)return i;let o=e[n.type.major];if(o.encodedSize){let s=o.encodedSize(n,t),a=new cr(s);if(o(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return ar(a.chunks[0])}}return so.reset(),xu(so,n,e,t),so.toBytes(!0)}function vn(r,e){return e=Object.assign({},fd,e),ku(r,vu,e)}var md={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},ao=class{constructor(e,t={}){this.pos=0,this.data=e,this.options=t}done(){return this.pos>=this.data.length}next(){let e=this.data[this.pos],t=me[e];if(t===void 0){let n=m[e];if(!n)throw new Error(`${w} 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}},hr=Symbol.for("DONE"),xn=Symbol.for("BREAK");function yd(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=dr(e,t);if(o===xn){if(r.value===1/0)break;throw new Error(`${w} got unexpected break to lengthed array`)}if(o===hr)throw new Error(`${w} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function gd(r,e,t){let n=t.useMaps===!0,i=n?void 0:{},o=n?new Map:void 0;for(let s=0;s<r.value;s++){let a=dr(e,t);if(a===xn){if(r.value===1/0)break;throw new Error(`${w} got unexpected break to lengthed map`)}if(a===hr)throw new Error(`${w} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof a!="string")throw new Error(`${w} non-string keys not supported (got ${typeof a})`);if(t.rejectDuplicateMapKeys===!0&&(n&&o.has(a)||!n&&a in i))throw new Error(`${w} found repeat map key "${a}"`);let c=dr(e,t);if(c===hr)throw new Error(`${w} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?o.set(a,c):i[a]=c}return n?o:i}function dr(r,e){if(r.done())return hr;let t=r.next();if(t.type===f.break)return xn;if(t.type.terminal)return t.value;if(t.type===f.array)return yd(t,r,e);if(t.type===f.map)return gd(t,r,e);if(t.type===f.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=dr(r,e);return e.tags[t.value](n)}throw new Error(`${w} tag not supported (${t.value})`)}throw new Error("unsupported")}function Pe(r,e){if(!(r instanceof Uint8Array))throw new Error(`${w} data to decode must be a Uint8Array`);e=Object.assign({},md,e);let t=e.tokenizer||new ao(r,e),n=dr(t,e);if(n===hr)throw new Error(`${w} did not find any content to decode`);if(n===xn)throw new Error(`${w} got unexpected break`);if(!t.done())throw new Error(`${w} too many terminals, data makes no sense`);return n}function co(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var wd=new TextDecoder;function uo(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 kn(r,e){let t;[t,e]=uo(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 Tu(r,e){let t;return[t,e]=uo(r,e),[t&7,t>>3,e]}function bd(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=Tu(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]=kn(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]=kn(r,n),e.Name=wd.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]=uo(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 Su(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=Tu(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]=kn(r,t),n&&(i=!0)}else if(c===2){if(i)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let u;[u,t]=kn(r,t),n.push(bd(u))}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 Ab=new TextEncoder,Bb=2**32,Cb=2**31;var Nb=new TextEncoder;var Au=112;function Bu(r){let e=Su(r),t={};return e.Data&&(t.Data=e.Data),e.Links&&(t.Links=e.Links.map(n=>{let i={};try{i.Hash=v.decode(n.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(i.Name=n.Name),n.Tsize!==void 0&&(i.Tsize=n.Tsize),i})),t}var Cu=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===f.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===f.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[f.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)}[f.negint.major](e,t){this[f.uint.major](e,t)}[f.bytes.major](e,t){throw new Error(`${At} unsupported type: Uint8Array`)}[f.string.major](e,t){this.prefix(e);let n=hn(JSON.stringify(t.value));e.push(n.length>32?ar(n):n)}[f.array.major](e,t){this.prefix(e),this.inRecursive.push({type:f.array,elements:0}),e.push([91])}[f.map.major](e,t){this.prefix(e),this.inRecursive.push({type:f.map,elements:0}),e.push([123])}[f.tag.major](e,t){}[f.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===f.array)e.push([93]);else if(s.type===f.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(`${At} 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)}};var Nt=class{constructor(e,t={}){this.pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}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(`${w} 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(`${w} 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(f.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(`${w} unexpected token at position ${this.pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${w} 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(f.float,s,this.pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new p(s>=0?f.uint:f.negint,s,this.pos-e):new p(s>=0?f.uint:f.negint,BigInt(o),this.pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${w} 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(f.string,c,s)}}let e=this.pos,t=[],n=()=>{if(this.pos+4>=this.data.length)throw new Error(`${w} 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(`${w} 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(`${w} unexpected unicode sequence at position ${this.pos}`);let c,u,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],u=this.data[this.pos+2],(c&192)===128&&(u&192)===128&&(h=(o&15)<<12|(c&63)<<6|u&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:c=this.data[this.pos+1],u=this.data[this.pos+2],l=this.data[this.pos+3],(c&192)===128&&(u&192)===128&&(l&192)===128&&(h=(o&15)<<18|(c&63)<<12|(u&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(`${w} 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(`${w} unexpected string escape character at position ${this.pos}`)}break;case 34:return this.pos++,new p(f.string,to(t),this.pos-e);default:if(o<32)throw new Error(`${w} invalid control character at position ${this.pos}`);o<128?(t.push(o),this.pos++):i()}}throw new Error(`${w} unexpected end of string at position ${this.pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this.pos++,new p(f.map,1/0,1);case 91:return this.modeStack.push("array-start"),this.pos++,new p(f.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new p(f.null,null,4);case 102:return this.expect([102,97,108,115,101]),new p(f.false,!1,5);case 116:return this.expect([116,114,117,101]),new p(f.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(`${w} 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(f.break,void 0,1);if(this.ch()!==44)throw new Error(`${w} 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(f.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(f.break,void 0,1);if(this.ch()!==44)throw new Error(`${w} 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(f.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${w} 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(`${w} unexpected parse state at position ${this.pos}; this shouldn't happen`)}}};function lo(r,e){return e=Object.assign({tokenizer:new Nt(r,e)},e),Pe(r,e)}var Lu={codec:Au,async*walk(r){yield*Bu(r).Links.map(t=>t.Hash)}},Pu={codec:Qt,async*walk(){}},Nu=42,Du={codec:113,async*walk(r){let e=[],t=[];t[Nu]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let i=v.decode(n.subarray(1));return e.push(i),i},Pe(r,{tags:t}),yield*e}},fo=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(e.type===f.map){let t=this._next();if(t.type===f.string&&t.value==="/"){let n=this._next();if(n.type===f.string){if(this._next().type!==f.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new p(f.tag,42,0)}if(n.type===f.map){let i=this._next();if(i.type===f.string&&i.value==="bytes"){let o=this._next();if(o.type===f.string){for(let a=0;a<2;a++)if(this._next().type!==f.break)throw new Error("Invalid encoded Bytes form");let s=zt.decode(`m${o.value}`);return new p(f.bytes,s,o.value.length)}this.tokenBuffer.push(o)}this.tokenBuffer.push(i)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Iu={codec:297,async*walk(r){let e=[],t=[];t[Nu]=n=>{let i=v.parse(n);return e.push(i),i},lo(r,{tags:t,tokenizer:new fo(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}};var En=function(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)},Dt,ho,Mu,xd=[Pu,Lu,Du,Iu],Ou="/pin/",Ru="/pinned-block/",po=Kt,Uu=1;function Fu(r){return r.version===0&&(r=r.toV1()),new C(`${Ou}${r.toString(po)}`)}var Tn=class{constructor(e,t,n){Dt.add(this),this.datastore=e,this.blockstore=t,this.dagWalkers={},[...xd,...n].forEach(i=>{this.dagWalkers[i.codec]=i})}async add(e,t={}){let n=Fu(e);if(await this.datastore.has(n))throw new Error("Already pinned");let i=Math.round(t.depth??1/0);if(i<0)throw new Error("Depth must be greater than or equal to 0");let o=new Be({concurrency:Uu});o.add(async()=>{await En(this,Dt,"m",ho).call(this,e,o,c=>{c.pinnedBy.find(u=>Qe(u,e.bytes))==null&&(c.pinCount++,c.pinnedBy.push(e.bytes))},{...t,depth:i})});let s=co();o.on("error",c=>{o.clear(),s.reject(c)}),await Promise.race([o.onIdle(),s.promise]);let a={depth:i,metadata:t.metadata??{}};return await this.datastore.put(n,vn(a),t),{cid:e,...a}}async rm(e,t={}){let n=Fu(e),i=await this.datastore.get(n,t),o=Pe(i);await this.datastore.delete(n,t);let s=new Be({concurrency:Uu});return s.add(async()=>{await En(this,Dt,"m",ho).call(this,e,s,a=>{a.pinCount--,a.pinnedBy=a.pinnedBy.filter(c=>Qe(c,e.bytes))},{...t,depth:o.depth})}),await s.onIdle(),{cid:e,...o}}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Ou+(e.cid!=null?`${e.cid.toString(Kt)}`:"")},e)){let i=v.parse(t.toString().substring(5),Kt),o=Pe(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new C(`${Ru}${po.encode(e.multihash.bytes)}`);return await this.datastore.has(n,t)}};Dt=new WeakSet,ho=async function r(e,t,n,i){if(i.depth===-1)return;let o=this.dagWalkers[e.code];if(o==null)throw new Error(`No dag walker found for cid codec ${e.code}`);let s=await this.blockstore.get(e);await En(this,Dt,"m",Mu).call(this,e,n,i);for await(let a of o.walk(s))t.add(async()=>{await En(this,Dt,"m",r).call(this,a,t,n,{...i,depth:i.depth-1})})},Mu=async function(e,t,n){let i=new C(`${Ru}${po.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=Pe(await this.datastore.get(i,n))}catch(s){if(s.code!=="ERR_NOT_FOUND")throw s}if(t(o),o.pinCount===0&&await this.datastore.has(i)){await this.datastore.delete(i);return}await this.datastore.put(i,vn(o),n)};var mo=new C("/version"),zu=1;async function $u(r){if(!await r.has(mo)){await r.put(mo,un(`${zu}`));return}let e=await r.get(mo),t=st(e);if(parseInt(t,10)!==zu)throw new Error("Unknown datastore version, a datastore migration may be required")}var Sn=class extends Event{constructor(e,t){super(e),this.detail=t}};var Wu=F(Mr(),1);function An(r){return r=r||new Error("Not Found"),(0,Wu.default)(r,"ERR_NOT_FOUND")}var Hu="SHARDING",ju="_README";var Bn=(r,e)=>async function*(){yield*(await Jt(r)).sort(e)}();var Ne=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}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{key:n,value:i}}async*getMany(e,t={}){for await(let n of e)yield 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 _e(this.putMany(e,n)),e=[],await _e(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&&(n=R(n,i=>i.key.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>R(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Bn(i,o),n)),e.offset!=null){let i=0;n=R(n,()=>i++>=e.offset)}return e.limit!=null&&(n=Re(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null&&(n=R(n,i=>i.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>R(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Bn(i,o),n)),e.offset!=null){let i=0;n=R(n,()=>i++>=e.offset)}return e.limit!=null&&(n=Re(n,e.limit)),n}};var mr=class extends Ne{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(e,t){this.data[e.toString()]=t}async get(e){if(!await this.has(e))throw An();return this.data[e.toString()]}async has(e){return this.data[e.toString()]!==void 0}async delete(e){delete this.data[e.toString()]}async*_all(){yield*Object.entries(this.data).map(([e,t])=>({key:new C(e),value:t}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>new C(e))}};var q0=new C(Hu),V0=new C(ju);var i1=_r("datastore:core:tiered");var Bd=function(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t},yo=function(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)},It,Cn=class{constructor(e){It.set(this,void 0);let t=[Ge,Mn,Pn,...e.hashers??[]],n=e.datastore??new mr,i=e.blockstore??new Zt,o=e.libp2p??new Proxy({},{get(s,a){let c=()=>{};if(["start","stop"].includes(a.toString()))return c;if(a==="isProxy")return!0;throw new Error("Please configure Helia with a libp2p instance")},set(){throw new Error("Please configure Helia with a libp2p instance")}});this.pins=new Tn(n,i,e.dagWalkers??[]),e.libp2p!=null&&Bd(this,It,ec(o,i,{hashLoader:{getHasher:async s=>{let a=t.find(c=>c.code===s||c.name===s);if(a!=null)return await Promise.resolve(a);throw new Error(`Could not load hasher for code/name "${s}"`)}}}),"f"),this.libp2p=o,this.blockstore=new cn(i,this.pins,yo(this,It,"f")),this.datastore=n}async start(){await $u(this.datastore),yo(this,It,"f")?.start(),await this.libp2p.start()}async stop(){yo(this,It,"f")?.stop(),await this.libp2p.stop()}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,i=this.blockstore.unwrap();await _e(i.deleteMany(async function*(){for await(let o of i.queryKeys({}))await n.pins.isPinned(o,e)||(yield o,e.onProgress?.(new Sn("helia:gc:deleted",o)))}()))}finally{t()}}};It=new WeakMap;async function Cd(r={}){let e=new Cn(r);return r.start!==!1&&await e.start(),e}return Ju(Ld);})();
|
|
3
|
+
return Helia}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GCOptions, Helia } from '@helia/interface';
|
|
2
|
+
import type { Libp2p } from '@libp2p/interface-libp2p';
|
|
3
|
+
import type { Datastore } from 'interface-datastore';
|
|
4
|
+
import type { HeliaInit } from '.';
|
|
5
|
+
import { BlockStorage } from './storage.js';
|
|
6
|
+
import type { Pins } from '@helia/interface/pins';
|
|
7
|
+
export declare class HeliaImpl implements Helia {
|
|
8
|
+
#private;
|
|
9
|
+
libp2p: Libp2p;
|
|
10
|
+
blockstore: BlockStorage;
|
|
11
|
+
datastore: Datastore;
|
|
12
|
+
pins: Pins;
|
|
13
|
+
constructor(init: HeliaInit);
|
|
14
|
+
start(): Promise<void>;
|
|
15
|
+
stop(): Promise<void>;
|
|
16
|
+
gc(options?: GCOptions): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=helia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helia.d.ts","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAQjD,qBAAa,SAAU,YAAW,KAAK;;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,YAAY,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;gBAIJ,IAAI,EAAE,SAAS;IAyDtB,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAKtB,EAAE,CAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBlD"}
|