speedrun-cli 2.6.10 → 2.7.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 (40) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +7 -7
  3. package/src/generator.js +1 -16
  4. package/src/moduleGenerator.js +597 -121
  5. package/src/postSetup.js +423 -402
  6. package/src/prompts.js +25 -3
  7. package/templates/orm/drizzle/package.json +2 -1
  8. package/templates/orm/mongoose/package.json +2 -1
  9. package/templates/orm/prisma/package.json +1 -0
  10. package/templates/base-crud/src/modules/products/dto/create-product.dto.ts +0 -34
  11. package/templates/base-crud/src/modules/products/dto/product.dto.ts +0 -36
  12. package/templates/base-crud/src/modules/products/dto/update-product.dto.ts +0 -4
  13. package/templates/base-crud/src/modules/products/products.controller.ts +0 -78
  14. package/templates/base-crud-drizzle/src/modules/products/dto/create-product.dto.ts +0 -34
  15. package/templates/base-crud-drizzle/src/modules/products/dto/product.dto.ts +0 -36
  16. package/templates/base-crud-drizzle/src/modules/products/dto/update-product.dto.ts +0 -4
  17. package/templates/base-crud-drizzle/src/modules/products/products.controller.ts +0 -78
  18. package/templates/base-crud-drizzle/src/modules/products/products.module.ts +0 -24
  19. package/templates/base-crud-drizzle/src/modules/products/products.service.ts +0 -140
  20. package/templates/base-crud-drizzle/src/modules/products/schema/products.schema.ts +0 -39
  21. package/templates/base-crud-mongoose/src/modules/products/dto/create-product.dto.ts +0 -34
  22. package/templates/base-crud-mongoose/src/modules/products/dto/product.dto.ts +0 -36
  23. package/templates/base-crud-mongoose/src/modules/products/dto/update-product.dto.ts +0 -4
  24. package/templates/base-crud-mongoose/src/modules/products/products.controller.ts +0 -78
  25. package/templates/base-crud-mongoose/src/modules/products/products.module.ts +0 -26
  26. package/templates/base-crud-mongoose/src/modules/products/products.service.ts +0 -133
  27. package/templates/base-crud-mongoose/src/modules/products/schemas/product.schema.ts +0 -67
  28. package/templates/base-crud-prisma/src/modules/products/dto/create-product.dto.ts +0 -34
  29. package/templates/base-crud-prisma/src/modules/products/dto/product.dto.ts +0 -36
  30. package/templates/base-crud-prisma/src/modules/products/dto/update-product.dto.ts +0 -4
  31. package/templates/base-crud-prisma/src/modules/products/products.controller.ts +0 -78
  32. package/templates/base-crud-prisma/src/modules/products/products.module.ts +0 -12
  33. package/templates/base-crud-prisma/src/modules/products/products.service.ts +0 -100
  34. package/templates/base-crud-typeorm/src/modules/products/dto/create-product.dto.ts +0 -34
  35. package/templates/base-crud-typeorm/src/modules/products/dto/product.dto.ts +0 -36
  36. package/templates/base-crud-typeorm/src/modules/products/dto/update-product.dto.ts +0 -4
  37. package/templates/base-crud-typeorm/src/modules/products/entities/product.entity.ts +0 -58
  38. package/templates/base-crud-typeorm/src/modules/products/products.controller.ts +0 -78
  39. package/templates/base-crud-typeorm/src/modules/products/products.module.ts +0 -25
  40. package/templates/base-crud-typeorm/src/modules/products/products.service.ts +0 -102
