@helia/utils 0.0.1-f58d467 → 0.0.2-8c9bb7d
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/README.md +17 -0
- package/dist/index.min.js +1 -1
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js +6 -1
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/package.json +19 -18
- package/src/index.ts +11 -0
- package/src/utils/networked-storage.ts +6 -1
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
|
+
# @helia/utils
|
|
8
|
+
|
|
7
9
|
[](https://ipfs.tech)
|
|
8
10
|
[](https://discuss.ipfs.tech)
|
|
9
11
|
[](https://codecov.io/gh/ipfs/helia)
|
|
@@ -13,6 +15,21 @@
|
|
|
13
15
|
|
|
14
16
|
# About
|
|
15
17
|
|
|
18
|
+
<!--
|
|
19
|
+
|
|
20
|
+
!IMPORTANT!
|
|
21
|
+
|
|
22
|
+
Everything in this README between "# About" and "# Install" is automatically
|
|
23
|
+
generated and will be overwritten the next time the doc generator is run.
|
|
24
|
+
|
|
25
|
+
To make changes to this section, please update the @packageDocumentation section
|
|
26
|
+
of src/index.js or src/index.ts
|
|
27
|
+
|
|
28
|
+
To experiment with formatting, please run "npm run docs" from the root of this
|
|
29
|
+
repo and examine the changes made.
|
|
30
|
+
|
|
31
|
+
-->
|
|
32
|
+
|
|
16
33
|
Exports a `Helia` class that implements the HeliaInterface API.
|
|
17
34
|
|
|
18
35
|
In general you should use the `helia` or `@helia/http` modules instead which
|
package/dist/index.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.HeliaUtils = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var HeliaUtils=(()=>{var Ai=Object.create;var lt=Object.defineProperty;var Ci=Object.getOwnPropertyDescriptor;var Si=Object.getOwnPropertyNames;var Ti=Object.getPrototypeOf,_i=Object.prototype.hasOwnProperty;var dt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),R=(r,e)=>{for(var t in e)lt(r,t,{get:e[t],enumerable:!0})},Xr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Si(e))!_i.call(r,o)&&o!==t&<(r,o,{get:()=>e[o],enumerable:!(n=Ci(e,o))||n.enumerable});return r};var Zr=(r,e,t)=>(t=r!=null?Ai(Ti(r)):{},Xr(e||!r||!r.__esModule?lt(t,"default",{value:r,enumerable:!0}):t,r)),Ii=r=>Xr(lt({},"__esModule",{value:!0}),r);var on=dt((yc,nn)=>{var we=1e3,be=we*60,xe=be*60,he=xe*24,Bi=he*7,Ni=he*365.25;nn.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return Di(r);if(t==="number"&&isFinite(r))return e.long?Pi(r):Ui(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Di(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*Ni;case"weeks":case"week":case"w":return t*Bi;case"days":case"day":case"d":return t*he;case"hours":case"hour":case"hrs":case"hr":case"h":return t*xe;case"minutes":case"minute":case"mins":case"min":case"m":return t*be;case"seconds":case"second":case"secs":case"sec":case"s":return t*we;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function Ui(r){var e=Math.abs(r);return e>=he?Math.round(r/he)+"d":e>=xe?Math.round(r/xe)+"h":e>=be?Math.round(r/be)+"m":e>=we?Math.round(r/we)+"s":r+"ms"}function Pi(r){var e=Math.abs(r);return e>=he?pt(r,e,he,"day"):e>=xe?pt(r,e,xe,"hour"):e>=be?pt(r,e,be,"minute"):e>=we?pt(r,e,we,"second"):r+" ms"}function pt(r,e,t,n){var o=e>=t*1.5;return Math.round(r/t)+" "+n+(o?"s":"")}});var an=dt((gc,sn)=>{function Ri(r){t.debug=t,t.default=t,t.coerce=u,t.disable=i,t.enable=o,t.enabled=s,t.humanize=on(),t.destroy=m,Object.keys(r).forEach(f=>{t[f]=r[f]}),t.names=[],t.skips=[],t.formatters={};function e(f){let d=0;for(let g=0;g<f.length;g++)d=(d<<5)-d+f.charCodeAt(g),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(f){let d,g=null,D,x;function w(...y){if(!w.enabled)return;let E=w,A=Number(new Date),S=A-(d||A);E.diff=S,E.prev=d,E.curr=A,d=A,y[0]=t.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let T=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(V,P)=>{if(V==="%%")return"%";T++;let W=t.formatters[P];if(typeof W=="function"){let ge=y[T];V=W.call(E,ge),y.splice(T,1),T--}return V}),t.formatArgs.call(E,y),(E.log||t.log).apply(E,y)}return w.namespace=f,w.useColors=t.useColors(),w.color=t.selectColor(f),w.extend=n,w.destroy=t.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(D!==t.namespaces&&(D=t.namespaces,x=t.enabled(f)),x),set:y=>{g=y}}),typeof t.init=="function"&&t.init(w),w}function n(f,d){let g=t(this.namespace+(typeof d>"u"?":":d)+f);return g.log=this.log,g}function o(f){t.save(f),t.namespaces=f,t.names=[],t.skips=[];let d,g=(typeof f=="string"?f:"").split(/[\s,]+/),D=g.length;for(d=0;d<D;d++)g[d]&&(f=g[d].replace(/\*/g,".*?"),f[0]==="-"?t.skips.push(new RegExp("^"+f.slice(1)+"$")):t.names.push(new RegExp("^"+f+"$")))}function i(){let f=[...t.names.map(c),...t.skips.map(c).map(d=>"-"+d)].join(",");return t.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let d,g;for(d=0,g=t.skips.length;d<g;d++)if(t.skips[d].test(f))return!1;for(d=0,g=t.names.length;d<g;d++)if(t.names[d].test(f))return!0;return!1}function c(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function u(f){return f instanceof Error?f.stack||f.message:f}function m(){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}sn.exports=Ri});var cn=dt(($,mt)=>{$.formatArgs=$i;$.save=Fi;$.load=Mi;$.useColors=Oi;$.storage=zi();$.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`."))}})();$.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 Oi(){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 $i(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+mt.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,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}$.log=console.debug||console.log||(()=>{});function Fi(r){try{r?$.storage.setItem("debug",r):$.storage.removeItem("debug")}catch{}}function Mi(){let r;try{r=$.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function zi(){try{return localStorage}catch{}}mt.exports=an()($);var{formatters:qi}=mt.exports;qi.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Xo=dt((wl,Dr)=>{"use strict";var Na=Object.prototype.hasOwnProperty,N="~";function at(){}Object.create&&(at.prototype=Object.create(null),new at().__proto__||(N=!1));function Da(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Yo(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new Da(t,n||r,o),s=N?N+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],i]:r._events[s].push(i):(r._events[s]=i,r._eventsCount++),r}function jt(r,e){--r._eventsCount===0?r._events=new at:delete r._events[e]}function L(){this._events=new at,this._eventsCount=0}L.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Na.call(t,n)&&e.push(N?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};L.prototype.listeners=function(e){var t=N?N+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,s=new Array(i);o<i;o++)s[o]=n[o].fn;return s};L.prototype.listenerCount=function(e){var t=N?N+e:e,n=this._events[t];return n?n.fn?1:n.length:0};L.prototype.emit=function(e,t,n,o,i,s){var c=N?N+e:e;if(!this._events[c])return!1;var u=this._events[c],m=arguments.length,f,d;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),m){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,o),!0;case 5:return u.fn.call(u.context,t,n,o,i),!0;case 6:return u.fn.call(u.context,t,n,o,i,s),!0}for(d=1,f=new Array(m-1);d<m;d++)f[d-1]=arguments[d];u.fn.apply(u.context,f)}else{var g=u.length,D;for(d=0;d<g;d++)switch(u[d].once&&this.removeListener(e,u[d].fn,void 0,!0),m){case 1:u[d].fn.call(u[d].context);break;case 2:u[d].fn.call(u[d].context,t);break;case 3:u[d].fn.call(u[d].context,t,n);break;case 4:u[d].fn.call(u[d].context,t,n,o);break;default:if(!f)for(D=1,f=new Array(m-1);D<m;D++)f[D-1]=arguments[D];u[d].fn.apply(u[d].context,f)}}return!0};L.prototype.on=function(e,t,n){return Yo(this,e,t,n,!1)};L.prototype.once=function(e,t,n){return Yo(this,e,t,n,!0)};L.prototype.removeListener=function(e,t,n,o){var i=N?N+e:e;if(!this._events[i])return this;if(!t)return jt(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&jt(this,i);else{for(var c=0,u=[],m=s.length;c<m;c++)(s[c].fn!==t||o&&!s[c].once||n&&s[c].context!==n)&&u.push(s[c]);u.length?this._events[i]=u.length===1?u[0]:u:jt(this,i)}return this};L.prototype.removeAllListeners=function(e){var t;return e?(t=N?N+e:e,this._events[t]&&jt(this,t)):(this._events=new at,this._eventsCount=0),this};L.prototype.off=L.prototype.removeListener;L.prototype.addListener=L.prototype.on;L.prefixed=N;L.EventEmitter=L;typeof Dr<"u"&&(Dr.exports=L)});var ac={};R(ac,{Helia:()=>Yr});var Jt=Symbol.for("@libp2p/content-routing");var en=Symbol.for("@libp2p/peer-id");var Qt=Symbol.for("@libp2p/peer-routing");var re=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},O=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var ht=class extends EventTarget{#e=new Map;listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:i})=>i!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new Li(e,t))}},Yt=class extends Event{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},Li=globalThis.CustomEvent??Yt;var tn=(r,...e)=>{try{[...e]}catch{}};function rn(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function ne(...r){let e=[];for(let t of r)rn(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function oe(...r){let e=[];for(let t of r)rn(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var F=Zr(cn(),1);var rr={};R(rr,{base32:()=>se,base32hex:()=>Yi,base32hexpad:()=>Zi,base32hexpadupper:()=>es,base32hexupper:()=>Xi,base32pad:()=>Ji,base32padupper:()=>Qi,base32upper:()=>Gi,base32z:()=>ts});var wc=new Uint8Array(0);function un(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function X(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function fn(r){return new TextEncoder().encode(r)}function ln(r){return new TextDecoder().decode(r)}function ji(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=o}var c=r.length,u=r.charAt(0),m=Math.log(c)/Math.log(256),f=Math.log(256)/Math.log(c);function d(x){if(x instanceof Uint8Array||(ArrayBuffer.isView(x)?x=new Uint8Array(x.buffer,x.byteOffset,x.byteLength):Array.isArray(x)&&(x=Uint8Array.from(x))),!(x instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(x.length===0)return"";for(var w=0,y=0,E=0,A=x.length;E!==A&&x[E]===0;)E++,w++;for(var S=(A-E)*f+1>>>0,T=new Uint8Array(S);E!==A;){for(var U=x[E],V=0,P=S-1;(U!==0||V<y)&&P!==-1;P--,V++)U+=256*T[P]>>>0,T[P]=U%c>>>0,U=U/c>>>0;if(U!==0)throw new Error("Non-zero carry");y=V,E++}for(var W=S-y;W!==S&&T[W]===0;)W++;for(var ge=u.repeat(w);W<S;++W)ge+=r.charAt(T[W]);return ge}function g(x){if(typeof x!="string")throw new TypeError("Expected String");if(x.length===0)return new Uint8Array;var w=0;if(x[w]!==" "){for(var y=0,E=0;x[w]===u;)y++,w++;for(var A=(x.length-w)*m+1>>>0,S=new Uint8Array(A);x[w];){var T=t[x.charCodeAt(w)];if(T===255)return;for(var U=0,V=A-1;(T!==0||U<E)&&V!==-1;V--,U++)T+=c*S[V]>>>0,S[V]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");E=U,w++}if(x[w]!==" "){for(var P=A-E;P!==A&&S[P]===0;)P++;for(var W=new Uint8Array(y+(A-P)),ge=y;P!==A;)W[ge++]=S[P++];return W}}}function D(x){var w=g(x);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:g,decode:D}}var Vi=ji,Wi=Vi,hn=Wi;var Xt=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Zt=class{name;prefix;baseDecode;prefixCodePoint;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 pn(this,e)}},er=class{decoders;constructor(e){this.decoders=e}or(e){return pn(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function pn(r,e){return new er({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var tr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Xt(e,t,n),this.decoder=new Zt(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Ee({name:r,prefix:e,encode:t,decode:n}){return new tr(r,e,t,n)}function ie({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=hn(t,r);return Ee({prefix:e,name:r,encode:n,decode:i=>X(o(i))})}function Hi(r,e,t,n){let o={};for(let f=0;f<e.length;++f)o[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let s=new Uint8Array(i*t/8|0),c=0,u=0,m=0;for(let f=0;f<i;++f){let d=o[r[f]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);u=u<<t|d,c+=t,c>=8&&(c-=8,s[m++]=255&u>>c)}if(c>=t||255&u<<8-c)throw new SyntaxError("Unexpected end of data");return s}function Ki(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let u=0;u<r.length;++u)for(c=c<<8|r[u],s+=8;s>t;)s-=t,i+=e[o&c>>s];if(s!==0&&(i+=e[o&c<<t-s]),n)for(;i.length*t&7;)i+="=";return i}function v({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return Ee({prefix:e,name:r,encode(o){return Ki(o,n,t)},decode(o){return Hi(o,n,t,r)}})}var se=v({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Gi=v({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ji=v({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Qi=v({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Yi=v({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Xi=v({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Zi=v({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),es=v({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),ts=v({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var nr={};R(nr,{base58btc:()=>B,base58flickr:()=>rs});var B=ie({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),rs=ie({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var or={};R(or,{base64:()=>ke,base64pad:()=>ns,base64url:()=>os,base64urlpad:()=>is});var ke=v({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ns=v({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),os=v({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),is=v({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});F.default.formatters.b=r=>r==null?"undefined":B.baseEncode(r);F.default.formatters.t=r=>r==null?"undefined":se.baseEncode(r);F.default.formatters.m=r=>r==null?"undefined":ke.baseEncode(r);F.default.formatters.p=r=>r==null?"undefined":r.toString();F.default.formatters.c=r=>r==null?"undefined":r.toString();F.default.formatters.k=r=>r==null?"undefined":r.toString();F.default.formatters.a=r=>r==null?"undefined":r.toString();function ss(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function mn(){return{forComponent(r){return as(r)}}}function as(r){let e=ss(`${r}:trace`);return F.default.enabled(`${r}:trace`)&&F.default.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=(0,F.default)(`${r}:trace`)),Object.assign((0,F.default)(r),{error:(0,F.default)(`${r}:error`),trace:e})}function cs(r){return r[Symbol.asyncIterator]!=null}function us(r){if(cs(r))return(async()=>{for await(let e of r);})();for(let e of r);}var yn=us;var k=class extends Event{constructor(e,t){super(e),this.detail=t}};function ve(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var yt=class{buffer;mask;top;btm;next;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}},Ae=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new yt(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 yt(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var ir=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function gt(r={}){return fs(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 fs(r,e){e=e??{};let t=e.onEnd,n=new Ae,o,i,s,c=ve(),u=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,E)=>{i=A=>{i=null,n.push(A);try{y(r(n))}catch(S){E(S)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=ve()})}},m=y=>i!=null?i(y):(n.push(y),o),f=y=>(n=new Ae,i!=null?i({error:y}):(n.push({error:y}),o)),d=y=>{if(s)return o;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return m({done:!1,value:y})},g=y=>s?o:(s=!0,y!=null?f(y):m({done:!0})),D=()=>(n=new Ae,g(),{done:!0}),x=y=>(g(y),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:D,throw:x,push:d,end:g,get readableLength(){return n.size},onEmpty:async y=>{let E=y?.signal;if(E?.throwIfAborted(),n.isEmpty())return;let A,S;E!=null&&(A=new Promise((T,U)=>{S=()=>{U(new ir)},E.addEventListener("abort",S)}));try{await Promise.race([c.promise,A])}finally{S!=null&&E!=null&&E?.removeEventListener("abort",S)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(y){return w.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:d,end(y){return w.end(y),t!=null&&(t(y),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:y=>w.onEmpty(y)},o}var sr=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function wt(r,e,t,n){let o=new sr(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{let c=m=>{n?.filter?.(m)!==!1&&(r.removeEventListener(e,c),t?.removeEventListener("abort",u),i(m))},u=()=>{r.removeEventListener(e,c),t?.removeEventListener("abort",u),s(o)};r.addEventListener(e,c),t?.addEventListener("abort",u)})}var bt=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function gn(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new bt(t?.errorMessage,t?.errorCode));let n,o=new bt(t?.errorMessage,t?.errorCode);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var xt=class{deferred;signal;where;constructor(e,t){this.signal=t,this.deferred=ve(),this.where=e,this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(new re)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function ls(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Et=class{id;fn;options;priority;recipients;status;timeline;controller;constructor(e,t,n=0){this.id=ls(),this.status="queued",this.fn=e,this.priority=n,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,tn(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&this.controller.abort(new re)}async join(e={}){let t=new xt(new Error("where").stack,e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await gn(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.signal?.removeEventListener("abort",this.onAbort)})}};function ds(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var qe=class extends ht{concurrency;queue;pending;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){if(this.queue[this.size-1]?.priority>=e.priority){this.queue.push(e);return}let t=ds(this.queue,e,(n,o)=>o.priority-n.priority);this.queue.splice(t,0,e)}async add(e,t){t?.signal?.throwIfAborted();let n=new Et(e,t,t?.priority),o=n.join(t).then(i=>(this.safeDispatchEvent("completed",{detail:i}),i)).catch(i=>{throw this.safeDispatchEvent("error",{detail:i}),i});return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new re)}),this.clear()}async onEmpty(e){this.size!==0&&await wt(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await wt(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await wt(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=gt({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail)},i=u=>{n(u.detail)},s=()=>{n()},c=()=>{n(new O("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",o),this.addEventListener("error",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",c);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",c),n()}}};var hs=["string","number","bigint","symbol"],ps=["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 wn(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(hs.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(ms(r))return"Buffer";let t=ys(r);return t||"Object"}function ms(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function ys(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(ps.includes(e))return e}var a=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}};a.uint=new a(0,"uint",!0);a.negint=new a(1,"negint",!0);a.bytes=new a(2,"bytes",!0);a.string=new a(3,"string",!0);a.array=new a(4,"array",!1);a.map=new a(5,"map",!1);a.tag=new a(6,"tag",!1);a.float=new a(7,"float",!0);a.false=new a(7,"false",!0);a.true=new a(7,"true",!0);a.null=new a(7,"null",!0);a.undefined=new a(7,"undefined",!0);a.break=new a(7,"break",!0);var l=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 Ce=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",gs=new TextDecoder,ws=new TextEncoder;function kt(r){return Ce&&globalThis.Buffer.isBuffer(r)}function je(r){return r instanceof Uint8Array?kt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var kn=Ce?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):xn(r,e,t):(r,e,t)=>t-e>64?gs.decode(r.subarray(e,t)):xn(r,e,t),vt=Ce?r=>r.length>64?globalThis.Buffer.from(r):bn(r):r=>r.length>64?ws.encode(r):bn(r),Q=r=>Uint8Array.from(r),Se=Ce?(r,e,t)=>kt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),vn=Ce?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),je(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},An=Ce?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function Cn(r,e){if(kt(r)&&kt(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 bn(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function xn(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let c,u,m,f;switch(s){case 1:o<128&&(i=o);break;case 2:c=r[e+1],(c&192)===128&&(f=(o&31)<<6|c&63,f>127&&(i=f));break;case 3:c=r[e+1],u=r[e+2],(c&192)===128&&(u&192)===128&&(f=(o&15)<<12|(c&63)<<6|u&63,f>2047&&(f<55296||f>57343)&&(i=f));break;case 4:c=r[e+1],u=r[e+2],m=r[e+3],(c&192)===128&&(u&192)===128&&(m&192)===128&&(f=(o&15)<<18|(c&63)<<12|(u&63)<<6|m&63,f>65535&&f<1114112&&(i=f))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return ar(n)}var En=4096;function ar(r){let e=r.length;if(e<=En)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=En));return t}var bs=256,Ve=class{constructor(e=bs){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=An(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=Se(n,0,this.cursor)}else t=vn(this.chunks,this.cursor);return e&&this.reset(),t}};var p="CBOR decode error:",Te="CBOR encode error:",We=[];We[23]=1;We[24]=2;We[25]=3;We[26]=5;We[27]=9;function Z(r,e,t){if(r.length-e<t)throw new Error(`${p} not enough data for type`)}var _=[24,256,65536,4294967296,BigInt("18446744073709551616")];function M(r,e,t){Z(r,e,1);let n=r[e];if(t.strict===!0&&n<_[0])throw new Error(`${p} integer encoded in more bytes than necessary (strict decode)`);return n}function z(r,e,t){Z(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<_[1])throw new Error(`${p} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){Z(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<_[2])throw new Error(`${p} integer encoded in more bytes than necessary (strict decode)`);return n}function j(r,e,t){Z(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<_[3])throw new Error(`${p} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${p} integers outside of the safe integer range are not supported`)}function Sn(r,e,t,n){return new l(a.uint,M(r,e+1,n),2)}function Tn(r,e,t,n){return new l(a.uint,z(r,e+1,n),3)}function _n(r,e,t,n){return new l(a.uint,q(r,e+1,n),5)}function In(r,e,t,n){return new l(a.uint,j(r,e+1,n),9)}function H(r,e){return I(r,0,e.value)}function I(r,e,t){if(t<_[0]){let n=Number(t);r.push([e|n])}else if(t<_[1]){let n=Number(t);r.push([e|24,n])}else if(t<_[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<_[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<_[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,r.push(o)}else throw new Error(`${p} encountered BigInt larger than allowable range`)}}H.encodedSize=function(e){return I.encodedSize(e.value)};I.encodedSize=function(e){return e<_[0]?1:e<_[1]?2:e<_[2]?3:e<_[3]?5:9};H.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function Ln(r,e,t,n){return new l(a.negint,-1-M(r,e+1,n),2)}function Bn(r,e,t,n){return new l(a.negint,-1-z(r,e+1,n),3)}function Nn(r,e,t,n){return new l(a.negint,-1-q(r,e+1,n),5)}var cr=BigInt(-1),Dn=BigInt(1);function Un(r,e,t,n){let o=j(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new l(a.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${p} integers outside of the safe integer range are not supported`);return new l(a.negint,cr-BigInt(o),9)}function At(r,e){let t=e.value,n=typeof t=="bigint"?t*cr-Dn:t*-1-1;I(r,e.type.majorEncoded,n)}At.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*cr-Dn:t*-1-1;return n<_[0]?1:n<_[1]?2:n<_[2]?3:n<_[3]?5:9};At.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function He(r,e,t,n){Z(r,e,t+n);let o=Se(r,e+t,e+t+n);return new l(a.bytes,o,t+n)}function Pn(r,e,t,n){return He(r,e,1,t)}function Rn(r,e,t,n){return He(r,e,2,M(r,e+1,n))}function On(r,e,t,n){return He(r,e,3,z(r,e+1,n))}function $n(r,e,t,n){return He(r,e,5,q(r,e+1,n))}function Fn(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${p} 64-bit integer bytes lengths not supported`);return He(r,e,9,o)}function Ct(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===a.string?vt(r.value):r.value),r.encodedBytes}function _e(r,e){let t=Ct(e);I(r,e.type.majorEncoded,t.length),r.push(t)}_e.encodedSize=function(e){let t=Ct(e);return I.encodedSize(t.length)+t.length};_e.compareTokens=function(e,t){return Es(Ct(e),Ct(t))};function Es(r,e){return r.length<e.length?-1:r.length>e.length?1:Cn(r,e)}function Ke(r,e,t,n,o){let i=t+n;Z(r,e,i);let s=new l(a.string,kn(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Se(r,e+t,e+i)),s}function Mn(r,e,t,n){return Ke(r,e,1,t,n)}function zn(r,e,t,n){return Ke(r,e,2,M(r,e+1,n),n)}function qn(r,e,t,n){return Ke(r,e,3,z(r,e+1,n),n)}function jn(r,e,t,n){return Ke(r,e,5,q(r,e+1,n),n)}function Vn(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${p} 64-bit integer string lengths not supported`);return Ke(r,e,9,o,n)}var Wn=_e;function Ie(r,e,t,n){return new l(a.array,n,t)}function Hn(r,e,t,n){return Ie(r,e,1,t)}function Kn(r,e,t,n){return Ie(r,e,2,M(r,e+1,n))}function Gn(r,e,t,n){return Ie(r,e,3,z(r,e+1,n))}function Jn(r,e,t,n){return Ie(r,e,5,q(r,e+1,n))}function Qn(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${p} 64-bit integer array lengths not supported`);return Ie(r,e,9,o)}function Yn(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${p} indefinite length items not allowed`);return Ie(r,e,1,1/0)}function St(r,e){I(r,a.array.majorEncoded,e.value)}St.compareTokens=H.compareTokens;St.encodedSize=function(e){return I.encodedSize(e.value)};function Le(r,e,t,n){return new l(a.map,n,t)}function Xn(r,e,t,n){return Le(r,e,1,t)}function Zn(r,e,t,n){return Le(r,e,2,M(r,e+1,n))}function eo(r,e,t,n){return Le(r,e,3,z(r,e+1,n))}function to(r,e,t,n){return Le(r,e,5,q(r,e+1,n))}function ro(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${p} 64-bit integer map lengths not supported`);return Le(r,e,9,o)}function no(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${p} indefinite length items not allowed`);return Le(r,e,1,1/0)}function Tt(r,e){I(r,a.map.majorEncoded,e.value)}Tt.compareTokens=H.compareTokens;Tt.encodedSize=function(e){return I.encodedSize(e.value)};function oo(r,e,t,n){return new l(a.tag,t,1)}function io(r,e,t,n){return new l(a.tag,M(r,e+1,n),2)}function so(r,e,t,n){return new l(a.tag,z(r,e+1,n),3)}function ao(r,e,t,n){return new l(a.tag,q(r,e+1,n),5)}function co(r,e,t,n){return new l(a.tag,j(r,e+1,n),9)}function _t(r,e){I(r,a.tag.majorEncoded,e.value)}_t.compareTokens=H.compareTokens;_t.encodedSize=function(e){return I.encodedSize(e.value)};var Ts=20,_s=21,Is=22,Ls=23;function uo(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${p} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new l(a.null,null,1):new l(a.undefined,void 0,1)}function fo(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${p} indefinite length items not allowed`);return new l(a.break,void 0,1)}function ur(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${p} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${p} Infinity values are not supported`)}return new l(a.float,r,e)}function lo(r,e,t,n){return ur(fr(r,e+1),3,n)}function ho(r,e,t,n){return ur(lr(r,e+1),5,n)}function po(r,e,t,n){return ur(wo(r,e+1),9,n)}function It(r,e,t){let n=e.value;if(n===!1)r.push([a.float.majorEncoded|Ts]);else if(n===!0)r.push([a.float.majorEncoded|_s]);else if(n===null)r.push([a.float.majorEncoded|Is]);else if(n===void 0)r.push([a.float.majorEncoded|Ls]);else{let o,i=!1;(!t||t.float64!==!0)&&(yo(n),o=fr(G,1),n===o||Number.isNaN(n)?(G[0]=249,r.push(G.slice(0,3)),i=!0):(go(n),o=lr(G,1),n===o&&(G[0]=250,r.push(G.slice(0,5)),i=!0))),i||(Bs(n),o=wo(G,1),G[0]=251,r.push(G.slice(0,9)))}}It.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){yo(n);let o=fr(G,1);if(n===o||Number.isNaN(n))return 3;if(go(n),o=lr(G,1),n===o)return 5}return 9};var mo=new ArrayBuffer(9),K=new DataView(mo,1),G=new Uint8Array(mo,0);function yo(r){if(r===1/0)K.setUint16(0,31744,!1);else if(r===-1/0)K.setUint16(0,64512,!1);else if(Number.isNaN(r))K.setUint16(0,32256,!1);else{K.setFloat32(0,r);let e=K.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)K.setUint16(0,31744,!1);else if(t===0)K.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?K.setUint16(0,0):o<-14?K.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):K.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function fr(r,e){if(r.length-e<2)throw new Error(`${p} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function go(r){K.setFloat32(0,r,!1)}function lr(r,e){if(r.length-e<4)throw new Error(`${p} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function Bs(r){K.setFloat64(0,r,!1)}function wo(r,e){if(r.length-e<8)throw new Error(`${p} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}It.compareTokens=H.compareTokens;function b(r,e,t){throw new Error(`${p} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function Lt(r){return()=>{throw new Error(`${p} ${r}`)}}var h=[];for(let r=0;r<=23;r++)h[r]=b;h[24]=Sn;h[25]=Tn;h[26]=_n;h[27]=In;h[28]=b;h[29]=b;h[30]=b;h[31]=b;for(let r=32;r<=55;r++)h[r]=b;h[56]=Ln;h[57]=Bn;h[58]=Nn;h[59]=Un;h[60]=b;h[61]=b;h[62]=b;h[63]=b;for(let r=64;r<=87;r++)h[r]=Pn;h[88]=Rn;h[89]=On;h[90]=$n;h[91]=Fn;h[92]=b;h[93]=b;h[94]=b;h[95]=Lt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)h[r]=Mn;h[120]=zn;h[121]=qn;h[122]=jn;h[123]=Vn;h[124]=b;h[125]=b;h[126]=b;h[127]=Lt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)h[r]=Hn;h[152]=Kn;h[153]=Gn;h[154]=Jn;h[155]=Qn;h[156]=b;h[157]=b;h[158]=b;h[159]=Yn;for(let r=160;r<=183;r++)h[r]=Xn;h[184]=Zn;h[185]=eo;h[186]=to;h[187]=ro;h[188]=b;h[189]=b;h[190]=b;h[191]=no;for(let r=192;r<=215;r++)h[r]=oo;h[216]=io;h[217]=so;h[218]=ao;h[219]=co;h[220]=b;h[221]=b;h[222]=b;h[223]=b;for(let r=224;r<=243;r++)h[r]=Lt("simple values are not supported");h[244]=b;h[245]=b;h[246]=b;h[247]=uo;h[248]=Lt("simple values are not supported");h[249]=lo;h[250]=ho;h[251]=po;h[252]=b;h[253]=b;h[254]=b;h[255]=fo;var J=[];for(let r=0;r<24;r++)J[r]=new l(a.uint,r,1);for(let r=-1;r>=-24;r--)J[31-r]=new l(a.negint,r,1);J[64]=new l(a.bytes,new Uint8Array(0),1);J[96]=new l(a.string,"",1);J[128]=new l(a.array,0,1);J[160]=new l(a.map,0,1);J[244]=new l(a.false,!1,1);J[245]=new l(a.true,!0,1);J[246]=new l(a.null,null,1);function bo(r){switch(r.type){case a.false:return Q([244]);case a.true:return Q([245]);case a.null:return Q([246]);case a.bytes:return r.value.length?void 0:Q([64]);case a.string:return r.value===""?Q([96]):void 0;case a.array:return r.value===0?Q([128]):void 0;case a.map:return r.value===0?Q([160]):void 0;case a.uint:return r.value<24?Q([Number(r.value)]):void 0;case a.negint:if(r.value>=-24)return Q([31-Number(r.value)])}}var Ds={float64:!1,mapSorter:Rs,quickEncodeToken:bo};function Us(){let r=[];return r[a.uint.major]=H,r[a.negint.major]=At,r[a.bytes.major]=_e,r[a.string.major]=Wn,r[a.array.major]=St,r[a.map.major]=Tt,r[a.tag.major]=_t,r[a.float.major]=It,r}var xo=Us(),dr=new Ve,Nt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${Te} object contains circular references`);return new r(t,e)}},ae={null:new l(a.null,null),undefined:new l(a.undefined,void 0),true:new l(a.true,!0),false:new l(a.false,!1),emptyArray:new l(a.array,0),emptyMap:new l(a.map,0)},ce={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new l(a.float,r):r>=0?new l(a.uint,r):new l(a.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new l(a.uint,r):new l(a.negint,r)},Uint8Array(r,e,t,n){return new l(a.bytes,r)},string(r,e,t,n){return new l(a.string,r)},boolean(r,e,t,n){return r?ae.true:ae.false},null(r,e,t,n){return ae.null},undefined(r,e,t,n){return ae.undefined},ArrayBuffer(r,e,t,n){return new l(a.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new l(a.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[ae.emptyArray,new l(a.break)]:ae.emptyArray;n=Nt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Bt(s,t,n);return t.addBreakTokens?[new l(a.array,r.length),o,new l(a.break)]:[new l(a.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[ae.emptyMap,new l(a.break)]:ae.emptyMap;n=Nt.createCheck(n,r);let c=[],u=0;for(let m of i)c[u++]=[Bt(m,t,n),Bt(o?r.get(m):r[m],t,n)];return Ps(c,t),t.addBreakTokens?[new l(a.map,s),c,new l(a.break)]:[new l(a.map,s),c]}};ce.Map=ce.Object;ce.Buffer=ce.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))ce[`${r}Array`]=ce.DataView;function Bt(r,e={},t){let n=wn(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||ce[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=ce[n];if(!i)throw new Error(`${Te} unsupported type: ${n}`);return i(r,n,e,t)}function Ps(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Rs(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=xo[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function Eo(r,e,t,n){if(Array.isArray(e))for(let o of e)Eo(r,o,t,n);else t[e.type.major](r,e,n)}function ko(r,e,t){let n=Bt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),c=new Ve(s);if(i(c,n,t),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return je(c.chunks[0])}}return dr.reset(),Eo(dr,n,e,t),dr.toBytes(!0)}function Ge(r,e){return e=Object.assign({},Ds,e),ko(r,xo,e)}var Os={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},hr=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=J[e];if(t===void 0){let n=h[e];if(!n)throw new Error(`${p} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},Je=Symbol.for("DONE"),Dt=Symbol.for("BREAK");function $s(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=Qe(e,t);if(i===Dt){if(r.value===1/0)break;throw new Error(`${p} got unexpected break to lengthed array`)}if(i===Je)throw new Error(`${p} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Fs(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let c=Qe(e,t);if(c===Dt){if(r.value===1/0)break;throw new Error(`${p} got unexpected break to lengthed map`)}if(c===Je)throw new Error(`${p} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${p} non-string keys not supported (got ${typeof c})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${p} found repeat map key "${c}"`);let u=Qe(e,t);if(u===Je)throw new Error(`${p} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(c,u):o[c]=u}return n?i:o}function Qe(r,e){if(r.done())return Je;let t=r.next();if(t.type===a.break)return Dt;if(t.type.terminal)return t.value;if(t.type===a.array)return $s(t,r,e);if(t.type===a.map)return Fs(t,r,e);if(t.type===a.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=Qe(r,e);return e.tags[t.value](n)}throw new Error(`${p} tag not supported (${t.value})`)}throw new Error("unsupported")}function pr(r,e){if(!(r instanceof Uint8Array))throw new Error(`${p} data to decode must be a Uint8Array`);e=Object.assign({},Os,e);let t=e.tokenizer||new hr(r,e),n=Qe(t,e);if(n===Je)throw new Error(`${p} did not find any content to decode`);if(n===Dt)throw new Error(`${p} got unexpected break`);return[n,r.subarray(t.pos())]}function Y(r,e){let[t,n]=pr(r,e);if(n.length>0)throw new Error(`${p} too many terminals, data makes no sense`);return t}function Ut(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}var yr={};R(yr,{base10:()=>Ms});var Ms=ie({prefix:"9",name:"base10",alphabet:"0123456789"});var gr={};R(gr,{base16:()=>zs,base16upper:()=>qs});var zs=v({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),qs=v({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var wr={};R(wr,{base2:()=>js});var js=v({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var br={};R(br,{base256emoji:()=>Gs});var vo=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}"),Vs=vo.reduce((r,e,t)=>(r[t]=e,r),[]),Ws=vo.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Hs(r){return r.reduce((e,t)=>(e+=Vs[t],e),"")}function Ks(r){let e=[];for(let t of r){let n=Ws[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Gs=Ee({prefix:"\u{1F680}",name:"base256emoji",encode:Hs,decode:Ks});var xr={};R(xr,{base36:()=>Ye,base36upper:()=>Js});var Ye=ie({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Js=ie({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Er={};R(Er,{base8:()=>Qs});var Qs=v({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var kr={};R(kr,{identity:()=>Ys});var Ys=Ee({prefix:"\0",name:"identity",encode:r=>ln(r),decode:r=>fn(r)});var nf=new TextEncoder,of=new TextDecoder;var Ao=512;var So=85;var Ar={};R(Ar,{identity:()=>Pe});var Xs=Lo,_o=128,Zs=127,ea=~Zs,ta=Math.pow(2,31);function Lo(r,e,t){e=e||[],t=t||0;for(var n=t;r>=ta;)e[t++]=r&255|_o,r/=128;for(;r&ea;)e[t++]=r&255|_o,r>>>=7;return e[t]=r|0,Lo.bytes=t-n+1,e}var ra=vr,na=128,Io=127;function vr(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw vr.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&Io)<<o:(s&Io)*Math.pow(2,o),o+=7}while(s>=na);return vr.bytes=i-n,t}var oa=Math.pow(2,7),ia=Math.pow(2,14),sa=Math.pow(2,21),aa=Math.pow(2,28),ca=Math.pow(2,35),ua=Math.pow(2,42),fa=Math.pow(2,49),la=Math.pow(2,56),da=Math.pow(2,63),ha=function(r){return r<oa?1:r<ia?2:r<sa?3:r<aa?4:r<ca?5:r<ua?6:r<fa?7:r<la?8:r<da?9:10},pa={encode:Xs,decode:ra,encodingLength:ha},ma=pa,Xe=ma;function Ze(r,e=0){return[Xe.decode(r,e),Xe.decode.bytes]}function Be(r,e,t=0){return Xe.encode(r,e,t),e}function Ne(r){return Xe.encodingLength(r)}function ue(r,e){let t=e.byteLength,n=Ne(r),o=n+Ne(t),i=new Uint8Array(o+t);return Be(r,i,0),Be(t,i,n),i.set(e,o),new De(r,t,e,i)}function et(r){let e=X(r),[t,n]=Ze(e),[o,i]=Ze(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new De(t,o,s,e)}function Bo(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&un(r.bytes,t.bytes)}}var De=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var No=0,ya="identity",Do=X;function ga(r){return ue(No,Do(r))}var Pe={code:No,name:ya,encode:Do,digest:ga};var _r={};R(_r,{sha256:()=>Re,sha512:()=>Tr});function Sr({name:r,code:e,encode:t}){return new Cr(r,e,t)}var Cr=class{name;code;encode;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?ue(this.code,t):t.then(n=>ue(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Po(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Re=Sr({name:"sha2-256",code:18,encode:Po("SHA-256")}),Tr=Sr({name:"sha2-512",code:19,encode:Po("SHA-512")});function Ro(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return ba(t,Ir(r),e??B.encoder);default:return xa(t,Ir(r),e??se.encoder)}}var Oo=new WeakMap;function Ir(r){let e=Oo.get(r);if(e==null){let t=new Map;return Oo.set(r,t),t}return e}var C=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==tt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Ea)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=ue(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Bo(e.multihash,n.multihash)}toString(e){return Ro(this,e)}toJSON(){return{"/":Ro(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:i,bytes:s}=t;return new r(n,o,i,s??$o(n,o,i.bytes))}else if(t[ka]===!0){let{version:n,multihash:o,code:i}=t,s=et(o);return r.create(n,i,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!==tt)throw new Error(`Version 0 CID must use dag-pb (code: ${tt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=$o(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,tt,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=X(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=o.subarray(t.multihashSize-t.digestSize),s=new De(t.multihashCode,t.digestSize,i,o);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[d,g]=Ze(e.subarray(t));return t+=g,d},o=n(),i=tt;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,c=n(),u=n(),m=t+u,f=m-s;return{version:o,codec:i,multihashCode:c,digestSize:u,multihashSize:f,size:m}}static parse(e,t){let[n,o]=wa(e,t),i=r.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ir(i).set(n,e),i}};function wa(r,e){switch(r[0]){case"Q":{let t=e??B;return[B.prefix,t.decode(`${B.prefix}${r}`)]}case B.prefix:{let t=e??B;return[B.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.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)]}}}function ba(r,e,t){let{prefix:n}=t;if(n!==B.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return o}function xa(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let i=t.encode(r);return e.set(n,i),i}else return o}var tt=112,Ea=18;function $o(r,e,t){let n=Ne(r),o=n+Ne(e),i=new Uint8Array(o+t.byteLength);return Be(r,i,0),Be(e,i,n),i.set(t,o),i}var ka=Symbol.for("@ipld/js-cid/CID");var Oe={...kr,...wr,...Er,...yr,...gr,...rr,...xr,...nr,...or,...br},Sf={..._r,...Ar};function Fo(r=0){return globalThis.Buffer?.allocUnsafe!=null?Ut(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function zo(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Mo=zo("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Lr=zo("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=Fo(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),va={utf8:Mo,"utf-8":Mo,hex:Oe.base16,latin1:Lr,ascii:Lr,binary:Lr,...Oe},Rt=va;function Ot(r,e="utf8"){let t=Rt[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Ut(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function $t(r,e="utf8"){let t=Rt[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 ee="/",qo=new TextEncoder().encode(ee),Ft=qo[0],te=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=Ot(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]!==Ft)throw new Error("Invalid key")}toString(e="utf8"){return $t(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(ee))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=qo),this._buf[0]!==Ft){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Ft,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ft;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(ee).slice(1)}type(){return Aa(this.baseNamespace())}name(){return Ca(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(ee)||(e+=ee),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(ee):new r(e.slice(0,-1).join(ee))}child(e){return this.toString()===ee?e:e.toString()===ee?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Sa(e.map(t=>t.namespaces()))])}};function Aa(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Ca(r){let e=r.split(":");return e[e.length-1]}function Sa(r){return[].concat(...r)}function fe(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 Ho="/pin/",jo="/pinned-block/",Br=Ye,Vo=1;function Wo(r){return r.version===0&&(r=r.toV1()),new te(`${Ho}${r.toString(Br)}`)}var Mt=class{datastore;blockstore;dagWalkers;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.dagWalkers=n}async*add(e,t={}){let n=Wo(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let i=new qe({concurrency:Vo});for await(let c of this.#e(e,i,{...t,depth:o}))await this.#o(c,u=>u.pinnedBy.find(m=>fe(m,e.bytes))!=null?!1:(u.pinCount++,u.pinnedBy.push(e.bytes),!0),t),yield c;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,Ge(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=this.dagWalkers[e.code];if(o==null)throw new Error(`No dag walker found for cid codec ${e.code}`);let i=await this.blockstore.get(e,n);yield e;for await(let s of o.walk(i))yield*await t.add(async()=>this.#e(s,t,{...n,depth:n.depth-1}))}async#o(e,t,n){let o=new te(`${jo}${Br.encode(e.multihash.bytes)}`),i={pinCount:0,pinnedBy:[]};try{i=Y(await this.datastore.get(o,n))}catch(c){if(c.code!=="ERR_NOT_FOUND")throw c}if(t(i)){if(i.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,Ge(i),n),n.onProgress?.(new k("helia:pin:add",e))}}async*rm(e,t={}){let n=Wo(e),o=await this.datastore.get(n,t),i=Y(o);await this.datastore.delete(n,t);let s=new qe({concurrency:Vo});for await(let c of this.#e(e,s,{...t,depth:i.depth}))await this.#o(c,u=>(u.pinCount--,u.pinnedBy=u.pinnedBy.filter(m=>fe(m,e.bytes)),!0),{...t,depth:i.depth}),yield c}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:Ho+(e.cid!=null?`${e.cid.toString(Ye)}`:"")},e)){let o=C.parse(t.toString().substring(5),Ye),i=Y(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new te(`${jo}${Br.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}};var Ta=Symbol.for("nodejs.util.inspect.custom"),Ko=Object.values(Oe).map(r=>r.decoder).reduce((r,e)=>r.or(e),Oe.identity.decoder),Go=114,Jo=36,Qo=37,rt=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[en]=!0;toString(){return this.string==null&&(this.string=B.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return C.createV1(Go,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return fe(this.multihash.bytes,e);if(typeof e=="string")return st(e).equals(this);if(e?.multihash?.bytes!=null)return fe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[Ta](){return`PeerId(${this.toString()})`}},nt=class extends rt{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},ot=class extends rt{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},it=class extends rt{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function st(r,e){if(e=e??Ko,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=et(B.decode(`z${r}`));return r.startsWith("12D")?new ot({multihash:t}):r.startsWith("16U")?new it({multihash:t}):new nt({multihash:t})}return _a(Ko.decode(r))}function _a(r){try{let e=et(r);if(e.code===Pe.code){if(e.digest.length===Jo)return new ot({multihash:e});if(e.digest.length===Qo)return new it({multihash:e})}if(e.code===Re.code)return new nt({multihash:e})}catch{return Ia(C.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Ia(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==Go)throw new Error("Supplied PeerID CID is invalid");let e=r.multihash;if(e.code===Re.code)return new nt({multihash:r.multihash});if(e.code===Pe.code){if(e.digest.length===Jo)return new ot({multihash:r.multihash});if(e.digest.length===Qo)return new it({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}function Nr(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}var $e=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return Nr(this.set.entries(),e=>{let t=st(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=st(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return Nr(this.set.values(),e=>st(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};function La(r){return r[Symbol.asyncIterator]!=null}function Ba(...r){let e=[];for(let t of r)La(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=gt({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var zt=Ba;var qt=class{log;routers;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[]}async start(){await ne(...this.routers)}async stop(){await oe(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new O("No content routers available","ERR_NO_ROUTERS_AVAILABLE");let n=new $e;for await(let o of zt(...Fe(this.routers,"findProviders").map(i=>i.findProviders(e,t))))o!=null&&(n.has(o.id)||(n.add(o.id),yield o))}async provide(e,t={}){if(this.routers.length===0)throw new O("No content routers available","ERR_NO_ROUTERS_AVAILABLE");await Promise.all(Fe(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async put(e,t,n){await Promise.all(Fe(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(Fe(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new O("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=this,o=zt(...Fe(this.routers,"findPeer").map(i=>async function*(){try{yield await i.findPeer(e,t)}catch(s){n.log.error(s)}}()));for await(let i of o)if(i!=null)return i;throw new O("Could not find peer in routing","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new O("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=new $e;for await(let o of zt(...Fe(this.routers,"getClosestPeers").map(i=>i.getClosestPeers(e,t))))o!=null&&(n.has(o.id)||(n.add(o.id),yield o))}};function Fe(r,e){return r.filter(t=>t[e]!=null)}var Ur=Zr(Xo(),1);var ct=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Pr=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Zo=r=>globalThis.DOMException===void 0?new Pr(r):new DOMException(r),ei=r=>{let e=r.reason===void 0?Zo("This operation was aborted."):r.reason;return e instanceof Error?e:Zo(e)};function ut(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,u=new Promise((m,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:g}=e;g.aborted&&f(ei(g)),g.addEventListener("abort",()=>{f(ei(g))})}if(t===Number.POSITIVE_INFINITY){r.then(m,f);return}let d=new ct;s=i.setTimeout.call(void 0,()=>{if(n){try{m(n())}catch(g){f(g)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?m():o instanceof Error?f(o):(d.message=o??`Promise timed out after ${t} milliseconds`,f(d))},t),(async()=>{try{m(await r)}catch(g){f(g)}})()}).finally(()=>{u.clear()});return u.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},u}function Rr(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var ft=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=Rr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var Me=class extends Ur.default{#e;#o;#s=0;#h;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:ft,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#o=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#h=e.intervalCap,this.#a=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#o||this.#s<this.#h}get#x(){return this.#n<this.#u}#E(){this.#n--,this.#f(),this.emit("next")}#k(){this.#w(),this.#g(),this.#c=void 0}get#v(){let e=Date.now();if(this.#r===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#n:0;else return this.#c===void 0&&(this.#c=setTimeout(()=>{this.#k()},t)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#v;if(this.#b&&this.#x){let t=this.#t.dequeue();return t?(this.emit("active"),t(),e&&this.#g(),!0):!1}}return!1}#g(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#w()},this.#a),this.#p=Date.now()+this.#a)}#w(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#l()}#l(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#l()}async#A(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#y,...t},new Promise((n,o)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{t.signal?.throwIfAborted();let i=e({signal:t.signal});t.timeout&&(i=ut(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#A(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof ct&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#l(),this):this}pause(){this.#i=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#i}};var le={},ze=r=>{r.addEventListener("message",e=>{ze.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{ze.dispatchEvent("message",r,e)})};ze.addEventListener=(r,e)=>{le[r]==null&&(le[r]=[]),le[r].push(e)};ze.removeEventListener=(r,e)=>{le[r]!=null&&(le[r]=le[r].filter(t=>t===e))};ze.dispatchEvent=function(r,e,t){le[r]!=null&&le[r].forEach(n=>n(e,t))};var Or=ze;var $r="lock:worker:request-read",Fr="lock:worker:release-read",Mr="lock:master:grant-read",zr="lock:worker:request-write",qr="lock:worker:release-write",jr="lock:master:grant-write";var ti=(r=21)=>Math.random().toString().substring(2);var ri=(r,e,t,n,o)=>(i,s)=>{if(s.data.type!==t)return;let c={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:c.name,handler:async()=>{i.postMessage({type:o,name:c.name,identifier:c.identifier}),await new Promise(u=>{let m=f=>{if(f==null||f.data==null)return;let d={type:f.data.type,name:f.data.name,identifier:f.data.identifier};d.type===n&&d.identifier===c.identifier&&(i.removeEventListener("message",m),u())};i.addEventListener("message",m)})}}}))},ni=(r,e,t,n)=>async()=>{let o=ti();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(i=>{let s=c=>{if(c==null||c.data==null)return;let u={type:c.data.type,identifier:c.data.identifier};u.type===t&&u.identifier===o&&(globalThis.removeEventListener("message",s),i(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",s)})},Ua={singleProcess:!1},oi=r=>{if(r=Object.assign({},Ua,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return Or.addEventListener("message",ri(t,"requestReadLock",$r,Fr,Mr)),Or.addEventListener("message",ri(t,"requestWriteLock",zr,qr,jr)),t}return{isWorker:!0,readLock:t=>ni(t,$r,Mr,Fr),writeLock:t=>ni(t,zr,jr,qr)}};var me={},de;async function Vr(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>ut((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var Pa=(r,e)=>{if(de.isWorker===!0)return{readLock:de.readLock(r,e),writeLock:de.writeLock(r,e)};let t=new Me({concurrency:1}),n;return{async readLock(){if(n!=null)return Vr(n,e);n=new Me({concurrency:e.concurrency,autoStart:!1});let o=n,i=Vr(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),i},async writeLock(){return n=null,Vr(t,e)}}},Ra={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function Wr(r){let e=Object.assign({},Ra,r);return de==null&&(de=oi(e),de.isWorker!==!0&&(de.addEventListener("requestReadLock",t=>{me[t.data.name]!=null&&me[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),de.addEventListener("requestWriteLock",async t=>{me[t.data.name]!=null&&me[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),me[e.name]==null&&(me[e.name]=Pa(e.name,e)),me[e.name]}var Vt=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=Wr({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ne(this.child),this.started=!0}async stop(){await oe(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let i of e){if(await o.pins.isPinned(i))throw new Error("CID was pinned");yield i}}(),t)}finally{n()}}async has(e,t={}){let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}};var si=42;function Oa(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=C.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new l(a.tag,si),new l(a.bytes,t)]}function $a(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function Fa(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var ii={float64:!0,typeEncoders:{Object:Oa,undefined:$a,number:Fa}},jl={...ii,typeEncoders:{...ii.typeEncoders}};function Ma(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return C.decode(r.subarray(1))}var Hr={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};Hr.tags[si]=Ma;var Vl={...Hr,tags:Hr.tags.slice()};var ai=113;var ci=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===a.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===a.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[a.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[a.negint.major](e,t){this[a.uint.major](e,t)}[a.bytes.major](e,t){throw new Error(`${Te} unsupported type: Uint8Array`)}[a.string.major](e,t){this.prefix(e);let n=vt(JSON.stringify(t.value));e.push(n.length>32?je(n):n)}[a.array.major](e,t){this.prefix(e),this.inRecursive.push({type:a.array,elements:0}),e.push([91])}[a.map.major](e,t){this.prefix(e),this.inRecursive.push({type:a.map,elements:0}),e.push([123])}[a.tag.major](e,t){}[a.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===a.array)e.push([93]);else if(s.type===a.map)e.push([125]);else throw new Error("Unexpected recursive type; this should not happen!");return}throw new Error("Unexpected break; this should not happen!")}if(t.value===void 0)throw new Error(`${Te} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),o=[],i=!1;for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s),!i&&(o[s]===46||o[s]===101||o[s]===69)&&(i=!0);i||(o.push(46),o.push(48)),e.push(o)}};var ye=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${p} 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(`${p} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=c=>{for(;!this.done();){let u=this.ch();if(c.includes(u))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 l(a.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${p} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${p} unexpected token at position ${this._pos}`);n=!0,this._pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this._pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this._pos++,o([48,49,50,51,52,53,54,55,56,57]));let i=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(i);return n?new l(a.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new l(s>=0?a.uint:a.negint,s,this._pos-e):new l(s>=0?a.uint:a.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${p} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let i=this._pos,s=0;i<this.data.length&&s<65536;i++,s++){let c=this.data[i];if(c===92||c<32||c>=128)break;if(c===34){let u=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new l(a.string,u,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${p} unexpected end of unicode escape sequence at position ${this._pos}`);let i=0;for(let s=0;s<4;s++){let c=this.ch();if(c>=48&&c<=57)c-=48;else if(c>=97&&c<=102)c=c-97+10;else if(c>=65&&c<=70)c=c-65+10;else throw new Error(`${p} unexpected unicode escape character at position ${this._pos}`);i=i*16+c,this._pos++}return i},o=()=>{let i=this.ch(),s=null,c=i>239?4:i>223?3:i>191?2:1;if(this._pos+c>this.data.length)throw new Error(`${p} unexpected unicode sequence at position ${this._pos}`);let u,m,f,d;switch(c){case 1:i<128&&(s=i);break;case 2:u=this.data[this._pos+1],(u&192)===128&&(d=(i&31)<<6|u&63,d>127&&(s=d));break;case 3:u=this.data[this._pos+1],m=this.data[this._pos+2],(u&192)===128&&(m&192)===128&&(d=(i&15)<<12|(u&63)<<6|m&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:u=this.data[this._pos+1],m=this.data[this._pos+2],f=this.data[this._pos+3],(u&192)===128&&(m&192)===128&&(f&192)===128&&(d=(i&15)<<18|(u&63)<<12|(m&63)<<6|f&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${p} 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(`${p} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new l(a.string,ar(t),this._pos-e);default:if(i<32)throw new Error(`${p} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${p} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new l(a.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new l(a.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new l(a.null,null,4);case 102:return this.expect([102,97,108,115,101]),new l(a.false,!1,5);case 116:return this.expect([116,114,117,101]),new l(a.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(`${p} 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 l(a.break,void 0,1);if(this.ch()!==44)throw new Error(`${p} 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 l(a.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 l(a.break,void 0,1);if(this.ch()!==44)throw new Error(`${p} 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 l(a.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${p} 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(`${p} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function Wt(r,e){return e=Object.assign({tokenizer:new ye(r,e)},e),Y(r,e)}var ja={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};ja.tags[42]=C.parse;var fi=297;var ad=new TextDecoder;var cd=new TextEncoder;var Wa=new TextDecoder;function Kr(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function Ht(r,e){let t;[t,e]=Kr(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 li(r,e){let t;return[t,e]=Kr(r,e),[t&7,t>>3,e]}function Ha(r){let e={},t=r.length,n=0;for(;n<t;){let o,i;if([o,i,n]=li(r,n),i===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=Ht(r,n)}else if(i===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=Ht(r,n),e.Name=Wa.decode(s)}else if(i===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=Kr(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function di(r){let e=r.length,t=0,n,o=!1,i;for(;t<e;){let c,u;if([c,u,t]=li(r,t),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(u===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=Ht(r,t),n&&(o=!0)}else if(u===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let m;[m,t]=Ht(r,t),n.push(Ha(m))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${u}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var fd=new TextEncoder,ld=2**32,dd=2**31;var md=new TextEncoder;var hi=112;function pi(r){let e=di(r),t={};return e.Data&&(t.Data=e.Data),e.Links&&(t.Links=e.Links.map(n=>{let o={};try{o.Hash=C.decode(n.Hash)}catch{}if(!o.Hash)throw new Error("Invalid Hash field found in link, expected CID");return n.Name!==void 0&&(o.Name=n.Name),n.Tsize!==void 0&&(o.Tsize=n.Tsize),o})),t}var Ga={codec:hi,*walk(r){yield*pi(r).Links.map(t=>t.Hash)}},Ja={codec:So,*walk(){}},mi=42,Qa={codec:ai,*walk(r){let e=[],t=[];t[mi]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let o=C.decode(n.subarray(1));return e.push(o),o},Y(r,{tags:t}),yield*e}},Gr=class extends ye{tokenBuffer;constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===a.map){let t=this._next();if(t.type===a.string&&t.value==="/"){let n=this._next();if(n.type===a.string){if(this._next().type!==a.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new l(a.tag,42,0)}if(n.type===a.map){let o=this._next();if(o.type===a.string&&o.value==="bytes"){let i=this._next();if(i.type===a.string){for(let c=0;c<2;c++)if(this._next().type!==a.break)throw new Error("Invalid encoded Bytes form");let s=ke.decode(`m${i.value}`);return new l(a.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},Ya={codec:fi,*walk(r){let e=[],t=[];t[mi]=n=>{let o=C.parse(n);return e.push(o),o},Wt(r,{tags:t,tokenizer:new Gr(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}},Xa={codec:Ao,*walk(){}};function yi(r=[]){let e={};return[Ga,Ja,Qa,Ya,Xa,...r].forEach(t=>{e[t.codec]=t}),e}var Jr=new te("/version"),gi=1;async function wi(r){if(!await r.has(Jr)){await r.put(Jr,Ot(`${gi}`));return}let e=await r.get(Jr),t=$t(e);if(parseInt(t,10)!==gi)throw new Error("Unknown datastore version, a datastore migration may be required")}function bi(r=[]){let e={};return[Re,Tr,Pe,...r].forEach(t=>{e[t.code]=t}),e}function xi(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}function Za(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var Kt=Za;function ec(r){return r[Symbol.asyncIterator]!=null}function tc(r,e){if(ec(r))return async function*(){for await(let c of r)await e(c)&&(yield c)}();let t=Kt(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){await i&&(yield n);for await(let c of t)await e(c)&&(yield c)}();let s=e;return function*(){i===!0&&(yield n);for(let c of t)s(c)&&(yield c)}()}var Ei=tc;function rc(r){return r[Symbol.asyncIterator]!=null}function ki(r){return r?.then!=null}function nc(r,e){if(rc(r))return async function*(){for await(let c of r){let u=e(c);ki(u)&&await u,yield c}}();let t=Kt(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();if(typeof e(n)?.then=="function")return async function*(){yield n;for await(let c of t){let u=e(c);ki(u)&&await u,yield c}}();let s=e;return function*(){yield n;for(let c of t)s(c),yield c}()}var Qr=nc;function oc(r){return typeof r.retrieve=="function"}function ic(r){return typeof r.announce=="function"}var Gt=class{child;blockRetrievers;blockAnnouncers;hashers;started;log;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.child=e.blockstore,this.blockRetrievers=(e.blockBrokers??[]).filter(oc),this.blockAnnouncers=(e.blockBrokers??[]).filter(ic),this.hashers=e.hashers??{},this.started=!1}isStarted(){return this.started}async start(){await ne(this.child,...new Set([...this.blockRetrievers,...this.blockAnnouncers])),this.started=!0}async stop(){await oe(this.child,...new Set([...this.blockRetrievers,...this.blockAnnouncers])),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){return await this.child.has(e)?(n.onProgress?.(new k("blocks:put:duplicate",e)),e):(n.onProgress?.(new k("blocks:put:providers:notify",e)),this.blockAnnouncers.forEach(o=>{o.announce(e,t,n)}),n.onProgress?.(new k("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=Ei(e,async({cid:i})=>{let s=await this.child.has(i);return s&&t.onProgress?.(new k("blocks:put-many:duplicate",i)),!s}),o=Qr(n,({cid:i,block:s})=>{t.onProgress?.(new k("blocks:put-many:providers:notify",i)),this.blockAnnouncers.forEach(c=>{c.announce(i,s,t)})});t.onProgress?.(new k("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e)){t.onProgress?.(new k("blocks:get:providers:get",e));let n=await vi(e,this.blockRetrievers,this.hashers[e.multihash.code],{...t,log:this.log});return t.onProgress?.(new k("blocks:get:blockstore:put",e)),await this.child.put(e,n,t),t.onProgress?.(new k("blocks:get:providers:notify",e)),this.blockAnnouncers.forEach(o=>{o.announce(e,n,t)}),n}return t.onProgress?.(new k("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new k("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(Qr(e,async n=>{if(t.offline!==!0&&!await this.child.has(n)){t.onProgress?.(new k("blocks:get-many:providers:get",n));let o=await vi(n,this.blockRetrievers,this.hashers[n.multihash.code],{...t,log:this.log});t.onProgress?.(new k("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new k("blocks:get-many:providers:notify",n)),this.blockAnnouncers.forEach(i=>{i.announce(n,o,t)})}}))}async delete(e,t={}){t.onProgress?.(new k("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new k("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new k("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},sc=(r,e)=>{if(e==null)throw new O(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`,"ERR_UNKNOWN_HASH_ALG");return async t=>{let n=await e.digest(t);if(!fe(n.digest,r.multihash.digest))throw new O("Hash of downloaded block did not match multihash from passed CID","ERR_HASH_MISMATCH")}};async function vi(r,e,t,n){let o=sc(r,t),i=new AbortController,s=xi([i.signal,n.signal]);try{return await Promise.any(e.map(async c=>{try{let u=!1,m=await c.retrieve(r,{...n,signal:s,validateFn:async f=>{await o(f),u=!0}});return u||await o(m),m}catch(u){throw n.log.error("could not retrieve verified block for %c",r,u),u}}))}finally{s.clear()}}var Yr=class{blockstore;datastore;pins;logger;routing;dagWalkers;hashers;log;constructor(e){this.logger=e.logger??mn(),this.log=this.logger.forComponent("helia"),this.hashers=bi(e.hashers),this.dagWalkers=yi(e.dagWalkers);let t={blockstore:e.blockstore,datastore:e.datastore,hashers:this.hashers,dagWalkers:this.dagWalkers,logger:this.logger,blockBrokers:[],...e.components??{}};t.blockBrokers=e.blockBrokers.map(o=>o(t));let n=new Gt(t);this.pins=new Mt(e.datastore,n,this.dagWalkers),this.blockstore=new Vt(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,this.routing=new qt(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[Jt]!=null&&i.push(o[Jt]),o[Qt]!=null&&i.push(o[Qt]),i})})}async start(){await wi(this.datastore),await ne(this.blockstore,this.datastore,this.routing)}async stop(){await oe(this.blockstore,this.datastore,this.routing)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await yn(o.deleteMany(async function*(){for await(let{cid:i}of o.getAll())try{if(await n.pins.isPinned(i,e))continue;yield i,e.onProgress?.(new k("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new k("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return Ii(ac);})();
|
|
2
|
+
"use strict";var HeliaUtils=(()=>{var Qi=Object.create;var wt=Object.defineProperty;var Yi=Object.getOwnPropertyDescriptor;var Xi=Object.getOwnPropertyNames;var Zi=Object.getPrototypeOf,es=Object.prototype.hasOwnProperty;var Ee=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),U=(r,e)=>{for(var t in e)wt(r,t,{get:e[t],enumerable:!0})},yn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Xi(e))!es.call(r,o)&&o!==t&&wt(r,o,{get:()=>e[o],enumerable:!(n=Yi(e,o))||n.enumerable});return r};var bt=(r,e,t)=>(t=r!=null?Qi(Zi(r)):{},yn(e||!r||!r.__esModule?wt(t,"default",{value:r,enumerable:!0}):t,r)),ts=r=>yn(wt({},"__esModule",{value:!0}),r);var xn=Ee((Wc,bn)=>{var ve=1e3,ke=ve*60,Ae=ke*60,me=Ae*24,ns=me*7,os=me*365.25;bn.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return is(r);if(t==="number"&&isFinite(r))return e.long?as(r):ss(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function is(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*os;case"weeks":case"week":case"w":return t*ns;case"days":case"day":case"d":return t*me;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Ae;case"minutes":case"minute":case"mins":case"min":case"m":return t*ke;case"seconds":case"second":case"secs":case"sec":case"s":return t*ve;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function ss(r){var e=Math.abs(r);return e>=me?Math.round(r/me)+"d":e>=Ae?Math.round(r/Ae)+"h":e>=ke?Math.round(r/ke)+"m":e>=ve?Math.round(r/ve)+"s":r+"ms"}function as(r){var e=Math.abs(r);return e>=me?vt(r,e,me,"day"):e>=Ae?vt(r,e,Ae,"hour"):e>=ke?vt(r,e,ke,"minute"):e>=ve?vt(r,e,ve,"second"):r+" ms"}function vt(r,e,t,n){var o=e>=t*1.5;return Math.round(r/t)+" "+n+(o?"s":"")}});var vn=Ee((Hc,En)=>{function cs(r){t.debug=t,t.default=t,t.coerce=u,t.disable=i,t.enable=o,t.enabled=s,t.humanize=xn(),t.destroy=p,Object.keys(r).forEach(f=>{t[f]=r[f]}),t.names=[],t.skips=[],t.formatters={};function e(f){let d=0;for(let g=0;g<f.length;g++)d=(d<<5)-d+f.charCodeAt(g),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(f){let d,g=null,B,E;function w(...y){if(!w.enabled)return;let v=w,A=Number(new Date),T=A-(d||A);v.diff=T,v.prev=d,v.curr=A,d=A,y[0]=t.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let _=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(V,R)=>{if(V==="%%")return"%";_++;let W=t.formatters[R];if(typeof W=="function"){let xe=y[_];V=W.call(v,xe),y.splice(_,1),_--}return V}),t.formatArgs.call(v,y),(v.log||t.log).apply(v,y)}return w.namespace=f,w.useColors=t.useColors(),w.color=t.selectColor(f),w.extend=n,w.destroy=t.destroy,Object.defineProperty(w,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(B!==t.namespaces&&(B=t.namespaces,E=t.enabled(f)),E),set:y=>{g=y}}),typeof t.init=="function"&&t.init(w),w}function n(f,d){let g=t(this.namespace+(typeof d>"u"?":":d)+f);return g.log=this.log,g}function o(f){t.save(f),t.namespaces=f,t.names=[],t.skips=[];let d,g=(typeof f=="string"?f:"").split(/[\s,]+/),B=g.length;for(d=0;d<B;d++)g[d]&&(f=g[d].replace(/\*/g,".*?"),f[0]==="-"?t.skips.push(new RegExp("^"+f.slice(1)+"$")):t.names.push(new RegExp("^"+f+"$")))}function i(){let f=[...t.names.map(c),...t.skips.map(c).map(d=>"-"+d)].join(",");return t.enable(""),f}function s(f){if(f[f.length-1]==="*")return!0;let d,g;for(d=0,g=t.skips.length;d<g;d++)if(t.skips[d].test(f))return!1;for(d=0,g=t.names.length;d<g;d++)if(t.names[d].test(f))return!0;return!1}function c(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function u(f){return f instanceof Error?f.stack||f.message:f}function p(){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}En.exports=cs});var kn=Ee((F,kt)=>{F.formatArgs=fs;F.save=ls;F.load=ds;F.useColors=us;F.storage=hs();F.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`."))}})();F.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 us(){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 fs(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+kt.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,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}F.log=console.debug||console.log||(()=>{});function ls(r){try{r?F.storage.setItem("debug",r):F.storage.removeItem("debug")}catch{}}function ds(){let r;try{r=F.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function hs(){try{return localStorage}catch{}}kt.exports=vn()(F);var{formatters:ps}=kt.exports;ps.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Nn=Ee((su,br)=>{"use strict";var Bs=Object.prototype.hasOwnProperty,N="~";function Je(){}Object.create&&(Je.prototype=Object.create(null),new Je().__proto__||(N=!1));function Ps(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Dn(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var i=new Ps(t,n||r,o),s=N?N+e:e;return r._events[s]?r._events[s].fn?r._events[s]=[r._events[s],i]:r._events[s].push(i):(r._events[s]=i,r._eventsCount++),r}function At(r,e){--r._eventsCount===0?r._events=new Je:delete r._events[e]}function L(){this._events=new Je,this._eventsCount=0}L.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Bs.call(t,n)&&e.push(N?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};L.prototype.listeners=function(e){var t=N?N+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,s=new Array(i);o<i;o++)s[o]=n[o].fn;return s};L.prototype.listenerCount=function(e){var t=N?N+e:e,n=this._events[t];return n?n.fn?1:n.length:0};L.prototype.emit=function(e,t,n,o,i,s){var c=N?N+e:e;if(!this._events[c])return!1;var u=this._events[c],p=arguments.length,f,d;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),p){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,n),!0;case 4:return u.fn.call(u.context,t,n,o),!0;case 5:return u.fn.call(u.context,t,n,o,i),!0;case 6:return u.fn.call(u.context,t,n,o,i,s),!0}for(d=1,f=new Array(p-1);d<p;d++)f[d-1]=arguments[d];u.fn.apply(u.context,f)}else{var g=u.length,B;for(d=0;d<g;d++)switch(u[d].once&&this.removeListener(e,u[d].fn,void 0,!0),p){case 1:u[d].fn.call(u[d].context);break;case 2:u[d].fn.call(u[d].context,t);break;case 3:u[d].fn.call(u[d].context,t,n);break;case 4:u[d].fn.call(u[d].context,t,n,o);break;default:if(!f)for(B=1,f=new Array(p-1);B<p;B++)f[B-1]=arguments[B];u[d].fn.apply(u[d].context,f)}}return!0};L.prototype.on=function(e,t,n){return Dn(this,e,t,n,!1)};L.prototype.once=function(e,t,n){return Dn(this,e,t,n,!0)};L.prototype.removeListener=function(e,t,n,o){var i=N?N+e:e;if(!this._events[i])return this;if(!t)return At(this,i),this;var s=this._events[i];if(s.fn)s.fn===t&&(!o||s.once)&&(!n||s.context===n)&&At(this,i);else{for(var c=0,u=[],p=s.length;c<p;c++)(s[c].fn!==t||o&&!s[c].once||n&&s[c].context!==n)&&u.push(s[c]);u.length?this._events[i]=u.length===1?u[0]:u:At(this,i)}return this};L.prototype.removeAllListeners=function(e){var t;return e?(t=N?N+e:e,this._events[t]&&At(this,t)):(this._events=new Je,this._eventsCount=0),this};L.prototype.off=L.prototype.removeListener;L.prototype.addListener=L.prototype.on;L.prefixed=N;L.EventEmitter=L;typeof br<"u"&&(br.exports=L)});var ro=Ee((df,to)=>{to.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(i,s){t[i]=s,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(i){return t[i]!==void 0||n[i]!==void 0},remove:function(i){t[i]!==void 0&&(t[i]=void 0),n[i]!==void 0&&(n[i]=void 0)},get:function(i){var s=t[i];if(s!==void 0)return s;if((s=n[i])!==void 0)return o(i,s),s},set:function(i,s){t[i]!==void 0?t[i]=s:o(i,s)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var ji=Ee((Bh,qi)=>{"use strict";function zi(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function Cc(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 zi(r,t)}catch{t.message=r.message,t.stack=r.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(r)),zi(new o,t)}}qi.exports=Cc});var Rc={};U(Rc,{Helia:()=>mn});var cr=Symbol.for("@libp2p/content-routing");var gn=Symbol.for("@libp2p/peer-id");var ur=Symbol.for("@libp2p/peer-routing");var re=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},O=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var xt=(r,...e)=>{try{[...e]}catch{}};var Et=class extends EventTarget{#e=new Map;constructor(){super(),xt(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:i})=>i!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new rs(e,t))}},fr=class extends Event{detail;constructor(e,t){super(e,t),this.detail=t?.detail}},rs=globalThis.CustomEvent??fr;function wn(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function ne(...r){let e=[];for(let t of r)wn(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function oe(...r){let e=[];for(let t of r)wn(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var $=bt(kn(),1);var mr={};U(mr,{base32:()=>se,base32hex:()=>ks,base32hexpad:()=>Cs,base32hexpadupper:()=>Ts,base32hexupper:()=>As,base32pad:()=>Es,base32padupper:()=>vs,base32upper:()=>xs,base32z:()=>_s});var Kc=new Uint8Array(0);function An(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function X(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Cn(r){return new TextEncoder().encode(r)}function Tn(r){return new TextDecoder().decode(r)}function ms(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=o}var c=r.length,u=r.charAt(0),p=Math.log(c)/Math.log(256),f=Math.log(256)/Math.log(c);function d(E){if(E instanceof Uint8Array||(ArrayBuffer.isView(E)?E=new Uint8Array(E.buffer,E.byteOffset,E.byteLength):Array.isArray(E)&&(E=Uint8Array.from(E))),!(E instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(E.length===0)return"";for(var w=0,y=0,v=0,A=E.length;v!==A&&E[v]===0;)v++,w++;for(var T=(A-v)*f+1>>>0,_=new Uint8Array(T);v!==A;){for(var P=E[v],V=0,R=T-1;(P!==0||V<y)&&R!==-1;R--,V++)P+=256*_[R]>>>0,_[R]=P%c>>>0,P=P/c>>>0;if(P!==0)throw new Error("Non-zero carry");y=V,v++}for(var W=T-y;W!==T&&_[W]===0;)W++;for(var xe=u.repeat(w);W<T;++W)xe+=r.charAt(_[W]);return xe}function g(E){if(typeof E!="string")throw new TypeError("Expected String");if(E.length===0)return new Uint8Array;var w=0;if(E[w]!==" "){for(var y=0,v=0;E[w]===u;)y++,w++;for(var A=(E.length-w)*p+1>>>0,T=new Uint8Array(A);E[w];){var _=t[E.charCodeAt(w)];if(_===255)return;for(var P=0,V=A-1;(_!==0||P<v)&&V!==-1;V--,P++)_+=c*T[V]>>>0,T[V]=_%256>>>0,_=_/256>>>0;if(_!==0)throw new Error("Non-zero carry");v=P,w++}if(E[w]!==" "){for(var R=A-v;R!==A&&T[R]===0;)R++;for(var W=new Uint8Array(y+(A-R)),xe=y;R!==A;)W[xe++]=T[R++];return W}}}function B(E){var w=g(E);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:d,decodeUnsafe:g,decode:B}}var ys=ms,gs=ys,Sn=gs;var lr=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},dr=class{name;prefix;baseDecode;prefixCodePoint;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 In(this,e)}},hr=class{decoders;constructor(e){this.decoders=e}or(e){return In(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function In(r,e){return new hr({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var pr=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new lr(e,t,n),this.decoder=new dr(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Ce({name:r,prefix:e,encode:t,decode:n}){return new pr(r,e,t,n)}function ie({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Sn(t,r);return Ce({prefix:e,name:r,encode:n,decode:i=>X(o(i))})}function ws(r,e,t,n){let o={};for(let f=0;f<e.length;++f)o[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let s=new Uint8Array(i*t/8|0),c=0,u=0,p=0;for(let f=0;f<i;++f){let d=o[r[f]];if(d===void 0)throw new SyntaxError(`Non-${n} character`);u=u<<t|d,c+=t,c>=8&&(c-=8,s[p++]=255&u>>c)}if(c>=t||255&u<<8-c)throw new SyntaxError("Unexpected end of data");return s}function bs(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,i="",s=0,c=0;for(let u=0;u<r.length;++u)for(c=c<<8|r[u],s+=8;s>t;)s-=t,i+=e[o&c>>s];if(s!==0&&(i+=e[o&c<<t-s]),n)for(;i.length*t&7;)i+="=";return i}function k({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return Ce({prefix:e,name:r,encode(o){return bs(o,n,t)},decode(o){return ws(o,n,t,r)}})}var se=k({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),xs=k({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Es=k({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),vs=k({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ks=k({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),As=k({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Cs=k({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ts=k({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),_s=k({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yr={};U(yr,{base58btc:()=>D,base58flickr:()=>Ss});var D=ie({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ss=ie({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var gr={};U(gr,{base64:()=>Te,base64pad:()=>Is,base64url:()=>Ls,base64urlpad:()=>Ds});var Te=k({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Is=k({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ls=k({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ds=k({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});$.default.formatters.b=r=>r==null?"undefined":D.baseEncode(r);$.default.formatters.t=r=>r==null?"undefined":se.baseEncode(r);$.default.formatters.m=r=>r==null?"undefined":Te.baseEncode(r);$.default.formatters.p=r=>r==null?"undefined":r.toString();$.default.formatters.c=r=>r==null?"undefined":r.toString();$.default.formatters.k=r=>r==null?"undefined":r.toString();$.default.formatters.a=r=>r==null?"undefined":r.toString();function Ns(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Ln(){return{forComponent(r){return wr(r)}}}function wr(r){let e=Ns(`${r}:trace`);return $.default.enabled(`${r}:trace`)&&$.default.names.map(t=>t.toString()).find(t=>t.includes(":trace"))!=null&&(e=(0,$.default)(`${r}:trace`)),Object.assign((0,$.default)(r),{error:(0,$.default)(`${r}:error`),trace:e})}var x=class extends Event{constructor(e,t){super(e),this.detail=t}};var xr=bt(Nn(),1);var Qe=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Er=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Bn=r=>globalThis.DOMException===void 0?new Er(r):new DOMException(r),Pn=r=>{let e=r.reason===void 0?Bn("This operation was aborted."):r.reason;return e instanceof Error?e:Bn(e)};function Ye(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:i={setTimeout,clearTimeout}}=e,s,u=new Promise((p,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:g}=e;g.aborted&&f(Pn(g)),g.addEventListener("abort",()=>{f(Pn(g))})}if(t===Number.POSITIVE_INFINITY){r.then(p,f);return}let d=new Qe;s=i.setTimeout.call(void 0,()=>{if(n){try{p(n())}catch(g){f(g)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?p():o instanceof Error?f(o):(d.message=o??`Promise timed out after ${t} milliseconds`,f(d))},t),(async()=>{try{p(await r)}catch(g){f(g)}})()}).finally(()=>{u.clear()});return u.clear=()=>{i.clearTimeout.call(void 0,s),s=void 0},u}function vr(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var Xe=class{#e=[];enqueue(e,t){t={priority:0,...t};let n={priority:t.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=t.priority){this.#e.push(n);return}let o=vr(this.#e,n,(i,s)=>s.priority-i.priority);this.#e.splice(o,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(t=>t.run)}get size(){return this.#e.length}};var ae=class extends xr.default{#e;#o;#s=0;#h;#a;#p=0;#r;#c;#t;#m;#n=0;#u;#i;#y;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Xe,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#o=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#h=e.intervalCap,this.#a=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#y=e.throwOnTimeout===!0,this.#i=e.autoStart===!1}get#b(){return this.#o||this.#s<this.#h}get#x(){return this.#n<this.#u}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#w(),this.#g(),this.#c=void 0}get#k(){let e=Date.now();if(this.#r===void 0){let t=this.#p-e;if(t<0)this.#s=this.#e?this.#n:0;else return this.#c===void 0&&(this.#c=setTimeout(()=>{this.#v()},t)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#i){let e=!this.#k;if(this.#b&&this.#x){let t=this.#t.dequeue();return t?(this.emit("active"),t(),e&&this.#g(),!0):!1}}return!1}#g(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#w()},this.#a),this.#p=Date.now()+this.#a)}#w(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#l()}#l(){for(;this.#f(););}get concurrency(){return this.#u}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#u=e,this.#l()}async#A(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,t={}){return t={timeout:this.timeout,throwOnTimeout:this.#y,...t},new Promise((n,o)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{t.signal?.throwIfAborted();let i=e({signal:t.signal});t.timeout&&(i=Ye(Promise.resolve(i),{milliseconds:t.timeout})),t.signal&&(i=Promise.race([i,this.#A(t.signal)]));let s=await i;n(s),this.emit("completed",s)}catch(i){if(i instanceof Qe&&!t.throwOnTimeout){n();return}o(i),this.emit("error",i)}finally{this.#E()}},t),this.emit("add"),this.#f()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#i?(this.#i=!1,this.#l(),this):this}pause(){this.#i=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,t){return new Promise(n=>{let o=()=>{t&&!t()||(this.off(e,o),n())};this.on(e,o)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#i}};var kr={};U(kr,{base10:()=>Rs});var Rs=ie({prefix:"9",name:"base10",alphabet:"0123456789"});var Ar={};U(Ar,{base16:()=>Us,base16upper:()=>Os});var Us=k({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Os=k({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Cr={};U(Cr,{base2:()=>Fs});var Fs=k({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Tr={};U(Tr,{base256emoji:()=>js});var Rn=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}"),$s=Rn.reduce((r,e,t)=>(r[t]=e,r),[]),Ms=Rn.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function zs(r){return r.reduce((e,t)=>(e+=$s[t],e),"")}function qs(r){let e=[];for(let t of r){let n=Ms[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var js=Ce({prefix:"\u{1F680}",name:"base256emoji",encode:zs,decode:qs});var _r={};U(_r,{base36:()=>Ze,base36upper:()=>Vs});var Ze=ie({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Vs=ie({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Sr={};U(Sr,{base8:()=>Ws});var Ws=k({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ir={};U(Ir,{identity:()=>Hs});var Hs=Ce({prefix:"\0",name:"identity",encode:r=>Tn(r),decode:r=>Cn(r)});var Au=new TextEncoder,Cu=new TextDecoder;var Un=512;var Fn=85;var Dr={};U(Dr,{identity:()=>De});var Ks=qn,Mn=128,Gs=127,Js=~Gs,Qs=Math.pow(2,31);function qn(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Qs;)e[t++]=r&255|Mn,r/=128;for(;r&Js;)e[t++]=r&255|Mn,r>>>=7;return e[t]=r|0,qn.bytes=t-n+1,e}var Ys=Lr,Xs=128,zn=127;function Lr(r,n){var t=0,n=n||0,o=0,i=n,s,c=r.length;do{if(i>=c)throw Lr.bytes=0,new RangeError("Could not decode varint");s=r[i++],t+=o<28?(s&zn)<<o:(s&zn)*Math.pow(2,o),o+=7}while(s>=Xs);return Lr.bytes=i-n,t}var Zs=Math.pow(2,7),ea=Math.pow(2,14),ta=Math.pow(2,21),ra=Math.pow(2,28),na=Math.pow(2,35),oa=Math.pow(2,42),ia=Math.pow(2,49),sa=Math.pow(2,56),aa=Math.pow(2,63),ca=function(r){return r<Zs?1:r<ea?2:r<ta?3:r<ra?4:r<na?5:r<oa?6:r<ia?7:r<sa?8:r<aa?9:10},ua={encode:Ks,decode:Ys,encodingLength:ca},fa=ua,et=fa;function tt(r,e=0){return[et.decode(r,e),et.decode.bytes]}function _e(r,e,t=0){return et.encode(r,e,t),e}function Se(r){return et.encodingLength(r)}function ce(r,e){let t=e.byteLength,n=Se(r),o=n+Se(t),i=new Uint8Array(o+t);return _e(r,i,0),_e(t,i,n),i.set(e,o),new Ie(r,t,e,i)}function rt(r){let e=X(r),[t,n]=tt(e),[o,i]=tt(e.subarray(n)),s=e.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new Ie(t,o,s,e)}function jn(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&An(r.bytes,t.bytes)}}var Ie=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Vn=0,la="identity",Wn=X;function da(r){return ce(Vn,Wn(r))}var De={code:Vn,name:la,encode:Wn,digest:da};var Rr={};U(Rr,{sha256:()=>Ne,sha512:()=>Pr});function Br({name:r,code:e,encode:t}){return new Nr(r,e,t)}var Nr=class{name;code;encode;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?ce(this.code,t):t.then(n=>ce(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Kn(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var Ne=Br({name:"sha2-256",code:18,encode:Kn("SHA-256")}),Pr=Br({name:"sha2-512",code:19,encode:Kn("SHA-512")});function Gn(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return pa(t,Ur(r),e??D.encoder);default:return ma(t,Ur(r),e??se.encoder)}}var Jn=new WeakMap;function Ur(r){let e=Jn.get(r);if(e==null){let t=new Map;return Jn.set(r,t),t}return e}var C=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==nt)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==ya)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=ce(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&jn(e.multihash,n.multihash)}toString(e){return Gn(this,e)}toJSON(){return{"/":Gn(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:i,bytes:s}=t;return new r(n,o,i,s??Qn(n,o,i.bytes))}else if(t[ga]===!0){let{version:n,multihash:o,code:i}=t,s=rt(o);return r.create(n,i,s)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==nt)throw new Error(`Version 0 CID must use dag-pb (code: ${nt}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=Qn(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,nt,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=X(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=o.subarray(t.multihashSize-t.digestSize),s=new Ie(t.multihashCode,t.digestSize,i,o);return[t.version===0?r.createV0(s):r.createV1(t.codec,s),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[d,g]=tt(e.subarray(t));return t+=g,d},o=n(),i=nt;if(o===18?(o=0,t=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=t,c=n(),u=n(),p=t+u,f=p-s;return{version:o,codec:i,multihashCode:c,digestSize:u,multihashSize:f,size:p}}static parse(e,t){let[n,o]=ha(e,t),i=r.decode(o);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ur(i).set(n,e),i}};function ha(r,e){switch(r[0]){case"Q":{let t=e??D;return[D.prefix,t.decode(`${D.prefix}${r}`)]}case D.prefix:{let t=e??D;return[D.prefix,t.decode(r)]}case se.prefix:{let t=e??se;return[se.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)]}}}function pa(r,e,t){let{prefix:n}=t;if(n!==D.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return o}function ma(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let i=t.encode(r);return e.set(n,i),i}else return o}var nt=112,ya=18;function Qn(r,e,t){let n=Se(r),o=n+Se(e),i=new Uint8Array(o+t.byteLength);return _e(r,i,0),_e(e,i,n),i.set(t,o),i}var ga=Symbol.for("@ipld/js-cid/CID");var Be={...Ir,...Cr,...Sr,...kr,...Ar,...mr,..._r,...yr,...gr,...Tr},Hu={...Rr,...Dr};function Tt(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function Yn(r=0){return globalThis.Buffer?.allocUnsafe!=null?Tt(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function Zn(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Xn=Zn("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Or=Zn("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=Yn(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),wa={utf8:Xn,"utf-8":Xn,hex:Be.base16,latin1:Or,ascii:Or,binary:Or,...Be},_t=wa;function Pe(r,e="utf8"){let t=_t[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 Fr=60;function St(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:ue[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:ue[e.type],TTL:e.TTL??e.ttl??Fr,data:e.data instanceof Uint8Array?Pe(e.data):e.data}))}}var ba=4;function $r(r,e={}){let t=new ae({concurrency:e.queryConcurrency??ba});return async(n,o,i={})=>{let s=new URLSearchParams;s.set("name",n),o.forEach(u=>{s.append("type",u.toString())}),i.onProgress?.(new x("dns:query",{detail:n}));let c=await t.add(async()=>{let u=await fetch(`${r}?${s}`,{headers:{accept:"application/dns-json"},signal:i?.signal});if(u.status!==200)throw new Error(`Unexpected HTTP status: ${u.status} - ${u.statusText}`);let p=St(await u.json());return i.onProgress?.(new x("dns:response",{detail:p})),p},{signal:i.signal});if(c==null)throw new Error("No DNS response received");return c}}function eo(){return[$r("https://cloudflare-dns.com/dns-query"),$r("https://dns.google/resolve")]}var no=bt(ro(),1);var Mr=class{lru;constructor(e){this.lru=(0,no.default)(e)}get(e,t){let n=!0,o=[];for(let i of t){let s=this.getAnswers(e,i);if(s.length===0){n=!1;break}o.push(...s)}if(n)return St({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let i=o.filter(s=>s.expires>Date.now()).map(({value:s})=>s);return i.length===0&&this.lru.remove(n),i}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??Fr)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}},zr=new Mr(1e3);var It=class{resolvers;constructor(e){this.resolvers={},Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=eo())}async query(e,t={}){let n=[];t.types!=null?Array.isArray(t.types)?n.push(...t.types):n.push(t.types):n.push(ue.A,ue.AAAA);let o=t.cached!==!1?zr.get(e,n):void 0;if(o!=null)return t.onProgress?.(new x("dns:cache",{detail:o})),o;let i=`${e.split(".").pop()}.`,s=(this.resolvers[i]??this.resolvers["."]).sort(()=>Math.random()>.5?-1:1),c=[];for(let u of s)try{let p=await u(e,Array.isArray(n)?n:[n],t);for(let f of p.Answer)zr.add(e,f);return p}catch(p){c.push(p),t.onProgress?.(new x("dns:error",{detail:p}))}throw c.length===1?c[0]:new AggregateError(c,`DNS lookup of ${e} ${n} failed`)}};var ue;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(ue||(ue={}));function oo(r={}){return new It(r)}function xa(r){return r[Symbol.asyncIterator]!=null}function Ea(r){if(xa(r))return(async()=>{for await(let e of r);})();for(let e of r);}var ot=Ea;function Re(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Lt=class{buffer;mask;top;btm;next;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}},Ue=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Lt(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 Lt(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var qr=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function ye(r={}){return va(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 va(r,e){e=e??{};let t=e.onEnd,n=new Ue,o,i,s,c=Re(),u=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,v)=>{i=A=>{i=null,n.push(A);try{y(r(n))}catch(T){v(T)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=Re()})}},p=y=>i!=null?i(y):(n.push(y),o),f=y=>(n=new Ue,i!=null?i({error:y}):(n.push({error:y}),o)),d=y=>{if(s)return o;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return p({done:!1,value:y})},g=y=>s?o:(s=!0,y!=null?f(y):p({done:!0})),B=()=>(n=new Ue,g(),{done:!0}),E=y=>(g(y),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:B,throw:E,push:d,end:g,get readableLength(){return n.size},onEmpty:async y=>{let v=y?.signal;if(v?.throwIfAborted(),n.isEmpty())return;let A,T;v!=null&&(A=new Promise((_,P)=>{T=()=>{P(new qr)},v.addEventListener("abort",T)}));try{await Promise.race([c.promise,A])}finally{T!=null&&v!=null&&v?.removeEventListener("abort",T)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(y){return w.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:d,end(y){return w.end(y),t!=null&&(t(y),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:y=>w.onEmpty(y)},o}var jr=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function Dt(r,e,t,n){let o=new jr(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(o):new Promise((i,s)=>{let c=p=>{try{if(n?.filter?.(p)===!1)return}catch(f){r.removeEventListener(e,c),t?.removeEventListener("abort",u),s(f);return}r.removeEventListener(e,c),t?.removeEventListener("abort",u),i(p)},u=()=>{r.removeEventListener(e,c),t?.removeEventListener("abort",u),s(o)};r.addEventListener(e,c),t?.addEventListener("abort",u)})}var Nt=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function io(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Nt(t?.errorMessage,t?.errorCode));let n,o=new Nt(t?.errorMessage,t?.errorCode);try{return await Promise.race([r,new Promise((i,s)=>{n=()=>{s(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Bt=class{deferred;signal;where;constructor(e,t){this.signal=t,this.deferred=Re(),this.where=e,this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(new re)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function ka(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Pt=class{id;fn;options;priority;recipients;status;timeline;controller;constructor(e,t,n=0){this.id=ka(),this.status="queued",this.fn=e,this.priority=n,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,xt(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&this.controller.abort(new re)}async join(e={}){let t=new Bt(new Error("where").stack,e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await io(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.signal?.removeEventListener("abort",this.onAbort)})}};function Aa(r,e,t){let n=0,o=r.length;for(;o>0;){let i=Math.trunc(o/2),s=n+i;t(r[s],e)<=0?(n=++s,o-=i+1):o=i}return n}var it=class extends Et{concurrency;queue;pending;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){if(this.queue[this.size-1]?.priority>=e.priority){this.queue.push(e);return}let t=Aa(this.queue,e,(n,o)=>o.priority-n.priority);this.queue.splice(t,0,e)}async add(e,t){t?.signal?.throwIfAborted();let n=new Pt(e,t,t?.priority),o=n.join(t).then(i=>(this.safeDispatchEvent("completed",{detail:i}),i)).catch(i=>{throw this.safeDispatchEvent("error",{detail:i}),i});return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new re)}),this.clear()}async onEmpty(e){this.size!==0&&await Dt(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Dt(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Dt(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=ye({objectMode:!0}),n=u=>{u!=null?this.abort():this.clear(),t.end(u)},o=u=>{u.detail!=null&&t.push(u.detail)},i=u=>{n(u.detail)},s=()=>{n()},c=()=>{n(new O("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",o),this.addEventListener("error",i),this.addEventListener("idle",s),e?.signal?.addEventListener("abort",c);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("error",i),this.removeEventListener("idle",s),e?.signal?.removeEventListener("abort",c),n()}}};var Ca=["string","number","bigint","symbol"],Ta=["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 so(r){if(r===null)return"null";if(r===void 0)return"undefined";if(r===!0||r===!1)return"boolean";let e=typeof r;if(Ca.includes(e))return e;if(e==="function")return"Function";if(Array.isArray(r))return"Array";if(_a(r))return"Buffer";let t=Sa(r);return t||"Object"}function _a(r){return r&&r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer.call(null,r)}function Sa(r){let e=Object.prototype.toString.call(r).slice(8,-1);if(Ta.includes(e))return e}var a=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}};a.uint=new a(0,"uint",!0);a.negint=new a(1,"negint",!0);a.bytes=new a(2,"bytes",!0);a.string=new a(3,"string",!0);a.array=new a(4,"array",!1);a.map=new a(5,"map",!1);a.tag=new a(6,"tag",!1);a.float=new a(7,"float",!0);a.false=new a(7,"false",!0);a.true=new a(7,"true",!0);a.null=new a(7,"null",!0);a.undefined=new a(7,"undefined",!0);a.break=new a(7,"break",!0);var l=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 Oe=globalThis.process&&!globalThis.process.browser&&globalThis.Buffer&&typeof globalThis.Buffer.isBuffer=="function",Ia=new TextDecoder,La=new TextEncoder;function Rt(r){return Oe&&globalThis.Buffer.isBuffer(r)}function st(r){return r instanceof Uint8Array?Rt(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r:Uint8Array.from(r)}var fo=Oe?(r,e,t)=>t-e>64?globalThis.Buffer.from(r.subarray(e,t)).toString("utf8"):co(r,e,t):(r,e,t)=>t-e>64?Ia.decode(r.subarray(e,t)):co(r,e,t),Ut=Oe?r=>r.length>64?globalThis.Buffer.from(r):ao(r):r=>r.length>64?La.encode(r):ao(r),Q=r=>Uint8Array.from(r),Fe=Oe?(r,e,t)=>Rt(r)?new Uint8Array(r.subarray(e,t)):r.slice(e,t):(r,e,t)=>r.slice(e,t),lo=Oe?(r,e)=>(r=r.map(t=>t instanceof Uint8Array?t:globalThis.Buffer.from(t)),st(globalThis.Buffer.concat(r,e))):(r,e)=>{let t=new Uint8Array(e),n=0;for(let o of r)n+o.length>t.length&&(o=o.subarray(0,t.length-n)),t.set(o,n),n+=o.length;return t},ho=Oe?r=>globalThis.Buffer.allocUnsafe(r):r=>new Uint8Array(r);function po(r,e){if(Rt(r)&&Rt(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 ao(r){let e=[],t=0;for(let n=0;n<r.length;n++){let o=r.charCodeAt(n);o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&n+1<r.length&&(r.charCodeAt(n+1)&64512)===56320?(o=65536+((o&1023)<<10)+(r.charCodeAt(++n)&1023),e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128)}return e}function co(r,e,t){let n=[];for(;e<t;){let o=r[e],i=null,s=o>239?4:o>223?3:o>191?2:1;if(e+s<=t){let c,u,p,f;switch(s){case 1:o<128&&(i=o);break;case 2:c=r[e+1],(c&192)===128&&(f=(o&31)<<6|c&63,f>127&&(i=f));break;case 3:c=r[e+1],u=r[e+2],(c&192)===128&&(u&192)===128&&(f=(o&15)<<12|(c&63)<<6|u&63,f>2047&&(f<55296||f>57343)&&(i=f));break;case 4:c=r[e+1],u=r[e+2],p=r[e+3],(c&192)===128&&(u&192)===128&&(p&192)===128&&(f=(o&15)<<18|(c&63)<<12|(u&63)<<6|p&63,f>65535&&f<1114112&&(i=f))}}i===null?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|i&1023),n.push(i),e+=s}return Vr(n)}var uo=4096;function Vr(r){let e=r.length;if(e<=uo)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=uo));return t}var Da=256,at=class{constructor(e=Da){this.chunkSize=e,this.cursor=0,this.maxCursor=-1,this.chunks=[],this._initReuseChunk=null}reset(){this.cursor=0,this.maxCursor=-1,this.chunks.length&&(this.chunks=[]),this._initReuseChunk!==null&&(this.chunks.push(this._initReuseChunk),this.maxCursor=this._initReuseChunk.length-1)}push(e){let t=this.chunks[this.chunks.length-1];if(this.cursor+e.length<=this.maxCursor+1){let o=t.length-(this.maxCursor-this.cursor)-1;t.set(e,o)}else{if(t){let o=t.length-(this.maxCursor-this.cursor)-1;o<t.length&&(this.chunks[this.chunks.length-1]=t.subarray(0,o),this.maxCursor=this.cursor-1)}e.length<64&&e.length<this.chunkSize?(t=ho(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=Fe(n,0,this.cursor)}else t=lo(this.chunks,this.cursor);return e&&this.reset(),t}};var m="CBOR decode error:",$e="CBOR encode error:",ct=[];ct[23]=1;ct[24]=2;ct[25]=3;ct[26]=5;ct[27]=9;function Z(r,e,t){if(r.length-e<t)throw new Error(`${m} not enough data for type`)}var S=[24,256,65536,4294967296,BigInt("18446744073709551616")];function M(r,e,t){Z(r,e,1);let n=r[e];if(t.strict===!0&&n<S[0])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function z(r,e,t){Z(r,e,2);let n=r[e]<<8|r[e+1];if(t.strict===!0&&n<S[1])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function q(r,e,t){Z(r,e,4);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3];if(t.strict===!0&&n<S[2])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);return n}function j(r,e,t){Z(r,e,8);let n=r[e]*16777216+(r[e+1]<<16)+(r[e+2]<<8)+r[e+3],o=r[e+4]*16777216+(r[e+5]<<16)+(r[e+6]<<8)+r[e+7],i=(BigInt(n)<<BigInt(32))+BigInt(o);if(t.strict===!0&&i<S[3])throw new Error(`${m} integer encoded in more bytes than necessary (strict decode)`);if(i<=Number.MAX_SAFE_INTEGER)return Number(i);if(t.allowBigInt===!0)return i;throw new Error(`${m} integers outside of the safe integer range are not supported`)}function mo(r,e,t,n){return new l(a.uint,M(r,e+1,n),2)}function yo(r,e,t,n){return new l(a.uint,z(r,e+1,n),3)}function go(r,e,t,n){return new l(a.uint,q(r,e+1,n),5)}function wo(r,e,t,n){return new l(a.uint,j(r,e+1,n),9)}function H(r,e){return I(r,0,e.value)}function I(r,e,t){if(t<S[0]){let n=Number(t);r.push([e|n])}else if(t<S[1]){let n=Number(t);r.push([e|24,n])}else if(t<S[2]){let n=Number(t);r.push([e|25,n>>>8,n&255])}else if(t<S[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<S[4]){let o=[e|27,0,0,0,0,0,0,0],i=Number(n&BigInt(4294967295)),s=Number(n>>BigInt(32)&BigInt(4294967295));o[8]=i&255,i=i>>8,o[7]=i&255,i=i>>8,o[6]=i&255,i=i>>8,o[5]=i&255,o[4]=s&255,s=s>>8,o[3]=s&255,s=s>>8,o[2]=s&255,s=s>>8,o[1]=s&255,r.push(o)}else throw new Error(`${m} encountered BigInt larger than allowable range`)}}H.encodedSize=function(e){return I.encodedSize(e.value)};I.encodedSize=function(e){return e<S[0]?1:e<S[1]?2:e<S[2]?3:e<S[3]?5:9};H.compareTokens=function(e,t){return e.value<t.value?-1:e.value>t.value?1:0};function bo(r,e,t,n){return new l(a.negint,-1-M(r,e+1,n),2)}function xo(r,e,t,n){return new l(a.negint,-1-z(r,e+1,n),3)}function Eo(r,e,t,n){return new l(a.negint,-1-q(r,e+1,n),5)}var Wr=BigInt(-1),vo=BigInt(1);function ko(r,e,t,n){let o=j(r,e+1,n);if(typeof o!="bigint"){let i=-1-o;if(i>=Number.MIN_SAFE_INTEGER)return new l(a.negint,i,9)}if(n.allowBigInt!==!0)throw new Error(`${m} integers outside of the safe integer range are not supported`);return new l(a.negint,Wr-BigInt(o),9)}function Ot(r,e){let t=e.value,n=typeof t=="bigint"?t*Wr-vo:t*-1-1;I(r,e.type.majorEncoded,n)}Ot.encodedSize=function(e){let t=e.value,n=typeof t=="bigint"?t*Wr-vo:t*-1-1;return n<S[0]?1:n<S[1]?2:n<S[2]?3:n<S[3]?5:9};Ot.compareTokens=function(e,t){return e.value<t.value?1:e.value>t.value?-1:0};function ut(r,e,t,n){Z(r,e,t+n);let o=Fe(r,e+t,e+t+n);return new l(a.bytes,o,t+n)}function Ao(r,e,t,n){return ut(r,e,1,t)}function Co(r,e,t,n){return ut(r,e,2,M(r,e+1,n))}function To(r,e,t,n){return ut(r,e,3,z(r,e+1,n))}function _o(r,e,t,n){return ut(r,e,5,q(r,e+1,n))}function So(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer bytes lengths not supported`);return ut(r,e,9,o)}function Ft(r){return r.encodedBytes===void 0&&(r.encodedBytes=r.type===a.string?Ut(r.value):r.value),r.encodedBytes}function Me(r,e){let t=Ft(e);I(r,e.type.majorEncoded,t.length),r.push(t)}Me.encodedSize=function(e){let t=Ft(e);return I.encodedSize(t.length)+t.length};Me.compareTokens=function(e,t){return Ba(Ft(e),Ft(t))};function Ba(r,e){return r.length<e.length?-1:r.length>e.length?1:po(r,e)}function ft(r,e,t,n,o){let i=t+n;Z(r,e,i);let s=new l(a.string,fo(r,e+t,e+i),i);return o.retainStringBytes===!0&&(s.byteValue=Fe(r,e+t,e+i)),s}function Io(r,e,t,n){return ft(r,e,1,t,n)}function Lo(r,e,t,n){return ft(r,e,2,M(r,e+1,n),n)}function Do(r,e,t,n){return ft(r,e,3,z(r,e+1,n),n)}function No(r,e,t,n){return ft(r,e,5,q(r,e+1,n),n)}function Bo(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer string lengths not supported`);return ft(r,e,9,o,n)}var Po=Me;function ze(r,e,t,n){return new l(a.array,n,t)}function Ro(r,e,t,n){return ze(r,e,1,t)}function Uo(r,e,t,n){return ze(r,e,2,M(r,e+1,n))}function Oo(r,e,t,n){return ze(r,e,3,z(r,e+1,n))}function Fo(r,e,t,n){return ze(r,e,5,q(r,e+1,n))}function $o(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer array lengths not supported`);return ze(r,e,9,o)}function Mo(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return ze(r,e,1,1/0)}function $t(r,e){I(r,a.array.majorEncoded,e.value)}$t.compareTokens=H.compareTokens;$t.encodedSize=function(e){return I.encodedSize(e.value)};function qe(r,e,t,n){return new l(a.map,n,t)}function zo(r,e,t,n){return qe(r,e,1,t)}function qo(r,e,t,n){return qe(r,e,2,M(r,e+1,n))}function jo(r,e,t,n){return qe(r,e,3,z(r,e+1,n))}function Vo(r,e,t,n){return qe(r,e,5,q(r,e+1,n))}function Wo(r,e,t,n){let o=j(r,e+1,n);if(typeof o=="bigint")throw new Error(`${m} 64-bit integer map lengths not supported`);return qe(r,e,9,o)}function Ho(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return qe(r,e,1,1/0)}function Mt(r,e){I(r,a.map.majorEncoded,e.value)}Mt.compareTokens=H.compareTokens;Mt.encodedSize=function(e){return I.encodedSize(e.value)};function Ko(r,e,t,n){return new l(a.tag,t,1)}function Go(r,e,t,n){return new l(a.tag,M(r,e+1,n),2)}function Jo(r,e,t,n){return new l(a.tag,z(r,e+1,n),3)}function Qo(r,e,t,n){return new l(a.tag,q(r,e+1,n),5)}function Yo(r,e,t,n){return new l(a.tag,j(r,e+1,n),9)}function zt(r,e){I(r,a.tag.majorEncoded,e.value)}zt.compareTokens=H.compareTokens;zt.encodedSize=function(e){return I.encodedSize(e.value)};var $a=20,Ma=21,za=22,qa=23;function Xo(r,e,t,n){if(n.allowUndefined===!1)throw new Error(`${m} undefined values are not supported`);return n.coerceUndefinedToNull===!0?new l(a.null,null,1):new l(a.undefined,void 0,1)}function Zo(r,e,t,n){if(n.allowIndefinite===!1)throw new Error(`${m} indefinite length items not allowed`);return new l(a.break,void 0,1)}function Hr(r,e,t){if(t){if(t.allowNaN===!1&&Number.isNaN(r))throw new Error(`${m} NaN values are not supported`);if(t.allowInfinity===!1&&(r===1/0||r===-1/0))throw new Error(`${m} Infinity values are not supported`)}return new l(a.float,r,e)}function ei(r,e,t,n){return Hr(Kr(r,e+1),3,n)}function ti(r,e,t,n){return Hr(Gr(r,e+1),5,n)}function ri(r,e,t,n){return Hr(si(r,e+1),9,n)}function qt(r,e,t){let n=e.value;if(n===!1)r.push([a.float.majorEncoded|$a]);else if(n===!0)r.push([a.float.majorEncoded|Ma]);else if(n===null)r.push([a.float.majorEncoded|za]);else if(n===void 0)r.push([a.float.majorEncoded|qa]);else{let o,i=!1;(!t||t.float64!==!0)&&(oi(n),o=Kr(G,1),n===o||Number.isNaN(n)?(G[0]=249,r.push(G.slice(0,3)),i=!0):(ii(n),o=Gr(G,1),n===o&&(G[0]=250,r.push(G.slice(0,5)),i=!0))),i||(ja(n),o=si(G,1),G[0]=251,r.push(G.slice(0,9)))}}qt.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){oi(n);let o=Kr(G,1);if(n===o||Number.isNaN(n))return 3;if(ii(n),o=Gr(G,1),n===o)return 5}return 9};var ni=new ArrayBuffer(9),K=new DataView(ni,1),G=new Uint8Array(ni,0);function oi(r){if(r===1/0)K.setUint16(0,31744,!1);else if(r===-1/0)K.setUint16(0,64512,!1);else if(Number.isNaN(r))K.setUint16(0,32256,!1);else{K.setFloat32(0,r);let e=K.getUint32(0),t=(e&2139095040)>>23,n=e&8388607;if(t===255)K.setUint16(0,31744,!1);else if(t===0)K.setUint16(0,(r&2147483648)>>16|n>>13,!1);else{let o=t-127;o<-24?K.setUint16(0,0):o<-14?K.setUint16(0,(e&2147483648)>>16|1<<24+o,!1):K.setUint16(0,(e&2147483648)>>16|o+15<<10|n>>13,!1)}}}function Kr(r,e){if(r.length-e<2)throw new Error(`${m} not enough data for float16`);let t=(r[e]<<8)+r[e+1];if(t===31744)return 1/0;if(t===64512)return-1/0;if(t===32256)return NaN;let n=t>>10&31,o=t&1023,i;return n===0?i=o*2**-24:n!==31?i=(o+1024)*2**(n-25):i=o===0?1/0:NaN,t&32768?-i:i}function ii(r){K.setFloat32(0,r,!1)}function Gr(r,e){if(r.length-e<4)throw new Error(`${m} not enough data for float32`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,4).getFloat32(0,!1)}function ja(r){K.setFloat64(0,r,!1)}function si(r,e){if(r.length-e<8)throw new Error(`${m} not enough data for float64`);let t=(r.byteOffset||0)+e;return new DataView(r.buffer,t,8).getFloat64(0,!1)}qt.compareTokens=H.compareTokens;function b(r,e,t){throw new Error(`${m} encountered invalid minor (${t}) for major ${r[e]>>>5}`)}function jt(r){return()=>{throw new Error(`${m} ${r}`)}}var h=[];for(let r=0;r<=23;r++)h[r]=b;h[24]=mo;h[25]=yo;h[26]=go;h[27]=wo;h[28]=b;h[29]=b;h[30]=b;h[31]=b;for(let r=32;r<=55;r++)h[r]=b;h[56]=bo;h[57]=xo;h[58]=Eo;h[59]=ko;h[60]=b;h[61]=b;h[62]=b;h[63]=b;for(let r=64;r<=87;r++)h[r]=Ao;h[88]=Co;h[89]=To;h[90]=_o;h[91]=So;h[92]=b;h[93]=b;h[94]=b;h[95]=jt("indefinite length bytes/strings are not supported");for(let r=96;r<=119;r++)h[r]=Io;h[120]=Lo;h[121]=Do;h[122]=No;h[123]=Bo;h[124]=b;h[125]=b;h[126]=b;h[127]=jt("indefinite length bytes/strings are not supported");for(let r=128;r<=151;r++)h[r]=Ro;h[152]=Uo;h[153]=Oo;h[154]=Fo;h[155]=$o;h[156]=b;h[157]=b;h[158]=b;h[159]=Mo;for(let r=160;r<=183;r++)h[r]=zo;h[184]=qo;h[185]=jo;h[186]=Vo;h[187]=Wo;h[188]=b;h[189]=b;h[190]=b;h[191]=Ho;for(let r=192;r<=215;r++)h[r]=Ko;h[216]=Go;h[217]=Jo;h[218]=Qo;h[219]=Yo;h[220]=b;h[221]=b;h[222]=b;h[223]=b;for(let r=224;r<=243;r++)h[r]=jt("simple values are not supported");h[244]=b;h[245]=b;h[246]=b;h[247]=Xo;h[248]=jt("simple values are not supported");h[249]=ei;h[250]=ti;h[251]=ri;h[252]=b;h[253]=b;h[254]=b;h[255]=Zo;var J=[];for(let r=0;r<24;r++)J[r]=new l(a.uint,r,1);for(let r=-1;r>=-24;r--)J[31-r]=new l(a.negint,r,1);J[64]=new l(a.bytes,new Uint8Array(0),1);J[96]=new l(a.string,"",1);J[128]=new l(a.array,0,1);J[160]=new l(a.map,0,1);J[244]=new l(a.false,!1,1);J[245]=new l(a.true,!0,1);J[246]=new l(a.null,null,1);function ai(r){switch(r.type){case a.false:return Q([244]);case a.true:return Q([245]);case a.null:return Q([246]);case a.bytes:return r.value.length?void 0:Q([64]);case a.string:return r.value===""?Q([96]):void 0;case a.array:return r.value===0?Q([128]):void 0;case a.map:return r.value===0?Q([160]):void 0;case a.uint:return r.value<24?Q([Number(r.value)]):void 0;case a.negint:if(r.value>=-24)return Q([31-Number(r.value)])}}var Wa={float64:!1,mapSorter:Ga,quickEncodeToken:ai};function Ha(){let r=[];return r[a.uint.major]=H,r[a.negint.major]=Ot,r[a.bytes.major]=Me,r[a.string.major]=Po,r[a.array.major]=$t,r[a.map.major]=Mt,r[a.tag.major]=zt,r[a.float.major]=qt,r}var ci=Ha(),Jr=new at,Wt=class r{constructor(e,t){this.obj=e,this.parent=t}includes(e){let t=this;do if(t.obj===e)return!0;while(t=t.parent);return!1}static createCheck(e,t){if(e&&e.includes(t))throw new Error(`${$e} object contains circular references`);return new r(t,e)}},fe={null:new l(a.null,null),undefined:new l(a.undefined,void 0),true:new l(a.true,!0),false:new l(a.false,!1),emptyArray:new l(a.array,0),emptyMap:new l(a.map,0)},le={number(r,e,t,n){return!Number.isInteger(r)||!Number.isSafeInteger(r)?new l(a.float,r):r>=0?new l(a.uint,r):new l(a.negint,r)},bigint(r,e,t,n){return r>=BigInt(0)?new l(a.uint,r):new l(a.negint,r)},Uint8Array(r,e,t,n){return new l(a.bytes,r)},string(r,e,t,n){return new l(a.string,r)},boolean(r,e,t,n){return r?fe.true:fe.false},null(r,e,t,n){return fe.null},undefined(r,e,t,n){return fe.undefined},ArrayBuffer(r,e,t,n){return new l(a.bytes,new Uint8Array(r))},DataView(r,e,t,n){return new l(a.bytes,new Uint8Array(r.buffer,r.byteOffset,r.byteLength))},Array(r,e,t,n){if(!r.length)return t.addBreakTokens===!0?[fe.emptyArray,new l(a.break)]:fe.emptyArray;n=Wt.createCheck(n,r);let o=[],i=0;for(let s of r)o[i++]=Vt(s,t,n);return t.addBreakTokens?[new l(a.array,r.length),o,new l(a.break)]:[new l(a.array,r.length),o]},Object(r,e,t,n){let o=e!=="Object",i=o?r.keys():Object.keys(r),s=o?r.size:i.length;if(!s)return t.addBreakTokens===!0?[fe.emptyMap,new l(a.break)]:fe.emptyMap;n=Wt.createCheck(n,r);let c=[],u=0;for(let p of i)c[u++]=[Vt(p,t,n),Vt(o?r.get(p):r[p],t,n)];return Ka(c,t),t.addBreakTokens?[new l(a.map,s),c,new l(a.break)]:[new l(a.map,s),c]}};le.Map=le.Object;le.Buffer=le.Uint8Array;for(let r of"Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" "))le[`${r}Array`]=le.DataView;function Vt(r,e={},t){let n=so(r),o=e&&e.typeEncoders&&e.typeEncoders[n]||le[n];if(typeof o=="function"){let s=o(r,n,e,t);if(s!=null)return s}let i=le[n];if(!i)throw new Error(`${$e} unsupported type: ${n}`);return i(r,n,e,t)}function Ka(r,e){e.mapSorter&&r.sort(e.mapSorter)}function Ga(r,e){let t=Array.isArray(r[0])?r[0][0]:r[0],n=Array.isArray(e[0])?e[0][0]:e[0];if(t.type!==n.type)return t.type.compare(n.type);let o=t.type.major,i=ci[o].compareTokens(t,n);return i===0&&console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone"),i}function ui(r,e,t,n){if(Array.isArray(e))for(let o of e)ui(r,o,t,n);else t[e.type.major](r,e,n)}function fi(r,e,t){let n=Vt(r,t);if(!Array.isArray(n)&&t.quickEncodeToken){let o=t.quickEncodeToken(n);if(o)return o;let i=e[n.type.major];if(i.encodedSize){let s=i.encodedSize(n,t),c=new at(s);if(i(c,n,t),c.chunks.length!==1)throw new Error(`Unexpected error: pre-calculated length for ${n} was wrong`);return st(c.chunks[0])}}return Jr.reset(),ui(Jr,n,e,t),Jr.toBytes(!0)}function lt(r,e){return e=Object.assign({},Wa,e),fi(r,ci,e)}var Ja={strict:!1,allowIndefinite:!0,allowUndefined:!0,allowBigInt:!0},Ht=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t}pos(){return this._pos}done(){return this._pos>=this.data.length}next(){let e=this.data[this._pos],t=J[e];if(t===void 0){let n=h[e];if(!n)throw new Error(`${m} no decoder for major type ${e>>>5} (byte 0x${e.toString(16).padStart(2,"0")})`);let o=e&31;t=n(this.data,this._pos,o,this.options)}return this._pos+=t.encodedLength,t}},dt=Symbol.for("DONE"),Kt=Symbol.for("BREAK");function Qa(r,e,t){let n=[];for(let o=0;o<r.value;o++){let i=je(e,t);if(i===Kt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed array`)}if(i===dt)throw new Error(`${m} found array but not enough entries (got ${o}, expected ${r.value})`);n[o]=i}return n}function Ya(r,e,t){let n=t.useMaps===!0,o=n?void 0:{},i=n?new Map:void 0;for(let s=0;s<r.value;s++){let c=je(e,t);if(c===Kt){if(r.value===1/0)break;throw new Error(`${m} got unexpected break to lengthed map`)}if(c===dt)throw new Error(`${m} found map but not enough entries (got ${s} [no key], expected ${r.value})`);if(n!==!0&&typeof c!="string")throw new Error(`${m} non-string keys not supported (got ${typeof c})`);if(t.rejectDuplicateMapKeys===!0&&(n&&i.has(c)||!n&&c in o))throw new Error(`${m} found repeat map key "${c}"`);let u=je(e,t);if(u===dt)throw new Error(`${m} found map but not enough entries (got ${s} [no value], expected ${r.value})`);n?i.set(c,u):o[c]=u}return n?i:o}function je(r,e){if(r.done())return dt;let t=r.next();if(t.type===a.break)return Kt;if(t.type.terminal)return t.value;if(t.type===a.array)return Qa(t,r,e);if(t.type===a.map)return Ya(t,r,e);if(t.type===a.tag){if(e.tags&&typeof e.tags[t.value]=="function"){let n=je(r,e);return e.tags[t.value](n)}throw new Error(`${m} tag not supported (${t.value})`)}throw new Error("unsupported")}function Qr(r,e){if(!(r instanceof Uint8Array))throw new Error(`${m} data to decode must be a Uint8Array`);e=Object.assign({},Ja,e);let t=e.tokenizer||new Ht(r,e),n=je(t,e);if(n===dt)throw new Error(`${m} did not find any content to decode`);if(n===Kt)throw new Error(`${m} got unexpected break`);return[n,r.subarray(t.pos())]}function Y(r,e){let[t,n]=Qr(r,e);if(n.length>0)throw new Error(`${m} too many terminals, data makes no sense`);return t}function Gt(r,e="utf8"){let t=_t[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Tt(globalThis.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}var ee="/",li=new TextEncoder().encode(ee),Jt=li[0],te=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=Gt(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]!==Jt)throw new Error("Invalid key")}toString(e="utf8"){return Pe(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(ee))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=li),this._buf[0]!==Jt){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Jt,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Jt;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(ee).slice(1)}type(){return Xa(this.baseNamespace())}name(){return Za(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(ee)||(e+=ee),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(ee):new r(e.slice(0,-1).join(ee))}child(e){return this.toString()===ee?e:e.toString()===ee?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...ec(e.map(t=>t.namespaces()))])}};function Xa(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Za(r){let e=r.split(":");return e[e.length-1]}function ec(r){return[].concat(...r)}function de(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 mi="/pin/",di="/pinned-block/",Xr=Ze,hi=1;function pi(r){return r.version===0&&(r=r.toV1()),new te(`${mi}${r.toString(Xr)}`)}var Qt=class{datastore;blockstore;dagWalkers;constructor(e,t,n){this.datastore=e,this.blockstore=t,this.dagWalkers=n}async*add(e,t={}){let n=pi(e);if(await this.datastore.has(n))throw new Error("Already pinned");let o=Math.round(t.depth??1/0);if(o<0)throw new Error("Depth must be greater than or equal to 0");let i=new it({concurrency:hi});for await(let c of this.#e(e,i,{...t,depth:o}))await this.#o(c,u=>u.pinnedBy.find(p=>de(p,e.bytes))!=null?!1:(u.pinCount++,u.pinnedBy.push(e.bytes),!0),t),yield c;let s={depth:o,metadata:t.metadata??{}};await this.datastore.put(n,lt(s),t)}async*#e(e,t,n){if(n.depth===-1)return;let o=this.dagWalkers[e.code];if(o==null)throw new Error(`No dag walker found for cid codec ${e.code}`);let i=await this.blockstore.get(e,n);yield e;for await(let s of o.walk(i))yield*await t.add(async()=>this.#e(s,t,{...n,depth:n.depth-1}))}async#o(e,t,n){let o=new te(`${di}${Xr.encode(e.multihash.bytes)}`),i={pinCount:0,pinnedBy:[]};try{i=Y(await this.datastore.get(o,n))}catch(c){if(c.code!=="ERR_NOT_FOUND")throw c}if(t(i)){if(i.pinCount===0&&await this.datastore.has(o)){await this.datastore.delete(o);return}await this.datastore.put(o,lt(i),n),n.onProgress?.(new x("helia:pin:add",e))}}async*rm(e,t={}){let n=pi(e),o=await this.datastore.get(n,t),i=Y(o);await this.datastore.delete(n,t);let s=new it({concurrency:hi});for await(let c of this.#e(e,s,{...t,depth:i.depth}))await this.#o(c,u=>(u.pinCount--,u.pinnedBy=u.pinnedBy.filter(p=>de(p,e.bytes)),!0),{...t,depth:i.depth}),yield c}async*ls(e={}){for await(let{key:t,value:n}of this.datastore.query({prefix:mi+(e.cid!=null?`${e.cid.toString(Ze)}`:"")},e)){let o=C.parse(t.toString().substring(5),Ze),i=Y(n);yield{cid:o,...i}}}async isPinned(e,t={}){let n=new te(`${di}${Xr.encode(e.multihash.bytes)}`);return this.datastore.has(n,t)}};var tc=Symbol.for("nodejs.util.inspect.custom"),yi=Object.values(Be).map(r=>r.decoder).reduce((r,e)=>r.or(e),Be.identity.decoder),gi=114,wi=36,bi=37,ht=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[gn]=!0;toString(){return this.string==null&&(this.string=D.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return C.createV1(gi,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return de(this.multihash.bytes,e);if(typeof e=="string")return gt(e).equals(this);if(e?.multihash?.bytes!=null)return de(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[tc](){return`PeerId(${this.toString()})`}},pt=class extends ht{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},mt=class extends ht{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},yt=class extends ht{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function gt(r,e){if(e=e??yi,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=rt(D.decode(`z${r}`));return r.startsWith("12D")?new mt({multihash:t}):r.startsWith("16U")?new yt({multihash:t}):new pt({multihash:t})}return rc(yi.decode(r))}function rc(r){try{let e=rt(r);if(e.code===De.code){if(e.digest.length===wi)return new mt({multihash:e});if(e.digest.length===bi)return new yt({multihash:e})}if(e.code===Ne.code)return new pt({multihash:e})}catch{return nc(C.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function nc(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==gi)throw new Error("Supplied PeerID CID is invalid");let e=r.multihash;if(e.code===Ne.code)return new pt({multihash:r.multihash});if(e.code===De.code){if(e.digest.length===wi)return new mt({multihash:r.multihash});if(e.digest.length===bi)return new yt({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}function Zr(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}var Ve=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return Zr(this.set.entries(),e=>{let t=gt(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=gt(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return Zr(this.set.values(),e=>gt(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};function oc(r){return r[Symbol.asyncIterator]!=null}function ic(...r){let e=[];for(let t of r)oc(t)||e.push(t);return e.length===r.length?function*(){for(let t of e)yield*t}():async function*(){let t=ye({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let o of n)t.push(o)})),t.end()}catch(n){t.end(n)}}),yield*t}()}var We=ic;var Yt=class{log;routers;constructor(e,t){this.log=e.logger.forComponent("helia:routing"),this.routers=t.routers??[]}async start(){await ne(...this.routers)}async stop(){await oe(...this.routers)}async*findProviders(e,t={}){if(this.routers.length===0)throw new O("No content routers available","ERR_NO_ROUTERS_AVAILABLE");let n=new Ve;for await(let o of We(...He(this.routers,"findProviders").map(i=>i.findProviders(e,t))))o!=null&&(n.has(o.id)||(n.add(o.id),yield o))}async provide(e,t={}){if(this.routers.length===0)throw new O("No content routers available","ERR_NO_ROUTERS_AVAILABLE");await Promise.all(He(this.routers,"provide").map(async n=>{await n.provide(e,t)}))}async put(e,t,n){await Promise.all(He(this.routers,"put").map(async o=>{await o.put(e,t,n)}))}async get(e,t){return Promise.any(He(this.routers,"get").map(async n=>n.get(e,t)))}async findPeer(e,t){if(this.routers.length===0)throw new O("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=this,o=We(...He(this.routers,"findPeer").map(i=>async function*(){try{yield await i.findPeer(e,t)}catch(s){n.log.error(s)}}()));for await(let i of o)if(i!=null)return i;throw new O("Could not find peer in routing","ERR_NOT_FOUND")}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new O("No peer routers available","ERR_NO_ROUTERS_AVAILABLE");let n=new Ve;for await(let o of We(...He(this.routers,"getClosestPeers").map(i=>i.getClosestPeers(e,t))))o!=null&&(n.has(o.id)||(n.add(o.id),yield o))}};function He(r,e){return r.filter(t=>t[e]!=null)}var he={},Ke=r=>{r.addEventListener("message",e=>{Ke.dispatchEvent("message",r,e)}),r.port!=null&&r.port.addEventListener("message",e=>{Ke.dispatchEvent("message",r,e)})};Ke.addEventListener=(r,e)=>{he[r]==null&&(he[r]=[]),he[r].push(e)};Ke.removeEventListener=(r,e)=>{he[r]!=null&&(he[r]=he[r].filter(t=>t===e))};Ke.dispatchEvent=function(r,e,t){he[r]!=null&&he[r].forEach(n=>n(e,t))};var en=Ke;var tn="lock:worker:request-read",rn="lock:worker:release-read",nn="lock:master:grant-read",on="lock:worker:request-write",sn="lock:worker:release-write",an="lock:master:grant-write";var xi=(r=21)=>Math.random().toString().substring(2);var Ei=(r,e,t,n,o)=>(i,s)=>{if(s.data.type!==t)return;let c={type:s.data.type,name:s.data.name,identifier:s.data.identifier};r.dispatchEvent(new MessageEvent(e,{data:{name:c.name,handler:async()=>{i.postMessage({type:o,name:c.name,identifier:c.identifier}),await new Promise(u=>{let p=f=>{if(f==null||f.data==null)return;let d={type:f.data.type,name:f.data.name,identifier:f.data.identifier};d.type===n&&d.identifier===c.identifier&&(i.removeEventListener("message",p),u())};i.addEventListener("message",p)})}}}))},vi=(r,e,t,n)=>async()=>{let o=xi();return globalThis.postMessage({type:e,identifier:o,name:r}),new Promise(i=>{let s=c=>{if(c==null||c.data==null)return;let u={type:c.data.type,identifier:c.data.identifier};u.type===t&&u.identifier===o&&(globalThis.removeEventListener("message",s),i(()=>{globalThis.postMessage({type:n,identifier:o,name:r})}))};globalThis.addEventListener("message",s)})},sc={singleProcess:!1},ki=r=>{if(r=Object.assign({},sc,r),!!globalThis.document||r.singleProcess){let t=new EventTarget;return en.addEventListener("message",Ei(t,"requestReadLock",tn,rn,nn)),en.addEventListener("message",Ei(t,"requestWriteLock",on,sn,an)),t}return{isWorker:!0,readLock:t=>vi(t,tn,nn,rn),writeLock:t=>vi(t,on,an,sn)}};var we={},pe;async function cn(r,e){let t,n=new Promise(o=>{t=o});return r.add(async()=>Ye((async()=>{await new Promise(o=>{t(()=>{o()})})})(),{milliseconds:e.timeout})),n}var ac=(r,e)=>{if(pe.isWorker===!0)return{readLock:pe.readLock(r,e),writeLock:pe.writeLock(r,e)};let t=new ae({concurrency:1}),n;return{async readLock(){if(n!=null)return cn(n,e);n=new ae({concurrency:e.concurrency,autoStart:!1});let o=n,i=cn(n,e);return t.add(async()=>{o.start(),await o.onIdle().then(()=>{n===o&&(n=null)})}),i},async writeLock(){return n=null,cn(t,e)}}},cc={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function un(r){let e=Object.assign({},cc,r);return pe==null&&(pe=ki(e),pe.isWorker!==!0&&(pe.addEventListener("requestReadLock",t=>{we[t.data.name]!=null&&we[t.data.name].readLock().then(async n=>t.data.handler().finally(()=>{n()}))}),pe.addEventListener("requestWriteLock",async t=>{we[t.data.name]!=null&&we[t.data.name].writeLock().then(async n=>t.data.handler().finally(()=>{n()}))}))),we[e.name]==null&&(we[e.name]=ac(e.name,e)),we[e.name]}var Xt=class{lock;child;pins;started;constructor(e,t,n={}){this.child=e,this.pins=t,this.lock=un({singleProcess:n.holdGcLock}),this.started=!1}isStarted(){return this.started}async start(){await ne(this.child),this.started=!0}async stop(){await oe(this.child),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){let o=await this.lock.readLock();try{return await this.child.put(e,t,n)}finally{o()}}async*putMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.putMany(e,t)}finally{n()}}async get(e,t={}){let n=await this.lock.readLock();try{return await this.child.get(e,t)}finally{n()}}async*getMany(e,t={}){let n=await this.lock.readLock();try{yield*this.child.getMany(e,t)}finally{n()}}async delete(e,t={}){let n=await this.lock.writeLock();try{if(await this.pins.isPinned(e))throw new Error("CID was pinned");await this.child.delete(e,t)}finally{n()}}async*deleteMany(e,t={}){let n=await this.lock.writeLock();try{let o=this;yield*this.child.deleteMany(async function*(){for await(let i of e){if(await o.pins.isPinned(i))throw new Error("CID was pinned");yield i}}(),t)}finally{n()}}async has(e,t={}){let n=await this.lock.readLock();try{return await this.child.has(e,t)}finally{n()}}async*getAll(e={}){let t=await this.lock.readLock();try{yield*this.child.getAll(e)}finally{t()}}};var Ci=42;function uc(r){if(r.asCID!==r&&r["/"]!==r.bytes)return null;let e=C.asCID(r);if(!e)return null;let t=new Uint8Array(e.bytes.byteLength+1);return t.set(e.bytes,1),[new l(a.tag,Ci),new l(a.bytes,t)]}function fc(){throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded")}function lc(r){if(Number.isNaN(r))throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");if(r===1/0||r===-1/0)throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");return null}var Ai={float64:!0,typeEncoders:{Object:uc,undefined:fc,number:lc}},Od={...Ai,typeEncoders:{...Ai.typeEncoders}};function dc(r){if(r[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");return C.decode(r.subarray(1))}var fn={allowIndefinite:!1,coerceUndefinedToNull:!0,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};fn.tags[Ci]=dc;var Fd={...fn,tags:fn.tags.slice()};var Ti=113;var _i=class extends Array{constructor(){super(),this.inRecursive=[]}prefix(e){let t=this.inRecursive[this.inRecursive.length-1];t&&(t.type===a.array&&(t.elements++,t.elements!==1&&e.push([44])),t.type===a.map&&(t.elements++,t.elements!==1&&(t.elements%2===1?e.push([44]):e.push([58]))))}[a.uint.major](e,t){this.prefix(e);let n=String(t.value),o=[];for(let i=0;i<n.length;i++)o[i]=n.charCodeAt(i);e.push(o)}[a.negint.major](e,t){this[a.uint.major](e,t)}[a.bytes.major](e,t){throw new Error(`${$e} unsupported type: Uint8Array`)}[a.string.major](e,t){this.prefix(e);let n=Ut(JSON.stringify(t.value));e.push(n.length>32?st(n):n)}[a.array.major](e,t){this.prefix(e),this.inRecursive.push({type:a.array,elements:0}),e.push([91])}[a.map.major](e,t){this.prefix(e),this.inRecursive.push({type:a.map,elements:0}),e.push([123])}[a.tag.major](e,t){}[a.float.major](e,t){if(t.type.name==="break"){let s=this.inRecursive.pop();if(s){if(s.type===a.array)e.push([93]);else if(s.type===a.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(`${$e} unsupported type: undefined`);if(this.prefix(e),t.type.name==="true"){e.push([116,114,117,101]);return}else if(t.type.name==="false"){e.push([102,97,108,115,101]);return}else if(t.type.name==="null"){e.push([110,117,108,108]);return}let n=String(t.value),o=[],i=!1;for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s),!i&&(o[s]===46||o[s]===101||o[s]===69)&&(i=!0);i||(o.push(46),o.push(48)),e.push(o)}};var be=class{constructor(e,t={}){this._pos=0,this.data=e,this.options=t,this.modeStack=["value"],this.lastToken=""}pos(){return this._pos}done(){return this._pos>=this.data.length}ch(){return this.data[this._pos]}currentMode(){return this.modeStack[this.modeStack.length-1]}skipWhitespace(){let e=this.ch();for(;e===32||e===9||e===13||e===10;)e=this.data[++this._pos]}expect(e){if(this.data.length-this._pos<e.length)throw new Error(`${m} 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(`${m} unexpected token at position ${this._pos}, expected to find '${String.fromCharCode(...e)}'`)}parseNumber(){let e=this._pos,t=!1,n=!1,o=c=>{for(;!this.done();){let u=this.ch();if(c.includes(u))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 l(a.uint,0,this._pos-e);if(o([48,49,50,51,52,53,54,55,56,57]),t&&this._pos===e+1)throw new Error(`${m} unexpected token at position ${this._pos}`);if(!this.done()&&this.ch()===46){if(n)throw new Error(`${m} unexpected token at position ${this._pos}`);n=!0,this._pos++,o([48,49,50,51,52,53,54,55,56,57])}!this.done()&&(this.ch()===101||this.ch()===69)&&(n=!0,this._pos++,!this.done()&&(this.ch()===43||this.ch()===45)&&this._pos++,o([48,49,50,51,52,53,54,55,56,57]));let i=String.fromCharCode.apply(null,this.data.subarray(e,this._pos)),s=parseFloat(i);return n?new l(a.float,s,this._pos-e):this.options.allowBigInt!==!0||Number.isSafeInteger(s)?new l(s>=0?a.uint:a.negint,s,this._pos-e):new l(s>=0?a.uint:a.negint,BigInt(i),this._pos-e)}parseString(){if(this.ch()!==34)throw new Error(`${m} unexpected character at position ${this._pos}; this shouldn't happen`);this._pos++;for(let i=this._pos,s=0;i<this.data.length&&s<65536;i++,s++){let c=this.data[i];if(c===92||c<32||c>=128)break;if(c===34){let u=String.fromCharCode.apply(null,this.data.subarray(this._pos,i));return this._pos=i+1,new l(a.string,u,s)}}let e=this._pos,t=[],n=()=>{if(this._pos+4>=this.data.length)throw new Error(`${m} unexpected end of unicode escape sequence at position ${this._pos}`);let i=0;for(let s=0;s<4;s++){let c=this.ch();if(c>=48&&c<=57)c-=48;else if(c>=97&&c<=102)c=c-97+10;else if(c>=65&&c<=70)c=c-65+10;else throw new Error(`${m} unexpected unicode escape character at position ${this._pos}`);i=i*16+c,this._pos++}return i},o=()=>{let i=this.ch(),s=null,c=i>239?4:i>223?3:i>191?2:1;if(this._pos+c>this.data.length)throw new Error(`${m} unexpected unicode sequence at position ${this._pos}`);let u,p,f,d;switch(c){case 1:i<128&&(s=i);break;case 2:u=this.data[this._pos+1],(u&192)===128&&(d=(i&31)<<6|u&63,d>127&&(s=d));break;case 3:u=this.data[this._pos+1],p=this.data[this._pos+2],(u&192)===128&&(p&192)===128&&(d=(i&15)<<12|(u&63)<<6|p&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:u=this.data[this._pos+1],p=this.data[this._pos+2],f=this.data[this._pos+3],(u&192)===128&&(p&192)===128&&(f&192)===128&&(d=(i&15)<<18|(u&63)<<12|(p&63)<<6|f&63,d>65535&&d<1114112&&(s=d))}s===null?(s=65533,c=1):s>65535&&(s-=65536,t.push(s>>>10&1023|55296),s=56320|s&1023),t.push(s),this._pos+=c};for(;!this.done();){let i=this.ch(),s;switch(i){case 92:if(this._pos++,this.done())throw new Error(`${m} 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(`${m} unexpected string escape character at position ${this._pos}`)}break;case 34:return this._pos++,new l(a.string,Vr(t),this._pos-e);default:if(i<32)throw new Error(`${m} invalid control character at position ${this._pos}`);i<128?(t.push(i),this._pos++):o()}}throw new Error(`${m} unexpected end of string at position ${this._pos}`)}parseValue(){switch(this.ch()){case 123:return this.modeStack.push("obj-start"),this._pos++,new l(a.map,1/0,1);case 91:return this.modeStack.push("array-start"),this._pos++,new l(a.array,1/0,1);case 34:return this.parseString();case 110:return this.expect([110,117,108,108]),new l(a.null,null,4);case 102:return this.expect([102,97,108,115,101]),new l(a.false,!1,5);case 116:return this.expect([116,114,117,101]),new l(a.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(`${m} 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 l(a.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 l(a.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 l(a.break,void 0,1);if(this.ch()!==44)throw new Error(`${m} 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 l(a.break,void 0,1);let e=this.parseString();if(this.skipWhitespace(),this.ch()!==58)throw new Error(`${m} 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(`${m} unexpected parse state at position ${this._pos}; this shouldn't happen`)}}};function Zt(r,e){return e=Object.assign({tokenizer:new be(r,e)},e),Y(r,e)}var mc={allowIndefinite:!1,allowUndefined:!1,allowNaN:!1,allowInfinity:!1,allowBigInt:!0,strict:!0,useMaps:!1,rejectDuplicateMapKeys:!0,tags:[]};mc.tags[42]=C.parse;var Ii=297;var th=new TextDecoder;var rh=new TextEncoder;var gc=new TextDecoder;function ln(r,e){let t=0;for(let n=0;;n+=7){if(n>=64)throw new Error("protobuf: varint overflow");if(e>=r.length)throw new Error("protobuf: unexpected end of data");let o=r[e++];if(t+=n<28?(o&127)<<n:(o&127)*2**n,o<128)break}return[t,e]}function er(r,e){let t;[t,e]=ln(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 Li(r,e){let t;return[t,e]=ln(r,e),[t&7,t>>3,e]}function wc(r){let e={},t=r.length,n=0;for(;n<t;){let o,i;if([o,i,n]=Li(r,n),i===1){if(e.Hash)throw new Error("protobuf: (PBLink) duplicate Hash section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Hash`);if(e.Name!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Name before Hash");if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Hash");[e.Hash,n]=er(r,n)}else if(i===2){if(e.Name!==void 0)throw new Error("protobuf: (PBLink) duplicate Name section");if(o!==2)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Name`);if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) invalid order, found Tsize before Name");let s;[s,n]=er(r,n),e.Name=gc.decode(s)}else if(i===3){if(e.Tsize!==void 0)throw new Error("protobuf: (PBLink) duplicate Tsize section");if(o!==0)throw new Error(`protobuf: (PBLink) wrong wireType (${o}) for Tsize`);[e.Tsize,n]=ln(r,n)}else throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${i}`)}if(n>t)throw new Error("protobuf: (PBLink) unexpected end of data");return e}function Di(r){let e=r.length,t=0,n,o=!1,i;for(;t<e;){let c,u;if([c,u,t]=Li(r,t),c!==2)throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${c}`);if(u===1){if(i)throw new Error("protobuf: (PBNode) duplicate Data section");[i,t]=er(r,t),n&&(o=!0)}else if(u===2){if(o)throw new Error("protobuf: (PBNode) duplicate Links section");n||(n=[]);let p;[p,t]=er(r,t),n.push(wc(p))}else throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${u}`)}if(t>e)throw new Error("protobuf: (PBNode) unexpected end of data");let s={};return i&&(s.Data=i),s.Links=n||[],s}var oh=new TextEncoder,ih=2**32,sh=2**31;var uh=new TextEncoder;function Ni(r){return r instanceof ArrayBuffer?new Uint8Array(r,0,r.byteLength):r}var Bi=112;function Pi(r){let e=Ni(r),t=Di(e),n={};return t.Data&&(n.Data=t.Data),t.Links&&(n.Links=t.Links.map(o=>{let i={};try{i.Hash=C.decode(o.Hash)}catch{}if(!i.Hash)throw new Error("Invalid Hash field found in link, expected CID");return o.Name!==void 0&&(i.Name=o.Name),o.Tsize!==void 0&&(i.Tsize=o.Tsize),i})),n}var xc={codec:Bi,*walk(r){yield*Pi(r).Links.map(t=>t.Hash)}},Ec={codec:Fn,*walk(){}},Ri=42,vc={codec:Ti,*walk(r){let e=[],t=[];t[Ri]=n=>{if(n[0]!==0)throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");let o=C.decode(n.subarray(1));return e.push(o),o},Y(r,{tags:t}),yield*e}},dn=class extends be{tokenBuffer;constructor(e,t){super(e,t),this.tokenBuffer=[]}done(){return this.tokenBuffer.length===0&&super.done()}_next(){return this.tokenBuffer.length>0?this.tokenBuffer.pop():super.next()}next(){let e=this._next();if(e.type===a.map){let t=this._next();if(t.type===a.string&&t.value==="/"){let n=this._next();if(n.type===a.string){if(this._next().type!==a.break)throw new Error("Invalid encoded CID form");return this.tokenBuffer.push(n),new l(a.tag,42,0)}if(n.type===a.map){let o=this._next();if(o.type===a.string&&o.value==="bytes"){let i=this._next();if(i.type===a.string){for(let c=0;c<2;c++)if(this._next().type!==a.break)throw new Error("Invalid encoded Bytes form");let s=Te.decode(`m${i.value}`);return new l(a.bytes,s,i.value.length)}this.tokenBuffer.push(i)}this.tokenBuffer.push(o)}this.tokenBuffer.push(n)}this.tokenBuffer.push(t)}return e}},kc={codec:Ii,*walk(r){let e=[],t=[];t[Ri]=n=>{let o=C.parse(n);return e.push(o),o},Zt(r,{tags:t,tokenizer:new dn(r,{tags:t,allowIndefinite:!0,allowUndefined:!0,allowNaN:!0,allowInfinity:!0,allowBigInt:!0,strict:!1,rejectDuplicateMapKeys:!1})}),yield*e}},Ac={codec:Un,*walk(){}};function Ui(r=[]){let e={};return[xc,Ec,vc,kc,Ac,...r].forEach(t=>{e[t.codec]=t}),e}var hn=new te("/version"),Oi=1;async function Fi(r){if(!await r.has(hn)){await r.put(hn,Gt(`${Oi}`));return}let e=await r.get(hn),t=Pe(e);if(parseInt(t,10)!==Oi)throw new Error("Unknown datastore version, a datastore migration may be required")}function $i(r=[]){let e={};return[Ne,Pr,De,...r].forEach(t=>{e[t.code]=t}),e}function Mi(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var Ge=class{has(e,t){return Promise.reject(new Error(".has is not implemented"))}put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}async*putMany(e,t){for await(let{cid:n,block:o}of e)await this.put(n,o,t),yield n}get(e,t){return Promise.reject(new Error(".get is not implemented"))}async*getMany(e,t){for await(let n of e)yield{cid:n,block:await this.get(n,t)}}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*deleteMany(e,t){for await(let n of e)await this.delete(n,t),yield n}async*getAll(e){throw new Error(".getAll is not implemented")}};var tr=bt(ji(),1);function Vi(r){return r=r??new Error("Put failed"),(0,tr.default)(r,"ERR_PUT_FAILED")}function Wi(r){return r=r??new Error("Delete failed"),(0,tr.default)(r,"ERR_DELETE_FAILED")}function rr(r){return r=r??new Error("Not Found"),(0,tr.default)(r,"ERR_NOT_FOUND")}var Ki=0,nr=class extends Ge{put(e){return e}get(e){if(e.code===Ki)return e.multihash.digest;throw rr()}has(e){return e.code===Ki}delete(){}*getAll(){}};function Tc(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var or=Tc;function _c(r){return r[Symbol.asyncIterator]!=null}function Sc(r,e){if(_c(r))return async function*(){for await(let c of r)await e(c)&&(yield c)}();let t=or(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();let i=e(n);if(typeof i.then=="function")return async function*(){await i&&(yield n);for await(let c of t)await e(c)&&(yield c)}();let s=e;return function*(){i===!0&&(yield n);for(let c of t)s(c)&&(yield c)}()}var ir=Sc;var Ic=wr("blockstore:core:tiered"),sr=class extends Ge{stores;constructor(e){super(),this.stores=e.slice()}async put(e,t,n){try{return await Promise.all(this.stores.map(async o=>{await o.put(e,t,n)})),e}catch(o){throw Vi(o)}}async get(e,t){for(let n of this.stores)try{let o=await n.get(e,t);if(o!=null)return o}catch(o){Ic.error(o)}throw rr()}async has(e,t){for(let n of this.stores)if(await n.has(e,t))return!0;return!1}async delete(e,t){try{await Promise.all(this.stores.map(async n=>{await n.delete(e,t)}))}catch(n){throw Wi(n)}}async*putMany(e,t={}){let n,o=this.stores.map(i=>{let s=ye({objectMode:!0});return ot(i.putMany(s,t)).catch(c=>{n=c}),s});try{for await(let i of e){if(n!=null)throw n;o.forEach(s=>s.push(i)),yield i.cid}}finally{o.forEach(i=>i.end())}}async*deleteMany(e,t={}){let n,o=this.stores.map(i=>{let s=ye({objectMode:!0});return ot(i.deleteMany(s,t)).catch(c=>{n=c}),s});try{for await(let i of e){if(n!=null)throw n;o.forEach(s=>s.push(i)),yield i}}finally{o.forEach(i=>i.end())}}async*getAll(e){let t=new Set;yield*ir(We(...this.stores.map(n=>n.getAll(e))),n=>{let o=n.cid.toString();return t.has(o)?!1:(t.add(o),!0)})}};function Lc(r){return r[Symbol.asyncIterator]!=null}function Gi(r){return r?.then!=null}function Dc(r,e){if(Lc(r))return async function*(){for await(let c of r){let u=e(c);Gi(u)&&await u,yield c}}();let t=or(r),{value:n,done:o}=t.next();if(o===!0)return function*(){}();if(typeof e(n)?.then=="function")return async function*(){yield n;for await(let c of t){let u=e(c);Gi(u)&&await u,yield c}}();let s=e;return function*(){yield n;for(let c of t)s(c),yield c}()}var pn=Dc;function Nc(r){return typeof r.retrieve=="function"}function Bc(r){return typeof r.announce=="function"}var ar=class{child;blockRetrievers;blockAnnouncers;hashers;started;log;constructor(e){this.log=e.logger.forComponent("helia:networked-storage"),this.child=new sr([new nr,e.blockstore]),this.blockRetrievers=(e.blockBrokers??[]).filter(Nc),this.blockAnnouncers=(e.blockBrokers??[]).filter(Bc),this.hashers=e.hashers??{},this.started=!1}isStarted(){return this.started}async start(){await ne(this.child,...new Set([...this.blockRetrievers,...this.blockAnnouncers])),this.started=!0}async stop(){await oe(this.child,...new Set([...this.blockRetrievers,...this.blockAnnouncers])),this.started=!1}unwrap(){return this.child}async put(e,t,n={}){return await this.child.has(e)?(n.onProgress?.(new x("blocks:put:duplicate",e)),e):(n.onProgress?.(new x("blocks:put:providers:notify",e)),this.blockAnnouncers.forEach(o=>{o.announce(e,t,n)}),n.onProgress?.(new x("blocks:put:blockstore:put",e)),this.child.put(e,t,n))}async*putMany(e,t={}){let n=ir(e,async({cid:i})=>{let s=await this.child.has(i);return s&&t.onProgress?.(new x("blocks:put-many:duplicate",i)),!s}),o=pn(n,({cid:i,block:s})=>{t.onProgress?.(new x("blocks:put-many:providers:notify",i)),this.blockAnnouncers.forEach(c=>{c.announce(i,s,t)})});t.onProgress?.(new x("blocks:put-many:blockstore:put-many")),yield*this.child.putMany(o,t)}async get(e,t={}){if(t.offline!==!0&&!await this.child.has(e)){t.onProgress?.(new x("blocks:get:providers:get",e));let n=await Ji(e,this.blockRetrievers,this.hashers[e.multihash.code],{...t,log:this.log});return t.onProgress?.(new x("blocks:get:blockstore:put",e)),await this.child.put(e,n,t),t.onProgress?.(new x("blocks:get:providers:notify",e)),this.blockAnnouncers.forEach(o=>{o.announce(e,n,t)}),n}return t.onProgress?.(new x("blocks:get:blockstore:get",e)),this.child.get(e,t)}async*getMany(e,t={}){t.onProgress?.(new x("blocks:get-many:blockstore:get-many")),yield*this.child.getMany(pn(e,async n=>{if(t.offline!==!0&&!await this.child.has(n)){t.onProgress?.(new x("blocks:get-many:providers:get",n));let o=await Ji(n,this.blockRetrievers,this.hashers[n.multihash.code],{...t,log:this.log});t.onProgress?.(new x("blocks:get-many:blockstore:put",n)),await this.child.put(n,o,t),t.onProgress?.(new x("blocks:get-many:providers:notify",n)),this.blockAnnouncers.forEach(i=>{i.announce(n,o,t)})}}))}async delete(e,t={}){t.onProgress?.(new x("blocks:delete:blockstore:delete",e)),await this.child.delete(e,t)}async*deleteMany(e,t={}){t.onProgress?.(new x("blocks:delete-many:blockstore:delete-many")),yield*this.child.deleteMany(async function*(){for await(let n of e)yield n}(),t)}async has(e,t={}){return this.child.has(e,t)}async*getAll(e={}){e.onProgress?.(new x("blocks:get-all:blockstore:get-many")),yield*this.child.getAll(e)}},Pc=(r,e)=>{if(e==null)throw new O(`No hasher configured for multihash code 0x${r.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`,"ERR_UNKNOWN_HASH_ALG");return async t=>{let n=await e.digest(t);if(!de(n.digest,r.multihash.digest))throw new O("Hash of downloaded block did not match multihash from passed CID","ERR_HASH_MISMATCH")}};async function Ji(r,e,t,n){let o=Pc(r,t),i=new AbortController,s=Mi([i.signal,n.signal]);try{return await Promise.any(e.map(async c=>{try{let u=!1,p=await c.retrieve(r,{...n,signal:s,validateFn:async f=>{await o(f),u=!0}});return u||await o(p),p}catch(u){throw n.log.error("could not retrieve verified block for %c",r,u),u}}))}finally{s.clear()}}var mn=class{blockstore;datastore;pins;logger;routing;dagWalkers;hashers;dns;log;constructor(e){this.logger=e.logger??Ln(),this.log=this.logger.forComponent("helia"),this.hashers=$i(e.hashers),this.dagWalkers=Ui(e.dagWalkers),this.dns=e.dns??oo();let t={blockstore:e.blockstore,datastore:e.datastore,hashers:this.hashers,dagWalkers:this.dagWalkers,logger:this.logger,blockBrokers:[],dns:this.dns,...e.components??{}};t.blockBrokers=e.blockBrokers.map(o=>o(t));let n=new ar(t);this.pins=new Qt(e.datastore,n,this.dagWalkers),this.blockstore=new Xt(n,this.pins,{holdGcLock:e.holdGcLock??!0}),this.datastore=e.datastore,this.routing=new Yt(t,{routers:(e.routers??[]).flatMap(o=>{let i=[o];return o[cr]!=null&&i.push(o[cr]),o[ur]!=null&&i.push(o[ur]),i})})}async start(){await Fi(this.datastore),await ne(this.blockstore,this.datastore,this.routing)}async stop(){await oe(this.blockstore,this.datastore,this.routing)}async gc(e={}){let t=await this.blockstore.lock.writeLock();try{let n=this,o=this.blockstore.unwrap();this.log("gc start"),await ot(o.deleteMany(async function*(){for await(let{cid:i}of o.getAll())try{if(await n.pins.isPinned(i,e))continue;yield i,e.onProgress?.(new x("helia:gc:deleted",i))}catch(s){n.log.error("Error during gc",s),e.onProgress?.(new x("helia:gc:error",s))}}()))}finally{t()}this.log("gc finished")}};return ts(Rc);})();
|
|
3
3
|
return HeliaUtils}));
|
package/dist/src/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ import type { DAGWalker, GCOptions, Helia as HeliaInterface, Routing } from '@he
|
|
|
21
21
|
import type { BlockBroker } from '@helia/interface/blocks';
|
|
22
22
|
import type { Pins } from '@helia/interface/pins';
|
|
23
23
|
import type { ComponentLogger } from '@libp2p/interface';
|
|
24
|
+
import type { DNS } from '@multiformats/dns';
|
|
24
25
|
import type { Blockstore } from 'interface-blockstore';
|
|
25
26
|
import type { Datastore } from 'interface-datastore';
|
|
26
27
|
import type { MultihashHasher } from 'multiformats/hashes/interface';
|
|
@@ -82,6 +83,10 @@ export interface HeliaInit {
|
|
|
82
83
|
* Components used by subclasses
|
|
83
84
|
*/
|
|
84
85
|
components?: Record<string, any>;
|
|
86
|
+
/**
|
|
87
|
+
* An optional DNS implementation used to perform queries for DNS records.
|
|
88
|
+
*/
|
|
89
|
+
dns?: DNS;
|
|
85
90
|
}
|
|
86
91
|
export declare class Helia implements HeliaInterface {
|
|
87
92
|
blockstore: BlockStorage;
|
|
@@ -91,6 +96,7 @@ export declare class Helia implements HeliaInterface {
|
|
|
91
96
|
routing: Routing;
|
|
92
97
|
dagWalkers: Record<number, DAGWalker>;
|
|
93
98
|
hashers: Record<number, MultihashHasher>;
|
|
99
|
+
dns: DNS;
|
|
94
100
|
private readonly log;
|
|
95
101
|
constructor(init: HeliaInit);
|
|
96
102
|
start(): Promise<void>;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAK3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAE3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IAExB;;;OAGG;IACH,YAAY,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,KAAK,WAAW,CAAC,CAAA;IAErD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAEjC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEhC;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAYD,qBAAa,KAAM,YAAW,cAAc;IACnC,UAAU,EAAE,YAAY,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,GAAG,EAAE,GAAG,CAAA;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,IAAI,EAAE,SAAS;IAoDtB,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IASvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAQtB,EAAE,CAAE,OAAO,GAAE,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BlD"}
|
package/dist/src/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { contentRoutingSymbol, peerRoutingSymbol, start, stop } from '@libp2p/interface';
|
|
20
20
|
import { defaultLogger } from '@libp2p/logger';
|
|
21
|
+
import { dns } from '@multiformats/dns';
|
|
21
22
|
import drain from 'it-drain';
|
|
22
23
|
import { CustomProgressEvent } from 'progress-events';
|
|
23
24
|
import { PinsImpl } from './pins.js';
|
|
@@ -35,12 +36,14 @@ export class Helia {
|
|
|
35
36
|
routing;
|
|
36
37
|
dagWalkers;
|
|
37
38
|
hashers;
|
|
39
|
+
dns;
|
|
38
40
|
log;
|
|
39
41
|
constructor(init) {
|
|
40
42
|
this.logger = init.logger ?? defaultLogger();
|
|
41
43
|
this.log = this.logger.forComponent('helia');
|
|
42
44
|
this.hashers = defaultHashers(init.hashers);
|
|
43
45
|
this.dagWalkers = defaultDagWalkers(init.dagWalkers);
|
|
46
|
+
this.dns = init.dns ?? dns();
|
|
44
47
|
const components = {
|
|
45
48
|
blockstore: init.blockstore,
|
|
46
49
|
datastore: init.datastore,
|
|
@@ -48,6 +51,7 @@ export class Helia {
|
|
|
48
51
|
dagWalkers: this.dagWalkers,
|
|
49
52
|
logger: this.logger,
|
|
50
53
|
blockBrokers: [],
|
|
54
|
+
dns: this.dns,
|
|
51
55
|
...(init.components ?? {})
|
|
52
56
|
};
|
|
53
57
|
components.blockBrokers = init.blockBrokers.map((fn) => {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,iBAAiB,EAAkC,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACnV,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAyB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAA;CAC5B;AAUD,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC1C;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,MAAM,EAAE,SAAS;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B;;OAEG;gBACU,UAAU,EAAE,0BAA0B;IAYnD,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAKvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,MAAM,IAAK,UAAU;IAIrB;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,sBAAsB,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB3H;;OAEG;IACK,OAAO,CAAE,MAAM,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,EAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,2BAA2B,CAAM,GAAG,aAAa,CAAC,GAAG,CAAC;IAsBvK;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC,sBAAsB,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBnI;;OAEG;IACK,OAAO,CAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,GAAE,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC,2BAA2B,CAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAuB9J;;OAEG;IACG,MAAM,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,yBAAyB,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/G;;OAEG;IACK,UAAU,CAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,8BAA8B,CAAM,GAAG,aAAa,CAAC,GAAG,CAAC;IASzI,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,MAAM,CAAE,OAAO,GAAE,YAAY,GAAG,eAAe,CAAC,0BAA0B,CAAM,GAAG,aAAa,CAAC,IAAI,CAAC;CAI/G;AAED,eAAO,MAAM,2BAA2B,QAAS,GAAG,UAAU,eAAe,KAAG,SAAS,qBAAqB,CAAC,CAAC,YAAY,CAc3H,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CodeError, start, stop } from '@libp2p/interface';
|
|
2
2
|
import { anySignal } from 'any-signal';
|
|
3
|
+
import { IdentityBlockstore } from 'blockstore-core/identity';
|
|
4
|
+
import { TieredBlockstore } from 'blockstore-core/tiered';
|
|
3
5
|
import filter from 'it-filter';
|
|
4
6
|
import forEach from 'it-foreach';
|
|
5
7
|
import { CustomProgressEvent } from 'progress-events';
|
|
@@ -26,7 +28,10 @@ export class NetworkedStorage {
|
|
|
26
28
|
*/
|
|
27
29
|
constructor(components) {
|
|
28
30
|
this.log = components.logger.forComponent('helia:networked-storage');
|
|
29
|
-
this.child =
|
|
31
|
+
this.child = new TieredBlockstore([
|
|
32
|
+
new IdentityBlockstore(),
|
|
33
|
+
components.blockstore
|
|
34
|
+
]);
|
|
30
35
|
this.blockRetrievers = (components.blockBrokers ?? []).filter(isBlockRetriever);
|
|
31
36
|
this.blockAnnouncers = (components.blockBrokers ?? []).filter(isBlockAnnouncer);
|
|
32
37
|
this.hashers = components.hashers ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networked-storage.js","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,SAAS,gBAAgB,CAAE,CAAM;IAC/B,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAA;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAE,CAAM;IAC/B,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAA;AACzC,CAAC;AASD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,KAAK,CAAY;IACjB,eAAe,CAAkB;IACjC,eAAe,CAAkB;IACjC,OAAO,CAAiC;IACjD,OAAO,CAAS;IACP,GAAG,CAAQ;IAE5B;;OAEG;IACH,YAAa,UAAsC;QACjD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;QACpE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"networked-storage.js","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2-8c9bb7d",
|
|
4
4
|
"description": "Shared code that implements the Helia API",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/utils#readme",
|
|
@@ -53,33 +53,34 @@
|
|
|
53
53
|
"test:electron-main": "aegir test -t electron-main"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@helia/interface": "4.0.
|
|
57
|
-
"@ipld/dag-cbor": "^9.
|
|
58
|
-
"@ipld/dag-json": "^10.
|
|
59
|
-
"@ipld/dag-pb": "^4.0
|
|
60
|
-
"@libp2p/interface": "^1.1.
|
|
61
|
-
"@libp2p/logger": "^4.0.
|
|
62
|
-
"@libp2p/peer-collections": "^5.1.
|
|
63
|
-
"@libp2p/utils": "^5.2.
|
|
56
|
+
"@helia/interface": "4.0.1-8c9bb7d",
|
|
57
|
+
"@ipld/dag-cbor": "^9.2.0",
|
|
58
|
+
"@ipld/dag-json": "^10.2.0",
|
|
59
|
+
"@ipld/dag-pb": "^4.1.0",
|
|
60
|
+
"@libp2p/interface": "^1.1.4",
|
|
61
|
+
"@libp2p/logger": "^4.0.7",
|
|
62
|
+
"@libp2p/peer-collections": "^5.1.7",
|
|
63
|
+
"@libp2p/utils": "^5.2.6",
|
|
64
|
+
"@multiformats/dns": "^1.0.1",
|
|
64
65
|
"any-signal": "^4.1.1",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"interface-
|
|
68
|
-
"interface-
|
|
66
|
+
"blockstore-core": "^4.4.0",
|
|
67
|
+
"cborg": "^4.0.9",
|
|
68
|
+
"interface-blockstore": "^5.2.10",
|
|
69
|
+
"interface-datastore": "^8.2.11",
|
|
70
|
+
"interface-store": "^5.1.8",
|
|
69
71
|
"it-drain": "^3.0.5",
|
|
70
72
|
"it-filter": "^3.0.4",
|
|
71
73
|
"it-foreach": "^2.0.6",
|
|
72
74
|
"it-merge": "^3.0.3",
|
|
73
75
|
"mortice": "^3.0.4",
|
|
74
|
-
"multiformats": "^13.0
|
|
76
|
+
"multiformats": "^13.1.0",
|
|
75
77
|
"progress-events": "^1.0.0",
|
|
76
|
-
"uint8arrays": "^5.0.
|
|
78
|
+
"uint8arrays": "^5.0.2"
|
|
77
79
|
},
|
|
78
80
|
"devDependencies": {
|
|
79
81
|
"@types/sinon": "^17.0.3",
|
|
80
|
-
"aegir": "^42.2.
|
|
81
|
-
"
|
|
82
|
-
"datastore-core": "^9.2.7",
|
|
82
|
+
"aegir": "^42.2.5",
|
|
83
|
+
"datastore-core": "^9.2.9",
|
|
83
84
|
"delay": "^6.0.0",
|
|
84
85
|
"it-all": "^3.0.4",
|
|
85
86
|
"sinon": "^17.0.1",
|
package/src/index.ts
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
import { contentRoutingSymbol, peerRoutingSymbol, start, stop } from '@libp2p/interface'
|
|
21
21
|
import { defaultLogger } from '@libp2p/logger'
|
|
22
|
+
import { dns } from '@multiformats/dns'
|
|
22
23
|
import drain from 'it-drain'
|
|
23
24
|
import { CustomProgressEvent } from 'progress-events'
|
|
24
25
|
import { PinsImpl } from './pins.js'
|
|
@@ -32,6 +33,7 @@ import type { DAGWalker, GCOptions, Helia as HeliaInterface, Routing } from '@he
|
|
|
32
33
|
import type { BlockBroker } from '@helia/interface/blocks'
|
|
33
34
|
import type { Pins } from '@helia/interface/pins'
|
|
34
35
|
import type { ComponentLogger, Logger } from '@libp2p/interface'
|
|
36
|
+
import type { DNS } from '@multiformats/dns'
|
|
35
37
|
import type { Blockstore } from 'interface-blockstore'
|
|
36
38
|
import type { Datastore } from 'interface-datastore'
|
|
37
39
|
import type { CID } from 'multiformats/cid'
|
|
@@ -103,6 +105,11 @@ export interface HeliaInit {
|
|
|
103
105
|
* Components used by subclasses
|
|
104
106
|
*/
|
|
105
107
|
components?: Record<string, any>
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* An optional DNS implementation used to perform queries for DNS records.
|
|
111
|
+
*/
|
|
112
|
+
dns?: DNS
|
|
106
113
|
}
|
|
107
114
|
|
|
108
115
|
interface Components {
|
|
@@ -112,6 +119,7 @@ interface Components {
|
|
|
112
119
|
dagWalkers: Record<number, DAGWalker>
|
|
113
120
|
logger: ComponentLogger
|
|
114
121
|
blockBrokers: BlockBroker[]
|
|
122
|
+
dns: DNS
|
|
115
123
|
}
|
|
116
124
|
|
|
117
125
|
export class Helia implements HeliaInterface {
|
|
@@ -122,6 +130,7 @@ export class Helia implements HeliaInterface {
|
|
|
122
130
|
public routing: Routing
|
|
123
131
|
public dagWalkers: Record<number, DAGWalker>
|
|
124
132
|
public hashers: Record<number, MultihashHasher>
|
|
133
|
+
public dns: DNS
|
|
125
134
|
private readonly log: Logger
|
|
126
135
|
|
|
127
136
|
constructor (init: HeliaInit) {
|
|
@@ -129,6 +138,7 @@ export class Helia implements HeliaInterface {
|
|
|
129
138
|
this.log = this.logger.forComponent('helia')
|
|
130
139
|
this.hashers = defaultHashers(init.hashers)
|
|
131
140
|
this.dagWalkers = defaultDagWalkers(init.dagWalkers)
|
|
141
|
+
this.dns = init.dns ?? dns()
|
|
132
142
|
|
|
133
143
|
const components: Components = {
|
|
134
144
|
blockstore: init.blockstore,
|
|
@@ -137,6 +147,7 @@ export class Helia implements HeliaInterface {
|
|
|
137
147
|
dagWalkers: this.dagWalkers,
|
|
138
148
|
logger: this.logger,
|
|
139
149
|
blockBrokers: [],
|
|
150
|
+
dns: this.dns,
|
|
140
151
|
...(init.components ?? {})
|
|
141
152
|
}
|
|
142
153
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CodeError, start, stop } from '@libp2p/interface'
|
|
2
2
|
import { anySignal } from 'any-signal'
|
|
3
|
+
import { IdentityBlockstore } from 'blockstore-core/identity'
|
|
4
|
+
import { TieredBlockstore } from 'blockstore-core/tiered'
|
|
3
5
|
import filter from 'it-filter'
|
|
4
6
|
import forEach from 'it-foreach'
|
|
5
7
|
import { CustomProgressEvent, type ProgressOptions } from 'progress-events'
|
|
@@ -47,7 +49,10 @@ export class NetworkedStorage implements Blocks, Startable {
|
|
|
47
49
|
*/
|
|
48
50
|
constructor (components: NetworkedStorageComponents) {
|
|
49
51
|
this.log = components.logger.forComponent('helia:networked-storage')
|
|
50
|
-
this.child =
|
|
52
|
+
this.child = new TieredBlockstore([
|
|
53
|
+
new IdentityBlockstore(),
|
|
54
|
+
components.blockstore
|
|
55
|
+
])
|
|
51
56
|
this.blockRetrievers = (components.blockBrokers ?? []).filter(isBlockRetriever)
|
|
52
57
|
this.blockAnnouncers = (components.blockBrokers ?? []).filter(isBlockAnnouncer)
|
|
53
58
|
this.hashers = components.hashers ?? {}
|