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.
|
|
7
|
-
# When adding additional environment variables, the schema in "/src/env.
|
|
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,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
|
|
7
|
+
import "./src/env"
|
|
6
8
|
|
|
7
|
-
|
|
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
|