zudojs-cli 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -1
  3. package/dist/src/adapters/databases/postgres.adapter.d.ts +0 -14
  4. package/dist/src/adapters/databases/postgres.adapter.js +0 -30
  5. package/dist/src/adapters/frontend/angular.adapter.js +6 -0
  6. package/dist/src/adapters/frontend/astro.adapter.js +2 -2
  7. package/dist/src/adapters/frontend/react.adapter.js +26 -17
  8. package/dist/src/adapters/frontend/svelte.adapter.js +1 -0
  9. package/dist/src/adapters/frontend/sveltekit.adapter.js +7 -8
  10. package/dist/src/adapters/frontend/vanilla.adapter.js +1 -1
  11. package/dist/src/adapters/frontend/vue.adapter.js +1 -0
  12. package/dist/src/adapters/package-managers/bun.adapter.js +5 -5
  13. package/dist/src/adapters/package-managers/npm.adapter.js +5 -5
  14. package/dist/src/adapters/package-managers/pnpm.adapter.js +5 -5
  15. package/dist/src/adapters/package-managers/yarn.adapter.js +5 -5
  16. package/dist/src/bin/zudojs.js +42 -6
  17. package/dist/src/cliApplication/cliApplication.builtins.d.ts +11 -2
  18. package/dist/src/cliApplication/cliApplication.builtins.js +15 -4
  19. package/dist/src/cliApplication/cliApplication.core.js +20 -5
  20. package/dist/src/cliConstant/cliConstant.value.d.ts +1 -1
  21. package/dist/src/cliConstant/cliConstant.value.js +2 -1
  22. package/dist/src/cliConstant/cliVersion.d.ts +16 -0
  23. package/dist/src/cliConstant/cliVersion.js +57 -0
  24. package/dist/src/cliParser/cliParser.core.js +7 -0
  25. package/dist/src/cliParser/cliParser.shortOption.js +1 -1
  26. package/dist/src/commands/add.command.js +27 -24
  27. package/dist/src/commands/build.command.js +13 -7
  28. package/dist/src/commands/create.command.js +177 -84
  29. package/dist/src/commands/dev.command.js +62 -27
  30. package/dist/src/commands/doctor.command.js +45 -23
  31. package/dist/src/commands/generate.command.js +103 -34
  32. package/dist/src/constants/index.d.ts +3 -1
  33. package/dist/src/constants/index.js +3 -1
  34. package/dist/src/generators/command/command.generator.d.ts +1 -0
  35. package/dist/src/generators/command/command.generator.js +10 -4
  36. package/dist/src/generators/controller/controller.generator.d.ts +1 -0
  37. package/dist/src/generators/controller/controller.generator.js +12 -9
  38. package/dist/src/generators/dto/dto.generator.d.ts +1 -0
  39. package/dist/src/generators/dto/dto.generator.js +9 -3
  40. package/dist/src/generators/event/event.generator.d.ts +1 -0
  41. package/dist/src/generators/event/event.generator.js +10 -4
  42. package/dist/src/generators/frontend/frontendGenerator.core.js +4 -28
  43. package/dist/src/generators/frontend/frontendPipeline.d.ts +26 -0
  44. package/dist/src/generators/frontend/frontendPipeline.js +93 -0
  45. package/dist/src/generators/fullstack/fullstackComposer.core.d.ts +1 -2
  46. package/dist/src/generators/fullstack/fullstackComposer.core.js +68 -62
  47. package/dist/src/generators/infrastructure/infrastructure.generator.d.ts +11 -0
  48. package/dist/src/generators/infrastructure/infrastructure.generator.js +101 -61
  49. package/dist/src/generators/integration/integrationGenerator.core.d.ts +6 -0
  50. package/dist/src/generators/integration/integrationGenerator.core.js +35 -6
  51. package/dist/src/generators/job/job.generator.d.ts +1 -0
  52. package/dist/src/generators/job/job.generator.js +9 -3
  53. package/dist/src/generators/middleware/middleware.generator.d.ts +1 -0
  54. package/dist/src/generators/middleware/middleware.generator.js +10 -4
  55. package/dist/src/generators/model/model.generator.d.ts +1 -0
  56. package/dist/src/generators/model/model.generator.js +9 -3
  57. package/dist/src/generators/module/module.generator.d.ts +1 -0
  58. package/dist/src/generators/module/module.generator.js +11 -24
  59. package/dist/src/generators/project/project.generator.js +2 -23
  60. package/dist/src/generators/query/query.generator.d.ts +1 -0
  61. package/dist/src/generators/query/query.generator.js +10 -4
  62. package/dist/src/generators/repository/repository.generator.d.ts +1 -0
  63. package/dist/src/generators/repository/repository.generator.js +12 -9
  64. package/dist/src/generators/route/route.generator.d.ts +1 -0
  65. package/dist/src/generators/route/route.generator.js +11 -5
  66. package/dist/src/generators/service/service.generator.d.ts +1 -0
  67. package/dist/src/generators/service/service.generator.js +12 -9
  68. package/dist/src/generators/validator/validator.generator.d.ts +1 -0
  69. package/dist/src/generators/validator/validator.generator.js +9 -3
  70. package/dist/src/installers/dependency.installer.js +6 -2
  71. package/dist/src/manifest/manifestManager.core.d.ts +3 -0
  72. package/dist/src/prompts/backend/index.d.ts +1 -0
  73. package/dist/src/prompts/backend/index.js +1 -0
  74. package/dist/src/prompts/backend/services.prompt.d.ts +7 -0
  75. package/dist/src/prompts/backend/services.prompt.js +39 -0
  76. package/dist/src/prompts/index.d.ts +0 -1
  77. package/dist/src/prompts/index.js +0 -1
  78. package/dist/src/rollback/rollbackManager.core.js +0 -1
  79. package/dist/src/runners/process/processRunner.core.d.ts +4 -0
  80. package/dist/src/runners/process/processRunner.core.js +17 -3
  81. package/dist/src/scaffolders/framework.scaffolder.js +9 -6
  82. package/dist/src/scaffolders/scaffolder.helper.js +7 -2
  83. package/dist/src/scripts/postinstall.cjs +24 -3
  84. package/dist/src/templates/microservice/index.d.ts +1 -1
  85. package/dist/src/templates/microservice/index.js +1 -1
  86. package/dist/src/templates/microservice/microservice.template.d.ts +15 -1
  87. package/dist/src/templates/microservice/microservice.template.js +165 -183
  88. package/dist/src/templates/modular-monolith/modularMonolith.template.js +54 -106
  89. package/dist/src/templates/monolith/monolith.template.d.ts +1 -0
  90. package/dist/src/templates/monolith/monolith.template.js +50 -94
  91. package/dist/src/templates/shared/appRuntime.template.d.ts +71 -0
  92. package/dist/src/templates/shared/appRuntime.template.js +209 -0
  93. package/dist/src/templates/shared/index.d.ts +5 -0
  94. package/dist/src/templates/shared/index.js +5 -0
  95. package/dist/src/utils/index.d.ts +3 -3
  96. package/dist/src/utils/index.js +3 -3
  97. package/dist/src/utils/utils.exec.d.ts +19 -1
  98. package/dist/src/utils/utils.exec.js +37 -3
  99. package/dist/src/utils/utils.fileSystem.d.ts +6 -0
  100. package/dist/src/utils/utils.fileSystem.js +19 -0
  101. package/dist/src/utils/utils.name.d.ts +26 -0
  102. package/dist/src/utils/utils.name.js +51 -1
  103. package/package.json +29 -22
  104. package/src/scripts/postinstall.cjs +24 -3
  105. package/dist/.tsbuildinfo +0 -1
  106. package/dist/src/adapters/databases/index.d.ts.map +0 -1
  107. package/dist/src/adapters/databases/index.js.map +0 -1
  108. package/dist/src/adapters/databases/mysql.adapter.d.ts.map +0 -1
  109. package/dist/src/adapters/databases/mysql.adapter.js.map +0 -1
  110. package/dist/src/adapters/databases/postgres.adapter.d.ts.map +0 -1
  111. package/dist/src/adapters/databases/postgres.adapter.js.map +0 -1
  112. package/dist/src/adapters/databases/sqlite.adapter.d.ts.map +0 -1
  113. package/dist/src/adapters/databases/sqlite.adapter.js.map +0 -1
  114. package/dist/src/adapters/frontend/angular.adapter.d.ts.map +0 -1
  115. package/dist/src/adapters/frontend/angular.adapter.js.map +0 -1
  116. package/dist/src/adapters/frontend/astro.adapter.d.ts.map +0 -1
  117. package/dist/src/adapters/frontend/astro.adapter.js.map +0 -1
  118. package/dist/src/adapters/frontend/flutter.adapter.d.ts.map +0 -1
  119. package/dist/src/adapters/frontend/flutter.adapter.js.map +0 -1
  120. package/dist/src/adapters/frontend/frontendAdapter.type.d.ts.map +0 -1
  121. package/dist/src/adapters/frontend/frontendAdapter.type.js.map +0 -1
  122. package/dist/src/adapters/frontend/index.d.ts.map +0 -1
  123. package/dist/src/adapters/frontend/index.js.map +0 -1
  124. package/dist/src/adapters/frontend/next.adapter.d.ts.map +0 -1
  125. package/dist/src/adapters/frontend/next.adapter.js.map +0 -1
  126. package/dist/src/adapters/frontend/nuxt.adapter.d.ts.map +0 -1
  127. package/dist/src/adapters/frontend/nuxt.adapter.js.map +0 -1
  128. package/dist/src/adapters/frontend/react-native.adapter.d.ts.map +0 -1
  129. package/dist/src/adapters/frontend/react-native.adapter.js.map +0 -1
  130. package/dist/src/adapters/frontend/react.adapter.d.ts.map +0 -1
  131. package/dist/src/adapters/frontend/react.adapter.js.map +0 -1
  132. package/dist/src/adapters/frontend/svelte.adapter.d.ts.map +0 -1
  133. package/dist/src/adapters/frontend/svelte.adapter.js.map +0 -1
  134. package/dist/src/adapters/frontend/sveltekit.adapter.d.ts.map +0 -1
  135. package/dist/src/adapters/frontend/sveltekit.adapter.js.map +0 -1
  136. package/dist/src/adapters/frontend/vanilla.adapter.d.ts.map +0 -1
  137. package/dist/src/adapters/frontend/vanilla.adapter.js.map +0 -1
  138. package/dist/src/adapters/frontend/vue.adapter.d.ts.map +0 -1
  139. package/dist/src/adapters/frontend/vue.adapter.js.map +0 -1
  140. package/dist/src/adapters/package-managers/bun.adapter.d.ts.map +0 -1
  141. package/dist/src/adapters/package-managers/bun.adapter.js.map +0 -1
  142. package/dist/src/adapters/package-managers/index.d.ts.map +0 -1
  143. package/dist/src/adapters/package-managers/index.js.map +0 -1
  144. package/dist/src/adapters/package-managers/npm.adapter.d.ts.map +0 -1
  145. package/dist/src/adapters/package-managers/npm.adapter.js.map +0 -1
  146. package/dist/src/adapters/package-managers/packageManager.type.d.ts.map +0 -1
  147. package/dist/src/adapters/package-managers/packageManager.type.js.map +0 -1
  148. package/dist/src/adapters/package-managers/pnpm.adapter.d.ts.map +0 -1
  149. package/dist/src/adapters/package-managers/pnpm.adapter.js.map +0 -1
  150. package/dist/src/adapters/package-managers/yarn.adapter.d.ts.map +0 -1
  151. package/dist/src/adapters/package-managers/yarn.adapter.js.map +0 -1
  152. package/dist/src/bin/zudojs.d.ts.map +0 -1
  153. package/dist/src/bin/zudojs.js.map +0 -1
  154. package/dist/src/cliApplication/cliApplication.builtins.d.ts.map +0 -1
  155. package/dist/src/cliApplication/cliApplication.builtins.js.map +0 -1
  156. package/dist/src/cliApplication/cliApplication.core.d.ts.map +0 -1
  157. package/dist/src/cliApplication/cliApplication.core.js.map +0 -1
  158. package/dist/src/cliApplication/cliApplication.writer.d.ts.map +0 -1
  159. package/dist/src/cliApplication/cliApplication.writer.js.map +0 -1
  160. package/dist/src/cliApplication/index.d.ts.map +0 -1
  161. package/dist/src/cliApplication/index.js.map +0 -1
  162. package/dist/src/cliCommand/cliCommand.builder.d.ts.map +0 -1
  163. package/dist/src/cliCommand/cliCommand.builder.js.map +0 -1
  164. package/dist/src/cliCommand/cliCommand.factory.d.ts.map +0 -1
  165. package/dist/src/cliCommand/cliCommand.factory.js.map +0 -1
  166. package/dist/src/cliCommand/cliCommand.registry.d.ts.map +0 -1
  167. package/dist/src/cliCommand/cliCommand.registry.js.map +0 -1
  168. package/dist/src/cliCommand/cliCommand.validator.d.ts.map +0 -1
  169. package/dist/src/cliCommand/cliCommand.validator.js.map +0 -1
  170. package/dist/src/cliCommand/index.d.ts.map +0 -1
  171. package/dist/src/cliCommand/index.js.map +0 -1
  172. package/dist/src/cliConstant/cliConstant.value.d.ts.map +0 -1
  173. package/dist/src/cliConstant/cliConstant.value.js.map +0 -1
  174. package/dist/src/cliConstant/index.d.ts.map +0 -1
  175. package/dist/src/cliConstant/index.js.map +0 -1
  176. package/dist/src/cliError/cliError.argument.d.ts.map +0 -1
  177. package/dist/src/cliError/cliError.argument.js.map +0 -1
  178. package/dist/src/cliError/cliError.base.d.ts.map +0 -1
  179. package/dist/src/cliError/cliError.base.js.map +0 -1
  180. package/dist/src/cliError/cliError.command.d.ts.map +0 -1
  181. package/dist/src/cliError/cliError.command.js.map +0 -1
  182. package/dist/src/cliError/cliError.execution.d.ts.map +0 -1
  183. package/dist/src/cliError/cliError.execution.js.map +0 -1
  184. package/dist/src/cliError/cliError.option.d.ts.map +0 -1
  185. package/dist/src/cliError/cliError.option.js.map +0 -1
  186. package/dist/src/cliError/index.d.ts.map +0 -1
  187. package/dist/src/cliError/index.js.map +0 -1
  188. package/dist/src/cliParser/cliParser.core.d.ts.map +0 -1
  189. package/dist/src/cliParser/cliParser.core.js.map +0 -1
  190. package/dist/src/cliParser/cliParser.helper.d.ts.map +0 -1
  191. package/dist/src/cliParser/cliParser.helper.js.map +0 -1
  192. package/dist/src/cliParser/cliParser.longOption.d.ts.map +0 -1
  193. package/dist/src/cliParser/cliParser.longOption.js.map +0 -1
  194. package/dist/src/cliParser/cliParser.shortOption.d.ts.map +0 -1
  195. package/dist/src/cliParser/cliParser.shortOption.js.map +0 -1
  196. package/dist/src/cliParser/index.d.ts.map +0 -1
  197. package/dist/src/cliParser/index.js.map +0 -1
  198. package/dist/src/cliType/cliType.type.d.ts.map +0 -1
  199. package/dist/src/cliType/cliType.type.js.map +0 -1
  200. package/dist/src/cliType/index.d.ts.map +0 -1
  201. package/dist/src/cliType/index.js.map +0 -1
  202. package/dist/src/cliVersion/cliVersion.core.d.ts.map +0 -1
  203. package/dist/src/cliVersion/cliVersion.core.js.map +0 -1
  204. package/dist/src/cliVersion/index.d.ts.map +0 -1
  205. package/dist/src/cliVersion/index.js.map +0 -1
  206. package/dist/src/commands/add.command.d.ts.map +0 -1
  207. package/dist/src/commands/add.command.js.map +0 -1
  208. package/dist/src/commands/build.command.d.ts.map +0 -1
  209. package/dist/src/commands/build.command.js.map +0 -1
  210. package/dist/src/commands/create.command.d.ts.map +0 -1
  211. package/dist/src/commands/create.command.js.map +0 -1
  212. package/dist/src/commands/dev.command.d.ts.map +0 -1
  213. package/dist/src/commands/dev.command.js.map +0 -1
  214. package/dist/src/commands/doctor.command.d.ts.map +0 -1
  215. package/dist/src/commands/doctor.command.js.map +0 -1
  216. package/dist/src/commands/generate.command.d.ts.map +0 -1
  217. package/dist/src/commands/generate.command.js.map +0 -1
  218. package/dist/src/commands/index.d.ts.map +0 -1
  219. package/dist/src/commands/index.js.map +0 -1
  220. package/dist/src/commands/info.command.d.ts.map +0 -1
  221. package/dist/src/commands/info.command.js.map +0 -1
  222. package/dist/src/constants/index.d.ts.map +0 -1
  223. package/dist/src/constants/index.js.map +0 -1
  224. package/dist/src/errors/index.d.ts.map +0 -1
  225. package/dist/src/errors/index.js.map +0 -1
  226. package/dist/src/generators/backend/backend.generator.d.ts.map +0 -1
  227. package/dist/src/generators/backend/backend.generator.js.map +0 -1
  228. package/dist/src/generators/backend/index.d.ts.map +0 -1
  229. package/dist/src/generators/backend/index.js.map +0 -1
  230. package/dist/src/generators/command/command.generator.d.ts.map +0 -1
  231. package/dist/src/generators/command/command.generator.js.map +0 -1
  232. package/dist/src/generators/controller/controller.generator.d.ts.map +0 -1
  233. package/dist/src/generators/controller/controller.generator.js.map +0 -1
  234. package/dist/src/generators/dto/dto.generator.d.ts.map +0 -1
  235. package/dist/src/generators/dto/dto.generator.js.map +0 -1
  236. package/dist/src/generators/dto/index.d.ts.map +0 -1
  237. package/dist/src/generators/dto/index.js.map +0 -1
  238. package/dist/src/generators/event/event.generator.d.ts.map +0 -1
  239. package/dist/src/generators/event/event.generator.js.map +0 -1
  240. package/dist/src/generators/event/index.d.ts.map +0 -1
  241. package/dist/src/generators/event/index.js.map +0 -1
  242. package/dist/src/generators/frontend/frontendGenerator.core.d.ts.map +0 -1
  243. package/dist/src/generators/frontend/frontendGenerator.core.js.map +0 -1
  244. package/dist/src/generators/frontend/index.d.ts.map +0 -1
  245. package/dist/src/generators/frontend/index.js.map +0 -1
  246. package/dist/src/generators/fullstack/fullstackComposer.core.d.ts.map +0 -1
  247. package/dist/src/generators/fullstack/fullstackComposer.core.js.map +0 -1
  248. package/dist/src/generators/fullstack/index.d.ts.map +0 -1
  249. package/dist/src/generators/fullstack/index.js.map +0 -1
  250. package/dist/src/generators/index.d.ts.map +0 -1
  251. package/dist/src/generators/index.js.map +0 -1
  252. package/dist/src/generators/infrastructure/index.d.ts.map +0 -1
  253. package/dist/src/generators/infrastructure/index.js.map +0 -1
  254. package/dist/src/generators/infrastructure/infrastructure.generator.d.ts.map +0 -1
  255. package/dist/src/generators/infrastructure/infrastructure.generator.js.map +0 -1
  256. package/dist/src/generators/integration/index.d.ts.map +0 -1
  257. package/dist/src/generators/integration/index.js.map +0 -1
  258. package/dist/src/generators/integration/integrationGenerator.core.d.ts.map +0 -1
  259. package/dist/src/generators/integration/integrationGenerator.core.js.map +0 -1
  260. package/dist/src/generators/job/index.d.ts.map +0 -1
  261. package/dist/src/generators/job/index.js.map +0 -1
  262. package/dist/src/generators/job/job.generator.d.ts.map +0 -1
  263. package/dist/src/generators/job/job.generator.js.map +0 -1
  264. package/dist/src/generators/middleware/index.d.ts.map +0 -1
  265. package/dist/src/generators/middleware/index.js.map +0 -1
  266. package/dist/src/generators/middleware/middleware.generator.d.ts.map +0 -1
  267. package/dist/src/generators/middleware/middleware.generator.js.map +0 -1
  268. package/dist/src/generators/model/index.d.ts.map +0 -1
  269. package/dist/src/generators/model/index.js.map +0 -1
  270. package/dist/src/generators/model/model.generator.d.ts.map +0 -1
  271. package/dist/src/generators/model/model.generator.js.map +0 -1
  272. package/dist/src/generators/module/module.generator.d.ts.map +0 -1
  273. package/dist/src/generators/module/module.generator.js.map +0 -1
  274. package/dist/src/generators/project/project.generator.d.ts.map +0 -1
  275. package/dist/src/generators/project/project.generator.js.map +0 -1
  276. package/dist/src/generators/query/query.generator.d.ts.map +0 -1
  277. package/dist/src/generators/query/query.generator.js.map +0 -1
  278. package/dist/src/generators/repository/repository.generator.d.ts.map +0 -1
  279. package/dist/src/generators/repository/repository.generator.js.map +0 -1
  280. package/dist/src/generators/route/index.d.ts.map +0 -1
  281. package/dist/src/generators/route/index.js.map +0 -1
  282. package/dist/src/generators/route/route.generator.d.ts.map +0 -1
  283. package/dist/src/generators/route/route.generator.js.map +0 -1
  284. package/dist/src/generators/service/service.generator.d.ts.map +0 -1
  285. package/dist/src/generators/service/service.generator.js.map +0 -1
  286. package/dist/src/generators/validator/index.d.ts.map +0 -1
  287. package/dist/src/generators/validator/index.js.map +0 -1
  288. package/dist/src/generators/validator/validator.generator.d.ts.map +0 -1
  289. package/dist/src/generators/validator/validator.generator.js.map +0 -1
  290. package/dist/src/index.d.ts.map +0 -1
  291. package/dist/src/index.js.map +0 -1
  292. package/dist/src/installers/dependency.installer.d.ts.map +0 -1
  293. package/dist/src/installers/dependency.installer.js.map +0 -1
  294. package/dist/src/installers/index.d.ts.map +0 -1
  295. package/dist/src/installers/index.js.map +0 -1
  296. package/dist/src/manifest/index.d.ts.map +0 -1
  297. package/dist/src/manifest/index.js.map +0 -1
  298. package/dist/src/manifest/manifestManager.core.d.ts.map +0 -1
  299. package/dist/src/manifest/manifestManager.core.js.map +0 -1
  300. package/dist/src/prompts/backend/api-style.prompt.d.ts.map +0 -1
  301. package/dist/src/prompts/backend/api-style.prompt.js.map +0 -1
  302. package/dist/src/prompts/backend/backend-architecture.prompt.d.ts.map +0 -1
  303. package/dist/src/prompts/backend/backend-architecture.prompt.js.map +0 -1
  304. package/dist/src/prompts/backend/database.prompt.d.ts.map +0 -1
  305. package/dist/src/prompts/backend/database.prompt.js.map +0 -1
  306. package/dist/src/prompts/backend/index.d.ts.map +0 -1
  307. package/dist/src/prompts/backend/index.js.map +0 -1
  308. package/dist/src/prompts/capabilities/capabilities.prompt.d.ts.map +0 -1
  309. package/dist/src/prompts/capabilities/capabilities.prompt.js.map +0 -1
  310. package/dist/src/prompts/capabilities/index.d.ts.map +0 -1
  311. package/dist/src/prompts/capabilities/index.js.map +0 -1
  312. package/dist/src/prompts/frontend/framework.prompt.d.ts.map +0 -1
  313. package/dist/src/prompts/frontend/framework.prompt.js.map +0 -1
  314. package/dist/src/prompts/frontend/frontend-architecture.prompt.d.ts.map +0 -1
  315. package/dist/src/prompts/frontend/frontend-architecture.prompt.js.map +0 -1
  316. package/dist/src/prompts/frontend/index.d.ts.map +0 -1
  317. package/dist/src/prompts/frontend/index.js.map +0 -1
  318. package/dist/src/prompts/index.d.ts.map +0 -1
  319. package/dist/src/prompts/index.js.map +0 -1
  320. package/dist/src/prompts/project/confirmation.prompt.d.ts.map +0 -1
  321. package/dist/src/prompts/project/confirmation.prompt.js.map +0 -1
  322. package/dist/src/prompts/project/index.d.ts.map +0 -1
  323. package/dist/src/prompts/project/index.js.map +0 -1
  324. package/dist/src/prompts/project/project-name.prompt.d.ts.map +0 -1
  325. package/dist/src/prompts/project/project-name.prompt.js.map +0 -1
  326. package/dist/src/prompts/project/project-type.prompt.d.ts.map +0 -1
  327. package/dist/src/prompts/project/project-type.prompt.js.map +0 -1
  328. package/dist/src/prompts/prompts.createProject.d.ts +0 -33
  329. package/dist/src/prompts/prompts.createProject.d.ts.map +0 -1
  330. package/dist/src/prompts/prompts.createProject.js +0 -143
  331. package/dist/src/prompts/prompts.createProject.js.map +0 -1
  332. package/dist/src/prompts/workspace/index.d.ts.map +0 -1
  333. package/dist/src/prompts/workspace/index.js.map +0 -1
  334. package/dist/src/prompts/workspace/package-manager.prompt.d.ts.map +0 -1
  335. package/dist/src/prompts/workspace/package-manager.prompt.js.map +0 -1
  336. package/dist/src/registries/adapter/frontendAdapterRegistry.core.d.ts.map +0 -1
  337. package/dist/src/registries/adapter/frontendAdapterRegistry.core.js.map +0 -1
  338. package/dist/src/registries/adapter/packageManagerRegistry.core.d.ts.map +0 -1
  339. package/dist/src/registries/adapter/packageManagerRegistry.core.js.map +0 -1
  340. package/dist/src/registries/dependency/dependencyRegistry.core.d.ts.map +0 -1
  341. package/dist/src/registries/dependency/dependencyRegistry.core.js.map +0 -1
  342. package/dist/src/registries/dependency/index.d.ts.map +0 -1
  343. package/dist/src/registries/dependency/index.js.map +0 -1
  344. package/dist/src/registries/generator/generatorRegistry.core.d.ts.map +0 -1
  345. package/dist/src/registries/generator/generatorRegistry.core.js.map +0 -1
  346. package/dist/src/registries/generator/index.d.ts.map +0 -1
  347. package/dist/src/registries/generator/index.js.map +0 -1
  348. package/dist/src/registries/index.d.ts.map +0 -1
  349. package/dist/src/registries/index.js.map +0 -1
  350. package/dist/src/resolvers/architecture.resolver.d.ts.map +0 -1
  351. package/dist/src/resolvers/architecture.resolver.js.map +0 -1
  352. package/dist/src/resolvers/capability/capabilityResolver.core.d.ts.map +0 -1
  353. package/dist/src/resolvers/capability/capabilityResolver.core.js.map +0 -1
  354. package/dist/src/resolvers/capability/index.d.ts.map +0 -1
  355. package/dist/src/resolvers/capability/index.js.map +0 -1
  356. package/dist/src/resolvers/configuration/configurationResolver.core.d.ts.map +0 -1
  357. package/dist/src/resolvers/configuration/configurationResolver.core.js.map +0 -1
  358. package/dist/src/resolvers/configuration/index.d.ts.map +0 -1
  359. package/dist/src/resolvers/configuration/index.js.map +0 -1
  360. package/dist/src/resolvers/dependency/dependencyResolver.core.d.ts.map +0 -1
  361. package/dist/src/resolvers/dependency/dependencyResolver.core.js.map +0 -1
  362. package/dist/src/resolvers/dependency/index.d.ts.map +0 -1
  363. package/dist/src/resolvers/dependency/index.js.map +0 -1
  364. package/dist/src/resolvers/index.d.ts.map +0 -1
  365. package/dist/src/resolvers/index.js.map +0 -1
  366. package/dist/src/resolvers/project.resolver.d.ts.map +0 -1
  367. package/dist/src/resolvers/project.resolver.js.map +0 -1
  368. package/dist/src/rollback/index.d.ts.map +0 -1
  369. package/dist/src/rollback/index.js.map +0 -1
  370. package/dist/src/rollback/rollbackManager.core.d.ts.map +0 -1
  371. package/dist/src/rollback/rollbackManager.core.js.map +0 -1
  372. package/dist/src/runners/package-manager/index.d.ts.map +0 -1
  373. package/dist/src/runners/package-manager/index.js.map +0 -1
  374. package/dist/src/runners/package-manager/packageManagerRunner.core.d.ts.map +0 -1
  375. package/dist/src/runners/package-manager/packageManagerRunner.core.js.map +0 -1
  376. package/dist/src/runners/process/index.d.ts.map +0 -1
  377. package/dist/src/runners/process/index.js.map +0 -1
  378. package/dist/src/runners/process/processRunner.core.d.ts.map +0 -1
  379. package/dist/src/runners/process/processRunner.core.js.map +0 -1
  380. package/dist/src/runners/task/index.d.ts.map +0 -1
  381. package/dist/src/runners/task/index.js.map +0 -1
  382. package/dist/src/runners/task/taskRunner.core.d.ts.map +0 -1
  383. package/dist/src/runners/task/taskRunner.core.js.map +0 -1
  384. package/dist/src/scaffolders/framework.scaffolder.d.ts.map +0 -1
  385. package/dist/src/scaffolders/framework.scaffolder.js.map +0 -1
  386. package/dist/src/scaffolders/index.d.ts.map +0 -1
  387. package/dist/src/scaffolders/index.js.map +0 -1
  388. package/dist/src/scaffolders/scaffolder.helper.d.ts.map +0 -1
  389. package/dist/src/scaffolders/scaffolder.helper.js.map +0 -1
  390. package/dist/src/templates/microservice/index.d.ts.map +0 -1
  391. package/dist/src/templates/microservice/index.js.map +0 -1
  392. package/dist/src/templates/microservice/microservice.template.d.ts.map +0 -1
  393. package/dist/src/templates/microservice/microservice.template.js.map +0 -1
  394. package/dist/src/templates/modular-monolith/index.d.ts.map +0 -1
  395. package/dist/src/templates/modular-monolith/index.js.map +0 -1
  396. package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts.map +0 -1
  397. package/dist/src/templates/modular-monolith/modularMonolith.template.js.map +0 -1
  398. package/dist/src/templates/monolith/index.d.ts.map +0 -1
  399. package/dist/src/templates/monolith/index.js.map +0 -1
  400. package/dist/src/templates/monolith/monolith.template.d.ts.map +0 -1
  401. package/dist/src/templates/monolith/monolith.template.js.map +0 -1
  402. package/dist/src/types/index.d.ts.map +0 -1
  403. package/dist/src/types/index.js.map +0 -1
  404. package/dist/src/types/projectConfiguration.type.d.ts.map +0 -1
  405. package/dist/src/types/projectConfiguration.type.js.map +0 -1
  406. package/dist/src/types/scaffold.type.d.ts.map +0 -1
  407. package/dist/src/types/scaffold.type.js.map +0 -1
  408. package/dist/src/utils/index.d.ts.map +0 -1
  409. package/dist/src/utils/index.js.map +0 -1
  410. package/dist/src/utils/utils.detect.d.ts.map +0 -1
  411. package/dist/src/utils/utils.detect.js.map +0 -1
  412. package/dist/src/utils/utils.exec.d.ts.map +0 -1
  413. package/dist/src/utils/utils.exec.js.map +0 -1
  414. package/dist/src/utils/utils.fileSystem.d.ts.map +0 -1
  415. package/dist/src/utils/utils.fileSystem.js.map +0 -1
  416. package/dist/src/utils/utils.name.d.ts.map +0 -1
  417. package/dist/src/utils/utils.name.js.map +0 -1
  418. package/dist/src/validators/compatibility/compatibilityValidator.core.d.ts.map +0 -1
  419. package/dist/src/validators/compatibility/compatibilityValidator.core.js.map +0 -1
  420. package/dist/src/validators/compatibility/index.d.ts.map +0 -1
  421. package/dist/src/validators/compatibility/index.js.map +0 -1
  422. package/dist/src/validators/environment/environmentValidator.core.d.ts.map +0 -1
  423. package/dist/src/validators/environment/environmentValidator.core.js.map +0 -1
  424. package/dist/src/validators/environment/index.d.ts.map +0 -1
  425. package/dist/src/validators/environment/index.js.map +0 -1
  426. package/dist/src/validators/index.d.ts.map +0 -1
  427. package/dist/src/validators/index.js.map +0 -1
  428. package/dist/src/validators/project/index.d.ts.map +0 -1
  429. package/dist/src/validators/project/index.js.map +0 -1
  430. package/dist/src/validators/project/projectValidator.core.d.ts.map +0 -1
  431. package/dist/src/validators/project/projectValidator.core.js.map +0 -1
