zerostarter 0.1.2-canary.0 → 0.1.2

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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
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-HXDPuaZU.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 y,readdirSync as b}from"node:fs";import{spawn as ee}from"node:child_process";import{access as x}from"node:fs/promises";import{createInterface as S}from"node:readline/promises";import{randomBytes as te}from"node:crypto";import{parseArgs as ne}from"node:util";import{homedir as re}from"node:os";const C=(e,t,n=process.stdout)=>r=>n.isTTY?`\x1b[${e}m${r}\x1b[${t}m`:r,w=C(`36`,`39`),T=C(`32`,`39`),E=C(`33`,`39`),D=C(`90`,`39`),O=C(`2`,`22`),k=C(`31`,`39`,process.stderr),ie=C(`2`,`22`,process.stderr),A=C(`38;5;208`,`39`),j=[`◇`,`◆`],M=(e,t)=>{let n=(e%j.length+j.length)%j.length;return`${w(j[n])} ${t}`},N={barStart:`┌`,bar:`│`,barEnd:`└`,active:`◆`,submit:`◇`,radioOn:`●`,radioOff:`○`,warn:`▲`,error:`■`,barH:`─`,cornerTR:`╮`,connectL:`├`,cornerBL:`╰`,cornerBR:`╯`};var ae=class extends Error{constructor(...e){super(...e),this.name=`SubprocessError`,this.stdout=``,this.stderr=``}};const oe=[`.exe`,`.com`],P=e=>e.replaceAll(/([()\][%!^"`<>&|;, *?])/g,`^$1`),se=e=>P(P(`"${e.replaceAll(/(\\*)"/g,`$1$1\\"`).replace(/(\\*)$/,`$1$1`)}"`)),ce=async(e,t,n)=>{if(oe.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=>oe.map(n=>x(`${_(t,e)}${n}`)))),!0}catch{return!1}},le=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 ce(e,i,a)?[P(e),t.map(se),{...n,shell:!0}]:[e,t,n]},F=async(e,t,n,r)=>{let i=[e,...t].join(` `),[a,o,s]=await le(e,t,n);s.shell&&o.length>0&&(a=[a,...o].join(` `),o=[]);let c=ee(a,o,s),l=``,u=``;return new Promise((e,t)=>{let n=(e,n,r)=>{let i=new ae(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})})})},I=async(e,t,n)=>{let{stdout:r}=await F(e,t,{cwd:n,stdio:[`ignore`,`pipe`,`pipe`]});return r},ue=async(e,t,n)=>{await F(e,t,{cwd:n,stdio:`inherit`})},L=async(e,t)=>{try{return await F(e,t,{stdio:`ignore`}),!0}catch{return!1}},de=RegExp(`\x1B\\[[0-9;?]*[a-zA-Z]`,`g`),fe=e=>e.replace(de,``),pe=new WeakSet,me=e=>{if(process.stderr.write(`\n ${k(e instanceof Error?e.message:String(e))}\n`),!(e instanceof ae)||pe.has(e))return;let t=(e.stderr||e.stdout||``).trim();if(!t)return;let n=fe(t).split(`
3
3
  `).map(e=>e.trimEnd()).filter(Boolean).slice(-12);for(let e of n)process.stderr.write(` ${ie(e)}\n`)},he=async(e,t,n)=>{let r=process.stdout,i=n.label??``;if(!r.isTTY){i&&r.write(` ${w(N.active)} ${i}\n`),await ue(e,t,n.cwd);return}let a=n.lines??3,o=[],s=0,c=0,l=``,u=``,d=()=>(r.columns||80)-1,f=e=>{r.write(e?`\x1B[?7h`:`\x1B[?7l`)},p=()=>{c>0&&(r.write(`[${c}A`),c=0)},m=()=>{p();let e=0;r.write(` ${M(s,i)}\n`),e++;for(let t of o.slice(-a))r.write(` ${D(N.bar)} ${O(t.slice(0,Math.max(0,d()-5)))}\n`),e++;c=e},h=e=>{u+=e,l+=e;let t=l.split(`
4
- `);l=t.pop()??``;for(let e of t)o.push(fe(e).replace(/\r/g,``).replace(/\t/g,` `).trimEnd()),m()};m(),f(!1);let g=()=>{f(!0),process.exit(130)};process.once(`SIGINT`,g);let _=setInterval(()=>{s+=1,m()},400),v=()=>{clearInterval(_),process.removeListener(`SIGINT`,g)};try{await F(e,t,{cwd:n.cwd,stdio:[`ignore`,`pipe`,`pipe`]},h)}catch(e){throw v(),p(),f(!0),r.write(u),e&&typeof e==`object`&&pe.add(e),e}v(),p(),f(!0),r.write(` ${w(N.active)} ${n.done??i}\n`);for(let e of o.slice(-a))r.write(` ${D(N.bar)} ${O(e.slice(0,Math.max(0,d()-5)))}\n`)};var ge={name:`zerostarter`,version:`0.1.2-canary.0`,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 R=()=>!!(process.stdin.isTTY&&process.stdout.isTTY),_e=(e,t=e)=>process.stdout.isTTY?`\x1b]8;;${e}\x07${t}\x1b]8;;\x07`:e,z=e=>_e(e,w(e)),B=e=>{process.stdout.write(`\n ${D(N.barStart)} ${e}\n ${D(N.bar)}\n`)},V=e=>{process.stdout.write(` ${D(N.bar)}\n ${D(N.barEnd)} ${e}\n`)},H=(e=`Cancelled`)=>{process.stdout.write(` ${D(N.barEnd)} ${k(e)}\n`)},U=e=>e.replace(RegExp(`\x1B\\[[0-9;?]*[a-zA-Z]`,`g`),``).replace(RegExp(`\x1B\\]8;;.*?\\x07`,`g`),``).length,W=(e,t=``,n=!1)=>{let r=`\n${e}\n`.split(`
4
+ `);l=t.pop()??``;for(let e of t)o.push(fe(e).replace(/\r/g,``).replace(/\t/g,` `).trimEnd()),m()};m(),f(!1);let g=()=>{f(!0),process.exit(130)};process.once(`SIGINT`,g);let _=setInterval(()=>{s+=1,m()},400),v=()=>{clearInterval(_),process.removeListener(`SIGINT`,g)};try{await F(e,t,{cwd:n.cwd,stdio:[`ignore`,`pipe`,`pipe`]},h)}catch(e){throw v(),p(),f(!0),r.write(u),e&&typeof e==`object`&&pe.add(e),e}v(),p(),f(!0),r.write(` ${w(N.active)} ${n.done??i}\n`);for(let e of o.slice(-a))r.write(` ${D(N.bar)} ${O(e.slice(0,Math.max(0,d()-5)))}\n`)};var ge={name:`zerostarter`,version:`0.1.2`,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 R=()=>!!(process.stdin.isTTY&&process.stdout.isTTY),_e=(e,t=e)=>process.stdout.isTTY?`\x1b]8;;${e}\x07${t}\x1b]8;;\x07`:e,z=e=>_e(e,w(e)),B=e=>{process.stdout.write(`\n ${D(N.barStart)} ${e}\n ${D(N.bar)}\n`)},V=e=>{process.stdout.write(` ${D(N.bar)}\n ${D(N.barEnd)} ${e}\n`)},H=(e=`Cancelled`)=>{process.stdout.write(` ${D(N.barEnd)} ${k(e)}\n`)},U=e=>e.replace(RegExp(`\x1B\\[[0-9;?]*[a-zA-Z]`,`g`),``).replace(RegExp(`\x1B\\]8;;.*?\\x07`,`g`),``).length,W=(e,t=``,n=!1)=>{let r=`\n${e}\n`.split(`
5
5
  `),i=U(t),a=r.reduce((e,t)=>Math.max(e,U(t)),i),o=Math.max(a,54)+2,s=r.map(e=>` ${D(N.bar)} ${e}${` `.repeat(o-U(e))}${D(N.bar)}`).join(`
6
6
  `),c=n?N.cornerBL:N.connectL;process.stdout.write(` ${w(N.active)} ${t} ${D(N.barH.repeat(Math.max(o-i-1,1))+N.cornerTR)}\n${s}\n ${D(c+N.barH.repeat(o+2)+N.cornerBR)}\n`)},G=(e,t=[])=>{process.stdout.write(` ${w(N.active)} ${e}\n`);for(let e of t)process.stdout.write(` ${D(N.bar)} ${e}\n`)},ve=e=>{process.stdout.write(` ${T(N.active)} ${T(e)}\n`)},K=(e,t=[])=>{process.stdout.write(` ${E(N.warn)} ${E(e)}\n`);for(let e of t)process.stdout.write(` ${D(N.bar)} ${E(e)}\n`)},ye=async(e,t,n)=>{let r=process.stdout,i=null;if(r.isTTY){let t=0;r.write(` ${M(0,e)}`),i=setInterval(()=>{t+=1,r.write(`\r\x1b[K ${M(t,e)}`)},400)}try{let e=await n();return i&&clearInterval(i),r.write(r.isTTY?`\r\x1b[K ${w(N.active)} ${t}\n`:` ${w(N.active)} ${t}\n`),e}catch(e){throw i&&clearInterval(i),r.isTTY&&r.write(`\r\x1B[K`),e}},be=e=>{let t=e?`${T(N.radioOn)} Yes`:O(`${N.radioOff} Yes`),n=e?O(`${N.radioOff} No`):`${T(N.radioOn)} No`;return` ${D(N.bar)} ${t} ${O(`/`)} ${n}`},q=async(e,t=!0)=>{let n=process.stdout;return R()?new Promise(r=>{let i=t,a=process.stdin,o=Math.max(1,Math.ceil((5+U(e))/(n.columns||80)));n.write(` ${w(N.submit)} ${e}\n`),n.write(be(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(),r(i)};function u(t){t===``?(s(),c(),n.write(` ${w(N.submit)} ${O(e)}\n`),H(),process.exit(130)):t===`\r`||t===`
7
7
  `?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${be(i)}`))}a.on(`data`,u)}):(n.write(` ${w(N.active)} ${e} ${O(t?`Yes`:`No`)}\n`),t)},xe=async(e,t=``)=>{process.stdout.write(` ${w(N.submit)} ${e}${t?` ${O(`(${t})`)}`:``}\n`);let n=S({input:process.stdin,output:process.stdout});try{return(await n.question(` ${D(N.bar)} `)).trim()||t}finally{n.close()}},Se=`pglaunch@5.5.7`,Ce=async()=>L(`docker`,[`info`]),we=t=>{let n=h(t,`.env`);if(!e(n)){let r=h(t,`.env.example`);d(n,e(r)?l(r):``)}return n},Te=(e,t)=>{let n=`${t}=`,r=l(e).split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zerostarter",
3
- "version": "0.1.2-canary.0",
3
+ "version": "0.1.2",
4
4
  "description": "Go from zero to a production-ready SaaS, rebranded and ready to ship.",
5
5
  "keywords": [
6
6
  "cli",