zerostarter 0.0.21-canary.0 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/index.mjs +1 -1
- package/package.json +1 -1
package/dist/bin/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../convert-DMU8fiBc.mjs";import{basename as f,delimiter as p,dirname as m,join as h,parse as g,resolve as _}from"node:path";import{existsSync as v,readFileSync as ee,readdirSync as y}from"node:fs";import{createInterface as b}from"node:readline/promises";import{parseArgs as x}from"node:util";import{randomBytes as te}from"node:crypto";import{spawn as ne}from"node:child_process";import{access as re}from"node:fs/promises";import{homedir as ie}from"node:os";var ae={name:`zerostarter`,version:`0.0.21
|
|
2
|
+
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../convert-DMU8fiBc.mjs";import{basename as f,delimiter as p,dirname as m,join as h,parse as g,resolve as _}from"node:path";import{existsSync as v,readFileSync as ee,readdirSync as y}from"node:fs";import{createInterface as b}from"node:readline/promises";import{parseArgs as x}from"node:util";import{randomBytes as te}from"node:crypto";import{spawn as ne}from"node:child_process";import{access as re}from"node:fs/promises";import{homedir as ie}from"node:os";var ae={name:`zerostarter`,version:`0.0.21`,description:`Go from zero to a production-ready SaaS, rebranded and ready to ship.`,keywords:[`cli`,`saas`,`scaffold`,`starter`,`template`,`zerostarter`],homepage:`https://github.com/nrjdalal/zerostarter#readme`,bugs:`https://github.com/nrjdalal/zerostarter/issues`,license:`MIT`,author:{name:`Neeraj Dalal`,email:`admin@nrjdalal.com`,url:`https://nrjdalal.com`},repository:`nrjdalal/zerostarter`,funding:`https://github.com/sponsors/nrjdalal`,bin:{zerostarter:`dist/bin/index.mjs`},files:[`dist`],type:`module`,types:`./dist/index.d.mts`,exports:`./dist/index.mjs`,scripts:{build:`tsdown`,"check-types":`tsc --noEmit`,dev:`tsdown --watch`,test:`bun test`},devDependencies:{"@packages/config":`workspace:*`,"@types/bun":`catalog:`,"@types/node":`catalog:`,tsdown:`catalog:`,typescript:`catalog:`}};const S=(e,t,n=process.stdout)=>r=>n.isTTY?`\x1b[${e}m${r}\x1b[${t}m`:r,C=S(`36`,`39`),w=S(`32`,`39`),T=S(`33`,`39`),E=S(`90`,`39`),D=S(`2`,`22`),O=S(`31`,`39`,process.stderr),k=S(`38;5;208`,`39`),A={barStart:`┌`,bar:`│`,barEnd:`└`,active:`◆`,submit:`◇`,radioOn:`●`,radioOff:`○`,warn:`▲`,error:`■`,barH:`─`,cornerTR:`╮`,connectL:`├`,cornerBL:`╰`,cornerBR:`╯`},j=()=>!!(process.stdin.isTTY&&process.stdout.isTTY),oe=(e,t=e)=>process.stdout.isTTY?`\x1b]8;;${e}\x07${t}\x1b]8;;\x07`:e,M=e=>oe(e,C(e)),N=e=>{process.stdout.write(`\n ${E(A.barStart)} ${e}\n`)},P=e=>{process.stdout.write(` ${E(A.bar)}\n ${E(A.barEnd)} ${e}\n`)},F=(e=`Cancelled`)=>{process.stdout.write(` ${E(A.bar)}\n ${E(A.barEnd)} ${O(e)}\n`)},I=e=>e.replace(RegExp(`\x1B\\[[0-9;?]*[a-zA-Z]`,`g`),``).replace(RegExp(`\x1B\\]8;;.*?\\x07`,`g`),``).length,L=(e,t=``,n=!1)=>{let r=`\n${e}\n`.split(`
|
|
3
3
|
`),i=I(t),a=r.reduce((e,t)=>Math.max(e,I(t)),i),o=Math.max(a,54)+2,s=r.map(e=>` ${E(A.bar)} ${e}${` `.repeat(o-I(e))}${E(A.bar)}`).join(`
|
|
4
4
|
`),c=n?A.cornerBL:A.connectL;process.stdout.write(` ${E(A.bar)}\n ${C(A.submit)} ${t} ${E(A.barH.repeat(Math.max(o-i-1,1))+A.cornerTR)}\n${s}\n ${E(c+A.barH.repeat(o+2)+A.cornerBR)}\n`)},R=(e,t=[])=>{process.stdout.write(` ${E(A.bar)}\n ${C(A.submit)} ${e}\n`);for(let e of t)process.stdout.write(` ${E(A.bar)} ${e}\n`)},se=e=>{process.stdout.write(` ${E(A.bar)}\n ${w(A.submit)} ${w(e)}\n`)},z=(e,t=[])=>{process.stdout.write(` ${E(A.bar)}\n ${T(A.warn)} ${T(e)}\n`);for(let e of t)process.stdout.write(` ${E(A.bar)} ${T(e)}\n`)},B=[`◒`,`◐`,`◓`,`◑`],ce=async(e,t,n)=>{let r=process.stdout,i=null;if(r.isTTY){let t=0;r.write(` ${E(A.bar)}\n ${C(B[0])} ${e}`),i=setInterval(()=>{t=(t+1)%B.length,r.write(`\r ${C(B[t])} ${e}`)},80)}try{let e=await n();return i&&clearInterval(i),r.write(r.isTTY?`\r\x1b[K ${C(A.submit)} ${t}\n`:` ${E(A.bar)}\n ${C(A.submit)} ${t}\n`),e}catch(e){throw i&&clearInterval(i),r.isTTY&&r.write(`\r\x1B[K`),e}},le=e=>{let t=e?`${w(A.radioOn)} Yes`:D(`${A.radioOff} Yes`),n=e?D(`${A.radioOff} No`):`${w(A.radioOn)} No`;return` ${E(A.bar)} ${t} ${D(`/`)} ${n}`},V=async(e,t=!0)=>{let n=process.stdout;return j()?new Promise(r=>{let i=t,a=process.stdin,o=Math.max(1,Math.ceil((5+I(e))/(n.columns||80)));n.write(` ${E(A.bar)}\n ${C(A.active)} ${e}\n`),n.write(le(i)),a.setRawMode(!0),a.resume(),a.setEncoding(`utf8`);let s=()=>{a.setRawMode(!1),a.pause(),a.removeListener(`data`,u)},c=()=>{n.write(`\r\x1b[K\x1b[${o}A\r\x1b[0J`)},l=()=>{s(),c(),n.write(` ${C(A.submit)} ${e} ${D(i?`Yes`:`No`)}\n`),r(i)};function u(t){t===``?(s(),c(),n.write(` ${D(A.submit)} ${D(e)}\n`),F(),process.exit(130)):t===`\r`||t===`
|
|
5
5
|
`?l():t===`y`||t===`Y`?(i=!0,l()):t===`n`||t===`N`?(i=!1,l()):(t===`\x1B[C`||t===`\x1B[D`||t===`\x1B[A`||t===`\x1B[B`||t===`h`||t===`l`)&&(i=!i,n.write(`\r\x1b[K${le(i)}`))}a.on(`data`,u)}):(n.write(` ${E(A.bar)}\n ${C(A.submit)} ${e} ${D(t?`Yes`:`No`)}\n`),t)},ue=async(e,t=``)=>{process.stdout.write(` ${E(A.bar)}\n ${C(A.active)} ${e}${t?` ${D(`(${t})`)}`:``}\n`);let n=b({input:process.stdin,output:process.stdout});try{return(await n.question(` ${E(A.bar)} `)).trim()||t}finally{n.close()}};var de=class extends Error{constructor(...e){super(...e),this.name=`SubprocessError`,this.stdout=``,this.stderr=``}};const fe=[`.exe`,`.com`],H=e=>e.replaceAll(/([()\][%!^"`<>&|;, *?])/g,`^$1`),pe=e=>H(H(`"${e.replaceAll(/(\\*)"/g,`$1$1\\"`).replace(/(\\*)$/,`$1$1`)}"`)),me=async(e,t,n)=>{if(fe.some(t=>e.toLowerCase().endsWith(t)))return!0;let r=(n.PATH||n.Path||``).split(p).filter(Boolean).map(e=>e.replace(/^"(.*)"$/,`$1`));try{return await Promise.any([t,...r].flatMap(t=>fe.map(n=>re(`${_(t,e)}${n}`)))),!0}catch{return!1}},he=async(e,t,n,r=process.platform===`win32`)=>{let i=n.cwd?String(n.cwd):`.`,a=n.env||process.env;return r&&!n.shell&&!await me(e,i,a)?[H(e),t.map(pe),{...n,shell:!0}]:[e,t,n]},U=async(e,t,n,r)=>{let i=[e,...t].join(` `),[a,o,s]=await he(e,t,n);s.shell&&o.length>0&&(a=[a,...o].join(` `),o=[]);let c=ne(a,o,s),l=``,u=``;return new Promise((e,t)=>{let n=(e,n,r)=>{let i=new de(e,r?{cause:r}:void 0);i.stdout=l,i.stderr=u,i.exitCode=n,t(i)},a=e=>{e.code!==`ERR_STREAM_PREMATURE_CLOSE`&&e.code!==`EPIPE`&&n(`Command failed: ${i}`,void 0,e)};c.stdout&&(c.stdout.setEncoding(`utf8`),c.stdout.on(`data`,e=>{l+=e,r?.(e)}),c.stdout.on(`error`,a)),c.stderr&&(c.stderr.setEncoding(`utf8`),c.stderr.on(`data`,e=>{u+=e,r?.(e)}),c.stderr.on(`error`,a)),c.on(`error`,e=>n(`Command failed: ${i}`,void 0,e)),c.on(`close`,(t,r)=>{if(r)return n(`Command was terminated with ${r}: ${i}`);if(t!==0)return n(`Command failed with exit code ${t}: ${i}`,t??void 0);e({stdout:l,stderr:u})})})},W=async(e,t,n)=>{let{stdout:r}=await U(e,t,{cwd:n,stdio:[`ignore`,`pipe`,`pipe`]});return r},ge=async(e,t,n)=>{await U(e,t,{cwd:n,stdio:`inherit`})},G=async(e,t)=>{try{return await U(e,t,{stdio:`ignore`}),!0}catch{return!1}},_e=RegExp(`\x1B\\[[0-9;?]*[a-zA-Z]`,`g`),ve=e=>e.replace(_e,``),ye=e=>e>=1e3?`[${(e/1e3).toFixed(2)}s]`:`[${e.toFixed(2)}ms]`,be=async(e,t,n)=>{let r=Date.now(),i=process.stdout,a=!!n.label;if(!i.isTTY){a&&i.write(` ${E(A.bar)}\n ${C(A.active)} ${n.label}\n`),await ge(e,t,n.cwd);return}let o=n.lines??3,s=[],c=0,l=``,u=``,d=()=>(i.columns||80)-1,f=e=>{i.write(e?`\x1B[?7h`:`\x1B[?7l`)},p=()=>{c>0&&(i.write(`[${c}A[0J`),c=0)},m=()=>{p();let e=s.slice(-o);for(let t of e)i.write(` ${E(A.bar)} ${D(t.slice(0,Math.max(0,d()-5)))}\n`);c=e.length},h=e=>{u+=e,l+=e;let t=l.split(`
|