ezllm 0.0.45 → 0.0.47

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.
Files changed (64) hide show
  1. package/README.md +5 -5
  2. package/dist/cli.js +24 -23
  3. package/dist/daemon.js +14 -6
  4. package/dist/plugin-host.js +3 -3
  5. package/dist/server.js +75 -75
  6. package/dist/web-ui/assets/DashboardView-CNsnnzad.css +1 -0
  7. package/dist/web-ui/assets/DashboardView-CqupMCmm.js +2 -0
  8. package/dist/web-ui/assets/LayoutView-CyOrx1rA.js +1 -0
  9. package/dist/web-ui/assets/LayoutView-cQeiOjLU.css +1 -0
  10. package/dist/web-ui/assets/LoginView-YolyK2Q0.js +1 -0
  11. package/dist/web-ui/assets/{LogsView-CXFJ_22b.css → LogsView-DPmB8dy8.css} +1 -1
  12. package/dist/web-ui/assets/LogsView-E64a6PIt.js +5 -0
  13. package/dist/web-ui/assets/ManagedServicesView-DVCADa1y.css +1 -0
  14. package/dist/web-ui/assets/ManagedServicesView-mk_mSWzE.js +6 -0
  15. package/dist/web-ui/assets/PluginsView-DTJeufic.js +2 -0
  16. package/dist/web-ui/assets/PluginsView-DzHAW2gO.css +1 -0
  17. package/dist/web-ui/assets/ProvidersView-BrirhwQN.js +14 -0
  18. package/dist/web-ui/assets/ProvidersView-BwX8Y3kP.css +1 -0
  19. package/dist/web-ui/assets/SettingsView-BGMZbskz.css +1 -0
  20. package/dist/web-ui/assets/SettingsView-p3uvWhGh.js +1 -0
  21. package/dist/web-ui/assets/SetupView-6BYv_B5n.css +1 -0
  22. package/dist/web-ui/assets/SetupView-CGQibXHs.js +1 -0
  23. package/dist/web-ui/assets/config-Dzo6AFZx.js +1 -0
  24. package/dist/web-ui/assets/{format-CPPf8IfM.js → format-Deb1hfjO.js} +1 -1
  25. package/dist/web-ui/assets/{index-s_h6GEbv.css → index-DodsqGDu.css} +1 -1
  26. package/dist/web-ui/assets/index-wQG3qUgW.js +49 -0
  27. package/dist/web-ui/assets/message-C8pR37GK.js +2 -0
  28. package/dist/web-ui/assets/navVisibility-CPbwxq3d.js +1 -0
  29. package/dist/web-ui/assets/pluginProviders-DeHPKGnd.js +1 -0
  30. package/dist/web-ui/assets/providers-Dbg0NkwB.js +1 -0
  31. package/dist/web-ui/assets/router-JpU_7F6L.js +6 -0
  32. package/dist/web-ui/assets/{useCopyToast-BeWZ6lSF.js → useCopyToast-GaJ4QVNE.js} +1 -1
  33. package/dist/web-ui/assets/useManagerApi-DEPhOKWy.js +1 -0
  34. package/dist/web-ui/assets/{useQuickRangeFilter-DQQ8QAr5.js → useQuickRangeFilter-DeKORPZt.js} +1 -1
  35. package/dist/web-ui/assets/useToast-DVCDN-da.js +1 -0
  36. package/dist/web-ui/index.html +4 -4
  37. package/ezllm.config.example.json +0 -1
  38. package/package.json +2 -1
  39. package/dist/web-ui/assets/DashboardView-CkTFY0Da.js +0 -1
  40. package/dist/web-ui/assets/LayoutView-CcXUd-b0.js +0 -1
  41. package/dist/web-ui/assets/LayoutView-D84C9Iqp.css +0 -1
  42. package/dist/web-ui/assets/LoginView-Dq7gaxB9.js +0 -1
  43. package/dist/web-ui/assets/LogsView-CO6GNtfl.js +0 -5
  44. package/dist/web-ui/assets/ManagedServicesView-CNLHAVAL.js +0 -6
  45. package/dist/web-ui/assets/ManagedServicesView-D29NyvP6.css +0 -1
  46. package/dist/web-ui/assets/PluginsView-B2H4xfag.css +0 -1
  47. package/dist/web-ui/assets/PluginsView-Dljy9HZq.js +0 -2
  48. package/dist/web-ui/assets/ProvidersView-CD3QYu3i.js +0 -14
  49. package/dist/web-ui/assets/ProvidersView-Cwe2Q81Y.css +0 -1
  50. package/dist/web-ui/assets/ServiceStatusView-BgHmV09I.js +0 -2
  51. package/dist/web-ui/assets/ServiceStatusView-DmUKbS8w.css +0 -1
  52. package/dist/web-ui/assets/SettingsView-BLQl0mEB.js +0 -1
  53. package/dist/web-ui/assets/SettingsView-NXkxZUgr.css +0 -1
  54. package/dist/web-ui/assets/SetupView-BzZqIZpo.js +0 -1
  55. package/dist/web-ui/assets/SetupView-CSBKlfcJ.css +0 -1
  56. package/dist/web-ui/assets/config-CLbcTOt9.js +0 -1
  57. package/dist/web-ui/assets/index-yak1S-7W.js +0 -49
  58. package/dist/web-ui/assets/message-K5WVknE-.js +0 -2
  59. package/dist/web-ui/assets/pluginProviders-CB38zjhC.js +0 -1
  60. package/dist/web-ui/assets/providers-BuzQNH1W.js +0 -1
  61. package/dist/web-ui/assets/router-tvNif7bs.js +0 -6
  62. package/dist/web-ui/assets/updateNote-CttDt8SZ.js +0 -1
  63. package/dist/web-ui/assets/useManagerApi-Wm9Nz3_p.js +0 -1
  64. package/dist/web-ui/assets/useToast-D_jja27E.js +0 -1
package/dist/cli.js CHANGED
@@ -1,35 +1,36 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as e}from"node:module";import{basename as t,delimiter as n,dirname as r,join as i,parse as a,relative as o,resolve as s,sep as c,win32 as l}from"node:path";import{cwd as u}from"node:process";import{copyFileSync as d,cpSync as f,createWriteStream as p,existsSync as m,mkdirSync as h,openSync as g,readFileSync as _,readdirSync as v,renameSync as y,rmSync as b,statSync as x,writeFileSync as S}from"node:fs";import{homedir as C,platform as w}from"node:os";import{fileURLToPath as T}from"node:url";import{createHash as E,randomBytes as D}from"node:crypto";import{EventEmitter as O}from"events";import{execFileSync as k,spawn as A,spawnSync as j}from"node:child_process";import{connect as M,createServer as N}from"node:net";import{pipeline as P}from"node:stream/promises";function F(e,...t){console.log(e,...t)}function I(e,...t){console.warn(e,...t)}function L(e,...t){console.error(e,...t)}function R(e){process.stdout.write(e)}function z(e){if(e===void 0)return;let t=e.trim();return t===``?void 0:t}function B(e){let t=`--${e}`,n=`${t}=`,r=process.argv;for(let e=0;e<r.length;e+=1){let i=r[e]??``;if(i.startsWith(n))return z(i.slice(n.length));if(i===t){let t=r[e+1]??``;return t.startsWith(`-`)?void 0:z(t)}}}function V(e,t){return B(e)??z(process.env[t])}var H=65535;function ee(e){let t=z(e);if(t===void 0)return;let n=Number(t);return Number.isInteger(n)&&n>0&&n<=H?n:void 0}var U=(()=>{let e=V(`app-dir`,`ELLM_APP_DIR`),t=e===void 0?void 0:s(u(),e),n=B(`port`),r=ee(n??z(process.env.ELLM_PORT));n!==void 0&&r===void 0&&I(`--port=${n} 无效(需为 1-65535 的整数),已忽略:本次不生效、也不会写入配置文件。`);let i=V(`node-mirror`,`ELLM_NODE_MIRROR`),a=V(`node-bin`,`ELLM_NODE_BIN`);return t!==void 0&&(process.env.ELLM_APP_DIR=t),i!==void 0&&(process.env.ELLM_NODE_MIRROR=i),a!==void 0&&(process.env.ELLM_NODE_BIN=a),{appDir:t,port:r,nodeMirror:i,nodeBin:a}})(),te=r(T(import.meta.url)),ne=`runtime.json`,re;function ie(e){try{let t=_(i(e,ne),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function W(e){return ie(e)?.kind===`ezllm-runtime`}function ae(){let e=ie(G())?.source;return typeof e==`string`&&e!==``?e:void 0}function oe(){return i(C(),`.ezllm`)}function G(){return re===void 0&&(re=U.appDir??oe()),re}function K(){return s(G(),`data`)}function se(){return s(G(),`ezllm.config.json`)}function ce(){return s(G(),`logs`)}function le(){return s(K(),`updater.json`)}function ue(){return s(G(),`autostart.opt-out`)}function de(){return s(G(),`plugins`)}function fe(){return s(G(),`plugin-auth.json`)}function pe(){return s(G(),`services.json`)}var me=[`hook.cjs`,`hook.mjs`,`hook.js`];function he(){return s(G(),`node`)}function ge(){let e=he();return process.platform===`win32`?i(e,`node.exe`):i(e,`bin`,`node`)}var _e=`ezllm`;function ve(e=G()){return s(e,`node`,`node_modules`,_e)}var ye=[`app`,`dist`];function be(e){return e.find(e=>m(e))}function xe(e){try{let t=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function Se(e,t){let n=te;for(let i=0;i<t;i++){if(xe(n)?.name===e)return n;n=r(n)}return null}var Ce=Se(`ezllm`,5)??s(te,`..`),we=Se(`ellm`,6);function Te(){let e=xe(Ce);return e?.name===`ezllm`?e.version??`0.0.0`:`0.0.0`}function Ee(){let e=K();m(e)||h(e,{recursive:!0})}function De(e){let t=G();return be([i(ve(),`dist`,e),...ye.map(n=>s(t,n,e)),i(Ce,`dist`,e),...we?[i(we,`app`,`cli`,`dist`,e)]:[]])??i(Ce,`dist`,e)}function Oe(){return De(`daemon.js`)}function ke(){let e=se();if(m(e))return e;let t=[i(Ce,`ezllm.config.example.json`),...we?[i(we,`app`,`server`,`ezllm.config.example.json`)]:[]],n=be(t);if(!n)throw Error(`缺少示例配置 ${String(t[0])},无法自动创建配置文件`);return h(G(),{recursive:!0}),d(n,e),F(`已创建配置文件: ${e}`),F(`可直接编辑该文件(填入供应商 apiKey),或经管理台在线修改(实时热更新)。`),e}function Ae(e,t){let n=`${e}.${`${process.pid}.${D(6).toString(`hex`)}`}.tmp`;try{S(n,JSON.stringify(t,null,2)+`
3
- `,`utf-8`),y(n,e)}finally{try{b(n,{force:!0})}catch{}}}function je(){try{let e=JSON.parse(_(le(),`utf-8`));return typeof e!=`object`||!e||Array.isArray(e)?{}:e}catch{return{}}}function Me(e){try{Ee(),Ae(le(),{...je(),...e})}catch{}}function Ne(e){let t=e.now??Date.now,n=e.log??F,r=e.maxArmMs??6e4,i=e.onError??((e,t,r)=>{n(`[scheduler] 作业 ${e.name} 失败(${String(Math.round(r/6e4))} 分钟后重试):${t.message}`)}),a=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:null,o=(e,t)=>a(typeof e==`function`?e():e)??t,s=e=>typeof e==`object`&&!!e&&typeof e.then==`function`,c=e.jobs.map(e=>({job:e,nextAt:t()+(e.firstDelayMs??o(e.everyMs,r)),running:!1})),l=null,u=!1;function d(){if(u||l!==null)return;let e=t(),n=1/0;for(let t of c){if(t.running)continue;let r=Math.max(0,t.nextAt-e);r<n&&(n=r)}Number.isFinite(n)&&(l=setTimeout(f,Math.min(n,r)),l.unref())}function f(){if(l=null,u)return;let e=t();for(let t of c)!t.running&&e>=t.nextAt&&m(t);d()}function p(e,n,a){e.running=!1;let s=o(e.job.retryMs??e.job.everyMs,r),c=n??o(e.job.everyMs,r);e.nextAt=t()+(a===null?c:s),a!==null&&i(e.job,a,s),d()}function m(e){e.running=!0;let t;try{t=e.job.run({log:n})}catch(t){p(e,null,t instanceof Error?t:Error(String(t)));return}if(!s(t)){p(e,a(t),null);return}t.then(t=>{p(e,a(t),null)},t=>{p(e,null,t instanceof Error?t:Error(String(t)))})}return d(),{stop(){u=!0,l!==null&&(clearTimeout(l),l=null)}}}var Pe=`https://registry.npmmirror.com/`,Fe=`https://registry.npmjs.org/`;function Ie(){return[Pe,Fe]}async function Le(e,t=Ie()){let n;for(let r of t)try{return{value:await e(r),registry:r}}catch(e){n=e}throw n??Error(`没有任何可用的 npm registry`)}function Re(e){return e==null?[]:Array.isArray(e)?e:[e]}function ze(e,t,n,r){var i,a=e[t],o=~r.string.indexOf(t)?n==null||n===!0?``:String(n):typeof n==`boolean`?n:~r.boolean.indexOf(t)?n===`false`?!1:n===`true`||(e._.push((i=+n,i*0==0?i:n)),!!n):(i=+n,i*0==0?i:n);e[t]=a==null?o:Array.isArray(a)?a.concat(o):[a,o]}function Be(e,t){e||=[],t||={};var n,r,i,a,o,s={_:[]},c=0,l=0,u=0,d=e.length;let f=t.alias!==void 0,p=t.unknown!==void 0,m=t.default!==void 0;if(t.alias=t.alias||{},t.string=Re(t.string),t.boolean=Re(t.boolean),f)for(n in t.alias)for(r=t.alias[n]=Re(t.alias[n]),c=0;c<r.length;c++)(t.alias[r[c]]=r.concat(n)).splice(c,1);for(c=t.boolean.length;c-->0;)for(r=t.alias[t.boolean[c]]||[],l=r.length;l-->0;)t.boolean.push(r[l]);for(c=t.string.length;c-->0;)for(r=t.alias[t.string[c]]||[],l=r.length;l-->0;)t.string.push(r[l]);if(m){for(n in t.default)if(a=typeof t.default[n],r=t.alias[n]=t.alias[n]||[],t[a]!==void 0)for(t[a].push(n),c=0;c<r.length;c++)t[a].push(r[c])}let h=p?Object.keys(t.alias):[];for(c=0;c<d;c++){if(i=e[c],i===`--`){s._=s._.concat(e.slice(++c));break}for(l=0;l<i.length&&i.charCodeAt(l)===45;l++);if(l===0)s._.push(i);else if(i.substring(l,l+3)===`no-`){if(a=i.substring(l+3),p&&!~h.indexOf(a))return t.unknown(i);s[a]=!1}else{for(u=l+1;u<i.length&&i.charCodeAt(u)!==61;u++);for(a=i.substring(l,u),o=i.substring(++u)||c+1===d||(``+e[c+1]).charCodeAt(0)===45||e[++c],r=l===2?[a]:a,u=0;u<r.length;u++){if(a=r[u],p&&!~h.indexOf(a))return t.unknown(`-`.repeat(l)+a);ze(s,a,u+1<r.length||o,t)}}}if(m)for(n in t.default)s[n]===void 0&&(s[n]=t.default[n]);if(f)for(n in s)for(r=t.alias[n]||[];r.length>0;)s[r.shift()]=s[n];return s}var Ve=e=>e.replace(/[<[].+/,``).trim(),He=e=>{let t=/<([^>]+)>/g,n=/\[([^\]]+)\]/g,r=[],i=e=>{let t=!1,n=e[1];return n.startsWith(`...`)&&(n=n.slice(3),t=!0),{required:e[0].startsWith(`<`),value:n,variadic:t}},a;for(;a=t.exec(e);)r.push(i(a));let o;for(;o=n.exec(e);)r.push(i(o));return r},Ue=e=>{let t={alias:{},boolean:[]};for(let[n,r]of e.entries())r.names.length>1&&(t.alias[r.names[0]]=r.names.slice(1)),r.isBoolean&&(r.negated&&e.some((e,t)=>t!==n&&e.names.some(e=>r.names.includes(e))&&typeof e.required==`boolean`)||t.boolean.push(r.names[0]));return t},We=e=>e.sort((e,t)=>e.length>t.length?-1:1)[0],Ge=(e,t)=>e.length>=t?e:`${e}${` `.repeat(t-e.length)}`,Ke=e=>e.replace(/([a-z])-([a-z])/g,(e,t,n)=>t+n.toUpperCase()),qe=(e,t,n)=>{let r=0,i=t.length,a=e,o;for(;r<i;++r)o=a[t[r]],a=a[t[r]]=r===i-1?n:o??(~t[r+1].indexOf(`.`)||!(+t[r+1]>-1)?{}:[])},Je=(e,t)=>{for(let n of Object.keys(t)){let r=t[n];r.shouldTransform&&(e[n]=Array.prototype.concat.call([],e[n]),typeof r.transformFunction==`function`&&(e[n]=e[n].map(r.transformFunction)))}},Ye=e=>{let t=/([^\\\/]+)$/.exec(e);return t?t[1]:``},Xe=e=>e.split(`.`).map((e,t)=>t===0?Ke(e):e).join(`.`),Ze=class extends Error{constructor(e){super(e),this.name=this.constructor.name,typeof Error.captureStackTrace==`function`?Error.captureStackTrace(this,this.constructor):this.stack=Error(e).stack}},Qe=class{constructor(e,t,n){this.rawName=e,this.description=t,this.config=Object.assign({},n),e=e.replace(/\.\*/g,``),this.negated=!1,this.names=Ve(e).split(`,`).map(e=>{let t=e.trim().replace(/^-{1,2}/,``);return t.startsWith(`no-`)&&(this.negated=!0,t=t.replace(/^no-/,``)),Xe(t)}).sort((e,t)=>e.length>t.length?1:-1),this.name=this.names[this.names.length-1],this.negated&&this.config.default==null&&(this.config.default=!0),e.includes(`<`)?this.required=!0:e.includes(`[`)?this.required=!1:this.isBoolean=!0}},$e=process.argv,et=`${process.platform}-${process.arch} node-${process.version}`,tt=class{constructor(e,t,n={},r){this.rawName=e,this.description=t,this.config=n,this.cli=r,this.options=[],this.aliasNames=[],this.name=Ve(e),this.args=He(e),this.examples=[]}usage(e){return this.usageText=e,this}allowUnknownOptions(){return this.config.allowUnknownOptions=!0,this}ignoreOptionDefaultValue(){return this.config.ignoreOptionDefaultValue=!0,this}version(e,t=`-v, --version`){return this.versionNumber=e,this.option(t,`Display version number`),this}example(e){return this.examples.push(e),this}option(e,t,n){let r=new Qe(e,t,n);return this.options.push(r),this}alias(e){return this.aliasNames.push(e),this}action(e){return this.commandAction=e,this}isMatched(e){return this.name===e||this.aliasNames.includes(e)}get isDefaultCommand(){return this.name===``||this.aliasNames.includes(`!`)}get isGlobalCommand(){return this instanceof nt}hasOption(e){return e=e.split(`.`)[0],this.options.find(t=>t.names.includes(e))}outputHelp(){let{name:e,commands:t}=this.cli,{versionNumber:n,options:r,helpCallback:i}=this.cli.globalCommand,a=[{body:`${e}${n?`/${n}`:``}`}];if(a.push({title:`Usage`,body:` $ ${e} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&t.length>0){let n=We(t.map(e=>e.rawName));a.push({title:`Commands`,body:t.map(e=>` ${Ge(e.rawName,n.length)} ${e.description}`).join(`
2
+ import{createRequire as e}from"node:module";import{basename as t,delimiter as n,dirname as r,join as i,parse as a,relative as o,resolve as s,sep as c,win32 as l}from"node:path";import{cwd as u}from"node:process";import{copyFileSync as d,cpSync as f,createWriteStream as p,existsSync as m,mkdirSync as h,openSync as g,readFileSync as _,readdirSync as v,renameSync as y,rmSync as b,statSync as x,writeFileSync as S}from"node:fs";import{homedir as C,platform as w}from"node:os";import{fileURLToPath as T}from"node:url";import{createHash as E,randomBytes as D}from"node:crypto";import{EventEmitter as O}from"events";import{execFileSync as k,spawn as A,spawnSync as j}from"node:child_process";import{connect as M,createServer as N}from"node:net";import{pipeline as P}from"node:stream/promises";function F(e,...t){console.log(e,...t)}function I(e,...t){console.warn(e,...t)}function L(e,...t){console.error(e,...t)}function R(e){process.stdout.write(e)}function z(e){if(e===void 0)return;let t=e.trim();return t===``?void 0:t}function B(e){let t=`--${e}`,n=`${t}=`,r=process.argv;for(let e=0;e<r.length;e+=1){let i=r[e]??``;if(i.startsWith(n))return z(i.slice(n.length));if(i===t){let t=r[e+1]??``;return t.startsWith(`-`)?void 0:z(t)}}}function V(e,t){return B(e)??z(process.env[t])}var H=65535;function ee(e){let t=z(e);if(t===void 0)return;let n=Number(t);return Number.isInteger(n)&&n>0&&n<=H?n:void 0}var U=(()=>{let e=V(`app-dir`,`ELLM_APP_DIR`),t=e===void 0?void 0:s(u(),e),n=B(`port`),r=ee(n??z(process.env.ELLM_PORT));n!==void 0&&r===void 0&&I(`--port=${n} 无效(需为 1-65535 的整数),已忽略:本次不生效、也不会写入配置文件。`);let i=V(`node-mirror`,`ELLM_NODE_MIRROR`),a=V(`node-bin`,`ELLM_NODE_BIN`);return t!==void 0&&(process.env.ELLM_APP_DIR=t),i!==void 0&&(process.env.ELLM_NODE_MIRROR=i),a!==void 0&&(process.env.ELLM_NODE_BIN=a),{appDir:t,port:r,nodeMirror:i,nodeBin:a}})(),te=r(T(import.meta.url)),ne=`runtime.json`,re;function ie(e){try{let t=_(i(e,ne),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function W(e){return ie(e)?.kind===`ezllm-runtime`}function ae(){let e=ie(G())?.source;return typeof e==`string`&&e!==``?e:void 0}function oe(){return i(C(),`.ezllm`)}function G(){return re===void 0&&(re=U.appDir??oe()),re}function K(){return s(G(),`data`)}function se(){return s(G(),`ezllm.config.json`)}function ce(){return s(G(),`logs`)}function le(){return s(K(),`updater.json`)}function ue(){return s(G(),`autostart.opt-out`)}function de(){return s(G(),`plugins`)}function fe(){return s(G(),`provider-auth.json`)}function pe(){return s(G(),`plugin-auth.json`)}function me(){return s(G(),`services.json`)}var he=[`hook.cjs`,`hook.mjs`,`hook.js`];function ge(){return s(G(),`node`)}function _e(){let e=ge();return process.platform===`win32`?i(e,`node.exe`):i(e,`bin`,`node`)}var ve=`ezllm`;function ye(e=G()){return s(e,`node`,`node_modules`,ve)}var be=[`app`,`dist`];function xe(e){return e.find(e=>m(e))}function Se(e){try{let t=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function Ce(e,t){let n=te;for(let i=0;i<t;i++){if(Se(n)?.name===e)return n;n=r(n)}return null}var we=Ce(`ezllm`,5)??s(te,`..`),Te=Ce(`ellm`,6);function Ee(){let e=Se(we);return e?.name===`ezllm`?e.version??`0.0.0`:`0.0.0`}function De(){let e=K();m(e)||h(e,{recursive:!0})}function Oe(e){let t=G();return xe([i(ye(),`dist`,e),...be.map(n=>s(t,n,e)),i(we,`dist`,e),...Te?[i(Te,`app`,`cli`,`dist`,e)]:[]])??i(we,`dist`,e)}function ke(){return Oe(`daemon.js`)}function Ae(){let e=se();if(m(e))return e;let t=[i(we,`ezllm.config.example.json`),...Te?[i(Te,`app`,`server`,`ezllm.config.example.json`)]:[]],n=xe(t);if(!n)throw Error(`缺少示例配置 ${String(t[0])},无法自动创建配置文件`);return h(G(),{recursive:!0}),d(n,e),F(`已创建配置文件: ${e}`),F(`可直接编辑该文件(填入供应商 apiKey),或经管理台在线修改(实时热更新)。`),e}function je(e,t){let n=`${e}.${`${process.pid}.${D(6).toString(`hex`)}`}.tmp`;try{S(n,JSON.stringify(t,null,2)+`
3
+ `,`utf-8`),y(n,e)}finally{try{b(n,{force:!0})}catch{}}}function Me(){try{let e=JSON.parse(_(le(),`utf-8`));return typeof e!=`object`||!e||Array.isArray(e)?{}:e}catch{return{}}}function Ne(e){try{De(),je(le(),{...Me(),...e})}catch{}}function Pe(e){let t=e.now??Date.now,n=e.log??F,r=e.maxArmMs??6e4,i=e.onError??((e,t,r)=>{n(`[scheduler] 作业 ${e.name} 失败(${String(Math.round(r/6e4))} 分钟后重试):${t.message}`)}),a=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:null,o=(e,t)=>a(typeof e==`function`?e():e)??t,s=e=>typeof e==`object`&&!!e&&typeof e.then==`function`,c=e.jobs.map(e=>({job:e,nextAt:t()+(e.firstDelayMs??o(e.everyMs,r)),running:!1})),l=null,u=!1;function d(){if(u||l!==null)return;let e=t(),n=1/0;for(let t of c){if(t.running)continue;let r=Math.max(0,t.nextAt-e);r<n&&(n=r)}Number.isFinite(n)&&(l=setTimeout(f,Math.min(n,r)),l.unref())}function f(){if(l=null,u)return;let e=t();for(let t of c)!t.running&&e>=t.nextAt&&m(t);d()}function p(e,n,a){e.running=!1;let s=o(e.job.retryMs??e.job.everyMs,r),c=n??o(e.job.everyMs,r);e.nextAt=t()+(a===null?c:s),a!==null&&i(e.job,a,s),d()}function m(e){e.running=!0;let t;try{t=e.job.run({log:n})}catch(t){p(e,null,t instanceof Error?t:Error(String(t)));return}if(!s(t)){p(e,a(t),null);return}t.then(t=>{p(e,a(t),null)},t=>{p(e,null,t instanceof Error?t:Error(String(t)))})}return d(),{stop(){u=!0,l!==null&&(clearTimeout(l),l=null)}}}var Fe=`https://registry.npmmirror.com/`,Ie=`https://registry.npmjs.org/`;function Le(){return[Fe,Ie]}async function Re(e,t=Le()){let n=[];for(let r of t)try{return{value:await e(r),registry:r}}catch(e){n.push({registry:r,message:e instanceof Error?e.message:String(e),error:e})}if(n.length===0)throw Error(`没有任何可用的 npm registry`);let r=[...new Set(n.map(e=>e.message))],i=r.length===1?`所有源返回相同错误(已依次尝试:${t.join(`、`)}):\n${r[0]??``}`:`所有源都失败:\n${n.map(e=>`- ${e.registry}:${e.message}`).join(`
4
+ `)}`,a=Error(i);throw a.cause=n[n.length-1]?.error,a}function ze(e){return e==null?[]:Array.isArray(e)?e:[e]}function Be(e,t,n,r){var i,a=e[t],o=~r.string.indexOf(t)?n==null||n===!0?``:String(n):typeof n==`boolean`?n:~r.boolean.indexOf(t)?n===`false`?!1:n===`true`||(e._.push((i=+n,i*0==0?i:n)),!!n):(i=+n,i*0==0?i:n);e[t]=a==null?o:Array.isArray(a)?a.concat(o):[a,o]}function Ve(e,t){e||=[],t||={};var n,r,i,a,o,s={_:[]},c=0,l=0,u=0,d=e.length;let f=t.alias!==void 0,p=t.unknown!==void 0,m=t.default!==void 0;if(t.alias=t.alias||{},t.string=ze(t.string),t.boolean=ze(t.boolean),f)for(n in t.alias)for(r=t.alias[n]=ze(t.alias[n]),c=0;c<r.length;c++)(t.alias[r[c]]=r.concat(n)).splice(c,1);for(c=t.boolean.length;c-->0;)for(r=t.alias[t.boolean[c]]||[],l=r.length;l-->0;)t.boolean.push(r[l]);for(c=t.string.length;c-->0;)for(r=t.alias[t.string[c]]||[],l=r.length;l-->0;)t.string.push(r[l]);if(m){for(n in t.default)if(a=typeof t.default[n],r=t.alias[n]=t.alias[n]||[],t[a]!==void 0)for(t[a].push(n),c=0;c<r.length;c++)t[a].push(r[c])}let h=p?Object.keys(t.alias):[];for(c=0;c<d;c++){if(i=e[c],i===`--`){s._=s._.concat(e.slice(++c));break}for(l=0;l<i.length&&i.charCodeAt(l)===45;l++);if(l===0)s._.push(i);else if(i.substring(l,l+3)===`no-`){if(a=i.substring(l+3),p&&!~h.indexOf(a))return t.unknown(i);s[a]=!1}else{for(u=l+1;u<i.length&&i.charCodeAt(u)!==61;u++);for(a=i.substring(l,u),o=i.substring(++u)||c+1===d||(``+e[c+1]).charCodeAt(0)===45||e[++c],r=l===2?[a]:a,u=0;u<r.length;u++){if(a=r[u],p&&!~h.indexOf(a))return t.unknown(`-`.repeat(l)+a);Be(s,a,u+1<r.length||o,t)}}}if(m)for(n in t.default)s[n]===void 0&&(s[n]=t.default[n]);if(f)for(n in s)for(r=t.alias[n]||[];r.length>0;)s[r.shift()]=s[n];return s}var He=e=>e.replace(/[<[].+/,``).trim(),Ue=e=>{let t=/<([^>]+)>/g,n=/\[([^\]]+)\]/g,r=[],i=e=>{let t=!1,n=e[1];return n.startsWith(`...`)&&(n=n.slice(3),t=!0),{required:e[0].startsWith(`<`),value:n,variadic:t}},a;for(;a=t.exec(e);)r.push(i(a));let o;for(;o=n.exec(e);)r.push(i(o));return r},We=e=>{let t={alias:{},boolean:[]};for(let[n,r]of e.entries())r.names.length>1&&(t.alias[r.names[0]]=r.names.slice(1)),r.isBoolean&&(r.negated&&e.some((e,t)=>t!==n&&e.names.some(e=>r.names.includes(e))&&typeof e.required==`boolean`)||t.boolean.push(r.names[0]));return t},Ge=e=>e.sort((e,t)=>e.length>t.length?-1:1)[0],Ke=(e,t)=>e.length>=t?e:`${e}${` `.repeat(t-e.length)}`,qe=e=>e.replace(/([a-z])-([a-z])/g,(e,t,n)=>t+n.toUpperCase()),Je=(e,t,n)=>{let r=0,i=t.length,a=e,o;for(;r<i;++r)o=a[t[r]],a=a[t[r]]=r===i-1?n:o??(~t[r+1].indexOf(`.`)||!(+t[r+1]>-1)?{}:[])},Ye=(e,t)=>{for(let n of Object.keys(t)){let r=t[n];r.shouldTransform&&(e[n]=Array.prototype.concat.call([],e[n]),typeof r.transformFunction==`function`&&(e[n]=e[n].map(r.transformFunction)))}},Xe=e=>{let t=/([^\\\/]+)$/.exec(e);return t?t[1]:``},Ze=e=>e.split(`.`).map((e,t)=>t===0?qe(e):e).join(`.`),Qe=class extends Error{constructor(e){super(e),this.name=this.constructor.name,typeof Error.captureStackTrace==`function`?Error.captureStackTrace(this,this.constructor):this.stack=Error(e).stack}},$e=class{constructor(e,t,n){this.rawName=e,this.description=t,this.config=Object.assign({},n),e=e.replace(/\.\*/g,``),this.negated=!1,this.names=He(e).split(`,`).map(e=>{let t=e.trim().replace(/^-{1,2}/,``);return t.startsWith(`no-`)&&(this.negated=!0,t=t.replace(/^no-/,``)),Ze(t)}).sort((e,t)=>e.length>t.length?1:-1),this.name=this.names[this.names.length-1],this.negated&&this.config.default==null&&(this.config.default=!0),e.includes(`<`)?this.required=!0:e.includes(`[`)?this.required=!1:this.isBoolean=!0}},et=process.argv,tt=`${process.platform}-${process.arch} node-${process.version}`,nt=class{constructor(e,t,n={},r){this.rawName=e,this.description=t,this.config=n,this.cli=r,this.options=[],this.aliasNames=[],this.name=He(e),this.args=Ue(e),this.examples=[]}usage(e){return this.usageText=e,this}allowUnknownOptions(){return this.config.allowUnknownOptions=!0,this}ignoreOptionDefaultValue(){return this.config.ignoreOptionDefaultValue=!0,this}version(e,t=`-v, --version`){return this.versionNumber=e,this.option(t,`Display version number`),this}example(e){return this.examples.push(e),this}option(e,t,n){let r=new $e(e,t,n);return this.options.push(r),this}alias(e){return this.aliasNames.push(e),this}action(e){return this.commandAction=e,this}isMatched(e){return this.name===e||this.aliasNames.includes(e)}get isDefaultCommand(){return this.name===``||this.aliasNames.includes(`!`)}get isGlobalCommand(){return this instanceof rt}hasOption(e){return e=e.split(`.`)[0],this.options.find(t=>t.names.includes(e))}outputHelp(){let{name:e,commands:t}=this.cli,{versionNumber:n,options:r,helpCallback:i}=this.cli.globalCommand,a=[{body:`${e}${n?`/${n}`:``}`}];if(a.push({title:`Usage`,body:` $ ${e} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&t.length>0){let n=Ge(t.map(e=>e.rawName));a.push({title:`Commands`,body:t.map(e=>` ${Ke(e.rawName,n.length)} ${e.description}`).join(`
4
5
  `)}),a.push({title:"For more info, run any command with the `--help` flag",body:t.map(t=>` $ ${e}${t.name===``?``:` ${t.name}`} --help`).join(`
5
- `)})}let o=this.isGlobalCommand?r:[...this.options,...r||[]];if(!this.isGlobalCommand&&!this.isDefaultCommand&&(o=o.filter(e=>e.name!==`version`)),o.length>0){let e=We(o.map(e=>e.rawName));a.push({title:`Options`,body:o.map(t=>` ${Ge(t.rawName,e.length)} ${t.description} ${t.config.default===void 0?``:`(default: ${t.config.default})`}`).join(`
6
+ `)})}let o=this.isGlobalCommand?r:[...this.options,...r||[]];if(!this.isGlobalCommand&&!this.isDefaultCommand&&(o=o.filter(e=>e.name!==`version`)),o.length>0){let e=Ge(o.map(e=>e.rawName));a.push({title:`Options`,body:o.map(t=>` ${Ke(t.rawName,e.length)} ${t.description} ${t.config.default===void 0?``:`(default: ${t.config.default})`}`).join(`
6
7
  `)})}this.examples.length>0&&a.push({title:`Examples`,body:this.examples.map(t=>typeof t==`function`?t(e):t).join(`
7
8
  `)}),i&&(a=i(a)||a),console.log(a.map(e=>e.title?`${e.title}:
8
9
  ${e.body}`:e.body).join(`
9
10
 
10
- `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.log(`${e}/${t} ${et}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new Ze(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new Ze(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new Ze(`option \`${t.rawName}\` value is missing`)}}}},nt=class extends tt{constructor(e){super(`@@global@@`,``,{},e)}},rt=Object.assign,it=class extends O{constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new nt(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new tt(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e=$e,{run:t=!0}={}){this.rawArgs=e,this.name||=e[1]?Ye(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e=rt(rt({},r),{args:r.args.slice(1)});this.setParsedInfo(e,t,i),this.emit(`command:${i}`,t)}}if(n){for(let t of this.commands)if(t.name===``){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.emit(`command:!`,t)}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.emit(`command:*`),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],r=Ue(n),i=[],a=e.indexOf(`--`);a>-1&&(i=e.slice(a+1),e=e.slice(0,a));let o=Be(e,r);o=Object.keys(o).reduce((e,t)=>rt(rt({},e),{[Xe(t)]:o[t]}),{_:[]});let s=o._,c={"--":i},l=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,u=Object.create(null);for(let e of n){if(!l&&e.config.default!==void 0)for(let t of e.names)c[t]=e.config.default;Array.isArray(e.config.type)&&u[e.name]===void 0&&(u[e.name]=Object.create(null),u[e.name].shouldTransform=!0,u[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(o))e!==`_`&&(qe(c,e.split(`.`),o[e]),Je(c,u));return{args:s,options:c}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}},at=(e=``)=>new it(e),q={rocket:`🚀`,pending:`⏳`,success:`✅`,warn:`❗`,skip:`⏭️`,running:`🟢`,stopped:`🛑`,idle:`💤`,error:`❌`,gateway:`🌐`,webui:`💻`,folder:`📂`,status:`📋`,question:`❓`};function J(e,t){F(t?`${t} ${e}`:e)}function ot(e){L(`${q.error} ${e}`)}function st(e){R(`${q.pending} ${e}`)}function ct(){R(` ✓
11
- `)}function lt(){R(` ✗
12
- `)}function Y(e,t,n){F(` ${e} ${t} ${n}`)}async function ut(e){try{await e()}catch(e){L(``),ot(`错误:${e instanceof Error?e.message:String(e)}`),process.exit(1)}}var dt=`server`,ft=`ezllm`;`${ft}`,`${ft}`;function pt(e){try{return process.kill(e,0),!0}catch(e){return e?.code===`EPERM`}}var mt={out:`out.log`,err:`err.log`};function ht(e,t=mt){let n=i(e,`logs`);return h(n,{recursive:!0}),{out:g(i(n,t.out),`a`),err:g(i(n,t.err),`a`)}}function gt(e){let{out:t,err:n}=ht(e.appDir,e.logFiles),r=A(e.interpreter??process.execPath,[e.entryJs,...e.args??[]],{detached:!0,stdio:[`ignore`,t,n],env:{...process.env,...e.env},windowsHide:!0});return r.on(`error`,t=>{L(`[ezllm] 拉起进程失败(解释器 ${e.interpreter??process.execPath},脚本 ${e.entryJs}):${t.message}`)}),r.unref(),r.pid??0}function _t(e){let{out:t,err:n}=ht(e.appDir,e.logFiles);return A(e.interpreter??process.execPath,[e.entryJs,...e.args??[]],{stdio:[`ignore`,t,n,`ipc`],env:{...process.env,...e.env},windowsHide:!0})}var vt=/\.(?:com|exe)$/i,yt=/node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i,bt=/([()\][%!^"`<>&|;, *?])/g;function xt(e,t,n=w()){let r=(e,t)=>{let n=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`);return n=n.replace(/(?=(\\+?)?)\1$/,`$1$1`),n=`"${n}"`,n=n.replace(bt,`^$1`),t&&(n=n.replace(bt,`^$1`)),n};if(n!==`win32`||vt.test(e))return{command:e,args:[...t],windowsVerbatimArguments:!1};let i=l.normalize(e),a=i.replace(bt,`^$1`),o=yt.test(i),s=t.map(e=>r(e,o));return{command:process.env.comspec??`cmd.exe`,args:[`/d`,`/s`,`/c`,`"${[a,...s].join(` `)}"`],windowsVerbatimArguments:!0}}function St(e){let{out:t,err:n}=ht(e.appDir,e.logFiles),r=xt(e.command,e.args??[]);return A(r.command,r.args,{...e.cwd===void 0?{}:{cwd:e.cwd},stdio:[`ignore`,t,n,`ipc`],env:{...process.env,...e.env},windowsHide:!0,windowsVerbatimArguments:r.windowsVerbatimArguments})}async function Ct(e){if(!pt(e))return!0;if(w()===`win32`)A(`taskkill`,[`/PID`,String(e),`/T`,`/F`],{stdio:`ignore`,windowsHide:!0}).on(`error`,t=>{I(`[ezllm] taskkill 执行失败(pid ${String(e)}):${t.message}`)});else try{process.kill(-e,`SIGTERM`)}catch{try{process.kill(e,`SIGTERM`)}catch{}}let t=Date.now()+5e3;for(;Date.now()<t;){if(!pt(e))return!0;await new Promise(e=>setTimeout(e,100))}return!pt(e)}var wt=`ezllm-autostart.vbs`,Tt=`ezllm-autostart.cmd`,Et=`com.ezllm.autostart`,Dt=`ezllm.service`,Ot=`autostart.opt-out`,kt=`ezllm-v2`,At=`Auto-generated by "npx ezllm install" (${kt}). Disable in the ezllm admin UI (Settings → startup) or by running \`npx ezllm uninstall\`.`,jt=`ELLM_`,Mt=new Set([`WEBUI_USERNAME`,`WEBUI_PASSWORD`,`HOST`]),Nt=new Set([`ELLM_PORT`,`ELLM_NODE_MIRROR`,`ELLM_NODE_BIN`]);function Pt(e=process.env){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(Nt.has(n)||(n.startsWith(jt)||Mt.has(n))&&(t[n]=r));return t}function Ft(e){return i(e,Ot)}function It(){return i((()=>{let e=process.env.APPDATA;if(!e)throw Error(`无法定位启动文件夹(APPDATA 环境变量未设置)。`);return i(e,`Microsoft`,`Windows`,`Start Menu`,`Programs`,`Startup`)})(),wt)}function Lt(){return i(C(),`Library`,`LaunchAgents`,`${Et}.plist`)}function Rt(){return i(C(),`.config`,`systemd`,`user`,Dt)}var zt=3e4;function Bt(e,t){return new Promise(n=>{let r=A(e,t,{stdio:`ignore`,shell:!1}),i=setTimeout(()=>{r.kill(),n(124)},zt),a=e=>{clearTimeout(i),n(e)};r.on(`error`,()=>a(127)),r.on(`exit`,e=>a(e??1))})}var Vt={win32:{itemPath:It,on:qt,off:Xt},darwin:{itemPath:Lt,on:Jt,off:Zt},linux:{itemPath:Rt,on:Yt,off:Qt}};function Ht(e){return Vt[e]??null}function Ut(e){let t=Ht(e);if(!t)throw Error(`暂不支持的平台: ${e}。`);return t}function Wt(e,t){return[e,t.entryJs,...t.args??[]]}function Gt(e){return i(e,`logs`,`autostart.log`)}async function Kt(e,t,n=Bt){try{S(e,t,`utf16le`);return}catch(r){if(await n(`powershell`,[`-NoProfile`,`-Command`,`$bytes=[Convert]::FromBase64String('${Buffer.from(t,`utf16le`).toString(`base64`)}');[IO.File]::WriteAllBytes('${e.replace(/'/g,`''`)}', $bytes)`])!==0)throw r}}async function qt(e,t){let n=(e,t)=>{let n=/["%\r\n]/;if(n.test(e)||n.test(t))throw Error(`环境变量 ${e} 的键/值含 cmd 无法安全转义的字符(" % 或换行),已拒绝写入自启项;请调整该变量后重试 npx ezllm install`)},r=(e,t)=>{let r=Gt(t.appDir);return[`@echo off`,`chcp 65001 >nul`,`rem ${At}`,...Object.entries(t.env).map(([e,t])=>(n(e,t),`set "${e}=${t}"`)),`>> "${r}" echo [%date% %time%] autostart launching.`,`${Wt(e,t).map(e=>`"${e}"`).join(` `)} >> "${r}" 2>&1`,``].join(`\r
13
- `)},a=e=>[`' ${At}`,`CreateObject("WScript.Shell").Run """${e}""", 0, False`,``].join(`\r
14
- `),o=It(),s=i(t.appDir,Tt);return S(s,r(e,t),`utf-8`),await Kt(o,`\uFEFF${a(s)}`),o}async function Jt(e,t){let n=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`),r=(e,t)=>{let r=Gt(t.appDir),i=Object.entries(t.env).map(([e,t])=>` <string>${n(e)}</string>\n <string>${n(t)}</string>`).join(`
15
- `),a=Wt(e,t).map(e=>` <string>${n(e)}</string>`).join(`
16
- `);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">`,`<!-- ${kt}: launch daemon -->`,`<plist version="1.0">`,`<dict>`,` <key>Label</key><string>${n(Et)}</string>`,` <key>ProgramArguments</key>`,` <array>`,a,` </array>`,` <key>EnvironmentVariables</key>`,` <dict>`,i,` </dict>`,` <key>RunAtLoad</key><true/>`,` <key>StandardOutPath</key><string>${n(r)}</string>`,` <key>StandardErrorPath</key><string>${n(r)}</string>`,`</dict>`,`</plist>`,``].join(`
17
- `)},i=Lt();S(i,r(e,t),`utf-8`),await Bt(`launchctl`,[`unload`,i]);let a=await Bt(`launchctl`,[`load`,i]);if(a!==0)throw Error(`launchctl load 失败(退出码 ${String(a)})。请手动执行: launchctl load "${i}"`);return i}async function Yt(e,t){let n=(e,t)=>{let n=Object.entries(t.env).map(([e,t])=>`Environment="${e}=${t.replace(/"/g,`\\"`)}"`).join(`
18
- `),r=Wt(e,t).map(e=>`"${e.replace(/"/g,`\\"`)}"`).join(` `);return[`[Unit]`,`Description=ezllm autostart (${kt}, launch daemon)`,`After=default.target`,``,`[Service]`,`Type=simple`,`ExecStart=${r}`,n,`Restart=on-failure`,`RestartSec=3`,``,`[Install]`,`WantedBy=default.target`,``].join(`
19
- `)},i=Rt();h(r(i),{recursive:!0}),S(i,n(e,t),`utf-8`);let a=await Bt(`systemctl`,[`--user`,`daemon-reload`]);if(a!==0)throw Error(`systemctl --user daemon-reload 失败(退出码 ${String(a)})。当前环境可能无 systemd(WSL/容器),请手动启用或删除: ${i}`);let o=await Bt(`systemctl`,[`--user`,`enable`,Dt]);if(o!==0)throw Error(`systemctl --user enable 失败(退出码 ${String(o)})。请手动执行: systemctl --user enable ${Dt}`);return i}async function Xt(e){let t=It(),n=m(t);return b(t,{force:!0}),b(i(e,Tt),{force:!0}),n}async function Zt(){let e=Lt();return m(e)?(await Bt(`launchctl`,[`unload`,e]),b(e,{force:!0}),!0):!1}async function Qt(){let e=Rt();return m(e)?(await Bt(`systemctl`,[`--user`,`disable`,Dt]),b(e,{force:!0}),await Bt(`systemctl`,[`--user`,`daemon-reload`]),!0):!1}function $t(e){let t=()=>Ht(w())?.itemPath()??null,n=e=>{let t=_(e);return t.length>=2&&t[0]===255&&t[1]===254?t.toString(`utf16le`).slice(1):t.toString(`utf-8`)},r=t(),i=!1;if(r&&m(r))try{i=n(r).includes(kt)}catch{}return{platform:w(),enabled:i,itemPath:r,optOut:m(Ft(e))}}async function en(e){let t=Ut(w());h(i(e.appDir,`logs`),{recursive:!0});let n=await t.on(e.nodePath,e);return b(Ft(e.appDir),{force:!0}),{itemPath:n}}async function tn(e){let t=await Ut(w()).off(e.appDir);return h(e.appDir,{recursive:!0}),S(Ft(e.appDir),new Date().toISOString(),`utf-8`),{removed:t}}var X={ping:`ping`,status:`status`,childStart:`child.start`,childStop:`child.stop`,childRestart:`child.restart`,daemonStop:`daemon.stop`};function nn(e){return e instanceof Error?e.message:String(e)}var rn=1e4,an=2e4,on=3e5,sn=`daemon`,cn=class extends Error{stage;pid;constructor(e,t,n){super(t),this.name=`DaemonRestartError`,this.stage=e,this.pid=n}},ln=class{#e;#t;#n=null;#r={};#i=null;#a=sn;constructor(e){this.#e=e,this.#t=e.appDir}configure(e){this.#n=e.daemonJs??null,this.#r=e.env??{},this.#i=e.logFiles??null,this.#a=e.logPrefix??sn}#o(e=1e3){return this.#e.control.isReachable({timeoutMs:e})}#s(e,t={},n){return this.#e.control.request(e,t,n===void 0?{}:{timeoutMs:n})}#c(){return this.#i??{out:`${this.#a}.out.log`,err:`${this.#a}.err.log`}}#l(){return i(this.#t,`logs`,this.#c().err)}async isRunning(){return this.#o()}async status(){return await this.#o()?this.#s(X.status):null}async childStatus(e){return(await this.status())?.children[e]??null}async call(e,t={},n){return this.#s(e,t,n||void 0)}async startChild(e){await this.#g();let t=await this.status();return{...await this.#s(X.childStart,{name:e},on),alreadyRunning:t?.children[e]!=null}}async stopChild(e){await this.#g();let t=await this.#s(X.childStop,{name:e});return this.#d(t)}async restartChild(e){await this.#g();let t=await this.#s(X.childRestart,{name:e},on);if(`stopped`in t)throw Error(`停止旧服务失败(pid ${String(t.pid??`?`)} 可能仍存活),已中止重启。请检查该进程后重试。`);return t}async shutdown(){if(await this.#o()){let e=await this.#u(rn);if(e?.kind===`command`)throw e.error;return e?.kind===`kill`?{stopped:!1,reason:`kill-failed`,pid:e.pid}:{stopped:!0}}let e=this.#e.control.readInfo(),t=this.#e.control.liveChildPids();if(t.length>0){for(let e of t)if(!await Ct(e))return{stopped:!1,reason:`kill-failed`,pid:e};return e&&this.#e.control.clearInfo(e.pid),{stopped:!0}}return e&&this.#e.control.clearInfo(e.pid),{stopped:!1,reason:`not-running`}}async restartDaemon(e={}){let t=e.stopTimeoutMs??rn,n=e.startTimeoutMs??an;if(await this.#o()){let e=await this.#u(t);if(e?.kind===`command`)throw new cn(`stop`,nn(e.error));if(e?.kind===`kill`)throw new cn(`stop`,`停止旧主进程失败(pid ${String(e.pid)} 可能仍存活),已中止。新版本可能已装好,请手工结束该进程后重试。`,e.pid)}else await this.#p();let r=await this.#h(n);if(r!==null)throw new cn(`spawn`,r);let i=Date.now()+on;for(;Date.now()<i;){try{let t=await this.status(),n=t!==null&&Object.values(t.children).some(e=>e!==null);if(t!==null&&n&&(!e.expectVersion||t.version===e.expectVersion))return t}catch{}await this.#_(100)}throw new cn(`spawn`,`新主进程已启动,但未在时限内接管子进程或版本不匹配`)}async#u(e){let t=null;try{let e=await this.#s(X.ping);t=typeof e?.pid==`number`?e.pid:null}catch{}try{await this.#s(X.daemonStop)}catch(e){return t===null||pt(t)?{kind:`command`,error:e}:null}return t!==null&&!await this.#f(t,e)&&!await Ct(t)?{kind:`kill`,pid:t}:null}#d(e){return e.stopped?{stopped:!0}:e.pid===null?{stopped:!1,reason:`not-running`}:{stopped:!1,reason:`kill-failed`,pid:e.pid}}async#f(e,t=rn){let n=Date.now()+t;for(;Date.now()<n;){if(!pt(e))return!0;await this.#_(100)}return!pt(e)}async#p(){let e=this.#e.control.readInfo(),t=this.#e.control.liveChildPids();for(let e of t)await Ct(e);e&&t.length>0&&this.#e.control.clearInfo(e.pid)}async#m(){let e=this.#n;if(!e)throw Error(`主进程入口未配置:请经 new Daemon(appDir).configure({ daemonJs }) 注入本包 daemon 产物路径`);if(!m(e))throw Error(`未找到主进程入口:${e}(安装可能不完整,可执行 ${this.#a} install 修复)`);let t=await this.#e.interpreter();return gt({entryJs:e,appDir:this.#t,env:this.#r,interpreter:t,logFiles:this.#c()})}async#h(e){if(await this.#m()===0)return`拉起主进程失败(未获得进程号)。请查看日志:${this.#l()}`;let t=Date.now()+e;for(;Date.now()<t;){if(await this.#o(500))return null;await this.#_(200)}return`主进程在 ${String(Math.round(e/1e3))}s 内未启动。请查看日志:${this.#l()}`}async#g(){if(await this.#o())return;let e=await this.#h(an);if(e!==null)throw Error(e)}#_(e){return new Promise(t=>setTimeout(t,e))}};function un(e){let t=e.indexOf(`
20
- `);return t<0?null:{line:e.slice(0,t),rest:e.slice(t+1)}}var dn=class{appDir;endpoint;constructor(e){this.appDir=e,this.endpoint=this.#e()}#e(){return w()===`win32`?`\\\\.\\pipe\\daemon-${E(`sha1`).update(this.appDir.toLowerCase()).digest(`hex`).slice(0,12)}`:i(this.appDir,`daemon.sock`)}request(e,t={},n={}){let r=n.timeoutMs??3e4,i={id:1,cmd:e,args:t};return new Promise((t,n)=>{let a=M(this.endpoint),o=``,s=!1,c=e=>{s||(s=!0,clearTimeout(l),a.destroy(),e())},l=setTimeout(()=>c(()=>n(Error(`控制通道超时(${e},${String(r)}ms)`))),r);a.setEncoding(`utf-8`),a.on(`connect`,()=>a.write(`${JSON.stringify(i)}\n`)),a.on(`data`,r=>{o+=r;let i=un(o);if(i===null)return;let a;try{a=JSON.parse(i.line)}catch{c(()=>n(Error(`控制通道响应不是合法 JSON(${e})`)));return}c(()=>a.ok?t(a.data):n(Error(a.error??`${e} 失败`)))}),a.on(`error`,e=>c(()=>n(e))),a.on(`close`,()=>c(()=>n(Error(`控制通道已关闭(${e} 未收到响应)`))))})}async isReachable(e={}){try{return await this.request(X.ping,{},{timeoutMs:e.timeoutMs??1e3}),!0}catch{return!1}}async serve(e){let t=N(t=>{let n=``;t.setEncoding(`utf-8`),t.on(`error`,()=>t.destroy()),t.on(`data`,r=>{n+=r;let i=un(n);i!==null&&(n=i.rest,(async()=>{let n;try{n=JSON.parse(i.line)}catch{t.end();return}try{let r=await e(n.cmd,n.args??{});t.end(`${JSON.stringify({id:n.id,ok:!0,data:r})}\n`)}catch(e){let r=nn(e);t.end(`${JSON.stringify({id:n.id,ok:!1,error:r})}\n`)}})())})});try{await this.#t(t)}catch(e){if(w()!==`win32`&&e.code===`EADDRINUSE`)b(this.endpoint,{force:!0}),await this.#t(t);else throw e}return{endpoint:this.endpoint,close:()=>new Promise(e=>{t.close(()=>e())})}}#t(e){return new Promise((t,n)=>{let r=t=>{e.removeListener(`listening`,i),n(t)},i=()=>{e.removeListener(`error`,r),t()};e.once(`error`,r),e.once(`listening`,i),e.listen(this.endpoint)})}get infoPath(){return i(this.appDir,`daemon.json`)}readInfo(){try{let e=JSON.parse(_(this.infoPath,`utf-8`));return typeof e?.pid==`number`?e:null}catch{return null}}liveChildPids(e){let t=Object.values(this.readInfo()?.children??{}).map(e=>e?.pid).filter(t=>typeof t==`number`&&t!==e);return[...new Set(t)].filter(e=>pt(e))}writeInfo(e){h(this.appDir,{recursive:!0}),Ae(this.infoPath,e)}clearInfo(e){let t=this.readInfo();if(!(t&&t.pid!==e))try{b(this.infoPath,{force:!0})}catch{}}},fn=3e3,pn=class{name;#e;#t;#n;#r=null;#i=null;#a=null;#o=!1;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n,this.name=t.name}get snapshot(){return this.#i?{...this.#i}:null}get alive(){return this.#i!==null&&pt(this.#i.pid)}async start(){return this.alive?this.snapshot:(this.#a||=this.#c().finally(()=>{this.#a=null}),this.#a)}async stop(e){let t=this.#r,n=this.#i?.pid??t?.pid??null;if(!t||n===null)return this.#s(),{stopped:!0,pid:null};this.#o=!0,this.#n.log(`正在停止 ${this.name}(pid ${String(n)},${e})...`);let r=new Promise(e=>{t.once(`exit`,()=>e())});t.kill();let i=await Ct(n);i||this.#n.log(`警告:${this.name} 进程(pid ${String(n)})终止未确认,可能仍占用端口`);let a,o=await Promise.race([r.then(()=>!0),new Promise(e=>{a=setTimeout(()=>e(!1),fn)})]);return clearTimeout(a),o||(this.#n.log(`警告:${this.name}(pid ${String(n)})退出事件未在 ${String(fn)}ms 内确认`),this.#s()),{stopped:i&&o,pid:n}}send(e){try{return this.#r?.send?.(e),!0}catch{return!1}}#s(){this.#r=null,this.#i=null,this.#n.onSnapshotChange()}async#c(){this.#o=!1;let e=this.#e.appDir;await this.#t.prepare?.(e);let t=this.#t.env?.(e),n=this.#r=await this.#l(e,t);if(n.on(`error`,e=>this.#n.log(`${this.name} 进程错误:${e.message}`)),n.on(`message`,e=>this.#n.onChildMessage(e)),n.once(`exit`,(e,t)=>{this.#r===n&&this.#d(e,t)}),!n.pid)throw this.#o=!0,this.#s(),Error(`无法启动 ${this.name}(未获得进程号)`);return this.#i={pid:n.pid,startedAt:Date.now()},this.#n.onSnapshotChange(),this.#n.log(`${this.name} 进程已启动(pid ${String(n.pid)})`),{...this.#i}}async#l(e,t){let n=this.#t.entry,r=this.#t.spawn;if(n===void 0==(r===void 0))throw Error(`子进程 ${this.name} 的规格必须且只能声明 entry 或 spawn 之一`);if(n!==void 0){let r=await this.#e.interpreter(),i=n(e);return this.#n.log(`正在启动 ${this.name}(${i})...`),_t({entryJs:i,appDir:e,env:t,interpreter:r,logFiles:this.#u()})}let i=r(e),a=i.command!==void 0&&i.command.trim()!==``?i.command:process.execPath;return this.#n.log(`正在启动 ${this.name}(${a}${i.cwd===void 0?``:`,cwd ${i.cwd}`})...`),St({command:a,args:i.args??[],...i.cwd===void 0?{}:{cwd:i.cwd},appDir:e,env:t,logFiles:this.#u()})}#u(){return{out:`out-${this.name}.log`,err:`err-${this.name}.log`}}#d(e,t){this.#s();let n=`退出码 ${String(e??`?`)}${t?`,信号 ${t}`:``}`;if(this.#o){this.#n.log(`${this.name} 已停止(${n})`);return}this.#n.log(`${this.name} 异常退出(${n})`),this.#n.onUnexpectedExit(this,n)}},mn=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n}start(){if(this.#e.length===0){this.#t(`未注入任何定时任务(依赖定时任务的能力——如自动更新——将不可用)`);return}let e=this.#e.map(e=>({name:e.name,everyMs:e.everyMs,retryMs:e.retryMs,...e.firstDelayMs===void 0?{}:{firstDelayMs:e.firstDelayMs},run:t=>e.run({log:t.log,restartChild:this.#n})}));this.#r=Ne({jobs:e,log:this.#t,onError:(e,t,n)=>{this.#t(`定时任务 ${e.name} 失败(${String(Math.round(n/6e4))} 分钟后重试):${t.message}`)}});for(let e of this.#e)this.#t(`定时任务已注册:${e.name}`)}stop(){this.#r?.stop(),this.#r=null}},hn=`daemon`,gn=6e4,_n=10,vn=class{#e;#t=null;#n=hn;#r=[];#i=new Map;#a=[];#o=null;#s=null;#c={};#l=Date.now();#u=!1;#d=!1;#f=()=>``;#p=null;#m=e=>process.exit(e);constructor(e){this.#e=e}configure(e){this.#t=e.daemonJs??null,this.#n=e.logPrefix??hn,this.#r=e.children??[],this.#a=e.tasks??[],this.#c=e.commands??{},this.#f=e.version??(()=>``),this.#p=e.onStartup??null,this.#m=e.exit??(e=>process.exit(e))}async run(){if(this.#u){this.#h(`本进程已在运行,忽略重复启动`);return}for(let e of Object.keys(this.#c))if(Object.values(X).includes(e))throw Error(`注入命令与内置命令重名:${e}`);for(let e of this.#r){if(this.#e.child(e.name))throw Error(`注入子进程规格重名:${e.name}`);this.#v(e)}if(await this.#e.control.isReachable()){this.#h(`主进程已在运行(端点 ${this.#e.control.endpoint}),本次启动忽略`);return}let e=this.#k();this.#o=await this.#e.control.serve((e,t)=>this.#b(e,t)),this.#u=!0,this.#w();let t=this.#f();this.#h(`主进程已启动(pid ${String(process.pid)}${t===``?``:`,版本 ${t}`},端点 ${this.#o.endpoint})`);for(let e of[`SIGINT`,`SIGTERM`])process.on(e,()=>{this.#A(`收到 ${e}`)});process.on(`uncaughtException`,e=>{L(`[${this.#n}] 主进程未捕获异常:`,e?.stack??String(e)),L(`[${this.#n}] 主进程即将退出;托管 server 会在 IPC 断开后自行退出`),this.#m(1)});let n=this.#t,r=this.#p;if(n&&r)try{let e=await this.#e.interpreter();await r({daemonJs:n,appDir:this.#e.appDir,interpreter:e})}catch(e){this.#h(`启动钩子失败(不阻塞启动):${nn(e)}`)}this.#s=new mn(this.#a,this.#g,e=>this.#S(e)),this.#s.start();for(let t of e)this.#h(`发现无主的子进程(pid ${String(t)})继续运行:本次将重启它以恢复纳管(服务会出现秒级中断)`),await Ct(t);for(let e of this.#e.children())this.#i.get(e.name)?.autostart!==!1&&await e.start()}#h(e){F(`[${this.#n}] ${e}`)}#g=e=>this.#h(e);#_={log:this.#g,children:{register:e=>{this.#v(e),this.#h(`已注册子进程:${e.name}`)},unregister:async e=>{let t=this.#e.child(e);t&&(await t.stop(`被注销`),this.#e.removeChild(e),this.#i.delete(e),this.#w(),this.#h(`已注销子进程:${e}`))},start:async e=>await this.#x({name:e}).start(),stop:async e=>await this.#x({name:e}).stop(`收到停止指令`),status:()=>this.#y()}};#v(e){if(this.#i.has(e.name)||this.#e.child(e.name))throw Error(`子进程名已被占用:${e.name}`);this.#i.set(e.name,e),this.#e.addChild(new pn(this.#e,e,this.#T(e.name)))}#y(){let e={};for(let t of this.#e.children())e[t.name]=t.snapshot;return e}async#b(e,t){switch(e){case X.ping:return{pid:process.pid,version:this.#f()};case X.status:return this.#C();case X.childStart:return await this.#x(t).start();case X.childStop:return await this.#x(t).stop(`收到停止指令`);case X.childRestart:{let e=this.#x(t),n=await e.stop(`收到重启指令`);return n.stopped?await e.start():{stopped:!1,pid:n.pid}}case X.daemonStop:return setTimeout(()=>void this.#A(`收到停止指令`),150),{stopping:!0};default:{let n=this.#c[e];if(!n)throw Error(`未知控制命令:${e}`);return await n(t,this.#_)}}}#x(e){let t=typeof e.name==`string`?e.name:``,n=this.#e.child(t);if(!n)throw Error(`未知子进程:${t||`(未指定名称)`}(可用:${this.#e.childNames().join(`、`)})`);return n}async#S(e){let t=this.#x({name:e}),n=await t.stop(`收到重启指令`);if(!n.stopped)throw Error(`无法停止子进程 ${e}(pid ${String(n.pid)}),重启中止`);await t.start()}#C(){return{daemonPid:process.pid,version:this.#f()||null,startedAt:this.#l,endpoint:this.#o?.endpoint??this.#e.control.endpoint,children:this.#y()}}#w(){this.#e.control.writeInfo({pid:process.pid,endpoint:this.#o?.endpoint??this.#e.control.endpoint,startedAt:this.#l,version:this.#f()||null,children:this.#C().children})}#T(e){return{log:this.#g,onSnapshotChange:()=>this.#w(),onUnexpectedExit:e=>this.#E(e),onChildMessage:t=>this.#O(e,t)}}#E(e){if(this.#d)return;let{allowed:t,count:n}=this.#D(e.name);if(!t){this.#h(`1 分钟内已重启 ${String(e.name)} ${String(n)} 次(上限 ${String(_n)}),停止自动重启;请排查日志后手工 ${this.#n} start`);return}setTimeout(()=>{e.start().catch(e=>this.#h(`自动重启失败:${e.message}`))},500)}#D(e){let t=i(this.#e.appDir,`daemon-restarts.json`),n={};try{let e=JSON.parse(_(t,`utf-8`));typeof e==`object`&&e&&(n=e)}catch{}let r=Date.now(),a={...n[e]??{windowStart:0,count:0}},o=Number.isFinite(a.windowStart)?a.windowStart:r;r-o>gn?(a.windowStart=r,a.count=0):a.windowStart=o,a.count=(Number.isFinite(a.count)?a.count:0)+1,n[e]=a;try{S(t,JSON.stringify(n),`utf-8`)}catch{}return{allowed:a.count<=_n,count:a.count}}#O(e,t){let n=t;if(!n?.type||typeof n.id!=`number`)return;let r=t=>{this.#e.child(e)?.send({type:`${String(n.type)}.result`,id:n.id,...t})};if(n.type===X.daemonStop){r({error:`该命令不可经 IPC 委派(仅支持经由 CLI 的控制通道)`});return}this.#b(n.type,n.args??{}).then(e=>r({data:e}),e=>r({error:e.message}))}#k(){let e=this.#e.control.readInfo();return!e||e.pid===process.pid?[]:this.#e.control.liveChildPids(process.pid)}async#A(e){if(!this.#d){this.#d=!0,this.#h(`主进程准备退出(${e})`),this.#s?.stop();for(let t of this.#e.children())await t.stop(e);this.#e.control.clearInfo(process.pid);try{await this.#o?.close()}catch{}this.#h(`主进程已退出(服务随之停止)`),this.#m(0)}}},yn=class e{static#e=new Map;appDir;control;client;#t;#n=new Map;#r=null;static of(t){let n=e.#e.get(t);return n||(n=new e(t),e.#e.set(t,n)),n}constructor(e){this.appDir=e,this.control=new dn(e),this.client=new ln(this),this.#t=new vn(this)}configure(e={}){this.#r=e.interpreter??null,this.client.configure(e),this.#t.configure(e)}interpreter(){let e=this.#r;return e===null?Promise.resolve(process.execPath):e(this.appDir)}get daemon(){return this.#t}addChild(e){this.#n.set(e.name,e)}removeChild(e){this.#n.delete(e)}child(e){return this.#n.get(e)}children(){return[...this.#n.values()]}childNames(){return[...this.#n.keys()]}},bn=class{#e;constructor(e){this.#e=yn.of(e)}configure(e={}){return this.#e.configure(e),this}run(){return this.#e.daemon.run()}isRunning(){return this.#e.client.isRunning()}status(){return this.#e.client.status()}childStatus(e){return this.#e.client.childStatus(e)}call(e,t={},n){return this.#e.client.call(e,t,n)}startChild(e){return this.#e.client.startChild(e)}stopChild(e){return this.#e.client.stopChild(e)}restartChild(e){return this.#e.client.restartChild(e)}shutdown(){return this.#e.client.shutdown()}restartDaemon(e={}){return this.#e.client.restartDaemon(e)}},xn=Object.create,Sn=Object.defineProperty,Cn=Object.getOwnPropertyDescriptor,wn=Object.getOwnPropertyNames,Tn=Object.getPrototypeOf,En=Object.prototype.hasOwnProperty,Z=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Dn=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=wn(t),a=0,o=i.length,s;a<o;a++)s=i[a],!En.call(e,s)&&s!==n&&Sn(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Cn(t,s))||r.enumerable});return e},On=(e,t,n)=>(n=e==null?{}:xn(Tn(e)),Dn(t||!e||!e.__esModule||!En.call(e,`default`)?Sn(n,`default`,{value:e,enumerable:!0}):n,e)),Q=e(import.meta.url),kn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`];function r(e){return n.includes(e)}var i=[`Function`,`Generator`,`AsyncGenerator`,`GeneratorFunction`,`AsyncGeneratorFunction`,`AsyncFunction`,`Observable`,`Array`,`Buffer`,`Blob`,`Object`,`RegExp`,`Date`,`Error`,`Map`,`Set`,`WeakMap`,`WeakSet`,`ArrayBuffer`,`SharedArrayBuffer`,`DataView`,`Promise`,`URL`,`FormData`,`URLSearchParams`,`HTMLElement`,...n];function a(e){return i.includes(e)}var o=[`null`,`undefined`,`string`,`number`,`bigint`,`boolean`,`symbol`];function s(e){return o.includes(e)}function c(e){return t=>typeof t===e}var{toString:l}=Object.prototype,u=e=>{let t=l.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&f.domElement(e))return`HTMLElement`;if(a(t))return t},d=e=>t=>u(t)===e;function f(e){if(e===null)return`null`;switch(typeof e){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return`number`;case`boolean`:return`boolean`;case`function`:return`Function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`}if(f.observable(e))return`Observable`;if(f.array(e))return`Array`;if(f.buffer(e))return`Buffer`;let t=u(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw TypeError(`Please don't use object wrappers for primitive types`);return`Object`}f.undefined=c(`undefined`),f.string=c(`string`);var p=c(`number`);f.number=e=>p(e)&&!f.nan(e),f.bigint=c(`bigint`),f.function_=c(`function`),f.null_=e=>e===null,f.class_=e=>f.function_(e)&&e.toString().startsWith(`class `),f.boolean=e=>e===!0||e===!1,f.symbol=c(`symbol`),f.numericString=e=>f.string(e)&&!f.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),f.array=(e,t)=>Array.isArray(e)?!f.function_(t)||e.every(t):!1,f.buffer=e=>{var t;return((t=e?.constructor)?.isBuffer)?.call(t,e)??!1},f.blob=e=>d(`Blob`)(e),f.nullOrUndefined=e=>f.null_(e)||f.undefined(e),f.object=e=>!f.null_(e)&&(typeof e==`object`||f.function_(e)),f.iterable=e=>f.function_(e?.[Symbol.iterator]),f.asyncIterable=e=>f.function_(e?.[Symbol.asyncIterator]),f.generator=e=>f.iterable(e)&&f.function_(e?.next)&&f.function_(e?.throw),f.asyncGenerator=e=>f.asyncIterable(e)&&f.function_(e.next)&&f.function_(e.throw),f.nativePromise=e=>d(`Promise`)(e);var m=e=>f.function_(e?.then)&&f.function_(e?.catch);f.promise=e=>f.nativePromise(e)||m(e),f.generatorFunction=d(`GeneratorFunction`),f.asyncGeneratorFunction=e=>u(e)===`AsyncGeneratorFunction`,f.asyncFunction=e=>u(e)===`AsyncFunction`,f.boundFunction=e=>f.function_(e)&&!e.hasOwnProperty(`prototype`),f.regExp=d(`RegExp`),f.date=d(`Date`),f.error=d(`Error`),f.map=e=>d(`Map`)(e),f.set=e=>d(`Set`)(e),f.weakMap=e=>d(`WeakMap`)(e),f.weakSet=e=>d(`WeakSet`)(e),f.int8Array=d(`Int8Array`),f.uint8Array=d(`Uint8Array`),f.uint8ClampedArray=d(`Uint8ClampedArray`),f.int16Array=d(`Int16Array`),f.uint16Array=d(`Uint16Array`),f.int32Array=d(`Int32Array`),f.uint32Array=d(`Uint32Array`),f.float32Array=d(`Float32Array`),f.float64Array=d(`Float64Array`),f.bigInt64Array=d(`BigInt64Array`),f.bigUint64Array=d(`BigUint64Array`),f.arrayBuffer=d(`ArrayBuffer`),f.sharedArrayBuffer=d(`SharedArrayBuffer`),f.dataView=d(`DataView`),f.enumCase=(e,t)=>Object.values(t).includes(e),f.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,f.urlInstance=e=>d(`URL`)(e),f.urlString=e=>{if(!f.string(e))return!1;try{return new URL(e),!0}catch{return!1}},f.truthy=e=>!!e,f.falsy=e=>!e,f.nan=e=>Number.isNaN(e),f.primitive=e=>f.null_(e)||s(typeof e),f.integer=e=>Number.isInteger(e),f.safeInteger=e=>Number.isSafeInteger(e),f.plainObject=e=>{if(l.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})},f.typedArray=e=>r(u(e));var h=e=>f.safeInteger(e)&&e>=0;f.arrayLike=e=>!f.nullOrUndefined(e)&&!f.function_(e)&&h(e.length),f.inRange=(e,t)=>{if(f.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(f.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw TypeError(`Invalid range: ${JSON.stringify(t)}`)};var g=1,_=[`innerHTML`,`ownerDocument`,`style`,`attributes`,`nodeValue`];f.domElement=e=>f.object(e)&&e.nodeType===g&&f.string(e.nodeName)&&!f.plainObject(e)&&_.every(t=>t in e),f.observable=e=>{var t,n;return e?e===(t=e)[Symbol.observable]?.call(t)||e===(n=e)[`@@observable`]?.call(n):!1},f.nodeStream=e=>f.object(e)&&f.function_(e.pipe)&&!f.observable(e),f.infinite=e=>e===1/0||e===-1/0;var v=e=>t=>f.integer(t)&&Math.abs(t%2)===e;f.evenInteger=v(0),f.oddInteger=v(1),f.emptyArray=e=>f.array(e)&&e.length===0,f.nonEmptyArray=e=>f.array(e)&&e.length>0,f.emptyString=e=>f.string(e)&&e.length===0;var y=e=>f.string(e)&&!/\S/.test(e);f.emptyStringOrWhitespace=e=>f.emptyString(e)||y(e),f.nonEmptyString=e=>f.string(e)&&e.length>0,f.nonEmptyStringAndNotWhitespace=e=>f.string(e)&&!f.emptyStringOrWhitespace(e),f.emptyObject=e=>f.object(e)&&!f.map(e)&&!f.set(e)&&Object.keys(e).length===0,f.nonEmptyObject=e=>f.object(e)&&!f.map(e)&&!f.set(e)&&Object.keys(e).length>0,f.emptySet=e=>f.set(e)&&e.size===0,f.nonEmptySet=e=>f.set(e)&&e.size>0,f.emptyMap=e=>f.map(e)&&e.size===0,f.nonEmptyMap=e=>f.map(e)&&e.size>0,f.propertyKey=e=>f.any([f.string,f.number,f.symbol],e),f.formData=e=>d(`FormData`)(e),f.urlSearchParams=e=>d(`URLSearchParams`)(e);var b=(e,t,n)=>{if(!f.function_(t))throw TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(n.length===0)throw TypeError(`Invalid number of values`);return e.call(n,t)};f.any=(e,...t)=>(f.array(e)?e:[e]).some(e=>b(Array.prototype.some,e,t)),f.all=(e,...t)=>b(Array.prototype.every,e,t);var x=(e,t,n,r={})=>{if(!e){let{multipleValues:e}=r,i=e?`received values of types ${[...new Set(n.map(e=>`\`${f(e)}\``))].join(`, `)}`:`received value of type \`${f(n)}\``;throw TypeError(`Expected value which is \`${t}\`, ${i}.`)}};e.assert={undefined:e=>x(f.undefined(e),`undefined`,e),string:e=>x(f.string(e),`string`,e),number:e=>x(f.number(e),`number`,e),bigint:e=>x(f.bigint(e),`bigint`,e),function_:e=>x(f.function_(e),`Function`,e),null_:e=>x(f.null_(e),`null`,e),class_:e=>x(f.class_(e),`Class`,e),boolean:e=>x(f.boolean(e),`boolean`,e),symbol:e=>x(f.symbol(e),`symbol`,e),numericString:e=>x(f.numericString(e),`string with a number`,e),array:(e,t)=>{x(f.array(e),`Array`,e),t&&e.forEach(t)},buffer:e=>x(f.buffer(e),`Buffer`,e),blob:e=>x(f.blob(e),`Blob`,e),nullOrUndefined:e=>x(f.nullOrUndefined(e),`null or undefined`,e),object:e=>x(f.object(e),`Object`,e),iterable:e=>x(f.iterable(e),`Iterable`,e),asyncIterable:e=>x(f.asyncIterable(e),`AsyncIterable`,e),generator:e=>x(f.generator(e),`Generator`,e),asyncGenerator:e=>x(f.asyncGenerator(e),`AsyncGenerator`,e),nativePromise:e=>x(f.nativePromise(e),`native Promise`,e),promise:e=>x(f.promise(e),`Promise`,e),generatorFunction:e=>x(f.generatorFunction(e),`GeneratorFunction`,e),asyncGeneratorFunction:e=>x(f.asyncGeneratorFunction(e),`AsyncGeneratorFunction`,e),asyncFunction:e=>x(f.asyncFunction(e),`AsyncFunction`,e),boundFunction:e=>x(f.boundFunction(e),`Function`,e),regExp:e=>x(f.regExp(e),`RegExp`,e),date:e=>x(f.date(e),`Date`,e),error:e=>x(f.error(e),`Error`,e),map:e=>x(f.map(e),`Map`,e),set:e=>x(f.set(e),`Set`,e),weakMap:e=>x(f.weakMap(e),`WeakMap`,e),weakSet:e=>x(f.weakSet(e),`WeakSet`,e),int8Array:e=>x(f.int8Array(e),`Int8Array`,e),uint8Array:e=>x(f.uint8Array(e),`Uint8Array`,e),uint8ClampedArray:e=>x(f.uint8ClampedArray(e),`Uint8ClampedArray`,e),int16Array:e=>x(f.int16Array(e),`Int16Array`,e),uint16Array:e=>x(f.uint16Array(e),`Uint16Array`,e),int32Array:e=>x(f.int32Array(e),`Int32Array`,e),uint32Array:e=>x(f.uint32Array(e),`Uint32Array`,e),float32Array:e=>x(f.float32Array(e),`Float32Array`,e),float64Array:e=>x(f.float64Array(e),`Float64Array`,e),bigInt64Array:e=>x(f.bigInt64Array(e),`BigInt64Array`,e),bigUint64Array:e=>x(f.bigUint64Array(e),`BigUint64Array`,e),arrayBuffer:e=>x(f.arrayBuffer(e),`ArrayBuffer`,e),sharedArrayBuffer:e=>x(f.sharedArrayBuffer(e),`SharedArrayBuffer`,e),dataView:e=>x(f.dataView(e),`DataView`,e),enumCase:(e,t)=>x(f.enumCase(e,t),`EnumCase`,e),urlInstance:e=>x(f.urlInstance(e),`URL`,e),urlString:e=>x(f.urlString(e),`string with a URL`,e),truthy:e=>x(f.truthy(e),`truthy`,e),falsy:e=>x(f.falsy(e),`falsy`,e),nan:e=>x(f.nan(e),`NaN`,e),primitive:e=>x(f.primitive(e),`primitive`,e),integer:e=>x(f.integer(e),`integer`,e),safeInteger:e=>x(f.safeInteger(e),`integer`,e),plainObject:e=>x(f.plainObject(e),`plain object`,e),typedArray:e=>x(f.typedArray(e),`TypedArray`,e),arrayLike:e=>x(f.arrayLike(e),`array-like`,e),domElement:e=>x(f.domElement(e),`HTMLElement`,e),observable:e=>x(f.observable(e),`Observable`,e),nodeStream:e=>x(f.nodeStream(e),`Node.js Stream`,e),infinite:e=>x(f.infinite(e),`infinite number`,e),emptyArray:e=>x(f.emptyArray(e),`empty array`,e),nonEmptyArray:e=>x(f.nonEmptyArray(e),`non-empty array`,e),emptyString:e=>x(f.emptyString(e),`empty string`,e),emptyStringOrWhitespace:e=>x(f.emptyStringOrWhitespace(e),`empty string or whitespace`,e),nonEmptyString:e=>x(f.nonEmptyString(e),`non-empty string`,e),nonEmptyStringAndNotWhitespace:e=>x(f.nonEmptyStringAndNotWhitespace(e),`non-empty string and not whitespace`,e),emptyObject:e=>x(f.emptyObject(e),`empty object`,e),nonEmptyObject:e=>x(f.nonEmptyObject(e),`non-empty object`,e),emptySet:e=>x(f.emptySet(e),`empty set`,e),nonEmptySet:e=>x(f.nonEmptySet(e),`non-empty set`,e),emptyMap:e=>x(f.emptyMap(e),`empty map`,e),nonEmptyMap:e=>x(f.nonEmptyMap(e),`non-empty map`,e),propertyKey:e=>x(f.propertyKey(e),`PropertyKey`,e),formData:e=>x(f.formData(e),`FormData`,e),urlSearchParams:e=>x(f.urlSearchParams(e),`URLSearchParams`,e),evenInteger:e=>x(f.evenInteger(e),`even integer`,e),oddInteger:e=>x(f.oddInteger(e),`odd integer`,e),directInstanceOf:(e,t)=>x(f.directInstanceOf(e,t),`T`,e),inRange:(e,t)=>x(f.inRange(e,t),`in range`,e),any:(e,...t)=>x(f.any(e,...t),`predicate returns truthy for any value`,t,{multipleValues:!0}),all:(e,...t)=>x(f.all(e,...t),`predicate returns truthy for all values`,t,{multipleValues:!0})},Object.defineProperties(f,{class:{value:f.class_},function:{value:f.function_},null:{value:f.null_}}),Object.defineProperties(e.assert,{class:{value:e.assert.class_},function:{value:e.assert.function_},null:{value:e.assert.null_}}),e.default=f,t.exports=f,t.exports.default=f,t.exports.assert=e.assert})),An=Z(((e,t)=>{var n=class extends Error{constructor(e){super(e||`Promise was canceled`),this.name=`CancelError`}get isCanceled(){return!0}},r=class e{static fn(t){return(...n)=>new e((e,r,i)=>{n.push(i),t(...n).then(e,r)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,n)=>{this._reject=n;let r=e=>{(!this._isCanceled||!a.shouldReject)&&(this._isPending=!1,t(e))},i=e=>{this._isPending=!1,n(e)},a=e=>{if(!this._isPending)throw Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(a,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(r,i,a)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let e of this._cancelHandlers)e()}catch(e){this._reject(e);return}this._rejectOnCancel&&this._reject(new n(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(r.prototype,Promise.prototype),t.exports=r,t.exports.CancelError=n})),jn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});function n(e){return e.encrypted}var r=(e,t)=>{let r;r=typeof t==`function`?{connect:t}:t;let i=typeof r.connect==`function`,a=typeof r.secureConnect==`function`,o=typeof r.close==`function`,s=()=>{i&&r.connect(),n(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once(`secureConnect`,r.secureConnect)),o&&e.once(`close`,r.close)};e.writable&&!e.connecting?s():e.connecting?e.once(`connect`,s):e.destroyed&&o&&r.close(e._hadError)};e.default=r,t.exports=r,t.exports.default=r})),Mn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=jn(),r=Q(`util`),i=Number(process.versions.node.split(`.`)[0]),a=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let a=e=>{let n=e.emit.bind(e);e.emit=(r,...i)=>(r===`error`&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=n),n(r,...i))};a(e);let o=()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener(`abort`,o);let s=e=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,r.types.isProxy(e))return;let i=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener(`lookup`,i),n.default(e,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(e.removeListener(`lookup`,i),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?s(e.socket):e.prependOnceListener(`socket`,s);let c=()=>{t.upload=Date.now(),t.phases.request=t.upload-(t.secureConnect??t.connect)};return(typeof e.writableFinished==`boolean`?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?c():e.prependOnceListener(`finish`,c),e.prependOnceListener(`response`,e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,a(e),e.prependOnceListener(`end`,()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),e.prependOnceListener(`aborted`,o)}),t};e.default=a,t.exports=a,t.exports.default=a})),Nn=Z(((e,t)=>{var{V4MAPPED:n,ADDRCONFIG:r,ALL:i,promises:{Resolver:a},lookup:o}=Q(`dns`),{promisify:s}=Q(`util`),c=Q(`os`),l=Symbol(`cacheableLookupCreateConnection`),u=Symbol(`cacheableLookupInstance`),d=Symbol(`expires`),f=typeof i==`number`,p=e=>{if(!(e&&typeof e.createConnection==`function`))throw Error(`Expected an Agent instance as the first argument`)},m=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},h=()=>{let e=!1,t=!1;for(let n of Object.values(c.networkInterfaces()))for(let r of n)if(!r.internal&&(r.family===`IPv6`?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},g=e=>Symbol.iterator in e,_={ttl:!0},v={all:!0},y=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:n=3600,errorTtl:r=.15,resolver:i=new a,lookup:c=o}={}){if(this.maxTtl=t,this.errorTtl=r,this._cache=e,this._resolver=i,this._dnsLookup=s(c),this._resolver instanceof a?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=s(this._resolver.resolve4.bind(this._resolver)),this._resolve6=s(this._resolver.resolve6.bind(this._resolver))),this._iface=h(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let e=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);e.unref&&e.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,n){if(typeof t==`function`?(n=t,t={}):typeof t==`number`&&(t={family:t}),!n)throw Error(`Callback must be a function.`);this.lookupAsync(e,t).then(e=>{t.all?n(null,e):n(null,e.address,e.family,e.expires,e.ttl)},n)}async lookupAsync(e,t={}){typeof t==`number`&&(t={family:t});let a=await this.query(e);if(t.family===6){let e=a.filter(e=>e.family===6);t.hints&n&&(f&&t.hints&i||e.length===0)?m(a):a=e}else t.family===4&&(a=a.filter(e=>e.family===4));if(t.hints&r){let{_iface:e}=this;a=a.filter(t=>t.family===6?e.has6:e.has4)}if(a.length===0){let t=Error(`cacheableLookup ENOTFOUND ${e}`);throw t.code=`ENOTFOUND`,t.hostname=e,t}return t.all?a:a[0]}async query(e){let t=await this._cache.get(e);if(!t){let n=this._pending[e];if(n)t=await n;else{let n=this.queryAndCache(e);this._pending[e]=n;try{t=await n}finally{delete this._pending[e]}}}return t=t.map(e=>({...e})),t}async _resolve(e){let t=async e=>{try{return await e}catch(e){if(e.code===`ENODATA`||e.code===`ENOTFOUND`)return[];throw e}},[n,r]=await Promise.all([this._resolve4(e,_),this._resolve6(e,_)].map(e=>t(e))),i=0,a=0,o=0,s=Date.now();for(let e of n)e.family=4,e.expires=s+e.ttl*1e3,i=Math.max(i,e.ttl);for(let e of r)e.family=6,e.expires=s+e.ttl*1e3,a=Math.max(a,e.ttl);return o=n.length>0?r.length>0?Math.min(i,a):i:a,{entries:[...n,...r],cacheTtl:o}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,t[d]=Date.now()+n;try{await this._cache.set(e,t,n)}catch(e){this.lookupAsync=async()=>{let t=Error(`Cache Error. Please recreate the CacheableLookup instance.`);throw t.cause=e,t}}g(this._cache)&&this._tick(n)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,v);let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let n=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,n),t.entries}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let e=1/0,t=Date.now();for(let[n,r]of this._cache){let i=r[d];t>=i?this._cache.delete(n):i<e&&(e=i)}e!==1/0&&this._tick(e-t)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(p(e),l in e)throw Error(`CacheableLookup has been already installed`);e[l]=e.createConnection,e[u]=this,e.createConnection=(t,n)=>(`lookup`in t||(t.lookup=this.lookup),e[l](t,n))}uninstall(e){if(p(e),e[l]){if(e[u]!==this)throw Error(`The agent is not owned by this CacheableLookup instance`);e.createConnection=e[l],delete e[l],delete e[u]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=h(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){e?this._cache.delete(e):this._cache.clear()}};t.exports=y,t.exports.default=y})),Pn=Z(((e,t)=>{var n=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),r=(e,{stripHash:t})=>{let n=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(e);if(!n)throw Error(`Invalid URL: ${e}`);let{type:r,data:i,hash:a}=n.groups,o=r.split(`;`);a=t?``:a;let s=!1;o[o.length-1]===`base64`&&(o.pop(),s=!0);let c=(o.shift()||``).toLowerCase(),l=[...o.map(e=>{let[t,n=``]=e.split(`=`).map(e=>e.trim());return t===`charset`&&(n=n.toLowerCase(),n===`us-ascii`)?``:`${t}${n?`=${n}`:``}`}).filter(Boolean)];return s&&l.push(`base64`),(l.length!==0||c&&c!==`text/plain`)&&l.unshift(c),`data:${l.join(`;`)},${s?i.trim():i}${a?`#${a}`:``}`};t.exports=(e,t)=>{if(t={defaultProtocol:`http:`,normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return r(e,t);if(/^view-source:/i.test(e))throw Error("`view-source:` is not supported as it is a non-standard protocol");let i=e.startsWith(`//`);(i||!/^\.*\//.test(e))&&(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol===`https:`&&(a.protocol=`http:`),t.forceHttps&&a.protocol===`http:`&&(a.protocol=`https:`),t.stripAuthentication&&(a.username=``,a.password=``),t.stripHash?a.hash=``:t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,``)),a.pathname&&=a.pathname.replace(/(?<!\b(?:[a-z][a-z\d+\-.]{1,50}:))\/{2,}/g,`/`),a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=a.pathname.split(`/`),r=e[e.length-1];n(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),a.pathname=e.slice(1).join(`/`)+`/`)}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,``),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,``))),Array.isArray(t.removeQueryParameters))for(let e of[...a.searchParams.keys()])n(e,t.removeQueryParameters)&&a.searchParams.delete(e);t.removeQueryParameters===!0&&(a.search=``),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,``));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname===`/`&&!o.endsWith(`/`)&&a.hash===``&&(e=e.replace(/\/$/,``)),(t.removeTrailingSlash||a.pathname===`/`)&&a.hash===``&&t.removeSingleSlash&&(e=e.replace(/\/$/,``)),i&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,`//`)),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,``)),e}})),Fn=Z(((e,t)=>{t.exports=n;function n(e,t){if(e&&t)return n(e)(t);if(typeof e!=`function`)throw TypeError(`need wrapper function`);return Object.keys(e).forEach(function(t){r[t]=e[t]}),r;function r(){for(var t=Array(arguments.length),n=0;n<t.length;n++)t[n]=arguments[n];var r=e.apply(this,t),i=t[t.length-1];return typeof r==`function`&&r!==i&&Object.keys(i).forEach(function(e){r[e]=i[e]}),r}}})),In=Z(((e,t)=>{var n=Fn();t.exports=n(r),t.exports.strict=n(i),r.proto=r(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return r(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return i(this)},configurable:!0})});function r(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function i(e){var t=function(){if(t.called)throw Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)};return t.onceError=(e.name||"Function wrapped with `once`")+` shouldn't be called more than once`,t.called=!1,t}})),Ln=Z(((e,t)=>{var n=In(),r=function(){},i=global.Bare?queueMicrotask:process.nextTick.bind(process),a=function(e){return e.setHeader&&typeof e.abort==`function`},o=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},s=function(e,t,c){if(typeof t==`function`)return s(e,null,t);t||={},c=n(c||r);var l=e._writableState,u=e._readableState,d=t.readable||t.readable!==!1&&e.readable,f=t.writable||t.writable!==!1&&e.writable,p=!1,m=function(){e.writable||h()},h=function(){f=!1,d||c.call(e)},g=function(){d=!1,f||c.call(e)},_=function(t){c.call(e,t?Error(`exited with error code: `+t):null)},v=function(t){c.call(e,t)},y=function(){i(b)},b=function(){if(!p&&(d&&!(u&&u.ended&&!u.destroyed)||f&&!(l&&l.ended&&!l.destroyed)))return c.call(e,Error(`premature close`))},x=function(){e.req.on(`finish`,h)};return a(e)?(e.on(`complete`,h),e.on(`abort`,y),e.req?x():e.on(`request`,x)):f&&!l&&(e.on(`end`,m),e.on(`close`,m)),o(e)&&e.on(`exit`,_),e.on(`end`,g),e.on(`finish`,h),t.error!==!1&&e.on(`error`,v),e.on(`close`,y),function(){p=!0,e.removeListener(`complete`,h),e.removeListener(`abort`,y),e.removeListener(`request`,x),e.req&&e.req.removeListener(`finish`,h),e.removeListener(`end`,m),e.removeListener(`close`,m),e.removeListener(`finish`,h),e.removeListener(`exit`,_),e.removeListener(`end`,g),e.removeListener(`error`,v),e.removeListener(`close`,y)}};t.exports=s})),Rn=Z(((e,t)=>{var n=In(),r=Ln(),i;try{i=Q(`fs`)}catch{}var a=function(){},o=typeof process>`u`?!1:/^v?\.0/.test(process.version),s=function(e){return typeof e==`function`},c=function(e){return!o||!i?!1:(e instanceof(i.ReadStream||a)||e instanceof(i.WriteStream||a))&&s(e.close)},l=function(e){return e.setHeader&&s(e.abort)},u=function(e,t,i,o){o=n(o);var u=!1;e.on(`close`,function(){u=!0}),r(e,{readable:t,writable:i},function(e){if(e)return o(e);u=!0,o()});var d=!1;return function(t){if(!u&&!d){if(d=!0,c(e))return e.close(a);if(l(e))return e.abort();if(s(e.destroy))return e.destroy();o(t||Error(`stream was destroyed`))}}},d=function(e){e()},f=function(e,t){return e.pipe(t)};t.exports=function(){var e=Array.prototype.slice.call(arguments),t=s(e[e.length-1]||a)&&e.pop()||a;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw Error(`pump requires two streams per minimum`);var n,r=e.map(function(i,a){var o=a<e.length-1;return u(i,o,a>0,function(e){n||=e,e&&r.forEach(d),!o&&(r.forEach(d),t(n))})});return e.reduce(f)}})),zn=Z(((e,t)=>{var{PassThrough:n}=Q(`stream`);t.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,i=r===`buffer`,a=!1;t?a=!(r||i):r||=`utf8`,i&&(r=null);let o=new n({objectMode:a});r&&o.setEncoding(r);let s=0,c=[];return o.on(`data`,e=>{c.push(e),a?s=c.length:s+=e.length}),o.getBufferedValue=()=>t?c:i?Buffer.concat(c,s):c.join(``),o.getBufferedLength=()=>s,o}})),Bn=Z(((e,t)=>{var{constants:n}=Q(`buffer`),r=Rn(),i=zn(),a=class extends Error{constructor(){super(`maxBuffer exceeded`),this.name=`MaxBufferError`}};async function o(e,t){if(!e)return Promise.reject(Error(`Expected a stream`));t={maxBuffer:1/0,...t};let{maxBuffer:o}=t,s;return await new Promise((c,l)=>{let u=e=>{e&&s.getBufferedLength()<=n.MAX_LENGTH&&(e.bufferedData=s.getBufferedValue()),l(e)};s=r(e,i(t),e=>{e?u(e):c()}),s.on(`data`,()=>{s.getBufferedLength()>o&&u(new a)})}),s.getBufferedValue()}t.exports=o,t.exports.default=o,t.exports.buffer=(e,t)=>o(e,{...t,encoding:`buffer`}),t.exports.array=(e,t)=>o(e,{...t,array:!0}),t.exports.MaxBufferError=a})),Vn=Z(((e,t)=>{var n=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),i=new Set([500,502,503,504]),a={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function s(e){let t=parseInt(e,10);return isFinite(t)?t:0}function c(e){return!e||i.has(e.status)}function l(e){let t={};if(!e)return t;let n=e.trim().split(/,/);for(let e of n){let[n,r]=e.split(/=/,2);t[n.trim()]=r===void 0||r.trim().replace(/^"|"$/g,``)}return t}function u(e){let t=[];for(let n in e){let r=e[n];t.push(r===!0?n:n+`=`+r)}if(t.length)return t.join(`, `)}t.exports=class{constructor(e,t,{shared:n,cacheHeuristic:r,immutableMinTimeToLive:i,ignoreCargoCult:a,_fromObject:o}={}){if(o)this._fromObject(o);else{if(!t||!t.headers)throw Error(`Response headers missing`);this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=n!==!1,this._ignoreCargoCult=!!a,this._cacheHeuristic=r===void 0?.1:r,this._immutableMinTtl=i===void 0?864e5:i,this._status=`status`in t?t.status:200,this._resHeaders=t.headers,this._rescc=l(t.headers[`cache-control`]),this._method=`method`in e?e.method:`GET`,this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=l(e.headers[`cache-control`]),this._ignoreCargoCult&&`pre-check`in this._rescc&&`post-check`in this._rescc&&(delete this._rescc[`pre-check`],delete this._rescc[`post-check`],delete this._rescc[`no-cache`],delete this._rescc[`no-store`],delete this._rescc[`must-revalidate`],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":u(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers[`cache-control`]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc[`no-cache`]=!0)}}now(){return Date.now()}storable(){return!!(!this._reqcc[`no-store`]&&(this._method===`GET`||this._method===`HEAD`||this._method===`POST`&&this._hasExplicitExpiration())&&r.has(this._status)&&!this._rescc[`no-store`]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc[`max-age`]||this._isShared&&this._rescc[`s-maxage`]||this._rescc.public||n.has(this._status)))}_hasExplicitExpiration(){return!!(this._isShared&&this._rescc[`s-maxage`]||this._rescc[`max-age`]||this._resHeaders.expires)}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error(`Request headers missing`)}satisfiesWithoutRevalidation(e){return!this.evaluateRequest(e).revalidation}_evaluateRequestHitResult(e){return{response:{headers:this.responseHeaders()},revalidation:e}}_evaluateRequestRevalidation(e,t){return{synchronous:t,headers:this.revalidationHeaders(e)}}_evaluateRequestMissResult(e){return{response:void 0,revalidation:this._evaluateRequestRevalidation(e,!0)}}evaluateRequest(e){if(this._assertRequestHasHeaders(e),this._rescc[`must-revalidate`]||!this._requestMatches(e,!1))return this._evaluateRequestMissResult(e);let t=l(e.headers[`cache-control`]);return t[`no-cache`]||/no-cache/.test(e.headers.pragma)||t[`max-age`]&&this.age()>s(t[`max-age`])||t[`min-fresh`]&&this.maxAge()-this.age()<s(t[`min-fresh`])?this._evaluateRequestMissResult(e):this.stale()?`max-stale`in t&&(!0===t[`max-stale`]||t[`max-stale`]>this.age()-this.maxAge())?this._evaluateRequestHitResult(void 0):this.useStaleWhileRevalidate()?this._evaluateRequestHitResult(this._evaluateRequestRevalidation(e,!1)):this._evaluateRequestMissResult(e):this._evaluateRequestHitResult(void 0)}_requestMatches(e,t){return!(this._url&&this._url!==e.url||this._host!==e.headers.host||e.method&&this._method!==e.method&&(!t||e.method!==`HEAD`)||!this._varyMatches(e))}_allowsStoringAuthenticated(){return!!(this._rescc[`must-revalidate`]||this._rescc.public||this._rescc[`s-maxage`])}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary===`*`)return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of t)if(e.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let n in e)a[n]||(t[n]=e[n]);if(e.connection){let n=e.connection.trim().split(/\s*,\s*/);for(let e of n)delete t[e]}if(t.warning){let e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(`,`).trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?`${e.warning}, `:``)+`113 - "rfc7234 5.5.4"`),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){return this._ageValue()+(this.now()-this._responseTime)/1e3}_ageValue(){return s(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc[`no-cache`]||this._isShared&&this._resHeaders[`set-cookie`]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary===`*`)return 0;if(this._isShared){if(this._rescc[`proxy-revalidate`])return 0;if(this._rescc[`s-maxage`])return s(this._rescc[`s-maxage`])}if(this._rescc[`max-age`])return s(this._rescc[`max-age`]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||n<t?0:Math.max(e,(n-t)/1e3)}if(this._resHeaders[`last-modified`]){let n=Date.parse(this._resHeaders[`last-modified`]);if(isFinite(n)&&t>n)return Math.max(e,(t-n)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+s(this._rescc[`stale-if-error`]),n=e+s(this._rescc[`stale-while-revalidate`]);return Math.round(Math.max(0,e,t,n)*1e3)}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+s(this._rescc[`stale-if-error`])>this.age()}useStaleWhileRevalidate(){let e=s(this._rescc[`stale-while-revalidate`]);return e>0&&this.maxAge()+e>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error(`Reinitialized`);if(!e||e.v!==1)throw Error(`Invalid serialization`);this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm===void 0?864e5:e.imm,this._ignoreCargoCult=!!e.icc,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,icc:this._ignoreCargoCult,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t[`if-range`],!this._requestMatches(e,!0)||!this.storable())return delete t[`if-none-match`],delete t[`if-modified-since`],t;if(this._resHeaders.etag&&(t[`if-none-match`]=t[`if-none-match`]?`${t[`if-none-match`]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t[`accept-ranges`]||t[`if-match`]||t[`if-unmodified-since`]||this._method&&this._method!=`GET`){if(delete t[`if-modified-since`],t[`if-none-match`]){let e=t[`if-none-match`].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t[`if-none-match`]=e.join(`,`).trim():delete t[`if-none-match`]}}else this._resHeaders[`last-modified`]&&!t[`if-modified-since`]&&(t[`if-modified-since`]=this._resHeaders[`last-modified`]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&c(t))return{policy:this,modified:!1,matches:!0};if(!t||!t.headers)throw Error(`Response headers missing`);let n=!1;t.status!==void 0&&t.status!=304?n=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,``)===t.headers.etag:this._resHeaders.etag&&t.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,``)===t.headers.etag.replace(/^\s*W\//,``):this._resHeaders[`last-modified`]?n=this._resHeaders[`last-modified`]===t.headers[`last-modified`]:!this._resHeaders.etag&&!this._resHeaders[`last-modified`]&&!t.headers.etag&&!t.headers[`last-modified`]&&(n=!0);let r={shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,ignoreCargoCult:this._ignoreCargoCult};if(!n)return{policy:new this.constructor(e,t,r),modified:t.status!=304,matches:!1};let i={};for(let e in this._resHeaders)i[e]=e in t.headers&&!o[e]?t.headers[e]:this._resHeaders[e];let a=Object.assign({},t,{status:this._status,method:this._method,headers:i});return{policy:new this.constructor(e,a,r),modified:!1,matches:!0}}}})),Hn=Z(((e,t)=>{t.exports=e=>{let t={};for(let[n,r]of Object.entries(e))t[n.toLowerCase()]=r;return t}})),Un=Z(((e,t)=>{var n=Q(`stream`).Readable,r=Hn();t.exports=class extends n{constructor(e,t,n,i){if(typeof e!=`number`)throw TypeError("Argument `statusCode` should be a number");if(typeof t!=`object`)throw TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw TypeError("Argument `body` should be a buffer");if(typeof i!=`string`)throw TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=r(t),this.body=n,this.url=i}_read(){this.push(this.body),this.push(null)}}})),Wn=Z(((e,t)=>{var n=[`destroy`,`setTimeout`,`socket`,`headers`,`trailers`,`rawHeaders`,`statusCode`,`httpVersion`,`httpVersionMinor`,`httpVersionMajor`,`rawTrailers`,`statusMessage`];t.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(n));for(let n of r)n in t||(t[n]=typeof e[n]==`function`?e[n].bind(e):e[n])}})),Gn=Z(((e,t)=>{var n=Q(`stream`).PassThrough,r=Wn();t.exports=e=>{if(!(e&&e.pipe))throw TypeError("Parameter `response` must be a response stream.");let t=new n;return r(e,t),e.pipe(t)}})),Kn=Z((e=>{e.stringify=function e(t){if(t===void 0)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(`:base64:`+t.toString(`base64`));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t==`object`){var n=``,r=Array.isArray(t);n=r?`[`:`{`;var i=!0;for(var a in t){var o=typeof t[a]==`function`||!r&&t[a]===void 0;Object.hasOwnProperty.call(t,a)&&!o&&(i||(n+=`,`),i=!1,r?t[a]==null?n+=`null`:n+=e(t[a]):t[a]!==void 0&&(n+=e(a)+`:`+e(t[a])))}return n+=r?`]`:`}`,n}return typeof t==`string`?JSON.stringify(/^:/.test(t)?`:`+t:t):t===void 0?`null`:JSON.stringify(t)},e.parse=function(e){return JSON.parse(e,function(e,t){return typeof t==`string`?/^:base64:/.test(t)?Buffer.from(t.substring(8),`base64`):/^:/.test(t)?t.substring(1):t:t})}})),qn=Z(((e,t)=>{var n=Q(`events`),r=Kn(),i=e=>e.adapter||e.uri?new(Q({redis:`@keyv/redis`,rediss:`@keyv/redis`,mongodb:`@keyv/mongo`,mongo:`@keyv/mongo`,sqlite:`@keyv/sqlite`,postgresql:`@keyv/postgres`,postgres:`@keyv/postgres`,mysql:`@keyv/mysql`,etcd:`@keyv/etcd`,offline:`@keyv/offline`,tiered:`@keyv/tiered`}[e.adapter||/^[^:+]*/.exec(e.uri)[0]]))(e):new Map,a=[`sqlite`,`postgres`,`mysql`,`mongo`,`redis`,`tiered`];t.exports=class extends n{constructor(e,{emitErrors:t=!0,...n}={}){if(super(),this.opts={namespace:`keyv`,serialize:r.stringify,deserialize:r.parse,...typeof e==`string`?{uri:e}:e,...n},!this.opts.store){let e={...this.opts};this.opts.store=i(e)}if(this.opts.compression){let e=this.opts.compression;this.opts.serialize=e.serialize.bind(e),this.opts.deserialize=e.deserialize.bind(e)}typeof this.opts.store.on==`function`&&t&&this.opts.store.on(`error`,e=>this.emit(`error`,e)),this.opts.store.namespace=this.opts.namespace;let a=e=>async function*(){for await(let[t,n]of typeof e==`function`?e(this.opts.store.namespace):e){let e=await this.opts.deserialize(n);(!this.opts.store.namespace||t.includes(this.opts.store.namespace))&&(typeof e.expires==`number`&&Date.now()>e.expires?this.delete(t):yield[this._getKeyUnprefix(t),e.value])}};typeof this.opts.store[Symbol.iterator]==`function`&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator==`function`&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return a.includes(this.opts.store.opts.dialect)||a.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(e=>`${this.opts.namespace}:${e}`)}_getKeyUnprefix(e){return e.split(`:`).splice(1).join(`:`)}get(e,t){let{store:n}=this.opts,r=Array.isArray(e),i=r?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(r&&n.getMany===void 0){let e=[];for(let r of i)e.push(Promise.resolve().then(()=>n.get(r)).then(e=>typeof e==`string`||this.opts.compression?this.opts.deserialize(e):e).then(e=>{if(e!=null)return typeof e.expires==`number`&&Date.now()>e.expires?this.delete(r).then(()=>void 0):t&&t.raw?e:e.value}));return Promise.allSettled(e).then(e=>{let t=[];for(let n of e)t.push(n.value);return t})}return Promise.resolve().then(()=>r?n.getMany(i):n.get(i)).then(e=>typeof e==`string`||this.opts.compression?this.opts.deserialize(e):e).then(n=>{if(n!=null)return r?n.map((n,r)=>{if(typeof n==`string`&&(n=this.opts.deserialize(n)),n!=null){if(typeof n.expires==`number`&&Date.now()>n.expires)this.delete(e[r]).then(()=>void 0);else return t&&t.raw?n:n.value}}):typeof n.expires==`number`&&Date.now()>n.expires?this.delete(e).then(()=>void 0):t&&t.raw?n:n.value})}set(e,t,n){let r=this._getKeyPrefix(e);n===void 0&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:i}=this.opts;return Promise.resolve().then(()=>{let e=typeof n==`number`?Date.now()+n:null;return typeof t==`symbol`&&this.emit(`error`,`symbol cannot be serialized`),t={value:t,expires:e},this.opts.serialize(t)}).then(e=>i.set(r,e,n)).then(()=>!0)}delete(e){let{store:t}=this.opts;if(Array.isArray(e)){let n=this._getKeyPrefixArray(e);if(t.deleteMany===void 0){let e=[];for(let r of n)e.push(t.delete(r));return Promise.allSettled(e).then(e=>e.every(e=>e.value===!0))}return Promise.resolve().then(()=>t.deleteMany(n))}let n=this._getKeyPrefix(e);return Promise.resolve().then(()=>t.delete(n))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let t=this._getKeyPrefix(e),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has==`function`?n.has(t):await n.get(t)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect==`function`)return e.disconnect()}}})),Jn=Z(((e,t)=>{var n=Q(`events`),r=Q(`url`),i=Pn(),a=Bn(),o=Vn(),s=Un(),c=Hn(),l=Gn(),u=qn(),d=class e{constructor(e,t){if(typeof e!=`function`)throw TypeError("Parameter `request` must be a function");return this.cache=new u({uri:typeof t==`string`&&t,store:typeof t!=`string`&&t,namespace:`cacheable-request`}),this.createCacheableRequest(e)}createCacheableRequest(t){return(u,d)=>{let m;if(typeof u==`string`)m=p(r.parse(u)),u={};else if(u instanceof r.URL)m=p(r.parse(u.toString())),u={};else{let[e,...t]=(u.path||``).split(`?`),n=t.length>0?`?${t.join(`?`)}`:``;m=p({...u,pathname:e,search:n})}u={headers:{},method:`GET`,cache:!0,strictTtl:!1,automaticFailover:!1,...u,...f(m)},u.headers=c(u.headers);let h=new n,g=i(r.format(m),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),_=`${u.method}:${g}`,v=!1,y=!1,b=n=>{y=!0;let r=!1,i,c=new Promise(e=>{i=()=>{r||(r=!0,e())}}),u=t=>{if(v&&!n.forceRefresh){t.status=t.statusCode;let e=o.fromObject(v.cachePolicy).revalidatedPolicy(n,t);if(!e.modified){let n=e.policy.responseHeaders();t=new s(v.statusCode,n,v.body,v.url),t.cachePolicy=e.policy,t.fromCache=!0}}t.fromCache||(t.cachePolicy=new o(n,t,n),t.fromCache=!1);let i;n.cache&&t.cachePolicy.storable()?(i=l(t),(async()=>{try{let e=a.buffer(t);if(await Promise.race([c,new Promise(e=>t.once(`end`,e))]),r)return;let i=await e,o={cachePolicy:t.cachePolicy.toObject(),url:t.url,statusCode:t.fromCache?v.statusCode:t.statusCode,body:i},s=n.strictTtl?t.cachePolicy.timeToLive():void 0;n.maxTtl&&(s=s?Math.min(s,n.maxTtl):n.maxTtl),await this.cache.set(_,o,s)}catch(t){h.emit(`error`,new e.CacheError(t))}})()):n.cache&&v&&(async()=>{try{await this.cache.delete(_)}catch(t){h.emit(`error`,new e.CacheError(t))}})(),h.emit(`response`,i||t),typeof d==`function`&&d(i||t)};try{let e=t(n,u);e.once(`error`,i),e.once(`abort`,i),h.emit(`request`,e)}catch(t){h.emit(`error`,new e.RequestError(t))}};return(async()=>{let t=async e=>{await Promise.resolve();let t=e.cache?await this.cache.get(_):void 0;if(t===void 0)return b(e);let n=o.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){let e=n.responseHeaders(),r=new s(t.statusCode,e,t.body,t.url);r.cachePolicy=n,r.fromCache=!0,h.emit(`response`,r),typeof d==`function`&&d(r)}else v=t,e.headers=n.revalidationHeaders(e),b(e)},n=t=>h.emit(`error`,new e.CacheError(t));this.cache.once(`error`,n),h.on(`response`,()=>this.cache.removeListener(`error`,n));try{await t(u)}catch(t){u.automaticFailover&&!y&&b(u),h.emit(`error`,new e.CacheError(t))}})(),h}}};function f(e){let t={...e};return t.path=`${e.pathname||`/`}${e.search||``}`,delete t.pathname,delete t.search,t}function p(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||`localhost`,port:e.port,pathname:e.pathname,search:e.search}}d.RequestError=class extends Error{constructor(e){super(e.message),this.name=`RequestError`,Object.assign(this,e)}},d.CacheError=class extends Error{constructor(e){super(e.message),this.name=`CacheError`,Object.assign(this,e)}},t.exports=d})),Yn=Z(((e,t)=>{var n=[`aborted`,`complete`,`headers`,`httpVersion`,`httpVersionMinor`,`httpVersionMajor`,`method`,`rawHeaders`,`rawTrailers`,`setTimeout`,`socket`,`statusCode`,`statusMessage`,`trailers`,`url`];t.exports=(e,t)=>{if(t._readableState.autoDestroy)throw Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(n)),i={};for(let n of r)n in t||(i[n]={get(){let t=e[n];return typeof t==`function`?t.bind(e):t},set(t){e[n]=t},enumerable:!0,configurable:!1});return Object.defineProperties(t,i),e.once(`aborted`,()=>{t.destroy(),t.emit(`aborted`)}),e.once(`close`,()=>{e.complete&&t.readable?t.once(`end`,()=>{t.emit(`close`)}):t.emit(`close`)}),t}})),Xn=Z(((e,t)=>{var{Transform:n,PassThrough:r}=Q(`stream`),i=Q(`zlib`),a=Yn();t.exports=e=>{let t=(e.headers[`content-encoding`]||``).toLowerCase();if(![`gzip`,`deflate`,`br`].includes(t))return e;let o=t===`br`;if(o&&typeof i.createBrotliDecompress!=`function`)return e.destroy(Error(`Brotli is not supported on Node.js < 12`)),e;let s=!0,c=new n({transform(e,t,n){s=!1,n(null,e)},flush(e){e()}}),l=new r({autoDestroy:!1,destroy(t,n){e.destroy(),n(t)}}),u=o?i.createBrotliDecompress():i.createUnzip();return u.once(`error`,t=>{s&&!e.readable?l.end():l.destroy(t)}),a(e,l),e.pipe(c).pipe(u).pipe(l),l}})),Zn=Z(((e,t)=>{t.exports=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction==`function`)for(let[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}})),Qn=Z(((e,t)=>{var n=Q(`events`),r=Q(`tls`),i=Q(`http2`),a=Zn(),o=Symbol(`currentStreamsCount`),s=Symbol(`request`),c=Symbol(`cachedOriginSet`),l=Symbol(`gracefullyClosing`),u=`maxDeflateDynamicTableSize.maxSessionMemory.maxHeaderListPairs.maxOutstandingPings.maxReservedRemoteStreams.maxSendHeaderBlockLength.paddingStrategy.localAddress.path.rejectUnauthorized.minDHSize.ca.cert.clientCertEngine.ciphers.key.pfx.servername.minVersion.maxVersion.secureProtocol.crl.honorCipherOrder.ecdhCurve.dhparam.secureOptions.sessionIdContext`.split(`.`),d=(e,t,n)=>{let r=0,i=e.length;for(;r<i;){let a=r+i>>>1;n(e[a],t)?r=a+1:i=a}return r},f=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,p=(e,t)=>{for(let n of e)n[c].length<t[c].length&&n[c].every(e=>t[c].includes(e))&&n[o]+t[o]<=t.remoteSettings.maxConcurrentStreams&&g(n)},m=(e,t)=>{for(let n of e)t[c].length<n[c].length&&t[c].every(e=>n[c].includes(e))&&t[o]+n[o]<=n.remoteSettings.maxConcurrentStreams&&g(t)},h=({agent:e,isFree:t})=>{let n={};for(let r in e.sessions){let i=e.sessions[r].filter(e=>{let n=e[_.kCurrentStreamsCount]<e.remoteSettings.maxConcurrentStreams;return t?n:!n});i.length!==0&&(n[r]=i)}return n},g=e=>{e[l]=!0,e[o]===0&&e.close()},_=class e extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:r=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new a({maxSize:r})}static normalizeOrigin(e,t){return typeof e==`string`&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t=``;if(e)for(let n of u)e[n]&&(t+=`:${e[n]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let n=this.queue[e][t];this._sessionsCount<this.maxSessions&&!n.completed&&(n.completed=!0,n())}getSession(t,n,r){return new Promise((a,u)=>{Array.isArray(r)?(r=[...r],a()):r=[{resolve:a,reject:u}];let h=this.normalizeOptions(n),g=e.normalizeOrigin(t,n&&n.servername);if(g===void 0){for(let{reject:e}of r)e(TypeError("The `origin` argument needs to be a string or an URL object"));return}if(h in this.sessions){let e=this.sessions[h],t=-1,n=-1,i;for(let r of e){let e=r.remoteSettings.maxConcurrentStreams;if(e<t)break;if(r[c].includes(g)){let a=r[o];if(a>=e||r[l]||r.destroyed)continue;i||(t=e),a>n&&(i=r,n=a)}}if(i){if(r.length!==1){for(let{reject:e}of r)e(Error(`Expected the length of listeners to be 1, got ${r.length}.\nPlease report this to https://github.com/szmarczak/http2-wrapper/`));return}r[0].resolve(i);return}}if(h in this.queue){if(g in this.queue[h]){this.queue[h][g].listeners.push(...r),this._tryToCreateNewSession(h,g);return}}else this.queue[h]={};let _=()=>{h in this.queue&&this.queue[h][g]===v&&(delete this.queue[h][g],Object.keys(this.queue[h]).length===0&&delete this.queue[h])},v=()=>{let e=`${g}:${h}`,a=!1;try{let u=i.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(e),...n});u[o]=0,u[l]=!1;let y=()=>u[o]<u.remoteSettings.maxConcurrentStreams,b=!0;u.socket.once(`session`,t=>{this.tlsSessionCache.set(e,t)}),u.once(`error`,t=>{for(let{reject:e}of r)e(t);this.tlsSessionCache.delete(e)}),u.setTimeout(this.timeout,()=>{u.destroy()}),u.once(`close`,()=>{if(a){b&&this._freeSessionsCount--,this._sessionsCount--;let e=this.sessions[h];e.splice(e.indexOf(u),1),e.length===0&&delete this.sessions[h]}else{let e=Error(`Session closed without receiving a SETTINGS frame`);e.code=`HTTP2WRAPPER_NOSETTINGS`;for(let{reject:t}of r)t(e);_()}this._tryToCreateNewSession(h,g)});let x=()=>{if(h in this.queue&&y()){for(let e of u[c])if(e in this.queue[h]){let{listeners:t}=this.queue[h][e];for(;t.length!==0&&y();)t.shift().resolve(u);let n=this.queue[h];if(n[e].listeners.length===0&&(delete n[e],Object.keys(n).length===0)){delete this.queue[h];break}if(!y())break}}};u.on(`origin`,()=>{u[c]=u.originSet,y()&&(x(),p(this.sessions[h],u))}),u.once(`remoteSettings`,()=>{if(u.ref(),u.unref(),this._sessionsCount++,v.destroyed){let e=Error(`Agent has been destroyed`);for(let t of r)t.reject(e);u.destroy()}else{u[c]=u.originSet;{let e=this.sessions;if(h in e){let t=e[h];t.splice(d(t,u,f),0,u)}else e[h]=[u]}this._freeSessionsCount+=1,a=!0,this.emit(`session`,u),x(),_(),u[o]===0&&this._freeSessionsCount>this.maxFreeSessions&&u.close(),r.length!==0&&(this.getSession(g,n,r),r.length=0),u.on(`remoteSettings`,()=>{x(),p(this.sessions[h],u)})}}),u[s]=u.request,u.request=(e,t)=>{if(u[l])throw Error(`The session is gracefully closing. No new streams are allowed.`);let n=u[s](e,t);return u.ref(),++u[o],u[o]===u.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,n.once(`close`,()=>{if(b=y(),--u[o],!u.destroyed&&!u.closed&&(m(this.sessions[h],u),y()&&!u.closed)){b||=(this._freeSessionsCount++,!0);let e=u[o]===0;e&&u.unref(),e&&(this._freeSessionsCount>this.maxFreeSessions||u[l])?u.close():(p(this.sessions[h],u),x())}}),n}}catch(e){for(let t of r)t.reject(e);_()}};v.listeners=r,v.completed=!1,v.destroyed=!1,this.queue[h][g]=v,this._tryToCreateNewSession(h,g)})}request(e,t,n,r){return new Promise((i,a)=>{this.getSession(e,t,[{reject:a,resolve:e=>{try{i(e.request(n,r))}catch(e){a(e)}}}])})}createConnection(t,n){return e.connect(t,n)}static connect(e,t){t.ALPNProtocols=[`h2`];let n=e.port||443,i=e.hostname||e.host;return t.servername===void 0&&(t.servername=i),r.connect(n,i,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[o]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let n of t)n.destroy(e);for(let e of Object.values(this.queue))for(let t of Object.values(e))t.destroyed=!0;this.queue={}}get freeSessions(){return h({agent:this,isFree:!0})}get busySessions(){return h({agent:this,isFree:!1})}};_.kCurrentStreamsCount=o,_.kGracefullyClosing=l,t.exports={Agent:_,globalAgent:new _}})),$n=Z(((e,t)=>{var{Readable:n}=Q(`stream`);t.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage=``,this.httpVersion=`2.0`,this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners(`data`),this.resume())}_read(){this.req&&this.req._request.resume()}}})),er=Z(((e,t)=>{t.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname==`string`&&e.hostname.startsWith(`[`)?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||``}${e.search||``}`};return typeof e.port==`string`&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||``}:${e.password||``}`),t}})),tr=Z(((e,t)=>{t.exports=(e,t,n)=>{for(let r of n)e.on(r,(...e)=>t.emit(r,...e))}})),nr=Z(((e,t)=>{t.exports=e=>{switch(e){case`:method`:case`:scheme`:case`:authority`:case`:path`:return!0;default:return!1}}})),rr=Z(((e,t)=>{var n=(e,n,r)=>{t.exports[n]=class extends e{constructor(...e){super(typeof r==`string`?r:r(e)),this.name=`${super.name} [${n}]`,this.code=n}}};n(TypeError,`ERR_INVALID_ARG_TYPE`,e=>{let t=e[0].includes(`.`)?`property`:`argument`,n=e[1],r=Array.isArray(n);return r&&(n=`${n.slice(0,-1).join(`, `)} or ${n.slice(-1)}`),`The "${e[0]}" ${t} must be ${r?`one of`:`of`} type ${n}. Received ${typeof e[2]}`}),n(TypeError,`ERR_INVALID_PROTOCOL`,e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),n(Error,`ERR_HTTP_HEADERS_SENT`,e=>`Cannot ${e[0]} headers after they are sent to the client`),n(TypeError,`ERR_INVALID_HTTP_TOKEN`,e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),n(TypeError,`ERR_HTTP_INVALID_HEADER_VALUE`,e=>`Invalid value "${e[0]} for header "${e[1]}"`),n(TypeError,`ERR_INVALID_CHAR`,e=>`Invalid character in ${e[0]} [${e[1]}]`)})),ir=Z(((e,t)=>{var n=Q(`http2`),{Writable:r}=Q(`stream`),{Agent:i,globalAgent:a}=Qn(),o=$n(),s=er(),c=tr(),l=nr(),{ERR_INVALID_ARG_TYPE:u,ERR_INVALID_PROTOCOL:d,ERR_HTTP_HEADERS_SENT:f,ERR_INVALID_HTTP_TOKEN:p,ERR_HTTP_INVALID_HEADER_VALUE:m,ERR_INVALID_CHAR:h}=rr(),{HTTP2_HEADER_STATUS:g,HTTP2_HEADER_METHOD:_,HTTP2_HEADER_PATH:v,HTTP2_METHOD_CONNECT:y}=n.constants,b=Symbol(`headers`),x=Symbol(`origin`),S=Symbol(`session`),C=Symbol(`options`),w=Symbol(`flushedHeaders`),T=Symbol(`jobs`),E=/^[\^`\-\w!#$%&*+.|~]+$/,D=/[^\t\u0020-\u007E\u0080-\u00FF]/;t.exports=class extends r{constructor(e,t,n){super({autoDestroy:!1});let r=typeof e==`string`||e instanceof URL;if(r&&(e=s(e instanceof URL?e:new URL(e))),typeof t==`function`||t===void 0?(n=t,t=r?e:{...e}):t={...e,...t},t.h2session)this[S]=t.h2session;else if(t.agent===!1)this.agent=new i({maxFreeSessions:0});else if(t.agent===void 0||t.agent===null)typeof t.createConnection==`function`?(this.agent=new i({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=a;else if(typeof t.agent.request==`function`)this.agent=t.agent;else throw new u(`options.agent`,[`Agent-like Object`,`undefined`,`false`],t.agent);if(t.protocol&&t.protocol!==`https:`)throw new d(t.protocol,`https:`);let o=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,c=t.hostname||t.host||`localhost`;delete t.hostname,delete t.host,delete t.port;let{timeout:l}=t;if(t.timeout=void 0,this[b]=Object.create(null),this[T]=[],this.socket=null,this.connection=null,this.method=t.method||`GET`,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[e,n]of Object.entries(t.headers))this.setHeader(e,n);t.auth&&!(`authorization`in this[b])&&(this[b].authorization=`Basic `+Buffer.from(t.auth).toString(`base64`)),t.session=t.tlsSession,t.path=t.socketPath,this[C]=t,o===443?(this[x]=`https://${c}`,`:authority`in this[b]||(this[b][`:authority`]=c)):(this[x]=`https://${c}:${o}`,`:authority`in this[b]||(this[b][`:authority`]=`${c}:${o}`)),l&&this.setTimeout(l),n&&this.once(`response`,n),this[w]=!1}get method(){return this[b][_]}set method(e){e&&(this[b][_]=e.toUpperCase())}get path(){return this[b][v]}set path(e){e&&(this[b][v]=e)}get _mustNotHaveABody(){return this.method===`GET`||this.method===`HEAD`||this.method===`DELETE`}_write(e,t,n){if(this._mustNotHaveABody){n(Error(`The GET, HEAD and DELETE methods must NOT have a body`));return}this.flushHeaders();let r=()=>this._request.write(e,t,n);this._request?r():this[T].push(r)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{this._mustNotHaveABody?e():this._request.end(e)};this._request?t():this[T].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit(`abort`)),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[w]||this.destroyed)return;this[w]=!0;let e=this.method===y,t=t=>{if(this._request=t,this.destroyed){t.destroy();return}e||c(t,this,[`timeout`,`continue`,`close`,`error`]);let n=e=>(...t)=>{!this.writable&&!this.destroyed?e(...t):this.once(`finish`,()=>{e(...t)})};t.once(`response`,n((n,r,i)=>{let a=new o(this.socket,t.readableHighWaterMark);this.res=a,a.req=this,a.statusCode=n[g],a.headers=n,a.rawHeaders=i,a.once(`end`,()=>{this.aborted?(a.aborted=!0,a.emit(`aborted`)):(a.complete=!0,a.socket=null,a.connection=null)}),e?(a.upgrade=!0,this.emit(`connect`,a,t,Buffer.alloc(0))?this.emit(`close`):t.destroy()):(t.on(`data`,e=>{!a._dumped&&!a.push(e)&&t.pause()}),t.once(`end`,()=>{a.push(null)}),this.emit(`response`,a)||a._dump())})),t.once(`headers`,n(e=>this.emit(`information`,{statusCode:e[g]}))),t.once(`trailers`,n((e,t,n)=>{let{res:r}=this;r.trailers=e,r.rawTrailers=n}));let{socket:r}=t.session;this.socket=r,this.connection=r;for(let e of this[T])e();this.emit(`socket`,this.socket)};if(this[S])try{t(this[S].request(this[b]))}catch(e){this.emit(`error`,e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[x],this[C],this[b]))}catch(e){this.emit(`error`,e)}}}getHeader(e){if(typeof e!=`string`)throw new u(`name`,`string`,e);return this[b][e.toLowerCase()]}get headersSent(){return this[w]}removeHeader(e){if(typeof e!=`string`)throw new u(`name`,`string`,e);if(this.headersSent)throw new f(`remove`);delete this[b][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new f(`set`);if(typeof e!=`string`||!E.test(e)&&!l(e))throw new p(`Header name`,e);if(t===void 0)throw new m(t,e);if(D.test(t))throw new h(`header content`,e);this[b][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let n=()=>this._request.setTimeout(e,t);return this._request?n():this[T].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}})),ar=Z(((e,t)=>{var n=Q(`tls`);t.exports=(e={},t=n.connect)=>new Promise((n,r)=>{let i=!1,a,o=async()=>{await c,a.off(`timeout`,s),a.off(`error`,r),e.resolveSocket?(n({alpnProtocol:a.alpnProtocol,socket:a,timeout:i}),i&&(await Promise.resolve(),a.emit(`timeout`))):(a.destroy(),n({alpnProtocol:a.alpnProtocol,timeout:i}))},s=async()=>{i=!0,o()},c=(async()=>{try{a=await t(e,o),a.on(`error`,r),a.once(`timeout`,s)}catch(e){r(e)}})()})})),or=Z(((e,t)=>{var n=Q(`net`);t.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(t=r.startsWith(`[`)?r.indexOf(`]`)===-1?r:r.slice(1,-1):r.split(`:`,1)[0]),n.isIP(t)?``:t}})),sr=Z(((e,t)=>{var n=Q(`http`),r=Q(`https`),i=ar(),a=Zn(),o=ir(),s=or(),c=er(),l=new a({maxSize:100}),u=new Map,d=(e,t,n)=>{t._httpMessage={shouldKeepAlive:!0};let r=()=>{e.emit(`free`,t,n)};t.on(`free`,r);let i=()=>{e.removeSocket(t,n)};t.on(`close`,i);let a=()=>{e.removeSocket(t,n),t.off(`close`,i),t.off(`free`,r),t.off(`agentRemove`,a)};t.on(`agentRemove`,a),e.emit(`free`,t,n)},f=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!l.has(t)){if(u.has(t))return(await u.get(t)).alpnProtocol;let{path:n,agent:a}=e;e.path=e.socketPath;let o=i(e);u.set(t,o);try{let{socket:i,alpnProtocol:s}=await o;if(l.set(t,s),e.path=n,s===`h2`)i.destroy();else{let{globalAgent:t}=r,n=r.Agent.prototype.createConnection;a?a.createConnection===n?d(a,i,e):i.destroy():t.createConnection===n?d(t,i,e):i.destroy()}return u.delete(t),s}catch(e){throw u.delete(t),e}}return l.get(t)};t.exports=async(e,t,i)=>{if((typeof e==`string`||e instanceof URL)&&(e=c(new URL(e))),typeof t==`function`&&(i=t,t=void 0),t={ALPNProtocols:[`h2`,`http/1.1`],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||`https:`;let a=t.protocol===`https:`;t.host=t.hostname||t.host||`localhost`,t.session=t.tlsSession,t.servername=t.servername||s(t),t.port=t.port||(a?443:80),t._defaultAgent=a?r.globalAgent:n.globalAgent;let l=t.agent;if(l){if(l.addRequest)throw Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=l[a?`https`:`http`]}return a&&await f(t)===`h2`?(l&&(t.agent=l.http2),new o(t,i)):n.request(t,i)},t.exports.protocolCache=l})),cr=Z(((e,t)=>{var n=Q(`http2`),r=Qn(),i=ir(),a=$n(),o=sr(),s=(e,t,n)=>new i(e,t,n),c=(e,t,n)=>{let r=new i(e,t,n);return r.end(),r};t.exports={...n,ClientRequest:i,IncomingMessage:a,...r,request:s,get:c,auto:o}})),lr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=kn();e.default=e=>t.default.nodeStream(e)&&t.default.function_(e.getBoundary)})),ur=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Q(`fs`),n=Q(`util`),r=kn(),i=lr(),a=n.promisify(t.stat);e.default=async(e,o)=>{if(o&&`content-length`in o)return Number(o[`content-length`]);if(!e)return 0;if(r.default.string(e))return Buffer.byteLength(e);if(r.default.buffer(e))return e.length;if(i.default(e))return n.promisify(e.getLength.bind(e))();if(e instanceof t.ReadStream){let{size:t}=await a(e.path);return t===0?void 0:t}}})),dr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e,t,n){let r={};for(let i of n)r[i]=(...e)=>{t.emit(i,...e)},e.on(i,r[i]);return()=>{for(let t of n)e.off(t,r[t])}}e.default=t})),fr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=()=>{let e=[];return{once(t,n,r){t.once(n,r),e.push({origin:t,event:n,fn:r})},unhandleAll(){for(let t of e){let{origin:e,event:n,fn:r}=t;e.removeListener(n,r)}e.length=0}}}})),pr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TimeoutError=void 0;var t=Q(`net`),n=fr(),r=Symbol(`reentry`),i=()=>{},a=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name=`TimeoutError`,this.code=`ETIMEDOUT`}};e.TimeoutError=a,e.default=(e,o,s)=>{if(r in e)return i;e[r]=!0;let c=[],{once:l,unhandleAll:u}=n.default(),d=(e,t,n)=>{var r;let i=setTimeout(t,e,e,n);(r=i.unref)==null||r.call(i);let a=()=>{clearTimeout(i)};return c.push(a),a},{host:f,hostname:p}=s,m=(t,n)=>{e.destroy(new a(t,n))},h=()=>{for(let e of c)e();u()};if(e.once(`error`,t=>{if(h(),e.listenerCount(`error`)===0)throw t}),e.once(`close`,h),l(e,`response`,e=>{l(e,`end`,h)}),o.request!==void 0&&d(o.request,m,`request`),o.socket!==void 0){let t=()=>{m(o.socket,`socket`)};e.setTimeout(o.socket,t),c.push(()=>{e.removeListener(`timeout`,t)})}return l(e,`socket`,n=>{let{socketPath:r}=e;if(n.connecting){let e=!!(r??t.isIP(p??f??``)!==0);if(o.lookup!==void 0&&!e&&n.address().address===void 0){let e=d(o.lookup,m,`lookup`);l(n,`lookup`,e)}if(o.connect!==void 0){let t=()=>d(o.connect,m,`connect`);e?l(n,`connect`,t()):l(n,`lookup`,e=>{e===null&&l(n,`connect`,t())})}o.secureConnect!==void 0&&s.protocol===`https:`&&l(n,`connect`,()=>{let e=d(o.secureConnect,m,`secureConnect`);l(n,`secureConnect`,e)})}if(o.send!==void 0){let t=()=>d(o.send,m,`send`);n.connecting?l(n,`connect`,()=>{l(e,`upload-complete`,t())}):l(e,`upload-complete`,t())}}),o.response!==void 0&&l(e,`upload-complete`,()=>{let t=d(o.response,m,`response`);l(e,`response`,t)}),h}})),mr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=kn();e.default=e=>{e=e;let n={protocol:e.protocol,hostname:t.default.string(e.hostname)&&e.hostname.startsWith(`[`)?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||``}${e.search||``}`};return t.default.string(e.port)&&e.port.length>0&&(n.port=Number(e.port)),(e.username||e.password)&&(n.auth=`${e.username||``}:${e.password||``}`),n}})),hr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Q(`url`),n=[`protocol`,`host`,`hostname`,`port`,`pathname`,`search`];e.default=(e,r)=>{if(r.path){if(r.pathname)throw TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(r.search)throw TypeError("Parameters `path` and `search` are mutually exclusive.");if(r.searchParams)throw TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(r.search&&r.searchParams)throw TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!r.protocol)throw TypeError(`No URL protocol specified`);e=`${r.protocol}//${r.hostname??r.host??``}`}let i=new t.URL(e);if(r.path){let e=r.path.indexOf(`?`);e===-1?r.pathname=r.path:(r.pathname=r.path.slice(0,e),r.search=r.path.slice(e+1)),delete r.path}for(let e of n)r[e]&&(i[e]=r[e].toString());return i}})),gr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e==`object`?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e==`object`?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e==`object`?this.weakMap.has(e):this.map.has(e)}}})),_r=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=async e=>{let t=[],n=0;for await(let r of e)t.push(r),n+=Buffer.byteLength(r);return Buffer.isBuffer(t[0])?Buffer.concat(t,n):Buffer.from(t.join(``))}})),vr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dnsLookupIpVersionToFamily=e.isDnsLookupIpVersion=void 0;var t={auto:0,ipv4:4,ipv6:6};e.isDnsLookupIpVersion=e=>e in t,e.dnsLookupIpVersionToFamily=n=>{if(e.isDnsLookupIpVersion(n))return t[n];throw Error(`Invalid DNS lookup IP version`)}})),yr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isResponseOk=void 0,e.isResponseOk=e=>{let{statusCode:t}=e,n=e.request.options.followRedirect?299:399;return t>=200&&t<=n||t===304}})),br=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=new Set;e.default=e=>{t.has(e)||(t.add(e),process.emitWarning(`Got: ${e}`,{type:`DeprecationWarning`}))}})),xr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=kn();e.default=(e,n)=>{if(t.default.null_(e.encoding))throw TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");t.assert.any([t.default.string,t.default.undefined],e.encoding),t.assert.any([t.default.boolean,t.default.undefined],e.resolveBodyOnly),t.assert.any([t.default.boolean,t.default.undefined],e.methodRewriting),t.assert.any([t.default.boolean,t.default.undefined],e.isStream),t.assert.any([t.default.string,t.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType=`text`);let{retry:r}=e;if(e.retry=n?{...n.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},t.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(e=>e.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):t.default.number(r)&&(e.retry.limit=r),t.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(t.default.number))),t.default.object(e.pagination)){n&&(e.pagination={...n.pagination,...e.pagination});let{pagination:r}=e;if(!t.default.function_(r.transform))throw Error("`options.pagination.transform` must be implemented");if(!t.default.function_(r.shouldContinue))throw Error("`options.pagination.shouldContinue` must be implemented");if(!t.default.function_(r.filter))throw TypeError("`options.pagination.filter` must be implemented");if(!t.default.function_(r.paginate))throw Error("`options.pagination.paginate` must be implemented")}return e.responseType===`json`&&e.headers.accept===void 0&&(e.headers.accept=`application/json`),e}})),Sr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.retryAfterStatusCodes=void 0,e.retryAfterStatusCodes=new Set([413,429,503]),e.default=({attemptCount:e,retryOptions:t,error:n,retryAfter:r})=>{if(e>t.limit)return 0;let i=t.methods.includes(n.options.method),a=t.errorCodes.includes(n.code),o=n.response&&t.statusCodes.includes(n.response.statusCode);if(!i||!a&&!o)return 0;if(n.response){if(r)return t.maxRetryAfter===void 0||r>t.maxRetryAfter?0:r;if(n.response.statusCode===413)return 0}let s=Math.random()*100;return 2**(e-1)*1e3+s}})),Cr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.UnsupportedProtocolError=e.ReadError=e.TimeoutError=e.UploadError=e.CacheError=e.HTTPError=e.MaxRedirectsError=e.RequestError=e.setNonEnumerableProperties=e.knownHookEvents=e.withoutBody=e.kIsNormalizedAlready=void 0;var t=Q(`util`),n=Q(`stream`),r=Q(`fs`),i=Q(`url`),a=Q(`http`),o=Q(`http`),s=Q(`https`),c=Mn(),l=Nn(),u=Jn(),d=Xn(),f=cr(),p=Hn(),m=kn(),h=ur(),g=lr(),_=dr(),v=pr(),y=mr(),b=hr(),x=gr(),S=_r(),C=vr(),w=yr(),T=br(),E=xr(),D=Sr(),O,k=Symbol(`request`),A=Symbol(`response`),j=Symbol(`responseSize`),M=Symbol(`downloadedSize`),N=Symbol(`bodySize`),P=Symbol(`uploadedSize`),F=Symbol(`serverResponsesPiped`),I=Symbol(`unproxyEvents`),L=Symbol(`isFromCache`),R=Symbol(`cancelTimeouts`),z=Symbol(`startedReading`),B=Symbol(`stopReading`),V=Symbol(`triggerRead`),H=Symbol(`body`),ee=Symbol(`jobs`),U=Symbol(`originalResponse`),te=Symbol(`retryTimeout`);e.kIsNormalizedAlready=Symbol(`isNormalizedAlready`);var ne=m.default.string(process.versions.brotli);e.withoutBody=new Set([`GET`,`HEAD`]),e.knownHookEvents=[`init`,`beforeRequest`,`beforeRedirect`,`beforeError`,`beforeRetry`,`afterResponse`];function re(e){for(let t in e){let n=e[t];if(!m.default.string(n)&&!m.default.number(n)&&!m.default.boolean(n)&&!m.default.null_(n)&&!m.default.undefined(n))throw TypeError(`The \`searchParams\` value '${String(n)}' must be a string, number, boolean or null`)}}function ie(e){return m.default.object(e)&&!(`statusCode`in e)}var W=new x.default,ae=async e=>new Promise((t,n)=>{let r=e=>{n(e)};e.pending||t(),e.once(`error`,r),e.once(`ready`,()=>{e.off(`error`,r),t()})}),oe=new Set([300,301,302,303,304,307,308]),G=[`context`,`body`,`json`,`form`];e.setNonEnumerableProperties=(e,t)=>{let n={};for(let t of e)if(t)for(let e of G)e in t&&(n[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,n)};var K=class extends Error{constructor(e,t,n){if(super(e),Error.captureStackTrace(this,this.constructor),this.name=`RequestError`,this.code=t.code??`ERR_GOT_REQUEST_ERROR`,n instanceof he?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[A]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=this.request?.timings,m.default.string(t.stack)&&m.default.string(this.stack)){let e=this.stack.indexOf(this.message)+this.message.length,n=this.stack.slice(e).split(`
11
+ `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.log(`${e}/${t} ${tt}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new Qe(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new Qe(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new Qe(`option \`${t.rawName}\` value is missing`)}}}},rt=class extends nt{constructor(e){super(`@@global@@`,``,{},e)}},it=Object.assign,at=class extends O{constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new rt(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new nt(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e=et,{run:t=!0}={}){this.rawArgs=e,this.name||=e[1]?Xe(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e=it(it({},r),{args:r.args.slice(1)});this.setParsedInfo(e,t,i),this.emit(`command:${i}`,t)}}if(n){for(let t of this.commands)if(t.name===``){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.emit(`command:!`,t)}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.emit(`command:*`),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],r=We(n),i=[],a=e.indexOf(`--`);a>-1&&(i=e.slice(a+1),e=e.slice(0,a));let o=Ve(e,r);o=Object.keys(o).reduce((e,t)=>it(it({},e),{[Ze(t)]:o[t]}),{_:[]});let s=o._,c={"--":i},l=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,u=Object.create(null);for(let e of n){if(!l&&e.config.default!==void 0)for(let t of e.names)c[t]=e.config.default;Array.isArray(e.config.type)&&u[e.name]===void 0&&(u[e.name]=Object.create(null),u[e.name].shouldTransform=!0,u[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(o))e!==`_`&&(Je(c,e.split(`.`),o[e]),Ye(c,u));return{args:s,options:c}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}},ot=(e=``)=>new at(e),q={rocket:`🚀`,pending:`⏳`,success:`✅`,warn:`❗`,skip:`⏭️`,running:`🟢`,stopped:`🛑`,idle:`💤`,error:`❌`,gateway:`🌐`,webui:`💻`,folder:`📂`,status:`📋`,question:`❓`};function J(e,t){F(t?`${t} ${e}`:e)}function st(e){L(`${q.error} ${e}`)}function ct(e){R(`${q.pending} ${e}`)}function lt(){R(` ✓
12
+ `)}function ut(){R(` ✗
13
+ `)}function Y(e,t,n){F(` ${e} ${t} ${n}`)}async function dt(e){try{await e()}catch(e){L(``),st(`错误:${e instanceof Error?e.message:String(e)}`),process.exit(1)}}var ft=`server`,pt=`ezllm`;`${pt}`,`${pt}`;function mt(e){try{return process.kill(e,0),!0}catch(e){return e?.code===`EPERM`}}var ht={out:`out.log`,err:`err.log`};function gt(e,t=ht){let n=i(e,`logs`);return h(n,{recursive:!0}),{out:g(i(n,t.out),`a`),err:g(i(n,t.err),`a`)}}function _t(e){let{out:t,err:n}=gt(e.appDir,e.logFiles),r=A(e.interpreter??process.execPath,[e.entryJs,...e.args??[]],{detached:!0,stdio:[`ignore`,t,n],env:{...process.env,...e.env},windowsHide:!0});return r.on(`error`,t=>{L(`[ezllm] 拉起进程失败(解释器 ${e.interpreter??process.execPath},脚本 ${e.entryJs}):${t.message}`)}),r.unref(),r.pid??0}function vt(e){let{out:t,err:n}=gt(e.appDir,e.logFiles);return A(e.interpreter??process.execPath,[e.entryJs,...e.args??[]],{stdio:[`ignore`,t,n,`ipc`],env:{...process.env,...e.env},windowsHide:!0})}var yt=/\.(?:com|exe)$/i,bt=/node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i,xt=/([()\][%!^"`<>&|;, *?])/g;function St(e,t,n=w()){let r=(e,t)=>{let n=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`);return n=n.replace(/(?=(\\+?)?)\1$/,`$1$1`),n=`"${n}"`,n=n.replace(xt,`^$1`),t&&(n=n.replace(xt,`^$1`)),n};if(n!==`win32`||yt.test(e))return{command:e,args:[...t],windowsVerbatimArguments:!1};let i=l.normalize(e),a=i.replace(xt,`^$1`),o=bt.test(i),s=t.map(e=>r(e,o));return{command:process.env.comspec??`cmd.exe`,args:[`/d`,`/s`,`/c`,`"${[a,...s].join(` `)}"`],windowsVerbatimArguments:!0}}function Ct(e){let{out:t,err:n}=gt(e.appDir,e.logFiles),r=St(e.command,e.args??[]);return A(r.command,r.args,{...e.cwd===void 0?{}:{cwd:e.cwd},stdio:[`ignore`,t,n,`ipc`],env:{...process.env,...e.env},windowsHide:!0,windowsVerbatimArguments:r.windowsVerbatimArguments})}async function wt(e){if(!mt(e))return!0;if(w()===`win32`)A(`taskkill`,[`/PID`,String(e),`/T`,`/F`],{stdio:`ignore`,windowsHide:!0}).on(`error`,t=>{I(`[ezllm] taskkill 执行失败(pid ${String(e)}):${t.message}`)});else try{process.kill(-e,`SIGTERM`)}catch{try{process.kill(e,`SIGTERM`)}catch{}}let t=Date.now()+5e3;for(;Date.now()<t;){if(!mt(e))return!0;await new Promise(e=>setTimeout(e,100))}return!mt(e)}var Tt=`ezllm-autostart.vbs`,Et=`ezllm-autostart.cmd`,Dt=`com.ezllm.autostart`,Ot=`ezllm.service`,kt=`autostart.opt-out`,At=`ezllm-v2`,jt=`Auto-generated by "npx ezllm install" (${At}). Managed automatically by ezllm. To remove it, run \`npx ezllm uninstall\`.`,Mt=`ELLM_`,Nt=new Set([`WEBUI_USERNAME`,`WEBUI_PASSWORD`,`HOST`]),Pt=new Set([`ELLM_PORT`,`ELLM_NODE_MIRROR`,`ELLM_NODE_BIN`]);function Ft(e=process.env){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(Pt.has(n)||(n.startsWith(Mt)||Nt.has(n))&&(t[n]=r));return t}function It(e){return i(e,kt)}function Lt(){return i((()=>{let e=process.env.APPDATA;if(!e)throw Error(`无法定位启动文件夹(APPDATA 环境变量未设置)。`);return i(e,`Microsoft`,`Windows`,`Start Menu`,`Programs`,`Startup`)})(),Tt)}function Rt(){return i(C(),`Library`,`LaunchAgents`,`${Dt}.plist`)}function zt(){return i(C(),`.config`,`systemd`,`user`,Ot)}var Bt=3e4;function Vt(e,t){return new Promise(n=>{let r=A(e,t,{stdio:`ignore`,shell:!1}),i=setTimeout(()=>{r.kill(),n(124)},Bt),a=e=>{clearTimeout(i),n(e)};r.on(`error`,()=>a(127)),r.on(`exit`,e=>a(e??1))})}var Ht={win32:{itemPath:Lt,on:Jt,off:Zt},darwin:{itemPath:Rt,on:Yt,off:Qt},linux:{itemPath:zt,on:Xt,off:$t}};function Ut(e){return Ht[e]??null}function Wt(e){let t=Ut(e);if(!t)throw Error(`暂不支持的平台: ${e}。`);return t}function Gt(e,t){return[e,t.entryJs,...t.args??[]]}function Kt(e){return i(e,`logs`,`autostart.log`)}async function qt(e,t,n=Vt){try{S(e,t,`utf16le`);return}catch(r){if(await n(`powershell`,[`-NoProfile`,`-Command`,`$bytes=[Convert]::FromBase64String('${Buffer.from(t,`utf16le`).toString(`base64`)}');[IO.File]::WriteAllBytes('${e.replace(/'/g,`''`)}', $bytes)`])!==0)throw r}}async function Jt(e,t){let n=(e,t)=>{let n=/["%\r\n]/;if(n.test(e)||n.test(t))throw Error(`环境变量 ${e} 的键/值含 cmd 无法安全转义的字符(" % 或换行),已拒绝写入自启项;请调整该变量后重试 npx ezllm install`)},r=(e,t)=>{let r=Kt(t.appDir);return[`@echo off`,`chcp 65001 >nul`,`rem ${jt}`,...Object.entries(t.env).map(([e,t])=>(n(e,t),`set "${e}=${t}"`)),`>> "${r}" echo [%date% %time%] autostart launching.`,`${Gt(e,t).map(e=>`"${e}"`).join(` `)} >> "${r}" 2>&1`,``].join(`\r
14
+ `)},a=e=>[`' ${jt}`,`CreateObject("WScript.Shell").Run """${e}""", 0, False`,``].join(`\r
15
+ `),o=Lt(),s=i(t.appDir,Et);return S(s,r(e,t),`utf-8`),await qt(o,`\uFEFF${a(s)}`),o}async function Yt(e,t){let n=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`),r=(e,t)=>{let r=Kt(t.appDir),i=Object.entries(t.env).map(([e,t])=>` <string>${n(e)}</string>\n <string>${n(t)}</string>`).join(`
16
+ `),a=Gt(e,t).map(e=>` <string>${n(e)}</string>`).join(`
17
+ `);return[`<?xml version="1.0" encoding="UTF-8"?>`,`<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">`,`<!-- ${At}: launch daemon -->`,`<plist version="1.0">`,`<dict>`,` <key>Label</key><string>${n(Dt)}</string>`,` <key>ProgramArguments</key>`,` <array>`,a,` </array>`,` <key>EnvironmentVariables</key>`,` <dict>`,i,` </dict>`,` <key>RunAtLoad</key><true/>`,` <key>StandardOutPath</key><string>${n(r)}</string>`,` <key>StandardErrorPath</key><string>${n(r)}</string>`,`</dict>`,`</plist>`,``].join(`
18
+ `)},i=Rt();S(i,r(e,t),`utf-8`),await Vt(`launchctl`,[`unload`,i]);let a=await Vt(`launchctl`,[`load`,i]);if(a!==0)throw Error(`launchctl load 失败(退出码 ${String(a)})。请手动执行: launchctl load "${i}"`);return i}async function Xt(e,t){let n=(e,t)=>{let n=Object.entries(t.env).map(([e,t])=>`Environment="${e}=${t.replace(/"/g,`\\"`)}"`).join(`
19
+ `),r=Gt(e,t).map(e=>`"${e.replace(/"/g,`\\"`)}"`).join(` `);return[`[Unit]`,`Description=ezllm autostart (${At}, launch daemon)`,`After=default.target`,``,`[Service]`,`Type=simple`,`ExecStart=${r}`,n,`Restart=on-failure`,`RestartSec=3`,``,`[Install]`,`WantedBy=default.target`,``].join(`
20
+ `)},i=zt();h(r(i),{recursive:!0}),S(i,n(e,t),`utf-8`);let a=await Vt(`systemctl`,[`--user`,`daemon-reload`]);if(a!==0)throw Error(`systemctl --user daemon-reload 失败(退出码 ${String(a)})。当前环境可能无 systemd(WSL/容器),请手动启用或删除: ${i}`);let o=await Vt(`systemctl`,[`--user`,`enable`,Ot]);if(o!==0)throw Error(`systemctl --user enable 失败(退出码 ${String(o)})。请手动执行: systemctl --user enable ${Ot}`);return i}async function Zt(e){let t=Lt(),n=m(t);return b(t,{force:!0}),b(i(e,Et),{force:!0}),n}async function Qt(){let e=Rt();return m(e)?(await Vt(`launchctl`,[`unload`,e]),b(e,{force:!0}),!0):!1}async function $t(){let e=zt();return m(e)?(await Vt(`systemctl`,[`--user`,`disable`,Ot]),b(e,{force:!0}),await Vt(`systemctl`,[`--user`,`daemon-reload`]),!0):!1}function en(e,t){if(e.includes(t))return!0;let n=t.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`);return e.includes(n)?!0:e.includes(t.replace(/"/g,`\\"`))}function tn(e,t){let n=()=>Ut(w())?.itemPath()??null,r=e=>{let t=_(e);return t.length>=2&&t[0]===255&&t[1]===254?t.toString(`utf16le`).slice(1):t.toString(`utf-8`)},a=n(),o=!1;if(a&&m(a))try{let e=r(a);if(o=e.includes(At),o&&t!==void 0){let n=[t.nodePath,t.entryJs,...t.args??[]];if(w()===`win32`){let r=i(t.appDir,Et),a=m(r)?_(r,`utf-8`):``;o=e.includes(r)&&a.includes(At)&&n.every(e=>en(a,e))}else o=n.every(t=>en(e,t))}}catch{}return{platform:w(),enabled:o,itemPath:a,optOut:m(It(e))}}async function nn(e){let t=Wt(w());h(i(e.appDir,`logs`),{recursive:!0});let n=await t.on(e.nodePath,e);return b(It(e.appDir),{force:!0}),{itemPath:n}}async function rn(e){let t=await Wt(w()).off(e.appDir);return h(e.appDir,{recursive:!0}),S(It(e.appDir),new Date().toISOString(),`utf-8`),{removed:t}}var X={ping:`ping`,status:`status`,childStart:`child.start`,childStop:`child.stop`,childRestart:`child.restart`,daemonStop:`daemon.stop`};function an(e){return e instanceof Error?e.message:String(e)}var on=1e4,sn=2e4,cn=3e5,ln=`daemon`,un=class extends Error{stage;pid;constructor(e,t,n){super(t),this.name=`DaemonRestartError`,this.stage=e,this.pid=n}},dn=class{#e;#t;#n=null;#r={};#i=null;#a=ln;constructor(e){this.#e=e,this.#t=e.appDir}configure(e){this.#n=e.daemonJs??null,this.#r=e.env??{},this.#i=e.logFiles??null,this.#a=e.logPrefix??ln}#o(e=1e3){return this.#e.control.isReachable({timeoutMs:e})}#s(e,t={},n){return this.#e.control.request(e,t,n===void 0?{}:{timeoutMs:n})}#c(){return this.#i??{out:`${this.#a}.out.log`,err:`${this.#a}.err.log`}}#l(){return i(this.#t,`logs`,this.#c().err)}async isRunning(){return this.#o()}async status(){return await this.#o()?this.#s(X.status):null}async childStatus(e){return(await this.status())?.children[e]??null}async call(e,t={},n){return this.#s(e,t,n||void 0)}async startChild(e){await this.#g();let t=await this.status();return{...await this.#s(X.childStart,{name:e},cn),alreadyRunning:t?.children[e]!=null}}async stopChild(e){await this.#g();let t=await this.#s(X.childStop,{name:e});return this.#d(t)}async restartChild(e){await this.#g();let t=await this.#s(X.childRestart,{name:e},cn);if(`stopped`in t)throw Error(`停止旧服务失败(pid ${String(t.pid??`?`)} 可能仍存活),已中止重启。请检查该进程后重试。`);return t}async shutdown(){if(await this.#o()){let e=await this.#u(on);if(e?.kind===`command`)throw e.error;return e?.kind===`kill`?{stopped:!1,reason:`kill-failed`,pid:e.pid}:{stopped:!0}}let e=this.#e.control.readInfo(),t=this.#e.control.liveChildPids();if(t.length>0){for(let e of t)if(!await wt(e))return{stopped:!1,reason:`kill-failed`,pid:e};return e&&this.#e.control.clearInfo(e.pid),{stopped:!0}}return e&&this.#e.control.clearInfo(e.pid),{stopped:!1,reason:`not-running`}}async restartDaemon(e={}){let t=e.stopTimeoutMs??on,n=e.startTimeoutMs??sn;if(await this.#o()){let e=await this.#u(t);if(e?.kind===`command`)throw new un(`stop`,an(e.error));if(e?.kind===`kill`)throw new un(`stop`,`停止旧主进程失败(pid ${String(e.pid)} 可能仍存活),已中止。新版本可能已装好,请手工结束该进程后重试。`,e.pid)}else await this.#p();let r=await this.#h(n);if(r!==null)throw new un(`spawn`,r);let i=Date.now()+cn;for(;Date.now()<i;){try{let t=await this.status(),n=t!==null&&Object.values(t.children).some(e=>e!==null);if(t!==null&&n&&(!e.expectVersion||t.version===e.expectVersion))return t}catch{}await this.#_(100)}throw new un(`spawn`,`新主进程已启动,但未在时限内接管子进程或版本不匹配`)}async#u(e){let t=null;try{let e=await this.#s(X.ping);t=typeof e?.pid==`number`?e.pid:null}catch{}try{await this.#s(X.daemonStop)}catch(e){return t===null||mt(t)?{kind:`command`,error:e}:null}return t!==null&&!await this.#f(t,e)&&!await wt(t)?{kind:`kill`,pid:t}:null}#d(e){return e.stopped?{stopped:!0}:e.pid===null?{stopped:!1,reason:`not-running`}:{stopped:!1,reason:`kill-failed`,pid:e.pid}}async#f(e,t=on){let n=Date.now()+t;for(;Date.now()<n;){if(!mt(e))return!0;await this.#_(100)}return!mt(e)}async#p(){let e=this.#e.control.readInfo(),t=this.#e.control.liveChildPids();for(let e of t)await wt(e);e&&t.length>0&&this.#e.control.clearInfo(e.pid)}async#m(){let e=this.#n;if(!e)throw Error(`主进程入口未配置:请经 new Daemon(appDir).configure({ daemonJs }) 注入本包 daemon 产物路径`);if(!m(e))throw Error(`未找到主进程入口:${e}(安装可能不完整,可执行 ${this.#a} install 修复)`);let t=await this.#e.interpreter();return _t({entryJs:e,appDir:this.#t,env:this.#r,interpreter:t,logFiles:this.#c()})}async#h(e){if(await this.#m()===0)return`拉起主进程失败(未获得进程号)。请查看日志:${this.#l()}`;let t=Date.now()+e;for(;Date.now()<t;){if(await this.#o(500))return null;await this.#_(200)}return`主进程在 ${String(Math.round(e/1e3))}s 内未启动。请查看日志:${this.#l()}`}async#g(){if(await this.#o())return;let e=await this.#h(sn);if(e!==null)throw Error(e)}#_(e){return new Promise(t=>setTimeout(t,e))}};function fn(e){let t=e.indexOf(`
21
+ `);return t<0?null:{line:e.slice(0,t),rest:e.slice(t+1)}}var pn=class{appDir;endpoint;constructor(e){this.appDir=e,this.endpoint=this.#e()}#e(){return w()===`win32`?`\\\\.\\pipe\\daemon-${E(`sha1`).update(this.appDir.toLowerCase()).digest(`hex`).slice(0,12)}`:i(this.appDir,`daemon.sock`)}request(e,t={},n={}){let r=n.timeoutMs??3e4,i={id:1,cmd:e,args:t};return new Promise((t,n)=>{let a=M(this.endpoint),o=``,s=!1,c=e=>{s||(s=!0,clearTimeout(l),a.destroy(),e())},l=setTimeout(()=>c(()=>n(Error(`控制通道超时(${e},${String(r)}ms)`))),r);a.setEncoding(`utf-8`),a.on(`connect`,()=>a.write(`${JSON.stringify(i)}\n`)),a.on(`data`,r=>{o+=r;let i=fn(o);if(i===null)return;let a;try{a=JSON.parse(i.line)}catch{c(()=>n(Error(`控制通道响应不是合法 JSON(${e})`)));return}c(()=>a.ok?t(a.data):n(Error(a.error??`${e} 失败`)))}),a.on(`error`,e=>c(()=>n(e))),a.on(`close`,()=>c(()=>n(Error(`控制通道已关闭(${e} 未收到响应)`))))})}async isReachable(e={}){try{return await this.request(X.ping,{},{timeoutMs:e.timeoutMs??1e3}),!0}catch{return!1}}async serve(e){let t=N(t=>{let n=``;t.setEncoding(`utf-8`),t.on(`error`,()=>t.destroy()),t.on(`data`,r=>{n+=r;let i=fn(n);i!==null&&(n=i.rest,(async()=>{let n;try{n=JSON.parse(i.line)}catch{t.end();return}try{let r=await e(n.cmd,n.args??{});t.end(`${JSON.stringify({id:n.id,ok:!0,data:r})}\n`)}catch(e){let r=an(e);t.end(`${JSON.stringify({id:n.id,ok:!1,error:r})}\n`)}})())})});try{await this.#t(t)}catch(e){if(w()!==`win32`&&e.code===`EADDRINUSE`)b(this.endpoint,{force:!0}),await this.#t(t);else throw e}return{endpoint:this.endpoint,close:()=>new Promise(e=>{t.close(()=>e())})}}#t(e){return new Promise((t,n)=>{let r=t=>{e.removeListener(`listening`,i),n(t)},i=()=>{e.removeListener(`error`,r),t()};e.once(`error`,r),e.once(`listening`,i),e.listen(this.endpoint)})}get infoPath(){return i(this.appDir,`daemon.json`)}readInfo(){try{let e=JSON.parse(_(this.infoPath,`utf-8`));return typeof e?.pid==`number`?e:null}catch{return null}}liveChildPids(e){let t=Object.values(this.readInfo()?.children??{}).map(e=>e?.pid).filter(t=>typeof t==`number`&&t!==e);return[...new Set(t)].filter(e=>mt(e))}writeInfo(e){h(this.appDir,{recursive:!0}),je(this.infoPath,e)}clearInfo(e){let t=this.readInfo();if(!(t&&t.pid!==e))try{b(this.infoPath,{force:!0})}catch{}}},mn=3e3,hn=class{name;#e;#t;#n;#r=null;#i=null;#a=null;#o=!1;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n,this.name=t.name}get snapshot(){return this.#i?{...this.#i}:null}get alive(){return this.#i!==null&&mt(this.#i.pid)}async start(){return this.alive?this.snapshot:(this.#a||=this.#c().finally(()=>{this.#a=null}),this.#a)}async stop(e){let t=this.#r,n=this.#i?.pid??t?.pid??null;if(!t||n===null)return this.#s(),{stopped:!0,pid:null};this.#o=!0,this.#n.log(`正在停止 ${this.name}(pid ${String(n)},${e})...`);let r=new Promise(e=>{t.once(`exit`,()=>e())});t.kill();let i=await wt(n);i||this.#n.log(`警告:${this.name} 进程(pid ${String(n)})终止未确认,可能仍占用端口`);let a,o=await Promise.race([r.then(()=>!0),new Promise(e=>{a=setTimeout(()=>e(!1),mn)})]);return clearTimeout(a),o||(this.#n.log(`警告:${this.name}(pid ${String(n)})退出事件未在 ${String(mn)}ms 内确认`),this.#s()),{stopped:i&&o,pid:n}}send(e){try{return this.#r?.send?.(e),!0}catch{return!1}}#s(){this.#r=null,this.#i=null,this.#n.onSnapshotChange()}async#c(){this.#o=!1;let e=this.#e.appDir;await this.#t.prepare?.(e);let t=this.#t.env?.(e),n=this.#r=await this.#l(e,t);if(n.on(`error`,e=>this.#n.log(`${this.name} 进程错误:${e.message}`)),n.on(`message`,e=>this.#n.onChildMessage(e)),n.once(`exit`,(e,t)=>{this.#r===n&&this.#d(e,t)}),!n.pid)throw this.#o=!0,this.#s(),Error(`无法启动 ${this.name}(未获得进程号)`);return this.#i={pid:n.pid,startedAt:Date.now()},this.#n.onSnapshotChange(),this.#n.log(`${this.name} 进程已启动(pid ${String(n.pid)})`),{...this.#i}}async#l(e,t){let n=this.#t.entry,r=this.#t.spawn;if(n===void 0==(r===void 0))throw Error(`子进程 ${this.name} 的规格必须且只能声明 entry 或 spawn 之一`);if(n!==void 0){let r=await this.#e.interpreter(),i=n(e);return this.#n.log(`正在启动 ${this.name}(${i})...`),vt({entryJs:i,appDir:e,env:t,interpreter:r,logFiles:this.#u()})}let i=r(e),a=i.command!==void 0&&i.command.trim()!==``?i.command:process.execPath;return this.#n.log(`正在启动 ${this.name}(${a}${i.cwd===void 0?``:`,cwd ${i.cwd}`})...`),Ct({command:a,args:i.args??[],...i.cwd===void 0?{}:{cwd:i.cwd},appDir:e,env:t,logFiles:this.#u()})}#u(){return{out:`out-${this.name}.log`,err:`err-${this.name}.log`}}#d(e,t){this.#s();let n=`退出码 ${String(e??`?`)}${t?`,信号 ${t}`:``}`;if(this.#o){this.#n.log(`${this.name} 已停止(${n})`);return}this.#n.log(`${this.name} 异常退出(${n})`),this.#n.onUnexpectedExit(this,n)}},gn=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n}start(){if(this.#e.length===0){this.#t(`未注入任何定时任务(依赖定时任务的能力——如自动更新——将不可用)`);return}let e=this.#e.map(e=>({name:e.name,everyMs:e.everyMs,retryMs:e.retryMs,...e.firstDelayMs===void 0?{}:{firstDelayMs:e.firstDelayMs},run:t=>e.run({log:t.log,restartChild:this.#n})}));this.#r=Pe({jobs:e,log:this.#t,onError:(e,t,n)=>{this.#t(`定时任务 ${e.name} 失败(${String(Math.round(n/6e4))} 分钟后重试):${t.message}`)}});for(let e of this.#e)this.#t(`定时任务已注册:${e.name}`)}stop(){this.#r?.stop(),this.#r=null}},_n=`daemon`,vn=6e4,yn=10,bn=class{#e;#t=null;#n=_n;#r=[];#i=new Map;#a=[];#o=null;#s=null;#c={};#l=Date.now();#u=!1;#d=!1;#f=()=>``;#p=null;#m=e=>process.exit(e);constructor(e){this.#e=e}configure(e){this.#t=e.daemonJs??null,this.#n=e.logPrefix??_n,this.#r=e.children??[],this.#a=e.tasks??[],this.#c=e.commands??{},this.#f=e.version??(()=>``),this.#p=e.onStartup??null,this.#m=e.exit??(e=>process.exit(e))}async run(){if(this.#u){this.#h(`本进程已在运行,忽略重复启动`);return}for(let e of Object.keys(this.#c))if(Object.values(X).includes(e))throw Error(`注入命令与内置命令重名:${e}`);for(let e of this.#r){if(this.#e.child(e.name))throw Error(`注入子进程规格重名:${e.name}`);this.#v(e)}if(await this.#e.control.isReachable()){this.#h(`主进程已在运行(端点 ${this.#e.control.endpoint}),本次启动忽略`);return}let e=this.#k();this.#o=await this.#e.control.serve((e,t)=>this.#b(e,t)),this.#u=!0,this.#w();let t=this.#f();this.#h(`主进程已启动(pid ${String(process.pid)}${t===``?``:`,版本 ${t}`},端点 ${this.#o.endpoint})`);for(let e of[`SIGINT`,`SIGTERM`])process.on(e,()=>{this.#A(`收到 ${e}`)});process.on(`uncaughtException`,e=>{L(`[${this.#n}] 主进程未捕获异常:`,e?.stack??String(e)),L(`[${this.#n}] 主进程即将退出;托管 server 会在 IPC 断开后自行退出`),this.#m(1)}),this.#s=new gn(this.#a,this.#g,e=>this.#S(e)),this.#s.start();for(let t of e)this.#h(`发现无主的子进程(pid ${String(t)})继续运行:本次将重启它以恢复纳管(服务会出现秒级中断)`),await wt(t);for(let e of this.#e.children())this.#i.get(e.name)?.autostart!==!1&&await e.start();let n=this.#t,r=this.#p;if(n&&r)try{let e=await this.#e.interpreter();await r({daemonJs:n,appDir:this.#e.appDir,interpreter:e})}catch(e){this.#h(`启动钩子失败(不阻塞启动):${an(e)}`)}}#h(e){F(`[${this.#n}] ${e}`)}#g=e=>this.#h(e);#_={log:this.#g,children:{register:e=>{this.#v(e),this.#h(`已注册子进程:${e.name}`)},unregister:async e=>{let t=this.#e.child(e);t&&(await t.stop(`被注销`),this.#e.removeChild(e),this.#i.delete(e),this.#w(),this.#h(`已注销子进程:${e}`))},start:async e=>await this.#x({name:e}).start(),stop:async e=>await this.#x({name:e}).stop(`收到停止指令`),status:()=>this.#y()}};#v(e){if(this.#i.has(e.name)||this.#e.child(e.name))throw Error(`子进程名已被占用:${e.name}`);this.#i.set(e.name,e),this.#e.addChild(new hn(this.#e,e,this.#T(e.name)))}#y(){let e={};for(let t of this.#e.children())e[t.name]=t.snapshot;return e}async#b(e,t){switch(e){case X.ping:return{pid:process.pid,version:this.#f()};case X.status:return this.#C();case X.childStart:return await this.#x(t).start();case X.childStop:return await this.#x(t).stop(`收到停止指令`);case X.childRestart:{let e=this.#x(t),n=await e.stop(`收到重启指令`);return n.stopped?await e.start():{stopped:!1,pid:n.pid}}case X.daemonStop:return setTimeout(()=>void this.#A(`收到停止指令`),150),{stopping:!0};default:{let n=this.#c[e];if(!n)throw Error(`未知控制命令:${e}`);return await n(t,this.#_)}}}#x(e){let t=typeof e.name==`string`?e.name:``,n=this.#e.child(t);if(!n)throw Error(`未知子进程:${t||`(未指定名称)`}(可用:${this.#e.childNames().join(`、`)})`);return n}async#S(e){let t=this.#x({name:e}),n=await t.stop(`收到重启指令`);if(!n.stopped)throw Error(`无法停止子进程 ${e}(pid ${String(n.pid)}),重启中止`);await t.start()}#C(){return{daemonPid:process.pid,version:this.#f()||null,startedAt:this.#l,endpoint:this.#o?.endpoint??this.#e.control.endpoint,children:this.#y()}}#w(){this.#e.control.writeInfo({pid:process.pid,endpoint:this.#o?.endpoint??this.#e.control.endpoint,startedAt:this.#l,version:this.#f()||null,children:this.#C().children})}#T(e){return{log:this.#g,onSnapshotChange:()=>this.#w(),onUnexpectedExit:e=>this.#E(e),onChildMessage:t=>this.#O(e,t)}}#E(e){if(this.#d)return;let{allowed:t,count:n}=this.#D(e.name);if(!t){this.#h(`1 分钟内已重启 ${String(e.name)} ${String(n)} 次(上限 ${String(yn)}),停止自动重启;请排查日志后手工 ${this.#n} start`);return}setTimeout(()=>{e.start().catch(e=>this.#h(`自动重启失败:${e.message}`))},500)}#D(e){let t=i(this.#e.appDir,`daemon-restarts.json`),n={};try{let e=JSON.parse(_(t,`utf-8`));typeof e==`object`&&e&&(n=e)}catch{}let r=Date.now(),a={...n[e]??{windowStart:0,count:0}},o=Number.isFinite(a.windowStart)?a.windowStart:r;r-o>vn?(a.windowStart=r,a.count=0):a.windowStart=o,a.count=(Number.isFinite(a.count)?a.count:0)+1,n[e]=a;try{S(t,JSON.stringify(n),`utf-8`)}catch{}return{allowed:a.count<=yn,count:a.count}}#O(e,t){let n=t;if(!n?.type||typeof n.id!=`number`)return;let r=t=>{this.#e.child(e)?.send({type:`${String(n.type)}.result`,id:n.id,...t})};if(n.type===X.daemonStop){r({error:`该命令不可经 IPC 委派(仅支持经由 CLI 的控制通道)`});return}this.#b(n.type,n.args??{}).then(e=>r({data:e}),e=>r({error:e.message}))}#k(){let e=this.#e.control.readInfo();return!e||e.pid===process.pid?[]:this.#e.control.liveChildPids(process.pid)}async#A(e){if(!this.#d){this.#d=!0,this.#h(`主进程准备退出(${e})`),this.#s?.stop();for(let t of this.#e.children())await t.stop(e);this.#e.control.clearInfo(process.pid);try{await this.#o?.close()}catch{}this.#h(`主进程已退出(服务随之停止)`),this.#m(0)}}},xn=class e{static#e=new Map;appDir;control;client;#t;#n=new Map;#r=null;static of(t){let n=e.#e.get(t);return n||(n=new e(t),e.#e.set(t,n)),n}constructor(e){this.appDir=e,this.control=new pn(e),this.client=new dn(this),this.#t=new bn(this)}configure(e={}){this.#r=e.interpreter??null,this.client.configure(e),this.#t.configure(e)}interpreter(){let e=this.#r;return e===null?Promise.resolve(process.execPath):e(this.appDir)}get daemon(){return this.#t}addChild(e){this.#n.set(e.name,e)}removeChild(e){this.#n.delete(e)}child(e){return this.#n.get(e)}children(){return[...this.#n.values()]}childNames(){return[...this.#n.keys()]}},Sn=class{#e;constructor(e){this.#e=xn.of(e)}configure(e={}){return this.#e.configure(e),this}run(){return this.#e.daemon.run()}isRunning(){return this.#e.client.isRunning()}status(){return this.#e.client.status()}childStatus(e){return this.#e.client.childStatus(e)}call(e,t={},n){return this.#e.client.call(e,t,n)}startChild(e){return this.#e.client.startChild(e)}stopChild(e){return this.#e.client.stopChild(e)}restartChild(e){return this.#e.client.restartChild(e)}shutdown(){return this.#e.client.shutdown()}restartDaemon(e={}){return this.#e.client.restartDaemon(e)}},Cn=Object.create,wn=Object.defineProperty,Tn=Object.getOwnPropertyDescriptor,En=Object.getOwnPropertyNames,Dn=Object.getPrototypeOf,On=Object.prototype.hasOwnProperty,Z=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),kn=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=En(t),a=0,o=i.length,s;a<o;a++)s=i[a],!On.call(e,s)&&s!==n&&wn(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Tn(t,s))||r.enumerable});return e},An=(e,t,n)=>(n=e==null?{}:Cn(Dn(e)),kn(t||!e||!e.__esModule||!On.call(e,`default`)?wn(n,`default`,{value:e,enumerable:!0}):n,e)),Q=e(import.meta.url),jn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`];function r(e){return n.includes(e)}var i=[`Function`,`Generator`,`AsyncGenerator`,`GeneratorFunction`,`AsyncGeneratorFunction`,`AsyncFunction`,`Observable`,`Array`,`Buffer`,`Blob`,`Object`,`RegExp`,`Date`,`Error`,`Map`,`Set`,`WeakMap`,`WeakSet`,`ArrayBuffer`,`SharedArrayBuffer`,`DataView`,`Promise`,`URL`,`FormData`,`URLSearchParams`,`HTMLElement`,...n];function a(e){return i.includes(e)}var o=[`null`,`undefined`,`string`,`number`,`bigint`,`boolean`,`symbol`];function s(e){return o.includes(e)}function c(e){return t=>typeof t===e}var{toString:l}=Object.prototype,u=e=>{let t=l.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&f.domElement(e))return`HTMLElement`;if(a(t))return t},d=e=>t=>u(t)===e;function f(e){if(e===null)return`null`;switch(typeof e){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return`number`;case`boolean`:return`boolean`;case`function`:return`Function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`}if(f.observable(e))return`Observable`;if(f.array(e))return`Array`;if(f.buffer(e))return`Buffer`;let t=u(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw TypeError(`Please don't use object wrappers for primitive types`);return`Object`}f.undefined=c(`undefined`),f.string=c(`string`);var p=c(`number`);f.number=e=>p(e)&&!f.nan(e),f.bigint=c(`bigint`),f.function_=c(`function`),f.null_=e=>e===null,f.class_=e=>f.function_(e)&&e.toString().startsWith(`class `),f.boolean=e=>e===!0||e===!1,f.symbol=c(`symbol`),f.numericString=e=>f.string(e)&&!f.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),f.array=(e,t)=>Array.isArray(e)?!f.function_(t)||e.every(t):!1,f.buffer=e=>{var t;return((t=e?.constructor)?.isBuffer)?.call(t,e)??!1},f.blob=e=>d(`Blob`)(e),f.nullOrUndefined=e=>f.null_(e)||f.undefined(e),f.object=e=>!f.null_(e)&&(typeof e==`object`||f.function_(e)),f.iterable=e=>f.function_(e?.[Symbol.iterator]),f.asyncIterable=e=>f.function_(e?.[Symbol.asyncIterator]),f.generator=e=>f.iterable(e)&&f.function_(e?.next)&&f.function_(e?.throw),f.asyncGenerator=e=>f.asyncIterable(e)&&f.function_(e.next)&&f.function_(e.throw),f.nativePromise=e=>d(`Promise`)(e);var m=e=>f.function_(e?.then)&&f.function_(e?.catch);f.promise=e=>f.nativePromise(e)||m(e),f.generatorFunction=d(`GeneratorFunction`),f.asyncGeneratorFunction=e=>u(e)===`AsyncGeneratorFunction`,f.asyncFunction=e=>u(e)===`AsyncFunction`,f.boundFunction=e=>f.function_(e)&&!e.hasOwnProperty(`prototype`),f.regExp=d(`RegExp`),f.date=d(`Date`),f.error=d(`Error`),f.map=e=>d(`Map`)(e),f.set=e=>d(`Set`)(e),f.weakMap=e=>d(`WeakMap`)(e),f.weakSet=e=>d(`WeakSet`)(e),f.int8Array=d(`Int8Array`),f.uint8Array=d(`Uint8Array`),f.uint8ClampedArray=d(`Uint8ClampedArray`),f.int16Array=d(`Int16Array`),f.uint16Array=d(`Uint16Array`),f.int32Array=d(`Int32Array`),f.uint32Array=d(`Uint32Array`),f.float32Array=d(`Float32Array`),f.float64Array=d(`Float64Array`),f.bigInt64Array=d(`BigInt64Array`),f.bigUint64Array=d(`BigUint64Array`),f.arrayBuffer=d(`ArrayBuffer`),f.sharedArrayBuffer=d(`SharedArrayBuffer`),f.dataView=d(`DataView`),f.enumCase=(e,t)=>Object.values(t).includes(e),f.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,f.urlInstance=e=>d(`URL`)(e),f.urlString=e=>{if(!f.string(e))return!1;try{return new URL(e),!0}catch{return!1}},f.truthy=e=>!!e,f.falsy=e=>!e,f.nan=e=>Number.isNaN(e),f.primitive=e=>f.null_(e)||s(typeof e),f.integer=e=>Number.isInteger(e),f.safeInteger=e=>Number.isSafeInteger(e),f.plainObject=e=>{if(l.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})},f.typedArray=e=>r(u(e));var h=e=>f.safeInteger(e)&&e>=0;f.arrayLike=e=>!f.nullOrUndefined(e)&&!f.function_(e)&&h(e.length),f.inRange=(e,t)=>{if(f.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(f.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw TypeError(`Invalid range: ${JSON.stringify(t)}`)};var g=1,_=[`innerHTML`,`ownerDocument`,`style`,`attributes`,`nodeValue`];f.domElement=e=>f.object(e)&&e.nodeType===g&&f.string(e.nodeName)&&!f.plainObject(e)&&_.every(t=>t in e),f.observable=e=>{var t,n;return e?e===(t=e)[Symbol.observable]?.call(t)||e===(n=e)[`@@observable`]?.call(n):!1},f.nodeStream=e=>f.object(e)&&f.function_(e.pipe)&&!f.observable(e),f.infinite=e=>e===1/0||e===-1/0;var v=e=>t=>f.integer(t)&&Math.abs(t%2)===e;f.evenInteger=v(0),f.oddInteger=v(1),f.emptyArray=e=>f.array(e)&&e.length===0,f.nonEmptyArray=e=>f.array(e)&&e.length>0,f.emptyString=e=>f.string(e)&&e.length===0;var y=e=>f.string(e)&&!/\S/.test(e);f.emptyStringOrWhitespace=e=>f.emptyString(e)||y(e),f.nonEmptyString=e=>f.string(e)&&e.length>0,f.nonEmptyStringAndNotWhitespace=e=>f.string(e)&&!f.emptyStringOrWhitespace(e),f.emptyObject=e=>f.object(e)&&!f.map(e)&&!f.set(e)&&Object.keys(e).length===0,f.nonEmptyObject=e=>f.object(e)&&!f.map(e)&&!f.set(e)&&Object.keys(e).length>0,f.emptySet=e=>f.set(e)&&e.size===0,f.nonEmptySet=e=>f.set(e)&&e.size>0,f.emptyMap=e=>f.map(e)&&e.size===0,f.nonEmptyMap=e=>f.map(e)&&e.size>0,f.propertyKey=e=>f.any([f.string,f.number,f.symbol],e),f.formData=e=>d(`FormData`)(e),f.urlSearchParams=e=>d(`URLSearchParams`)(e);var b=(e,t,n)=>{if(!f.function_(t))throw TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(n.length===0)throw TypeError(`Invalid number of values`);return e.call(n,t)};f.any=(e,...t)=>(f.array(e)?e:[e]).some(e=>b(Array.prototype.some,e,t)),f.all=(e,...t)=>b(Array.prototype.every,e,t);var x=(e,t,n,r={})=>{if(!e){let{multipleValues:e}=r,i=e?`received values of types ${[...new Set(n.map(e=>`\`${f(e)}\``))].join(`, `)}`:`received value of type \`${f(n)}\``;throw TypeError(`Expected value which is \`${t}\`, ${i}.`)}};e.assert={undefined:e=>x(f.undefined(e),`undefined`,e),string:e=>x(f.string(e),`string`,e),number:e=>x(f.number(e),`number`,e),bigint:e=>x(f.bigint(e),`bigint`,e),function_:e=>x(f.function_(e),`Function`,e),null_:e=>x(f.null_(e),`null`,e),class_:e=>x(f.class_(e),`Class`,e),boolean:e=>x(f.boolean(e),`boolean`,e),symbol:e=>x(f.symbol(e),`symbol`,e),numericString:e=>x(f.numericString(e),`string with a number`,e),array:(e,t)=>{x(f.array(e),`Array`,e),t&&e.forEach(t)},buffer:e=>x(f.buffer(e),`Buffer`,e),blob:e=>x(f.blob(e),`Blob`,e),nullOrUndefined:e=>x(f.nullOrUndefined(e),`null or undefined`,e),object:e=>x(f.object(e),`Object`,e),iterable:e=>x(f.iterable(e),`Iterable`,e),asyncIterable:e=>x(f.asyncIterable(e),`AsyncIterable`,e),generator:e=>x(f.generator(e),`Generator`,e),asyncGenerator:e=>x(f.asyncGenerator(e),`AsyncGenerator`,e),nativePromise:e=>x(f.nativePromise(e),`native Promise`,e),promise:e=>x(f.promise(e),`Promise`,e),generatorFunction:e=>x(f.generatorFunction(e),`GeneratorFunction`,e),asyncGeneratorFunction:e=>x(f.asyncGeneratorFunction(e),`AsyncGeneratorFunction`,e),asyncFunction:e=>x(f.asyncFunction(e),`AsyncFunction`,e),boundFunction:e=>x(f.boundFunction(e),`Function`,e),regExp:e=>x(f.regExp(e),`RegExp`,e),date:e=>x(f.date(e),`Date`,e),error:e=>x(f.error(e),`Error`,e),map:e=>x(f.map(e),`Map`,e),set:e=>x(f.set(e),`Set`,e),weakMap:e=>x(f.weakMap(e),`WeakMap`,e),weakSet:e=>x(f.weakSet(e),`WeakSet`,e),int8Array:e=>x(f.int8Array(e),`Int8Array`,e),uint8Array:e=>x(f.uint8Array(e),`Uint8Array`,e),uint8ClampedArray:e=>x(f.uint8ClampedArray(e),`Uint8ClampedArray`,e),int16Array:e=>x(f.int16Array(e),`Int16Array`,e),uint16Array:e=>x(f.uint16Array(e),`Uint16Array`,e),int32Array:e=>x(f.int32Array(e),`Int32Array`,e),uint32Array:e=>x(f.uint32Array(e),`Uint32Array`,e),float32Array:e=>x(f.float32Array(e),`Float32Array`,e),float64Array:e=>x(f.float64Array(e),`Float64Array`,e),bigInt64Array:e=>x(f.bigInt64Array(e),`BigInt64Array`,e),bigUint64Array:e=>x(f.bigUint64Array(e),`BigUint64Array`,e),arrayBuffer:e=>x(f.arrayBuffer(e),`ArrayBuffer`,e),sharedArrayBuffer:e=>x(f.sharedArrayBuffer(e),`SharedArrayBuffer`,e),dataView:e=>x(f.dataView(e),`DataView`,e),enumCase:(e,t)=>x(f.enumCase(e,t),`EnumCase`,e),urlInstance:e=>x(f.urlInstance(e),`URL`,e),urlString:e=>x(f.urlString(e),`string with a URL`,e),truthy:e=>x(f.truthy(e),`truthy`,e),falsy:e=>x(f.falsy(e),`falsy`,e),nan:e=>x(f.nan(e),`NaN`,e),primitive:e=>x(f.primitive(e),`primitive`,e),integer:e=>x(f.integer(e),`integer`,e),safeInteger:e=>x(f.safeInteger(e),`integer`,e),plainObject:e=>x(f.plainObject(e),`plain object`,e),typedArray:e=>x(f.typedArray(e),`TypedArray`,e),arrayLike:e=>x(f.arrayLike(e),`array-like`,e),domElement:e=>x(f.domElement(e),`HTMLElement`,e),observable:e=>x(f.observable(e),`Observable`,e),nodeStream:e=>x(f.nodeStream(e),`Node.js Stream`,e),infinite:e=>x(f.infinite(e),`infinite number`,e),emptyArray:e=>x(f.emptyArray(e),`empty array`,e),nonEmptyArray:e=>x(f.nonEmptyArray(e),`non-empty array`,e),emptyString:e=>x(f.emptyString(e),`empty string`,e),emptyStringOrWhitespace:e=>x(f.emptyStringOrWhitespace(e),`empty string or whitespace`,e),nonEmptyString:e=>x(f.nonEmptyString(e),`non-empty string`,e),nonEmptyStringAndNotWhitespace:e=>x(f.nonEmptyStringAndNotWhitespace(e),`non-empty string and not whitespace`,e),emptyObject:e=>x(f.emptyObject(e),`empty object`,e),nonEmptyObject:e=>x(f.nonEmptyObject(e),`non-empty object`,e),emptySet:e=>x(f.emptySet(e),`empty set`,e),nonEmptySet:e=>x(f.nonEmptySet(e),`non-empty set`,e),emptyMap:e=>x(f.emptyMap(e),`empty map`,e),nonEmptyMap:e=>x(f.nonEmptyMap(e),`non-empty map`,e),propertyKey:e=>x(f.propertyKey(e),`PropertyKey`,e),formData:e=>x(f.formData(e),`FormData`,e),urlSearchParams:e=>x(f.urlSearchParams(e),`URLSearchParams`,e),evenInteger:e=>x(f.evenInteger(e),`even integer`,e),oddInteger:e=>x(f.oddInteger(e),`odd integer`,e),directInstanceOf:(e,t)=>x(f.directInstanceOf(e,t),`T`,e),inRange:(e,t)=>x(f.inRange(e,t),`in range`,e),any:(e,...t)=>x(f.any(e,...t),`predicate returns truthy for any value`,t,{multipleValues:!0}),all:(e,...t)=>x(f.all(e,...t),`predicate returns truthy for all values`,t,{multipleValues:!0})},Object.defineProperties(f,{class:{value:f.class_},function:{value:f.function_},null:{value:f.null_}}),Object.defineProperties(e.assert,{class:{value:e.assert.class_},function:{value:e.assert.function_},null:{value:e.assert.null_}}),e.default=f,t.exports=f,t.exports.default=f,t.exports.assert=e.assert})),Mn=Z(((e,t)=>{var n=class extends Error{constructor(e){super(e||`Promise was canceled`),this.name=`CancelError`}get isCanceled(){return!0}},r=class e{static fn(t){return(...n)=>new e((e,r,i)=>{n.push(i),t(...n).then(e,r)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,n)=>{this._reject=n;let r=e=>{(!this._isCanceled||!a.shouldReject)&&(this._isPending=!1,t(e))},i=e=>{this._isPending=!1,n(e)},a=e=>{if(!this._isPending)throw Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(a,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(r,i,a)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let e of this._cancelHandlers)e()}catch(e){this._reject(e);return}this._rejectOnCancel&&this._reject(new n(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(r.prototype,Promise.prototype),t.exports=r,t.exports.CancelError=n})),Nn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});function n(e){return e.encrypted}var r=(e,t)=>{let r;r=typeof t==`function`?{connect:t}:t;let i=typeof r.connect==`function`,a=typeof r.secureConnect==`function`,o=typeof r.close==`function`,s=()=>{i&&r.connect(),n(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once(`secureConnect`,r.secureConnect)),o&&e.once(`close`,r.close)};e.writable&&!e.connecting?s():e.connecting?e.once(`connect`,s):e.destroyed&&o&&r.close(e._hadError)};e.default=r,t.exports=r,t.exports.default=r})),Pn=Z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Nn(),r=Q(`util`),i=Number(process.versions.node.split(`.`)[0]),a=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let a=e=>{let n=e.emit.bind(e);e.emit=(r,...i)=>(r===`error`&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=n),n(r,...i))};a(e);let o=()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener(`abort`,o);let s=e=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,r.types.isProxy(e))return;let i=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener(`lookup`,i),n.default(e,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(e.removeListener(`lookup`,i),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?s(e.socket):e.prependOnceListener(`socket`,s);let c=()=>{t.upload=Date.now(),t.phases.request=t.upload-(t.secureConnect??t.connect)};return(typeof e.writableFinished==`boolean`?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?c():e.prependOnceListener(`finish`,c),e.prependOnceListener(`response`,e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,a(e),e.prependOnceListener(`end`,()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),e.prependOnceListener(`aborted`,o)}),t};e.default=a,t.exports=a,t.exports.default=a})),Fn=Z(((e,t)=>{var{V4MAPPED:n,ADDRCONFIG:r,ALL:i,promises:{Resolver:a},lookup:o}=Q(`dns`),{promisify:s}=Q(`util`),c=Q(`os`),l=Symbol(`cacheableLookupCreateConnection`),u=Symbol(`cacheableLookupInstance`),d=Symbol(`expires`),f=typeof i==`number`,p=e=>{if(!(e&&typeof e.createConnection==`function`))throw Error(`Expected an Agent instance as the first argument`)},m=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},h=()=>{let e=!1,t=!1;for(let n of Object.values(c.networkInterfaces()))for(let r of n)if(!r.internal&&(r.family===`IPv6`?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},g=e=>Symbol.iterator in e,_={ttl:!0},v={all:!0},y=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:n=3600,errorTtl:r=.15,resolver:i=new a,lookup:c=o}={}){if(this.maxTtl=t,this.errorTtl=r,this._cache=e,this._resolver=i,this._dnsLookup=s(c),this._resolver instanceof a?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=s(this._resolver.resolve4.bind(this._resolver)),this._resolve6=s(this._resolver.resolve6.bind(this._resolver))),this._iface=h(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let e=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);e.unref&&e.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,n){if(typeof t==`function`?(n=t,t={}):typeof t==`number`&&(t={family:t}),!n)throw Error(`Callback must be a function.`);this.lookupAsync(e,t).then(e=>{t.all?n(null,e):n(null,e.address,e.family,e.expires,e.ttl)},n)}async lookupAsync(e,t={}){typeof t==`number`&&(t={family:t});let a=await this.query(e);if(t.family===6){let e=a.filter(e=>e.family===6);t.hints&n&&(f&&t.hints&i||e.length===0)?m(a):a=e}else t.family===4&&(a=a.filter(e=>e.family===4));if(t.hints&r){let{_iface:e}=this;a=a.filter(t=>t.family===6?e.has6:e.has4)}if(a.length===0){let t=Error(`cacheableLookup ENOTFOUND ${e}`);throw t.code=`ENOTFOUND`,t.hostname=e,t}return t.all?a:a[0]}async query(e){let t=await this._cache.get(e);if(!t){let n=this._pending[e];if(n)t=await n;else{let n=this.queryAndCache(e);this._pending[e]=n;try{t=await n}finally{delete this._pending[e]}}}return t=t.map(e=>({...e})),t}async _resolve(e){let t=async e=>{try{return await e}catch(e){if(e.code===`ENODATA`||e.code===`ENOTFOUND`)return[];throw e}},[n,r]=await Promise.all([this._resolve4(e,_),this._resolve6(e,_)].map(e=>t(e))),i=0,a=0,o=0,s=Date.now();for(let e of n)e.family=4,e.expires=s+e.ttl*1e3,i=Math.max(i,e.ttl);for(let e of r)e.family=6,e.expires=s+e.ttl*1e3,a=Math.max(a,e.ttl);return o=n.length>0?r.length>0?Math.min(i,a):i:a,{entries:[...n,...r],cacheTtl:o}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,t[d]=Date.now()+n;try{await this._cache.set(e,t,n)}catch(e){this.lookupAsync=async()=>{let t=Error(`Cache Error. Please recreate the CacheableLookup instance.`);throw t.cause=e,t}}g(this._cache)&&this._tick(n)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,v);let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let n=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,n),t.entries}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let e=1/0,t=Date.now();for(let[n,r]of this._cache){let i=r[d];t>=i?this._cache.delete(n):i<e&&(e=i)}e!==1/0&&this._tick(e-t)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(p(e),l in e)throw Error(`CacheableLookup has been already installed`);e[l]=e.createConnection,e[u]=this,e.createConnection=(t,n)=>(`lookup`in t||(t.lookup=this.lookup),e[l](t,n))}uninstall(e){if(p(e),e[l]){if(e[u]!==this)throw Error(`The agent is not owned by this CacheableLookup instance`);e.createConnection=e[l],delete e[l],delete e[u]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=h(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};t.exports=y,t.exports.default=y})),In=Z(((e,t)=>{var n=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),r=(e,{stripHash:t})=>{let n=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(e);if(!n)throw Error(`Invalid URL: ${e}`);let{type:r,data:i,hash:a}=n.groups,o=r.split(`;`);a=t?``:a;let s=!1;o[o.length-1]===`base64`&&(o.pop(),s=!0);let c=(o.shift()||``).toLowerCase(),l=[...o.map(e=>{let[t,n=``]=e.split(`=`).map(e=>e.trim());return t===`charset`&&(n=n.toLowerCase(),n===`us-ascii`)?``:`${t}${n?`=${n}`:``}`}).filter(Boolean)];return s&&l.push(`base64`),(l.length!==0||c&&c!==`text/plain`)&&l.unshift(c),`data:${l.join(`;`)},${s?i.trim():i}${a?`#${a}`:``}`};t.exports=(e,t)=>{if(t={defaultProtocol:`http:`,normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return r(e,t);if(/^view-source:/i.test(e))throw Error("`view-source:` is not supported as it is a non-standard protocol");let i=e.startsWith(`//`);(i||!/^\.*\//.test(e))&&(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol===`https:`&&(a.protocol=`http:`),t.forceHttps&&a.protocol===`http:`&&(a.protocol=`https:`),t.stripAuthentication&&(a.username=``,a.password=``),t.stripHash?a.hash=``:t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,``)),a.pathname&&=a.pathname.replace(/(?<!\b(?:[a-z][a-z\d+\-.]{1,50}:))\/{2,}/g,`/`),a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=a.pathname.split(`/`),r=e[e.length-1];n(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),a.pathname=e.slice(1).join(`/`)+`/`)}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,``),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,``))),Array.isArray(t.removeQueryParameters))for(let e of[...a.searchParams.keys()])n(e,t.removeQueryParameters)&&a.searchParams.delete(e);t.removeQueryParameters===!0&&(a.search=``),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,``));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname===`/`&&!o.endsWith(`/`)&&a.hash===``&&(e=e.replace(/\/$/,``)),(t.removeTrailingSlash||a.pathname===`/`)&&a.hash===``&&t.removeSingleSlash&&(e=e.replace(/\/$/,``)),i&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,`//`)),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,``)),e}})),Ln=Z(((e,t)=>{t.exports=n;function n(e,t){if(e&&t)return n(e)(t);if(typeof e!=`function`)throw TypeError(`need wrapper function`);return Object.keys(e).forEach(function(t){r[t]=e[t]}),r;function r(){for(var t=Array(arguments.length),n=0;n<t.length;n++)t[n]=arguments[n];var r=e.apply(this,t),i=t[t.length-1];return typeof r==`function`&&r!==i&&Object.keys(i).forEach(function(e){r[e]=i[e]}),r}}})),Rn=Z(((e,t)=>{var n=Ln();t.exports=n(r),t.exports.strict=n(i),r.proto=r(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return r(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return i(this)},configurable:!0})});function r(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function i(e){var t=function(){if(t.called)throw Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)};return t.onceError=(e.name||"Function wrapped with `once`")+` shouldn't be called more than once`,t.called=!1,t}})),zn=Z(((e,t)=>{var n=Rn(),r=function(){},i=global.Bare?queueMicrotask:process.nextTick.bind(process),a=function(e){return e.setHeader&&typeof e.abort==`function`},o=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},s=function(e,t,c){if(typeof t==`function`)return s(e,null,t);t||={},c=n(c||r);var l=e._writableState,u=e._readableState,d=t.readable||t.readable!==!1&&e.readable,f=t.writable||t.writable!==!1&&e.writable,p=!1,m=function(){e.writable||h()},h=function(){f=!1,d||c.call(e)},g=function(){d=!1,f||c.call(e)},_=function(t){c.call(e,t?Error(`exited with error code: `+t):null)},v=function(t){c.call(e,t)},y=function(){i(b)},b=function(){if(!p&&(d&&!(u&&u.ended&&!u.destroyed)||f&&!(l&&l.ended&&!l.destroyed)))return c.call(e,Error(`premature close`))},x=function(){e.req.on(`finish`,h)};return a(e)?(e.on(`complete`,h),e.on(`abort`,y),e.req?x():e.on(`request`,x)):f&&!l&&(e.on(`end`,m),e.on(`close`,m)),o(e)&&e.on(`exit`,_),e.on(`end`,g),e.on(`finish`,h),t.error!==!1&&e.on(`error`,v),e.on(`close`,y),function(){p=!0,e.removeListener(`complete`,h),e.removeListener(`abort`,y),e.removeListener(`request`,x),e.req&&e.req.removeListener(`finish`,h),e.removeListener(`end`,m),e.removeListener(`close`,m),e.removeListener(`finish`,h),e.removeListener(`exit`,_),e.removeListener(`end`,g),e.removeListener(`error`,v),e.removeListener(`close`,y)}};t.exports=s})),Bn=Z(((e,t)=>{var n=Rn(),r=zn(),i;try{i=Q(`fs`)}catch{}var a=function(){},o=typeof process>`u`?!1:/^v?\.0/.test(process.version),s=function(e){return typeof e==`function`},c=function(e){return!o||!i?!1:(e instanceof(i.ReadStream||a)||e instanceof(i.WriteStream||a))&&s(e.close)},l=function(e){return e.setHeader&&s(e.abort)},u=function(e,t,i,o){o=n(o);var u=!1;e.on(`close`,function(){u=!0}),r(e,{readable:t,writable:i},function(e){if(e)return o(e);u=!0,o()});var d=!1;return function(t){if(!u&&!d){if(d=!0,c(e))return e.close(a);if(l(e))return e.abort();if(s(e.destroy))return e.destroy();o(t||Error(`stream was destroyed`))}}},d=function(e){e()},f=function(e,t){return e.pipe(t)};t.exports=function(){var e=Array.prototype.slice.call(arguments),t=s(e[e.length-1]||a)&&e.pop()||a;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw Error(`pump requires two streams per minimum`);var n,r=e.map(function(i,a){var o=a<e.length-1;return u(i,o,a>0,function(e){n||=e,e&&r.forEach(d),!o&&(r.forEach(d),t(n))})});return e.reduce(f)}})),Vn=Z(((e,t)=>{var{PassThrough:n}=Q(`stream`);t.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,i=r===`buffer`,a=!1;t?a=!(r||i):r||=`utf8`,i&&(r=null);let o=new n({objectMode:a});r&&o.setEncoding(r);let s=0,c=[];return o.on(`data`,e=>{c.push(e),a?s=c.length:s+=e.length}),o.getBufferedValue=()=>t?c:i?Buffer.concat(c,s):c.join(``),o.getBufferedLength=()=>s,o}})),Hn=Z(((e,t)=>{var{constants:n}=Q(`buffer`),r=Bn(),i=Vn(),a=class extends Error{constructor(){super(`maxBuffer exceeded`),this.name=`MaxBufferError`}};async function o(e,t){if(!e)return Promise.reject(Error(`Expected a stream`));t={maxBuffer:1/0,...t};let{maxBuffer:o}=t,s;return await new Promise((c,l)=>{let u=e=>{e&&s.getBufferedLength()<=n.MAX_LENGTH&&(e.bufferedData=s.getBufferedValue()),l(e)};s=r(e,i(t),e=>{if(e){u(e);return}c()}),s.on(`data`,()=>{s.getBufferedLength()>o&&u(new a)})}),s.getBufferedValue()}t.exports=o,t.exports.default=o,t.exports.buffer=(e,t)=>o(e,{...t,encoding:`buffer`}),t.exports.array=(e,t)=>o(e,{...t,array:!0}),t.exports.MaxBufferError=a})),Un=Z(((e,t)=>{var n=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),i=new Set([500,502,503,504]),a={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function s(e){let t=parseInt(e,10);return isFinite(t)?t:0}function c(e){return!e||i.has(e.status)}function l(e){let t={};if(!e)return t;let n=e.trim().split(/,/);for(let e of n){let[n,r]=e.split(/=/,2);t[n.trim()]=r===void 0||r.trim().replace(/^"|"$/g,``)}return t}function u(e){let t=[];for(let n in e){let r=e[n];t.push(r===!0?n:n+`=`+r)}if(t.length)return t.join(`, `)}t.exports=class{constructor(e,t,{shared:n,cacheHeuristic:r,immutableMinTimeToLive:i,ignoreCargoCult:a,_fromObject:o}={}){if(o){this._fromObject(o);return}if(!t||!t.headers)throw Error(`Response headers missing`);this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=n!==!1,this._ignoreCargoCult=!!a,this._cacheHeuristic=r===void 0?.1:r,this._immutableMinTtl=i===void 0?864e5:i,this._status=`status`in t?t.status:200,this._resHeaders=t.headers,this._rescc=l(t.headers[`cache-control`]),this._method=`method`in e?e.method:`GET`,this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=l(e.headers[`cache-control`]),this._ignoreCargoCult&&`pre-check`in this._rescc&&`post-check`in this._rescc&&(delete this._rescc[`pre-check`],delete this._rescc[`post-check`],delete this._rescc[`no-cache`],delete this._rescc[`no-store`],delete this._rescc[`must-revalidate`],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":u(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers[`cache-control`]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc[`no-cache`]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc[`no-store`]&&(this._method===`GET`||this._method===`HEAD`||this._method===`POST`&&this._hasExplicitExpiration())&&r.has(this._status)&&!this._rescc[`no-store`]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc[`max-age`]||this._isShared&&this._rescc[`s-maxage`]||this._rescc.public||n.has(this._status)))}_hasExplicitExpiration(){return!!(this._isShared&&this._rescc[`s-maxage`]||this._rescc[`max-age`]||this._resHeaders.expires)}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error(`Request headers missing`)}satisfiesWithoutRevalidation(e){return!this.evaluateRequest(e).revalidation}_evaluateRequestHitResult(e){return{response:{headers:this.responseHeaders(),status:this._status},revalidation:e}}_evaluateRequestRevalidation(e,t){return{synchronous:t,headers:this.revalidationHeaders(e)}}_evaluateRequestMissResult(e){return{response:void 0,revalidation:this._evaluateRequestRevalidation(e,!0)}}evaluateRequest(e){if(this._assertRequestHasHeaders(e),this._rescc[`must-revalidate`]||!this._requestMatches(e,!1))return this._evaluateRequestMissResult(e);let t=l(e.headers[`cache-control`]);return t[`no-cache`]||/no-cache/.test(e.headers.pragma)||t[`max-age`]&&this.age()>s(t[`max-age`])||t[`min-fresh`]&&this.maxAge()-this.age()<s(t[`min-fresh`])?this._evaluateRequestMissResult(e):this.stale()?`max-stale`in t&&(!0===t[`max-stale`]||t[`max-stale`]>this.age()-this.maxAge())?this._evaluateRequestHitResult(void 0):this.useStaleWhileRevalidate()?this._evaluateRequestHitResult(this._evaluateRequestRevalidation(e,!1)):this._evaluateRequestMissResult(e):this._evaluateRequestHitResult(void 0)}_requestMatches(e,t){return!(this._url&&this._url!==e.url||this._host!==e.headers.host||e.method&&this._method!==e.method&&(!t||e.method!==`HEAD`)||!this._varyMatches(e))}_allowsStoringAuthenticated(){return!!(this._rescc[`must-revalidate`]||this._rescc.public||this._rescc[`s-maxage`])}_varyMatches(e){if(!this._resHeaders.vary)return!0;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of t)if(n===`*`||(Object.prototype.hasOwnProperty.call(e.headers,n)&&e.headers[n])!==(Object.prototype.hasOwnProperty.call(this._reqHeaders,n)&&this._reqHeaders[n]))return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let n in e)a[n]||(t[n]=e[n]);if(e.connection){let n=e.connection.trim().split(/\s*,\s*/);for(let e of n)delete t[e]}if(t.warning){let e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(`,`).trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?`${e.warning}, `:``)+`113 - "rfc7234 5.5.4"`),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}status(){return this._status}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){return this._ageValue()+(this.now()-this._responseTime)/1e3}_ageValue(){return s(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc[`no-cache`]||this._isShared&&this._resHeaders[`set-cookie`]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary===`*`)return 0;if(this._isShared){if(this._rescc[`proxy-revalidate`])return 0;if(this._rescc[`s-maxage`])return s(this._rescc[`s-maxage`])}if(this._rescc[`max-age`])return s(this._rescc[`max-age`]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||n<t?0:Math.max(e,(n-t)/1e3)}if(this._resHeaders[`last-modified`]){let n=Date.parse(this._resHeaders[`last-modified`]);if(isFinite(n)&&t>n)return Math.max(e,(t-n)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+s(this._rescc[`stale-if-error`]),n=e+s(this._rescc[`stale-while-revalidate`]);return Math.round(Math.max(0,e,t,n)*1e3)}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+s(this._rescc[`stale-if-error`])>this.age()}useStaleWhileRevalidate(){let e=s(this._rescc[`stale-while-revalidate`]);return e>0&&this.maxAge()+e>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error(`Reinitialized`);if(!e||e.v!==1)throw Error(`Invalid serialization`);this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm===void 0?864e5:e.imm,this._ignoreCargoCult=!!e.icc,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,icc:this._ignoreCargoCult,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t[`if-range`],!this._requestMatches(e,!0)||!this.storable())return delete t[`if-none-match`],delete t[`if-modified-since`],t;if(this._resHeaders.etag&&(t[`if-none-match`]=t[`if-none-match`]?`${t[`if-none-match`]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t[`accept-ranges`]||t[`if-match`]||t[`if-unmodified-since`]||this._method&&this._method!=`GET`){if(delete t[`if-modified-since`],t[`if-none-match`]){let e=t[`if-none-match`].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t[`if-none-match`]=e.join(`,`).trim():delete t[`if-none-match`]}}else this._resHeaders[`last-modified`]&&!t[`if-modified-since`]&&(t[`if-modified-since`]=this._resHeaders[`last-modified`]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&c(t))return{policy:this,modified:!1,matches:!0};if(!t||!t.headers)throw Error(`Response headers missing`);let n=!1;t.status!==void 0&&t.status!=304?n=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,``)===t.headers.etag:this._resHeaders.etag&&t.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,``)===t.headers.etag.replace(/^\s*W\//,``):this._resHeaders[`last-modified`]?n=this._resHeaders[`last-modified`]===t.headers[`last-modified`]:!this._resHeaders.etag&&!this._resHeaders[`last-modified`]&&!t.headers.etag&&!t.headers[`last-modified`]&&(n=!0);let r={shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,ignoreCargoCult:this._ignoreCargoCult};if(!n)return{policy:new this.constructor(e,t,r),modified:t.status!=304,matches:!1};let i={};for(let e in this._resHeaders)i[e]=e in t.headers&&!o[e]?t.headers[e]:this._resHeaders[e];let a=Object.assign({},t,{status:this._status,method:this._method,headers:i});return{policy:new this.constructor(e,a,r),modified:!1,matches:!0}}}})),Wn=Z(((e,t)=>{t.exports=e=>{let t={};for(let[n,r]of Object.entries(e))t[n.toLowerCase()]=r;return t}})),Gn=Z(((e,t)=>{var n=Q(`stream`).Readable,r=Wn();t.exports=class extends n{constructor(e,t,n,i){if(typeof e!=`number`)throw TypeError("Argument `statusCode` should be a number");if(typeof t!=`object`)throw TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw TypeError("Argument `body` should be a buffer");if(typeof i!=`string`)throw TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=r(t),this.body=n,this.url=i}_read(){this.push(this.body),this.push(null)}}})),Kn=Z(((e,t)=>{var n=[`destroy`,`setTimeout`,`socket`,`headers`,`trailers`,`rawHeaders`,`statusCode`,`httpVersion`,`httpVersionMinor`,`httpVersionMajor`,`rawTrailers`,`statusMessage`];t.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(n));for(let n of r)n in t||(t[n]=typeof e[n]==`function`?e[n].bind(e):e[n])}})),qn=Z(((e,t)=>{var n=Q(`stream`).PassThrough,r=Kn();t.exports=e=>{if(!(e&&e.pipe))throw TypeError("Parameter `response` must be a response stream.");let t=new n;return r(e,t),e.pipe(t)}})),Jn=Z((e=>{e.stringify=function e(t){if(t===void 0)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(`:base64:`+t.toString(`base64`));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t==`object`){var n=``,r=Array.isArray(t);n=r?`[`:`{`;var i=!0;for(var a in t){var o=typeof t[a]==`function`||!r&&t[a]===void 0;Object.hasOwnProperty.call(t,a)&&!o&&(i||(n+=`,`),i=!1,r?t[a]==null?n+=`null`:n+=e(t[a]):t[a]!==void 0&&(n+=e(a)+`:`+e(t[a])))}return n+=r?`]`:`}`,n}return typeof t==`string`?JSON.stringify(/^:/.test(t)?`:`+t:t):t===void 0?`null`:JSON.stringify(t)},e.parse=function(e){return JSON.parse(e,function(e,t){return typeof t==`string`?/^:base64:/.test(t)?Buffer.from(t.substring(8),`base64`):/^:/.test(t)?t.substring(1):t:t})}})),Yn=Z(((e,t)=>{var n=Q(`events`),r=Jn(),i=e=>e.adapter||e.uri?new(Q({redis:`@keyv/redis`,rediss:`@keyv/redis`,mongodb:`@keyv/mongo`,mongo:`@keyv/mongo`,sqlite:`@keyv/sqlite`,postgresql:`@keyv/postgres`,postgres:`@keyv/postgres`,mysql:`@keyv/mysql`,etcd:`@keyv/etcd`,offline:`@keyv/offline`,tiered:`@keyv/tiered`}[e.adapter||/^[^:+]*/.exec(e.uri)[0]]))(e):new Map,a=[`sqlite`,`postgres`,`mysql`,`mongo`,`redis`,`tiered`];t.exports=class extends n{constructor(e,{emitErrors:t=!0,...n}={}){if(super(),this.opts={namespace:`keyv`,serialize:r.stringify,deserialize:r.parse,...typeof e==`string`?{uri:e}:e,...n},!this.opts.store){let e={...this.opts};this.opts.store=i(e)}if(this.opts.compression){let e=this.opts.compression;this.opts.serialize=e.serialize.bind(e),this.opts.deserialize=e.deserialize.bind(e)}typeof this.opts.store.on==`function`&&t&&this.opts.store.on(`error`,e=>this.emit(`error`,e)),this.opts.store.namespace=this.opts.namespace;let a=e=>async function*(){for await(let[t,n]of typeof e==`function`?e(this.opts.store.namespace):e){let e=await this.opts.deserialize(n);if(!this.opts.store.namespace||t.includes(this.opts.store.namespace)){if(typeof e.expires==`number`&&Date.now()>e.expires){this.delete(t);continue}yield[this._getKeyUnprefix(t),e.value]}}};typeof this.opts.store[Symbol.iterator]==`function`&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator==`function`&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return a.includes(this.opts.store.opts.dialect)||a.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(e=>`${this.opts.namespace}:${e}`)}_getKeyUnprefix(e){return e.split(`:`).splice(1).join(`:`)}get(e,t){let{store:n}=this.opts,r=Array.isArray(e),i=r?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(r&&n.getMany===void 0){let e=[];for(let r of i)e.push(Promise.resolve().then(()=>n.get(r)).then(e=>typeof e==`string`||this.opts.compression?this.opts.deserialize(e):e).then(e=>{if(e!=null)return typeof e.expires==`number`&&Date.now()>e.expires?this.delete(r).then(()=>void 0):t&&t.raw?e:e.value}));return Promise.allSettled(e).then(e=>{let t=[];for(let n of e)t.push(n.value);return t})}return Promise.resolve().then(()=>r?n.getMany(i):n.get(i)).then(e=>typeof e==`string`||this.opts.compression?this.opts.deserialize(e):e).then(n=>{if(n!=null)return r?n.map((n,r)=>{if(typeof n==`string`&&(n=this.opts.deserialize(n)),n!=null){if(typeof n.expires==`number`&&Date.now()>n.expires){this.delete(e[r]).then(()=>void 0);return}return t&&t.raw?n:n.value}}):typeof n.expires==`number`&&Date.now()>n.expires?this.delete(e).then(()=>void 0):t&&t.raw?n:n.value})}set(e,t,n){let r=this._getKeyPrefix(e);n===void 0&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:i}=this.opts;return Promise.resolve().then(()=>{let e=typeof n==`number`?Date.now()+n:null;return typeof t==`symbol`&&this.emit(`error`,`symbol cannot be serialized`),t={value:t,expires:e},this.opts.serialize(t)}).then(e=>i.set(r,e,n)).then(()=>!0)}delete(e){let{store:t}=this.opts;if(Array.isArray(e)){let n=this._getKeyPrefixArray(e);if(t.deleteMany===void 0){let e=[];for(let r of n)e.push(t.delete(r));return Promise.allSettled(e).then(e=>e.every(e=>e.value===!0))}return Promise.resolve().then(()=>t.deleteMany(n))}let n=this._getKeyPrefix(e);return Promise.resolve().then(()=>t.delete(n))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let t=this._getKeyPrefix(e),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has==`function`?n.has(t):await n.get(t)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect==`function`)return e.disconnect()}}})),Xn=Z(((e,t)=>{var n=Q(`events`),r=Q(`url`),i=In(),a=Hn(),o=Un(),s=Gn(),c=Wn(),l=qn(),u=Yn(),d=class e{constructor(e,t){if(typeof e!=`function`)throw TypeError("Parameter `request` must be a function");return this.cache=new u({uri:typeof t==`string`&&t,store:typeof t!=`string`&&t,namespace:`cacheable-request`}),this.createCacheableRequest(e)}createCacheableRequest(t){return(u,d)=>{let m;if(typeof u==`string`)m=p(r.parse(u)),u={};else if(u instanceof r.URL)m=p(r.parse(u.toString())),u={};else{let[e,...t]=(u.path||``).split(`?`),n=t.length>0?`?${t.join(`?`)}`:``;m=p({...u,pathname:e,search:n})}u={headers:{},method:`GET`,cache:!0,strictTtl:!1,automaticFailover:!1,...u,...f(m)},u.headers=c(u.headers);let h=new n,g=i(r.format(m),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),_=`${u.method}:${g}`,v=!1,y=!1,b=n=>{y=!0;let r=!1,i,c=new Promise(e=>{i=()=>{r||(r=!0,e())}}),u=t=>{if(v&&!n.forceRefresh){t.status=t.statusCode;let e=o.fromObject(v.cachePolicy).revalidatedPolicy(n,t);if(!e.modified){let n=e.policy.responseHeaders();t=new s(v.statusCode,n,v.body,v.url),t.cachePolicy=e.policy,t.fromCache=!0}}t.fromCache||(t.cachePolicy=new o(n,t,n),t.fromCache=!1);let i;n.cache&&t.cachePolicy.storable()?(i=l(t),(async()=>{try{let e=a.buffer(t);if(await Promise.race([c,new Promise(e=>t.once(`end`,e))]),r)return;let i=await e,o={cachePolicy:t.cachePolicy.toObject(),url:t.url,statusCode:t.fromCache?v.statusCode:t.statusCode,body:i},s=n.strictTtl?t.cachePolicy.timeToLive():void 0;n.maxTtl&&(s=s?Math.min(s,n.maxTtl):n.maxTtl),await this.cache.set(_,o,s)}catch(t){h.emit(`error`,new e.CacheError(t))}})()):n.cache&&v&&(async()=>{try{await this.cache.delete(_)}catch(t){h.emit(`error`,new e.CacheError(t))}})(),h.emit(`response`,i||t),typeof d==`function`&&d(i||t)};try{let e=t(n,u);e.once(`error`,i),e.once(`abort`,i),h.emit(`request`,e)}catch(t){h.emit(`error`,new e.RequestError(t))}};return(async()=>{let t=async e=>{await Promise.resolve();let t=e.cache?await this.cache.get(_):void 0;if(t===void 0)return b(e);let n=o.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){let e=n.responseHeaders(),r=new s(t.statusCode,e,t.body,t.url);r.cachePolicy=n,r.fromCache=!0,h.emit(`response`,r),typeof d==`function`&&d(r)}else v=t,e.headers=n.revalidationHeaders(e),b(e)},n=t=>h.emit(`error`,new e.CacheError(t));this.cache.once(`error`,n),h.on(`response`,()=>this.cache.removeListener(`error`,n));try{await t(u)}catch(t){u.automaticFailover&&!y&&b(u),h.emit(`error`,new e.CacheError(t))}})(),h}}};function f(e){let t={...e};return t.path=`${e.pathname||`/`}${e.search||``}`,delete t.pathname,delete t.search,t}function p(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||`localhost`,port:e.port,pathname:e.pathname,search:e.search}}d.RequestError=class extends Error{constructor(e){super(e.message),this.name=`RequestError`,Object.assign(this,e)}},d.CacheError=class extends Error{constructor(e){super(e.message),this.name=`CacheError`,Object.assign(this,e)}},t.exports=d})),Zn=Z(((e,t)=>{var n=[`aborted`,`complete`,`headers`,`httpVersion`,`httpVersionMinor`,`httpVersionMajor`,`method`,`rawHeaders`,`rawTrailers`,`setTimeout`,`socket`,`statusCode`,`statusMessage`,`trailers`,`url`];t.exports=(e,t)=>{if(t._readableState.autoDestroy)throw Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(n)),i={};for(let n of r)n in t||(i[n]={get(){let t=e[n];return typeof t==`function`?t.bind(e):t},set(t){e[n]=t},enumerable:!0,configurable:!1});return Object.defineProperties(t,i),e.once(`aborted`,()=>{t.destroy(),t.emit(`aborted`)}),e.once(`close`,()=>{e.complete&&t.readable?t.once(`end`,()=>{t.emit(`close`)}):t.emit(`close`)}),t}})),Qn=Z(((e,t)=>{var{Transform:n,PassThrough:r}=Q(`stream`),i=Q(`zlib`),a=Zn();t.exports=e=>{let t=(e.headers[`content-encoding`]||``).toLowerCase();if(![`gzip`,`deflate`,`br`].includes(t))return e;let o=t===`br`;if(o&&typeof i.createBrotliDecompress!=`function`)return e.destroy(Error(`Brotli is not supported on Node.js < 12`)),e;let s=!0,c=new n({transform(e,t,n){s=!1,n(null,e)},flush(e){e()}}),l=new r({autoDestroy:!1,destroy(t,n){e.destroy(),n(t)}}),u=o?i.createBrotliDecompress():i.createUnzip();return u.once(`error`,t=>{if(s&&!e.readable){l.end();return}l.destroy(t)}),a(e,l),e.pipe(c).pipe(u).pipe(l),l}})),$n=Z(((e,t)=>{t.exports=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction==`function`)for(let[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}})),er=Z(((e,t)=>{var n=Q(`events`),r=Q(`tls`),i=Q(`http2`),a=$n(),o=Symbol(`currentStreamsCount`),s=Symbol(`request`),c=Symbol(`cachedOriginSet`),l=Symbol(`gracefullyClosing`),u=`maxDeflateDynamicTableSize.maxSessionMemory.maxHeaderListPairs.maxOutstandingPings.maxReservedRemoteStreams.maxSendHeaderBlockLength.paddingStrategy.localAddress.path.rejectUnauthorized.minDHSize.ca.cert.clientCertEngine.ciphers.key.pfx.servername.minVersion.maxVersion.secureProtocol.crl.honorCipherOrder.ecdhCurve.dhparam.secureOptions.sessionIdContext`.split(`.`),d=(e,t,n)=>{let r=0,i=e.length;for(;r<i;){let a=r+i>>>1;n(e[a],t)?r=a+1:i=a}return r},f=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,p=(e,t)=>{for(let n of e)n[c].length<t[c].length&&n[c].every(e=>t[c].includes(e))&&n[o]+t[o]<=t.remoteSettings.maxConcurrentStreams&&g(n)},m=(e,t)=>{for(let n of e)t[c].length<n[c].length&&t[c].every(e=>n[c].includes(e))&&t[o]+n[o]<=n.remoteSettings.maxConcurrentStreams&&g(t)},h=({agent:e,isFree:t})=>{let n={};for(let r in e.sessions){let i=e.sessions[r].filter(e=>{let n=e[_.kCurrentStreamsCount]<e.remoteSettings.maxConcurrentStreams;return t?n:!n});i.length!==0&&(n[r]=i)}return n},g=e=>{e[l]=!0,e[o]===0&&e.close()},_=class e extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:r=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new a({maxSize:r})}static normalizeOrigin(e,t){return typeof e==`string`&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t=``;if(e)for(let n of u)e[n]&&(t+=`:${e[n]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let n=this.queue[e][t];this._sessionsCount<this.maxSessions&&!n.completed&&(n.completed=!0,n())}getSession(t,n,r){return new Promise((a,u)=>{Array.isArray(r)?(r=[...r],a()):r=[{resolve:a,reject:u}];let h=this.normalizeOptions(n),g=e.normalizeOrigin(t,n&&n.servername);if(g===void 0){for(let{reject:e}of r)e(TypeError("The `origin` argument needs to be a string or an URL object"));return}if(h in this.sessions){let e=this.sessions[h],t=-1,n=-1,i;for(let r of e){let e=r.remoteSettings.maxConcurrentStreams;if(e<t)break;if(r[c].includes(g)){let a=r[o];if(a>=e||r[l]||r.destroyed)continue;i||(t=e),a>n&&(i=r,n=a)}}if(i){if(r.length!==1){for(let{reject:e}of r)e(Error(`Expected the length of listeners to be 1, got ${r.length}.\nPlease report this to https://github.com/szmarczak/http2-wrapper/`));return}r[0].resolve(i);return}}if(h in this.queue){if(g in this.queue[h]){this.queue[h][g].listeners.push(...r),this._tryToCreateNewSession(h,g);return}}else this.queue[h]={};let _=()=>{h in this.queue&&this.queue[h][g]===v&&(delete this.queue[h][g],Object.keys(this.queue[h]).length===0&&delete this.queue[h])},v=()=>{let e=`${g}:${h}`,a=!1;try{let u=i.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(e),...n});u[o]=0,u[l]=!1;let y=()=>u[o]<u.remoteSettings.maxConcurrentStreams,b=!0;u.socket.once(`session`,t=>{this.tlsSessionCache.set(e,t)}),u.once(`error`,t=>{for(let{reject:e}of r)e(t);this.tlsSessionCache.delete(e)}),u.setTimeout(this.timeout,()=>{u.destroy()}),u.once(`close`,()=>{if(a){b&&this._freeSessionsCount--,this._sessionsCount--;let e=this.sessions[h];e.splice(e.indexOf(u),1),e.length===0&&delete this.sessions[h]}else{let e=Error(`Session closed without receiving a SETTINGS frame`);e.code=`HTTP2WRAPPER_NOSETTINGS`;for(let{reject:t}of r)t(e);_()}this._tryToCreateNewSession(h,g)});let x=()=>{if(h in this.queue&&y()){for(let e of u[c])if(e in this.queue[h]){let{listeners:t}=this.queue[h][e];for(;t.length!==0&&y();)t.shift().resolve(u);let n=this.queue[h];if(n[e].listeners.length===0&&(delete n[e],Object.keys(n).length===0)){delete this.queue[h];break}if(!y())break}}};u.on(`origin`,()=>{u[c]=u.originSet,y()&&(x(),p(this.sessions[h],u))}),u.once(`remoteSettings`,()=>{if(u.ref(),u.unref(),this._sessionsCount++,v.destroyed){let e=Error(`Agent has been destroyed`);for(let t of r)t.reject(e);u.destroy();return}u[c]=u.originSet;{let e=this.sessions;if(h in e){let t=e[h];t.splice(d(t,u,f),0,u)}else e[h]=[u]}this._freeSessionsCount+=1,a=!0,this.emit(`session`,u),x(),_(),u[o]===0&&this._freeSessionsCount>this.maxFreeSessions&&u.close(),r.length!==0&&(this.getSession(g,n,r),r.length=0),u.on(`remoteSettings`,()=>{x(),p(this.sessions[h],u)})}),u[s]=u.request,u.request=(e,t)=>{if(u[l])throw Error(`The session is gracefully closing. No new streams are allowed.`);let n=u[s](e,t);return u.ref(),++u[o],u[o]===u.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,n.once(`close`,()=>{if(b=y(),--u[o],!u.destroyed&&!u.closed&&(m(this.sessions[h],u),y()&&!u.closed)){b||=(this._freeSessionsCount++,!0);let e=u[o]===0;e&&u.unref(),e&&(this._freeSessionsCount>this.maxFreeSessions||u[l])?u.close():(p(this.sessions[h],u),x())}}),n}}catch(e){for(let t of r)t.reject(e);_()}};v.listeners=r,v.completed=!1,v.destroyed=!1,this.queue[h][g]=v,this._tryToCreateNewSession(h,g)})}request(e,t,n,r){return new Promise((i,a)=>{this.getSession(e,t,[{reject:a,resolve:e=>{try{i(e.request(n,r))}catch(e){a(e)}}}])})}createConnection(t,n){return e.connect(t,n)}static connect(e,t){t.ALPNProtocols=[`h2`];let n=e.port||443,i=e.hostname||e.host;return t.servername===void 0&&(t.servername=i),r.connect(n,i,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[o]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let n of t)n.destroy(e);for(let e of Object.values(this.queue))for(let t of Object.values(e))t.destroyed=!0;this.queue={}}get freeSessions(){return h({agent:this,isFree:!0})}get busySessions(){return h({agent:this,isFree:!1})}};_.kCurrentStreamsCount=o,_.kGracefullyClosing=l,t.exports={Agent:_,globalAgent:new _}})),tr=Z(((e,t)=>{var{Readable:n}=Q(`stream`);t.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage=``,this.httpVersion=`2.0`,this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners(`data`),this.resume())}_read(){this.req&&this.req._request.resume()}}})),nr=Z(((e,t)=>{t.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname==`string`&&e.hostname.startsWith(`[`)?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||``}${e.search||``}`};return typeof e.port==`string`&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||``}:${e.password||``}`),t}})),rr=Z(((e,t)=>{t.exports=(e,t,n)=>{for(let r of n)e.on(r,(...e)=>t.emit(r,...e))}})),ir=Z(((e,t)=>{t.exports=e=>{switch(e){case`:method`:case`:scheme`:case`:authority`:case`:path`:return!0;default:return!1}}})),ar=Z(((e,t)=>{var n=(e,n,r)=>{t.exports[n]=class extends e{constructor(...e){super(typeof r==`string`?r:r(e)),this.name=`${super.name} [${n}]`,this.code=n}}};n(TypeError,`ERR_INVALID_ARG_TYPE`,e=>{let t=e[0].includes(`.`)?`property`:`argument`,n=e[1],r=Array.isArray(n);return r&&(n=`${n.slice(0,-1).join(`, `)} or ${n.slice(-1)}`),`The "${e[0]}" ${t} must be ${r?`one of`:`of`} type ${n}. Received ${typeof e[2]}`}),n(TypeError,`ERR_INVALID_PROTOCOL`,e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),n(Error,`ERR_HTTP_HEADERS_SENT`,e=>`Cannot ${e[0]} headers after they are sent to the client`),n(TypeError,`ERR_INVALID_HTTP_TOKEN`,e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),n(TypeError,`ERR_HTTP_INVALID_HEADER_VALUE`,e=>`Invalid value "${e[0]} for header "${e[1]}"`),n(TypeError,`ERR_INVALID_CHAR`,e=>`Invalid character in ${e[0]} [${e[1]}]`)})),or=Z(((e,t)=>{var n=Q(`http2`),{Writable:r}=Q(`stream`),{Agent:i,globalAgent:a}=er(),o=tr(),s=nr(),c=rr(),l=ir(),{ERR_INVALID_ARG_TYPE:u,ERR_INVALID_PROTOCOL:d,ERR_HTTP_HEADERS_SENT:f,ERR_INVALID_HTTP_TOKEN:p,ERR_HTTP_INVALID_HEADER_VALUE:m,ERR_INVALID_CHAR:h}=ar(),{HTTP2_HEADER_STATUS:g,HTTP2_HEADER_METHOD:_,HTTP2_HEADER_PATH:v,HTTP2_METHOD_CONNECT:y}=n.constants,b=Symbol(`headers`),x=Symbol(`origin`),S=Symbol(`session`),C=Symbol(`options`),w=Symbol(`flushedHeaders`),T=Symbol(`jobs`),E=/^[\^`\-\w!#$%&*+.|~]+$/,D=/[^\t\u0020-\u007E\u0080-\u00FF]/;t.exports=class extends r{constructor(e,t,n){super({autoDestroy:!1});let r=typeof e==`string`||e instanceof URL;if(r&&(e=s(e instanceof URL?e:new URL(e))),typeof t==`function`||t===void 0?(n=t,t=r?e:{...e}):t={...e,...t},t.h2session)this[S]=t.h2session;else if(t.agent===!1)this.agent=new i({maxFreeSessions:0});else if(t.agent===void 0||t.agent===null)typeof t.createConnection==`function`?(this.agent=new i({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=a;else if(typeof t.agent.request==`function`)this.agent=t.agent;else throw new u(`options.agent`,[`Agent-like Object`,`undefined`,`false`],t.agent);if(t.protocol&&t.protocol!==`https:`)throw new d(t.protocol,`https:`);let o=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,c=t.hostname||t.host||`localhost`;delete t.hostname,delete t.host,delete t.port;let{timeout:l}=t;if(t.timeout=void 0,this[b]=Object.create(null),this[T]=[],this.socket=null,this.connection=null,this.method=t.method||`GET`,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[e,n]of Object.entries(t.headers))this.setHeader(e,n);t.auth&&!(`authorization`in this[b])&&(this[b].authorization=`Basic `+Buffer.from(t.auth).toString(`base64`)),t.session=t.tlsSession,t.path=t.socketPath,this[C]=t,o===443?(this[x]=`https://${c}`,`:authority`in this[b]||(this[b][`:authority`]=c)):(this[x]=`https://${c}:${o}`,`:authority`in this[b]||(this[b][`:authority`]=`${c}:${o}`)),l&&this.setTimeout(l),n&&this.once(`response`,n),this[w]=!1}get method(){return this[b][_]}set method(e){e&&(this[b][_]=e.toUpperCase())}get path(){return this[b][v]}set path(e){e&&(this[b][v]=e)}get _mustNotHaveABody(){return this.method===`GET`||this.method===`HEAD`||this.method===`DELETE`}_write(e,t,n){if(this._mustNotHaveABody){n(Error(`The GET, HEAD and DELETE methods must NOT have a body`));return}this.flushHeaders();let r=()=>this._request.write(e,t,n);this._request?r():this[T].push(r)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[T].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit(`abort`)),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[w]||this.destroyed)return;this[w]=!0;let e=this.method===y,t=t=>{if(this._request=t,this.destroyed){t.destroy();return}e||c(t,this,[`timeout`,`continue`,`close`,`error`]);let n=e=>(...t)=>{!this.writable&&!this.destroyed?e(...t):this.once(`finish`,()=>{e(...t)})};t.once(`response`,n((n,r,i)=>{let a=new o(this.socket,t.readableHighWaterMark);this.res=a,a.req=this,a.statusCode=n[g],a.headers=n,a.rawHeaders=i,a.once(`end`,()=>{this.aborted?(a.aborted=!0,a.emit(`aborted`)):(a.complete=!0,a.socket=null,a.connection=null)}),e?(a.upgrade=!0,this.emit(`connect`,a,t,Buffer.alloc(0))?this.emit(`close`):t.destroy()):(t.on(`data`,e=>{!a._dumped&&!a.push(e)&&t.pause()}),t.once(`end`,()=>{a.push(null)}),this.emit(`response`,a)||a._dump())})),t.once(`headers`,n(e=>this.emit(`information`,{statusCode:e[g]}))),t.once(`trailers`,n((e,t,n)=>{let{res:r}=this;r.trailers=e,r.rawTrailers=n}));let{socket:r}=t.session;this.socket=r,this.connection=r;for(let e of this[T])e();this.emit(`socket`,this.socket)};if(this[S])try{t(this[S].request(this[b]))}catch(e){this.emit(`error`,e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[x],this[C],this[b]))}catch(e){this.emit(`error`,e)}}}getHeader(e){if(typeof e!=`string`)throw new u(`name`,`string`,e);return this[b][e.toLowerCase()]}get headersSent(){return this[w]}removeHeader(e){if(typeof e!=`string`)throw new u(`name`,`string`,e);if(this.headersSent)throw new f(`remove`);delete this[b][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new f(`set`);if(typeof e!=`string`||!E.test(e)&&!l(e))throw new p(`Header name`,e);if(t===void 0)throw new m(t,e);if(D.test(t))throw new h(`header content`,e);this[b][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let n=()=>this._request.setTimeout(e,t);return this._request?n():this[T].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}})),sr=Z(((e,t)=>{var n=Q(`tls`);t.exports=(e={},t=n.connect)=>new Promise((n,r)=>{let i=!1,a,o=async()=>{await c,a.off(`timeout`,s),a.off(`error`,r),e.resolveSocket?(n({alpnProtocol:a.alpnProtocol,socket:a,timeout:i}),i&&(await Promise.resolve(),a.emit(`timeout`))):(a.destroy(),n({alpnProtocol:a.alpnProtocol,timeout:i}))},s=async()=>{i=!0,o()},c=(async()=>{try{a=await t(e,o),a.on(`error`,r),a.once(`timeout`,s)}catch(e){r(e)}})()})})),cr=Z(((e,t)=>{var n=Q(`net`);t.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(t=r.startsWith(`[`)?r.indexOf(`]`)===-1?r:r.slice(1,-1):r.split(`:`,1)[0]),n.isIP(t)?``:t}})),lr=Z(((e,t)=>{var n=Q(`http`),r=Q(`https`),i=sr(),a=$n(),o=or(),s=cr(),c=nr(),l=new a({maxSize:100}),u=new Map,d=(e,t,n)=>{t._httpMessage={shouldKeepAlive:!0};let r=()=>{e.emit(`free`,t,n)};t.on(`free`,r);let i=()=>{e.removeSocket(t,n)};t.on(`close`,i);let a=()=>{e.removeSocket(t,n),t.off(`close`,i),t.off(`free`,r),t.off(`agentRemove`,a)};t.on(`agentRemove`,a),e.emit(`free`,t,n)},f=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!l.has(t)){if(u.has(t))return(await u.get(t)).alpnProtocol;let{path:n,agent:a}=e;e.path=e.socketPath;let o=i(e);u.set(t,o);try{let{socket:i,alpnProtocol:s}=await o;if(l.set(t,s),e.path=n,s===`h2`)i.destroy();else{let{globalAgent:t}=r,n=r.Agent.prototype.createConnection;a?a.createConnection===n?d(a,i,e):i.destroy():t.createConnection===n?d(t,i,e):i.destroy()}return u.delete(t),s}catch(e){throw u.delete(t),e}}return l.get(t)};t.exports=async(e,t,i)=>{if((typeof e==`string`||e instanceof URL)&&(e=c(new URL(e))),typeof t==`function`&&(i=t,t=void 0),t={ALPNProtocols:[`h2`,`http/1.1`],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||`https:`;let a=t.protocol===`https:`;t.host=t.hostname||t.host||`localhost`,t.session=t.tlsSession,t.servername=t.servername||s(t),t.port=t.port||(a?443:80),t._defaultAgent=a?r.globalAgent:n.globalAgent;let l=t.agent;if(l){if(l.addRequest)throw Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=l[a?`https`:`http`]}return a&&await f(t)===`h2`?(l&&(t.agent=l.http2),new o(t,i)):n.request(t,i)},t.exports.protocolCache=l})),ur=Z(((e,t)=>{var n=Q(`http2`),r=er(),i=or(),a=tr(),o=lr(),s=(e,t,n)=>new i(e,t,n),c=(e,t,n)=>{let r=new i(e,t,n);return r.end(),r};t.exports={...n,ClientRequest:i,IncomingMessage:a,...r,request:s,get:c,auto:o}})),dr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn();e.default=e=>t.default.nodeStream(e)&&t.default.function_(e.getBoundary)})),fr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Q(`fs`),n=Q(`util`),r=jn(),i=dr(),a=n.promisify(t.stat);e.default=async(e,o)=>{if(o&&`content-length`in o)return Number(o[`content-length`]);if(!e)return 0;if(r.default.string(e))return Buffer.byteLength(e);if(r.default.buffer(e))return e.length;if(i.default(e))return n.promisify(e.getLength.bind(e))();if(e instanceof t.ReadStream){let{size:t}=await a(e.path);return t===0?void 0:t}}})),pr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e,t,n){let r={};for(let i of n)r[i]=(...e)=>{t.emit(i,...e)},e.on(i,r[i]);return()=>{for(let t of n)e.off(t,r[t])}}e.default=t})),mr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=()=>{let e=[];return{once(t,n,r){t.once(n,r),e.push({origin:t,event:n,fn:r})},unhandleAll(){for(let t of e){let{origin:e,event:n,fn:r}=t;e.removeListener(n,r)}e.length=0}}}})),hr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TimeoutError=void 0;var t=Q(`net`),n=mr(),r=Symbol(`reentry`),i=()=>{},a=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name=`TimeoutError`,this.code=`ETIMEDOUT`}};e.TimeoutError=a,e.default=(e,o,s)=>{if(r in e)return i;e[r]=!0;let c=[],{once:l,unhandleAll:u}=n.default(),d=(e,t,n)=>{var r;let i=setTimeout(t,e,e,n);(r=i.unref)==null||r.call(i);let a=()=>{clearTimeout(i)};return c.push(a),a},{host:f,hostname:p}=s,m=(t,n)=>{e.destroy(new a(t,n))},h=()=>{for(let e of c)e();u()};if(e.once(`error`,t=>{if(h(),e.listenerCount(`error`)===0)throw t}),e.once(`close`,h),l(e,`response`,e=>{l(e,`end`,h)}),o.request!==void 0&&d(o.request,m,`request`),o.socket!==void 0){let t=()=>{m(o.socket,`socket`)};e.setTimeout(o.socket,t),c.push(()=>{e.removeListener(`timeout`,t)})}return l(e,`socket`,n=>{let{socketPath:r}=e;if(n.connecting){let e=!!(r??t.isIP(p??f??``)!==0);if(o.lookup!==void 0&&!e&&n.address().address===void 0){let e=d(o.lookup,m,`lookup`);l(n,`lookup`,e)}if(o.connect!==void 0){let t=()=>d(o.connect,m,`connect`);e?l(n,`connect`,t()):l(n,`lookup`,e=>{e===null&&l(n,`connect`,t())})}o.secureConnect!==void 0&&s.protocol===`https:`&&l(n,`connect`,()=>{let e=d(o.secureConnect,m,`secureConnect`);l(n,`secureConnect`,e)})}if(o.send!==void 0){let t=()=>d(o.send,m,`send`);n.connecting?l(n,`connect`,()=>{l(e,`upload-complete`,t())}):l(e,`upload-complete`,t())}}),o.response!==void 0&&l(e,`upload-complete`,()=>{let t=d(o.response,m,`response`);l(e,`response`,t)}),h}})),gr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn();e.default=e=>{e=e;let n={protocol:e.protocol,hostname:t.default.string(e.hostname)&&e.hostname.startsWith(`[`)?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||``}${e.search||``}`};return t.default.string(e.port)&&e.port.length>0&&(n.port=Number(e.port)),(e.username||e.password)&&(n.auth=`${e.username||``}:${e.password||``}`),n}})),_r=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Q(`url`),n=[`protocol`,`host`,`hostname`,`port`,`pathname`,`search`];e.default=(e,r)=>{if(r.path){if(r.pathname)throw TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(r.search)throw TypeError("Parameters `path` and `search` are mutually exclusive.");if(r.searchParams)throw TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(r.search&&r.searchParams)throw TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!r.protocol)throw TypeError(`No URL protocol specified`);e=`${r.protocol}//${r.hostname??r.host??``}`}let i=new t.URL(e);if(r.path){let e=r.path.indexOf(`?`);e===-1?r.pathname=r.path:(r.pathname=r.path.slice(0,e),r.search=r.path.slice(e+1)),delete r.path}for(let e of n)r[e]&&(i[e]=r[e].toString());return i}})),vr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e==`object`?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e==`object`?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e==`object`?this.weakMap.has(e):this.map.has(e)}}})),yr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=async e=>{let t=[],n=0;for await(let r of e)t.push(r),n+=Buffer.byteLength(r);return Buffer.isBuffer(t[0])?Buffer.concat(t,n):Buffer.from(t.join(``))}})),br=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.dnsLookupIpVersionToFamily=e.isDnsLookupIpVersion=void 0;var t={auto:0,ipv4:4,ipv6:6};e.isDnsLookupIpVersion=e=>e in t,e.dnsLookupIpVersionToFamily=n=>{if(e.isDnsLookupIpVersion(n))return t[n];throw Error(`Invalid DNS lookup IP version`)}})),xr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isResponseOk=void 0,e.isResponseOk=e=>{let{statusCode:t}=e,n=e.request.options.followRedirect?299:399;return t>=200&&t<=n||t===304}})),Sr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=new Set;e.default=e=>{t.has(e)||(t.add(e),process.emitWarning(`Got: ${e}`,{type:`DeprecationWarning`}))}})),Cr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn();e.default=(e,n)=>{if(t.default.null_(e.encoding))throw TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");t.assert.any([t.default.string,t.default.undefined],e.encoding),t.assert.any([t.default.boolean,t.default.undefined],e.resolveBodyOnly),t.assert.any([t.default.boolean,t.default.undefined],e.methodRewriting),t.assert.any([t.default.boolean,t.default.undefined],e.isStream),t.assert.any([t.default.string,t.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType=`text`);let{retry:r}=e;if(e.retry=n?{...n.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},t.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(e=>e.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):t.default.number(r)&&(e.retry.limit=r),t.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(t.default.number))),t.default.object(e.pagination)){n&&(e.pagination={...n.pagination,...e.pagination});let{pagination:r}=e;if(!t.default.function_(r.transform))throw Error("`options.pagination.transform` must be implemented");if(!t.default.function_(r.shouldContinue))throw Error("`options.pagination.shouldContinue` must be implemented");if(!t.default.function_(r.filter))throw TypeError("`options.pagination.filter` must be implemented");if(!t.default.function_(r.paginate))throw Error("`options.pagination.paginate` must be implemented")}return e.responseType===`json`&&e.headers.accept===void 0&&(e.headers.accept=`application/json`),e}})),wr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.retryAfterStatusCodes=void 0,e.retryAfterStatusCodes=new Set([413,429,503]),e.default=({attemptCount:e,retryOptions:t,error:n,retryAfter:r})=>{if(e>t.limit)return 0;let i=t.methods.includes(n.options.method),a=t.errorCodes.includes(n.code),o=n.response&&t.statusCodes.includes(n.response.statusCode);if(!i||!a&&!o)return 0;if(n.response){if(r)return t.maxRetryAfter===void 0||r>t.maxRetryAfter?0:r;if(n.response.statusCode===413)return 0}let s=Math.random()*100;return 2**(e-1)*1e3+s}})),Tr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.UnsupportedProtocolError=e.ReadError=e.TimeoutError=e.UploadError=e.CacheError=e.HTTPError=e.MaxRedirectsError=e.RequestError=e.setNonEnumerableProperties=e.knownHookEvents=e.withoutBody=e.kIsNormalizedAlready=void 0;var t=Q(`util`),n=Q(`stream`),r=Q(`fs`),i=Q(`url`),a=Q(`http`),o=Q(`http`),s=Q(`https`),c=Pn(),l=Fn(),u=Xn(),d=Qn(),f=ur(),p=Wn(),m=jn(),h=fr(),g=dr(),_=pr(),v=hr(),y=gr(),b=_r(),x=vr(),S=yr(),C=br(),w=xr(),T=Sr(),E=Cr(),D=wr(),O,k=Symbol(`request`),A=Symbol(`response`),j=Symbol(`responseSize`),M=Symbol(`downloadedSize`),N=Symbol(`bodySize`),P=Symbol(`uploadedSize`),F=Symbol(`serverResponsesPiped`),I=Symbol(`unproxyEvents`),L=Symbol(`isFromCache`),R=Symbol(`cancelTimeouts`),z=Symbol(`startedReading`),B=Symbol(`stopReading`),V=Symbol(`triggerRead`),H=Symbol(`body`),ee=Symbol(`jobs`),U=Symbol(`originalResponse`),te=Symbol(`retryTimeout`);e.kIsNormalizedAlready=Symbol(`isNormalizedAlready`);var ne=m.default.string(process.versions.brotli);e.withoutBody=new Set([`GET`,`HEAD`]),e.knownHookEvents=[`init`,`beforeRequest`,`beforeRedirect`,`beforeError`,`beforeRetry`,`afterResponse`];function re(e){for(let t in e){let n=e[t];if(!m.default.string(n)&&!m.default.number(n)&&!m.default.boolean(n)&&!m.default.null_(n)&&!m.default.undefined(n))throw TypeError(`The \`searchParams\` value '${String(n)}' must be a string, number, boolean or null`)}}function ie(e){return m.default.object(e)&&!(`statusCode`in e)}var W=new x.default,ae=async e=>new Promise((t,n)=>{let r=e=>{n(e)};e.pending||t(),e.once(`error`,r),e.once(`ready`,()=>{e.off(`error`,r),t()})}),oe=new Set([300,301,302,303,304,307,308]),G=[`context`,`body`,`json`,`form`];e.setNonEnumerableProperties=(e,t)=>{let n={};for(let t of e)if(t)for(let e of G)e in t&&(n[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,n)};var K=class extends Error{constructor(e,t,n){if(super(e),Error.captureStackTrace(this,this.constructor),this.name=`RequestError`,this.code=t.code??`ERR_GOT_REQUEST_ERROR`,n instanceof he?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[A]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=this.request?.timings,m.default.string(t.stack)&&m.default.string(this.stack)){let e=this.stack.indexOf(this.message)+this.message.length,n=this.stack.slice(e).split(`
21
22
  `).reverse(),r=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(`
22
23
  `).reverse();for(;r.length!==0&&r[0]===n[0];)n.shift();this.stack=`${this.stack.slice(0,e)}${n.reverse().join(`
23
24
  `)}${r.reverse().join(`
24
- `)}`}}};e.RequestError=K;var se=class extends K{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name=`MaxRedirectsError`,this.code=`ERR_TOO_MANY_REDIRECTS`}};e.MaxRedirectsError=se;var ce=class extends K{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name=`HTTPError`,this.code=`ERR_NON_2XX_3XX_RESPONSE`}};e.HTTPError=ce;var le=class extends K{constructor(e,t){super(e.message,e,t),this.name=`CacheError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_CACHE_ACCESS`:this.code}};e.CacheError=le;var ue=class extends K{constructor(e,t){super(e.message,e,t),this.name=`UploadError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_UPLOAD`:this.code}};e.UploadError=ue;var de=class extends K{constructor(e,t,n){super(e.message,e,n),this.name=`TimeoutError`,this.event=e.event,this.timings=t}};e.TimeoutError=de;var fe=class extends K{constructor(e,t){super(e.message,e,t),this.name=`ReadError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_READING_RESPONSE_STREAM`:this.code}};e.ReadError=fe;var pe=class extends K{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name=`UnsupportedProtocolError`,this.code=`ERR_UNSUPPORTED_PROTOCOL`}};e.UnsupportedProtocolError=pe;var me=[`socket`,`connect`,`continue`,`information`,`upgrade`,`timeout`],he=class extends n.Duplex{constructor(t,n={},i){super({autoDestroy:!1,highWaterMark:0}),this[M]=0,this[P]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[B]=!1,this[V]=!1,this[ee]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on(`pipe`,e=>{e.prependListener(`data`,a),e.on(`data`,s),e.prependListener(`end`,a),e.on(`end`,s)}),this.on(`unpipe`,e=>{e.off(`data`,a),e.off(`data`,s),e.off(`end`,a),e.off(`end`,s)}),this.on(`pipe`,e=>{e instanceof o.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});let{json:c,body:l,form:u}=n;if((c||l||u)&&this._lockWrite(),e.kIsNormalizedAlready in n)this.options=n;else try{this.options=this.constructor.normalizeArguments(t,n,i)}catch(e){m.default.nodeStream(n.body)&&n.body.destroy(),this.destroy(e);return}(async()=>{var e;try{this.options.body instanceof r.ReadStream&&await ae(this.options.body);let{url:t}=this.options;if(!t)throw TypeError("Missing `url` property");if(this.requestUrl=t.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(e=this[k])==null||e.destroy();return}for(let e of this[ee])e();this[ee].length=0,this.requestInitialized=!0}catch(e){if(e instanceof K){this._beforeError(e);return}this.destroyed||this.destroy(e)}})()}static normalizeArguments(n,r,a){var o;let s=r;if(m.default.object(n)&&!m.default.urlInstance(n))r={...a,...n,...r};else{if(n&&r&&r.url!==void 0)throw TypeError("The `url` option is mutually exclusive with the `input` argument");r={...a,...r},n!==void 0&&(r.url=n),m.default.urlInstance(r.url)&&(r.url=new i.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),m.assert.any([m.default.string,m.default.undefined],r.method),m.assert.any([m.default.object,m.default.undefined],r.headers),m.assert.any([m.default.string,m.default.urlInstance,m.default.undefined],r.prefixUrl),m.assert.any([m.default.object,m.default.undefined],r.cookieJar),m.assert.any([m.default.object,m.default.string,m.default.undefined],r.searchParams),m.assert.any([m.default.object,m.default.string,m.default.undefined],r.cache),m.assert.any([m.default.object,m.default.number,m.default.undefined],r.timeout),m.assert.any([m.default.object,m.default.undefined],r.context),m.assert.any([m.default.object,m.default.undefined],r.hooks),m.assert.any([m.default.boolean,m.default.undefined],r.decompress),m.assert.any([m.default.boolean,m.default.undefined],r.ignoreInvalidCookies),m.assert.any([m.default.boolean,m.default.undefined],r.followRedirect),m.assert.any([m.default.number,m.default.undefined],r.maxRedirects),m.assert.any([m.default.boolean,m.default.undefined],r.throwHttpErrors),m.assert.any([m.default.boolean,m.default.undefined],r.http2),m.assert.any([m.default.boolean,m.default.undefined],r.allowGetBody),m.assert.any([m.default.string,m.default.undefined],r.localAddress),m.assert.any([C.isDnsLookupIpVersion,m.default.undefined],r.dnsLookupIpVersion),m.assert.any([m.default.object,m.default.undefined],r.https),m.assert.any([m.default.boolean,m.default.undefined],r.rejectUnauthorized),r.https&&(m.assert.any([m.default.boolean,m.default.undefined],r.https.rejectUnauthorized),m.assert.any([m.default.function_,m.default.undefined],r.https.checkServerIdentity),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.certificateAuthority),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.key),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.certificate),m.assert.any([m.default.string,m.default.undefined],r.https.passphrase),m.assert.any([m.default.string,m.default.buffer,m.default.array,m.default.undefined],r.https.pfx)),m.assert.any([m.default.object,m.default.undefined],r.cacheOptions),m.default.string(r.method)?r.method=r.method.toUpperCase():r.method=`GET`,r.headers===a?.headers?r.headers={...r.headers}:r.headers=p({...a?.headers,...r.headers}),`slashes`in r)throw TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if(`auth`in r)throw TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if(`searchParams`in r&&r.searchParams&&r.searchParams!==a?.searchParams){let e;if(m.default.string(r.searchParams)||r.searchParams instanceof i.URLSearchParams)e=new i.URLSearchParams(r.searchParams);else{re(r.searchParams),e=new i.URLSearchParams;for(let t in r.searchParams){let n=r.searchParams[t];n===null?e.append(t,``):n!==void 0&&e.append(t,n)}}(o=a?.searchParams)==null||o.forEach((t,n)=>{e.has(n)||e.append(n,t)}),r.searchParams=e}if(r.username=r.username??``,r.password=r.password??``,m.default.undefined(r.prefixUrl)?r.prefixUrl=a?.prefixUrl??``:(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==``&&!r.prefixUrl.endsWith(`/`)&&(r.prefixUrl+=`/`)),m.default.string(r.url)){if(r.url.startsWith(`/`))throw Error("`input` must not start with a slash when using `prefixUrl`");r.url=b.default(r.prefixUrl+r.url,r)}else(m.default.undefined(r.url)&&r.prefixUrl!==``||r.protocol)&&(r.url=b.default(r.prefixUrl,r));if(r.url){`port`in r&&delete r.port;let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{let n=r.url;if(!n.href.startsWith(t))throw Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new i.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if(t===`unix:`&&(t=`http:`,r.url=new i.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),t!==`http:`&&t!==`https:`)throw new pe(r);r.username===``?r.username=r.url.username:r.url.username=r.username,r.password===``?r.password=r.url.password:r.url.password=r.password}let{cookieJar:c}=r;if(c){let{setCookie:e,getCookieString:n}=c;m.assert.function_(e),m.assert.function_(n),e.length===4&&n.length===0&&(e=t.promisify(e.bind(r.cookieJar)),n=t.promisify(n.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:n})}let{cache:d}=r;if(d&&(W.has(d)||W.set(d,new u(((e,t)=>{let n=e[k](e,t);return m.default.promise(n)&&(n.once=(e,t)=>{if(e===`error`)n.catch(t);else if(e===`abort`)(async()=>{try{(await n).once(`abort`,t)}catch{}})();else throw Error(`Unknown HTTP2 promise event: ${e}`);return n}),n}),d))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)O||=new l.default,r.dnsCache=O;else if(!m.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${m.default(r.dnsCache)}`);m.default.number(r.timeout)?r.timeout={request:r.timeout}:a&&r.timeout!==a.timeout?r.timeout={...a.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let f=r.hooks===a?.hooks;r.hooks={...r.hooks};for(let t of e.knownHookEvents)if(t in r.hooks){if(m.default.array(r.hooks[t]))r.hooks[t]=[...r.hooks[t]];else throw TypeError(`Parameter \`${t}\` must be an Array, got ${m.default(r.hooks[t])}`)}else r.hooks[t]=[];if(a&&!f)for(let t of e.knownHookEvents)a.hooks[t].length>0&&(r.hooks[t]=[...a.hooks[t],...r.hooks[t]]);if(`family`in r&&T.default(`"options.family" was never documented, please use "options.dnsLookupIpVersion"`),a!=null&&a.https&&(r.https={...a.https,...r.https}),`rejectUnauthorized`in r&&T.default(`"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"`),`checkServerIdentity`in r&&T.default(`"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"`),`ca`in r&&T.default(`"options.ca" was never documented, please use "options.https.certificateAuthority"`),`key`in r&&T.default(`"options.key" was never documented, please use "options.https.key"`),`cert`in r&&T.default(`"options.cert" was never documented, please use "options.https.certificate"`),`passphrase`in r&&T.default(`"options.passphrase" was never documented, please use "options.https.passphrase"`),`pfx`in r&&T.default(`"options.pfx" was never documented, please use "options.https.pfx"`),`followRedirects`in r)throw TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let e in r.agent)if(e!==`http`&&e!==`https`&&e!==`http2`)throw TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``)}return r.maxRedirects=r.maxRedirects??0,e.setNonEnumerableProperties([a,s],r),E.default(r,a)}_lockWrite(){let e=()=>{throw TypeError(`The payload has been already provided`)};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:t}=this,{headers:r}=t,a=!m.default.undefined(t.form),o=!m.default.undefined(t.json),s=!m.default.undefined(t.body),c=a||o||s,l=e.withoutBody.has(t.method)&&!(t.method===`GET`&&t.allowGetBody);if(this._cannotHaveBody=l,c){if(l)throw TypeError(`The \`${t.method}\` method cannot be used with a body`);if([s,a,o].filter(e=>e).length>1)throw TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(t.body instanceof n.Readable)&&!m.default.string(t.body)&&!m.default.buffer(t.body)&&!g.default(t.body))throw TypeError("The `body` option must be a stream.Readable, string or Buffer");if(a&&!m.default.object(t.form))throw TypeError("The `form` option must be an Object");{let e=!m.default.string(r[`content-type`]);s?(g.default(t.body)&&e&&(r[`content-type`]=`multipart/form-data; boundary=${t.body.getBoundary()}`),this[H]=t.body):a?(e&&(r[`content-type`]=`application/x-www-form-urlencoded`),this[H]=new i.URLSearchParams(t.form).toString()):(e&&(r[`content-type`]=`application/json`),this[H]=t.stringifyJson(t.json));let n=await h.default(this[H],t.headers);m.default.undefined(r[`content-length`])&&m.default.undefined(r[`transfer-encoding`])&&!l&&!m.default.undefined(n)&&(r[`content-length`]=String(n))}}else l?this._lockWrite():this._unlockWrite();this[N]=Number(r[`content-length`])||void 0}async _onResponseBase(e){let{options:t}=this,{url:n}=t;this[U]=e,t.decompress&&(e=d(e));let r=e.statusCode,o=e;o.statusMessage=o.statusMessage?o.statusMessage:a.STATUS_CODES[r],o.url=t.url.toString(),o.requestUrl=this.requestUrl,o.redirectUrls=this.redirects,o.request=this,o.isFromCache=e.fromCache||!1,o.ip=this.ip,o.retryCount=this.retryCount,this[L]=o.isFromCache,this[j]=Number(e.headers[`content-length`])||void 0,this[A]=e,e.once(`end`,()=>{this[j]=this[M],this.emit(`downloadProgress`,this.downloadProgress)}),e.once(`error`,t=>{e.destroy(),this._beforeError(new fe(t,this))}),e.once(`aborted`,()=>{this._beforeError(new fe({name:`Error`,message:`The server aborted pending request`,code:`ECONNRESET`},this))}),this.emit(`downloadProgress`,this.downloadProgress);let s=e.headers[`set-cookie`];if(m.default.object(t.cookieJar)&&s){let e=s.map(async e=>t.cookieJar.setCookie(e,n.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){this._beforeError(e);return}}if(t.followRedirect&&e.headers.location&&oe.has(r)){if(e.resume(),this[k]&&(this[R](),delete this[k],this[I]()),(r===303&&t.method!==`GET`&&t.method!==`HEAD`||!t.methodRewriting)&&(t.method=`GET`,`body`in t&&delete t.body,`json`in t&&delete t.json,`form`in t&&delete t.form,this[H]=void 0,delete t.headers[`content-length`]),this.redirects.length>=t.maxRedirects){this._beforeError(new se(this));return}try{let r=Buffer.from(e.headers.location,`binary`).toString(),a=new i.URL(r,n),s=a.toString();function c(e){return e.protocol===`unix:`||e.hostname===`unix`}if(!c(n)&&c(a)){this._beforeError(new K(`Cannot redirect to UNIX socket`,{},this));return}a.hostname!==n.hostname||a.port!==n.port?(`host`in t.headers&&delete t.headers.host,`cookie`in t.headers&&delete t.headers.cookie,`authorization`in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username=``,t.password=``)):(a.username=t.username,a.password=t.password),this.redirects.push(s),t.url=a;for(let e of t.hooks.beforeRedirect)await e(t,o);this.emit(`redirect`,o,t),await this._makeRequest()}catch(e){this._beforeError(e);return}}else if(t.isStream&&t.throwHttpErrors&&!w.isResponseOk(o))this._beforeError(new ce(o));else{e.on(`readable`,()=>{this[V]&&this._read()}),this.on(`resume`,()=>{e.resume()}),this.on(`pause`,()=>{e.pause()}),e.once(`end`,()=>{this.push(null)}),this.emit(`response`,e);for(let n of this[F])if(!n.headersSent){for(let r in e.headers){let i=!t.decompress||r!==`content-encoding`,a=e.headers[r];i&&n.setHeader(r,a)}n.statusCode=r}}}async _onResponse(e){try{await this._onResponseBase(e)}catch(e){this._beforeError(e)}}_onRequest(e){let{options:t}=this,{timeout:n,url:r}=t;c.default(e),this[R]=v.default(e,n,r);let i=t.cache?`cacheableResponse`:`response`;e.once(i,e=>{this._onResponse(e)}),e.once(`error`,t=>{var n;e.destroy(),(n=e.res)==null||n.removeAllListeners(`end`),t=t instanceof v.TimeoutError?new de(t,this.timings,this):new K(t.message,t,this),this._beforeError(t)}),this[I]=_.default(e,this,me),this[k]=e,this.emit(`uploadProgress`,this.uploadProgress);let a=this[H],o=this.redirects.length===0?this:e;m.default.nodeStream(a)?(a.pipe(o),a.once(`error`,e=>{this._beforeError(new ue(e,this))})):(this._unlockWrite(),m.default.undefined(a)?(this._cannotHaveBody||this._noPipe)&&(o.end(),this._lockWrite()):(this._writeRequest(a,void 0,()=>{}),o.end(),this._lockWrite())),this.emit(`request`,e)}async _createCacheableRequest(e,t){return new Promise((n,r)=>{Object.assign(t,y.default(e)),delete t.url;let i,a=W.get(t.cache)(t,async e=>{e._readableState.autoDestroy=!1,i&&(await i).emit(`cacheableResponse`,e),n(e)});t.url=e,a.once(`error`,r),a.once(`request`,async e=>{i=e,n(i)})})}async _makeRequest(){let{options:e}=this,{headers:t}=e;for(let e in t)if(m.default.undefined(t[e]))delete t[e];else if(m.default.null_(t[e]))throw TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(e.decompress&&m.default.undefined(t[`accept-encoding`])&&(t[`accept-encoding`]=ne?`gzip, deflate, br`:`gzip, deflate`),e.cookieJar){let t=await e.cookieJar.getCookieString(e.url.toString());m.default.nonEmptyString(t)&&(e.headers.cookie=t)}for(let t of e.hooks.beforeRequest){let n=await t(e);if(!m.default.undefined(n)){e.request=()=>n;break}}e.body&&this[H]!==e.body&&(this[H]=e.body);let{agent:n,request:r,timeout:i,url:o}=e;if(e.dnsCache&&!(`lookup`in e)&&(e.lookup=e.dnsCache.lookup),o.hostname===`unix`){let t=/(?<socketPath>.+?):(?<path>.+)/.exec(`${o.pathname}${o.search}`);if(t!=null&&t.groups){let{socketPath:n,path:r}=t.groups;Object.assign(e,{socketPath:n,path:r,host:``})}}let c=o.protocol===`https:`,l;l=e.http2?f.auto:c?s.request:a.request;let d=e.request??l,p=e.cache?this._createCacheableRequest:d;n&&!e.http2&&(e.agent=n[c?`https`:`http`]),e[k]=d,delete e.request,delete e.timeout;let h=e;if(h.shared=e.cacheOptions?.shared,h.cacheHeuristic=e.cacheOptions?.cacheHeuristic,h.immutableMinTimeToLive=e.cacheOptions?.immutableMinTimeToLive,h.ignoreCargoCult=e.cacheOptions?.ignoreCargoCult,e.dnsLookupIpVersion!==void 0)try{h.family=C.dnsLookupIpVersionToFamily(e.dnsLookupIpVersion)}catch{throw Error("Invalid `dnsLookupIpVersion` option value")}e.https&&(`rejectUnauthorized`in e.https&&(h.rejectUnauthorized=e.https.rejectUnauthorized),e.https.checkServerIdentity&&(h.checkServerIdentity=e.https.checkServerIdentity),e.https.certificateAuthority&&(h.ca=e.https.certificateAuthority),e.https.certificate&&(h.cert=e.https.certificate),e.https.key&&(h.key=e.https.key),e.https.passphrase&&(h.passphrase=e.https.passphrase),e.https.pfx&&(h.pfx=e.https.pfx));try{let t=await p(o,h);m.default.undefined(t)&&(t=l(o,h)),e.request=r,e.timeout=i,e.agent=n,e.https&&(`rejectUnauthorized`in e.https&&delete h.rejectUnauthorized,e.https.checkServerIdentity&&delete h.checkServerIdentity,e.https.certificateAuthority&&delete h.ca,e.https.certificate&&delete h.cert,e.https.key&&delete h.key,e.https.passphrase&&delete h.passphrase,e.https.pfx&&delete h.pfx),ie(t)?this._onRequest(t):this.writable?(this.once(`finish`,()=>{this._onResponse(t)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(t)}catch(e){throw e instanceof u.CacheError?new le(e,this):new K(e.message,e,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new K(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[B])return;let{options:t}=this,n=this.retryCount+1;this[B]=!0,e instanceof K||(e=new K(e.message,e,this));let r=e,{response:i}=r;(async()=>{if(i&&!i.body){i.setEncoding(this._readableState.encoding);try{i.rawBody=await S.default(i),i.body=i.rawBody.toString()}catch{}}if(this.listenerCount(`retry`)!==0){let a;try{let e;i&&`retry-after`in i.headers&&(e=Number(i.headers[`retry-after`]),Number.isNaN(e)?(e=Date.parse(i.headers[`retry-after`])-Date.now(),e<=0&&(e=1)):e*=1e3),a=await t.retry.calculateDelay({attemptCount:n,retryOptions:t.retry,error:r,retryAfter:e,computedValue:D.default({attemptCount:n,retryOptions:t.retry,error:r,retryAfter:e,computedValue:0})})}catch(e){this._error(new K(e.message,e,this));return}if(a){let t=async()=>{try{for(let e of this.options.hooks.beforeRetry)await e(this.options,r,n)}catch(t){this._error(new K(t.message,e,this));return}this.destroyed||(this.destroy(),this.emit(`retry`,n,e))};this[te]=setTimeout(t,a);return}}this._error(r)})()}_read(){this[V]=!0;let e=this[A];if(e&&!this[B]){e.readableLength&&(this[V]=!1);let t;for(;(t=e.read())!==null;){this[M]+=t.length,this[z]=!0;let e=this.downloadProgress;e.percent<1&&this.emit(`downloadProgress`,e),this.push(t)}}}_write(e,t,n){let r=()=>{this._writeRequest(e,t,n)};this.requestInitialized?r():this[ee].push(r)}_writeRequest(e,t,n){this[k].destroyed||(this._progressCallbacks.push(()=>{this[P]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit(`uploadProgress`,n)}),this[k].write(e,t,e=>{!e&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),n(e)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();k in this?this[k].destroyed?e():this[k].end(t=>{t||(this[N]=this[P],this.emit(`uploadProgress`,this.uploadProgress),this[k].emit(`upload-complete`)),e(t)}):e()};this.requestInitialized?t():this[ee].push(t)}_destroy(e,t){var n;this[B]=!0,clearTimeout(this[te]),k in this&&(this[R](),(n=this[A])!=null&&n.complete||this[k].destroy()),e!==null&&!m.default.undefined(e)&&!(e instanceof K)&&(e=new K(e.message,e,this)),t(e)}get _isAboutToError(){return this[B]}get ip(){return this.socket?.remoteAddress}get aborted(){var e;return(this[k]?.destroyed??this.destroyed)&&!((e=this[U])!=null&&e.complete)}get socket(){return this[k]?.socket??void 0}get downloadProgress(){let e;return e=this[j]?this[M]/this[j]:+(this[j]===this[M]),{percent:e,transferred:this[M],total:this[j]}}get uploadProgress(){let e;return e=this[N]?this[P]/this[N]:+(this[N]===this[P]),{percent:e,transferred:this[P],total:this[N]}}get timings(){return this[k]?.timings}get isFromCache(){return this[L]}pipe(e,t){if(this[z])throw Error(`Failed to pipe. The response has been emitted already.`);return e instanceof o.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof o.ServerResponse&&this[F].delete(e),super.unpipe(e),this}};e.default=he})),wr=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.CancelError=e.ParseError=void 0;var r=Cr();e.ParseError=class extends r.RequestError{constructor(e,t){let{options:n}=t.request;super(`${e.message} in "${n.url.toString()}"`,e,t.request),this.name=`ParseError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_BODY_PARSE_FAILURE`:this.code}},e.CancelError=class extends r.RequestError{constructor(e){super(`Promise was canceled`,{},e),this.name=`CancelError`,this.code=`ERR_CANCELED`}get isCanceled(){return!0}},n(Cr(),e)})),Tr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=wr();e.default=(e,n,r,i)=>{let{rawBody:a}=e;try{if(n===`text`)return a.toString(i);if(n===`json`)return a.length===0?``:r(a.toString());if(n===`buffer`)return a;throw new t.ParseError({message:`Unknown body type '${n}'`,name:`Error`},e)}catch(n){throw new t.ParseError(n,e)}}})),Er=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0});var r=Q(`events`),i=kn(),a=An(),o=wr(),s=Tr(),c=Cr(),l=dr(),u=_r(),d=yr(),f=[`request`,`response`,`redirect`,`uploadProgress`,`downloadProgress`];function p(e){let t,n,m=new r.EventEmitter,h=new a((r,a,g)=>{let _=v=>{let y=new c.default(void 0,e);y.retryCount=v,y._noPipe=!0,g(()=>y.destroy()),g.shouldReject=!1,g(()=>a(new o.CancelError(y))),t=y,y.once(`response`,async e=>{if(e.retryCount=v,e.request.aborted)return;let t;try{t=await u.default(y),e.rawBody=t}catch{return}if(y._isAboutToError)return;let i=(e.headers[`content-encoding`]??``).toLowerCase(),a=[`gzip`,`deflate`,`br`].includes(i),{options:l}=y;if(a&&!l.decompress)e.body=t;else try{e.body=s.default(e,l.responseType,l.parseJson,l.encoding)}catch(n){if(e.body=t.toString(),d.isResponseOk(e)){y._beforeError(n);return}}try{for(let[t,n]of l.hooks.afterResponse.entries())e=await n(e,async e=>{let n=c.default.normalizeArguments(void 0,{...e,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},l);n.hooks.afterResponse=n.hooks.afterResponse.slice(0,t);for(let e of n.hooks.beforeRetry)await e(n);let r=p(n);return g(()=>{r.catch(()=>{}),r.cancel()}),r})}catch(e){y._beforeError(new o.RequestError(e.message,e,y));return}n=e,d.isResponseOk(e)?(y.destroy(),r(y.options.resolveBodyOnly?e.body:e)):y._beforeError(new o.HTTPError(e))});let b=e=>{if(h.isCanceled)return;let{options:t}=y;if(e instanceof o.HTTPError&&!t.throwHttpErrors){let{response:t}=e;r(y.options.resolveBodyOnly?t.body:t)}else a(e)};y.once(`error`,b);let x=y.options.body;y.once(`retry`,(e,t)=>{x===t.request?.options.body&&i.default.nodeStream(t.request?.options.body)?b(t):_(e)}),l.default(y,m,f)};_(0)});h.on=(e,t)=>(m.on(e,t),h);let g=e=>{let t=(async()=>{await h;let{options:t}=n.request;return s.default(n,e,t.parseJson,t.encoding)})();return Object.defineProperties(t,Object.getOwnPropertyDescriptors(h)),t};return h.json=()=>{let{headers:e}=t.options;return!t.writableFinished&&e.accept===void 0&&(e.accept=`application/json`),g(`json`)},h.buffer=()=>g(`buffer`),h.text=()=>g(`text`),h}e.default=p,n(wr(),e)})),Dr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=wr();function n(e,...n){let r=(async()=>{if(e instanceof t.RequestError)try{for(let t of n)if(t)for(let n of t)e=await n(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}e.default=n})),Or=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=kn();function n(e){for(let r of Object.values(e))(t.default.plainObject(r)||t.default.array(r))&&n(r);return Object.freeze(e)}e.default=n})),kr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0})})),Ar=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.defaultHandler=void 0;var r=kn(),i=Er(),a=Dr(),o=Cr(),s=Or(),c={RequestError:i.RequestError,CacheError:i.CacheError,ReadError:i.ReadError,HTTPError:i.HTTPError,MaxRedirectsError:i.MaxRedirectsError,TimeoutError:i.TimeoutError,ParseError:i.ParseError,CancelError:i.CancelError,UnsupportedProtocolError:i.UnsupportedProtocolError,UploadError:i.UploadError},l=async e=>new Promise(t=>{setTimeout(t,e)}),{normalizeArguments:u}=o.default,d=(...e)=>{let t;for(let n of e)t=u(void 0,n,t);return t},f=e=>e.isStream?new o.default(void 0,e):i.default(e),p=e=>`defaults`in e&&`options`in e.defaults,m=[`get`,`post`,`put`,`patch`,`head`,`delete`];e.defaultHandler=(e,t)=>t(e);var h=(e,t)=>{if(e)for(let n of e)n(t)},g=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(e=>((t,n)=>{let r,i=e(t,e=>(r=n(e),r));if(i!==r&&!t.isStream&&r){let e=i,{then:t,catch:n,finally:a}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(r)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)),e.then=t,e.catch=n,e.finally=a}return i}));let n=((e,n={},s)=>{let c=0,l=e=>t.handlers[c++](e,c===t.handlers.length?f:l);if(r.default.plainObject(e)){let t={...e,...n};o.setNonEnumerableProperties([e,n],t),n=t,e=void 0}try{let r;try{h(t.options.hooks.init,n),h(n.hooks?.init,n)}catch(e){r=e}let a=u(e,n,s??t.options);if(a[o.kIsNormalizedAlready]=!0,r)throw new i.RequestError(r.message,r,a);return l(a)}catch(e){if(n.isStream)throw e;return a.default(e,t.options.hooks.beforeError,n.hooks?.beforeError)}});n.extend=(...n)=>{let r=[t.options],i=[...t._rawHandlers],a;for(let e of n)p(e)?(r.push(e.defaults.options),i.push(...e.defaults._rawHandlers),a=e.defaults.mutableDefaults):(r.push(e),`handlers`in e&&i.push(...e.handlers),a=e.mutableDefaults);return i=i.filter(t=>t!==e.defaultHandler),i.length===0&&i.push(e.defaultHandler),g({options:d(...r),handlers:i,mutableDefaults:!!a})};let _=(async function*(e,i){let a=u(e,i,t.options);a.resolveBodyOnly=!1;let o=a.pagination;if(!r.default.object(o))throw TypeError("`options.pagination` must be implemented");let s=[],{countLimit:c}=o,d=0;for(;d<o.requestLimit;){d!==0&&await l(o.backoff);let e=await n(void 0,void 0,a),t=await o.transform(e),r=[];for(let e of t)if(o.filter(e,s,r)&&(!o.shouldContinue(e,s,r)||(yield e,o.stackAllItems&&s.push(e),r.push(e),--c<=0)))return;let i=o.paginate(e,s,r);if(i===!1)return;i===e.request.options?a=e.request.options:i!==void 0&&(a=u(void 0,i,a)),d++}});n.paginate=_,n.paginate.all=(async(e,t)=>{let n=[];for await(let r of _(e,t))n.push(r);return n}),n.paginate.each=_,n.stream=((e,t)=>n(e,{...t,isStream:!0}));for(let e of m)n[e]=((t,r)=>n(t,{...r,method:e})),n.stream[e]=((t,r)=>n(t,{...r,method:e,isStream:!0}));return Object.assign(n,c),Object.defineProperty(n,"defaults",{value:t.mutableDefaults?t:s.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),n.mergeOptions=d,n};e.default=g,n(kr(),e)})),jr=Z(((e,t)=>{var n=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=e&&e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&n(t,e,r)};Object.defineProperty(e,"__esModule",{value:!0});var i=Q(`url`),a=Ar(),o={options:{method:`GET`,retry:{limit:2,methods:[`GET`,`PUT`,`HEAD`,`DELETE`,`OPTIONS`,`TRACE`],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:[`ETIMEDOUT`,`ECONNRESET`,`EADDRINUSE`,`ECONNREFUSED`,`EPIPE`,`ENOTFOUND`,`ENETUNREACH`,`EAI_AGAIN`],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":`got (https://github.com/sindresorhus/got)`},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:`text`,resolveBodyOnly:!1,maxRedirects:10,prefixUrl:``,methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:e=>e.request.options.responseType===`json`?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,`link`))return!1;let t=e.headers.link.split(`,`),n;for(let e of t){let t=e.split(`;`);if(t[1].includes(`next`)){n=t[0].trimStart().trim(),n=n.slice(1,-1);break}}return n?{url:new i.URL(n)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:e=>JSON.parse(e),stringifyJson:e=>JSON.stringify(e),cacheOptions:{}},handlers:[a.defaultHandler],mutableDefaults:!1},s=a.default(o);e.default=s,t.exports=s,t.exports.default=s,t.exports.__esModule=!0,r(Ar(),e),r(Er(),e)})),Mr=Z(((e,t)=>{var n=new Map([[`C`,`cwd`],[`f`,`file`],[`z`,`gzip`],[`P`,`preservePaths`],[`U`,`unlink`],[`strip-components`,`strip`],[`stripComponents`,`strip`],[`keep-newer`,`newer`],[`keepNewer`,`newer`],[`keep-newer-files`,`newer`],[`keepNewerFiles`,`newer`],[`k`,`keep`],[`keep-existing`,`keep`],[`keepExisting`,`keep`],[`m`,`noMtime`],[`no-mtime`,`noMtime`],[`p`,`preserveOwner`],[`L`,`follow`],[`h`,`follow`]]);t.exports=e=>e?Object.keys(e).map(t=>[n.has(t)?n.get(t):t,e[t]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}})),Nr=Z((e=>{var t=typeof process==`object`&&process?process:{stdout:null,stderr:null},n=Q(`events`),r=Q(`stream`),i=Q(`string_decoder`).StringDecoder,a=Symbol(`EOF`),o=Symbol(`maybeEmitEnd`),s=Symbol(`emittedEnd`),c=Symbol(`emittingEnd`),l=Symbol(`emittedError`),u=Symbol(`closed`),d=Symbol(`read`),f=Symbol(`flush`),p=Symbol(`flushChunk`),m=Symbol(`encoding`),h=Symbol(`decoder`),g=Symbol(`flowing`),_=Symbol(`paused`),v=Symbol(`resume`),y=Symbol(`buffer`),b=Symbol(`pipes`),x=Symbol(`bufferLength`),S=Symbol(`bufferPush`),C=Symbol(`bufferShift`),w=Symbol(`objectMode`),T=Symbol(`destroyed`),E=Symbol(`error`),D=Symbol(`emitData`),O=Symbol(`emitEnd`),k=Symbol(`emitEnd2`),A=Symbol(`async`),j=Symbol(`abort`),M=Symbol(`aborted`),N=Symbol(`signal`),P=e=>Promise.resolve().then(e),F=global._MP_NO_ITERATOR_SYMBOLS_!==`1`,I=F&&Symbol.asyncIterator||Symbol(`asyncIterator not implemented`),L=F&&Symbol.iterator||Symbol(`iterator not implemented`),R=e=>e===`end`||e===`finish`||e===`prefinish`,z=e=>e instanceof ArrayBuffer||typeof e==`object`&&e.constructor&&e.constructor.name===`ArrayBuffer`&&e.byteLength>=0,B=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),V=class{constructor(e,t,n){this.src=e,this.dest=t,this.opts=n,this.ondrain=()=>e[v](),t.on(`drain`,this.ondrain)}unpipe(){this.dest.removeListener(`drain`,this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},H=class extends V{unpipe(){this.src.removeListener(`error`,this.proxyErrors),super.unpipe()}constructor(e,t,n){super(e,t,n),this.proxyErrors=e=>t.emit(`error`,e),e.on(`error`,this.proxyErrors)}};e.Minipass=class e extends r{constructor(e){super(),this[g]=!1,this[_]=!1,this[b]=[],this[y]=[],this[w]=e&&e.objectMode||!1,this[m]=this[w]?null:e&&e.encoding||null,this[m]===`buffer`&&(this[m]=null),this[A]=e&&!!e.async||!1,this[h]=this[m]?new i(this[m]):null,this[a]=!1,this[s]=!1,this[c]=!1,this[u]=!1,this[l]=null,this.writable=!0,this.readable=!0,this[x]=0,this[T]=!1,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[y]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[b]}),this[N]=e&&e.signal,this[M]=!1,this[N]&&(this[N].addEventListener(`abort`,()=>this[j]()),this[N].aborted&&this[j]())}get bufferLength(){return this[x]}get encoding(){return this[m]}set encoding(e){if(this[w])throw Error(`cannot set encoding in objectMode`);if(this[m]&&e!==this[m]&&(this[h]&&this[h].lastNeed||this[x]))throw Error(`cannot change encoding`);this[m]!==e&&(this[h]=e?new i(e):null,this[y].length&&(this[y]=this[y].map(e=>this[h].write(e)))),this[m]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[w]}set objectMode(e){this[w]=this[w]||!!e}get async(){return this[A]}set async(e){this[A]=this[A]||!!e}[j](){this[M]=!0,this.emit(`abort`,this[N].reason),this.destroy(this[N].reason)}get aborted(){return this[M]}set aborted(e){}write(e,t,n){if(this[M])return!1;if(this[a])throw Error(`write after end`);if(this[T])return this.emit(`error`,Object.assign(Error(`Cannot call write after a stream was destroyed`),{code:`ERR_STREAM_DESTROYED`})),!0;typeof t==`function`&&(n=t,t=`utf8`),t||=`utf8`;let r=this[A]?P:e=>e();return!this[w]&&!Buffer.isBuffer(e)&&(B(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):z(e)?e=Buffer.from(e):typeof e!=`string`&&(this.objectMode=!0)),this[w]?(this.flowing&&this[x]!==0&&this[f](!0),this.flowing?this.emit(`data`,e):this[S](e),this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing):e.length?(typeof e==`string`&&(t!==this[m]||this[h].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[m]&&(e=this[h].write(e)),this.flowing&&this[x]!==0&&this[f](!0),this.flowing?this.emit(`data`,e):this[S](e),this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing):(this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing)}read(e){if(this[T])return null;if(this[x]===0||e===0||e>this[x])return this[o](),null;this[w]&&(e=null),this[y].length>1&&!this[w]&&(this[y]=this.encoding?[this[y].join(``)]:[Buffer.concat(this[y],this[x])]);let t=this[d](e||null,this[y][0]);return this[o](),t}[d](e,t){return e===t.length||e===null?this[C]():(this[y][0]=t.slice(e),t=t.slice(0,e),this[x]-=e),this.emit(`data`,t),!this[y].length&&!this[a]&&this.emit(`drain`),t}end(e,t,n){return typeof e==`function`&&(n=e,e=null),typeof t==`function`&&(n=t,t=`utf8`),e&&this.write(e,t),n&&this.once(`end`,n),this[a]=!0,this.writable=!1,(this.flowing||!this[_])&&this[o](),this}[v](){this[T]||(this[_]=!1,this[g]=!0,this.emit(`resume`),this[y].length?this[f]():this[a]?this[o]():this.emit(`drain`))}resume(){return this[v]()}pause(){this[g]=!1,this[_]=!0}get destroyed(){return this[T]}get flowing(){return this[g]}get paused(){return this[_]}[S](e){this[w]?this[x]+=1:this[x]+=e.length,this[y].push(e)}[C](){return this[w]?--this[x]:this[x]-=this[y][0].length,this[y].shift()}[f](e){do;while(this[p](this[C]())&&this[y].length);!e&&!this[y].length&&!this[a]&&this.emit(`drain`)}[p](e){return this.emit(`data`,e),this.flowing}pipe(e,n){if(this[T])return;let r=this[s];return n||={},e===t.stdout||e===t.stderr?n.end=!1:n.end=n.end!==!1,n.proxyErrors=!!n.proxyErrors,r?n.end&&e.end():(this[b].push(n.proxyErrors?new H(this,e,n):new V(this,e,n)),this[A]?P(()=>this[v]()):this[v]()),e}unpipe(e){let t=this[b].find(t=>t.dest===e);t&&(this[b].splice(this[b].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let n=super.on(e,t);return e===`data`&&!this[b].length&&!this.flowing?this[v]():e===`readable`&&this[x]!==0?super.emit(`readable`):R(e)&&this[s]?(super.emit(e),this.removeAllListeners(e)):e===`error`&&this[l]&&(this[A]?P(()=>t.call(this,this[l])):t.call(this,this[l])),n}get emittedEnd(){return this[s]}[o](){!this[c]&&!this[s]&&!this[T]&&this[y].length===0&&this[a]&&(this[c]=!0,this.emit(`end`),this.emit(`prefinish`),this.emit(`finish`),this[u]&&this.emit(`close`),this[c]=!1)}emit(e,t,...n){if(e!==`error`&&e!==`close`&&e!==T&&this[T])return;if(e===`data`)return!this[w]&&!t?!1:this[A]?P(()=>this[D](t)):this[D](t);if(e===`end`)return this[O]();if(e===`close`){if(this[u]=!0,!this[s]&&!this[T])return;let e=super.emit(`close`);return this.removeAllListeners(`close`),e}if(e===`error`){this[l]=t,super.emit(E,t);let e=!this[N]||this.listeners(`error`).length?super.emit(`error`,t):!1;return this[o](),e}if(e===`resume`){let e=super.emit(`resume`);return this[o](),e}if(e===`finish`||e===`prefinish`){let t=super.emit(e);return this.removeAllListeners(e),t}let r=super.emit(e,t,...n);return this[o](),r}[D](e){for(let t of this[b])t.dest.write(e)===!1&&this.pause();let t=super.emit(`data`,e);return this[o](),t}[O](){this[s]||(this[s]=!0,this.readable=!1,this[A]?P(()=>this[k]()):this[k]())}[k](){if(this[h]){let e=this[h].end();if(e){for(let t of this[b])t.dest.write(e);super.emit(`data`,e)}}for(let e of this[b])e.end();let e=super.emit(`end`);return this.removeAllListeners(`end`),e}collect(){let e=[];this[w]||(e.dataLength=0);let t=this.promise();return this.on(`data`,t=>{e.push(t),this[w]||(e.dataLength+=t.length)}),t.then(()=>e)}concat(){return this[w]?Promise.reject(Error(`cannot concat in objectMode`)):this.collect().then(e=>this[w]?Promise.reject(Error(`cannot concat in objectMode`)):this[m]?e.join(``):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(T,()=>t(Error(`stream destroyed`))),this.on(`error`,e=>t(e)),this.on(`end`,()=>e())})}[I](){let e=!1,t=()=>(this.pause(),e=!0,Promise.resolve({done:!0}));return{next:()=>{if(e)return t();let n=this.read();if(n!==null)return Promise.resolve({done:!1,value:n});if(this[a])return t();let r=null,i=null,o=e=>{this.removeListener(`data`,s),this.removeListener(`end`,c),this.removeListener(T,l),t(),i(e)},s=e=>{this.removeListener(`error`,o),this.removeListener(`end`,c),this.removeListener(T,l),this.pause(),r({value:e,done:!!this[a]})},c=()=>{this.removeListener(`error`,o),this.removeListener(`data`,s),this.removeListener(T,l),t(),r({done:!0})},l=()=>o(Error(`stream destroyed`));return new Promise((e,t)=>{i=t,r=e,this.once(T,l),this.once(`error`,o),this.once(`end`,c),this.once(`data`,s)})},throw:t,return:t,[I](){return this}}}[L](){let e=!1,t=()=>(this.pause(),this.removeListener(E,t),this.removeListener(T,t),this.removeListener(`end`,t),e=!0,{done:!0});return this.once(`end`,t),this.once(E,t),this.once(T,t),{next:()=>{if(e)return t();let n=this.read();return n===null?t():{value:n}},throw:t,return:t,[L](){return this}}}destroy(e){return this[T]?(e?this.emit(`error`,e):this.emit(T),this):(this[T]=!0,this[y].length=0,this[x]=0,typeof this.close==`function`&&!this[u]&&this.close(),e?this.emit(`error`,e):this.emit(T),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof r||t instanceof n&&(typeof t.pipe==`function`||typeof t.write==`function`&&typeof t.end==`function`))}}})),Pr=Z(((e,t)=>{var n=Q(`zlib`).constants||{ZLIB_VERNUM:4736};t.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},n))})),Fr=Z(((e,t)=>{var n=typeof process==`object`&&process?process:{stdout:null,stderr:null},r=Q(`events`),i=Q(`stream`),a=Q(`string_decoder`).StringDecoder,o=Symbol(`EOF`),s=Symbol(`maybeEmitEnd`),c=Symbol(`emittedEnd`),l=Symbol(`emittingEnd`),u=Symbol(`emittedError`),d=Symbol(`closed`),f=Symbol(`read`),p=Symbol(`flush`),m=Symbol(`flushChunk`),h=Symbol(`encoding`),g=Symbol(`decoder`),_=Symbol(`flowing`),v=Symbol(`paused`),y=Symbol(`resume`),b=Symbol(`bufferLength`),x=Symbol(`bufferPush`),S=Symbol(`bufferShift`),C=Symbol(`objectMode`),w=Symbol(`destroyed`),T=Symbol(`emitData`),E=Symbol(`emitEnd`),D=Symbol(`emitEnd2`),O=Symbol(`async`),k=e=>Promise.resolve().then(e),A=global._MP_NO_ITERATOR_SYMBOLS_!==`1`,j=A&&Symbol.asyncIterator||Symbol(`asyncIterator not implemented`),M=A&&Symbol.iterator||Symbol(`iterator not implemented`),N=e=>e===`end`||e===`finish`||e===`prefinish`,P=e=>e instanceof ArrayBuffer||typeof e==`object`&&e.constructor&&e.constructor.name===`ArrayBuffer`&&e.byteLength>=0,F=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),I=class{constructor(e,t,n){this.src=e,this.dest=t,this.opts=n,this.ondrain=()=>e[y](),t.on(`drain`,this.ondrain)}unpipe(){this.dest.removeListener(`drain`,this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},L=class extends I{unpipe(){this.src.removeListener(`error`,this.proxyErrors),super.unpipe()}constructor(e,t,n){super(e,t,n),this.proxyErrors=e=>t.emit(`error`,e),e.on(`error`,this.proxyErrors)}};t.exports=class e extends i{constructor(e){super(),this[_]=!1,this[v]=!1,this.pipes=[],this.buffer=[],this[C]=e&&e.objectMode||!1,this[h]=this[C]?null:e&&e.encoding||null,this[h]===`buffer`&&(this[h]=null),this[O]=e&&!!e.async||!1,this[g]=this[h]?new a(this[h]):null,this[o]=!1,this[c]=!1,this[l]=!1,this[d]=!1,this[u]=null,this.writable=!0,this.readable=!0,this[b]=0,this[w]=!1}get bufferLength(){return this[b]}get encoding(){return this[h]}set encoding(e){if(this[C])throw Error(`cannot set encoding in objectMode`);if(this[h]&&e!==this[h]&&(this[g]&&this[g].lastNeed||this[b]))throw Error(`cannot change encoding`);this[h]!==e&&(this[g]=e?new a(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[g].write(e)))),this[h]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[C]}set objectMode(e){this[C]=this[C]||!!e}get async(){return this[O]}set async(e){this[O]=this[O]||!!e}write(e,t,n){if(this[o])throw Error(`write after end`);if(this[w])return this.emit(`error`,Object.assign(Error(`Cannot call write after a stream was destroyed`),{code:`ERR_STREAM_DESTROYED`})),!0;typeof t==`function`&&(n=t,t=`utf8`),t||=`utf8`;let r=this[O]?k:e=>e();return!this[C]&&!Buffer.isBuffer(e)&&(F(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):P(e)?e=Buffer.from(e):typeof e!=`string`&&(this.objectMode=!0)),this[C]?(this.flowing&&this[b]!==0&&this[p](!0),this.flowing?this.emit(`data`,e):this[x](e),this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing):e.length?(typeof e==`string`&&(t!==this[h]||this[g].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[h]&&(e=this[g].write(e)),this.flowing&&this[b]!==0&&this[p](!0),this.flowing?this.emit(`data`,e):this[x](e),this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing):(this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing)}read(e){if(this[w])return null;if(this[b]===0||e===0||e>this[b])return this[s](),null;this[C]&&(e=null),this.buffer.length>1&&!this[C]&&(this.buffer=this.encoding?[this.buffer.join(``)]:[Buffer.concat(this.buffer,this[b])]);let t=this[f](e||null,this.buffer[0]);return this[s](),t}[f](e,t){return e===t.length||e===null?this[S]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[b]-=e),this.emit(`data`,t),!this.buffer.length&&!this[o]&&this.emit(`drain`),t}end(e,t,n){return typeof e==`function`&&(n=e,e=null),typeof t==`function`&&(n=t,t=`utf8`),e&&this.write(e,t),n&&this.once(`end`,n),this[o]=!0,this.writable=!1,(this.flowing||!this[v])&&this[s](),this}[y](){this[w]||(this[v]=!1,this[_]=!0,this.emit(`resume`),this.buffer.length?this[p]():this[o]?this[s]():this.emit(`drain`))}resume(){return this[y]()}pause(){this[_]=!1,this[v]=!0}get destroyed(){return this[w]}get flowing(){return this[_]}get paused(){return this[v]}[x](e){this[C]?this[b]+=1:this[b]+=e.length,this.buffer.push(e)}[S](){return this.buffer.length&&(this[C]?--this[b]:this[b]-=this.buffer[0].length),this.buffer.shift()}[p](e){do;while(this[m](this[S]()));!e&&!this.buffer.length&&!this[o]&&this.emit(`drain`)}[m](e){return e?(this.emit(`data`,e),this.flowing):!1}pipe(e,t){if(this[w])return;let r=this[c];return t||={},e===n.stdout||e===n.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this.pipes.push(t.proxyErrors?new L(this,e,t):new I(this,e,t)),this[O]?k(()=>this[y]()):this[y]()),e}unpipe(e){let t=this.pipes.find(t=>t.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let n=super.on(e,t);return e===`data`&&!this.pipes.length&&!this.flowing?this[y]():e===`readable`&&this[b]!==0?super.emit(`readable`):N(e)&&this[c]?(super.emit(e),this.removeAllListeners(e)):e===`error`&&this[u]&&(this[O]?k(()=>t.call(this,this[u])):t.call(this,this[u])),n}get emittedEnd(){return this[c]}[s](){!this[l]&&!this[c]&&!this[w]&&this.buffer.length===0&&this[o]&&(this[l]=!0,this.emit(`end`),this.emit(`prefinish`),this.emit(`finish`),this[d]&&this.emit(`close`),this[l]=!1)}emit(e,t,...n){if(e!==`error`&&e!==`close`&&e!==w&&this[w])return;if(e===`data`)return t?this[O]?k(()=>this[T](t)):this[T](t):!1;if(e===`end`)return this[E]();if(e===`close`){if(this[d]=!0,!this[c]&&!this[w])return;let e=super.emit(`close`);return this.removeAllListeners(`close`),e}if(e===`error`){this[u]=t;let e=super.emit(`error`,t);return this[s](),e}if(e===`resume`){let e=super.emit(`resume`);return this[s](),e}if(e===`finish`||e===`prefinish`){let t=super.emit(e);return this.removeAllListeners(e),t}let r=super.emit(e,t,...n);return this[s](),r}[T](e){for(let t of this.pipes)t.dest.write(e)===!1&&this.pause();let t=super.emit(`data`,e);return this[s](),t}[E](){this[c]||(this[c]=!0,this.readable=!1,this[O]?k(()=>this[D]()):this[D]())}[D](){if(this[g]){let e=this[g].end();if(e){for(let t of this.pipes)t.dest.write(e);super.emit(`data`,e)}}for(let e of this.pipes)e.end();let e=super.emit(`end`);return this.removeAllListeners(`end`),e}collect(){let e=[];this[C]||(e.dataLength=0);let t=this.promise();return this.on(`data`,t=>{e.push(t),this[C]||(e.dataLength+=t.length)}),t.then(()=>e)}concat(){return this[C]?Promise.reject(Error(`cannot concat in objectMode`)):this.collect().then(e=>this[C]?Promise.reject(Error(`cannot concat in objectMode`)):this[h]?e.join(``):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(w,()=>t(Error(`stream destroyed`))),this.on(`error`,e=>t(e)),this.on(`end`,()=>e())})}[j](){return{next:()=>{let e=this.read();if(e!==null)return Promise.resolve({done:!1,value:e});if(this[o])return Promise.resolve({done:!0});let t=null,n=null,r=e=>{this.removeListener(`data`,i),this.removeListener(`end`,a),n(e)},i=e=>{this.removeListener(`error`,r),this.removeListener(`end`,a),this.pause(),t({value:e,done:!!this[o]})},a=()=>{this.removeListener(`error`,r),this.removeListener(`data`,i),t({done:!0})},s=()=>r(Error(`stream destroyed`));return new Promise((e,o)=>{n=o,t=e,this.once(w,s),this.once(`error`,r),this.once(`end`,a),this.once(`data`,i)})}}}[M](){return{next:()=>{let e=this.read();return{value:e,done:e===null}}}}destroy(e){return this[w]?(e?this.emit(`error`,e):this.emit(w),this):(this[w]=!0,this.buffer.length=0,this[b]=0,typeof this.close==`function`&&!this[d]&&this.close(),e?this.emit(`error`,e):this.emit(w),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof i||t instanceof r&&(typeof t.pipe==`function`||typeof t.write==`function`&&typeof t.end==`function`))}}})),Ir=Z((e=>{var t=Q(`assert`),n=Q(`buffer`).Buffer,r=Q(`zlib`),i=e.constants=Pr(),a=Fr(),o=n.concat,s=Symbol(`_superWrite`),c=class extends Error{constructor(e){super(`zlib: `+e.message),this.code=e.code,this.errno=e.errno,this.code||=`ZLIB_ERROR`,this.message=`zlib: `+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return`ZlibError`}},l=Symbol(`opts`),u=Symbol(`flushFlag`),d=Symbol(`finishFlushFlag`),f=Symbol(`fullFlushFlag`),p=Symbol(`handle`),m=Symbol(`onError`),h=Symbol(`sawError`),g=Symbol(`level`),_=Symbol(`strategy`),v=Symbol(`ended`),y=class extends a{constructor(e,t){if(!e||typeof e!=`object`)throw TypeError(`invalid options for ZlibBase constructor`);super(e),this[h]=!1,this[v]=!1,this[l]=e,this[u]=e.flush,this[d]=e.finishFlush;try{this[p]=new r[t](e)}catch(e){throw new c(e)}this[m]=e=>{this[h]||(this[h]=!0,this.close(),this.emit(`error`,e))},this[p].on(`error`,e=>this[m](new c(e))),this.once(`end`,()=>this.close)}close(){this[p]&&(this[p].close(),this[p]=null,this.emit(`close`))}reset(){if(!this[h])return t(this[p],`zlib binding closed`),this[p].reset()}flush(e){this.ended||(typeof e!=`number`&&(e=this[f]),this.write(Object.assign(n.alloc(0),{[u]:e})))}end(e,t,n){return e&&this.write(e,t),this.flush(this[d]),this[v]=!0,super.end(null,null,n)}get ended(){return this[v]}write(e,r,i){if(typeof r==`function`&&(i=r,r=`utf8`),typeof e==`string`&&(e=n.from(e,r)),this[h])return;t(this[p],`zlib binding closed`);let a=this[p]._handle,l=a.close;a.close=()=>{};let d=this[p].close;this[p].close=()=>{},n.concat=e=>e;let f;try{let t=typeof e[u]==`number`?e[u]:this[u];f=this[p]._processChunk(e,t),n.concat=o}catch(e){n.concat=o,this[m](new c(e))}finally{this[p]&&(this[p]._handle=a,a.close=l,this[p].close=d,this[p].removeAllListeners(`error`))}this[p]&&this[p].on(`error`,e=>this[m](new c(e)));let g;if(f){if(Array.isArray(f)&&f.length>0){g=this[s](n.from(f[0]));for(let e=1;e<f.length;e++)g=this[s](f[e])}else g=this[s](n.from(f))}return i&&i(),g}[s](e){return super.write(e)}},b=class extends y{constructor(e,t){e||={},e.flush=e.flush||i.Z_NO_FLUSH,e.finishFlush=e.finishFlush||i.Z_FINISH,super(e,t),this[f]=i.Z_FULL_FLUSH,this[g]=e.level,this[_]=e.strategy}params(e,n){if(!this[h]){if(!this[p])throw Error(`cannot switch params when binding is closed`);if(!this[p].params)throw Error(`not supported in this implementation`);if(this[g]!==e||this[_]!==n){this.flush(i.Z_SYNC_FLUSH),t(this[p],`zlib binding closed`);let r=this[p].flush;this[p].flush=(e,t)=>{this.flush(e),t()};try{this[p].params(e,n)}finally{this[p].flush=r}this[p]&&(this[g]=e,this[_]=n)}}}},x=class extends b{constructor(e){super(e,`Deflate`)}},S=class extends b{constructor(e){super(e,`Inflate`)}},C=Symbol(`_portable`),w=class extends b{constructor(e){super(e,`Gzip`),this[C]=e&&!!e.portable}[s](e){return this[C]&&(this[C]=!1,e[9]=255),super[s](e)}},T=class extends b{constructor(e){super(e,`Gunzip`)}},E=class extends b{constructor(e){super(e,`DeflateRaw`)}},D=class extends b{constructor(e){super(e,`InflateRaw`)}},O=class extends b{constructor(e){super(e,`Unzip`)}},k=class extends y{constructor(e,t){e||={},e.flush=e.flush||i.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||i.BROTLI_OPERATION_FINISH,super(e,t),this[f]=i.BROTLI_OPERATION_FLUSH}},A=class extends k{constructor(e){super(e,`BrotliCompress`)}},j=class extends k{constructor(e){super(e,`BrotliDecompress`)}};e.Deflate=x,e.Inflate=S,e.Gzip=w,e.Gunzip=T,e.DeflateRaw=E,e.InflateRaw=D,e.Unzip=O,typeof r.BrotliCompress==`function`?(e.BrotliCompress=A,e.BrotliDecompress=j):e.BrotliCompress=e.BrotliDecompress=class{constructor(){throw Error(`Brotli is not supported in this version of Node.js`)}}})),Lr=Z(((e,t)=>{t.exports=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`?e=>e&&e.replace(/\\/g,`/`):e=>e})),Rr=Z(((e,t)=>{var{Minipass:n}=Nr(),r=Lr(),i=Symbol(`slurp`);t.exports=class extends n{constructor(e,t,n){switch(super(),this.pause(),this.extended=t,this.globalExtended=n,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case`File`:case`OldFile`:case`Link`:case`SymbolicLink`:case`CharacterDevice`:case`BlockDevice`:case`Directory`:case`FIFO`:case`ContiguousFile`:case`GNUDumpDir`:break;case`NextFileHasLongLinkpath`:case`NextFileHasLongPath`:case`OldGnuLongPath`:case`GlobalExtendedHeader`:case`ExtendedHeader`:case`OldExtendedHeader`:this.meta=!0;break;default:this.ignore=!0}this.path=r(e.path),this.mode=e.mode,this.mode&&(this.mode&=4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=r(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[i](t),n&&this[i](n,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw Error(`writing more to entry than is appropriate`);let n=this.remain,r=this.blockRemain;return this.remain=Math.max(0,n-t),this.blockRemain=Math.max(0,r-t),this.ignore?!0:n>=t?super.write(e):super.write(e.slice(0,n))}[i](e,t){for(let n in e)e[n]!==null&&e[n]!==void 0&&!(t&&n===`path`)&&(this[n]=n===`path`||n===`linkpath`?r(e[n]):e[n])}}})),zr=Z((e=>{e.name=new Map([[`0`,`File`],[``,`OldFile`],[`1`,`Link`],[`2`,`SymbolicLink`],[`3`,`CharacterDevice`],[`4`,`BlockDevice`],[`5`,`Directory`],[`6`,`FIFO`],[`7`,`ContiguousFile`],[`g`,`GlobalExtendedHeader`],[`x`,`ExtendedHeader`],[`A`,`SolarisACL`],[`D`,`GNUDumpDir`],[`I`,`Inode`],[`K`,`NextFileHasLongLinkpath`],[`L`,`NextFileHasLongPath`],[`M`,`ContinuationFile`],[`N`,`OldGnuLongPath`],[`S`,`SparseFile`],[`V`,`TapeVolumeHeader`],[`X`,`OldExtendedHeader`]]),e.code=new Map(Array.from(e.name).map(e=>[e[1],e[0]]))})),Br=Z(((e,t)=>{var n=(e,t)=>{if(Number.isSafeInteger(e))e<0?i(e,t):r(e,t);else throw Error(`cannot encode number outside of javascript safe integer range`);return t},r=(e,t)=>{t[0]=128;for(var n=t.length;n>1;n--)t[n-1]=e&255,e=Math.floor(e/256)},i=(e,t)=>{t[0]=255;var n=!1;e*=-1;for(var r=t.length;r>1;r--){var i=e&255;e=Math.floor(e/256),n?t[r-1]=c(i):i===0?t[r-1]=0:(n=!0,t[r-1]=l(i))}},a=e=>{let t=e[0],n=t===128?s(e.slice(1,e.length)):t===255?o(e):null;if(n===null)throw Error(`invalid base256 encoding`);if(!Number.isSafeInteger(n))throw Error(`parsed number outside of javascript safe integer range`);return n},o=e=>{for(var t=e.length,n=0,r=!1,i=t-1;i>-1;i--){var a=e[i],o;r?o=c(a):a===0?o=a:(r=!0,o=l(a)),o!==0&&(n-=o*256**(t-i-1))}return n},s=e=>{for(var t=e.length,n=0,r=t-1;r>-1;r--){var i=e[r];i!==0&&(n+=i*256**(t-r-1))}return n},c=e=>(255^e)&255,l=e=>(255^e)+1&255;t.exports={encode:n,parse:a}})),Vr=Z(((e,t)=>{var n=zr(),r=Q(`path`).posix,i=Br(),a=Symbol(`slurp`),o=Symbol(`type`),s=class{constructor(e,t,n,r){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[o]=`0`,this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,n,r):e&&this.set(e)}decode(e,t,n,r){if(t||=0,!e||!(e.length>=t+512))throw Error(`need 512 bytes for header`);if(this.path=l(e,t,100),this.mode=f(e,t+100,8),this.uid=f(e,t+108,8),this.gid=f(e,t+116,8),this.size=f(e,t+124,12),this.mtime=u(e,t+136,12),this.cksum=f(e,t+148,12),this[a](n),this[a](r,!0),this[o]=l(e,t+156,1),this[o]===``&&(this[o]=`0`),this[o]===`0`&&this.path.slice(-1)===`/`&&(this[o]=`5`),this[o]===`5`&&(this.size=0),this.linkpath=l(e,t+157,100),e.slice(t+257,t+265).toString()===`ustar\x0000`){if(this.uname=l(e,t+265,32),this.gname=l(e,t+297,32),this.devmaj=f(e,t+329,8),this.devmin=f(e,t+337,8),e[t+475]!==0){let n=l(e,t+345,155);this.path=n+`/`+this.path}else{let n=l(e,t+345,130);n&&(this.path=n+`/`+this.path),this.atime=u(e,t+476,12),this.ctime=u(e,t+488,12)}}let i=256;for(let n=t;n<t+148;n++)i+=e[n];for(let n=t+156;n<t+512;n++)i+=e[n];this.cksumValid=i===this.cksum,this.cksum===null&&i===256&&(this.nullBlock=!0)}[a](e,t){for(let n in e)e[n]!==null&&e[n]!==void 0&&!(t&&n===`path`)&&(this[n]=e[n])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||=0,!(e.length>=t+512))throw Error(`need 512 bytes for header`);let n=this.ctime||this.atime?130:155,r=c(this.path||``,n),i=r[0],a=r[1];this.needPax=r[2],this.needPax=S(e,t,100,i)||this.needPax,this.needPax=g(e,t+100,8,this.mode)||this.needPax,this.needPax=g(e,t+108,8,this.uid)||this.needPax,this.needPax=g(e,t+116,8,this.gid)||this.needPax,this.needPax=g(e,t+124,12,this.size)||this.needPax,this.needPax=b(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[o].charCodeAt(0),this.needPax=S(e,t+157,100,this.linkpath)||this.needPax,e.write(`ustar\x0000`,t+257,8),this.needPax=S(e,t+265,32,this.uname)||this.needPax,this.needPax=S(e,t+297,32,this.gname)||this.needPax,this.needPax=g(e,t+329,8,this.devmaj)||this.needPax,this.needPax=g(e,t+337,8,this.devmin)||this.needPax,this.needPax=S(e,t+345,n,a)||this.needPax,e[t+475]===0?(this.needPax=S(e,t+345,130,a)||this.needPax,this.needPax=b(e,t+476,12,this.atime)||this.needPax,this.needPax=b(e,t+488,12,this.ctime)||this.needPax):this.needPax=S(e,t+345,155,a)||this.needPax;let s=256;for(let n=t;n<t+148;n++)s+=e[n];for(let n=t+156;n<t+512;n++)s+=e[n];return this.cksum=s,g(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return n.name.get(this[o])||this[o]}get typeKey(){return this[o]}set type(e){this[o]=n.code.has(e)?n.code.get(e):e}},c=(e,t)=>{let n=e,i=``,a,o=r.parse(e).root||`.`;if(Buffer.byteLength(n)<100)a=[n,i,!1];else{i=r.dirname(n),n=r.basename(n);do Buffer.byteLength(n)<=100&&Buffer.byteLength(i)<=t?a=[n,i,!1]:Buffer.byteLength(n)>100&&Buffer.byteLength(i)<=t?a=[n.slice(0,99),i,!0]:(n=r.join(r.basename(i),n),i=r.dirname(i));while(i!==o&&!a);a||=[e.slice(0,99),``,!0]}return a},l=(e,t,n)=>e.slice(t,t+n).toString(`utf8`).replace(/\0.*/,``),u=(e,t,n)=>d(f(e,t,n)),d=e=>e===null?null:new Date(e*1e3),f=(e,t,n)=>e[t]&128?i.parse(e.slice(t,t+n)):m(e,t,n),p=e=>isNaN(e)?null:e,m=(e,t,n)=>p(parseInt(e.slice(t,t+n).toString(`utf8`).replace(/\0.*$/,``).trim(),8)),h={12:8589934591,8:2097151},g=(e,t,n,r)=>r===null?!1:r>h[n]||r<0?(i.encode(r,e.slice(t,t+n)),!0):(_(e,t,n,r),!1),_=(e,t,n,r)=>e.write(v(r,n),t,n,`ascii`),v=(e,t)=>y(Math.floor(e).toString(8),t),y=(e,t)=>(e.length===t-1?e:Array(t-e.length-1).join(`0`)+e+` `)+`\0`,b=(e,t,n,r)=>r!==null&&g(e,t,n,r.getTime()/1e3),x=Array(156).join(`\0`),S=(e,t,n,r)=>r!==null&&(e.write(r+x,t,n,`utf8`),r.length!==Buffer.byteLength(r)||r.length>n);t.exports=s})),Hr=Z(((e,t)=>{var n=Vr(),r=Q(`path`),i=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e===``)return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),a=Buffer.allocUnsafe(i);for(let e=0;e<512;e++)a[e]=0;new n({path:(`PaxHeader/`+r.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?`GlobalExtendedHeader`:`ExtendedHeader`,linkpath:``,uname:this.uname||``,gname:this.gname||``,devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,t,`utf8`);for(let e=t+512;e<a.length;e++)a[e]=0;return a}encodeBody(){return this.encodeField(`path`)+this.encodeField(`ctime`)+this.encodeField(`atime`)+this.encodeField(`dev`)+this.encodeField(`ino`)+this.encodeField(`nlink`)+this.encodeField(`charset`)+this.encodeField(`comment`)+this.encodeField(`gid`)+this.encodeField(`gname`)+this.encodeField(`linkpath`)+this.encodeField(`mtime`)+this.encodeField(`size`)+this.encodeField(`uid`)+this.encodeField(`uname`)}encodeField(e){if(this[e]===null||this[e]===void 0)return``;let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],n=` `+(e===`dev`||e===`ino`||e===`nlink`?`SCHILY.`:``)+e+`=`+t+`
25
+ `)}`}}};e.RequestError=K;var se=class extends K{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name=`MaxRedirectsError`,this.code=`ERR_TOO_MANY_REDIRECTS`}};e.MaxRedirectsError=se;var ce=class extends K{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name=`HTTPError`,this.code=`ERR_NON_2XX_3XX_RESPONSE`}};e.HTTPError=ce;var le=class extends K{constructor(e,t){super(e.message,e,t),this.name=`CacheError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_CACHE_ACCESS`:this.code}};e.CacheError=le;var ue=class extends K{constructor(e,t){super(e.message,e,t),this.name=`UploadError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_UPLOAD`:this.code}};e.UploadError=ue;var de=class extends K{constructor(e,t,n){super(e.message,e,n),this.name=`TimeoutError`,this.event=e.event,this.timings=t}};e.TimeoutError=de;var fe=class extends K{constructor(e,t){super(e.message,e,t),this.name=`ReadError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_READING_RESPONSE_STREAM`:this.code}};e.ReadError=fe;var pe=class extends K{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name=`UnsupportedProtocolError`,this.code=`ERR_UNSUPPORTED_PROTOCOL`}};e.UnsupportedProtocolError=pe;var me=[`socket`,`connect`,`continue`,`information`,`upgrade`,`timeout`],he=class extends n.Duplex{constructor(t,n={},i){super({autoDestroy:!1,highWaterMark:0}),this[M]=0,this[P]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[B]=!1,this[V]=!1,this[ee]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on(`pipe`,e=>{e.prependListener(`data`,a),e.on(`data`,s),e.prependListener(`end`,a),e.on(`end`,s)}),this.on(`unpipe`,e=>{e.off(`data`,a),e.off(`data`,s),e.off(`end`,a),e.off(`end`,s)}),this.on(`pipe`,e=>{e instanceof o.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});let{json:c,body:l,form:u}=n;if((c||l||u)&&this._lockWrite(),e.kIsNormalizedAlready in n)this.options=n;else try{this.options=this.constructor.normalizeArguments(t,n,i)}catch(e){m.default.nodeStream(n.body)&&n.body.destroy(),this.destroy(e);return}(async()=>{var e;try{this.options.body instanceof r.ReadStream&&await ae(this.options.body);let{url:t}=this.options;if(!t)throw TypeError("Missing `url` property");if(this.requestUrl=t.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(e=this[k])==null||e.destroy();return}for(let e of this[ee])e();this[ee].length=0,this.requestInitialized=!0}catch(e){if(e instanceof K){this._beforeError(e);return}this.destroyed||this.destroy(e)}})()}static normalizeArguments(n,r,a){var o;let s=r;if(m.default.object(n)&&!m.default.urlInstance(n))r={...a,...n,...r};else{if(n&&r&&r.url!==void 0)throw TypeError("The `url` option is mutually exclusive with the `input` argument");r={...a,...r},n!==void 0&&(r.url=n),m.default.urlInstance(r.url)&&(r.url=new i.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),m.assert.any([m.default.string,m.default.undefined],r.method),m.assert.any([m.default.object,m.default.undefined],r.headers),m.assert.any([m.default.string,m.default.urlInstance,m.default.undefined],r.prefixUrl),m.assert.any([m.default.object,m.default.undefined],r.cookieJar),m.assert.any([m.default.object,m.default.string,m.default.undefined],r.searchParams),m.assert.any([m.default.object,m.default.string,m.default.undefined],r.cache),m.assert.any([m.default.object,m.default.number,m.default.undefined],r.timeout),m.assert.any([m.default.object,m.default.undefined],r.context),m.assert.any([m.default.object,m.default.undefined],r.hooks),m.assert.any([m.default.boolean,m.default.undefined],r.decompress),m.assert.any([m.default.boolean,m.default.undefined],r.ignoreInvalidCookies),m.assert.any([m.default.boolean,m.default.undefined],r.followRedirect),m.assert.any([m.default.number,m.default.undefined],r.maxRedirects),m.assert.any([m.default.boolean,m.default.undefined],r.throwHttpErrors),m.assert.any([m.default.boolean,m.default.undefined],r.http2),m.assert.any([m.default.boolean,m.default.undefined],r.allowGetBody),m.assert.any([m.default.string,m.default.undefined],r.localAddress),m.assert.any([C.isDnsLookupIpVersion,m.default.undefined],r.dnsLookupIpVersion),m.assert.any([m.default.object,m.default.undefined],r.https),m.assert.any([m.default.boolean,m.default.undefined],r.rejectUnauthorized),r.https&&(m.assert.any([m.default.boolean,m.default.undefined],r.https.rejectUnauthorized),m.assert.any([m.default.function_,m.default.undefined],r.https.checkServerIdentity),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.certificateAuthority),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.key),m.assert.any([m.default.string,m.default.object,m.default.array,m.default.undefined],r.https.certificate),m.assert.any([m.default.string,m.default.undefined],r.https.passphrase),m.assert.any([m.default.string,m.default.buffer,m.default.array,m.default.undefined],r.https.pfx)),m.assert.any([m.default.object,m.default.undefined],r.cacheOptions),m.default.string(r.method)?r.method=r.method.toUpperCase():r.method=`GET`,r.headers===a?.headers?r.headers={...r.headers}:r.headers=p({...a?.headers,...r.headers}),`slashes`in r)throw TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if(`auth`in r)throw TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if(`searchParams`in r&&r.searchParams&&r.searchParams!==a?.searchParams){let e;if(m.default.string(r.searchParams)||r.searchParams instanceof i.URLSearchParams)e=new i.URLSearchParams(r.searchParams);else{re(r.searchParams),e=new i.URLSearchParams;for(let t in r.searchParams){let n=r.searchParams[t];n===null?e.append(t,``):n!==void 0&&e.append(t,n)}}(o=a?.searchParams)==null||o.forEach((t,n)=>{e.has(n)||e.append(n,t)}),r.searchParams=e}if(r.username=r.username??``,r.password=r.password??``,m.default.undefined(r.prefixUrl)?r.prefixUrl=a?.prefixUrl??``:(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==``&&!r.prefixUrl.endsWith(`/`)&&(r.prefixUrl+=`/`)),m.default.string(r.url)){if(r.url.startsWith(`/`))throw Error("`input` must not start with a slash when using `prefixUrl`");r.url=b.default(r.prefixUrl+r.url,r)}else(m.default.undefined(r.url)&&r.prefixUrl!==``||r.protocol)&&(r.url=b.default(r.prefixUrl,r));if(r.url){`port`in r&&delete r.port;let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{let n=r.url;if(!n.href.startsWith(t))throw Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new i.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if(t===`unix:`&&(t=`http:`,r.url=new i.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),t!==`http:`&&t!==`https:`)throw new pe(r);r.username===``?r.username=r.url.username:r.url.username=r.username,r.password===``?r.password=r.url.password:r.url.password=r.password}let{cookieJar:c}=r;if(c){let{setCookie:e,getCookieString:n}=c;m.assert.function_(e),m.assert.function_(n),e.length===4&&n.length===0&&(e=t.promisify(e.bind(r.cookieJar)),n=t.promisify(n.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:n})}let{cache:d}=r;if(d&&(W.has(d)||W.set(d,new u(((e,t)=>{let n=e[k](e,t);return m.default.promise(n)&&(n.once=(e,t)=>{if(e===`error`)n.catch(t);else if(e===`abort`)(async()=>{try{(await n).once(`abort`,t)}catch{}})();else throw Error(`Unknown HTTP2 promise event: ${e}`);return n}),n}),d))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)O||=new l.default,r.dnsCache=O;else if(!m.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${m.default(r.dnsCache)}`);m.default.number(r.timeout)?r.timeout={request:r.timeout}:a&&r.timeout!==a.timeout?r.timeout={...a.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let f=r.hooks===a?.hooks;r.hooks={...r.hooks};for(let t of e.knownHookEvents)if(t in r.hooks){if(m.default.array(r.hooks[t]))r.hooks[t]=[...r.hooks[t]];else throw TypeError(`Parameter \`${t}\` must be an Array, got ${m.default(r.hooks[t])}`)}else r.hooks[t]=[];if(a&&!f)for(let t of e.knownHookEvents)a.hooks[t].length>0&&(r.hooks[t]=[...a.hooks[t],...r.hooks[t]]);if(`family`in r&&T.default(`"options.family" was never documented, please use "options.dnsLookupIpVersion"`),a!=null&&a.https&&(r.https={...a.https,...r.https}),`rejectUnauthorized`in r&&T.default(`"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"`),`checkServerIdentity`in r&&T.default(`"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"`),`ca`in r&&T.default(`"options.ca" was never documented, please use "options.https.certificateAuthority"`),`key`in r&&T.default(`"options.key" was never documented, please use "options.https.key"`),`cert`in r&&T.default(`"options.cert" was never documented, please use "options.https.certificate"`),`passphrase`in r&&T.default(`"options.passphrase" was never documented, please use "options.https.passphrase"`),`pfx`in r&&T.default(`"options.pfx" was never documented, please use "options.https.pfx"`),`followRedirects`in r)throw TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let e in r.agent)if(e!==`http`&&e!==`https`&&e!==`http2`)throw TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``)}return r.maxRedirects=r.maxRedirects??0,e.setNonEnumerableProperties([a,s],r),E.default(r,a)}_lockWrite(){let e=()=>{throw TypeError(`The payload has been already provided`)};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:t}=this,{headers:r}=t,a=!m.default.undefined(t.form),o=!m.default.undefined(t.json),s=!m.default.undefined(t.body),c=a||o||s,l=e.withoutBody.has(t.method)&&!(t.method===`GET`&&t.allowGetBody);if(this._cannotHaveBody=l,c){if(l)throw TypeError(`The \`${t.method}\` method cannot be used with a body`);if([s,a,o].filter(e=>e).length>1)throw TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(t.body instanceof n.Readable)&&!m.default.string(t.body)&&!m.default.buffer(t.body)&&!g.default(t.body))throw TypeError("The `body` option must be a stream.Readable, string or Buffer");if(a&&!m.default.object(t.form))throw TypeError("The `form` option must be an Object");{let e=!m.default.string(r[`content-type`]);s?(g.default(t.body)&&e&&(r[`content-type`]=`multipart/form-data; boundary=${t.body.getBoundary()}`),this[H]=t.body):a?(e&&(r[`content-type`]=`application/x-www-form-urlencoded`),this[H]=new i.URLSearchParams(t.form).toString()):(e&&(r[`content-type`]=`application/json`),this[H]=t.stringifyJson(t.json));let n=await h.default(this[H],t.headers);m.default.undefined(r[`content-length`])&&m.default.undefined(r[`transfer-encoding`])&&!l&&!m.default.undefined(n)&&(r[`content-length`]=String(n))}}else l?this._lockWrite():this._unlockWrite();this[N]=Number(r[`content-length`])||void 0}async _onResponseBase(e){let{options:t}=this,{url:n}=t;this[U]=e,t.decompress&&(e=d(e));let r=e.statusCode,o=e;o.statusMessage=o.statusMessage?o.statusMessage:a.STATUS_CODES[r],o.url=t.url.toString(),o.requestUrl=this.requestUrl,o.redirectUrls=this.redirects,o.request=this,o.isFromCache=e.fromCache||!1,o.ip=this.ip,o.retryCount=this.retryCount,this[L]=o.isFromCache,this[j]=Number(e.headers[`content-length`])||void 0,this[A]=e,e.once(`end`,()=>{this[j]=this[M],this.emit(`downloadProgress`,this.downloadProgress)}),e.once(`error`,t=>{e.destroy(),this._beforeError(new fe(t,this))}),e.once(`aborted`,()=>{this._beforeError(new fe({name:`Error`,message:`The server aborted pending request`,code:`ECONNRESET`},this))}),this.emit(`downloadProgress`,this.downloadProgress);let s=e.headers[`set-cookie`];if(m.default.object(t.cookieJar)&&s){let e=s.map(async e=>t.cookieJar.setCookie(e,n.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){this._beforeError(e);return}}if(t.followRedirect&&e.headers.location&&oe.has(r)){if(e.resume(),this[k]&&(this[R](),delete this[k],this[I]()),(r===303&&t.method!==`GET`&&t.method!==`HEAD`||!t.methodRewriting)&&(t.method=`GET`,`body`in t&&delete t.body,`json`in t&&delete t.json,`form`in t&&delete t.form,this[H]=void 0,delete t.headers[`content-length`]),this.redirects.length>=t.maxRedirects){this._beforeError(new se(this));return}try{let r=Buffer.from(e.headers.location,`binary`).toString(),a=new i.URL(r,n),s=a.toString();function c(e){return e.protocol===`unix:`||e.hostname===`unix`}if(!c(n)&&c(a)){this._beforeError(new K(`Cannot redirect to UNIX socket`,{},this));return}a.hostname!==n.hostname||a.port!==n.port?(`host`in t.headers&&delete t.headers.host,`cookie`in t.headers&&delete t.headers.cookie,`authorization`in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username=``,t.password=``)):(a.username=t.username,a.password=t.password),this.redirects.push(s),t.url=a;for(let e of t.hooks.beforeRedirect)await e(t,o);this.emit(`redirect`,o,t),await this._makeRequest()}catch(e){this._beforeError(e);return}return}if(t.isStream&&t.throwHttpErrors&&!w.isResponseOk(o)){this._beforeError(new ce(o));return}e.on(`readable`,()=>{this[V]&&this._read()}),this.on(`resume`,()=>{e.resume()}),this.on(`pause`,()=>{e.pause()}),e.once(`end`,()=>{this.push(null)}),this.emit(`response`,e);for(let n of this[F])if(!n.headersSent){for(let r in e.headers){let i=!t.decompress||r!==`content-encoding`,a=e.headers[r];i&&n.setHeader(r,a)}n.statusCode=r}}async _onResponse(e){try{await this._onResponseBase(e)}catch(e){this._beforeError(e)}}_onRequest(e){let{options:t}=this,{timeout:n,url:r}=t;c.default(e),this[R]=v.default(e,n,r);let i=t.cache?`cacheableResponse`:`response`;e.once(i,e=>{this._onResponse(e)}),e.once(`error`,t=>{var n;e.destroy(),(n=e.res)==null||n.removeAllListeners(`end`),t=t instanceof v.TimeoutError?new de(t,this.timings,this):new K(t.message,t,this),this._beforeError(t)}),this[I]=_.default(e,this,me),this[k]=e,this.emit(`uploadProgress`,this.uploadProgress);let a=this[H],o=this.redirects.length===0?this:e;m.default.nodeStream(a)?(a.pipe(o),a.once(`error`,e=>{this._beforeError(new ue(e,this))})):(this._unlockWrite(),m.default.undefined(a)?(this._cannotHaveBody||this._noPipe)&&(o.end(),this._lockWrite()):(this._writeRequest(a,void 0,()=>{}),o.end(),this._lockWrite())),this.emit(`request`,e)}async _createCacheableRequest(e,t){return new Promise((n,r)=>{Object.assign(t,y.default(e)),delete t.url;let i,a=W.get(t.cache)(t,async e=>{e._readableState.autoDestroy=!1,i&&(await i).emit(`cacheableResponse`,e),n(e)});t.url=e,a.once(`error`,r),a.once(`request`,async e=>{i=e,n(i)})})}async _makeRequest(){let{options:e}=this,{headers:t}=e;for(let e in t)if(m.default.undefined(t[e]))delete t[e];else if(m.default.null_(t[e]))throw TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(e.decompress&&m.default.undefined(t[`accept-encoding`])&&(t[`accept-encoding`]=ne?`gzip, deflate, br`:`gzip, deflate`),e.cookieJar){let t=await e.cookieJar.getCookieString(e.url.toString());m.default.nonEmptyString(t)&&(e.headers.cookie=t)}for(let t of e.hooks.beforeRequest){let n=await t(e);if(!m.default.undefined(n)){e.request=()=>n;break}}e.body&&this[H]!==e.body&&(this[H]=e.body);let{agent:n,request:r,timeout:i,url:o}=e;if(e.dnsCache&&!(`lookup`in e)&&(e.lookup=e.dnsCache.lookup),o.hostname===`unix`){let t=/(?<socketPath>.+?):(?<path>.+)/.exec(`${o.pathname}${o.search}`);if(t!=null&&t.groups){let{socketPath:n,path:r}=t.groups;Object.assign(e,{socketPath:n,path:r,host:``})}}let c=o.protocol===`https:`,l;l=e.http2?f.auto:c?s.request:a.request;let d=e.request??l,p=e.cache?this._createCacheableRequest:d;n&&!e.http2&&(e.agent=n[c?`https`:`http`]),e[k]=d,delete e.request,delete e.timeout;let h=e;if(h.shared=e.cacheOptions?.shared,h.cacheHeuristic=e.cacheOptions?.cacheHeuristic,h.immutableMinTimeToLive=e.cacheOptions?.immutableMinTimeToLive,h.ignoreCargoCult=e.cacheOptions?.ignoreCargoCult,e.dnsLookupIpVersion!==void 0)try{h.family=C.dnsLookupIpVersionToFamily(e.dnsLookupIpVersion)}catch{throw Error("Invalid `dnsLookupIpVersion` option value")}e.https&&(`rejectUnauthorized`in e.https&&(h.rejectUnauthorized=e.https.rejectUnauthorized),e.https.checkServerIdentity&&(h.checkServerIdentity=e.https.checkServerIdentity),e.https.certificateAuthority&&(h.ca=e.https.certificateAuthority),e.https.certificate&&(h.cert=e.https.certificate),e.https.key&&(h.key=e.https.key),e.https.passphrase&&(h.passphrase=e.https.passphrase),e.https.pfx&&(h.pfx=e.https.pfx));try{let t=await p(o,h);m.default.undefined(t)&&(t=l(o,h)),e.request=r,e.timeout=i,e.agent=n,e.https&&(`rejectUnauthorized`in e.https&&delete h.rejectUnauthorized,e.https.checkServerIdentity&&delete h.checkServerIdentity,e.https.certificateAuthority&&delete h.ca,e.https.certificate&&delete h.cert,e.https.key&&delete h.key,e.https.passphrase&&delete h.passphrase,e.https.pfx&&delete h.pfx),ie(t)?this._onRequest(t):this.writable?(this.once(`finish`,()=>{this._onResponse(t)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(t)}catch(e){throw e instanceof u.CacheError?new le(e,this):new K(e.message,e,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new K(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[B])return;let{options:t}=this,n=this.retryCount+1;this[B]=!0,e instanceof K||(e=new K(e.message,e,this));let r=e,{response:i}=r;(async()=>{if(i&&!i.body){i.setEncoding(this._readableState.encoding);try{i.rawBody=await S.default(i),i.body=i.rawBody.toString()}catch{}}if(this.listenerCount(`retry`)!==0){let a;try{let e;i&&`retry-after`in i.headers&&(e=Number(i.headers[`retry-after`]),Number.isNaN(e)?(e=Date.parse(i.headers[`retry-after`])-Date.now(),e<=0&&(e=1)):e*=1e3),a=await t.retry.calculateDelay({attemptCount:n,retryOptions:t.retry,error:r,retryAfter:e,computedValue:D.default({attemptCount:n,retryOptions:t.retry,error:r,retryAfter:e,computedValue:0})})}catch(e){this._error(new K(e.message,e,this));return}if(a){let t=async()=>{try{for(let e of this.options.hooks.beforeRetry)await e(this.options,r,n)}catch(t){this._error(new K(t.message,e,this));return}this.destroyed||(this.destroy(),this.emit(`retry`,n,e))};this[te]=setTimeout(t,a);return}}this._error(r)})()}_read(){this[V]=!0;let e=this[A];if(e&&!this[B]){e.readableLength&&(this[V]=!1);let t;for(;(t=e.read())!==null;){this[M]+=t.length,this[z]=!0;let e=this.downloadProgress;e.percent<1&&this.emit(`downloadProgress`,e),this.push(t)}}}_write(e,t,n){let r=()=>{this._writeRequest(e,t,n)};this.requestInitialized?r():this[ee].push(r)}_writeRequest(e,t,n){this[k].destroyed||(this._progressCallbacks.push(()=>{this[P]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit(`uploadProgress`,n)}),this[k].write(e,t,e=>{!e&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),n(e)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(k in this)){e();return}if(this[k].destroyed){e();return}this[k].end(t=>{t||(this[N]=this[P],this.emit(`uploadProgress`,this.uploadProgress),this[k].emit(`upload-complete`)),e(t)})};this.requestInitialized?t():this[ee].push(t)}_destroy(e,t){var n;this[B]=!0,clearTimeout(this[te]),k in this&&(this[R](),(n=this[A])!=null&&n.complete||this[k].destroy()),e!==null&&!m.default.undefined(e)&&!(e instanceof K)&&(e=new K(e.message,e,this)),t(e)}get _isAboutToError(){return this[B]}get ip(){return this.socket?.remoteAddress}get aborted(){var e;return(this[k]?.destroyed??this.destroyed)&&!((e=this[U])!=null&&e.complete)}get socket(){return this[k]?.socket??void 0}get downloadProgress(){let e;return e=this[j]?this[M]/this[j]:+(this[j]===this[M]),{percent:e,transferred:this[M],total:this[j]}}get uploadProgress(){let e;return e=this[N]?this[P]/this[N]:+(this[N]===this[P]),{percent:e,transferred:this[P],total:this[N]}}get timings(){return this[k]?.timings}get isFromCache(){return this[L]}pipe(e,t){if(this[z])throw Error(`Failed to pipe. The response has been emitted already.`);return e instanceof o.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof o.ServerResponse&&this[F].delete(e),super.unpipe(e),this}};e.default=he})),Er=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.CancelError=e.ParseError=void 0;var r=Tr();e.ParseError=class extends r.RequestError{constructor(e,t){let{options:n}=t.request;super(`${e.message} in "${n.url.toString()}"`,e,t.request),this.name=`ParseError`,this.code=this.code===`ERR_GOT_REQUEST_ERROR`?`ERR_BODY_PARSE_FAILURE`:this.code}},e.CancelError=class extends r.RequestError{constructor(e){super(`Promise was canceled`,{},e),this.name=`CancelError`,this.code=`ERR_CANCELED`}get isCanceled(){return!0}},n(Tr(),e)})),Dr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Er();e.default=(e,n,r,i)=>{let{rawBody:a}=e;try{if(n===`text`)return a.toString(i);if(n===`json`)return a.length===0?``:r(a.toString());if(n===`buffer`)return a;throw new t.ParseError({message:`Unknown body type '${n}'`,name:`Error`},e)}catch(n){throw new t.ParseError(n,e)}}})),Or=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0});var r=Q(`events`),i=jn(),a=Mn(),o=Er(),s=Dr(),c=Tr(),l=pr(),u=yr(),d=xr(),f=[`request`,`response`,`redirect`,`uploadProgress`,`downloadProgress`];function p(e){let t,n,m=new r.EventEmitter,h=new a((r,a,g)=>{let _=v=>{let y=new c.default(void 0,e);y.retryCount=v,y._noPipe=!0,g(()=>y.destroy()),g.shouldReject=!1,g(()=>a(new o.CancelError(y))),t=y,y.once(`response`,async e=>{if(e.retryCount=v,e.request.aborted)return;let t;try{t=await u.default(y),e.rawBody=t}catch{return}if(y._isAboutToError)return;let i=(e.headers[`content-encoding`]??``).toLowerCase(),a=[`gzip`,`deflate`,`br`].includes(i),{options:l}=y;if(a&&!l.decompress)e.body=t;else try{e.body=s.default(e,l.responseType,l.parseJson,l.encoding)}catch(n){if(e.body=t.toString(),d.isResponseOk(e)){y._beforeError(n);return}}try{for(let[t,n]of l.hooks.afterResponse.entries())e=await n(e,async e=>{let n=c.default.normalizeArguments(void 0,{...e,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},l);n.hooks.afterResponse=n.hooks.afterResponse.slice(0,t);for(let e of n.hooks.beforeRetry)await e(n);let r=p(n);return g(()=>{r.catch(()=>{}),r.cancel()}),r})}catch(e){y._beforeError(new o.RequestError(e.message,e,y));return}if(n=e,!d.isResponseOk(e)){y._beforeError(new o.HTTPError(e));return}y.destroy(),r(y.options.resolveBodyOnly?e.body:e)});let b=e=>{if(h.isCanceled)return;let{options:t}=y;if(e instanceof o.HTTPError&&!t.throwHttpErrors){let{response:t}=e;r(y.options.resolveBodyOnly?t.body:t);return}a(e)};y.once(`error`,b);let x=y.options.body;y.once(`retry`,(e,t)=>{if(x===t.request?.options.body&&i.default.nodeStream(t.request?.options.body)){b(t);return}_(e)}),l.default(y,m,f)};_(0)});h.on=(e,t)=>(m.on(e,t),h);let g=e=>{let t=(async()=>{await h;let{options:t}=n.request;return s.default(n,e,t.parseJson,t.encoding)})();return Object.defineProperties(t,Object.getOwnPropertyDescriptors(h)),t};return h.json=()=>{let{headers:e}=t.options;return!t.writableFinished&&e.accept===void 0&&(e.accept=`application/json`),g(`json`)},h.buffer=()=>g(`buffer`),h.text=()=>g(`text`),h}e.default=p,n(Er(),e)})),kr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Er();function n(e,...n){let r=(async()=>{if(e instanceof t.RequestError)try{for(let t of n)if(t)for(let n of t)e=await n(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}e.default=n})),Ar=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=jn();function n(e){for(let r of Object.values(e))(t.default.plainObject(r)||t.default.array(r))&&n(r);return Object.freeze(e)}e.default=n})),jr=Z((e=>{Object.defineProperty(e,"__esModule",{value:!0})})),Mr=Z((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.defaultHandler=void 0;var r=jn(),i=Or(),a=kr(),o=Tr(),s=Ar(),c={RequestError:i.RequestError,CacheError:i.CacheError,ReadError:i.ReadError,HTTPError:i.HTTPError,MaxRedirectsError:i.MaxRedirectsError,TimeoutError:i.TimeoutError,ParseError:i.ParseError,CancelError:i.CancelError,UnsupportedProtocolError:i.UnsupportedProtocolError,UploadError:i.UploadError},l=async e=>new Promise(t=>{setTimeout(t,e)}),{normalizeArguments:u}=o.default,d=(...e)=>{let t;for(let n of e)t=u(void 0,n,t);return t},f=e=>e.isStream?new o.default(void 0,e):i.default(e),p=e=>`defaults`in e&&`options`in e.defaults,m=[`get`,`post`,`put`,`patch`,`head`,`delete`];e.defaultHandler=(e,t)=>t(e);var h=(e,t)=>{if(e)for(let n of e)n(t)},g=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(e=>((t,n)=>{let r,i=e(t,e=>(r=n(e),r));if(i!==r&&!t.isStream&&r){let e=i,{then:t,catch:n,finally:a}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(r)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)),e.then=t,e.catch=n,e.finally=a}return i}));let n=((e,n={},s)=>{let c=0,l=e=>t.handlers[c++](e,c===t.handlers.length?f:l);if(r.default.plainObject(e)){let t={...e,...n};o.setNonEnumerableProperties([e,n],t),n=t,e=void 0}try{let r;try{h(t.options.hooks.init,n),h(n.hooks?.init,n)}catch(e){r=e}let a=u(e,n,s??t.options);if(a[o.kIsNormalizedAlready]=!0,r)throw new i.RequestError(r.message,r,a);return l(a)}catch(e){if(n.isStream)throw e;return a.default(e,t.options.hooks.beforeError,n.hooks?.beforeError)}});n.extend=(...n)=>{let r=[t.options],i=[...t._rawHandlers],a;for(let e of n)p(e)?(r.push(e.defaults.options),i.push(...e.defaults._rawHandlers),a=e.defaults.mutableDefaults):(r.push(e),`handlers`in e&&i.push(...e.handlers),a=e.mutableDefaults);return i=i.filter(t=>t!==e.defaultHandler),i.length===0&&i.push(e.defaultHandler),g({options:d(...r),handlers:i,mutableDefaults:!!a})};let _=(async function*(e,i){let a=u(e,i,t.options);a.resolveBodyOnly=!1;let o=a.pagination;if(!r.default.object(o))throw TypeError("`options.pagination` must be implemented");let s=[],{countLimit:c}=o,d=0;for(;d<o.requestLimit;){d!==0&&await l(o.backoff);let e=await n(void 0,void 0,a),t=await o.transform(e),r=[];for(let e of t)if(o.filter(e,s,r)&&(!o.shouldContinue(e,s,r)||(yield e,o.stackAllItems&&s.push(e),r.push(e),--c<=0)))return;let i=o.paginate(e,s,r);if(i===!1)return;i===e.request.options?a=e.request.options:i!==void 0&&(a=u(void 0,i,a)),d++}});n.paginate=_,n.paginate.all=(async(e,t)=>{let n=[];for await(let r of _(e,t))n.push(r);return n}),n.paginate.each=_,n.stream=((e,t)=>n(e,{...t,isStream:!0}));for(let e of m)n[e]=((t,r)=>n(t,{...r,method:e})),n.stream[e]=((t,r)=>n(t,{...r,method:e,isStream:!0}));return Object.assign(n,c),Object.defineProperty(n,"defaults",{value:t.mutableDefaults?t:s.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),n.mergeOptions=d,n};e.default=g,n(jr(),e)})),Nr=Z(((e,t)=>{var n=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=e&&e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&n(t,e,r)};Object.defineProperty(e,"__esModule",{value:!0});var i=Q(`url`),a=Mr(),o={options:{method:`GET`,retry:{limit:2,methods:[`GET`,`PUT`,`HEAD`,`DELETE`,`OPTIONS`,`TRACE`],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:[`ETIMEDOUT`,`ECONNRESET`,`EADDRINUSE`,`ECONNREFUSED`,`EPIPE`,`ENOTFOUND`,`ENETUNREACH`,`EAI_AGAIN`],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":`got (https://github.com/sindresorhus/got)`},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:`text`,resolveBodyOnly:!1,maxRedirects:10,prefixUrl:``,methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:e=>e.request.options.responseType===`json`?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,`link`))return!1;let t=e.headers.link.split(`,`),n;for(let e of t){let t=e.split(`;`);if(t[1].includes(`next`)){n=t[0].trimStart().trim(),n=n.slice(1,-1);break}}return n?{url:new i.URL(n)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:e=>JSON.parse(e),stringifyJson:e=>JSON.stringify(e),cacheOptions:{}},handlers:[a.defaultHandler],mutableDefaults:!1},s=a.default(o);e.default=s,t.exports=s,t.exports.default=s,t.exports.__esModule=!0,r(Mr(),e),r(Or(),e)})),Pr=Z(((e,t)=>{var n=new Map([[`C`,`cwd`],[`f`,`file`],[`z`,`gzip`],[`P`,`preservePaths`],[`U`,`unlink`],[`strip-components`,`strip`],[`stripComponents`,`strip`],[`keep-newer`,`newer`],[`keepNewer`,`newer`],[`keep-newer-files`,`newer`],[`keepNewerFiles`,`newer`],[`k`,`keep`],[`keep-existing`,`keep`],[`keepExisting`,`keep`],[`m`,`noMtime`],[`no-mtime`,`noMtime`],[`p`,`preserveOwner`],[`L`,`follow`],[`h`,`follow`]]);t.exports=e=>e?Object.keys(e).map(t=>[n.has(t)?n.get(t):t,e[t]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}})),Fr=Z((e=>{var t=typeof process==`object`&&process?process:{stdout:null,stderr:null},n=Q(`events`),r=Q(`stream`),i=Q(`string_decoder`).StringDecoder,a=Symbol(`EOF`),o=Symbol(`maybeEmitEnd`),s=Symbol(`emittedEnd`),c=Symbol(`emittingEnd`),l=Symbol(`emittedError`),u=Symbol(`closed`),d=Symbol(`read`),f=Symbol(`flush`),p=Symbol(`flushChunk`),m=Symbol(`encoding`),h=Symbol(`decoder`),g=Symbol(`flowing`),_=Symbol(`paused`),v=Symbol(`resume`),y=Symbol(`buffer`),b=Symbol(`pipes`),x=Symbol(`bufferLength`),S=Symbol(`bufferPush`),C=Symbol(`bufferShift`),w=Symbol(`objectMode`),T=Symbol(`destroyed`),E=Symbol(`error`),D=Symbol(`emitData`),O=Symbol(`emitEnd`),k=Symbol(`emitEnd2`),A=Symbol(`async`),j=Symbol(`abort`),M=Symbol(`aborted`),N=Symbol(`signal`),P=e=>Promise.resolve().then(e),F=global._MP_NO_ITERATOR_SYMBOLS_!==`1`,I=F&&Symbol.asyncIterator||Symbol(`asyncIterator not implemented`),L=F&&Symbol.iterator||Symbol(`iterator not implemented`),R=e=>e===`end`||e===`finish`||e===`prefinish`,z=e=>e instanceof ArrayBuffer||typeof e==`object`&&e.constructor&&e.constructor.name===`ArrayBuffer`&&e.byteLength>=0,B=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),V=class{constructor(e,t,n){this.src=e,this.dest=t,this.opts=n,this.ondrain=()=>e[v](),t.on(`drain`,this.ondrain)}unpipe(){this.dest.removeListener(`drain`,this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},H=class extends V{unpipe(){this.src.removeListener(`error`,this.proxyErrors),super.unpipe()}constructor(e,t,n){super(e,t,n),this.proxyErrors=e=>t.emit(`error`,e),e.on(`error`,this.proxyErrors)}};e.Minipass=class e extends r{constructor(e){super(),this[g]=!1,this[_]=!1,this[b]=[],this[y]=[],this[w]=e&&e.objectMode||!1,this[m]=this[w]?null:e&&e.encoding||null,this[m]===`buffer`&&(this[m]=null),this[A]=e&&!!e.async||!1,this[h]=this[m]?new i(this[m]):null,this[a]=!1,this[s]=!1,this[c]=!1,this[u]=!1,this[l]=null,this.writable=!0,this.readable=!0,this[x]=0,this[T]=!1,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[y]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[b]}),this[N]=e&&e.signal,this[M]=!1,this[N]&&(this[N].addEventListener(`abort`,()=>this[j]()),this[N].aborted&&this[j]())}get bufferLength(){return this[x]}get encoding(){return this[m]}set encoding(e){if(this[w])throw Error(`cannot set encoding in objectMode`);if(this[m]&&e!==this[m]&&(this[h]&&this[h].lastNeed||this[x]))throw Error(`cannot change encoding`);this[m]!==e&&(this[h]=e?new i(e):null,this[y].length&&(this[y]=this[y].map(e=>this[h].write(e)))),this[m]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[w]}set objectMode(e){this[w]=this[w]||!!e}get async(){return this[A]}set async(e){this[A]=this[A]||!!e}[j](){this[M]=!0,this.emit(`abort`,this[N].reason),this.destroy(this[N].reason)}get aborted(){return this[M]}set aborted(e){}write(e,t,n){if(this[M])return!1;if(this[a])throw Error(`write after end`);if(this[T])return this.emit(`error`,Object.assign(Error(`Cannot call write after a stream was destroyed`),{code:`ERR_STREAM_DESTROYED`})),!0;typeof t==`function`&&(n=t,t=`utf8`),t||=`utf8`;let r=this[A]?P:e=>e();return!this[w]&&!Buffer.isBuffer(e)&&(B(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):z(e)?e=Buffer.from(e):typeof e!=`string`&&(this.objectMode=!0)),this[w]?(this.flowing&&this[x]!==0&&this[f](!0),this.flowing?this.emit(`data`,e):this[S](e),this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing):e.length?(typeof e==`string`&&(t!==this[m]||this[h].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[m]&&(e=this[h].write(e)),this.flowing&&this[x]!==0&&this[f](!0),this.flowing?this.emit(`data`,e):this[S](e),this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing):(this[x]!==0&&this.emit(`readable`),n&&r(n),this.flowing)}read(e){if(this[T])return null;if(this[x]===0||e===0||e>this[x])return this[o](),null;this[w]&&(e=null),this[y].length>1&&!this[w]&&(this[y]=this.encoding?[this[y].join(``)]:[Buffer.concat(this[y],this[x])]);let t=this[d](e||null,this[y][0]);return this[o](),t}[d](e,t){return e===t.length||e===null?this[C]():(this[y][0]=t.slice(e),t=t.slice(0,e),this[x]-=e),this.emit(`data`,t),!this[y].length&&!this[a]&&this.emit(`drain`),t}end(e,t,n){return typeof e==`function`&&(n=e,e=null),typeof t==`function`&&(n=t,t=`utf8`),e&&this.write(e,t),n&&this.once(`end`,n),this[a]=!0,this.writable=!1,(this.flowing||!this[_])&&this[o](),this}[v](){this[T]||(this[_]=!1,this[g]=!0,this.emit(`resume`),this[y].length?this[f]():this[a]?this[o]():this.emit(`drain`))}resume(){return this[v]()}pause(){this[g]=!1,this[_]=!0}get destroyed(){return this[T]}get flowing(){return this[g]}get paused(){return this[_]}[S](e){this[w]?this[x]+=1:this[x]+=e.length,this[y].push(e)}[C](){return this[w]?--this[x]:this[x]-=this[y][0].length,this[y].shift()}[f](e){do;while(this[p](this[C]())&&this[y].length);!e&&!this[y].length&&!this[a]&&this.emit(`drain`)}[p](e){return this.emit(`data`,e),this.flowing}pipe(e,n){if(this[T])return;let r=this[s];return n||={},e===t.stdout||e===t.stderr?n.end=!1:n.end=n.end!==!1,n.proxyErrors=!!n.proxyErrors,r?n.end&&e.end():(this[b].push(n.proxyErrors?new H(this,e,n):new V(this,e,n)),this[A]?P(()=>this[v]()):this[v]()),e}unpipe(e){let t=this[b].find(t=>t.dest===e);t&&(this[b].splice(this[b].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let n=super.on(e,t);return e===`data`&&!this[b].length&&!this.flowing?this[v]():e===`readable`&&this[x]!==0?super.emit(`readable`):R(e)&&this[s]?(super.emit(e),this.removeAllListeners(e)):e===`error`&&this[l]&&(this[A]?P(()=>t.call(this,this[l])):t.call(this,this[l])),n}get emittedEnd(){return this[s]}[o](){!this[c]&&!this[s]&&!this[T]&&this[y].length===0&&this[a]&&(this[c]=!0,this.emit(`end`),this.emit(`prefinish`),this.emit(`finish`),this[u]&&this.emit(`close`),this[c]=!1)}emit(e,t,...n){if(e!==`error`&&e!==`close`&&e!==T&&this[T])return;if(e===`data`)return!this[w]&&!t?!1:this[A]?P(()=>this[D](t)):this[D](t);if(e===`end`)return this[O]();if(e===`close`){if(this[u]=!0,!this[s]&&!this[T])return;let e=super.emit(`close`);return this.removeAllListeners(`close`),e}if(e===`error`){this[l]=t,super.emit(E,t);let e=!this[N]||this.listeners(`error`).length?super.emit(`error`,t):!1;return this[o](),e}if(e===`resume`){let e=super.emit(`resume`);return this[o](),e}if(e===`finish`||e===`prefinish`){let t=super.emit(e);return this.removeAllListeners(e),t}let r=super.emit(e,t,...n);return this[o](),r}[D](e){for(let t of this[b])t.dest.write(e)===!1&&this.pause();let t=super.emit(`data`,e);return this[o](),t}[O](){this[s]||(this[s]=!0,this.readable=!1,this[A]?P(()=>this[k]()):this[k]())}[k](){if(this[h]){let e=this[h].end();if(e){for(let t of this[b])t.dest.write(e);super.emit(`data`,e)}}for(let e of this[b])e.end();let e=super.emit(`end`);return this.removeAllListeners(`end`),e}collect(){let e=[];this[w]||(e.dataLength=0);let t=this.promise();return this.on(`data`,t=>{e.push(t),this[w]||(e.dataLength+=t.length)}),t.then(()=>e)}concat(){return this[w]?Promise.reject(Error(`cannot concat in objectMode`)):this.collect().then(e=>this[w]?Promise.reject(Error(`cannot concat in objectMode`)):this[m]?e.join(``):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(T,()=>t(Error(`stream destroyed`))),this.on(`error`,e=>t(e)),this.on(`end`,()=>e())})}[I](){let e=!1,t=()=>(this.pause(),e=!0,Promise.resolve({done:!0}));return{next:()=>{if(e)return t();let n=this.read();if(n!==null)return Promise.resolve({done:!1,value:n});if(this[a])return t();let r=null,i=null,o=e=>{this.removeListener(`data`,s),this.removeListener(`end`,c),this.removeListener(T,l),t(),i(e)},s=e=>{this.removeListener(`error`,o),this.removeListener(`end`,c),this.removeListener(T,l),this.pause(),r({value:e,done:!!this[a]})},c=()=>{this.removeListener(`error`,o),this.removeListener(`data`,s),this.removeListener(T,l),t(),r({done:!0})},l=()=>o(Error(`stream destroyed`));return new Promise((e,t)=>{i=t,r=e,this.once(T,l),this.once(`error`,o),this.once(`end`,c),this.once(`data`,s)})},throw:t,return:t,[I](){return this}}}[L](){let e=!1,t=()=>(this.pause(),this.removeListener(E,t),this.removeListener(T,t),this.removeListener(`end`,t),e=!0,{done:!0});return this.once(`end`,t),this.once(E,t),this.once(T,t),{next:()=>{if(e)return t();let n=this.read();return n===null?t():{value:n}},throw:t,return:t,[L](){return this}}}destroy(e){return this[T]?(e?this.emit(`error`,e):this.emit(T),this):(this[T]=!0,this[y].length=0,this[x]=0,typeof this.close==`function`&&!this[u]&&this.close(),e?this.emit(`error`,e):this.emit(T),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof r||t instanceof n&&(typeof t.pipe==`function`||typeof t.write==`function`&&typeof t.end==`function`))}}})),Ir=Z(((e,t)=>{var n=Q(`zlib`).constants||{ZLIB_VERNUM:4736};t.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},n))})),Lr=Z(((e,t)=>{var n=typeof process==`object`&&process?process:{stdout:null,stderr:null},r=Q(`events`),i=Q(`stream`),a=Q(`string_decoder`).StringDecoder,o=Symbol(`EOF`),s=Symbol(`maybeEmitEnd`),c=Symbol(`emittedEnd`),l=Symbol(`emittingEnd`),u=Symbol(`emittedError`),d=Symbol(`closed`),f=Symbol(`read`),p=Symbol(`flush`),m=Symbol(`flushChunk`),h=Symbol(`encoding`),g=Symbol(`decoder`),_=Symbol(`flowing`),v=Symbol(`paused`),y=Symbol(`resume`),b=Symbol(`bufferLength`),x=Symbol(`bufferPush`),S=Symbol(`bufferShift`),C=Symbol(`objectMode`),w=Symbol(`destroyed`),T=Symbol(`emitData`),E=Symbol(`emitEnd`),D=Symbol(`emitEnd2`),O=Symbol(`async`),k=e=>Promise.resolve().then(e),A=global._MP_NO_ITERATOR_SYMBOLS_!==`1`,j=A&&Symbol.asyncIterator||Symbol(`asyncIterator not implemented`),M=A&&Symbol.iterator||Symbol(`iterator not implemented`),N=e=>e===`end`||e===`finish`||e===`prefinish`,P=e=>e instanceof ArrayBuffer||typeof e==`object`&&e.constructor&&e.constructor.name===`ArrayBuffer`&&e.byteLength>=0,F=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),I=class{constructor(e,t,n){this.src=e,this.dest=t,this.opts=n,this.ondrain=()=>e[y](),t.on(`drain`,this.ondrain)}unpipe(){this.dest.removeListener(`drain`,this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},L=class extends I{unpipe(){this.src.removeListener(`error`,this.proxyErrors),super.unpipe()}constructor(e,t,n){super(e,t,n),this.proxyErrors=e=>t.emit(`error`,e),e.on(`error`,this.proxyErrors)}};t.exports=class e extends i{constructor(e){super(),this[_]=!1,this[v]=!1,this.pipes=[],this.buffer=[],this[C]=e&&e.objectMode||!1,this[h]=this[C]?null:e&&e.encoding||null,this[h]===`buffer`&&(this[h]=null),this[O]=e&&!!e.async||!1,this[g]=this[h]?new a(this[h]):null,this[o]=!1,this[c]=!1,this[l]=!1,this[d]=!1,this[u]=null,this.writable=!0,this.readable=!0,this[b]=0,this[w]=!1}get bufferLength(){return this[b]}get encoding(){return this[h]}set encoding(e){if(this[C])throw Error(`cannot set encoding in objectMode`);if(this[h]&&e!==this[h]&&(this[g]&&this[g].lastNeed||this[b]))throw Error(`cannot change encoding`);this[h]!==e&&(this[g]=e?new a(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[g].write(e)))),this[h]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[C]}set objectMode(e){this[C]=this[C]||!!e}get async(){return this[O]}set async(e){this[O]=this[O]||!!e}write(e,t,n){if(this[o])throw Error(`write after end`);if(this[w])return this.emit(`error`,Object.assign(Error(`Cannot call write after a stream was destroyed`),{code:`ERR_STREAM_DESTROYED`})),!0;typeof t==`function`&&(n=t,t=`utf8`),t||=`utf8`;let r=this[O]?k:e=>e();return!this[C]&&!Buffer.isBuffer(e)&&(F(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):P(e)?e=Buffer.from(e):typeof e!=`string`&&(this.objectMode=!0)),this[C]?(this.flowing&&this[b]!==0&&this[p](!0),this.flowing?this.emit(`data`,e):this[x](e),this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing):e.length?(typeof e==`string`&&(t!==this[h]||this[g].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[h]&&(e=this[g].write(e)),this.flowing&&this[b]!==0&&this[p](!0),this.flowing?this.emit(`data`,e):this[x](e),this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing):(this[b]!==0&&this.emit(`readable`),n&&r(n),this.flowing)}read(e){if(this[w])return null;if(this[b]===0||e===0||e>this[b])return this[s](),null;this[C]&&(e=null),this.buffer.length>1&&!this[C]&&(this.buffer=this.encoding?[this.buffer.join(``)]:[Buffer.concat(this.buffer,this[b])]);let t=this[f](e||null,this.buffer[0]);return this[s](),t}[f](e,t){return e===t.length||e===null?this[S]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[b]-=e),this.emit(`data`,t),!this.buffer.length&&!this[o]&&this.emit(`drain`),t}end(e,t,n){return typeof e==`function`&&(n=e,e=null),typeof t==`function`&&(n=t,t=`utf8`),e&&this.write(e,t),n&&this.once(`end`,n),this[o]=!0,this.writable=!1,(this.flowing||!this[v])&&this[s](),this}[y](){this[w]||(this[v]=!1,this[_]=!0,this.emit(`resume`),this.buffer.length?this[p]():this[o]?this[s]():this.emit(`drain`))}resume(){return this[y]()}pause(){this[_]=!1,this[v]=!0}get destroyed(){return this[w]}get flowing(){return this[_]}get paused(){return this[v]}[x](e){this[C]?this[b]+=1:this[b]+=e.length,this.buffer.push(e)}[S](){return this.buffer.length&&(this[C]?--this[b]:this[b]-=this.buffer[0].length),this.buffer.shift()}[p](e){do;while(this[m](this[S]()));!e&&!this.buffer.length&&!this[o]&&this.emit(`drain`)}[m](e){return e?(this.emit(`data`,e),this.flowing):!1}pipe(e,t){if(this[w])return;let r=this[c];return t||={},e===n.stdout||e===n.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this.pipes.push(t.proxyErrors?new L(this,e,t):new I(this,e,t)),this[O]?k(()=>this[y]()):this[y]()),e}unpipe(e){let t=this.pipes.find(t=>t.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let n=super.on(e,t);return e===`data`&&!this.pipes.length&&!this.flowing?this[y]():e===`readable`&&this[b]!==0?super.emit(`readable`):N(e)&&this[c]?(super.emit(e),this.removeAllListeners(e)):e===`error`&&this[u]&&(this[O]?k(()=>t.call(this,this[u])):t.call(this,this[u])),n}get emittedEnd(){return this[c]}[s](){!this[l]&&!this[c]&&!this[w]&&this.buffer.length===0&&this[o]&&(this[l]=!0,this.emit(`end`),this.emit(`prefinish`),this.emit(`finish`),this[d]&&this.emit(`close`),this[l]=!1)}emit(e,t,...n){if(e!==`error`&&e!==`close`&&e!==w&&this[w])return;if(e===`data`)return t?this[O]?k(()=>this[T](t)):this[T](t):!1;if(e===`end`)return this[E]();if(e===`close`){if(this[d]=!0,!this[c]&&!this[w])return;let e=super.emit(`close`);return this.removeAllListeners(`close`),e}if(e===`error`){this[u]=t;let e=super.emit(`error`,t);return this[s](),e}if(e===`resume`){let e=super.emit(`resume`);return this[s](),e}if(e===`finish`||e===`prefinish`){let t=super.emit(e);return this.removeAllListeners(e),t}let r=super.emit(e,t,...n);return this[s](),r}[T](e){for(let t of this.pipes)t.dest.write(e)===!1&&this.pause();let t=super.emit(`data`,e);return this[s](),t}[E](){this[c]||(this[c]=!0,this.readable=!1,this[O]?k(()=>this[D]()):this[D]())}[D](){if(this[g]){let e=this[g].end();if(e){for(let t of this.pipes)t.dest.write(e);super.emit(`data`,e)}}for(let e of this.pipes)e.end();let e=super.emit(`end`);return this.removeAllListeners(`end`),e}collect(){let e=[];this[C]||(e.dataLength=0);let t=this.promise();return this.on(`data`,t=>{e.push(t),this[C]||(e.dataLength+=t.length)}),t.then(()=>e)}concat(){return this[C]?Promise.reject(Error(`cannot concat in objectMode`)):this.collect().then(e=>this[C]?Promise.reject(Error(`cannot concat in objectMode`)):this[h]?e.join(``):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(w,()=>t(Error(`stream destroyed`))),this.on(`error`,e=>t(e)),this.on(`end`,()=>e())})}[j](){return{next:()=>{let e=this.read();if(e!==null)return Promise.resolve({done:!1,value:e});if(this[o])return Promise.resolve({done:!0});let t=null,n=null,r=e=>{this.removeListener(`data`,i),this.removeListener(`end`,a),n(e)},i=e=>{this.removeListener(`error`,r),this.removeListener(`end`,a),this.pause(),t({value:e,done:!!this[o]})},a=()=>{this.removeListener(`error`,r),this.removeListener(`data`,i),t({done:!0})},s=()=>r(Error(`stream destroyed`));return new Promise((e,o)=>{n=o,t=e,this.once(w,s),this.once(`error`,r),this.once(`end`,a),this.once(`data`,i)})}}}[M](){return{next:()=>{let e=this.read();return{value:e,done:e===null}}}}destroy(e){return this[w]?(e?this.emit(`error`,e):this.emit(w),this):(this[w]=!0,this.buffer.length=0,this[b]=0,typeof this.close==`function`&&!this[d]&&this.close(),e?this.emit(`error`,e):this.emit(w),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof i||t instanceof r&&(typeof t.pipe==`function`||typeof t.write==`function`&&typeof t.end==`function`))}}})),Rr=Z((e=>{var t=Q(`assert`),n=Q(`buffer`).Buffer,r=Q(`zlib`),i=e.constants=Ir(),a=Lr(),o=n.concat,s=Symbol(`_superWrite`),c=class extends Error{constructor(e){super(`zlib: `+e.message),this.code=e.code,this.errno=e.errno,this.code||=`ZLIB_ERROR`,this.message=`zlib: `+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return`ZlibError`}},l=Symbol(`opts`),u=Symbol(`flushFlag`),d=Symbol(`finishFlushFlag`),f=Symbol(`fullFlushFlag`),p=Symbol(`handle`),m=Symbol(`onError`),h=Symbol(`sawError`),g=Symbol(`level`),_=Symbol(`strategy`),v=Symbol(`ended`),y=class extends a{constructor(e,t){if(!e||typeof e!=`object`)throw TypeError(`invalid options for ZlibBase constructor`);super(e),this[h]=!1,this[v]=!1,this[l]=e,this[u]=e.flush,this[d]=e.finishFlush;try{this[p]=new r[t](e)}catch(e){throw new c(e)}this[m]=e=>{this[h]||(this[h]=!0,this.close(),this.emit(`error`,e))},this[p].on(`error`,e=>this[m](new c(e))),this.once(`end`,()=>this.close)}close(){this[p]&&(this[p].close(),this[p]=null,this.emit(`close`))}reset(){if(!this[h])return t(this[p],`zlib binding closed`),this[p].reset()}flush(e){this.ended||(typeof e!=`number`&&(e=this[f]),this.write(Object.assign(n.alloc(0),{[u]:e})))}end(e,t,n){return e&&this.write(e,t),this.flush(this[d]),this[v]=!0,super.end(null,null,n)}get ended(){return this[v]}write(e,r,i){if(typeof r==`function`&&(i=r,r=`utf8`),typeof e==`string`&&(e=n.from(e,r)),this[h])return;t(this[p],`zlib binding closed`);let a=this[p]._handle,l=a.close;a.close=()=>{};let d=this[p].close;this[p].close=()=>{},n.concat=e=>e;let f;try{let t=typeof e[u]==`number`?e[u]:this[u];f=this[p]._processChunk(e,t),n.concat=o}catch(e){n.concat=o,this[m](new c(e))}finally{this[p]&&(this[p]._handle=a,a.close=l,this[p].close=d,this[p].removeAllListeners(`error`))}this[p]&&this[p].on(`error`,e=>this[m](new c(e)));let g;if(f){if(Array.isArray(f)&&f.length>0){g=this[s](n.from(f[0]));for(let e=1;e<f.length;e++)g=this[s](f[e])}else g=this[s](n.from(f))}return i&&i(),g}[s](e){return super.write(e)}},b=class extends y{constructor(e,t){e||={},e.flush=e.flush||i.Z_NO_FLUSH,e.finishFlush=e.finishFlush||i.Z_FINISH,super(e,t),this[f]=i.Z_FULL_FLUSH,this[g]=e.level,this[_]=e.strategy}params(e,n){if(!this[h]){if(!this[p])throw Error(`cannot switch params when binding is closed`);if(!this[p].params)throw Error(`not supported in this implementation`);if(this[g]!==e||this[_]!==n){this.flush(i.Z_SYNC_FLUSH),t(this[p],`zlib binding closed`);let r=this[p].flush;this[p].flush=(e,t)=>{this.flush(e),t()};try{this[p].params(e,n)}finally{this[p].flush=r}this[p]&&(this[g]=e,this[_]=n)}}}},x=class extends b{constructor(e){super(e,`Deflate`)}},S=class extends b{constructor(e){super(e,`Inflate`)}},C=Symbol(`_portable`),w=class extends b{constructor(e){super(e,`Gzip`),this[C]=e&&!!e.portable}[s](e){return this[C]?(this[C]=!1,e[9]=255,super[s](e)):super[s](e)}},T=class extends b{constructor(e){super(e,`Gunzip`)}},E=class extends b{constructor(e){super(e,`DeflateRaw`)}},D=class extends b{constructor(e){super(e,`InflateRaw`)}},O=class extends b{constructor(e){super(e,`Unzip`)}},k=class extends y{constructor(e,t){e||={},e.flush=e.flush||i.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||i.BROTLI_OPERATION_FINISH,super(e,t),this[f]=i.BROTLI_OPERATION_FLUSH}},A=class extends k{constructor(e){super(e,`BrotliCompress`)}},j=class extends k{constructor(e){super(e,`BrotliDecompress`)}};e.Deflate=x,e.Inflate=S,e.Gzip=w,e.Gunzip=T,e.DeflateRaw=E,e.InflateRaw=D,e.Unzip=O,typeof r.BrotliCompress==`function`?(e.BrotliCompress=A,e.BrotliDecompress=j):e.BrotliCompress=e.BrotliDecompress=class{constructor(){throw Error(`Brotli is not supported in this version of Node.js`)}}})),zr=Z(((e,t)=>{t.exports=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`?e=>e&&e.replace(/\\/g,`/`):e=>e})),Br=Z(((e,t)=>{var{Minipass:n}=Fr(),r=zr(),i=Symbol(`slurp`);t.exports=class extends n{constructor(e,t,n){switch(super(),this.pause(),this.extended=t,this.globalExtended=n,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case`File`:case`OldFile`:case`Link`:case`SymbolicLink`:case`CharacterDevice`:case`BlockDevice`:case`Directory`:case`FIFO`:case`ContiguousFile`:case`GNUDumpDir`:break;case`NextFileHasLongLinkpath`:case`NextFileHasLongPath`:case`OldGnuLongPath`:case`GlobalExtendedHeader`:case`ExtendedHeader`:case`OldExtendedHeader`:this.meta=!0;break;default:this.ignore=!0}this.path=r(e.path),this.mode=e.mode,this.mode&&(this.mode&=4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=r(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[i](t),n&&this[i](n,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw Error(`writing more to entry than is appropriate`);let n=this.remain,r=this.blockRemain;return this.remain=Math.max(0,n-t),this.blockRemain=Math.max(0,r-t),this.ignore?!0:n>=t?super.write(e):super.write(e.slice(0,n))}[i](e,t){for(let n in e)e[n]!==null&&e[n]!==void 0&&!(t&&n===`path`)&&(this[n]=n===`path`||n===`linkpath`?r(e[n]):e[n])}}})),Vr=Z((e=>{e.name=new Map([[`0`,`File`],[``,`OldFile`],[`1`,`Link`],[`2`,`SymbolicLink`],[`3`,`CharacterDevice`],[`4`,`BlockDevice`],[`5`,`Directory`],[`6`,`FIFO`],[`7`,`ContiguousFile`],[`g`,`GlobalExtendedHeader`],[`x`,`ExtendedHeader`],[`A`,`SolarisACL`],[`D`,`GNUDumpDir`],[`I`,`Inode`],[`K`,`NextFileHasLongLinkpath`],[`L`,`NextFileHasLongPath`],[`M`,`ContinuationFile`],[`N`,`OldGnuLongPath`],[`S`,`SparseFile`],[`V`,`TapeVolumeHeader`],[`X`,`OldExtendedHeader`]]),e.code=new Map(Array.from(e.name).map(e=>[e[1],e[0]]))})),Hr=Z(((e,t)=>{var n=(e,t)=>{if(Number.isSafeInteger(e))e<0?i(e,t):r(e,t);else throw Error(`cannot encode number outside of javascript safe integer range`);return t},r=(e,t)=>{t[0]=128;for(var n=t.length;n>1;n--)t[n-1]=e&255,e=Math.floor(e/256)},i=(e,t)=>{t[0]=255;var n=!1;e*=-1;for(var r=t.length;r>1;r--){var i=e&255;e=Math.floor(e/256),n?t[r-1]=c(i):i===0?t[r-1]=0:(n=!0,t[r-1]=l(i))}},a=e=>{let t=e[0],n=t===128?s(e.slice(1,e.length)):t===255?o(e):null;if(n===null)throw Error(`invalid base256 encoding`);if(!Number.isSafeInteger(n))throw Error(`parsed number outside of javascript safe integer range`);return n},o=e=>{for(var t=e.length,n=0,r=!1,i=t-1;i>-1;i--){var a=e[i],o;r?o=c(a):a===0?o=a:(r=!0,o=l(a)),o!==0&&(n-=o*256**(t-i-1))}return n},s=e=>{for(var t=e.length,n=0,r=t-1;r>-1;r--){var i=e[r];i!==0&&(n+=i*256**(t-r-1))}return n},c=e=>(255^e)&255,l=e=>(255^e)+1&255;t.exports={encode:n,parse:a}})),Ur=Z(((e,t)=>{var n=Vr(),r=Q(`path`).posix,i=Hr(),a=Symbol(`slurp`),o=Symbol(`type`),s=class{constructor(e,t,n,r){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[o]=`0`,this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,n,r):e&&this.set(e)}decode(e,t,n,r){if(t||=0,!e||!(e.length>=t+512))throw Error(`need 512 bytes for header`);if(this.path=l(e,t,100),this.mode=f(e,t+100,8),this.uid=f(e,t+108,8),this.gid=f(e,t+116,8),this.size=f(e,t+124,12),this.mtime=u(e,t+136,12),this.cksum=f(e,t+148,12),this[a](n),this[a](r,!0),this[o]=l(e,t+156,1),this[o]===``&&(this[o]=`0`),this[o]===`0`&&this.path.slice(-1)===`/`&&(this[o]=`5`),this[o]===`5`&&(this.size=0),this.linkpath=l(e,t+157,100),e.slice(t+257,t+265).toString()===`ustar\x0000`){if(this.uname=l(e,t+265,32),this.gname=l(e,t+297,32),this.devmaj=f(e,t+329,8),this.devmin=f(e,t+337,8),e[t+475]!==0){let n=l(e,t+345,155);this.path=n+`/`+this.path}else{let n=l(e,t+345,130);n&&(this.path=n+`/`+this.path),this.atime=u(e,t+476,12),this.ctime=u(e,t+488,12)}}let i=256;for(let n=t;n<t+148;n++)i+=e[n];for(let n=t+156;n<t+512;n++)i+=e[n];this.cksumValid=i===this.cksum,this.cksum===null&&i===256&&(this.nullBlock=!0)}[a](e,t){for(let n in e)e[n]!==null&&e[n]!==void 0&&!(t&&n===`path`)&&(this[n]=e[n])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||=0,!(e.length>=t+512))throw Error(`need 512 bytes for header`);let n=this.ctime||this.atime?130:155,r=c(this.path||``,n),i=r[0],a=r[1];this.needPax=r[2],this.needPax=S(e,t,100,i)||this.needPax,this.needPax=g(e,t+100,8,this.mode)||this.needPax,this.needPax=g(e,t+108,8,this.uid)||this.needPax,this.needPax=g(e,t+116,8,this.gid)||this.needPax,this.needPax=g(e,t+124,12,this.size)||this.needPax,this.needPax=b(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[o].charCodeAt(0),this.needPax=S(e,t+157,100,this.linkpath)||this.needPax,e.write(`ustar\x0000`,t+257,8),this.needPax=S(e,t+265,32,this.uname)||this.needPax,this.needPax=S(e,t+297,32,this.gname)||this.needPax,this.needPax=g(e,t+329,8,this.devmaj)||this.needPax,this.needPax=g(e,t+337,8,this.devmin)||this.needPax,this.needPax=S(e,t+345,n,a)||this.needPax,e[t+475]===0?(this.needPax=S(e,t+345,130,a)||this.needPax,this.needPax=b(e,t+476,12,this.atime)||this.needPax,this.needPax=b(e,t+488,12,this.ctime)||this.needPax):this.needPax=S(e,t+345,155,a)||this.needPax;let s=256;for(let n=t;n<t+148;n++)s+=e[n];for(let n=t+156;n<t+512;n++)s+=e[n];return this.cksum=s,g(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return n.name.get(this[o])||this[o]}get typeKey(){return this[o]}set type(e){this[o]=n.code.has(e)?n.code.get(e):e}},c=(e,t)=>{let n=e,i=``,a,o=r.parse(e).root||`.`;if(Buffer.byteLength(n)<100)a=[n,i,!1];else{i=r.dirname(n),n=r.basename(n);do Buffer.byteLength(n)<=100&&Buffer.byteLength(i)<=t?a=[n,i,!1]:Buffer.byteLength(n)>100&&Buffer.byteLength(i)<=t?a=[n.slice(0,99),i,!0]:(n=r.join(r.basename(i),n),i=r.dirname(i));while(i!==o&&!a);a||=[e.slice(0,99),``,!0]}return a},l=(e,t,n)=>e.slice(t,t+n).toString(`utf8`).replace(/\0.*/,``),u=(e,t,n)=>d(f(e,t,n)),d=e=>e===null?null:new Date(e*1e3),f=(e,t,n)=>e[t]&128?i.parse(e.slice(t,t+n)):m(e,t,n),p=e=>isNaN(e)?null:e,m=(e,t,n)=>p(parseInt(e.slice(t,t+n).toString(`utf8`).replace(/\0.*$/,``).trim(),8)),h={12:8589934591,8:2097151},g=(e,t,n,r)=>r===null?!1:r>h[n]||r<0?(i.encode(r,e.slice(t,t+n)),!0):(_(e,t,n,r),!1),_=(e,t,n,r)=>e.write(v(r,n),t,n,`ascii`),v=(e,t)=>y(Math.floor(e).toString(8),t),y=(e,t)=>(e.length===t-1?e:Array(t-e.length-1).join(`0`)+e+` `)+`\0`,b=(e,t,n,r)=>r!==null&&g(e,t,n,r.getTime()/1e3),x=Array(156).join(`\0`),S=(e,t,n,r)=>r!==null&&(e.write(r+x,t,n,`utf8`),r.length!==Buffer.byteLength(r)||r.length>n);t.exports=s})),Wr=Z(((e,t)=>{var n=Ur(),r=Q(`path`),i=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e===``)return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),a=Buffer.allocUnsafe(i);for(let e=0;e<512;e++)a[e]=0;new n({path:(`PaxHeader/`+r.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?`GlobalExtendedHeader`:`ExtendedHeader`,linkpath:``,uname:this.uname||``,gname:this.gname||``,devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,t,`utf8`);for(let e=t+512;e<a.length;e++)a[e]=0;return a}encodeBody(){return this.encodeField(`path`)+this.encodeField(`ctime`)+this.encodeField(`atime`)+this.encodeField(`dev`)+this.encodeField(`ino`)+this.encodeField(`nlink`)+this.encodeField(`charset`)+this.encodeField(`comment`)+this.encodeField(`gid`)+this.encodeField(`gname`)+this.encodeField(`linkpath`)+this.encodeField(`mtime`)+this.encodeField(`size`)+this.encodeField(`uid`)+this.encodeField(`uname`)}encodeField(e){if(this[e]===null||this[e]===void 0)return``;let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],n=` `+(e===`dev`||e===`ino`||e===`nlink`?`SCHILY.`:``)+e+`=`+t+`
25
26
  `,r=Buffer.byteLength(n),i=Math.floor(Math.log(r)/Math.log(10))+1;return r+i>=10**i&&(i+=1),i+r+n}};i.parse=(e,t,n)=>new i(a(o(e),t),n);var a=(e,t)=>t?Object.keys(e).reduce((t,n)=>(t[n]=e[n],t),t):e,o=e=>e.replace(/\n$/,``).split(`
26
- `).reduce(s,Object.create(null)),s=(e,t)=>{let n=parseInt(t,10);if(n!==Buffer.byteLength(t)+1)return e;t=t.slice((n+` `).length);let r=t.split(`=`),i=r.shift().replace(/^SCHILY\.(dev|ino|nlink)/,`$1`);if(!i)return e;let a=r.join(`=`);return e[i]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(i)?new Date(a*1e3):/^[0-9]+$/.test(a)?+a:a,e};t.exports=i})),Ur=Z(((e,t)=>{t.exports=e=>{let t=e.length-1,n=-1;for(;t>-1&&e.charAt(t)===`/`;)n=t,t--;return n===-1?e:e.slice(0,n)}})),Wr=Z(((e,t)=>{t.exports=e=>class extends e{warn(e,t,n={}){this.file&&(n.file=this.file),this.cwd&&(n.cwd=this.cwd),n.code=t instanceof Error&&t.code||e,n.tarCode=e,!this.strict&&n.recoverable!==!1?(t instanceof Error&&(n=Object.assign(t,n),t=t.message),this.emit(`warn`,n.tarCode,t,n)):t instanceof Error?this.emit(`error`,Object.assign(t,n)):this.emit(`error`,Object.assign(Error(`${e}: ${t}`),n))}}})),Gr=Z(((e,t)=>{var n=[`|`,`<`,`>`,`?`,`:`],r=n.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),i=new Map(n.map((e,t)=>[e,r[t]])),a=new Map(r.map((e,t)=>[e,n[t]]));t.exports={encode:e=>n.reduce((e,t)=>e.split(t).join(i.get(t)),e),decode:e=>r.reduce((e,t)=>e.split(t).join(a.get(t)),e)}})),Kr=Z(((e,t)=>{var{isAbsolute:n,parse:r}=Q(`path`).win32;t.exports=e=>{let t=``,i=r(e);for(;n(e)||i.root;){let n=e.charAt(0)===`/`&&e.slice(0,4)!==`//?/`?`/`:i.root;e=e.slice(n.length),t+=n,i=r(e)}return[t,e]}})),qr=Z(((e,t)=>{t.exports=(e,t,n)=>(e&=4095,n&&(e=(e|384)&-19),t&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e)})),Jr=Z(((e,t)=>{var{Minipass:n}=Nr(),r=Hr(),i=Vr(),a=Q(`fs`),o=Q(`path`),s=Lr(),c=Ur(),l=(e,t)=>t?(e=s(e).replace(/^\.(\/|$)/,``),c(t)+`/`+e):s(e),u=16777216,d=Symbol(`process`),f=Symbol(`file`),p=Symbol(`directory`),m=Symbol(`symlink`),h=Symbol(`hardlink`),g=Symbol(`header`),_=Symbol(`read`),v=Symbol(`lstat`),y=Symbol(`onlstat`),b=Symbol(`onread`),x=Symbol(`onreadlink`),S=Symbol(`openfile`),C=Symbol(`onopenfile`),w=Symbol(`close`),T=Symbol(`mode`),E=Symbol(`awaitDrain`),D=Symbol(`ondrain`),O=Symbol(`prefix`),k=Symbol(`hadError`),A=Wr(),j=Gr(),M=Kr(),N=qr(),P=A(class extends n{constructor(e,t){if(t||={},super(t),typeof e!=`string`)throw TypeError(`path is required`);this.path=s(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||``,this.maxReadSize=t.maxReadSize||u,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=s(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?s(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn==`function`&&this.on(`warn`,t.onwarn);let n=!1;if(!this.preservePaths){let[e,t]=M(this.path);e&&(this.path=t,n=e)}this.win32=!!t.win32||process.platform===`win32`,this.win32&&(this.path=j.decode(this.path.replace(/\\/g,`/`)),e=e.replace(/\\/g,`/`)),this.absolute=s(t.absolute||o.resolve(this.cwd,e)),this.path===``&&(this.path=`./`),n&&this.warn(`TAR_ENTRY_INFO`,`stripping ${n} from absolute path`,{entry:this,path:n+this.path}),this.statCache.has(this.absolute)?this[y](this.statCache.get(this.absolute)):this[v]()}emit(e,...t){return e===`error`&&(this[k]=!0),super.emit(e,...t)}[v](){a.lstat(this.absolute,(e,t)=>{if(e)return this.emit(`error`,e);this[y](t)})}[y](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=L(e),this.emit(`stat`,e),this[d]()}[d](){switch(this.type){case`File`:return this[f]();case`Directory`:return this[p]();case`SymbolicLink`:return this[m]();default:return this.end()}}[T](e){return N(e,this.type===`Directory`,this.portable)}[O](e){return l(e,this.prefix)}[g](){this.type===`Directory`&&this.portable&&(this.noMtime=!0),this.header=new i({path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,mode:this[T](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:``,atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new r({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[p](){this.path.slice(-1)!==`/`&&(this.path+=`/`),this.stat.size=0,this[g](),this.end()}[m](){a.readlink(this.absolute,(e,t)=>{if(e)return this.emit(`error`,e);this[x](t)})}[x](e){this.linkpath=s(e),this[g](),this.end()}[h](e){this.type=`Link`,this.linkpath=s(o.relative(this.cwd,e)),this.stat.size=0,this[g](),this.end()}[f](){if(this.stat.nlink>1){let e=this.stat.dev+`:`+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[h](t)}this.linkCache.set(e,this.absolute)}if(this[g](),this.stat.size===0)return this.end();this[S]()}[S](){a.open(this.absolute,`r`,(e,t)=>{if(e)return this.emit(`error`,e);this[C](t)})}[C](e){if(this.fd=e,this[k])return this[w]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[_]()}[_](){let{fd:e,buf:t,offset:n,length:r,pos:i}=this;a.read(e,t,n,r,i,(e,t)=>{if(e)return this[w](()=>this.emit(`error`,e));this[b](t)})}[w](e){a.close(this.fd,e)}[b](e){if(e<=0&&this.remain>0){let e=Error(`encountered unexpected EOF`);return e.path=this.absolute,e.syscall=`read`,e.code=`EOF`,this[w](()=>this.emit(`error`,e))}if(e>this.remain){let e=Error(`did not encounter expected EOF`);return e.path=this.absolute,e.syscall=`read`,e.code=`EOF`,this[w](()=>this.emit(`error`,e))}if(e===this.remain)for(let t=e;t<this.length&&e<this.blockRemain;t++)this.buf[t+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[D]():this[E](()=>this[D]())}[E](e){this.once(`drain`,e)}write(e){if(this.blockRemain<e.length){let e=Error(`writing more data than expected`);return e.path=this.absolute,this.emit(`error`,e)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[D](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[w](e=>e?this.emit(`error`,e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[_]()}}),F=class extends P{[v](){this[y](a.lstatSync(this.absolute))}[m](){this[x](a.readlinkSync(this.absolute))}[S](){this[C](a.openSync(this.absolute,`r`))}[_](){let e=!0;try{let{fd:t,buf:n,offset:r,length:i,pos:o}=this,s=a.readSync(t,n,r,i,o);this[b](s),e=!1}finally{if(e)try{this[w](()=>{})}catch{}}}[E](e){e()}[w](e){a.closeSync(this.fd),e()}},I=A(class extends n{constructor(e,t){t||={},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type===`Directory`&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=s(e.path),this.mode=this[T](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=s(e.linkpath),typeof t.onwarn==`function`&&this.on(`warn`,t.onwarn);let n=!1;if(!this.preservePaths){let[e,t]=M(this.path);e&&(this.path=t,n=e)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new i({path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),n&&this.warn(`TAR_ENTRY_INFO`,`stripping ${n} from absolute path`,{entry:this,path:n+this.path}),this.header.encode()&&!this.noPax&&super.write(new r({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[O](e){return l(e,this.prefix)}[T](e){return N(e,this.type===`Directory`,this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw Error(`writing more to entry than is appropriate`);return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});P.Sync=F,P.Tar=I;var L=e=>e.isFile()?`File`:e.isDirectory()?`Directory`:e.isSymbolicLink()?`SymbolicLink`:`Unsupported`;t.exports=P})),Yr=Z(((e,t)=>{t.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}})),Xr=Z(((e,t)=>{t.exports=n,n.Node=o,n.create=n;function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach==`function`)e.forEach(function(e){t.push(e)});else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}n.prototype.removeNode=function(e){if(e.list!==this)throw Error(`removing node which does not belong to this list`);var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||=e,this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||=e,this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)a(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t||=this;for(var n=this.head,r=0;n!==null;r++)e.call(t,n.value,r,this),n=n.next},n.prototype.forEachReverse=function(e,t){t||=this;for(var n=this.tail,r=this.length-1;n!==null;r--)e.call(t,n.value,r,this),n=n.prev},n.prototype.get=function(e){for(var t=0,n=this.head;n!==null&&t<e;t++)n=n.next;if(t===e&&n!==null)return n.value},n.prototype.getReverse=function(e){for(var t=0,n=this.tail;n!==null&&t<e;t++)n=n.prev;if(t===e&&n!==null)return n.value},n.prototype.map=function(e,t){t||=this;for(var r=new n,i=this.head;i!==null;)r.push(e.call(t,i.value,this)),i=i.next;return r},n.prototype.mapReverse=function(e,t){t||=this;for(var r=new n,i=this.tail;i!==null;)r.push(e.call(t,i.value,this)),i=i.prev;return r},n.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else if(this.head)r=this.head.next,n=this.head.value;else throw TypeError(`Reduce of empty list with no initial value`);for(var i=0;r!==null;i++)n=e(n,r.value,i),r=r.next;return n},n.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else if(this.tail)r=this.tail.prev,n=this.tail.value;else throw TypeError(`Reduce of empty list with no initial value`);for(var i=this.length-1;r!==null;i--)n=e(n,r.value,i),r=r.prev;return n},n.prototype.toArray=function(){for(var e=Array(this.length),t=0,n=this.head;n!==null;t++)e[t]=n.value,n=n.next;return e},n.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,n=this.tail;n!==null;t++)e[t]=n.value,n=n.prev;return e},n.prototype.slice=function(e,t){t||=this.length,t<0&&(t+=this.length),e||=0,e<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(;a!==null&&i<t;i++,a=a.next)r.push(a.value);return r},n.prototype.sliceReverse=function(e,t){t||=this.length,t<0&&(t+=this.length),e||=0,e<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,a=this.tail;a!==null&&i>t;i--)a=a.prev;for(;a!==null&&i>e;i--,a=a.prev)r.push(a.value);return r},n.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(var o=[],i=0;a&&i<t;i++)o.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var i=0;i<n.length;i++)a=r(this,a,n[i]);return o},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;n!==null;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};function r(e,t,n){var r=t===e.head?new o(n,null,t,e):new o(n,t,t.next,e);return r.next===null&&(e.tail=r),r.prev===null&&(e.head=r),e.length++,r}function i(e,t){e.tail=new o(t,e.tail,null,e),e.head||=e.tail,e.length++}function a(e,t){e.head=new o(t,null,e.head,e),e.tail||=e.head,e.length++}function o(e,t,n,r){if(!(this instanceof o))return new o(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}try{Yr()(n)}catch{}})),Zr=Z(((e,t)=>{var n=class{constructor(e,t){this.path=e||`./`,this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},{Minipass:r}=Nr(),i=Ir(),a=Rr(),o=Jr(),s=o.Sync,c=o.Tar,l=Xr(),u=Buffer.alloc(1024),d=Symbol(`onStat`),f=Symbol(`ended`),p=Symbol(`queue`),m=Symbol(`current`),h=Symbol(`process`),g=Symbol(`processing`),_=Symbol(`processJob`),v=Symbol(`jobs`),y=Symbol(`jobDone`),b=Symbol(`addFSEntry`),x=Symbol(`addTarEntry`),S=Symbol(`stat`),C=Symbol(`readdir`),w=Symbol(`onreaddir`),T=Symbol(`pipe`),E=Symbol(`entry`),D=Symbol(`entryOpt`),O=Symbol(`writeEntryClass`),k=Symbol(`write`),A=Symbol(`ondrain`),j=Q(`fs`),M=Q(`path`),N=Wr(),P=Lr(),F=N(class extends r{constructor(e){if(super(e),e||=Object.create(null),this.opt=e,this.file=e.file||``,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=P(e.prefix||``),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[O]=o,typeof e.onwarn==`function`&&this.on(`warn`,e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip||e.brotli){if(e.gzip&&e.brotli)throw TypeError(`gzip and brotli are mutually exclusive`);e.gzip&&(typeof e.gzip!=`object`&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new i.Gzip(e.gzip)),e.brotli&&(typeof e.brotli!=`object`&&(e.brotli={}),this.zip=new i.BrotliCompress(e.brotli)),this.zip.on(`data`,e=>super.write(e)),this.zip.on(`end`,e=>super.end()),this.zip.on(`drain`,e=>this[A]()),this.on(`resume`,e=>this.zip.resume())}else this.on(`drain`,this[A]);this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter==`function`?e.filter:e=>!0,this[p]=new l,this[v]=0,this.jobs=+e.jobs||4,this[g]=!1,this[f]=!1}[k](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[h](),this}write(e){if(this[f])throw Error(`write after end`);return e instanceof a?this[x](e):this[b](e),this.flowing}[x](e){let t=P(M.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let r=new n(e.path,t,!1);r.entry=new c(e,this[D](r)),r.entry.on(`end`,e=>this[y](r)),this[v]+=1,this[p].push(r)}this[h]()}[b](e){let t=P(M.resolve(this.cwd,e));this[p].push(new n(e,t)),this[h]()}[S](e){e.pending=!0,this[v]+=1,j[this.follow?`stat`:`lstat`](e.absolute,(t,n)=>{e.pending=!1,--this[v],t?this.emit(`error`,t):this[d](e,n)})}[d](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[h]()}[C](e){e.pending=!0,this[v]+=1,j.readdir(e.absolute,(t,n)=>{if(e.pending=!1,--this[v],t)return this.emit(`error`,t);this[w](e,n)})}[w](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[h]()}[h](){if(!this[g]){this[g]=!0;for(let e=this[p].head;e!==null&&this[v]<this.jobs;e=e.next)if(this[_](e.value),e.value.ignore){let t=e.next;this[p].removeNode(e),e.next=t}this[g]=!1,this[f]&&!this[p].length&&this[v]===0&&(this.zip?this.zip.end(u):(super.write(u),super.end()))}}get[m](){return this[p]&&this[p].head&&this[p].head.value}[y](e){this[p].shift(),--this[v],this[h]()}[_](e){e.pending||(e.entry?e===this[m]&&!e.piped&&this[T](e):(e.stat||(this.statCache.has(e.absolute)?this[d](e,this.statCache.get(e.absolute)):this[S](e)),e.stat&&(e.ignore||!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[w](e,this.readdirCache.get(e.absolute)):this[C](e),!e.readdir)||(e.entry=this[E](e),e.entry?e===this[m]&&!e.piped&&this[T](e):e.ignore=!0))))}[D](e){return{onwarn:(e,t,n)=>this.warn(e,t,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E](e){this[v]+=1;try{return new this[O](e.path,this[D](e)).on(`end`,()=>this[y](e)).on(`error`,e=>this.emit(`error`,e))}catch(e){this.emit(`error`,e)}}[A](){this[m]&&this[m].entry&&this[m].entry.resume()}[T](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{let n=e.path,r=n===`./`?``:n.replace(/\/*$/,`/`);this[b](r+t)});let t=e.entry,n=this.zip;n?t.on(`data`,e=>{n.write(e)||t.pause()}):t.on(`data`,e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});F.Sync=class extends F{constructor(e){super(e),this[O]=s}pause(){}resume(){}[S](e){let t=this.follow?`statSync`:`lstatSync`;this[d](e,j[t](e.absolute))}[C](e,t){this[w](e,j.readdirSync(e.absolute))}[T](e){let t=e.entry,n=this.zip;e.readdir&&e.readdir.forEach(t=>{let n=e.path,r=n===`./`?``:n.replace(/\/*$/,`/`);this[b](r+t)}),n?t.on(`data`,e=>{n.write(e)}):t.on(`data`,e=>{super[k](e)})}},t.exports=F})),Qr=Z((e=>{var t=Fr(),n=Q(`events`).EventEmitter,r=Q(`fs`),i=r.writev;if(!i){let e=process.binding(`fs`),t=e.FSReqWrap||e.FSReqCallback;i=(n,r,i,a)=>{let o=(e,t)=>a(e,t,r),s=new t;s.oncomplete=o,e.writeBuffers(n,r,i,s)}}var a=Symbol(`_autoClose`),o=Symbol(`_close`),s=Symbol(`_ended`),c=Symbol(`_fd`),l=Symbol(`_finished`),u=Symbol(`_flags`),d=Symbol(`_flush`),f=Symbol(`_handleChunk`),p=Symbol(`_makeBuf`),m=Symbol(`_mode`),h=Symbol(`_needDrain`),g=Symbol(`_onerror`),_=Symbol(`_onopen`),v=Symbol(`_onread`),y=Symbol(`_onwrite`),b=Symbol(`_open`),x=Symbol(`_path`),S=Symbol(`_pos`),C=Symbol(`_queue`),w=Symbol(`_read`),T=Symbol(`_readSize`),E=Symbol(`_reading`),D=Symbol(`_remain`),O=Symbol(`_size`),k=Symbol(`_write`),A=Symbol(`_writing`),j=Symbol(`_defaultFlag`),M=Symbol(`_errored`),N=class extends t{constructor(e,t){if(t||={},super(t),this.readable=!0,this.writable=!1,typeof e!=`string`)throw TypeError(`path must be a string`);this[M]=!1,this[c]=typeof t.fd==`number`?t.fd:null,this[x]=e,this[T]=t.readSize||16777216,this[E]=!1,this[O]=typeof t.size==`number`?t.size:1/0,this[D]=this[O],this[a]=typeof t.autoClose!=`boolean`||t.autoClose,typeof this[c]==`number`?this[w]():this[b]()}get fd(){return this[c]}get path(){return this[x]}write(){throw TypeError(`this is a readable stream`)}end(){throw TypeError(`this is a readable stream`)}[b](){r.open(this[x],`r`,(e,t)=>this[_](e,t))}[_](e,t){e?this[g](e):(this[c]=t,this.emit(`open`,t),this[w]())}[p](){return Buffer.allocUnsafe(Math.min(this[T],this[D]))}[w](){if(!this[E]){this[E]=!0;let e=this[p]();if(e.length===0)return process.nextTick(()=>this[v](null,0,e));r.read(this[c],e,0,e.length,null,(e,t,n)=>this[v](e,t,n))}}[v](e,t,n){this[E]=!1,e?this[g](e):this[f](t,n)&&this[w]()}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}[g](e){this[E]=!0,this[o](),this.emit(`error`,e)}[f](e,t){let n=!1;return this[D]-=e,e>0&&(n=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[D]<=0)&&(n=!1,this[o](),super.end()),n}emit(e,t){switch(e){case`prefinish`:case`finish`:break;case`drain`:typeof this[c]==`number`&&this[w]();break;case`error`:return this[M]?void 0:(this[M]=!0,super.emit(e,t));default:return super.emit(e,t)}}},P=class extends N{[b](){let e=!0;try{this[_](null,r.openSync(this[x],`r`)),e=!1}finally{e&&this[o]()}}[w](){let e=!0;try{if(!this[E]){this[E]=!0;do{let e=this[p](),t=e.length===0?0:r.readSync(this[c],e,0,e.length,null);if(!this[f](t,e))break}while(1);this[E]=!1}e=!1}finally{e&&this[o]()}}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.closeSync(e),this.emit(`close`)}}},F=class extends n{constructor(e,t){t||={},super(t),this.readable=!1,this.writable=!0,this[M]=!1,this[A]=!1,this[s]=!1,this[h]=!1,this[C]=[],this[x]=e,this[c]=typeof t.fd==`number`?t.fd:null,this[m]=t.mode===void 0?438:t.mode,this[S]=typeof t.start==`number`?t.start:null,this[a]=typeof t.autoClose!=`boolean`||t.autoClose;let n=this[S]===null?`w`:`r+`;this[j]=t.flags===void 0,this[u]=this[j]?n:t.flags,this[c]===null&&this[b]()}emit(e,t){if(e===`error`){if(this[M])return;this[M]=!0}return super.emit(e,t)}get fd(){return this[c]}get path(){return this[x]}[g](e){this[o](),this[A]=!0,this.emit(`error`,e)}[b](){r.open(this[x],this[u],this[m],(e,t)=>this[_](e,t))}[_](e,t){this[j]&&this[u]===`r+`&&e&&e.code===`ENOENT`?(this[u]=`w`,this[b]()):e?this[g](e):(this[c]=t,this.emit(`open`,t),this[d]())}end(e,t){return e&&this.write(e,t),this[s]=!0,!this[A]&&!this[C].length&&typeof this[c]==`number`&&this[y](null,0),this}write(e,t){return typeof e==`string`&&(e=Buffer.from(e,t)),this[s]?(this.emit(`error`,Error(`write() after end()`)),!1):this[c]===null||this[A]||this[C].length?(this[C].push(e),this[h]=!0,!1):(this[A]=!0,this[k](e),!0)}[k](e){r.write(this[c],e,0,e.length,this[S],(e,t)=>this[y](e,t))}[y](e,t){e?this[g](e):(this[S]!==null&&(this[S]+=t),this[C].length?this[d]():(this[A]=!1,this[s]&&!this[l]?(this[l]=!0,this[o](),this.emit(`finish`)):this[h]&&(this[h]=!1,this.emit(`drain`))))}[d](){if(this[C].length===0)this[s]&&this[y](null,0);else if(this[C].length===1)this[k](this[C].pop());else{let e=this[C];this[C]=[],i(this[c],e,this[S],(e,t)=>this[y](e,t))}}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}},I=class extends F{[b](){let e;if(this[j]&&this[u]===`r+`)try{e=r.openSync(this[x],this[u],this[m])}catch(e){if(e.code===`ENOENT`)return this[u]=`w`,this[b]();throw e}else e=r.openSync(this[x],this[u],this[m]);this[_](null,e)}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.closeSync(e),this.emit(`close`)}}[k](e){let t=!0;try{this[y](null,r.writeSync(this[c],e,0,e.length,this[S])),t=!1}finally{if(t)try{this[o]()}catch{}}}};e.ReadStream=N,e.ReadStreamSync=P,e.WriteStream=F,e.WriteStreamSync=I})),$r=Z(((e,t)=>{var n=Wr(),r=Vr(),i=Q(`events`),a=Xr(),o=1048576,s=Rr(),c=Hr(),l=Ir(),{nextTick:u}=Q(`process`),d=Buffer.from([31,139]),f=Symbol(`state`),p=Symbol(`writeEntry`),m=Symbol(`readEntry`),h=Symbol(`nextEntry`),g=Symbol(`processEntry`),_=Symbol(`extendedHeader`),v=Symbol(`globalExtendedHeader`),y=Symbol(`meta`),b=Symbol(`emitMeta`),x=Symbol(`buffer`),S=Symbol(`queue`),C=Symbol(`ended`),w=Symbol(`emittedEnd`),T=Symbol(`emit`),E=Symbol(`unzip`),D=Symbol(`consumeChunk`),O=Symbol(`consumeChunkSub`),k=Symbol(`consumeBody`),A=Symbol(`consumeMeta`),j=Symbol(`consumeHeader`),M=Symbol(`consuming`),N=Symbol(`bufferConcat`),P=Symbol(`maybeEnd`),F=Symbol(`writing`),I=Symbol(`aborted`),L=Symbol(`onDone`),R=Symbol(`sawValidEntry`),z=Symbol(`sawNullBlock`),B=Symbol(`sawEOF`),V=Symbol(`closeStream`),H=e=>!0;t.exports=n(class extends i{constructor(e){e||={},super(e),this.file=e.file||``,this[R]=null,this.on(L,e=>{(this[f]===`begin`||this[R]===!1)&&this.warn(`TAR_BAD_ARCHIVE`,`Unrecognized archive format`)}),e.ondone?this.on(L,e.ondone):this.on(L,e=>{this.emit(`prefinish`),this.emit(`finish`),this.emit(`end`)}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||o,this.filter=typeof e.filter==`function`?e.filter:H;let t=e.file&&(e.file.endsWith(`.tar.br`)||e.file.endsWith(`.tbr`));this.brotli=!e.gzip&&e.brotli!==void 0?e.brotli:t?void 0:!1,this.writable=!0,this.readable=!1,this[S]=new a,this[x]=null,this[m]=null,this[p]=null,this[f]=`begin`,this[y]=``,this[_]=null,this[v]=null,this[C]=!1,this[E]=null,this[I]=!1,this[z]=!1,this[B]=!1,this.on(`end`,()=>this[V]()),typeof e.onwarn==`function`&&this.on(`warn`,e.onwarn),typeof e.onentry==`function`&&this.on(`entry`,e.onentry)}[j](e,t){this[R]===null&&(this[R]=!1);let n;try{n=new r(e,t,this[_],this[v])}catch(e){return this.warn(`TAR_ENTRY_INVALID`,e)}if(n.nullBlock)this[z]?(this[B]=!0,this[f]===`begin`&&(this[f]=`header`),this[T](`eof`)):(this[z]=!0,this[T](`nullBlock`));else if(this[z]=!1,!n.cksumValid)this.warn(`TAR_ENTRY_INVALID`,`checksum failure`,{header:n});else if(!n.path)this.warn(`TAR_ENTRY_INVALID`,`path is required`,{header:n});else{let e=n.type;if(/^(Symbolic)?Link$/.test(e)&&!n.linkpath)this.warn(`TAR_ENTRY_INVALID`,`linkpath required`,{header:n});else if(!/^(Symbolic)?Link$/.test(e)&&n.linkpath)this.warn(`TAR_ENTRY_INVALID`,`linkpath forbidden`,{header:n});else{let e=this[p]=new s(n,this[_],this[v]);this[R]||(e.remain?e.on(`end`,()=>{e.invalid||(this[R]=!0)}):this[R]=!0),e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[T](`ignoredEntry`,e),this[f]=`ignore`,e.resume()):e.size>0&&(this[y]=``,e.on(`data`,e=>this[y]+=e),this[f]=`meta`):(this[_]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[T](`ignoredEntry`,e),this[f]=e.remain?`ignore`:`header`,e.resume()):(e.remain?this[f]=`body`:(this[f]=`header`,e.end()),this[m]?this[S].push(e):(this[S].push(e),this[h]())))}}}[V](){u(()=>this.emit(`close`))}[g](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[m]=e,this.emit(`entry`,e),e.emittedEnd||(e.on(`end`,e=>this[h]()),t=!1)):(this[m]=null,t=!1),t}[h](){do;while(this[g](this[S].shift()));if(!this[S].length){let e=this[m];!e||e.flowing||e.size===e.remain?this[F]||this.emit(`drain`):e.once(`drain`,e=>this.emit(`drain`))}}[k](e,t){let n=this[p],r=n.blockRemain,i=r>=e.length&&t===0?e:e.slice(t,t+r);return n.write(i),n.blockRemain||(this[f]=`header`,this[p]=null,n.end()),i.length}[A](e,t){let n=this[p],r=this[k](e,t);return this[p]||this[b](n),r}[T](e,t,n){!this[S].length&&!this[m]?this.emit(e,t,n):this[S].push([e,t,n])}[b](e){switch(this[T](`meta`,this[y]),e.type){case`ExtendedHeader`:case`OldExtendedHeader`:this[_]=c.parse(this[y],this[_],!1);break;case`GlobalExtendedHeader`:this[v]=c.parse(this[y],this[v],!0);break;case`NextFileHasLongPath`:case`OldGnuLongPath`:this[_]=this[_]||Object.create(null),this[_].path=this[y].replace(/\0.*/,``);break;case`NextFileHasLongLinkpath`:this[_]=this[_]||Object.create(null),this[_].linkpath=this[y].replace(/\0.*/,``);break;default:throw Error(`unknown meta: `+e.type)}}abort(e){this[I]=!0,this.emit(`abort`,e),this.warn(`TAR_ABORT`,e,{recoverable:!1})}write(e){if(this[I])return;if((this[E]===null||this.brotli===void 0&&this[E]===!1)&&e){if(this[x]&&(e=Buffer.concat([this[x],e]),this[x]=null),e.length<d.length)return this[x]=e,!0;for(let t=0;this[E]===null&&t<d.length;t++)e[t]!==d[t]&&(this[E]=!1);let t=this.brotli===void 0;if(this[E]===!1&&t){if(e.length<512){if(this[C])this.brotli=!0;else return this[x]=e,!0}else try{new r(e.slice(0,512)),this.brotli=!1}catch{this.brotli=!0}}if(this[E]===null||this[E]===!1&&this.brotli){let t=this[C];this[C]=!1,this[E]=this[E]===null?new l.Unzip:new l.BrotliDecompress,this[E].on(`data`,e=>this[D](e)),this[E].on(`error`,e=>this.abort(e)),this[E].on(`end`,e=>{this[C]=!0,this[D]()}),this[F]=!0;let n=this[E][t?`end`:`write`](e);return this[F]=!1,n}}this[F]=!0,this[E]?this[E].write(e):this[D](e),this[F]=!1;let t=this[S].length?!1:!this[m]||this[m].flowing;return!t&&!this[S].length&&this[m].once(`drain`,e=>this.emit(`drain`)),t}[N](e){e&&!this[I]&&(this[x]=this[x]?Buffer.concat([this[x],e]):e)}[P](){if(this[C]&&!this[w]&&!this[I]&&!this[M]){this[w]=!0;let e=this[p];if(e&&e.blockRemain){let t=this[x]?this[x].length:0;this.warn(`TAR_BAD_ARCHIVE`,`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[x]&&e.write(this[x]),e.end()}this[T](L)}}[D](e){if(this[M])this[N](e);else if(!e&&!this[x])this[P]();else{if(this[M]=!0,this[x]){this[N](e);let t=this[x];this[x]=null,this[O](t)}else this[O](e);for(;this[x]&&this[x].length>=512&&!this[I]&&!this[B];){let e=this[x];this[x]=null,this[O](e)}this[M]=!1}(!this[x]||this[C])&&this[P]()}[O](e){let t=0,n=e.length;for(;t+512<=n&&!this[I]&&!this[B];)switch(this[f]){case`begin`:case`header`:this[j](e,t),t+=512;break;case`ignore`:case`body`:t+=this[k](e,t);break;case`meta`:t+=this[A](e,t);break;default:throw Error(`invalid state: `+this[f])}t<n&&(this[x]=this[x]?Buffer.concat([e.slice(t),this[x]]):e.slice(t))}end(e){this[I]||(this[E]?this[E].end(e):(this[C]=!0,this.brotli===void 0&&(e||=Buffer.alloc(0)),this.write(e)))}})})),ei=Z(((e,t)=>{var n=Mr(),r=$r(),i=Q(`fs`),a=Qr(),o=Q(`path`),s=Ur();t.exports=(e,t,r)=>{typeof e==`function`?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),typeof t==`function`&&(r=t,t=null),t=t?Array.from(t):[];let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return t.length&&l(i,t),i.noResume||c(i),i.file&&i.sync?u(i):i.file?d(i,r):f(i)};var c=e=>{let t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()},l=(e,t)=>{let n=new Map(t.map(e=>[s(e),!0])),r=e.filter,i=(e,t)=>{let r=t||o.parse(e).root||`.`,a=e===r?!1:n.has(e)?n.get(e):i(o.dirname(e),r);return n.set(e,a),a};e.filter=r?(e,t)=>r(e,t)&&i(s(e)):e=>i(s(e))},u=e=>{let t=f(e),n=e.file,r=!0,a;try{let o=i.statSync(n),s=e.maxReadSize||16777216;if(o.size<s)t.end(i.readFileSync(n));else{let e=0,r=Buffer.allocUnsafe(s);for(a=i.openSync(n,`r`);e<o.size;){let n=i.readSync(a,r,0,s,e);e+=n,t.write(r.slice(0,n))}t.end()}r=!1}finally{if(r&&a)try{i.closeSync(a)}catch{}}},d=(e,t)=>{let n=new r(e),o=e.maxReadSize||16777216,s=e.file,c=new Promise((e,t)=>{n.on(`error`,t),n.on(`end`,e),i.stat(s,(e,r)=>{if(e)t(e);else{let e=new a.ReadStream(s,{readSize:o,size:r.size});e.on(`error`,t),e.pipe(n)}})});return t?c.then(t,t):c},f=e=>new r(e)})),ti=Z(((e,t)=>{var n=Mr(),r=Zr(),i=Qr(),a=ei(),o=Q(`path`);t.exports=(e,t,r)=>{if(typeof t==`function`&&(r=t),Array.isArray(e)&&(t=e,e={}),!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);t=Array.from(t);let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return i.file&&i.sync?s(i,t):i.file?c(i,t,r):i.sync?d(i,t):f(i,t)};var s=(e,t)=>{let n=new r.Sync(e),a=new i.WriteStreamSync(e.file,{mode:e.mode||438});n.pipe(a),l(n,t)},c=(e,t,n)=>{let a=new r(e),o=new i.WriteStream(e.file,{mode:e.mode||438});a.pipe(o);let s=new Promise((e,t)=>{o.on(`error`,t),o.on(`close`,e),a.on(`error`,t)});return u(a,t),n?s.then(n,n):s},l=(e,t)=>{t.forEach(t=>{t.charAt(0)===`@`?a({file:o.resolve(e.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},u=(e,t)=>{for(;t.length;){let n=t.shift();if(n.charAt(0)===`@`)return a({file:o.resolve(e.cwd,n.slice(1)),noResume:!0,onentry:t=>e.add(t)}).then(n=>u(e,t));e.add(n)}e.end()},d=(e,t)=>{let n=new r.Sync(e);return l(n,t),n},f=(e,t)=>{let n=new r(e);return u(n,t),n}})),ni=Z(((e,t)=>{var n=Mr(),r=Zr(),i=Q(`fs`),a=Qr(),o=ei(),s=Q(`path`),c=Vr();t.exports=(e,t,r)=>{let i=n(e);if(!i.file)throw TypeError(`file is required`);if(i.gzip||i.brotli||i.file.endsWith(`.br`)||i.file.endsWith(`.tbr`))throw TypeError(`cannot append to compressed archives`);if(!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);return t=Array.from(t),i.sync?l(i,t):d(i,t,r)};var l=(e,t)=>{let n=new r.Sync(e),a=!0,o,s;try{try{o=i.openSync(e.file,`r+`)}catch(t){if(t.code===`ENOENT`)o=i.openSync(e.file,`w+`);else throw t}let r=i.fstatSync(o),l=Buffer.alloc(512);POSITION:for(s=0;s<r.size;s+=512){for(let e=0,t=0;e<512;e+=t){if(t=i.readSync(o,l,e,l.length-e,s+e),s===0&&l[0]===31&&l[1]===139)throw Error(`cannot append to compressed archives`);if(!t)break POSITION}let t=new c(l);if(!t.cksumValid)break;let n=512*Math.ceil(t.size/512);if(s+n+512>r.size)break;s+=n,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}a=!1,u(e,n,s,o,t)}finally{if(a)try{i.closeSync(o)}catch{}}},u=(e,t,n,r,i)=>{let o=new a.WriteStreamSync(e.file,{fd:r,start:n});t.pipe(o),f(t,i)},d=(e,t,n)=>{t=Array.from(t);let o=new r(e),s=(t,n,r)=>{let a=(e,n)=>{e?i.close(t,t=>r(e)):r(null,n)},o=0;if(n===0)return a(null,0);let s=0,l=Buffer.alloc(512),u=(r,d)=>{if(r)return a(r);if(s+=d,s<512&&d)return i.read(t,l,s,l.length-s,o+s,u);if(o===0&&l[0]===31&&l[1]===139)return a(Error(`cannot append to compressed archives`));if(s<512)return a(null,o);let f=new c(l);if(!f.cksumValid)return a(null,o);let p=512*Math.ceil(f.size/512);if(o+p+512>n||(o+=p+512,o>=n))return a(null,o);e.mtimeCache&&e.mtimeCache.set(f.path,f.mtime),s=0,i.read(t,l,0,512,o,u)};i.read(t,l,0,512,o,u)},l=new Promise((n,r)=>{o.on(`error`,r);let c=`r+`,l=(u,d)=>{if(u&&u.code===`ENOENT`&&c===`r+`)return c=`w+`,i.open(e.file,c,l);if(u)return r(u);i.fstat(d,(c,l)=>{if(c)return i.close(d,()=>r(c));s(d,l.size,(i,s)=>{if(i)return r(i);let c=new a.WriteStream(e.file,{fd:d,start:s});o.pipe(c),c.on(`error`,r),c.on(`close`,n),p(o,t)})})};i.open(e.file,c,l)});return n?l.then(n,n):l},f=(e,t)=>{t.forEach(t=>{t.charAt(0)===`@`?o({file:s.resolve(e.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){let n=t.shift();if(n.charAt(0)===`@`)return o({file:s.resolve(e.cwd,n.slice(1)),noResume:!0,onentry:t=>e.add(t)}).then(n=>p(e,t));e.add(n)}e.end()}})),ri=Z(((e,t)=>{var n=Mr(),r=ni();t.exports=(e,t,a)=>{let o=n(e);if(!o.file)throw TypeError(`file is required`);if(o.gzip||o.brotli||o.file.endsWith(`.br`)||o.file.endsWith(`.tbr`))throw TypeError(`cannot append to compressed archives`);if(!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);return t=Array.from(t),i(o),r(o,t,a)};var i=e=>{let t=e.filter;e.mtimeCache||=new Map,e.filter=t?(n,r)=>t(n,r)&&!(e.mtimeCache.get(n)>r.mtime):(t,n)=>!(e.mtimeCache.get(t)>n.mtime)}})),ii=Z(((e,t)=>{var{promisify:n}=Q(`util`),r=Q(`fs`);t.exports=e=>{if(!e)e={mode:511,fs:r};else if(typeof e==`object`)e={mode:511,fs:r,...e};else if(typeof e==`number`)e={mode:e,fs:r};else if(typeof e==`string`)e={mode:parseInt(e,8),fs:r};else throw TypeError(`invalid options argument`);return e.mkdir=e.mkdir||e.fs.mkdir||r.mkdir,e.mkdirAsync=n(e.mkdir),e.stat=e.stat||e.fs.stat||r.stat,e.statAsync=n(e.stat),e.statSync=e.statSync||e.fs.statSync||r.statSync,e.mkdirSync=e.mkdirSync||e.fs.mkdirSync||r.mkdirSync,e}})),ai=Z(((e,t)=>{var n=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:r,parse:i}=Q(`path`);t.exports=e=>{if(/\0/.test(e))throw Object.assign(TypeError(`path must be a string without null bytes`),{path:e,code:`ERR_INVALID_ARG_VALUE`});if(e=r(e),n===`win32`){let t=/[*|"<>?:]/,{root:n}=i(e);if(t.test(e.substr(n.length)))throw Object.assign(Error(`Illegal characters in path.`),{path:e,code:`EINVAL`})}return e}})),oi=Z(((e,t)=>{var{dirname:n}=Q(`path`),r=(e,t,i=void 0)=>i===t?Promise.resolve():e.statAsync(t).then(e=>e.isDirectory()?i:void 0,i=>i.code===`ENOENT`?r(e,n(t),t):void 0),i=(e,t,r=void 0)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0}catch(r){return r.code===`ENOENT`?i(e,n(t),t):void 0}};t.exports={findMade:r,findMadeSync:i}})),si=Z(((e,t)=>{var{dirname:n}=Q(`path`),r=(e,t,i)=>{t.recursive=!1;let a=n(e);return a===e?t.mkdirAsync(e,t).catch(e=>{if(e.code!==`EISDIR`)throw e}):t.mkdirAsync(e,t).then(()=>i||e,n=>{if(n.code===`ENOENT`)return r(a,t).then(n=>r(e,t,n));if(n.code!==`EEXIST`&&n.code!==`EROFS`)throw n;return t.statAsync(e).then(e=>{if(e.isDirectory())return i;throw n},()=>{throw n})})},i=(e,t,r)=>{let a=n(e);if(t.recursive=!1,a===e)try{return t.mkdirSync(e,t)}catch(e){if(e.code!==`EISDIR`)throw e;return}try{return t.mkdirSync(e,t),r||e}catch(n){if(n.code===`ENOENT`)return i(e,t,i(a,t,r));if(n.code!==`EEXIST`&&n.code!==`EROFS`)throw n;try{if(!t.statSync(e).isDirectory())throw n}catch{throw n}}};t.exports={mkdirpManual:r,mkdirpManualSync:i}})),ci=Z(((e,t)=>{var{dirname:n}=Q(`path`),{findMade:r,findMadeSync:i}=oi(),{mkdirpManual:a,mkdirpManualSync:o}=si();t.exports={mkdirpNative:(e,t)=>(t.recursive=!0,n(e)===e?t.mkdirAsync(e,t):r(t,e).then(n=>t.mkdirAsync(e,t).then(()=>n).catch(n=>{if(n.code===`ENOENT`)return a(e,t);throw n}))),mkdirpNativeSync:(e,t)=>{if(t.recursive=!0,n(e)===e)return t.mkdirSync(e,t);let r=i(t,e);try{return t.mkdirSync(e,t),r}catch(n){if(n.code===`ENOENT`)return o(e,t);throw n}}}})),li=Z(((e,t)=>{var n=Q(`fs`),r=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,``).split(`.`),i=+r[0]>10||+r[0]==10&&+r[1]>=12;t.exports={useNative:i?e=>e.mkdir===n.mkdir:()=>!1,useNativeSync:i?e=>e.mkdirSync===n.mkdirSync:()=>!1}})),ui=Z(((e,t)=>{var n=ii(),r=ai(),{mkdirpNative:i,mkdirpNativeSync:a}=ci(),{mkdirpManual:o,mkdirpManualSync:s}=si(),{useNative:c,useNativeSync:l}=li(),u=(e,t)=>(e=r(e),t=n(t),c(t)?i(e,t):o(e,t));u.sync=(e,t)=>(e=r(e),t=n(t),l(t)?a(e,t):s(e,t)),u.native=(e,t)=>i(r(e),n(t)),u.manual=(e,t)=>o(r(e),n(t)),u.nativeSync=(e,t)=>a(r(e),n(t)),u.manualSync=(e,t)=>s(r(e),n(t)),t.exports=u})),di=Z(((e,t)=>{var n=Q(`fs`),r=Q(`path`),i=n.lchown?`lchown`:`chown`,a=n.lchownSync?`lchownSync`:`chownSync`,o=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),s=(e,t,r)=>{try{return n[a](e,t,r)}catch(e){if(e.code!==`ENOENT`)throw e}},c=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if(e.code!==`ENOENT`)throw e}},l=o?(e,t,r,i)=>a=>{!a||a.code!==`EISDIR`?i(a):n.chown(e,t,r,i)}:(e,t,n,r)=>r,u=o?(e,t,n)=>{try{return s(e,t,n)}catch(r){if(r.code!==`EISDIR`)throw r;c(e,t,n)}}:(e,t,n)=>s(e,t,n),d=process.version,f=(e,t,r)=>n.readdir(e,t,r),p=(e,t)=>n.readdirSync(e,t);/^v4\./.test(d)&&(f=(e,t,r)=>n.readdir(e,r));var m=(e,t,r,a)=>{n[i](e,t,r,l(e,t,r,e=>{a(e&&e.code!==`ENOENT`?e:null)}))},h=(e,t,i,a,o)=>{if(typeof t==`string`)return n.lstat(r.resolve(e,t),(n,r)=>{if(n)return o(n.code===`ENOENT`?null:n);r.name=t,h(e,r,i,a,o)});t.isDirectory()?g(r.resolve(e,t.name),i,a,n=>{if(n)return o(n);m(r.resolve(e,t.name),i,a,o)}):m(r.resolve(e,t.name),i,a,o)},g=(e,t,n,r)=>{f(e,{withFileTypes:!0},(i,a)=>{if(i){if(i.code===`ENOENT`)return r();if(i.code!==`ENOTDIR`&&i.code!==`ENOTSUP`)return r(i)}if(i||!a.length)return m(e,t,n,r);let o=a.length,s=null,c=i=>{if(!s){if(i)return r(s=i);if(--o===0)return m(e,t,n,r)}};a.forEach(r=>h(e,r,t,n,c))})},_=(e,t,i,a)=>{if(typeof t==`string`)try{let i=n.lstatSync(r.resolve(e,t));i.name=t,t=i}catch(e){if(e.code===`ENOENT`)return;throw e}t.isDirectory()&&v(r.resolve(e,t.name),i,a),u(r.resolve(e,t.name),i,a)},v=(e,t,n)=>{let r;try{r=p(e,{withFileTypes:!0})}catch(r){if(r.code===`ENOENT`)return;if(r.code===`ENOTDIR`||r.code===`ENOTSUP`)return u(e,t,n);throw r}return r&&r.length&&r.forEach(r=>_(e,r,t,n)),u(e,t,n)};t.exports=g,g.sync=v})),fi=Z(((e,t)=>{var n=ui(),r=Q(`fs`),i=Q(`path`),a=di(),o=Lr(),s=class extends Error{constructor(e,t){super(`Cannot extract through symbolic link`),this.path=t,this.symlink=e}get name(){return`SylinkError`}},c=class extends Error{constructor(e,t){super(t+`: Cannot cd into '`+e+`'`),this.path=e,this.code=t}get name(){return`CwdError`}},l=(e,t)=>e.get(o(t)),u=(e,t,n)=>e.set(o(t),n),d=(e,t)=>{r.stat(e,(n,r)=>{(n||!r.isDirectory())&&(n=new c(e,n&&n.code||`ENOTDIR`)),t(n)})};t.exports=(e,t,s)=>{e=o(e);let c=t.umask,p=t.mode|448,m=(p&c)!==0,h=t.uid,g=t.gid,_=typeof h==`number`&&typeof g==`number`&&(h!==t.processUid||g!==t.processGid),v=t.preserve,y=t.unlink,b=t.cache,x=o(t.cwd),S=(t,n)=>{t?s(t):(u(b,e,!0),n&&_?a(n,h,g,e=>S(e)):m?r.chmod(e,p,s):s())};if(b&&l(b,e)===!0)return S();if(e===x)return d(e,S);if(v)return n(e,{mode:p}).then(e=>S(null,e),S);f(x,o(i.relative(x,e)).split(`/`),p,b,y,x,null,S)};var f=(e,t,n,a,s,c,u,d)=>{if(!t.length)return d(null,u);let m=t.shift(),h=o(i.resolve(e+`/`+m));if(l(a,h))return f(h,t,n,a,s,c,u,d);r.mkdir(h,n,p(h,t,n,a,s,c,u,d))},p=(e,t,n,i,a,c,l,u)=>d=>{d?r.lstat(e,(m,h)=>{if(m)m.path=m.path&&o(m.path),u(m);else if(h.isDirectory())f(e,t,n,i,a,c,l,u);else if(a)r.unlink(e,o=>{if(o)return u(o);r.mkdir(e,n,p(e,t,n,i,a,c,l,u))});else if(h.isSymbolicLink())return u(new s(e,e+`/`+t.join(`/`)));else u(d)}):(l||=e,f(e,t,n,i,a,c,l,u))},m=e=>{let t=!1,n=`ENOTDIR`;try{t=r.statSync(e).isDirectory()}catch(e){n=e.code}finally{if(!t)throw new c(e,n)}};t.exports.sync=(e,t)=>{e=o(e);let c=t.umask,d=t.mode|448,f=(d&c)!==0,p=t.uid,h=t.gid,g=typeof p==`number`&&typeof h==`number`&&(p!==t.processUid||h!==t.processGid),_=t.preserve,v=t.unlink,y=t.cache,b=o(t.cwd),x=t=>{u(y,e,!0),t&&g&&a.sync(t,p,h),f&&r.chmodSync(e,d)};if(y&&l(y,e)===!0)return x();if(e===b)return m(b),x();if(_)return x(n.sync(e,d));let S=o(i.relative(b,e)).split(`/`),C=null;for(let e=S.shift(),t=b;e&&(t+=`/`+e);e=S.shift())if(t=o(i.resolve(t)),!l(y,t))try{r.mkdirSync(t,d),C||=t,u(y,t,!0)}catch{let e=r.lstatSync(t);if(e.isDirectory()){u(y,t,!0);continue}if(v){r.unlinkSync(t),r.mkdirSync(t,d),C||=t,u(y,t,!0);continue}if(e.isSymbolicLink())return new s(t,t+`/`+S.join(`/`))}return x(C)}})),pi=Z(((e,t)=>{var n=Object.create(null),{hasOwnProperty:r}=Object.prototype;t.exports=e=>(r.call(n,e)||(n[e]=e.normalize(`NFD`)),n[e])})),mi=Z(((e,t)=>{var n=Q(`assert`),r=pi(),i=Ur(),{join:a}=Q(`path`),o=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`;t.exports=()=>{let e=new Map,t=new Map,s=e=>e.split(`/`).slice(0,-1).reduce((e,t)=>(e.length&&(t=a(e[e.length-1],t)),e.push(t||`/`),e),[]),c=new Set,l=n=>{let r=t.get(n);if(!r)throw Error(`function does not have any path reservations`);return{paths:r.paths.map(t=>e.get(t)),dirs:[...r.dirs].map(t=>e.get(t))}},u=e=>{let{paths:t,dirs:n}=l(e);return t.every(t=>t[0]===e)&&n.every(t=>t[0]instanceof Set&&t[0].has(e))},d=e=>c.has(e)||!u(e)?!1:(c.add(e),e(()=>f(e)),!0),f=r=>{if(!c.has(r))return!1;let{paths:i,dirs:a}=t.get(r),o=new Set;return i.forEach(t=>{let i=e.get(t);n.equal(i[0],r),i.length===1?e.delete(t):(i.shift(),typeof i[0]==`function`?o.add(i[0]):i[0].forEach(e=>o.add(e)))}),a.forEach(t=>{let i=e.get(t);n(i[0]instanceof Set),i[0].size===1&&i.length===1?e.delete(t):i[0].size===1?(i.shift(),o.add(i[0])):i[0].delete(r)}),c.delete(r),o.forEach(e=>d(e)),!0};return{check:u,reserve:(n,c)=>{n=o?[`win32 parallelization disabled`]:n.map(e=>i(a(r(e))).toLowerCase());let l=new Set(n.map(e=>s(e)).reduce((e,t)=>e.concat(t)));return t.set(c,{dirs:l,paths:n}),n.forEach(t=>{let n=e.get(t);n?n.push(c):e.set(t,[c])}),l.forEach(t=>{let n=e.get(t);n?n[n.length-1]instanceof Set?n[n.length-1].add(c):n.push(new Set([c])):e.set(t,[new Set([c])])}),d(c)}}}})),hi=Z(((e,t)=>{var n=(process.env.__FAKE_PLATFORM__||process.platform)===`win32`,{O_CREAT:r,O_TRUNC:i,O_WRONLY:a,UV_FS_O_FILEMAP:o=0}=(global.__FAKE_TESTING_FS__||Q(`fs`)).constants,s=n&&!!o,c=524288,l=o|i|r|a;t.exports=s?e=>e<c?l:`w`:()=>`w`})),gi=Z(((e,t)=>{var n=Q(`assert`),r=$r(),i=Q(`fs`),a=Qr(),o=Q(`path`),s=fi(),c=Gr(),l=mi(),u=Kr(),d=Lr(),f=Ur(),p=pi(),m=Symbol(`onEntry`),h=Symbol(`checkFs`),g=Symbol(`checkFs2`),_=Symbol(`pruneCache`),v=Symbol(`isReusable`),y=Symbol(`makeFs`),b=Symbol(`file`),x=Symbol(`directory`),S=Symbol(`link`),C=Symbol(`symlink`),w=Symbol(`hardlink`),T=Symbol(`unsupported`),E=Symbol(`checkPath`),D=Symbol(`mkdir`),O=Symbol(`onError`),k=Symbol(`pending`),A=Symbol(`pend`),j=Symbol(`unpend`),M=Symbol(`ended`),N=Symbol(`maybeClose`),P=Symbol(`skip`),F=Symbol(`doChown`),I=Symbol(`uid`),L=Symbol(`gid`),R=Symbol(`checkedCwd`),z=Q(`crypto`),B=hi(),V=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`,H=1024,ee=(e,t)=>{if(!V)return i.unlink(e,t);let n=e+`.DELETE.`+z.randomBytes(16).toString(`hex`);i.rename(e,n,e=>{if(e)return t(e);i.unlink(n,t)})},U=e=>{if(!V)return i.unlinkSync(e);let t=e+`.DELETE.`+z.randomBytes(16).toString(`hex`);i.renameSync(e,t),i.unlinkSync(t)},te=(e,t,n)=>e===e>>>0?e:t===t>>>0?t:n,ne=e=>f(d(p(e))).toLowerCase(),re=(e,t)=>{t=ne(t);for(let n of e.keys()){let r=ne(n);(r===t||r.indexOf(t+`/`)===0)&&e.delete(n)}},ie=e=>{for(let t of e.keys())e.delete(t)},W=class extends r{constructor(e){if(e||={},e.ondone=e=>{this[M]=!0,this[N]()},super(e),this[R]=!1,this.reservations=l(),this.transform=typeof e.transform==`function`?e.transform:null,this.writable=!0,this.readable=!1,this[k]=0,this[M]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid==`number`||typeof e.gid==`number`){if(typeof e.uid!=`number`||typeof e.gid!=`number`)throw TypeError(`cannot set owner without number uid and gid`);if(e.preserveOwner)throw TypeError(`cannot preserve owner in archive and also set owner explicitly`);this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;this.preserveOwner=e.preserveOwner===void 0&&typeof e.uid!=`number`?process.getuid&&process.getuid()===0:!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.maxDepth=typeof e.maxDepth==`number`?e.maxDepth:H,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||V,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=d(o.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask==`number`?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on(`entry`,e=>this[m](e))}warn(e,t,n={}){return(e===`TAR_BAD_ARCHIVE`||e===`TAR_ABORT`)&&(n.recoverable=!1),super.warn(e,t,n)}[N](){this[M]&&this[k]===0&&(this.emit(`prefinish`),this.emit(`finish`),this.emit(`end`))}[E](e){let t=d(e.path),n=t.split(`/`);if(this.strip){if(n.length<this.strip)return!1;if(e.type===`Link`){let t=d(e.linkpath).split(`/`);if(t.length>=this.strip)e.linkpath=t.slice(this.strip).join(`/`);else return!1}n.splice(0,this.strip),e.path=n.join(`/`)}if(isFinite(this.maxDepth)&&n.length>this.maxDepth)return this.warn(`TAR_ENTRY_ERROR`,`path excessively deep`,{entry:e,path:t,depth:n.length,maxDepth:this.maxDepth}),!1;if(!this.preservePaths){if(n.includes(`..`)||V&&/^[a-z]:\.\.$/i.test(n[0]))return this.warn(`TAR_ENTRY_ERROR`,`path contains '..'`,{entry:e,path:t}),!1;let[r,i]=u(t);r&&(e.path=i,this.warn(`TAR_ENTRY_INFO`,`stripping ${r} from absolute path`,{entry:e,path:t}))}if(e.absolute=o.isAbsolute(e.path)?d(o.resolve(e.path)):d(o.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+`/`)!==0&&e.absolute!==this.cwd)return this.warn(`TAR_ENTRY_ERROR`,`path escaped extraction target`,{entry:e,path:d(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!==`Directory`&&e.type!==`GNUDumpDir`)return!1;if(this.win32){let{root:t}=o.win32.parse(e.absolute);e.absolute=t+c.encode(e.absolute.slice(t.length));let{root:n}=o.win32.parse(e.path);e.path=n+c.encode(e.path.slice(n.length))}return!0}[m](e){if(!this[E](e))return e.resume();switch(n.equal(typeof e.absolute,`string`),e.type){case`Directory`:case`GNUDumpDir`:e.mode&&(e.mode|=448);case`File`:case`OldFile`:case`ContiguousFile`:case`Link`:case`SymbolicLink`:return this[h](e);default:return this[T](e)}}[O](e,t){e.name===`CwdError`?this.emit(`error`,e):(this.warn(`TAR_ENTRY_ERROR`,e,{entry:t}),this[j](),t.resume())}[D](e,t,n){s(d(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},n)}[F](e){return this.forceChown||this.preserveOwner&&(typeof e.uid==`number`&&e.uid!==this.processUid||typeof e.gid==`number`&&e.gid!==this.processGid)||typeof this.uid==`number`&&this.uid!==this.processUid||typeof this.gid==`number`&&this.gid!==this.processGid}[I](e){return te(this.uid,e.uid,this.processUid)}[L](e){return te(this.gid,e.gid,this.processGid)}[b](e,t){let n=e.mode&4095||this.fmode,r=new a.WriteStream(e.absolute,{flags:B(e.size),mode:n,autoClose:!1});r.on(`error`,n=>{r.fd&&i.close(r.fd,()=>{}),r.write=()=>!0,this[O](n,e),t()});let o=1,s=n=>{n?(r.fd&&i.close(r.fd,()=>{}),this[O](n,e),t()):--o===0&&i.close(r.fd,n=>{n?this[O](n,e):this[j](),t()})};r.on(`finish`,t=>{let n=e.absolute,a=r.fd;if(e.mtime&&!this.noMtime){o++;let t=e.atime||new Date,r=e.mtime;i.futimes(a,t,r,e=>e?i.utimes(n,t,r,t=>s(t&&e)):s())}if(this[F](e)){o++;let t=this[I](e),r=this[L](e);i.fchown(a,t,r,e=>e?i.chown(n,t,r,t=>s(t&&e)):s())}s()});let c=this.transform&&this.transform(e)||e;c!==e&&(c.on(`error`,n=>{this[O](n,e),t()}),e.pipe(c)),c.pipe(r)}[x](e,t){let n=e.mode&4095||this.dmode;this[D](e.absolute,n,n=>{if(n){this[O](n,e),t();return}let r=1,a=n=>{--r===0&&(t(),this[j](),e.resume())};e.mtime&&!this.noMtime&&(r++,i.utimes(e.absolute,e.atime||new Date,e.mtime,a)),this[F](e)&&(r++,i.chown(e.absolute,this[I](e),this[L](e),a)),a()})}[T](e){e.unsupported=!0,this.warn(`TAR_ENTRY_UNSUPPORTED`,`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[C](e,t){this[S](e,e.linkpath,`symlink`,t)}[w](e,t){let n=d(o.resolve(this.cwd,e.linkpath));this[S](e,n,`link`,t)}[A](){this[k]++}[j](){this[k]--,this[N]()}[P](e){this[j](),e.resume()}[v](e,t){return e.type===`File`&&!this.unlink&&t.isFile()&&t.nlink<=1&&!V}[h](e){this[A]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,t=>this[g](e,t))}[_](e){e.type===`SymbolicLink`?ie(this.dirCache):e.type!==`Directory`&&re(this.dirCache,e.absolute)}[g](e,t){this[_](e);let n=n=>{this[_](e),t(n)},r=()=>{this[D](this.cwd,this.dmode,t=>{t?(this[O](t,e),n()):(this[R]=!0,a())})},a=()=>{if(e.absolute!==this.cwd){let t=d(o.dirname(e.absolute));if(t!==this.cwd)return this[D](t,this.dmode,t=>{t?(this[O](t,e),n()):s()})}s()},s=()=>{i.lstat(e.absolute,(t,r)=>{if(r&&(this.keep||this.newer&&r.mtime>e.mtime))this[P](e),n();else{if(t||this[v](e,r))return this[y](null,e,n);if(r.isDirectory()){if(e.type===`Directory`){let t=!this.noChmod&&e.mode&&(r.mode&4095)!==e.mode,a=t=>this[y](t,e,n);return t?i.chmod(e.absolute,e.mode,a):a()}if(e.absolute!==this.cwd)return i.rmdir(e.absolute,t=>this[y](t,e,n))}if(e.absolute===this.cwd)return this[y](null,e,n);ee(e.absolute,t=>this[y](t,e,n))}})};this[R]?a():r()}[y](e,t,n){if(e)this[O](e,t),n();else switch(t.type){case`File`:case`OldFile`:case`ContiguousFile`:return this[b](t,n);case`Link`:return this[w](t,n);case`SymbolicLink`:return this[C](t,n);case`Directory`:case`GNUDumpDir`:return this[x](t,n)}}[S](e,t,n,r){i[n](t,e.absolute,t=>{t?this[O](t,e):(this[j](),e.resume()),r()})}},ae=e=>{try{return[null,e()]}catch(e){return[e,null]}};W.Sync=class extends W{[y](e,t){return super[y](e,t,()=>{})}[h](e){if(this[_](e),!this[R]){let t=this[D](this.cwd,this.dmode);if(t)return this[O](t,e);this[R]=!0}if(e.absolute!==this.cwd){let t=d(o.dirname(e.absolute));if(t!==this.cwd){let n=this[D](t,this.dmode);if(n)return this[O](n,e)}}let[t,n]=ae(()=>i.lstatSync(e.absolute));if(n&&(this.keep||this.newer&&n.mtime>e.mtime))return this[P](e);if(t||this[v](e,n))return this[y](null,e);if(n.isDirectory()){if(e.type===`Directory`){let[t]=!this.noChmod&&e.mode&&(n.mode&4095)!==e.mode?ae(()=>{i.chmodSync(e.absolute,e.mode)}):[];return this[y](t,e)}let[t]=ae(()=>i.rmdirSync(e.absolute));this[y](t,e)}let[r]=e.absolute===this.cwd?[]:ae(()=>U(e.absolute));this[y](r,e)}[b](e,t){let n=e.mode&4095||this.fmode,r=n=>{let r;try{i.closeSync(a)}catch(e){r=e}(n||r)&&this[O](n||r,e),t()},a;try{a=i.openSync(e.absolute,B(e.size),n)}catch(e){return r(e)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on(`error`,t=>this[O](t,e)),e.pipe(o)),o.on(`data`,e=>{try{i.writeSync(a,e,0,e.length)}catch(e){r(e)}}),o.on(`end`,t=>{let n=null;if(e.mtime&&!this.noMtime){let t=e.atime||new Date,r=e.mtime;try{i.futimesSync(a,t,r)}catch(a){try{i.utimesSync(e.absolute,t,r)}catch{n=a}}}if(this[F](e)){let t=this[I](e),r=this[L](e);try{i.fchownSync(a,t,r)}catch(a){try{i.chownSync(e.absolute,t,r)}catch{n||=a}}}r(n)})}[x](e,t){let n=e.mode&4095||this.dmode,r=this[D](e.absolute,n);if(r)this[O](r,e),t();else{if(e.mtime&&!this.noMtime)try{i.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[F](e))try{i.chownSync(e.absolute,this[I](e),this[L](e))}catch{}t(),e.resume()}}[D](e,t){try{return s.sync(d(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[S](e,t,n,r){try{i[n+`Sync`](t,e.absolute),r(),e.resume()}catch(t){return this[O](t,e)}}},t.exports=W})),_i=Z(((e,t)=>{var n=Mr(),r=gi(),i=Q(`fs`),a=Qr(),o=Q(`path`),s=Ur();t.exports=(e,t,r)=>{typeof e==`function`?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),typeof t==`function`&&(r=t,t=null),t=t?Array.from(t):[];let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return t.length&&c(i,t),i.file&&i.sync?l(i):i.file?u(i,r):i.sync?d(i):f(i)};var c=(e,t)=>{let n=new Map(t.map(e=>[s(e),!0])),r=e.filter,i=(e,t)=>{let r=t||o.parse(e).root||`.`,a=e===r?!1:n.has(e)?n.get(e):i(o.dirname(e),r);return n.set(e,a),a};e.filter=r?(e,t)=>r(e,t)&&i(s(e)):e=>i(s(e))},l=e=>{let t=new r.Sync(e),n=e.file,o=i.statSync(n),s=e.maxReadSize||16777216;new a.ReadStreamSync(n,{readSize:s,size:o.size}).pipe(t)},u=(e,t)=>{let n=new r(e),o=e.maxReadSize||16777216,s=e.file,c=new Promise((e,t)=>{n.on(`error`,t),n.on(`close`,e),i.stat(s,(e,r)=>{if(e)t(e);else{let e=new a.ReadStream(s,{readSize:o,size:r.size});e.on(`error`,t),e.pipe(n)}})});return t?c.then(t,t):c},d=e=>new r.Sync(e),f=e=>new r(e)})),vi=Z((e=>{e.c=e.create=ti(),e.r=e.replace=ni(),e.t=e.list=ei(),e.u=e.update=ri(),e.x=e.extract=_i(),e.Pack=Zr(),e.Unpack=gi(),e.Parse=$r(),e.ReadEntry=Rr(),e.WriteEntry=Jr(),e.Header=Vr(),e.Pax=Hr(),e.types=zr()})),yi=On(jr()),bi=On(vi()),xi={18:{version:`v18.20.8`},19:{version:`v19.9.0`},20:{version:`v20.20.2`},21:{version:`v21.7.3`},22:{version:`v22.23.3`},23:{version:`v23.11.1`},24:{version:`v24.21.0`},25:{version:`v25.9.0`},26:{version:`v26.11.1`}},Si=process.platform===`win32`;function Ci(e){if(typeof e!=`string`||!/^\d+(\.\d+){0,2}$/.test(e))throw Error(`nodeVersion 应为 "18" | "18.1" | "18.1.5" 形式(1~3 段数字),收到:${e}`);let t=e.split(`.`).map(Number),n=Object.entries(xi),r=n.find(([,e])=>{let n=e.version.replace(/^v/,``).split(`.`).map(Number);return t.every((e,t)=>n[t]===e)});if(!r)throw Error(`ezn 内置版本表无匹配 Node ${e} 的版本(当前内置:${n.map(([e,t])=>`${e}=${t.version}`).join(`、`)})。可改传主版本号(如 18),或经 scripts/update-node-assets.mts 更新版本表。`);return r[1].version}function wi(e){return Si?i(e,`node.exe`):i(e,`bin`,`node`)}function Ti(){return`${process.platform}-${process.arch}`}function Ei(e){let t=s(e);return m(wi(t))?t:null}function Di(e,t){return[i(e,`node_modules`,`npm`,`bin`,`${t}-cli.js`),i(e,`lib`,`node_modules`,`npm`,`bin`,`${t}-cli.js`)]}function Oi(e,t){let n=Di(e,t),r=n.find(e=>m(e));if(!r)throw Error([`未找到自带 ${t}(该目录可能不是完整的 Node 运行时)。已查找以下位置:`,...n.map(e=>` - ${e}`),`可尝试的恢复方式:`,` 1. 托管运行时(<appDir>/node):删除该目录后重新启动服务,由引导重新落位完整运行时;`,` 2. 手工安装的平铺运行时:请确认发行包完整(含自带 npm/npx),必要时重新解压放置。`].join(`
27
- `));return r}function ki(e){return Ei(e)!==null&&Di(e,`npm`).some(e=>m(e))}var Ai=[`.cmd`,`.bat`,`.exe`];function ji(e,t){if(t.includes(`/`)||t.includes(`\\`))return null;let n=Si?Ai.map(n=>i(e,`${t}${n}`)):[i(e,t)];return n.push(i(e,`node_modules`,`.bin`,t)),n.find(e=>m(e))??null}function Mi(e){return(Si?[e,i(e,`node_modules`,`.bin`)]:[i(e,`bin`),e]).join(n)+n}var Ni=Z(((e,t)=>{t.exports=n;function n(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}n.prototype.go=function(e){this.pending<this.max?i(this,e):this.waiting.push(e)},n.prototype.wait=function(e){this.pending===0?e(this.error):this.listeners.push(e)},n.prototype.hold=function(){return r(this)};function r(e){e.pending+=1;var t=!1;return n;function n(n){if(t)throw Error(`callback called twice`);if(t=!0,e.error=e.error||n,--e.pending,e.waiting.length>0&&e.pending<e.max)i(e,e.waiting.shift());else if(e.pending===0){var a=e.listeners;e.listeners=[],a.forEach(r)}}function r(t){t(e.error)}}function i(e,t){t(r(e))}})),Pi=Z((e=>{var t=Q(`fs`),n=Q(`util`),r=Q(`stream`),i=r.Readable,a=r.PassThrough,o=Ni(),s=Q(`events`).EventEmitter;e.BufferSlicer=u,e.FdSlicer=c,n.inherits(c,s);function c(e){s.call(this),this.fd=e,this.pend=new o,this.pend.max=1,this.refCount=0}c.prototype.read=function(e,n,r,i,a){var o=this;o.pend.go(function(s){t.read(o.fd,e,n,r,i,function(e,t,n){s(),a(e,t,n)})})},c.prototype.createReadStream=function(e){return new l(this,e)},c.prototype.ref=function(){this.refCount+=1},c.prototype.unref=function(){var e=this;if(--e.refCount,e.refCount<0)throw Error(`invalid unref`);if(e.refCount>0)return;t.close(e.fd,n);function n(t){t?e.emit(`error`,t):e.emit(`close`)}},n.inherits(l,i);function l(e,t){t||={},i.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start}l.prototype._read=function(e){var n=this,r=Math.min(n._readableState.highWaterMark,e);n.endOffset!=null&&(r=Math.min(r,n.endOffset-n.pos)),r<=0?(n.push(null),this._cleanup()):n.context.pend.go(function(e){var i=Buffer.allocUnsafe(r);t.read(n.context.fd,i,0,r,n.pos,function(t,r){t?n.destroy(t):r===0?(n.push(null),n._cleanup()):(n.pos+=r,n.push(i.slice(0,r))),e()})})},l.prototype._destroy=function(e,t){this._cleanup(),t(e)},l.prototype._cleanup=function(){this.context!=null&&(this.context.unref(),this.context=null)},n.inherits(u,s);function u(e){s.call(this),this.refCount=0,this.buffer=e}u.prototype.read=function(e,t,n,r,i){if(!(0<=t&&t<=e.length))throw RangeError(`offset outside buffer: 0 <= `+t+` <= `+e.length);if(r<0)throw RangeError(`position is negative: `+r);t+n>e.length&&(n=e.length-t),r+n>this.buffer.length&&(n=this.buffer.length-r),n<=0?setImmediate(function(){i(null,0)}):(this.buffer.copy(e,t,r,r+n),setImmediate(function(){i(null,n)}))},u.prototype.createReadStream=function(e){e||={};var t=new a(e);t.start=e.start||0,t.endOffset=e.end,t.pos=t.endOffset||this.buffer.length;for(var n=this.buffer.slice(t.start,t.pos),r=65536,i=0;;){var o=i+r;if(o>=n.length){i<n.length&&t.write(n.slice(i,n.length));break}t.write(n.slice(i,o)),i=o}return t.end(),t},u.prototype.ref=function(){this.refCount+=1},u.prototype.unref=function(){if(--this.refCount,this.refCount<0)throw Error(`invalid unref`)}})),Fi=Z(((e,t)=>{var n=new Int32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function r(e){let t=-1;for(let r of e)t=n[(t^r)&255]^t>>>8;return(t^-1)>>>0}t.exports=r})),Ii=Z((e=>{var t=Q(`fs`),n=Q(`zlib`),r=Pi(),i=Q(`util`),a=Q(`events`).EventEmitter,o=Q(`stream`).Transform,s=Q(`stream`).PassThrough,c=Q(`stream`).Writable,l=typeof n.crc32==`function`?n.crc32:Fi();e.openPromise=u;function u(e,t){return new Promise((n,r)=>{d(e,{...t,lazyEntries:!0},function(e,t){if(e)return r(e);n(t)})})}function d(e,n,r){typeof n==`function`&&(r=n,n=null),n??={},n.autoClose??(n.autoClose=!0),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0),n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),r??=M,t.open(e,`r`,function(e,i){if(e)return r(e);f(i,n,function(e,n){e&&t.close(i,M),r(e,n)})})}function f(e,n,i){typeof n==`function`&&(i=n,n=null),n??={},n.autoClose??(n.autoClose=!1),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0),n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),i??=M,t.fstat(e,function(t,a){if(t)return i(t);p(new r.FdSlicer(e),a.size,n,i)})}function p(e,t,n,r){typeof n==`function`&&(r=n,n=null),n??={},n.autoClose??(n.autoClose=!0),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0);var i=!!n.decodeStrings;if(n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),r??=M,typeof t!=`number`)throw Error(`expected totalSize parameter to be a number`);if(t>2**53-1)throw Error(`zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.`);e.ref();var a=22,o=20,s=Math.min(o+a+65535,t),c=A(s);C(e,c,0,s,t-c.length,function(l){if(l)return r(l);for(var u=s-a;u>=0;--u)if(c.readUInt32LE(u)===101010256){var d=c.subarray(u),f=d.readUInt16LE(4),p=d.readUInt16LE(10),h=d.readUInt32LE(16),g=d.readUInt16LE(20),_=d.length-a;if(g!==_)return r(Error(`Invalid comment length. Expected: `+_+`. Found: `+g+". Are there extra bytes at the end of the file? Or is the end of central dir signature `PK☺☻` in the comment?"));var v=i?O(d.subarray(22),!1):d.subarray(22);if(u-o>=0&&c.readUInt32LE(u-o)===117853008){var y=k(c.subarray(u-o,u-o+o),8),b=A(56);return C(e,b,0,b.length,y,function(a){return a?r(a):b.readUInt32LE(0)===101075792?(f=b.readUInt32LE(16),f===0?(p=k(b,32),h=k(b,48),r(null,new m(e,h,t,p,v,n.autoClose,n.lazyEntries,i,n.validateEntrySizes,n.strictFileNames))):r(Error(`multi-disk zip files are not supported: found disk number: `+f))):r(Error(`invalid zip64 end of central directory record signature`))})}return f===0?r(null,new m(e,h,t,p,v,n.autoClose,n.lazyEntries,i,n.validateEntrySizes,n.strictFileNames)):r(Error(`multi-disk zip files are not supported: found disk number: `+f))}r(Error(`End of central directory record signature not found. Either not a zip file, or file is truncated.`))})}i.inherits(m,a);function m(e,t,n,r,i,o,s,c,l,u){var d=this;a.call(d),d.reader=e,d.reader.on(`error`,function(e){g(d,e)}),d.reader.once(`close`,function(){d.emit(`close`)}),d.readEntryCursor=t,d.fileSize=n,d.entryCount=r,d.comment=i,d.entriesRead=0,d.autoClose=!!o,d.lazyEntries=!!s,d.decodeStrings=!!c,d.validateEntrySizes=!!l,d.strictFileNames=!!u,d.isOpen=!0,d.emittedError=!1,d.hasEachEntryBeenCalled=!1,d.lazyEntries||d._readEntry()}m.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())};function h(e,t){e.autoClose&&e.close(),g(e,t)}function g(e,t){e.emittedError||(e.emittedError=!0,e.emit(`error`,t))}m.prototype.readEntry=function(){if(!this.lazyEntries)throw Error(`readEntry() called without lazyEntries:true`);this._readEntry()},m.prototype._readEntry=function(){var e=this;if(e.entryCount===e.entriesRead)setImmediate(function(){e.autoClose&&e.close(),!e.emittedError&&e.emit(`end`)});else if(!e.emittedError){var t=A(46);C(e.reader,t,0,t.length,e.readEntryCursor,function(n){if(n)return h(e,n);if(!e.emittedError){var r=new _,i=t.readUInt32LE(0);if(i!==33639248)return h(e,Error(`invalid central directory file header signature: 0x`+i.toString(16)));if(r.versionMadeBy=t.readUInt16LE(4),r.versionNeededToExtract=t.readUInt16LE(6),r.generalPurposeBitFlag=t.readUInt16LE(8),r.compressionMethod=t.readUInt16LE(10),r.lastModFileTime=t.readUInt16LE(12),r.lastModFileDate=t.readUInt16LE(14),r.crc32=t.readUInt32LE(16),r.compressedSize=t.readUInt32LE(20),r.uncompressedSize=t.readUInt32LE(24),r.fileNameLength=t.readUInt16LE(28),r.extraFieldLength=t.readUInt16LE(30),r.fileCommentLength=t.readUInt16LE(32),r.internalFileAttributes=t.readUInt16LE(36),r.externalFileAttributes=t.readUInt32LE(38),r.relativeOffsetOfLocalHeader=t.readUInt32LE(42),r.generalPurposeBitFlag&64)return h(e,Error(`strong encryption is not supported`));e.readEntryCursor+=46,t=A(r.fileNameLength+r.extraFieldLength+r.fileCommentLength),C(e.reader,t,0,t.length,e.readEntryCursor,function(n){if(n)return h(e,n);if(!e.emittedError){r.fileNameRaw=t.subarray(0,r.fileNameLength);var i=r.fileNameLength+r.extraFieldLength;r.extraFieldRaw=t.subarray(r.fileNameLength,i),r.fileCommentRaw=t.subarray(i,i+r.fileCommentLength);try{r.extraFields=S(r.extraFieldRaw)}catch(t){return h(e,t)}if(e.decodeStrings){var a=!!(r.generalPurposeBitFlag&2048);r.fileComment=O(r.fileCommentRaw,a),r.fileName=b(r.generalPurposeBitFlag,r.fileNameRaw,r.extraFields,e.strictFileNames);var o=x(r.fileName);if(o!=null)return h(e,Error(o))}else r.fileComment=r.fileCommentRaw,r.fileName=r.fileNameRaw;r.comment=r.fileComment,e.readEntryCursor+=t.length,e.entriesRead+=1;for(var s=0;s<r.extraFields.length;s++){var c=r.extraFields[s];if(c.id===1){var l=c.data,u=0;if(r.uncompressedSize===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include uncompressed size`));r.uncompressedSize=k(l,u),u+=8}if(r.compressedSize===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include compressed size`));r.compressedSize=k(l,u),u+=8}if(r.relativeOffsetOfLocalHeader===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include relative header offset`));r.relativeOffsetOfLocalHeader=k(l,u),u+=8}break}}if(e.validateEntrySizes&&r.compressionMethod===0){var d=r.uncompressedSize;if(r.isEncrypted()&&(d+=12),r.compressedSize!==d){var f=`compressed/uncompressed size mismatch for stored file: `+r.compressedSize+` != `+r.uncompressedSize;return h(e,Error(f))}}e.emit(`entry`,r),e.lazyEntries||e._readEntry()}})}})}},m.prototype.eachEntry=function(){let e=this;if(!e.lazyEntries)throw Error(`eachEntry() requires lazyEntries: true`);if(e.hasEachEntryBeenCalled)throw Error(`eachEntry() must only be called once per ZipFile`);e.hasEachEntryBeenCalled=!0;let t=null;e.on(`entry`,r),e.on(`end`,i),e.on(`error`,a);function n(){e.removeListener(`entry`,r),e.removeListener(`end`,i),e.removeListener(`error`,a),e.autoClose&&e.close()}function r(e){let{resolve:n}=t;t=null,n({value:e})}function i(){let{resolve:e}=t;t=null,n(),e({done:!0})}function a(e){let{reject:r}=t;t=null,n(),r(e)}return{[Symbol.asyncIterator](){return this},next(){let n=new Promise((e,n)=>{if(t!=null)throw Error(`next() called before previous Promise was resolved.`);t={resolve:e,reject:n}});return e.readEntry(),n},return(e){return n(),Promise.resolve({done:!0,value:e})},throw(e){return n(),Promise.reject(e)}}},m.prototype.openReadStream=function(e,t,n){var r=this,i=0,a=e.compressedSize;if(n??(n=t,t=null),t==null)t={};else{if(t.decodeFileData===!1){if(t.decrypt!=null)throw Error(`cannot use options.decrypt when options.decodeFileData === false`);if(t.decompress!=null)throw Error(`cannot use options.decompress when options.decodeFileData === false`)}else{if(t.decrypt!=null){if(!e.isEncrypted())throw Error(`options.decrypt can only be specified for encrypted entries. See also option decodeFileData.`);if(t.decrypt!==!1)throw Error(`invalid options.decrypt value: `+t.decrypt);if(e.isCompressed()&&t.decompress!==!1)throw Error(`entry is encrypted and compressed, and options.decompress !== false. See also option decodeFileData.`)}if(t.decompress!=null){if(!e.isCompressed())throw Error(`options.decompress can only be specified for compressed entries. See also option decodeFileData.`);if(t.decompress!==!1&&t.decompress!==!0)throw Error(`invalid options.decompress value: `+t.decompress);s=t.decompress}}if(t.start!=null){if(i=t.start,i<0)throw Error(`options.start < 0`);if(i>e.compressedSize)throw Error(`options.start > entry.compressedSize`)}if(t.end!=null){if(a=t.end,a<0)throw Error(`options.end < 0`);if(a>e.compressedSize)throw Error(`options.end > entry.compressedSize`);if(a<i)throw Error(`options.end < options.start`)}}var o=t.decodeFileData===!1||(e.compressionMethod===0||e.compressionMethod===8&&t.decompress===!1)&&(!e.isEncrypted()||t.decrypt===!1);if((t.start!=null||t.end!=null)&&!o)throw Error(`start/end range require options.decodeFileData === false for non-trivial encoded entries.`);if(!r.isOpen)return n(Error(`closed`));if(e.isEncrypted()&&!o&&t.decrypt!==!1)return n(Error(`entry is encrypted, and options.decodeFileData !== false`));var s;if(o)s=!1;else if(e.compressionMethod===8)s=t.decodeFileData!==!0;else return n(Error(`unsupported compression method: `+e.compressionMethod));r.readLocalFileHeader(e,{minimal:!0},function(t,o){if(t)return n(t);r.openReadStreamLowLevel(o.fileDataStart,e.compressedSize,i,a,s,e.uncompressedSize,n)})},m.prototype.openReadStreamLowLevel=function(e,t,r,i,a,o,s){var c=this;e+t;var l=c.reader.createReadStream({start:e+r,end:e+i}),u=l;if(a){var d=!1,f=n.createInflateRaw();l.on(`error`,function(e){setImmediate(function(){d||f.emit(`error`,e)})}),l.pipe(f),c.validateEntrySizes?(u=new w(o),f.on(`error`,function(e){setImmediate(function(){d||u.emit(`error`,e)})}),f.pipe(u)):u=f,j(u,function(){d=!0,f!==u&&f.unpipe(u),l.unpipe(f),l.destroy()})}s(null,u)},m.prototype.readLocalFileHeader=function(e,t,n){var r=this;n??(n=t,t=null),t??={},r.reader.ref();var i=A(30);C(r.reader,i,0,i.length,e.relativeOffsetOfLocalHeader,function(a){try{if(a)return n(a);var o=i.readUInt32LE(0);if(o!==67324752)return n(Error(`invalid local file header signature: 0x`+o.toString(16)));var s=i.readUInt16LE(26),c=i.readUInt16LE(28),l=e.relativeOffsetOfLocalHeader+30+s+c;if(l+e.compressedSize>r.fileSize)return n(Error(`file data overflows file bounds: `+l+` + `+e.compressedSize+` > `+r.fileSize));if(t.minimal)return n(null,{fileDataStart:l});var u=new v;u.fileDataStart=l,u.versionNeededToExtract=i.readUInt16LE(4),u.generalPurposeBitFlag=i.readUInt16LE(6),u.compressionMethod=i.readUInt16LE(8),u.lastModFileTime=i.readUInt16LE(10),u.lastModFileDate=i.readUInt16LE(12),u.crc32=i.readUInt32LE(14),u.compressedSize=i.readUInt32LE(18),u.uncompressedSize=i.readUInt32LE(22),u.fileNameLength=s,u.extraFieldLength=c,i=A(s+c),r.reader.ref(),C(r.reader,i,0,i.length,e.relativeOffsetOfLocalHeader+30,function(e){try{return e?n(e):(u.fileName=i.subarray(0,s),u.extraField=i.subarray(s),n(null,u))}finally{r.reader.unref()}})}finally{r.reader.unref()}})},m.prototype.openReadStreamPromise=function(e,t){return new Promise((n,r)=>{this.openReadStream(e,t,function(e,t){if(e)return r(e);n(t)})})},m.prototype.openReadStreamLowLevelPromise=function(e,t,n,r,i,a){return new Promise((o,s)=>{this.openReadStream(e,t,n,r,i,a,function(e,t){if(e)return s(e);o(t)})})},m.prototype.readLocalFileHeaderPromise=function(e,t){return new Promise((n,r)=>{this.readLocalFileHeader(e,t,function(e,t){if(e)return r(e);n(t)})})};function _(){}_.prototype.getLastModDate=function(e){if(e??={},!e.forceDosFormat)for(var t=0;t<this.extraFields.length;t++){var n=this.extraFields[t];if(n.id===21589){var r=n.data;if(r.length<5||!(r[0]&1))continue;var i=r.readInt32LE(1);return new Date(i*1e3)}if(n.id===10){var r=n.data;if(r.length!==32||r.readUInt16LE(4)!==1||r.readUInt16LE(6)!==24)continue;var a=(r.readUInt32LE(8)+4294967296*r.readInt32LE(12))/1e4-0xa9730b66800;return new Date(a)}}return y(this.lastModFileDate,this.lastModFileTime,e.timezone)},_.prototype.canDecodeFileData=function(){return!this.isEncrypted()&&(this.compressionMethod===0||this.compressionMethod===8)},_.prototype.isEncrypted=function(){return!!(this.generalPurposeBitFlag&1)},_.prototype.isCompressed=function(){return this.compressionMethod===8};function v(){}function y(e,t,n){var r=e&31,i=(e>>5&15)-1,a=(e>>9&127)+1980,o=0,s=(t&31)*2,c=t>>5&63,l=t>>11&31;if(n==null||n===`local`)return new Date(a,i,r,l,c,s,o);if(n===`UTC`)return new Date(Date.UTC(a,i,r,l,c,s,o));throw Error(`unrecognized options.timezone: `+options.timezone)}function b(e,t,n,r){for(var i=null,a=0;a<n.length;a++){var o=n[a];if(o.id===28789){if(o.data.length<6||o.data.readUInt8(0)!==1)continue;var s=o.data.readUInt32LE(1);if(l(t)!==s)continue;i=O(o.data.subarray(5),!0);break}}return i??=O(t,!!(e&2048)),r||(i=i.replace(/\\/g,`/`)),i}function x(e){return e.indexOf(`\\`)===-1?/^[a-zA-Z]:/.test(e)||/^\//.test(e)?`absolute path: `+e:e.split(`/`).indexOf(`..`)===-1?null:`invalid relative path: `+e:`invalid characters in fileName: `+e}function S(e){for(var t=[],n=0;n<e.length-3;){var r=e.readUInt16LE(n+0),i=e.readUInt16LE(n+2),a=n+4,o=a+i;if(o>e.length)throw Error(`extra field length exceeds extra field buffer size`);var s=e.subarray(a,o);t.push({id:r,data:s}),n=o}return t}function C(e,t,n,r,i,a){if(r===0)return setImmediate(function(){a(null,A(0))});e.read(t,n,r,i,function(e,t){if(e)return a(e);if(t<r)return a(Error(`unexpected EOF`));a()})}i.inherits(w,o);function w(e){o.call(this),this.actualByteCount=0,this.expectedByteCount=e}w.prototype._transform=function(e,t,n){if(this.actualByteCount+=e.length,this.actualByteCount>this.expectedByteCount){var r=`too many bytes in the stream. expected `+this.expectedByteCount+`. got at least `+this.actualByteCount;return n(Error(r))}n(null,e)},w.prototype._flush=function(e){if(this.actualByteCount<this.expectedByteCount){var t=`not enough bytes in the stream. expected `+this.expectedByteCount+`. got only `+this.actualByteCount;return e(Error(t))}e()},i.inherits(T,a);function T(){a.call(this),this.refCount=0}T.prototype.ref=function(){this.refCount+=1},T.prototype.unref=function(){var e=this;if(--e.refCount,e.refCount>0)return;if(e.refCount<0)throw Error(`invalid unref`);e.close(t);function t(t){if(t)return e.emit(`error`,t);e.emit(`close`)}},T.prototype.createReadStream=function(e){e??={};var t=e.start,n=e.end;if(t===n){var r=new s;return setImmediate(function(){r.end()}),r}var i=this._readStreamForRange(t,n),a=!1,o=new E(this);i.on(`error`,function(e){setImmediate(function(){a||o.emit(`error`,e)})}),j(o,function(){i.unpipe(o),o.unref(),i.destroy()});var c=new w(n-t);return o.on(`error`,function(e){setImmediate(function(){a||c.emit(`error`,e)})}),j(c,function(){a=!0,o.unpipe(c),o.destroy()}),i.pipe(o).pipe(c)},T.prototype._readStreamForRange=function(e,t){throw Error(`not implemented`)},T.prototype.read=function(e,t,n,r,i){var a=this.createReadStream({start:r,end:r+n}),o=new c,s=0;o._write=function(n,r,i){n.copy(e,t+s,0,n.length),s+=n.length,i()},o.on(`finish`,i),a.on(`error`,function(e){i(e)}),a.pipe(o)},T.prototype.close=function(e){setImmediate(e)},i.inherits(E,s);function E(e){s.call(this),this.context=e,this.context.ref(),this.unreffedYet=!1}E.prototype._flush=function(e){this.unref(),e()},E.prototype.unref=function(e){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var D=`\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■\xA0`;function O(e,t){if(t)return e.toString(`utf8`);for(var n=``,r=0;r<e.length;r++)n+=D[e[r]];return n}function k(e,t){var n=e.readUInt32LE(t);return e.readUInt32LE(t+4)*4294967296+n}var A=typeof Buffer.allocUnsafe==`function`?function(e){return Buffer.allocUnsafe(e)}:function(e){return new Buffer(e)};function j(e,t){typeof e.destroy==`function`?e._destroy=function(e,n){t(),n?.(e)}:e.destroy=t}function M(e){if(e)throw e}}))(),Li=16384,Ri=16;function zi(e,t){let n=s(e,t);if(!n.startsWith(e+c))throw Error(`zip 条目越出目标目录:${t}`);if(t.split(`/`).some(e=>e.includes(`:`)))throw Error(`zip 条目名含非法字符「:」(NTFS 数据流形态):${t}`);return n}function Bi(e){return(e.externalFileAttributes>>>16&61440)===Li||e.fileName.endsWith(`/`)?!0:!(e.versionMadeBy>>>8)&&e.externalFileAttributes===Ri}async function Vi(e,t,n){let i=s(t);h(i,{recursive:!0});let a=0,o=0,c=null,l=(e=0)=>{n?.({entries:a,bytes:o+e,current:c})},u=await(0,Ii.openPromise)(e);try{for await(let e of u.eachEntry()){if(e.fileName.startsWith(`__MACOSX/`))continue;let t=zi(i,e.fileName);if(Bi(e)){h(t,{recursive:!0}),a+=1,l();continue}h(r(t),{recursive:!0}),c=e.fileName,l();let n=0,s=await u.openReadStreamPromise(e);s.on(`data`,e=>{n+=e.length,l(n)}),await P(s,p(t)),o+=n,a+=1,c=null,l()}}finally{u.isOpen&&u.close()}}var Hi={"win32-x64":{dir:`win-x64`,ext:`zip`},"win32-arm64":{dir:`win-arm64`,ext:`zip`},"darwin-arm64":{dir:`darwin-arm64`,ext:`tar.gz`},"darwin-x64":{dir:`darwin-x64`,ext:`tar.gz`},"linux-x64":{dir:`linux-x64`,ext:`tar.gz`},"linux-arm64":{dir:`linux-arm64`,ext:`tar.gz`}},Ui=process.platform===`win32`?[[`node_modules`]]:[[`lib`,`node_modules`]],Wi=5e3,Gi=3e3;function Ki(e,t){let n=e.bytes===null?``:`,${Math.round(e.bytes/1048576)} MB`,r=e.current===null?``:`(正在 ${e.current})`;return`[ezn] 已解压 ${e.entries} 项${n}${r}(已用 ${t} 秒) ...`}function qi(e,t){let n=setInterval(()=>console.error(t()),e);return()=>clearInterval(n)}function Ji(e){return Math.round((Date.now()-e)/1e3)}var Yi=new Set([`EPERM`,`EACCES`,`EBUSY`,`ENOSPC`,`ENAMETOOLONG`,`EROFS`,`EMFILE`]);function Xi(e){let t=String(e?.code??``);return Yi.has(t)?`local`:`network`}function Zi(e){let t={local:`本机(文件/权限/安全软件)`,network:`网络`,unknown:`未识别`},n=e.mirrors.map((n,r)=>{let i=e.failures[r],a=i?.kind??`unknown`,o=i?i.error instanceof Error?i.error.message:String(i.error):`(无记录)`;return` ${r+1}. [${t[a]}] ${n}\n ${o}`}).join(`
27
+ `).reduce(s,Object.create(null)),s=(e,t)=>{let n=parseInt(t,10);if(n!==Buffer.byteLength(t)+1)return e;t=t.slice((n+` `).length);let r=t.split(`=`),i=r.shift().replace(/^SCHILY\.(dev|ino|nlink)/,`$1`);if(!i)return e;let a=r.join(`=`);return e[i]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(i)?new Date(a*1e3):/^[0-9]+$/.test(a)?+a:a,e};t.exports=i})),Gr=Z(((e,t)=>{t.exports=e=>{let t=e.length-1,n=-1;for(;t>-1&&e.charAt(t)===`/`;)n=t,t--;return n===-1?e:e.slice(0,n)}})),Kr=Z(((e,t)=>{t.exports=e=>class extends e{warn(e,t,n={}){this.file&&(n.file=this.file),this.cwd&&(n.cwd=this.cwd),n.code=t instanceof Error&&t.code||e,n.tarCode=e,!this.strict&&n.recoverable!==!1?(t instanceof Error&&(n=Object.assign(t,n),t=t.message),this.emit(`warn`,n.tarCode,t,n)):t instanceof Error?this.emit(`error`,Object.assign(t,n)):this.emit(`error`,Object.assign(Error(`${e}: ${t}`),n))}}})),qr=Z(((e,t)=>{var n=[`|`,`<`,`>`,`?`,`:`],r=n.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),i=new Map(n.map((e,t)=>[e,r[t]])),a=new Map(r.map((e,t)=>[e,n[t]]));t.exports={encode:e=>n.reduce((e,t)=>e.split(t).join(i.get(t)),e),decode:e=>r.reduce((e,t)=>e.split(t).join(a.get(t)),e)}})),Jr=Z(((e,t)=>{var{isAbsolute:n,parse:r}=Q(`path`).win32;t.exports=e=>{let t=``,i=r(e);for(;n(e)||i.root;){let n=e.charAt(0)===`/`&&e.slice(0,4)!==`//?/`?`/`:i.root;e=e.slice(n.length),t+=n,i=r(e)}return[t,e]}})),Yr=Z(((e,t)=>{t.exports=(e,t,n)=>(e&=4095,n&&(e=(e|384)&-19),t&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e)})),Xr=Z(((e,t)=>{var{Minipass:n}=Fr(),r=Wr(),i=Ur(),a=Q(`fs`),o=Q(`path`),s=zr(),c=Gr(),l=(e,t)=>t?(e=s(e).replace(/^\.(\/|$)/,``),c(t)+`/`+e):s(e),u=16777216,d=Symbol(`process`),f=Symbol(`file`),p=Symbol(`directory`),m=Symbol(`symlink`),h=Symbol(`hardlink`),g=Symbol(`header`),_=Symbol(`read`),v=Symbol(`lstat`),y=Symbol(`onlstat`),b=Symbol(`onread`),x=Symbol(`onreadlink`),S=Symbol(`openfile`),C=Symbol(`onopenfile`),w=Symbol(`close`),T=Symbol(`mode`),E=Symbol(`awaitDrain`),D=Symbol(`ondrain`),O=Symbol(`prefix`),k=Symbol(`hadError`),A=Kr(),j=qr(),M=Jr(),N=Yr(),P=A(class extends n{constructor(e,t){if(t||={},super(t),typeof e!=`string`)throw TypeError(`path is required`);this.path=s(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||``,this.maxReadSize=t.maxReadSize||u,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=s(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?s(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn==`function`&&this.on(`warn`,t.onwarn);let n=!1;if(!this.preservePaths){let[e,t]=M(this.path);e&&(this.path=t,n=e)}this.win32=!!t.win32||process.platform===`win32`,this.win32&&(this.path=j.decode(this.path.replace(/\\/g,`/`)),e=e.replace(/\\/g,`/`)),this.absolute=s(t.absolute||o.resolve(this.cwd,e)),this.path===``&&(this.path=`./`),n&&this.warn(`TAR_ENTRY_INFO`,`stripping ${n} from absolute path`,{entry:this,path:n+this.path}),this.statCache.has(this.absolute)?this[y](this.statCache.get(this.absolute)):this[v]()}emit(e,...t){return e===`error`&&(this[k]=!0),super.emit(e,...t)}[v](){a.lstat(this.absolute,(e,t)=>{if(e)return this.emit(`error`,e);this[y](t)})}[y](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=L(e),this.emit(`stat`,e),this[d]()}[d](){switch(this.type){case`File`:return this[f]();case`Directory`:return this[p]();case`SymbolicLink`:return this[m]();default:return this.end()}}[T](e){return N(e,this.type===`Directory`,this.portable)}[O](e){return l(e,this.prefix)}[g](){this.type===`Directory`&&this.portable&&(this.noMtime=!0),this.header=new i({path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,mode:this[T](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:``,atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new r({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[p](){this.path.slice(-1)!==`/`&&(this.path+=`/`),this.stat.size=0,this[g](),this.end()}[m](){a.readlink(this.absolute,(e,t)=>{if(e)return this.emit(`error`,e);this[x](t)})}[x](e){this.linkpath=s(e),this[g](),this.end()}[h](e){this.type=`Link`,this.linkpath=s(o.relative(this.cwd,e)),this.stat.size=0,this[g](),this.end()}[f](){if(this.stat.nlink>1){let e=this.stat.dev+`:`+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[h](t)}this.linkCache.set(e,this.absolute)}if(this[g](),this.stat.size===0)return this.end();this[S]()}[S](){a.open(this.absolute,`r`,(e,t)=>{if(e)return this.emit(`error`,e);this[C](t)})}[C](e){if(this.fd=e,this[k])return this[w]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[_]()}[_](){let{fd:e,buf:t,offset:n,length:r,pos:i}=this;a.read(e,t,n,r,i,(e,t)=>{if(e)return this[w](()=>this.emit(`error`,e));this[b](t)})}[w](e){a.close(this.fd,e)}[b](e){if(e<=0&&this.remain>0){let e=Error(`encountered unexpected EOF`);return e.path=this.absolute,e.syscall=`read`,e.code=`EOF`,this[w](()=>this.emit(`error`,e))}if(e>this.remain){let e=Error(`did not encounter expected EOF`);return e.path=this.absolute,e.syscall=`read`,e.code=`EOF`,this[w](()=>this.emit(`error`,e))}if(e===this.remain)for(let t=e;t<this.length&&e<this.blockRemain;t++)this.buf[t+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[D]():this[E](()=>this[D]())}[E](e){this.once(`drain`,e)}write(e){if(this.blockRemain<e.length){let e=Error(`writing more data than expected`);return e.path=this.absolute,this.emit(`error`,e)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[D](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[w](e=>e?this.emit(`error`,e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[_]()}}),F=class extends P{[v](){this[y](a.lstatSync(this.absolute))}[m](){this[x](a.readlinkSync(this.absolute))}[S](){this[C](a.openSync(this.absolute,`r`))}[_](){let e=!0;try{let{fd:t,buf:n,offset:r,length:i,pos:o}=this,s=a.readSync(t,n,r,i,o);this[b](s),e=!1}finally{if(e)try{this[w](()=>{})}catch{}}}[E](e){e()}[w](e){a.closeSync(this.fd),e()}},I=A(class extends n{constructor(e,t){t||={},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type===`Directory`&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=s(e.path),this.mode=this[T](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=s(e.linkpath),typeof t.onwarn==`function`&&this.on(`warn`,t.onwarn);let n=!1;if(!this.preservePaths){let[e,t]=M(this.path);e&&(this.path=t,n=e)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new i({path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),n&&this.warn(`TAR_ENTRY_INFO`,`stripping ${n} from absolute path`,{entry:this,path:n+this.path}),this.header.encode()&&!this.noPax&&super.write(new r({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[O](this.path),linkpath:this.type===`Link`?this[O](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[O](e){return l(e,this.prefix)}[T](e){return N(e,this.type===`Directory`,this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw Error(`writing more to entry than is appropriate`);return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});P.Sync=F,P.Tar=I;var L=e=>e.isFile()?`File`:e.isDirectory()?`Directory`:e.isSymbolicLink()?`SymbolicLink`:`Unsupported`;t.exports=P})),Zr=Z(((e,t)=>{t.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}})),Qr=Z(((e,t)=>{t.exports=n,n.Node=o,n.create=n;function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach==`function`)e.forEach(function(e){t.push(e)});else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}n.prototype.removeNode=function(e){if(e.list!==this)throw Error(`removing node which does not belong to this list`);var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||=e,this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||=e,this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)a(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t||=this;for(var n=this.head,r=0;n!==null;r++)e.call(t,n.value,r,this),n=n.next},n.prototype.forEachReverse=function(e,t){t||=this;for(var n=this.tail,r=this.length-1;n!==null;r--)e.call(t,n.value,r,this),n=n.prev},n.prototype.get=function(e){for(var t=0,n=this.head;n!==null&&t<e;t++)n=n.next;if(t===e&&n!==null)return n.value},n.prototype.getReverse=function(e){for(var t=0,n=this.tail;n!==null&&t<e;t++)n=n.prev;if(t===e&&n!==null)return n.value},n.prototype.map=function(e,t){t||=this;for(var r=new n,i=this.head;i!==null;)r.push(e.call(t,i.value,this)),i=i.next;return r},n.prototype.mapReverse=function(e,t){t||=this;for(var r=new n,i=this.tail;i!==null;)r.push(e.call(t,i.value,this)),i=i.prev;return r},n.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else if(this.head)r=this.head.next,n=this.head.value;else throw TypeError(`Reduce of empty list with no initial value`);for(var i=0;r!==null;i++)n=e(n,r.value,i),r=r.next;return n},n.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else if(this.tail)r=this.tail.prev,n=this.tail.value;else throw TypeError(`Reduce of empty list with no initial value`);for(var i=this.length-1;r!==null;i--)n=e(n,r.value,i),r=r.prev;return n},n.prototype.toArray=function(){for(var e=Array(this.length),t=0,n=this.head;n!==null;t++)e[t]=n.value,n=n.next;return e},n.prototype.toArrayReverse=function(){for(var e=Array(this.length),t=0,n=this.tail;n!==null;t++)e[t]=n.value,n=n.prev;return e},n.prototype.slice=function(e,t){t||=this.length,t<0&&(t+=this.length),e||=0,e<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(;a!==null&&i<t;i++,a=a.next)r.push(a.value);return r},n.prototype.sliceReverse=function(e,t){t||=this.length,t<0&&(t+=this.length),e||=0,e<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,a=this.tail;a!==null&&i>t;i--)a=a.prev;for(;a!==null&&i>e;i--,a=a.prev)r.push(a.value);return r},n.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,a=this.head;a!==null&&i<e;i++)a=a.next;for(var o=[],i=0;a&&i<t;i++)o.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var i=0;i<n.length;i++)a=r(this,a,n[i]);return o},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;n!==null;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};function r(e,t,n){var r=t===e.head?new o(n,null,t,e):new o(n,t,t.next,e);return r.next===null&&(e.tail=r),r.prev===null&&(e.head=r),e.length++,r}function i(e,t){e.tail=new o(t,e.tail,null,e),e.head||=e.tail,e.length++}function a(e,t){e.head=new o(t,null,e.head,e),e.tail||=e.head,e.length++}function o(e,t,n,r){if(!(this instanceof o))return new o(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}try{Zr()(n)}catch{}})),$r=Z(((e,t)=>{var n=class{constructor(e,t){this.path=e||`./`,this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},{Minipass:r}=Fr(),i=Rr(),a=Br(),o=Xr(),s=o.Sync,c=o.Tar,l=Qr(),u=Buffer.alloc(1024),d=Symbol(`onStat`),f=Symbol(`ended`),p=Symbol(`queue`),m=Symbol(`current`),h=Symbol(`process`),g=Symbol(`processing`),_=Symbol(`processJob`),v=Symbol(`jobs`),y=Symbol(`jobDone`),b=Symbol(`addFSEntry`),x=Symbol(`addTarEntry`),S=Symbol(`stat`),C=Symbol(`readdir`),w=Symbol(`onreaddir`),T=Symbol(`pipe`),E=Symbol(`entry`),D=Symbol(`entryOpt`),O=Symbol(`writeEntryClass`),k=Symbol(`write`),A=Symbol(`ondrain`),j=Q(`fs`),M=Q(`path`),N=Kr(),P=zr(),F=N(class extends r{constructor(e){if(super(e),e||=Object.create(null),this.opt=e,this.file=e.file||``,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=P(e.prefix||``),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[O]=o,typeof e.onwarn==`function`&&this.on(`warn`,e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip||e.brotli){if(e.gzip&&e.brotli)throw TypeError(`gzip and brotli are mutually exclusive`);e.gzip&&(typeof e.gzip!=`object`&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new i.Gzip(e.gzip)),e.brotli&&(typeof e.brotli!=`object`&&(e.brotli={}),this.zip=new i.BrotliCompress(e.brotli)),this.zip.on(`data`,e=>super.write(e)),this.zip.on(`end`,e=>super.end()),this.zip.on(`drain`,e=>this[A]()),this.on(`resume`,e=>this.zip.resume())}else this.on(`drain`,this[A]);this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter==`function`?e.filter:e=>!0,this[p]=new l,this[v]=0,this.jobs=+e.jobs||4,this[g]=!1,this[f]=!1}[k](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[h](),this}write(e){if(this[f])throw Error(`write after end`);return e instanceof a?this[x](e):this[b](e),this.flowing}[x](e){let t=P(M.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let r=new n(e.path,t,!1);r.entry=new c(e,this[D](r)),r.entry.on(`end`,e=>this[y](r)),this[v]+=1,this[p].push(r)}this[h]()}[b](e){let t=P(M.resolve(this.cwd,e));this[p].push(new n(e,t)),this[h]()}[S](e){e.pending=!0,this[v]+=1,j[this.follow?`stat`:`lstat`](e.absolute,(t,n)=>{e.pending=!1,--this[v],t?this.emit(`error`,t):this[d](e,n)})}[d](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[h]()}[C](e){e.pending=!0,this[v]+=1,j.readdir(e.absolute,(t,n)=>{if(e.pending=!1,--this[v],t)return this.emit(`error`,t);this[w](e,n)})}[w](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[h]()}[h](){if(!this[g]){this[g]=!0;for(let e=this[p].head;e!==null&&this[v]<this.jobs;e=e.next)if(this[_](e.value),e.value.ignore){let t=e.next;this[p].removeNode(e),e.next=t}this[g]=!1,this[f]&&!this[p].length&&this[v]===0&&(this.zip?this.zip.end(u):(super.write(u),super.end()))}}get[m](){return this[p]&&this[p].head&&this[p].head.value}[y](e){this[p].shift(),--this[v],this[h]()}[_](e){if(!e.pending){if(e.entry){e===this[m]&&!e.piped&&this[T](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[d](e,this.statCache.get(e.absolute)):this[S](e)),e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[w](e,this.readdirCache.get(e.absolute)):this[C](e),!e.readdir))){if(e.entry=this[E](e),!e.entry){e.ignore=!0;return}e===this[m]&&!e.piped&&this[T](e)}}}[D](e){return{onwarn:(e,t,n)=>this.warn(e,t,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E](e){this[v]+=1;try{return new this[O](e.path,this[D](e)).on(`end`,()=>this[y](e)).on(`error`,e=>this.emit(`error`,e))}catch(e){this.emit(`error`,e)}}[A](){this[m]&&this[m].entry&&this[m].entry.resume()}[T](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{let n=e.path,r=n===`./`?``:n.replace(/\/*$/,`/`);this[b](r+t)});let t=e.entry,n=this.zip;n?t.on(`data`,e=>{n.write(e)||t.pause()}):t.on(`data`,e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});F.Sync=class extends F{constructor(e){super(e),this[O]=s}pause(){}resume(){}[S](e){let t=this.follow?`statSync`:`lstatSync`;this[d](e,j[t](e.absolute))}[C](e,t){this[w](e,j.readdirSync(e.absolute))}[T](e){let t=e.entry,n=this.zip;e.readdir&&e.readdir.forEach(t=>{let n=e.path,r=n===`./`?``:n.replace(/\/*$/,`/`);this[b](r+t)}),n?t.on(`data`,e=>{n.write(e)}):t.on(`data`,e=>{super[k](e)})}},t.exports=F})),ei=Z((e=>{var t=Lr(),n=Q(`events`).EventEmitter,r=Q(`fs`),i=r.writev;if(!i){let e=process.binding(`fs`),t=e.FSReqWrap||e.FSReqCallback;i=(n,r,i,a)=>{let o=(e,t)=>a(e,t,r),s=new t;s.oncomplete=o,e.writeBuffers(n,r,i,s)}}var a=Symbol(`_autoClose`),o=Symbol(`_close`),s=Symbol(`_ended`),c=Symbol(`_fd`),l=Symbol(`_finished`),u=Symbol(`_flags`),d=Symbol(`_flush`),f=Symbol(`_handleChunk`),p=Symbol(`_makeBuf`),m=Symbol(`_mode`),h=Symbol(`_needDrain`),g=Symbol(`_onerror`),_=Symbol(`_onopen`),v=Symbol(`_onread`),y=Symbol(`_onwrite`),b=Symbol(`_open`),x=Symbol(`_path`),S=Symbol(`_pos`),C=Symbol(`_queue`),w=Symbol(`_read`),T=Symbol(`_readSize`),E=Symbol(`_reading`),D=Symbol(`_remain`),O=Symbol(`_size`),k=Symbol(`_write`),A=Symbol(`_writing`),j=Symbol(`_defaultFlag`),M=Symbol(`_errored`),N=class extends t{constructor(e,t){if(t||={},super(t),this.readable=!0,this.writable=!1,typeof e!=`string`)throw TypeError(`path must be a string`);this[M]=!1,this[c]=typeof t.fd==`number`?t.fd:null,this[x]=e,this[T]=t.readSize||16777216,this[E]=!1,this[O]=typeof t.size==`number`?t.size:1/0,this[D]=this[O],this[a]=typeof t.autoClose!=`boolean`||t.autoClose,typeof this[c]==`number`?this[w]():this[b]()}get fd(){return this[c]}get path(){return this[x]}write(){throw TypeError(`this is a readable stream`)}end(){throw TypeError(`this is a readable stream`)}[b](){r.open(this[x],`r`,(e,t)=>this[_](e,t))}[_](e,t){e?this[g](e):(this[c]=t,this.emit(`open`,t),this[w]())}[p](){return Buffer.allocUnsafe(Math.min(this[T],this[D]))}[w](){if(!this[E]){this[E]=!0;let e=this[p]();if(e.length===0)return process.nextTick(()=>this[v](null,0,e));r.read(this[c],e,0,e.length,null,(e,t,n)=>this[v](e,t,n))}}[v](e,t,n){this[E]=!1,e?this[g](e):this[f](t,n)&&this[w]()}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}[g](e){this[E]=!0,this[o](),this.emit(`error`,e)}[f](e,t){let n=!1;return this[D]-=e,e>0&&(n=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[D]<=0)&&(n=!1,this[o](),super.end()),n}emit(e,t){switch(e){case`prefinish`:case`finish`:break;case`drain`:typeof this[c]==`number`&&this[w]();break;case`error`:return this[M]?void 0:(this[M]=!0,super.emit(e,t));default:return super.emit(e,t)}}},P=class extends N{[b](){let e=!0;try{this[_](null,r.openSync(this[x],`r`)),e=!1}finally{e&&this[o]()}}[w](){let e=!0;try{if(!this[E]){this[E]=!0;do{let e=this[p](),t=e.length===0?0:r.readSync(this[c],e,0,e.length,null);if(!this[f](t,e))break}while(1);this[E]=!1}e=!1}finally{e&&this[o]()}}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.closeSync(e),this.emit(`close`)}}},F=class extends n{constructor(e,t){t||={},super(t),this.readable=!1,this.writable=!0,this[M]=!1,this[A]=!1,this[s]=!1,this[h]=!1,this[C]=[],this[x]=e,this[c]=typeof t.fd==`number`?t.fd:null,this[m]=t.mode===void 0?438:t.mode,this[S]=typeof t.start==`number`?t.start:null,this[a]=typeof t.autoClose!=`boolean`||t.autoClose;let n=this[S]===null?`w`:`r+`;this[j]=t.flags===void 0,this[u]=this[j]?n:t.flags,this[c]===null&&this[b]()}emit(e,t){if(e===`error`){if(this[M])return;this[M]=!0}return super.emit(e,t)}get fd(){return this[c]}get path(){return this[x]}[g](e){this[o](),this[A]=!0,this.emit(`error`,e)}[b](){r.open(this[x],this[u],this[m],(e,t)=>this[_](e,t))}[_](e,t){this[j]&&this[u]===`r+`&&e&&e.code===`ENOENT`?(this[u]=`w`,this[b]()):e?this[g](e):(this[c]=t,this.emit(`open`,t),this[d]())}end(e,t){return e&&this.write(e,t),this[s]=!0,!this[A]&&!this[C].length&&typeof this[c]==`number`&&this[y](null,0),this}write(e,t){return typeof e==`string`&&(e=Buffer.from(e,t)),this[s]?(this.emit(`error`,Error(`write() after end()`)),!1):this[c]===null||this[A]||this[C].length?(this[C].push(e),this[h]=!0,!1):(this[A]=!0,this[k](e),!0)}[k](e){r.write(this[c],e,0,e.length,this[S],(e,t)=>this[y](e,t))}[y](e,t){e?this[g](e):(this[S]!==null&&(this[S]+=t),this[C].length?this[d]():(this[A]=!1,this[s]&&!this[l]?(this[l]=!0,this[o](),this.emit(`finish`)):this[h]&&(this[h]=!1,this.emit(`drain`))))}[d](){if(this[C].length===0)this[s]&&this[y](null,0);else if(this[C].length===1)this[k](this[C].pop());else{let e=this[C];this[C]=[],i(this[c],e,this[S],(e,t)=>this[y](e,t))}}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}},I=class extends F{[b](){let e;if(this[j]&&this[u]===`r+`)try{e=r.openSync(this[x],this[u],this[m])}catch(e){if(e.code===`ENOENT`)return this[u]=`w`,this[b]();throw e}else e=r.openSync(this[x],this[u],this[m]);this[_](null,e)}[o](){if(this[a]&&typeof this[c]==`number`){let e=this[c];this[c]=null,r.closeSync(e),this.emit(`close`)}}[k](e){let t=!0;try{this[y](null,r.writeSync(this[c],e,0,e.length,this[S])),t=!1}finally{if(t)try{this[o]()}catch{}}}};e.ReadStream=N,e.ReadStreamSync=P,e.WriteStream=F,e.WriteStreamSync=I})),ti=Z(((e,t)=>{var n=Kr(),r=Ur(),i=Q(`events`),a=Qr(),o=1048576,s=Br(),c=Wr(),l=Rr(),{nextTick:u}=Q(`process`),d=Buffer.from([31,139]),f=Symbol(`state`),p=Symbol(`writeEntry`),m=Symbol(`readEntry`),h=Symbol(`nextEntry`),g=Symbol(`processEntry`),_=Symbol(`extendedHeader`),v=Symbol(`globalExtendedHeader`),y=Symbol(`meta`),b=Symbol(`emitMeta`),x=Symbol(`buffer`),S=Symbol(`queue`),C=Symbol(`ended`),w=Symbol(`emittedEnd`),T=Symbol(`emit`),E=Symbol(`unzip`),D=Symbol(`consumeChunk`),O=Symbol(`consumeChunkSub`),k=Symbol(`consumeBody`),A=Symbol(`consumeMeta`),j=Symbol(`consumeHeader`),M=Symbol(`consuming`),N=Symbol(`bufferConcat`),P=Symbol(`maybeEnd`),F=Symbol(`writing`),I=Symbol(`aborted`),L=Symbol(`onDone`),R=Symbol(`sawValidEntry`),z=Symbol(`sawNullBlock`),B=Symbol(`sawEOF`),V=Symbol(`closeStream`),H=e=>!0;t.exports=n(class extends i{constructor(e){e||={},super(e),this.file=e.file||``,this[R]=null,this.on(L,e=>{(this[f]===`begin`||this[R]===!1)&&this.warn(`TAR_BAD_ARCHIVE`,`Unrecognized archive format`)}),e.ondone?this.on(L,e.ondone):this.on(L,e=>{this.emit(`prefinish`),this.emit(`finish`),this.emit(`end`)}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||o,this.filter=typeof e.filter==`function`?e.filter:H;let t=e.file&&(e.file.endsWith(`.tar.br`)||e.file.endsWith(`.tbr`));this.brotli=!e.gzip&&e.brotli!==void 0?e.brotli:t?void 0:!1,this.writable=!0,this.readable=!1,this[S]=new a,this[x]=null,this[m]=null,this[p]=null,this[f]=`begin`,this[y]=``,this[_]=null,this[v]=null,this[C]=!1,this[E]=null,this[I]=!1,this[z]=!1,this[B]=!1,this.on(`end`,()=>this[V]()),typeof e.onwarn==`function`&&this.on(`warn`,e.onwarn),typeof e.onentry==`function`&&this.on(`entry`,e.onentry)}[j](e,t){this[R]===null&&(this[R]=!1);let n;try{n=new r(e,t,this[_],this[v])}catch(e){return this.warn(`TAR_ENTRY_INVALID`,e)}if(n.nullBlock)this[z]?(this[B]=!0,this[f]===`begin`&&(this[f]=`header`),this[T](`eof`)):(this[z]=!0,this[T](`nullBlock`));else if(this[z]=!1,!n.cksumValid)this.warn(`TAR_ENTRY_INVALID`,`checksum failure`,{header:n});else if(!n.path)this.warn(`TAR_ENTRY_INVALID`,`path is required`,{header:n});else{let e=n.type;if(/^(Symbolic)?Link$/.test(e)&&!n.linkpath)this.warn(`TAR_ENTRY_INVALID`,`linkpath required`,{header:n});else if(!/^(Symbolic)?Link$/.test(e)&&n.linkpath)this.warn(`TAR_ENTRY_INVALID`,`linkpath forbidden`,{header:n});else{let e=this[p]=new s(n,this[_],this[v]);this[R]||(e.remain?e.on(`end`,()=>{e.invalid||(this[R]=!0)}):this[R]=!0),e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[T](`ignoredEntry`,e),this[f]=`ignore`,e.resume()):e.size>0&&(this[y]=``,e.on(`data`,e=>this[y]+=e),this[f]=`meta`):(this[_]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[T](`ignoredEntry`,e),this[f]=e.remain?`ignore`:`header`,e.resume()):(e.remain?this[f]=`body`:(this[f]=`header`,e.end()),this[m]?this[S].push(e):(this[S].push(e),this[h]())))}}}[V](){u(()=>this.emit(`close`))}[g](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[m]=e,this.emit(`entry`,e),e.emittedEnd||(e.on(`end`,e=>this[h]()),t=!1)):(this[m]=null,t=!1),t}[h](){do;while(this[g](this[S].shift()));if(!this[S].length){let e=this[m];!e||e.flowing||e.size===e.remain?this[F]||this.emit(`drain`):e.once(`drain`,e=>this.emit(`drain`))}}[k](e,t){let n=this[p],r=n.blockRemain,i=r>=e.length&&t===0?e:e.slice(t,t+r);return n.write(i),n.blockRemain||(this[f]=`header`,this[p]=null,n.end()),i.length}[A](e,t){let n=this[p],r=this[k](e,t);return this[p]||this[b](n),r}[T](e,t,n){!this[S].length&&!this[m]?this.emit(e,t,n):this[S].push([e,t,n])}[b](e){switch(this[T](`meta`,this[y]),e.type){case`ExtendedHeader`:case`OldExtendedHeader`:this[_]=c.parse(this[y],this[_],!1);break;case`GlobalExtendedHeader`:this[v]=c.parse(this[y],this[v],!0);break;case`NextFileHasLongPath`:case`OldGnuLongPath`:this[_]=this[_]||Object.create(null),this[_].path=this[y].replace(/\0.*/,``);break;case`NextFileHasLongLinkpath`:this[_]=this[_]||Object.create(null),this[_].linkpath=this[y].replace(/\0.*/,``);break;default:throw Error(`unknown meta: `+e.type)}}abort(e){this[I]=!0,this.emit(`abort`,e),this.warn(`TAR_ABORT`,e,{recoverable:!1})}write(e){if(this[I])return;if((this[E]===null||this.brotli===void 0&&this[E]===!1)&&e){if(this[x]&&(e=Buffer.concat([this[x],e]),this[x]=null),e.length<d.length)return this[x]=e,!0;for(let t=0;this[E]===null&&t<d.length;t++)e[t]!==d[t]&&(this[E]=!1);let t=this.brotli===void 0;if(this[E]===!1&&t){if(e.length<512){if(this[C])this.brotli=!0;else return this[x]=e,!0}else try{new r(e.slice(0,512)),this.brotli=!1}catch{this.brotli=!0}}if(this[E]===null||this[E]===!1&&this.brotli){let t=this[C];this[C]=!1,this[E]=this[E]===null?new l.Unzip:new l.BrotliDecompress,this[E].on(`data`,e=>this[D](e)),this[E].on(`error`,e=>this.abort(e)),this[E].on(`end`,e=>{this[C]=!0,this[D]()}),this[F]=!0;let n=this[E][t?`end`:`write`](e);return this[F]=!1,n}}this[F]=!0,this[E]?this[E].write(e):this[D](e),this[F]=!1;let t=this[S].length?!1:!this[m]||this[m].flowing;return!t&&!this[S].length&&this[m].once(`drain`,e=>this.emit(`drain`)),t}[N](e){e&&!this[I]&&(this[x]=this[x]?Buffer.concat([this[x],e]):e)}[P](){if(this[C]&&!this[w]&&!this[I]&&!this[M]){this[w]=!0;let e=this[p];if(e&&e.blockRemain){let t=this[x]?this[x].length:0;this.warn(`TAR_BAD_ARCHIVE`,`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[x]&&e.write(this[x]),e.end()}this[T](L)}}[D](e){if(this[M])this[N](e);else if(!e&&!this[x])this[P]();else{if(this[M]=!0,this[x]){this[N](e);let t=this[x];this[x]=null,this[O](t)}else this[O](e);for(;this[x]&&this[x].length>=512&&!this[I]&&!this[B];){let e=this[x];this[x]=null,this[O](e)}this[M]=!1}(!this[x]||this[C])&&this[P]()}[O](e){let t=0,n=e.length;for(;t+512<=n&&!this[I]&&!this[B];)switch(this[f]){case`begin`:case`header`:this[j](e,t),t+=512;break;case`ignore`:case`body`:t+=this[k](e,t);break;case`meta`:t+=this[A](e,t);break;default:throw Error(`invalid state: `+this[f])}t<n&&(this[x]=this[x]?Buffer.concat([e.slice(t),this[x]]):e.slice(t))}end(e){this[I]||(this[E]?this[E].end(e):(this[C]=!0,this.brotli===void 0&&(e||=Buffer.alloc(0)),this.write(e)))}})})),ni=Z(((e,t)=>{var n=Pr(),r=ti(),i=Q(`fs`),a=ei(),o=Q(`path`),s=Gr();t.exports=(e,t,r)=>{typeof e==`function`?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),typeof t==`function`&&(r=t,t=null),t=t?Array.from(t):[];let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return t.length&&l(i,t),i.noResume||c(i),i.file&&i.sync?u(i):i.file?d(i,r):f(i)};var c=e=>{let t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()},l=(e,t)=>{let n=new Map(t.map(e=>[s(e),!0])),r=e.filter,i=(e,t)=>{let r=t||o.parse(e).root||`.`,a=e===r?!1:n.has(e)?n.get(e):i(o.dirname(e),r);return n.set(e,a),a};e.filter=r?(e,t)=>r(e,t)&&i(s(e)):e=>i(s(e))},u=e=>{let t=f(e),n=e.file,r=!0,a;try{let o=i.statSync(n),s=e.maxReadSize||16777216;if(o.size<s)t.end(i.readFileSync(n));else{let e=0,r=Buffer.allocUnsafe(s);for(a=i.openSync(n,`r`);e<o.size;){let n=i.readSync(a,r,0,s,e);e+=n,t.write(r.slice(0,n))}t.end()}r=!1}finally{if(r&&a)try{i.closeSync(a)}catch{}}},d=(e,t)=>{let n=new r(e),o=e.maxReadSize||16777216,s=e.file,c=new Promise((e,t)=>{n.on(`error`,t),n.on(`end`,e),i.stat(s,(e,r)=>{if(e)t(e);else{let e=new a.ReadStream(s,{readSize:o,size:r.size});e.on(`error`,t),e.pipe(n)}})});return t?c.then(t,t):c},f=e=>new r(e)})),ri=Z(((e,t)=>{var n=Pr(),r=$r(),i=ei(),a=ni(),o=Q(`path`);t.exports=(e,t,r)=>{if(typeof t==`function`&&(r=t),Array.isArray(e)&&(t=e,e={}),!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);t=Array.from(t);let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return i.file&&i.sync?s(i,t):i.file?c(i,t,r):i.sync?d(i,t):f(i,t)};var s=(e,t)=>{let n=new r.Sync(e),a=new i.WriteStreamSync(e.file,{mode:e.mode||438});n.pipe(a),l(n,t)},c=(e,t,n)=>{let a=new r(e),o=new i.WriteStream(e.file,{mode:e.mode||438});a.pipe(o);let s=new Promise((e,t)=>{o.on(`error`,t),o.on(`close`,e),a.on(`error`,t)});return u(a,t),n?s.then(n,n):s},l=(e,t)=>{t.forEach(t=>{t.charAt(0)===`@`?a({file:o.resolve(e.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},u=(e,t)=>{for(;t.length;){let n=t.shift();if(n.charAt(0)===`@`)return a({file:o.resolve(e.cwd,n.slice(1)),noResume:!0,onentry:t=>e.add(t)}).then(n=>u(e,t));e.add(n)}e.end()},d=(e,t)=>{let n=new r.Sync(e);return l(n,t),n},f=(e,t)=>{let n=new r(e);return u(n,t),n}})),ii=Z(((e,t)=>{var n=Pr(),r=$r(),i=Q(`fs`),a=ei(),o=ni(),s=Q(`path`),c=Ur();t.exports=(e,t,r)=>{let i=n(e);if(!i.file)throw TypeError(`file is required`);if(i.gzip||i.brotli||i.file.endsWith(`.br`)||i.file.endsWith(`.tbr`))throw TypeError(`cannot append to compressed archives`);if(!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);return t=Array.from(t),i.sync?l(i,t):d(i,t,r)};var l=(e,t)=>{let n=new r.Sync(e),a=!0,o,s;try{try{o=i.openSync(e.file,`r+`)}catch(t){if(t.code===`ENOENT`)o=i.openSync(e.file,`w+`);else throw t}let r=i.fstatSync(o),l=Buffer.alloc(512);POSITION:for(s=0;s<r.size;s+=512){for(let e=0,t=0;e<512;e+=t){if(t=i.readSync(o,l,e,l.length-e,s+e),s===0&&l[0]===31&&l[1]===139)throw Error(`cannot append to compressed archives`);if(!t)break POSITION}let t=new c(l);if(!t.cksumValid)break;let n=512*Math.ceil(t.size/512);if(s+n+512>r.size)break;s+=n,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}a=!1,u(e,n,s,o,t)}finally{if(a)try{i.closeSync(o)}catch{}}},u=(e,t,n,r,i)=>{let o=new a.WriteStreamSync(e.file,{fd:r,start:n});t.pipe(o),f(t,i)},d=(e,t,n)=>{t=Array.from(t);let o=new r(e),s=(t,n,r)=>{let a=(e,n)=>{e?i.close(t,t=>r(e)):r(null,n)},o=0;if(n===0)return a(null,0);let s=0,l=Buffer.alloc(512),u=(r,d)=>{if(r)return a(r);if(s+=d,s<512&&d)return i.read(t,l,s,l.length-s,o+s,u);if(o===0&&l[0]===31&&l[1]===139)return a(Error(`cannot append to compressed archives`));if(s<512)return a(null,o);let f=new c(l);if(!f.cksumValid)return a(null,o);let p=512*Math.ceil(f.size/512);if(o+p+512>n||(o+=p+512,o>=n))return a(null,o);e.mtimeCache&&e.mtimeCache.set(f.path,f.mtime),s=0,i.read(t,l,0,512,o,u)};i.read(t,l,0,512,o,u)},l=new Promise((n,r)=>{o.on(`error`,r);let c=`r+`,l=(u,d)=>{if(u&&u.code===`ENOENT`&&c===`r+`)return c=`w+`,i.open(e.file,c,l);if(u)return r(u);i.fstat(d,(c,l)=>{if(c)return i.close(d,()=>r(c));s(d,l.size,(i,s)=>{if(i)return r(i);let c=new a.WriteStream(e.file,{fd:d,start:s});o.pipe(c),c.on(`error`,r),c.on(`close`,n),p(o,t)})})};i.open(e.file,c,l)});return n?l.then(n,n):l},f=(e,t)=>{t.forEach(t=>{t.charAt(0)===`@`?o({file:s.resolve(e.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){let n=t.shift();if(n.charAt(0)===`@`)return o({file:s.resolve(e.cwd,n.slice(1)),noResume:!0,onentry:t=>e.add(t)}).then(n=>p(e,t));e.add(n)}e.end()}})),ai=Z(((e,t)=>{var n=Pr(),r=ii();t.exports=(e,t,a)=>{let o=n(e);if(!o.file)throw TypeError(`file is required`);if(o.gzip||o.brotli||o.file.endsWith(`.br`)||o.file.endsWith(`.tbr`))throw TypeError(`cannot append to compressed archives`);if(!t||!Array.isArray(t)||!t.length)throw TypeError(`no files or directories specified`);return t=Array.from(t),i(o),r(o,t,a)};var i=e=>{let t=e.filter;e.mtimeCache||=new Map,e.filter=t?(n,r)=>t(n,r)&&!(e.mtimeCache.get(n)>r.mtime):(t,n)=>!(e.mtimeCache.get(t)>n.mtime)}})),oi=Z(((e,t)=>{var{promisify:n}=Q(`util`),r=Q(`fs`);t.exports=e=>{if(!e)e={mode:511,fs:r};else if(typeof e==`object`)e={mode:511,fs:r,...e};else if(typeof e==`number`)e={mode:e,fs:r};else if(typeof e==`string`)e={mode:parseInt(e,8),fs:r};else throw TypeError(`invalid options argument`);return e.mkdir=e.mkdir||e.fs.mkdir||r.mkdir,e.mkdirAsync=n(e.mkdir),e.stat=e.stat||e.fs.stat||r.stat,e.statAsync=n(e.stat),e.statSync=e.statSync||e.fs.statSync||r.statSync,e.mkdirSync=e.mkdirSync||e.fs.mkdirSync||r.mkdirSync,e}})),si=Z(((e,t)=>{var n=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:r,parse:i}=Q(`path`);t.exports=e=>{if(/\0/.test(e))throw Object.assign(TypeError(`path must be a string without null bytes`),{path:e,code:`ERR_INVALID_ARG_VALUE`});if(e=r(e),n===`win32`){let t=/[*|"<>?:]/,{root:n}=i(e);if(t.test(e.substr(n.length)))throw Object.assign(Error(`Illegal characters in path.`),{path:e,code:`EINVAL`})}return e}})),ci=Z(((e,t)=>{var{dirname:n}=Q(`path`),r=(e,t,i=void 0)=>i===t?Promise.resolve():e.statAsync(t).then(e=>e.isDirectory()?i:void 0,i=>i.code===`ENOENT`?r(e,n(t),t):void 0),i=(e,t,r=void 0)=>{if(r!==t)try{return e.statSync(t).isDirectory()?r:void 0}catch(r){return r.code===`ENOENT`?i(e,n(t),t):void 0}};t.exports={findMade:r,findMadeSync:i}})),li=Z(((e,t)=>{var{dirname:n}=Q(`path`),r=(e,t,i)=>{t.recursive=!1;let a=n(e);return a===e?t.mkdirAsync(e,t).catch(e=>{if(e.code!==`EISDIR`)throw e}):t.mkdirAsync(e,t).then(()=>i||e,n=>{if(n.code===`ENOENT`)return r(a,t).then(n=>r(e,t,n));if(n.code!==`EEXIST`&&n.code!==`EROFS`)throw n;return t.statAsync(e).then(e=>{if(e.isDirectory())return i;throw n},()=>{throw n})})},i=(e,t,r)=>{let a=n(e);if(t.recursive=!1,a===e)try{return t.mkdirSync(e,t)}catch(e){if(e.code!==`EISDIR`)throw e;return}try{return t.mkdirSync(e,t),r||e}catch(n){if(n.code===`ENOENT`)return i(e,t,i(a,t,r));if(n.code!==`EEXIST`&&n.code!==`EROFS`)throw n;try{if(!t.statSync(e).isDirectory())throw n}catch{throw n}}};t.exports={mkdirpManual:r,mkdirpManualSync:i}})),ui=Z(((e,t)=>{var{dirname:n}=Q(`path`),{findMade:r,findMadeSync:i}=ci(),{mkdirpManual:a,mkdirpManualSync:o}=li();t.exports={mkdirpNative:(e,t)=>(t.recursive=!0,n(e)===e?t.mkdirAsync(e,t):r(t,e).then(n=>t.mkdirAsync(e,t).then(()=>n).catch(n=>{if(n.code===`ENOENT`)return a(e,t);throw n}))),mkdirpNativeSync:(e,t)=>{if(t.recursive=!0,n(e)===e)return t.mkdirSync(e,t);let r=i(t,e);try{return t.mkdirSync(e,t),r}catch(n){if(n.code===`ENOENT`)return o(e,t);throw n}}}})),di=Z(((e,t)=>{var n=Q(`fs`),r=(process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version).replace(/^v/,``).split(`.`),i=+r[0]>10||+r[0]==10&&+r[1]>=12;t.exports={useNative:i?e=>e.mkdir===n.mkdir:()=>!1,useNativeSync:i?e=>e.mkdirSync===n.mkdirSync:()=>!1}})),fi=Z(((e,t)=>{var n=oi(),r=si(),{mkdirpNative:i,mkdirpNativeSync:a}=ui(),{mkdirpManual:o,mkdirpManualSync:s}=li(),{useNative:c,useNativeSync:l}=di(),u=(e,t)=>(e=r(e),t=n(t),c(t)?i(e,t):o(e,t));u.sync=(e,t)=>(e=r(e),t=n(t),l(t)?a(e,t):s(e,t)),u.native=(e,t)=>i(r(e),n(t)),u.manual=(e,t)=>o(r(e),n(t)),u.nativeSync=(e,t)=>a(r(e),n(t)),u.manualSync=(e,t)=>s(r(e),n(t)),t.exports=u})),pi=Z(((e,t)=>{var n=Q(`fs`),r=Q(`path`),i=n.lchown?`lchown`:`chown`,a=n.lchownSync?`lchownSync`:`chownSync`,o=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),s=(e,t,r)=>{try{return n[a](e,t,r)}catch(e){if(e.code!==`ENOENT`)throw e}},c=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if(e.code!==`ENOENT`)throw e}},l=o?(e,t,r,i)=>a=>{!a||a.code!==`EISDIR`?i(a):n.chown(e,t,r,i)}:(e,t,n,r)=>r,u=o?(e,t,n)=>{try{return s(e,t,n)}catch(r){if(r.code!==`EISDIR`)throw r;c(e,t,n)}}:(e,t,n)=>s(e,t,n),d=process.version,f=(e,t,r)=>n.readdir(e,t,r),p=(e,t)=>n.readdirSync(e,t);/^v4\./.test(d)&&(f=(e,t,r)=>n.readdir(e,r));var m=(e,t,r,a)=>{n[i](e,t,r,l(e,t,r,e=>{a(e&&e.code!==`ENOENT`?e:null)}))},h=(e,t,i,a,o)=>{if(typeof t==`string`)return n.lstat(r.resolve(e,t),(n,r)=>{if(n)return o(n.code===`ENOENT`?null:n);r.name=t,h(e,r,i,a,o)});t.isDirectory()?g(r.resolve(e,t.name),i,a,n=>{if(n)return o(n);m(r.resolve(e,t.name),i,a,o)}):m(r.resolve(e,t.name),i,a,o)},g=(e,t,n,r)=>{f(e,{withFileTypes:!0},(i,a)=>{if(i){if(i.code===`ENOENT`)return r();if(i.code!==`ENOTDIR`&&i.code!==`ENOTSUP`)return r(i)}if(i||!a.length)return m(e,t,n,r);let o=a.length,s=null,c=i=>{if(!s){if(i)return r(s=i);if(--o===0)return m(e,t,n,r)}};a.forEach(r=>h(e,r,t,n,c))})},_=(e,t,i,a)=>{if(typeof t==`string`)try{let i=n.lstatSync(r.resolve(e,t));i.name=t,t=i}catch(e){if(e.code===`ENOENT`)return;throw e}t.isDirectory()&&v(r.resolve(e,t.name),i,a),u(r.resolve(e,t.name),i,a)},v=(e,t,n)=>{let r;try{r=p(e,{withFileTypes:!0})}catch(r){if(r.code===`ENOENT`)return;if(r.code===`ENOTDIR`||r.code===`ENOTSUP`)return u(e,t,n);throw r}return r&&r.length&&r.forEach(r=>_(e,r,t,n)),u(e,t,n)};t.exports=g,g.sync=v})),mi=Z(((e,t)=>{var n=fi(),r=Q(`fs`),i=Q(`path`),a=pi(),o=zr(),s=class extends Error{constructor(e,t){super(`Cannot extract through symbolic link`),this.path=t,this.symlink=e}get name(){return`SylinkError`}},c=class extends Error{constructor(e,t){super(t+`: Cannot cd into '`+e+`'`),this.path=e,this.code=t}get name(){return`CwdError`}},l=(e,t)=>e.get(o(t)),u=(e,t,n)=>e.set(o(t),n),d=(e,t)=>{r.stat(e,(n,r)=>{(n||!r.isDirectory())&&(n=new c(e,n&&n.code||`ENOTDIR`)),t(n)})};t.exports=(e,t,s)=>{e=o(e);let c=t.umask,p=t.mode|448,m=(p&c)!==0,h=t.uid,g=t.gid,_=typeof h==`number`&&typeof g==`number`&&(h!==t.processUid||g!==t.processGid),v=t.preserve,y=t.unlink,b=t.cache,x=o(t.cwd),S=(t,n)=>{t?s(t):(u(b,e,!0),n&&_?a(n,h,g,e=>S(e)):m?r.chmod(e,p,s):s())};if(b&&l(b,e)===!0)return S();if(e===x)return d(e,S);if(v)return n(e,{mode:p}).then(e=>S(null,e),S);f(x,o(i.relative(x,e)).split(`/`),p,b,y,x,null,S)};var f=(e,t,n,a,s,c,u,d)=>{if(!t.length)return d(null,u);let m=t.shift(),h=o(i.resolve(e+`/`+m));if(l(a,h))return f(h,t,n,a,s,c,u,d);r.mkdir(h,n,p(h,t,n,a,s,c,u,d))},p=(e,t,n,i,a,c,l,u)=>d=>{d?r.lstat(e,(m,h)=>{if(m)m.path=m.path&&o(m.path),u(m);else if(h.isDirectory())f(e,t,n,i,a,c,l,u);else if(a)r.unlink(e,o=>{if(o)return u(o);r.mkdir(e,n,p(e,t,n,i,a,c,l,u))});else if(h.isSymbolicLink())return u(new s(e,e+`/`+t.join(`/`)));else u(d)}):(l||=e,f(e,t,n,i,a,c,l,u))},m=e=>{let t=!1,n=`ENOTDIR`;try{t=r.statSync(e).isDirectory()}catch(e){n=e.code}finally{if(!t)throw new c(e,n)}};t.exports.sync=(e,t)=>{e=o(e);let c=t.umask,d=t.mode|448,f=(d&c)!==0,p=t.uid,h=t.gid,g=typeof p==`number`&&typeof h==`number`&&(p!==t.processUid||h!==t.processGid),_=t.preserve,v=t.unlink,y=t.cache,b=o(t.cwd),x=t=>{u(y,e,!0),t&&g&&a.sync(t,p,h),f&&r.chmodSync(e,d)};if(y&&l(y,e)===!0)return x();if(e===b)return m(b),x();if(_)return x(n.sync(e,d));let S=o(i.relative(b,e)).split(`/`),C=null;for(let e=S.shift(),t=b;e&&(t+=`/`+e);e=S.shift())if(t=o(i.resolve(t)),!l(y,t))try{r.mkdirSync(t,d),C||=t,u(y,t,!0)}catch{let e=r.lstatSync(t);if(e.isDirectory()){u(y,t,!0);continue}if(v){r.unlinkSync(t),r.mkdirSync(t,d),C||=t,u(y,t,!0);continue}if(e.isSymbolicLink())return new s(t,t+`/`+S.join(`/`))}return x(C)}})),hi=Z(((e,t)=>{var n=Object.create(null),{hasOwnProperty:r}=Object.prototype;t.exports=e=>(r.call(n,e)||(n[e]=e.normalize(`NFD`)),n[e])})),gi=Z(((e,t)=>{var n=Q(`assert`),r=hi(),i=Gr(),{join:a}=Q(`path`),o=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`;t.exports=()=>{let e=new Map,t=new Map,s=e=>e.split(`/`).slice(0,-1).reduce((e,t)=>(e.length&&(t=a(e[e.length-1],t)),e.push(t||`/`),e),[]),c=new Set,l=n=>{let r=t.get(n);if(!r)throw Error(`function does not have any path reservations`);return{paths:r.paths.map(t=>e.get(t)),dirs:[...r.dirs].map(t=>e.get(t))}},u=e=>{let{paths:t,dirs:n}=l(e);return t.every(t=>t[0]===e)&&n.every(t=>t[0]instanceof Set&&t[0].has(e))},d=e=>c.has(e)||!u(e)?!1:(c.add(e),e(()=>f(e)),!0),f=r=>{if(!c.has(r))return!1;let{paths:i,dirs:a}=t.get(r),o=new Set;return i.forEach(t=>{let i=e.get(t);n.equal(i[0],r),i.length===1?e.delete(t):(i.shift(),typeof i[0]==`function`?o.add(i[0]):i[0].forEach(e=>o.add(e)))}),a.forEach(t=>{let i=e.get(t);n(i[0]instanceof Set),i[0].size===1&&i.length===1?e.delete(t):i[0].size===1?(i.shift(),o.add(i[0])):i[0].delete(r)}),c.delete(r),o.forEach(e=>d(e)),!0};return{check:u,reserve:(n,c)=>{n=o?[`win32 parallelization disabled`]:n.map(e=>i(a(r(e))).toLowerCase());let l=new Set(n.map(e=>s(e)).reduce((e,t)=>e.concat(t)));return t.set(c,{dirs:l,paths:n}),n.forEach(t=>{let n=e.get(t);n?n.push(c):e.set(t,[c])}),l.forEach(t=>{let n=e.get(t);n?n[n.length-1]instanceof Set?n[n.length-1].add(c):n.push(new Set([c])):e.set(t,[new Set([c])])}),d(c)}}}})),_i=Z(((e,t)=>{var n=(process.env.__FAKE_PLATFORM__||process.platform)===`win32`,{O_CREAT:r,O_TRUNC:i,O_WRONLY:a,UV_FS_O_FILEMAP:o=0}=(global.__FAKE_TESTING_FS__||Q(`fs`)).constants,s=n&&!!o,c=524288,l=o|i|r|a;t.exports=s?e=>e<c?l:`w`:()=>`w`})),vi=Z(((e,t)=>{var n=Q(`assert`),r=ti(),i=Q(`fs`),a=ei(),o=Q(`path`),s=mi(),c=qr(),l=gi(),u=Jr(),d=zr(),f=Gr(),p=hi(),m=Symbol(`onEntry`),h=Symbol(`checkFs`),g=Symbol(`checkFs2`),_=Symbol(`pruneCache`),v=Symbol(`isReusable`),y=Symbol(`makeFs`),b=Symbol(`file`),x=Symbol(`directory`),S=Symbol(`link`),C=Symbol(`symlink`),w=Symbol(`hardlink`),T=Symbol(`unsupported`),E=Symbol(`checkPath`),D=Symbol(`mkdir`),O=Symbol(`onError`),k=Symbol(`pending`),A=Symbol(`pend`),j=Symbol(`unpend`),M=Symbol(`ended`),N=Symbol(`maybeClose`),P=Symbol(`skip`),F=Symbol(`doChown`),I=Symbol(`uid`),L=Symbol(`gid`),R=Symbol(`checkedCwd`),z=Q(`crypto`),B=_i(),V=(process.env.TESTING_TAR_FAKE_PLATFORM||process.platform)===`win32`,H=1024,ee=(e,t)=>{if(!V)return i.unlink(e,t);let n=e+`.DELETE.`+z.randomBytes(16).toString(`hex`);i.rename(e,n,e=>{if(e)return t(e);i.unlink(n,t)})},U=e=>{if(!V)return i.unlinkSync(e);let t=e+`.DELETE.`+z.randomBytes(16).toString(`hex`);i.renameSync(e,t),i.unlinkSync(t)},te=(e,t,n)=>e===e>>>0?e:t===t>>>0?t:n,ne=e=>f(d(p(e))).toLowerCase(),re=(e,t)=>{t=ne(t);for(let n of e.keys()){let r=ne(n);(r===t||r.indexOf(t+`/`)===0)&&e.delete(n)}},ie=e=>{for(let t of e.keys())e.delete(t)},W=class extends r{constructor(e){if(e||={},e.ondone=e=>{this[M]=!0,this[N]()},super(e),this[R]=!1,this.reservations=l(),this.transform=typeof e.transform==`function`?e.transform:null,this.writable=!0,this.readable=!1,this[k]=0,this[M]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid==`number`||typeof e.gid==`number`){if(typeof e.uid!=`number`||typeof e.gid!=`number`)throw TypeError(`cannot set owner without number uid and gid`);if(e.preserveOwner)throw TypeError(`cannot preserve owner in archive and also set owner explicitly`);this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;this.preserveOwner=e.preserveOwner===void 0&&typeof e.uid!=`number`?process.getuid&&process.getuid()===0:!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.maxDepth=typeof e.maxDepth==`number`?e.maxDepth:H,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||V,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=d(o.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask==`number`?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on(`entry`,e=>this[m](e))}warn(e,t,n={}){return(e===`TAR_BAD_ARCHIVE`||e===`TAR_ABORT`)&&(n.recoverable=!1),super.warn(e,t,n)}[N](){this[M]&&this[k]===0&&(this.emit(`prefinish`),this.emit(`finish`),this.emit(`end`))}[E](e){let t=d(e.path),n=t.split(`/`);if(this.strip){if(n.length<this.strip)return!1;if(e.type===`Link`){let t=d(e.linkpath).split(`/`);if(t.length>=this.strip)e.linkpath=t.slice(this.strip).join(`/`);else return!1}n.splice(0,this.strip),e.path=n.join(`/`)}if(isFinite(this.maxDepth)&&n.length>this.maxDepth)return this.warn(`TAR_ENTRY_ERROR`,`path excessively deep`,{entry:e,path:t,depth:n.length,maxDepth:this.maxDepth}),!1;if(!this.preservePaths){if(n.includes(`..`)||V&&/^[a-z]:\.\.$/i.test(n[0]))return this.warn(`TAR_ENTRY_ERROR`,`path contains '..'`,{entry:e,path:t}),!1;let[r,i]=u(t);r&&(e.path=i,this.warn(`TAR_ENTRY_INFO`,`stripping ${r} from absolute path`,{entry:e,path:t}))}if(e.absolute=o.isAbsolute(e.path)?d(o.resolve(e.path)):d(o.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+`/`)!==0&&e.absolute!==this.cwd)return this.warn(`TAR_ENTRY_ERROR`,`path escaped extraction target`,{entry:e,path:d(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!==`Directory`&&e.type!==`GNUDumpDir`)return!1;if(this.win32){let{root:t}=o.win32.parse(e.absolute);e.absolute=t+c.encode(e.absolute.slice(t.length));let{root:n}=o.win32.parse(e.path);e.path=n+c.encode(e.path.slice(n.length))}return!0}[m](e){if(!this[E](e))return e.resume();switch(n.equal(typeof e.absolute,`string`),e.type){case`Directory`:case`GNUDumpDir`:e.mode&&(e.mode|=448);case`File`:case`OldFile`:case`ContiguousFile`:case`Link`:case`SymbolicLink`:return this[h](e);default:return this[T](e)}}[O](e,t){e.name===`CwdError`?this.emit(`error`,e):(this.warn(`TAR_ENTRY_ERROR`,e,{entry:t}),this[j](),t.resume())}[D](e,t,n){s(d(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},n)}[F](e){return this.forceChown||this.preserveOwner&&(typeof e.uid==`number`&&e.uid!==this.processUid||typeof e.gid==`number`&&e.gid!==this.processGid)||typeof this.uid==`number`&&this.uid!==this.processUid||typeof this.gid==`number`&&this.gid!==this.processGid}[I](e){return te(this.uid,e.uid,this.processUid)}[L](e){return te(this.gid,e.gid,this.processGid)}[b](e,t){let n=e.mode&4095||this.fmode,r=new a.WriteStream(e.absolute,{flags:B(e.size),mode:n,autoClose:!1});r.on(`error`,n=>{r.fd&&i.close(r.fd,()=>{}),r.write=()=>!0,this[O](n,e),t()});let o=1,s=n=>{if(n){r.fd&&i.close(r.fd,()=>{}),this[O](n,e),t();return}--o===0&&i.close(r.fd,n=>{n?this[O](n,e):this[j](),t()})};r.on(`finish`,t=>{let n=e.absolute,a=r.fd;if(e.mtime&&!this.noMtime){o++;let t=e.atime||new Date,r=e.mtime;i.futimes(a,t,r,e=>e?i.utimes(n,t,r,t=>s(t&&e)):s())}if(this[F](e)){o++;let t=this[I](e),r=this[L](e);i.fchown(a,t,r,e=>e?i.chown(n,t,r,t=>s(t&&e)):s())}s()});let c=this.transform&&this.transform(e)||e;c!==e&&(c.on(`error`,n=>{this[O](n,e),t()}),e.pipe(c)),c.pipe(r)}[x](e,t){let n=e.mode&4095||this.dmode;this[D](e.absolute,n,n=>{if(n){this[O](n,e),t();return}let r=1,a=n=>{--r===0&&(t(),this[j](),e.resume())};e.mtime&&!this.noMtime&&(r++,i.utimes(e.absolute,e.atime||new Date,e.mtime,a)),this[F](e)&&(r++,i.chown(e.absolute,this[I](e),this[L](e),a)),a()})}[T](e){e.unsupported=!0,this.warn(`TAR_ENTRY_UNSUPPORTED`,`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[C](e,t){this[S](e,e.linkpath,`symlink`,t)}[w](e,t){let n=d(o.resolve(this.cwd,e.linkpath));this[S](e,n,`link`,t)}[A](){this[k]++}[j](){this[k]--,this[N]()}[P](e){this[j](),e.resume()}[v](e,t){return e.type===`File`&&!this.unlink&&t.isFile()&&t.nlink<=1&&!V}[h](e){this[A]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,t=>this[g](e,t))}[_](e){e.type===`SymbolicLink`?ie(this.dirCache):e.type!==`Directory`&&re(this.dirCache,e.absolute)}[g](e,t){this[_](e);let n=n=>{this[_](e),t(n)},r=()=>{this[D](this.cwd,this.dmode,t=>{if(t){this[O](t,e),n();return}this[R]=!0,a()})},a=()=>{if(e.absolute!==this.cwd){let t=d(o.dirname(e.absolute));if(t!==this.cwd)return this[D](t,this.dmode,t=>{if(t){this[O](t,e),n();return}s()})}s()},s=()=>{i.lstat(e.absolute,(t,r)=>{if(r&&(this.keep||this.newer&&r.mtime>e.mtime)){this[P](e),n();return}if(t||this[v](e,r))return this[y](null,e,n);if(r.isDirectory()){if(e.type===`Directory`){let t=!this.noChmod&&e.mode&&(r.mode&4095)!==e.mode,a=t=>this[y](t,e,n);return t?i.chmod(e.absolute,e.mode,a):a()}if(e.absolute!==this.cwd)return i.rmdir(e.absolute,t=>this[y](t,e,n))}if(e.absolute===this.cwd)return this[y](null,e,n);ee(e.absolute,t=>this[y](t,e,n))})};this[R]?a():r()}[y](e,t,n){if(e){this[O](e,t),n();return}switch(t.type){case`File`:case`OldFile`:case`ContiguousFile`:return this[b](t,n);case`Link`:return this[w](t,n);case`SymbolicLink`:return this[C](t,n);case`Directory`:case`GNUDumpDir`:return this[x](t,n)}}[S](e,t,n,r){i[n](t,e.absolute,t=>{t?this[O](t,e):(this[j](),e.resume()),r()})}},ae=e=>{try{return[null,e()]}catch(e){return[e,null]}};W.Sync=class extends W{[y](e,t){return super[y](e,t,()=>{})}[h](e){if(this[_](e),!this[R]){let t=this[D](this.cwd,this.dmode);if(t)return this[O](t,e);this[R]=!0}if(e.absolute!==this.cwd){let t=d(o.dirname(e.absolute));if(t!==this.cwd){let n=this[D](t,this.dmode);if(n)return this[O](n,e)}}let[t,n]=ae(()=>i.lstatSync(e.absolute));if(n&&(this.keep||this.newer&&n.mtime>e.mtime))return this[P](e);if(t||this[v](e,n))return this[y](null,e);if(n.isDirectory()){if(e.type===`Directory`){let[t]=!this.noChmod&&e.mode&&(n.mode&4095)!==e.mode?ae(()=>{i.chmodSync(e.absolute,e.mode)}):[];return this[y](t,e)}let[t]=ae(()=>i.rmdirSync(e.absolute));this[y](t,e)}let[r]=e.absolute===this.cwd?[]:ae(()=>U(e.absolute));this[y](r,e)}[b](e,t){let n=e.mode&4095||this.fmode,r=n=>{let r;try{i.closeSync(a)}catch(e){r=e}(n||r)&&this[O](n||r,e),t()},a;try{a=i.openSync(e.absolute,B(e.size),n)}catch(e){return r(e)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on(`error`,t=>this[O](t,e)),e.pipe(o)),o.on(`data`,e=>{try{i.writeSync(a,e,0,e.length)}catch(e){r(e)}}),o.on(`end`,t=>{let n=null;if(e.mtime&&!this.noMtime){let t=e.atime||new Date,r=e.mtime;try{i.futimesSync(a,t,r)}catch(a){try{i.utimesSync(e.absolute,t,r)}catch{n=a}}}if(this[F](e)){let t=this[I](e),r=this[L](e);try{i.fchownSync(a,t,r)}catch(a){try{i.chownSync(e.absolute,t,r)}catch{n||=a}}}r(n)})}[x](e,t){let n=e.mode&4095||this.dmode,r=this[D](e.absolute,n);if(r){this[O](r,e),t();return}if(e.mtime&&!this.noMtime)try{i.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[F](e))try{i.chownSync(e.absolute,this[I](e),this[L](e))}catch{}t(),e.resume()}[D](e,t){try{return s.sync(d(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[S](e,t,n,r){try{i[n+`Sync`](t,e.absolute),r(),e.resume()}catch(t){return this[O](t,e)}}},t.exports=W})),yi=Z(((e,t)=>{var n=Pr(),r=vi(),i=Q(`fs`),a=ei(),o=Q(`path`),s=Gr();t.exports=(e,t,r)=>{typeof e==`function`?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),typeof t==`function`&&(r=t,t=null),t=t?Array.from(t):[];let i=n(e);if(i.sync&&typeof r==`function`)throw TypeError(`callback not supported for sync tar functions`);if(!i.file&&typeof r==`function`)throw TypeError(`callback only supported with file option`);return t.length&&c(i,t),i.file&&i.sync?l(i):i.file?u(i,r):i.sync?d(i):f(i)};var c=(e,t)=>{let n=new Map(t.map(e=>[s(e),!0])),r=e.filter,i=(e,t)=>{let r=t||o.parse(e).root||`.`,a=e===r?!1:n.has(e)?n.get(e):i(o.dirname(e),r);return n.set(e,a),a};e.filter=r?(e,t)=>r(e,t)&&i(s(e)):e=>i(s(e))},l=e=>{let t=new r.Sync(e),n=e.file,o=i.statSync(n),s=e.maxReadSize||16777216;new a.ReadStreamSync(n,{readSize:s,size:o.size}).pipe(t)},u=(e,t)=>{let n=new r(e),o=e.maxReadSize||16777216,s=e.file,c=new Promise((e,t)=>{n.on(`error`,t),n.on(`close`,e),i.stat(s,(e,r)=>{if(e)t(e);else{let e=new a.ReadStream(s,{readSize:o,size:r.size});e.on(`error`,t),e.pipe(n)}})});return t?c.then(t,t):c},d=e=>new r.Sync(e),f=e=>new r(e)})),bi=Z((e=>{e.c=e.create=ri(),e.r=e.replace=ii(),e.t=e.list=ni(),e.u=e.update=ai(),e.x=e.extract=yi(),e.Pack=$r(),e.Unpack=vi(),e.Parse=ti(),e.ReadEntry=Br(),e.WriteEntry=Xr(),e.Header=Ur(),e.Pax=Wr(),e.types=Vr()})),xi=An(Nr()),Si=An(bi()),Ci={18:{version:`v18.20.8`},19:{version:`v19.9.0`},20:{version:`v20.20.2`},21:{version:`v21.7.3`},22:{version:`v22.23.3`},23:{version:`v23.11.1`},24:{version:`v24.21.0`},25:{version:`v25.9.0`},26:{version:`v26.11.1`}},wi=process.platform===`win32`;function Ti(e){if(typeof e!=`string`||!/^\d+(\.\d+){0,2}$/.test(e))throw Error(`nodeVersion 应为 "18" | "18.1" | "18.1.5" 形式(1~3 段数字),收到:${e}`);let t=e.split(`.`).map(Number),n=Object.entries(Ci),r=n.find(([,e])=>{let n=e.version.replace(/^v/,``).split(`.`).map(Number);return t.every((e,t)=>n[t]===e)});if(!r)throw Error(`ezn 内置版本表无匹配 Node ${e} 的版本(当前内置:${n.map(([e,t])=>`${e}=${t.version}`).join(`、`)})。可改传主版本号(如 18),或经 scripts/update-node-assets.mts 更新版本表。`);return r[1].version}function Ei(e){return wi?i(e,`node.exe`):i(e,`bin`,`node`)}function Di(){return`${process.platform}-${process.arch}`}function Oi(e){let t=s(e);return m(Ei(t))?t:null}function ki(e,t){return[i(e,`node_modules`,`npm`,`bin`,`${t}-cli.js`),i(e,`lib`,`node_modules`,`npm`,`bin`,`${t}-cli.js`)]}function Ai(e,t){let n=ki(e,t),r=n.find(e=>m(e));if(!r)throw Error([`未找到自带 ${t}(该目录可能不是完整的 Node 运行时)。已查找以下位置:`,...n.map(e=>` - ${e}`),`可尝试的恢复方式:`,` 1. 托管运行时(<appDir>/node):删除该目录后重新启动服务,由引导重新落位完整运行时;`,` 2. 手工安装的平铺运行时:请确认发行包完整(含自带 npm/npx),必要时重新解压放置。`].join(`
28
+ `));return r}function ji(e){return Oi(e)!==null&&ki(e,`npm`).some(e=>m(e))}var Mi=[`.cmd`,`.bat`,`.exe`];function Ni(e,t){if(t.includes(`/`)||t.includes(`\\`))return null;let n=wi?Mi.map(n=>i(e,`${t}${n}`)):[i(e,t)];return n.push(i(e,`node_modules`,`.bin`,t)),n.find(e=>m(e))??null}function Pi(e){return(wi?[e,i(e,`node_modules`,`.bin`)]:[i(e,`bin`),e]).join(n)+n}var Fi=Z(((e,t)=>{t.exports=n;function n(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}n.prototype.go=function(e){this.pending<this.max?i(this,e):this.waiting.push(e)},n.prototype.wait=function(e){this.pending===0?e(this.error):this.listeners.push(e)},n.prototype.hold=function(){return r(this)};function r(e){e.pending+=1;var t=!1;return n;function n(n){if(t)throw Error(`callback called twice`);if(t=!0,e.error=e.error||n,--e.pending,e.waiting.length>0&&e.pending<e.max)i(e,e.waiting.shift());else if(e.pending===0){var a=e.listeners;e.listeners=[],a.forEach(r)}}function r(t){t(e.error)}}function i(e,t){t(r(e))}})),Ii=Z((e=>{var t=Q(`fs`),n=Q(`util`),r=Q(`stream`),i=r.Readable,a=r.PassThrough,o=Fi(),s=Q(`events`).EventEmitter;e.BufferSlicer=u,e.FdSlicer=c,n.inherits(c,s);function c(e){s.call(this),this.fd=e,this.pend=new o,this.pend.max=1,this.refCount=0}c.prototype.read=function(e,n,r,i,a){var o=this;o.pend.go(function(s){t.read(o.fd,e,n,r,i,function(e,t,n){s(),a(e,t,n)})})},c.prototype.createReadStream=function(e){return new l(this,e)},c.prototype.ref=function(){this.refCount+=1},c.prototype.unref=function(){var e=this;if(--e.refCount,e.refCount<0)throw Error(`invalid unref`);if(e.refCount>0)return;t.close(e.fd,n);function n(t){t?e.emit(`error`,t):e.emit(`close`)}},n.inherits(l,i);function l(e,t){t||={},i.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start}l.prototype._read=function(e){var n=this,r=Math.min(n._readableState.highWaterMark,e);if(n.endOffset!=null&&(r=Math.min(r,n.endOffset-n.pos)),r<=0){n.push(null),this._cleanup();return}n.context.pend.go(function(e){var i=Buffer.allocUnsafe(r);t.read(n.context.fd,i,0,r,n.pos,function(t,r){t?n.destroy(t):r===0?(n.push(null),n._cleanup()):(n.pos+=r,n.push(i.slice(0,r))),e()})})},l.prototype._destroy=function(e,t){this._cleanup(),t(e)},l.prototype._cleanup=function(){this.context!=null&&(this.context.unref(),this.context=null)},n.inherits(u,s);function u(e){s.call(this),this.refCount=0,this.buffer=e}u.prototype.read=function(e,t,n,r,i){if(!(0<=t&&t<=e.length))throw RangeError(`offset outside buffer: 0 <= `+t+` <= `+e.length);if(r<0)throw RangeError(`position is negative: `+r);if(t+n>e.length&&(n=e.length-t),r+n>this.buffer.length&&(n=this.buffer.length-r),n<=0){setImmediate(function(){i(null,0)});return}this.buffer.copy(e,t,r,r+n),setImmediate(function(){i(null,n)})},u.prototype.createReadStream=function(e){e||={};var t=new a(e);t.start=e.start||0,t.endOffset=e.end,t.pos=t.endOffset||this.buffer.length;for(var n=this.buffer.slice(t.start,t.pos),r=65536,i=0;;){var o=i+r;if(o>=n.length){i<n.length&&t.write(n.slice(i,n.length));break}t.write(n.slice(i,o)),i=o}return t.end(),t},u.prototype.ref=function(){this.refCount+=1},u.prototype.unref=function(){if(--this.refCount,this.refCount<0)throw Error(`invalid unref`)}})),Li=Z(((e,t)=>{var n=new Int32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function r(e){let t=-1;for(let r of e)t=n[(t^r)&255]^t>>>8;return(t^-1)>>>0}t.exports=r})),Ri=Z((e=>{var t=Q(`fs`),n=Q(`zlib`),r=Ii(),i=Q(`util`),a=Q(`events`).EventEmitter,o=Q(`stream`).Transform,s=Q(`stream`).PassThrough,c=Q(`stream`).Writable,l=typeof n.crc32==`function`?n.crc32:Li();e.openPromise=u;function u(e,t){return new Promise((n,r)=>{d(e,{...t,lazyEntries:!0},function(e,t){if(e)return r(e);n(t)})})}function d(e,n,r){typeof n==`function`&&(r=n,n=null),n??={},n.autoClose??(n.autoClose=!0),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0),n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),r??=M,t.open(e,`r`,function(e,i){if(e)return r(e);f(i,n,function(e,n){e&&t.close(i,M),r(e,n)})})}function f(e,n,i){typeof n==`function`&&(i=n,n=null),n??={},n.autoClose??(n.autoClose=!1),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0),n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),i??=M,t.fstat(e,function(t,a){if(t)return i(t);p(new r.FdSlicer(e),a.size,n,i)})}function p(e,t,n,r){typeof n==`function`&&(r=n,n=null),n??={},n.autoClose??(n.autoClose=!0),n.lazyEntries??(n.lazyEntries=!1),n.decodeStrings??(n.decodeStrings=!0);var i=!!n.decodeStrings;if(n.validateEntrySizes??(n.validateEntrySizes=!0),n.strictFileNames??(n.strictFileNames=!1),r??=M,typeof t!=`number`)throw Error(`expected totalSize parameter to be a number`);if(t>2**53-1)throw Error(`zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.`);e.ref();var a=22,o=20,s=Math.min(o+a+65535,t),c=A(s);C(e,c,0,s,t-c.length,function(l){if(l)return r(l);for(var u=s-a;u>=0;--u)if(c.readUInt32LE(u)===101010256){var d=c.subarray(u),f=d.readUInt16LE(4),p=d.readUInt16LE(10),h=d.readUInt32LE(16),g=d.readUInt16LE(20),_=d.length-a;if(g!==_)return r(Error(`Invalid comment length. Expected: `+_+`. Found: `+g+". Are there extra bytes at the end of the file? Or is the end of central dir signature `PK☺☻` in the comment?"));var v=i?O(d.subarray(22),!1):d.subarray(22);if(u-o>=0&&c.readUInt32LE(u-o)===117853008){var y=k(c.subarray(u-o,u-o+o),8),b=A(56);return C(e,b,0,b.length,y,function(a){return a?r(a):b.readUInt32LE(0)===101075792?(f=b.readUInt32LE(16),f===0?(p=k(b,32),h=k(b,48),r(null,new m(e,h,t,p,v,n.autoClose,n.lazyEntries,i,n.validateEntrySizes,n.strictFileNames))):r(Error(`multi-disk zip files are not supported: found disk number: `+f))):r(Error(`invalid zip64 end of central directory record signature`))})}return f===0?r(null,new m(e,h,t,p,v,n.autoClose,n.lazyEntries,i,n.validateEntrySizes,n.strictFileNames)):r(Error(`multi-disk zip files are not supported: found disk number: `+f))}r(Error(`End of central directory record signature not found. Either not a zip file, or file is truncated.`))})}i.inherits(m,a);function m(e,t,n,r,i,o,s,c,l,u){var d=this;a.call(d),d.reader=e,d.reader.on(`error`,function(e){g(d,e)}),d.reader.once(`close`,function(){d.emit(`close`)}),d.readEntryCursor=t,d.fileSize=n,d.entryCount=r,d.comment=i,d.entriesRead=0,d.autoClose=!!o,d.lazyEntries=!!s,d.decodeStrings=!!c,d.validateEntrySizes=!!l,d.strictFileNames=!!u,d.isOpen=!0,d.emittedError=!1,d.hasEachEntryBeenCalled=!1,d.lazyEntries||d._readEntry()}m.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())};function h(e,t){e.autoClose&&e.close(),g(e,t)}function g(e,t){e.emittedError||(e.emittedError=!0,e.emit(`error`,t))}m.prototype.readEntry=function(){if(!this.lazyEntries)throw Error(`readEntry() called without lazyEntries:true`);this._readEntry()},m.prototype._readEntry=function(){var e=this;if(e.entryCount===e.entriesRead){setImmediate(function(){e.autoClose&&e.close(),!e.emittedError&&e.emit(`end`)});return}if(!e.emittedError){var t=A(46);C(e.reader,t,0,t.length,e.readEntryCursor,function(n){if(n)return h(e,n);if(!e.emittedError){var r=new _,i=t.readUInt32LE(0);if(i!==33639248)return h(e,Error(`invalid central directory file header signature: 0x`+i.toString(16)));if(r.versionMadeBy=t.readUInt16LE(4),r.versionNeededToExtract=t.readUInt16LE(6),r.generalPurposeBitFlag=t.readUInt16LE(8),r.compressionMethod=t.readUInt16LE(10),r.lastModFileTime=t.readUInt16LE(12),r.lastModFileDate=t.readUInt16LE(14),r.crc32=t.readUInt32LE(16),r.compressedSize=t.readUInt32LE(20),r.uncompressedSize=t.readUInt32LE(24),r.fileNameLength=t.readUInt16LE(28),r.extraFieldLength=t.readUInt16LE(30),r.fileCommentLength=t.readUInt16LE(32),r.internalFileAttributes=t.readUInt16LE(36),r.externalFileAttributes=t.readUInt32LE(38),r.relativeOffsetOfLocalHeader=t.readUInt32LE(42),r.generalPurposeBitFlag&64)return h(e,Error(`strong encryption is not supported`));e.readEntryCursor+=46,t=A(r.fileNameLength+r.extraFieldLength+r.fileCommentLength),C(e.reader,t,0,t.length,e.readEntryCursor,function(n){if(n)return h(e,n);if(!e.emittedError){r.fileNameRaw=t.subarray(0,r.fileNameLength);var i=r.fileNameLength+r.extraFieldLength;r.extraFieldRaw=t.subarray(r.fileNameLength,i),r.fileCommentRaw=t.subarray(i,i+r.fileCommentLength);try{r.extraFields=S(r.extraFieldRaw)}catch(t){return h(e,t)}if(e.decodeStrings){var a=!!(r.generalPurposeBitFlag&2048);r.fileComment=O(r.fileCommentRaw,a),r.fileName=b(r.generalPurposeBitFlag,r.fileNameRaw,r.extraFields,e.strictFileNames);var o=x(r.fileName);if(o!=null)return h(e,Error(o))}else r.fileComment=r.fileCommentRaw,r.fileName=r.fileNameRaw;r.comment=r.fileComment,e.readEntryCursor+=t.length,e.entriesRead+=1;for(var s=0;s<r.extraFields.length;s++){var c=r.extraFields[s];if(c.id===1){var l=c.data,u=0;if(r.uncompressedSize===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include uncompressed size`));r.uncompressedSize=k(l,u),u+=8}if(r.compressedSize===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include compressed size`));r.compressedSize=k(l,u),u+=8}if(r.relativeOffsetOfLocalHeader===4294967295){if(u+8>l.length)return h(e,Error(`zip64 extended information extra field does not include relative header offset`));r.relativeOffsetOfLocalHeader=k(l,u),u+=8}break}}if(e.validateEntrySizes&&r.compressionMethod===0){var d=r.uncompressedSize;if(r.isEncrypted()&&(d+=12),r.compressedSize!==d){var f=`compressed/uncompressed size mismatch for stored file: `+r.compressedSize+` != `+r.uncompressedSize;return h(e,Error(f))}}e.emit(`entry`,r),e.lazyEntries||e._readEntry()}})}})}},m.prototype.eachEntry=function(){let e=this;if(!e.lazyEntries)throw Error(`eachEntry() requires lazyEntries: true`);if(e.hasEachEntryBeenCalled)throw Error(`eachEntry() must only be called once per ZipFile`);e.hasEachEntryBeenCalled=!0;let t=null;e.on(`entry`,r),e.on(`end`,i),e.on(`error`,a);function n(){e.removeListener(`entry`,r),e.removeListener(`end`,i),e.removeListener(`error`,a),e.autoClose&&e.close()}function r(e){let{resolve:n}=t;t=null,n({value:e})}function i(){let{resolve:e}=t;t=null,n(),e({done:!0})}function a(e){let{reject:r}=t;t=null,n(),r(e)}return{[Symbol.asyncIterator](){return this},next(){let n=new Promise((e,n)=>{if(t!=null)throw Error(`next() called before previous Promise was resolved.`);t={resolve:e,reject:n}});return e.readEntry(),n},return(e){return n(),Promise.resolve({done:!0,value:e})},throw(e){return n(),Promise.reject(e)}}},m.prototype.openReadStream=function(e,t,n){var r=this,i=0,a=e.compressedSize;if(n??(n=t,t=null),t==null)t={};else{if(t.decodeFileData===!1){if(t.decrypt!=null)throw Error(`cannot use options.decrypt when options.decodeFileData === false`);if(t.decompress!=null)throw Error(`cannot use options.decompress when options.decodeFileData === false`)}else{if(t.decrypt!=null){if(!e.isEncrypted())throw Error(`options.decrypt can only be specified for encrypted entries. See also option decodeFileData.`);if(t.decrypt!==!1)throw Error(`invalid options.decrypt value: `+t.decrypt);if(e.isCompressed()&&t.decompress!==!1)throw Error(`entry is encrypted and compressed, and options.decompress !== false. See also option decodeFileData.`)}if(t.decompress!=null){if(!e.isCompressed())throw Error(`options.decompress can only be specified for compressed entries. See also option decodeFileData.`);if(t.decompress!==!1&&t.decompress!==!0)throw Error(`invalid options.decompress value: `+t.decompress);s=t.decompress}}if(t.start!=null){if(i=t.start,i<0)throw Error(`options.start < 0`);if(i>e.compressedSize)throw Error(`options.start > entry.compressedSize`)}if(t.end!=null){if(a=t.end,a<0)throw Error(`options.end < 0`);if(a>e.compressedSize)throw Error(`options.end > entry.compressedSize`);if(a<i)throw Error(`options.end < options.start`)}}var o=t.decodeFileData===!1||(e.compressionMethod===0||e.compressionMethod===8&&t.decompress===!1)&&(!e.isEncrypted()||t.decrypt===!1);if((t.start!=null||t.end!=null)&&!o)throw Error(`start/end range require options.decodeFileData === false for non-trivial encoded entries.`);if(!r.isOpen)return n(Error(`closed`));if(e.isEncrypted()&&!o&&t.decrypt!==!1)return n(Error(`entry is encrypted, and options.decodeFileData !== false`));var s;if(o)s=!1;else if(e.compressionMethod===8)s=t.decodeFileData!==!0;else return n(Error(`unsupported compression method: `+e.compressionMethod));r.readLocalFileHeader(e,{minimal:!0},function(t,o){if(t)return n(t);r.openReadStreamLowLevel(o.fileDataStart,e.compressedSize,i,a,s,e.uncompressedSize,n)})},m.prototype.openReadStreamLowLevel=function(e,t,r,i,a,o,s){var c=this;e+t;var l=c.reader.createReadStream({start:e+r,end:e+i}),u=l;if(a){var d=!1,f=n.createInflateRaw();l.on(`error`,function(e){setImmediate(function(){d||f.emit(`error`,e)})}),l.pipe(f),c.validateEntrySizes?(u=new w(o),f.on(`error`,function(e){setImmediate(function(){d||u.emit(`error`,e)})}),f.pipe(u)):u=f,j(u,function(){d=!0,f!==u&&f.unpipe(u),l.unpipe(f),l.destroy()})}s(null,u)},m.prototype.readLocalFileHeader=function(e,t,n){var r=this;n??(n=t,t=null),t??={},r.reader.ref();var i=A(30);C(r.reader,i,0,i.length,e.relativeOffsetOfLocalHeader,function(a){try{if(a)return n(a);var o=i.readUInt32LE(0);if(o!==67324752)return n(Error(`invalid local file header signature: 0x`+o.toString(16)));var s=i.readUInt16LE(26),c=i.readUInt16LE(28),l=e.relativeOffsetOfLocalHeader+30+s+c;if(l+e.compressedSize>r.fileSize)return n(Error(`file data overflows file bounds: `+l+` + `+e.compressedSize+` > `+r.fileSize));if(t.minimal)return n(null,{fileDataStart:l});var u=new v;u.fileDataStart=l,u.versionNeededToExtract=i.readUInt16LE(4),u.generalPurposeBitFlag=i.readUInt16LE(6),u.compressionMethod=i.readUInt16LE(8),u.lastModFileTime=i.readUInt16LE(10),u.lastModFileDate=i.readUInt16LE(12),u.crc32=i.readUInt32LE(14),u.compressedSize=i.readUInt32LE(18),u.uncompressedSize=i.readUInt32LE(22),u.fileNameLength=s,u.extraFieldLength=c,i=A(s+c),r.reader.ref(),C(r.reader,i,0,i.length,e.relativeOffsetOfLocalHeader+30,function(e){try{return e?n(e):(u.fileName=i.subarray(0,s),u.extraField=i.subarray(s),n(null,u))}finally{r.reader.unref()}})}finally{r.reader.unref()}})},m.prototype.openReadStreamPromise=function(e,t){return new Promise((n,r)=>{this.openReadStream(e,t,function(e,t){if(e)return r(e);n(t)})})},m.prototype.openReadStreamLowLevelPromise=function(e,t,n,r,i,a){return new Promise((o,s)=>{this.openReadStream(e,t,n,r,i,a,function(e,t){if(e)return s(e);o(t)})})},m.prototype.readLocalFileHeaderPromise=function(e,t){return new Promise((n,r)=>{this.readLocalFileHeader(e,t,function(e,t){if(e)return r(e);n(t)})})};function _(){}_.prototype.getLastModDate=function(e){if(e??={},!e.forceDosFormat)for(var t=0;t<this.extraFields.length;t++){var n=this.extraFields[t];if(n.id===21589){var r=n.data;if(r.length<5||!(r[0]&1))continue;var i=r.readInt32LE(1);return new Date(i*1e3)}if(n.id===10){var r=n.data;if(r.length!==32||r.readUInt16LE(4)!==1||r.readUInt16LE(6)!==24)continue;var a=(r.readUInt32LE(8)+4294967296*r.readInt32LE(12))/1e4-0xa9730b66800;return new Date(a)}}return y(this.lastModFileDate,this.lastModFileTime,e.timezone)},_.prototype.canDecodeFileData=function(){return!this.isEncrypted()&&(this.compressionMethod===0||this.compressionMethod===8)},_.prototype.isEncrypted=function(){return!!(this.generalPurposeBitFlag&1)},_.prototype.isCompressed=function(){return this.compressionMethod===8};function v(){}function y(e,t,n){var r=e&31,i=(e>>5&15)-1,a=(e>>9&127)+1980,o=0,s=(t&31)*2,c=t>>5&63,l=t>>11&31;if(n==null||n===`local`)return new Date(a,i,r,l,c,s,o);if(n===`UTC`)return new Date(Date.UTC(a,i,r,l,c,s,o));throw Error(`unrecognized options.timezone: `+options.timezone)}function b(e,t,n,r){for(var i=null,a=0;a<n.length;a++){var o=n[a];if(o.id===28789){if(o.data.length<6||o.data.readUInt8(0)!==1)continue;var s=o.data.readUInt32LE(1);if(l(t)!==s)continue;i=O(o.data.subarray(5),!0);break}}return i??=O(t,!!(e&2048)),r||(i=i.replace(/\\/g,`/`)),i}function x(e){return e.indexOf(`\\`)===-1?/^[a-zA-Z]:/.test(e)||/^\//.test(e)?`absolute path: `+e:e.split(`/`).indexOf(`..`)===-1?null:`invalid relative path: `+e:`invalid characters in fileName: `+e}function S(e){for(var t=[],n=0;n<e.length-3;){var r=e.readUInt16LE(n+0),i=e.readUInt16LE(n+2),a=n+4,o=a+i;if(o>e.length)throw Error(`extra field length exceeds extra field buffer size`);var s=e.subarray(a,o);t.push({id:r,data:s}),n=o}return t}function C(e,t,n,r,i,a){if(r===0)return setImmediate(function(){a(null,A(0))});e.read(t,n,r,i,function(e,t){if(e)return a(e);if(t<r)return a(Error(`unexpected EOF`));a()})}i.inherits(w,o);function w(e){o.call(this),this.actualByteCount=0,this.expectedByteCount=e}w.prototype._transform=function(e,t,n){if(this.actualByteCount+=e.length,this.actualByteCount>this.expectedByteCount){var r=`too many bytes in the stream. expected `+this.expectedByteCount+`. got at least `+this.actualByteCount;return n(Error(r))}n(null,e)},w.prototype._flush=function(e){if(this.actualByteCount<this.expectedByteCount){var t=`not enough bytes in the stream. expected `+this.expectedByteCount+`. got only `+this.actualByteCount;return e(Error(t))}e()},i.inherits(T,a);function T(){a.call(this),this.refCount=0}T.prototype.ref=function(){this.refCount+=1},T.prototype.unref=function(){var e=this;if(--e.refCount,e.refCount>0)return;if(e.refCount<0)throw Error(`invalid unref`);e.close(t);function t(t){if(t)return e.emit(`error`,t);e.emit(`close`)}},T.prototype.createReadStream=function(e){e??={};var t=e.start,n=e.end;if(t===n){var r=new s;return setImmediate(function(){r.end()}),r}var i=this._readStreamForRange(t,n),a=!1,o=new E(this);i.on(`error`,function(e){setImmediate(function(){a||o.emit(`error`,e)})}),j(o,function(){i.unpipe(o),o.unref(),i.destroy()});var c=new w(n-t);return o.on(`error`,function(e){setImmediate(function(){a||c.emit(`error`,e)})}),j(c,function(){a=!0,o.unpipe(c),o.destroy()}),i.pipe(o).pipe(c)},T.prototype._readStreamForRange=function(e,t){throw Error(`not implemented`)},T.prototype.read=function(e,t,n,r,i){var a=this.createReadStream({start:r,end:r+n}),o=new c,s=0;o._write=function(n,r,i){n.copy(e,t+s,0,n.length),s+=n.length,i()},o.on(`finish`,i),a.on(`error`,function(e){i(e)}),a.pipe(o)},T.prototype.close=function(e){setImmediate(e)},i.inherits(E,s);function E(e){s.call(this),this.context=e,this.context.ref(),this.unreffedYet=!1}E.prototype._flush=function(e){this.unref(),e()},E.prototype.unref=function(e){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var D=`\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■\xA0`;function O(e,t){if(t)return e.toString(`utf8`);for(var n=``,r=0;r<e.length;r++)n+=D[e[r]];return n}function k(e,t){var n=e.readUInt32LE(t);return e.readUInt32LE(t+4)*4294967296+n}var A=typeof Buffer.allocUnsafe==`function`?function(e){return Buffer.allocUnsafe(e)}:function(e){return new Buffer(e)};function j(e,t){typeof e.destroy==`function`?e._destroy=function(e,n){t(),n?.(e)}:e.destroy=t}function M(e){if(e)throw e}}))(),zi=16384,Bi=16;function Vi(e,t){let n=s(e,t);if(!n.startsWith(e+c))throw Error(`zip 条目越出目标目录:${t}`);if(t.split(`/`).some(e=>e.includes(`:`)))throw Error(`zip 条目名含非法字符「:」(NTFS 数据流形态):${t}`);return n}function Hi(e){return(e.externalFileAttributes>>>16&61440)===zi||e.fileName.endsWith(`/`)?!0:!(e.versionMadeBy>>>8)&&e.externalFileAttributes===Bi}async function Ui(e,t,n){let i=s(t);h(i,{recursive:!0});let a=0,o=0,c=null,l=(e=0)=>{n?.({entries:a,bytes:o+e,current:c})},u=await(0,Ri.openPromise)(e);try{for await(let e of u.eachEntry()){if(e.fileName.startsWith(`__MACOSX/`))continue;let t=Vi(i,e.fileName);if(Hi(e)){h(t,{recursive:!0}),a+=1,l();continue}h(r(t),{recursive:!0}),c=e.fileName,l();let n=0,s=await u.openReadStreamPromise(e);s.on(`data`,e=>{n+=e.length,l(n)}),await P(s,p(t)),o+=n,a+=1,c=null,l()}}finally{u.isOpen&&u.close()}}var Wi={"win32-x64":{dir:`win-x64`,ext:`zip`},"win32-arm64":{dir:`win-arm64`,ext:`zip`},"darwin-arm64":{dir:`darwin-arm64`,ext:`tar.gz`},"darwin-x64":{dir:`darwin-x64`,ext:`tar.gz`},"linux-x64":{dir:`linux-x64`,ext:`tar.gz`},"linux-arm64":{dir:`linux-arm64`,ext:`tar.gz`}},Gi=process.platform===`win32`?[[`node_modules`]]:[[`lib`,`node_modules`]],Ki=5e3,qi=3e3;function Ji(e,t){let n=e.bytes===null?``:`,${Math.round(e.bytes/1048576)} MB`,r=e.current===null?``:`(正在 ${e.current})`;return`[ezn] 已解压 ${e.entries} 项${n}${r}(已用 ${t} 秒) ...`}function Yi(e,t){let n=setInterval(()=>console.error(t()),e);return()=>clearInterval(n)}function Xi(e){return Math.round((Date.now()-e)/1e3)}var Zi=new Set([`EPERM`,`EACCES`,`EBUSY`,`ENOSPC`,`ENAMETOOLONG`,`EROFS`,`EMFILE`]);function Qi(e){let t=String(e?.code??``);return Zi.has(t)?`local`:`network`}function $i(e){let t={local:`本机(文件/权限/安全软件)`,network:`网络`,unknown:`未识别`},n=e.mirrors.map((n,r)=>{let i=e.failures[r],a=i?.kind??`unknown`,o=i?i.error instanceof Error?i.error.message:String(i.error):`(无记录)`;return` ${r+1}. [${t[a]}] ${n}\n ${o}`}).join(`
28
29
  `),r=new Set(e.failures.map(e=>e.kind)),i=r.size>0&&[...r].every(e=>e===`network`),a=[`Node 运行时下载失败。`,i?`所有源的失败都是网络类(不可达 / 超时 / TLS 失败)。`:`其中至少一个源是本机类失败(文件被占用、权限、磁盘空间,或被安全软件拦下)——这种情况下换源不会好转。`,`各源失败原因:`,n,``,`可尝试的恢复方式:`];return i?(a.push(` 1. 检查网络 / 代理后重试(本下载不读 http_proxy 等环境变量,需要能直连上面这些源);`),a.push(` 2. 换一个镜像源重试(**推荐入口是环境变量**,不必改任何文件):`,` Windows: set ELLM_NODE_MIRROR=https://your-mirror.example/node-dist`,` POSIX: export ELLM_NODE_MIRROR=https://your-mirror.example/node-dist`,` 目录结构需同 nodejs.org/dist(即 <mirror>/<版本>/<文件名>);`)):(a.push(` 1. 先按上面的「本机」条目处理:确认磁盘空间、把应用目录加入安全软件(360/电脑管家/Defender)信任区、`,` 或关闭其实时防护后重试;被拦下的文件也可能已被隔离/删除,删掉解压残留再试:`,` ${e.extractDir}`),a.push(` 2. 排除本机原因后若仍是网络问题,再换镜像源(**推荐入口是环境变量**):`,` Windows: set ELLM_NODE_MIRROR=https://your-mirror.example/node-dist`,` POSIX: export ELLM_NODE_MIRROR=https://your-mirror.example/node-dist`)),a.push(` 3. 手动放置:下载 ${e.filename}(见 https://nodejs.org/dist/${e.nodeVersion}/),`,` 解压到 ${e.target}(如带顶层版本目录请把其内容上移一层),`,` 确保可执行文件位于 ${e.nodePath}。`),a.join(`
29
- `)}async function Qi(e,t,n){let r=`node-${e}-${n.platform.dir}.${n.platform.ext}`,a=i(t,`node.download.tmp`),o=i(t,`node.extract.tmp`),s=()=>{b(a,{force:!0}),b(o,{recursive:!0,force:!0})},c=[];n.mirror&&c.push(n.mirror.replace(/\/+$/,``)),c.push(`https://registry.npmmirror.com/-/binary/node`,`https://nodejs.org/dist`),b(a,{force:!0}),b(o,{recursive:!0,force:!0}),h(o,{recursive:!0});let l=[];for(let t=0;t<c.length;t++){let u=c[t],d=`${u}/${e}/${r}`;console.error(`[ezn] (${t+1}/${c.length}) 正在下载 ${r}\n[ezn] 来源:${u}`);try{let e=Date.now(),t=0,r=yi.default.stream(d,{decompress:!1,timeout:{connect:3e4,response:6e4,socket:6e4}});r.on(`downloadProgress`,e=>{t=e.transferred});let c=qi(Wi,()=>`[ezn] 已下载 ${Math.round(t/1048576)} MB(已用 ${Ji(e)} 秒) ...`);try{await P(r,p(a))}finally{c()}console.error(`[ezn] 下载完成(${Math.round(x(a).size/1048576)} MB,耗时 ${Ji(e)} 秒),正在解压 ...`);let l=Date.now(),u={entries:0,bytes:null,current:null},f=qi(Gi,()=>Ki(u,Ji(l)));try{n.platform.ext===`zip`?await Vi(a,o,e=>{u=e}):await bi.x({file:a,cwd:o,onentry:e=>{u={entries:u.entries+1,bytes:null,current:e.path}}})}finally{f()}console.error(`[ezn] 解压完成(${u.entries} 项,耗时 ${Ji(l)} 秒)`);let m=v(o),h=m.length===1&&m[0]!==void 0&&x(i(o,m[0])).isDirectory()?i(o,m[0]):o;return b(a,{force:!0}),{src:h,cleanup:s}}catch(e){l.push({error:e,kind:Xi(e)}),console.error(`[ezn] 该源失败(${Xi(e)}):${e instanceof Error?e.message:String(e)}`),b(a,{force:!0}),b(o,{recursive:!0,force:!0}),h(o,{recursive:!0})}}throw s(),Error(Zi({mirrors:c,failures:l,filename:r,nodeVersion:e,target:n.target,nodePath:n.nodePath,extractDir:o}))}function $i(e,t,n,r,a){if(r.some(e=>n.length<=e.length&&n.every((t,n)=>e[n]===t))&&m(t)&&x(e).isDirectory()&&x(t).isDirectory()){for(let o of v(e))$i(i(e,o),i(t,o),[...n,o],r,a);b(e,{recursive:!0,force:!0})}else{if(m(t)){let e=`${t}.old-${a}`;y(t,e),console.error(`[ezn] 同名项已备份:${e}`)}y(e,t)}}function ea(e,t){let n=`.old-${String(t)}`,r=e=>/\.old-\d+$/.test(e)&&!e.endsWith(n),a=e=>{let t;try{t=v(e)}catch{return}for(let n of t){let t=i(e,n),o=!1;try{o=x(t).isDirectory()}catch{continue}if(o)n!==`node_modules`&&a(t);else if(r(n))try{b(t,{force:!0})}catch{console.error(`[ezn] 旧备份清理失败(可能仍被占用,下次再试):${t}`)}}};a(e)}async function ta(e,t,n={}){let a=0,o=(e,t)=>{a=Date.now();for(let n of v(e))$i(i(e,n),i(t,n),[n],Ui,a)},c=s(e),l=Ci(t),u=wi(c),d=Ti(),f=Hi[d];if(!f)throw Error(`暂不支持的平台:${d}。请手动放置 Node ${l} 到 ${c},确保可执行文件位于 ${u}(Windows 为 node.exe,Unix 为 bin/node)。`);h(c,{recursive:!0});let{src:p,cleanup:m}=await Qi(l,r(c),{target:c,nodePath:u,platform:f,mirror:n.mirror??null});try{console.error(`[ezn] 正在落位运行时文件 ...`),o(p,c)}finally{m()}a!==0&&ea(c,a),console.error(`[ezn] Node ${l} 已就绪:${c}`)}function na(e){return e!==``&&!/[\s"^&|<>()%!]/.test(e)?e:`"${e.replace(/"/g,`\\"`)}"`}function ra(e,t,n){return n?[[e,...t].map(na).join(` `),[]]:[e,[...t]]}function ia(e,t,n={}){return new Promise((r,i)=>{let a=A(e,t,{windowsHide:!0,...n}),o=null,s=null;a.stdout&&(o=``,a.stdout.on(`data`,e=>o=(o??``)+e)),a.stderr&&(s=``,a.stderr.on(`data`,e=>s=(s??``)+e)),a.on(`error`,i),a.on(`close`,(e,t)=>r({status:e,signal:t,stdout:o,stderr:s}))})}var aa=process.platform===`win32`,oa=15e3;function sa(e){return typeof e==`string`?e.trim().split(/\s+/).filter(e=>e.length>0):[...e]}var ca=class e{constructor(e,t){this.path=e,this.rt=t}get npmCliPath(){return Oi(this.rt,`npm`)}get npxCliPath(){return Oi(this.rt,`npx`)}get major(){return e.probeMajor(this.path)}resolveArgs(e,t){let n=sa(e);if(n.length===0)throw Error(`命令为空`);let r=n[0],i=n.slice(1);return r===`node`?i:r===`npm`?[this.npmCliPath,...i]:r===`npx`?[this.npxCliPath,...i]:t===null?n:[t,...n]}resolveExec(e,t){let n=sa(e);if(n.length===0)throw Error(`命令为空`);let r=n[0],i=n.slice(1),a=this.childEnv(t.env);if(r===`node`)return{file:this.path,argv:i,shell:!1,env:a};if(r===`npm`)return{file:this.path,argv:[this.npmCliPath,...i],shell:!1,env:a};if(r===`npx`)return{file:this.path,argv:[this.npxCliPath,...i],shell:!1,env:a};let o=ji(this.rt,r);if(o!==null){let e=aa&&/\.(cmd|bat)$/i.test(o),[t,n]=ra(o,i,e);return{file:t,argv:n,shell:e,env:a}}return{file:this.path,argv:n,shell:!1,env:a}}childEnv(e){let t=e??process.env;return{...t,PATH:Mi(this.rt)+(t.PATH??t.Path??``)}}execSync(e,t){let{file:n,argv:r,shell:i,env:a}=this.resolveExec(e,t??{});return j(n,r,{windowsHide:!0,encoding:`utf8`,...t,shell:i,env:a})}exec(e,t){let{file:n,argv:r,shell:i,env:a}=this.resolveExec(e,t??{});return ia(n,r,{...t,shell:i,env:a})}npmSync(e,t){return j(this.path,this.resolveArgs(e,this.npmCliPath),{windowsHide:!0,encoding:`utf8`,...t})}npm(e,t){return ia(this.path,this.resolveArgs(e,this.npmCliPath),t)}npxSync(e,t){return j(this.path,this.resolveArgs(e,this.npxCliPath),{windowsHide:!0,encoding:`utf8`,...t})}npx(e,t){return ia(this.path,this.resolveArgs(e,this.npxCliPath),t)}static probeMajor(t){return e.probe(t).major}static probe(e){try{let t=k(e,[`-v`],{encoding:`utf8`,timeout:oa,windowsHide:!0}),n=String(t).trim().match(/^v(\d+)\./);return{major:n?Number(n[1]):null,reason:n?`ok`:`unexecutable`}}catch(e){let t=e;return{major:null,reason:t.code===`ETIMEDOUT`||t.signal===`SIGTERM`?`timeout`:`unexecutable`}}}static async ensure(t,n,r={}){let a=s(t),o=Ci(n),c=Number(o.replace(/^v/,``).split(`.`)[0]),l=i(a,`node`),u=wi(l),d=r.probe??(t=>e.probe(t)),f=r.nodeBin??null;if(f){if(!m(f))throw Error(`ezn.nodeBin 指定的 Node 不存在:${f}`);let t=e.probeMajor(f);if(t===null)throw Error(`ezn.nodeBin 指定的 Node 无法执行:${f}`);return t<c&&console.error(`[ezn] 警告:ezn.nodeBin 的 Node 主版本为 ${t},低于建议值 ${c},按用户指定继续。`),console.error(`[ezn] Node 运行时(ezn.nodeBin):${f}`),new e(f,l)}if(m(u)){let{major:t,reason:n}=d(u);if(t!==null&&t>=c&&ki(l))return console.error(`[ezn] Node 运行时就绪:${u}`),new e(u,l);if(n===`timeout`)throw Error([`已有 Node 运行时探测超时(${oa/1e3} 秒内未返回),已中止——不重装。`,` 探测对象:${u}`,` 常见原因:安全软件(360 / 电脑管家 / Windows Defender 实时防护)拦下了它的执行,`,` 或正在扫描这个刚下载的可执行文件;重新下载通常同样会被拦,故这里不重试。`,` 可尝试的恢复方式:`,` 1. 把应用目录(托管运行时所在目录)加入安全软件信任区后重试;`,` 2. 临时关闭安全软件的主动防御/实时防护后重试;`," 3. 手工确认该文件可执行:在该目录执行 `node -v`,若同样超时则确认为拦截。"].join(`
30
- `));console.error(t===null?`[ezn] 已有 Node 运行时无法执行(疑似损坏),准备重新安装 ...`:t<c?`[ezn] 已有 Node 运行时主版本为 ${t},低于要求 ${c},准备重装 ...`:`[ezn] 已有 Node 运行时缺少自带 npm(上次落位可能中断),准备补齐 ...`)}return await ta(l,n,{mirror:r.mirror??null}),new e(u,l)}},la=`24`;function ua(e=U){let t={};return e.nodeMirror&&(t.mirror=e.nodeMirror),e.nodeBin&&(t.nodeBin=e.nodeBin),t}async function da(e){return(await ca.ensure(e,la,ua())).path}function fa(e=G()){return new bn(e).configure({daemonJs:Oe(),env:{ELLM_APP_DIR:e},logPrefix:ft,interpreter:e=>da(e)})}async function pa(){J(`正在启动 ezllm(常驻主进程 + 服务)...`,q.rocket),ke();let e=await fa().startChild(dt);return J(e.alreadyRunning?`服务进程已在运行(pid ${String(e.pid)})`:`服务进程已启动(pid ${String(e.pid)})`,e.alreadyRunning?q.running:q.success),{pid:e.pid,appDir:G()}}async function ma(){let e=await fa().isRunning();e&&st(`正在停止 ezllm(服务 + 常驻主进程)`);let t=await fa().shutdown();return e&&(t.stopped?ct():lt()),t}async function ha(){J(`正在重启服务(常驻主进程保留)...`,q.rocket);let e=await fa().restartChild(dt);return J(`服务进程已重新创建(pid ${String(e.pid)})`,q.success),{pid:e.pid,appDir:G()}}async function ga(){return await fa().status()}var $=`ezllm`;function _a(){U.port!==void 0&&J(`注意:--port 只对 start / install 生效(会写入配置文件);本命令不使用它。`,q.warn)}function va(){let e=G();if(!ya())throw Error(`尚未安装 ezllm(应用目录:${e})。\n 先执行:npx ezllm install\n 若已装在别处:用 --app-dir=<安装目录> 指定(或设置环境变量 ELLM_APP_DIR)。`);m(ge())||J(`注意:托管运行时(node/)未落位,本次命令由当前 CLI 执行;如需修复请重跑 npx ezllm install。`,q.warn)}function ya(){return W(G())&&m(i(ve(),`dist`,`cli.js`))}async function ba(){J(`端口已变更,需完整重启主进程才能生效:先停掉当前实例`,q.warn);let e=await ma();if(!e.stopped&&e.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(e.pid)} 可能仍存活),已中止。\n 旧实例仍在运行时端口变更不会生效,请手工结束该进程后重试。`)}var xa=29770,Sa=1,Ca=65535,wa=`127.0.0.1`;function Ta(){try{let e=JSON.parse(_(se(),`utf-8`))?.port;return typeof e!=`number`||!Number.isInteger(e)||e<Sa||e>Ca?void 0:e}catch{return}}function Ea(){let e=(U.port!==void 0&&U.port>=Sa&&U.port<=Ca?U.port:void 0)??Ta()??xa,t=`http://${wa}:${String(e)}`;return{port:e,gateway:`${t}/v1/*`,webUi:`${t}/`}}function Da(){let e=Ea();Y(q.gateway,`网关端点`,e.gateway),Y(q.webui,`管理界面`,e.webUi)}function Oa(e){Y(q.folder,`应用目录`,G()),Y(q.status,`运行状态`,`服务进程已创建并纳管(pid ${String(e.serverPid)}${e.daemonPid?` · 主进程 pid ${String(e.daemonPid)}`:``})· 日志 ${G()}/logs`),Da()}function ka(e){F(``),Y(q.folder,`应用目录`,e.appDir),Y(q.status,`运行状态`,`服务进程 pid ${String(e.pid)}(由常驻主进程纳管)`),Da()}function Aa(e){if(!ya()){J(`${$} 尚未安装`,q.warn),F(``),Y(q.folder,`将安装到`,G()),F(``),F(`执行 npx ${$} install 开始安装。`);return}if(e===null)J(`${$} 未在运行(执行 ezllm start 启动)`,q.idle);else{let t=e.children.server??null;t?J(`${$} 正在运行(服务 pid ${String(t.pid)} · 主进程 pid ${String(e.daemonPid)})`,q.running):J(`${$} 的服务未在运行(主进程 pid ${String(e.daemonPid)} 在;执行 ezllm start 拉起)`,q.warn)}F(``),Y(q.folder,`应用目录`,G()),Da()}function ja(e){if(!e.stopped){if(e.reason===`kill-failed`){J(`${$} 停止失败:进程可能仍存活(pid ${String(e.pid)}),请检查后重试或手工结束。`,q.warn);return}J(`${$} 未在运行(可能已停止)。`,q.idle)}}var Ma={name:``,description:`显示当前运行状态(含服务端地址;只读,不启动服务)`};async function Na(){_a(),Aa(await ga()),F(``),F(`运行 ${$} --help 查看全部命令。`)}var Pa=`EZLLM_HOSTED`,Fa=`EZLLM_CALLER_VERSION`,Ia=`EZLLM_CALLER_NODE`,La=`EZLLM_CALLER_NODE_VERSION`,Ra=`EZLLM_CALLER_JS`,za=[`install`,`uninstall`,`update`],Ba=new Set([`--app-dir`,`--port`,`--node-mirror`,`--node-bin`]);function Va(e){for(let t=0;t<e.length;t+=1){let n=e[t]??``;if(Ba.has(n)){t+=1;continue}if(!n.startsWith(`-`))return n}return``}function Ha(e=process.argv.slice(2),t=process.env){if(t.EZLLM_HOSTED===`1`)return!1;let n=G();if(za.includes(Va(e)))return!1;let r=i(ve(),`dist`,`cli.js`),a=ge();if(!W(n)||!m(r)||!m(a))return!1;let o=A(a,[r,...e],{stdio:`inherit`,env:{...t,[Pa]:`1`,[Fa]:Te(),[Ia]:process.execPath,[La]:process.version,[Ra]:process.argv[1]??``,ELLM_APP_DIR:n},windowsHide:!1});return o.on(`error`,e=>{L(`[ezllm] 转发给已安装的 CLI 失败(${a} ${r}):${e.message}`),process.exit(1)}),o.on(`exit`,(e,t)=>{process.exit(e??+!!t)}),!0}function Ua(e){return process.env[e]||null}function Wa(){return{execPath:process.execPath,nodeVersion:process.version,scriptPath:process.argv[1]??``,argv:[...process.argv],version:Te(),hosted:process.env.EZLLM_HOSTED===`1`,launchedByNpm:process.env.npm_node_execpath!==void 0,callerVersion:Ua(Fa),callerNodeExe:Ua(Ia),callerNodeVersion:Ua(La),callerJs:Ua(Ra)}}function Ga(){let e=G(),t=ge();return{appDir:e,installed:W(e),source:ae()??null,packageDir:ve(e),nodeDir:he(),nodeExe:t,nodeExeExists:m(t),configPath:se(),configExists:m(se()),dataDir:K(),logsDir:ce(),pluginsDir:de()}}function Ka(e,t=Date.now()){if(e===null)return{daemonRunning:!1,daemonVersion:null,endpoint:null,entries:[]};let n=e=>e===null?null:Math.max(0,Math.round((t-e)/1e3)),r=[{name:`daemon`,pid:e.daemonPid,startedAt:e.startedAt,uptimeSec:n(e.startedAt)}];for(let t of Object.keys(e.children).sort()){let i=e.children[t];i&&r.push({name:t,pid:i.pid,startedAt:i.startedAt,uptimeSec:n(i.startedAt)})}return{daemonRunning:!0,daemonVersion:e.version,endpoint:e.endpoint,entries:r}}function qa(e){try{let t=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function Ja(){let e=qa(ve());return{name:e?.name??null,version:e?.version??null,hasBin:e?.bin!==void 0}}function Ya(){let e=ce();return[`ezllm.out.log`,`ezllm.err.log`].map(t=>i(e,t)).filter(e=>m(e))}function Xa(e,t=Date.now()){return{cli:Wa(),app:Ga(),process:Ka(e,t),address:Ea(),hostedPackage:Ja(),logFiles:Ya()}}function Za(e){let{cli:t,app:n,process:r,address:i}=e;J(`ezllm 诊断信息`,q.status),F(``),F(`—— CLI 层 ——`),(t.callerJs!==null||t.callerNodeExe!==null)&&(Y(q.status,`调用侧版本`,t.callerVersion??`未知`),Y(q.status,`调用侧 node`,`${t.callerNodeVersion??`版本未知`} · ${t.callerNodeExe??`未知`}`),Y(q.folder,`调用侧 js`,t.callerJs??`未知`));let a=t.hosted?`托管侧`:`本进程`;if(Y(q.status,`${a}版本`,t.version),Y(q.status,`${a} node`,`${t.nodeVersion} · ${t.execPath}`),t.scriptPath!==``&&Y(q.folder,`${a} js`,t.scriptPath),Y(q.status,`转发状态`,t.hosted?`已转发到托管 CLI(EZLLM_HOSTED=1)`:`未转发(就地执行)`),Y(q.status,`拉起方式`,t.launchedByNpm?`经 npm/npx 拉起`:`直接执行(非 npm 父进程)`),Y(q.status,`argv`,t.argv.join(` `)),F(``),F(`—— 应用目录 ——`),Y(q.folder,`appDir`,n.appDir),Y(q.status,`装配状态`,n.installed?`已装配(来源 ${n.source??`未知`})`:`未装配(找不到 runtime.json 标记)`),Y(q.folder,`程序包`,e.hostedPackage.version===null?`${n.packageDir}(未读到 package.json)`:`${n.packageDir}(${e.hostedPackage.name??`?`}@${e.hostedPackage.version})`),Y(q.status,`托管运行时`,`${n.nodeDir}(${n.nodeExeExists?`node 可执行在位`:`缺 node 可执行`})`),Y(q.status,`配置文件`,n.configExists?n.configPath:`${n.configPath}(尚未创建)`),Y(q.folder,`数据目录`,n.dataDir),Y(q.folder,`日志目录`,n.logsDir),Y(q.folder,`插件目录`,n.pluginsDir),F(``),F(`—— 进程 ——`),!r.daemonRunning)Y(q.idle,`主进程`,`未在运行(执行 ezllm start 启动)`);else{Y(q.running,`主进程版本`,r.daemonVersion??`未知`),r.endpoint!==null&&Y(q.status,`控制端点`,r.endpoint);for(let e of r.entries){let t=e.uptimeSec===null?``:` · 已运行 ${String(e.uptimeSec)} 秒`;Y(q.status,e.name,`pid ${String(e.pid)}${t}`)}r.entries.length===1&&Y(q.warn,`子进程`,`无(服务未在运行或未注册)`)}e.logFiles.length>0&&Y(q.folder,`主进程日志`,e.logFiles.join(` · `)),F(``),F(`—— 访问地址 ——`),Y(q.gateway,`网关端点`,i.gateway),Y(q.webui,`管理界面`,i.webUi)}var Qa={name:`info`,description:`输出诊断信息(调用侧与托管侧各自的 node / js 版本与路径、应用目录、进程与子进程、访问地址)`};async function $a(){_a(),Za(Xa(await ga()))}function eo(){let e=U.port;if(e===void 0)return null;let t=ke(),n;try{n=JSON.parse(_(t,`utf-8`).replace(/^\uFEFF/,``))}catch{return null}if(typeof n!=`object`||!n||Array.isArray(n))return null;let r=n,i=typeof r.port==`number`?r.port:void 0;return i===e?null:(r.port=e,Ae(t,r),{from:i,to:e})}function to(e){let t=e.from===void 0?`未设置`:String(e.from);return`已把端口写入配置文件:${String(e.to)}(原 ${t})→ ${se()}`}var no={name:`start`,description:`启动 ezllm(首次会拉起常驻主进程;已在运行则显示状态)`};async function ro(){_a(),va();let e=eo();e!==null&&(J(to(e),q.success),await ga()!==null&&await ba()),ka(await pa())}var io={name:`stop`,description:`停止 ezllm(服务与常驻主进程一起停)`};async function ao(){_a(),va();let e=await ma();if(!e.stopped){ja(e),e.reason===`kill-failed`&&process.exit(1);return}J(`${$} 已停止。`,q.stopped)}var oo={name:`restart`,description:`重启服务(常驻主进程不动)`};async function so(){_a(),va(),ka(await ha())}var co=[a(se()).base,a(pe()).base,...me,a(he()).base,a(ue()).base],lo=[a(K()).base,a(ce()).base,a(fe()).base,a(de()).base],uo=[a(se()).base,a(pe()).base,...me,a(he()).base,`data`,`logs`,`bin`,`daemon.json`,`plugin-auth.json`],fo=[`.git`,`pnpm-workspace.yaml`,`src`,`package.json`];function po(e){return e.some(e=>uo.includes(e))}function mo(e,t=!0){return co.includes(e)?!0:t&&lo.includes(e)}function ho(e,t){let n=s(e);if(n===a(n).root)throw Error(`拒绝清理:应用目录解析为文件系统根(${n})。这几乎肯定是 --app-dir / ELLM_APP_DIR 配置错误。`);if(n===s(C()))throw Error(`拒绝清理:应用目录是用户主目录本身(${n}),清理会删掉整个家目录。\n 请把 --app-dir 指向一个专用子目录(如 <工程>/ezllm)。`);let r=W(n),i=r?fo.filter(e=>e!==`package.json`):fo,o=t.filter(e=>i.includes(e));if(o.length>0)throw Error(`拒绝清理:应用目录含源码/仓库特征(${o.join(`、`)}),疑似指向代码目录而非运行时目录。\n 当前值:${n}\n 如确要重装,请把 --app-dir 指向专用目录(如 <工程>/ezllm)后重试。`);if(!r&&t.filter(e=>uo.includes(e)).length===0)throw Error(`拒绝清理:应用目录不含任何 ezllm 产物(${n}),不像被 install 装配过的目录。\n 为避免误删用户数据,已中止。`)}function go(e,t,n=!0){let r=[],a=[];for(let o of e)mo(o,n)?a.push(o):r.push(i(t,o));return{remove:r,keep:a}}function _o(e={}){let t=e.appDir??G(),n=e.listDir??(e=>v(e)),r=e.remove??(e=>b(e,{recursive:!0,force:!0})),i;try{i=n(t)}catch(e){if(e.code===`ENOENT`)return{removed:[],kept:[],failed:[]};throw e}ho(t,i);let{remove:a,keep:o}=go(i,t,e.keepUserData??!0),s=[],c=[];for(let e of a)try{r(e),s.push(e)}catch(t){let n=t.code??`UNKNOWN`;c.push({path:e,code:n})}return{removed:s,kept:o,failed:c}}var vo=`.backup-`;function yo(e,n=new Date,a=m){let o=`${t(s(e))}${vo}${(e=>{let t=e=>String(e).padStart(2,`0`);return`${String(e.getFullYear())}${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`})(n)}`,c=r(s(e)),l=i(c,o);for(let e=2;a(l);e++)l=i(c,`${o}-${String(e)}`);return l}function bo(e,t){let n=a(he()).base,r=[],o=[];for(let a of e)a===n?o.push(a):r.push(i(t,a));return{copy:r,skipped:o}}function xo(e={}){let n=e.appDir??G(),r=e.listDir??(e=>v(e)),a=e.exists??m,o=e.copy??((e,t)=>f(e,t,{recursive:!0,force:!0})),{copy:s,skipped:c}=bo(r(n),n),l=yo(n,(e.now??(()=>new Date))(),a);if(s.length===0)return{backupDir:l,copied:[],skipped:c,empty:!0};h(l,{recursive:!0});let u=[],d=[];for(let e of s){let n=t(e);try{o(e,i(l,n)),d.push(n)}catch(t){u.push({path:e,code:t.code??`UNKNOWN`})}}if(u.length>0){let e=u.map(e=>` ${e.path}(${e.code})`).join(`
31
- `);throw Error(`${String(u.length)} 项备份失败,已中止卸载(未删除任何文件):\n${e}\n 备份目录:${l}\n 文件可能被占用(先停止 ezllm 并关闭相关程序),或改为手工复制该目录后重试。`)}return{backupDir:l,copied:d,skipped:c,empty:!1}}var So=`ezllm`;function Co(e){let t=i(e,`node`,`node_modules`,So);return[{from:`dist`,to:i(t,`dist`)},{from:`package.json`,to:i(t,`package.json`)}]}var wo=[{from:`ezllm.config.example.json`,to:`ezllm.config.example.json`},{from:`hook.example.cjs`,to:`hook.example.cjs`}],To=`*
32
- `,Eo=`ezllm-runtime`;function Do(){try{let e=_(i(ve(),`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(e)}catch{return null}}function Oo(e){let t=Do();return t?.name!==`ezllm`||t.version!==e?!1:m(i(ve(),`dist`,`cli.js`))}function ko(e){let t=null;try{t=JSON.parse(_(i(Ce,`package.json`),`utf-8`))}catch{t=null}if(t?.name!==`ezllm`||t.version!==e)throw Error(`无法定位当前版本的程序包(${Ce},期望 ${So}@${e})。\n 请用发布形态运行:npx ezllm install,或 npx <解压目录>/app/cli install。`);return Ce}function Ao(e,t){let n=[],r=(r,a)=>{let s=i(e,r);x(s).isDirectory()&&b(a,{recursive:!0,force:!0}),f(s,a,{recursive:!0,force:!0}),n.push(o(t,a).split(c).join(`/`))};for(let n of Co(t)){let t=i(e,n.from);if(!m(t))throw Error(`发布包内容缺失(${t})——当前运行的可能是源码形态而非发布包。\n 请用发布形态运行:npx ezllm install。`);r(n.from,n.to)}for(let n of wo){if(!m(i(e,n.from))){J(`未找到 ${n.from}(跳过,不影响运行)`,q.warn);continue}r(n.from,i(t,n.to))}return n}function jo(e){for(let t of ye){let n=i(e,t);if(m(n))try{b(n,{recursive:!0,force:!0}),J(`已移除旧版产物目录(${t}/)`,q.skip)}catch(e){J(`旧版产物目录暂时无法删除(${n}):${e instanceof Error?e.message:String(e)};不影响运行,下次安装会再试。`,q.warn)}}}function Mo(e,t){if(po(t))return!0;let n=[`cli.js`,`daemon.js`,`server.js`,`plugin-host.js`,`package.json`];return ye.some(t=>{try{return v(i(e,t)).some(e=>n.includes(e))}catch{return!1}})}function No(e){if(!m(e)||W(e))return;if(s(e)===s(Ce))throw Error(`拒绝安装:应用目录与当前运行的程序包目录相同(${e})。\n 请指定一个专用目录:npx ezllm install --app-dir=<目录>`);let t=v(e);if(t.length!==0){if(t.includes(`package.json`)){let t;try{let n=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);t=JSON.parse(n)?.name}catch{t=void 0}if(t===`ezllm`)return;throw Error(`拒绝安装:目标目录含 package.json(name=${typeof t==`string`?t:`未设置`}),不像 ezllm 的应用目录(${e})。\n 为避免覆盖你的文件,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}if(ye.some(e=>t.includes(e))){if(Mo(e,t))return;let n=ye.filter(e=>t.includes(e));throw Error(`拒绝安装:目标目录像是构建产物目录(含 ${n.join(`/、`)}/,${e})。\n 为避免删掉你的产物,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}if(!po(t))throw Error(`拒绝安装:目标目录已存在且非空,但不像 ezllm 的应用目录(${e})。\n 为避免覆盖你的文件,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}}function Po(e,t,n,r){let a={kind:Eo,version:t,installedAt:new Date(n).toISOString(),source:r};S(i(e,ne),`${JSON.stringify(a,null,2)}\n`,`utf-8`)}function Fo(e){let t=i(e,`.gitignore`);m(t)||S(t,To,`utf-8`)}async function Io(e={},t={}){let n=async(e,t,n)=>{let r=await e.exec([t,`--version`,`--app-dir=${n}`]),i=`${r.stdout??``}${r.stderr??``}`.trim();return{ok:r.status===0,out:i}},r=G(),a=(t.version??Te)(),o=(t.now??Date.now)(),s=process.env.ELLM_INSTALL_SOURCE===`local`?`local`:`npm`;J(`正在安装 ezllm ...`,q.rocket),e.force||No(r),h(r,{recursive:!0}),Fo(r),Po(r,a,o,s),J(`安装位置:${r}`,q.folder);let c=ua(),l=await(t.ensureNode??((e,t)=>ca.ensure(e,t,c)))(r,`24`);J(`运行环境已就绪(Node.js 24)`,q.success),U.nodeBin!==void 0&&!m(ge())&&J(`注意:已按 --node-bin 使用外部 Node,托管运行时未落位。`,q.warn);let u=!1,d=[],f=!1;if(!e.force&&Oo(a))J(`程序已安装(ezllm ${a})`,q.skip),jo(r);else{let e=await(t.stop??ma)();if(f=e.stopped,!e.stopped&&e.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(e.pid)} 可能仍存活),已中止安装。\n 进程仍存活时覆盖程序产物会失败(文件被占用),请手工结束该进程后重试。`);let n=(t.selfPkgRoot??ko)(a);if(J(`正在装配程序产物(版本 ${a})…`,q.pending),d=(t.copy??Ao)(n,r),!Oo(a))throw Error(`装配后未在应用目录读到 ${So}@${a}:${r}\n 请重跑 npx ezllm install --force 修复。`);jo(r),J(`程序已装配(ezllm ${a})`,q.success),u=!0}let p=i(ve(),`dist`,`cli.js`),g=await(t.probe??n)(l,p,r);if(!g.ok)throw Error(`安装校验失败:程序无法启动(${p})。\n 输出:${g.out||`(无输出)`}\n 可尝试:npx ezllm install --force 重新装配。`);return F(``),J(`安装完成!`,q.success),J(`安装位置:${r}(如需卸载,执行 npx ezllm uninstall)`),F(` 同时运行多个实例时,各实例用 --port=<端口> 区分(端口会写入各自的配置文件)。`),e.noStart&&(F(``),J(`接下来这样做:`),F(` 1. 输入 npx ezllm start 启动服务`),F(` 2. 打开命令行里提示的网址,按向导完成设置`)),{appDir:r,nodePath:l.path,packageVersion:a,packageInstalled:u,copied:d,stopped:f}}async function Lo(e){let{itemPath:t}=await en({entryJs:Oe(),args:[`--app-dir=${e}`],env:Pt(),appDir:e,nodePath:await da(e)});return t}async function Ro(e,t,n){let r=await(e.stop??ma)();if(!r.stopped&&r.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(r.pid)} 可能仍存活),已中止${t}。\n 进程仍存活时${n}会删一半(文件被占用),请手工结束该进程后重试。`);return r}function zo(e,t){if(e.failed.length!==0){J(`${String(e.failed.length)} 项未能删除(可能被占用):`,q.warn);for(let t of e.failed)F(` ${t.path}(${t.code})`);F(` ${t}`)}}async function Bo(e={}){let t=()=>({status:$t,disable:e=>tn({appDir:e}),enable:e=>Lo(e)}),n=G();await Ro(e,`重装`,`清理`);let r=e.autostart??t(),i=r.status(n).enabled;i&&(await r.disable(n),J(`已临时取消开机自启(装完恢复)`,q.skip));let a=async()=>{if(i)try{await r.enable(n),J(`已恢复开机自启`,q.success)}catch(e){J(`恢复开机自启失败(${e instanceof Error?e.message:String(e)}),可重跑 npx ezllm install 恢复。`,q.warn)}},o;try{o=(e.purge??_o)()}catch(e){throw await a(),e}o.removed.length===0&&o.kept.length===0?J(`应用目录无可清理内容(首次安装)`,q.skip):J(`已清理应用目录(保留 ${o.kept.join(`、`)})`,q.success),zo(o,`可重开终端后重跑 npx ezllm install 清理剩余项。`);let s;try{s=await(e.install??(e=>Io(e)))({force:!0})}catch(e){await a();let t=e instanceof Error?e.message:String(e);throw Error(`重装失败:${t}\n 应用目录已清理,但程序未装配完成,请重跑 npx ezllm install 修复。`)}return await a(),s}async function Vo(e={}){let t=G();if(await Ro(e,`卸载`,`删除`),!m(t))throw Error(`应用目录不存在(${t}):尚未安装,无需卸载。\n 如需安装:npx ezllm install`);ho(t,(e.listDir??(e=>v(e)))(t));let n=e.disableAutostart??(e=>tn({appDir:e})),r=(e.autostartStatus??(e=>$t(e)))(t).enabled;r&&(await n(t),J(`已注销开机自启`,q.skip)),J(`正在备份应用目录 ...`,q.rocket);let i=(e.backup??xo)();i.empty?J(`应用目录无内容可备份(继续卸载)`,q.warn):(J(`已备份 ${String(i.copied.length)} 项到:${i.backupDir}`,q.success),i.skipped.length>0&&J(`已跳过 ${i.skipped.join(`、`)}(托管运行时,可由 npx ezllm install 重新装配)`,q.skip));let a=(e.purge??(()=>_o({keepUserData:!1})))();return J(`已删除应用目录内容:${t}`,q.success),zo(a,`可重开终端后再删,或手工删除上述路径。`),F(``),J(`卸载完成!`,q.success),i.empty||(J(`备份保留在:${i.backupDir}`),J(` 如需恢复,把备份内容复制回原目录后重跑 npx ezllm install;确认无需保留时可手工删除该备份目录。`)),{appDir:t,backupDir:i.backupDir,backedUp:i.copied,backupSkipped:i.skipped,backupEmpty:i.empty,removed:a.removed.length,failed:a.failed,autostartRemoved:r}}var Ho={name:`install`,description:`安装/修复运行环境(托管 Node + 程序产物),装完注册开机自启并自动启动`,options:[{flag:`--force`,description:`重装:先清空应用目录(保留配置、用户数据与 hook),再重新装配`},{flag:`--no-autostart`,description:`不注册开机自启(缺省**注册**——装完即随登录自启;用到时见 install.ts)`}]};async function Uo(e){e.force?await Bo():await Io({});let t=eo();t!==null&&J(to(t),q.success),e.autostart!==!1&&J(`已注册开机自启:${await Lo(G())}`,q.success);let n=await ga(),r=n?.children.server??null;if(n!==null&&t===null&&r){J(`安装过程未重启它(如需重启:npx ${$} restart)`,q.skip),F(``),Oa({serverPid:r.pid,daemonPid:n.daemonPid});return}n!==null&&t!==null&&await ba(),ka(await pa())}var Wo=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;function Go(e){return Wo.test(e)}function Ko(e,t){let n=e=>String(e||``).split(`-`)[0].split(`.`).map(e=>Number(e)||0),r=n(e),i=n(t);for(let e=0;e<3;e++)if((r[e]??0)!==(i[e]??0))return(r[e]??0)>(i[e]??0);return!1}async function qo(e,t){let n=await e.npm([`view`,So,`version`,`--registry`,t]);if(n.status!==0)throw Error(`查询最新版本失败(npm view 退出码 ${String(n.status)},源 ${t})。请检查网络与 registry 可达性。`);let r=`${n.stdout??``}`.split(`
33
- `).map(e=>e.trim()).filter(e=>e!==``),i=r[r.length-1]??``;if(!Go(i))throw Error(`查询到的最新版本串不合法(${i||`空`}),拒绝用它执行安装。`);return i}async function Jo(e){return Le(t=>qo(e,t))}function Yo(){let e=Do();return e?.name===`ezllm`&&typeof e.version==`string`&&e.version!==``?e.version:Te()}var Xo=6e5;function Zo(e,t,n=Fe){return[`install`,`-g`,`--prefix`,t,`${So}@${e}`,`--registry`,n,`--ignore-scripts`]}async function Qo(e={}){let t=async(e,t,n)=>(await e.npm(Zo(t,he(),n),{stdio:`inherit`})).status,n=()=>{let e=Do();return e?.name===`ezllm`&&typeof e.version==`string`?e.version:``},r=(e.version??Yo)(),i=je().pending??null;if(i!==null&&Date.now()-i.startedAt<Xo)return J(`已有更新在进行(目标 ${i.toVersion}),本次跳过。`,q.warn),{currentVersion:r,latestVersion:i.toVersion,updated:!1};J(`正在检查更新 ...`,q.rocket);let a=await(e.ensureNode??((e,t)=>ca.ensure(e,t,ua())))(G(),`24`),o=e.fetchLatest?{value:await e.fetchLatest(a),registry:Fe}:await Jo(a),s=o.value;if(Y(q.status,`当前版本`,r),Y(q.status,`最新版本`,s),!Ko(s,r))return J(`已是最新版本,无需更新。`,q.success),{currentVersion:r,latestVersion:s,updated:!1};Me({pending:{toVersion:s,startedAt:Date.now()}});try{J(`正在安装 ${So}@${s} ...`,q.rocket);let i=await(e.installVersion??t)(a,s,o.registry);if(i!==0)throw Error(`安装 ${So}@${s} 失败(npm 退出码 ${String(i)})。\n 本次失败可能已停掉服务;用 npx ezllm start 重新启动。`);let c=n();if(c!==s)throw Error(`安装命令已执行,但应用目录的实际版本(${c||`读取失败`})与目标 ${s} 不一致。\n 服务未在新版本上重启(装配失败时可能已停止,用 npx ezllm start 启动);
30
+ `)}async function ea(e,t,n){let r=`node-${e}-${n.platform.dir}.${n.platform.ext}`,a=i(t,`node.download.tmp`),o=i(t,`node.extract.tmp`),s=()=>{b(a,{force:!0}),b(o,{recursive:!0,force:!0})},c=[];n.mirror&&c.push(n.mirror.replace(/\/+$/,``)),c.push(`https://registry.npmmirror.com/-/binary/node`,`https://nodejs.org/dist`),b(a,{force:!0}),b(o,{recursive:!0,force:!0}),h(o,{recursive:!0});let l=[];for(let t=0;t<c.length;t++){let u=c[t],d=`${u}/${e}/${r}`;console.error(`[ezn] (${t+1}/${c.length}) 正在下载 ${r}\n[ezn] 来源:${u}`);try{let e=Date.now(),t=0,r=xi.default.stream(d,{decompress:!1,timeout:{connect:3e4,response:6e4,socket:6e4}});r.on(`downloadProgress`,e=>{t=e.transferred});let c=Yi(Ki,()=>`[ezn] 已下载 ${Math.round(t/1048576)} MB(已用 ${Xi(e)} 秒) ...`);try{await P(r,p(a))}finally{c()}console.error(`[ezn] 下载完成(${Math.round(x(a).size/1048576)} MB,耗时 ${Xi(e)} 秒),正在解压 ...`);let l=Date.now(),u={entries:0,bytes:null,current:null},f=Yi(qi,()=>Ji(u,Xi(l)));try{n.platform.ext===`zip`?await Ui(a,o,e=>{u=e}):await Si.x({file:a,cwd:o,onentry:e=>{u={entries:u.entries+1,bytes:null,current:e.path}}})}finally{f()}console.error(`[ezn] 解压完成(${u.entries} 项,耗时 ${Xi(l)} 秒)`);let m=v(o),h=m.length===1&&m[0]!==void 0&&x(i(o,m[0])).isDirectory()?i(o,m[0]):o;return b(a,{force:!0}),{src:h,cleanup:s}}catch(e){l.push({error:e,kind:Qi(e)}),console.error(`[ezn] 该源失败(${Qi(e)}):${e instanceof Error?e.message:String(e)}`),b(a,{force:!0}),b(o,{recursive:!0,force:!0}),h(o,{recursive:!0})}}throw s(),Error($i({mirrors:c,failures:l,filename:r,nodeVersion:e,target:n.target,nodePath:n.nodePath,extractDir:o}))}function ta(e,t,n,r,a){if(r.some(e=>n.length<=e.length&&n.every((t,n)=>e[n]===t))&&m(t)&&x(e).isDirectory()&&x(t).isDirectory()){for(let o of v(e))ta(i(e,o),i(t,o),[...n,o],r,a);b(e,{recursive:!0,force:!0});return}if(m(t)){let e=`${t}.old-${a}`;y(t,e),console.error(`[ezn] 同名项已备份:${e}`)}y(e,t)}function na(e,t){let n=`.old-${String(t)}`,r=e=>/\.old-\d+$/.test(e)&&!e.endsWith(n),a=e=>{let t;try{t=v(e)}catch{return}for(let n of t){let t=i(e,n),o=!1;try{o=x(t).isDirectory()}catch{continue}if(o){n!==`node_modules`&&a(t);continue}if(r(n))try{b(t,{force:!0})}catch{console.error(`[ezn] 旧备份清理失败(可能仍被占用,下次再试):${t}`)}}};a(e)}async function ra(e,t,n={}){let a=0,o=(e,t)=>{a=Date.now();for(let n of v(e))ta(i(e,n),i(t,n),[n],Gi,a)},c=s(e),l=Ti(t),u=Ei(c),d=Di(),f=Wi[d];if(!f)throw Error(`暂不支持的平台:${d}。请手动放置 Node ${l} 到 ${c},确保可执行文件位于 ${u}(Windows 为 node.exe,Unix 为 bin/node)。`);h(c,{recursive:!0});let{src:p,cleanup:m}=await ea(l,r(c),{target:c,nodePath:u,platform:f,mirror:n.mirror??null});try{console.error(`[ezn] 正在落位运行时文件 ...`),o(p,c)}finally{m()}a!==0&&na(c,a),console.error(`[ezn] Node ${l} 已就绪:${c}`)}function ia(e){return e!==``&&!/[\s"^&|<>()%!]/.test(e)?e:`"${e.replace(/"/g,`\\"`)}"`}function aa(e,t,n){return n?[[e,...t].map(ia).join(` `),[]]:[e,[...t]]}function oa(e,t,n={}){return new Promise((r,i)=>{let a=A(e,t,{windowsHide:!0,...n}),o=null,s=null;a.stdout&&(o=``,a.stdout.on(`data`,e=>o=(o??``)+e)),a.stderr&&(s=``,a.stderr.on(`data`,e=>s=(s??``)+e)),a.on(`error`,i),a.on(`close`,(e,t)=>r({status:e,signal:t,stdout:o,stderr:s}))})}var sa=process.platform===`win32`,ca=15e3;function la(e){return typeof e==`string`?e.trim().split(/\s+/).filter(e=>e.length>0):[...e]}var ua=class e{constructor(e,t){this.path=e,this.rt=t}get npmCliPath(){return Ai(this.rt,`npm`)}get npxCliPath(){return Ai(this.rt,`npx`)}get major(){return e.probeMajor(this.path)}resolveArgs(e,t){let n=la(e);if(n.length===0)throw Error(`命令为空`);let r=n[0],i=n.slice(1);return r===`node`?i:r===`npm`?[this.npmCliPath,...i]:r===`npx`?[this.npxCliPath,...i]:t===null?n:[t,...n]}resolveExec(e,t){let n=la(e);if(n.length===0)throw Error(`命令为空`);let r=n[0],i=n.slice(1),a=this.childEnv(t.env);if(r===`node`)return{file:this.path,argv:i,shell:!1,env:a};if(r===`npm`)return{file:this.path,argv:[this.npmCliPath,...i],shell:!1,env:a};if(r===`npx`)return{file:this.path,argv:[this.npxCliPath,...i],shell:!1,env:a};let o=Ni(this.rt,r);if(o!==null){let e=sa&&/\.(cmd|bat)$/i.test(o),[t,n]=aa(o,i,e);return{file:t,argv:n,shell:e,env:a}}return{file:this.path,argv:n,shell:!1,env:a}}childEnv(e){let t=e??process.env;return{...t,PATH:Pi(this.rt)+(t.PATH??t.Path??``)}}execSync(e,t){let{file:n,argv:r,shell:i,env:a}=this.resolveExec(e,t??{});return j(n,r,{windowsHide:!0,encoding:`utf8`,...t,shell:i,env:a})}exec(e,t){let{file:n,argv:r,shell:i,env:a}=this.resolveExec(e,t??{});return oa(n,r,{...t,shell:i,env:a})}npmSync(e,t){return j(this.path,this.resolveArgs(e,this.npmCliPath),{windowsHide:!0,encoding:`utf8`,...t})}npm(e,t){return oa(this.path,this.resolveArgs(e,this.npmCliPath),t)}npxSync(e,t){return j(this.path,this.resolveArgs(e,this.npxCliPath),{windowsHide:!0,encoding:`utf8`,...t})}npx(e,t){return oa(this.path,this.resolveArgs(e,this.npxCliPath),t)}static probeMajor(t){return e.probe(t).major}static probe(e){try{let t=k(e,[`-v`],{encoding:`utf8`,timeout:ca,windowsHide:!0}),n=String(t).trim().match(/^v(\d+)\./);return{major:n?Number(n[1]):null,reason:n?`ok`:`unexecutable`}}catch(e){let t=e;return{major:null,reason:t.code===`ETIMEDOUT`||t.signal===`SIGTERM`?`timeout`:`unexecutable`}}}static async ensure(t,n,r={}){let a=s(t),o=Ti(n),c=Number(o.replace(/^v/,``).split(`.`)[0]),l=i(a,`node`),u=Ei(l),d=r.probe??(t=>e.probe(t)),f=r.nodeBin??null;if(f){if(!m(f))throw Error(`ezn.nodeBin 指定的 Node 不存在:${f}`);let t=e.probeMajor(f);if(t===null)throw Error(`ezn.nodeBin 指定的 Node 无法执行:${f}`);return t<c&&console.error(`[ezn] 警告:ezn.nodeBin 的 Node 主版本为 ${t},低于建议值 ${c},按用户指定继续。`),console.error(`[ezn] Node 运行时(ezn.nodeBin):${f}`),new e(f,l)}if(m(u)){let{major:t,reason:n}=d(u);if(t!==null&&t>=c&&ji(l))return console.error(`[ezn] Node 运行时就绪:${u}`),new e(u,l);if(n===`timeout`)throw Error([`已有 Node 运行时探测超时(${ca/1e3} 秒内未返回),已中止——不重装。`,` 探测对象:${u}`,` 常见原因:安全软件(360 / 电脑管家 / Windows Defender 实时防护)拦下了它的执行,`,` 或正在扫描这个刚下载的可执行文件;重新下载通常同样会被拦,故这里不重试。`,` 可尝试的恢复方式:`,` 1. 把应用目录(托管运行时所在目录)加入安全软件信任区后重试;`,` 2. 临时关闭安全软件的主动防御/实时防护后重试;`," 3. 手工确认该文件可执行:在该目录执行 `node -v`,若同样超时则确认为拦截。"].join(`
31
+ `));console.error(t===null?`[ezn] 已有 Node 运行时无法执行(疑似损坏),准备重新安装 ...`:t<c?`[ezn] 已有 Node 运行时主版本为 ${t},低于要求 ${c},准备重装 ...`:`[ezn] 已有 Node 运行时缺少自带 npm(上次落位可能中断),准备补齐 ...`)}return await ra(l,n,{mirror:r.mirror??null}),new e(u,l)}},da=`24`;function fa(e=U){let t={};return e.nodeMirror&&(t.mirror=e.nodeMirror),e.nodeBin&&(t.nodeBin=e.nodeBin),t}async function pa(e){return(await ua.ensure(e,da,fa())).path}function ma(e=G()){return new Sn(e).configure({daemonJs:ke(),env:{ELLM_APP_DIR:e},logPrefix:pt,interpreter:e=>pa(e)})}async function ha(){J(`正在启动 ezllm(常驻主进程 + 服务)...`,q.rocket),Ae();let e=await ma().startChild(ft);return J(e.alreadyRunning?`服务进程已在运行(pid ${String(e.pid)})`:`服务进程已启动(pid ${String(e.pid)})`,e.alreadyRunning?q.running:q.success),{pid:e.pid,appDir:G()}}async function ga(){let e=await ma().isRunning();e&&ct(`正在停止 ezllm(服务 + 常驻主进程)`);let t=await ma().shutdown();return e&&(t.stopped?lt():ut()),t}async function _a(){J(`正在重启服务(常驻主进程保留)...`,q.rocket);let e=await ma().restartChild(ft);return J(`服务进程已重新创建(pid ${String(e.pid)})`,q.success),{pid:e.pid,appDir:G()}}async function va(){return await ma().status()}var $=`ezllm`;function ya(){U.port!==void 0&&J(`注意:--port 只对 start / install 生效(会写入配置文件);本命令不使用它。`,q.warn)}function ba(){let e=G();if(!xa())throw Error(`尚未安装 ezllm(应用目录:${e})。\n 先执行:npx ezllm install\n 若已装在别处:用 --app-dir=<安装目录> 指定(或设置环境变量 ELLM_APP_DIR)。`);m(_e())||J(`注意:托管运行时(node/)未落位,本次命令由当前 CLI 执行;如需修复请重跑 npx ezllm install。`,q.warn)}function xa(){return W(G())&&m(i(ye(),`dist`,`cli.js`))}async function Sa(){J(`端口已变更,需完整重启主进程才能生效:先停掉当前实例`,q.warn);let e=await ga();if(!e.stopped&&e.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(e.pid)} 可能仍存活),已中止。\n 旧实例仍在运行时端口变更不会生效,请手工结束该进程后重试。`)}var Ca=29770,wa=1,Ta=65535,Ea=`127.0.0.1`;function Da(){try{let e=JSON.parse(_(se(),`utf-8`))?.port;return typeof e!=`number`||!Number.isInteger(e)||e<wa||e>Ta?void 0:e}catch{return}}function Oa(){let e=(U.port!==void 0&&U.port>=wa&&U.port<=Ta?U.port:void 0)??Da()??Ca,t=`http://${Ea}:${String(e)}`;return{port:e,gateway:`${t}/v1/*`,webUi:`${t}/`}}function ka(){let e=Oa();Y(q.gateway,`网关端点`,e.gateway),Y(q.webui,`管理界面`,e.webUi)}function Aa(e){Y(q.folder,`应用目录`,G()),Y(q.status,`运行状态`,`服务进程已创建并纳管(pid ${String(e.serverPid)}${e.daemonPid?` · 主进程 pid ${String(e.daemonPid)}`:``})· 日志 ${G()}/logs`),ka()}function ja(e){F(``),Y(q.folder,`应用目录`,e.appDir),Y(q.status,`运行状态`,`服务进程 pid ${String(e.pid)}(由常驻主进程纳管)`),ka()}function Ma(e){if(!xa()){J(`${$} 尚未安装`,q.warn),F(``),Y(q.folder,`将安装到`,G()),F(``),F(`执行 npx ${$} install 开始安装。`);return}if(e===null)J(`${$} 未在运行(执行 ezllm start 启动)`,q.idle);else{let t=e.children.server??null;t?J(`${$} 正在运行(服务 pid ${String(t.pid)} · 主进程 pid ${String(e.daemonPid)})`,q.running):J(`${$} 的服务未在运行(主进程 pid ${String(e.daemonPid)} 在;执行 ezllm start 拉起)`,q.warn)}F(``),Y(q.folder,`应用目录`,G()),ka()}function Na(e){if(!e.stopped){if(e.reason===`kill-failed`){J(`${$} 停止失败:进程可能仍存活(pid ${String(e.pid)}),请检查后重试或手工结束。`,q.warn);return}J(`${$} 未在运行(可能已停止)。`,q.idle)}}var Pa={name:``,description:`显示当前运行状态(含服务端地址;只读,不启动服务)`};async function Fa(){ya(),Ma(await va()),F(``),F(`运行 ${$} --help 查看全部命令。`)}var Ia=`EZLLM_HOSTED`,La=`EZLLM_CALLER_VERSION`,Ra=`EZLLM_CALLER_NODE`,za=`EZLLM_CALLER_NODE_VERSION`,Ba=`EZLLM_CALLER_JS`,Va=[`install`,`uninstall`,`update`],Ha=new Set([`--app-dir`,`--port`,`--node-mirror`,`--node-bin`]);function Ua(e){for(let t=0;t<e.length;t+=1){let n=e[t]??``;if(Ha.has(n)){t+=1;continue}if(!n.startsWith(`-`))return n}return``}function Wa(e=process.argv.slice(2),t=process.env){if(t.EZLLM_HOSTED===`1`)return!1;let n=G();if(Va.includes(Ua(e)))return!1;let r=i(ye(),`dist`,`cli.js`),a=_e();if(!W(n)||!m(r)||!m(a))return!1;let o=A(a,[r,...e],{stdio:`inherit`,env:{...t,[Ia]:`1`,[La]:Ee(),[Ra]:process.execPath,[za]:process.version,[Ba]:process.argv[1]??``,ELLM_APP_DIR:n},windowsHide:!1});return o.on(`error`,e=>{L(`[ezllm] 转发给已安装的 CLI 失败(${a} ${r}):${e.message}`),process.exit(1)}),o.on(`exit`,(e,t)=>{process.exit(e??+!!t)}),!0}function Ga(e){return process.env[e]||null}function Ka(){return{execPath:process.execPath,nodeVersion:process.version,scriptPath:process.argv[1]??``,argv:[...process.argv],version:Ee(),hosted:process.env.EZLLM_HOSTED===`1`,launchedByNpm:process.env.npm_node_execpath!==void 0,callerVersion:Ga(La),callerNodeExe:Ga(Ra),callerNodeVersion:Ga(za),callerJs:Ga(Ba)}}function qa(){let e=G(),t=_e();return{appDir:e,installed:W(e),source:ae()??null,packageDir:ye(e),nodeDir:ge(),nodeExe:t,nodeExeExists:m(t),configPath:se(),configExists:m(se()),dataDir:K(),logsDir:ce(),pluginsDir:de()}}function Ja(e,t=Date.now()){if(e===null)return{daemonRunning:!1,daemonVersion:null,endpoint:null,entries:[]};let n=e=>e===null?null:Math.max(0,Math.round((t-e)/1e3)),r=[{name:`daemon`,pid:e.daemonPid,startedAt:e.startedAt,uptimeSec:n(e.startedAt)}];for(let t of Object.keys(e.children).sort()){let i=e.children[t];i&&r.push({name:t,pid:i.pid,startedAt:i.startedAt,uptimeSec:n(i.startedAt)})}return{daemonRunning:!0,daemonVersion:e.version,endpoint:e.endpoint,entries:r}}function Ya(e){try{let t=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(t)}catch{return null}}function Xa(){let e=Ya(ye());return{name:e?.name??null,version:e?.version??null,hasBin:e?.bin!==void 0}}function Za(){let e=ce();return[`ezllm.out.log`,`ezllm.err.log`].map(t=>i(e,t)).filter(e=>m(e))}function Qa(e,t=Date.now()){return{cli:Ka(),app:qa(),process:Ja(e,t),address:Oa(),hostedPackage:Xa(),logFiles:Za()}}function $a(e){let{cli:t,app:n,process:r,address:i}=e;J(`ezllm 诊断信息`,q.status),F(``),F(`—— CLI 层 ——`),(t.callerJs!==null||t.callerNodeExe!==null)&&(Y(q.status,`调用侧版本`,t.callerVersion??`未知`),Y(q.status,`调用侧 node`,`${t.callerNodeVersion??`版本未知`} · ${t.callerNodeExe??`未知`}`),Y(q.folder,`调用侧 js`,t.callerJs??`未知`));let a=t.hosted?`托管侧`:`本进程`;if(Y(q.status,`${a}版本`,t.version),Y(q.status,`${a} node`,`${t.nodeVersion} · ${t.execPath}`),t.scriptPath!==``&&Y(q.folder,`${a} js`,t.scriptPath),Y(q.status,`转发状态`,t.hosted?`已转发到托管 CLI(EZLLM_HOSTED=1)`:`未转发(就地执行)`),Y(q.status,`拉起方式`,t.launchedByNpm?`经 npm/npx 拉起`:`直接执行(非 npm 父进程)`),Y(q.status,`argv`,t.argv.join(` `)),F(``),F(`—— 应用目录 ——`),Y(q.folder,`appDir`,n.appDir),Y(q.status,`装配状态`,n.installed?`已装配(来源 ${n.source??`未知`})`:`未装配(找不到 runtime.json 标记)`),Y(q.folder,`程序包`,e.hostedPackage.version===null?`${n.packageDir}(未读到 package.json)`:`${n.packageDir}(${e.hostedPackage.name??`?`}@${e.hostedPackage.version})`),Y(q.status,`托管运行时`,`${n.nodeDir}(${n.nodeExeExists?`node 可执行在位`:`缺 node 可执行`})`),Y(q.status,`配置文件`,n.configExists?n.configPath:`${n.configPath}(尚未创建)`),Y(q.folder,`数据目录`,n.dataDir),Y(q.folder,`日志目录`,n.logsDir),Y(q.folder,`插件目录`,n.pluginsDir),F(``),F(`—— 进程 ——`),!r.daemonRunning)Y(q.idle,`主进程`,`未在运行(执行 ezllm start 启动)`);else{Y(q.running,`主进程版本`,r.daemonVersion??`未知`),r.endpoint!==null&&Y(q.status,`控制端点`,r.endpoint);for(let e of r.entries){let t=e.uptimeSec===null?``:` · 已运行 ${String(e.uptimeSec)} 秒`;Y(q.status,e.name,`pid ${String(e.pid)}${t}`)}r.entries.length===1&&Y(q.warn,`子进程`,`无(服务未在运行或未注册)`)}e.logFiles.length>0&&Y(q.folder,`主进程日志`,e.logFiles.join(` · `)),F(``),F(`—— 访问地址 ——`),Y(q.gateway,`网关端点`,i.gateway),Y(q.webui,`管理界面`,i.webUi)}var eo={name:`info`,description:`输出诊断信息(调用侧与托管侧各自的 node / js 版本与路径、应用目录、进程与子进程、访问地址)`};async function to(){ya(),$a(Qa(await va()))}function no(){let e=U.port;if(e===void 0)return null;let t=Ae(),n;try{n=JSON.parse(_(t,`utf-8`).replace(/^\uFEFF/,``))}catch{return null}if(typeof n!=`object`||!n||Array.isArray(n))return null;let r=n,i=typeof r.port==`number`?r.port:void 0;return i===e?null:(r.port=e,je(t,r),{from:i,to:e})}function ro(e){let t=e.from===void 0?`未设置`:String(e.from);return`已把端口写入配置文件:${String(e.to)}(原 ${t})→ ${se()}`}var io={name:`start`,description:`启动 ezllm(首次会拉起常驻主进程;已在运行则显示状态)`};async function ao(){ya(),ba();let e=no();e!==null&&(J(ro(e),q.success),await va()!==null&&await Sa()),ja(await ha())}var oo={name:`stop`,description:`停止 ezllm(服务与常驻主进程一起停)`};async function so(){ya(),ba();let e=await ga();if(!e.stopped){Na(e),e.reason===`kill-failed`&&process.exit(1);return}J(`${$} 已停止。`,q.stopped)}var co={name:`restart`,description:`重启服务(常驻主进程不动)`};async function lo(){ya(),ba(),ja(await _a())}var uo=[a(se()).base,a(me()).base,...he,a(ge()).base,a(ue()).base],fo=[a(K()).base,a(ce()).base,a(fe()).base,a(pe()).base,a(de()).base],po=[a(se()).base,a(me()).base,...he,a(ge()).base,`data`,`logs`,`bin`,`daemon.json`,`provider-auth.json`,`plugin-auth.json`],mo=[`.git`,`pnpm-workspace.yaml`,`src`,`package.json`];function ho(e){return e.some(e=>po.includes(e))}function go(e,t=!0){return uo.includes(e)?!0:t&&fo.includes(e)}function _o(e,t){let n=s(e);if(n===a(n).root)throw Error(`拒绝清理:应用目录解析为文件系统根(${n})。这几乎肯定是 --app-dir / ELLM_APP_DIR 配置错误。`);if(n===s(C()))throw Error(`拒绝清理:应用目录是用户主目录本身(${n}),清理会删掉整个家目录。\n 请把 --app-dir 指向一个专用子目录(如 <工程>/ezllm)。`);let r=W(n),i=r?mo.filter(e=>e!==`package.json`):mo,o=t.filter(e=>i.includes(e));if(o.length>0)throw Error(`拒绝清理:应用目录含源码/仓库特征(${o.join(`、`)}),疑似指向代码目录而非运行时目录。\n 当前值:${n}\n 如确要重装,请把 --app-dir 指向专用目录(如 <工程>/ezllm)后重试。`);if(!r&&t.filter(e=>po.includes(e)).length===0)throw Error(`拒绝清理:应用目录不含任何 ezllm 产物(${n}),不像被 install 装配过的目录。\n 为避免误删用户数据,已中止。`)}function vo(e,t,n=!0){let r=[],a=[];for(let o of e)go(o,n)?a.push(o):r.push(i(t,o));return{remove:r,keep:a}}function yo(e={}){let t=e.appDir??G(),n=e.listDir??(e=>v(e)),r=e.remove??(e=>b(e,{recursive:!0,force:!0})),i;try{i=n(t)}catch(e){if(e.code===`ENOENT`)return{removed:[],kept:[],failed:[]};throw e}_o(t,i);let{remove:a,keep:o}=vo(i,t,e.keepUserData??!0),s=[],c=[];for(let e of a)try{r(e),s.push(e)}catch(t){let n=t.code??`UNKNOWN`;c.push({path:e,code:n})}return{removed:s,kept:o,failed:c}}var bo=`.backup-`;function xo(e,n=new Date,a=m){let o=`${t(s(e))}${bo}${(e=>{let t=e=>String(e).padStart(2,`0`);return`${String(e.getFullYear())}${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`})(n)}`,c=r(s(e)),l=i(c,o);for(let e=2;a(l);e++)l=i(c,`${o}-${String(e)}`);return l}function So(e,t){let n=a(ge()).base,r=[],o=[];for(let a of e)a===n?o.push(a):r.push(i(t,a));return{copy:r,skipped:o}}function Co(e={}){let n=e.appDir??G(),r=e.listDir??(e=>v(e)),a=e.exists??m,o=e.copy??((e,t)=>f(e,t,{recursive:!0,force:!0})),{copy:s,skipped:c}=So(r(n),n),l=xo(n,(e.now??(()=>new Date))(),a);if(s.length===0)return{backupDir:l,copied:[],skipped:c,empty:!0};h(l,{recursive:!0});let u=[],d=[];for(let e of s){let n=t(e);try{o(e,i(l,n)),d.push(n)}catch(t){u.push({path:e,code:t.code??`UNKNOWN`})}}if(u.length>0){let e=u.map(e=>` ${e.path}(${e.code})`).join(`
32
+ `);throw Error(`${String(u.length)} 项备份失败,已中止卸载(未删除任何文件):\n${e}\n 备份目录:${l}\n 文件可能被占用(先停止 ezllm 并关闭相关程序),或改为手工复制该目录后重试。`)}return{backupDir:l,copied:d,skipped:c,empty:!1}}var wo=`ezllm`;function To(e){let t=i(e,`node`,`node_modules`,wo);return[{from:`dist`,to:i(t,`dist`)},{from:`package.json`,to:i(t,`package.json`)}]}var Eo=[{from:`ezllm.config.example.json`,to:`ezllm.config.example.json`},{from:`hook.example.cjs`,to:`hook.example.cjs`}],Do=`*
33
+ `,Oo=`ezllm-runtime`;function ko(){try{let e=_(i(ye(),`package.json`),`utf-8`).replace(/^\uFEFF/,``);return JSON.parse(e)}catch{return null}}function Ao(e){let t=ko();return t?.name!==`ezllm`||t.version!==e?!1:m(i(ye(),`dist`,`cli.js`))}function jo(e){let t=null;try{t=JSON.parse(_(i(we,`package.json`),`utf-8`))}catch{t=null}if(t?.name!==`ezllm`||t.version!==e)throw Error(`无法定位当前版本的程序包(${we},期望 ${wo}@${e})。\n 请用发布形态运行:npx ezllm install,或 npx <解压目录>/app/cli install。`);return we}function Mo(e,t){let n=[],r=(r,a)=>{let s=i(e,r);x(s).isDirectory()&&b(a,{recursive:!0,force:!0}),f(s,a,{recursive:!0,force:!0}),n.push(o(t,a).split(c).join(`/`))};for(let n of To(t)){let t=i(e,n.from);if(!m(t))throw Error(`发布包内容缺失(${t})——当前运行的可能是源码形态而非发布包。\n 请用发布形态运行:npx ezllm install。`);r(n.from,n.to)}for(let n of Eo){if(!m(i(e,n.from))){J(`未找到 ${n.from}(跳过,不影响运行)`,q.warn);continue}r(n.from,i(t,n.to))}return n}function No(e){for(let t of be){let n=i(e,t);if(m(n))try{b(n,{recursive:!0,force:!0}),J(`已移除旧版产物目录(${t}/)`,q.skip)}catch(e){J(`旧版产物目录暂时无法删除(${n}):${e instanceof Error?e.message:String(e)};不影响运行,下次安装会再试。`,q.warn)}}}function Po(e,t){if(ho(t))return!0;let n=[`cli.js`,`daemon.js`,`server.js`,`plugin-host.js`,`package.json`];return be.some(t=>{try{return v(i(e,t)).some(e=>n.includes(e))}catch{return!1}})}function Fo(e){if(!m(e)||W(e))return;if(s(e)===s(we))throw Error(`拒绝安装:应用目录与当前运行的程序包目录相同(${e})。\n 请指定一个专用目录:npx ezllm install --app-dir=<目录>`);let t=v(e);if(t.length!==0){if(t.includes(`package.json`)){let t;try{let n=_(i(e,`package.json`),`utf-8`).replace(/^\uFEFF/,``);t=JSON.parse(n)?.name}catch{t=void 0}if(t===`ezllm`)return;throw Error(`拒绝安装:目标目录含 package.json(name=${typeof t==`string`?t:`未设置`}),不像 ezllm 的应用目录(${e})。\n 为避免覆盖你的文件,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}if(be.some(e=>t.includes(e))){if(Po(e,t))return;let n=be.filter(e=>t.includes(e));throw Error(`拒绝安装:目标目录像是构建产物目录(含 ${n.join(`/、`)}/,${e})。\n 为避免删掉你的产物,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}if(!ho(t))throw Error(`拒绝安装:目标目录已存在且非空,但不像 ezllm 的应用目录(${e})。\n 为避免覆盖你的文件,已中止。可指定其它目录:npx ezllm install --app-dir=<空目录>`)}}function Io(e,t,n,r){let a={kind:Oo,version:t,installedAt:new Date(n).toISOString(),source:r};S(i(e,ne),`${JSON.stringify(a,null,2)}\n`,`utf-8`)}function Lo(e){let t=i(e,`.gitignore`);m(t)||S(t,Do,`utf-8`)}async function Ro(e={},t={}){let n=async(e,t,n)=>{let r=await e.exec([t,`--version`,`--app-dir=${n}`]),i=`${r.stdout??``}${r.stderr??``}`.trim();return{ok:r.status===0,out:i}},r=G(),a=(t.version??Ee)(),o=(t.now??Date.now)(),s=process.env.ELLM_INSTALL_SOURCE===`local`?`local`:`npm`;J(`正在安装 ezllm ...`,q.rocket),e.force||Fo(r),h(r,{recursive:!0}),Lo(r),Io(r,a,o,s),J(`安装位置:${r}`,q.folder);let c=fa(),l=await(t.ensureNode??((e,t)=>ua.ensure(e,t,c)))(r,`24`);J(`运行环境已就绪(Node.js 24)`,q.success),U.nodeBin!==void 0&&!m(_e())&&J(`注意:已按 --node-bin 使用外部 Node,托管运行时未落位。`,q.warn);let u=!1,d=[],f=!1;if(!e.force&&Ao(a))J(`程序已安装(ezllm ${a})`,q.skip),No(r);else{let e=await(t.stop??ga)();if(f=e.stopped,!e.stopped&&e.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(e.pid)} 可能仍存活),已中止安装。\n 进程仍存活时覆盖程序产物会失败(文件被占用),请手工结束该进程后重试。`);let n=(t.selfPkgRoot??jo)(a);if(J(`正在装配程序产物(版本 ${a})…`,q.pending),d=(t.copy??Mo)(n,r),!Ao(a))throw Error(`装配后未在应用目录读到 ${wo}@${a}:${r}\n 请重跑 npx ezllm install --force 修复。`);No(r),J(`程序已装配(ezllm ${a})`,q.success),u=!0}let p=i(ye(),`dist`,`cli.js`),g=await(t.probe??n)(l,p,r);if(!g.ok)throw Error(`安装校验失败:程序无法启动(${p})。\n 输出:${g.out||`(无输出)`}\n 可尝试:npx ezllm install --force 重新装配。`);return F(``),J(`安装完成!`,q.success),J(`安装位置:${r}(如需卸载,执行 npx ezllm uninstall)`),F(` 同时运行多个实例时,各实例用 --port=<端口> 区分(端口会写入各自的配置文件)。`),e.noStart&&(F(``),J(`接下来这样做:`),F(` 1. 输入 npx ezllm start 启动服务`),F(` 2. 打开命令行里提示的网址,按向导完成设置`)),{appDir:r,nodePath:l.path,packageVersion:a,packageInstalled:u,copied:d,stopped:f}}async function zo(e){let{itemPath:t}=await nn({entryJs:ke(),args:[`--app-dir=${e}`],env:Ft(),appDir:e,nodePath:await pa(e)});return t}async function Bo(e,t,n){let r=await(e.stop??ga)();if(!r.stopped&&r.reason===`kill-failed`)throw Error(`停止 ezllm 失败(进程 ${String(r.pid)} 可能仍存活),已中止${t}。\n 进程仍存活时${n}会删一半(文件被占用),请手工结束该进程后重试。`);return r}function Vo(e,t){if(e.failed.length!==0){J(`${String(e.failed.length)} 项未能删除(可能被占用):`,q.warn);for(let t of e.failed)F(` ${t.path}(${t.code})`);F(` ${t}`)}}async function Ho(e={}){let t=()=>({status:tn,disable:e=>rn({appDir:e}),enable:e=>zo(e)}),n=G();await Bo(e,`重装`,`清理`);let r=e.autostart??t(),i=r.status(n).enabled;i&&(await r.disable(n),J(`已临时取消开机自启(装完恢复)`,q.skip));let a=async()=>{if(i)try{await r.enable(n),J(`已恢复开机自启`,q.success)}catch(e){J(`恢复开机自启失败(${e instanceof Error?e.message:String(e)}),可重跑 npx ezllm install 恢复。`,q.warn)}},o;try{o=(e.purge??yo)()}catch(e){throw await a(),e}o.removed.length===0&&o.kept.length===0?J(`应用目录无可清理内容(首次安装)`,q.skip):J(`已清理应用目录(保留 ${o.kept.join(`、`)})`,q.success),Vo(o,`可重开终端后重跑 npx ezllm install 清理剩余项。`);let s;try{s=await(e.install??(e=>Ro(e)))({force:!0})}catch(e){await a();let t=e instanceof Error?e.message:String(e);throw Error(`重装失败:${t}\n 应用目录已清理,但程序未装配完成,请重跑 npx ezllm install 修复。`)}return await a(),s}async function Uo(e={}){let t=G();if(await Bo(e,`卸载`,`删除`),!m(t))throw Error(`应用目录不存在(${t}):尚未安装,无需卸载。\n 如需安装:npx ezllm install`);_o(t,(e.listDir??(e=>v(e)))(t));let n=e.disableAutostart??(e=>rn({appDir:e})),r=(e.autostartStatus??(e=>tn(e)))(t).enabled;r&&(await n(t),J(`已注销开机自启`,q.skip)),J(`正在备份应用目录 ...`,q.rocket);let i=(e.backup??Co)();i.empty?J(`应用目录无内容可备份(继续卸载)`,q.warn):(J(`已备份 ${String(i.copied.length)} 项到:${i.backupDir}`,q.success),i.skipped.length>0&&J(`已跳过 ${i.skipped.join(`、`)}(托管运行时,可由 npx ezllm install 重新装配)`,q.skip));let a=(e.purge??(()=>yo({keepUserData:!1})))();return J(`已删除应用目录内容:${t}`,q.success),Vo(a,`可重开终端后再删,或手工删除上述路径。`),F(``),J(`卸载完成!`,q.success),i.empty||(J(`备份保留在:${i.backupDir}`),J(` 如需恢复,把备份内容复制回原目录后重跑 npx ezllm install;确认无需保留时可手工删除该备份目录。`)),{appDir:t,backupDir:i.backupDir,backedUp:i.copied,backupSkipped:i.skipped,backupEmpty:i.empty,removed:a.removed.length,failed:a.failed,autostartRemoved:r}}var Wo={name:`install`,description:`安装/修复运行环境(托管 Node + 程序产物),装完注册开机自启并自动启动`,options:[{flag:`--force`,description:`重装:先清空应用目录(保留配置、用户数据与 hook),再重新装配`}]};async function Go(e){e.force?await Ho():await Ro({});let t=no();t!==null&&J(ro(t),q.success),J(`已注册开机自启:${await zo(G())}`,q.success);let n=await va(),r=n?.children.server??null;if(n!==null&&t===null&&r){J(`安装过程未重启它(如需重启:npx ${$} restart)`,q.skip),F(``),Aa({serverPid:r.pid,daemonPid:n.daemonPid});return}n!==null&&t!==null&&await Sa(),ja(await ha())}var Ko=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;function qo(e){return Ko.test(e)}function Jo(e,t){let n=e=>String(e||``).split(`-`)[0].split(`.`).map(e=>Number(e)||0),r=n(e),i=n(t);for(let e=0;e<3;e++)if((r[e]??0)!==(i[e]??0))return(r[e]??0)>(i[e]??0);return!1}async function Yo(e,t){let n=await e.npm([`view`,wo,`version`,`--registry`,t]);if(n.status!==0)throw Error(`查询最新版本失败(npm view 退出码 ${String(n.status)},源 ${t})。请检查网络与 registry 可达性。`);let r=`${n.stdout??``}`.split(`
34
+ `).map(e=>e.trim()).filter(e=>e!==``),i=r[r.length-1]??``;if(!qo(i))throw Error(`查询到的最新版本串不合法(${i||`空`}),拒绝用它执行安装。`);return i}async function Xo(e){return Re(t=>Yo(e,t))}function Zo(){let e=ko();return e?.name===`ezllm`&&typeof e.version==`string`&&e.version!==``?e.version:Ee()}var Qo=6e5;function $o(e,t,n=Ie){return[`install`,`-g`,`--prefix`,t,`${wo}@${e}`,`--registry`,n,`--ignore-scripts`]}async function es(e={}){let t=async(e,t,n)=>(await e.npm($o(t,ge(),n),{stdio:`inherit`})).status,n=()=>{let e=ko();return e?.name===`ezllm`&&typeof e.version==`string`?e.version:``},r=(e.version??Zo)(),i=Me().pending??null;if(i!==null&&Date.now()-i.startedAt<Qo)return J(`已有更新在进行(目标 ${i.toVersion}),本次跳过。`,q.warn),{currentVersion:r,latestVersion:i.toVersion,updated:!1};J(`正在检查更新 ...`,q.rocket);let a=await(e.ensureNode??((e,t)=>ua.ensure(e,t,fa())))(G(),`24`),o=e.fetchLatest?{value:await e.fetchLatest(a),registry:Ie}:await Xo(a),s=o.value;if(Y(q.status,`当前版本`,r),Y(q.status,`最新版本`,s),!Jo(s,r))return J(`已是最新版本,无需更新。`,q.success),{currentVersion:r,latestVersion:s,updated:!1};Ne({pending:{toVersion:s,startedAt:Date.now()}});try{J(`正在安装 ${wo}@${s} ...`,q.rocket);let i=await(e.installVersion??t)(a,s,o.registry);if(i!==0)throw Error(`安装 ${wo}@${s} 失败(npm 退出码 ${String(i)})。\n 本次失败可能已停掉服务;用 npx ezllm start 重新启动。`);let c=n();if(c!==s)throw Error(`安装命令已执行,但应用目录的实际版本(${c||`读取失败`})与目标 ${s} 不一致。\n 服务未在新版本上重启(装配失败时可能已停止,用 npx ezllm start 启动);
34
35
  修复:npx ezllm install --force
35
- 如需回退:npx ${So}@${r} install --force`);return J(`正在重启以应用新版本 ...`,q.rocket),await(e.restartDaemon??(e=>fa().restartDaemon(e)))({expectVersion:s}),Me({pending:null,lastApply:{fromVersion:r,toVersion:s,updated:!0,appliedAt:Date.now()}}),J(`更新完成:${r} → ${s}`,q.success),{currentVersion:r,latestVersion:s,updated:!0}}catch(e){let t=e instanceof Error?e.message:String(e);throw Me({pending:null,lastApply:{fromVersion:r,toVersion:s,updated:!1,appliedAt:Date.now(),error:t}}),e}}var $o={name:`update`,description:`检查并安装新版本(含常驻主进程与服务重启)`};async function es(){va(),await Qo()}var ts={name:`uninstall`,description:`卸载 ezllm(停服 → 注销自启 → 备份应用目录 → 删除它)`};async function ns(){await Vo()}function rs(){let e=at(`ezllm`);e.option(`--app-dir <path>`,`应用目录(默认:用户目录下的 ~/.ezllm)`),e.option(`--port <n>`,`监听端口(配合 start / install:给定时写入配置文件)`),e.option(`--node-mirror <url>`,`托管 Node 下载镜像(引导期逃生口)`),e.option(`--node-bin <path>`,`直接用这个 node 可执行文件,跳过下载(引导期逃生口)`),e.command(Ma.name,Ma.description).action(()=>ut(Na)),e.command(Qa.name,Qa.description).action(()=>ut($a)),e.command(no.name,no.description).action(()=>ut(ro)),e.command(io.name,io.description).action(()=>ut(ao)),e.command(oo.name,oo.description).action(()=>ut(so));let t=e.command(Ho.name,Ho.description);for(let e of Ho.options)t.option(e.flag,e.description);return t.action(e=>ut(()=>Uo(e))),e.command($o.name,$o.description).action(()=>ut(es)),e.command(ts.name,ts.description).action(()=>ut(ns)),e}Ha()||is();function is(){let e=rs();e.help(),e.version(Te());try{e.parse()}catch(e){ot(`错误:${e instanceof Error?e.message:String(e)}`),L("运行 `ezllm --help` 查看可用命令与选项。"),process.exit(1)}}export{};
36
+ 如需回退:npx ${wo}@${r} install --force`);return J(`正在重启以应用新版本 ...`,q.rocket),await(e.restartDaemon??(e=>ma().restartDaemon(e)))({expectVersion:s}),Ne({pending:null,lastApply:{fromVersion:r,toVersion:s,updated:!0,appliedAt:Date.now()}}),J(`更新完成:${r} → ${s}`,q.success),{currentVersion:r,latestVersion:s,updated:!0}}catch(e){let t=e instanceof Error?e.message:String(e);throw Ne({pending:null,lastApply:{fromVersion:r,toVersion:s,updated:!1,appliedAt:Date.now(),error:t}}),e}}var ts={name:`update`,description:`检查并安装新版本(含常驻主进程与服务重启)`};async function ns(){ba(),await es()}var rs={name:`uninstall`,description:`卸载 ezllm(停服 → 注销自启 → 备份应用目录 → 删除它)`};async function is(){await Uo()}function as(){let e=ot(`ezllm`);e.option(`--app-dir <path>`,`应用目录(默认:用户目录下的 ~/.ezllm)`),e.option(`--port <n>`,`监听端口(配合 start / install:给定时写入配置文件)`),e.option(`--node-mirror <url>`,`托管 Node 下载镜像(引导期逃生口)`),e.option(`--node-bin <path>`,`直接用这个 node 可执行文件,跳过下载(引导期逃生口)`),e.command(Pa.name,Pa.description).action(()=>dt(Fa)),e.command(eo.name,eo.description).action(()=>dt(to)),e.command(io.name,io.description).action(()=>dt(ao)),e.command(oo.name,oo.description).action(()=>dt(so)),e.command(co.name,co.description).action(()=>dt(lo));let t=e.command(Wo.name,Wo.description);for(let e of Wo.options)t.option(e.flag,e.description);return t.action(e=>dt(()=>Go(e))),e.command(ts.name,ts.description).action(()=>dt(ns)),e.command(rs.name,rs.description).action(()=>dt(is)),e}Wa()||os();function os(){let e=as();e.help(),e.version(Ee());try{e.parse()}catch(e){st(`错误:${e instanceof Error?e.message:String(e)}`),L("运行 `ezllm --help` 查看可用命令与选项。"),process.exit(1)}}export{};