@stacksjs/cli 0.75.541 → 0.75.543

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 (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +9 -9
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import De from"process";async function ze(e,t={silent:!0}){let r=t.packageManage
4
4
  `)}var Fr=vt(["The best way to get started is to quit talking and begin doing.","The pessimist sees difficulty in every opportunity. The optimist sees opportunity in every difficulty.","Don\u2019t let yesterday take up too much of today.","You learn more from failure than from success. Don\u2019t let it stop you. Failure builds character.","It\u2019s not whether you get knocked down, it\u2019s whether you get up.","If you are working on something that you really care about, you don\u2019t have to be pushed. The vision pulls you.","People who are crazy enough to think they can change the world, are the ones who do.","Failure will never overtake me if my determination to succeed is strong enough.","Entrepreneurs are great at dealing with uncertainty and also very good at minimizing risk. That\u2019s the classic entrepreneur.","We may encounter many defeats but we must not be defeated.","Knowing is not enough; we must apply. Wishing is not enough; we must do.","Imagine your life is perfect in every respect; what would it look like?","We generate fears while we sit. We overcome them by action.","Whether you think you can or think you can\u2019t, you\u2019re right.","Security is mostly a superstition. Life is either a daring adventure or nothing."]);async function Ae(e,t){let r=Array.isArray(e)?e:e.match(/(?:[^\s"]|"[^"]*")+/g);if(!r)return J(Pe(`Failed to parse command: ${r}`,t));let n=t?.cwd??R.cwd(),o=t?.timeoutMs,[s,l,a]=Array.isArray(t?.stdio)?t.stdio:[],i=t?.silent||t?.quiet,c=Bun.spawn(r,{stdin:t?.stdin??s??"inherit",stdout:i?"ignore":t?.stdout??l??"inherit",stderr:i?"ignore":t?.stderr??a??"inherit",cwd:n,env:{...R.env,...t?.env},onExit(b,x,p,C){nt("spawn",b,x,p,C)}});if(t?.forwardSignals){let b=(S)=>{if(c.exitCode!==null||c.signalCode)return;try{c.kill(S)}catch{}},x=()=>b("SIGINT"),p=()=>b("SIGTERM");R.on("SIGINT",x),R.on("SIGTERM",p);let C=()=>{R.off("SIGINT",x),R.off("SIGTERM",p)};c.exited.then(C,C)}if(t?.stdin==="pipe"&&t.input){if(c.stdin)c.stdin.write(t.input),c.stdin.end()}let m,y=await Promise.race([c.exited,new Promise((b)=>{if(!o)return;m=setTimeout(()=>{try{c.kill()}catch{}b(Q.FatalError)},o)})]);if(m)clearTimeout(m);if(o&&y===Q.FatalError&&c.exitCode===null)return J(Pe(`Command timed out after ${o}ms: ${w(r.join(" "))} in ${w(n)}`,t));if(y===Q.Success)return Mt(c);let h=c.signalCode;if(h==="SIGTERM"||h==="SIGINT"||h==="SIGKILL"||c.exitCode===null&&y!==Q.Success)return J(Error(`Command terminated by ${h??"signal"}: ${r.join(" ")}`));return J(Pe(`Failed to execute command: ${w(r.join(" "))} in ${w(n)}`,t))}async function rt(e,t){let r=Array.isArray(e)?e:e.match(/(?:[^\s"]|"[^"]*")+/g);if(!r)throw Ge.error(`Failed to parse command: ${r}`,t),Error(`Failed to parse command: ${r}`);let n=Bun.spawnSync(r,{...t,stdin:t?.stdin??"inherit",stdout:t?.stdout??"pipe",stderr:t?.stderr??"inherit",cwd:t?.cwd??R.cwd(),env:{...R.env,...t?.env},onExit(s,l,a,i){nt("spawnSync",s,l,a,i)}}),o=n.stdout?.toString()??"";if(t?.throwOnError&&n.exitCode!==0){let l=((n.stderr?.toString()??"").trim()||o.trim()||"(no output)").split(`
5
5
  `).slice(0,5).join(`
6
6
  `);throw Error(`Command failed with exit code ${n.exitCode}: ${r.join(" ")}
7
- ${l}`)}return o}function nt(e,t,r,n,o){if(Ge.debug(`exitHandler: ${e}, exitCode: ${r}, signalCode: ${n}`),o)Ge.debug("Process error:",o.message)}import{handleError as Tt}from"@stacksjs/error-handling";import{log as k}from"@stacksjs/logging";import{ExitCode as je}from"@stacksjs/types";var ot="0.75.541";async function Nr(e,t){return new Promise((r)=>{if(t?.quiet===!1)console.log(),console.log(G(v("Stacks CLI"))+L(` v${ot}`)),console.log();if(k.info(`Running ${N(w(v(` ${e} `)))}`),t?.showPerformance===!1||t?.quiet)return r(0);return r(performance.now())})}function Wr(e,t,r){let n={type:"success",useSeconds:!0,...t};return n.message=t?.message||e,new Promise((o)=>{if(r)return Tt(r),o(je.FatalError);if(n?.startTime){let s=performance.now()-n.startTime;if(n.useSeconds)s=s/1000,s=Math.round(s*100)/100;if(n.quiet===!0)return o(je.Success);if(r)k.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] Failed`);else if(n.type==="error")k.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Failed"}`);else if(n.type==="warning")k.warn(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Complete"}`);else if(n.type==="info")k.info(`${L(O(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`))} ${n.message??"Complete"}`);else k.success(`${L(O(v(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`)))} ${v(P(n.message??"Complete"))}`)}else if(n?.type==="info")k.info(e);else if(n?.type==="error")k.error(e);else if(n?.type==="warning")k.warn(e);else if(n?.type==="success"&&n?.quiet!==!0)k.success(e);k.flush().catch(()=>{}).then(()=>o(je.Success))})}import X from"process";function st(e){if(!e)return!1;return e.startsWith("--")}function Pt(e){return e.startsWith("-")&&!st(e)}function Ne(e,t=!0){if(!t)return e;if(e==="true")return!0;if(e==="false")return!1;let r=Number.parseFloat(e);if(!Number.isNaN(r))return r;return e.replace(/"/g,"")}function Gt(e,t,r,n,o){let[s,...l]=e.slice(2).split("="),a=l.length?l.join("="):void 0;if(a!==void 0)n[s]=Ne(a,o);else if(r+1<t.length&&!t[r+1]?.startsWith("-"))n[s]=t[r+1],r++;else n[s]=!0;return r}function At(e,t,r,n,o){let[s,...l]=e.slice(1).split("="),a=l.length?l.join("="):void 0;if(s===void 0)return r;if(a!==void 0&&s!==void 0)for(let i=0;i<s.length;i++)n[s[i]]=Ne(a,o);else for(let i=0;i<s.length;i++)if(r+1<t.length&&i===s.length-1&&!t[r+1]?.startsWith("-"))n[s[i]]=Ne(t[r+1],o),r++;else n[s[i]]=!0;return r}function jt(e,t={}){if(e===void 0)e=X.argv.slice(2);let r=[],n={};for(let o=0;o<e.length;o++){let s=e[o];if(!s)continue;if(st(s))o=Gt(s,e,o,n,t.coerceValues!==!1);else if(Pt(s))o=At(s,e,o,n,t.coerceValues!==!1);else r.push(s)}return{args:r,options:n}}function _r(e){if(e===void 0)e=X.argv.slice(2);return jt(e).args}function qr(e){e=e||{};let t={dryRun:!1,quiet:!1,verbose:!1},r=X.argv.slice(2);for(let n=0;n<r.length;n++){let o=r[n];if(o?.startsWith("--")){let l=o.substring(2).replace(/-([a-z])/gi,(a)=>a[1]?a[1].toUpperCase():"");if(n+1<r.length&&!r?.[n+1]?.startsWith("--"))if(r?.[n+1]==="true"||r?.[n+1]==="false")e[l]=r[n+1]==="true",n++;else e[l]=r[n+1],n++;else e[l]=!0}}if(Object.keys(e).length===0)return{};return{...t,...e}}function Nt(e){let t=[];for(let[r,n]of Object.entries(e)){if(r==="--"||r==="_"||r==="forwardSignals"||n===!1||n===void 0||n===null)continue;if(typeof n==="object"&&!Array.isArray(n))continue;if(typeof n==="function"||typeof n==="symbol")continue;if(n===!0)t.push(`--${r}`);else t.push(`--${r}`,String(n))}return t}function Wt(e){if(Array.isArray(e)){if(e=Array.from(new Set(e)),Array.isArray(e)&&e[0]&&!e[0].startsWith("-"))e.shift();return e.join(" ")}if(typeof e==="object"&&e!==null)return Nt(e).join(" ");return Wt(X.argv.slice(2))}async function Ur(e,t){if(!Number.isSafeInteger(t.timeoutMs)||t.timeoutMs<1||t.timeoutMs>120000)throw Error("Invalid bounded process timeout");for(let f of[t.stdoutBytes,t.stderrBytes])if(!Number.isSafeInteger(f)||f<1||f>2000000)throw Error("Invalid bounded process output limit");let r=t.signal;if(r!==void 0&&!(r instanceof AbortSignal))throw TypeError("Invalid bounded process signal");let n=()=>Error(`${t.label} canceled`,{cause:r?.reason});if(r?.aborted)throw n();let o=process.platform!=="win32",s=Bun.spawn(e,{cwd:t.cwd,env:t.env??process.env,stdin:"ignore",stdout:"pipe",stderr:"pipe",detached:o}),l=[s.stdout.getReader(),s.stderr.getReader()],a=[],i,c=!1,m=!1,y="failed",h=[];function b(f){if(f?.code!=="ESRCH")h.push(f)}function x(){if(o)try{process.kill(-s.pid,"SIGKILL")}catch(f){b(f)}if(s.exitCode===null)try{s.kill("SIGKILL")}catch(f){b(f)}}function p(f,I="failed"){if(!c)i=f,c=!0,y=I;if(m)return;m=!0,x();for(let M of l)a.push(M.cancel().catch((z)=>{h.push(z)}))}let C=()=>p(n(),"canceled");async function S(f,I,M){let z=[],te=0;try{while(!0){let{done:_,value:re}=await f.read();if(_){let j=Buffer.concat(z,te);return t.strictUtf8===!0?new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(j):j.toString("utf8")}if(re.byteLength>I-te){let j=Error(`${t.label} ${M} exceeds byte limit`);throw p(j,`${M} exceeds byte limit`),j}te+=re.byteLength,z.push(re)}}catch(_){throw p(_,`${M} read failed`),_}}let ft=setTimeout(()=>p(Error(`${t.label} timed out`),"timed out"),t.timeoutMs),We=S(l[0],t.stdoutBytes,"stdout"),Ye=S(l[1],t.stderrBytes,"stderr");try{if(r?.addEventListener("abort",C,{once:!0}),r?.aborted)C();let[f,I,M]=await Promise.all([s.exited,We,Ye]);if(c)throw i;return{exitCode:f,stdout:I,stderr:M}}catch(f){throw p(f),i}finally{try{r?.removeEventListener("abort",C)}catch(f){h.push(f)}if(clearTimeout(ft),!m)x();if(s.exitCode===null)p(Error(`${t.label} interrupted`));await Promise.allSettled([s.exited,We,Ye,...a]);for(let f of l)try{f.releaseLock()}catch(I){h.push(I)}if(h.length)throw AggregateError(c?[i,...h]:h,`${t.label} ${c?`${y}; `:""}process cleanup failed`)}}import{writeSync as Yt}from"fs";import{format as Z}from"util";function Qr(...e){at(1,Z(...e))}function Xr(...e){at(2,Z(...e))}async function Zr(...e){await it(process.stdout,Z(...e))}async function en(...e){await it(process.stderr,Z(...e))}function it(e,t){return new Promise((r,n)=>{let o=(s)=>{e.off("error",o),n(s)};e.once("error",o);try{e.write(`${t}
7
+ ${l}`)}return o}function nt(e,t,r,n,o){if(Ge.debug(`exitHandler: ${e}, exitCode: ${r}, signalCode: ${n}`),o)Ge.debug("Process error:",o.message)}import{handleError as Tt}from"@stacksjs/error-handling";import{log as k}from"@stacksjs/logging";import{ExitCode as je}from"@stacksjs/types";var ot="0.75.543";async function Nr(e,t){return new Promise((r)=>{if(t?.quiet===!1)console.log(),console.log(G(v("Stacks CLI"))+L(` v${ot}`)),console.log();if(k.info(`Running ${N(w(v(` ${e} `)))}`),t?.showPerformance===!1||t?.quiet)return r(0);return r(performance.now())})}function Wr(e,t,r){let n={type:"success",useSeconds:!0,...t};return n.message=t?.message||e,new Promise((o)=>{if(r)return Tt(r),o(je.FatalError);if(n?.startTime){let s=performance.now()-n.startTime;if(n.useSeconds)s=s/1000,s=Math.round(s*100)/100;if(n.quiet===!0)return o(je.Success);if(r)k.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] Failed`);else if(n.type==="error")k.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Failed"}`);else if(n.type==="warning")k.warn(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Complete"}`);else if(n.type==="info")k.info(`${L(O(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`))} ${n.message??"Complete"}`);else k.success(`${L(O(v(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`)))} ${v(P(n.message??"Complete"))}`)}else if(n?.type==="info")k.info(e);else if(n?.type==="error")k.error(e);else if(n?.type==="warning")k.warn(e);else if(n?.type==="success"&&n?.quiet!==!0)k.success(e);k.flush().catch(()=>{}).then(()=>o(je.Success))})}import X from"process";function st(e){if(!e)return!1;return e.startsWith("--")}function Pt(e){return e.startsWith("-")&&!st(e)}function Ne(e,t=!0){if(!t)return e;if(e==="true")return!0;if(e==="false")return!1;let r=Number.parseFloat(e);if(!Number.isNaN(r))return r;return e.replace(/"/g,"")}function Gt(e,t,r,n,o){let[s,...l]=e.slice(2).split("="),a=l.length?l.join("="):void 0;if(a!==void 0)n[s]=Ne(a,o);else if(r+1<t.length&&!t[r+1]?.startsWith("-"))n[s]=t[r+1],r++;else n[s]=!0;return r}function At(e,t,r,n,o){let[s,...l]=e.slice(1).split("="),a=l.length?l.join("="):void 0;if(s===void 0)return r;if(a!==void 0&&s!==void 0)for(let i=0;i<s.length;i++)n[s[i]]=Ne(a,o);else for(let i=0;i<s.length;i++)if(r+1<t.length&&i===s.length-1&&!t[r+1]?.startsWith("-"))n[s[i]]=Ne(t[r+1],o),r++;else n[s[i]]=!0;return r}function jt(e,t={}){if(e===void 0)e=X.argv.slice(2);let r=[],n={};for(let o=0;o<e.length;o++){let s=e[o];if(!s)continue;if(st(s))o=Gt(s,e,o,n,t.coerceValues!==!1);else if(Pt(s))o=At(s,e,o,n,t.coerceValues!==!1);else r.push(s)}return{args:r,options:n}}function _r(e){if(e===void 0)e=X.argv.slice(2);return jt(e).args}function qr(e){e=e||{};let t={dryRun:!1,quiet:!1,verbose:!1},r=X.argv.slice(2);for(let n=0;n<r.length;n++){let o=r[n];if(o?.startsWith("--")){let l=o.substring(2).replace(/-([a-z])/gi,(a)=>a[1]?a[1].toUpperCase():"");if(n+1<r.length&&!r?.[n+1]?.startsWith("--"))if(r?.[n+1]==="true"||r?.[n+1]==="false")e[l]=r[n+1]==="true",n++;else e[l]=r[n+1],n++;else e[l]=!0}}if(Object.keys(e).length===0)return{};return{...t,...e}}function Nt(e){let t=[];for(let[r,n]of Object.entries(e)){if(r==="--"||r==="_"||r==="forwardSignals"||n===!1||n===void 0||n===null)continue;if(typeof n==="object"&&!Array.isArray(n))continue;if(typeof n==="function"||typeof n==="symbol")continue;if(n===!0)t.push(`--${r}`);else t.push(`--${r}`,String(n))}return t}function Wt(e){if(Array.isArray(e)){if(e=Array.from(new Set(e)),Array.isArray(e)&&e[0]&&!e[0].startsWith("-"))e.shift();return e.join(" ")}if(typeof e==="object"&&e!==null)return Nt(e).join(" ");return Wt(X.argv.slice(2))}async function Ur(e,t){if(!Number.isSafeInteger(t.timeoutMs)||t.timeoutMs<1||t.timeoutMs>120000)throw Error("Invalid bounded process timeout");for(let f of[t.stdoutBytes,t.stderrBytes])if(!Number.isSafeInteger(f)||f<1||f>2000000)throw Error("Invalid bounded process output limit");let r=t.signal;if(r!==void 0&&!(r instanceof AbortSignal))throw TypeError("Invalid bounded process signal");let n=()=>Error(`${t.label} canceled`,{cause:r?.reason});if(r?.aborted)throw n();let o=process.platform!=="win32",s=Bun.spawn(e,{cwd:t.cwd,env:t.env??process.env,stdin:"ignore",stdout:"pipe",stderr:"pipe",detached:o}),l=[s.stdout.getReader(),s.stderr.getReader()],a=[],i,c=!1,m=!1,y="failed",h=[];function b(f){if(f?.code!=="ESRCH")h.push(f)}function x(){if(o)try{process.kill(-s.pid,"SIGKILL")}catch(f){b(f)}if(s.exitCode===null)try{s.kill("SIGKILL")}catch(f){b(f)}}function p(f,I="failed"){if(!c)i=f,c=!0,y=I;if(m)return;m=!0,x();for(let M of l)a.push(M.cancel().catch((z)=>{h.push(z)}))}let C=()=>p(n(),"canceled");async function S(f,I,M){let z=[],te=0;try{while(!0){let{done:_,value:re}=await f.read();if(_){let j=Buffer.concat(z,te);return t.strictUtf8===!0?new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(j):j.toString("utf8")}if(re.byteLength>I-te){let j=Error(`${t.label} ${M} exceeds byte limit`);throw p(j,`${M} exceeds byte limit`),j}te+=re.byteLength,z.push(re)}}catch(_){throw p(_,`${M} read failed`),_}}let ft=setTimeout(()=>p(Error(`${t.label} timed out`),"timed out"),t.timeoutMs),We=S(l[0],t.stdoutBytes,"stdout"),Ye=S(l[1],t.stderrBytes,"stderr");try{if(r?.addEventListener("abort",C,{once:!0}),r?.aborted)C();let[f,I,M]=await Promise.all([s.exited,We,Ye]);if(c)throw i;return{exitCode:f,stdout:I,stderr:M}}catch(f){throw p(f),i}finally{try{r?.removeEventListener("abort",C)}catch(f){h.push(f)}if(clearTimeout(ft),!m)x();if(s.exitCode===null)p(Error(`${t.label} interrupted`));await Promise.allSettled([s.exited,We,Ye,...a]);for(let f of l)try{f.releaseLock()}catch(I){h.push(I)}if(h.length)throw AggregateError(c?[i,...h]:h,`${t.label} ${c?`${y}; `:""}process cleanup failed`)}}import{writeSync as Yt}from"fs";import{format as Z}from"util";function Qr(...e){at(1,Z(...e))}function Xr(...e){at(2,Z(...e))}async function Zr(...e){await it(process.stdout,Z(...e))}async function en(...e){await it(process.stderr,Z(...e))}function it(e,t){return new Promise((r,n)=>{let o=(s)=>{e.off("error",o),n(s)};e.once("error",o);try{e.write(`${t}
8
8
  `,"utf8",(s)=>{if(s)setImmediate(()=>e.off("error",o)),n(s);else e.off("error",o),r()})}catch(s){e.off("error",o),n(s)}})}function at(e,t){let r=Buffer.from(`${t}
