zudojs-cli 0.1.2 → 1.1.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 (469) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -3
  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/frontendAdapter.type.d.ts +6 -0
  8. package/dist/src/adapters/frontend/react.adapter.js +26 -17
  9. package/dist/src/adapters/frontend/svelte.adapter.js +1 -0
  10. package/dist/src/adapters/frontend/sveltekit.adapter.js +7 -8
  11. package/dist/src/adapters/frontend/vanilla.adapter.js +1 -1
  12. package/dist/src/adapters/frontend/vue.adapter.js +1 -0
  13. package/dist/src/adapters/package-managers/bun.adapter.js +5 -5
  14. package/dist/src/adapters/package-managers/npm.adapter.js +5 -5
  15. package/dist/src/adapters/package-managers/pnpm.adapter.js +5 -5
  16. package/dist/src/adapters/package-managers/yarn.adapter.js +5 -5
  17. package/dist/src/bin/zudojs.js +23 -11
  18. package/dist/src/cliApplication/cliApplication.builtins.d.ts +11 -2
  19. package/dist/src/cliApplication/cliApplication.builtins.js +15 -4
  20. package/dist/src/cliApplication/cliApplication.core.js +22 -7
  21. package/dist/src/cliApplication/cliApplication.logger.d.ts +28 -0
  22. package/dist/src/cliApplication/cliApplication.logger.js +68 -0
  23. package/dist/src/cliApplication/index.d.ts +1 -3
  24. package/dist/src/cliApplication/index.js +1 -3
  25. package/dist/src/cliConstant/cliConstant.value.d.ts +1 -1
  26. package/dist/src/cliConstant/cliConstant.value.js +2 -1
  27. package/dist/src/cliConstant/cliVersion.d.ts +16 -0
  28. package/dist/src/cliConstant/cliVersion.js +57 -0
  29. package/dist/src/cliParser/cliParser.core.js +7 -0
  30. package/dist/src/cliParser/cliParser.shortOption.js +1 -1
  31. package/dist/src/cliVersion/cliVersion.update.d.ts +38 -0
  32. package/dist/src/cliVersion/cliVersion.update.js +63 -0
  33. package/dist/src/cliVersion/index.d.ts +2 -1
  34. package/dist/src/cliVersion/index.js +2 -1
  35. package/dist/src/commands/add.command.d.ts +29 -0
  36. package/dist/src/commands/add.command.js +95 -107
  37. package/dist/src/commands/build.command.d.ts +8 -0
  38. package/dist/src/commands/build.command.js +24 -24
  39. package/dist/src/commands/create.command.js +176 -55
  40. package/dist/src/commands/dev.command.d.ts +30 -2
  41. package/dist/src/commands/dev.command.js +106 -150
  42. package/dist/src/commands/doctor.command.d.ts +18 -0
  43. package/dist/src/commands/doctor.command.js +160 -110
  44. package/dist/src/commands/generate.command.d.ts +2 -1
  45. package/dist/src/commands/generate.command.js +91 -41
  46. package/dist/src/commands/info.command.js +61 -30
  47. package/dist/src/constants/index.d.ts +19 -1
  48. package/dist/src/constants/index.js +32 -1
  49. package/dist/src/generators/command/command.generator.d.ts +1 -0
  50. package/dist/src/generators/command/command.generator.js +10 -4
  51. package/dist/src/generators/controller/controller.generator.d.ts +1 -0
  52. package/dist/src/generators/controller/controller.generator.js +12 -9
  53. package/dist/src/generators/dto/dto.generator.d.ts +1 -0
  54. package/dist/src/generators/dto/dto.generator.js +9 -3
  55. package/dist/src/generators/event/event.generator.d.ts +1 -0
  56. package/dist/src/generators/event/event.generator.js +10 -4
  57. package/dist/src/generators/frontend/frontendGenerator.core.d.ts +2 -0
  58. package/dist/src/generators/frontend/frontendGenerator.core.js +14 -27
  59. package/dist/src/generators/frontend/frontendPipeline.d.ts +26 -0
  60. package/dist/src/generators/frontend/frontendPipeline.js +136 -0
  61. package/dist/src/generators/fullstack/fullstackComposer.core.d.ts +3 -2
  62. package/dist/src/generators/fullstack/fullstackComposer.core.js +58 -43
  63. package/dist/src/generators/infrastructure/infrastructure.generator.d.ts +11 -0
  64. package/dist/src/generators/infrastructure/infrastructure.generator.js +101 -61
  65. package/dist/src/generators/integration/integrationGenerator.core.d.ts +6 -0
  66. package/dist/src/generators/integration/integrationGenerator.core.js +35 -6
  67. package/dist/src/generators/job/job.generator.d.ts +1 -0
  68. package/dist/src/generators/job/job.generator.js +9 -3
  69. package/dist/src/generators/middleware/middleware.generator.d.ts +1 -0
  70. package/dist/src/generators/middleware/middleware.generator.js +10 -4
  71. package/dist/src/generators/model/model.generator.d.ts +1 -0
  72. package/dist/src/generators/model/model.generator.js +9 -3
  73. package/dist/src/generators/module/module.generator.d.ts +1 -0
  74. package/dist/src/generators/module/module.generator.js +11 -24
  75. package/dist/src/generators/project/project.generator.js +2 -23
  76. package/dist/src/generators/query/query.generator.d.ts +1 -0
  77. package/dist/src/generators/query/query.generator.js +10 -4
  78. package/dist/src/generators/repository/repository.generator.d.ts +1 -0
  79. package/dist/src/generators/repository/repository.generator.js +12 -9
  80. package/dist/src/generators/route/route.generator.d.ts +1 -0
  81. package/dist/src/generators/route/route.generator.js +11 -5
  82. package/dist/src/generators/service/service.generator.d.ts +1 -0
  83. package/dist/src/generators/service/service.generator.js +12 -9
  84. package/dist/src/generators/validator/validator.generator.d.ts +1 -0
  85. package/dist/src/generators/validator/validator.generator.js +9 -3
  86. package/dist/src/index.d.ts +3 -2
  87. package/dist/src/index.js +3 -2
  88. package/dist/src/installers/dependency.installer.d.ts +9 -0
  89. package/dist/src/installers/dependency.installer.js +27 -2
  90. package/dist/src/installers/index.d.ts +1 -3
  91. package/dist/src/installers/index.js +1 -3
  92. package/dist/src/manifest/manifestManager.core.d.ts +3 -0
  93. package/dist/src/prompts/backend/index.d.ts +1 -0
  94. package/dist/src/prompts/backend/index.js +1 -0
  95. package/dist/src/prompts/backend/services.prompt.d.ts +7 -0
  96. package/dist/src/prompts/backend/services.prompt.js +39 -0
  97. package/dist/src/prompts/index.d.ts +0 -1
  98. package/dist/src/prompts/index.js +0 -1
  99. package/dist/src/resolvers/architecture.resolver.d.ts +11 -1
  100. package/dist/src/resolvers/architecture.resolver.js +12 -13
  101. package/dist/src/resolvers/configuration/configurationResolver.core.d.ts +10 -1
  102. package/dist/src/resolvers/configuration/configurationResolver.core.js +68 -29
  103. package/dist/src/resolvers/index.d.ts +1 -0
  104. package/dist/src/resolvers/index.js +1 -0
  105. package/dist/src/resolvers/layout/index.d.ts +5 -0
  106. package/dist/src/resolvers/layout/index.js +5 -0
  107. package/dist/src/resolvers/layout/projectLayout.core.d.ts +60 -0
  108. package/dist/src/resolvers/layout/projectLayout.core.js +236 -0
  109. package/dist/src/resolvers/project.resolver.d.ts +5 -0
  110. package/dist/src/resolvers/project.resolver.js +10 -6
  111. package/dist/src/rollback/rollbackManager.core.js +0 -1
  112. package/dist/src/runners/process/processRunner.core.d.ts +4 -0
  113. package/dist/src/runners/process/processRunner.core.js +17 -3
  114. package/dist/src/scaffolders/framework.scaffolder.js +9 -6
  115. package/dist/src/scaffolders/scaffolder.helper.js +7 -2
  116. package/dist/src/templates/microservice/index.d.ts +1 -1
  117. package/dist/src/templates/microservice/index.js +1 -1
  118. package/dist/src/templates/microservice/microservice.template.d.ts +14 -0
  119. package/dist/src/templates/microservice/microservice.template.js +140 -162
  120. package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts +0 -1
  121. package/dist/src/templates/modular-monolith/modularMonolith.template.js +43 -77
  122. package/dist/src/templates/monolith/monolith.template.d.ts +1 -1
  123. package/dist/src/templates/monolith/monolith.template.js +46 -69
  124. package/dist/src/templates/shared/appRuntime.template.d.ts +60 -0
  125. package/dist/src/templates/shared/appRuntime.template.js +189 -0
  126. package/dist/src/templates/shared/index.d.ts +6 -0
  127. package/dist/src/templates/shared/index.js +6 -0
  128. package/dist/src/templates/shared/pnpm.template.d.ts +27 -0
  129. package/dist/src/templates/shared/pnpm.template.js +57 -0
  130. package/dist/src/utils/index.d.ts +3 -3
  131. package/dist/src/utils/index.js +3 -3
  132. package/dist/src/utils/utils.detect.d.ts +9 -0
  133. package/dist/src/utils/utils.detect.js +11 -11
  134. package/dist/src/utils/utils.exec.d.ts +35 -1
  135. package/dist/src/utils/utils.exec.js +99 -4
  136. package/dist/src/utils/utils.fileSystem.d.ts +6 -0
  137. package/dist/src/utils/utils.fileSystem.js +19 -0
  138. package/dist/src/utils/utils.name.d.ts +26 -0
  139. package/dist/src/utils/utils.name.js +51 -1
  140. package/package.json +32 -23
  141. package/dist/.tsbuildinfo +0 -1
  142. package/dist/src/adapters/databases/index.d.ts.map +0 -1
  143. package/dist/src/adapters/databases/index.js.map +0 -1
  144. package/dist/src/adapters/databases/mysql.adapter.d.ts.map +0 -1
  145. package/dist/src/adapters/databases/mysql.adapter.js.map +0 -1
  146. package/dist/src/adapters/databases/postgres.adapter.d.ts.map +0 -1
  147. package/dist/src/adapters/databases/postgres.adapter.js.map +0 -1
  148. package/dist/src/adapters/databases/sqlite.adapter.d.ts.map +0 -1
  149. package/dist/src/adapters/databases/sqlite.adapter.js.map +0 -1
  150. package/dist/src/adapters/frontend/angular.adapter.d.ts.map +0 -1
  151. package/dist/src/adapters/frontend/angular.adapter.js.map +0 -1
  152. package/dist/src/adapters/frontend/astro.adapter.d.ts.map +0 -1
  153. package/dist/src/adapters/frontend/astro.adapter.js.map +0 -1
  154. package/dist/src/adapters/frontend/flutter.adapter.d.ts.map +0 -1
  155. package/dist/src/adapters/frontend/flutter.adapter.js.map +0 -1
  156. package/dist/src/adapters/frontend/frontendAdapter.type.d.ts.map +0 -1
  157. package/dist/src/adapters/frontend/frontendAdapter.type.js.map +0 -1
  158. package/dist/src/adapters/frontend/index.d.ts.map +0 -1
  159. package/dist/src/adapters/frontend/index.js.map +0 -1
  160. package/dist/src/adapters/frontend/next.adapter.d.ts.map +0 -1
  161. package/dist/src/adapters/frontend/next.adapter.js.map +0 -1
  162. package/dist/src/adapters/frontend/nuxt.adapter.d.ts.map +0 -1
  163. package/dist/src/adapters/frontend/nuxt.adapter.js.map +0 -1
  164. package/dist/src/adapters/frontend/react-native.adapter.d.ts.map +0 -1
  165. package/dist/src/adapters/frontend/react-native.adapter.js.map +0 -1
  166. package/dist/src/adapters/frontend/react.adapter.d.ts.map +0 -1
  167. package/dist/src/adapters/frontend/react.adapter.js.map +0 -1
  168. package/dist/src/adapters/frontend/svelte.adapter.d.ts.map +0 -1
  169. package/dist/src/adapters/frontend/svelte.adapter.js.map +0 -1
  170. package/dist/src/adapters/frontend/sveltekit.adapter.d.ts.map +0 -1
  171. package/dist/src/adapters/frontend/sveltekit.adapter.js.map +0 -1
  172. package/dist/src/adapters/frontend/vanilla.adapter.d.ts.map +0 -1
  173. package/dist/src/adapters/frontend/vanilla.adapter.js.map +0 -1
  174. package/dist/src/adapters/frontend/vue.adapter.d.ts.map +0 -1
  175. package/dist/src/adapters/frontend/vue.adapter.js.map +0 -1
  176. package/dist/src/adapters/package-managers/bun.adapter.d.ts.map +0 -1
  177. package/dist/src/adapters/package-managers/bun.adapter.js.map +0 -1
  178. package/dist/src/adapters/package-managers/index.d.ts.map +0 -1
  179. package/dist/src/adapters/package-managers/index.js.map +0 -1
  180. package/dist/src/adapters/package-managers/npm.adapter.d.ts.map +0 -1
  181. package/dist/src/adapters/package-managers/npm.adapter.js.map +0 -1
  182. package/dist/src/adapters/package-managers/packageManager.type.d.ts.map +0 -1
  183. package/dist/src/adapters/package-managers/packageManager.type.js.map +0 -1
  184. package/dist/src/adapters/package-managers/pnpm.adapter.d.ts.map +0 -1
  185. package/dist/src/adapters/package-managers/pnpm.adapter.js.map +0 -1
  186. package/dist/src/adapters/package-managers/yarn.adapter.d.ts.map +0 -1
  187. package/dist/src/adapters/package-managers/yarn.adapter.js.map +0 -1
  188. package/dist/src/bin/zudojs.d.ts.map +0 -1
  189. package/dist/src/bin/zudojs.js.map +0 -1
  190. package/dist/src/cliApplication/cliApplication.builtins.d.ts.map +0 -1
  191. package/dist/src/cliApplication/cliApplication.builtins.js.map +0 -1
  192. package/dist/src/cliApplication/cliApplication.core.d.ts.map +0 -1
  193. package/dist/src/cliApplication/cliApplication.core.js.map +0 -1
  194. package/dist/src/cliApplication/cliApplication.writer.d.ts.map +0 -1
  195. package/dist/src/cliApplication/cliApplication.writer.js.map +0 -1
  196. package/dist/src/cliApplication/index.d.ts.map +0 -1
  197. package/dist/src/cliApplication/index.js.map +0 -1
  198. package/dist/src/cliCommand/cliCommand.builder.d.ts.map +0 -1
  199. package/dist/src/cliCommand/cliCommand.builder.js.map +0 -1
  200. package/dist/src/cliCommand/cliCommand.factory.d.ts.map +0 -1
  201. package/dist/src/cliCommand/cliCommand.factory.js.map +0 -1
  202. package/dist/src/cliCommand/cliCommand.registry.d.ts.map +0 -1
  203. package/dist/src/cliCommand/cliCommand.registry.js.map +0 -1
  204. package/dist/src/cliCommand/cliCommand.validator.d.ts.map +0 -1
  205. package/dist/src/cliCommand/cliCommand.validator.js.map +0 -1
  206. package/dist/src/cliCommand/index.d.ts.map +0 -1
  207. package/dist/src/cliCommand/index.js.map +0 -1
  208. package/dist/src/cliConstant/cliConstant.value.d.ts.map +0 -1
  209. package/dist/src/cliConstant/cliConstant.value.js.map +0 -1
  210. package/dist/src/cliConstant/index.d.ts.map +0 -1
  211. package/dist/src/cliConstant/index.js.map +0 -1
  212. package/dist/src/cliError/cliError.argument.d.ts.map +0 -1
  213. package/dist/src/cliError/cliError.argument.js.map +0 -1
  214. package/dist/src/cliError/cliError.base.d.ts.map +0 -1
  215. package/dist/src/cliError/cliError.base.js.map +0 -1
  216. package/dist/src/cliError/cliError.command.d.ts.map +0 -1
  217. package/dist/src/cliError/cliError.command.js.map +0 -1
  218. package/dist/src/cliError/cliError.execution.d.ts.map +0 -1
  219. package/dist/src/cliError/cliError.execution.js.map +0 -1
  220. package/dist/src/cliError/cliError.option.d.ts.map +0 -1
  221. package/dist/src/cliError/cliError.option.js.map +0 -1
  222. package/dist/src/cliError/index.d.ts.map +0 -1
  223. package/dist/src/cliError/index.js.map +0 -1
  224. package/dist/src/cliParser/cliParser.core.d.ts.map +0 -1
  225. package/dist/src/cliParser/cliParser.core.js.map +0 -1
  226. package/dist/src/cliParser/cliParser.helper.d.ts.map +0 -1
  227. package/dist/src/cliParser/cliParser.helper.js.map +0 -1
  228. package/dist/src/cliParser/cliParser.longOption.d.ts.map +0 -1
  229. package/dist/src/cliParser/cliParser.longOption.js.map +0 -1
  230. package/dist/src/cliParser/cliParser.shortOption.d.ts.map +0 -1
  231. package/dist/src/cliParser/cliParser.shortOption.js.map +0 -1
  232. package/dist/src/cliParser/index.d.ts.map +0 -1
  233. package/dist/src/cliParser/index.js.map +0 -1
  234. package/dist/src/cliType/cliType.type.d.ts.map +0 -1
  235. package/dist/src/cliType/cliType.type.js.map +0 -1
  236. package/dist/src/cliType/index.d.ts.map +0 -1
  237. package/dist/src/cliType/index.js.map +0 -1
  238. package/dist/src/cliVersion/cliVersion.core.d.ts.map +0 -1
  239. package/dist/src/cliVersion/cliVersion.core.js.map +0 -1
  240. package/dist/src/cliVersion/index.d.ts.map +0 -1
  241. package/dist/src/cliVersion/index.js.map +0 -1
  242. package/dist/src/commands/add.command.d.ts.map +0 -1
  243. package/dist/src/commands/add.command.js.map +0 -1
  244. package/dist/src/commands/build.command.d.ts.map +0 -1
  245. package/dist/src/commands/build.command.js.map +0 -1
  246. package/dist/src/commands/create.command.d.ts.map +0 -1
  247. package/dist/src/commands/create.command.js.map +0 -1
  248. package/dist/src/commands/dev.command.d.ts.map +0 -1
  249. package/dist/src/commands/dev.command.js.map +0 -1
  250. package/dist/src/commands/doctor.command.d.ts.map +0 -1
  251. package/dist/src/commands/doctor.command.js.map +0 -1
  252. package/dist/src/commands/generate.command.d.ts.map +0 -1
  253. package/dist/src/commands/generate.command.js.map +0 -1
  254. package/dist/src/commands/index.d.ts.map +0 -1
  255. package/dist/src/commands/index.js.map +0 -1
  256. package/dist/src/commands/info.command.d.ts.map +0 -1
  257. package/dist/src/commands/info.command.js.map +0 -1
  258. package/dist/src/constants/index.d.ts.map +0 -1
  259. package/dist/src/constants/index.js.map +0 -1
  260. package/dist/src/errors/index.d.ts.map +0 -1
  261. package/dist/src/errors/index.js.map +0 -1
  262. package/dist/src/generators/backend/backend.generator.d.ts.map +0 -1
  263. package/dist/src/generators/backend/backend.generator.js.map +0 -1
  264. package/dist/src/generators/backend/index.d.ts.map +0 -1
  265. package/dist/src/generators/backend/index.js.map +0 -1
  266. package/dist/src/generators/command/command.generator.d.ts.map +0 -1
  267. package/dist/src/generators/command/command.generator.js.map +0 -1
  268. package/dist/src/generators/controller/controller.generator.d.ts.map +0 -1
  269. package/dist/src/generators/controller/controller.generator.js.map +0 -1
  270. package/dist/src/generators/dto/dto.generator.d.ts.map +0 -1
  271. package/dist/src/generators/dto/dto.generator.js.map +0 -1
  272. package/dist/src/generators/dto/index.d.ts.map +0 -1
  273. package/dist/src/generators/dto/index.js.map +0 -1
  274. package/dist/src/generators/event/event.generator.d.ts.map +0 -1
  275. package/dist/src/generators/event/event.generator.js.map +0 -1
  276. package/dist/src/generators/event/index.d.ts.map +0 -1
  277. package/dist/src/generators/event/index.js.map +0 -1
  278. package/dist/src/generators/frontend/frontendGenerator.core.d.ts.map +0 -1
  279. package/dist/src/generators/frontend/frontendGenerator.core.js.map +0 -1
  280. package/dist/src/generators/frontend/index.d.ts.map +0 -1
  281. package/dist/src/generators/frontend/index.js.map +0 -1
  282. package/dist/src/generators/fullstack/fullstackComposer.core.d.ts.map +0 -1
  283. package/dist/src/generators/fullstack/fullstackComposer.core.js.map +0 -1
  284. package/dist/src/generators/fullstack/index.d.ts.map +0 -1
  285. package/dist/src/generators/fullstack/index.js.map +0 -1
  286. package/dist/src/generators/index.d.ts.map +0 -1
  287. package/dist/src/generators/index.js.map +0 -1
  288. package/dist/src/generators/infrastructure/index.d.ts.map +0 -1
  289. package/dist/src/generators/infrastructure/index.js.map +0 -1
  290. package/dist/src/generators/infrastructure/infrastructure.generator.d.ts.map +0 -1
  291. package/dist/src/generators/infrastructure/infrastructure.generator.js.map +0 -1
  292. package/dist/src/generators/integration/index.d.ts.map +0 -1
  293. package/dist/src/generators/integration/index.js.map +0 -1
  294. package/dist/src/generators/integration/integrationGenerator.core.d.ts.map +0 -1
  295. package/dist/src/generators/integration/integrationGenerator.core.js.map +0 -1
  296. package/dist/src/generators/job/index.d.ts.map +0 -1
  297. package/dist/src/generators/job/index.js.map +0 -1
  298. package/dist/src/generators/job/job.generator.d.ts.map +0 -1
  299. package/dist/src/generators/job/job.generator.js.map +0 -1
  300. package/dist/src/generators/middleware/index.d.ts.map +0 -1
  301. package/dist/src/generators/middleware/index.js.map +0 -1
  302. package/dist/src/generators/middleware/middleware.generator.d.ts.map +0 -1
  303. package/dist/src/generators/middleware/middleware.generator.js.map +0 -1
  304. package/dist/src/generators/model/index.d.ts.map +0 -1
  305. package/dist/src/generators/model/index.js.map +0 -1
  306. package/dist/src/generators/model/model.generator.d.ts.map +0 -1
  307. package/dist/src/generators/model/model.generator.js.map +0 -1
  308. package/dist/src/generators/module/module.generator.d.ts.map +0 -1
  309. package/dist/src/generators/module/module.generator.js.map +0 -1
  310. package/dist/src/generators/project/project.generator.d.ts.map +0 -1
  311. package/dist/src/generators/project/project.generator.js.map +0 -1
  312. package/dist/src/generators/query/query.generator.d.ts.map +0 -1
  313. package/dist/src/generators/query/query.generator.js.map +0 -1
  314. package/dist/src/generators/repository/repository.generator.d.ts.map +0 -1
  315. package/dist/src/generators/repository/repository.generator.js.map +0 -1
  316. package/dist/src/generators/route/index.d.ts.map +0 -1
  317. package/dist/src/generators/route/index.js.map +0 -1
  318. package/dist/src/generators/route/route.generator.d.ts.map +0 -1
  319. package/dist/src/generators/route/route.generator.js.map +0 -1
  320. package/dist/src/generators/service/service.generator.d.ts.map +0 -1
  321. package/dist/src/generators/service/service.generator.js.map +0 -1
  322. package/dist/src/generators/validator/index.d.ts.map +0 -1
  323. package/dist/src/generators/validator/index.js.map +0 -1
  324. package/dist/src/generators/validator/validator.generator.d.ts.map +0 -1
  325. package/dist/src/generators/validator/validator.generator.js.map +0 -1
  326. package/dist/src/index.d.ts.map +0 -1
  327. package/dist/src/index.js.map +0 -1
  328. package/dist/src/installers/dependency.installer.d.ts.map +0 -1
  329. package/dist/src/installers/dependency.installer.js.map +0 -1
  330. package/dist/src/installers/index.d.ts.map +0 -1
  331. package/dist/src/installers/index.js.map +0 -1
  332. package/dist/src/manifest/index.d.ts.map +0 -1
  333. package/dist/src/manifest/index.js.map +0 -1
  334. package/dist/src/manifest/manifestManager.core.d.ts.map +0 -1
  335. package/dist/src/manifest/manifestManager.core.js.map +0 -1
  336. package/dist/src/prompts/backend/api-style.prompt.d.ts.map +0 -1
  337. package/dist/src/prompts/backend/api-style.prompt.js.map +0 -1
  338. package/dist/src/prompts/backend/backend-architecture.prompt.d.ts.map +0 -1
  339. package/dist/src/prompts/backend/backend-architecture.prompt.js.map +0 -1
  340. package/dist/src/prompts/backend/database.prompt.d.ts.map +0 -1
  341. package/dist/src/prompts/backend/database.prompt.js.map +0 -1
  342. package/dist/src/prompts/backend/index.d.ts.map +0 -1
  343. package/dist/src/prompts/backend/index.js.map +0 -1
  344. package/dist/src/prompts/capabilities/capabilities.prompt.d.ts.map +0 -1
  345. package/dist/src/prompts/capabilities/capabilities.prompt.js.map +0 -1
  346. package/dist/src/prompts/capabilities/index.d.ts.map +0 -1
  347. package/dist/src/prompts/capabilities/index.js.map +0 -1
  348. package/dist/src/prompts/frontend/framework.prompt.d.ts.map +0 -1
  349. package/dist/src/prompts/frontend/framework.prompt.js.map +0 -1
  350. package/dist/src/prompts/frontend/frontend-architecture.prompt.d.ts.map +0 -1
  351. package/dist/src/prompts/frontend/frontend-architecture.prompt.js.map +0 -1
  352. package/dist/src/prompts/frontend/index.d.ts.map +0 -1
  353. package/dist/src/prompts/frontend/index.js.map +0 -1
  354. package/dist/src/prompts/index.d.ts.map +0 -1
  355. package/dist/src/prompts/index.js.map +0 -1
  356. package/dist/src/prompts/project/confirmation.prompt.d.ts.map +0 -1
  357. package/dist/src/prompts/project/confirmation.prompt.js.map +0 -1
  358. package/dist/src/prompts/project/index.d.ts.map +0 -1
  359. package/dist/src/prompts/project/index.js.map +0 -1
  360. package/dist/src/prompts/project/project-name.prompt.d.ts.map +0 -1
  361. package/dist/src/prompts/project/project-name.prompt.js.map +0 -1
  362. package/dist/src/prompts/project/project-type.prompt.d.ts.map +0 -1
  363. package/dist/src/prompts/project/project-type.prompt.js.map +0 -1
  364. package/dist/src/prompts/prompts.createProject.d.ts +0 -33
  365. package/dist/src/prompts/prompts.createProject.d.ts.map +0 -1
  366. package/dist/src/prompts/prompts.createProject.js +0 -150
  367. package/dist/src/prompts/prompts.createProject.js.map +0 -1
  368. package/dist/src/prompts/workspace/index.d.ts.map +0 -1
  369. package/dist/src/prompts/workspace/index.js.map +0 -1
  370. package/dist/src/prompts/workspace/package-manager.prompt.d.ts.map +0 -1
  371. package/dist/src/prompts/workspace/package-manager.prompt.js.map +0 -1
  372. package/dist/src/registries/adapter/frontendAdapterRegistry.core.d.ts.map +0 -1
  373. package/dist/src/registries/adapter/frontendAdapterRegistry.core.js.map +0 -1
  374. package/dist/src/registries/adapter/packageManagerRegistry.core.d.ts.map +0 -1
  375. package/dist/src/registries/adapter/packageManagerRegistry.core.js.map +0 -1
  376. package/dist/src/registries/dependency/dependencyRegistry.core.d.ts.map +0 -1
  377. package/dist/src/registries/dependency/dependencyRegistry.core.js.map +0 -1
  378. package/dist/src/registries/dependency/index.d.ts.map +0 -1
  379. package/dist/src/registries/dependency/index.js.map +0 -1
  380. package/dist/src/registries/generator/generatorRegistry.core.d.ts.map +0 -1
  381. package/dist/src/registries/generator/generatorRegistry.core.js.map +0 -1
  382. package/dist/src/registries/generator/index.d.ts.map +0 -1
  383. package/dist/src/registries/generator/index.js.map +0 -1
  384. package/dist/src/registries/index.d.ts.map +0 -1
  385. package/dist/src/registries/index.js.map +0 -1
  386. package/dist/src/resolvers/architecture.resolver.d.ts.map +0 -1
  387. package/dist/src/resolvers/architecture.resolver.js.map +0 -1
  388. package/dist/src/resolvers/capability/capabilityResolver.core.d.ts.map +0 -1
  389. package/dist/src/resolvers/capability/capabilityResolver.core.js.map +0 -1
  390. package/dist/src/resolvers/capability/index.d.ts.map +0 -1
  391. package/dist/src/resolvers/capability/index.js.map +0 -1
  392. package/dist/src/resolvers/configuration/configurationResolver.core.d.ts.map +0 -1
  393. package/dist/src/resolvers/configuration/configurationResolver.core.js.map +0 -1
  394. package/dist/src/resolvers/configuration/index.d.ts.map +0 -1
  395. package/dist/src/resolvers/configuration/index.js.map +0 -1
  396. package/dist/src/resolvers/dependency/dependencyResolver.core.d.ts.map +0 -1
  397. package/dist/src/resolvers/dependency/dependencyResolver.core.js.map +0 -1
  398. package/dist/src/resolvers/dependency/index.d.ts.map +0 -1
  399. package/dist/src/resolvers/dependency/index.js.map +0 -1
  400. package/dist/src/resolvers/index.d.ts.map +0 -1
  401. package/dist/src/resolvers/index.js.map +0 -1
  402. package/dist/src/resolvers/project.resolver.d.ts.map +0 -1
  403. package/dist/src/resolvers/project.resolver.js.map +0 -1
  404. package/dist/src/rollback/index.d.ts.map +0 -1
  405. package/dist/src/rollback/index.js.map +0 -1
  406. package/dist/src/rollback/rollbackManager.core.d.ts.map +0 -1
  407. package/dist/src/rollback/rollbackManager.core.js.map +0 -1
  408. package/dist/src/runners/package-manager/index.d.ts.map +0 -1
  409. package/dist/src/runners/package-manager/index.js.map +0 -1
  410. package/dist/src/runners/package-manager/packageManagerRunner.core.d.ts.map +0 -1
  411. package/dist/src/runners/package-manager/packageManagerRunner.core.js.map +0 -1
  412. package/dist/src/runners/process/index.d.ts.map +0 -1
  413. package/dist/src/runners/process/index.js.map +0 -1
  414. package/dist/src/runners/process/processRunner.core.d.ts.map +0 -1
  415. package/dist/src/runners/process/processRunner.core.js.map +0 -1
  416. package/dist/src/runners/task/index.d.ts.map +0 -1
  417. package/dist/src/runners/task/index.js.map +0 -1
  418. package/dist/src/runners/task/taskRunner.core.d.ts.map +0 -1
  419. package/dist/src/runners/task/taskRunner.core.js.map +0 -1
  420. package/dist/src/scaffolders/framework.scaffolder.d.ts.map +0 -1
  421. package/dist/src/scaffolders/framework.scaffolder.js.map +0 -1
  422. package/dist/src/scaffolders/index.d.ts.map +0 -1
  423. package/dist/src/scaffolders/index.js.map +0 -1
  424. package/dist/src/scaffolders/scaffolder.helper.d.ts.map +0 -1
  425. package/dist/src/scaffolders/scaffolder.helper.js.map +0 -1
  426. package/dist/src/scripts/postinstall.cjs +0 -56
  427. package/dist/src/templates/microservice/index.d.ts.map +0 -1
  428. package/dist/src/templates/microservice/index.js.map +0 -1
  429. package/dist/src/templates/microservice/microservice.template.d.ts.map +0 -1
  430. package/dist/src/templates/microservice/microservice.template.js.map +0 -1
  431. package/dist/src/templates/modular-monolith/index.d.ts.map +0 -1
  432. package/dist/src/templates/modular-monolith/index.js.map +0 -1
  433. package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts.map +0 -1
  434. package/dist/src/templates/modular-monolith/modularMonolith.template.js.map +0 -1
  435. package/dist/src/templates/monolith/index.d.ts.map +0 -1
  436. package/dist/src/templates/monolith/index.js.map +0 -1
  437. package/dist/src/templates/monolith/monolith.template.d.ts.map +0 -1
  438. package/dist/src/templates/monolith/monolith.template.js.map +0 -1
  439. package/dist/src/types/index.d.ts.map +0 -1
  440. package/dist/src/types/index.js.map +0 -1
  441. package/dist/src/types/projectConfiguration.type.d.ts.map +0 -1
  442. package/dist/src/types/projectConfiguration.type.js.map +0 -1
  443. package/dist/src/types/scaffold.type.d.ts.map +0 -1
  444. package/dist/src/types/scaffold.type.js.map +0 -1
  445. package/dist/src/utils/index.d.ts.map +0 -1
  446. package/dist/src/utils/index.js.map +0 -1
  447. package/dist/src/utils/utils.detect.d.ts.map +0 -1
  448. package/dist/src/utils/utils.detect.js.map +0 -1
  449. package/dist/src/utils/utils.exec.d.ts.map +0 -1
  450. package/dist/src/utils/utils.exec.js.map +0 -1
  451. package/dist/src/utils/utils.fileSystem.d.ts.map +0 -1
  452. package/dist/src/utils/utils.fileSystem.js.map +0 -1
  453. package/dist/src/utils/utils.name.d.ts.map +0 -1
  454. package/dist/src/utils/utils.name.js.map +0 -1
  455. package/dist/src/validators/compatibility/compatibilityValidator.core.d.ts.map +0 -1
  456. package/dist/src/validators/compatibility/compatibilityValidator.core.js.map +0 -1
  457. package/dist/src/validators/compatibility/index.d.ts.map +0 -1
  458. package/dist/src/validators/compatibility/index.js.map +0 -1
  459. package/dist/src/validators/environment/environmentValidator.core.d.ts.map +0 -1
  460. package/dist/src/validators/environment/environmentValidator.core.js.map +0 -1
  461. package/dist/src/validators/environment/index.d.ts.map +0 -1
  462. package/dist/src/validators/environment/index.js.map +0 -1
  463. package/dist/src/validators/index.d.ts.map +0 -1
  464. package/dist/src/validators/index.js.map +0 -1
  465. package/dist/src/validators/project/index.d.ts.map +0 -1
  466. package/dist/src/validators/project/index.js.map +0 -1
  467. package/dist/src/validators/project/projectValidator.core.d.ts.map +0 -1
  468. package/dist/src/validators/project/projectValidator.core.js.map +0 -1
  469. package/src/scripts/postinstall.cjs +0 -56
