@stacksjs/cli 0.75.527 → 0.75.529

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 +9 -9
  2. package/package.json +9 -9
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // @bun
2
- import Ye from"process";async function De(e,t={silent:!0}){let r=t.packageManager??"bun",n=[r==="npm"?"install":"add"];if(t.dev)n.push("-D");if(t.preferOffline&&r!=="bun")n.push("--prefer-offline");if(t.additionalArgs)n.push(...t.additionalArgs);n.push(e);let s=await Bun.spawn([r,...n],{cwd:t.cwd??Ye.cwd(),stdout:t.silent?"ignore":"inherit",stderr:t.silent?"ignore":"inherit",stdin:"ignore",env:Ye.env}).exited;if(s!==0)throw Error(`Failed to install ${e} (exit code ${s})`)}async function nr(e,t){return De(e,t??{silent:!0})}async function or(e,t){return De(`@stacksjs/${e}`,t??{silent:!0})}import{CLI as ar,cli as ft,onUnknownSubcommand as lr}from"@stacksjs/clapp";function cr(e,t){if(typeof e==="object")t=e,e=t.name;return ft(e||"buddy")}import{existsSync as ne,readdirSync as pt}from"fs";import{join as ze}from"path";var ht=/(?:\.test|\.spec|\.bench|\.d)\.ts$/;function bt(e){return e.endsWith(".ts")&&!ht.test(e)&&!e.startsWith("_")}function yt(e){if(!ne(e))return[];let t=[],r=(n,o)=>{for(let s of pt(n,{withFileTypes:!0})){if(s.name.startsWith(".")||s.name==="node_modules")continue;if(s.isDirectory()){r(ze(n,s.name),`${o}${s.name}/`);continue}if(bt(s.name))t.push(`${o}${s.name.slice(0,-3)}`)}};return r(e,""),t.sort()}async function _e(e){if(!e||!ne(e))return{};try{let r=(await import(e)).default;if(!r||typeof r!=="object")return{error:Error(`${e} must default-export a command registry object.`)};return{registry:r}}catch(t){return{error:t}}}async function Ct(e){let{commandsDir:t}=e,r=e.registry??(await _e(e.registryPath)).registry,n=yt(t),o=new Map;for(let l of n)o.set(l,{file:l,path:ze(t,`${l}.ts`),aliases:[],enabled:!0,source:"auto"});let s=[];for(let[l,a]of Object.entries(r??{})){let i=typeof a==="string"?{file:a}:a,c=o.get(i.file);if(!c)continue;if(c.signature=l,c.aliases=i.aliases??[],c.enabled=i.enabled!==!1,c.source="registry",!s.includes(c))s.push(c)}for(let l of n){let a=o.get(l);if(a&&!s.includes(a))s.push(a)}return s}function xt(e,t,r){let n=t.trim().split(/\s+/)[0],s=e?.commands?.find((l)=>l.name===n);if(!s||typeof s.alias!=="function")return!1;for(let l of r)s.alias(l);return!0}async function mr(e,t){let r=t.onError??(()=>{}),n=t.onDebug??(()=>{});if(!ne(t.commandsDir))return n(`No ${t.commandsDir} directory, skipping application commands.`),[];let o=t.registry?{registry:t.registry}:await _e(t.registryPath);if(o.error)r(`Could not read the command registry at ${t.registryPath}`,o.error);let s=await Ct({...t,registry:o.registry}),l=[];for(let a of s){if(!a.enabled){n(`Skipping disabled command ${a.file}.`);continue}try{let i=await import(a.path);if(i.enabled===!1){n(`Skipping ${a.file}: the module exports \`enabled = false\`.`);continue}if(typeof i.default!=="function"){r(`Expected a default export function in ${a.file}.ts, but got: ${typeof i.default}`);continue}let c=e.commands?.length??0;i.default(e);let m=[...a.aliases,...i.aliases??[]];if(m.length)wt(e,a.signature,c,m,n);l.push(a)}catch(i){r(`Failed to load command ${a.file}`,i)}}return l}function wt(e,t,r,n,o){if(t&&xt(e,t,n))return;let a=(e.commands?.slice(r)??[])[0];if(!a||typeof a.alias!=="function"){o(`Could not alias '${t??"command"}': no matching command was registered.`);return}for(let i of n)a.alias(i)}function fr(e){if(typeof e==="function")return e;return(t)=>kt(t,e)}function kt(e,t){let r=e.command(t.name,t.description??"",{allowUnknownOptions:t.allowUnknownOptions});if(t.usage)r.usage(t.usage);for(let[n,o]of Object.entries(t.options??{})){let s=typeof o==="string"?{description:o}:o;r.option(n,s.description??"",{...s.default===void 0?{}:{default:s.default},...s.type?{type:s.type}:{}})}for(let n of t.aliases??[])r.alias(n);for(let n of t.examples??[])r.example(n);return r.action((...n)=>{let o=n[n.length-1];return t.handle(o,...n.slice(0,-1))}),r}function pr(e){return e}import B from"process";import{err as q,handleError as oe,ok as $t}from"@stacksjs/error-handling";import{ExitCode as K}from"@stacksjs/types";async function se(e,t){let r=Array.isArray(e)?e:e.match(/(?:[^\s"]|"[^"]*")+/g);if(!r)return q(oe(`Failed to parse command: ${r}`,t));let n=t?.cwd??B.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:{...B.env,...t?.env},onExit(y,w,p,x){Ke("spawn",y,w,p,x)}});if(t?.forwardSignals){let y=(S)=>{if(c.exitCode!==null||c.signalCode)return;try{c.kill(S)}catch{}},w=()=>y("SIGINT"),p=()=>y("SIGTERM");B.on("SIGINT",w),B.on("SIGTERM",p);let x=()=>{B.off("SIGINT",w),B.off("SIGTERM",p)};c.exited.then(x,x)}if(t?.stdin==="pipe"&&t.input){if(c.stdin)c.stdin.write(t.input),c.stdin.end()}let m,C=await Promise.race([c.exited,new Promise((y)=>{if(!o)return;m=setTimeout(()=>{try{c.kill()}catch{}y(K.FatalError)},o)})]);if(m)clearTimeout(m);if(o&&C===K.FatalError&&c.exitCode===null)return q(oe(`Command timed out after ${o}ms: ${k(r.join(" "))} in ${k(n)}`,t));if(C===K.Success)return $t(c);let h=c.signalCode;if(h==="SIGTERM"||h==="SIGINT"||h==="SIGKILL"||c.exitCode===null&&C!==K.Success)return q(Error(`Command terminated by ${h??"signal"}: ${r.join(" ")}`));return q(oe(`Failed to execute command: ${k(r.join(" "))} in ${k(n)}`,t))}async function qe(e,t){let r=Array.isArray(e)?e:e.match(/(?:[^\s"]|"[^"]*")+/g);if(!r)throw b.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??B.cwd(),env:{...B.env,...t?.env},onExit(s,l,a,i){Ke("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(`
2
+ import De from"process";async function ze(e,t={silent:!0}){let r=t.packageManager??"bun",n=[r==="npm"?"install":"add"];if(t.dev)n.push("-D");if(t.preferOffline&&r!=="bun")n.push("--prefer-offline");if(t.additionalArgs)n.push(...t.additionalArgs);n.push(e);let s=await Bun.spawn([r,...n],{cwd:t.cwd??De.cwd(),stdout:t.silent?"ignore":"inherit",stderr:t.silent?"ignore":"inherit",stdin:"ignore",env:De.env}).exited;if(s!==0)throw Error(`Failed to install ${e} (exit code ${s})`)}async function or(e,t){return ze(e,t??{silent:!0})}async function sr(e,t){return ze(`@stacksjs/${e}`,t??{silent:!0})}import{CLI as lr,cli as pt,onUnknownSubcommand as cr}from"@stacksjs/clapp";function ur(e,t){if(typeof e==="object")t=e,e=t.name;return pt(e||"buddy")}import{existsSync as ne,readdirSync as ht}from"fs";import{join as _e}from"path";var bt=/(?:\.test|\.spec|\.bench|\.d)\.ts$/;function yt(e){return e.endsWith(".ts")&&!bt.test(e)&&!e.startsWith("_")}function Ct(e){if(!ne(e))return[];let t=[],r=(n,o)=>{for(let s of ht(n,{withFileTypes:!0})){if(s.name.startsWith(".")||s.name==="node_modules")continue;if(s.isDirectory()){r(_e(n,s.name),`${o}${s.name}/`);continue}if(yt(s.name))t.push(`${o}${s.name.slice(0,-3)}`)}};return r(e,""),t.sort()}async function qe(e){if(!e||!ne(e))return{};try{let r=(await import(e)).default;if(!r||typeof r!=="object")return{error:Error(`${e} must default-export a command registry object.`)};return{registry:r}}catch(t){return{error:t}}}async function xt(e){let{commandsDir:t}=e,r=e.registry??(await qe(e.registryPath)).registry,n=Ct(t),o=new Map;for(let l of n)o.set(l,{file:l,path:_e(t,`${l}.ts`),aliases:[],enabled:!0,source:"auto"});let s=[];for(let[l,a]of Object.entries(r??{})){let i=typeof a==="string"?{file:a}:a,c=o.get(i.file);if(!c)continue;if(c.signature=l,c.aliases=i.aliases??[],c.enabled=i.enabled!==!1,c.source="registry",!s.includes(c))s.push(c)}for(let l of n){let a=o.get(l);if(a&&!s.includes(a))s.push(a)}return s}function wt(e,t,r){let n=t.trim().split(/\s+/)[0],s=e?.commands?.find((l)=>l.name===n);if(!s||typeof s.alias!=="function")return!1;for(let l of r)s.alias(l);return!0}async function fr(e,t){let r=t.onError??(()=>{}),n=t.onDebug??(()=>{});if(!ne(t.commandsDir))return n(`No ${t.commandsDir} directory, skipping application commands.`),[];let o=t.registry?{registry:t.registry}:await qe(t.registryPath);if(o.error)r(`Could not read the command registry at ${t.registryPath}`,o.error);let s=await xt({...t,registry:o.registry}),l=[];for(let a of s){if(!a.enabled){n(`Skipping disabled command ${a.file}.`);continue}try{let i=await import(a.path);if(i.enabled===!1){n(`Skipping ${a.file}: the module exports \`enabled = false\`.`);continue}if(typeof i.default!=="function"){r(`Expected a default export function in ${a.file}.ts, but got: ${typeof i.default}`);continue}let c=e.commands?.length??0;i.default(e);let m=[...a.aliases,...i.aliases??[]];if(m.length)kt(e,a.signature,c,m,n);l.push(a)}catch(i){r(`Failed to load command ${a.file}`,i)}}return l}function kt(e,t,r,n,o){if(t&&wt(e,t,n))return;let a=(e.commands?.slice(r)??[])[0];if(!a||typeof a.alias!=="function"){o(`Could not alias '${t??"command"}': no matching command was registered.`);return}for(let i of n)a.alias(i)}function pr(e){if(typeof e==="function")return e;return(t)=>$t(t,e)}function $t(e,t){let r=e.command(t.name,t.description??"",{allowUnknownOptions:t.allowUnknownOptions});if(t.usage)r.usage(t.usage);for(let[n,o]of Object.entries(t.options??{})){let s=typeof o==="string"?{description:o}:o;r.option(n,s.description??"",{...s.default===void 0?{}:{default:s.default},...s.type?{type:s.type}:{}})}for(let n of t.aliases??[])r.alias(n);for(let n of t.examples??[])r.example(n);return r.action((...n)=>{let o=n[n.length-1];return t.handle(o,...n.slice(0,-1))}),r}function hr(e){return e}import R from"process";import{err as J,handleError as Pe,ok as Mt}from"@stacksjs/error-handling";import{ExitCode as Q}from"@stacksjs/types";import{log as Ge}from"@stacksjs/logging";import{collect as vt}from"@stacksjs/collections";var g=!process.env.NO_COLOR&&(process.env.FORCE_COLOR?process.env.FORCE_COLOR!=="0":!!process.stdout?.isTTY),d={reset:g?"\x1B[0m":"",black:g?"\x1B[30m":"",red:g?"\x1B[31m":"",green:g?"\x1B[32m":"",yellow:g?"\x1B[33m":"",blue:g?"\x1B[34m":"",magenta:g?"\x1B[35m":"",cyan:g?"\x1B[36m":"",white:g?"\x1B[37m":"",gray:g?"\x1B[90m":"",lightRed:g?"\x1B[91m":"",lightGreen:g?"\x1B[92m":"",lightYellow:g?"\x1B[93m":"",lightBlue:g?"\x1B[94m":"",lightMagenta:g?"\x1B[95m":"",lightCyan:g?"\x1B[96m":"",lightGray:g?"\x1B[37m":"",bgBlack:g?"\x1B[40m":"",bgRed:g?"\x1B[41m":"",bgGreen:g?"\x1B[42m":"",bgYellow:g?"\x1B[43m":"",bgBlue:g?"\x1B[44m":"",bgMagenta:g?"\x1B[45m":"",bgCyan:g?"\x1B[46m":"",bgWhite:g?"\x1B[47m":"",bgGray:g?"\x1B[100m":"",bgLightRed:g?"\x1B[101m":"",bgLightGreen:g?"\x1B[102m":"",bgLightYellow:g?"\x1B[103m":"",bgLightBlue:g?"\x1B[104m":"",bgLightMagenta:g?"\x1B[105m":"",bgLightCyan:g?"\x1B[106m":"",bgLightGray:g?"\x1B[47m":"",bold:g?"\x1B[1m":"",dim:g?"\x1B[2m":"",italic:g?"\x1B[3m":"",underline:g?"\x1B[4m":"",inverse:g?"\x1B[7m":"",hidden:g?"\x1B[8m":"",strikethrough:g?"\x1B[9m":""},U="\x1B[",Ft="\x1B]8;;",St="\x1B]8;;\x07",Ke=(e)=>String(e);function B(e,t,r){return Math.min(Math.max(Math.floor(e),t),r)}function u(e,t=d.reset){return(r)=>{if(!g)return String(r);return`${e}${String(r)}${t}`}}function Bt(e){return e.replace(/\x1B\]8;;[^\x07]*(?:\x07|\x1B\\)/g,"").replace(/\x1B\]8;;(?:\x07|\x1B\\)/g,"")}function E(e){return Bt(e).replace(/\x1B\[[0-?]*[ -/]*[@-~]/g,"")}var Ue=E;function He(e){return Array.from(E(e)).length}var oe=u(d.black),se=u(d.red),P=u(d.green),ie=u(d.yellow),ae=u(d.blue),le=u(d.magenta),G=u(d.cyan),ce=u(d.white),O=u(d.gray),ue=u(d.lightRed),ge=u(d.lightGreen),de=u(d.lightYellow),me=u(d.lightBlue),fe=u(d.lightMagenta),pe=u(d.lightCyan),q=u(d.lightGray),he=u(d.bgBlack),be=u(d.bgRed),ye=u(d.bgGreen),Ce=u(d.bgYellow),xe=u(d.bgBlue),we=u(d.bgMagenta),N=u(d.bgCyan),ke=u(d.bgWhite),$e=u(d.bgGray),ve=u(d.bgLightRed),Fe=u(d.bgLightGreen),Se=u(d.bgLightYellow),Be=u(d.bgLightBlue),Oe=u(d.bgLightMagenta),Le=u(d.bgLightCyan),K=u(d.bgLightGray),v=u(d.bold),L=u(d.dim),w=u(d.italic),Re=u(d.underline),Ie=u(d.inverse),Me=u(d.hidden),Ee=u(d.strikethrough),Te=u(d.reset,"");function Ve(e){return u(`${U}38;5;${B(e,0,255)}m`)}function Je(e){return u(`${U}48;5;${B(e,0,255)}m`)}function Qe(e,t,r){return u(`${U}38;2;${B(e,0,255)};${B(t,0,255)};${B(r,0,255)}m`)}function Xe(e,t,r){return u(`${U}48;2;${B(e,0,255)};${B(t,0,255)};${B(r,0,255)}m`)}function Ze(e,t){let r=(o,s)=>{let l=String(o);if(!g)return l;return`${Ft}${s}\x07${l}${St}`};if(typeof t==="string")return r(e,t);let n=String(e);return(o)=>r(o,n)}var Ot={black:oe,red:se,green:P,yellow:ie,blue:ae,magenta:le,cyan:G,white:ce,gray:O,lightRed:ue,lightGreen:ge,lightYellow:de,lightBlue:me,lightMagenta:fe,lightCyan:pe,lightGray:q,bgBlack:he,bgRed:be,bgGreen:ye,bgYellow:Ce,bgBlue:xe,bgMagenta:we,bgCyan:N,bgWhite:ke,bgGray:$e,bgLightRed:ve,bgLightGreen:Fe,bgLightYellow:Se,bgLightBlue:Be,bgLightMagenta:Oe,bgLightCyan:Le,bgLightGray:K,bold:v,dim:L,italic:w,underline:Re,inverse:Ie,hidden:Me,strikethrough:Ee,reset:Te};function et(e){return Ot[e]??Ke}function Cr(e,t){if(typeof t==="function")return t(e);return et(t)(e)}function Lt(){return g}var xr={black:oe,red:se,green:P,yellow:ie,blue:ae,magenta:le,cyan:G,white:ce,gray:O,lightRed:ue,lightGreen:ge,lightYellow:de,lightBlue:me,lightMagenta:fe,lightCyan:pe,lightGray:q,bgBlack:he,bgRed:be,bgGreen:ye,bgYellow:Ce,bgBlue:xe,bgMagenta:we,bgCyan:N,bgWhite:ke,bgGray:$e,bgLightRed:ve,bgLightGreen:Fe,bgLightYellow:Se,bgLightBlue:Be,bgLightMagenta:Oe,bgLightCyan:Le,bgLightGray:K,bold:v,dim:L,italic:w,underline:Re,inverse:Ie,hidden:Me,strikethrough:Ee,reset:Te,ansi256:Ve,ansi256Bg:Je,trueColor:Qe,trueColorBg:Xe,link:Ze,stripColors:Ue},wr={black:oe,red:se,green:P,yellow:ie,blue:ae,magenta:le,cyan:G,white:ce,gray:O,lightRed:ue,lightGreen:ge,lightYellow:de,lightBlue:me,lightMagenta:fe,lightCyan:pe,lightGray:q,bgBlack:he,bgRed:be,bgGreen:ye,bgYellow:Ce,bgBlue:xe,bgMagenta:we,bgCyan:N,bgWhite:ke,bgGray:$e,bgLightRed:ve,bgLightGreen:Fe,bgLightYellow:Se,bgLightBlue:Be,bgLightMagenta:Oe,bgLightCyan:Le,bgLightGray:K,bold:v,dim:L,italic:w,underline:Re,inverse:Ie,hidden:Me,strikethrough:Ee,reset:Te,ansi256:Ve,ansi256Bg:Je,trueColor:Qe,trueColorBg:Xe,link:Ze,stripColors:Ue,grey:O,lightGrey:q,bgLightGrey:K,supportsColor:Lt};function Rt(e,t,r,n){let o=He(e);if(o>=t)return e;let s=n[0]||" ",l=t-o;if(r==="right")return`${s.repeat(l)}${e}`;if(r==="center"){let a=Math.floor(l/2),i=l-a;return`${s.repeat(a)}${e}${s.repeat(i)}`}return`${e}${s.repeat(l)}`}function H(e){return Math.max(0,...e.map(He))}function V(e,t,r="left"){let n=String(e).split(/\r?\n/),o=typeof t==="object"?t:void 0,s=typeof t==="number"?t:o?.width??H(n),l=o?.align??r,a=o?.padChar??" ";return n.map((i)=>Rt(i,Math.max(0,s),l,a)).join(`
3
+ `)}function kr(e,t){return V(e,t,"left")}function $r(e,t){let r=String(e).split(/\r?\n/);return V(e,t??process.stdout?.columns??H(r),"right")}function vr(e,t){let r=String(e).split(/\r?\n/);return V(e,t??process.stdout?.columns??H(r),"center")}var It={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"}};function tt(e,t={}){let r=String(e).split(/\r?\n/),n=It[t.borderStyle??"single"],o=Math.max(0,t.padding??1),s=Math.max(0,t.margin??0),l=t.align??"left",a=H(r),i=a+o*2,c=typeof t.borderColor==="function"?t.borderColor:t.borderColor?et(t.borderColor):Ke,y=c((()=>{if(!t.title)return`${n.topLeft}${n.horizontal.repeat(i)}${n.topRight}`;let C=` ${E(String(t.title))} `.slice(0,i),S=n.horizontal.repeat(Math.max(0,i-C.length));return`${n.topLeft}${C}${S}${n.topRight}`})()),h=c(`${n.bottomLeft}${n.horizontal.repeat(i)}${n.bottomRight}`),b=r.map((p)=>{let C=V(p,{align:l,width:a}),S=`${" ".repeat(o)}${C}${" ".repeat(o)}`;return`${c(n.vertical)}${S}${c(n.vertical)}`}),x=" ".repeat(s);return[y,...b,h].map((p)=>`${x}${p}`).join(`
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(`
3
5
  `).slice(0,5).join(`
4
6
  `);throw Error(`Command failed with exit code ${n.exitCode}: ${r.join(" ")}
5
- ${l}`)}return o}function Ke(e,t,r,n,o){if(b.debug(`exitHandler: ${e}, exitCode: ${r}, signalCode: ${n}`),o)b.debug("Process error:",o.message)}import{handleError as Et}from"@stacksjs/error-handling";import{log as b}from"@stacksjs/logging";import{ExitCode as Ae}from"@stacksjs/types";import{collect as vt}from"@stacksjs/collections";var g=!process.env.NO_COLOR&&(process.env.FORCE_COLOR?process.env.FORCE_COLOR!=="0":!!process.stdout?.isTTY),d={reset:g?"\x1B[0m":"",black:g?"\x1B[30m":"",red:g?"\x1B[31m":"",green:g?"\x1B[32m":"",yellow:g?"\x1B[33m":"",blue:g?"\x1B[34m":"",magenta:g?"\x1B[35m":"",cyan:g?"\x1B[36m":"",white:g?"\x1B[37m":"",gray:g?"\x1B[90m":"",lightRed:g?"\x1B[91m":"",lightGreen:g?"\x1B[92m":"",lightYellow:g?"\x1B[93m":"",lightBlue:g?"\x1B[94m":"",lightMagenta:g?"\x1B[95m":"",lightCyan:g?"\x1B[96m":"",lightGray:g?"\x1B[37m":"",bgBlack:g?"\x1B[40m":"",bgRed:g?"\x1B[41m":"",bgGreen:g?"\x1B[42m":"",bgYellow:g?"\x1B[43m":"",bgBlue:g?"\x1B[44m":"",bgMagenta:g?"\x1B[45m":"",bgCyan:g?"\x1B[46m":"",bgWhite:g?"\x1B[47m":"",bgGray:g?"\x1B[100m":"",bgLightRed:g?"\x1B[101m":"",bgLightGreen:g?"\x1B[102m":"",bgLightYellow:g?"\x1B[103m":"",bgLightBlue:g?"\x1B[104m":"",bgLightMagenta:g?"\x1B[105m":"",bgLightCyan:g?"\x1B[106m":"",bgLightGray:g?"\x1B[47m":"",bold:g?"\x1B[1m":"",dim:g?"\x1B[2m":"",italic:g?"\x1B[3m":"",underline:g?"\x1B[4m":"",inverse:g?"\x1B[7m":"",hidden:g?"\x1B[8m":"",strikethrough:g?"\x1B[9m":""},V="\x1B[",Ft="\x1B]8;;",St="\x1B]8;;\x07",Ue=(e)=>String(e);function O(e,t,r){return Math.min(Math.max(Math.floor(e),t),r)}function u(e,t=d.reset){return(r)=>{if(!g)return String(r);return`${e}${String(r)}${t}`}}function Bt(e){return e.replace(/\x1B\]8;;[^\x07]*(?:\x07|\x1B\\)/g,"").replace(/\x1B\]8;;(?:\x07|\x1B\\)/g,"")}function E(e){return Bt(e).replace(/\x1B\[[0-?]*[ -/]*[@-~]/g,"")}var He=E;function Ve(e){return Array.from(E(e)).length}var ie=u(d.black),ae=u(d.red),P=u(d.green),le=u(d.yellow),ce=u(d.blue),ue=u(d.magenta),G=u(d.cyan),ge=u(d.white),L=u(d.gray),de=u(d.lightRed),me=u(d.lightGreen),fe=u(d.lightYellow),pe=u(d.lightBlue),he=u(d.lightMagenta),be=u(d.lightCyan),U=u(d.lightGray),ye=u(d.bgBlack),Ce=u(d.bgRed),xe=u(d.bgGreen),we=u(d.bgYellow),ke=u(d.bgBlue),$e=u(d.bgMagenta),N=u(d.bgCyan),ve=u(d.bgWhite),Fe=u(d.bgGray),Se=u(d.bgLightRed),Be=u(d.bgLightGreen),Oe=u(d.bgLightYellow),Le=u(d.bgLightBlue),Re=u(d.bgLightMagenta),Ie=u(d.bgLightCyan),H=u(d.bgLightGray),v=u(d.bold),R=u(d.dim),k=u(d.italic),Me=u(d.underline),Ee=u(d.inverse),Te=u(d.hidden),Pe=u(d.strikethrough),Ge=u(d.reset,"");function Je(e){return u(`${V}38;5;${O(e,0,255)}m`)}function Qe(e){return u(`${V}48;5;${O(e,0,255)}m`)}function Xe(e,t,r){return u(`${V}38;2;${O(e,0,255)};${O(t,0,255)};${O(r,0,255)}m`)}function Ze(e,t,r){return u(`${V}48;2;${O(e,0,255)};${O(t,0,255)};${O(r,0,255)}m`)}function et(e,t){let r=(o,s)=>{let l=String(o);if(!g)return l;return`${Ft}${s}\x07${l}${St}`};if(typeof t==="string")return r(e,t);let n=String(e);return(o)=>r(o,n)}var Ot={black:ie,red:ae,green:P,yellow:le,blue:ce,magenta:ue,cyan:G,white:ge,gray:L,lightRed:de,lightGreen:me,lightYellow:fe,lightBlue:pe,lightMagenta:he,lightCyan:be,lightGray:U,bgBlack:ye,bgRed:Ce,bgGreen:xe,bgYellow:we,bgBlue:ke,bgMagenta:$e,bgCyan:N,bgWhite:ve,bgGray:Fe,bgLightRed:Se,bgLightGreen:Be,bgLightYellow:Oe,bgLightBlue:Le,bgLightMagenta:Re,bgLightCyan:Ie,bgLightGray:H,bold:v,dim:R,italic:k,underline:Me,inverse:Ee,hidden:Te,strikethrough:Pe,reset:Ge};function tt(e){return Ot[e]??Ue}function $r(e,t){if(typeof t==="function")return t(e);return tt(t)(e)}function Lt(){return g}var vr={black:ie,red:ae,green:P,yellow:le,blue:ce,magenta:ue,cyan:G,white:ge,gray:L,lightRed:de,lightGreen:me,lightYellow:fe,lightBlue:pe,lightMagenta:he,lightCyan:be,lightGray:U,bgBlack:ye,bgRed:Ce,bgGreen:xe,bgYellow:we,bgBlue:ke,bgMagenta:$e,bgCyan:N,bgWhite:ve,bgGray:Fe,bgLightRed:Se,bgLightGreen:Be,bgLightYellow:Oe,bgLightBlue:Le,bgLightMagenta:Re,bgLightCyan:Ie,bgLightGray:H,bold:v,dim:R,italic:k,underline:Me,inverse:Ee,hidden:Te,strikethrough:Pe,reset:Ge,ansi256:Je,ansi256Bg:Qe,trueColor:Xe,trueColorBg:Ze,link:et,stripColors:He},Fr={black:ie,red:ae,green:P,yellow:le,blue:ce,magenta:ue,cyan:G,white:ge,gray:L,lightRed:de,lightGreen:me,lightYellow:fe,lightBlue:pe,lightMagenta:he,lightCyan:be,lightGray:U,bgBlack:ye,bgRed:Ce,bgGreen:xe,bgYellow:we,bgBlue:ke,bgMagenta:$e,bgCyan:N,bgWhite:ve,bgGray:Fe,bgLightRed:Se,bgLightGreen:Be,bgLightYellow:Oe,bgLightBlue:Le,bgLightMagenta:Re,bgLightCyan:Ie,bgLightGray:H,bold:v,dim:R,italic:k,underline:Me,inverse:Ee,hidden:Te,strikethrough:Pe,reset:Ge,ansi256:Je,ansi256Bg:Qe,trueColor:Xe,trueColorBg:Ze,link:et,stripColors:He,grey:L,lightGrey:U,bgLightGrey:H,supportsColor:Lt};function Rt(e,t,r,n){let o=Ve(e);if(o>=t)return e;let s=n[0]||" ",l=t-o;if(r==="right")return`${s.repeat(l)}${e}`;if(r==="center"){let a=Math.floor(l/2),i=l-a;return`${s.repeat(a)}${e}${s.repeat(i)}`}return`${e}${s.repeat(l)}`}function J(e){return Math.max(0,...e.map(Ve))}function Q(e,t,r="left"){let n=String(e).split(/\r?\n/),o=typeof t==="object"?t:void 0,s=typeof t==="number"?t:o?.width??J(n),l=o?.align??r,a=o?.padChar??" ";return n.map((i)=>Rt(i,Math.max(0,s),l,a)).join(`
6
- `)}function Sr(e,t){return Q(e,t,"left")}function Br(e,t){let r=String(e).split(/\r?\n/);return Q(e,t??process.stdout?.columns??J(r),"right")}function Or(e,t){let r=String(e).split(/\r?\n/);return Q(e,t??process.stdout?.columns??J(r),"center")}var It={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"}};function rt(e,t={}){let r=String(e).split(/\r?\n/),n=It[t.borderStyle??"single"],o=Math.max(0,t.padding??1),s=Math.max(0,t.margin??0),l=t.align??"left",a=J(r),i=a+o*2,c=typeof t.borderColor==="function"?t.borderColor:t.borderColor?tt(t.borderColor):Ue,C=c((()=>{if(!t.title)return`${n.topLeft}${n.horizontal.repeat(i)}${n.topRight}`;let x=` ${E(String(t.title))} `.slice(0,i),S=n.horizontal.repeat(Math.max(0,i-x.length));return`${n.topLeft}${x}${S}${n.topRight}`})()),h=c(`${n.bottomLeft}${n.horizontal.repeat(i)}${n.bottomRight}`),y=r.map((p)=>{let x=Q(p,{align:l,width:a}),S=`${" ".repeat(o)}${x}${" ".repeat(o)}`;return`${c(n.vertical)}${S}${c(n.vertical)}`}),w=" ".repeat(s);return[C,...y,h].map((p)=>`${w}${p}`).join(`
7
- `)}var Lr=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."]);var nt="0.75.527";async function Ar(e,t){return new Promise((r)=>{if(t?.quiet===!1)console.log(),console.log(G(v("Stacks CLI"))+R(` v${nt}`)),console.log();if(b.info(`Running ${N(k(v(` ${e} `)))}`),t?.showPerformance===!1||t?.quiet)return r(0);return r(performance.now())})}function jr(e,t,r){let n={type:"success",useSeconds:!0,...t};return n.message=t?.message||e,new Promise((o)=>{if(r)return Et(r),o(Ae.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(Ae.Success);if(r)b.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] Failed`);else if(n.type==="error")b.error(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Failed"}`);else if(n.type==="warning")b.warn(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}] ${n.message??"Complete"}`);else if(n.type==="info")b.info(`${R(L(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`))} ${n.message??"Complete"}`);else b.success(`${R(L(v(`[${s.toFixed(2)}${n.useSeconds?"s":"ms"}]`)))} ${v(P(n.message??"Complete"))}`)}else if(n?.type==="info")b.info(e);else if(n?.type==="error")b.error(e);else if(n?.type==="warning")b.warn(e);else if(n?.type==="success"&&n?.quiet!==!0)b.success(e);b.flush().catch(()=>{}).then(()=>o(Ae.Success))})}import X from"process";function ot(e){if(!e)return!1;return e.startsWith("--")}function Tt(e){return e.startsWith("-")&&!ot(e)}function je(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 Pt(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]=je(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 Gt(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]]=je(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]]=je(t[r+1],o),r++;else n[s[i]]=!0;return r}function At(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(ot(s))o=Pt(s,e,o,n,t.coerceValues!==!1);else if(Tt(s))o=Gt(s,e,o,n,t.coerceValues!==!1);else r.push(s)}return{args:r,options:n}}function Dr(e){if(e===void 0)e=X.argv.slice(2);return At(e).args}function zr(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 jt(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 Nt(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 jt(e).join(" ");return Nt(X.argv.slice(2))}async function qr(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,C="failed",h=[];function y(f){if(f?.code!=="ESRCH")h.push(f)}function w(){if(o)try{process.kill(-s.pid,"SIGKILL")}catch(f){y(f)}if(s.exitCode===null)try{s.kill("SIGKILL")}catch(f){y(f)}}function p(f,I="failed"){if(!c)i=f,c=!0,C=I;if(m)return;m=!0,w();for(let M of l)a.push(M.cancel().catch((z)=>{h.push(z)}))}let x=()=>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 mt=setTimeout(()=>p(Error(`${t.label} timed out`),"timed out"),t.timeoutMs),Ne=S(l[0],t.stdoutBytes,"stdout"),We=S(l[1],t.stderrBytes,"stderr");try{if(r?.addEventListener("abort",x,{once:!0}),r?.aborted)x();let[f,I,M]=await Promise.all([s.exited,Ne,We]);if(c)throw i;return{exitCode:f,stdout:I,stderr:M}}catch(f){throw p(f),i}finally{try{r?.removeEventListener("abort",x)}catch(f){h.push(f)}if(clearTimeout(mt),!m)w();if(s.exitCode===null)p(Error(`${t.label} interrupted`));await Promise.allSettled([s.exited,Ne,We,...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?`${C}; `:""}process cleanup failed`)}}import{writeSync as Wt}from"fs";import{format as Z}from"util";function Vr(...e){it(1,Z(...e))}function Jr(...e){it(2,Z(...e))}async function Qr(...e){await st(process.stdout,Z(...e))}async function Xr(...e){await st(process.stderr,Z(...e))}function st(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
- `,"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 it(e,t){let r=Buffer.from(`${t}
9
- `),n=0;while(n<r.length)n+=Wt(e,r,n,r.length-n)}import F from"process";import{createInterface as Yt}from"readline";var W=null;function Dt(){if(!W){let e=F.stdin.isTTY&&F.stdout.isTTY;W=Yt({input:F.stdin,output:F.stdout,terminal:e}),W.once("close",()=>{W=null})}return W}var ee=Symbol("stdin-eof");function at(e){return new Promise((t)=>{let r=Dt(),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
- `),F.exit(130)};r.once("close",s),r.once("SIGINT",l);try{r.question(e,o)}catch{o(ee)}})}function lt(){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(!lt())return"";let t=await at(e);return t===ee?"":t}function ct(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 rn(e){let t=typeof e==="string"?{message:e}:e,r=t.initial??!1,n=r?" (Y/n) ":" (y/N) ";if(!lt())return null;let o=await at(`${t.message}${n}`);if(o===ee)return null;return ct(o,r)}async function zt(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 ct(o,r)}async function _t(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 qt(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 Kt(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 Ut(e){return(await Y(`${(typeof e==="string"?{message:e}:e).message} `)).trim()}var nn={text:_t,confirm:zt,select:qt,multiselect:Kt,password:Ut};import{handleError as Ht}from"@stacksjs/error-handling";async function Vt(e,t){let r={...t,stdin:t?.stdin??"inherit",verbose:t?.verbose??!1};return await se(e,r)}async function ln(e,t){let r={...t,stdio:[t?.stdin??"inherit","pipe","pipe"],verbose:t?.verbose??!1};return await se(e,r)}async function cn(e,t){let r={...t,stdio:[t?.stdin??"inherit","pipe","pipe"],verbose:t?.verbose??!1};return await qe(e,r)}async function un(e,t){let r=[];for(let n of e){let o=await Vt(n,t);if(o.isErr)throw Ht("Error during runCommands",o.error),o.error;r.push(o)}return r}import Jt from"process";var Qt=["SIGINT","SIGTERM","SIGHUP"],A=new Map,ut=!1;function Xt(){if(ut)return;ut=!0;for(let e of Qt)Jt.on(e,async()=>{for(let[t,r]of A)try{await r()}catch(n){console.error(`[signals] cleanup '${t}' threw:`,n)}})}function mn(e,t){return Xt(),A.set(e,t),()=>{if(A.get(e)===t)A.delete(e)}}function fn(e){A.delete(e)}function pn(){return[...A.keys()]}var gt=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],D=process.stdout.isTTY&&!process.env.CI;function Zt(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=gt[r];process.stdout.write(`${a} ${t}`),r=(r+1)%gt.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 bn(e,t,r){let n=Zt(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 dt="\r\x1B[2K";function er(){return{columns:T.stdout.columns??80,rows:T.stdout.rows??24}}function tr(){return Boolean(T.stdout.isTTY)&&!T.env.CI}function wn(e,t){console.log(rt(e,t===void 0?{}:{title:t}))}function kn(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 C=Math.max(0,c-E(i).length);return m==="right"?" ".repeat(C)+i:i+" ".repeat(C)},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(`
11
- `)}function $n(e){if(!Number.isFinite(e.total)||e.total<=0)throw TypeError(`progress() needs a positive total; got ${e.total}`);let t=e.format??"|{bar}| {percentage}% | {value}/{total}",r=e.width??Math.max(10,Math.floor(er().columns/3)),n=tr(),o=0,s=-1,l=(i)=>{let c=Math.min(1,o/e.total),m=Math.round(c*r),C={bar:"\u2588".repeat(m)+"\u2591".repeat(r-m),percentage:Math.round(c*100),value:o,total:e.total,...i},h=t.replace(/\{(\w+)\}/g,(w,p)=>String(C[p]??w));if(n){T.stdout.write(`${dt}${h}`);return}let y=Math.floor(c*10);if(y>s)s=y,console.log(h)},a={update(i,c={}){o=Math.max(0,Math.min(e.total,i)),l(c)},increment(i=1){a.update(o+i)},stop(i){if(n)T.stdout.write(dt);if(i)console.log(i);else if(n)T.stdout.write(`
12
- `)},get value(){return o},get total(){return e.total}};return a}async function vn(e){let t=[];for(let r of e){let n=Date.now(),o=r.skip?.();if(o){console.log(`- ${r.title}${typeof o==="string"?` (${o})`:""}`),t.push({title:r.title,status:"skipped",durationMs:0});continue}try{await r.task(),console.log(`\u2713 ${r.title}`),t.push({title:r.title,status:"done",durationMs:Date.now()-n})}catch(s){throw console.log(`\u2717 ${r.title}`),t.push({title:r.title,status:"failed",error:s instanceof Error?s:Error(String(s)),durationMs:Date.now()-n}),s}}return t}export{ar as CLI,Q as align,Je as ansi256,Qe as ansi256Bg,xt as applyAliases,ye as bgBlack,ke as bgBlue,N as bgCyan,Fe as bgGray,xe as bgGreen,Le as bgLightBlue,Ie as bgLightCyan,H as bgLightGray,Be as bgLightGreen,Re as bgLightMagenta,Se as bgLightRed,Oe as bgLightYellow,$e as bgMagenta,Ce as bgRed,ve as bgWhite,we as bgYellow,ie as black,ce as blue,v as bold,rt as box,jt as buddyOptionArgs,Nt as buddyOptions,Or as centerAlign,cr as cli,$r as colorize,vr as colors,zt as confirm,rn as confirmOrNull,G as cyan,fr as defineCommand,pr as defineCommands,R as dim,yt as discoverCommandFiles,se as exec,qe as execSync,tt as getColor,er as getTerminalSize,L as gray,P as green,Te as hidden,nr as installPackage,or as installStack,Ar as intro,Ee as inverse,tr as isInteractive,k as italic,Fr as kolorist,Sr as leftAlign,pe as lightBlue,be as lightCyan,U as lightGray,me as lightGreen,he as lightMagenta,de as lightRed,fe as lightYellow,et as link,pn as listSignalHandlers,_e as loadCommandRegistry,mr as loadCommands,b as log,ue as magenta,Kt as multiselect,wn as note,fn as offSignal,mn as onSignal,lr as onUnknownSubcommand,jr as outro,Dr as parseArgs,At as parseArgv,zr as parseOptions,Ut as password,Vr as print,Qr as printAsync,Jr as printError,Xr as printErrorAsync,$n as progress,nn as prompts,lt as promptsAreInteractive,Lr as quotes,ae as red,Ge as reset,Ct as resolveCommands,Br as rightAlign,qr as runBoundedProcess,Vt as runCommand,cn as runCommandSync,un as runCommands,ln as runProcess,qt as select,Zt as spinner,Pe as strikethrough,E as stripAnsi,He as stripColors,kn as table,vn as tasks,_t as text,Xe as trueColor,Ze as trueColorBg,Me as underline,ge as white,bn as withSpinner,le as yellow};
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.529";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
+ `,"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
+ `),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
+ `),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(`
11
+ `)}function Fn(e){if(!Number.isFinite(e.total)||e.total<=0)throw TypeError(`progress() needs a positive total; got ${e.total}`);let t=e.format??"|{bar}| {percentage}% | {value}/{total}",r=e.width??Math.max(10,Math.floor(tr().columns/3)),n=rr(),o=0,s=-1,l=(i)=>{let c=Math.min(1,o/e.total),m=Math.round(c*r),y={bar:"\u2588".repeat(m)+"\u2591".repeat(r-m),percentage:Math.round(c*100),value:o,total:e.total,...i},h=t.replace(/\{(\w+)\}/g,(x,p)=>String(y[p]??x));if(n){T.stdout.write(`${mt}${h}`);return}let b=Math.floor(c*10);if(b>s)s=b,console.log(h)},a={update(i,c={}){o=Math.max(0,Math.min(e.total,i)),l(c)},increment(i=1){a.update(o+i)},stop(i){if(n)T.stdout.write(mt);if(i)console.log(i);else if(n)T.stdout.write(`
12
+ `)},get value(){return o},get total(){return e.total}};return a}async function Sn(e){let t=[];for(let r of e){let n=Date.now(),o=r.skip?.();if(o){console.log(`- ${r.title}${typeof o==="string"?` (${o})`:""}`),t.push({title:r.title,status:"skipped",durationMs:0});continue}try{await r.task(),console.log(`\u2713 ${r.title}`),t.push({title:r.title,status:"done",durationMs:Date.now()-n})}catch(s){throw console.log(`\u2717 ${r.title}`),t.push({title:r.title,status:"failed",error:s instanceof Error?s:Error(String(s)),durationMs:Date.now()-n}),s}}return t}export{lr as CLI,V as align,Ve as ansi256,Je as ansi256Bg,wt as applyAliases,he as bgBlack,xe as bgBlue,N as bgCyan,$e as bgGray,ye as bgGreen,Be as bgLightBlue,Le as bgLightCyan,K as bgLightGray,Fe as bgLightGreen,Oe as bgLightMagenta,ve as bgLightRed,Se as bgLightYellow,we as bgMagenta,be as bgRed,ke as bgWhite,Ce as bgYellow,oe as black,ae as blue,v as bold,tt as box,Nt as buddyOptionArgs,Wt as buddyOptions,vr as centerAlign,ur as cli,Cr as colorize,xr as colors,_t as confirm,on as confirmOrNull,G as cyan,pr as defineCommand,hr as defineCommands,L as dim,Ct as discoverCommandFiles,Ae as exec,rt as execSync,et as getColor,tr as getTerminalSize,O as gray,P as green,Me as hidden,or as installPackage,sr as installStack,Nr as intro,Ie as inverse,rr as isInteractive,w as italic,wr as kolorist,kr as leftAlign,me as lightBlue,pe as lightCyan,q as lightGray,ge as lightGreen,fe as lightMagenta,ue as lightRed,de as lightYellow,Ze as link,bn as listSignalHandlers,qe as loadCommandRegistry,fr as loadCommands,k as log,le as magenta,Ut as multiselect,$n as note,hn as offSignal,pn as onSignal,cr as onUnknownSubcommand,Wr as outro,_r as parseArgs,jt as parseArgv,qr as parseOptions,Ht as password,Qr as print,Zr as printAsync,Xr as printError,en as printErrorAsync,Fn as progress,sn as prompts,ct as promptsAreInteractive,Fr as quotes,se as red,Te as reset,xt as resolveCommands,$r as rightAlign,Ur as runBoundedProcess,Jt as runCommand,gn as runCommandSync,dn as runCommands,un as runProcess,Kt as select,er as spinner,Ee as strikethrough,E as stripAnsi,Ue as stripColors,vn as table,Sn as tasks,qt as text,Qe as trueColor,Xe as trueColorBg,Re as underline,ce as white,Cn as withSpinner,ie as yellow};
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.527",
5
+ "version": "0.75.529",
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.527",
74
- "@stacksjs/error-handling": "0.75.527",
75
- "@stacksjs/logging": "0.75.527",
76
- "@stacksjs/types": "0.75.527"
73
+ "@stacksjs/collections": "0.75.529",
74
+ "@stacksjs/error-handling": "0.75.529",
75
+ "@stacksjs/logging": "0.75.529",
76
+ "@stacksjs/types": "0.75.529"
77
77
  },
78
78
  "devDependencies": {
79
- "@stacksjs/config": "0.75.527",
80
- "@stacksjs/path": "0.75.527",
81
- "@stacksjs/utils": "0.75.527",
82
- "@stacksjs/validation": "0.75.527",
79
+ "@stacksjs/config": "0.75.529",
80
+ "@stacksjs/path": "0.75.529",
81
+ "@stacksjs/utils": "0.75.529",
82
+ "@stacksjs/validation": "0.75.529",
83
83
  "better-dx": "^0.2.24"
84
84
  }
85
85
  }