zudojs-cli 2.1.3 → 2.2.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 (572) hide show
  1. package/README.md +6 -3
  2. package/dist/src/adapters/databases/databaseAdapter.resolver.d.ts +0 -1
  3. package/dist/src/adapters/databases/databaseAdapter.resolver.js +0 -1
  4. package/dist/src/adapters/databases/index.d.ts +0 -1
  5. package/dist/src/adapters/databases/index.js +0 -1
  6. package/dist/src/adapters/databases/mysql.adapter.d.ts +0 -1
  7. package/dist/src/adapters/databases/mysql.adapter.js +0 -1
  8. package/dist/src/adapters/databases/postgres.adapter.d.ts +0 -1
  9. package/dist/src/adapters/databases/postgres.adapter.js +0 -1
  10. package/dist/src/adapters/databases/sqlite.adapter.d.ts +0 -1
  11. package/dist/src/adapters/databases/sqlite.adapter.js +0 -1
  12. package/dist/src/adapters/frontend/angular.adapter.d.ts +0 -1
  13. package/dist/src/adapters/frontend/angular.adapter.js +0 -1
  14. package/dist/src/adapters/frontend/astro.adapter.d.ts +0 -1
  15. package/dist/src/adapters/frontend/astro.adapter.js +0 -1
  16. package/dist/src/adapters/frontend/fallback/fallback.helper.d.ts +0 -1
  17. package/dist/src/adapters/frontend/fallback/fallback.helper.js +0 -1
  18. package/dist/src/adapters/frontend/fallback/framework/angular/angular.fallback.d.ts +0 -1
  19. package/dist/src/adapters/frontend/fallback/framework/angular/angular.fallback.js +0 -1
  20. package/dist/src/adapters/frontend/fallback/framework/angular/angularWorkspace.fallback.d.ts +0 -1
  21. package/dist/src/adapters/frontend/fallback/framework/angular/angularWorkspace.fallback.js +0 -1
  22. package/dist/src/adapters/frontend/fallback/framework/angular/index.d.ts +0 -1
  23. package/dist/src/adapters/frontend/fallback/framework/angular/index.js +0 -1
  24. package/dist/src/adapters/frontend/fallback/framework/astro.fallback.d.ts +0 -1
  25. package/dist/src/adapters/frontend/fallback/framework/astro.fallback.js +0 -1
  26. package/dist/src/adapters/frontend/fallback/framework/index.d.ts +0 -1
  27. package/dist/src/adapters/frontend/fallback/framework/index.js +0 -1
  28. package/dist/src/adapters/frontend/fallback/framework/next.fallback.d.ts +0 -1
  29. package/dist/src/adapters/frontend/fallback/framework/next.fallback.js +0 -1
  30. package/dist/src/adapters/frontend/fallback/framework/nuxt.fallback.d.ts +0 -1
  31. package/dist/src/adapters/frontend/fallback/framework/nuxt.fallback.js +0 -1
  32. package/dist/src/adapters/frontend/fallback/framework/sveltekit.fallback.d.ts +0 -1
  33. package/dist/src/adapters/frontend/fallback/framework/sveltekit.fallback.js +0 -1
  34. package/dist/src/adapters/frontend/fallback/index.d.ts +0 -1
  35. package/dist/src/adapters/frontend/fallback/index.js +0 -1
  36. package/dist/src/adapters/frontend/fallback/vite/index.d.ts +0 -1
  37. package/dist/src/adapters/frontend/fallback/vite/index.js +0 -1
  38. package/dist/src/adapters/frontend/fallback/vite/react.fallback.d.ts +0 -1
  39. package/dist/src/adapters/frontend/fallback/vite/react.fallback.js +0 -1
  40. package/dist/src/adapters/frontend/fallback/vite/svelte.fallback.d.ts +0 -1
  41. package/dist/src/adapters/frontend/fallback/vite/svelte.fallback.js +0 -1
  42. package/dist/src/adapters/frontend/fallback/vite/vanilla.fallback.d.ts +0 -1
  43. package/dist/src/adapters/frontend/fallback/vite/vanilla.fallback.js +0 -1
  44. package/dist/src/adapters/frontend/fallback/vite/vue.fallback.d.ts +0 -1
  45. package/dist/src/adapters/frontend/fallback/vite/vue.fallback.js +0 -1
  46. package/dist/src/adapters/frontend/flutter.adapter.d.ts +0 -1
  47. package/dist/src/adapters/frontend/flutter.adapter.js +0 -1
  48. package/dist/src/adapters/frontend/frontendAdapter.type.d.ts +0 -1
  49. package/dist/src/adapters/frontend/frontendAdapter.type.js +0 -1
  50. package/dist/src/adapters/frontend/index.d.ts +0 -1
  51. package/dist/src/adapters/frontend/index.js +0 -1
  52. package/dist/src/adapters/frontend/next.adapter.d.ts +0 -1
  53. package/dist/src/adapters/frontend/next.adapter.js +0 -1
  54. package/dist/src/adapters/frontend/nuxt.adapter.d.ts +0 -1
  55. package/dist/src/adapters/frontend/nuxt.adapter.js +0 -1
  56. package/dist/src/adapters/frontend/react-native.adapter.d.ts +0 -1
  57. package/dist/src/adapters/frontend/react-native.adapter.js +0 -1
  58. package/dist/src/adapters/frontend/react.adapter.d.ts +0 -1
  59. package/dist/src/adapters/frontend/react.adapter.js +0 -1
  60. package/dist/src/adapters/frontend/svelte.adapter.d.ts +0 -1
  61. package/dist/src/adapters/frontend/svelte.adapter.js +0 -1
  62. package/dist/src/adapters/frontend/sveltekit.adapter.d.ts +0 -1
  63. package/dist/src/adapters/frontend/sveltekit.adapter.js +0 -1
  64. package/dist/src/adapters/frontend/vanilla.adapter.d.ts +0 -1
  65. package/dist/src/adapters/frontend/vanilla.adapter.js +0 -1
  66. package/dist/src/adapters/frontend/vue.adapter.d.ts +0 -1
  67. package/dist/src/adapters/frontend/vue.adapter.js +0 -1
  68. package/dist/src/adapters/package-managers/bun.adapter.d.ts +0 -1
  69. package/dist/src/adapters/package-managers/bun.adapter.js +0 -1
  70. package/dist/src/adapters/package-managers/index.d.ts +0 -1
  71. package/dist/src/adapters/package-managers/index.js +0 -1
  72. package/dist/src/adapters/package-managers/npm.adapter.d.ts +0 -1
  73. package/dist/src/adapters/package-managers/npm.adapter.js +0 -1
  74. package/dist/src/adapters/package-managers/packageManager.type.d.ts +0 -1
  75. package/dist/src/adapters/package-managers/packageManager.type.js +0 -1
  76. package/dist/src/adapters/package-managers/pnpm.adapter.d.ts +0 -1
  77. package/dist/src/adapters/package-managers/pnpm.adapter.js +0 -1
  78. package/dist/src/adapters/package-managers/yarn.adapter.d.ts +0 -1
  79. package/dist/src/adapters/package-managers/yarn.adapter.js +0 -1
  80. package/dist/src/bin/bin.menu.d.ts +0 -1
  81. package/dist/src/bin/bin.menu.js +0 -1
  82. package/dist/src/bin/bin.runner.d.ts +0 -1
  83. package/dist/src/bin/bin.runner.js +0 -1
  84. package/dist/src/bin/index.d.ts +0 -1
  85. package/dist/src/bin/index.js +0 -1
  86. package/dist/src/bin/zudojs.d.ts +0 -1
  87. package/dist/src/bin/zudojs.js +1 -2
  88. package/dist/src/cliApplication/cliApplication.builtins.d.ts +0 -1
  89. package/dist/src/cliApplication/cliApplication.builtins.js +0 -1
  90. package/dist/src/cliApplication/cliApplication.core.d.ts +0 -1
  91. package/dist/src/cliApplication/cliApplication.core.js +0 -1
  92. package/dist/src/cliApplication/cliApplication.help.d.ts +0 -1
  93. package/dist/src/cliApplication/cliApplication.help.js +0 -1
  94. package/dist/src/cliApplication/cliApplication.logger.d.ts +0 -1
  95. package/dist/src/cliApplication/cliApplication.logger.js +0 -1
  96. package/dist/src/cliApplication/cliApplication.writer.d.ts +0 -1
  97. package/dist/src/cliApplication/cliApplication.writer.js +0 -1
  98. package/dist/src/cliApplication/index.d.ts +0 -1
  99. package/dist/src/cliApplication/index.js +0 -1
  100. package/dist/src/cliApplication/invocation/index.d.ts +0 -1
  101. package/dist/src/cliApplication/invocation/index.js +0 -1
  102. package/dist/src/cliApplication/invocation/invocation.hint.d.ts +0 -7
  103. package/dist/src/cliApplication/invocation/invocation.hint.js +14 -1
  104. package/dist/src/cliApplication/invocation/invocation.locate.d.ts +0 -1
  105. package/dist/src/cliApplication/invocation/invocation.locate.js +0 -1
  106. package/dist/src/cliApplication/invocation/invocation.name.d.ts +0 -1
  107. package/dist/src/cliApplication/invocation/invocation.name.js +0 -1
  108. package/dist/src/cliApplication/invocation/invocation.sanitize.d.ts +0 -1
  109. package/dist/src/cliApplication/invocation/invocation.sanitize.js +0 -1
  110. package/dist/src/cliCommand/cliCommand.builder.d.ts +0 -1
  111. package/dist/src/cliCommand/cliCommand.builder.js +0 -1
  112. package/dist/src/cliCommand/cliCommand.factory.d.ts +0 -1
  113. package/dist/src/cliCommand/cliCommand.factory.js +0 -1
  114. package/dist/src/cliCommand/cliCommand.registry.d.ts +0 -1
  115. package/dist/src/cliCommand/cliCommand.registry.js +0 -1
  116. package/dist/src/cliCommand/cliCommand.validator.d.ts +0 -1
  117. package/dist/src/cliCommand/cliCommand.validator.js +0 -1
  118. package/dist/src/cliCommand/index.d.ts +0 -1
  119. package/dist/src/cliCommand/index.js +0 -1
  120. package/dist/src/cliConstant/cliConstant.value.d.ts +0 -1
  121. package/dist/src/cliConstant/cliConstant.value.js +0 -1
  122. package/dist/src/cliConstant/cliVersion.d.ts +0 -1
  123. package/dist/src/cliConstant/cliVersion.js +0 -1
  124. package/dist/src/cliConstant/index.d.ts +0 -1
  125. package/dist/src/cliConstant/index.js +0 -1
  126. package/dist/src/cliError/cliError.argument.d.ts +0 -1
  127. package/dist/src/cliError/cliError.argument.js +0 -1
  128. package/dist/src/cliError/cliError.base.d.ts +0 -1
  129. package/dist/src/cliError/cliError.base.js +0 -1
  130. package/dist/src/cliError/cliError.command.d.ts +0 -1
  131. package/dist/src/cliError/cliError.command.js +0 -1
  132. package/dist/src/cliError/cliError.execution.d.ts +0 -1
  133. package/dist/src/cliError/cliError.execution.js +0 -1
  134. package/dist/src/cliError/cliError.option.d.ts +0 -1
  135. package/dist/src/cliError/cliError.option.js +0 -1
  136. package/dist/src/cliError/index.d.ts +0 -1
  137. package/dist/src/cliError/index.js +0 -1
  138. package/dist/src/cliParser/cliParser.core.d.ts +0 -1
  139. package/dist/src/cliParser/cliParser.core.js +0 -1
  140. package/dist/src/cliParser/cliParser.helper.d.ts +0 -1
  141. package/dist/src/cliParser/cliParser.helper.js +0 -1
  142. package/dist/src/cliParser/cliParser.longOption.d.ts +0 -1
  143. package/dist/src/cliParser/cliParser.longOption.js +0 -1
  144. package/dist/src/cliParser/cliParser.shortOption.d.ts +0 -1
  145. package/dist/src/cliParser/cliParser.shortOption.js +0 -1
  146. package/dist/src/cliParser/index.d.ts +0 -1
  147. package/dist/src/cliParser/index.js +0 -1
  148. package/dist/src/cliType/cliType.type.d.ts +0 -1
  149. package/dist/src/cliType/cliType.type.js +0 -1
  150. package/dist/src/cliType/index.d.ts +0 -1
  151. package/dist/src/cliType/index.js +0 -1
  152. package/dist/src/cliVersion/cliVersion.core.d.ts +0 -1
  153. package/dist/src/cliVersion/cliVersion.core.js +0 -1
  154. package/dist/src/cliVersion/cliVersion.update.d.ts +0 -1
  155. package/dist/src/cliVersion/cliVersion.update.js +0 -1
  156. package/dist/src/cliVersion/index.d.ts +0 -1
  157. package/dist/src/cliVersion/index.js +0 -1
  158. package/dist/src/commands/add.command.d.ts +0 -1
  159. package/dist/src/commands/add.command.js +1 -2
  160. package/dist/src/commands/build.command.d.ts +0 -1
  161. package/dist/src/commands/build.command.js +0 -1
  162. package/dist/src/commands/commandError.helper.d.ts +0 -1
  163. package/dist/src/commands/commandError.helper.js +0 -1
  164. package/dist/src/commands/create.command.d.ts +0 -1
  165. package/dist/src/commands/create.command.js +0 -1
  166. package/dist/src/commands/dev/dev.plan.d.ts +39 -0
  167. package/dist/src/commands/dev/dev.plan.js +83 -0
  168. package/dist/src/commands/dev/index.d.ts +4 -0
  169. package/dist/src/commands/dev/index.js +4 -0
  170. package/dist/src/commands/dev.command.d.ts +4 -30
  171. package/dist/src/commands/dev.command.js +10 -80
  172. package/dist/src/commands/doctor.command.d.ts +0 -1
  173. package/dist/src/commands/doctor.command.js +0 -1
  174. package/dist/src/commands/generate.command.d.ts +0 -1
  175. package/dist/src/commands/generate.command.js +19 -8
  176. package/dist/src/commands/index.d.ts +0 -1
  177. package/dist/src/commands/index.js +0 -1
  178. package/dist/src/commands/info.command.d.ts +0 -1
  179. package/dist/src/commands/info.command.js +0 -1
  180. package/dist/src/constants/index.d.ts +0 -1
  181. package/dist/src/constants/index.js +0 -1
  182. package/dist/src/constants/zudojsVersions.generated.d.ts +0 -1
  183. package/dist/src/constants/zudojsVersions.generated.js +38 -39
  184. package/dist/src/constants/zudojsVersions.helper.d.ts +0 -1
  185. package/dist/src/constants/zudojsVersions.helper.js +0 -1
  186. package/dist/src/errors/index.d.ts +0 -1
  187. package/dist/src/errors/index.js +0 -1
  188. package/dist/src/generators/backend/backend.generator.d.ts +0 -1
  189. package/dist/src/generators/backend/backend.generator.js +0 -1
  190. package/dist/src/generators/backend/index.d.ts +0 -1
  191. package/dist/src/generators/backend/index.js +0 -1
  192. package/dist/src/generators/command/command.generator.d.ts +0 -1
  193. package/dist/src/generators/command/command.generator.js +0 -1
  194. package/dist/src/generators/command/command.template.d.ts +0 -1
  195. package/dist/src/generators/command/command.template.js +0 -1
  196. package/dist/src/generators/command/index.d.ts +0 -1
  197. package/dist/src/generators/command/index.js +0 -1
  198. package/dist/src/generators/event/event.generator.d.ts +0 -1
  199. package/dist/src/generators/event/event.generator.js +0 -1
  200. package/dist/src/generators/event/index.d.ts +0 -1
  201. package/dist/src/generators/event/index.js +0 -1
  202. package/dist/src/generators/frontend/frontendGenerator.core.d.ts +0 -1
  203. package/dist/src/generators/frontend/frontendGenerator.core.js +0 -1
  204. package/dist/src/generators/frontend/frontendPipeline.d.ts +0 -1
  205. package/dist/src/generators/frontend/frontendPipeline.js +0 -1
  206. package/dist/src/generators/frontend/index.d.ts +0 -1
  207. package/dist/src/generators/frontend/index.js +0 -1
  208. package/dist/src/generators/fullstack/fullstackBackend.layout.d.ts +0 -1
  209. package/dist/src/generators/fullstack/fullstackBackend.layout.js +0 -1
  210. package/dist/src/generators/fullstack/fullstackComposer.core.d.ts +0 -1
  211. package/dist/src/generators/fullstack/fullstackComposer.core.js +0 -1
  212. package/dist/src/generators/fullstack/index.d.ts +0 -1
  213. package/dist/src/generators/fullstack/index.js +0 -1
  214. package/dist/src/generators/index.d.ts +0 -1
  215. package/dist/src/generators/index.js +0 -1
  216. package/dist/src/generators/infrastructure/index.d.ts +0 -1
  217. package/dist/src/generators/infrastructure/index.js +0 -1
  218. package/dist/src/generators/infrastructure/infrastructure.generator.d.ts +0 -1
  219. package/dist/src/generators/infrastructure/infrastructure.generator.js +0 -1
  220. package/dist/src/generators/integration/index.d.ts +0 -1
  221. package/dist/src/generators/integration/index.js +0 -1
  222. package/dist/src/generators/integration/integrationGenerator.core.d.ts +0 -1
  223. package/dist/src/generators/integration/integrationGenerator.core.js +0 -1
  224. package/dist/src/generators/job/index.d.ts +0 -1
  225. package/dist/src/generators/job/index.js +0 -1
  226. package/dist/src/generators/job/job.generator.d.ts +0 -1
  227. package/dist/src/generators/job/job.generator.js +0 -1
  228. package/dist/src/generators/middleware/index.d.ts +0 -1
  229. package/dist/src/generators/middleware/index.js +0 -1
  230. package/dist/src/generators/middleware/middleware.generator.d.ts +0 -1
  231. package/dist/src/generators/middleware/middleware.generator.js +0 -1
  232. package/dist/src/generators/middleware/middleware.template.d.ts +0 -1
  233. package/dist/src/generators/middleware/middleware.template.js +0 -1
  234. package/dist/src/generators/model/index.d.ts +0 -1
  235. package/dist/src/generators/model/index.js +0 -1
  236. package/dist/src/generators/model/model.generator.d.ts +0 -1
  237. package/dist/src/generators/model/model.generator.js +0 -1
  238. package/dist/src/generators/module/index.d.ts +0 -1
  239. package/dist/src/generators/module/index.js +0 -1
  240. package/dist/src/generators/module/module.generator.d.ts +0 -1
  241. package/dist/src/generators/module/module.generator.js +27 -11
  242. package/dist/src/generators/module/module.registration.d.ts +4 -3
  243. package/dist/src/generators/module/module.registration.js +5 -4
  244. package/dist/src/generators/project/project.generator.d.ts +0 -1
  245. package/dist/src/generators/project/project.generator.js +0 -1
  246. package/dist/src/generators/query/index.d.ts +0 -1
  247. package/dist/src/generators/query/index.js +0 -1
  248. package/dist/src/generators/query/query.generator.d.ts +0 -1
  249. package/dist/src/generators/query/query.generator.js +0 -1
  250. package/dist/src/generators/query/query.template.d.ts +0 -1
  251. package/dist/src/generators/query/query.template.js +0 -1
  252. package/dist/src/generators/resource/index.d.ts +0 -1
  253. package/dist/src/generators/resource/index.js +0 -1
  254. package/dist/src/generators/resource/resource.checks.d.ts +31 -0
  255. package/dist/src/generators/resource/resource.checks.js +52 -0
  256. package/dist/src/generators/resource/resource.generator.d.ts +5 -3
  257. package/dist/src/generators/resource/resource.generator.js +23 -36
  258. package/dist/src/generators/resource/resource.layout.d.ts +0 -1
  259. package/dist/src/generators/resource/resource.layout.js +0 -1
  260. package/dist/src/generators/resource/resource.plan.d.ts +0 -1
  261. package/dist/src/generators/resource/resource.plan.js +0 -1
  262. package/dist/src/generators/resource/resource.run.d.ts +12 -2
  263. package/dist/src/generators/resource/resource.run.js +33 -9
  264. package/dist/src/generators/validator/index.d.ts +0 -1
  265. package/dist/src/generators/validator/index.js +0 -1
  266. package/dist/src/generators/validator/validator.generator.d.ts +6 -2
  267. package/dist/src/generators/validator/validator.generator.js +31 -10
  268. package/dist/src/index.d.ts +0 -1
  269. package/dist/src/index.js +0 -1
  270. package/dist/src/installers/dependency.installer.d.ts +0 -1
  271. package/dist/src/installers/dependency.installer.js +0 -1
  272. package/dist/src/installers/index.d.ts +0 -1
  273. package/dist/src/installers/index.js +0 -1
  274. package/dist/src/manifest/index.d.ts +0 -1
  275. package/dist/src/manifest/index.js +0 -1
  276. package/dist/src/manifest/manifestFile.helper.d.ts +0 -1
  277. package/dist/src/manifest/manifestFile.helper.js +0 -1
  278. package/dist/src/manifest/manifestManager.core.d.ts +0 -1
  279. package/dist/src/manifest/manifestManager.core.js +0 -1
  280. package/dist/src/prompts/backend/api-style.prompt.d.ts +0 -1
  281. package/dist/src/prompts/backend/api-style.prompt.js +0 -1
  282. package/dist/src/prompts/backend/backend-architecture.prompt.d.ts +0 -1
  283. package/dist/src/prompts/backend/backend-architecture.prompt.js +0 -1
  284. package/dist/src/prompts/backend/database.prompt.d.ts +0 -1
  285. package/dist/src/prompts/backend/database.prompt.js +0 -1
  286. package/dist/src/prompts/backend/index.d.ts +0 -1
  287. package/dist/src/prompts/backend/index.js +0 -1
  288. package/dist/src/prompts/backend/services.prompt.d.ts +0 -1
  289. package/dist/src/prompts/backend/services.prompt.js +0 -1
  290. package/dist/src/prompts/cancel.prompt.d.ts +0 -1
  291. package/dist/src/prompts/cancel.prompt.js +0 -1
  292. package/dist/src/prompts/capabilities/capabilities.prompt.d.ts +0 -1
  293. package/dist/src/prompts/capabilities/capabilities.prompt.js +0 -1
  294. package/dist/src/prompts/capabilities/index.d.ts +0 -1
  295. package/dist/src/prompts/capabilities/index.js +0 -1
  296. package/dist/src/prompts/frontend/framework.prompt.d.ts +0 -1
  297. package/dist/src/prompts/frontend/framework.prompt.js +0 -1
  298. package/dist/src/prompts/frontend/frontend-architecture.prompt.d.ts +0 -1
  299. package/dist/src/prompts/frontend/frontend-architecture.prompt.js +0 -1
  300. package/dist/src/prompts/frontend/index.d.ts +0 -1
  301. package/dist/src/prompts/frontend/index.js +0 -1
  302. package/dist/src/prompts/index.d.ts +0 -1
  303. package/dist/src/prompts/index.js +0 -1
  304. package/dist/src/prompts/menu/index.d.ts +0 -1
  305. package/dist/src/prompts/menu/index.js +0 -1
  306. package/dist/src/prompts/menu/menu.adapter.d.ts +0 -1
  307. package/dist/src/prompts/menu/menu.adapter.js +0 -1
  308. package/dist/src/prompts/menu/menu.constant.d.ts +0 -1
  309. package/dist/src/prompts/menu/menu.constant.js +0 -1
  310. package/dist/src/prompts/menu/menu.flow.d.ts +0 -1
  311. package/dist/src/prompts/menu/menu.flow.js +0 -1
  312. package/dist/src/prompts/menu/menu.select.d.ts +0 -1
  313. package/dist/src/prompts/menu/menu.select.js +0 -1
  314. package/dist/src/prompts/menu/menu.type.d.ts +0 -1
  315. package/dist/src/prompts/menu/menu.type.js +0 -1
  316. package/dist/src/prompts/project/confirmation.prompt.d.ts +0 -1
  317. package/dist/src/prompts/project/confirmation.prompt.js +0 -1
  318. package/dist/src/prompts/project/index.d.ts +0 -1
  319. package/dist/src/prompts/project/index.js +0 -1
  320. package/dist/src/prompts/project/project-name.prompt.d.ts +0 -1
  321. package/dist/src/prompts/project/project-name.prompt.js +0 -1
  322. package/dist/src/prompts/project/project-type.prompt.d.ts +0 -1
  323. package/dist/src/prompts/project/project-type.prompt.js +0 -1
  324. package/dist/src/prompts/workspace/index.d.ts +0 -1
  325. package/dist/src/prompts/workspace/index.js +0 -1
  326. package/dist/src/prompts/workspace/package-manager.prompt.d.ts +0 -1
  327. package/dist/src/prompts/workspace/package-manager.prompt.js +0 -1
  328. package/dist/src/recipes/apply/index.d.ts +0 -1
  329. package/dist/src/recipes/apply/index.js +0 -1
  330. package/dist/src/recipes/apply/recipeApply.app.d.ts +0 -1
  331. package/dist/src/recipes/apply/recipeApply.app.js +0 -1
  332. package/dist/src/recipes/apply/recipeApply.context.d.ts +0 -1
  333. package/dist/src/recipes/apply/recipeApply.context.js +0 -1
  334. package/dist/src/recipes/apply/recipeApply.files.d.ts +0 -1
  335. package/dist/src/recipes/apply/recipeApply.files.js +0 -1
  336. package/dist/src/recipes/apply/recipeApply.project.d.ts +13 -3
  337. package/dist/src/recipes/apply/recipeApply.project.js +56 -3
  338. package/dist/src/recipes/apply/recipeApply.report.d.ts +0 -1
  339. package/dist/src/recipes/apply/recipeApply.report.js +0 -1
  340. package/dist/src/recipes/catalog/database/database.files.d.ts +0 -1
  341. package/dist/src/recipes/catalog/database/database.files.js +0 -1
  342. package/dist/src/recipes/catalog/database/database.recipe.d.ts +0 -1
  343. package/dist/src/recipes/catalog/database/database.recipe.js +11 -2
  344. package/dist/src/recipes/catalog/database/index.d.ts +0 -1
  345. package/dist/src/recipes/catalog/database/index.js +0 -1
  346. package/dist/src/recipes/catalog/email.recipe.d.ts +0 -1
  347. package/dist/src/recipes/catalog/email.recipe.js +0 -1
  348. package/dist/src/recipes/catalog/index.d.ts +0 -1
  349. package/dist/src/recipes/catalog/index.js +0 -1
  350. package/dist/src/recipes/catalog/openapi.recipe.d.ts +0 -1
  351. package/dist/src/recipes/catalog/openapi.recipe.js +0 -1
  352. package/dist/src/recipes/catalog/platform/cache.recipe.d.ts +0 -1
  353. package/dist/src/recipes/catalog/platform/cache.recipe.js +0 -1
  354. package/dist/src/recipes/catalog/platform/index.d.ts +0 -1
  355. package/dist/src/recipes/catalog/platform/index.js +0 -1
  356. package/dist/src/recipes/catalog/platform/messaging.recipe.d.ts +0 -1
  357. package/dist/src/recipes/catalog/platform/messaging.recipe.js +0 -1
  358. package/dist/src/recipes/catalog/platform/observability.recipe.d.ts +0 -1
  359. package/dist/src/recipes/catalog/platform/observability.recipe.js +0 -1
  360. package/dist/src/recipes/catalog/platform/queue.recipe.d.ts +0 -1
  361. package/dist/src/recipes/catalog/platform/queue.recipe.js +0 -1
  362. package/dist/src/recipes/catalog/platform/scheduler.recipe.d.ts +0 -1
  363. package/dist/src/recipes/catalog/platform/scheduler.recipe.js +0 -1
  364. package/dist/src/recipes/catalog/redis.recipe.d.ts +0 -1
  365. package/dist/src/recipes/catalog/redis.recipe.js +0 -1
  366. package/dist/src/recipes/catalog/storage.recipe.d.ts +0 -1
  367. package/dist/src/recipes/catalog/storage.recipe.js +0 -1
  368. package/dist/src/recipes/catalog/websockets.recipe.d.ts +0 -1
  369. package/dist/src/recipes/catalog/websockets.recipe.js +0 -1
  370. package/dist/src/recipes/docker/docker.compose.d.ts +0 -1
  371. package/dist/src/recipes/docker/docker.compose.js +0 -1
  372. package/dist/src/recipes/docker/docker.recipe.d.ts +0 -1
  373. package/dist/src/recipes/docker/docker.recipe.js +0 -1
  374. package/dist/src/recipes/docker/docker.refresh.d.ts +0 -1
  375. package/dist/src/recipes/docker/docker.refresh.js +0 -1
  376. package/dist/src/recipes/docker/index.d.ts +0 -1
  377. package/dist/src/recipes/docker/index.js +0 -1
  378. package/dist/src/recipes/index.d.ts +0 -1
  379. package/dist/src/recipes/index.js +0 -1
  380. package/dist/src/recipes/recipe.registry.d.ts +0 -1
  381. package/dist/src/recipes/recipe.registry.js +0 -1
  382. package/dist/src/recipes/recipe.type.d.ts +6 -1
  383. package/dist/src/recipes/recipe.type.js +0 -1
  384. package/dist/src/registries/adapter/frontendAdapterRegistry.core.d.ts +0 -1
  385. package/dist/src/registries/adapter/frontendAdapterRegistry.core.js +0 -1
  386. package/dist/src/registries/adapter/packageManagerRegistry.core.d.ts +0 -1
  387. package/dist/src/registries/adapter/packageManagerRegistry.core.js +0 -1
  388. package/dist/src/registries/dependency/dependencyRegistry.core.d.ts +0 -1
  389. package/dist/src/registries/dependency/dependencyRegistry.core.js +0 -1
  390. package/dist/src/registries/dependency/index.d.ts +0 -1
  391. package/dist/src/registries/dependency/index.js +0 -1
  392. package/dist/src/registries/generator/generatorRegistry.core.d.ts +0 -1
  393. package/dist/src/registries/generator/generatorRegistry.core.js +0 -1
  394. package/dist/src/registries/generator/index.d.ts +0 -1
  395. package/dist/src/registries/generator/index.js +0 -1
  396. package/dist/src/registries/index.d.ts +0 -1
  397. package/dist/src/registries/index.js +0 -1
  398. package/dist/src/resolvers/architecture.resolver.d.ts +0 -1
  399. package/dist/src/resolvers/architecture.resolver.js +13 -3
  400. package/dist/src/resolvers/capability/capabilityResolver.core.d.ts +0 -1
  401. package/dist/src/resolvers/capability/capabilityResolver.core.js +0 -1
  402. package/dist/src/resolvers/capability/index.d.ts +0 -1
  403. package/dist/src/resolvers/capability/index.js +0 -1
  404. package/dist/src/resolvers/configuration/configurationResolver.core.d.ts +0 -1
  405. package/dist/src/resolvers/configuration/configurationResolver.core.js +0 -1
  406. package/dist/src/resolvers/configuration/index.d.ts +0 -1
  407. package/dist/src/resolvers/configuration/index.js +0 -1
  408. package/dist/src/resolvers/dependency/dependencyResolver.core.d.ts +0 -1
  409. package/dist/src/resolvers/dependency/dependencyResolver.core.js +0 -1
  410. package/dist/src/resolvers/dependency/dependencyVersions.constant.d.ts +0 -1
  411. package/dist/src/resolvers/dependency/dependencyVersions.constant.js +0 -1
  412. package/dist/src/resolvers/dependency/index.d.ts +0 -1
  413. package/dist/src/resolvers/dependency/index.js +0 -1
  414. package/dist/src/resolvers/index.d.ts +0 -1
  415. package/dist/src/resolvers/index.js +0 -1
  416. package/dist/src/resolvers/layout/index.d.ts +0 -1
  417. package/dist/src/resolvers/layout/index.js +0 -1
  418. package/dist/src/resolvers/layout/projectLayout.core.d.ts +0 -1
  419. package/dist/src/resolvers/layout/projectLayout.core.js +0 -1
  420. package/dist/src/resolvers/project.resolver.d.ts +0 -1
  421. package/dist/src/resolvers/project.resolver.js +0 -1
  422. package/dist/src/rollback/index.d.ts +0 -1
  423. package/dist/src/rollback/index.js +0 -1
  424. package/dist/src/rollback/rollbackManager.core.d.ts +0 -1
  425. package/dist/src/rollback/rollbackManager.core.js +0 -1
  426. package/dist/src/runners/package-manager/index.d.ts +0 -1
  427. package/dist/src/runners/package-manager/index.js +0 -1
  428. package/dist/src/runners/package-manager/packageManagerRunner.core.d.ts +0 -1
  429. package/dist/src/runners/package-manager/packageManagerRunner.core.js +0 -1
  430. package/dist/src/runners/process/index.d.ts +0 -1
  431. package/dist/src/runners/process/index.js +0 -1
  432. package/dist/src/runners/process/processRunner.core.d.ts +0 -1
  433. package/dist/src/runners/process/processRunner.core.js +0 -1
  434. package/dist/src/runners/task/index.d.ts +0 -1
  435. package/dist/src/runners/task/index.js +0 -1
  436. package/dist/src/runners/task/taskRunner.core.d.ts +0 -1
  437. package/dist/src/runners/task/taskRunner.core.js +0 -1
  438. package/dist/src/scaffolders/framework.scaffolder.d.ts +0 -1
  439. package/dist/src/scaffolders/framework.scaffolder.js +0 -1
  440. package/dist/src/scaffolders/index.d.ts +0 -1
  441. package/dist/src/scaffolders/index.js +0 -1
  442. package/dist/src/scaffolders/scaffolder.helper.d.ts +0 -1
  443. package/dist/src/scaffolders/scaffolder.helper.js +0 -1
  444. package/dist/src/templates/backendApp/backendApp.core.d.ts +0 -1
  445. package/dist/src/templates/backendApp/backendApp.core.js +0 -1
  446. package/dist/src/templates/backendApp/backendApp.modules.d.ts +0 -1
  447. package/dist/src/templates/backendApp/backendApp.modules.js +0 -1
  448. package/dist/src/templates/backendApp/backendApp.project.d.ts +19 -3
  449. package/dist/src/templates/backendApp/backendApp.project.js +41 -3
  450. package/dist/src/templates/backendApp/index.d.ts +0 -1
  451. package/dist/src/templates/backendApp/index.js +0 -1
  452. package/dist/src/templates/backendApp/parts/config.template.d.ts +0 -1
  453. package/dist/src/templates/backendApp/parts/config.template.js +13 -6
  454. package/dist/src/templates/backendApp/parts/httpUtils.template.d.ts +2 -2
  455. package/dist/src/templates/backendApp/parts/httpUtils.template.js +20 -6
  456. package/dist/src/templates/backendApp/parts/index.d.ts +0 -1
  457. package/dist/src/templates/backendApp/parts/index.js +0 -1
  458. package/dist/src/templates/backendApp/parts/integrations.template.d.ts +0 -1
  459. package/dist/src/templates/backendApp/parts/integrations.template.js +0 -1
  460. package/dist/src/templates/backendApp/parts/wiring.template.d.ts +3 -2
  461. package/dist/src/templates/backendApp/parts/wiring.template.js +13 -3
  462. package/dist/src/templates/microservice/index.d.ts +0 -1
  463. package/dist/src/templates/microservice/index.js +0 -1
  464. package/dist/src/templates/microservice/microservice.template.d.ts +0 -1
  465. package/dist/src/templates/microservice/microservice.template.js +6 -27
  466. package/dist/src/templates/modular-monolith/index.d.ts +0 -1
  467. package/dist/src/templates/modular-monolith/index.js +0 -1
  468. package/dist/src/templates/modular-monolith/modularMonolith.template.d.ts +0 -1
  469. package/dist/src/templates/modular-monolith/modularMonolith.template.js +3 -10
  470. package/dist/src/templates/monolith/index.d.ts +0 -1
  471. package/dist/src/templates/monolith/index.js +0 -1
  472. package/dist/src/templates/monolith/monolith.template.d.ts +0 -1
  473. package/dist/src/templates/monolith/monolith.template.js +3 -11
  474. package/dist/src/templates/resource/index.d.ts +0 -1
  475. package/dist/src/templates/resource/index.js +0 -1
  476. package/dist/src/templates/resource/layers/index.d.ts +4 -4
  477. package/dist/src/templates/resource/layers/index.js +4 -4
  478. package/dist/src/templates/resource/layers/resourceData.template.d.ts +8 -4
  479. package/dist/src/templates/resource/layers/resourceData.template.js +30 -72
  480. package/dist/src/templates/resource/layers/resourceHttp/index.d.ts +6 -0
  481. package/dist/src/templates/resource/layers/resourceHttp/index.js +6 -0
  482. package/dist/src/templates/resource/layers/resourceHttp/resourceController.template.d.ts +10 -0
  483. package/dist/src/templates/resource/layers/resourceHttp/resourceController.template.js +55 -0
  484. package/dist/src/templates/resource/layers/resourceHttp/resourceRoutes.template.d.ts +6 -0
  485. package/dist/src/templates/resource/layers/resourceHttp/resourceRoutes.template.js +77 -0
  486. package/dist/src/templates/resource/layers/resourceHttp/resourceTest.template.d.ts +11 -0
  487. package/dist/src/templates/resource/layers/resourceHttp/resourceTest.template.js +84 -0
  488. package/dist/src/templates/resource/layers/resourceMemory.template.d.ts +6 -0
  489. package/dist/src/templates/resource/layers/resourceMemory.template.js +87 -0
  490. package/dist/src/templates/resource/layers/resourcePrisma.template.d.ts +0 -1
  491. package/dist/src/templates/resource/layers/resourcePrisma.template.js +10 -9
  492. package/dist/src/templates/resource/layers/resourceService.template.d.ts +1 -8
  493. package/dist/src/templates/resource/layers/resourceService.template.js +9 -54
  494. package/dist/src/templates/resource/resource.files.d.ts +0 -1
  495. package/dist/src/templates/resource/resource.files.js +7 -6
  496. package/dist/src/templates/resource/resource.names.d.ts +0 -1
  497. package/dist/src/templates/resource/resource.names.js +0 -1
  498. package/dist/src/templates/resource/resource.type.d.ts +0 -1
  499. package/dist/src/templates/resource/resource.type.js +0 -1
  500. package/dist/src/templates/shared/appRuntime.template.d.ts +0 -1
  501. package/dist/src/templates/shared/appRuntime.template.js +6 -5
  502. package/dist/src/templates/shared/capability.template.d.ts +0 -1
  503. package/dist/src/templates/shared/capability.template.js +0 -1
  504. package/dist/src/templates/shared/dockerfile/dockerfile.install.d.ts +0 -1
  505. package/dist/src/templates/shared/dockerfile/dockerfile.install.js +0 -1
  506. package/dist/src/templates/shared/dockerfile/dockerfile.template.d.ts +0 -1
  507. package/dist/src/templates/shared/dockerfile/dockerfile.template.js +15 -5
  508. package/dist/src/templates/shared/dockerfile/index.d.ts +0 -1
  509. package/dist/src/templates/shared/dockerfile/index.js +0 -1
  510. package/dist/src/templates/shared/index.d.ts +1 -1
  511. package/dist/src/templates/shared/index.js +1 -1
  512. package/dist/src/templates/shared/pnpm.template.d.ts +0 -1
  513. package/dist/src/templates/shared/pnpm.template.js +0 -1
  514. package/dist/src/templates/shared/server.parts.d.ts +28 -0
  515. package/dist/src/templates/shared/server.parts.js +59 -0
  516. package/dist/src/templates/shared/server.template.d.ts +17 -23
  517. package/dist/src/templates/shared/server.template.js +42 -69
  518. package/dist/src/types/index.d.ts +0 -1
  519. package/dist/src/types/index.js +0 -1
  520. package/dist/src/types/projectConfiguration.type.d.ts +0 -1
  521. package/dist/src/types/projectConfiguration.type.js +0 -1
  522. package/dist/src/types/scaffold.type.d.ts +0 -1
  523. package/dist/src/types/scaffold.type.js +0 -1
  524. package/dist/src/utils/index.d.ts +0 -1
  525. package/dist/src/utils/index.js +0 -1
  526. package/dist/src/utils/utils.detect.d.ts +0 -1
  527. package/dist/src/utils/utils.detect.js +0 -1
  528. package/dist/src/utils/utils.exec.d.ts +0 -1
  529. package/dist/src/utils/utils.exec.js +0 -1
  530. package/dist/src/utils/utils.fileSystem.d.ts +0 -1
  531. package/dist/src/utils/utils.fileSystem.js +0 -1
  532. package/dist/src/utils/utils.name.d.ts +0 -1
  533. package/dist/src/utils/utils.name.js +0 -1
  534. package/dist/src/utils/utils.writeGuard.d.ts +0 -1
  535. package/dist/src/utils/utils.writeGuard.js +0 -1
  536. package/dist/src/validators/compatibility/compatibilityValidator.core.d.ts +0 -1
  537. package/dist/src/validators/compatibility/compatibilityValidator.core.js +0 -1
  538. package/dist/src/validators/compatibility/index.d.ts +0 -1
  539. package/dist/src/validators/compatibility/index.js +0 -1
  540. package/dist/src/validators/environment/environmentValidator.core.d.ts +0 -1
  541. package/dist/src/validators/environment/environmentValidator.core.js +0 -1
  542. package/dist/src/validators/environment/index.d.ts +0 -1
  543. package/dist/src/validators/environment/index.js +0 -1
  544. package/dist/src/validators/index.d.ts +0 -1
  545. package/dist/src/validators/index.js +0 -1
  546. package/dist/src/validators/project/index.d.ts +0 -1
  547. package/dist/src/validators/project/index.js +0 -1
  548. package/dist/src/validators/project/projectValidator.core.d.ts +0 -1
  549. package/dist/src/validators/project/projectValidator.core.js +0 -1
  550. package/dist/src/wiring/index.d.ts +0 -1
  551. package/dist/src/wiring/index.js +0 -1
  552. package/dist/src/wiring/wiring.dependencies.d.ts +0 -1
  553. package/dist/src/wiring/wiring.dependencies.js +0 -1
  554. package/dist/src/wiring/wiring.edits.d.ts +0 -1
  555. package/dist/src/wiring/wiring.edits.js +0 -1
  556. package/dist/src/wiring/wiring.markers.d.ts +7 -5
  557. package/dist/src/wiring/wiring.markers.js +8 -7
  558. package/package.json +6 -6
  559. package/dist/src/generators/controller/controller.generator.d.ts +0 -11
  560. package/dist/src/generators/controller/controller.generator.js +0 -47
  561. package/dist/src/generators/dto/dto.generator.d.ts +0 -12
  562. package/dist/src/generators/dto/dto.generator.js +0 -27
  563. package/dist/src/generators/dto/index.d.ts +0 -5
  564. package/dist/src/generators/dto/index.js +0 -5
  565. package/dist/src/generators/repository/repository.generator.d.ts +0 -10
  566. package/dist/src/generators/repository/repository.generator.js +0 -80
  567. package/dist/src/generators/route/index.d.ts +0 -5
  568. package/dist/src/generators/route/index.js +0 -5
  569. package/dist/src/generators/route/route.generator.d.ts +0 -12
  570. package/dist/src/generators/route/route.generator.js +0 -31
  571. package/dist/src/templates/resource/layers/resourceRoutes.template.d.ts +0 -13
  572. package/dist/src/templates/resource/layers/resourceRoutes.template.js +0 -129
