@evolith/smart-cli 0.0.1-beta

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 (241) hide show
  1. package/ARCHITECTURE.md +121 -0
  2. package/README.es.md +425 -0
  3. package/README.md +419 -0
  4. package/dist/app.module.d.ts +2 -0
  5. package/dist/app.module.js +59 -0
  6. package/dist/app.module.js.map +1 -0
  7. package/dist/application/services/index.d.ts +54 -0
  8. package/dist/application/services/index.js +307 -0
  9. package/dist/application/services/index.js.map +1 -0
  10. package/dist/application/services/services.test.d.ts +1 -0
  11. package/dist/application/services/services.test.js +176 -0
  12. package/dist/application/services/services.test.js.map +1 -0
  13. package/dist/application/use-cases/validate-satellite.use-case.d.ts +18 -0
  14. package/dist/application/use-cases/validate-satellite.use-case.js +92 -0
  15. package/dist/application/use-cases/validate-satellite.use-case.js.map +1 -0
  16. package/dist/application/use-cases/validate-satellite.use-case.spec.d.ts +1 -0
  17. package/dist/application/use-cases/validate-satellite.use-case.spec.js +102 -0
  18. package/dist/application/use-cases/validate-satellite.use-case.spec.js.map +1 -0
  19. package/dist/commands/adr/adr.command.d.ts +28 -0
  20. package/dist/commands/adr/adr.command.js +357 -0
  21. package/dist/commands/adr/adr.command.js.map +1 -0
  22. package/dist/commands/architecture/scaffold.command.d.ts +7 -0
  23. package/dist/commands/architecture/scaffold.command.js +162 -0
  24. package/dist/commands/architecture/scaffold.command.js.map +1 -0
  25. package/dist/commands/commands.test.d.ts +1 -0
  26. package/dist/commands/commands.test.js +131 -0
  27. package/dist/commands/commands.test.js.map +1 -0
  28. package/dist/commands/completion/completion.command.d.ts +20 -0
  29. package/dist/commands/completion/completion.command.js +215 -0
  30. package/dist/commands/completion/completion.command.js.map +1 -0
  31. package/dist/commands/docs/docs.command.d.ts +9 -0
  32. package/dist/commands/docs/docs.command.js +77 -0
  33. package/dist/commands/docs/docs.command.js.map +1 -0
  34. package/dist/commands/history/history.command.d.ts +29 -0
  35. package/dist/commands/history/history.command.js +268 -0
  36. package/dist/commands/history/history.command.js.map +1 -0
  37. package/dist/commands/init/agents.command.d.ts +22 -0
  38. package/dist/commands/init/agents.command.js +502 -0
  39. package/dist/commands/init/agents.command.js.map +1 -0
  40. package/dist/commands/init/init.command.d.ts +20 -0
  41. package/dist/commands/init/init.command.js +329 -0
  42. package/dist/commands/init/init.command.js.map +1 -0
  43. package/dist/commands/init/upgrade.command.d.ts +9 -0
  44. package/dist/commands/init/upgrade.command.js +77 -0
  45. package/dist/commands/init/upgrade.command.js.map +1 -0
  46. package/dist/commands/mcp/mcp-serve.command.d.ts +15 -0
  47. package/dist/commands/mcp/mcp-serve.command.js +106 -0
  48. package/dist/commands/mcp/mcp-serve.command.js.map +1 -0
  49. package/dist/commands/sdlc/generate-domain.command.d.ts +5 -0
  50. package/dist/commands/sdlc/generate-domain.command.js +55 -0
  51. package/dist/commands/sdlc/generate-domain.command.js.map +1 -0
  52. package/dist/commands/sdlc/handoff.command.d.ts +22 -0
  53. package/dist/commands/sdlc/handoff.command.js +273 -0
  54. package/dist/commands/sdlc/handoff.command.js.map +1 -0
  55. package/dist/commands/sdlc/sdlc.command.d.ts +4 -0
  56. package/dist/commands/sdlc/sdlc.command.js +34 -0
  57. package/dist/commands/sdlc/sdlc.command.js.map +1 -0
  58. package/dist/commands/standards/standards.command.d.ts +27 -0
  59. package/dist/commands/standards/standards.command.js +308 -0
  60. package/dist/commands/standards/standards.command.js.map +1 -0
  61. package/dist/commands/validate/validate.command.d.ts +19 -0
  62. package/dist/commands/validate/validate.command.js +231 -0
  63. package/dist/commands/validate/validate.command.js.map +1 -0
  64. package/dist/config/runtimes.json +196 -0
  65. package/dist/config/tool-catalog.json +343 -0
  66. package/dist/core/abstractions/index.d.ts +6 -0
  67. package/dist/core/abstractions/index.js +23 -0
  68. package/dist/core/abstractions/index.js.map +1 -0
  69. package/dist/core/abstractions/interfaces.d.ts +60 -0
  70. package/dist/core/abstractions/interfaces.js +5 -0
  71. package/dist/core/abstractions/interfaces.js.map +1 -0
  72. package/dist/core/abstractions/providers/config-parser.provider.d.ts +15 -0
  73. package/dist/core/abstractions/providers/config-parser.provider.js +68 -0
  74. package/dist/core/abstractions/providers/config-parser.provider.js.map +1 -0
  75. package/dist/core/abstractions/providers/logger.provider.d.ts +10 -0
  76. package/dist/core/abstractions/providers/logger.provider.js +84 -0
  77. package/dist/core/abstractions/providers/logger.provider.js.map +1 -0
  78. package/dist/core/abstractions/providers/mock-filesystem.provider.d.ts +30 -0
  79. package/dist/core/abstractions/providers/mock-filesystem.provider.js +122 -0
  80. package/dist/core/abstractions/providers/mock-filesystem.provider.js.map +1 -0
  81. package/dist/core/abstractions/providers/node-filesystem.provider.d.ts +19 -0
  82. package/dist/core/abstractions/providers/node-filesystem.provider.js +104 -0
  83. package/dist/core/abstractions/providers/node-filesystem.provider.js.map +1 -0
  84. package/dist/core/architecture/nx-workspace.strategy.d.ts +11 -0
  85. package/dist/core/architecture/nx-workspace.strategy.js +107 -0
  86. package/dist/core/architecture/nx-workspace.strategy.js.map +1 -0
  87. package/dist/core/architecture/workspace-manager.strategy.d.ts +7 -0
  88. package/dist/core/architecture/workspace-manager.strategy.js +3 -0
  89. package/dist/core/architecture/workspace-manager.strategy.js.map +1 -0
  90. package/dist/core/config/config.service.d.ts +15 -0
  91. package/dist/core/config/config.service.js +55 -0
  92. package/dist/core/config/config.service.js.map +1 -0
  93. package/dist/core/config/config.service.spec.d.ts +1 -0
  94. package/dist/core/config/config.service.spec.js +43 -0
  95. package/dist/core/config/config.service.spec.js.map +1 -0
  96. package/dist/core/di/container.d.ts +25 -0
  97. package/dist/core/di/container.js +87 -0
  98. package/dist/core/di/container.js.map +1 -0
  99. package/dist/core/di/container.spec.d.ts +1 -0
  100. package/dist/core/di/container.spec.js +137 -0
  101. package/dist/core/di/container.spec.js.map +1 -0
  102. package/dist/core/errors/index.d.ts +26 -0
  103. package/dist/core/errors/index.js +67 -0
  104. package/dist/core/errors/index.js.map +1 -0
  105. package/dist/core/filesystem/file-manager.service.d.ts +4 -0
  106. package/dist/core/filesystem/file-manager.service.js +96 -0
  107. package/dist/core/filesystem/file-manager.service.js.map +1 -0
  108. package/dist/core/filesystem/file-manager.service.spec.d.ts +1 -0
  109. package/dist/core/filesystem/file-manager.service.spec.js +103 -0
  110. package/dist/core/filesystem/file-manager.service.spec.js.map +1 -0
  111. package/dist/core/mcp/mcp-server.service.d.ts +7 -0
  112. package/dist/core/mcp/mcp-server.service.js +31 -0
  113. package/dist/core/mcp/mcp-server.service.js.map +1 -0
  114. package/dist/core/mcp/metrics.service.d.ts +37 -0
  115. package/dist/core/mcp/metrics.service.js +72 -0
  116. package/dist/core/mcp/metrics.service.js.map +1 -0
  117. package/dist/core/mcp/prompts/index.d.ts +22 -0
  118. package/dist/core/mcp/prompts/index.js +175 -0
  119. package/dist/core/mcp/prompts/index.js.map +1 -0
  120. package/dist/core/mcp/resources/index.d.ts +11 -0
  121. package/dist/core/mcp/resources/index.js +193 -0
  122. package/dist/core/mcp/resources/index.js.map +1 -0
  123. package/dist/core/mcp/server.d.ts +25 -0
  124. package/dist/core/mcp/server.js +413 -0
  125. package/dist/core/mcp/server.js.map +1 -0
  126. package/dist/core/mcp/tools/agent.d.ts +41 -0
  127. package/dist/core/mcp/tools/agent.js +195 -0
  128. package/dist/core/mcp/tools/agent.js.map +1 -0
  129. package/dist/core/mcp/tools/architecture.d.ts +27 -0
  130. package/dist/core/mcp/tools/architecture.js +166 -0
  131. package/dist/core/mcp/tools/architecture.js.map +1 -0
  132. package/dist/core/mcp/tools/sdlc.d.ts +32 -0
  133. package/dist/core/mcp/tools/sdlc.js +189 -0
  134. package/dist/core/mcp/tools/sdlc.js.map +1 -0
  135. package/dist/core/mcp/tools/tool-utils.d.ts +4 -0
  136. package/dist/core/mcp/tools/tool-utils.js +18 -0
  137. package/dist/core/mcp/tools/tool-utils.js.map +1 -0
  138. package/dist/core/mcp/tools/validate.d.ts +18 -0
  139. package/dist/core/mcp/tools/validate.js +56 -0
  140. package/dist/core/mcp/tools/validate.js.map +1 -0
  141. package/dist/core/mcp/watcher.service.d.ts +8 -0
  142. package/dist/core/mcp/watcher.service.js +82 -0
  143. package/dist/core/mcp/watcher.service.js.map +1 -0
  144. package/dist/core/mcp/watcher.service.spec.d.ts +1 -0
  145. package/dist/core/mcp/watcher.service.spec.js +70 -0
  146. package/dist/core/mcp/watcher.service.spec.js.map +1 -0
  147. package/dist/core/observability/command-watcher.d.ts +45 -0
  148. package/dist/core/observability/command-watcher.js +168 -0
  149. package/dist/core/observability/command-watcher.js.map +1 -0
  150. package/dist/core/observability/error-reporter.d.ts +47 -0
  151. package/dist/core/observability/error-reporter.js +163 -0
  152. package/dist/core/observability/error-reporter.js.map +1 -0
  153. package/dist/core/observability/index.d.ts +4 -0
  154. package/dist/core/observability/index.js +24 -0
  155. package/dist/core/observability/index.js.map +1 -0
  156. package/dist/core/observability/observability.test.d.ts +1 -0
  157. package/dist/core/observability/observability.test.js +224 -0
  158. package/dist/core/observability/observability.test.js.map +1 -0
  159. package/dist/core/observability/structured-logger.d.ts +53 -0
  160. package/dist/core/observability/structured-logger.js +123 -0
  161. package/dist/core/observability/structured-logger.js.map +1 -0
  162. package/dist/core/observability/timing.d.ts +23 -0
  163. package/dist/core/observability/timing.js +140 -0
  164. package/dist/core/observability/timing.js.map +1 -0
  165. package/dist/core/services/command-executor.service.d.ts +3 -0
  166. package/dist/core/services/command-executor.service.js +12 -0
  167. package/dist/core/services/command-executor.service.js.map +1 -0
  168. package/dist/core/services/command-history.service.d.ts +38 -0
  169. package/dist/core/services/command-history.service.js +146 -0
  170. package/dist/core/services/command-history.service.js.map +1 -0
  171. package/dist/core/services/command-providers.d.ts +1 -0
  172. package/dist/core/services/command-providers.js +17 -0
  173. package/dist/core/services/command-providers.js.map +1 -0
  174. package/dist/core/services/runtime-catalog.service.d.ts +2 -0
  175. package/dist/core/services/runtime-catalog.service.js +7 -0
  176. package/dist/core/services/runtime-catalog.service.js.map +1 -0
  177. package/dist/core/sync/sync.service.d.ts +4 -0
  178. package/dist/core/sync/sync.service.js +81 -0
  179. package/dist/core/sync/sync.service.js.map +1 -0
  180. package/dist/core/sync/sync.service.spec.d.ts +1 -0
  181. package/dist/core/sync/sync.service.spec.js +63 -0
  182. package/dist/core/sync/sync.service.spec.js.map +1 -0
  183. package/dist/core/validators/ruleset-validator.service.d.ts +56 -0
  184. package/dist/core/validators/ruleset-validator.service.js +263 -0
  185. package/dist/core/validators/ruleset-validator.service.js.map +1 -0
  186. package/dist/core/validators/ruleset-validator.service.spec.d.ts +1 -0
  187. package/dist/core/validators/ruleset-validator.service.spec.js +121 -0
  188. package/dist/core/validators/ruleset-validator.service.spec.js.map +1 -0
  189. package/dist/domain/entities/index.d.ts +72 -0
  190. package/dist/domain/entities/index.js +119 -0
  191. package/dist/domain/entities/index.js.map +1 -0
  192. package/dist/domain/interfaces.d.ts +224 -0
  193. package/dist/domain/interfaces.js +3 -0
  194. package/dist/domain/interfaces.js.map +1 -0
  195. package/dist/domain/services/adr.service.d.ts +50 -0
  196. package/dist/domain/services/adr.service.js +125 -0
  197. package/dist/domain/services/adr.service.js.map +1 -0
  198. package/dist/domain/services/agent-registry.service.d.ts +26 -0
  199. package/dist/domain/services/agent-registry.service.js +152 -0
  200. package/dist/domain/services/agent-registry.service.js.map +1 -0
  201. package/dist/domain/services/index.d.ts +33 -0
  202. package/dist/domain/services/index.js +126 -0
  203. package/dist/domain/services/index.js.map +1 -0
  204. package/dist/domain/services/services.test.d.ts +1 -0
  205. package/dist/domain/services/services.test.js +236 -0
  206. package/dist/domain/services/services.test.js.map +1 -0
  207. package/dist/domain/services/standards.service.d.ts +47 -0
  208. package/dist/domain/services/standards.service.js +129 -0
  209. package/dist/domain/services/standards.service.js.map +1 -0
  210. package/dist/domain/services/tool-usage-telemetry.service.d.ts +46 -0
  211. package/dist/domain/services/tool-usage-telemetry.service.js +181 -0
  212. package/dist/domain/services/tool-usage-telemetry.service.js.map +1 -0
  213. package/dist/infrastructure/catalog/catalog-loader.d.ts +22 -0
  214. package/dist/infrastructure/catalog/catalog-loader.js +135 -0
  215. package/dist/infrastructure/catalog/catalog-loader.js.map +1 -0
  216. package/dist/infrastructure/catalog/catalog-loader.test.d.ts +1 -0
  217. package/dist/infrastructure/catalog/catalog-loader.test.js +184 -0
  218. package/dist/infrastructure/catalog/catalog-loader.test.js.map +1 -0
  219. package/dist/infrastructure/cli/command-executor.d.ts +20 -0
  220. package/dist/infrastructure/cli/command-executor.js +109 -0
  221. package/dist/infrastructure/cli/command-executor.js.map +1 -0
  222. package/dist/infrastructure/cli/command-executor.test.d.ts +1 -0
  223. package/dist/infrastructure/cli/command-executor.test.js +98 -0
  224. package/dist/infrastructure/cli/command-executor.test.js.map +1 -0
  225. package/dist/infrastructure/cli/providers/index.d.ts +52 -0
  226. package/dist/infrastructure/cli/providers/index.js +175 -0
  227. package/dist/infrastructure/cli/providers/index.js.map +1 -0
  228. package/dist/infrastructure/formatters/output-formatter.service.d.ts +28 -0
  229. package/dist/infrastructure/formatters/output-formatter.service.js +198 -0
  230. package/dist/infrastructure/formatters/output-formatter.service.js.map +1 -0
  231. package/dist/main.d.ts +2 -0
  232. package/dist/main.js +10 -0
  233. package/dist/main.js.map +1 -0
  234. package/dist/test/mocks/index.d.ts +44 -0
  235. package/dist/test/mocks/index.js +135 -0
  236. package/dist/test/mocks/index.js.map +1 -0
  237. package/package.json +80 -0
  238. package/shell/completion.bash +85 -0
  239. package/shell/completion.fish +72 -0
  240. package/shell/completion.zsh +83 -0
  241. package/templates/evolith.yaml.example +45 -0
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ScaffoldCommand = void 0;
16
+ const nest_commander_1 = require("nest-commander");
17
+ const prompts_1 = require("@clack/prompts");
18
+ const chalk_1 = __importDefault(require("chalk"));
19
+ const nx_workspace_strategy_1 = require("../../core/architecture/nx-workspace.strategy");
20
+ let ScaffoldCommand = class ScaffoldCommand extends nest_commander_1.CommandRunner {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.strategy = new nx_workspace_strategy_1.NxWorkspaceStrategy();
24
+ }
25
+ async run(passedParam, options) {
26
+ console.log();
27
+ (0, prompts_1.intro)(chalk_1.default.bgBlue.white.bold(' Evolith Architecture Scaffolding '));
28
+ let frontendFramework = options?.frontend;
29
+ if (!frontendFramework) {
30
+ frontendFramework = await (0, prompts_1.select)({
31
+ message: '¿Qué framework de Frontend utilizarás para los Microfrontends?',
32
+ options: [
33
+ { value: 'react', label: 'React' },
34
+ { value: 'angular', label: 'Angular' },
35
+ ],
36
+ });
37
+ }
38
+ let orm = options?.orm;
39
+ if (!orm) {
40
+ orm = await (0, prompts_1.select)({
41
+ message: '¿Qué ORM usarás para la capa de persistencia compartida?',
42
+ options: [
43
+ { value: 'prisma', label: 'Prisma' },
44
+ { value: 'typeorm', label: 'TypeORM' },
45
+ ],
46
+ });
47
+ }
48
+ const phase = await (0, prompts_1.select)({
49
+ message: '¿En qué fase de la Estrategia Evolutiva (Evolutionary Roadmap) se encuentra este proyecto?',
50
+ options: [
51
+ { value: '1', label: 'Fase 1: The Lean Foundation (Modular Monolith MVP)' },
52
+ { value: '2', label: 'Fase 2: Scale and Decoupling (Service Extraction)' },
53
+ { value: '3', label: 'Fase 3: North Star (Microservices & Microfrontends)' },
54
+ ],
55
+ });
56
+ const apiName = await (0, prompts_1.text)({
57
+ message: '¿Cuál será el nombre de la API principal (Backend)?',
58
+ placeholder: 'tracker-api',
59
+ defaultValue: 'tracker-api'
60
+ });
61
+ let webAppName = '';
62
+ let hostName = '';
63
+ let remotesInput = '';
64
+ let remotes = [];
65
+ if (phase === '1') {
66
+ webAppName = await (0, prompts_1.text)({
67
+ message: '¿Cuál será el nombre de la aplicación Web estándar (SPA)?',
68
+ placeholder: 'tracker-web',
69
+ defaultValue: 'tracker-web'
70
+ });
71
+ }
72
+ else {
73
+ hostName = await (0, prompts_1.text)({
74
+ message: '¿Cuál será el nombre de la aplicación Host (Microfrontend Web principal)?',
75
+ placeholder: 'tracker-host',
76
+ defaultValue: 'tracker-host'
77
+ });
78
+ remotesInput = await (0, prompts_1.text)({
79
+ message: 'Ingresa los nombres de los Microfrontends Remotos separados por comas:',
80
+ placeholder: 'trackerRemoteAgile, trackerRemoteQa',
81
+ defaultValue: 'trackerRemoteAgile, trackerRemoteQa'
82
+ });
83
+ remotes = remotesInput.split(',').map(r => r.trim()).filter(r => r.length > 0);
84
+ }
85
+ const domains = await (0, prompts_1.multiselect)({
86
+ message: 'Selecciona las fases SDLC de Evolith que este proyecto va a implementar:',
87
+ options: [
88
+ { value: 'discovery', label: 'Discovery' },
89
+ { value: 'design', label: 'Design' },
90
+ { value: 'construction', label: 'Construction' },
91
+ { value: 'qa', label: 'QA' },
92
+ { value: 'release', label: 'Release' },
93
+ ],
94
+ required: true
95
+ });
96
+ const s = (0, prompts_1.spinner)();
97
+ s.start('Iniciando el proceso de andamiaje...');
98
+ try {
99
+ s.message('Instalando plugins y dependencias base...');
100
+ await this.strategy.installDependencies(frontendFramework, orm);
101
+ s.message(`Generando la Service API (NestJS) [${apiName}]...`);
102
+ await this.strategy.generateApiApp(apiName);
103
+ if (phase === '1') {
104
+ s.message(`Generando Single Page App estándar (${frontendFramework.toUpperCase()}) [${webAppName}]...`);
105
+ await this.strategy.generateStandardWebApp(webAppName, frontendFramework);
106
+ }
107
+ else {
108
+ s.message(`Generando Microfrontends Host y Remotes (${frontendFramework.toUpperCase()})...`);
109
+ await this.strategy.generateHostApp(hostName, remotes, frontendFramework);
110
+ }
111
+ s.message('Generando Shells transversales...');
112
+ await this.strategy.generateLibrary('workflow-engine', 'shell');
113
+ await this.strategy.generateLibrary('integration-fabric', 'shell');
114
+ await this.strategy.generateLibrary('tenant-config', 'shell');
115
+ s.message('Generando Bounded Contexts (DDD)...');
116
+ for (const domain of domains) {
117
+ await this.strategy.generateLibrary(domain, 'domain');
118
+ }
119
+ s.message('Generando repositorios compartidos...');
120
+ await this.strategy.generateLibrary('db-schema', 'shared');
121
+ await this.strategy.generateLibrary('mocks', 'shared');
122
+ s.stop('Andamiaje arquitectónico completado exitosamente.');
123
+ (0, prompts_1.outro)(chalk_1.default.green('✅ Toda la topología Evolith ha sido generada en el directorio ./src.'));
124
+ }
125
+ catch (error) {
126
+ s.stop('Error durante el andamiaje.');
127
+ (0, prompts_1.outro)(chalk_1.default.red('❌ El proceso falló. Revisa los logs anteriores para más detalles.'));
128
+ }
129
+ }
130
+ parseFrontend(val) {
131
+ return val;
132
+ }
133
+ parseOrm(val) {
134
+ return val;
135
+ }
136
+ };
137
+ exports.ScaffoldCommand = ScaffoldCommand;
138
+ __decorate([
139
+ (0, nest_commander_1.Option)({
140
+ flags: '--frontend [framework]',
141
+ description: 'Framework para el frontend (react, angular)',
142
+ }),
143
+ __metadata("design:type", Function),
144
+ __metadata("design:paramtypes", [String]),
145
+ __metadata("design:returntype", String)
146
+ ], ScaffoldCommand.prototype, "parseFrontend", null);
147
+ __decorate([
148
+ (0, nest_commander_1.Option)({
149
+ flags: '--orm [orm]',
150
+ description: 'ORM para base de datos (prisma, typeorm)',
151
+ }),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [String]),
154
+ __metadata("design:returntype", String)
155
+ ], ScaffoldCommand.prototype, "parseOrm", null);
156
+ exports.ScaffoldCommand = ScaffoldCommand = __decorate([
157
+ (0, nest_commander_1.Command)({
158
+ name: 'scaffold',
159
+ description: 'Scaffolds the Evolith Monolithic Modular and Microfrontends architecture in the current workspace',
160
+ })
161
+ ], ScaffoldCommand);
162
+ //# sourceMappingURL=scaffold.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.command.js","sourceRoot":"","sources":["../../../src/commands/architecture/scaffold.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const init_command_1 = require("../../commands/init/init.command");
4
+ describe('InitCommand', () => {
5
+ describe('command metadata', () => {
6
+ it('should have correct name', () => {
7
+ const command = new init_command_1.InitCommand();
8
+ expect(command).toBeDefined();
9
+ });
10
+ it('should have parseDryRun option', () => {
11
+ const command = new init_command_1.InitCommand();
12
+ const parsed = command.parseDryRun();
13
+ expect(parsed).toBe(true);
14
+ });
15
+ it('should have parseRuntime option', () => {
16
+ const command = new init_command_1.InitCommand();
17
+ const parsed = command.parseRuntime('nodejs');
18
+ expect(parsed).toBe('nodejs');
19
+ });
20
+ it('should have parseMonorepo option', () => {
21
+ const command = new init_command_1.InitCommand();
22
+ const parsed = command.parseMonorepo('nx');
23
+ expect(parsed).toBe('nx');
24
+ });
25
+ it('should have parseArch option', () => {
26
+ const command = new init_command_1.InitCommand();
27
+ const parsed = command.parseArch('clean');
28
+ expect(parsed).toBe('clean');
29
+ });
30
+ it('should have parseDb option', () => {
31
+ const command = new init_command_1.InitCommand();
32
+ const parsed = command.parseDb('postgresql');
33
+ expect(parsed).toBe('postgresql');
34
+ });
35
+ });
36
+ });
37
+ describe('HandoffCommand', () => {
38
+ describe('command metadata', () => {
39
+ it('should have correct name', () => {
40
+ const command = new init_command_1.HandoffCommand();
41
+ expect(command).toBeDefined();
42
+ });
43
+ it('should have parseFrom option', () => {
44
+ const command = new init_command_1.HandoffCommand();
45
+ const parsed = command.parseFrom('phase-0');
46
+ expect(parsed).toBe('phase-0');
47
+ });
48
+ it('should have parseTo option', () => {
49
+ const command = new init_command_1.HandoffCommand();
50
+ const parsed = command.parseTo('phase-1');
51
+ expect(parsed).toBe('phase-1');
52
+ });
53
+ it('should have parseArtifacts option', () => {
54
+ const command = new init_command_1.HandoffCommand();
55
+ const parsed = command.parseArtifacts();
56
+ expect(parsed).toBe(true);
57
+ });
58
+ it('should have parseValidate option', () => {
59
+ const command = new init_command_1.HandoffCommand();
60
+ const parsed = command.parseValidate();
61
+ expect(parsed).toBe(true);
62
+ });
63
+ it('should have parseForce option', () => {
64
+ const command = new init_command_1.HandoffCommand();
65
+ const parsed = command.parseForce();
66
+ expect(parsed).toBe(true);
67
+ });
68
+ });
69
+ describe('getNextSteps', () => {
70
+ let command;
71
+ beforeEach(() => {
72
+ command = new init_command_1.HandoffCommand();
73
+ });
74
+ it('should return correct next steps for phase-1', () => {
75
+ const steps = command.getNextSteps('phase-1');
76
+ expect(steps).toContain('evolith validate');
77
+ expect(steps).toContain('evolith agents install');
78
+ });
79
+ it('should return correct next steps for phase-2', () => {
80
+ const steps = command.getNextSteps('phase-2');
81
+ expect(steps).toContain('evolith validate');
82
+ expect(steps).toContain('rulesets');
83
+ });
84
+ it('should return correct next steps for phase-3', () => {
85
+ const steps = command.getNextSteps('phase-3');
86
+ expect(steps).toContain('ADRs');
87
+ expect(steps).toContain('bounded contexts');
88
+ });
89
+ it('should return correct next steps for phase-4', () => {
90
+ const steps = command.getNextSteps('phase-4');
91
+ expect(steps).toContain('CI/CD');
92
+ expect(steps).toContain('observability');
93
+ });
94
+ it('should return correct next steps for phase-5', () => {
95
+ const steps = command.getNextSteps('phase-5');
96
+ expect(steps).toContain('DORA metrics');
97
+ expect(steps).toContain('production-ready');
98
+ });
99
+ it('should return empty string for unknown phase', () => {
100
+ const steps = command.getNextSteps('unknown-phase');
101
+ expect(steps).toBe('');
102
+ });
103
+ });
104
+ describe('getToolGroupsForPhase', () => {
105
+ let command;
106
+ beforeEach(() => {
107
+ command = new init_command_1.HandoffCommand();
108
+ });
109
+ it('should return tool groups for phase-2', () => {
110
+ const groups = command.getToolGroupsForPhase('phase-2');
111
+ expect(Object.keys(groups).length).toBeGreaterThan(0);
112
+ });
113
+ it('should return tool groups for phase-3', () => {
114
+ const groups = command.getToolGroupsForPhase('phase-3');
115
+ expect(Object.keys(groups).length).toBeGreaterThan(0);
116
+ });
117
+ it('should return tool groups for phase-4', () => {
118
+ const groups = command.getToolGroupsForPhase('phase-4');
119
+ expect(Object.keys(groups).length).toBeGreaterThan(0);
120
+ });
121
+ it('should return tool groups for phase-5', () => {
122
+ const groups = command.getToolGroupsForPhase('phase-5');
123
+ expect(Object.keys(groups).length).toBeGreaterThan(0);
124
+ });
125
+ it('should return empty object for unknown phase', () => {
126
+ const groups = command.getToolGroupsForPhase('unknown-phase');
127
+ expect(groups).toEqual({});
128
+ });
129
+ });
130
+ });
131
+ //# sourceMappingURL=commands.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.test.js","sourceRoot":"","sources":["../../src/commands/commands.test.ts"],"names":[],"mappings":";;AAAA,mEAA+E;AAG/E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,0BAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,6BAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,IAAI,OAAuB,CAAC;QAE5B,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,6BAAc,EAAS,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,IAAI,OAAuB,CAAC;QAE5B,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,GAAG,IAAI,6BAAc,EAAS,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ interface CompletionCommandOptions {
3
+ install?: string;
4
+ shell?: string;
5
+ }
6
+ export declare class CompletionCommand extends CommandRunner {
7
+ private readonly completed;
8
+ private readonly error;
9
+ run(passedParam: string[], options?: CompletionCommandOptions): Promise<void>;
10
+ private detectShell;
11
+ private installCompletion;
12
+ private installBash;
13
+ private installZsh;
14
+ private installFish;
15
+ private showCompletionHelp;
16
+ private findCliPath;
17
+ parseInstall(val: string): string;
18
+ parseShell(val: string): string;
19
+ }
20
+ export {};
@@ -0,0 +1,215 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.CompletionCommand = void 0;
49
+ const nest_commander_1 = require("nest-commander");
50
+ const fs = __importStar(require("fs-extra"));
51
+ const path = __importStar(require("path"));
52
+ const chalk_1 = __importDefault(require("chalk"));
53
+ let CompletionCommand = class CompletionCommand extends nest_commander_1.CommandRunner {
54
+ constructor() {
55
+ super(...arguments);
56
+ this.completed = chalk_1.default.green('✓');
57
+ this.error = chalk_1.default.red('✗');
58
+ }
59
+ async run(passedParam, options) {
60
+ const shell = options?.shell || this.detectShell();
61
+ if (options?.install) {
62
+ await this.installCompletion(options.install);
63
+ return;
64
+ }
65
+ await this.showCompletionHelp(shell);
66
+ }
67
+ detectShell() {
68
+ const shell = process.env.SHELL || '';
69
+ if (shell.includes('zsh'))
70
+ return 'zsh';
71
+ if (shell.includes('fish'))
72
+ return 'fish';
73
+ return 'bash';
74
+ }
75
+ async installCompletion(shell) {
76
+ const cliPath = await this.findCliPath();
77
+ const completionDir = path.join(path.dirname(cliPath), '..', 'shell');
78
+ if (!(await fs.pathExists(completionDir))) {
79
+ console.log(`${this.error} Completion scripts not found at ${completionDir}`);
80
+ console.log('Run "evolith completion" to generate them manually.');
81
+ return;
82
+ }
83
+ switch (shell) {
84
+ case 'bash':
85
+ await this.installBash(completionDir);
86
+ break;
87
+ case 'zsh':
88
+ await this.installZsh(completionDir);
89
+ break;
90
+ case 'fish':
91
+ await this.installFish(completionDir);
92
+ break;
93
+ default:
94
+ console.log(`${this.error} Unknown shell: ${shell}`);
95
+ console.log('Supported shells: bash, zsh, fish');
96
+ }
97
+ }
98
+ async installBash(completionDir) {
99
+ const bashrc = path.join(process.env.HOME || '/root', '.bashrc');
100
+ const completionScript = path.join(completionDir, 'completion.bash');
101
+ if (!(await fs.pathExists(completionScript))) {
102
+ console.log(`${this.error} Bash completion script not found`);
103
+ return;
104
+ }
105
+ const marker = '# Evolith CLI completion';
106
+ const line = `source "${completionScript}"`;
107
+ let content = '';
108
+ if (await fs.pathExists(bashrc)) {
109
+ content = await fs.readFile(bashrc, 'utf-8');
110
+ if (content.includes(marker)) {
111
+ console.log(`${this.completed} Bash completion already installed`);
112
+ return;
113
+ }
114
+ }
115
+ await fs.appendFile(bashrc, `\n${marker}\n${line}\n`);
116
+ console.log(`${this.completed} Bash completion installed`);
117
+ console.log(` Added to ${bashrc}`);
118
+ console.log(' Reload shell or run: source ~/.bashrc');
119
+ }
120
+ async installZsh(completionDir) {
121
+ const zshrc = path.join(process.env.HOME || '/root', '.zshrc');
122
+ const completionScript = path.join(completionDir, 'completion.zsh');
123
+ if (!(await fs.pathExists(completionScript))) {
124
+ console.log(`${this.error} Zsh completion script not found`);
125
+ return;
126
+ }
127
+ const marker = '# Evolith CLI completion';
128
+ const line = `source "${completionScript}"`;
129
+ let content = '';
130
+ if (await fs.pathExists(zshrc)) {
131
+ content = await fs.readFile(zshrc, 'utf-8');
132
+ if (content.includes(marker)) {
133
+ console.log(`${this.completed} Zsh completion already installed`);
134
+ return;
135
+ }
136
+ }
137
+ await fs.appendFile(zshrc, `\n${marker}\n${line}\n`);
138
+ console.log(`${this.completed} Zsh completion installed`);
139
+ console.log(` Added to ${zshrc}`);
140
+ console.log(' Reload shell or run: source ~/.zshrc');
141
+ }
142
+ async installFish(completionDir) {
143
+ const fishDir = path.join(process.env.HOME || '/root', '.config', 'fish', 'completions');
144
+ const completionScript = path.join(completionDir, 'completion.fish');
145
+ const targetScript = path.join(fishDir, 'evolith.fish');
146
+ if (!(await fs.pathExists(completionScript))) {
147
+ console.log(`${this.error} Fish completion script not found`);
148
+ return;
149
+ }
150
+ await fs.ensureDir(fishDir);
151
+ await fs.copy(completionScript, targetScript);
152
+ console.log(`${this.completed} Fish completion installed`);
153
+ console.log(` Copied to ${targetScript}`);
154
+ console.log(' Reload shell or run: fish -l');
155
+ }
156
+ async showCompletionHelp(shell) {
157
+ console.log(chalk_1.default.bgCyan.black.bold('\n Evolith CLI - Shell Completion \n'));
158
+ console.log('This command generates shell completion scripts for better UX.\n');
159
+ console.log(chalk_1.default.bold('Usage:'));
160
+ console.log(' evolith completion --install <shell> Install completion for shell');
161
+ console.log(' evolith completion --shell <shell> Show completion for shell\n');
162
+ console.log(chalk_1.default.bold('Supported shells:'));
163
+ console.log(' bash - Bash (add to ~/.bashrc)');
164
+ console.log(' zsh - Zsh (add to ~/.zshrc)');
165
+ console.log(' fish - Fish (copy to completions dir)\n');
166
+ console.log(chalk_1.default.bold('Examples:'));
167
+ console.log(' # Install bash completion');
168
+ console.log(' evolith completion --install bash');
169
+ console.log('');
170
+ console.log(' # Install zsh completion');
171
+ console.log(' evolith completion --install zsh');
172
+ console.log('');
173
+ console.log(' # Install fish completion');
174
+ console.log(' evolith completion --install fish\n');
175
+ console.log(chalk_1.default.bold(`Detected shell: ${shell}`));
176
+ console.log('');
177
+ console.log(chalk_1.default.dim('For manual installation, source the completion script:'));
178
+ console.log(chalk_1.default.dim(` source /path/to/evolith/shell/completion.${shell}`));
179
+ }
180
+ async findCliPath() {
181
+ return process.argv[1] || 'evolith';
182
+ }
183
+ parseInstall(val) {
184
+ return val;
185
+ }
186
+ parseShell(val) {
187
+ return val;
188
+ }
189
+ };
190
+ exports.CompletionCommand = CompletionCommand;
191
+ __decorate([
192
+ (0, nest_commander_1.Option)({
193
+ flags: '--install <shell>',
194
+ description: 'Install completion for specified shell (bash, zsh, fish)',
195
+ }),
196
+ __metadata("design:type", Function),
197
+ __metadata("design:paramtypes", [String]),
198
+ __metadata("design:returntype", String)
199
+ ], CompletionCommand.prototype, "parseInstall", null);
200
+ __decorate([
201
+ (0, nest_commander_1.Option)({
202
+ flags: '--shell <shell>',
203
+ description: 'Generate completion for specified shell',
204
+ }),
205
+ __metadata("design:type", Function),
206
+ __metadata("design:paramtypes", [String]),
207
+ __metadata("design:returntype", String)
208
+ ], CompletionCommand.prototype, "parseShell", null);
209
+ exports.CompletionCommand = CompletionCommand = __decorate([
210
+ (0, nest_commander_1.Command)({
211
+ name: 'completion',
212
+ description: 'Generate shell completion scripts for evolith CLI',
213
+ })
214
+ ], CompletionCommand);
215
+ //# sourceMappingURL=completion.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.command.js","sourceRoot":"","sources":["../../../src/commands/completion/completion.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ interface DocsCommandOptions {
3
+ dryRun?: boolean;
4
+ }
5
+ export declare class DocsCommand extends CommandRunner {
6
+ run(passedParam: string[], options?: DocsCommandOptions): Promise<void>;
7
+ parseDryRun(): boolean;
8
+ }
9
+ export {};
@@ -0,0 +1,77 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.DocsCommand = void 0;
49
+ const nest_commander_1 = require("nest-commander");
50
+ const p = __importStar(require("@clack/prompts"));
51
+ const chalk_1 = __importDefault(require("chalk"));
52
+ let DocsCommand = class DocsCommand extends nest_commander_1.CommandRunner {
53
+ async run(passedParam, options) {
54
+ p.intro(chalk_1.default.bgYellow.black.bold(' Evolith SDK - Document Scaffold '));
55
+ p.outro(chalk_1.default.green('Documentación base generada exitosamente.'));
56
+ }
57
+ parseDryRun() {
58
+ return true;
59
+ }
60
+ };
61
+ exports.DocsCommand = DocsCommand;
62
+ __decorate([
63
+ (0, nest_commander_1.Option)({
64
+ flags: '-d, --dry-run',
65
+ description: 'Ejecuta en modo simulacro sin alterar archivos',
66
+ }),
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", []),
69
+ __metadata("design:returntype", Boolean)
70
+ ], DocsCommand.prototype, "parseDryRun", null);
71
+ exports.DocsCommand = DocsCommand = __decorate([
72
+ (0, nest_commander_1.Command)({
73
+ name: 'docs',
74
+ description: 'Andamia la documentación base requerida por Evolith',
75
+ })
76
+ ], DocsCommand);
77
+ //# sourceMappingURL=docs.command.js.map