9
9
  `),n=0;while(n<r.length)n+=Yt(e,r,n,r.length-n)}import F from"process";import{createInterface as Dt}from"readline";var W=null;function zt(){if(!W){let e=F.stdin.isTTY&&F.stdout.isTTY;W=Dt({input:F.stdin,output:F.stdout,terminal:e}),W.once("close",()=>{W=null})}return W}var ee=Symbol("stdin-eof");function lt(e){return new Promise((t)=>{let r=zt(),n=!1,o=(a)=>{if(n)return;n=!0,r.off("close",s),r.off("SIGINT",l),t(a)},s=()=>o(ee),l=()=>{console.log(`
10
10
  `),F.exit(130)};r.once("close",s),r.once("SIGINT",l);try{r.question(e,o)}catch{o(ee)}})}function ct(){if(F.argv.includes("--no-interaction"))return!1;if(F.env.CI)return!1;return Boolean(F.stdin.isTTY&&F.stdout.isTTY)}async function Y(e){if(!ct())return"";let t=await lt(e);return t===ee?"":t}function ut(e,t){let r=e.toLowerCase().trim();if(!r)return t;if(r==="y"||r==="yes")return!0;if(r==="n"||r==="no")return!1;return t}async function on(e){let t=typeof e==="string"?{message:e}:e,r=t.initial??!1,n=r?" (Y/n) ":" (y/N) ";if(!ct())return null;let o=await lt(`${t.message}${n}`);if(o===ee)return null;return ut(o,r)}async function _t(e){let t=typeof e==="string"?{message:e}:e,r=t.initial??!1,n=r?" (Y/n) ":" (y/N) ",o=await Y(`${t.message}${n}`);return ut(o,r)}async function qt(e){let t=typeof e==="string"?{message:e}:e,r=t.placeholder||t.initial||"",n=r?` (${r}) `:" ";return(await Y(`${t.message}${n}`)).trim()||t.initial||""}async function Kt(e){console.log(e.message),e.choices.forEach((o,s)=>{let l=s===(e.initial??0)?">":" ";console.log(`${l} ${s+1}. ${o.label}`)});let t=await Y("Select (number): "),r=Number.parseInt(t.trim(),10)-1,n=e.choices[r]??e.choices[e.initial??0];if(!n)throw Error("select prompt: no choices available");return n.value}async function Ut(e){console.log(e.message),console.log("(Enter numbers separated by commas)"),e.choices.forEach((o,s)=>{console.log(` ${s+1}. ${o.label}`)});let r=(await Y("Select (e.g., 1,3,4): ")).split(",").map((o)=>Number.parseInt(o.trim(),10)-1),n=[];for(let o of r){let s=e.choices[o];if(s)n.push(s.value)}return n}async function Ht(e){return(await Y(`${(typeof e==="string"?{message:e}:e).message} `)).trim()}var sn={text:qt,confirm:_t,select:Kt,multiselect:Ut,password:Ht};import{handleError as Vt}from"@stacksjs/error-handling";async function Jt(e,t){let r={...t,stdin:t?.stdin??"inherit",verbose:t?.verbose??!1};return await Ae(e,r)}async function un(e,t){let r={...t,stdio:[t?.stdin??"inherit","pipe","pipe"],verbose:t?.verbose??!1};return await Ae(e,r)}async function gn(e,t){let r={...t,stdio:[t?.stdin??"inherit","pipe","pipe"],verbose:t?.verbose??!1};return await rt(e,r)}async function dn(e,t){let r=[];for(let n of e){let o=await Jt(n,t);if(o.isErr)throw Vt("Error during runCommands",o.error),o.error;r.push(o)}return r}import Qt from"process";var Xt=["SIGINT","SIGTERM","SIGHUP"],A=new Map,gt=!1;function Zt(){if(gt)return;gt=!0;for(let e of Xt)Qt.on(e,async()=>{for(let[t,r]of A)try{await r()}catch(n){console.error(`[signals] cleanup '${t}' threw:`,n)}})}function pn(e,t){return Zt(),A.set(e,t),()=>{if(A.get(e)===t)A.delete(e)}}function hn(e){A.delete(e)}function bn(){return[...A.keys()]}var dt=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],D=process.stdout.isTTY&&!process.env.CI;function er(e){let t=e||"",r=0,n=null,o=!1,s=()=>{if(D)process.stdout.write("\r\x1B[K")},l=()=>{if(!D)return;s();let a=dt[r];process.stdout.write(`${a} ${t}`),r=(r+1)%dt.length};return{start(a){if(a)t=a;if(o)return;if(o=!0,D)l(),n=setInterval(l,80);else if(t)console.log(` ${t}`)},stop(a){if(o=!1,n)clearInterval(n),n=null;if(s(),a)console.log(a)},update(a){if(t=a,!D&&o)console.log(` ${a}`)},succeed(a){let i=a||t;if(o=!1,n)clearInterval(n),n=null;s(),console.log(`\u2713 ${i}`)},fail(a){let i=a||t;if(o=!1,n)clearInterval(n),n=null;s(),console.error(`\u2717 ${i}`)},get text(){return t},set text(a){if(t=a,D&&o)l()},get isSpinning(){return o}}}async function Cn(e,t,r){let n=er(e);n.start();try{let o=await t();return n.succeed(r?.successMessage||e),o}catch(o){throw n.fail(r?.failMessage||`Failed: ${e}`),o}}import T from"process";var mt="\r\x1B[2K";function tr(){return{columns:T.stdout.columns??80,rows:T.stdout.rows??24}}function rr(){return Boolean(T.stdout.isTTY)&&!T.env.CI}function $n(e,t){console.log(tt(e,t===void 0?{}:{title:t}))}function vn(e,t={}){let n=(t.columns??[...new Set(e.flatMap((i)=>Object.keys(i)))]).map((i)=>typeof i==="string"?{key:i}:i);if(n.length===0)return"";let o=(i,c)=>{let m=i[c.key];return m===void 0||m===null?"":String(m)},s=n.map((i)=>{let c=t.header===!1?"":i.header??i.key;return Math.max(E(c).length,...e.map((m)=>E(o(m,i)).length))}),l=(i,c,m)=>{let y=Math.max(0,c-E(i).length);return m==="right"?" ".repeat(y)+i:i+" ".repeat(y)},a=[];if(t.header!==!1)a.push(n.map((i,c)=>l(i.header??i.key,s[c],i.align)).join(" ").trimEnd()),a.push(n.map((i,c)=>"-".repeat(s[c])).join(" "));for(let i of e)a.push(n.map((c,m)=>l(o(i,c),s[m],c.align)).join(" ").trimEnd());return a.join(`
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/cli",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.75.541",
5
+ "version": "0.75.543",
6
6
  "description": "TypeScript framework for CLI artisans. Build beautiful console apps with ease.",
7
7
  "author": "Chris Breuer",
8
8
  "contributors": [
@@ -70,16 +70,16 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "@stacksjs/clapp": "^0.2.12",
73
- "@stacksjs/collections": "0.75.541",
74
- "@stacksjs/error-handling": "0.75.541",
75
- "@stacksjs/logging": "0.75.541",
76
- "@stacksjs/types": "0.75.541"
73
+ "@stacksjs/collections": "0.75.543",
74
+ "@stacksjs/error-handling": "0.75.543",
75
+ "@stacksjs/logging": "0.75.543",
76
+ "@stacksjs/types": "0.75.543"
77
77
  },
78
78
  "devDependencies": {
79
- "@stacksjs/config": "0.75.541",
80
- "@stacksjs/path": "0.75.541",
81
- "@stacksjs/utils": "0.75.541",
82
- "@stacksjs/validation": "0.75.541",
79
+ "@stacksjs/config": "0.75.543",
80
+ "@stacksjs/path": "0.75.543",
81
+ "@stacksjs/utils": "0.75.543",
82
+ "@stacksjs/validation": "0.75.543",
83
83
  "better-dx": "^0.2.24"
84
84
  }
85
85
  }