better-ts-stack 1.1.3 → 1.1.4

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.
@@ -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,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,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"));
@@ -79,9 +80,6 @@ async function generatePackageJson(targetDir, mergedConfig, config) {
79
80
  dependencies: mergedConfig.dependencies,
80
81
  devDependencies: mergedConfig.devDependencies,
81
82
  overrides,
82
- pnpm: config.packageManager === "pnpm" && overrides
83
- ? { overrides }
84
- : undefined,
85
83
  };
86
84
  const packageJsonPath = path_1.default.join(targetDir, "package.json");
87
85
  await fs_extra_1.default.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n", "utf-8");
@@ -90,6 +88,41 @@ async function generatePackageJson(targetDir, mergedConfig, config) {
90
88
  throw (0, types_1.buildError)(error, "PACKAGE_JSON_ERROR", "Failed to generate package.json");
91
89
  }
92
90
  }
91
+ // Template dependencies with install scripts. pnpm 11+ fails the install when
92
+ // these are not approved; entries for packages a project lacks are ignored.
93
+ const PNPM_BUILD_DEPENDENCIES = [
94
+ "@prisma/engines",
95
+ "bcrypt",
96
+ "esbuild",
97
+ "prisma",
98
+ "unrs-resolver",
99
+ ];
100
+ // Writes pnpm-workspace.yaml, where pnpm 11+ reads overrides and build approvals
101
+ // (it ignores the "pnpm" field in package.json)
102
+ async function generatePnpmWorkspace(targetDir, overrides) {
103
+ const lines = [];
104
+ if (Object.keys(overrides).length > 0) {
105
+ lines.push("overrides:");
106
+ for (const [name, version] of Object.entries(overrides)) {
107
+ lines.push(` "${name}": "${version}"`);
108
+ }
109
+ }
110
+ lines.push("allowBuilds:");
111
+ for (const name of PNPM_BUILD_DEPENDENCIES) {
112
+ lines.push(` "${name}": true`);
113
+ }
114
+ // pnpm 10 reads build approvals from this key instead
115
+ lines.push("onlyBuiltDependencies:");
116
+ for (const name of PNPM_BUILD_DEPENDENCIES) {
117
+ lines.push(` - "${name}"`);
118
+ }
119
+ try {
120
+ await fs_extra_1.default.writeFile(path_1.default.join(targetDir, "pnpm-workspace.yaml"), lines.join("\n") + "\n", "utf-8");
121
+ }
122
+ catch (error) {
123
+ throw (0, types_1.buildError)(error, "PNPM_WORKSPACE_ERROR", "Failed to generate pnpm-workspace.yaml");
124
+ }
125
+ }
93
126
  // Generates .env and .env.example files from merged environment variables
