nestjs-ddd-cli 2.2.1 → 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 +24 -5
  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,483 @@
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.initMonorepo = initMonorepo;
40
+ exports.addWorkspace = addWorkspace;
41
+ const path = __importStar(require("path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const file_utils_1 = require("../utils/file.utils");
44
+ async function initMonorepo(projectName, options = {}) {
45
+ console.log(chalk_1.default.bold.blue(`\n🏗️ Initializing Monorepo: ${projectName}\n`));
46
+ const basePath = options.path ? path.join(options.path, projectName) : path.join(process.cwd(), projectName);
47
+ const packageManager = options.packageManager || 'npm';
48
+ // Create directory structure
49
+ await (0, file_utils_1.ensureDir)(basePath);
50
+ await (0, file_utils_1.ensureDir)(path.join(basePath, 'apps'));
51
+ await (0, file_utils_1.ensureDir)(path.join(basePath, 'libs'));
52
+ await (0, file_utils_1.ensureDir)(path.join(basePath, 'tools'));
53
+ // Generate root package.json
54
+ await generateRootPackageJson(basePath, projectName, packageManager);
55
+ // Generate workspace configuration
56
+ await generateWorkspaceConfig(basePath, packageManager);
57
+ // Generate shared TypeScript config
58
+ await generateTsConfig(basePath);
59
+ // Generate NX or Turborepo config
60
+ await generateBuildConfig(basePath);
61
+ // Generate common libs
62
+ await generateSharedLib(basePath, 'common');
63
+ await generateSharedLib(basePath, 'domain');
64
+ // Generate sample app
65
+ await generateSampleApp(basePath, 'api');
66
+ // Generate scripts and tooling
67
+ await generateTooling(basePath);
68
+ console.log(chalk_1.default.green(`\n✅ Monorepo created at ${basePath}`));
69
+ console.log(chalk_1.default.cyan(`\nNext steps:`));
70
+ console.log(chalk_1.default.gray(` cd ${projectName}`));
71
+ console.log(chalk_1.default.gray(` ${packageManager} install`));
72
+ console.log(chalk_1.default.gray(` ${packageManager} run dev`));
73
+ }
74
+ async function generateRootPackageJson(basePath, name, pm) {
75
+ const workspaces = pm === 'pnpm' ? undefined : ['apps/*', 'libs/*'];
76
+ const content = {
77
+ name,
78
+ version: '0.0.0',
79
+ private: true,
80
+ ...(workspaces && { workspaces }),
81
+ scripts: {
82
+ 'dev': 'turbo run dev',
83
+ 'build': 'turbo run build',
84
+ 'test': 'turbo run test',
85
+ 'lint': 'turbo run lint',
86
+ 'clean': 'turbo run clean && rm -rf node_modules',
87
+ 'format': 'prettier --write "**/*.{ts,tsx,md}"',
88
+ 'prepare': 'husky install',
89
+ },
90
+ devDependencies: {
91
+ 'turbo': '^1.10.0',
92
+ 'typescript': '^5.0.0',
93
+ 'prettier': '^3.0.0',
94
+ 'husky': '^8.0.0',
95
+ 'lint-staged': '^14.0.0',
96
+ '@types/node': '^20.0.0',
97
+ },
98
+ engines: {
99
+ 'node': '>=18.0.0',
100
+ },
101
+ packageManager: pm === 'pnpm' ? 'pnpm@8.0.0' : undefined,
102
+ };
103
+ await (0, file_utils_1.writeFile)(path.join(basePath, 'package.json'), JSON.stringify(content, null, 2));
104
+ console.log(chalk_1.default.green(' ✓ package.json'));
105
+ }
106
+ async function generateWorkspaceConfig(basePath, pm) {
107
+ if (pm === 'pnpm') {
108
+ const pnpmWorkspace = `packages:
109
+ - 'apps/*'
110
+ - 'libs/*'
111
+ `;
112
+ await (0, file_utils_1.writeFile)(path.join(basePath, 'pnpm-workspace.yaml'), pnpmWorkspace);
113
+ console.log(chalk_1.default.green(' ✓ pnpm-workspace.yaml'));
114
+ }
115
+ // Turbo config
116
+ const turboConfig = {
117
+ $schema: 'https://turbo.build/schema.json',
118
+ globalDependencies: ['**/.env.*local'],
119
+ pipeline: {
120
+ 'build': {
121
+ dependsOn: ['^build'],
122
+ outputs: ['dist/**'],
123
+ },
124
+ 'dev': {
125
+ cache: false,
126
+ persistent: true,
127
+ },
128
+ 'test': {
129
+ dependsOn: ['^build'],
130
+ outputs: ['coverage/**'],
131
+ },
132
+ 'lint': {
133
+ outputs: [],
134
+ },
135
+ 'clean': {
136
+ cache: false,
137
+ },
138
+ },
139
+ };
140
+ await (0, file_utils_1.writeFile)(path.join(basePath, 'turbo.json'), JSON.stringify(turboConfig, null, 2));
141
+ console.log(chalk_1.default.green(' ✓ turbo.json'));
142
+ }
143
+ async function generateTsConfig(basePath) {
144
+ // Base tsconfig
145
+ const baseConfig = {
146
+ compilerOptions: {
147
+ target: 'ES2021',
148
+ module: 'commonjs',
149
+ lib: ['ES2021'],
150
+ declaration: true,
151
+ strict: true,
152
+ noImplicitAny: true,
153
+ strictNullChecks: true,
154
+ noImplicitThis: true,
155
+ alwaysStrict: true,
156
+ noUnusedLocals: false,
157
+ noUnusedParameters: false,
158
+ noImplicitReturns: true,
159
+ noFallthroughCasesInSwitch: false,
160
+ inlineSourceMap: true,
161
+ inlineSources: true,
162
+ esModuleInterop: true,
163
+ experimentalDecorators: true,
164
+ emitDecoratorMetadata: true,
165
+ skipLibCheck: true,
166
+ resolveJsonModule: true,
167
+ baseUrl: '.',
168
+ paths: {
169
+ '@libs/*': ['libs/*/src'],
170
+ '@apps/*': ['apps/*/src'],
171
+ },
172
+ },
173
+ exclude: ['node_modules', 'dist'],
174
+ };
175
+ await (0, file_utils_1.writeFile)(path.join(basePath, 'tsconfig.base.json'), JSON.stringify(baseConfig, null, 2));
176
+ console.log(chalk_1.default.green(' ✓ tsconfig.base.json'));
177
+ // Root tsconfig that extends base
178
+ const rootConfig = {
179
+ extends: './tsconfig.base.json',
180
+ compilerOptions: {
181
+ baseUrl: '.',
182
+ },
183
+ references: [
184
+ { path: 'apps/api' },
185
+ { path: 'libs/common' },
186
+ { path: 'libs/domain' },
187
+ ],
188
+ files: [],
189
+ exclude: ['node_modules', '**/dist'],
190
+ };
191
+ await (0, file_utils_1.writeFile)(path.join(basePath, 'tsconfig.json'), JSON.stringify(rootConfig, null, 2));
192
+ console.log(chalk_1.default.green(' ✓ tsconfig.json'));
193
+ }
194
+ async function generateBuildConfig(basePath) {
195
+ // .gitignore
196
+ const gitignore = `# Dependencies
197
+ node_modules
198
+ .pnpm-store
199
+
200
+ # Build outputs
201
+ dist
202
+ *.tsbuildinfo
203
+
204
+ # Cache
205
+ .turbo
206
+ .cache
207
+
208
+ # IDE
209
+ .idea
210
+ .vscode
211
+ *.swp
212
+ *.swo
213
+
214
+ # Environment
215
+ .env
216
+ .env.local
217
+ .env.*.local
218
+
219
+ # Logs
220
+ logs
221
+ *.log
222
+ npm-debug.log*
223
+
224
+ # Test
225
+ coverage
226
+
227
+ # OS
228
+ .DS_Store
229
+ Thumbs.db
230
+ `;
231
+ await (0, file_utils_1.writeFile)(path.join(basePath, '.gitignore'), gitignore);
232
+ console.log(chalk_1.default.green(' ✓ .gitignore'));
233
+ // .prettierrc
234
+ const prettierConfig = {
235
+ semi: true,
236
+ trailingComma: 'all',
237
+ singleQuote: true,
238
+ printWidth: 100,
239
+ tabWidth: 2,
240
+ };
241
+ await (0, file_utils_1.writeFile)(path.join(basePath, '.prettierrc'), JSON.stringify(prettierConfig, null, 2));
242
+ console.log(chalk_1.default.green(' ✓ .prettierrc'));
243
+ // .nvmrc
244
+ await (0, file_utils_1.writeFile)(path.join(basePath, '.nvmrc'), '18');
245
+ console.log(chalk_1.default.green(' ✓ .nvmrc'));
246
+ }
247
+ async function generateSharedLib(basePath, libName) {
248
+ const libPath = path.join(basePath, 'libs', libName);
249
+ await (0, file_utils_1.ensureDir)(path.join(libPath, 'src'));
250
+ // package.json
251
+ const packageJson = {
252
+ name: `@libs/${libName}`,
253
+ version: '0.0.0',
254
+ main: 'dist/index.js',
255
+ types: 'dist/index.d.ts',
256
+ scripts: {
257
+ 'build': 'tsc -p tsconfig.build.json',
258
+ 'clean': 'rm -rf dist',
259
+ 'dev': 'tsc -w -p tsconfig.build.json',
260
+ },
261
+ dependencies: {},
262
+ devDependencies: {
263
+ 'typescript': '^5.0.0',
264
+ },
265
+ };
266
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'package.json'), JSON.stringify(packageJson, null, 2));
267
+ // tsconfig.json
268
+ const tsConfig = {
269
+ extends: '../../tsconfig.base.json',
270
+ compilerOptions: {
271
+ outDir: './dist',
272
+ rootDir: './src',
273
+ },
274
+ include: ['src/**/*'],
275
+ exclude: ['node_modules', 'dist'],
276
+ };
277
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
278
+ // tsconfig.build.json
279
+ const tsBuildConfig = {
280
+ extends: './tsconfig.json',
281
+ exclude: ['**/*.spec.ts', '**/*.test.ts'],
282
+ };
283
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'tsconfig.build.json'), JSON.stringify(tsBuildConfig, null, 2));
284
+ // src/index.ts
285
+ const indexContent = libName === 'common'
286
+ ? `// Common utilities and shared code
287
+ export * from './utils';
288
+ export * from './types';
289
+ `
290
+ : `// Domain models and business logic
291
+ export * from './entities';
292
+ export * from './value-objects';
293
+ `;
294
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'src/index.ts'), indexContent);
295
+ // Create subdirectories
296
+ if (libName === 'common') {
297
+ await (0, file_utils_1.ensureDir)(path.join(libPath, 'src/utils'));
298
+ await (0, file_utils_1.ensureDir)(path.join(libPath, 'src/types'));
299
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'src/utils/index.ts'), `export const sleep = (ms: number) => new Promise(r => setTimeout(r, ms));
300
+ `);
301
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'src/types/index.ts'), `export type Nullable<T> = T | null;
302
+ export type Optional<T> = T | undefined;
303
+ `);
304
+ }
305
+ else {
306
+ await (0, file_utils_1.ensureDir)(path.join(libPath, 'src/entities'));
307
+ await (0, file_utils_1.ensureDir)(path.join(libPath, 'src/value-objects'));
308
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'src/entities/index.ts'), `// Export domain entities
309
+ `);
310
+ await (0, file_utils_1.writeFile)(path.join(libPath, 'src/value-objects/index.ts'), `// Export value objects
311
+ `);
312
+ }
313
+ console.log(chalk_1.default.green(` ✓ libs/${libName}`));
314
+ }
315
+ async function generateSampleApp(basePath, appName) {
316
+ const appPath = path.join(basePath, 'apps', appName);
317
+ await (0, file_utils_1.ensureDir)(path.join(appPath, 'src'));
318
+ await (0, file_utils_1.ensureDir)(path.join(appPath, 'src/modules'));
319
+ await (0, file_utils_1.ensureDir)(path.join(appPath, 'test'));
320
+ // package.json
321
+ const packageJson = {
322
+ name: `@apps/${appName}`,
323
+ version: '0.0.0',
324
+ scripts: {
325
+ 'build': 'nest build',
326
+ 'clean': 'rm -rf dist',
327
+ 'dev': 'nest start --watch',
328
+ 'start': 'node dist/main',
329
+ 'start:prod': 'node dist/main',
330
+ 'test': 'jest',
331
+ 'test:e2e': 'jest --config ./test/jest-e2e.json',
332
+ },
333
+ dependencies: {
334
+ '@nestjs/common': '^10.0.0',
335
+ '@nestjs/core': '^10.0.0',
336
+ '@nestjs/platform-express': '^10.0.0',
337
+ '@libs/common': 'workspace:*',
338
+ '@libs/domain': 'workspace:*',
339
+ 'reflect-metadata': '^0.1.13',
340
+ 'rxjs': '^7.8.0',
341
+ },
342
+ devDependencies: {
343
+ '@nestjs/cli': '^10.0.0',
344
+ '@nestjs/testing': '^10.0.0',
345
+ '@types/express': '^4.17.17',
346
+ '@types/jest': '^29.5.0',
347
+ 'jest': '^29.5.0',
348
+ 'ts-jest': '^29.1.0',
349
+ 'typescript': '^5.0.0',
350
+ },
351
+ };
352
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'package.json'), JSON.stringify(packageJson, null, 2));
353
+ // tsconfig.json
354
+ const tsConfig = {
355
+ extends: '../../tsconfig.base.json',
356
+ compilerOptions: {
357
+ outDir: './dist',
358
+ rootDir: './src',
359
+ },
360
+ include: ['src/**/*'],
361
+ exclude: ['node_modules', 'dist', 'test'],
362
+ };
363
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
364
+ // nest-cli.json
365
+ const nestCli = {
366
+ $schema: 'https://json.schemastore.org/nest-cli',
367
+ collection: '@nestjs/schematics',
368
+ sourceRoot: 'src',
369
+ compilerOptions: {
370
+ deleteOutDir: true,
371
+ },
372
+ };
373
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'nest-cli.json'), JSON.stringify(nestCli, null, 2));
374
+ // main.ts
375
+ const mainContent = `import { NestFactory } from '@nestjs/core';
376
+ import { AppModule } from './app.module';
377
+
378
+ async function bootstrap() {
379
+ const app = await NestFactory.create(AppModule);
380
+
381
+ const port = process.env.PORT || 3000;
382
+ await app.listen(port);
383
+
384
+ console.log(\`Application running on: http://localhost:\${port}\`);
385
+ }
386
+ bootstrap();
387
+ `;
388
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'src/main.ts'), mainContent);
389
+ // app.module.ts
390
+ const appModuleContent = `import { Module } from '@nestjs/common';
391
+ import { AppController } from './app.controller';
392
+ import { AppService } from './app.service';
393
+
394
+ @Module({
395
+ imports: [],
396
+ controllers: [AppController],
397
+ providers: [AppService],
398
+ })
399
+ export class AppModule {}
400
+ `;
401
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'src/app.module.ts'), appModuleContent);
402
+ // app.controller.ts
403
+ const appControllerContent = `import { Controller, Get } from '@nestjs/common';
404
+ import { AppService } from './app.service';
405
+
406
+ @Controller()
407
+ export class AppController {
408
+ constructor(private readonly appService: AppService) {}
409
+
410
+ @Get()
411
+ getHello(): string {
412
+ return this.appService.getHello();
413
+ }
414
+
415
+ @Get('health')
416
+ health() {
417
+ return { status: 'ok', timestamp: new Date().toISOString() };
418
+ }
419
+ }
420
+ `;
421
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'src/app.controller.ts'), appControllerContent);
422
+ // app.service.ts
423
+ const appServiceContent = `import { Injectable } from '@nestjs/common';
424
+ import { sleep } from '@libs/common';
425
+
426
+ @Injectable()
427
+ export class AppService {
428
+ getHello(): string {
429
+ return 'Hello from the monorepo!';
430
+ }
431
+ }
432
+ `;
433
+ await (0, file_utils_1.writeFile)(path.join(appPath, 'src/app.service.ts'), appServiceContent);
434
+ console.log(chalk_1.default.green(` ✓ apps/${appName}`));
435
+ }
436
+ async function generateTooling(basePath) {
437
+ const toolsPath = path.join(basePath, 'tools');
438
+ // Workspace generator script
439
+ const generatorContent = `#!/usr/bin/env node
440
+ /**
441
+ * Workspace Generator
442
+ * Usage: node tools/generate.js <type> <name>
443
+ * Types: app, lib
444
+ */
445
+
446
+ const fs = require('fs');
447
+ const path = require('path');
448
+
449
+ const [,, type, name] = process.argv;
450
+
451
+ if (!type || !name) {
452
+ console.log('Usage: node tools/generate.js <app|lib> <name>');
453
+ process.exit(1);
454
+ }
455
+
456
+ const targetPath = type === 'app'
457
+ ? path.join(__dirname, '..', 'apps', name)
458
+ : path.join(__dirname, '..', 'libs', name);
459
+
460
+ if (fs.existsSync(targetPath)) {
461
+ console.error(\`\${type} "\${name}" already exists\`);
462
+ process.exit(1);
463
+ }
464
+
465
+ console.log(\`Creating \${type}: \${name}\`);
466
+ // Add generation logic here
467
+
468
+ console.log('Done!');
469
+ `;
470
+ await (0, file_utils_1.writeFile)(path.join(toolsPath, 'generate.js'), generatorContent);
471
+ console.log(chalk_1.default.green(' ✓ tools/generate.js'));
472
+ }
473
+ async function addWorkspace(basePath, type, name) {
474
+ console.log(chalk_1.default.blue(`\nAdding ${type}: ${name}\n`));
475
+ if (type === 'lib') {
476
+ await generateSharedLib(basePath, name);
477
+ }
478
+ else {
479
+ await generateSampleApp(basePath, name);
480
+ }
481
+ console.log(chalk_1.default.green(`\n✅ Added ${type}: ${name}`));
482
+ }
483
+ //# sourceMappingURL=monorepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepo.js","sourceRoot":"","sources":["../../src/commands/monorepo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface MultiDatabaseOptions {
2
+ path?: string;
3
+ databases?: string[];
4
+ }
5
+ export declare function setupMultiDatabase(basePath: string, options?: MultiDatabaseOptions): Promise<void>;