forgestack-os-cli 0.2.1 → 0.3.1

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/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # ForgeStack OS CLI
2
+
3
+ Generate production-ready full-stack SaaS projects with one command.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # Recommended: npx (no install)
9
+ npx forgestack-os-cli create my-app
10
+
11
+ # Or install globally
12
+ npm install -g forgestack-os-cli
13
+ # then
14
+ forgestack create my-app
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```bash
20
+ forgestack create <project-name> [options]
21
+ ```
22
+
23
+ **Common flags**
24
+
25
+ - `--frontend <framework>`: react-vite | nextjs
26
+ - `--backend <framework>`: express | fastify | nestjs | bun-elysia | go-fiber
27
+ - `--auth <provider>`: jwt | clerk | supabase | authjs | firebase
28
+ - `--database <db>`: postgresql | mongodb | mysql | sqlite | supabase-db
29
+ - `--api <style>`: rest | graphql | trpc
30
+ - `--preset <name>`: use a predefined stack (e.g., next-nest-clerk-pg)
31
+ - `--stack <json>`: provide full stack config as JSON
32
+ - `--docker` / `--no-docker`: include or skip Docker config
33
+ - `--multi-tenant`: enable multi-tenancy scaffolding
34
+ - `--skip-install`: skip dependency installation
35
+ - `--skip-git`: skip git init
36
+
37
+ ### Examples
38
+
39
+ ```bash
40
+ # Interactive
41
+ forgestack create my-saas
42
+
43
+ # Preset
44
+ forgestack create my-enterprise --preset next-nest-clerk-pg
45
+
46
+ # Full JSON config
47
+ forgestack create my-app --stack '{"frontend":"nextjs","backend":"fastify","auth":"supabase","database":"supabase-db","apiStyle":"trpc","docker":true,"multiTenant":true}'
48
+
49
+ # Minimal flags
50
+ forgestack create api-only --frontend=react-vite --backend=express --auth=jwt --database=postgresql --api=rest --no-docker
51
+ ```
52
+
53
+ ## Features
54
+
55
+ - 150+ stack combinations across frontend, backend, auth, database, and API styles
56
+ - Multi-tenancy ready scaffolds
57
+ - Docker Compose and env templates
58
+ - API docs (Swagger) for REST backends
59
+ - TypeScript-first across generated code
60
+
61
+ ## Generated Project
62
+
63
+ ```
64
+ my-app/
65
+ ├─ frontend/ # Next.js or React+Vite
66
+ ├─ backend/ # Express, Fastify, NestJS, Bun+Elysia, or Go+Fiber
67
+ ├─ .env.example
68
+ ├─ package.json (workspaces)
69
+ └─ README.md (per-project runbook)
70
+ ```
71
+
72
+ ## Author
73
+
74
+ Built and maintained by **Sumit Chauhan** ([halloffame12](https://github.com/halloffame12)).
75
+
76
+ ## License
77
+
78
+ MIT
@@ -1 +1 @@
1
- export declare function createCommand(projectName: string, options: any): Promise<void>;
1
+ export declare function createCommand(projectName: string, options: Record<string, unknown>): Promise<void>;
@@ -1,90 +1,85 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createCommand = createCommand;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const logger_1 = require("../utils/logger");
11
- const prompts_1 = require("../utils/prompts");
12
- const validators_1 = require("../utils/validators");
13
- const generators_1 = require("../generators");
14
- async function createCommand(projectName, options) {
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ import chalk from 'chalk';
4
+ import { createRequire } from 'module';
5
+ import { logger } from '../utils/logger';
6
+ import { promptForStack } from '../utils/prompts';
7
+ import { validateStackConfig } from '../utils/validators';
8
+ import { generateProject } from '../generators';
9
+ const pkgRequire = createRequire(import.meta.url);
10
+ const { version: CLI_VERSION } = pkgRequire('../../package.json');
11
+ export async function createCommand(projectName, options) {
15
12
  try {
16
13
  // Display welcome banner
17
- console.log(chalk_1.default.bold.cyan('\n╔═══════════════════════════════════════╗'));
18
- console.log(chalk_1.default.bold.cyan('║ ║'));
19
- console.log(chalk_1.default.bold.cyan('║ 🚀 ForgeStack OS v0.1.0 ║'));
20
- console.log(chalk_1.default.bold.cyan('║ ║'));
21
- console.log(chalk_1.default.bold.cyan('║ One platform. Any stack. Production. ║'));
22
- console.log(chalk_1.default.bold.cyan('║ ║'));
23
- console.log(chalk_1.default.bold.cyan('╚═══════════════════════════════════════╝\n'));
14
+ console.log(chalk.bold.cyan('\n╔═══════════════════════════════════════╗'));
15
+ console.log(chalk.bold.cyan('║ ║'));
16
+ console.log(chalk.bold.cyan(`║ 🚀 ForgeStack OS v${CLI_VERSION} ║`));
17
+ console.log(chalk.bold.cyan('║ ║'));
18
+ console.log(chalk.bold.cyan('║ One platform. Any stack. Production. ║'));
19
+ console.log(chalk.bold.cyan('║ ║'));
20
+ console.log(chalk.bold.cyan('╚═══════════════════════════════════════╝\n'));
24
21
  // Check if directory already exists
25
- const targetDir = path_1.default.resolve(process.cwd(), projectName);
26
- // Basic path sanitization for security
27
- if (projectName.includes('..') || projectName.includes('/') || projectName.includes('\\')) {
28
- logger_1.logger.error(`Invalid project name: "${projectName}". Please use a simple name.`);
29
- process.exit(1);
30
- }
31
- if (await fs_extra_1.default.pathExists(targetDir)) {
32
- logger_1.logger.error(`Directory "${projectName}" already exists!`);
22
+ const targetDir = path.resolve(process.cwd(), projectName);
23
+ const actualProjectName = path.basename(targetDir);
24
+ if (await fs.pathExists(targetDir)) {
25
+ logger.error(`Directory "${projectName}" already exists!`);
33
26
  process.exit(1);
34
27
  }
35
28
  // Test write permissions
36
29
  try {
37
- await fs_extra_1.default.ensureDir(targetDir);
38
- await fs_extra_1.default.remove(targetDir);
30
+ await fs.ensureDir(targetDir);
31
+ await fs.remove(targetDir);
39
32
  }
40
- catch (err) {
41
- logger_1.logger.error(`Permission denied! Cannot create directory at "${targetDir}".`);
33
+ catch {
34
+ logger.error(`Permission denied! Cannot create directory at "${targetDir}".`);
42
35
  process.exit(1);
43
36
  }
44
37
  // Prompt for stack configuration
45
- logger_1.logger.title('📋 Configure Your Stack');
46
- const config = await (0, prompts_1.promptForStack)(projectName, options);
38
+ logger.title('📋 Configure Your Stack');
39
+ const config = await promptForStack(actualProjectName, options);
47
40
  // Validate configuration
48
- const validation = (0, validators_1.validateStackConfig)(config);
41
+ const validation = validateStackConfig(config);
49
42
  if (validation.warnings.length > 0) {
50
43
  console.log('');
51
- validation.warnings.forEach(warning => logger_1.logger.warning(warning));
44
+ validation.warnings.forEach((warning) => logger.warning(warning));
52
45
  }
53
46
  if (!validation.valid) {
54
47
  console.log('');
55
- validation.errors.forEach(error => logger_1.logger.error(error));
48
+ validation.errors.forEach((error) => logger.error(error));
56
49
  process.exit(1);
57
50
  }
58
51
  // Display selected stack
59
52
  console.log('');
60
- logger_1.logger.title('✨ Your Stack Configuration');
61
- console.log(chalk_1.default.gray('─'.repeat(50)));
62
- console.log(`${chalk_1.default.bold('Project:')} ${chalk_1.default.cyan(config.projectName)}`);
63
- console.log(`${chalk_1.default.bold('Frontend:')} ${chalk_1.default.cyan(config.frontend)}`);
64
- console.log(`${chalk_1.default.bold('Backend:')} ${chalk_1.default.cyan(config.backend)}`);
65
- console.log(`${chalk_1.default.bold('Auth:')} ${chalk_1.default.cyan(config.auth)}`);
66
- console.log(`${chalk_1.default.bold('Database:')} ${chalk_1.default.cyan(config.database)}`);
67
- console.log(`${chalk_1.default.bold('API Style:')} ${chalk_1.default.cyan(config.apiStyle)}`);
68
- console.log(`${chalk_1.default.bold('Docker:')} ${chalk_1.default.cyan(config.docker ? 'Yes' : 'No')}`);
69
- console.log(`${chalk_1.default.bold('Multi-Tenant:')} ${chalk_1.default.cyan(config.multiTenant ? 'Yes' : 'No')}`);
70
- console.log(chalk_1.default.gray('─'.repeat(50)));
53
+ logger.title('✨ Your Stack Configuration');
54
+ console.log(chalk.gray('─'.repeat(50)));
55
+ console.log(`${chalk.bold('Project:')} ${chalk.cyan(config.projectName)}`);
56
+ console.log(`${chalk.bold('Frontend:')} ${chalk.cyan(config.frontend)}`);
57
+ console.log(`${chalk.bold('Backend:')} ${chalk.cyan(config.backend)}`);
58
+ console.log(`${chalk.bold('Auth:')} ${chalk.cyan(config.auth)}`);
59
+ console.log(`${chalk.bold('Database:')} ${chalk.cyan(config.database)}`);
60
+ console.log(`${chalk.bold('API Style:')} ${chalk.cyan(config.apiStyle)}`);
61
+ console.log(`${chalk.bold('Docker:')} ${chalk.cyan(config.docker ? 'Yes' : 'No')}`);
62
+ console.log(`${chalk.bold('Multi-Tenant:')} ${chalk.cyan(config.multiTenant ? 'Yes' : 'No')}`);
63
+ console.log(chalk.gray('─'.repeat(50)));
71
64
  console.log('');
72
65
  // Generate project
73
- await (0, generators_1.generateProject)(config, targetDir);
66
+ await generateProject(config, targetDir);
74
67
  // Success message
75
68
  console.log('');
76
- logger_1.logger.success(chalk_1.default.bold('🎉 Project created successfully!\n'));
77
- console.log(chalk_1.default.bold('Next steps:\n'));
78
- console.log(chalk_1.default.cyan(` cd ${projectName}`));
79
- console.log(chalk_1.default.cyan(' npm install'));
80
- console.log(chalk_1.default.cyan(' npm run dev\n'));
81
- console.log(chalk_1.default.gray('For more information, check out the README.md in your project.\n'));
82
- console.log(chalk_1.default.bold('Built by Sumit Chauhan'));
83
- console.log(chalk_1.default.gray('GitHub: https://github.com/halloffame12'));
84
- console.log(chalk_1.default.gray('LinkedIn: https://www.linkedin.com/in/sumit-chauhan-a4ba98325/\n'));
69
+ logger.success(chalk.bold('🎉 Project created successfully!\n'));
70
+ console.log(chalk.bold('Next steps:\n'));
71
+ console.log(chalk.cyan(` cd ${projectName}`));
72
+ if (config.skipInstall) {
73
+ console.log(chalk.cyan(' npm install'));
74
+ }
75
+ console.log(chalk.cyan(' npm run dev\n'));
76
+ console.log(chalk.gray('For more information, check out the README.md in your project.\n'));
77
+ console.log(chalk.bold('Built by Sumit Chauhan'));
78
+ console.log(chalk.gray('GitHub: https://github.com/halloffame12'));
79
+ console.log(chalk.gray('LinkedIn: https://www.linkedin.com/in/sumit-chauhan-a4ba98325/\n'));
85
80
  }
86
81
  catch (error) {
87
- logger_1.logger.error('Failed to create project');
82
+ logger.error('Failed to create project');
88
83
  console.error(error);
89
84
  process.exit(1);
90
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateGraphQL = generateGraphQL;
7
- exports.generateTRPC = generateTRPC;
8
- const path_1 = __importDefault(require("path"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- async function generateGraphQL(config, backendDir) {
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ export async function generateGraphQL(config, backendDir) {
11
4
  if (config.backend === 'express') {
12
5
  await generateExpressGraphQL(config, backendDir);
13
6
  }
@@ -17,16 +10,16 @@ async function generateGraphQL(config, backendDir) {
17
10
  }
18
11
  async function generateExpressGraphQL(config, backendDir) {
19
12
  // Update package.json
20
- const packageJson = await fs_extra_1.default.readJSON(path_1.default.join(backendDir, 'package.json'));
13
+ const packageJson = await fs.readJSON(path.join(backendDir, 'package.json'));
21
14
  packageJson.dependencies['graphql'] = '^16.8.1';
22
15
  packageJson.dependencies['@apollo/server'] = '^4.10.0';
23
16
  packageJson.dependencies['@graphql-tools/schema'] = '^10.0.2';
24
- await fs_extra_1.default.writeJSON(path_1.default.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
17
+ await fs.writeJSON(path.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
25
18
  // Create GraphQL directory
26
- const graphqlDir = path_1.default.join(backendDir, 'src', 'graphql');
27
- await fs_extra_1.default.ensureDir(graphqlDir);
28
- await fs_extra_1.default.ensureDir(path_1.default.join(graphqlDir, 'resolvers'));
29
- await fs_extra_1.default.ensureDir(path_1.default.join(graphqlDir, 'types'));
19
+ const graphqlDir = path.join(backendDir, 'src', 'graphql');
20
+ await fs.ensureDir(graphqlDir);
21
+ await fs.ensureDir(path.join(graphqlDir, 'resolvers'));
22
+ await fs.ensureDir(path.join(graphqlDir, 'types'));
30
23
  // Schema
31
24
  const schema = `import { gql } from 'graphql-tag';
32
25
 
@@ -54,7 +47,7 @@ export const typeDefs = gql\`
54
47
  }
55
48
  \`;
56
49
  `;
57
- await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'schema.ts'), schema);
50
+ await fs.writeFile(path.join(graphqlDir, 'schema.ts'), schema);
58
51
  // Resolvers
59
52
  const resolvers = `import bcrypt from 'bcrypt';
60
53
  import jwt from 'jsonwebtoken';
@@ -136,7 +129,7 @@ export const resolvers = {
136
129
  },
137
130
  };
138
131
  `;
139
- await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'resolvers', 'index.ts'), resolvers);
132
+ await fs.writeFile(path.join(graphqlDir, 'resolvers', 'index.ts'), resolvers);
140
133
  // Apollo Server setup
141
134
  const apolloSetup = `import { ApolloServer } from '@apollo/server';
142
135
  import { expressMiddleware } from '@apollo/server/express4';
@@ -170,16 +163,16 @@ export async function createApolloServer() {
170
163
  });
171
164
  }
172
165
  `;
173
- await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'server.ts'), apolloSetup);
166
+ await fs.writeFile(path.join(graphqlDir, 'server.ts'), apolloSetup);
174
167
  }
175
168
  async function generateNestJSGraphQL(config, backendDir) {
176
169
  // Update package.json
177
- const packageJson = await fs_extra_1.default.readJSON(path_1.default.join(backendDir, 'package.json'));
170
+ const packageJson = await fs.readJSON(path.join(backendDir, 'package.json'));
178
171
  packageJson.dependencies['@nestjs/graphql'] = '^12.0.11';
179
172
  packageJson.dependencies['@nestjs/apollo'] = '^12.0.11';
180
173
  packageJson.dependencies['@apollo/server'] = '^4.10.0';
181
174
  packageJson.dependencies['graphql'] = '^16.8.1';
182
- await fs_extra_1.default.writeJSON(path_1.default.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
175
+ await fs.writeJSON(path.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
183
176
  // GraphQL module
184
177
  const graphqlModule = `import { Module } from '@nestjs/common';
185
178
  import { GraphQLModule } from '@nestjs/graphql';
@@ -199,7 +192,7 @@ import { join } from 'path';
199
192
  })
200
193
  export class GraphqlModule {}
201
194
  `;
202
- await fs_extra_1.default.writeFile(path_1.default.join(backendDir, 'src', 'graphql.module.ts'), graphqlModule);
195
+ await fs.writeFile(path.join(backendDir, 'src', 'graphql.module.ts'), graphqlModule);
203
196
  // User resolver
204
197
  const userResolver = `import { Resolver, Query, Mutation, Args } from '@nestjs/graphql';
205
198
  import { UseGuards } from '@nestjs/common';
@@ -238,18 +231,25 @@ export class UserResolver {
238
231
  }
239
232
  }
240
233
  `;
241
- await fs_extra_1.default.writeFile(path_1.default.join(backendDir, 'src', 'users', 'users.resolver.ts'), userResolver);
234
+ await fs.writeFile(path.join(backendDir, 'src', 'users', 'users.resolver.ts'), userResolver);
242
235
  }
243
- async function generateTRPC(config, backendDir, frontendDir) {
236
+ export async function generateTRPC(config, backendDir, frontendDir) {
244
237
  // Backend setup
245
- const packageJson = await fs_extra_1.default.readJSON(path_1.default.join(backendDir, 'package.json'));
238
+ const packageJson = await fs.readJSON(path.join(backendDir, 'package.json'));
246
239
  packageJson.dependencies['@trpc/server'] = '^10.45.0';
247
240
  packageJson.dependencies['zod'] = '^3.22.4';
248
- await fs_extra_1.default.writeJSON(path_1.default.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
241
+ // Add auth dependencies - tRPC auth router always uses bcryptjs/jwt
242
+ packageJson.dependencies['bcryptjs'] = '^2.4.3';
243
+ packageJson.dependencies['jsonwebtoken'] = '^9.0.2';
244
+ if (!packageJson.devDependencies)
245
+ packageJson.devDependencies = {};
246
+ packageJson.devDependencies['@types/bcryptjs'] = '^2.4.6';
247
+ packageJson.devDependencies['@types/jsonwebtoken'] = '^9.0.7';
248
+ await fs.writeJSON(path.join(backendDir, 'package.json'), packageJson, { spaces: 2 });
249
249
  // tRPC router
250
- const trpcDir = path_1.default.join(backendDir, 'src', 'trpc');
251
- await fs_extra_1.default.ensureDir(trpcDir);
252
- await fs_extra_1.default.ensureDir(path_1.default.join(trpcDir, 'routers'));
250
+ const trpcDir = path.join(backendDir, 'src', 'trpc');
251
+ await fs.ensureDir(trpcDir);
252
+ await fs.ensureDir(path.join(trpcDir, 'routers'));
253
253
  const trpcSetup = `import { initTRPC } from '@trpc/server';
254
254
  import { z } from 'zod';
255
255
 
@@ -258,10 +258,10 @@ const t = initTRPC.create();
258
258
  export const router = t.router;
259
259
  export const publicProcedure = t.procedure;
260
260
  `;
261
- await fs_extra_1.default.writeFile(path_1.default.join(trpcDir, 'trpc.ts'), trpcSetup);
262
- const authRouter = `import { router, publicProcedure } from '../trpc';
261
+ await fs.writeFile(path.join(trpcDir, 'trpc.ts'), trpcSetup);
262
+ const authRouter = `import { router, publicProcedure } from '../trpc.js';
263
263
  import { z } from 'zod';
264
- import bcrypt from 'bcrypt';
264
+ import bcrypt from 'bcryptjs';
265
265
  import jwt from 'jsonwebtoken';
266
266
  ${config.database === 'mongodb' ? "import User from '../../models/User';" : "import prisma from '../../lib/prisma';"}
267
267
 
@@ -329,18 +329,22 @@ export const authRouter = router({
329
329
  }),
330
330
  });
331
331
  `;
332
- await fs_extra_1.default.writeFile(path_1.default.join(trpcDir, 'routers', 'auth.ts'), authRouter);
332
+ await fs.writeFile(path.join(trpcDir, 'routers', 'auth.ts'), authRouter);
333
333
  // Frontend tRPC client
334
- const frontendPackageJson = await fs_extra_1.default.readJSON(path_1.default.join(frontendDir, 'package.json'));
334
+ const frontendPackageJson = await fs.readJSON(path.join(frontendDir, 'package.json'));
335
335
  frontendPackageJson.dependencies['@trpc/client'] = '^10.45.0';
336
336
  frontendPackageJson.dependencies['@trpc/react-query'] = '^10.45.0';
337
- frontendPackageJson.dependencies['@tanstack/react-query'] = '^5.17.19';
338
- await fs_extra_1.default.writeJSON(path_1.default.join(frontendDir, 'package.json'), frontendPackageJson, { spaces: 2 });
337
+ frontendPackageJson.dependencies['@tanstack/react-query'] = '^4.36.1';
338
+ await fs.writeJSON(path.join(frontendDir, 'package.json'), frontendPackageJson, { spaces: 2 });
339
+ const isNext = config.frontend === 'nextjs';
340
+ const frontendLibDir = path.join(frontendDir, isNext ? 'lib' : 'src/lib');
341
+ await fs.ensureDir(frontendLibDir);
342
+ const relativePath = isNext ? '../../backend/src/trpc/routers' : '../../../backend/src/trpc/routers';
339
343
  const trpcClient = `import { createTRPCReact } from '@trpc/react-query';
340
- import type { AppRouter } from '../../../backend/src/trpc/routers';
344
+ import type { AppRouter } from '${relativePath}';
341
345
 
342
346
  export const trpc = createTRPCReact<AppRouter>();
343
347
  `;
344
- await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'src', 'lib', 'trpc.ts'), trpcClient);
348
+ await fs.writeFile(path.join(frontendLibDir, 'trpc.ts'), trpcClient);
345
349
  }
346
350
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":"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"}