94
127
  async function generateEnvFile(targetDir, envVars) {
95
128
  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":"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":"AAKA,OAAO,EAAc,WAAW,EAAgB,aAAa,EAAE,MAAM,UAAU,CAAC;AAehF,wBAAsB,KAAK,CACzB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CA4ItB"}
@@ -83,6 +83,9 @@ async function build(config, targetDir) {
83
83
  // 9. Generate package.json
84
84
  consola_1.default.info("Generating package.json...");
85
85
  await (0, configGenerator_1.generatePackageJson)(targetDir, mergedConfig, config);
86
+ if (config.packageManager === "pnpm") {
87
+ await (0, configGenerator_1.generatePnpmWorkspace)(targetDir, mergedConfig.overrides);
88
+ }
86
89
  consola_1.default.success("package.json generated");
87
90
  // 10. Generate environment files
88
91
  consola_1.default.info("Generating environment files...");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":";;;;;AAoBA,sBA+IC;AAnKD,sDAA8B;AAC9B,wDAA0B;AAE1B,kDAAgD;AAChD,mDAAwD;AACxD,oCAAgF;AAChF,8CAAuD;AACvD,uDAK2B;AAC3B,+DAA4D;AAC5D,mDAAwE;AACxE,qDAA2D;AAC3D,qDAAiD;AACjD,uDAAyD;AAEzD,gEAAgE;AACzD,KAAK,UAAU,KAAK,CACzB,MAAqB,EACrB,SAAiB;IAEjB,iBAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,+BAA+B;QAC/B,iBAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAE/C,MAAM,gBAAgB,GAAG,MAAM,IAAA,mCAAsB,EAAC,SAAS,CAAC,CAAC;QAEjE,IAAI,gBAAgB;YAClB,MAAM,IAAA,kBAAU,EAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAE5D,6BAA6B;QAC7B,iBAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAE9C,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,MAAM,IAAA,kBAAU,EACd,CAAC,EACD,wBAAwB,EACxB,4BAA4B,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,iBAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,CAAC;QAExC,kBAAkB;QAClB,iBAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,OAAO,GAIR,EAAE,CAAC;QACR,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAS,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAE7D,KAAK,MAAM,mBAAmB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAS,EAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,kBAAU,EAAC,CAAC,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;QACxE,CAAC;QACD,iBAAO,CAAC,OAAO,CACb,YAAY,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;QAEF,4BAA4B;QAC5B,iBAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE7C,MAAM,eAAe,GAAG,IAAA,sCAAoB,EAAC,MAAM,CAAC,CAAC;QAErD,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAA,qCAAmB,EACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAC5B,eAAe,CAChB,CAAC;QAEF,uBAAuB;QACvB,iBAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,iBAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,IAAA,+BAAe,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,iBAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,kBAAU,EAAC,CAAC,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;QACxE,CAAC;QAED,kCAAkC;QAClC,iBAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAA,oCAAoB,EACxB,SAAS,EACT,eAAe,EACf,gBAAgB,CACjB,CAAC;gBACF,iBAAO,CAAC,OAAO,CACb,aAAa,gBAAgB,CAAC,MAAM,mBAAmB,CACxD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,kBAAU,EACd,CAAC,EACD,2BAA2B,EAC3B,kCAAkC,CACnC,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,iBAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,IAAA,qCAAmB,EAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YACrC,MAAM,IAAA,uCAAqB,EAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjE,CAAC;QACD,iBAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAE1C,iCAAiC;QACjC,iBAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,MAAM,IAAA,iCAAe,EAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACvD,iBAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAE/C,sCAAsC;QACtC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,aAAa,GAAG,IAAA,yCAAmB,EAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,IAAA,wCAAuB,EAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,YAAY;QACZ,iBAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,IAAA,6BAAiB,EAAC,MAAM,EAAE,aAAa,CAAC;SACpD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,kBAAU,EAAC,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-ts-stack",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "A powerful CLI tool that generates fully configured TypeScript projects with backend, frontend, database integration, Docker support, and more--all through an interactive setup.",
5
5
  "keywords": [
6
6
  "cli",
@@ -4,9 +4,9 @@
4
4
  "description": "Base Express server with TypeScript, middleware, and best practices",
5
5
  "type": "base",
6
6
  "scripts": {
7
- "dev": "{{#if (eq packageManager 'bun')}}bun --watch src/index.ts{{else}}tsx watch src/index.ts{{/if}}",
7
+ "dev": "cross-env NODE_ENV=development {{#if (eq packageManager 'bun')}}bun --watch src/index.ts{{else}}tsx watch src/index.ts{{/if}}",
8
8
  "build": "tsc",
9
- "start": "{{runner}} dist/index.js",
9
+ "start": "cross-env NODE_ENV=production {{runner}} dist/index.js",
10
10
  "lint": "eslint src",
11
11
  "lint:fix": "eslint src --fix",
12
12
  "format": "prettier --write \"src/**/*.ts\"",
@@ -16,6 +16,7 @@
16
16
  "express": "^5.2.1",
17
17
  "dotenv": "^17.4.2",
18
18
  "cors": "^2.8.6",
19
+ "cross-env": "^10.1.0",
19
20
  "helmet": "^8.3.0",
20
21
  "morgan": "^1.12.0"
21
22
  },
@@ -35,7 +36,6 @@
35
36
  "typescript-eslint": "^8.69.0"
36
37
  },
37
38
  "envVars": {
38
- "NODE_ENV": "development",
39
39
  "PORT": "3000"
40
40
  },
41
41
  "templateFiles": [
@@ -14,16 +14,15 @@ FROM base AS builder
14
14
  COPY --from=deps /app/node_modules ./node_modules
15
15
  COPY . .
16
16
  {{#if useAuth}}
17
- # next build loads the auth route, which initializes Better Auth. Use a
18
- # build-only secret here; the real BETTER_AUTH_SECRET is supplied at runtime.
19
- ENV BETTER_AUTH_SECRET="build-only-placeholder-secret-not-used-at-runtime"
17
+ # next build loads the auth route, which initializes Better Auth. The build gets
18
+ # a placeholder secret for this command only; the real one is supplied at runtime.
20
19
  {{/if}}
21
20
  {{#if (eq database 'prisma')}}
22
- RUN DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" npm run build
21
+ RUN {{#if useAuth}}BETTER_AUTH_SECRET="build-only-placeholder-secret-not-used-at-runtime" {{/if}}DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres" npm run build
23
22
  {{else if (eq database 'mongoose')}}
24
- RUN MONGODB_URI="mongodb://localhost:27017/build" npm run build
23
+ RUN {{#if useAuth}}BETTER_AUTH_SECRET="build-only-placeholder-secret-not-used-at-runtime" {{/if}}MONGODB_URI="mongodb://localhost:27017/build" npm run build
25
24
  {{else}}
26
- RUN npm run build
25
+ RUN {{#if useAuth}}BETTER_AUTH_SECRET="build-only-placeholder-secret-not-used-at-runtime" {{/if}}npm run build
27
26
  {{/if}}
28
27
 
29
28
  # Production stage
@@ -73,7 +72,9 @@ RUN addgroup --system --gid 1001 nodejs && \
73
72
  adduser --system --uid 1001 tanstackuser
74
73
 
75
74
  COPY package*.json ./
76
- RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi
75
+ # Clear the npm cache in the same layer so it does not ship in the image
76
+ RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi \
77
+ && npm cache clean --force
77
78
 
78
79
  # Copy built output (dist/server/server.js + dist/client)
79
80
  COPY --from=builder --chown=tanstackuser:nodejs /app/dist ./dist
@@ -118,7 +119,9 @@ RUN addgroup --system --gid 1001 nodejs && \
118
119
  adduser --system --uid 1001 expressuser
119
120
 
120
121
  COPY package*.json ./
121
- RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi
122
+ # Clear the npm cache in the same layer so it does not ship in the image
123
+ RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi \
124
+ && npm cache clean --force
122
125
 
123
126
  # Copy built files (if TypeScript) or source files (if JavaScript)
124
127
  COPY --from=builder --chown=expressuser:nodejs /app/dist ./dist