helia 0.0.0-270bb98
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 +19 -0
- package/dist/src/helia.d.ts.map +1 -0
- package/dist/src/helia.js +88 -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 +174 -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 +100 -0
- package/src/index.ts +94 -0
- package/src/pins.ts +238 -0
- package/src/storage.ts +209 -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 Uu=Object.create;var cr=Object.defineProperty;var Ou=Object.getOwnPropertyDescriptor;var Fu=Object.getOwnPropertyNames;var Ru=Object.getPrototypeOf,zu=Object.prototype.hasOwnProperty;var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),q=(r,e)=>{for(var t in e)cr(r,t,{get:e[t],enumerable:!0})},co=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fu(e))!zu.call(r,i)&&i!==t&&cr(r,i,{get:()=>e[i],enumerable:!(n=Ou(e,i))||n.enumerable});return r};var z=(r,e,t)=>(t=r!=null?Uu(Ru(r)):{},co(e||!r||!r.__esModule?cr(t,"default",{value:r,enumerable:!0}):t,r)),$u=r=>co(cr({},"__esModule",{value:!0}),r);var Lo=T((Dd,Co)=>{Co.exports=Bo;var Ao=128,Al=127,Bl=~Al,Cl=Math.pow(2,31);function Bo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Cl;)e[t++]=r&255|Ao,r/=128;for(;r&Bl;)e[t++]=r&255|Ao,r>>>=7;return e[t]=r|0,Bo.bytes=t-n+1,e}});var Io=T((Md,Po)=>{Po.exports=In;var Ll=128,No=127;function In(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw In.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&No)<<i:(s&No)*Math.pow(2,i),i+=7}while(s>=Ll);return In.bytes=o-n,t}});var Mo=T((Ud,Do)=>{var Nl=Math.pow(2,7),Pl=Math.pow(2,14),Il=Math.pow(2,21),Dl=Math.pow(2,28),Ml=Math.pow(2,35),Ul=Math.pow(2,42),Ol=Math.pow(2,49),Fl=Math.pow(2,56),Rl=Math.pow(2,63);Do.exports=function(r){return r<Nl?1:r<Pl?2:r<Il?3:r<Dl?4:r<Ml?5:r<Ul?6:r<Ol?7:r<Fl?8:r<Rl?9:10}});var Oo=T((Od,Uo)=>{Uo.exports={encode:Lo(),decode:Io(),encodingLength:Mo()}});var zo=T((Fd,Ro)=>{"use strict";var Fo=Oo();Ro.exports=r=>{if(!(r instanceof Uint8Array))throw new Error("arg needs to be a Uint8Array");let e=[];for(;r.length>0;){let t=Fo.decode(r);e.push(t),r=r.slice(Fo.decode.bytes)}return e}});var Ho=T((Rd,Wo)=>{Wo.exports=Dn;var $o=128,zl=127,$l=~zl,Wl=Math.pow(2,31);function Dn(r,e,t){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Dn.bytes=0,new RangeError("Could not encode varint");e=e||[],t=t||0;for(var n=t;r>=Wl;)e[t++]=r&255|$o,r/=128;for(;r&$l;)e[t++]=r&255|$o,r>>>=7;return e[t]=r|0,Dn.bytes=t-n+1,e}});var jo=T((zd,Vo)=>{Vo.exports=Mn;var Hl=128,qo=127;function Mn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a||i>49)throw Mn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&qo)<<i:(s&qo)*Math.pow(2,i),i+=7}while(s>=Hl);return Mn.bytes=o-n,t}});var Qo=T(($d,Go)=>{var ql=Math.pow(2,7),Vl=Math.pow(2,14),jl=Math.pow(2,21),Gl=Math.pow(2,28),Ql=Math.pow(2,35),Kl=Math.pow(2,42),Xl=Math.pow(2,49),Jl=Math.pow(2,56),Zl=Math.pow(2,63);Go.exports=function(r){return r<ql?1:r<Vl?2:r<jl?3:r<Gl?4:r<Ql?5:r<Kl?6:r<Xl?7:r<Jl?8:r<Zl?9:10}});var Xo=T((Wd,Ko)=>{Ko.exports={encode:Ho(),decode:jo(),encodingLength:Qo()}});var Yo=T((qd,Zo)=>{var dt=1e3,pt=dt*60,mt=pt*60,qe=mt*24,ef=qe*7,tf=qe*365.25;Zo.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return rf(r);if(t==="number"&&isFinite(r))return e.long?of(r):nf(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function rf(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*tf;case"weeks":case"week":case"w":return t*ef;case"days":case"day":case"d":return t*qe;case"hours":case"hour":case"hrs":case"hr":case"h":return t*mt;case"minutes":case"minute":case"mins":case"min":case"m":return t*pt;case"seconds":case"second":case"secs":case"sec":case"s":return t*dt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function nf(r){var e=Math.abs(r);return e>=qe?Math.round(r/qe)+"d":e>=mt?Math.round(r/mt)+"h":e>=pt?Math.round(r/pt)+"m":e>=dt?Math.round(r/dt)+"s":r+"ms"}function of(r){var e=Math.abs(r);return e>=qe?lr(r,e,qe,"day"):e>=mt?lr(r,e,mt,"hour"):e>=pt?lr(r,e,pt,"minute"):e>=dt?lr(r,e,dt,"second"):r+" ms"}function lr(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var ts=T((Vd,es)=>{function sf(r){t.debug=t,t.default=t,t.coerce=c,t.disable=o,t.enable=i,t.enabled=s,t.humanize=Yo(),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,v,g;function y(...x){if(!y.enabled)return;let L=y,U=Number(new Date),te=U-(h||U);L.diff=te,L.prev=h,L.curr=U,h=U,x[0]=t.coerce(x[0]),typeof x[0]!="string"&&x.unshift("%O");let R=0;x[0]=x[0].replace(/%([a-zA-Z%])/g,(re,j)=>{if(re==="%%")return"%";R++;let ne=t.formatters[j];if(typeof ne=="function"){let at=x[R];re=ne.call(L,at),x.splice(R,1),R--}return re}),t.formatArgs.call(L,x),(L.log||t.log).apply(L,x)}return y.namespace=l,y.useColors=t.useColors(),y.color=t.selectColor(l),y.extend=n,y.destroy=t.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(v!==t.namespaces&&(v=t.namespaces,g=t.enabled(l)),g),set:x=>{d=x}}),typeof t.init=="function"&&t.init(y),y}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,]+/),v=d.length;for(h=0;h<v;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}es.exports=sf});var rs=T((G,fr)=>{G.formatArgs=cf;G.save=uf;G.load=lf;G.useColors=af;G.storage=ff();G.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`."))}})();G.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 af(){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 cf(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+fr.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)}G.log=console.debug||console.log||(()=>{});function uf(r){try{r?G.storage.setItem("debug",r):G.storage.removeItem("debug")}catch{}}function lf(){let r;try{r=G.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function ff(){try{return localStorage}catch{}}fr.exports=ts()(G);var{formatters:hf}=fr.exports;hf.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var os=T((ap,is)=>{"use strict";is.exports=gf;function gf(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 us=T(cs=>{"use strict";var dr=cs;dr.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 gt=new Array(64),as=new Array(123);for(ue=0;ue<64;)as[gt[ue]=ue<26?ue+65:ue<52?ue+71:ue<62?ue-4:ue-59|43]=ue++;var ue;dr.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++]=gt[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=gt[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=gt[c|u>>6],o[s++]=gt[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=gt[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 ss="invalid encoding";dr.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=as[c])===void 0)throw Error(ss);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(ss);return n-i};dr.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var fs=T((up,ls)=>{"use strict";ls.exports=pr;function pr(){this._listeners={}}pr.prototype.on=function(e,t,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:n||this}),this};pr.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};pr.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 ws=T((lp,ys)=>{"use strict";ys.exports=hs(hs);function hs(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,ds),r.writeFloatBE=e.bind(null,ps);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,ms),r.readFloatBE=t.bind(null,gs)}(),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,ds,0,4),r.writeDoubleBE=e.bind(null,ps,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,ms,0,4),r.readDoubleBE=t.bind(null,gs,4,0)}(),r}function ds(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 ps(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 ms(r,e){return(r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24)>>>0}function gs(r,e){return(r[e]<<24|r[e+1]<<16|r[e+2]<<8|r[e+3])>>>0}});var bs=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 vs=T(_s=>{"use strict";var On=_s;On.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};On.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))};On.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 xs=T((hp,ks)=>{"use strict";ks.exports=yf;function yf(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 Ts=T((dp,Es)=>{"use strict";Es.exports=O;var Ot=Qe();function O(r,e){this.lo=r>>>0,this.hi=e>>>0}var Ge=O.zero=new O(0,0);Ge.toNumber=function(){return 0};Ge.zzEncode=Ge.zzDecode=function(){return this};Ge.length=function(){return 1};var wf=O.zeroHash="\0\0\0\0\0\0\0\0";O.fromNumber=function(e){if(e===0)return Ge;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(Ot.isString(e))if(Ot.Long)e=Ot.Long.fromString(e);else return O.fromNumber(parseInt(e,10));return e.low||e.high?new O(e.low>>>0,e.high>>>0):Ge};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 Ot.Long?new Ot.Long(this.lo|0,this.hi|0,Boolean(e)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(e)}};var Pe=String.prototype.charCodeAt;O.fromHash=function(e){return e===wf?Ge:new O((Pe.call(e,0)|Pe.call(e,1)<<8|Pe.call(e,2)<<16|Pe.call(e,3)<<24)>>>0,(Pe.call(e,4)|Pe.call(e,5)<<8|Pe.call(e,6)<<16|Pe.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 Qe=T(Fn=>{"use strict";var _=Fn;_.asPromise=os();_.base64=us();_.EventEmitter=fs();_.float=ws();_.inquire=bs();_.utf8=vs();_.pool=xs();_.LongBits=Ts();_.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||Fn;_.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 Ss(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=Ss;_.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function As(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&&Ss(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=As;_.ProtocolError=As("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 $n=T((mp,Ps)=>{"use strict";Ps.exports=I;var me=Qe(),zn,Ls=me.LongBits,bf=me.utf8;function le(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 Bs=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")},Ns=function(){return me.Buffer?function(t){return(I.create=function(i){return me.Buffer.isBuffer(i)?new zn(i):Bs(i)})(t)}:Bs};I.create=Ns();I.prototype._slice=me.Array.prototype.subarray||me.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,le(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 Rn(){var r=new Ls(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 le(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 le(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 mr(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 le(this,4);return mr(this.buf,this.pos+=4)};I.prototype.sfixed32=function(){if(this.pos+4>this.len)throw le(this,4);return mr(this.buf,this.pos+=4)|0};function Cs(){if(this.pos+8>this.len)throw le(this,8);return new Ls(mr(this.buf,this.pos+=4),mr(this.buf,this.pos+=4))}I.prototype.float=function(){if(this.pos+4>this.len)throw le(this,4);var e=me.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};I.prototype.double=function(){if(this.pos+8>this.len)throw le(this,4);var e=me.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 le(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 bf.read(e,0,e.length)};I.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw le(this,e);this.pos+=e}else do if(this.pos>=this.len)throw le(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){zn=r,I.create=Ns(),zn._configure();var e=me.Long?"toLong":"toNumber";me.merge(I.prototype,{int64:function(){return Rn.call(this)[e](!1)},uint64:function(){return Rn.call(this)[e](!0)},sint64:function(){return Rn.call(this).zzDecode()[e](!1)},fixed64:function(){return Cs.call(this)[e](!0)},sfixed64:function(){return Cs.call(this)[e](!1)}})}});var Us=T((gp,Ms)=>{"use strict";Ms.exports=Ke;var Ds=$n();(Ke.prototype=Object.create(Ds.prototype)).constructor=Ke;var Is=Qe();function Ke(r){Ds.call(this,r)}Ke._configure=function(){Is.Buffer&&(Ke.prototype._slice=Is.Buffer.prototype.slice)};Ke.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))};Ke._configure()});var Qn=T((yp,zs)=>{"use strict";zs.exports=S;var oe=Qe(),Wn,gr=oe.LongBits,Os=oe.base64,Fs=oe.utf8;function Ft(r,e,t){this.fn=r,this.len=e,this.next=void 0,this.val=t}function qn(){}function _f(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 Ft(qn,0,0),this.tail=this.head,this.states=null}var Rs=function(){return oe.Buffer?function(){return(S.create=function(){return new Wn})()}:function(){return new S}};S.create=Rs();S.alloc=function(e){return new oe.Array(e)};oe.Array!==Array&&(S.alloc=oe.pool(S.alloc,oe.Array.prototype.subarray));S.prototype._push=function(e,t,n){return this.tail=this.tail.next=new Ft(e,t,n),this.len+=t,this};function Vn(r,e,t){e[t]=r&255}function vf(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}function jn(r,e){this.len=r,this.next=void 0,this.val=e}jn.prototype=Object.create(Ft.prototype);jn.prototype.fn=vf;S.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new jn((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(Gn,10,gr.fromNumber(e)):this.uint32(e)};S.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function Gn(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=gr.from(e);return this._push(Gn,t.length(),t)};S.prototype.int64=S.prototype.uint64;S.prototype.sint64=function(e){var t=gr.from(e).zzEncode();return this._push(Gn,t.length(),t)};S.prototype.bool=function(e){return this._push(Vn,1,e?1:0)};function Hn(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(Hn,4,e>>>0)};S.prototype.sfixed32=S.prototype.fixed32;S.prototype.fixed64=function(e){var t=gr.from(e);return this._push(Hn,4,t.lo)._push(Hn,4,t.hi)};S.prototype.sfixed64=S.prototype.fixed64;S.prototype.float=function(e){return this._push(oe.float.writeFloatLE,4,e)};S.prototype.double=function(e){return this._push(oe.float.writeDoubleLE,8,e)};var kf=oe.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(Vn,1,0);if(oe.isString(e)){var n=S.alloc(t=Os.length(e));Os.decode(e,n,0),e=n}return this.uint32(t)._push(kf,t,e)};S.prototype.string=function(e){var t=Fs.length(e);return t?this.uint32(t)._push(Fs.write,t,e):this._push(Vn,1,0)};S.prototype.fork=function(){return this.states=new _f(this),this.head=this.tail=new Ft(qn,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 Ft(qn,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){Wn=r,S.create=Rs(),Wn._configure()}});var Hs=T((wp,Ws)=>{"use strict";Ws.exports=ge;var $s=Qn();(ge.prototype=Object.create($s.prototype)).constructor=ge;var Ie=Qe();function ge(){$s.call(this)}ge._configure=function(){ge.alloc=Ie._Buffer_allocUnsafe,ge.writeBytesBuffer=Ie.Buffer&&Ie.Buffer.prototype instanceof Uint8Array&&Ie.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++]}};ge.prototype.bytes=function(e){Ie.isString(e)&&(e=Ie._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(ge.writeBytesBuffer,t,e),this};function xf(r,e,t){r.length<40?Ie.utf8.write(r,e,t):e.utf8Write?e.utf8Write(r,t):e.write(r,t)}ge.prototype.string=function(e){var t=Ie.Buffer.byteLength(e);return this.uint32(t),t&&this._push(xf,t,e),this};ge._configure()});var ri=T((Im,oa)=>{"use strict";function ia(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function Rf(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 ia(r,t)}catch{t.message=r.message,t.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),ia(new i,t)}}oa.exports=Rf});var la=T((Xm,ua)=>{"use strict";ua.exports=function(){return Date.now()}});var ha=T((Jm,fa)=>{"use strict";var Ar=la(),ci=class{constructor(e,t,n){let i=this;this._started=Ar(),this._rescheduled=0,this._scheduled=t,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(Ar()-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=Ar();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=Ar(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function jf(){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 ci(arguments[0],arguments[1],r)}fa.exports=jf});var ma=T((Zm,pa)=>{"use strict";var{AbortController:Gf}=globalThis,da=ha(),Wt=class extends Gf{constructor(e){super(),this._ms=e,this._timer=da(()=>this.abort(),e),Object.setPrototypeOf(this,Wt.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=da(()=>this.abort(),this._ms)}};pa.exports={TimeoutController:Wt}});var Mr=T((Sg,di)=>{"use strict";var bt=typeof Reflect=="object"?Reflect:null,va=bt&&typeof bt.apply=="function"?bt.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},Ir;bt&&typeof bt.ownKeys=="function"?Ir=bt.ownKeys:Object.getOwnPropertySymbols?Ir=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Ir=function(e){return Object.getOwnPropertyNames(e)};function rh(r){console&&console.warn&&console.warn(r)}var xa=Number.isNaN||function(e){return e!==e};function C(){C.init.call(this)}di.exports=C;di.exports.once=sh;C.EventEmitter=C;C.prototype._events=void 0;C.prototype._eventsCount=0;C.prototype._maxListeners=void 0;var ka=10;function Dr(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(C,"defaultMaxListeners",{enumerable:!0,get:function(){return ka},set:function(r){if(typeof r!="number"||r<0||xa(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");ka=r}});C.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};C.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||xa(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 Ea(r){return r._maxListeners===void 0?C.defaultMaxListeners:r._maxListeners}C.prototype.getMaxListeners=function(){return Ea(this)};C.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")va(c,this,t);else for(var u=c.length,l=Ca(c,u),n=0;n<u;++n)va(l[n],this,t);return!0};function Ta(r,e,t,n){var i,o,s;if(Dr(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=Ea(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,rh(a)}return r}C.prototype.addListener=function(e,t){return Ta(this,e,t,!1)};C.prototype.on=C.prototype.addListener;C.prototype.prependListener=function(e,t){return Ta(this,e,t,!0)};function nh(){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 Sa(r,e,t){var n={fired:!1,wrapFn:void 0,target:r,type:e,listener:t},i=nh.bind(n);return i.listener=t,n.wrapFn=i,i}C.prototype.once=function(e,t){return Dr(t),this.on(e,Sa(this,e,t)),this};C.prototype.prependOnceListener=function(e,t){return Dr(t),this.prependListener(e,Sa(this,e,t)),this};C.prototype.removeListener=function(e,t){var n,i,o,s,a;if(Dr(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():ih(n,o),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this};C.prototype.off=C.prototype.removeListener;C.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 Aa(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?oh(i):Ca(i,i.length)}C.prototype.listeners=function(e){return Aa(this,e,!0)};C.prototype.rawListeners=function(e){return Aa(this,e,!1)};C.listenerCount=function(r,e){return typeof r.listenerCount=="function"?r.listenerCount(e):Ba.call(r,e)};C.prototype.listenerCount=Ba;function Ba(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}C.prototype.eventNames=function(){return this._eventsCount>0?Ir(this._events):[]};function Ca(r,e){for(var t=new Array(e),n=0;n<e;++n)t[n]=r[n];return t}function ih(r,e){for(;e+1<r.length;e++)r[e]=r[e+1];r.pop()}function oh(r){for(var e=new Array(r.length),t=0;t<e.length;++t)e[t]=r[t].listener||r[t];return e}function sh(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))}La(r,e,o,{once:!0}),e!=="error"&&ah(r,i,{once:!0})})}function ah(r,e,t){typeof r.on=="function"&&La(r,"error",e,t)}function La(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 Ra=T((Oa,Fa)=>{"use strict";var kh=Math.exp;Oa=Fa.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-kh(-(u-l)/e)}return a.push=function(l,h){if(s){let d=c(l,s),v=h-t,g=d*v;t=d*h+(1-d)*t,n=(1-d)*(n+v*g),i=Math.sqrt(n),o=t+d*v}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 qa=T((ry,Si)=>{function Ha(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}Si.exports=Ha;Si.exports.anySignal=Ha});var Xa=T((Py,Ci)=>{"use strict";var Ah=Object.prototype.hasOwnProperty,H="~";function Gt(){}Object.create&&(Gt.prototype=Object.create(null),new Gt().__proto__||(H=!1));function Bh(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Ka(r,e,t,n,i){if(typeof t!="function")throw new TypeError("The listener must be a function");var o=new Bh(t,n||r,i),s=H?H+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 Wr(r,e){--r._eventsCount===0?r._events=new Gt:delete r._events[e]}function W(){this._events=new Gt,this._eventsCount=0}W.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Ah.call(t,n)&&e.push(H?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};W.prototype.listeners=function(e){var t=H?H+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};W.prototype.listenerCount=function(e){var t=H?H+e:e,n=this._events[t];return n?n.fn?1:n.length:0};W.prototype.emit=function(e,t,n,i,o,s){var a=H?H+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,v;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(v=1,l=new Array(u-1);v<u;v++)l[v-1]=arguments[v];c[h].fn.apply(c[h].context,l)}}return!0};W.prototype.on=function(e,t,n){return Ka(this,e,t,n,!1)};W.prototype.once=function(e,t,n){return Ka(this,e,t,n,!0)};W.prototype.removeListener=function(e,t,n,i){var o=H?H+e:e;if(!this._events[o])return this;if(!t)return Wr(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!i||s.once)&&(!n||s.context===n)&&Wr(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:Wr(this,o)}return this};W.prototype.removeAllListeners=function(e){var t;return e?(t=H?H+e:e,this._events[t]&&Wr(this,t)):(this._events=new Gt,this._eventsCount=0),this};W.prototype.off=W.prototype.removeListener;W.prototype.addListener=W.prototype.on;W.prefixed=H;W.EventEmitter=W;typeof Ci<"u"&&(Ci.exports=W)});var md={};q(md,{createHelia:()=>pd});var vn={};q(vn,{identity:()=>_n});var yd=new Uint8Array(0);var uo=(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},_e=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 lo=r=>new TextEncoder().encode(r),fo=r=>new TextDecoder().decode(r);var Wu=go,po=128,Hu=127,qu=~Hu,Vu=Math.pow(2,31);function go(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Vu;)e[t++]=r&255|po,r/=128;for(;r&qu;)e[t++]=r&255|po,r>>>=7;return e[t]=r|0,go.bytes=t-n+1,e}var ju=wn,Gu=128,mo=127;function wn(r,n){var t=0,n=n||0,i=0,o=n,s,a=r.length;do{if(o>=a)throw wn.bytes=0,new RangeError("Could not decode varint");s=r[o++],t+=i<28?(s&mo)<<i:(s&mo)*Math.pow(2,i),i+=7}while(s>=Gu);return wn.bytes=o-n,t}var Qu=Math.pow(2,7),Ku=Math.pow(2,14),Xu=Math.pow(2,21),Ju=Math.pow(2,28),Zu=Math.pow(2,35),Yu=Math.pow(2,42),el=Math.pow(2,49),tl=Math.pow(2,56),rl=Math.pow(2,63),nl=function(r){return r<Qu?1:r<Ku?2:r<Xu?3:r<Ju?4:r<Zu?5:r<Yu?6:r<el?7:r<tl?8:r<rl?9:10},il={encode:Wu,decode:ju,encodingLength:nl},ol=il,Pt=ol;var It=(r,e=0)=>[Pt.decode(r,e),Pt.decode.bytes],ct=(r,e,t=0)=>(Pt.encode(r,e,t),e),ut=r=>Pt.encodingLength(r);var We=(r,e)=>{let t=e.byteLength,n=ut(r),i=n+ut(t),o=new Uint8Array(i+t);return ct(r,o,0),ct(t,o,n),o.set(e,i),new lt(r,t,e,o)},bn=r=>{let e=_e(r),[t,n]=It(e),[i,o]=It(e.subarray(n)),s=e.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new lt(t,i,s,e)},yo=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&uo(r.bytes,t.bytes)}},lt=class{constructor(e,t,n,i){this.code=e,this.size=t,this.digest=n,this.bytes=i}};var wo=0,sl="identity",bo=_e,al=r=>We(wo,bo(r)),_n={code:wo,name:sl,encode:bo,digest:al};var Tn={};q(Tn,{sha256:()=>He,sha512:()=>En});var xn=({name:r,code:e,encode:t})=>new kn(r,e,t),kn=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?We(this.code,t):t.then(n=>We(this.code,n))}else throw Error("Unknown type, must be binary type")}};var vo=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),He=xn({name:"sha2-256",code:18,encode:vo("SHA-256")}),En=xn({name:"sha2-512",code:19,encode:vo("SHA-512")});var Ln={};q(Ln,{base58btc:()=>E,base58flickr:()=>dl});function cl(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(g){if(g instanceof Uint8Array||(ArrayBuffer.isView(g)?g=new Uint8Array(g.buffer,g.byteOffset,g.byteLength):Array.isArray(g)&&(g=Uint8Array.from(g))),!(g instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(g.length===0)return"";for(var y=0,x=0,L=0,U=g.length;L!==U&&g[L]===0;)L++,y++;for(var te=(U-L)*l+1>>>0,R=new Uint8Array(te);L!==U;){for(var ce=g[L],re=0,j=te-1;(ce!==0||re<x)&&j!==-1;j--,re++)ce+=256*R[j]>>>0,R[j]=ce%a>>>0,ce=ce/a>>>0;if(ce!==0)throw new Error("Non-zero carry");x=re,L++}for(var ne=te-x;ne!==te&&R[ne]===0;)ne++;for(var at=c.repeat(y);ne<te;++ne)at+=r.charAt(R[ne]);return at}function d(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var y=0;if(g[y]!==" "){for(var x=0,L=0;g[y]===c;)x++,y++;for(var U=(g.length-y)*u+1>>>0,te=new Uint8Array(U);g[y];){var R=t[g.charCodeAt(y)];if(R===255)return;for(var ce=0,re=U-1;(R!==0||ce<L)&&re!==-1;re--,ce++)R+=a*te[re]>>>0,te[re]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");L=ce,y++}if(g[y]!==" "){for(var j=U-L;j!==U&&te[j]===0;)j++;for(var ne=new Uint8Array(x+(U-j)),at=x;j!==U;)ne[at++]=te[j++];return ne}}}function v(g){var y=d(g);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:v}}var ul=cl,ll=ul,ko=ll;var Sn=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")}},An=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 xo(this,e)}},Bn=class{constructor(e){this.decoders=e}or(e){return xo(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`)}},xo=(r,e)=>new Bn({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),Cn=class{constructor(e,t,n,i){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=i,this.encoder=new Sn(e,t,n),this.decoder=new An(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},ht=({name:r,prefix:e,encode:t,decode:n})=>new Cn(r,e,t,n),Le=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:i}=ko(t,e);return ht({prefix:r,name:e,encode:n,decode:o=>_e(i(o))})},fl=(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},hl=(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},P=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>ht({prefix:e,name:r,encode(i){return hl(i,n,t)},decode(i){return fl(i,n,t,r)}});var E=Le({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),dl=Le({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Nn={};q(Nn,{base32:()=>ve,base32hex:()=>yl,base32hexpad:()=>bl,base32hexpadupper:()=>_l,base32hexupper:()=>wl,base32pad:()=>ml,base32padupper:()=>gl,base32upper:()=>pl,base32z:()=>vl});var ve=P({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),pl=P({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ml=P({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),gl=P({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),yl=P({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),wl=P({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),bl=P({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),_l=P({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),vl=P({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Eo=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return xl(t,Pn(r),e||E.encoder);default:return El(t,Pn(r),e||ve.encoder)}};var To=new WeakMap,Pn=r=>{let e=To.get(r);if(e==null){let t=new Map;return To.set(r,t),t}return e},k=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!==Dt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Tl)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return k.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=We(e,t);return k.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 k.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&yo(e.multihash,n.multihash)}toString(e){return Eo(this,e)}toJSON(){return{"/":Eo(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 k)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:i,multihash:o,bytes:s}=t;return new k(n,i,o,s||So(n,i,o.bytes))}else if(t[Sl]===!0){let{version:n,multihash:i,code:o}=t,s=bn(i);return k.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!==Dt)throw new Error(`Version 0 CID must use dag-pb (code: ${Dt}) block encoding`);return new k(e,t,n,n.bytes)}case 1:{let i=So(e,t,n.bytes);return new k(e,t,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return k.create(0,Dt,e)}static createV1(e,t){return k.create(1,e,t)}static decode(e){let[t,n]=k.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=k.inspectBytes(e),n=t.size-t.multihashSize,i=_e(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 lt(t.multihashCode,t.digestSize,o,i);return[t.version===0?k.createV0(s):k.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[h,d]=It(e.subarray(t));return t+=d,h},i=n(),o=Dt;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]=kl(e,t),o=k.decode(i);if(o.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Pn(o).set(n,e),o}},kl=(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 ve.prefix:{let t=e||ve;return[ve.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)]}}},xl=(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},El=(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},Dt=112,Tl=18,So=(r,e,t)=>{let n=ut(r),i=n+ut(e),o=new Uint8Array(i+t.byteLength);return ct(r,o,0),ct(e,o,n),o.set(t,i),o},Sl=Symbol.for("@ipld/js-cid/CID");var Qs=z(zo(),1);var Mt=z(Xo(),1);function Yl(r){let e=new Uint8Array(r.reduce((n,i)=>n+Mt.default.encodingLength(i),0)),t=0;for(let n of r)e=Mt.encode(n,e,t),t+=Mt.default.encodingLength(n);return e}var Jo=Yl;var pe=z(rs(),1);var Un={};q(Un,{base64:()=>Ut,base64pad:()=>df,base64url:()=>pf,base64urlpad:()=>mf});var Ut=P({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),df=P({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),pf=P({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),mf=P({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});pe.default.formatters.b=r=>r==null?"undefined":E.baseEncode(r);pe.default.formatters.t=r=>r==null?"undefined":ve.baseEncode(r);pe.default.formatters.m=r=>r==null?"undefined":Ut.baseEncode(r);pe.default.formatters.p=r=>r==null?"undefined":r.toString();pe.default.formatters.c=r=>r==null?"undefined":r.toString();pe.default.formatters.k=r=>r==null?"undefined":r.toString();function ns(r){return Object.assign((0,pe.default)(r),{error:(0,pe.default)(`${r}:error`),trace:(0,pe.default)(`${r}:trace`)})}function Ve(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 je=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 Ne=class{constructor(e,t,n,i,o){this.entry=new je(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 ie=(r,e)=>{let t=["bitswap"];return e!=null&&t.push(e),r!=null&&t.push(`${r.toString().slice(0,8)}`),ns(t.join(":"))};var hr=(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&&!Ve(n,i)||n instanceof Ne&&i instanceof Ne&&!n.equals(i))return!1}return!0};var Kn=z($n(),1),qs=z(Us(),1),Vs=z(Qe(),1),Xn=z(Qn(),1),js=z(Hs(),1);function Ef(){Vs.default._configure(),Kn.default._configure(qs.default),Xn.default._configure(js.default)}Ef();var Gs=["uint64","int64","sint64","fixed64","sfixed64"];function Tf(r){for(let e of Gs){if(r[e]==null)continue;let t=r[e];r[e]=function(){return BigInt(t.call(this).toString())}}return r}function Jn(r){return Tf(new Kn.default(r))}function Sf(r){for(let e of Gs){if(r[e]==null)continue;let t=r[e];r[e]=function(n){return t.call(this,n.toString())}}return r}function Zn(){return Sf(Xn.default.create())}function Xe(r,e){let t=Jn(r instanceof Uint8Array?r:r.subarray());return e.decode(t)}function Je(r,e){let t=Zn();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var yt;(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"})(yt||(yt={}));function yr(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function wr(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 yr("enum",yt.VARINT,t,n)}function Ze(r,e){return yr("message",yt.LENGTH_DELIMITED,r,e)}var V;(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=()=>wr(u)}(c=a.WantType||(a.WantType={}));let l;(function(d){let v;d.codec=()=>(v==null&&(v=Ze((g,y,x={})=>{x.lengthDelimited!==!1&&y.fork(),g.block!=null&&g.block.byteLength>0&&(y.uint32(10),y.bytes(g.block)),g.priority!=null&&g.priority!==0&&(y.uint32(16),y.int32(g.priority)),g.cancel!=null&&g.cancel!==!1&&(y.uint32(24),y.bool(g.cancel)),g.wantType!=null&&u[g.wantType]!==0&&(y.uint32(32),r.Wantlist.WantType.codec().encode(g.wantType,y)),g.sendDontHave!=null&&g.sendDontHave!==!1&&(y.uint32(40),y.bool(g.sendDontHave)),x.lengthDelimited!==!1&&y.ldelim()},(g,y)=>{let x={block:new Uint8Array(0),priority:0,cancel:!1,wantType:c.Block,sendDontHave:!1},L=y==null?g.len:g.pos+y;for(;g.pos<L;){let U=g.uint32();switch(U>>>3){case 1:x.block=g.bytes();break;case 2:x.priority=g.int32();break;case 3:x.cancel=g.bool();break;case 4:x.wantType=r.Wantlist.WantType.codec().decode(g);break;case 5:x.sendDontHave=g.bool();break;default:g.skipType(U&7);break}}return x})),v),d.encode=g=>Je(g,d.codec()),d.decode=g=>Xe(g,d.codec())})(l=a.Entry||(a.Entry={}));let h;a.codec=()=>(h==null&&(h=Ze((d,v,g={})=>{if(g.lengthDelimited!==!1&&v.fork(),d.entries!=null)for(let y of d.entries)v.uint32(10),r.Wantlist.Entry.codec().encode(y,v);d.full!=null&&d.full!==!1&&(v.uint32(16),v.bool(d.full)),g.lengthDelimited!==!1&&v.ldelim()},(d,v)=>{let g={entries:[],full:!1},y=v==null?d.len:d.pos+v;for(;d.pos<y;){let x=d.uint32();switch(x>>>3){case 1:g.entries.push(r.Wantlist.Entry.codec().decode(d,d.uint32()));break;case 2:g.full=d.bool();break;default:d.skipType(x&7);break}}return g})),h),a.encode=d=>Je(d,a.codec()),a.decode=d=>Xe(d,a.codec())})(e=r.Wantlist||(r.Wantlist={}));let t;(function(a){let c;a.codec=()=>(c==null&&(c=Ze((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 v=u.uint32();switch(v>>>3){case 1:h.prefix=u.bytes();break;case 2:h.data=u.bytes();break;default:u.skipType(v&7);break}}return h})),c),a.encode=u=>Je(u,a.codec()),a.decode=u=>Xe(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=()=>wr(i)}(n=r.BlockPresenceType||(r.BlockPresenceType={}));let o;(function(a){let c;a.codec=()=>(c==null&&(c=Ze((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 v=u.uint32();switch(v>>>3){case 1:h.cid=u.bytes();break;case 2:h.type=r.BlockPresenceType.codec().decode(u);break;default:u.skipType(v&7);break}}return h})),c),a.encode=u=>Je(u,a.codec()),a.decode=u=>Xe(u,a.codec())})(o=r.BlockPresence||(r.BlockPresence={}));let s;r.codec=()=>(s==null&&(s=Ze((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=>Je(a,r.codec()),r.decode=a=>Xe(a,r.codec())})(V||(V={}));var br=class extends Error{constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var Af,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 Ne(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 V.encode({wantlist:{entries:Array.from(this.wantlist.values()).map(e=>({block:e.cid.bytes,priority:Number(e.priority),cancel:Boolean(e.cancel),wantType:V.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=k.parse(t),o=i.version,s=i.code,a=i.multihash.code,c=i.multihash.digest.length,u=Jo([o,s,a,c]);e.payload.push({prefix:u,data:n})}for(let[t,n]of this.blockPresences)e.blockPresences.push({cid:k.parse(t).bytes,type:n});return this.pendingBytes>0&&(e.pendingBytes=this.pendingBytes),V.encode(e)}equals(e){return!(this.full!==e.full||this.pendingBytes!==e.pendingBytes||!hr(this.wantlist,e.wantlist)||!hr(this.blocks,e.blocks)||!hr(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}>`}};Af=B;B.Entry=Ne;B.WantType={Block:V.Wantlist.WantType.Block,Have:V.Wantlist.WantType.Have};B.BlockPresenceType={Have:V.BlockPresenceType.Have,DontHave:V.BlockPresenceType.DontHave};B.deserialize=async(r,e)=>{let t=V.decode(r),n=t.wantlist?.full===!0,i=new B(n);return t.wantlist?.entries.forEach(o=>{if(o.block==null)return;let s=k.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=k.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 He.digest(o),a=k.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,Qs.default)(o.prefix),a=s[0],c=s[1],u=s[2],l=u===He.code?He: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=k.create(a,c,h);i.addBlock(d,o.data)})),i.setPendingBytes(t.pendingBytes)),i)};B.blockPresenceSize=r=>r.bytes.length+1;var Yn=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 De(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Yn({name:e,metrics:t}):n=new Map,n}var Ks={Block:V.Wantlist.WantType.Block,Have:V.Wantlist.WantType.Have},Bf=(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?De({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===Ks.Have&&n===Ks.Block&&(o.wantType=n)):(this.set.set(i,new je(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(Bf(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=je;var Xs=Math.pow(2,31)-1,Js=1e3,Zs=1;var Ys=Cf;function Cf(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 _r=class{constructor(e,t,n){this.peerId=t,this.network=n,this.refcnt=1,this._entries=[],this._log=ie(e,"msgqueue"),this.sendEntries=Ys(this.sendEntries.bind(this),Zs)}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 vr=class{constructor(e,t,n,i){this.peers=De({name:"ipfs_bitswap_want_manager_peers",metrics:i.metrics}),this.wantlist=new ke(n,i),this.network=t,this._peerId=e,this._log=ie(e,"want")}_addEntries(e,t,n){let i=e.map((o,s)=>new B.Entry(o,Xs-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 _r(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 Ye(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function xe(r=0){return globalThis.Buffer?.alloc!=null?Ye(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function Ee(r=0){return globalThis.Buffer?.allocUnsafe!=null?Ye(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function ti(r,e){e==null&&(e=r.reduce((i,o)=>i+o.length,0));let t=Ee(e),n=0;for(let i of r)t.set(i,n),n+=i.length;return Ye(t)}var ta=Symbol.for("@achingbrain/uint8arraylist");function ea(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 kr(r){return Boolean(r?.[ta])}var ye=class{constructor(...e){Object.defineProperty(this,ta,{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(kr(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(kr(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=ea(this.bufs,e);return t.buf[t.index]}set(e,t){let n=ea(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(kr(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 ti(n,i)}subarray(e,t){let{bufs:n,length:i}=this._subList(e,t);return n.length===1?n[0]:ti(n,i)}sublist(e,t){let{bufs:n,length:i}=this._subList(e,t),o=new ye;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(!kr(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 v=this.get(h+d);if(n[d]!==v){l=Math.max(1,d-a[v]);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=Ee(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=xe(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=xe(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=xe(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=Ee(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=xe(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=xe(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=xe(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=xe(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=xe(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,t,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof ye)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Ve(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new ye;return n.bufs=e,t==null&&(t=e.reduce((i,o)=>i+o.byteLength,0)),n.length=t,n}};function xr(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 ra=4294967296,Q=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 Q(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 Q(t,n)}toBytes(e,t=0){let n=xr(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 Q;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>ra&&(i=0,++n>ra&&(n=0))),new Q(n,i)}static fromNumber(e){if(e===0)return new Q;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 Q(i,n)}static fromBytes(e,t=0){let n=xr(e),i=new Q,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 Lf=Math.pow(2,7),Nf=Math.pow(2,14),Pf=Math.pow(2,21),If=Math.pow(2,28),Df=Math.pow(2,35),Mf=Math.pow(2,42),Uf=Math.pow(2,49),Of=Math.pow(2,56),Ff=Math.pow(2,63),et={encodingLength(r){return r<Lf?1:r<Nf?2:r<Pf?3:r<If?4:r<Df?5:r<Mf?6:r<Uf?7:r<Of?8:r<Ff?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=Ee(et.encodingLength(r))),Q.fromNumber(r).toBytes(e,t),e},decode(r,e=0){return Q.fromBytes(r,e).toNumber(!0)}};function na(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Er=r=>{let e=et.encodingLength(r),t=na(e);return et.encode(r,t),Er.bytes=e,t};Er.bytes=0;function Tr(r){r=r??{};let e=r.lengthEncoder??Er;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}}}Tr.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??Er;return new ye(t(r.byteLength),r)};var Rt=z(ri(),1),zf=8,$f=1024*1024*4,tt;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(tt||(tt={}));var ni=r=>{let e=et.decode(r);return ni.bytes=et.encodingLength(e),e};ni.bytes=0;function zt(r){return async function*(t){let n=new ye,i=tt.LENGTH,o=-1,s=r?.lengthDecoder??ni,a=r?.maxLengthLength??zf,c=r?.maxDataLength??$f;for await(let u of t)for(n.append(u);n.byteLength>0;){if(i===tt.LENGTH)try{if(o=s(n),o<0)throw(0,Rt.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,Rt.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=tt.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Rt.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===tt.DATA){if(n.byteLength<o)break;let l=n.sublist(0,o);n.consume(o),r?.onData!=null&&r.onData(l),yield l,i=tt.LENGTH}}if(n.byteLength>0)throw(0,Rt.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}zt.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 zt({...e??{},onLength:o=>{t=o}})(n)};var Sr=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}},wt=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Sr(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 Sr(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 rt(r={}){return Hf(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 Hf(r,e){e=e??{};let t=e.onEnd,n=new wt,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((y,x)=>{o=L=>{o=null,n.push(L);try{y(r(n))}catch(U){x(U)}return i}}):r(n),c=y=>o!=null?o(y):(n.push(y),i),u=y=>(n=new wt,o!=null?o({error:y}):(n.push({error:y}),i)),l=y=>{if(s)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:y})},h=y=>s?i:(s=!0,y!=null?u(y):c({done:!0})),d=()=>(n=new wt,h(),{done:!0}),v=y=>(h(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:v,push:l,end:h,get readableLength(){return n.size}},t==null)return i;let g=i;return i={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(y){return g.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return g.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(y){return g.end(y),t!=null&&(t(y),t=void 0),i},get readableLength(){return g.readableLength}},i}async function*$t(...r){let e=rt({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 qf=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},sa=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),ii=r=>r!=null&&typeof r.sink=="function"&&sa(r.source),Vf=r=>e=>{let t=r.sink(e);if(t.then!=null){let n=rt({objectMode:!0});return t.then(()=>{n.end()},o=>{n.end(o)}),$t(n,async function*(){yield*r.source,n.end()}())}return r.source};function oi(r,...e){if(ii(r)){let n=r;r=()=>n.source}else if(sa(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&ii(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++)ii(t[n])&&(t[n]=Vf(t[n]));return qf(...t)}var si=Symbol.for("@libp2p/topology");var aa=()=>{},ai=class{constructor(e){this.min=e.min??0,this.max=e.max??1/0,this.peers=new Set,this.onConnect=e.onConnect??aa,this.onDisconnect=e.onDisconnect??aa}get[Symbol.toStringTag](){return si.toString()}get[si](){return!0}async setRegistrar(e){this.registrar=e}disconnect(e){this.onDisconnect(e)}};function ca(r){return new ai(r)}var wa=z(ma(),1);var Ht=class extends Error{constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function ga(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 ya(r,e,t){let n=t??{},i=ga(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 Ht(l,h)}let u=new Promise((l,h)=>{s=()=>{let{abortMessage:d,abortCode:v}=n;h(new Ht(d,v))}});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 ui="/ipfs/bitswap/1.0.0",li="/ipfs/bitswap/1.1.0",fi="/ipfs/bitswap/1.2.0",Kf=32,Xf=128,Jf=3e4,Br=class{constructor(e,t,n,i={}){this._log=ie(e.peerId,"network"),this._libp2p=e,this._bitswap=t,this._protocols=[ui],i.b100Only!==!0&&(this._protocols.unshift(li),this._protocols.unshift(fi)),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??Kf,this._maxOutboundStreams=i.maxOutboundStreams??Xf,this._incomingStreamTimeout=i.incomingStreamTimeout??Jf}async start(){this._running=!0,await this._libp2p.handle(this._protocols,this._onConnection,{maxInboundStreams:this._maxInboundStreams,maxOutboundStreams:this._maxOutboundStreams});let e=ca({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 wa.TimeoutController(this._incomingStreamTimeout);Promise.resolve().then(async()=>{this._log("incoming new bitswap %s connection from %p",t.stat.protocol,n.remotePeer),await oi(ya(t.source,i.signal),zt(),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([fi,li,ui]);await Zf(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 Zf(r,e,t){try{let n;switch(r.stat.protocol){case ui:n=e.serializeToBitswap100();break;case li:case fi:n=e.serializeToBitswap110();break;default:throw new Error(`Unknown protocol: ${r.stat.protocol}`)}await oi([n],Tr(),r)}catch(n){t(n)}finally{r.close()}}var Cr=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 qt=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 Yf={hasNewInfo(){return!1},merge(){}},Lr=class{constructor(e=Yf){this._taskMerger=e,this._byPeer=new qt([],Nr.compare)}pushTasks(e,t){let n=this._byPeer.get(e.toString());n==null&&(n=new Nr(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)}},Nr=class{constructor(e,t){this.peerId=e,this._taskMerger=t,this._activeTotalSize=0,this._pending=new hi,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}},hi=class{constructor(){this._tasks=new qt([],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 ba={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 _a=B.WantType,eh=16*1024,th=1024,Pr=class{constructor(e,t,n,i,o,s={}){this._log=ie(e,"engine"),this.blockstore=t,this.network=n,this._stats=i,this._opts=this._processOpts(s),this.ledgerMap=De({name:"ipfs_bitswap_ledger_map",metrics:o.metrics}),this._running=!1,this._requestQueue=new Lr(ba)}_processOpts(e){return{maxSizeReplaceHasWithBlock:th,targetMessageSize:eh,...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=k.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=k.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,k.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===_a.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===_a.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 Cr(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 Ua=z(Mr(),1);var pi={};q(pi,{identity:()=>ch});var ch=ht({prefix:"\0",name:"identity",encode:r=>fo(r),decode:r=>lo(r)});var mi={};q(mi,{base2:()=>uh});var uh=P({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var gi={};q(gi,{base8:()=>lh});var lh=P({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var yi={};q(yi,{base10:()=>fh});var fh=Le({prefix:"9",name:"base10",alphabet:"0123456789"});var wi={};q(wi,{base16:()=>hh,base16upper:()=>dh});var hh=P({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),dh=P({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var bi={};q(bi,{base36:()=>Vt,base36upper:()=>ph});var Vt=Le({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ph=Le({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var _i={};q(_i,{base256emoji:()=>bh});var Na=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}"),mh=Na.reduce((r,e,t)=>(r[t]=e,r),[]),gh=Na.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function yh(r){return r.reduce((e,t)=>(e+=mh[t],e),"")}function wh(r){let e=[];for(let t of r){let n=gh[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var bh=ht({prefix:"\u{1F680}",name:"base256emoji",encode:yh,decode:wh});var vi=85;var Ug=new TextEncoder,Og=new TextDecoder;var xi={...pi,...mi,...gi,...yi,...wi,...Nn,...bi,...Ln,...Un,..._i},Wg={...Tn,...vn};function Ia(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Pa=Ia("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Ei=Ia("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=Ee(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),vh={utf8:Pa,"utf-8":Pa,hex:xi.base16,latin1:Ei,ascii:Ei,binary:Ei,...xi},Ur=vh;function nt(r,e="utf8"){let t=Ur[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 Da=r=>`unwant:${nt(r.multihash.bytes,"base64")}`,Ma=r=>`block:${nt(r.multihash.bytes,"base64")}`,Or=class extends Ua.EventEmitter{constructor(e){super(),this.setMaxListeners(Js),this._log=ie(e,"notif")}hasBlock(e,t){let n=Ma(e);this._log(n),this.emit(n,t)}async wantBlock(e,t={}){if(e==null)throw new Error("Not a valid cid");let n=Ma(e),i=Da(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=Da(e);this._log(t),this.emit(t)}};var Wa=z(Mr(),1);var za=z(Mr(),1),Ti=z(Ra(),1),jt=class extends za.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,Ti.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,Ti.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 $a={enabled:!1,computeThrottleTimeout:1e3,computeThrottleMaxQueueSize:1e3,movingAverageIntervals:[60*1e3,5*60*1e3,15*60*1e3]},Fr=class extends Wa.EventEmitter{constructor(e,t=[],n=$a){super();let i=Object.assign({},$a,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 jt(t,i),this._global.on("update",o=>this.emit("update",o)),this._peers=De({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 jt(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 ja=z(qa(),1);async function _t(r){for await(let e of r);}async function*we(r,e){for await(let t of r)await e(t)&&(yield t)}async function*Rr(r,e){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}}async function Ai(r){let e=[];for await(let t of r)e.push(t);return e}var Va=(r,e)=>async function*(){yield*(await Ai(r)).sort(e)}(),Me=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 _t(this.putMany(e,n)),e=[],await _t(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null&&(n=we(n,i=>i.key.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>we(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Va(i,o),n)),e.offset!=null){let i=0;n=we(n,()=>i++>=(e.offset||0))}return e.limit!=null&&(n=Rr(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null&&(n=we(n,i=>i.toString().startsWith(e.prefix||""))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,o)=>we(i,o),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,o)=>Va(i,o),n)),e.offset!=null){let i=0;n=we(n,()=>i++>=e.offset)}return e.limit!=null&&(n=Rr(n,e.limit)),n}};var xh={async getHasher(){throw new Error("Not implemented")}},Eh={maxInboundStreams:32,maxOutboundStreams:128,incomingStreamTimeout:3e4,hashLoader:xh,statsEnabled:!1,statsComputeThrottleTimeout:1e3,statsComputeThrottleMaxQueueSize:1e3},Th=["blocksReceived","dataReceived","dupBlksReceived","dupDataReceived","blocksSent","dataSent","providesBufferLength","wantListLength","peerCount"],zr=class extends Me{constructor(e,t,n={}){super(),this._libp2p=e,this._log=ie(this.peerId),this._options=Object.assign({},Eh,n),this._stats=new Fr(e,Th,{enabled:this._options.statsEnabled,computeThrottleTimeout:this._options.statsComputeThrottleTimeout,computeThrottleMaxQueueSize:this._options.statsComputeThrottleMaxQueueSize}),this.network=new Br(e,this,this._stats,{hashLoader:n.hashLoader,maxInboundStreams:n.maxInboundStreams,maxOutboundStreams:n.maxOutboundStreams,incomingStreamTimeout:n.incomingStreamTimeout}),this.blockstore=t,this.engine=new Pr(this.peerId,t,this.network,this._stats,e),this.wm=new vr(this.peerId,this.network,this._stats,e),this.notifications=new Or(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=k.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,ja.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 Ga=(r,e,t={})=>new zr(r,e,t);var $r={};q($r,{abortedError:()=>Sh,notFoundError:()=>Qa});var Bi=z(ri(),1);function Qa(r){return r=r||new Error("Not Found"),(0,Bi.default)(r,"ERR_NOT_FOUND")}function Sh(r){return r=r||new Error("Aborted"),(0,Bi.default)(r,"ERR_ABORTED")}var By={...$r};var oc=z(Xa(),1);var Qt=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Li=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Ja=r=>globalThis.DOMException===void 0?new Li(r):new DOMException(r),Za=r=>{let e=r.reason===void 0?Ja("This operation was aborted."):r.reason;return e instanceof Error?e:Ja(e)};function Ni(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(Za(c)),c.addEventListener("abort",()=>{a(Za(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 Qt(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 Pi(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 it=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)},Te,Kt=class{constructor(){Te.set(this,[])}enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&it(this,Te,"f")[this.size-1].priority>=t.priority){it(this,Te,"f").push(n);return}let i=Pi(it(this,Te,"f"),n,(o,s)=>s.priority-o.priority);it(this,Te,"f").splice(i,0,n)}dequeue(){let e=it(this,Te,"f").shift();return e?.run}filter(e){return it(this,Te,"f").filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return it(this,Te,"f").length}};Te=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)},D,Jt,Zt,Oe,Qr,Yt,Hr,fe,Xt,K,qr,X,er,Ue,Vr,Ya,ec,nc,tc,rc,jr,Ii,Di,Kr,ic,Gr,Xr=class extends Error{},Se=class extends oc.default{constructor(e){var t,n,i,o;if(super(),D.add(this),Jt.set(this,void 0),Zt.set(this,void 0),Oe.set(this,0),Qr.set(this,void 0),Yt.set(this,void 0),Hr.set(this,0),fe.set(this,void 0),Xt.set(this,void 0),K.set(this,void 0),qr.set(this,void 0),X.set(this,0),er.set(this,void 0),Ue.set(this,void 0),Vr.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:Kt,...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,Jt,e.carryoverConcurrencyCount,"f"),N(this,Zt,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),N(this,Qr,e.intervalCap,"f"),N(this,Yt,e.interval,"f"),N(this,K,new e.queueClass,"f"),N(this,qr,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,N(this,Vr,e.throwOnTimeout===!0,"f"),N(this,Ue,e.autoStart===!1,"f")}get concurrency(){return b(this,er,"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,er,e,"f"),b(this,D,"m",Kr).call(this)}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:b(this,Vr,"f"),...t},new Promise((n,i)=>{b(this,K,"f").enqueue(async()=>{var o,s,a;N(this,X,(s=b(this,X,"f"),s++,s),"f"),N(this,Oe,(a=b(this,Oe,"f"),a++,a),"f");try{if(!((o=t.signal)===null||o===void 0)&&o.aborted)throw new Xr("The task was aborted.");let c=e({signal:t.signal});t.timeout&&(c=Ni(Promise.resolve(c),t.timeout)),t.signal&&(c=Promise.race([c,b(this,D,"m",ic).call(this,t.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof Qt&&!t.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{b(this,D,"m",nc).call(this)}},t),this.emit("add"),b(this,D,"m",jr).call(this)})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return b(this,Ue,"f")?(N(this,Ue,!1,"f"),b(this,D,"m",Kr).call(this),this):this}pause(){N(this,Ue,!0,"f")}clear(){N(this,K,new(b(this,qr,"f")),"f")}async onEmpty(){b(this,K,"f").size!==0&&await b(this,D,"m",Gr).call(this,"empty")}async onSizeLessThan(e){b(this,K,"f").size<e||await b(this,D,"m",Gr).call(this,"next",()=>b(this,K,"f").size<e)}async onIdle(){b(this,X,"f")===0&&b(this,K,"f").size===0||await b(this,D,"m",Gr).call(this,"idle")}get size(){return b(this,K,"f").size}sizeBy(e){return b(this,K,"f").filter(e).length}get pending(){return b(this,X,"f")}get isPaused(){return b(this,Ue,"f")}};Jt=new WeakMap,Zt=new WeakMap,Oe=new WeakMap,Qr=new WeakMap,Yt=new WeakMap,Hr=new WeakMap,fe=new WeakMap,Xt=new WeakMap,K=new WeakMap,qr=new WeakMap,X=new WeakMap,er=new WeakMap,Ue=new WeakMap,Vr=new WeakMap,D=new WeakSet,Ya=function(){return b(this,Zt,"f")||b(this,Oe,"f")<b(this,Qr,"f")},ec=function(){return b(this,X,"f")<b(this,er,"f")},nc=function(){var e;N(this,X,(e=b(this,X,"f"),e--,e),"f"),b(this,D,"m",jr).call(this),this.emit("next")},tc=function(){b(this,D,"m",Di).call(this),b(this,D,"m",Ii).call(this),N(this,Xt,void 0,"f")},rc=function(){let e=Date.now();if(b(this,fe,"f")===void 0){let t=b(this,Hr,"f")-e;if(t<0)N(this,Oe,b(this,Jt,"f")?b(this,X,"f"):0,"f");else return b(this,Xt,"f")===void 0&&N(this,Xt,setTimeout(()=>{b(this,D,"m",tc).call(this)},t),"f"),!0}return!1},jr=function(){if(b(this,K,"f").size===0)return b(this,fe,"f")&&clearInterval(b(this,fe,"f")),N(this,fe,void 0,"f"),this.emit("empty"),b(this,X,"f")===0&&this.emit("idle"),!1;if(!b(this,Ue,"f")){let e=!b(this,D,"a",rc);if(b(this,D,"a",Ya)&&b(this,D,"a",ec)){let t=b(this,K,"f").dequeue();return t?(this.emit("active"),t(),e&&b(this,D,"m",Ii).call(this),!0):!1}}return!1},Ii=function(){b(this,Zt,"f")||b(this,fe,"f")!==void 0||(N(this,fe,setInterval(()=>{b(this,D,"m",Di).call(this)},b(this,Yt,"f")),"f"),N(this,Hr,Date.now()+b(this,Yt,"f"),"f"))},Di=function(){b(this,Oe,"f")===0&&b(this,X,"f")===0&&b(this,fe,"f")&&(clearInterval(b(this,fe,"f")),N(this,fe,void 0,"f")),N(this,Oe,b(this,Jt,"f")?b(this,X,"f"):0,"f"),b(this,D,"m",Kr).call(this)},Kr=function(){for(;b(this,D,"m",jr).call(this););},ic=async function(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(new Xr("The task was aborted."))},{once:!0})})},Gr=async function(e,t){return new Promise(n=>{let i=()=>{t&&!t()||(this.off(e,i),n())};this.on(e,i)})};var Mi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Ui=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},sc=r=>globalThis.DOMException===void 0?new Ui(r):new DOMException(r),ac=r=>{let e=r.reason===void 0?sc("This operation was aborted."):r.reason;return e instanceof Error?e:sc(e)};function Oi(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(ac(h)),h.addEventListener("abort",()=>{u(ac(h))})}let l=new Mi;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 cc=(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 Fi="lock:worker:request-read",Ri="lock:worker:release-read",zi="lock:master:grant-read",$i="lock:worker:request-write",Wi="lock:worker:release-write",Hi="lock:master:grant-write";var Fe={},vt=r=>{r.addEventListener("message",e=>{vt.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{vt.dispatchEvent("message",r,e)})};vt.addEventListener=(r,e)=>{Fe[r]==null&&(Fe[r]=[]),Fe[r].push(e)};vt.removeEventListener=(r,e)=>{Fe[r]!=null&&(Fe[r]=Fe[r].filter(t=>t===e))};vt.dispatchEvent=function(r,e,t){Fe[r]!=null&&Fe[r].forEach(n=>n(e,t))};var qi=vt;var uc=(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)}))}}))},lc=(r,e,t,n)=>async()=>{let i=cc();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)})},Ch={singleProcess:!1},fc=r=>{if(r=Object.assign({},Ch,r),Boolean(globalThis.document)||r.singleProcess){let t=new EventTarget;return qi.addEventListener("message",uc(t,"requestReadLock",Fi,Ri,zi)),qi.addEventListener("message",uc(t,"requestWriteLock",$i,Wi,Hi)),t}return{isWorker:!0,readLock:t=>lc(t,Fi,zi,Ri),writeLock:t=>lc(t,$i,Hi,Wi)}};var ot={},Re;async function Vi(r,e){let t,n=new Promise(i=>{t=i});return r.add(async()=>await Oi((async()=>await new Promise(i=>{t(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var Lh=(r,e)=>{if(Re.isWorker===!0)return{readLock:Re.readLock(r,e),writeLock:Re.writeLock(r,e)};let t=new Se({concurrency:1}),n;return{async readLock(){if(n!=null)return await Vi(n,e);n=new Se({concurrency:e.concurrency,autoStart:!1});let i=n,o=Vi(n,e);return t.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await Vi(t,e)}}},Nh={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function ji(r){let e=Object.assign({},Nh,r);return Re==null&&(Re=fc(e),Re.isWorker!==!0&&(Re.addEventListener("requestReadLock",t=>{ot[t.data.name]!=null&&ot[t.data.name].readLock().then(async n=>await t.data.handler().finally(()=>n()))}),Re.addEventListener("requestWriteLock",async t=>{ot[t.data.name]!=null&&ot[t.data.name].writeLock().then(async n=>await t.data.handler().finally(()=>n()))}))),ot[e.name]==null&&(ot[e.name]=Lh(e.name,e)),ot[e.name]}var Jr=class extends Me{constructor(e,t,n){super(),this.child=e,this.bitswap=t,this.pins=n,this.lock=ji()}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.writeLock();try{this.bitswap.isStarted()?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.writeLock();try{let i=we(e,async({key:o})=>!await this.child.has(o));this.bitswap.isStarted()?yield*this.bitswap.putMany(i,t):yield*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()?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=rt({objectMode:!0}),o=rt({objectMode:!0});Promise.resolve().then(async()=>{for await(let s of e)!await this.has(s)&&this.bitswap.isStarted()?i.push(s):o.push(s);i.end(),o.end()}).catch(s=>{i.throw(s)}),yield*$t(this.bitswap.getMany(i,t),this.child.getMany(o,t))}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let 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 hc=(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 Zr(r,e="utf8"){let t=Ur[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Ye(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}var Ae="/",dc=new TextEncoder().encode(Ae),Yr=dc[0],M=class{constructor(e,t){if(typeof e=="string")this._buf=Zr(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]!==Yr)throw new Error("Invalid key")}toString(e="utf8"){return nt(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new M(e.join(Ae))}static random(){return new M(hc().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new M(e):typeof e.uint8Array=="function"?new M(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=dc),this._buf[0]!==Yr){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Yr,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Yr;)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 M.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ae).slice(1)}type(){return Ph(this.baseNamespace())}name(){return Ih(this.baseNamespace())}instance(e){return new M(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ae)||(e+=Ae),e+=this.type(),new M(e)}parent(){let e=this.list();return e.length===1?new M(Ae):new M(e.slice(0,-1).join(Ae))}child(e){return this.toString()===Ae?e:e.toString()===Ae?this:new M(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 M.withNamespaces([...this.namespaces(),...Dh(e.map(t=>t.namespaces()))])}};function Ph(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Ih(r){let e=r.split(":");return e[e.length-1]}function Dh(r){return[].concat(...r)}var Mh=["string","number","bigint","symbol"],Uh=["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 pc(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(Mh.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(Oh(r))return"Buffer";let t=Fh(r);return t||"Object"}function Oh(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function Fh(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Uh.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 kt=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",Rh=new TextDecoder,zh=new TextEncoder;function en(r){return kt&&globalThis.Buffer.isBuffer(r)}function tr(r){return r instanceof Uint8Array?en(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var wc=kt?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):gc(r,e,t):(r,e,t)=>t-e>64?Rh.decode(r.subarray(e,t)):gc(r,e,t),tn=kt?r=>r.length>64?globalThis.Buffer.from(r):mc(r):r=>r.length>64?zh.encode(r):mc(r),be=r=>Uint8Array.from(r),xt=kt?(r,e,t)=>en(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),bc=kt?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),tr(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},_c=kt?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function vc(r,e){if(en(r)&&en(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 mc(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 gc(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 Gi(n)}var yc=4096;function Gi(r){let e=r.length;if(e<=yc)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=yc));return t}var $h=256,rr=class{constructor(e=$h){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=_c(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=xt(n,0,this.cursor)}else t=bc(this.chunks,this.cursor);return e&&this.reset(),t}};var w="CBOR decode error:",Et="CBOR encode error:",nr=[];nr[23]=1;nr[24]=2;nr[25]=3;nr[26]=5;nr[27]=9;function Be(r,e,t){if(r.length-e<t)throw new Error(`${w} not enough data for type`)}var F=[24,256,65536,4294967296,BigInt("18446744073709551616")];function J(r,e,t){Be(r,e,1);let n=r[e];if(t.strict===!0&&n<F[0])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function Z(r,e,t){Be(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<F[1])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function Y(r,e,t){Be(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<F[2])throw new Error(`${w} integer encoded in more bytes than necessary (strict decode)`);return n}function ee(r,e,t){Be(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<F[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 kc(r,e,t,n){return new p(f.uint,J(r,e+1,n),2)}function xc(r,e,t,n){return new p(f.uint,Z(r,e+1,n),3)}function Ec(r,e,t,n){return new p(f.uint,Y(r,e+1,n),5)}function Tc(r,e,t,n){return new p(f.uint,ee(r,e+1,n),9)}function se(r,e){return $(r,0,e.value)}function $(r,e,t){if(t<F[0]){let n=Number(t);r.push([e|n])}else if(t<F[1]){let n=Number(t);r.push([e|24,n])}else if(t<F[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<F[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<F[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`)}}se.encodedSize=function(e){return $.encodedSize(e.value)};$.encodedSize=function(e){return e<F[0]?1:e<F[1]?2:e<F[2]?3:e<F[3]?5:9};se.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Sc(r,e,t,n){return new p(f.negint,-1-J(r,e+1,n),2)}function Ac(r,e,t,n){return new p(f.negint,-1-Z(r,e+1,n),3)}function Bc(r,e,t,n){return new p(f.negint,-1-Y(r,e+1,n),5)}var Qi=BigInt(-1),Cc=BigInt(1);function Lc(r,e,t,n){let i=ee(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,Qi-BigInt(i),9)}function rn(r,e){let t=e.value,n=typeof t=="bigint"?t*Qi-Cc:t*-1-1;$(r,e.type.majorEncoded,n)}rn.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Qi-Cc:t*-1-1;return n<F[0]?1:n<F[1]?2:n<F[2]?3:n<F[3]?5:9};rn.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function ir(r,e,t,n){Be(r,e,t+n);let i=xt(r,e+t,e+t+n);return new p(f.bytes,i,t+n)}function Nc(r,e,t,n){return ir(r,e,1,t)}function Pc(r,e,t,n){return ir(r,e,2,J(r,e+1,n))}function Ic(r,e,t,n){return ir(r,e,3,Z(r,e+1,n))}function Dc(r,e,t,n){return ir(r,e,5,Y(r,e+1,n))}function Mc(r,e,t,n){let i=ee(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer bytes lengths not supported`);return ir(r,e,9,i)}function nn(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===f.string?tn(r.value):r.value),r.encodedBytes}function Tt(r,e){let t=nn(e);$(r,e.type.majorEncoded,t.length),r.push(t)}Tt.encodedSize=function(e){let t=nn(e);return $.encodedSize(t.length)+t.length};Tt.compareTokens=function(e,t){return Hh(nn(e),nn(t))};function Hh(r,e){return r.length<e.length?-1:r.length>e.length?1:vc(r,e)}function or(r,e,t,n,i){let o=t+n;Be(r,e,o);let s=new p(f.string,wc(r,e+t,e+o),o);return i.retainStringBytes===!0&&(s.byteValue=xt(r,e+t,e+o)),s}function Uc(r,e,t,n){return or(r,e,1,t,n)}function Oc(r,e,t,n){return or(r,e,2,J(r,e+1,n),n)}function Fc(r,e,t,n){return or(r,e,3,Z(r,e+1,n),n)}function Rc(r,e,t,n){return or(r,e,5,Y(r,e+1,n),n)}function zc(r,e,t,n){let i=ee(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer string lengths not supported`);return or(r,e,9,i,n)}var $c=Tt;function St(r,e,t,n){return new p(f.array,n,t)}function Wc(r,e,t,n){return St(r,e,1,t)}function Hc(r,e,t,n){return St(r,e,2,J(r,e+1,n))}function qc(r,e,t,n){return St(r,e,3,Z(r,e+1,n))}function Vc(r,e,t,n){return St(r,e,5,Y(r,e+1,n))}function jc(r,e,t,n){let i=ee(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer array lengths not supported`);return St(r,e,9,i)}function Gc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${w} indefinite length items not allowed`);return St(r,e,1,1/0)}function on(r,e){$(r,f.array.majorEncoded,e.value)}on.compareTokens=se.compareTokens;on.encodedSize=function(e){return $.encodedSize(e.value)};function At(r,e,t,n){return new p(f.map,n,t)}function Qc(r,e,t,n){return At(r,e,1,t)}function Kc(r,e,t,n){return At(r,e,2,J(r,e+1,n))}function Xc(r,e,t,n){return At(r,e,3,Z(r,e+1,n))}function Jc(r,e,t,n){return At(r,e,5,Y(r,e+1,n))}function Zc(r,e,t,n){let i=ee(r,e+1,n);if(typeof i=="bigint")throw new Error(`${w} 64-bit integer map lengths not supported`);return At(r,e,9,i)}function Yc(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${w} indefinite length items not allowed`);return At(r,e,1,1/0)}function sn(r,e){$(r,f.map.majorEncoded,e.value)}sn.compareTokens=se.compareTokens;sn.encodedSize=function(e){return $.encodedSize(e.value)};function eu(r,e,t,n){return new p(f.tag,t,1)}function tu(r,e,t,n){return new p(f.tag,J(r,e+1,n),2)}function ru(r,e,t,n){return new p(f.tag,Z(r,e+1,n),3)}function nu(r,e,t,n){return new p(f.tag,Y(r,e+1,n),5)}function iu(r,e,t,n){return new p(f.tag,ee(r,e+1,n),9)}function an(r,e){$(r,f.tag.majorEncoded,e.value)}an.compareTokens=se.compareTokens;an.encodedSize=function(e){return $.encodedSize(e.value)};var Kh=20,Xh=21,Jh=22,Zh=23;function ou(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 su(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 Ki(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 au(r,e,t,n){return Ki(Xi(r,e+1),3,n)}function cu(r,e,t,n){return Ki(Ji(r,e+1),5,n)}function uu(r,e,t,n){return Ki(du(r,e+1),9,n)}function cn(r,e,t){let n=e.value;if(n===!1)r.push([f.float.majorEncoded|Kh]);else if(n===!0)r.push([f.float.majorEncoded|Xh]);else if(n===null)r.push([f.float.majorEncoded|Jh]);else if(n===void 0)r.push([f.float.majorEncoded|Zh]);else{let i,o=!1;(!t||t.float64!==!0)&&(fu(n),i=Xi(he,1),n===i||Number.isNaN(n)?(he[0]=249,r.push(he.slice(0,3)),o=!0):(hu(n),i=Ji(he,1),n===i&&(he[0]=250,r.push(he.slice(0,5)),o=!0))),o||(Yh(n),i=du(he,1),he[0]=251,r.push(he.slice(0,9)))}}cn.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){fu(n);let i=Xi(he,1);if(n===i||Number.isNaN(n))return 3;if(hu(n),i=Ji(he,1),n===i)return 5}return 9};var lu=new ArrayBuffer(9),ae=new DataView(lu,1),he=new Uint8Array(lu,0);function fu(r){if(r===1/0)ae.setUint16(0,31744,!1);else if(r===-1/0)ae.setUint16(0,64512,!1);else if(Number.isNaN(r))ae.setUint16(0,32256,!1);else{ae.setFloat32(0,r);let e=ae.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)ae.setUint16(0,31744,!1);else if(t===0)ae.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let i=t-127;i<-24?ae.setUint16(0,0):i<-14?ae.setUint16(0,(e&2147483648)>>16|1<<24+i,!1):ae.setUint16(0,(e&2147483648)>>16|i+15<<10|n>>13,!1)}}}function Xi(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 hu(r){ae.setFloat32(0,r,!1)}function Ji(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 Yh(r){ae.setFloat64(0,r,!1)}function du(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)}cn.compareTokens=se.compareTokens;function A(r,e,t){throw new Error(`${w} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function un(r){return()=>{throw new Error(`${w} ${r}`)}}var m=[];for(let r=0;r<=23;r++)m[r]=A;m[24]=kc;m[25]=xc;m[26]=Ec;m[27]=Tc;m[28]=A;m[29]=A;m[30]=A;m[31]=A;for(let r=32;r<=55;r++)m[r]=A;m[56]=Sc;m[57]=Ac;m[58]=Bc;m[59]=Lc;m[60]=A;m[61]=A;m[62]=A;m[63]=A;for(let r=64;r<=87;r++)m[r]=Nc;m[88]=Pc;m[89]=Ic;m[90]=Dc;m[91]=Mc;m[92]=A;m[93]=A;m[94]=A;m[95]=un("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)m[r]=Uc;m[120]=Oc;m[121]=Fc;m[122]=Rc;m[123]=zc;m[124]=A;m[125]=A;m[126]=A;m[127]=un("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)m[r]=Wc;m[152]=Hc;m[153]=qc;m[154]=Vc;m[155]=jc;m[156]=A;m[157]=A;m[158]=A;m[159]=Gc;for(let r=160;r<=183;r++)m[r]=Qc;m[184]=Kc;m[185]=Xc;m[186]=Jc;m[187]=Zc;m[188]=A;m[189]=A;m[190]=A;m[191]=Yc;for(let r=192;r<=215;r++)m[r]=eu;m[216]=tu;m[217]=ru;m[218]=nu;m[219]=iu;m[220]=A;m[221]=A;m[222]=A;m[223]=A;for(let r=224;r<=243;r++)m[r]=un("simple values are not supported");m[244]=A;m[245]=A;m[246]=A;m[247]=ou;m[248]=un("simple values are not supported");m[249]=au;m[250]=cu;m[251]=uu;m[252]=A;m[253]=A;m[254]=A;m[255]=su;var de=[];for(let r=0;r<24;r++)de[r]=new p(f.uint,r,1);for(let r=-1;r>=-24;r--)de[31-r]=new p(f.negint,r,1);de[64]=new p(f.bytes,new Uint8Array(0),1);de[96]=new p(f.string,"",1);de[128]=new p(f.array,0,1);de[160]=new p(f.map,0,1);de[244]=new p(f.false,!1,1);de[245]=new p(f.true,!0,1);de[246]=new p(f.null,null,1);function pu(r){switch(r.type){case f.false:return be([244]);case f.true:return be([245]);case f.null:return be([246]);case f.bytes:return r.value.length?void 0:be([64]);case f.string:return r.value===""?be([96]):void 0;case f.array:return r.value===0?be([128]):void 0;case f.map:return r.value===0?be([160]):void 0;case f.uint:return r.value<24?be([Number(r.value)]):void 0;case f.negint:if(r.value>=-24)return be([31-Number(r.value)])}}var td={float64:!1,mapSorter:id,quickEncodeToken:pu};function rd(){let r=[];return r[f.uint.major]=se,r[f.negint.major]=rn,r[f.bytes.major]=Tt,r[f.string.major]=$c,r[f.array.major]=on,r[f.map.major]=sn,r[f.tag.major]=an,r[f.float.major]=cn,r}var mu=rd(),Zi=new rr,Bt=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(`${Et} object contains circular references`);return new Bt(t,e)}},ze={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)},$e={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?ze.true:ze.false},null(r,e,t,n){return ze.null},undefined(r,e,t,n){return ze.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?[ze.emptyArray,new p(f.break)]:ze.emptyArray;n=Bt.createCheck(n,r);let i=[],o=0;for(let s of r)i[o++]=ln(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?[ze.emptyMap,new p(f.break)]:ze.emptyMap;n=Bt.createCheck(n,r);let a=[],c=0;for(let u of o)a[c++]=[ln(u,t,n),ln(i?r.get(u):r[u],t,n)];return nd(a,t),t.addBreakTokens?[new p(f.map,s),a,new p(f.break)]:[new p(f.map,s),a]}};$e.Map=$e.Object;$e.Buffer=$e.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))$e[`${r}Array`]=$e.DataView;function ln(r,e={},t){let n=pc(r),i=e&&e.typeEncoders&&e.typeEncoders[n]||$e[n];if(typeof i=="function"){let s=i(r,n,e,t);if(s!=null)return s}let o=$e[n];if(!o)throw new Error(`${Et} unsupported type: ${n}`);return o(r,n,e,t)}function nd(r,e){e.mapSorter&&r.sort(e.mapSorter)}function id(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=mu[i].compareTokens(t,n);return o===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),o}function gu(r,e,t,n){if(Array.isArray(e))for(let i of e)gu(r,i,t,n);else t[e.type.major](r,e,n)}function yu(r,e,t){let n=ln(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 rr(s);if(o(a,n,t),a.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return tr(a.chunks[0])}}return Zi.reset(),gu(Zi,n,e,t),Zi.toBytes(!0)}function fn(r,e){return e=Object.assign({},td,e),yu(r,mu,e)}var od={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Yi=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=de[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}},sr=Symbol.for("DONE"),hn=Symbol.for("BREAK");function sd(r,e,t){let n=[];for(let i=0;i<r.value;i++){let o=ar(e,t);if(o===hn){if(r.value===1/0)break;throw new Error(`${w} got unexpected break to lengthed array`)}if(o===sr)throw new Error(`${w} found array but not enough entries (got ${i}, expected ${r.value})`);n[i]=o}return n}function ad(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=ar(e,t);if(a===hn){if(r.value===1/0)break;throw new Error(`${w} got unexpected break to lengthed map`)}if(a===sr)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=ar(e,t);if(c===sr)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 ar(r,e){if(r.done())return sr;let t=r.next();if(t.type===f.break)return hn;if(t.type.terminal)return t.value;if(t.type===f.array)return sd(t,r,e);if(t.type===f.map)return ad(t,r,e);if(t.type===f.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=ar(r,e);return e.tags[t.value](n)}throw new Error(`${w} tag not supported (${t.value})`)}throw new Error("unsupported")}function Ce(r,e){if(!(r instanceof Uint8Array))throw new Error(`${w} data to decode must be a Uint8Array`);e=Object.assign({},od,e);let t=e.tokenizer||new Yi(r,e),n=ar(t,e);if(n===sr)throw new Error(`${w} did not find any content to decode`);if(n===hn)throw new Error(`${w} got unexpected break`);if(!t.done())throw new Error(`${w} too many terminals, data makes no sense`);return n}function eo(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var cd=new TextDecoder;function to(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 dn(r,e){let t;[t,e]=to(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 bu(r,e){let t;return[t,e]=to(r,e),[t&7,t>>3,e]}function ud(r){let e={},t=r.length,n=0;for(;n<t;){let i,o;if([i,o,n]=bu(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]=dn(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]=dn(r,n),e.Name=cd.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]=to(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 _u(r){let e=r.length,t=0,n,i=!1,o;for(;t<e;){let a,c;if([a,c,t]=bu(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]=dn(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]=dn(r,t),n.push(ud(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 db=new TextEncoder,pb=2**32,mb=2**31;var wb=new TextEncoder;var vu=112;function ku(r){let e=_u(r),t={};return e.Data&&(t.Data=e.Data),e.Links&&(t.Links=e.Links.map(n=>{let i={};try{i.Hash=k.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 xu=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(`${Et} unsupported type: Uint8Array`)}[f.string.major](e,t){this.prefix(e);let n=tn(JSON.stringify(t.value));e.push(n.length>32?tr(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(`${Et} 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 Ct=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,Gi(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 ro(r,e){return e=Object.assign({tokenizer:new Ct(r,e)},e),Ce(r,e)}var Eu={codec:vu,async*walk(r){yield*ku(r).Links.map(t=>t.Hash)}},Tu={codec:vi,async*walk(){}},Su=42,Au={codec:113,async*walk(r){let e=[],t=[];t[Su]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let i=k.decode(n.subarray(1));return e.push(i),i},Ce(r,{tags:t}),yield*e}},no=class extends Ct{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=Ut.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}},Bu={codec:297,async*walk(r){let e=[],t=[];t[Su]=n=>{let i=k.parse(n);return e.push(i),i},ro(r,{tags:t,tokenizer:new no(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}};var pn=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)},Lt,io,Cu,hd=[Tu,Eu,Au,Bu],Pu="/pin/",Iu="/pinned-block/",oo=Vt,Lu=1;function Nu(r){return r.version===0&&(r=r.toV1()),new M(`${Pu}${r.toString(oo)}`)}var mn=class{constructor(e,t,n){Lt.add(this),this.datastore=e,this.blockstore=t,this.dagWalkers={},[...hd,...n].forEach(i=>{this.dagWalkers[i.codec]=i})}async add(e,t={}){let n=Nu(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 Se({concurrency:Lu});o.add(async()=>{await pn(this,Lt,"m",io).call(this,e,o,c=>{c.pinnedBy.find(u=>Ve(u,e.bytes))==null&&(c.pinCount++,c.pinnedBy.push(e.bytes))},{...t,depth:i})});let s=eo();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,fn(a),t),{cid:e,...a}}async rm(e,t={}){let n=Nu(e),i=await this.datastore.get(n,t),o=Ce(i);await this.datastore.delete(n,t);let s=new Se({concurrency:Lu});return s.add(async()=>{await pn(this,Lt,"m",io).call(this,e,s,a=>{a.pinCount--,a.pinnedBy=a.pinnedBy.filter(c=>Ve(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:Pu+(e.cid!=null?`${e.cid.toString(Vt)}`:"")},e)){let i=k.parse(t.toString().substring(5),Vt),o=Ce(n);yield{cid:i,...o}}}async isPinned(e,t={}){let n=new M(`${Iu}${oo.encode(e.multihash.bytes)}`);return await this.datastore.has(n,t)}};Lt=new WeakSet,io=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 pn(this,Lt,"m",Cu).call(this,e,n,i);for await(let a of o.walk(s))t.add(async()=>{await pn(this,Lt,"m",r).call(this,a,t,n,{...i,depth:i.depth-1})})},Cu=async function(e,t,n){let i=new M(`${Iu}${oo.encode(e.multihash.bytes)}`),o={pinCount:0,pinnedBy:[]};try{o=Ce(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,fn(o),n)};var so=new M("/version"),Du=1;async function Mu(r){if(!await r.has(so)){await r.put(so,Zr(`${Du}`));return}let e=await r.get(so),t=nt(e);if(parseInt(t,10)!==Du)throw new Error("Unknown datastore version, a datastore migration may be required")}var gn=class extends Event{constructor(e,t){super(e),this.detail=t}};var dd=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},ao=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)},Nt,yn=class{constructor(e){Nt.set(this,void 0);let t=[He,En,_n,...e.hashers??[]];this.pins=new mn(e.datastore,e.blockstore,e.dagWalkers??[]),dd(this,Nt,Ga(e.libp2p,e.blockstore,{hashLoader:{getHasher:async n=>{let i=t.find(o=>o.code===n||o.name===n);if(i!=null)return await Promise.resolve(i);throw new Error(`Could not load hasher for code/name "${n}"`)}}}),"f"),this.libp2p=e.libp2p,this.blockstore=new Jr(e.blockstore,ao(this,Nt,"f"),this.pins),this.datastore=e.datastore}async start(){await Mu(this.datastore),ao(this,Nt,"f").start(),await this.libp2p.start()}async stop(){ao(this,Nt,"f").stop(),await this.libp2p.stop()}async info(){return{peerId:this.libp2p.peerId,multiaddrs:this.libp2p.getMultiaddrs(),agentVersion:this.libp2p.identifyService.host.agentVersion,protocolVersion:this.libp2p.identifyService.host.protocolVersion,protocols:this.libp2p.getProtocols(),status:this.libp2p.isStarted()?"running":"stopped"}}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,i=this.blockstore.unwrap();await _t(i.deleteMany(async function*(){for await(let o of i.queryKeys({}))await n.pins.isPinned(o,e)||(yield o,e.onProgress?.(new gn("helia:gc:deleted",o)))}()))}finally{t()}}};Nt=new WeakMap;async function pd(r){let e=new yn(r);return r.start!==!1&&await e.start(),e}return $u(md);})();
|
|
3
|
+
return Helia}));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GCOptions, Helia, InfoResponse } 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
|
+
info(): Promise<InfoResponse>;
|
|
17
|
+
gc(options?: GCOptions): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# 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,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACtE,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;AAMjD,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;IA+BtB,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAOvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,IAAK,OAAO,CAAC,YAAY,CAAC;IAW9B,EAAE,CAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBlD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _HeliaImpl_bitswap;
|
|
13
|
+
import { identity } from 'multiformats/hashes/identity';
|
|
14
|
+
import { sha256, sha512 } from 'multiformats/hashes/sha2';
|
|
15
|
+
import { createBitswap } from 'ipfs-bitswap';
|
|
16
|
+
import { BlockStorage } from './storage.js';
|
|
17
|
+
import { PinsImpl } from './pins.js';
|
|
18
|
+
import { assertDatastoreVersionIsCurrent } from './utils/datastore-version.js';
|
|
19
|
+
import drain from 'it-drain';
|
|
20
|
+
import { CustomProgressEvent } from 'progress-events';
|
|
21
|
+
export class HeliaImpl {
|
|
22
|
+
constructor(init) {
|
|
23
|
+
_HeliaImpl_bitswap.set(this, void 0);
|
|
24
|
+
const hashers = [
|
|
25
|
+
sha256,
|
|
26
|
+
sha512,
|
|
27
|
+
identity,
|
|
28
|
+
...(init.hashers ?? [])
|
|
29
|
+
];
|
|
30
|
+
this.pins = new PinsImpl(init.datastore, init.blockstore, init.dagWalkers ?? []);
|
|
31
|
+
__classPrivateFieldSet(this, _HeliaImpl_bitswap, createBitswap(init.libp2p, init.blockstore, {
|
|
32
|
+
hashLoader: {
|
|
33
|
+
getHasher: async (codecOrName) => {
|
|
34
|
+
const hasher = hashers.find(hasher => {
|
|
35
|
+
return hasher.code === codecOrName || hasher.name === codecOrName;
|
|
36
|
+
});
|
|
37
|
+
if (hasher != null) {
|
|
38
|
+
return await Promise.resolve(hasher);
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`Could not load hasher for code/name "${codecOrName}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}), "f");
|
|
44
|
+
this.libp2p = init.libp2p;
|
|
45
|
+
this.blockstore = new BlockStorage(init.blockstore, __classPrivateFieldGet(this, _HeliaImpl_bitswap, "f"), this.pins);
|
|
46
|
+
this.datastore = init.datastore;
|
|
47
|
+
}
|
|
48
|
+
async start() {
|
|
49
|
+
await assertDatastoreVersionIsCurrent(this.datastore);
|
|
50
|
+
__classPrivateFieldGet(this, _HeliaImpl_bitswap, "f").start();
|
|
51
|
+
await this.libp2p.start();
|
|
52
|
+
}
|
|
53
|
+
async stop() {
|
|
54
|
+
__classPrivateFieldGet(this, _HeliaImpl_bitswap, "f").stop();
|
|
55
|
+
await this.libp2p.stop();
|
|
56
|
+
}
|
|
57
|
+
async info() {
|
|
58
|
+
return {
|
|
59
|
+
peerId: this.libp2p.peerId,
|
|
60
|
+
multiaddrs: this.libp2p.getMultiaddrs(),
|
|
61
|
+
agentVersion: this.libp2p.identifyService.host.agentVersion,
|
|
62
|
+
protocolVersion: this.libp2p.identifyService.host.protocolVersion,
|
|
63
|
+
protocols: this.libp2p.getProtocols(),
|
|
64
|
+
status: this.libp2p.isStarted() ? 'running' : 'stopped'
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async gc(options = {}) {
|
|
68
|
+
const releaseLock = await this.blockstore.lock.writeLock();
|
|
69
|
+
try {
|
|
70
|
+
const helia = this;
|
|
71
|
+
const blockstore = this.blockstore.unwrap();
|
|
72
|
+
await drain(blockstore.deleteMany((async function* () {
|
|
73
|
+
for await (const cid of blockstore.queryKeys({})) {
|
|
74
|
+
if (await helia.pins.isPinned(cid, options)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
yield cid;
|
|
78
|
+
options.onProgress?.(new CustomProgressEvent('helia:gc:deleted', cid));
|
|
79
|
+
}
|
|
80
|
+
}())));
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
releaseLock();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
_HeliaImpl_bitswap = new WeakMap();
|
|
88
|
+
//# sourceMappingURL=helia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helia.js","sourceRoot":"","sources":["../../src/helia.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EAAW,aAAa,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAC9E,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,OAAO,SAAS;IAQpB,YAAa,IAAe;QAF5B,qCAAiB;QAGf,MAAM,OAAO,GAAsB;YACjC,MAAM;YACN,MAAM;YACN,QAAQ;YACR,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACxB,CAAA;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;QAEhF,uBAAA,IAAI,sBAAY,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1D,UAAU,EAAE;gBACV,SAAS,EAAE,KAAK,EAAE,WAA4B,EAAE,EAAE;oBAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBACnC,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAA;oBACnE,CAAC,CAAC,CAAA;oBAEF,IAAI,MAAM,IAAI,IAAI,EAAE;wBAClB,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;qBACrC;oBAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,GAAG,CAAC,CAAA;gBACzE,CAAC;aACF;SACF,CAAC,MAAA,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAA,IAAI,0BAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAErD,uBAAA,IAAI,0BAAS,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,uBAAA,IAAI,0BAAS,CAAC,IAAI,EAAE,CAAA;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACvC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY;YAC3D,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe;YACjE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,EAAE,CAAE,UAAqB,EAAE;QAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QAE1D,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAA;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;YAE3C,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,SAAU,CAAC;gBACjD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;oBAChD,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;wBAC3C,SAAQ;qBACT;oBAED,MAAM,GAAG,CAAA;oBAET,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAA;iBACvE;YACH,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SACP;gBAAS;YACR,WAAW,EAAE,CAAA;SACd;IACH,CAAC;CACF"}
|