zerostarter 0.0.20-canary.0 → 0.0.20
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,join as m,resolve as h}from"node:path";import{existsSync as g,readdirSync as _}from"node:fs";import{createInterface as v}from"node:readline/promises";import{parseArgs as y}from"node:util";import{randomBytes as b}from"node:crypto";import{spawn as ee}from"node:child_process";import{access as te}from"node:fs/promises";import{homedir as ne}from"node:os";var re={name:`zerostarter`,version:`0.0.20
|
|
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,join as m,resolve as h}from"node:path";import{existsSync as g,readdirSync as _}from"node:fs";import{createInterface as v}from"node:readline/promises";import{parseArgs as y}from"node:util";import{randomBytes as b}from"node:crypto";import{spawn as ee}from"node:child_process";import{access as te}from"node:fs/promises";import{homedir as ne}from"node:os";var re={name:`zerostarter`,version:`0.0.20`,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 x=()=>!!(process.stdin.isTTY&&process.stdout.isTTY),ie=(e,t=e)=>process.stdout.isTTY?`\x1b]8;;${e}\x07${t}\x1b]8;;\x07`:e,S=(e,t=process.stdout)=>n=>t.isTTY?`\x1b[${e}m${n}\x1b[0m`:n,C=S(`38;5;208`),w=S(`38;2;63;185;80`),T=S(`38;2;210;153;34`),E=S(`38;2;248;81;73`,process.stderr),ae=async(e,t=``)=>{let n=v({input:process.stdin,output:process.stdout});try{return(await n.question(`${e}${t?` (${t})`:``}: `)).trim()||t}finally{n.close()}},D=async(e,t=!0)=>{let n=v({input:process.stdin,output:process.stdout});try{let r=(await n.question(`${e} (${t?`Y/n`:`y/N`}) `)).trim().toLowerCase();return r?r===`y`||r===`yes`:t}finally{n.close()}};var oe=class extends Error{constructor(...e){super(...e),this.name=`SubprocessError`,this.stdout=``,this.stderr=``}};const O=[`.exe`,`.com`],k=e=>e.replaceAll(/([()\][%!^"`<>&|;, *?])/g,`^$1`),se=e=>k(k(`"${e.replaceAll(/(\\*)"/g,`$1$1\\"`).replace(/(\\*)$/,`$1$1`)}"`)),ce=async(e,t,n)=>{if(O.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=>O.map(n=>te(`${h(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)?[k(e),t.map(se),{...n,shell:!0}]:[e,t,n]},A=async(e,t,n)=>{let r=[e,...t].join(` `),[i,a,o]=await le(e,t,n);o.shell&&a.length>0&&(i=[i,...a].join(` `),a=[]);let s=ee(i,a,o),c=``,l=``;return new Promise((e,t)=>{let n=(e,n,r)=>{let i=new oe(e,r?{cause:r}:void 0);i.stdout=c,i.stderr=l,i.exitCode=n,t(i)},i=e=>{e.code!==`ERR_STREAM_PREMATURE_CLOSE`&&e.code!==`EPIPE`&&n(`Command failed: ${r}`,void 0,e)};s.stdout&&(s.stdout.setEncoding(`utf8`),s.stdout.on(`data`,e=>c+=e),s.stdout.on(`error`,i)),s.stderr&&(s.stderr.setEncoding(`utf8`),s.stderr.on(`data`,e=>l+=e),s.stderr.on(`error`,i)),s.on(`error`,e=>n(`Command failed: ${r}`,void 0,e)),s.on(`close`,(t,i)=>{if(i)return n(`Command was terminated with ${i}: ${r}`);if(t!==0)return n(`Command failed with exit code ${t}: ${r}`,t??void 0);e({stdout:c,stderr:l})})})},j=async(e,t,n)=>{let{stdout:r}=await A(e,t,{cwd:n,stdio:[`ignore`,`pipe`,`pipe`]});return r},M=async(e,t,n)=>{await A(e,t,{cwd:n,stdio:`inherit`})},N=async(e,t)=>{try{return await A(e,t,{stdio:`ignore`}),!0}catch{return!1}},P=`pglaunch@5.5.7`,ue=async()=>N(`docker`,[`info`]),F=e=>{let r=m(e,`.env`);if(!s(r)){let i=m(e,`.env.example`);n(r,s(i)?t(i):``)}return r},I=(e,n)=>{let r=`${n}=`,i=t(e).split(`
|
|
3
3
|
`).find(e=>e.startsWith(r));return i?i.slice(r.length).trim():``},L=(e,r,i)=>{let a=`${r}=`,o=t(e).split(`
|
|
4
4
|
`),s=o.findIndex(e=>e.startsWith(a));if(s>=0)o[s]=`${a}${i}`;else{for(;o.length&&o[o.length-1]===``;)o.pop();o.push(`${a}${i}`,``)}n(e,o.join(`
|
|
5
5
|
`))},R=e=>{let t=F(e);I(t,`BETTER_AUTH_SECRET`)||L(t,`BETTER_AUTH_SECRET`,b(32).toString(`base64`))},z=e=>{let t=m(e,`.env`);return s(t)&&I(t,`POSTGRES_URL`)!==``},de=e=>{let t=e.match(/postgres(?:ql)?:\/\/[\w.:@\-/%?=&]+/);if(!t)return null;let n=e.match(/name "([^" ]+) :\d+" started/),r=e.match(/similar name "([^"]+)"/);return{url:t[0],container:n?n[1]:r?r[1]:``}},B=async(e,t)=>{let n=t?[`--bun`,P,`-k`,`-c`]:[`--bun`,P,`-k`],r;try{r=await j(`bunx`,n,e)}catch(e){let t=e;r=[t.stdout,t.stderr].filter(Boolean).join(`
|