@@ -0,0 +1,236 @@
1
+ /**
2
+ * zudojs-cli — Project Layout Resolver
3
+ *
4
+ * One place that answers "what kind of project is this directory, and where
5
+ * do its apps live?". Every follow-up command (`dev`, `add`, `generate`,
6
+ * `doctor`, `info`, `build`) used to answer that question on its own, and
7
+ * each answer was different: `dev` read `zudojs.config.ts` first and only
8
+ * fell back to the manifest, `generate` never looked past the workspace
9
+ * root for a fullstack project, `doctor` required a `tsconfig.json` at the
10
+ * root of a workspace that has none, and `add` wrote into the workspace root
11
+ * `package.json` where no app can import from.
12
+ *
13
+ * Resolution order:
14
+ *
15
+ * 1. `.zudojs/manifest.json` — written by `zudojs create`, machine-managed.
16
+ * 2. `zudojs.config.ts` / `.js` — older projects; read with a regex, never
17
+ * executed.
18
+ * 3. the `zudojs` block in `package.json`.
19
+ *
20
+ * @module resolvers/layout
21
+ */
22
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
23
+ import { join } from "node:path";
24
+ import { SAFE_PATH_SEGMENT } from "../../utils/utils.name.js";
25
+ const PROJECT_TYPES = [
26
+ "backend",
27
+ "frontend",
28
+ "fullstack",
29
+ ];
30
+ const PACKAGE_MANAGERS = [
31
+ "pnpm",
32
+ "npm",
33
+ "yarn",
34
+ "bun",
35
+ ];
36
+ function readJson(path) {
37
+ try {
38
+ const parsed = JSON.parse(readFileSync(path, "utf-8"));
39
+ return typeof parsed === "object" && parsed !== null
40
+ ? parsed
41
+ : null;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ function asString(value) {
48
+ return typeof value === "string" && value.length > 0 ? value : undefined;
49
+ }
50
+ function readManifest(root) {
51
+ const manifest = readJson(join(root, ".zudojs", "manifest.json"));
52
+ if (!manifest)
53
+ return null;
54
+ const backend = manifest.backend;
55
+ const frontend = manifest.frontend;
56
+ const workspace = manifest.workspace;
57
+ const services = Array.isArray(manifest.services)
58
+ ? manifest.services.filter((service) => typeof service === "string")
59
+ : undefined;
60
+ return {
61
+ projectType: asString(manifest.projectType),
62
+ architecture: asString(backend?.architecture) ?? asString(manifest.architecture),
63
+ packageManager: asString(workspace?.packageManager),
64
+ frontendFramework: asString(frontend?.framework),
65
+ services,
66
+ source: "manifest",
67
+ };
68
+ }
69
+ /**
70
+ * Reads the legacy `zudojs.config.ts` with a regex. The file is user-owned
71
+ * TypeScript and is never executed.
72
+ */
73
+ function readLegacyConfig(root) {
74
+ for (const name of ["zudojs.config.ts", "zudojs.config.js"]) {
75
+ const path = join(root, name);
76
+ if (!existsSync(path))
77
+ continue;
78
+ let content;
79
+ try {
80
+ content = readFileSync(path, "utf-8");
81
+ }
82
+ catch {
83
+ continue;
84
+ }
85
+ const projectType = content.match(/projectType:\s*["'](\w+)["']/)?.[1];
86
+ const architecture = content.match(/architecture:\s*["'](\w[\w-]*)["']/)?.[1];
87
+ const frontendFramework = content.match(/frontend:\s*\{[\s\S]*?framework:\s*["']([^"']+)["']/)?.[1];
88
+ return {
89
+ projectType,
90
+ architecture,
91
+ frontendFramework,
92
+ source: "config",
93
+ };
94
+ }
95
+ return null;
96
+ }
97
+ function readPackageJsonBlock(root) {
98
+ const pkg = readJson(join(root, "package.json"));
99
+ const block = pkg?.zudojs;
100
+ if (typeof block !== "object" || block === null)
101
+ return null;
102
+ const zudojs = block;
103
+ return {
104
+ projectType: asString(zudojs.projectType),
105
+ architecture: asString(zudojs.architecture),
106
+ frontendFramework: asString(zudojs.frontend),
107
+ source: "package.json",
108
+ };
109
+ }
110
+ /** Detects the package manager from lock files and workspace markers. */
111
+ export function detectPackageManager(root) {
112
+ if (existsSync(join(root, "pnpm-lock.yaml")) ||
113
+ existsSync(join(root, "pnpm-workspace.yaml"))) {
114
+ return "pnpm";
115
+ }
116
+ if (existsSync(join(root, "yarn.lock")))
117
+ return "yarn";
118
+ if (existsSync(join(root, "bun.lock")) || existsSync(join(root, "bun.lockb")))
119
+ return "bun";
120
+ return "npm";
121
+ }
122
+ /**
123
+ * Whether `root` is a multi-package workspace.
124
+ *
125
+ * A `pnpm-workspace.yaml` alone is not enough: pnpm 10+ also uses that file
126
+ * for settings (the build-script allow-list every generated project
127
+ * carries), so only one that declares `packages:` makes a workspace.
128
+ */
129
+ function isWorkspaceRoot(root) {
130
+ const workspaceFile = join(root, "pnpm-workspace.yaml");
131
+ if (existsSync(workspaceFile)) {
132
+ try {
133
+ if (/^packages:/m.test(readFileSync(workspaceFile, "utf-8")))
134
+ return true;
135
+ }
136
+ catch {
137
+ // unreadable: fall through to package.json
138
+ }
139
+ }
140
+ const pkg = readJson(join(root, "package.json"));
141
+ return pkg?.workspaces !== undefined;
142
+ }
143
+ /**
144
+ * Lists the service apps under `<backendRoot>/apps/services`, preferring the
145
+ * names recorded in the manifest and falling back to the directory listing.
146
+ */
147
+ function listServiceDirs(backendRoot, recorded) {
148
+ const servicesRoot = join(backendRoot, "apps", "services");
149
+ let names;
150
+ if (recorded && recorded.length > 0) {
151
+ // Names come from a file on disk and become path segments.
152
+ names = recorded.filter((name) => SAFE_PATH_SEGMENT.test(name));
153
+ }
154
+ else if (existsSync(servicesRoot)) {
155
+ names = readdirSync(servicesRoot, { withFileTypes: true })
156
+ .filter((entry) => entry.isDirectory())
157
+ .map((entry) => entry.name)
158
+ .filter((name) => SAFE_PATH_SEGMENT.test(name));
159
+ }
160
+ else {
161
+ names = [];
162
+ }
163
+ const dirs = names
164
+ .map((name) => join(servicesRoot, name))
165
+ .filter((dir) => existsSync(join(dir, "package.json")));
166
+ return { names, dirs };
167
+ }
168
+ /**
169
+ * Resolves the layout of the Zudojs project rooted at `cwd`.
170
+ *
171
+ * Returns `null` when the directory is not a Zudojs project: no manifest,
172
+ * no legacy config and no `zudojs` block in `package.json`.
173
+ */
174
+ export function resolveProjectLayout(cwd) {
175
+ const raw = readManifest(cwd) ?? readLegacyConfig(cwd) ?? readPackageJsonBlock(cwd);
176
+ if (!raw)
177
+ return null;
178
+ const projectType = PROJECT_TYPES.includes(raw.projectType)
179
+ ? raw.projectType
180
+ : "backend";
181
+ const architecture = raw.architecture ?? "monolith";
182
+ const packageManager = PACKAGE_MANAGERS.includes(raw.packageManager)
183
+ ? raw.packageManager
184
+ : detectPackageManager(cwd);
185
+ // In a fullstack workspace the backend is generated into apps/api; a
186
+ // backend-only project is its own backend root.
187
+ const fullstackApi = join(cwd, "apps", "api");
188
+ const backendRoot = projectType === "fullstack" &&
189
+ existsSync(join(fullstackApi, "package.json"))
190
+ ? fullstackApi
191
+ : cwd;
192
+ let backendDirs = [];
193
+ let services = [];
194
+ if (projectType !== "frontend") {
195
+ if (architecture === "microservice") {
196
+ const gateway = join(backendRoot, "apps", "gateway");
197
+ const listed = listServiceDirs(backendRoot, raw.services);
198
+ services = listed.names;
199
+ backendDirs = [
200
+ ...(existsSync(join(gateway, "package.json")) ? [gateway] : []),
201
+ ...listed.dirs,
202
+ ];
203
+ }
204
+ else {
205
+ backendDirs = [backendRoot];
206
+ }
207
+ }
208
+ let frontendDir;
209
+ let frontendFramework;
210
+ if (projectType === "frontend") {
211
+ const nested = join(cwd, "apps", "web");
212
+ frontendDir = existsSync(join(nested, "package.json")) ? nested : cwd;
213
+ frontendFramework = raw.frontendFramework ?? "react";
214
+ }
215
+ else if (projectType === "fullstack") {
216
+ frontendDir = join(cwd, "apps", "web");
217
+ frontendFramework = raw.frontendFramework ?? "react";
218
+ }
219
+ else if (raw.frontendFramework && raw.frontendFramework !== "none") {
220
+ frontendDir = join(cwd, "apps", "web");
221
+ frontendFramework = raw.frontendFramework;
222
+ }
223
+ return {
224
+ root: cwd,
225
+ projectType,
226
+ architecture,
227
+ packageManager,
228
+ isWorkspace: isWorkspaceRoot(cwd),
229
+ backendDirs,
230
+ ...(frontendDir !== undefined ? { frontendDir } : {}),
231
+ ...(frontendFramework !== undefined ? { frontendFramework } : {}),
232
+ services,
233
+ source: raw.source,
234
+ };
235
+ }
236
+ //# sourceMappingURL=projectLayout.core.js.map
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Walks upward from `startDir` to the nearest directory that looks like a
3
+ * project root: one holding a `.zudojs/manifest.json`, a legacy
4
+ * `zudojs.config.ts`, or a `package.json`.
5
+ */
1
6
  export declare function findProjectRoot(startDir?: string): string | null;
2
7
  export declare function resolveProjectPath(cwd: string, name: string): string;
3
8
  //# sourceMappingURL=project.resolver.d.ts.map
@@ -1,15 +1,19 @@
1
1
  import { existsSync } from "node:fs";
2
- import { join } from "node:path";
2
+ import { dirname, join } from "node:path";
3
+ /**
4
+ * Walks upward from `startDir` to the nearest directory that looks like a
5
+ * project root: one holding a `.zudojs/manifest.json`, a legacy
6
+ * `zudojs.config.ts`, or a `package.json`.
7
+ */
3
8
  export function findProjectRoot(startDir = process.cwd()) {
4
9
  let dir = startDir;
5
10
  while (true) {
6
- if (existsSync(join(dir, "zudojs.config.ts"))) {
11
+ if (existsSync(join(dir, ".zudojs", "manifest.json")) ||
12
+ existsSync(join(dir, "zudojs.config.ts")) ||
13
+ existsSync(join(dir, "package.json"))) {
7
14
  return dir;
8
15
  }
9
- if (existsSync(join(dir, "package.json"))) {
10
- return dir;
11
- }
12
- const parent = join(dir, "..");
16
+ const parent = dirname(dir);
13
17
  if (parent === dir) {
14
18
  return null;
15
19
  }
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import { existsSync } from "node:fs";
7
7
  import { rm } from "node:fs/promises";
8
- import { join } from "node:path";
9
8
  export class RollbackManager {
10
9
  entries = [];
11
10
  trackFile(path) {
@@ -6,6 +6,10 @@
6
6
  export interface ProcessOptions {
7
7
  readonly cwd: string;
8
8
  readonly env?: Record<string, string>;
9
+ /**
10
+ * Child stdio mode. Only meaningful for {@link ProcessRunner.runBackground};
11
+ * {@link ProcessRunner.run} always buffers output so it can return it.
12
+ */
9
13
  readonly stdio?: "inherit" | "pipe" | "ignore";
10
14
  }
11
15
  export declare class ProcessRunner {
@@ -7,12 +7,26 @@ import { execCommand } from "../../utils/utils.exec.js";
7
7
  export class ProcessRunner {
8
8
  async run(command, args, options) {
9
9
  try {
10
- await execCommand(command, Array.from(args), options.cwd);
11
- return { stdout: "", stderr: "", exitCode: 0 };
10
+ // The buffered output used to be thrown away and every caller got
11
+ // empty strings, making the documented `stdout`/`stderr` fields
12
+ // useless. `options.env` was ignored here too.
13
+ const result = await execCommand(command, Array.from(args), options.cwd, {
14
+ ...(options.env ? { env: { ...process.env, ...options.env } } : {}),
15
+ });
16
+ return { stdout: result.stdout, stderr: result.stderr, exitCode: 0 };
12
17
  }
13
18
  catch (error) {
14
19
  const message = error instanceof Error ? error.message : String(error);
15
- return { stdout: "", stderr: message, exitCode: 1 };
20
+ const stdout = typeof error.stdout === "string"
21
+ ? error.stdout
22
+ : "";
23
+ const stderr = typeof error.stderr === "string"
24
+ ? error.stderr
25
+ : message;
26
+ const exitCode = typeof error.code === "number"
27
+ ? error.code
28
+ : 1;
29
+ return { stdout, stderr, exitCode };
16
30
  }
17
31
  }
18
32
  async runBackground(command, args, options) {
@@ -7,7 +7,10 @@ import { execCommand } from "../utils/utils.exec.js";
7
7
  export class FrameworkScaffolder {
8
8
  async scaffold(targetPath) {
9
9
  try {
10
- await execCommand(this.command, this.args, targetPath);
10
+ await execCommand(this.command, this.args, targetPath, {
11
+ // Suppress interactive prompts from create-* tools.
12
+ env: { ...process.env, CI: "1" },
13
+ });
11
14
  return { success: true, path: targetPath };
12
15
  }
13
16
  catch (error) {
@@ -19,12 +22,12 @@ export class FrameworkScaffolder {
19
22
  export class ViteReactScaffolder extends FrameworkScaffolder {
20
23
  name = "react-vite";
21
24
  command = "npm";
22
- args = ["create", "vite@latest", ".", "--template", "react-ts"];
25
+ args = ["create", "vite@latest", ".", "--", "--template", "react-ts"];
23
26
  }
24
27
  export class ViteVueScaffolder extends FrameworkScaffolder {
25
28
  name = "vue-vite";
26
29
  command = "npm";
27
- args = ["create", "vite@latest", ".", "--template", "vue-ts"];
30
+ args = ["create", "vite@latest", ".", "--", "--template", "vue-ts"];
28
31
  }
29
32
  export class NextScaffolder extends FrameworkScaffolder {
30
33
  name = "next";
@@ -61,12 +64,12 @@ export class AngularScaffolder extends FrameworkScaffolder {
61
64
  export class AstroScaffolder extends FrameworkScaffolder {
62
65
  name = "astro";
63
66
  command = "npm";
64
- args = ["create", "astro@latest", ".", "--template", "minimal"];
67
+ args = ["create", "astro@latest", ".", "--", "--template", "minimal"];
65
68
  }
66
69
  export class SvelteScaffolder extends FrameworkScaffolder {
67
70
  name = "svelte";
68
71
  command = "npm";
69
- args = ["create", "svite@latest", ".", "--template", "ts"];
72
+ args = ["create", "vite@latest", ".", "--", "--template", "svelte-ts"];
70
73
  }
71
74
  export class SvelteKitScaffolder extends FrameworkScaffolder {
72
75
  name = "sveltekit";
@@ -76,7 +79,7 @@ export class SvelteKitScaffolder extends FrameworkScaffolder {
76
79
  export class VanillaScaffolder extends FrameworkScaffolder {
77
80
  name = "vanilla";
78
81
  command = "npm";
79
- args = ["create", "vite@latest", ".", "--template", "vanilla-ts"];
82
+ args = ["create", "vite@latest", ".", "--", "--template", "vanilla-ts"];
80
83
  }
81
84
  export class FlutterScaffolder extends FrameworkScaffolder {
82
85
  name = "flutter";
@@ -7,10 +7,15 @@ import { execCommand } from "../utils/utils.exec.js";
7
7
  import { writeFileTree } from "../utils/utils.fileSystem.js";
8
8
  export async function scaffoldWithFallback(options) {
9
9
  try {
10
- await execCommand(options.command, Array.from(options.args), options.targetPath);
10
+ await execCommand(options.command, Array.from(options.args), options.targetPath, {
11
+ // Suppress interactive prompts from create-* tools.
12
+ env: { ...process.env, CI: "1" },
13
+ });
11
14
  return true;
12
15
  }
13
- catch {
16
+ catch (error) {
17
+ const message = error instanceof Error ? error.message : String(error);
18
+ console.warn(`Warning: official scaffolder "${options.command} ${options.args.join(" ")}" failed (${message.split("\n")[0]}). Using built-in fallback template.`);
14
19
  await writeFileTree(options.targetPath, options.fallbackFiles);
15
20
  return false;
16
21
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * zudojs-cli — Microservice Template Index
3
3
  */
4
- export { generateMicroserviceFiles } from "./microservice.template.js";
4
+ export { generateMicroserviceFiles, resolveMicroserviceServices, DEFAULT_MICROSERVICE_SERVICES, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * zudojs-cli — Microservice Template Index
3
3
  */
4
- export { generateMicroserviceFiles } from "./microservice.template.js";
4
+ export { generateMicroserviceFiles, resolveMicroserviceServices, DEFAULT_MICROSERVICE_SERVICES, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -22,5 +22,19 @@
22
22
  * ```
23
23
  */
24
24
  import type { ScaffoldOptions } from "../../types/index.js";
25
+ /** Default service names used when none are provided. */
26
+ export declare const DEFAULT_MICROSERVICE_SERVICES: readonly ["identity", "enrollment", "assessment", "notification"];
27
+ /**
28
+ * The gateway app is always generated at `apps/gateway`, so "gateway" is a
29
+ * reserved name: a service called `gateway` would produce a second, competing
30
+ * gateway at `apps/services/gateway`.
31
+ */
32
+ export declare const RESERVED_MICROSERVICE_APP_NAMES: readonly ["gateway"];
33
+ /**
34
+ * Normalizes a requested service list into the service apps generated under
35
+ * `apps/services/`. Reserved names and duplicates are dropped; an empty list
36
+ * falls back to DEFAULT_MICROSERVICE_SERVICES.
37
+ */
38
+ export declare function resolveMicroserviceServices(requested: readonly string[]): readonly string[];
25
39
  export declare function generateMicroserviceFiles(options: ScaffoldOptions): Record<string, string>;
26
40
  //# sourceMappingURL=microservice.template.d.ts.map