nestjs-ddd-cli 2.2.0 → 3.2.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.
Files changed (254) hide show
  1. package/README.md +247 -408
  2. package/ddd.schema.json +111 -0
  3. package/dist/commands/aggregate-validator.d.ts +9 -0
  4. package/dist/commands/aggregate-validator.js +953 -0
  5. package/dist/commands/aggregate-validator.js.map +1 -0
  6. package/dist/commands/ai-assist.d.ts +8 -0
  7. package/dist/commands/ai-assist.js +337 -0
  8. package/dist/commands/ai-assist.js.map +1 -0
  9. package/dist/commands/api-contracts.d.ts +9 -0
  10. package/dist/commands/api-contracts.js +1368 -0
  11. package/dist/commands/api-contracts.js.map +1 -0
  12. package/dist/commands/api-docs.d.ts +8 -0
  13. package/dist/commands/api-docs.js +408 -0
  14. package/dist/commands/api-docs.js.map +1 -0
  15. package/dist/commands/api-versioning.d.ts +11 -0
  16. package/dist/commands/api-versioning.js +643 -0
  17. package/dist/commands/api-versioning.js.map +1 -0
  18. package/dist/commands/audit-logging.d.ts +9 -0
  19. package/dist/commands/audit-logging.js +1129 -0
  20. package/dist/commands/audit-logging.js.map +1 -0
  21. package/dist/commands/batch-generate.d.ts +10 -0
  22. package/dist/commands/batch-generate.js +405 -0
  23. package/dist/commands/batch-generate.js.map +1 -0
  24. package/dist/commands/caching-strategies.d.ts +9 -0
  25. package/dist/commands/caching-strategies.js +874 -0
  26. package/dist/commands/caching-strategies.js.map +1 -0
  27. package/dist/commands/code-analyzer.d.ts +42 -0
  28. package/dist/commands/code-analyzer.js +474 -0
  29. package/dist/commands/code-analyzer.js.map +1 -0
  30. package/dist/commands/database-seeding.d.ts +6 -0
  31. package/dist/commands/database-seeding.js +621 -0
  32. package/dist/commands/database-seeding.js.map +1 -0
  33. package/dist/commands/db-optimization.d.ts +7 -0
  34. package/dist/commands/db-optimization.js +687 -0
  35. package/dist/commands/db-optimization.js.map +1 -0
  36. package/dist/commands/dependency-graph.d.ts +6 -0
  37. package/dist/commands/dependency-graph.js +329 -0
  38. package/dist/commands/dependency-graph.js.map +1 -0
  39. package/dist/commands/doctor-enhanced.d.ts +22 -0
  40. package/dist/commands/doctor-enhanced.js +543 -0
  41. package/dist/commands/doctor-enhanced.js.map +1 -0
  42. package/dist/commands/doctor.d.ts +4 -0
  43. package/dist/commands/doctor.js +151 -0
  44. package/dist/commands/doctor.js.map +1 -0
  45. package/dist/commands/env-manager.d.ts +6 -0
  46. package/dist/commands/env-manager.js +419 -0
  47. package/dist/commands/env-manager.js.map +1 -0
  48. package/dist/commands/event-sourcing-full.d.ts +10 -0
  49. package/dist/commands/event-sourcing-full.js +1107 -0
  50. package/dist/commands/event-sourcing-full.js.map +1 -0
  51. package/dist/commands/feature-flags.d.ts +9 -0
  52. package/dist/commands/feature-flags.js +824 -0
  53. package/dist/commands/feature-flags.js.map +1 -0
  54. package/dist/commands/filter-dsl.d.ts +10 -0
  55. package/dist/commands/filter-dsl.js +1407 -0
  56. package/dist/commands/filter-dsl.js.map +1 -0
  57. package/dist/commands/generate-all.js +485 -32
  58. package/dist/commands/generate-all.js.map +1 -1
  59. package/dist/commands/generate-deployment.d.ts +8 -0
  60. package/dist/commands/generate-deployment.js +746 -0
  61. package/dist/commands/generate-deployment.js.map +1 -0
  62. package/dist/commands/generate-domain-service.d.ts +14 -0
  63. package/dist/commands/generate-domain-service.js +796 -0
  64. package/dist/commands/generate-domain-service.js.map +1 -0
  65. package/dist/commands/generate-entity.js +82 -24
  66. package/dist/commands/generate-entity.js.map +1 -1
  67. package/dist/commands/generate-from-schema.d.ts +56 -0
  68. package/dist/commands/generate-from-schema.js +222 -0
  69. package/dist/commands/generate-from-schema.js.map +1 -0
  70. package/dist/commands/generate-orchestrator.d.ts +14 -0
  71. package/dist/commands/generate-orchestrator.js +887 -0
  72. package/dist/commands/generate-orchestrator.js.map +1 -0
  73. package/dist/commands/generate-repository.d.ts +14 -0
  74. package/dist/commands/generate-repository.js +1019 -0
  75. package/dist/commands/generate-repository.js.map +1 -0
  76. package/dist/commands/generate-shared.d.ts +4 -0
  77. package/dist/commands/generate-shared.js +388 -0
  78. package/dist/commands/generate-shared.js.map +1 -0
  79. package/dist/commands/generate-value-object.d.ts +32 -0
  80. package/dist/commands/generate-value-object.js +700 -0
  81. package/dist/commands/generate-value-object.js.map +1 -0
  82. package/dist/commands/graphql-subscriptions.d.ts +6 -0
  83. package/dist/commands/graphql-subscriptions.js +607 -0
  84. package/dist/commands/graphql-subscriptions.js.map +1 -0
  85. package/dist/commands/graphql-types.d.ts +5 -0
  86. package/dist/commands/graphql-types.js +423 -0
  87. package/dist/commands/graphql-types.js.map +1 -0
  88. package/dist/commands/health-probes-advanced.d.ts +6 -0
  89. package/dist/commands/health-probes-advanced.js +655 -0
  90. package/dist/commands/health-probes-advanced.js.map +1 -0
  91. package/dist/commands/i18n-setup.d.ts +10 -0
  92. package/dist/commands/i18n-setup.js +677 -0
  93. package/dist/commands/i18n-setup.js.map +1 -0
  94. package/dist/commands/init-config.d.ts +6 -0
  95. package/dist/commands/init-config.js +370 -0
  96. package/dist/commands/init-config.js.map +1 -0
  97. package/dist/commands/init-project.js +56 -6
  98. package/dist/commands/init-project.js.map +1 -1
  99. package/dist/commands/interactive-scaffold.d.ts +5 -0
  100. package/dist/commands/interactive-scaffold.js +271 -0
  101. package/dist/commands/interactive-scaffold.js.map +1 -0
  102. package/dist/commands/metrics-prometheus.d.ts +6 -0
  103. package/dist/commands/metrics-prometheus.js +681 -0
  104. package/dist/commands/metrics-prometheus.js.map +1 -0
  105. package/dist/commands/migration-engine.d.ts +6 -0
  106. package/dist/commands/migration-engine.js +446 -0
  107. package/dist/commands/migration-engine.js.map +1 -0
  108. package/dist/commands/migration.d.ts +12 -0
  109. package/dist/commands/migration.js +484 -0
  110. package/dist/commands/migration.js.map +1 -0
  111. package/dist/commands/monorepo.d.ts +8 -0
  112. package/dist/commands/monorepo.js +483 -0
  113. package/dist/commands/monorepo.js.map +1 -0
  114. package/dist/commands/multi-database.d.ts +5 -0
  115. package/dist/commands/multi-database.js +439 -0
  116. package/dist/commands/multi-database.js.map +1 -0
  117. package/dist/commands/observability-tracing.d.ts +10 -0
  118. package/dist/commands/observability-tracing.js +740 -0
  119. package/dist/commands/observability-tracing.js.map +1 -0
  120. package/dist/commands/openapi-export.d.ts +8 -0
  121. package/dist/commands/openapi-export.js +359 -0
  122. package/dist/commands/openapi-export.js.map +1 -0
  123. package/dist/commands/perf-analyzer.d.ts +8 -0
  124. package/dist/commands/perf-analyzer.js +423 -0
  125. package/dist/commands/perf-analyzer.js.map +1 -0
  126. package/dist/commands/rate-limiting.d.ts +10 -0
  127. package/dist/commands/rate-limiting.js +953 -0
  128. package/dist/commands/rate-limiting.js.map +1 -0
  129. package/dist/commands/recipe-plugin.d.ts +56 -0
  130. package/dist/commands/recipe-plugin.js +315 -0
  131. package/dist/commands/recipe-plugin.js.map +1 -0
  132. package/dist/commands/recipe.d.ts +6 -0
  133. package/dist/commands/recipe.js +3941 -0
  134. package/dist/commands/recipe.js.map +1 -0
  135. package/dist/commands/recipes/elasticsearch.recipe.d.ts +1 -0
  136. package/dist/commands/recipes/elasticsearch.recipe.js +761 -0
  137. package/dist/commands/recipes/elasticsearch.recipe.js.map +1 -0
  138. package/dist/commands/recipes/event-sourcing.recipe.d.ts +1 -0
  139. package/dist/commands/recipes/event-sourcing.recipe.js +889 -0
  140. package/dist/commands/recipes/event-sourcing.recipe.js.map +1 -0
  141. package/dist/commands/recipes/index.d.ts +7 -0
  142. package/dist/commands/recipes/index.js +24 -0
  143. package/dist/commands/recipes/index.js.map +1 -0
  144. package/dist/commands/recipes/message-queue.recipe.d.ts +1 -0
  145. package/dist/commands/recipes/message-queue.recipe.js +706 -0
  146. package/dist/commands/recipes/message-queue.recipe.js.map +1 -0
  147. package/dist/commands/recipes/middleware.recipe.d.ts +1 -0
  148. package/dist/commands/recipes/middleware.recipe.js +383 -0
  149. package/dist/commands/recipes/middleware.recipe.js.map +1 -0
  150. package/dist/commands/recipes/multi-tenancy.recipe.d.ts +1 -0
  151. package/dist/commands/recipes/multi-tenancy.recipe.js +520 -0
  152. package/dist/commands/recipes/multi-tenancy.recipe.js.map +1 -0
  153. package/dist/commands/recipes/oauth2.recipe.d.ts +1 -0
  154. package/dist/commands/recipes/oauth2.recipe.js +472 -0
  155. package/dist/commands/recipes/oauth2.recipe.js.map +1 -0
  156. package/dist/commands/recipes/websocket.recipe.d.ts +1 -0
  157. package/dist/commands/recipes/websocket.recipe.js +453 -0
  158. package/dist/commands/recipes/websocket.recipe.js.map +1 -0
  159. package/dist/commands/resilience-patterns.d.ts +13 -0
  160. package/dist/commands/resilience-patterns.js +1029 -0
  161. package/dist/commands/resilience-patterns.js.map +1 -0
  162. package/dist/commands/security-patterns.d.ts +11 -0
  163. package/dist/commands/security-patterns.js +2233 -0
  164. package/dist/commands/security-patterns.js.map +1 -0
  165. package/dist/commands/template-debug.d.ts +27 -0
  166. package/dist/commands/template-debug.js +388 -0
  167. package/dist/commands/template-debug.js.map +1 -0
  168. package/dist/commands/test-factory-full.d.ts +9 -0
  169. package/dist/commands/test-factory-full.js +1570 -0
  170. package/dist/commands/test-factory-full.js.map +1 -0
  171. package/dist/commands/test-scaffold.d.ts +7 -0
  172. package/dist/commands/test-scaffold.js +621 -0
  173. package/dist/commands/test-scaffold.js.map +1 -0
  174. package/dist/index.js +1088 -0
  175. package/dist/index.js.map +1 -1
  176. package/dist/templates/ai-context/CLAUDE.md.hbs +158 -0
  177. package/dist/templates/ai-context/conventions.md.hbs +154 -0
  178. package/dist/templates/command/create-command.hbs +6 -14
  179. package/dist/templates/command/delete-command.hbs +19 -0
  180. package/dist/templates/command/update-command.hbs +24 -0
  181. package/dist/templates/controller/controller.hbs +64 -17
  182. package/dist/templates/dto/create-dto.hbs +29 -5
  183. package/dist/templates/dto/filter-dto.hbs +52 -0
  184. package/dist/templates/dto/filter-query.dto.hbs +148 -0
  185. package/dist/templates/dto/paginated-response.dto.hbs +29 -0
  186. package/dist/templates/dto/pagination-query.dto.hbs +30 -0
  187. package/dist/templates/dto/response-dto.hbs +38 -0
  188. package/dist/templates/dto/update-dto.hbs +11 -0
  189. package/dist/templates/entity/entity.hbs +32 -1
  190. package/dist/templates/event/domain-event.hbs +33 -7
  191. package/dist/templates/event/event-handler.hbs +40 -0
  192. package/dist/templates/exception/base-exceptions.hbs +69 -0
  193. package/dist/templates/exception/entity-not-found.exception.hbs +7 -0
  194. package/dist/templates/mapper/mapper.hbs +49 -24
  195. package/dist/templates/module/module.hbs +34 -10
  196. package/dist/templates/orm-entity/orm-entity.hbs +63 -12
  197. package/dist/templates/prisma/prisma-mapper.hbs +71 -0
  198. package/dist/templates/prisma/prisma-repository.hbs +114 -0
  199. package/dist/templates/prisma/prisma-schema.hbs +20 -0
  200. package/dist/templates/prisma/prisma-service.hbs +51 -0
  201. package/dist/templates/query/get-all.query.hbs +50 -0
  202. package/dist/templates/query/get-by-id.query.hbs +31 -0
  203. package/dist/templates/repository/repository.hbs +55 -13
  204. package/dist/templates/resolver/graphql-input.hbs +54 -0
  205. package/dist/templates/resolver/graphql-type.hbs +58 -0
  206. package/dist/templates/resolver/pagination-args.hbs +33 -0
  207. package/dist/templates/resolver/resolver.hbs +62 -0
  208. package/dist/templates/shared/prisma-query-builder.util.hbs +189 -0
  209. package/dist/templates/shared/query-builder.util.hbs +218 -0
  210. package/dist/templates/test/controller.spec.hbs +124 -0
  211. package/dist/templates/test/repository.spec.hbs +158 -0
  212. package/dist/templates/test/usecase.spec.hbs +116 -0
  213. package/dist/templates/usecase/create-usecase.hbs +19 -7
  214. package/dist/templates/usecase/delete-usecase.hbs +17 -0
  215. package/dist/templates/usecase/update-usecase.hbs +31 -0
  216. package/dist/utils/config.utils.d.ts +45 -0
  217. package/dist/utils/config.utils.js +211 -0
  218. package/dist/utils/config.utils.js.map +1 -0
  219. package/dist/utils/error.utils.d.ts +145 -0
  220. package/dist/utils/error.utils.js +422 -0
  221. package/dist/utils/error.utils.js.map +1 -0
  222. package/dist/utils/field.utils.d.ts +54 -0
  223. package/dist/utils/field.utils.js +389 -0
  224. package/dist/utils/field.utils.js.map +1 -0
  225. package/dist/utils/file.utils.d.ts +19 -8
  226. package/dist/utils/file.utils.js +135 -4
  227. package/dist/utils/file.utils.js.map +1 -1
  228. package/dist/utils/idempotency.utils.d.ts +123 -0
  229. package/dist/utils/idempotency.utils.js +444 -0
  230. package/dist/utils/idempotency.utils.js.map +1 -0
  231. package/dist/utils/naming.utils.js +26 -3
  232. package/dist/utils/naming.utils.js.map +1 -1
  233. package/dist/utils/performance.utils.d.ts +37 -0
  234. package/dist/utils/performance.utils.js +158 -0
  235. package/dist/utils/performance.utils.js.map +1 -0
  236. package/dist/utils/relation.utils.d.ts +92 -0
  237. package/dist/utils/relation.utils.js +388 -0
  238. package/dist/utils/relation.utils.js.map +1 -0
  239. package/dist/utils/rollback.utils.d.ts +49 -0
  240. package/dist/utils/rollback.utils.js +306 -0
  241. package/dist/utils/rollback.utils.js.map +1 -0
  242. package/dist/utils/schema.utils.d.ts +123 -0
  243. package/dist/utils/schema.utils.js +419 -0
  244. package/dist/utils/schema.utils.js.map +1 -0
  245. package/dist/utils/security.utils.d.ts +57 -0
  246. package/dist/utils/security.utils.js +315 -0
  247. package/dist/utils/security.utils.js.map +1 -0
  248. package/dist/utils/template-engine.utils.d.ts +80 -0
  249. package/dist/utils/template-engine.utils.js +463 -0
  250. package/dist/utils/template-engine.utils.js.map +1 -0
  251. package/dist/utils/validation-registry.utils.d.ts +160 -0
  252. package/dist/utils/validation-registry.utils.js +526 -0
  253. package/dist/utils/validation-registry.utils.js.map +1 -0
  254. package/package.json +3 -1
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.initConfig = initConfig;
40
+ exports.listPresets = listPresets;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ const readline = __importStar(require("readline"));
45
+ const PRESETS = {
46
+ 'minimal': {
47
+ name: 'Minimal',
48
+ description: 'Basic DDD structure with TypeORM and REST API',
49
+ config: {
50
+ orm: 'typeorm',
51
+ database: 'postgres',
52
+ features: {
53
+ graphql: false,
54
+ swagger: true,
55
+ cqrs: false,
56
+ eventSourcing: false,
57
+ },
58
+ naming: {
59
+ entitySuffix: '',
60
+ repositorySuffix: 'Repository',
61
+ serviceSuffix: 'Service',
62
+ controllerSuffix: 'Controller',
63
+ },
64
+ paths: {
65
+ modules: 'src/modules',
66
+ shared: 'src/shared',
67
+ templates: '.ddd/templates',
68
+ },
69
+ testing: {
70
+ framework: 'jest',
71
+ e2e: false,
72
+ factories: false,
73
+ },
74
+ },
75
+ },
76
+ 'standard': {
77
+ name: 'Standard',
78
+ description: 'Full DDD with CQRS, Swagger, and test factories',
79
+ config: {
80
+ orm: 'typeorm',
81
+ database: 'postgres',
82
+ features: {
83
+ graphql: false,
84
+ swagger: true,
85
+ cqrs: true,
86
+ eventSourcing: false,
87
+ },
88
+ naming: {
89
+ entitySuffix: '',
90
+ repositorySuffix: 'Repository',
91
+ serviceSuffix: 'Service',
92
+ controllerSuffix: 'Controller',
93
+ },
94
+ paths: {
95
+ modules: 'src/modules',
96
+ shared: 'src/shared',
97
+ templates: '.ddd/templates',
98
+ },
99
+ testing: {
100
+ framework: 'jest',
101
+ e2e: true,
102
+ factories: true,
103
+ },
104
+ },
105
+ },
106
+ 'enterprise': {
107
+ name: 'Enterprise',
108
+ description: 'Full-featured with GraphQL, CQRS, Event Sourcing',
109
+ config: {
110
+ orm: 'typeorm',
111
+ database: 'postgres',
112
+ features: {
113
+ graphql: true,
114
+ swagger: true,
115
+ cqrs: true,
116
+ eventSourcing: true,
117
+ },
118
+ naming: {
119
+ entitySuffix: '',
120
+ repositorySuffix: 'Repository',
121
+ serviceSuffix: 'Service',
122
+ controllerSuffix: 'Controller',
123
+ },
124
+ paths: {
125
+ modules: 'src/modules',
126
+ shared: 'src/shared',
127
+ templates: '.ddd/templates',
128
+ },
129
+ testing: {
130
+ framework: 'jest',
131
+ e2e: true,
132
+ factories: true,
133
+ },
134
+ },
135
+ },
136
+ 'prisma': {
137
+ name: 'Prisma',
138
+ description: 'Prisma ORM with modern TypeScript patterns',
139
+ config: {
140
+ orm: 'prisma',
141
+ database: 'postgres',
142
+ features: {
143
+ graphql: false,
144
+ swagger: true,
145
+ cqrs: true,
146
+ eventSourcing: false,
147
+ },
148
+ naming: {
149
+ entitySuffix: '',
150
+ repositorySuffix: 'Repository',
151
+ serviceSuffix: 'Service',
152
+ controllerSuffix: 'Controller',
153
+ },
154
+ paths: {
155
+ modules: 'src/modules',
156
+ shared: 'src/shared',
157
+ templates: '.ddd/templates',
158
+ },
159
+ testing: {
160
+ framework: 'jest',
161
+ e2e: true,
162
+ factories: true,
163
+ },
164
+ },
165
+ },
166
+ 'graphql': {
167
+ name: 'GraphQL First',
168
+ description: 'GraphQL-centric with code-first schema generation',
169
+ config: {
170
+ orm: 'typeorm',
171
+ database: 'postgres',
172
+ features: {
173
+ graphql: true,
174
+ swagger: false,
175
+ cqrs: true,
176
+ eventSourcing: false,
177
+ },
178
+ naming: {
179
+ entitySuffix: '',
180
+ repositorySuffix: 'Repository',
181
+ serviceSuffix: 'Service',
182
+ controllerSuffix: 'Resolver',
183
+ },
184
+ paths: {
185
+ modules: 'src/modules',
186
+ shared: 'src/shared',
187
+ templates: '.ddd/templates',
188
+ },
189
+ testing: {
190
+ framework: 'jest',
191
+ e2e: true,
192
+ factories: true,
193
+ },
194
+ },
195
+ },
196
+ };
197
+ function createReadlineInterface() {
198
+ return readline.createInterface({
199
+ input: process.stdin,
200
+ output: process.stdout,
201
+ });
202
+ }
203
+ async function question(rl, prompt) {
204
+ return new Promise((resolve) => {
205
+ rl.question(prompt, (answer) => {
206
+ resolve(answer.trim());
207
+ });
208
+ });
209
+ }
210
+ async function selectOption(rl, prompt, options, defaultIndex = 0) {
211
+ console.log(chalk_1.default.cyan(`\n${prompt}`));
212
+ options.forEach((opt, i) => {
213
+ const marker = i === defaultIndex ? chalk_1.default.green('→') : ' ';
214
+ console.log(` ${marker} ${i + 1}. ${opt}`);
215
+ });
216
+ const answer = await question(rl, chalk_1.default.gray(`Enter choice [${defaultIndex + 1}]: `));
217
+ const index = answer ? parseInt(answer, 10) - 1 : defaultIndex;
218
+ if (index >= 0 && index < options.length) {
219
+ return options[index];
220
+ }
221
+ return options[defaultIndex];
222
+ }
223
+ async function confirm(rl, prompt, defaultYes = true) {
224
+ const hint = defaultYes ? '[Y/n]' : '[y/N]';
225
+ const answer = await question(rl, chalk_1.default.cyan(`${prompt} ${hint}: `));
226
+ if (!answer)
227
+ return defaultYes;
228
+ return answer.toLowerCase().startsWith('y');
229
+ }
230
+ async function initConfig(options = {}) {
231
+ const configPath = path.join(process.cwd(), '.dddrc.json');
232
+ if (fs.existsSync(configPath) && !options.force) {
233
+ console.log(chalk_1.default.yellow('⚠️ Config file .dddrc.json already exists.'));
234
+ console.log(chalk_1.default.gray(' Use --force to overwrite.'));
235
+ return;
236
+ }
237
+ console.log(chalk_1.default.bold.blue('\n🔧 NestJS DDD CLI Configuration Wizard\n'));
238
+ // If preset provided, use it directly
239
+ if (options.preset && PRESETS[options.preset]) {
240
+ const preset = PRESETS[options.preset];
241
+ fs.writeFileSync(configPath, JSON.stringify(preset.config, null, 2));
242
+ console.log(chalk_1.default.green(`✅ Created .dddrc.json with "${preset.name}" preset`));
243
+ printConfigSummary(preset.config);
244
+ return;
245
+ }
246
+ const rl = createReadlineInterface();
247
+ try {
248
+ // Step 1: Choose preset or custom
249
+ console.log(chalk_1.default.bold('Available Presets:\n'));
250
+ Object.entries(PRESETS).forEach(([key, preset]) => {
251
+ console.log(` ${chalk_1.default.cyan(key.padEnd(12))} ${preset.description}`);
252
+ });
253
+ console.log(` ${chalk_1.default.cyan('custom'.padEnd(12))} Configure everything manually`);
254
+ const presetChoice = await question(rl, chalk_1.default.yellow('\nChoose preset [standard]: '));
255
+ const selectedPreset = presetChoice || 'standard';
256
+ if (selectedPreset !== 'custom' && PRESETS[selectedPreset]) {
257
+ const preset = PRESETS[selectedPreset];
258
+ // Ask if they want to customize
259
+ const customize = await confirm(rl, 'Customize this preset?', false);
260
+ if (!customize) {
261
+ fs.writeFileSync(configPath, JSON.stringify(preset.config, null, 2));
262
+ console.log(chalk_1.default.green(`\n✅ Created .dddrc.json with "${preset.name}" preset`));
263
+ printConfigSummary(preset.config);
264
+ rl.close();
265
+ return;
266
+ }
267
+ // Start with preset as base for customization
268
+ const config = { ...preset.config };
269
+ await customizeConfig(rl, config);
270
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
271
+ console.log(chalk_1.default.green('\n✅ Created .dddrc.json with custom configuration'));
272
+ printConfigSummary(config);
273
+ }
274
+ else {
275
+ // Full custom configuration
276
+ const config = await buildCustomConfig(rl);
277
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
278
+ console.log(chalk_1.default.green('\n✅ Created .dddrc.json with custom configuration'));
279
+ printConfigSummary(config);
280
+ }
281
+ }
282
+ finally {
283
+ rl.close();
284
+ }
285
+ }
286
+ async function customizeConfig(rl, config) {
287
+ // ORM
288
+ const ormChoice = await selectOption(rl, 'Select ORM:', ['typeorm', 'prisma'], config.orm === 'prisma' ? 1 : 0);
289
+ config.orm = ormChoice;
290
+ // Database
291
+ const dbChoice = await selectOption(rl, 'Select Database:', ['postgres', 'mysql', 'sqlite', 'mongodb'], ['postgres', 'mysql', 'sqlite', 'mongodb'].indexOf(config.database));
292
+ config.database = dbChoice;
293
+ // Features
294
+ console.log(chalk_1.default.cyan('\nFeatures:'));
295
+ config.features.graphql = await confirm(rl, ' Enable GraphQL?', config.features.graphql);
296
+ config.features.swagger = await confirm(rl, ' Enable Swagger/OpenAPI?', config.features.swagger);
297
+ config.features.cqrs = await confirm(rl, ' Enable CQRS pattern?', config.features.cqrs);
298
+ config.features.eventSourcing = await confirm(rl, ' Enable Event Sourcing?', config.features.eventSourcing);
299
+ // Testing
300
+ console.log(chalk_1.default.cyan('\nTesting:'));
301
+ const testFramework = await selectOption(rl, 'Test framework:', ['jest', 'vitest'], config.testing.framework === 'vitest' ? 1 : 0);
302
+ config.testing.framework = testFramework;
303
+ config.testing.e2e = await confirm(rl, ' Generate E2E tests?', config.testing.e2e);
304
+ config.testing.factories = await confirm(rl, ' Generate test factories?', config.testing.factories);
305
+ }
306
+ async function buildCustomConfig(rl) {
307
+ const config = {
308
+ orm: 'typeorm',
309
+ database: 'postgres',
310
+ features: {
311
+ graphql: false,
312
+ swagger: true,
313
+ cqrs: false,
314
+ eventSourcing: false,
315
+ },
316
+ naming: {
317
+ entitySuffix: '',
318
+ repositorySuffix: 'Repository',
319
+ serviceSuffix: 'Service',
320
+ controllerSuffix: 'Controller',
321
+ },
322
+ paths: {
323
+ modules: 'src/modules',
324
+ shared: 'src/shared',
325
+ templates: '.ddd/templates',
326
+ },
327
+ testing: {
328
+ framework: 'jest',
329
+ e2e: false,
330
+ factories: false,
331
+ },
332
+ };
333
+ await customizeConfig(rl, config);
334
+ // Additional custom paths
335
+ console.log(chalk_1.default.cyan('\nPaths (press Enter for defaults):'));
336
+ const modulesPath = await question(rl, ` Modules path [${config.paths.modules}]: `);
337
+ if (modulesPath)
338
+ config.paths.modules = modulesPath;
339
+ const sharedPath = await question(rl, ` Shared path [${config.paths.shared}]: `);
340
+ if (sharedPath)
341
+ config.paths.shared = sharedPath;
342
+ return config;
343
+ }
344
+ function printConfigSummary(config) {
345
+ console.log(chalk_1.default.gray('\n─────────────────────────────────────'));
346
+ console.log(chalk_1.default.bold('Configuration Summary:\n'));
347
+ console.log(` ORM: ${chalk_1.default.cyan(config.orm)}`);
348
+ console.log(` Database: ${chalk_1.default.cyan(config.database)}`);
349
+ console.log(` GraphQL: ${config.features.graphql ? chalk_1.default.green('✓') : chalk_1.default.gray('✗')}`);
350
+ console.log(` Swagger: ${config.features.swagger ? chalk_1.default.green('✓') : chalk_1.default.gray('✗')}`);
351
+ console.log(` CQRS: ${config.features.cqrs ? chalk_1.default.green('✓') : chalk_1.default.gray('✗')}`);
352
+ console.log(` Testing: ${chalk_1.default.cyan(config.testing.framework)}${config.testing.e2e ? ' + E2E' : ''}`);
353
+ console.log(chalk_1.default.gray('─────────────────────────────────────\n'));
354
+ }
355
+ function listPresets() {
356
+ console.log(chalk_1.default.bold.blue('\n📋 Available Configuration Presets\n'));
357
+ Object.entries(PRESETS).forEach(([key, preset]) => {
358
+ console.log(chalk_1.default.bold.cyan(` ${key}`));
359
+ console.log(chalk_1.default.gray(` ${preset.description}`));
360
+ console.log(chalk_1.default.gray(` ORM: ${preset.config.orm}, DB: ${preset.config.database}`));
361
+ const features = Object.entries(preset.config.features)
362
+ .filter(([, v]) => v)
363
+ .map(([k]) => k);
364
+ if (features.length > 0) {
365
+ console.log(chalk_1.default.gray(` Features: ${features.join(', ')}`));
366
+ }
367
+ console.log();
368
+ });
369
+ }
370
+ //# sourceMappingURL=init-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-config.js","sourceRoot":"","sources":["../../src/commands/init-config.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,8 @@ const path = __importStar(require("path"));
41
41
  const inquirer_1 = __importDefault(require("inquirer"));
