better-ts-stack 1.1.3 → 2.0.0

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.
Files changed (162) hide show
  1. package/README.md +113 -82
  2. package/dist/args.d.ts +12 -0
  3. package/dist/args.d.ts.map +1 -0
  4. package/dist/args.js +90 -0
  5. package/dist/args.js.map +1 -0
  6. package/dist/builder/configGenerator.d.ts +1 -0
  7. package/dist/builder/configGenerator.d.ts.map +1 -1
  8. package/dist/builder/configGenerator.js +46 -6
  9. package/dist/builder/configGenerator.js.map +1 -1
  10. package/dist/builder/dependencyInstaller.d.ts.map +1 -1
  11. package/dist/builder/dependencyInstaller.js +8 -14
  12. package/dist/builder/dependencyInstaller.js.map +1 -1
  13. package/dist/builder/gitInitializer.d.ts.map +1 -1
  14. package/dist/builder/gitInitializer.js +8 -41
  15. package/dist/builder/gitInitializer.js.map +1 -1
  16. package/dist/builder/index.d.ts.map +1 -1
  17. package/dist/builder/index.js +27 -63
  18. package/dist/builder/index.js.map +1 -1
  19. package/dist/builder/moduleSelector.d.ts +1 -4
  20. package/dist/builder/moduleSelector.d.ts.map +1 -1
  21. package/dist/builder/moduleSelector.js +11 -15
  22. package/dist/builder/moduleSelector.js.map +1 -1
  23. package/dist/builder/templateContext.d.ts +2 -17
  24. package/dist/builder/templateContext.d.ts.map +1 -1
  25. package/dist/builder/templateContext.js +6 -5
  26. package/dist/builder/templateContext.js.map +1 -1
  27. package/dist/index.js +45 -20
  28. package/dist/index.js.map +1 -1
  29. package/dist/output/nextSteps.d.ts +1 -2
  30. package/dist/output/nextSteps.d.ts.map +1 -1
  31. package/dist/output/nextSteps.js +10 -19
  32. package/dist/output/nextSteps.js.map +1 -1
  33. package/dist/prompts/index.d.ts +3 -3
  34. package/dist/prompts/index.d.ts.map +1 -1
  35. package/dist/prompts/index.js +22 -58
  36. package/dist/prompts/index.js.map +1 -1
  37. package/dist/prompts/stack.d.ts +3 -2
  38. package/dist/prompts/stack.d.ts.map +1 -1
  39. package/dist/prompts/stack.js +81 -70
  40. package/dist/prompts/stack.js.map +1 -1
  41. package/dist/types/index.d.ts +20 -42
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/index.js +40 -38
  44. package/dist/types/index.js.map +1 -1
  45. package/dist/ui/index.d.ts +3 -0
  46. package/dist/ui/index.d.ts.map +1 -0
  47. package/dist/ui/index.js +19 -0
  48. package/dist/ui/index.js.map +1 -0
  49. package/dist/ui/messages.d.ts +9 -0
  50. package/dist/ui/messages.d.ts.map +1 -0
  51. package/dist/ui/messages.js +100 -0
  52. package/dist/ui/messages.js.map +1 -0
  53. package/dist/ui/prompts.d.ts +20 -0
  54. package/dist/ui/prompts.d.ts.map +1 -0
  55. package/dist/ui/prompts.js +71 -0
  56. package/dist/ui/prompts.js.map +1 -0
  57. package/dist/ui/theme.d.ts +9 -0
  58. package/dist/ui/theme.d.ts.map +1 -0
  59. package/dist/ui/theme.js +24 -0
  60. package/dist/ui/theme.js.map +1 -0
  61. package/dist/validators/index.d.ts +1 -0
  62. package/dist/validators/index.d.ts.map +1 -1
  63. package/dist/validators/index.js +6 -0
  64. package/dist/validators/index.js.map +1 -1
  65. package/package.json +70 -66
  66. package/templates/backend/express/config.json +44 -44
  67. package/templates/backend/express/eslint.config.mjs +40 -40
  68. package/templates/backend/express/gitignore +36 -36
  69. package/templates/backend/express/src/index.ts +76 -76
  70. package/templates/backend/express/src/routes/health.ts +12 -12
  71. package/templates/backend/express/tsconfig.json +25 -25
  72. package/templates/backend/nestjs/.prettierignore +52 -0
  73. package/templates/backend/nestjs/.prettierrc +16 -0
  74. package/templates/backend/nestjs/config.json +44 -0
  75. package/templates/backend/nestjs/eslint.config.mjs +40 -0
  76. package/templates/backend/nestjs/gitignore +36 -0
  77. package/templates/backend/nestjs/nest-cli.json +9 -0
  78. package/templates/backend/nestjs/src/app.module.ts.hbs +34 -0
  79. package/templates/backend/nestjs/src/health/health.controller.ts +12 -0
  80. package/templates/backend/nestjs/src/main.ts +23 -0
  81. package/templates/backend/nestjs/tsconfig.eslint.json +9 -0
  82. package/templates/backend/nestjs/tsconfig.json +25 -0
  83. package/templates/frontend/nextjs/app/layout.tsx +13 -13
  84. package/templates/frontend/nextjs/app/page.tsx.hbs +97 -97
  85. package/templates/frontend/nextjs/components/ui/button.tsx +51 -51
  86. package/templates/frontend/nextjs/components/ui/card.tsx +60 -60
  87. package/templates/frontend/nextjs/components/ui/field.tsx +67 -67
  88. package/templates/frontend/nextjs/components/ui/input.tsx +18 -18
  89. package/templates/frontend/nextjs/components.json +19 -19
  90. package/templates/frontend/nextjs/config.json +38 -38
  91. package/templates/frontend/nextjs/eslint.config.mjs +11 -11
  92. package/templates/frontend/nextjs/gitignore +42 -42
  93. package/templates/frontend/nextjs/lib/utils.ts +6 -6
  94. package/templates/frontend/nextjs/next.config.ts.hbs +12 -12
  95. package/templates/frontend/nextjs/proxy.ts.hbs +24 -24
  96. package/templates/frontend/nextjs/tsconfig.json +34 -34
  97. package/templates/frontend/tanstack/config.json +48 -48
  98. package/templates/frontend/tanstack/src/routeTree.gen.ts +68 -68
  99. package/templates/frontend/tanstack/src/styles/app.css +85 -85
  100. package/templates/modules/auth/express/config.json +27 -26
  101. package/templates/modules/auth/express/src/controllers/authController.ts.hbs +116 -130
  102. package/templates/modules/auth/express/src/middleware/requireAuth.ts.hbs +26 -26
  103. package/templates/modules/auth/express/src/services/userStore.ts.hbs +117 -117
  104. package/templates/modules/auth/nestjs/config.json +24 -0
  105. package/templates/modules/auth/nestjs/src/auth/auth.controller.ts +46 -0
  106. package/templates/modules/auth/nestjs/src/auth/auth.guard.ts +36 -0
  107. package/templates/modules/auth/nestjs/src/auth/auth.module.ts.hbs +22 -0
  108. package/templates/modules/auth/nestjs/src/auth/auth.schemas.ts +35 -0
  109. package/templates/modules/auth/nestjs/src/auth/auth.service.ts +70 -0
  110. package/templates/modules/auth/nestjs/src/auth/jwt.ts +27 -0
  111. package/templates/modules/auth/nestjs/src/auth/users.service.ts.hbs +144 -0
  112. package/templates/modules/auth/nestjs/src/auth/zod-validation.pipe.ts +16 -0
  113. package/templates/modules/auth/nextjs/app/dashboard/page.tsx +96 -96
  114. package/templates/modules/auth/nextjs/app/sign-in/page.tsx +35 -35
  115. package/templates/modules/auth/nextjs/app/sign-up/page.tsx +35 -35
  116. package/templates/modules/auth/nextjs/components/auth/sign-in-form.tsx +132 -132
  117. package/templates/modules/auth/nextjs/components/auth/sign-out-button.tsx +50 -50
  118. package/templates/modules/auth/nextjs/components/auth/sign-up-form.tsx +152 -152
  119. package/templates/modules/auth/nextjs/config.json +31 -31
  120. package/templates/modules/auth/nextjs/lib/auth-schema.ts +39 -39
  121. package/templates/modules/auth/nextjs/lib/auth.ts.hbs +37 -37
  122. package/templates/modules/auth/tanstack/src/lib/auth-functions.ts +4 -4
  123. package/templates/modules/auth/tanstack/src/routeTree.gen.ts +140 -140
  124. package/templates/modules/docker/.dockerignore +14 -14
  125. package/templates/modules/docker/Dockerfile.hbs +137 -130
  126. package/templates/modules/docker/config.json +19 -19
  127. package/templates/modules/docker/docker-compose.yml.hbs +9 -9
  128. package/templates/modules/drizzle/express/config.json +27 -27
  129. package/templates/modules/drizzle/express/drizzle.config.ts +13 -13
  130. package/templates/modules/drizzle/express/src/lib/db.ts +13 -13
  131. package/templates/modules/drizzle/express/src/lib/schema.ts +10 -10
  132. package/templates/modules/drizzle/nestjs/config.json +27 -0
  133. package/templates/modules/drizzle/nestjs/drizzle.config.ts +13 -0
  134. package/templates/modules/drizzle/nestjs/src/database/database.module.ts +30 -0
  135. package/templates/modules/drizzle/nestjs/src/database/schema.ts +10 -0
  136. package/templates/modules/drizzle/nextjs/config.json +29 -29
  137. package/templates/modules/drizzle/nextjs/lib/db.ts +13 -13
  138. package/templates/modules/drizzle/nextjs/lib/schema.ts.hbs +84 -84
  139. package/templates/modules/mongoose/express/config.json +16 -16
  140. package/templates/modules/mongoose/nestjs/config.json +16 -0
  141. package/templates/modules/mongoose/nestjs/src/users/user.schema.ts +21 -0
  142. package/templates/modules/mongoose/nextjs/config.json +16 -16
  143. package/templates/modules/mongoose/nextjs/lib/db.ts +36 -36
  144. package/templates/modules/mongoose/tanstack/config.json +17 -17
  145. package/templates/modules/mongoose/tanstack/src/lib/db.ts +37 -37
  146. package/templates/modules/prisma/express/config.json +28 -28
  147. package/templates/modules/prisma/express/prisma/schema.prisma +1 -1
  148. package/templates/modules/prisma/express/prisma.config.ts +12 -12
  149. package/templates/modules/prisma/express/src/lib/prisma.ts +24 -24
  150. package/templates/modules/prisma/nestjs/config.json +28 -0
  151. package/templates/modules/prisma/nestjs/prisma/schema.prisma +23 -0
  152. package/templates/modules/prisma/nestjs/prisma.config.ts +12 -0
  153. package/templates/modules/prisma/nestjs/src/prisma/prisma.module.ts +11 -0
  154. package/templates/modules/prisma/nestjs/src/prisma/prisma.service.ts +17 -0
  155. package/templates/modules/prisma/nextjs/config.json +29 -29
  156. package/templates/modules/prisma/nextjs/prisma/schema.prisma.hbs +91 -91
  157. package/templates/modules/prisma/tanstack/config.json +5 -5
  158. package/dist/intro.d.ts +0 -2
  159. package/dist/intro.d.ts.map +0 -1
  160. package/dist/intro.js +0 -27
  161. package/dist/intro.js.map +0 -1
  162. package/templates/backend/express/.eslintrc.js +0 -24
