zudojs-cli 2.1.2 → 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 +30 -10
  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 +2 -2
  229. package/dist/src/generators/middleware/index.js +2 -2
  230. package/dist/src/generators/middleware/middleware.generator.d.ts +28 -2
  231. package/dist/src/generators/middleware/middleware.generator.js +60 -16
  232. package/dist/src/generators/middleware/middleware.template.d.ts +20 -0
  233. package/dist/src/generators/middleware/middleware.template.js +34 -0
  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 -16
  517. package/dist/src/templates/shared/server.template.js +42 -57
  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
@@ -18,8 +18,12 @@ export function baseEnvVariables(port) {
18
18
  value: "",
19
19
  comment: "Comma-separated origins allowed to call the API from a browser (empty: none)",
20
20
  },
21
- { name: "RATE_LIMIT_WINDOW_MS", value: "60000", comment: "Requests allowed per client per window" },
22
- { name: "RATE_LIMIT_MAX", value: "300" },
21
+ { name: "RATE_LIMIT_WINDOW_MS", value: "60000", comment: "Length of the rate-limit window in milliseconds" },
22
+ {
23
+ name: "RATE_LIMIT_MAX",
24
+ value: "1000",
25
+ comment: "Requests allowed per client per window; 0 disables the limit (load tests, local development)",
26
+ },
23
27
  ];
24
28
  }
25
29
  /** Renders `.env.example` lines for `variables`. */