@@ -1,39 +1,29 @@
1
1
  /**
2
2
  * zudojs-cli — Generated `src/server.ts`
3
3
  *
4
- * The entry point loads the configuration, builds a router with
5
- * `createRouter()`, registers every route through `registerRoutes` (from
6
- * the composition root in `container.ts`), mounts the OpenAPI document and
7
- * `/docs` page when the `openapi` capability is on, and serves the router
8
- * with `createHttpServer` + `createNodeHttpAdapter`.
4
+ * The entry point loads the configuration, builds the runtime with
5
+ * `createApp()`, constructs the composition root (`container.ts`) and
6
+ * registers it in the runtime's DI container, builds a router with
7
+ * `createRouter()`, registers every route through `registerRoutes`, mounts
8
+ * the OpenAPI document (and, outside production, the `/docs` page) when the
9
+ * `openapi` capability is on, and serves the router with `createHttpServer`
10
+ * + `createNodeHttpAdapter`.
9
11
  *
10
12
  * Every response passes through the @zudojs/security default headers, a
11
13
  * CORS policy that allows only `CORS_ORIGINS` (none by default) and a
12
- * per-client rate limit (`RATE_LIMIT_MAX` per `RATE_LIMIT_WINDOW_MS`). Exposed
13
- * 4xx errors are answered with their status; anything else is a generic
14
- * 500. On SIGINT/SIGTERM integrations drain, HTTP stops, then the runtime
15
- * stops. `tests/generatedProject.typecheck.test.ts` type-checks the output
16
- * against the current `@zudojs/*` sources.
17
- *
18
- * The signal listeners stay registered (`process.on`, not `once`) for the
19
- * whole shutdown. Under `tsx watch`, Ctrl+C delivers SIGINT twice (from the
20
- * terminal and forwarded by the watcher); with `once` the second signal
21
- * found no listener and Node's default action killed the process before
22
- * the runtime had stopped or logged anything. "Listening on" is logged once
23
- * the listeners are in place, so a signal sent after it is always handled.
14
+ * per-client rate limit (`RATE_LIMIT_MAX` per `RATE_LIMIT_WINDOW_MS`; 0
15
+ * turns it off). Exposed errors are answered with their status; anything
16
+ * else is logged with the runtime's logger and answered with a generic 500
17
+ * built inside the pipeline, so it carries the security headers too. It
18
+ * used to rethrow, which left the adapter to answer a bare 500 that nothing
19
+ * logged. On SIGINT/SIGTERM integrations drain, HTTP stops, then the
20
+ * runtime stops (see `server.parts.ts`).
21
+ * `tests/generatedProject.typecheck.test.ts` type-checks the output against
22
+ * the current `@zudojs/*` sources; `tests/cli.round12.server.test.ts` runs it.
24
23
  */