package/README.md CHANGED
@@ -1,82 +1,113 @@
1
- # better-ts-stack
2
-
3
- > An interactive CLI that scaffolds TypeScript backend and full-stack projects.
4
-
5
- `better-ts-stack` creates an Express, Next.js, or TanStack Start project with TypeScript, ESLint, and Prettier set up. Database, authentication, Docker, and git are optional.
6
-
7
- ## Quick Start
8
-
9
- ```bash
10
- # Run instantly with npx
11
- npx better-ts-stack
12
-
13
- # Or install globally
14
- npm install -g better-ts-stack
15
- better-ts-stack
16
- ```
17
-
18
- Run the command and answer the prompts. The CLI creates the project folder.
19
-
20
- ## What It Can Scaffold
21
-
22
- | Project type | Stack | Optional setup |
23
- | -------------- | --------------------------------------- | ------------------------------------------------------------------------ |
24
- | Backend API | Express 5 + TypeScript | PostgreSQL, MongoDB, Prisma, Drizzle, Mongoose, JWT auth, Docker, git |
25
- | Full-stack app | Next.js 16 or TanStack Start + React 19 | PostgreSQL, MongoDB, Prisma, Drizzle, Mongoose, Better Auth, Docker, git |
26
-
27
- Notes:
28
-
29
- - Express is the only backend framework for now. NestJS is listed in the prompt as "coming soon".
30
- - Better Auth is only offered for full-stack projects that use a database.
31
-
32
- ## Interactive Prompt Flow
33
-
34
- The CLI has no subcommands or flags. It asks, in order:
35
-
36
- 1. Project name
37
- 2. Application type: `Backend API` or `Full-stack App`
38
- 3. Framework
39
- - Backend: `Express` (`NestJS` is coming soon)
40
- - Full-stack: `Next.js` or `TanStack Start`
41
- 4. Database: `none`, `PostgreSQL`, or `MongoDB`
42
- 5. ORM/ODM when a database is selected
43
- - PostgreSQL: `Prisma` or `Drizzle`
44
- - MongoDB: `Mongoose`
45
- 6. Package manager: `npm`, `pnpm`, or `bun`
46
- 7. Docker setup
47
- 8. Authentication
48
- - Express apps: JWT-based auth
49
- - Next.js and TanStack Start apps: Better Auth, only when a database is selected
50
- 9. Git initialization
51
- 10. Dependency installation
52
-
53
- The CLI does not ask for a port. Backend projects default to `PORT=3000`.
54
-
55
- ## What You Get
56
-
57
- Every generated project includes:
58
-
59
- - TypeScript with strict mode enabled
60
- - ESLint and Prettier pre-configured
61
- - `.env.example` and `.env` setup
62
- - Ready-to-run project scripts
63
- - Health check endpoint at `/health` for backend projects
64
- - shadcn-compatible UI components for Next.js and TanStack Start projects
65
- - Database wiring and schema setup when selected
66
- - Authentication scaffolding when selected
67
- - Docker files when selected
68
- - Optional git repository initialization
69
-
70
- ## Requirements
71
-
72
- - Node.js 24 or later
73
-
74
- ## Links
75
-
76
- - [Documentation](https://better-ts-stack.abdullahtech.me/docs)
77
- - [GitHub Repository](https://github.com/Abdullah-dev0/better-ts-stack)
78
- - [Issue Tracker](https://github.com/Abdullah-dev0/better-ts-stack/issues)
79
-
80
- ## License
81
-
82
- MIT
1
+ # better-ts-stack
2
+
3
+ > A CLI that scaffolds TypeScript backend and full-stack projects.
4
+
5
+ `better-ts-stack` creates an Express, NestJS, Next.js, or TanStack Start project with TypeScript, ESLint, and Prettier set up. Database, authentication, Docker, and git are optional.
6
+
7
+ ## Quick Start
8
+
9
+ ```bash
10
+ # Run instantly with npx
11
+ npx better-ts-stack
12
+
13
+ # Or install globally
14
+ npm install -g better-ts-stack
15
+ better-ts-stack
16
+ ```
17
+
18
+ Run the command and answer the prompts. The CLI creates the project folder.
19
+
20
+ ## Flags
21
+
22
+ Every prompt has a flag. Options you leave out are asked interactively, unless you pass `--yes`.
23
+
24
+ ```bash
25
+ # No prompts at all
26
+ npx better-ts-stack my-api --framework nestjs --database prisma --auth --yes
27
+
28
+ # Create the project in the current (empty) directory
29
+ npx better-ts-stack . --framework nextjs --database drizzle --pm pnpm
30
+ ```
31
+
32
+ | Flag | Values |
33
+ | ---------------------------- | -------------------------------------------- |
34
+ | `--framework <name>` | `express`, `nestjs`, `nextjs`, `tanstack` |
35
+ | `--database <name>` | `none`, `prisma`, `drizzle`, `mongoose` |
36
+ | `--pm <name>` | `npm`, `pnpm`, `bun` |
37
+ | `--auth` / `--no-auth` | Add authentication |
38
+ | `--docker` / `--no-docker` | Add Docker files |
39
+ | `--git` / `--no-git` | Initialize a git repository |
40
+ | `--install` / `--no-install` | Install dependencies |
41
+ | `-y`, `--yes` | Use defaults for missing options, no prompts |
42
+ | `--dry-run` | Show the summary without writing files |
43
+ | `-h`, `--help` | Show help |
44
+ | `-v`, `--version` | Show the version |
45
+
46
+ `--database` names the ORM, which also selects the database: `prisma` and `drizzle` use PostgreSQL, `mongoose` uses MongoDB.
47
+
48
+ With `--yes`, the defaults are Express, no database, no auth, no Docker, npm, git initialized, and dependencies not installed.
49
+
50
+ The project path can be a name (`my-app`), a nested path (`apps/api`), or `.` for the current directory.
51
+
52
+ ## What It Can Scaffold
53
+
54
+ | Project type | Stack | Optional setup |
55
+ | -------------- | --------------------------------------- | ------------------------------------------------------------------------ |
56
+ | Backend API | Express 5 or NestJS 12 + TypeScript | PostgreSQL, MongoDB, Prisma, Drizzle, Mongoose, JWT auth, Docker, git |
57
+ | Full-stack app | Next.js 16 or TanStack Start + React 19 | PostgreSQL, MongoDB, Prisma, Drizzle, Mongoose, Better Auth, Docker, git |
58
+
59
+ Notes:
60
+
61
+ - Better Auth is only offered for full-stack projects that use a database.
62
+
63
+ ## Interactive Prompt Flow
64
+
65
+ Without flags, the CLI asks, in order:
66
+
67
+ 1. Project name or path
68
+ 2. Application type: `Backend API` or `Full-stack App`
69
+ 3. Framework
70
+ - Backend: `Express` or `NestJS`
71
+ - Full-stack: `Next.js` or `TanStack Start`
72
+ 4. Database: `none`, `PostgreSQL`, or `MongoDB`
73
+ 5. ORM/ODM when a database is selected
74
+ - PostgreSQL: `Prisma` or `Drizzle`
75
+ - MongoDB: `Mongoose`
76
+ 6. Package manager: `npm`, `pnpm`, or `bun`
77
+ 7. Docker setup
78
+ 8. Authentication
79
+ - Express and NestJS apps: JWT-based auth
80
+ - Next.js and TanStack Start apps: Better Auth, only when a database is selected
81
+ 9. Git initialization
82
+ 10. Dependency installation
83
+
84
+ The CLI does not ask for a port. Backend projects default to `PORT=3000`.
85
+
86
+ ## What You Get
87
+
88
+ Every generated project includes:
89
+
90
+ - TypeScript with strict mode enabled
91
+ - ESLint and Prettier pre-configured
92
+ - `.env.example` and `.env` setup
93
+ - Ready-to-run project scripts
94
+ - Health check endpoint at `/health` for backend projects
95
+ - shadcn-compatible UI components for Next.js and TanStack Start projects
96
+ - Database wiring and schema setup when selected
97
+ - Authentication scaffolding when selected
98
+ - Docker files when selected
99
+ - Optional git repository initialization
100
+
101
+ ## Requirements
102
+
103
+ - Node.js 24 or later
104
+
105
+ ## Links
106
+
107
+ - [Documentation](https://better-ts-stack.abdullahtech.me/docs)
108
+ - [GitHub Repository](https://github.com/Abdullah-dev0/better-ts-stack)
109
+ - [Issue Tracker](https://github.com/Abdullah-dev0/better-ts-stack/issues)
110
+
111
+ ## License
112
+
113
+ MIT
package/dist/args.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { StackChoices } from "./types";
2
+ export declare const HELP_TEXT: string;
3
+ export interface CliArgs {
4
+ projectPath?: string;
5
+ choices: Partial<StackChoices>;
6
+ yes: boolean;
7
+ dryRun: boolean;
8
+ help: boolean;
9
+ version: boolean;
10
+ }
11
+ export declare function parseCliArgs(argv: string[]): CliArgs;
12
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,YAAY,EACb,MAAM,SAAS,CAAC;AAWjB,eAAO,MAAM,SAAS,QAmBrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAiBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAsDpD"}
package/dist/args.js ADDED
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HELP_TEXT = void 0;
4
+ exports.parseCliArgs = parseCliArgs;
5
+ // Command-line flag parsing; every flag is optional and falls back to a prompt
6
+ const node_util_1 = require("node:util");
7
+ const types_1 = require("./types");
8
+ const FRAMEWORKS = [
9
+ ...types_1.backendFrameworkOptions,
10
+ ...types_1.frontendFrameworkOptions,
11
+ ].map((option) => option.value);
12
+ const DATABASES = ["none", "prisma", "drizzle", "mongoose"];
13
+ const PACKAGE_MANAGERS = types_1.packageManagerOptions.map((option) => option.value);
14
+ exports.HELP_TEXT = `Usage: better-ts-stack [project-path] [options]
15
+
16
+ Options left out are asked interactively, unless --yes is given.
17
+
18
+ --framework <name> ${FRAMEWORKS.join(" | ")}
19
+ --database <name> ${DATABASES.join(" | ")}
20
+ --pm <name> ${PACKAGE_MANAGERS.join(" | ")}
21
+ --auth, --no-auth Add authentication
22
+ --docker, --no-docker Add Docker files
23
+ --git, --no-git Initialize a git repository
24
+ --install, --no-install Install dependencies
25
+ -y, --yes Use defaults for missing options and skip confirmation
26
+ --dry-run Show what would be created without writing files
27
+ -h, --help Show this help
28
+ -v, --version Show the version
29
+
30
+ Examples:
31
+ better-ts-stack my-api --framework nestjs --database prisma --auth --yes
32
+ better-ts-stack . --framework nextjs --database drizzle --pm pnpm
33
+ `;
34
+ function parseChoice(flag, value, allowed) {
35
+ if (value === undefined)
36
+ return undefined;
37
+ if (!allowed.includes(value)) {
38
+ throw (0, types_1.buildError)(`Invalid value "${value}" for --${flag}. Use one of: ${allowed.join(", ")}`, "INVALID_ARGUMENT");
39
+ }
40
+ return value;
41
+ }
42
+ function parseCliArgs(argv) {
43
+ let parsed;
44
+ try {
45
+ parsed = (0, node_util_1.parseArgs)({
46
+ args: argv,
47
+ allowPositionals: true,
48
+ allowNegative: true,
49
+ options: {
50
+ framework: { type: "string" },
51
+ database: { type: "string" },
52
+ pm: { type: "string" },
53
+ auth: { type: "boolean" },
54
+ docker: { type: "boolean" },
55
+ git: { type: "boolean" },
56
+ install: { type: "boolean" },
57
+ yes: { type: "boolean", short: "y" },
58
+ "dry-run": { type: "boolean" },
59
+ help: { type: "boolean", short: "h" },
60
+ version: { type: "boolean", short: "v" },
61
+ },
62
+ });
63
+ }
64
+ catch (error) {
65
+ throw (0, types_1.buildError)(error, "INVALID_ARGUMENT");
66
+ }
67
+ const { values, positionals } = parsed;
68
+ if (positionals.length > 1) {
69
+ throw (0, types_1.buildError)(`Expected one project path, got: ${positionals.join(" ")}`, "INVALID_ARGUMENT");
70
+ }
71
+ const choices = {
72
+ framework: parseChoice("framework", values.framework, FRAMEWORKS),
73
+ database: parseChoice("database", values.database, DATABASES),
74
+ packageManager: parseChoice("pm", values.pm, PACKAGE_MANAGERS),
75
+ useAuth: values.auth,
76
+ useDocker: values.docker,
77
+ initGit: values.git,
78
+ installDeps: values.install,
79
+ };
80
+ return {
81
+ projectPath: positionals[0],
82
+ // Keep only the flags that were passed, so the rest can take defaults
83
+ choices: Object.fromEntries(Object.entries(choices).filter(([, value]) => value !== undefined)),
84
+ yes: values.yes ?? false,
85
+ dryRun: values["dry-run"] ?? false,
86
+ help: values.help ?? false,
87
+ version: values.version ?? false,
88
+ };
89
+ }
90
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ import { MergedConfig, ModuleConfig, ProjectConfig, TemplateContext } from "../t
2
2
  export declare function processScriptVariables(scripts: Record<string, string>, context: TemplateContext): Record<string, string>;
3
3
  export declare function mergeConfigurations(modules: ModuleConfig[], context: TemplateContext): MergedConfig;
4
4
  export declare function generatePackageJson(targetDir: string, mergedConfig: MergedConfig, config: ProjectConfig): Promise<void>;
5
+ export declare function generatePnpmWorkspace(targetDir: string, overrides: Record<string, string>): Promise<void>;
5
6
  export declare function generateEnvFile(targetDir: string, envVars: Record<string, string>): Promise<void>;
6
7
  //# sourceMappingURL=configGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configGenerator.d.ts","sourceRoot":"","sources":["../../src/builder/configGenerator.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,eAAe,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAGD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,eAAe,GACvB,YAAY,CAuBd;AAGD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAGD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"configGenerator.d.ts","sourceRoot":"","sources":["../../src/builder/configGenerator.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,UAAU,CAAC;AAYlB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,eAAe,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAGD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,eAAe,GACvB,YAAY,CAuBd;AAGD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAcD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAkCf;AAGD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.processScriptVariables = processScriptVariables;
7
7
  exports.mergeConfigurations = mergeConfigurations;
8
8
  exports.generatePackageJson = generatePackageJson;
9
+ exports.generatePnpmWorkspace = generatePnpmWorkspace;
9
10
  exports.generateEnvFile = generateEnvFile;
10
11
  // Utilities for merging module configurations and generating project files
11
12
  const fs_extra_1 = __importDefault(require("fs-extra"));
@@ -13,6 +14,13 @@ const handlebars_1 = __importDefault(require("handlebars"));
13
14
  const node_crypto_1 = require("node:crypto");
14
15
  const path_1 = __importDefault(require("path"));
15
16
  const types_1 = require("../types");
17
+ // Frameworks whose generated project uses ES modules
18
+ const ESM_FRAMEWORKS = ["tanstack", "nestjs"];
19
+ // Compiled entry file of each backend framework
20
+ const BACKEND_ENTRY_FILES = {
21
+ express: "dist/index.js",
22
+ nestjs: "dist/main.js",
23
+ };
16
24
  // Replaces Handlebars variables within script command strings
17
25
  function processScriptVariables(scripts, context) {
18
26
  const processedScripts = {};
@@ -66,22 +74,19 @@ async function generatePackageJson(targetDir, mergedConfig, config) {
66
74
  node: config.framework === "tanstack" ? ">=24.20.0" : ">=24.0.0",
67
75
  },
68
76
  description: `Project created with better-ts-stack using ${config.database !== "none" ? config.database : "no database"}`,
69
- ...(config.framework === "tanstack" ? { type: "module" } : {}),
70
- ...(isFullstack ? {} : { main: "dist/index.js" }),
77
+ ...(ESM_FRAMEWORKS.includes(config.framework) ? { type: "module" } : {}),
78
+ ...(isFullstack ? {} : { main: BACKEND_ENTRY_FILES[config.framework] }),
71
79
  scripts: mergedConfig.scripts,
72
80
  keywords: isFullstack
73
81
  ? config.framework === "tanstack"
74
82
  ? ["tanstack-start", "react", "typescript"]
75
83
  : ["nextjs", "react", "typescript"]
76
- : ["backend", "typescript", "express"],
84
+ : ["backend", "typescript", config.framework],
77
85
  author: "",
78
86
  license: "MIT",
79
87
  dependencies: mergedConfig.dependencies,
80
88
  devDependencies: mergedConfig.devDependencies,
81
89
  overrides,
82
- pnpm: config.packageManager === "pnpm" && overrides
83
- ? { overrides }
84
- : undefined,
85
90
  };
86
91
  const packageJsonPath = path_1.default.join(targetDir, "package.json");
87
92
  await fs_extra_1.default.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n", "utf-8");
@@ -90,6 +95,41 @@ async function generatePackageJson(targetDir, mergedConfig, config) {
90
95
  throw (0, types_1.buildError)(error, "PACKAGE_JSON_ERROR", "Failed to generate package.json");
91
96
  }
92
97
  }
98
+ // Template dependencies with install scripts. pnpm 11+ fails the install when
99
+ // these are not approved; entries for packages a project lacks are ignored.
100
+ const PNPM_BUILD_DEPENDENCIES = [
101
+ "@prisma/engines",
102
+ "bcrypt",
103
+ "esbuild",
104
+ "prisma",
105
+ "unrs-resolver",
106
+ ];
107
+ // Writes pnpm-workspace.yaml, where pnpm 11+ reads overrides and build approvals
108
+ // (it ignores the "pnpm" field in package.json)
109
+ async function generatePnpmWorkspace(targetDir, overrides) {
110
+ const lines = [];
111
+ if (Object.keys(overrides).length > 0) {
112
+ lines.push("overrides:");
113
+ for (const [name, version] of Object.entries(overrides)) {
114
+ lines.push(` "${name}": "${version}"`);
115
+ }
116
+ }
117
+ lines.push("allowBuilds:");
118
+ for (const name of PNPM_BUILD_DEPENDENCIES) {
119
+ lines.push(` "${name}": true`);
120
+ }
121
+ // pnpm 10 reads build approvals from this key instead
122
+ lines.push("onlyBuiltDependencies:");
123
+ for (const name of PNPM_BUILD_DEPENDENCIES) {
124
+ lines.push(` - "${name}"`);
125
+ }
126
+ try {
127
+ await fs_extra_1.default.writeFile(path_1.default.join(targetDir, "pnpm-workspace.yaml"), lines.join("\n") + "\n", "utf-8");
128
+ }
129
+ catch (error) {
130
+ throw (0, types_1.buildError)(error, "PNPM_WORKSPACE_ERROR", "Failed to generate pnpm-workspace.yaml");
131
+ }
132
+ }
93
133
  // Generates .env and .env.example files from merged environment variables
94
134
  async function generateEnvFile(targetDir, envVars) {
95
135
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"configGenerator.js","sourceRoot":"","sources":["../../src/builder/configGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configGenerator.js","sourceRoot":"","sources":["../../src/builder/configGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyInstaller.d.ts","sourceRoot":"","sources":["../../src/builder/dependencyInstaller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,GACV,OAAO,CAyBT"}
1
+ {"version":3,"file":"dependencyInstaller.d.ts","sourceRoot":"","sources":["../../src/builder/dependencyInstaller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,MAAM,GACV,OAAO,CAkBT"}
@@ -1,29 +1,23 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.installDependencies = installDependencies;
7
- const child_process_1 = require("child_process");
8
- const consola_1 = __importDefault(require("consola"));
4
+ const node_child_process_1 = require("node:child_process");
5
+ const ui_1 = require("../ui");
9
6
  // Installs project dependencies in the target directory
10
7
  function installDependencies(packageManager, cwd) {
11
8
  const command = `${packageManager} install`;
12
- consola_1.default.info(`Installing dependencies with ${packageManager}...`);
13
- consola_1.default.debug(`Running: ${command}`);
9
+ (0, ui_1.info)(`Installing dependencies with ${packageManager}`);
14
10
  try {
15
- (0, child_process_1.execSync)(command, {
11
+ (0, node_child_process_1.execSync)(command, {
16
12
  cwd,
17
13
  stdio: "inherit", // Show installation progress in real-time
18
14
  });
19
- consola_1.default.success("Dependencies installed successfully");
15
+ (0, ui_1.success)("Dependencies installed");
20
16
  return true;
21
17
  }
22
- catch (error) {
23
- // Display helpful error message but don't throw - allow building to continue
24
- consola_1.default.warn("Failed to install dependencies");
25
- consola_1.default.debug(`Error: ${error instanceof Error ? error.message : String(error)}`);
26
- consola_1.default.info(`You can install dependencies manually later by running: ${command}`);
18
+ catch {
19
+ // Not fatal: the project is complete and the install can be run later
20
+ (0, ui_1.warn)(`Could not install dependencies. Run "${command}" yourself.`);
27
21
  return false;
28
22
  }
29
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyInstaller.js","sourceRoot":"","sources":["../../src/builder/dependencyInstaller.ts"],"names":[],"mappings":";;;;;AAMA,kDA4BC;AAlCD,iDAAyC;AACzC,sDAA8B;AAI9B,wDAAwD;AACxD,SAAgB,mBAAmB,CACjC,cAA8B,EAC9B,GAAW;IAEX,MAAM,OAAO,GAAG,GAAG,cAAc,UAAU,CAAC;IAE5C,iBAAO,CAAC,IAAI,CAAC,gCAAgC,cAAc,KAAK,CAAC,CAAC;IAClE,iBAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAChB,GAAG;YACH,KAAK,EAAE,SAAS,EAAE,0CAA0C;SAC7D,CAAC,CAAC;QAEH,iBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6EAA6E;QAC7E,iBAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,iBAAO,CAAC,KAAK,CACX,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;QACF,iBAAO,CAAC,IAAI,CACV,2DAA2D,OAAO,EAAE,CACrE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dependencyInstaller.js","sourceRoot":"","sources":["../../src/builder/dependencyInstaller.ts"],"names":[],"mappings":";;AAMA,kDAqBC;AA3BD,2DAA8C;AAG9C,8BAA4C;AAE5C,wDAAwD;AACxD,SAAgB,mBAAmB,CACjC,cAA8B,EAC9B,GAAW;IAEX,MAAM,OAAO,GAAG,GAAG,cAAc,UAAU,CAAC;IAE5C,IAAA,SAAI,EAAC,gCAAgC,cAAc,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,OAAO,EAAE;YAChB,GAAG;YACH,KAAK,EAAE,SAAS,EAAE,0CAA0C;SAC7D,CAAC,CAAC;QAEH,IAAA,YAAO,EAAC,wBAAwB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,IAAA,SAAI,EAAC,wCAAwC,OAAO,aAAa,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gitInitializer.d.ts","sourceRoot":"","sources":["../../src/builder/gitInitializer.ts"],"names":[],"mappings":"AAiCA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAkB5D"}
1
+ {"version":3,"file":"gitInitializer.d.ts","sourceRoot":"","sources":["../../src/builder/gitInitializer.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAU5D"}
@@ -1,52 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.initializeGitRepository = initializeGitRepository;
7
- const child_process_1 = require("child_process");
8
- const consola_1 = __importDefault(require("consola"));
9
- // Checks if git is installed and available in the system PATH
10
- function isGitAvailable() {
11
- try {
12
- (0, child_process_1.execSync)("git --version", { stdio: "ignore" });
13
- return true;
14
- }
15
- catch {
16
- consola_1.default.warn("Git is not installed or not available in PATH");
17
- return false;
18
- }
19
- }
20
- // Initializes a new git repository in the given directory
21
- function initGit(cwd) {
22
- consola_1.default.info("Initializing git repository...");
4
+ const node_child_process_1 = require("node:child_process");
5
+ const ui_1 = require("../ui");
6
+ // Initializes a git repository in the given directory
7
+ function initializeGitRepository(cwd) {
23
8
  try {
24
- (0, child_process_1.execSync)("git init", {
25
- cwd,
26
- stdio: "ignore",
27
- });
28
- consola_1.default.success("Git repository initialized");
9
+ (0, node_child_process_1.execSync)("git init", { cwd, stdio: "ignore" });
10
+ (0, ui_1.success)("Git repository initialized");
29
11
  return true;
30
12
  }
31
13
  catch {
32
- consola_1.default.warn("Failed to initialize git repository");
33
- return false;
34
- }
35
- }
36
- // Coordinates the git initialization process
37
- function initializeGitRepository(cwd) {
38
- // Check if git is available
39
- if (!isGitAvailable()) {
40
- consola_1.default.warn("Git is not installed or not available in PATH");
41
- consola_1.default.info("Skipping git initialization. You can initialize git manually later.");
42
- return false;
43
- }
44
- // Initialize git repository
45
- const gitInitSuccess = initGit(cwd);
46
- if (!gitInitSuccess) {
47
- consola_1.default.info("Continuing with building...");
14
+ // Not fatal: git may not be installed
15
+ (0, ui_1.warn)('Could not initialize git. Run "git init" yourself.');
48
16
  return false;
49
17
  }
50
- return true;
51
18
  }
52
19
  //# sourceMappingURL=gitInitializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitInitializer.js","sourceRoot":"","sources":["../../src/builder/gitInitializer.ts"],"names":[],"mappings":";;;;;AAiCA,0DAkBC;AAnDD,iDAAyC;AACzC,sDAA8B;AAE9B,8DAA8D;AAC9D,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,iBAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,SAAS,OAAO,CAAC,GAAW;IAC1B,iBAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,UAAU,EAAE;YACnB,GAAG;YACH,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,iBAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,iBAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,SAAgB,uBAAuB,CAAC,GAAW;IACjD,4BAA4B;IAC5B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,iBAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,iBAAO,CAAC,IAAI,CACV,qEAAqE,CACtE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,iBAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"gitInitializer.js","sourceRoot":"","sources":["../../src/builder/gitInitializer.ts"],"names":[],"mappings":";;AAKA,0DAUC;AAfD,2DAA8C;AAE9C,8BAAsC;AAEtC,sDAAsD;AACtD,SAAgB,uBAAuB,CAAC,GAAW;IACjD,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAA,YAAO,EAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;QACtC,IAAA,SAAI,EAAC,oDAAoD,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,WAAW,EAAgB,aAAa,EAAE,MAAM,UAAU,CAAC;AAchF,wBAAsB,KAAK,CACzB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAyItB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,WAAW,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAe1E,wBAAsB,KAAK,CACzB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CA2FtB"}