@@ -34,12 +38,13 @@ export function renderEnvVariables(variables) {
34
38
  * placed between the config markers.
35
39
  */
36
40
  export function renderConfigFile(options) {
37
- return `import { ConfigurationError } from "@zudojs/errors";
38
- import {
41
+ return `import {
39
42
  createConfigManager,
40
43
  createEnvironmentConfigSource,
41
44
  type ConfigManager,
42
45
  } from "@zudojs/config";
46
+ import { resolveEnvironment } from "@zudojs/constants";
47
+ import { ConfigurationError } from "@zudojs/errors";
43
48
 
44
49
  const DEFAULT_PORT = ${options.defaultPort};
45
50
 
@@ -99,7 +104,10 @@ export async function loadConfig(env: NodeJS.ProcessEnv = process.env) {
99
104
  await config.load();
100
105
 
101
106
  return Object.freeze({
102
- nodeEnv: text(config, "node_env", "development"),
107
+ // NODE_ENV is read here, once, the way the framework reads it: \`prod\`
108
+ // and \`Production\` are production, an unknown value warns once. app.ts
109
+ // and server.ts take the resolved value from this object.
110
+ nodeEnv: resolveEnvironment({ NODE_ENV: text(config, "node_env", "development") }),
103
111
  host: text(config, "host", "0.0.0.0"),
104
112
  port: port(config),
105
113
  corsOrigins: list(config, "cors_origins"),
@@ -115,4 +123,3 @@ ${renderMarkerBlock(MARKERS.config, options.sections, " ")}
115
123
  export type AppConfig = Awaited<ReturnType<typeof loadConfig>>;
116
124
  `;
117
125
  }
118
- //# sourceMappingURL=config.template.js.map
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * The small helpers every generated controller and the server use: JSON
5
5
  * responses, schema-issue responses, JSON body reading, mapping exposed
6
- * 4xx errors to responses, and the @zudojs/security default headers.
6
+ * errors to responses, describing unexpected ones for the log, and the
7
+ * @zudojs/security default headers.
7
8
  */
8
9
  /** Renders `src/utils/http.ts`. */
9
10
  export declare function renderHttpUtils(): string;
10
- //# sourceMappingURL=httpUtils.template.d.ts.map
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * The small helpers every generated controller and the server use: JSON
5
5
  * responses, schema-issue responses, JSON body reading, mapping exposed
6
- * 4xx errors to responses, and the @zudojs/security default headers.
6
+ * errors to responses, describing unexpected ones for the log, and the
7
+ * @zudojs/security default headers.
7
8
  */
8
9
  /** Renders `src/utils/http.ts`. */
9
10
  export function renderHttpUtils() {
@@ -61,9 +62,10 @@ export function readJsonBody(ctx: HttpRouterContext): unknown {
61
62
  }
62
63
 
63
64
  /**
64
- * The response for an error that carries an exposed 4xx status
65
- * (NotFoundError, badRequest(), ...). Anything else is left to the server,
66
- * which answers a generic 500 and never leaks the message.
65
+ * The response for an error that carries an exposed HTTP status
66
+ * (NotFoundError, badRequest(), an exposed 503, ...): its status, message
67
+ * and code. \`undefined\` for anything else; server.ts then logs the error
68
+ * and answers a generic 500 that never leaks the message.
67
69
  */
68
70
  export function errorResponse(error: unknown): HttpResponseContext | undefined {
69
71
  if (typeof error !== "object" || error === null) return undefined;
@@ -74,7 +76,7 @@ export function errorResponse(error: unknown): HttpResponseContext | undefined {
74
76
  readonly code?: unknown;
75
77
  };
76
78
  const status = candidate.statusCode;
77
- if (typeof status !== "number" || status < 400 || status > 499) return undefined;
79
+ if (typeof status !== "number" || status < 400 || status > 599) return undefined;
78
80
  if (candidate.expose !== true || typeof candidate.message !== "string") return undefined;
79
81
  return json(status, {
80
82
  error: candidate.message,
@@ -82,6 +84,19 @@ export function errorResponse(error: unknown): HttpResponseContext | undefined {
82
84
  });
83
85
  }
84
86
 
87
+ /** What the log records about an unexpected error: name, message, code, stack. */
88
+ export function errorDetails(error: unknown): Record<string, string> {
89
+ if (!(error instanceof Error)) return { error: String(error) };
90
+ const { code } = error as { readonly code?: unknown };
91
+ return {
92
+ error: error.message,
93
+ name: error.name,
94
+ ...(typeof code === "string" ? { code } : {}),
95
+ ...(error.stack === undefined ? {} : { stack: error.stack }),
96
+ ...(error.cause === undefined ? {} : { cause: error.cause instanceof Error ? error.cause.message : String(error.cause) }),
97
+ };
98
+ }
99
+
85
100
  /**
86
101
  * Adds the @zudojs/security default headers (CSP, HSTS, nosniff,
87
102
  * X-Frame-Options DENY, ...) to every response that does not set its own:
@@ -100,4 +115,3 @@ export function securityHeaders(): HttpMiddleware {
100
115
  }
101
116
  `;
102
117
  }
103
- //# sourceMappingURL=httpUtils.template.js.map
@@ -6,4 +6,3 @@ export * from "./config.template.js";
6
6
  export * from "./httpUtils.template.js";
7
7
  export * from "./integrations.template.js";
8
8
  export * from "./wiring.template.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,3 @@ export * from "./config.template.js";
6
6
  export * from "./httpUtils.template.js";
7
7
  export * from "./integrations.template.js";
8
8
  export * from "./wiring.template.js";
9
- //# sourceMappingURL=index.js.map
@@ -13,4 +13,3 @@ import type { MarkerLines } from "./wiring.template.js";
13
13
  export declare function renderIntegrationsIndex(lines: MarkerLines): string;
14
14
  /** Renders `src/integrations/integration.ts`. */
15
15
  export declare function renderIntegrationContract(): string;
16
- //# sourceMappingURL=integrations.template.d.ts.map
@@ -112,4 +112,3 @@ export async function checkIntegrations(
112
112
  }
113
113
  `;
114
114
  }
115
- //# sourceMappingURL=integrations.template.js.map
@@ -5,7 +5,9 @@
5
5
  * plus every resource (and module) between the `routes` markers.
6
6
  * - `src/modules/<name>/routes/index.ts` does the same for one module.
7
7
  * - `src/container.ts` constructs every controller, service and repository
8
- * in one place, between the `container` markers.
8
+ * in one place, between the `container` markers, and exports the
9
+ * `APP_DEPENDENCIES` token under which server.ts registers the result in
10
+ * the runtime's DI container.
9
11
  */
10
12
  /** Lines a template pre-fills between a pair of markers. */
11
13
  export interface MarkerLines {
@@ -23,4 +25,3 @@ export declare function renderModuleRoutesIndex(functionName: string, containerF
23
25
  export declare function renderHealthRoutes(): string;
24
26
  /** Renders `src/container.ts`. */
25
27
  export declare function renderContainer(lines: MarkerLines): string;
26
- //# sourceMappingURL=wiring.template.d.ts.map
@@ -5,7 +5,9 @@
5
5
  * plus every resource (and module) between the `routes` markers.
6
6
  * - `src/modules/<name>/routes/index.ts` does the same for one module.
7
7
  * - `src/container.ts` constructs every controller, service and repository
8
- * in one place, between the `container` markers.
8
+ * in one place, between the `container` markers, and exports the
9
+ * `APP_DEPENDENCIES` token under which server.ts registers the result in
10
+ * the runtime's DI container.
9
11
  */
10
12
  import { MARKERS, renderMarkerBlock } from "../../../wiring/index.js";
11
13
  /** Renders `src/routes/index.ts`. */
@@ -80,9 +82,18 @@ export function registerHealthRoutes(router: HttpRouter, check: HealthCheck): vo
80
82
  }
81
83
  /** Renders `src/container.ts`. */
82
84
  export function renderContainer(lines) {
83
- return `import type { HealthCheck } from "./routes/health.routes.js";
85
+ return `import { createToken } from "@zudojs/container";
86
+
87
+ import type { HealthCheck } from "./routes/health.routes.js";
84
88
  ${renderMarkerBlock(MARKERS.containerImports, lines.imports)}
85
89
 
90
+ /**
91
+ * The token server.ts registers the composition root under in the runtime
92
+ * container, so a module can reach it:
93
+ * \`context.application.container.resolve(APP_DEPENDENCIES)\`.
94
+ */
95
+ export const APP_DEPENDENCIES = createToken<AppDependencies>("app.dependencies");
96
+
86
97
  /** Options for {@link createDependencies}. */
87
98
  export interface DependencyOptions {
88
99
  /** Readiness for /health; server.ts passes the runtime's. */
@@ -108,4 +119,3 @@ ${renderMarkerBlock(MARKERS.container, lines.entries, " ")}
108
119
  export type AppDependencies = ReturnType<typeof createDependencies>;
109
120
  `;
110
121
  }
111
- //# sourceMappingURL=wiring.template.js.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Microservice Template Index
3
3
  */
4
4
  export { generateMicroserviceFiles, resolveMicroserviceServices, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Microservice Template Index
3
3
  */
4
4
  export { generateMicroserviceFiles, resolveMicroserviceServices, RESERVED_MICROSERVICE_APP_NAMES, } from "./microservice.template.js";
5
- //# sourceMappingURL=index.js.map
@@ -44,4 +44,3 @@ export declare const RESERVED_MICROSERVICE_APP_NAMES: readonly ["gateway"];
44
44
  */
45
45
  export declare function resolveMicroserviceServices(requested: readonly string[]): readonly string[];
46
46
  export declare function generateMicroserviceFiles(options: ScaffoldOptions): Record<string, string>;
47
- //# sourceMappingURL=microservice.template.d.ts.map
@@ -26,7 +26,7 @@ import { zudojsDependencies } from "../../constants/index.js";
26
26
  import { normalizeName } from "../../utils/utils.name.js";
27
27
  import { RUNTIME_APP_DEPENDENCIES, capabilityPackages, moduleSpec, renderAppPackageDockerfile, renderModuleFile, renderPnpmWorkspaceFile, resolveProjectCapabilities, } from "../shared/index.js";
28
28
  import { DEPENDENCY_VERSION_RANGES, TYPESCRIPT_VERSION_RANGES, } from "../../resolvers/dependency/dependencyVersions.constant.js";
29
- import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendDevDependencies, emptyBarrels, renderBackendAppSource, } from "../backendApp/index.js";
29
+ import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendAppScripts, backendDevDependencies, backendTsconfigFiles, emptyBarrels, renderBackendAppSource, } from "../backendApp/index.js";
30
30
  /**
31
31
  * The gateway app is always generated at `apps/gateway`, so "gateway" is a
32
32
  * reserved name: a service called `gateway` would produce a second, competing
@@ -205,33 +205,13 @@ MIT
205
205
  // app there, so nothing would compile a file placed in it. Every app owns
206
206
  // its own `src/types/`, and code genuinely shared between apps belongs in a
207
207
  // workspace package the author creates deliberately.
208
- const appTsconfig = `{
209
- "compilerOptions": {
210
- "target": "ES2024",
211
- "module": "Node16",
212
- "moduleResolution": "Node16",
213
- "outDir": "dist",
214
- "rootDir": "src",
215
- "strict": true,
216
- "skipLibCheck": true,
217
- "esModuleInterop": true,
218
- "lib": ["ES2024"],
219
- "types": ["node"]
220
- },
221
- "include": ["src/**/*"]
222
- }
223
- `;
208
+ /** tsconfig.json and tsconfig.test.json of one app, under `appDir`. */
209
+ const appTsconfigs = (appDir) => Object.fromEntries(Object.entries(backendTsconfigFiles()).map(([name, content]) => [`${appDir}/${name}`, content]));
224
210
  const appDevDeps = {
225
211
  ...backendDevDependencies(),
226
212
  ...zudojsDependencies(APP_TEST_DEPENDENCIES),
227
213
  };
228
- const appScripts = {
229
- dev: "tsx watch src/server.ts",
230
- start: "node dist/server.js",
231
- build: "tsc",
232
- typecheck: "tsc --noEmit",
233
- test: "vitest run",
234
- };
214
+ const appScripts = backendAppScripts();
235
215
  /** The wired source tree of one app, plus its folder barrels. */
236
216
  const appSource = (appName, port) => {
237
217
  const spec = moduleSpec(appName, "./modules/index.js");
@@ -273,7 +253,7 @@ MIT
273
253
  dependencies: zudojsDependencies(gatewayDeps),
274
254
  devDependencies: appDevDeps,
275
255
  }, null, 2) + "\n";
276
- files["apps/gateway/tsconfig.json"] = appTsconfig;
256
+ Object.assign(files, appTsconfigs("apps/gateway"));
277
257
  files["apps/gateway/Dockerfile"] = renderAppPackageDockerfile({
278
258
  appPath: "apps/gateway",
279
259
  port: 3000,
@@ -301,7 +281,7 @@ MIT
301
281
  dependencies: zudojsDependencies(serviceDeps),
302
282
  devDependencies: appDevDeps,
303
283
  }, null, 2) + "\n";
304
- files[`apps/services/${svcName}/tsconfig.json`] = appTsconfig;
284
+ Object.assign(files, appTsconfigs(`apps/services/${svcName}`));
305
285
  files[`apps/services/${svcName}/Dockerfile`] = renderAppPackageDockerfile({
306
286
  appPath: `apps/services/${svcName}`,
307
287
  port,
@@ -313,4 +293,3 @@ MIT
313
293
  }
314
294
  return files;
315
295
  }
316
- //# sourceMappingURL=microservice.template.js.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Modular Monolith Template Index
3
3
  */
4
4
  export { generateModularMonolithFiles } from "./modularMonolith.template.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Modular Monolith Template Index
3
3
  */
4
4
  export { generateModularMonolithFiles } from "./modularMonolith.template.js";
5
- //# sourceMappingURL=index.js.map
@@ -33,4 +33,3 @@
33
33
  */
34
34
  import type { ScaffoldOptions } from "../../types/index.js";
35
35
  export declare function generateModularMonolithFiles(options: ScaffoldOptions): Record<string, string>;
36
- //# sourceMappingURL=modularMonolith.template.d.ts.map
@@ -35,7 +35,7 @@ import { renderDatabaseEnv } from "../../adapters/databases/databaseAdapter.reso
35
35
  import { zudojsDependencies } from "../../constants/index.js";
36
36
  import { normalizeName } from "../../utils/utils.name.js";
37
37
  import { RUNTIME_APP_DEPENDENCIES, capabilityPackages, moduleSpec, renderModuleFile, renderPnpmWorkspaceFile, resolveProjectCapabilities, } from "../shared/index.js";
38
- import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendDevDependencies, backendTsconfig, emptyBarrels, renderBackendAppSource, runCommand, } from "../backendApp/index.js";
38
+ import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendAppScripts, backendDevDependencies, backendTsconfigFiles, emptyBarrels, renderBackendAppSource, runCommand, } from "../backendApp/index.js";
39
39
  export function generateModularMonolithFiles(options) {
40
40
  const nameSlug = options.projectName
41
41
  .replace(/[^a-z0-9-]+/gi, "-")
@@ -77,20 +77,14 @@ export function generateModularMonolithFiles(options) {
77
77
  architecture: "modular-monolith",
78
78
  features: capabilities,
79
79
  },
80
- scripts: {
81
- dev: "tsx watch src/server.ts",
82
- start: "node dist/server.js",
83
- build: "tsc",
84
- typecheck: "tsc --noEmit",
85
- test: "vitest run",
86
- },
80
+ scripts: backendAppScripts(),
87
81
  dependencies: zudojsDependencies(deps),
88
82
  devDependencies: {
89
83
  ...backendDevDependencies(),
90
84
  ...zudojsDependencies(APP_TEST_DEPENDENCIES),
91
85
  },
92
86
  }, null, 2) + "\n";
93
- files["tsconfig.json"] = backendTsconfig();
87
+ Object.assign(files, backendTsconfigFiles());
94
88
  if (options.packageManager === "pnpm") {
95
89
  files["pnpm-workspace.yaml"] = renderPnpmWorkspaceFile();
96
90
  }
@@ -159,4 +153,3 @@ MIT
159
153
  }
160
154
  return files;
161
155
  }
162
- //# sourceMappingURL=modularMonolith.template.js.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Monolith Template Index
3
3
  */
4
4
  export { generateMonolithFiles } from "./monolith.template.js";
5
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * zudojs-cli — Monolith Template Index
3
3
  */
4
4
  export { generateMonolithFiles } from "./monolith.template.js";
5
- //# sourceMappingURL=index.js.map
@@ -24,4 +24,3 @@
24
24
  */
25
25
  import type { ScaffoldOptions } from "../../types/index.js";
26
26
  export declare function generateMonolithFiles(options: ScaffoldOptions): Record<string, string>;
27
- //# sourceMappingURL=monolith.template.d.ts.map
@@ -26,7 +26,7 @@ import { renderDatabaseEnv } from "../../adapters/databases/databaseAdapter.reso
26
26
  import { zudojsDependencies } from "../../constants/index.js";
27
27
  import { normalizeName, toPascalCase } from "../../utils/utils.name.js";
28
28
  import { RUNTIME_APP_DEPENDENCIES, capabilityPackages, moduleSpec, renderModuleFile, renderServiceFile, renderPnpmWorkspaceFile, resolveProjectCapabilities, } from "../shared/index.js";
29
- import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendDevDependencies, backendTsconfig, emptyBarrels, runCommand, renderBackendAppSource, } from "../backendApp/index.js";
29
+ import { APP_SOURCE_DEPENDENCIES, APP_TEST_DEPENDENCIES, applyDatabaseSetting, backendAppScripts, backendDevDependencies, backendTsconfigFiles, emptyBarrels, runCommand, renderBackendAppSource, } from "../backendApp/index.js";
30
30
  export function generateMonolithFiles(options) {
31
31
  const name = options.projectName;
32
32
  const nameSlug = name.replace(/[^a-z0-9-]+/gi, "-").toLowerCase();
@@ -56,21 +56,14 @@ export function generateMonolithFiles(options) {
56
56
  architecture: "monolith",
57
57
  features: capabilities,
58
58
  },
59
- scripts: {
60
- dev: "tsx watch src/server.ts",
61
- start: "node dist/server.js",
62
- build: "tsc",
63
- typecheck: "tsc --noEmit",
64
- test: "vitest run",
65
- lint: "tsc --noEmit",
66
- },
59
+ scripts: backendAppScripts(),
67
60
  dependencies: zudojsDependencies(deps),
68
61
  devDependencies: {
69
62
  ...backendDevDependencies(),
70
63
  ...zudojsDependencies(APP_TEST_DEPENDENCIES),
71
64
  },
72
65
  }, null, 2) + "\n";
73
- files["tsconfig.json"] = backendTsconfig();
66
+ Object.assign(files, backendTsconfigFiles());
74
67
  if (options.packageManager === "pnpm") {
75
68
  files["pnpm-workspace.yaml"] = renderPnpmWorkspaceFile();
76
69
  }
@@ -148,4 +141,3 @@ MIT
148
141
  `export { ${serviceClassName} } from "./${moduleName}.service.js";\n`;
149
142
  return files;
150
143
  }
151
- //# sourceMappingURL=monolith.template.js.map
@@ -6,4 +6,3 @@ export * from "./resource.names.js";
6
6
  export * from "./resource.type.js";
7
7
  export * from "./resource.files.js";
8
8
  export * from "./layers/index.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,3 @@ export * from "./resource.names.js";
6
6
  export * from "./resource.type.js";
7
7
  export * from "./resource.files.js";
8
8
  export * from "./layers/index.js";
9
- //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * zudojs-cli — Resource layer templates: DTO, repositories, service,
3
- * controller, routes and test.
2
+ * zudojs-cli — Resource layer templates: DTO, repositories (in-memory and
3
+ * Prisma), service, and the HTTP layers (controller, routes, test).
4
4
  */
5
5
  export * from "./resourceData.template.js";
6
+ export * from "./resourceMemory.template.js";
6
7
  export * from "./resourcePrisma.template.js";
7
8
  export * from "./resourceService.template.js";
8
- export * from "./resourceRoutes.template.js";
9
- //# sourceMappingURL=index.d.ts.map
9
+ export * from "./resourceHttp/index.js";
@@ -1,9 +1,9 @@
1
1
  /**
2
- * zudojs-cli — Resource layer templates: DTO, repositories, service,
3
- * controller, routes and test.
2
+ * zudojs-cli — Resource layer templates: DTO, repositories (in-memory and
3
+ * Prisma), service, and the HTTP layers (controller, routes, test).
4
4
  */
5
5
  export * from "./resourceData.template.js";
6
+ export * from "./resourceMemory.template.js";
6
7
  export * from "./resourcePrisma.template.js";
7
8
  export * from "./resourceService.template.js";
8
- export * from "./resourceRoutes.template.js";
9
- //# sourceMappingURL=index.js.map
9
+ export * from "./resourceHttp/index.js";
@@ -1,9 +1,13 @@
1
1
  /**
2
- * zudojs-cli — A resource's DTO schemas and in-memory repository.
2
+ * zudojs-cli — A resource's DTO schemas: record, create/update bodies, path
3
+ * parameters, and the list query and page shape.
4
+ *
5
+ * List endpoints paginate with a cursor: `?limit=` (1–MAX_PAGE_SIZE,
6
+ * default DEFAULT_PAGE_SIZE) and `?cursor=<id of the last item seen>`. A
7
+ * page answers `{ items, nextCursor }`, `nextCursor` being `null` on the
8
+ * last page. They used to return every record at once — up to 10,000 from
9
+ * the in-memory store.
3
10
  */
4
11
  import { type ResourceNames } from "../resource.names.js";
5
12
  /** `dtos/<slug>.dto.ts`: @zudojs/schema schemas and their inferred types. */
6
13
  export declare function renderResourceDto(n: ResourceNames): string;
7
- /** `repositories/<slug>.repository.ts`: the contract and a memory store. */
8
- export declare function renderResourceRepository(n: ResourceNames): string;
9
- //# sourceMappingURL=resourceData.template.d.ts.map
@@ -1,5 +1,12 @@
1
1
  /**
2
- * zudojs-cli — A resource's DTO schemas and in-memory repository.
2
+ * zudojs-cli — A resource's DTO schemas: record, create/update bodies, path
3
+ * parameters, and the list query and page shape.
4
+ *
5
+ * List endpoints paginate with a cursor: `?limit=` (1–MAX_PAGE_SIZE,
6
+ * default DEFAULT_PAGE_SIZE) and `?cursor=<id of the last item seen>`. A
7
+ * page answers `{ items, nextCursor }`, `nextCursor` being `null` on the
8
+ * last page. They used to return every record at once — up to 10,000 from
9
+ * the in-memory store.
3
10
  */
4
11
  import { withArticle } from "../resource.names.js";
5
12
  /** `dtos/<slug>.dto.ts`: @zudojs/schema schemas and their inferred types. */
@@ -29,81 +36,32 @@ export const ${n.entity}ParamsSchema = schema.object({
29
36
  id: schema.string().uuid(),
30
37
  });
31
38
 
32
- export type ${n.entity} = Infer<typeof ${n.entity}Schema>;
33
- export type Create${n.entity}Input = Infer<typeof Create${n.entity}Schema>;
34
- export type Update${n.entity}Input = Infer<typeof Update${n.entity}Schema>;
35
- `;
36
- }
37
- /** `repositories/<slug>.repository.ts`: the contract and a memory store. */
38
- export function renderResourceRepository(n) {
39
- const types = `Create${n.entity}Input, ${n.entity}, Update${n.entity}Input`;
40
- return `import { randomUUID } from "node:crypto";
39
+ /** Page size when \`limit\` is not given, and the most a client may ask for. */
40
+ export const DEFAULT_PAGE_SIZE = 50;
41
+ export const MAX_PAGE_SIZE = 200;
41
42
 
42
- import { ConflictError } from "@zudojs/errors";
43
+ /** Query of \`GET ${n.routePath}\`: page size and the id to continue after. */
44
+ export const List${n.pascal}QuerySchema = schema.object({
45
+ limit: schema.coerce.number().int().min(1).max(MAX_PAGE_SIZE).optional(),
46
+ cursor: schema.string().uuid().optional(),
47
+ });
43
48
 
44
- import type { ${types} } from "../dtos/${n.slug}.dto.js";
49
+ /** One page of ${n.label} records; \`nextCursor\` is null on the last page. */
50
+ export const ${n.entity}PageSchema = schema.object({
51
+ items: schema.array(${n.entity}Schema),
52
+ nextCursor: schema.nullable(schema.string().uuid()),
53
+ });
45
54
 
46
- /** Storage contract for ${n.label} records; the service depends on this only. */
47
- export interface ${n.pascal}Repository {
48
- findAll(): Promise<readonly ${n.entity}[]>;
49
- findById(id: string): Promise<${n.entity} | undefined>;
50
- create(input: Create${n.entity}Input): Promise<${n.entity}>;
51
- update(id: string, input: Update${n.entity}Input): Promise<${n.entity} | undefined>;
52
- delete(id: string): Promise<boolean>;
55
+ /** What a repository is asked for: a page size and where to continue. */
56
+ export interface ${n.entity}PageRequest {
57
+ readonly limit: number;
58
+ readonly cursor?: string;
53
59
  }
54
60
 
55
- /** Most records the in-memory store keeps, so it cannot exhaust memory. */
56
- const MAX_RECORDS = 10_000;
57
-
58
- /**
59
- * Keeps ${n.label} records in process memory: for development and tests.
60
- * Data is lost on restart. Swap the implementation in container.ts.
61
- */
62
- export class InMemory${n.pascal}Repository implements ${n.pascal}Repository {
63
- private readonly records = new Map<string, ${n.entity}>();
64
-
65
- public async findAll(): Promise<readonly ${n.entity}[]> {
66
- return [...this.records.values()];
67
- }
68
-
69
- public async findById(id: string): Promise<${n.entity} | undefined> {
70
- return this.records.get(id);
71
- }
72
-
73
- public async create(input: Create${n.entity}Input): Promise<${n.entity}> {
74
- if (this.records.size >= MAX_RECORDS) {
75
- throw new ConflictError("The in-memory ${n.label} store is full.");
76
- }
77
- const now = new Date().toISOString();
78
- const record: ${n.entity} = {
79
- id: randomUUID(),
80
- name: input.name,
81
- createdAt: now,
82
- updatedAt: now,
83
- };
84
- this.records.set(record.id, record);
85
- return record;
86
- }
87
-
88
- public async update(
89
- id: string,
90
- input: Update${n.entity}Input,
91
- ): Promise<${n.entity} | undefined> {
92
- const existing = this.records.get(id);
93
- if (existing === undefined) return undefined;
94
- const updated: ${n.entity} = {
95
- ...existing,
96
- name: input.name ?? existing.name,
97
- updatedAt: new Date().toISOString(),
98
- };
99
- this.records.set(id, updated);
100
- return updated;
101
- }
102
-
103
- public async delete(id: string): Promise<boolean> {
104
- return this.records.delete(id);
105
- }
106
- }
61
+ export type ${n.entity} = Infer<typeof ${n.entity}Schema>;
62
+ export type Create${n.entity}Input = Infer<typeof Create${n.entity}Schema>;
63
+ export type Update${n.entity}Input = Infer<typeof Update${n.entity}Schema>;
64
+ export type List${n.pascal}Query = Infer<typeof List${n.pascal}QuerySchema>;
65
+ export type ${n.entity}Page = Infer<typeof ${n.entity}PageSchema>;
107
66
  `;
108
67
  }
109
- //# sourceMappingURL=resourceData.template.js.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * zudojs-cli — HTTP layers of a resource: controller, routes and test.
3
+ */
4
+ export * from "./resourceController.template.js";
5
+ export * from "./resourceRoutes.template.js";
6
+ export * from "./resourceTest.template.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * zudojs-cli — HTTP layers of a resource: controller, routes and test.
3
+ */
4
+ export * from "./resourceController.template.js";
5
+ export * from "./resourceRoutes.template.js";
6
+ export * from "./resourceTest.template.js";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * zudojs-cli — A resource's controller.
3
+ */
4
+ import type { ResourceNames } from "../../resource.names.js";
5
+ /**
6
+ * `controllers/<slug>.controller.ts`: validates input with the DTO schemas
7
+ * and maps service results to responses. Handlers are arrow properties so
8
+ * they can be passed to the router unbound.
9
+ */
10
+ export declare function renderResourceController(n: ResourceNames, appSrcFromControllers: string): string;