package/CHANGELOG.md CHANGED
@@ -5,6 +5,28 @@ All notable changes to create-nestjs-auth will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.7.0] - 2026-08-22
9
+
10
+ ### Added
11
+ - **Scaffolding Cleanup** — Static `src/modules/products` directory has been completely removed from all initial project templates (`templates/base-crud*`). Scaffolding now creates zero CRUD modules by default.
12
+ - **Interactive Field Builder Loop** — When generating a module (via guided setup or `speedrun-cli g [module_name]`), users can interactively define custom fields (`fieldName`, `fieldType`: `String`/`Number`/`Boolean`/`Date`, `isOptional`).
13
+ - **Dynamic ORM Schema Synchronization** — Automatically syncs definitions to the project's detected ORM:
14
+ - **Prisma:** Appends `model` with appropriate data types (`String`, `Float`/`Int`, `Boolean`, `DateTime`) and optional modifiers (`?`) to `prisma/schema.prisma`.
15
+ - **TypeORM:** Generates `@Entity()` class in `src/modules/[kebab]/entities/[singular].entity.ts`.
16
+ - **Mongoose:** Generates `@Schema()` class in `src/modules/[kebab]/schemas/[singular].schema.ts`.
17
+ - **Drizzle:** Generates `pgTable` definition in `src/modules/[kebab]/schema/[kebab].schema.ts`.
18
+ - **Auto-Generated Starter Seed Template** — Creates starter seed snippet populated with dummy data based on defined fields in `prisma/seeds/[kebab].seed.ts` (Prisma) or `src/database/seeds/[kebab].seed.ts` (TypeORM/Mongoose/Drizzle).
19
+ - **Dynamic Post-Setup Summary Log** — Displays clear post-install next steps dynamically tailored for each ORM (migration & seed commands).
20
+
21
+ ### Changed
22
+ - **Interactive Setup Prompt Sequence** updated:
23
+ 1. `Enable Base CRUD Architecture?` (Default: `Yes`)
24
+ 2. `Do you want to generate your first CRUD module now?` (Default: `Yes`)
25
+ 3. Shared Module Generator execution for module name, CRUD mode, and custom field loop.
26
+ - **Controller Service Constructor Visibility** fixed to `protected readonly service: [Name]Service` so generated controllers safely extend `BaseController`.
27
+
28
+ ---
29
+
8
30
  ## [2.6.10] - 2026-08-21
9
31
 
10
32
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speedrun-cli",
3
- "version": "2.6.10",
3
+ "version": "2.7.0",
4
4
  "description": "CLI tool to scaffold a production-ready NestJS authentication system with JWT, refresh tokens, and RBAC",
5
5
  "keywords": [
6
6
  "nestjs",
@@ -25,18 +25,18 @@
25
25
  "generator"
26
26
  ],
27
27
  "author": {
28
- "name": "Sabin Shrestha",
29
- "email": "sabin.shrestha.er@gmail.com",
30
- "url": "https://sabinshrestha69.com.np"
28
+ "name": "astralicc",
29
+ "email": "innzwha@gmail.com",
30
+ "url": "https://instagram.com/iifn.aa"
31
31
  },
32
32
  "license": "MIT",
33
- "homepage": "https://github.com/masabinhok/create-nestjs-auth#readme",
33
+ "homepage": "https://github.com/astralicc/speedrun-cli#readme",
34
34
  "repository": {
35
35
  "type": "git",
36
- "url": "git+https://github.com/masabinhok/create-nestjs-auth.git"
36
+ "url": "git+https://github.com/astralicc/speedrun-cli.git"
37
37
  },
38
38
  "bugs": {
39
- "url": "https://github.com/masabinhok/create-nestjs-auth/issues"
39
+ "url": "https://github.com/astralicc/speedrun-cli/issues"
40
40
  },
41
41
  "bin": {
42
42
  "create-nestjs-auth": "./index.js"
package/src/generator.js CHANGED
@@ -102,29 +102,14 @@ async function generateFromModularTemplates(targetDir, { baseDir, ormDir, dbDir,
102
102
 
103
103
  // Step 6: Apply Base CRUD Architecture overlay
104
104
  if (baseCrud) {
105
- // 6a. Shared layer: abstract base + shared DTOs + shared controller
106
105
  const baseCrudDir = path.join(__dirname, '..', 'templates', 'base-crud');
107
106
  if (await fs.pathExists(baseCrudDir)) {
108
- console.log(chalk.gray(' Adding Base CRUD Architecture (abstract layer + shared DTOs)...'));
107
+ console.log(chalk.gray(' Adding Base CRUD Architecture (BaseService, BaseController & Swagger helpers)...'));
109
108
  await fs.copy(baseCrudDir, targetDir, {
110
109
  overwrite: true,
111
110
  filter: createCopyFilter(baseCrudDir),
112
111
  });
113
112
  }
114
-
115
- // 6b. ORM-specific ProductModule example (overrides products.service.ts + module)
116
- const baseCrudOrmDir = path.join(__dirname, '..', 'templates', `base-crud-${orm}`);
117
- if (await fs.pathExists(baseCrudOrmDir)) {
118
- console.log(chalk.gray(` Adding ${ORM_OPTIONS[orm]?.name || orm} ProductModule example...`));
119
- await fs.copy(baseCrudOrmDir, targetDir, {
120
- overwrite: true,
121
- filter: createCopyFilter(baseCrudOrmDir),
122
- });
123
- }
124
-
125
- // 6c. Automatically register ProductsModule in src/app.module.ts
126
- const { registerInAppModule } = require('./moduleGenerator');
127
- await registerInAppModule(targetDir, 'Products', 'products');
128
113
  }
129
114
  }
130
115