25
24
  import { MARKERS, renderMarkerBlock } from "../../wiring/index.js";
26
- /** Emits a string as a TypeScript string literal that cannot break out. */
27
- function literal(value) {
28
- return JSON.stringify(value);
29
- }
30
- /** The lines `zudojs add openapi` (or `create`) puts in server.ts. */
31
- export function openApiServerLines(title) {
32
- return {
33
- importLine: `import { mountOpenAPI } from "@zudojs/http";`,
34
- mountLine: `mountOpenAPI(router, { info: { title: ${literal(title)}, version: "0.1.0" } });`,
35
- };
36
- }
25
+ import { openApiServerLines, renderShutdownBlock } from "./server.parts.js";
26
+ export { openApiServerLines } from "./server.parts.js";
37
27
  /** Renders `src/server.ts`. */
38
28
  export function renderServerFile(options) {
39
29
  const openapi = openApiServerLines(options.title);
@@ -54,27 +44,30 @@ ${renderMarkerBlock(MARKERS.serverImports, options.openapi ? [openapi.importLine
54
44
 
55
45
  import { createApp } from "./app.js";
56
46
  import { loadConfig } from "./configs/index.js";
57
- import { createDependencies } from "./container.js";
47
+ import { APP_DEPENDENCIES, createDependencies } from "./container.js";
58
48
  import { checkIntegrations, drainIntegrations, integrations } from "./integrations/index.js";
59
49
  import { registerRoutes } from "./routes/index.js";
60
- import { errorResponse, securityHeaders } from "./utils/http.js";
50
+ import { errorDetails, errorResponse, json, securityHeaders } from "./utils/http.js";
61
51
 
62
52
  const config = await loadConfig();
63
53
  const httpServer = createServer();
64
54
  const runtime = createApp({ config, httpServer });
55
+ const logger = runtime.context.logger;
56
+
57
+ const dependencies = createDependencies({
58
+ health: async () => {
59
+ const checks = await checkIntegrations(integrations);
60
+ const ready =
61
+ runtime.state === "running" && Object.values(checks).every((check) => check === "up");
62
+ return { ready, checks };
63
+ },
64
+ });
65
+ // Modules reach the composition root through the runtime container:
66
+ // context.application.container.resolve(APP_DEPENDENCIES).
67
+ runtime.context.container.registerValue(APP_DEPENDENCIES, dependencies);
65
68
 
66
69
  const router = createRouter();
67
- registerRoutes(
68
- router,
69
- createDependencies({
70
- health: async () => {
71
- const checks = await checkIntegrations(integrations);
72
- const ready =
73
- runtime.state === "running" && Object.values(checks).every((check) => check === "up");
74
- return { ready, checks };
75
- },
76
- }),
77
- );
70
+ registerRoutes(router, dependencies);
78
71
  ${renderMarkerBlock(MARKERS.serverMounts, options.openapi ? [openapi.mountLine] : [])}
79
72
 
80
73
  const dispatch: HttpMiddleware = async (context) => {
@@ -82,8 +75,9 @@ const dispatch: HttpMiddleware = async (context) => {
82
75
  return (await router.dispatch(context.request, { signal: context.signal })).response;
83
76
  } catch (error) {
84
77
  const response = errorResponse(error);
85
- if (response === undefined) throw error;
86
- return response;
78
+ if (response !== undefined && response.status < 500) return response;
79
+ logger.error(\`Unhandled error: \${context.request.method} \${context.request.path}\`, errorDetails(error));
80
+ return response ?? json(500, { error: "Internal Server Error" });
87
81
  }
88
82
  };
89
83
 
@@ -91,7 +85,10 @@ const pipeline = new HttpMiddlewarePipeline({
91
85
  middlewares: [
92
86
  securityHeaders(),
93
87
  createCorsMiddleware({ allowOrigin: config.corsOrigins }),
94
- createRateLimitMiddleware({ windowMs: config.rateLimit.windowMs, max: config.rateLimit.max }),
88
+ // RATE_LIMIT_MAX=0 turns the limit off (load tests, local development).
89
+ ...(config.rateLimit.max > 0
90
+ ? [createRateLimitMiddleware({ windowMs: config.rateLimit.windowMs, max: config.rateLimit.max })]
91
+ : []),
95
92
  ${renderMarkerBlock(MARKERS.serverMiddleware, [], " ")}
96
93
  dispatch,
97
94
  ],
@@ -106,29 +103,5 @@ const server = createHttpServer({
106
103
 
107
104
  await server.start();
108
105
 
109
- let stopping = false;
110
- for (const signal of ["SIGINT", "SIGTERM"] as const) {
111
- process.on(signal, () => {
112
- if (stopping) {
113
- console.log(\`Received \${signal} again: already shutting down.\`);
114
- return;
115
- }
116
- stopping = true;
117
- console.log(\`Received \${signal}: shutting down.\`);
118
- void drainIntegrations(integrations)
119
- .then(() => server.stop())
120
- .then(() => runtime.stop())
121
- .then(() => {
122
- process.exit(0);
123
- })
124
- .catch((error: unknown) => {
125
- console.error(error);
126
- process.exit(1);
127
- });
128
- });
129
- }
130
-
131
- console.log(\`Listening on http://\${config.host}:\${server.address?.port ?? config.port}\`);
132
- `;
106
+ ${renderShutdownBlock()}`;
133
107
  }
134
- //# sourceMappingURL=server.template.js.map
@@ -5,4 +5,3 @@
5
5
  */
6
6
  export type { ProjectType, BackendArchitecture, FrontendFramework, FrontendArchitecture, PackageManagerType, DatabaseProvider, ApiStyle, ProjectConfiguration, } from "./projectConfiguration.type.js";
7
7
  export type { ArchitectureType, PackageManager, DatabaseEngine, ScaffoldOptions, ProjectTemplate, GenerateOptions, } from "./scaffold.type.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Type definitions for the Zudojs CLI scaffolding system.
5
5
  */
6
6
  export {};
7
- //# sourceMappingURL=index.js.map
@@ -52,4 +52,3 @@ export interface ProjectConfiguration {
52
52
  };
53
53
  readonly features?: readonly string[];
54
54
  }
55
- //# sourceMappingURL=projectConfiguration.type.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * @module types/projectConfiguration
5
5
  */
6
6
  export {};
7
- //# sourceMappingURL=projectConfiguration.type.js.map
@@ -68,4 +68,3 @@ export interface GenerateOptions {
68
68
  * Converts ScaffoldOptions to ProjectConfiguration for runtime use.
69
69
  */
70
70
  export declare function toProjectConfiguration(options: ScaffoldOptions): ProjectConfiguration;
71
- //# sourceMappingURL=scaffold.type.d.ts.map
@@ -30,4 +30,3 @@ export function toProjectConfiguration(options) {
30
30
  features: resolveProjectCapabilities(options),
31
31
  };
32
32
  }
33
- //# sourceMappingURL=scaffold.type.js.map
@@ -8,4 +8,3 @@ export { normalizeName, toPascalCase, toCamelCase } from "./utils.name.js";
8
8
  export { detectArchitecture } from "./utils.detect.js";
9
9
  export { execCommand, runStreaming } from "./utils.exec.js";
10
10
  export { activeWriteCapture, captureWrites, findWriteConflicts, } from "./utils.writeGuard.js";
11
- //# sourceMappingURL=index.d.ts.map
@@ -8,4 +8,3 @@ export { normalizeName, toPascalCase, toCamelCase } from "./utils.name.js";
8
8
  export { detectArchitecture } from "./utils.detect.js";
9
9
  export { execCommand, runStreaming } from "./utils.exec.js";
10
10
  export { activeWriteCapture, captureWrites, findWriteConflicts, } from "./utils.writeGuard.js";
11
- //# sourceMappingURL=index.js.map
@@ -8,4 +8,3 @@
8
8
  * the `zudojs` block in `package.json`.
9
9
  */
10
10
  export declare function detectArchitecture(cwd: string): Promise<string | null>;
11
- //# sourceMappingURL=utils.detect.d.ts.map
@@ -11,4 +11,3 @@ import { resolveProjectLayout } from "../resolvers/layout/projectLayout.core.js"
11
11
  export async function detectArchitecture(cwd) {
12
12
  return resolveProjectLayout(cwd)?.architecture ?? null;
13
13
  }
14
- //# sourceMappingURL=utils.detect.js.map
@@ -59,4 +59,3 @@ export declare function execCommand(file: string, args: readonly string[], cwd:
59
59
  * rather than rejects, since stopping it was the caller's intent.
60
60
  */
61
61
  export declare function runStreaming(file: string, args: readonly string[], cwd: string, options?: ExecOptions): Promise<void>;
62
- //# sourceMappingURL=utils.exec.d.ts.map
@@ -150,4 +150,3 @@ export function runStreaming(file, args, cwd, options = {}) {
150
150
  });
151
151
  });
152
152
  }
153
- //# sourceMappingURL=utils.exec.js.map
@@ -6,4 +6,3 @@ export declare function writeFileTree(basePath: string, files: Readonly<Record<s
6
6
  * existing content is returned unchanged.
7
7
  */
8
8
  export declare function mergeBarrelExport(basePath: string, indexPath: string, exportLine: string): string;
9
- //# sourceMappingURL=utils.fileSystem.d.ts.map
@@ -87,4 +87,3 @@ export function mergeBarrelExport(basePath, indexPath, exportLine) {
87
87
  const separator = existing.length > 0 && !existing.endsWith("\n") ? "\n" : "";
88
88
  return existing + separator + line + "\n";
89
89
  }
90
- //# sourceMappingURL=utils.fileSystem.js.map
@@ -34,4 +34,3 @@ export declare function assertGeneratableName(name: string, kind?: string): stri
34
34
  * outside its base path.
35
35
  */
36
36
  export declare function assertSafePathSegment(value: string, kind?: string): string;
37
- //# sourceMappingURL=utils.name.d.ts.map
@@ -87,4 +87,3 @@ export function assertSafePathSegment(value, kind = "value") {
87
87
  }
88
88
  return value;
89
89
  }
90
- //# sourceMappingURL=utils.name.js.map
@@ -27,4 +27,3 @@ export declare function captureWrites(run: () => Promise<unknown>): Promise<Read
27
27
  * by appending (paths relative to `cwd`).
28
28
  */
29
29
  export declare function findWriteConflicts(cwd: string, files: ReadonlyMap<string, string>): string[];
30
- //# sourceMappingURL=utils.writeGuard.d.ts.map
@@ -66,4 +66,3 @@ export function findWriteConflicts(cwd, files) {
66
66
  }
67
67
  return conflicts;
68
68
  }
69
- //# sourceMappingURL=utils.writeGuard.js.map
@@ -17,4 +17,3 @@ export declare class CompatibilityValidator {
17
17
  private readonly incompatibilities;
18
18
  validate(options: Record<string, string>): CompatibilityResult;
19
19
  }
20
- //# sourceMappingURL=compatibilityValidator.core.d.ts.map
@@ -86,4 +86,3 @@ export class CompatibilityValidator {
86
86
  return { valid, checks };
87
87
  }
88
88
  }
89
- //# sourceMappingURL=compatibilityValidator.core.js.map
@@ -4,4 +4,3 @@
4
4
  * Validates compatibility between selected options.
5
5
  */
6
6
  export { CompatibilityValidator, type CompatibilityCheck, type CompatibilityResult, } from "./compatibilityValidator.core.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * Validates compatibility between selected options.
5
5
  */
6
6
  export { CompatibilityValidator, } from "./compatibilityValidator.core.js";
7
- //# sourceMappingURL=index.js.map
@@ -42,4 +42,3 @@ export declare class EnvironmentValidator {
42
42
  private checkPackageManager;
43
43
  private checkBinary;
44
44
  }
45
- //# sourceMappingURL=environmentValidator.core.d.ts.map
@@ -82,4 +82,3 @@ export class EnvironmentValidator {
82
82
  }
83
83
  }
84
84
  }
85
- //# sourceMappingURL=environmentValidator.core.js.map
@@ -5,4 +5,3 @@
5
5
  */
6
6
  export type { EnvironmentCheck, EnvironmentValidationResult, } from "./environmentValidator.core.js";
7
7
  export { EnvironmentValidator } from "./environmentValidator.core.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * @module validators/environment
5
5
  */
6
6
  export { EnvironmentValidator } from "./environmentValidator.core.js";
7
- //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@
6
6
  export { EnvironmentValidator, type EnvironmentCheck, type EnvironmentValidationResult, } from "./environment/index.js";
7
7
  export { ProjectValidator, type ProjectCheck, type ProjectValidationResult, } from "./project/index.js";
8
8
  export { CompatibilityValidator, type CompatibilityCheck, type CompatibilityResult, } from "./compatibility/index.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,3 @@
6
6
  export { EnvironmentValidator, } from "./environment/index.js";
7
7
  export { ProjectValidator, } from "./project/index.js";
8
8
  export { CompatibilityValidator, } from "./compatibility/index.js";
9
- //# sourceMappingURL=index.js.map
@@ -5,4 +5,3 @@
5
5
  */
6
6
  export type { ProjectCheck, ProjectValidationResult, ProjectValidationOptions, } from "./projectValidator.core.js";
7
7
  export { ProjectValidator } from "./projectValidator.core.js";
8
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * @module validators/project
5
5
  */
6
6
  export { ProjectValidator } from "./projectValidator.core.js";
7
- //# sourceMappingURL=index.js.map
@@ -31,4 +31,3 @@ export declare class ProjectValidator {
31
31
  private checkSourceFiles;
32
32
  private checkTypeScript;
33
33
  }
34
- //# sourceMappingURL=projectValidator.core.d.ts.map
@@ -125,4 +125,3 @@ export class ProjectValidator {
125
125
  }
126
126
  }
127
127
  }
128
- //# sourceMappingURL=projectValidator.core.js.map
@@ -7,4 +7,3 @@
7
7
  export * from "./wiring.markers.js";
8
8
  export * from "./wiring.edits.js";
9
9
  export * from "./wiring.dependencies.js";
10
- //# sourceMappingURL=index.d.ts.map
@@ -7,4 +7,3 @@
7
7
  export * from "./wiring.markers.js";
8
8
  export * from "./wiring.edits.js";
9
9
  export * from "./wiring.dependencies.js";
10
- //# sourceMappingURL=index.js.map
@@ -26,4 +26,3 @@ export declare function ensureZudojsDependencies(root: string, files: readonly s
26
26
  export declare function describeAddedDependencies(edits: readonly AddedDependencies[]): string[];
27
27
  /** "1 file" / "3 files". */
28
28
  export declare function fileCount(count: number): string;
29
- //# sourceMappingURL=wiring.dependencies.d.ts.map
@@ -80,4 +80,3 @@ export function describeAddedDependencies(edits) {
80
80
  export function fileCount(count) {
81
81
  return `${count} ${count === 1 ? "file" : "files"}`;
82
82
  }
83
- //# sourceMappingURL=wiring.dependencies.js.map
@@ -48,4 +48,3 @@ export declare function applyMarkerEdits(cwd: string, edits: readonly MarkerEdit
48
48
  * app stopped compiling on the duplicate identifier.
49
49
  */
50
50
  export declare function conflictingImport(cwd: string, file: string, importLine: string): string | undefined;
51
- //# sourceMappingURL=wiring.edits.d.ts.map
@@ -87,4 +87,3 @@ export function conflictingImport(cwd, file, importLine) {
87
87
  .split("\n")
88
88
  .find((line) => line.trim() !== importLine && binds.test(line.trim()));
89
89
  }
90
- //# sourceMappingURL=wiring.edits.js.map
@@ -42,12 +42,14 @@ export interface MarkerInsertResult {
42
42
  }
43
43
  /**
44
44
  * Inserts `line` just before the end marker of `name`, indented like the
45
- * marker. Idempotent: a line already present between the markers (compared
46
- * trimmed) is not added again. Exactly one start and one end marker, in
47
- * that order, are required; anything else is reported as missing markers
48
- * rather than guessed at.
45
+ * marker. Idempotent: a line already present anywhere in the file (compared
46
+ * trimmed) is not added again — a registration the user moved out of the
47
+ * marker block is still a registration, and re-inserting it between the
48
+ * markers (`generate resource --force` used to) made the file fail to
49
+ * compile on the duplicate. Exactly one start and one end marker, in that
50
+ * order, are required; anything else is reported as missing markers rather
51
+ * than guessed at.
49
52
  */
50
53
  export declare function insertBetweenMarkers(source: string, name: MarkerName, line: string): MarkerInsertResult;
51
54
  /** The lines currently between the markers of `name`, trimmed. */
52
55
  export declare function linesBetweenMarkers(source: string, name: MarkerName): readonly string[];
53
- //# sourceMappingURL=wiring.markers.d.ts.map
@@ -40,10 +40,13 @@ export function renderMarkerBlock(name, lines, indent = "") {
40
40
  }
41
41
  /**
42
42
  * Inserts `line` just before the end marker of `name`, indented like the
43
- * marker. Idempotent: a line already present between the markers (compared
44
- * trimmed) is not added again. Exactly one start and one end marker, in
45
- * that order, are required; anything else is reported as missing markers
46
- * rather than guessed at.
43
+ * marker. Idempotent: a line already present anywhere in the file (compared
44
+ * trimmed) is not added again — a registration the user moved out of the
45
+ * marker block is still a registration, and re-inserting it between the
46
+ * markers (`generate resource --force` used to) made the file fail to
47
+ * compile on the duplicate. Exactly one start and one end marker, in that
48
+ * order, are required; anything else is reported as missing markers rather
49
+ * than guessed at.
47
50
  */
48
51
  export function insertBetweenMarkers(source, name, line) {
49
52
  const start = markerStart(name);
@@ -57,9 +60,8 @@ export function insertBetweenMarkers(source, name, line) {
57
60
  source.indexOf(end, endAt + 1) !== -1) {
58
61
  return { status: "missing-markers", source };
59
62
  }
60
- const between = source.slice(startAt + start.length, endAt);
61
63
  const wanted = line.trim();
62
- if (between.split("\n").some((existing) => existing.trim() === wanted)) {
64
+ if (source.split("\n").some((existing) => existing.trim() === wanted)) {
63
65
  return { status: "present", source };
64
66
  }
65
67
  const lineStart = source.lastIndexOf("\n", endAt) + 1;
@@ -84,4 +86,3 @@ export function linesBetweenMarkers(source, name) {
84
86
  .map((line) => line.trim())
85
87
  .filter((line) => line.length > 0);
86
88
  }
87
- //# sourceMappingURL=wiring.markers.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zudojs-cli",
3
- "version": "2.1.3",
3
+ "version": "2.2.0",
4
4
  "description": "Command-line interface for scaffolding, generating, and managing Zudojs framework projects.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -32,14 +32,14 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@clack/prompts": "^1.8.1",
35
- "@zudojs/config": "1.3.3",
36
- "@zudojs/core": "1.2.4",
37
- "@zudojs/errors": "1.3.2",
38
- "@zudojs/logger": "1.4.3"
35
+ "@zudojs/config": "1.3.4",
36
+ "@zudojs/core": "1.3.0",
37
+ "@zudojs/errors": "1.4.0",
38
+ "@zudojs/logger": "1.5.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^26.6.2",
42
- "@zudojs/constants": "1.1.4",
42
+ "@zudojs/constants": "1.2.0",
43
43
  "tsx": "^4.23.15",
44
44
  "typescript": "7.0.2",
45
45
  "vitest": "^5.0.1"
@@ -1,11 +0,0 @@
1
- /**
2
- * zudojs-cli — Controller Generator
3
- */
4
- export interface GenerateControllerOptions {
5
- readonly name: string;
6
- readonly service?: string;
7
- readonly basePath?: string;
8
- readonly dryRun?: boolean;
9
- }
10
- export declare function generateController(options: GenerateControllerOptions, cwd: string): Promise<string[]>;
11
- //# sourceMappingURL=controller.generator.d.ts.map
@@ -1,47 +0,0 @@
1
- /**
2
- * zudojs-cli — Controller Generator
3
- */
4
- import { writeFileTree, mergeBarrelExport, } from "../../utils/utils.fileSystem.js";
5
- import { CLIGenerationError } from "../../errors/index.js";
6
- import { normalizeName, toPascalCase } from "../../utils/utils.name.js";
7
- export async function generateController(options, cwd) {
8
- const name = normalizeName(options.name);
9
- const nameCamel = toPascalCase(options.name);
10
- const basePath = options.basePath ?? "";
11
- const prefix = basePath ? `${basePath}/` : "";
12
- const indexPath = `${prefix}controllers/index.ts`;
13
- const files = {
14
- [`${prefix}controllers/${name}.controller.ts`]: `import { createLogger } from "@zudojs/logger";
15
-
16
- export class ${nameCamel}Controller {
17
- private readonly logger = createLogger({ name: "${name}-controller" });
18
-
19
- async handle(request: Request): Promise<Response> {
20
- this.logger.info("${name} request received", { method: request.method, url: request.url });
21
-
22
- try {
23
- const body = request.method !== "GET" ? await request.json() : null;
24
-
25
- return Response.json({ ok: true, data: body ?? {} }, { status: 200 });
26
- } catch (error) {
27
- this.logger.error("Failed to handle ${name} request", { error });
28
- return Response.json({ ok: false, error: "Internal server error" }, { status: 500 });
29
- }
30
- }
31
- }
32
- `,
33
- // Merge with any existing barrel content instead of overwriting it.
34
- [indexPath]: mergeBarrelExport(cwd, indexPath, `export { ${nameCamel}Controller } from "./${name}.controller.js";`),
35
- };
36
- if (options.dryRun) {
37
- return Object.keys(files);
38
- }
39
- try {
40
- await writeFileTree(cwd, files);
41
- return Object.keys(files);
42
- }
43
- catch (error) {
44
- throw new CLIGenerationError(`Failed to generate controller: ${name}`, error);
45
- }
46
- }
47
- //# sourceMappingURL=controller.generator.js.map
@@ -1,12 +0,0 @@
1
- /**
2
- * zudojs-cli — DTO Generator
3
- *
4
- * Generates DTO files.
5
- */
6
- export interface GenerateDtoOptions {
7
- readonly name: string;
8
- readonly basePath: string;
9
- readonly dryRun?: boolean;
10
- }
11
- export declare function generateDto(options: GenerateDtoOptions, cwd: string): Promise<string[]>;
12
- //# sourceMappingURL=dto.generator.d.ts.map
@@ -1,27 +0,0 @@
1
- /**
2
- * zudojs-cli — DTO Generator
3
- *
4
- * Generates DTO files.
5
- */
6
- import { writeFileTree } from "../../utils/utils.fileSystem.js";
7
- import { normalizeName, toPascalCase } from "../../utils/utils.name.js";
8
- export async function generateDto(options, cwd) {
9
- const name = normalizeName(options.name);
10
- const namePascal = toPascalCase(options.name);
11
- const files = {
12
- [`${options.basePath}/dtos/${name}.dto.ts`]: `/**
13
- * ${name} DTO.
14
- */
15
-
16
- export interface Create${namePascal}Dto {
17
- readonly name: string;
18
- }
19
- `,
20
- };
21
- if (options.dryRun) {
22
- return Object.keys(files);
23
- }
24
- await writeFileTree(cwd, files);
25
- return Object.keys(files);
26
- }
27
- //# sourceMappingURL=dto.generator.js.map
@@ -1,5 +0,0 @@
1
- /**
2
- * zudojs-cli — DTO Generator
3
- */
4
- export { generateDto, type GenerateDtoOptions } from "./dto.generator.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1,5 +0,0 @@
1
- /**
2
- * zudojs-cli — DTO Generator
3
- */
4
- export { generateDto } from "./dto.generator.js";
5
- //# sourceMappingURL=index.js.map
@@ -1,10 +0,0 @@
1
- /**
2
- * zudojs-cli — Repository Generator
3
- */
4
- export interface GenerateRepositoryOptions {
5
- readonly name: string;
6
- readonly basePath?: string;
7
- readonly dryRun?: boolean;
8
- }
9
- export declare function generateRepository(options: GenerateRepositoryOptions, cwd: string): Promise<string[]>;
10
- //# sourceMappingURL=repository.generator.d.ts.map