@@ -32,28 +32,35 @@
32
32
  * └── README.md
33
33
  * ```
34
34
  */
35
+ import { ZUDOJS_PACKAGES_VERSION } from "../../constants/index.js";
36
+ import { normalizeName } from "../../utils/utils.name.js";
37
+ import { RUNTIME_APP_DEPENDENCIES, moduleSpec, renderAppFile, renderModuleFile, renderServerFile, renderZudojsConfig, } from "../shared/index.js";
35
38
  export function generateModularMonolithFiles(options) {
36
39
  const nameSlug = options.projectName
37
40
  .replace(/[^a-z0-9-]+/gi, "-")
38
41
  .toLowerCase();
39
- const modules = options.services.length > 0
42
+ // Normalized: each name becomes a directory segment and a class name.
43
+ const modules = (options.services.length > 0
40
44
  ? options.services
41
- : ["identity", "enrollment", "assessment"];
45
+ : ["identity", "enrollment", "assessment"])
46
+ .map((m) => normalizeName(m))
47
+ .filter((m) => m.length > 0);
42
48
  const deps = [
43
- "@zudojs/core",
44
- "@zudojs/container",
49
+ ...RUNTIME_APP_DEPENDENCIES,
45
50
  "@zudojs/config",
46
- "@zudojs/logger",
47
51
  "@zudojs/errors",
48
- "@zudojs/constants",
49
52
  "@zudojs/types",
50
53
  "@zudojs/validation",
51
54
  "@zudojs/cqrs",
52
- "@zudojs/events",
53
55
  "@zudojs/messaging",
54
56
  "@zudojs/http",
55
57
  ];
56
- const devDeps = ["tsx", "typescript", "@types/node", "vitest"];
58
+ const devDeps = {
59
+ tsx: "^4.7.0",
60
+ typescript: "^5.7.0",
61
+ "@types/node": "^24.0.0",
62
+ vitest: "^3.0.0",
63
+ };
57
64
  const files = {};
58
65
  // package.json
59
66
  files["package.json"] =
@@ -63,24 +70,29 @@ export function generateModularMonolithFiles(options) {
63
70
  private: true,
64
71
  type: "module",
65
72
  license: "MIT",
73
+ zudojs: {
74
+ projectType: "backend",
75
+ architecture: "modular-monolith",
76
+ features: [],
77
+ },
66
78
  scripts: {
67
- dev: "node --import tsx watch src/server.ts",
79
+ dev: "tsx watch src/server.ts",
68
80
  start: "node dist/server.js",
69
81
  build: "tsc",
70
82
  typecheck: "tsc --noEmit",
71
83
  test: "vitest run",
72
84
  },
73
- dependencies: Object.fromEntries(deps.map((d) => [d, "workspace:*"])),
74
- devDependencies: Object.fromEntries(devDeps.map((d) => [d, "^1.0.0"])),
85
+ dependencies: Object.fromEntries([...new Set(deps)].map((d) => [d, ZUDOJS_PACKAGES_VERSION])),
86
+ devDependencies: devDeps,
75
87
  }, null, 2) + "\n";
76
88
  files["tsconfig.json"] = `{
77
89
  "compilerOptions": {
78
90
  "target": "ES2024",
79
91
  "module": "Node16",
80
92
  "moduleResolution": "Node16",
81
- "allowImportingTsExtensions": true,
93
+ "outDir": "dist",
94
+ "rootDir": "src",
82
95
  "strict": true,
83
- "noEmit": true,
84
96
  "skipLibCheck": true,
85
97
  "esModuleInterop": true,
86
98
  "resolveJsonModule": true,
@@ -91,34 +103,11 @@ export function generateModularMonolithFiles(options) {
91
103
  "exclude": ["node_modules", "dist", "**/*.test.ts"]
92
104
  }
93
105
  `;
94
- files["zudojs.config.ts"] = `import { defineConfig } from "@zudojs/config";
95
-
96
- export default defineConfig({
97
- application: {
98
- name: "${nameSlug}",
99
- },
100
-
101
- architecture: "modular-monolith",
102
-
103
- runtime: {
104
- port: Number(process.env.PORT ?? 3000),
105
- env: process.env.NODE_ENV ?? "development",
106
- },
107
-
108
- http: {
109
- enabled: true,
110
- port: 3000,
111
- },
112
-
113
- cqrs: {
114
- enabled: true,
115
- },
116
-
117
- database: {
118
- enabled: true,
119
- },
120
- });
121
- `;
106
+ files["zudojs.config.ts"] = renderZudojsConfig({
107
+ projectName: nameSlug,
108
+ projectType: "backend",
109
+ architecture: "modular-monolith",
110
+ });
122
111
  files[".env.example"] = `NODE_ENV=development
123
112
  PORT=3000
124
113
  DATABASE_URL=postgresql://localhost:5432/${nameSlug}
@@ -141,8 +130,7 @@ ${modules.map((m) => `- **${m}**`).join("\n")}
141
130
  ## Getting Started
142
131
 
143
132
  \`\`\`bash
144
- pnpm install
145
- pnpm dev
133
+ ${options.packageManager === "npm" ? "npm run dev" : options.packageManager === "yarn" ? "yarn dev" : options.packageManager === "bun" ? "bun run dev" : "pnpm run dev"}
146
134
  \`\`\`
147
135
 
148
136
  ## License
@@ -152,54 +140,30 @@ MIT
152
140
  // Shared source directories
153
141
  files["src/index.ts"] = `export { createApp } from "./app.js";
154
142
  `;
155
- files["src/app.ts"] = `import { logger } from "@zudojs/logger";
156
- import { createContainer } from "@zudojs/container";
157
-
158
- export async function createApp() {
159
- const log = logger.child({ service: "app" });
160
- const container = createContainer();
161
-
162
- log.info("${nameSlug} v0.1.0 starting...");
163
-
164
- return {
165
- container,
166
- listen: async () => {
167
- log.info("Server started");
168
- },
169
- stop: async () => {
170
- log.info("Shutting down...");
171
- },
172
- };
173
- }
174
- `;
175
- files["src/server.ts"] = `import { createApp } from "./app.js";
176
- import { createRuntime } from "@zudojs/runtime";
177
-
178
- const app = await createApp();
179
-
180
- const runtime = createRuntime({
181
- onShutdown: async () => {
182
- await app.stop();
183
- },
184
- });
185
-
186
- await runtime.start();
187
- await app.listen();
188
-
189
- process.on("SIGTERM", async () => {
190
- await runtime.stop();
191
- process.exit(0);
192
- });
193
- `;
143
+ const moduleSpecs = modules.map((m) => moduleSpec(m, `./modules/${m}/index.js`));
144
+ files["src/app.ts"] = renderAppFile({
145
+ applicationName: nameSlug,
146
+ modules: moduleSpecs,
147
+ });
148
+ files["src/server.ts"] = renderServerFile();
194
149
  const sharedDirs = [
195
150
  "configs",
196
151
  "constants",
152
+ "controllers",
197
153
  "databases",
154
+ "dtos",
155
+ "enums",
198
156
  "errors",
199
157
  "events",
200
158
  "interfaces",
159
+ "jobs",
201
160
  "loaders",
161
+ "loggers",
202
162
  "middlewares",
163
+ "models",
164
+ "repositories",
165
+ "routes",
166
+ "services",
203
167
  "types",
204
168
  "utils",
205
169
  "validators",
@@ -210,31 +174,15 @@ process.on("SIGTERM", async () => {
210
174
  files["src/modules/index.ts"] =
211
175
  modules.map((m) => `export * from "./${m}/index.js";`).join("\n") + "\n";
212
176
  // Generate each module with CQRS structure
213
- for (const mod of modules) {
214
- const modName = mod;
215
- const modNamePascal = modName
216
- .replace(/-([a-z])/g, (_m, c) => c.toUpperCase())
217
- .replace(/^./, (c) => c.toUpperCase());
218
- files[`src/modules/${modName}/index.ts`] =
219
- `export { ${modNamePascal}Module } from "./${modName}.module.js";
220
- `;
221
- files[`src/modules/${modName}/${modName}.module.ts`] =
222
- `import { logger } from "@zudojs/logger";
223
-
224
- export class ${modNamePascal}Module {
225
- private readonly log = logger.child({ module: "${modName}" });
226
-
227
- id = "${modName}-module";
228
-
229
- initialize() {
230
- this.log.info("${modName} module initialized");
231
- }
232
- }
233
- `;
177
+ for (const spec of moduleSpecs) {
178
+ files[`src/modules/${spec.name}/index.ts`] =
179
+ `export { ${spec.className} } from "./${spec.name}.module.js";\n`;
180
+ files[`src/modules/${spec.name}/${spec.name}.module.ts`] = renderModuleFile({
181
+ module: spec,
182
+ });
234
183
  // CQRS structure
235
- files[`src/modules/${modName}/commands/index.ts`] = ``;
236
- files[`src/modules/${modName}/queries/index.ts`] = ``;
237
- files[`src/modules/${modName}/events/index.ts`] = ``;
184
+ files[`src/modules/${spec.name}/commands/index.ts`] = ``;
185
+ files[`src/modules/${spec.name}/queries/index.ts`] = ``;
238
186
  }
239
187
  files["tests/index.ts"] = `import { describe, it, expect } from "vitest";
240
188
 
@@ -24,6 +24,7 @@
24
24
  * │ ├── loggers/
25
25
  * │ ├── middlewares/
26
26
  * │ ├── models/
27
+ * │ ├── modules/
27
28
  * │ ├── repositories/
28
29
  * │ ├── routes/
29
30
  * │ ├── services/
@@ -24,6 +24,7 @@
24
24
  * │ ├── loggers/
25
25
  * │ ├── middlewares/
26
26
  * │ ├── models/
27
+ * │ ├── modules/
27
28
  * │ ├── repositories/
28
29
  * │ ├── routes/
29
30
  * │ ├── services/
@@ -37,16 +38,16 @@
37
38
  * └── README.md
38
39
  * ```
39
40
  */
41
+ import { ZUDOJS_PACKAGES_VERSION } from "../../constants/index.js";
42
+ import { normalizeName, toPascalCase } from "../../utils/utils.name.js";
43
+ import { RUNTIME_APP_DEPENDENCIES, moduleSpec, renderAppFile, renderModuleFile, renderServerFile, renderServiceFile, renderZudojsConfig, } from "../shared/index.js";
40
44
  export function generateMonolithFiles(options) {
41
45
  const name = options.projectName;
42
46
  const nameSlug = name.replace(/[^a-z0-9-]+/gi, "-").toLowerCase();
43
47
  const deps = [
44
- "@zudojs/core",
45
- "@zudojs/container",
48
+ ...RUNTIME_APP_DEPENDENCIES,
46
49
  "@zudojs/config",
47
- "@zudojs/logger",
48
50
  "@zudojs/errors",
49
- "@zudojs/constants",
50
51
  "@zudojs/types",
51
52
  "@zudojs/validation",
52
53
  "@zudojs/schema",
@@ -67,7 +68,12 @@ export function generateMonolithFiles(options) {
67
68
  if (options.enableOpenAPI) {
68
69
  deps.push("@zudojs/openapi");
69
70
  }
70
- const devDeps = ["tsx", "typescript", "@types/node", "vitest"];
71
+ const devDeps = {
72
+ tsx: "^4.7.0",
73
+ typescript: "^5.7.0",
74
+ "@types/node": "^24.0.0",
75
+ vitest: "^3.0.0",
76
+ };
71
77
  const files = {};
72
78
  // Root files
73
79
  files["package.json"] =
@@ -77,16 +83,21 @@ export function generateMonolithFiles(options) {
77
83
  private: true,
78
84
  type: "module",
79
85
  license: "MIT",
86
+ zudojs: {
87
+ projectType: "backend",
88
+ architecture: "monolith",
89
+ features: [],
90
+ },
80
91
  scripts: {
81
- dev: "node --import tsx watch src/server.ts",
92
+ dev: "tsx watch src/server.ts",
82
93
  start: "node dist/server.js",
83
94
  build: "tsc",
84
95
  typecheck: "tsc --noEmit",
85
96
  test: "vitest run",
86
97
  lint: "tsc --noEmit",
87
98
  },
88
- dependencies: Object.fromEntries([...new Set(deps)].map((d) => [d, "workspace:*"])),
89
- devDependencies: Object.fromEntries(devDeps.map((d) => [d, "^1.0.0"])),
99
+ dependencies: Object.fromEntries([...new Set(deps)].map((d) => [d, ZUDOJS_PACKAGES_VERSION])),
100
+ devDependencies: devDeps,
90
101
  }, null, 2) + "\n";
91
102
  // tsconfig
92
103
  files["tsconfig.json"] = `{
@@ -94,9 +105,9 @@ export function generateMonolithFiles(options) {
94
105
  "target": "ES2024",
95
106
  "module": "Node16",
96
107
  "moduleResolution": "Node16",
97
- "allowImportingTsExtensions": true,
108
+ "outDir": "dist",
109
+ "rootDir": "src",
98
110
  "strict": true,
99
- "noEmit": true,
100
111
  "skipLibCheck": true,
101
112
  "esModuleInterop": true,
102
113
  "resolveJsonModule": true,
@@ -107,45 +118,11 @@ export function generateMonolithFiles(options) {
107
118
  "exclude": ["node_modules", "dist", "**/*.test.ts"]
108
119
  }
109
120
  `;
110
- // zudojs.config.ts
111
- files["zudojs.config.ts"] = `import { defineConfig } from "@zudojs/config";
112
-
113
- export default defineConfig({
114
- application: {
115
- name: "${nameSlug}",
116
- },
117
-
118
- architecture: "monolith",
119
-
120
- runtime: {
121
- port: Number(process.env.PORT ?? 3000),
122
- env: process.env.NODE_ENV ?? "development",
123
- shutdownTimeout: 30_000,
124
- },
125
-
126
- http: {
127
- enabled: true,
128
- host: "0.0.0.0",
129
- port: Number(process.env.HTTP_PORT ?? 3000),
130
- },
131
-
132
- cqrs: {
133
- enabled: ${options.enableCQRS},
134
- },
135
-
136
- database: {
137
- enabled: ${options.enableDatabase},
138
- },
139
-
140
- events: {
141
- enabled: ${options.enableMessaging},
142
- },
143
-
144
- observability: {
145
- enabled: ${options.enableObservability},
146
- },
147
- });
148
- `;
121
+ files["zudojs.config.ts"] = renderZudojsConfig({
122
+ projectName: nameSlug,
123
+ projectType: "backend",
124
+ architecture: "monolith",
125
+ });
149
126
  // Environment
150
127
  files[".env.example"] = `NODE_ENV=development
151
128
  PORT=3000
@@ -166,8 +143,7 @@ A Zudojs framework application.
166
143
  ## Getting Started
167
144
 
168
145
  \`\`\`bash
169
- pnpm install
170
- pnpm dev
146
+ ${options.packageManager === "npm" ? "npm run dev" : options.packageManager === "yarn" ? "yarn dev" : options.packageManager === "bun" ? "bun run dev" : "pnpm run dev"}
171
147
  \`\`\`
172
148
 
173
149
  ## Structure
@@ -190,6 +166,7 @@ src/
190
166
  ├── loggers/ # Logger configuration
191
167
  ├── middlewares/ # HTTP middleware
192
168
  ├── models/ # Data models
169
+ ├── modules/ # Runtime modules
193
170
  ├── repositories/ # Data repositories
194
171
  ├── routes/ # HTTP routes
195
172
  ├── services/ # Application services
@@ -205,47 +182,24 @@ MIT
205
182
  // src/ entry points
206
183
  files["src/index.ts"] = `export { createApp } from "./app.js";
207
184
  `;
208
- files["src/server.ts"] = `import { createApp } from "./app.js";
209
- import { createRuntime } from "@zudojs/runtime";
210
- import { logger } from "@zudojs/logger";
211
-
212
- const app = await createApp();
213
-
214
- const runtime = createRuntime({
215
- onShutdown: async () => {
216
- await app.stop();
217
- },
218
- });
219
-
220
- await runtime.start();
221
-
222
- const server = await app.listen();
223
-
224
- process.on("SIGTERM", async () => {
225
- await runtime.stop();
226
- process.exit(0);
227
- });
228
- `;
229
- files["src/app.ts"] = `import { logger } from "@zudojs/logger";
230
- import { createContainer } from "@zudojs/container";
231
-
232
- export async function createApp() {
233
- const log = logger.child({ service: "app" });
234
- const container = createContainer();
235
-
236
- log.info("${nameSlug} v0.1.0 starting...");
237
-
238
- return {
239
- container,
240
- listen: async () => {
241
- log.info("Server started");
242
- },
243
- stop: async () => {
244
- log.info("Shutting down...");
245
- },
246
- };
247
- }
248
- `;
185
+ files["src/server.ts"] = renderServerFile();
186
+ // Normalized: the name becomes a file path segment and a class name.
187
+ const moduleName = normalizeName(options.services[0] ?? "app") || "app";
188
+ const serviceClassName = `${toPascalCase(moduleName)}Service`;
189
+ const appModule = moduleSpec(moduleName, "./modules/index.js");
190
+ files["src/app.ts"] = renderAppFile({
191
+ applicationName: nameSlug,
192
+ modules: [appModule],
193
+ });
194
+ files[`src/modules/${moduleName}.module.ts`] = renderModuleFile({
195
+ module: appModule,
196
+ service: {
197
+ className: serviceClassName,
198
+ importPath: "../services/index.js",
199
+ },
200
+ });
201
+ files["src/modules/index.ts"] =
202
+ `export { ${appModule.className} } from "./${moduleName}.module.js";\n`;
249
203
  // Shared directories with empty index.ts
250
204
  const sharedDirs = [
251
205
  "configs",
@@ -271,8 +225,10 @@ export async function createApp() {
271
225
  for (const dir of sharedDirs) {
272
226
  files[`src/${dir}/index.ts`] = "";
273
227
  }
274
- // Services with CQRS structure
275
- files["src/services/index.ts"] = ``;
228
+ // Services
229
+ files[`src/services/${moduleName}.service.ts`] = renderServiceFile(moduleName);
230
+ files["src/services/index.ts"] =
231
+ `export { ${serviceClassName} } from "./${moduleName}.service.js";\n`;
276
232
  // Controllers
277
233
  files["src/controllers/health.controller.ts"] =
278
234
  `export class HealthController {
@@ -0,0 +1,71 @@
1
+ /**
2
+ * zudojs-cli — Shared Runtime App Templates
3
+ *
4
+ * Every architecture template assembles the same four framework pieces:
5
+ * a logger, a container, an event bus and a set of modules, handed to
6
+ * `createRuntime(dependencies, options)`.
7
+ *
8
+ * The emitted source is kept here rather than duplicated per architecture
9
+ * so it can be verified against the real `@zudojs/*` packages in one place.
10
+ * `tests/generatedProject.typecheck.test.ts` type-checks the output of every
11
+ * template against `packages/<name>/src/index.ts`, so any drift between these
12
+ * snippets and the framework API fails the CLI test suite.
13
+ */
14
+ /** Packages every generated runtime entry point imports from. */
15
+ export declare const RUNTIME_APP_DEPENDENCIES: readonly ["@zudojs/core", "@zudojs/runtime", "@zudojs/container", "@zudojs/events", "@zudojs/logger", "@zudojs/constants"];
16
+ /** A module registered with the runtime by the generated `createApp`. */
17
+ export interface RuntimeModuleSpec {
18
+ /** Slug used for the module id, file name and log messages. */
19
+ readonly name: string;
20
+ /** PascalCase class name. */
21
+ readonly className: string;
22
+ /** Import specifier the module class is imported from, relative to app.ts. */
23
+ readonly importPath: string;
24
+ }
25
+ /** Builds a module spec from a raw name. */
26
+ export declare function moduleSpec(name: string, importPath: string): RuntimeModuleSpec;
27
+ /**
28
+ * Renders `zudojs.config.ts`.
29
+ *
30
+ * The shape matches what the fullstack composer writes and what
31
+ * `zudojs generate` parses to detect the project architecture.
32
+ */
33
+ export declare function renderZudojsConfig(options: {
34
+ readonly projectName: string;
35
+ readonly projectType: string;
36
+ readonly architecture: string;
37
+ }): string;
38
+ /**
39
+ * Renders `src/app.ts`: assembles the runtime dependencies and returns a
40
+ * started-on-demand `Runtime`.
41
+ */
42
+ export declare function renderAppFile(options: {
43
+ readonly applicationName: string;
44
+ readonly modules: readonly RuntimeModuleSpec[];
45
+ /**
46
+ * Port this app is deployed on. Recorded as runtime metadata so the value
47
+ * in docker-compose.yml and the Dockerfile is also visible from the app.
48
+ */
49
+ readonly port?: number;
50
+ }): string;
51
+ /**
52
+ * Renders `src/server.ts`: the process entry point. Starts the runtime and
53
+ * stops it cleanly on SIGINT/SIGTERM.
54
+ */
55
+ export declare function renderServerFile(appImportPath?: string): string;
56
+ /**
57
+ * Renders a module class extending `BaseModule`.
58
+ *
59
+ * `BaseModule`'s constructor is protected, so the generated class declares a
60
+ * public constructor — without one the class cannot be instantiated.
61
+ */
62
+ export declare function renderModuleFile(options: {
63
+ readonly module: RuntimeModuleSpec;
64
+ readonly service?: {
65
+ readonly className: string;
66
+ readonly importPath: string;
67
+ };
68
+ }): string;
69
+ /** Renders a service class using the real `createLogger` factory. */
70
+ export declare function renderServiceFile(name: string): string;
71
+ //# sourceMappingURL=appRuntime.template.d.ts.map