create-lx2-app 0.7.1 → 0.7.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.
package/dist/index.js CHANGED
@@ -3,8 +3,8 @@ import Ne from"path";import{execa as Pt}from"execa";import Fe from"fs-extra";imp
3
3
  / __| _ \\ __| /_\\_ _| __| | | __ __|_ ) /_\\ | _ \\ _ \\
4
4
  | (__| / _| / _ \\| | | _| | |__\\ \\ / / / / _ \\| _/ _/
5
5
  \\___|_|_\\___/_/ \\_\\_| |___| |____/_\\_\\/___| /_/ \\_\\_| |_|
6
- `,C="my-lx2-app",B="create-lx2-app";import w from"path";import T from"fs-extra";import se from"path";import ne from"fs-extra";import Qe from"sort-package-json";var ae={"next-auth":"^5.0.0-beta.25","@auth/prisma-adapter":"^2.8.0","better-auth":"^1.2.7","better-sqlite3":"^11.9.1","@types/better-sqlite3":"^7.6.13",prisma:"^6.5.0","@prisma/client":"^6.5.0","@t3-oss/env-nextjs":"^0.12.0",zod:"^3.24.2",prettier:"^3.5.3","prettier-plugin-tailwindcss":"^0.6.11","@ianvs/prettier-plugin-sort-imports":"^4.4.1",eslint:"^9","eslint-config-next":"^15.2.4","@eslint/eslintrc":"^3.3.1",typescript:"^5.8.2","@types/node":"^22","@types/react":"^19","@types/react-dom":"^19",payload:"^3.33.0","@payloadcms/next":"^3.33.0","@payloadcms/payload-cloud":"^3.33.0","@payloadcms/richtext-lexical":"^3.33.0","@payloadcms/db-vercel-postgres":"^3.33.0","@payloadcms/db-sqlite":"^3.33.0",graphql:"^16.10.0",sharp:"^0.34.1"};var h=e=>{let{dependencies:a,devMode:s,projectDir:n}=e,t=ne.readJsonSync(se.join(n,"package.json"));a.forEach(i=>{let r=ae[i];s&&t.devDependencies?t.devDependencies[i]=r:t.dependencies&&(t.dependencies[i]=r)});let o=Qe(t);ne.writeJsonSync(se.join(n,"package.json"),o,{spaces:2})};var oe=({projectDir:e,packages:a,databaseProvider:s})=>{let n=a?.prisma.inUse,t=["better-auth"],o=[];n||t.push("better-sqlite3"),n||o.push("@types/better-sqlite3"),h({projectDir:e,dependencies:t,devMode:!1}),h({projectDir:e,dependencies:o,devMode:!0});let i=w.join(d,"template/packages"),r=w.join(i,"src/app/api/auth/[...betterauth]/route.ts"),p=w.join(e,"src/app/api/auth/[...all]/route.ts"),c=w.join(i,"src/server/auth/config",n?"better-auth-with-prisma.ts":"better-auth.ts"),g=T.readFileSync(c,"utf-8");n&&s!=="sqlite"&&(g=g.replace('provider: "sqlite",',`provider: "${{mysql:"mysql",postgresql:"postgresql"}[s]}",`));let f=w.join(e,"src/server/auth/index.ts");T.mkdirSync(w.dirname(f),{recursive:!0}),T.writeFileSync(f,g);let m=w.join(i,"src/lib/auth/better-auth-client.ts"),v=w.join(e,"src/lib/auth/client.ts");T.copySync(r,p),T.copySync(m,v)};import y from"path";import P from"fs-extra";var ie=({projectDir:e,packages:a,databaseProvider:s})=>{let n=[],t=[];if(a?.payload.inUse)switch(n.push("payload"),n.push("@payloadcms/next"),n.push("@payloadcms/payload-cloud"),n.push("@payloadcms/richtext-lexical"),n.push("graphql"),s){case"sqlite":t.push("@payloadcms/db-sqlite");break;case"postgresql":t.push("@payloadcms/db-vercel-postgres");break}h({projectDir:e,dependencies:n,devMode:!1}),h({projectDir:e,dependencies:t,devMode:!1});let o=y.join(d,"template/packages"),i=y.join(o,"config/payload",`${s==="postgresql"?"with-postgres":"with-sqlite"}.ts`),r=y.join(e,"payload.config.ts");P.copyFileSync(i,r);let p=y.join(o,"src/payload/collections"),c=y.join(e,"src/collections");P.mkdirSync(c,{recursive:!0}),P.copyFileSync(y.join(p,"Media.ts"),y.join(c,"Media.ts")),P.copyFileSync(y.join(p,"Users.ts"),y.join(c,"Users.ts"));let g=y.join(o,"src/app/(payload)"),f=y.join(e,"src/app/(payload)");P.mkdirSync(f,{recursive:!0}),P.copySync(g,f);let m=y.join(e,"package.json"),v=P.readJSONSync(m);v.scripts={...v.scripts,payload:"payload","generate:importmap":"payload generate:importmap","generate:types":"payload generate:types"},P.writeJSONSync(m,v,{spaces:2})};import re from"path";import Xe from"fs-extra";var le=({projectDir:e,packages:a})=>{let s=a?.typescript.inUse,n=a?.payload.inUse,t=[];s&&(t.push("typescript"),t.push("@types/node"),t.push("@types/react"),t.push("@types/react-dom")),h({projectDir:e,dependencies:t,devMode:!0});let o=re.join(d,"template/packages/config/tsconfig",`${n?"with-payload":"base"}.json`),i=re.join(e,"tsconfig.json");Xe.copyFileSync(o,i)};import _ from"path";import J from"fs-extra";var pe=({projectDir:e,packages:a})=>{let s=a?.prisma.inUse,n=["next-auth"];s&&n.push("@auth/prisma-adapter"),h({projectDir:e,dependencies:n,devMode:!1});let t=_.join(d,"template/packages"),o="src/app/api/auth/[...nextauth]/route.ts",i=_.join(t,o),r=_.join(e,o),p=_.join(t,"src/server/auth/config",s?"authjs-with-prisma.ts":"authjs.ts"),c=_.join(e,"src/server/auth/config.ts"),g=_.join(t,"src/server/auth/authjs.ts"),f=_.join(e,"src/server/auth/index.ts");J.copySync(i,r),J.copySync(p,c),J.copySync(g,f)};import U from"path";import W from"fs-extra";var ce=({projectDir:e,scopedAppName:a,packages:s,databaseProvider:n})=>{let t=s?.envVariables.inUse,o=s?.authjs.inUse,i=s?.betterAuth.inUse,r=s?.prisma.inUse,p=s?.payload.inUse,c=[];t&&(c.push("@t3-oss/env-nextjs"),c.push("zod")),h({projectDir:e,dependencies:c,devMode:!1});let g=r||p,f=Ze(!!o,!!i,!!r,!!p,a,n),m="";if(g?o?m="with-authjs-db.js":i?m="with-better-auth-db.js":p?m="with-payload.js":m="with-db.js":o?m="with-authjs.js":i&&(m="with-better-auth.js"),m!==""){let Ve=U.join(d,"template/packages/src/env",m),ze=U.join(e,"src/env.js");W.copyFileSync(Ve,ze)}let v=U.join(e,".env"),Be=U.join(e,".env.example"),Je=et+f,F=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64"),We=f.replace('AUTH_SECRET=""',`AUTH_SECRET="${F}" # Generated by create-lx2-app`).replace('BETTER_AUTH_SECRET=""',`BETTER_AUTH_SECRET="${F}" # Generated by create-lx2-app`).replace('PAYLOAD_SECRET=""',`PAYLOAD_SECRET="${F}" # Generated by create-lx2-app`);W.writeFileSync(v,We,"utf-8"),W.writeFileSync(Be,Je,"utf-8")};function Ze(e,a,s,n,t,o){let i=`
7
- # When adding additional environment variables, the schema in "/src/env.js"
6
+ `,C="my-lx2-app",B="create-lx2-app";import w from"path";import T from"fs-extra";import se from"path";import ne from"fs-extra";import Qe from"sort-package-json";var ae={"next-auth":"^5.0.0-beta.25","@auth/prisma-adapter":"^2.8.0","better-auth":"^1.2.7","better-sqlite3":"^11.9.1","@types/better-sqlite3":"^7.6.13",prisma:"^6.5.0","@prisma/client":"^6.5.0","@t3-oss/env-nextjs":"^0.12.0",zod:"^3.24.2",prettier:"^3.5.3","prettier-plugin-tailwindcss":"^0.6.11","@ianvs/prettier-plugin-sort-imports":"^4.4.1",eslint:"^9","eslint-config-next":"^15.2.4","@eslint/eslintrc":"^3.3.1",typescript:"^5.8.2","@types/node":"^22","@types/react":"^19","@types/react-dom":"^19",payload:"^3.33.0","@payloadcms/next":"^3.33.0","@payloadcms/payload-cloud":"^3.33.0","@payloadcms/richtext-lexical":"^3.33.0","@payloadcms/db-vercel-postgres":"^3.33.0","@payloadcms/db-sqlite":"^3.33.0",graphql:"^16.10.0",sharp:"^0.34.1"};var h=e=>{let{dependencies:a,devMode:s,projectDir:n}=e,t=ne.readJsonSync(se.join(n,"package.json"));a.forEach(i=>{let r=ae[i];s&&t.devDependencies?t.devDependencies[i]=r:t.dependencies&&(t.dependencies[i]=r)});let o=Qe(t);ne.writeJsonSync(se.join(n,"package.json"),o,{spaces:2})};var oe=({projectDir:e,packages:a,databaseProvider:s})=>{let n=a?.prisma.inUse,t=["better-auth"],o=[];n||t.push("better-sqlite3"),n||o.push("@types/better-sqlite3"),h({projectDir:e,dependencies:t,devMode:!1}),h({projectDir:e,dependencies:o,devMode:!0});let i=w.join(d,"template/packages"),r=w.join(i,"src/app/api/auth/[...betterauth]/route.ts"),p=w.join(e,"src/app/api/auth/[...all]/route.ts"),c=w.join(i,"src/server/auth/config",n?"better-auth-with-prisma.ts":"better-auth.ts"),g=T.readFileSync(c,"utf-8");n&&s!=="sqlite"&&(g=g.replace('provider: "sqlite",',`provider: "${{mysql:"mysql",postgresql:"postgresql"}[s]}",`));let f=w.join(e,"src/server/auth/index.ts");T.mkdirSync(w.dirname(f),{recursive:!0}),T.writeFileSync(f,g);let m=w.join(i,"src/lib/auth/better-auth-client.ts"),v=w.join(e,"src/lib/auth/client.ts");T.copySync(r,p),T.copySync(m,v)};import y from"path";import P from"fs-extra";var ie=({projectDir:e,packages:a,databaseProvider:s})=>{let n=[],t=[];if(a?.payload.inUse)switch(n.push("payload"),n.push("@payloadcms/next"),n.push("@payloadcms/payload-cloud"),n.push("@payloadcms/richtext-lexical"),n.push("graphql"),s){case"sqlite":t.push("@payloadcms/db-sqlite");break;case"postgresql":t.push("@payloadcms/db-vercel-postgres");break}h({projectDir:e,dependencies:n,devMode:!1}),h({projectDir:e,dependencies:t,devMode:!1});let o=y.join(d,"template/packages"),i=y.join(o,"config/payload",`${s==="postgresql"?"with-postgres":"with-sqlite"}.ts`),r=y.join(e,"payload.config.ts");P.copyFileSync(i,r);let p=y.join(o,"src/payload/collections"),c=y.join(e,"src/collections");P.mkdirSync(c,{recursive:!0}),P.copyFileSync(y.join(p,"Media.ts"),y.join(c,"Media.ts")),P.copyFileSync(y.join(p,"Users.ts"),y.join(c,"Users.ts"));let g=y.join(o,"src/app/(payload)"),f=y.join(e,"src/app/(payload)");P.mkdirSync(f,{recursive:!0}),P.copySync(g,f);let m=y.join(e,"package.json"),v=P.readJSONSync(m);v.scripts={...v.scripts,payload:"payload","generate:importmap":"payload generate:importmap","generate:types":"payload generate:types"},P.writeJSONSync(m,v,{spaces:2})};import re from"path";import Xe from"fs-extra";var le=({projectDir:e,packages:a})=>{let s=a?.typescript.inUse,n=a?.payload.inUse,t=[];s&&(t.push("typescript"),t.push("@types/node"),t.push("@types/react"),t.push("@types/react-dom")),h({projectDir:e,dependencies:t,devMode:!0});let o=re.join(d,"template/packages/config/tsconfig",`${n?"with-payload":"base"}.json`),i=re.join(e,"tsconfig.json");Xe.copyFileSync(o,i)};import _ from"path";import J from"fs-extra";var pe=({projectDir:e,packages:a})=>{let s=a?.prisma.inUse,n=["next-auth"];s&&n.push("@auth/prisma-adapter"),h({projectDir:e,dependencies:n,devMode:!1});let t=_.join(d,"template/packages"),o="src/app/api/auth/[...nextauth]/route.ts",i=_.join(t,o),r=_.join(e,o),p=_.join(t,"src/server/auth/config",s?"authjs-with-prisma.ts":"authjs.ts"),c=_.join(e,"src/server/auth/config.ts"),g=_.join(t,"src/server/auth/authjs.ts"),f=_.join(e,"src/server/auth/index.ts");J.copySync(i,r),J.copySync(p,c),J.copySync(g,f)};import U from"path";import W from"fs-extra";var ce=({projectDir:e,scopedAppName:a,packages:s,databaseProvider:n})=>{let t=s?.envVariables.inUse,o=s?.authjs.inUse,i=s?.betterAuth.inUse,r=s?.prisma.inUse,p=s?.payload.inUse,c=[];t&&(c.push("@t3-oss/env-nextjs"),c.push("zod")),h({projectDir:e,dependencies:c,devMode:!1});let g=r||p,f=Ze(!!o,!!i,!!r,!!p,a,n),m="";if(g?o?m="with-authjs-db.js":i?m="with-better-auth-db.js":p?m="with-payload.js":m="with-db.js":o?m="with-authjs.js":i&&(m="with-better-auth.js"),m!==""){let Ve=U.join(d,"template/packages/src/env",m),ze=U.join(e,"src/env.ts");W.copyFileSync(Ve,ze)}let v=U.join(e,".env"),Be=U.join(e,".env.example"),Je=et+f,F=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64"),We=f.replace('AUTH_SECRET=""',`AUTH_SECRET="${F}" # Generated by create-lx2-app`).replace('BETTER_AUTH_SECRET=""',`BETTER_AUTH_SECRET="${F}" # Generated by create-lx2-app`).replace('PAYLOAD_SECRET=""',`PAYLOAD_SECRET="${F}" # Generated by create-lx2-app`);W.writeFileSync(v,We,"utf-8"),W.writeFileSync(Be,Je,"utf-8")};function Ze(e,a,s,n,t,o){let i=`
7
+ # When adding additional environment variables, the schema in "/src/env.ts"
8
8
  # should be updated accordingly.
9
9
  `.trim().concat(`
10
10
  `);return s&&(i+=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-lx2-app",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Create powerful full-stack web applications with the Lx2 stack",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,11 +1,12 @@
1
+ import type { NextConfig } from "next"
2
+
1
3
  /**
2
4
  * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
3
5
  * for Docker builds.
4
6
  */
5
- import "./src/env.js"
7
+ import "./src/env"
6
8
 
7
- /** @type {import("next").NextConfig} */
8
- const nextConfig = {
9
+ const nextConfig: NextConfig = {
9
10
  /* config options here */
10
11
  }
11
12
 
@@ -31,12 +31,6 @@
31
31
  "@/*": ["./src/*"]
32
32
  }
33
33
  },
34
- "include": [
35
- "next-env.d.ts",
36
- "**/*.ts",
37
- "**/*.tsx",
38
- "**/*.js",
39
- ".next/types/**/*.ts"
40
- ],
34
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
41
35
  "exclude": ["node_modules"]
42
36
  }
@@ -32,12 +32,6 @@
32
32
  "@payload-config": ["./payload.config.ts"]
33
33
  }
34
34
  },
35
- "include": [
36
- "next-env.d.ts",
37
- "**/*.ts",
38
- "**/*.tsx",
39
- "**/*.js",
40
- ".next/types/**/*.ts"
41
- ],
35
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
42
36
  "exclude": ["node_modules"]
43
37
  }
File without changes