42
42
  const chalk_1 = __importDefault(require("chalk"));
43
43
  const dependency_utils_1 = require("../utils/dependency.utils");
44
+ const file_utils_1 = require("../utils/file.utils");
45
+ const config_utils_1 = require("../utils/config.utils");
44
46
  async function initProject(projectName, options) {
45
47
  try {
46
48
  // First, check for CLI updates if not skipped
@@ -64,7 +66,9 @@ async function initProject(projectName, options) {
64
66
  }
65
67
  }
66
68
  // Determine the project directory
67
- const projectDir = options.path ? path.resolve(options.path, projectName) : path.resolve(process.cwd(), projectName);
69
+ const projectDir = options.path
70
+ ? path.resolve(options.path, projectName)
71
+ : path.resolve(process.cwd(), projectName);
68
72
  // Create a new NestJS project
69
73
  await (0, dependency_utils_1.createNestJSProject)(projectName, {
70
74
  directory: options.path,
@@ -72,12 +76,27 @@ async function initProject(projectName, options) {
72
76
  });
73
77
  // If withDdd option is enabled, install DDD-related dependencies
74
78
  if (options.withDdd) {
75
- const dependencies = ['@nestjs/cqrs', 'class-validator', 'class-transformer'];
79
+ const dependencies = [
80
+ '@nestjs/cqrs',
81
+ '@nestjs/swagger',
82
+ 'class-validator',
83
+ 'class-transformer',
84
+ ];
76
85
  await (0, dependency_utils_1.installDependencies)(projectDir, dependencies);
77
86
  // Create DDD folder structure
78
87
  console.log(chalk_1.default.blue('Setting up DDD folder structure...'));
79
- // We'll use the generate-module command to create the initial module structure
80
- // This will be implemented in the main CLI entry point
88
+ // Create directories
89
+ await (0, file_utils_1.ensureDir)(path.join(projectDir, 'src/modules'));
90
+ await (0, file_utils_1.ensureDir)(path.join(projectDir, 'src/shared'));
91
+ await (0, file_utils_1.ensureDir)(path.join(projectDir, 'src/migrations'));
92
+ // Create .dddrc.json config file
93
+ console.log(chalk_1.default.cyan(' Creating configuration file...'));
94
+ await (0, config_utils_1.createDefaultConfig)(projectDir);
95
+ // Create AI context files
96
+ console.log(chalk_1.default.cyan(' Creating AI context files...'));
97
+ await createAiContextFiles(projectDir, projectName);
98
+ // Create tsconfig paths for module aliases
99
+ await updateTsConfig(projectDir);
81
100
  console.log(chalk_1.default.green('✅ DDD folder structure set up successfully!'));
82
101
  }
83
102
  console.log(chalk_1.default.green(`\n✅ Project ${projectName} initialized successfully!`));
@@ -86,9 +105,10 @@ async function initProject(projectName, options) {
86
105
  console.log(chalk_1.default.blue(` 2. npm run start:dev`));
87
106
  if (options.withDdd) {
88
107
  console.log(chalk_1.default.blue(`\nTo generate DDD components, use:`));
108
+ console.log(chalk_1.default.blue(` ddd scaffold User -m users --fields "name:string email:string:unique"`));
89
109
  console.log(chalk_1.default.blue(` ddd generate module <module-name>`));
90
- console.log(chalk_1.default.blue(` ddd generate entity <entity-name> --module <module-name>`));
91
- console.log(chalk_1.default.blue(` ddd generate usecase <usecase-name> --module <module-name>`));
110
+ console.log(chalk_1.default.blue(` ddd generate entity <entity-name> -m <module-name>`));
111
+ console.log(chalk_1.default.blue(` ddd generate usecase <usecase-name> -m <module-name>`));
92
112
  }
93
113
  }
94
114
  catch (error) {
@@ -96,4 +116,34 @@ async function initProject(projectName, options) {
96
116
  process.exit(1);
97
117
  }
98
118
  }
119
+ async function createAiContextFiles(projectDir, projectName) {
120
+ const templateData = { projectName };
121
+ // Create CLAUDE.md (AI context file for Claude Code and similar tools)
122
+ const claudeTemplatePath = path.join(__dirname, '../templates/ai-context/CLAUDE.md.hbs');
123
+ const claudeOutputPath = path.join(projectDir, 'CLAUDE.md');
124
+ await (0, file_utils_1.generateFromTemplate)(claudeTemplatePath, claudeOutputPath, templateData);
125
+ // Create conventions.md
126
+ const conventionsTemplatePath = path.join(__dirname, '../templates/ai-context/conventions.md.hbs');
127
+ const conventionsOutputPath = path.join(projectDir, 'docs/conventions.md');
128
+ await (0, file_utils_1.ensureDir)(path.join(projectDir, 'docs'));
129
+ await (0, file_utils_1.generateFromTemplate)(conventionsTemplatePath, conventionsOutputPath, templateData);
130
+ }
131
+ async function updateTsConfig(projectDir) {
132
+ const tsconfigPath = path.join(projectDir, 'tsconfig.json');
133
+ try {
134
+ const tsconfig = require(tsconfigPath);
135
+ // Add path aliases
136
+ tsconfig.compilerOptions = tsconfig.compilerOptions || {};
137
+ tsconfig.compilerOptions.paths = {
138
+ '@modules/*': ['src/modules/*'],
139
+ '@shared/*': ['src/shared/*'],
140
+ ...(tsconfig.compilerOptions.paths || {}),
141
+ };
142
+ await (0, file_utils_1.writeFile)(tsconfigPath, JSON.stringify(tsconfig, null, 2));
143
+ }
144
+ catch (error) {
145
+ // If we can't update tsconfig, that's okay - continue with the setup
146
+ console.log(chalk_1.default.yellow(' Note: Could not update tsconfig.json paths. You may need to add them manually.'));
147
+ }
148
+ }
99
149
  //# sourceMappingURL=init-project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/commands/init-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ interface InteractiveOptions {
2
+ path?: string;
3
+ }
4
+ export declare function interactiveScaffold(options: InteractiveOptions): Promise<void>;
5
+ export {};