next-ts-cli 1.0.9 → 1.0.10
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/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -88,4 +88,4 @@ CLERK_SECRET_KEY="sk_test_..."
|
|
|
88
88
|
# https://ai-sdk.dev/docs/getting-started/nextjs-app-router
|
|
89
89
|
AI_GATEWAY_API_KEY="sk_..."
|
|
90
90
|
`),l};import S from"path";import ge from"fs-extra";import fe from"path";import ue from"fs-extra";import mt from"sort-package-json";var me={"better-auth":"^1.4.10","drizzle-kit":"^0.31.5","drizzle-orm":"^0.41.0",postgres:"^3.4.7",tailwindcss:"^4.0.15",postcss:"^8.5.3","@tailwindcss/postcss":"^4.0.15","@biomejs/biome":"^2.3.10","@supabase/ssr":"^0.8.0","@supabase/supabase-js":"^2.89.0","@stripe/react-stripe-js":"^5.4.1","@stripe/stripe-js":"^8.6.0",stripe:"^20.1.0","@clerk/nextjs":"^6.36.5","@neondatabase/serverless":"^1.0.2",ai:"^6.0.6","@ai-sdk/react":"^3.0.6"};var d=e=>{let{dependencies:t,devMode:o,projectDir:n}=e,s=ue.readJSONSync(fe.join(n,"package.json"));t.forEach(i=>{let p=me[i];o&&s.devDependencies?s.devDependencies[i]=p:s.dependencies&&(s.dependencies[i]=p)});let r=mt(s);ue.writeJSONSync(fe.join(n,"package.json"),r,{spaces:2})};var he=({projectDir:e,packages:t})=>{let o=t?.drizzle.inUse;d({projectDir:e,dependencies:["better-auth"],devMode:!1});let s=S.join(c,"template/extras"),r=S.join(s,"better-auth"),i="api/auth/[...all]/route.ts",p=S.join(r,i),l=S.join(e,"app",i);ge.copySync(p,l);let f=S.join(r,o?"with-drizzle-auth.ts":"base-auth.ts"),b=S.join(e,"lib","auth.ts");ge.copySync(f,b)};import v from"path";import ye from"fs-extra";import ft from"path";import be from"fs-extra";import ut from"sort-package-json";var x=e=>{let{scripts:t,projectDir:o}=e,n=ft.join(o,"package.json"),s=be.readJSONSync(n);s.scripts={...s.scripts,...t};let r=ut(s);be.writeJSONSync(n,r,{spaces:2})};var ke=({projectDir:e})=>{d({projectDir:e,dependencies:["drizzle-kit"],devMode:!0}),d({projectDir:e,dependencies:["drizzle-orm","postgres"],devMode:!1});let t=v.join(c,"template/extras"),o=v.join(t,"drizzle"),n=v.join(o,"drizzle.config.ts"),s=v.join(e,"drizzle.config.ts");ye.copySync(n,s);let r=v.join(o,"db"),i=v.join(e,"lib/db");ye.copySync(r,i),x({projectDir:e,scripts:{"db:push":"drizzle-kit push","db:studio":"drizzle-kit studio","db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate"}})};import g from"path";import K from"fs-extra";var _e=({projectDir:e})=>{let t=g.join(c,"template/extras"),o=g.join(t,"docker");K.copySync(g.join(o,"Dockerfile"),g.join(e,"Dockerfile")),K.copySync(g.join(o,"docker-compose.prod.yml"),g.join(e,"docker-compose.prod.yml")),K.copySync(g.join(o,".dockerignore"),g.join(e,".dockerignore")),x({projectDir:e,scripts:{"docker:build":"docker compose -f docker-compose.prod.yml build","docker:up":"docker compose -f docker-compose.prod.yml up -d","docker:down":"docker compose -f docker-compose.prod.yml down","docker:logs":"docker compose -f docker-compose.prod.yml logs -f","docker:exec":"docker compose -f docker-compose.prod.yml exec app sh","docker:exec:bash":"docker compose -f docker-compose.prod.yml exec app bash","docker:exec:sh":"docker compose -f docker-compose.prod.yml exec app sh","docker:exec:npm":"docker compose -f docker-compose.prod.yml exec app npm"}})};import W from"path";import bt from"fs-extra";import B from"path";import h from"fs-extra";var w=e=>{let{serverName:t,serverConfig:o,projectDir:n}=e;gt({serverName:t,serverConfig:o,projectDir:n}),ht({serverName:t,serverConfig:o,projectDir:n})},gt=e=>{let{serverName:t,serverConfig:o,projectDir:n}=e,s=B.join(n,".cusror/mpc.json");h.ensureDirSync(B.dirname(s));let r={args:o.args,command:o.command,env:o.env,url:o.url},i={};h.existsSync(s)&&(i=h.readJSONSync(s)),i.mcpServers||(i.mcpServers={}),i.mcpServers[t]={...r},h.writeJSONSync(s,i,{spaces:" "})},ht=e=>{let{serverName:t,serverConfig:o,projectDir:n}=e,s=B.join(n,".vscode/mcp.json");h.ensureDirSync(B.dirname(s));let r={};h.existsSync(s)&&(r=h.readJSONSync(s)),r.servers||(r.servers={}),r.servers[t]={...o},h.writeJSONSync(s,r,{spaces:" "})};var Se=({projectDir:e})=>{d({projectDir:e,dependencies:["@supabase/ssr","@supabase/supabase-js"],devMode:!1});let t=W.join(c,"template/extras"),o=W.join(t,"supabase"),n=W.join(e,"lib","supabase");bt.copySync(o,n),w({serverName:"supabase",serverConfig:{type:"http",url:"https://mcp.supabase.com/mcp?project_ref=<YOUR_SUPABASE_PROJECT_ID>"},projectDir:e})};import P from"path";import xe from"fs-extra";var ve=({projectDir:e})=>{d({projectDir:e,dependencies:["stripe","@stripe/stripe-js","@stripe/react-stripe-js"],devMode:!1});let t=P.join(c,"template/extras"),o=P.join(t,"stripe"),n=P.join(o,"checkout_session"),s=P.join(e,"app/api/checkout_session");xe.copySync(n,s);let r=P.join(o,"webhook/stripe/route.ts"),i=P.join(e,"app/api/webhook/stripe/route.ts");xe.copySync(r,i),x({projectDir:e,scripts:{"webhook:local":"stripe listen --forward-to localhost:3000/api/webhook/stripe"}}),w({serverName:"stripe",serverConfig:{type:"http",url:"https://mcp.stripe.com"},projectDir:e})};import I from"path";import F from"fs-extra";var we=({projectDir:e})=>{let t=I.join(c,"template/extras"),o=I.join(t,"shadcnui"),n=I.join(o,"components.json"),s=I.join(e,"components.json");F.copySync(n,s);let r=I.join(o,"globals.css"),i=I.join(e,"app/globals.css");F.writeFileSync(i,F.readFileSync(r,"utf8")),w({serverName:"shadcn",serverConfig:{command:"npx",args:["shadcn@latest","mcp"]},projectDir:e})};import A from"path";import Pe from"fs-extra";var Ie=({projectDir:e})=>{d({projectDir:e,dependencies:["@clerk/nextjs"],devMode:!1});let t=A.join(c,"template/extras"),o=A.join(t,"clerk"),n=A.join(o,"proxy.ts"),s=A.join(e,"proxy.ts");Pe.copySync(n,s);let r=A.join(o,"layout.tsx"),i=A.join(e,"app/layout.tsx");Pe.copySync(r,i)};import Ae from"path";import yt from"fs-extra";var Ee=({projectDir:e,packages:t})=>{if(d({projectDir:e,dependencies:["@neondatabase/serverless"],devMode:!1}),t?.drizzle.inUse){let o=Ae.join(c,"template/extras/neon/index.ts"),n=Ae.join(e,"lib/db/index.ts");yt.copySync(o,n)}};import D from"path";import kt from"fs-extra";var Ce=({projectDir:e})=>{d({projectDir:e,dependencies:["ai","@ai-sdk/react"],devMode:!1});let t=D.join(c,"template/extras"),o=D.join(t,"vercel-ai"),n=D.join(o,"route.ts"),s=D.join(e,"app/api/chat/route.ts");kt.copySync(n,s)};var je=e=>({docker:{inUse:e.includes("docker"),installer:_e},betterAuth:{inUse:e.includes("betterAuth"),installer:he},drizzle:{inUse:e.includes("drizzle"),installer:ke},envVariables:{inUse:!0,installer:de},supabase:{inUse:e.includes("supabase"),installer:Se},stripe:{inUse:e.includes("stripe"),installer:ve},shadcnui:{inUse:e.includes("shadcnui"),installer:we},clerk:{inUse:e.includes("clerk"),installer:Ie},neon:{inUse:e.includes("neon"),installer:Ee},vercelAi:{inUse:e.includes("vercelAi"),installer:Ce}});import Te from"path";var ze=e=>{let o=M(e).split("/"),n=o[o.length-1];if(n==="."){let i=Te.resolve(process.cwd());n=Te.basename(i)}let s=o.findIndex(i=>i.startsWith("@"));o.findIndex(i=>i.startsWith("@"))!==-1&&(n=o.slice(s).join("/"));let r=o.filter(i=>!i.startsWith("@")).join("/");return[n,r]};import _t from"gradient-string";var St=["#003f5b","#5f5195","#cc4c91","#ff6f4e","#ff7030","#f10062","#b1008f","#2c19a8"],Re=()=>{let e=_t(St),t=u();(t==="yarn"||t==="pnpm")&&console.log(""),console.log(e.multiline(q))};import xt from"chalk";import{execa as Ue}from"execa";import Me from"ora";var H=async(e,t,o)=>{let{onDataHandle:n,args:s=["install"],stdout:r="pipe"}=o,i=Me(`Running ${t} install...`).start(),p=Ue(t,s,{cwd:e,stdout:r});return await new Promise((l,f)=>{n&&p.stdout?.on("data",n(i)),p.on("error",b=>f(b)),p.on("close",()=>l())}),i},vt=async(e,t)=>{switch(e){case"npm":return await Ue(e,["install"],{cwd:t,stderr:"inherit"}),null;case"pnpm":return H(t,e,{onDataHandle:o=>n=>{let s=n.toString();s.includes("Progress")&&(o.text=s.includes("|")?s.split(" | ")[1]??"":s)}});case"yarn":return H(t,e,{onDataHandle:o=>n=>{o.text=n.toString()}});case"bun":return H(t,e,{stdout:"ignore"})}},Oe=async({projectDir:e})=>{a.info("Installing dependencies...");let t=u();(await vt(t,e)??Me()).succeed(xt.green(`Successfully installed dependencies!
|
|
91
|
-
`))};import{execSync as wt}from"child_process";import Pt from"https";var Ne=e=>{let t=_();t.includes("beta")?(a.warn(" You are using a beta version of next-ts-cli."),a.warn(" Please report any bugs you encounter.")):t.includes("next")?(a.warn(" You are running next-ts-cli with the @next tag which is no longer maintained."),a.warn(" Please run the CLI with @latest instead.")):t!==e&&(a.warn(" You are using an outdated version of next-ts-cli."),a.warn(" Your version:",t+".","Latest version in the npm registry:",e),a.warn(" Please run the CLI with @latest to get the latest updates.")),console.log("")};function It(){return new Promise((e,t)=>{Pt.get("https://registry.npmjs.org/-/package/next-ts-cli/dist-tags",o=>{if(o.statusCode===200){let n="";o.on("data",s=>{n+=s}),o.on("end",()=>{e(JSON.parse(n).latest)})}else t()}).on("error",()=>{t()})})}var Be=()=>It().catch(()=>{try{return wt("npm view next-ts-cli version").toString().trim()}catch{return null}});var Et=async()=>{let e=await Be(),t=u();Re(),e&&Ne(e);let{appName:o,packages:n,flags:{alias:s}}=await ee(),r=je(n),[i,p]=ze(o),l=await re({projectName:p,scopedAppName:i,packages:r,alias:s}),f=Y.readJSONSync(z.join(l,"package.json"));if(f.name=i,f.nextTsMetadata={initVersion:_()},t!=="bun"){let{stdout:Ge}=await At(t,["-v"],{cwd:l});f.packageManager=`${t}@${Ge.trim()}`}Y.writeJSONSync(z.join(l,"package.json"),f,{spaces:2}),s!=="@/"&&pe(l,s),await Oe({projectDir:l}),await ae(l),await le({projectName:p});let b=z.join(c,"template/
|
|
91
|
+
`))};import{execSync as wt}from"child_process";import Pt from"https";var Ne=e=>{let t=_();t.includes("beta")?(a.warn(" You are using a beta version of next-ts-cli."),a.warn(" Please report any bugs you encounter.")):t.includes("next")?(a.warn(" You are running next-ts-cli with the @next tag which is no longer maintained."),a.warn(" Please run the CLI with @latest instead.")):t!==e&&(a.warn(" You are using an outdated version of next-ts-cli."),a.warn(" Your version:",t+".","Latest version in the npm registry:",e),a.warn(" Please run the CLI with @latest to get the latest updates.")),console.log("")};function It(){return new Promise((e,t)=>{Pt.get("https://registry.npmjs.org/-/package/next-ts-cli/dist-tags",o=>{if(o.statusCode===200){let n="";o.on("data",s=>{n+=s}),o.on("end",()=>{e(JSON.parse(n).latest)})}else t()}).on("error",()=>{t()})})}var Be=()=>It().catch(()=>{try{return wt("npm view next-ts-cli version").toString().trim()}catch{return null}});var Et=async()=>{let e=await Be(),t=u();Re(),e&&Ne(e);let{appName:o,packages:n,flags:{alias:s}}=await ee(),r=je(n),[i,p]=ze(o),l=await re({projectName:p,scopedAppName:i,packages:r,alias:s}),f=Y.readJSONSync(z.join(l,"package.json"));if(f.name=i,f.nextTsMetadata={initVersion:_()},t!=="bun"){let{stdout:Ge}=await At(t,["-v"],{cwd:l});f.packageManager=`${t}@${Ge.trim()}`}Y.writeJSONSync(z.join(l,"package.json"),f,{spaces:2}),s!=="@/"&&pe(l,s),await Oe({projectDir:l}),await ae(l),await le({projectName:p});let b=z.join(c,"template/base"),G=z.join(b,".gitignore"),De=z.join(l,".gitignore");Y.copySync(G,De),process.exit(0)};Et().catch(e=>{a.error("Aborting installation..."),e instanceof Error?a.error(e):(a.error("An unknown error has occurred. Please open an issue on github with the below:"),console.log(e)),process.exit(1)});
|