@zintrust/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/bin/z.d.ts +7 -0
  2. package/bin/z.d.ts.map +1 -0
  3. package/bin/z.js +6 -0
  4. package/bin/zin.d.ts +7 -0
  5. package/bin/zin.d.ts.map +1 -0
  6. package/bin/zin.js +6 -0
  7. package/bin/zintrust-microservices.d.ts +7 -0
  8. package/bin/zintrust-microservices.d.ts.map +1 -0
  9. package/bin/zintrust-microservices.js +165 -0
  10. package/bin/zintrust.d.ts +9 -0
  11. package/bin/zintrust.d.ts.map +1 -0
  12. package/bin/zintrust.js +51 -0
  13. package/bin/zt.d.ts +7 -0
  14. package/bin/zt.d.ts.map +1 -0
  15. package/bin/zt.js +6 -0
  16. package/package.json +80 -0
  17. package/src/boot/Application.d.ts +31 -0
  18. package/src/boot/Application.d.ts.map +1 -0
  19. package/src/boot/Application.js +159 -0
  20. package/src/boot/Server.d.ts +23 -0
  21. package/src/boot/Server.d.ts.map +1 -0
  22. package/src/boot/Server.js +236 -0
  23. package/src/boot/bootstrap.d.ts +7 -0
  24. package/src/boot/bootstrap.d.ts.map +1 -0
  25. package/src/boot/bootstrap.js +64 -0
  26. package/src/builder/BundleOptimizer.d.ts +42 -0
  27. package/src/builder/BundleOptimizer.d.ts.map +1 -0
  28. package/src/builder/BundleOptimizer.js +356 -0
  29. package/src/cache/Cache.d.ts +26 -0
  30. package/src/cache/Cache.d.ts.map +1 -0
  31. package/src/cache/Cache.js +89 -0
  32. package/src/cache/CacheDriver.d.ts +28 -0
  33. package/src/cache/CacheDriver.d.ts.map +1 -0
  34. package/src/cache/CacheDriver.js +6 -0
  35. package/src/cache/drivers/KVDriver.d.ts +12 -0
  36. package/src/cache/drivers/KVDriver.d.ts.map +1 -0
  37. package/src/cache/drivers/KVDriver.js +54 -0
  38. package/src/cache/drivers/MemoryDriver.d.ts +12 -0
  39. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -0
  40. package/src/cache/drivers/MemoryDriver.js +50 -0
  41. package/src/cache/drivers/MongoDriver.d.ts +17 -0
  42. package/src/cache/drivers/MongoDriver.d.ts.map +1 -0
  43. package/src/cache/drivers/MongoDriver.js +80 -0
  44. package/src/cache/drivers/RedisDriver.d.ts +12 -0
  45. package/src/cache/drivers/RedisDriver.d.ts.map +1 -0
  46. package/src/cache/drivers/RedisDriver.js +79 -0
  47. package/src/cli/BaseCommand.d.ts +39 -0
  48. package/src/cli/BaseCommand.d.ts.map +1 -0
  49. package/src/cli/BaseCommand.js +58 -0
  50. package/src/cli/CLI.d.ts +21 -0
  51. package/src/cli/CLI.d.ts.map +1 -0
  52. package/src/cli/CLI.js +203 -0
  53. package/src/cli/ErrorHandler.d.ts +23 -0
  54. package/src/cli/ErrorHandler.d.ts.map +1 -0
  55. package/src/cli/ErrorHandler.js +95 -0
  56. package/src/cli/PromptHelper.d.ts +47 -0
  57. package/src/cli/PromptHelper.d.ts.map +1 -0
  58. package/src/cli/PromptHelper.js +155 -0
  59. package/src/cli/commands/AddCommand.d.ts +15 -0
  60. package/src/cli/commands/AddCommand.d.ts.map +1 -0
  61. package/src/cli/commands/AddCommand.js +817 -0
  62. package/src/cli/commands/ConfigCommand.d.ts +15 -0
  63. package/src/cli/commands/ConfigCommand.d.ts.map +1 -0
  64. package/src/cli/commands/ConfigCommand.js +273 -0
  65. package/src/cli/commands/D1MigrateCommand.d.ts +15 -0
  66. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -0
  67. package/src/cli/commands/D1MigrateCommand.js +73 -0
  68. package/src/cli/commands/DebugCommand.d.ts +15 -0
  69. package/src/cli/commands/DebugCommand.d.ts.map +1 -0
  70. package/src/cli/commands/DebugCommand.js +52 -0
  71. package/src/cli/commands/FixCommand.d.ts +15 -0
  72. package/src/cli/commands/FixCommand.d.ts.map +1 -0
  73. package/src/cli/commands/FixCommand.js +80 -0
  74. package/src/cli/commands/KeyGenerateCommand.d.ts +9 -0
  75. package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -0
  76. package/src/cli/commands/KeyGenerateCommand.js +76 -0
  77. package/src/cli/commands/LogsCommand.d.ts +19 -0
  78. package/src/cli/commands/LogsCommand.d.ts.map +1 -0
  79. package/src/cli/commands/LogsCommand.js +185 -0
  80. package/src/cli/commands/MigrateCommand.d.ts +15 -0
  81. package/src/cli/commands/MigrateCommand.d.ts.map +1 -0
  82. package/src/cli/commands/MigrateCommand.js +56 -0
  83. package/src/cli/commands/NewCommand.d.ts +32 -0
  84. package/src/cli/commands/NewCommand.d.ts.map +1 -0
  85. package/src/cli/commands/NewCommand.js +280 -0
  86. package/src/cli/commands/PluginCommand.d.ts +9 -0
  87. package/src/cli/commands/PluginCommand.d.ts.map +1 -0
  88. package/src/cli/commands/PluginCommand.js +94 -0
  89. package/src/cli/commands/PrepareCommand.d.ts +8 -0
  90. package/src/cli/commands/PrepareCommand.d.ts.map +1 -0
  91. package/src/cli/commands/PrepareCommand.js +51 -0
  92. package/src/cli/commands/QACommand.d.ts +33 -0
  93. package/src/cli/commands/QACommand.d.ts.map +1 -0
  94. package/src/cli/commands/QACommand.js +490 -0
  95. package/src/cli/commands/SimulateCommand.d.ts +12 -0
  96. package/src/cli/commands/SimulateCommand.d.ts.map +1 -0
  97. package/src/cli/commands/SimulateCommand.js +79 -0
  98. package/src/cli/commands/StartCommand.d.ts +5 -0
  99. package/src/cli/commands/StartCommand.d.ts.map +1 -0
  100. package/src/cli/commands/StartCommand.js +227 -0
  101. package/src/cli/commands/index.d.ts +11 -0
  102. package/src/cli/commands/index.d.ts.map +1 -0
  103. package/src/cli/commands/index.js +10 -0
  104. package/src/cli/config/ConfigManager.d.ts +42 -0
  105. package/src/cli/config/ConfigManager.d.ts.map +1 -0
  106. package/src/cli/config/ConfigManager.js +175 -0
  107. package/src/cli/config/ConfigSchema.d.ts +195 -0
  108. package/src/cli/config/ConfigSchema.d.ts.map +1 -0
  109. package/src/cli/config/ConfigSchema.js +171 -0
  110. package/src/cli/config/ConfigValidator.d.ts +41 -0
  111. package/src/cli/config/ConfigValidator.d.ts.map +1 -0
  112. package/src/cli/config/ConfigValidator.js +200 -0
  113. package/src/cli/config/index.d.ts +8 -0
  114. package/src/cli/config/index.d.ts.map +1 -0
  115. package/src/cli/config/index.js +7 -0
  116. package/src/cli/debug/Dashboard.d.ts +34 -0
  117. package/src/cli/debug/Dashboard.d.ts.map +1 -0
  118. package/src/cli/debug/Dashboard.js +152 -0
  119. package/src/cli/index.d.ts +14 -0
  120. package/src/cli/index.d.ts.map +1 -0
  121. package/src/cli/index.js +14 -0
  122. package/src/cli/logger/Logger.d.ts +43 -0
  123. package/src/cli/logger/Logger.d.ts.map +1 -0
  124. package/src/cli/logger/Logger.js +137 -0
  125. package/src/cli/scaffolding/ControllerGenerator.d.ts +44 -0
  126. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -0
  127. package/src/cli/scaffolding/ControllerGenerator.js +540 -0
  128. package/src/cli/scaffolding/FactoryGenerator.d.ts +47 -0
  129. package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -0
  130. package/src/cli/scaffolding/FactoryGenerator.js +356 -0
  131. package/src/cli/scaffolding/FeatureScaffolder.d.ts +40 -0
  132. package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +1 -0
  133. package/src/cli/scaffolding/FeatureScaffolder.js +747 -0
  134. package/src/cli/scaffolding/FileGenerator.d.ts +31 -0
  135. package/src/cli/scaffolding/FileGenerator.d.ts.map +1 -0
  136. package/src/cli/scaffolding/FileGenerator.js +222 -0
  137. package/src/cli/scaffolding/MigrationGenerator.d.ts +35 -0
  138. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -0
  139. package/src/cli/scaffolding/MigrationGenerator.js +257 -0
  140. package/src/cli/scaffolding/ModelGenerator.d.ts +81 -0
  141. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -0
  142. package/src/cli/scaffolding/ModelGenerator.js +249 -0
  143. package/src/cli/scaffolding/ProjectScaffolder.d.ts +66 -0
  144. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -0
  145. package/src/cli/scaffolding/ProjectScaffolder.js +439 -0
  146. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +50 -0
  147. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -0
  148. package/src/cli/scaffolding/RequestFactoryGenerator.js +465 -0
  149. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +43 -0
  150. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -0
  151. package/src/cli/scaffolding/ResponseFactoryGenerator.js +321 -0
  152. package/src/cli/scaffolding/RouteGenerator.d.ts +66 -0
  153. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -0
  154. package/src/cli/scaffolding/RouteGenerator.js +306 -0
  155. package/src/cli/scaffolding/SeederGenerator.d.ts +47 -0
  156. package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -0
  157. package/src/cli/scaffolding/SeederGenerator.js +286 -0
  158. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +40 -0
  159. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -0
  160. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +267 -0
  161. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +45 -0
  162. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -0
  163. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +397 -0
  164. package/src/cli/scaffolding/ServiceScaffolder.d.ts +45 -0
  165. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -0
  166. package/src/cli/scaffolding/ServiceScaffolder.js +367 -0
  167. package/src/cli/scaffolding/TemplateEngine.d.ts +35 -0
  168. package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -0
  169. package/src/cli/scaffolding/TemplateEngine.js +379 -0
  170. package/src/cli/scaffolding/WorkflowGenerator.d.ts +31 -0
  171. package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +1 -0
  172. package/src/cli/scaffolding/WorkflowGenerator.js +193 -0
  173. package/src/cli/scaffolding/index.d.ts +34 -0
  174. package/src/cli/scaffolding/index.d.ts.map +1 -0
  175. package/src/cli/scaffolding/index.js +18 -0
  176. package/src/cli/utils/DistPackager.d.ts +8 -0
  177. package/src/cli/utils/DistPackager.d.ts.map +1 -0
  178. package/src/cli/utils/DistPackager.js +94 -0
  179. package/src/cli/utils/EnvFileLoader.d.ts +21 -0
  180. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -0
  181. package/src/cli/utils/EnvFileLoader.js +166 -0
  182. package/src/cli/utils/spawn.d.ts +11 -0
  183. package/src/cli/utils/spawn.d.ts.map +1 -0
  184. package/src/cli/utils/spawn.js +81 -0
  185. package/src/common/index.d.ts +87 -0
  186. package/src/common/index.d.ts.map +1 -0
  187. package/src/common/index.js +207 -0
  188. package/src/config/SecretsManager.d.ts +122 -0
  189. package/src/config/SecretsManager.d.ts.map +1 -0
  190. package/src/config/SecretsManager.js +328 -0
  191. package/src/config/app.d.ts +56 -0
  192. package/src/config/app.d.ts.map +1 -0
  193. package/src/config/app.js +77 -0
  194. package/src/config/cache.d.ts +76 -0
  195. package/src/config/cache.d.ts.map +1 -0
  196. package/src/config/cache.js +62 -0
  197. package/src/config/constants.d.ts +108 -0
  198. package/src/config/constants.d.ts.map +1 -0
  199. package/src/config/constants.js +64 -0
  200. package/src/config/database.d.ts +122 -0
  201. package/src/config/database.d.ts.map +1 -0
  202. package/src/config/database.js +89 -0
  203. package/src/config/env.d.ts +56 -0
  204. package/src/config/env.d.ts.map +1 -0
  205. package/src/config/env.js +133 -0
  206. package/src/config/features.d.ts +27 -0
  207. package/src/config/features.d.ts.map +1 -0
  208. package/src/config/features.js +49 -0
  209. package/src/config/index.d.ts +554 -0
  210. package/src/config/index.d.ts.map +1 -0
  211. package/src/config/index.js +31 -0
  212. package/src/config/logger.d.ts +17 -0
  213. package/src/config/logger.d.ts.map +1 -0
  214. package/src/config/logger.js +77 -0
  215. package/src/config/microservices.d.ts +88 -0
  216. package/src/config/microservices.d.ts.map +1 -0
  217. package/src/config/microservices.js +90 -0
  218. package/src/config/queue.d.ts +107 -0
  219. package/src/config/queue.d.ts.map +1 -0
  220. package/src/config/queue.js +74 -0
  221. package/src/config/security.d.ts +108 -0
  222. package/src/config/security.d.ts.map +1 -0
  223. package/src/config/security.js +134 -0
  224. package/src/config/storage.d.ts +105 -0
  225. package/src/config/storage.d.ts.map +1 -0
  226. package/src/config/storage.js +79 -0
  227. package/src/container/ServiceContainer.d.ts +25 -0
  228. package/src/container/ServiceContainer.d.ts.map +1 -0
  229. package/src/container/ServiceContainer.js +75 -0
  230. package/src/database/migrations/index.d.ts +2 -0
  231. package/src/database/migrations/index.d.ts.map +1 -0
  232. package/src/database/migrations/index.js +1 -0
  233. package/src/exceptions/ZintrustError.d.ts +88 -0
  234. package/src/exceptions/ZintrustError.d.ts.map +1 -0
  235. package/src/exceptions/ZintrustError.js +110 -0
  236. package/src/features/Auth.d.ts +20 -0
  237. package/src/features/Auth.d.ts.map +1 -0
  238. package/src/features/Auth.js +32 -0
  239. package/src/features/Queue.d.ts +21 -0
  240. package/src/features/Queue.d.ts.map +1 -0
  241. package/src/features/Queue.js +59 -0
  242. package/src/functions/cloudflare.d.ts +5 -0
  243. package/src/functions/cloudflare.d.ts.map +1 -0
  244. package/src/functions/cloudflare.js +34 -0
  245. package/src/functions/deno.d.ts +3 -0
  246. package/src/functions/deno.d.ts.map +1 -0
  247. package/src/functions/deno.js +31 -0
  248. package/src/functions/lambda.d.ts +2 -0
  249. package/src/functions/lambda.d.ts.map +1 -0
  250. package/src/functions/lambda.js +32 -0
  251. package/src/http/Controller.d.ts +20 -0
  252. package/src/http/Controller.d.ts.map +1 -0
  253. package/src/http/Controller.js +46 -0
  254. package/src/http/Kernel.d.ts +24 -0
  255. package/src/http/Kernel.d.ts.map +1 -0
  256. package/src/http/Kernel.js +72 -0
  257. package/src/http/Request.d.ts +36 -0
  258. package/src/http/Request.d.ts.map +1 -0
  259. package/src/http/Request.js +142 -0
  260. package/src/http/Response.d.ts +32 -0
  261. package/src/http/Response.d.ts.map +1 -0
  262. package/src/http/Response.js +70 -0
  263. package/src/index.d.ts +43 -0
  264. package/src/index.d.ts.map +1 -0
  265. package/src/index.js +37 -0
  266. package/src/microservices/MicroserviceBootstrap.d.ts +75 -0
  267. package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -0
  268. package/src/microservices/MicroserviceBootstrap.js +285 -0
  269. package/src/microservices/MicroserviceGenerator.d.ts +27 -0
  270. package/src/microservices/MicroserviceGenerator.d.ts.map +1 -0
  271. package/src/microservices/MicroserviceGenerator.js +436 -0
  272. package/src/microservices/MicroserviceManager.d.ts +68 -0
  273. package/src/microservices/MicroserviceManager.d.ts.map +1 -0
  274. package/src/microservices/MicroserviceManager.js +266 -0
  275. package/src/microservices/PostgresAdapter.d.ts +90 -0
  276. package/src/microservices/PostgresAdapter.d.ts.map +1 -0
  277. package/src/microservices/PostgresAdapter.js +286 -0
  278. package/src/microservices/RequestTracingMiddleware.d.ts +41 -0
  279. package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -0
  280. package/src/microservices/RequestTracingMiddleware.js +122 -0
  281. package/src/microservices/ServiceAuthMiddleware.d.ts +58 -0
  282. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -0
  283. package/src/microservices/ServiceAuthMiddleware.js +240 -0
  284. package/src/microservices/ServiceBundler.d.ts +45 -0
  285. package/src/microservices/ServiceBundler.d.ts.map +1 -0
  286. package/src/microservices/ServiceBundler.js +297 -0
  287. package/src/microservices/ServiceHealthMonitor.d.ts +96 -0
  288. package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -0
  289. package/src/microservices/ServiceHealthMonitor.js +379 -0
  290. package/src/middleware/CsrfMiddleware.d.ts +19 -0
  291. package/src/middleware/CsrfMiddleware.d.ts.map +1 -0
  292. package/src/middleware/CsrfMiddleware.js +121 -0
  293. package/src/middleware/MiddlewareStack.d.ts +27 -0
  294. package/src/middleware/MiddlewareStack.d.ts.map +1 -0
  295. package/src/middleware/MiddlewareStack.js +43 -0
  296. package/src/middleware/RateLimiter.d.ts +22 -0
  297. package/src/middleware/RateLimiter.d.ts.map +1 -0
  298. package/src/middleware/RateLimiter.js +72 -0
  299. package/src/middleware/SecurityMiddleware.d.ts +33 -0
  300. package/src/middleware/SecurityMiddleware.d.ts.map +1 -0
  301. package/src/middleware/SecurityMiddleware.js +106 -0
  302. package/src/middleware/index.d.ts +9 -0
  303. package/src/middleware/index.d.ts.map +1 -0
  304. package/src/middleware/index.js +8 -0
  305. package/src/node-singletons/child-process.d.ts +7 -0
  306. package/src/node-singletons/child-process.d.ts.map +1 -0
  307. package/src/node-singletons/child-process.js +6 -0
  308. package/src/node-singletons/crypto.d.ts +7 -0
  309. package/src/node-singletons/crypto.d.ts.map +1 -0
  310. package/src/node-singletons/crypto.js +6 -0
  311. package/src/node-singletons/events.d.ts +7 -0
  312. package/src/node-singletons/events.d.ts.map +1 -0
  313. package/src/node-singletons/events.js +6 -0
  314. package/src/node-singletons/fs.d.ts +12 -0
  315. package/src/node-singletons/fs.d.ts.map +1 -0
  316. package/src/node-singletons/fs.js +14 -0
  317. package/src/node-singletons/http.d.ts +8 -0
  318. package/src/node-singletons/http.d.ts.map +1 -0
  319. package/src/node-singletons/http.js +6 -0
  320. package/src/node-singletons/index.d.ts +30 -0
  321. package/src/node-singletons/index.d.ts.map +1 -0
  322. package/src/node-singletons/index.js +31 -0
  323. package/src/node-singletons/os.d.ts +9 -0
  324. package/src/node-singletons/os.d.ts.map +1 -0
  325. package/src/node-singletons/os.js +9 -0
  326. package/src/node-singletons/path.d.ts +7 -0
  327. package/src/node-singletons/path.d.ts.map +1 -0
  328. package/src/node-singletons/path.js +6 -0
  329. package/src/node-singletons/perf-hooks.d.ts +7 -0
  330. package/src/node-singletons/perf-hooks.d.ts.map +1 -0
  331. package/src/node-singletons/perf-hooks.js +6 -0
  332. package/src/node-singletons/readline.d.ts +10 -0
  333. package/src/node-singletons/readline.d.ts.map +1 -0
  334. package/src/node-singletons/readline.js +9 -0
  335. package/src/node-singletons/url.d.ts +7 -0
  336. package/src/node-singletons/url.d.ts.map +1 -0
  337. package/src/node-singletons/url.js +6 -0
  338. package/src/orm/ConnectionManager.d.ts +118 -0
  339. package/src/orm/ConnectionManager.d.ts.map +1 -0
  340. package/src/orm/ConnectionManager.js +401 -0
  341. package/src/orm/Database.d.ts +31 -0
  342. package/src/orm/Database.d.ts.map +1 -0
  343. package/src/orm/Database.js +163 -0
  344. package/src/orm/DatabaseAdapter.d.ts +96 -0
  345. package/src/orm/DatabaseAdapter.d.ts.map +1 -0
  346. package/src/orm/DatabaseAdapter.js +40 -0
  347. package/src/orm/Model.d.ts +91 -0
  348. package/src/orm/Model.d.ts.map +1 -0
  349. package/src/orm/Model.js +206 -0
  350. package/src/orm/QueryBuilder.d.ts +52 -0
  351. package/src/orm/QueryBuilder.d.ts.map +1 -0
  352. package/src/orm/QueryBuilder.js +134 -0
  353. package/src/orm/Relationships.d.ts +53 -0
  354. package/src/orm/Relationships.d.ts.map +1 -0
  355. package/src/orm/Relationships.js +98 -0
  356. package/src/orm/Schema.d.ts +123 -0
  357. package/src/orm/Schema.d.ts.map +1 -0
  358. package/src/orm/Schema.js +169 -0
  359. package/src/orm/adapters/D1Adapter.d.ts +15 -0
  360. package/src/orm/adapters/D1Adapter.d.ts.map +1 -0
  361. package/src/orm/adapters/D1Adapter.js +125 -0
  362. package/src/orm/adapters/MySQLAdapter.d.ts +16 -0
  363. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -0
  364. package/src/orm/adapters/MySQLAdapter.js +87 -0
  365. package/src/orm/adapters/PostgreSQLAdapter.d.ts +16 -0
  366. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  367. package/src/orm/adapters/PostgreSQLAdapter.js +87 -0
  368. package/src/orm/adapters/SQLServerAdapter.d.ts +16 -0
  369. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -0
  370. package/src/orm/adapters/SQLServerAdapter.js +81 -0
  371. package/src/orm/adapters/SQLiteAdapter.d.ts +11 -0
  372. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -0
  373. package/src/orm/adapters/SQLiteAdapter.js +131 -0
  374. package/src/performance/Benchmark.d.ts +87 -0
  375. package/src/performance/Benchmark.d.ts.map +1 -0
  376. package/src/performance/Benchmark.js +304 -0
  377. package/src/performance/CodeGenerationBenchmark.d.ts +23 -0
  378. package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -0
  379. package/src/performance/CodeGenerationBenchmark.js +249 -0
  380. package/src/performance/Optimizer.d.ts +99 -0
  381. package/src/performance/Optimizer.d.ts.map +1 -0
  382. package/src/performance/Optimizer.js +396 -0
  383. package/src/performance/establish-baseline.d.ts +9 -0
  384. package/src/performance/establish-baseline.d.ts.map +1 -0
  385. package/src/performance/establish-baseline.js +55 -0
  386. package/src/profiling/MemoryProfiler.d.ts +32 -0
  387. package/src/profiling/MemoryProfiler.d.ts.map +1 -0
  388. package/src/profiling/MemoryProfiler.js +84 -0
  389. package/src/profiling/N1Detector.d.ts +16 -0
  390. package/src/profiling/N1Detector.d.ts.map +1 -0
  391. package/src/profiling/N1Detector.js +120 -0
  392. package/src/profiling/QueryLogger.d.ts +107 -0
  393. package/src/profiling/QueryLogger.d.ts.map +1 -0
  394. package/src/profiling/QueryLogger.js +148 -0
  395. package/src/profiling/RequestProfiler.d.ts +30 -0
  396. package/src/profiling/RequestProfiler.d.ts.map +1 -0
  397. package/src/profiling/RequestProfiler.js +94 -0
  398. package/src/profiling/types.d.ts +77 -0
  399. package/src/profiling/types.d.ts.map +1 -0
  400. package/src/profiling/types.js +5 -0
  401. package/src/routing/Router.d.ts +52 -0
  402. package/src/routing/Router.d.ts.map +1 -0
  403. package/src/routing/Router.js +191 -0
  404. package/src/runtime/PluginManager.d.ts +30 -0
  405. package/src/runtime/PluginManager.d.ts.map +1 -0
  406. package/src/runtime/PluginManager.js +197 -0
  407. package/src/runtime/PluginRegistry.d.ts +22 -0
  408. package/src/runtime/PluginRegistry.d.ts.map +1 -0
  409. package/src/runtime/PluginRegistry.js +93 -0
  410. package/src/runtime/RuntimeAdapter.d.ts +126 -0
  411. package/src/runtime/RuntimeAdapter.d.ts.map +1 -0
  412. package/src/runtime/RuntimeAdapter.js +127 -0
  413. package/src/runtime/RuntimeDetector.d.ts +15 -0
  414. package/src/runtime/RuntimeDetector.d.ts.map +1 -0
  415. package/src/runtime/RuntimeDetector.js +219 -0
  416. package/src/runtime/adapters/CloudflareAdapter.d.ts +43 -0
  417. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -0
  418. package/src/runtime/adapters/CloudflareAdapter.js +175 -0
  419. package/src/runtime/adapters/DenoAdapter.d.ts +30 -0
  420. package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -0
  421. package/src/runtime/adapters/DenoAdapter.js +191 -0
  422. package/src/runtime/adapters/FargateAdapter.d.ts +40 -0
  423. package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -0
  424. package/src/runtime/adapters/FargateAdapter.js +156 -0
  425. package/src/runtime/adapters/LambdaAdapter.d.ts +13 -0
  426. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -0
  427. package/src/runtime/adapters/LambdaAdapter.js +302 -0
  428. package/src/runtime/adapters/NodeServerAdapter.d.ts +16 -0
  429. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -0
  430. package/src/runtime/adapters/NodeServerAdapter.js +199 -0
  431. package/src/scripts/TemplateSync.d.ts +7 -0
  432. package/src/scripts/TemplateSync.d.ts.map +1 -0
  433. package/src/scripts/TemplateSync.js +234 -0
  434. package/src/security/CsrfTokenManager.d.ts +28 -0
  435. package/src/security/CsrfTokenManager.d.ts.map +1 -0
  436. package/src/security/CsrfTokenManager.js +78 -0
  437. package/src/security/Encryptor.d.ts +15 -0
  438. package/src/security/Encryptor.d.ts.map +1 -0
  439. package/src/security/Encryptor.js +142 -0
  440. package/src/security/JwtManager.d.ts +41 -0
  441. package/src/security/JwtManager.d.ts.map +1 -0
  442. package/src/security/JwtManager.js +229 -0
  443. package/src/security/UrlValidator.d.ts +21 -0
  444. package/src/security/UrlValidator.d.ts.map +1 -0
  445. package/src/security/UrlValidator.js +42 -0
  446. package/src/security/XssProtection.d.ts +24 -0
  447. package/src/security/XssProtection.d.ts.map +1 -0
  448. package/src/security/XssProtection.js +133 -0
  449. package/src/templates/TemplateRegistry.d.ts +40 -0
  450. package/src/templates/TemplateRegistry.d.ts.map +1 -0
  451. package/src/templates/TemplateRegistry.js +78 -0
  452. package/src/templates/TemplateRegistry.ts +91 -0
  453. package/src/templates/adapters/MySQLAdapter.ts.tpl +97 -0
  454. package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +101 -0
  455. package/src/templates/adapters/SQLServerAdapter.ts.tpl +95 -0
  456. package/src/templates/adapters/SQLiteAdapter.ts.tpl +189 -0
  457. package/src/templates/features/Auth.ts.tpl +40 -0
  458. package/src/templates/features/Queue.ts.tpl +75 -0
  459. package/src/templates/project/basic/.env.example.tpl +26 -0
  460. package/src/templates/project/basic/.env.tpl +164 -0
  461. package/src/templates/project/basic/README.md.tpl +13 -0
  462. package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +155 -0
  463. package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +55 -0
  464. package/src/templates/project/basic/app/Middleware/index.ts.tpl +304 -0
  465. package/src/templates/project/basic/app/Models/Post.ts.tpl +30 -0
  466. package/src/templates/project/basic/app/Models/User.ts.tpl +53 -0
  467. package/src/templates/project/basic/config/SecretsManager.ts.tpl +453 -0
  468. package/src/templates/project/basic/config/app.ts.tpl +97 -0
  469. package/src/templates/project/basic/config/cache.ts.tpl +117 -0
  470. package/src/templates/project/basic/config/constants.ts.tpl +70 -0
  471. package/src/templates/project/basic/config/database.ts.tpl +152 -0
  472. package/src/templates/project/basic/config/env.ts.tpl +148 -0
  473. package/src/templates/project/basic/config/features.ts.tpl +57 -0
  474. package/src/templates/project/basic/config/index.ts.tpl +36 -0
  475. package/src/templates/project/basic/config/logger.ts.tpl +95 -0
  476. package/src/templates/project/basic/config/microservices.ts.tpl +104 -0
  477. package/src/templates/project/basic/config/queue.ts.tpl +134 -0
  478. package/src/templates/project/basic/config/security.ts.tpl +149 -0
  479. package/src/templates/project/basic/config/storage.ts.tpl +136 -0
  480. package/src/templates/project/basic/database/factories/.gitkeep.tpl +0 -0
  481. package/src/templates/project/basic/database/migrations/.gitkeep.tpl +0 -0
  482. package/src/templates/project/basic/database/migrations/index.ts.tpl +2 -0
  483. package/src/templates/project/basic/database/seeders/.gitkeep.tpl +0 -0
  484. package/src/templates/project/basic/package.json.tpl +22 -0
  485. package/src/templates/project/basic/routes/api.ts.tpl +135 -0
  486. package/src/templates/project/basic/src/index.ts.tpl +49 -0
  487. package/src/templates/project/basic/template.json +17 -0
  488. package/src/templates/project/basic/tsconfig.json.tpl +20 -0
  489. package/src/validation/ValidationError.d.ts +42 -0
  490. package/src/validation/ValidationError.d.ts.map +1 -0
  491. package/src/validation/ValidationError.js +53 -0
  492. package/src/validation/Validator.d.ts +60 -0
  493. package/src/validation/Validator.d.ts.map +1 -0
  494. package/src/validation/Validator.js +190 -0
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Request Factory Generator - Phase 6.3
3
+ * Generates request/input DTO factories with built-in validation
4
+ */
5
+ import { FileGenerator } from '../scaffolding/FileGenerator';
6
+ import { Logger } from '../../config/logger';
7
+ import { ErrorFactory } from '../../exceptions/ZintrustError';
8
+ import { fsPromises as fs } from '../../node-singletons/fs';
9
+ import * as path from '../../node-singletons/path';
10
+ /**
11
+ * Validate request factory options
12
+ */
13
+ export async function validateOptions(options) {
14
+ if (options.factoryName.trim() === '') {
15
+ throw ErrorFactory.createCliError('Request factory name is required');
16
+ }
17
+ if (!options.factoryName.endsWith('RequestFactory')) {
18
+ throw ErrorFactory.createCliError('Request factory name must end with "RequestFactory" (e.g., CreateUserRequestFactory)');
19
+ }
20
+ if (!/^[A-Z][a-zA-Z\d]*RequestFactory$/.test(options.factoryName)) {
21
+ throw ErrorFactory.createCliError('Request factory name must be PascalCase ending with "RequestFactory"');
22
+ }
23
+ if (options.requestName.trim() === '') {
24
+ throw ErrorFactory.createCliError('Request name is required');
25
+ }
26
+ if (!/^[A-Z][a-zA-Z\d]*Request$/.test(options.requestName)) {
27
+ throw ErrorFactory.createCliError('Request name must be PascalCase ending with "Request"');
28
+ }
29
+ // Verify factories path exists
30
+ const pathStat = await fs.stat(options.factoriesPath).catch(() => null);
31
+ if (pathStat === null) {
32
+ throw ErrorFactory.createCliError(`Request factories path does not exist: ${options.factoriesPath}`);
33
+ }
34
+ if (!pathStat.isDirectory()) {
35
+ throw ErrorFactory.createCliError(`Request factories path is not a directory: ${options.factoriesPath}`);
36
+ }
37
+ }
38
+ /**
39
+ * Generate a request factory
40
+ */
41
+ export async function generateRequestFactory(options) {
42
+ try {
43
+ await validateOptions(options);
44
+ const factoryCode = buildFactoryCode(options);
45
+ const factoryFileName = `${options.factoryName}.ts`;
46
+ const factoryPath = path.join(options.factoriesPath, factoryFileName);
47
+ FileGenerator.writeFile(factoryPath, factoryCode, { overwrite: true });
48
+ Logger.info(`✅ Created request factory: ${factoryFileName}`);
49
+ const result = {
50
+ success: true,
51
+ factoryPath,
52
+ message: `Request factory '${options.factoryName}' created successfully`,
53
+ };
54
+ // Optionally generate the request DTO class
55
+ if (options.requestsPath !== undefined) {
56
+ const requestCode = buildRequestCode(options);
57
+ const requestFileName = `${options.requestName}.ts`;
58
+ const requestPath = path.join(options.requestsPath, requestFileName);
59
+ FileGenerator.writeFile(requestPath, requestCode, { overwrite: true });
60
+ Logger.info(`✅ Created request class: ${requestFileName}`);
61
+ result.requestPath = requestPath;
62
+ }
63
+ return result;
64
+ }
65
+ catch (error) {
66
+ ErrorFactory.createTryCatchError('Request factory generation failed', error);
67
+ return {
68
+ success: false,
69
+ factoryPath: '',
70
+ message: error.message,
71
+ };
72
+ }
73
+ }
74
+ /**
75
+ * Build complete request factory code
76
+ */
77
+ function buildFactoryCode(options) {
78
+ const fields = options.fields ?? getDefaultFields(options.requestName);
79
+ const fieldDefinitions = buildFieldDefinitions(fields);
80
+ const validationRules = buildValidationRules(fields);
81
+ return `/**
82
+ * ${options.factoryName}
83
+ * Factory for generating ${options.requestName} test data with validation
84
+ */
85
+
86
+ import { faker } from '@faker-js/faker';
87
+ import { ${options.requestName} } from '@app/Requests/${options.requestName}';
88
+
89
+ export const ${options.factoryName} = Object.freeze({
90
+ ${buildFactoryObjectBody(options, fields, fieldDefinitions)}
91
+ });
92
+
93
+ ${buildRequestDtoClass(options, fields, validationRules)}
94
+ `;
95
+ }
96
+ /**
97
+ * Build factory methods (count, state, make, get)
98
+ */
99
+ function buildFactoryMethods(options, fieldDefinitions) {
100
+ return ` /**
101
+ * Set record count
102
+ */
103
+ count(n: number) {
104
+ recordCount = Math.max(1, Math.min(n, 1000));
105
+ return factory;
106
+ },
107
+
108
+ /**
109
+ * Apply a state to the factory
110
+ */
111
+ state(name: string) {
112
+ states.add(name);
113
+ return factory;
114
+ },
115
+
116
+ /**
117
+ * Make a single request instance
118
+ */
119
+ make(overrides?: Record<string, unknown>) {
120
+ const data: Record<string, unknown> = {};
121
+
122
+ // Generate all fields
123
+ ${fieldDefinitions}
124
+
125
+ // Apply state modifications
126
+ if (states.has('invalid')) factory.applyInvalidState(data);
127
+ if (states.has('empty')) factory.applyEmptyState(data);
128
+ if (states.has('minimal')) factory.applyMinimalState(data);
129
+
130
+ // Apply overrides
131
+ if (overrides !== undefined && overrides !== null) {
132
+ Object.assign(data, overrides);
133
+ }
134
+
135
+ return ${options.requestName}.create(data);
136
+ },
137
+
138
+ /**
139
+ * Make multiple instances
140
+ */
141
+ get() {
142
+ return Array.from({ length: recordCount }, () => factory.make());
143
+ },`;
144
+ }
145
+ /**
146
+ * Build generateField method
147
+ */
148
+ function buildGenerateField(fields) {
149
+ return ` /**
150
+ * Generate field value
151
+ */
152
+ generateField(fieldName: string): unknown {
153
+ const fields = ${JSON.stringify(fields, null, 4)};
154
+ const field = fields.find(f => f.name === fieldName);
155
+ if (!field) return null;
156
+
157
+ const fakerMap: Record<string, () => unknown> = {
158
+ string: () => faker.lorem.word(),
159
+ email: () => faker.internet.email(),
160
+ phone: () => faker.phone.number('+1 (###) ###-####'),
161
+ number: () => faker.number.int({ min: field.min || 1, max: field.max || 100 }),
162
+ boolean: () => faker.datatype.boolean(),
163
+ date: () => faker.date.future().toISOString().split('T')[0],
164
+ uuid: () => faker.string.uuid(),
165
+ url: () => faker.internet.url(),
166
+ json: () => ({ data: faker.lorem.word() }),
167
+ };
168
+
169
+ return fakerMap[field.type]?.() ?? faker.lorem.word();
170
+ },`;
171
+ }
172
+ /**
173
+ * Build state modification methods
174
+ */
175
+ function buildStateMethods(fields) {
176
+ return ` /**
177
+ * Apply invalid state
178
+ */
179
+ applyInvalidState(data: Record<string, unknown>) {
180
+ ${buildStateModifications(fields)}
181
+ },
182
+
183
+ /**
184
+ * Apply empty state
185
+ */
186
+ applyEmptyState(data: Record<string, unknown>) {
187
+ Object.keys(data).forEach(key => {
188
+ data[key] = null;
189
+ });
190
+ },
191
+
192
+ /**
193
+ * Apply minimal state
194
+ */
195
+ applyMinimalState(data: Record<string, unknown>) {
196
+ const required = ${JSON.stringify(fields.filter((f) => f.required !== false).map((f) => f.name))};
197
+ Object.keys(data).forEach(key => {
198
+ if (!required.includes(key)) {
199
+ delete data[key];
200
+ }
201
+ });
202
+ }`;
203
+ }
204
+ /**
205
+ * Build factory object body
206
+ */
207
+ function buildFactoryObjectBody(options, fields, fieldDefinitions) {
208
+ return ` /**
209
+ * Create a new factory instance
210
+ */
211
+ new() {
212
+ let recordCount = 1;
213
+ const states = new Set<string>();
214
+
215
+ const factory = {
216
+ ${buildFactoryMethods(options, fieldDefinitions)}
217
+
218
+ ${buildGenerateField(fields)}
219
+
220
+ ${buildStateMethods(fields)}
221
+ };
222
+
223
+ return factory;
224
+ }`;
225
+ }
226
+ /**
227
+ * Build factory state management methods
228
+ */
229
+ function buildRequestDtoClass(options, fields, validationRules) {
230
+ return String.raw `/**
231
+ * Request DTO factory with built-in validation
232
+ */
233
+ export const ${options.requestName} = Object.freeze({
234
+ create(data: Record<string, unknown> = {}) {
235
+ const request = {
236
+ ...data,
237
+
238
+ /**
239
+ * Validate request data
240
+ */
241
+ validate() {
242
+ const errors: Record<string, string> = {};
243
+ const data = request as any;
244
+
245
+ ${validationRules}
246
+
247
+ return {
248
+ valid: Object.keys(errors).length === 0,
249
+ errors,
250
+ };
251
+ },
252
+
253
+ /**
254
+ * Convert to plain object
255
+ */
256
+ toJSON() {
257
+ const data = request as any;
258
+ return {
259
+ ${fields.map((f) => ` ${f.name}: data.${f.name}`).join(',\n')}
260
+ };
261
+ },
262
+
263
+ /**
264
+ * Helper: Validate email
265
+ */
266
+ isValidEmail(email: string): boolean {
267
+ return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(email);
268
+ },
269
+
270
+ /**
271
+ * Helper: Validate phone
272
+ */
273
+ isValidPhone(phone: string): boolean {
274
+ return /^\+?[1-9]\d{1,14}$/.test(phone);
275
+ },
276
+
277
+ /**
278
+ * Helper: Validate URL
279
+ */
280
+ isValidUrl(url: string): boolean {
281
+ try {
282
+ new URL(url);
283
+ return true;
284
+ } catch {
285
+ return false;
286
+ }
287
+ },
288
+ };
289
+
290
+ return request;
291
+ }
292
+ };`;
293
+ }
294
+ /**
295
+ * Build complete request factory code
296
+ */
297
+ function buildRequestCode(options) {
298
+ const fields = options.fields ?? getDefaultFields(options.requestName);
299
+ const validationRules = buildValidationRules(fields);
300
+ return `/**
301
+ * ${options.requestName} - Request DTO
302
+ * ${options.method ?? 'POST'} ${options.endpoint ?? '/api/endpoint'}
303
+ */
304
+
305
+ ${buildRequestDtoClass(options, fields, validationRules)}
306
+ `;
307
+ }
308
+ /**
309
+ * Build field definitions
310
+ */
311
+ function buildFieldDefinitions(fields) {
312
+ return fields.map((f) => ` data.${f.name} = this.generateField('${f.name}');`).join('\n');
313
+ }
314
+ /**
315
+ * Build validation rules
316
+ */
317
+ function buildValidationRules(fields) {
318
+ const rules = [];
319
+ for (const field of fields) {
320
+ rules.push(...buildFieldRules(field));
321
+ }
322
+ return rules.join('\n\n ');
323
+ }
324
+ /**
325
+ * Build validation rules for a single field
326
+ */
327
+ function buildFieldRules(field) {
328
+ const rules = [];
329
+ if (field.required !== false) {
330
+ rules.push(buildRequiredRule(field.name));
331
+ }
332
+ if (field.type === 'email') {
333
+ rules.push(buildEmailRule(field.name));
334
+ }
335
+ if (field.type === 'phone') {
336
+ rules.push(buildPhoneRule(field.name));
337
+ }
338
+ if (field.type === 'url') {
339
+ rules.push(buildUrlRule(field.name));
340
+ }
341
+ if (field.min !== undefined) {
342
+ rules.push(buildMinRule(field.name, field.min));
343
+ }
344
+ if (field.max !== undefined) {
345
+ rules.push(buildMaxRule(field.name, field.max));
346
+ }
347
+ return rules;
348
+ }
349
+ /**
350
+ * Build required validation rule
351
+ */
352
+ function buildRequiredRule(name) {
353
+ return ` if (!data.${name}) {
354
+ errors.${name} = '${name} is required';
355
+ }`;
356
+ }
357
+ /**
358
+ * Build email validation rule
359
+ */
360
+ function buildEmailRule(name) {
361
+ return ` if (data.${name} && !this.isValidEmail(data.${name})) {
362
+ errors.${name} = '${name} must be a valid email';
363
+ }`;
364
+ }
365
+ /**
366
+ * Build phone validation rule
367
+ */
368
+ function buildPhoneRule(name) {
369
+ return ` if (data.${name} && !this.isValidPhone(data.${name})) {
370
+ errors.${name} = '${name} must be a valid phone number';
371
+ }`;
372
+ }
373
+ /**
374
+ * Build URL validation rule
375
+ */
376
+ function buildUrlRule(name) {
377
+ return ` if (data.${name} && !this.isValidUrl(data.${name})) {
378
+ errors.${name} = '${name} must be a valid URL';
379
+ }`;
380
+ }
381
+ /**
382
+ * Build min length validation rule
383
+ */
384
+ function buildMinRule(name, min) {
385
+ return ` if (data.${name} && data.${name}.length < ${min}) {
386
+ errors.${name} = '${name} must be at least ${min} characters';
387
+ }`;
388
+ }
389
+ /**
390
+ * Build max length validation rule
391
+ */
392
+ function buildMaxRule(name, max) {
393
+ return ` if (data.${name} && data.${name}.length > ${max}) {
394
+ errors.${name} = '${name} must be at most ${max} characters';
395
+ }`;
396
+ }
397
+ /**
398
+ * Build state modifications
399
+ */
400
+ function buildStateModifications(fields) {
401
+ const requiredFields = fields.filter((f) => f.required !== false);
402
+ if (requiredFields.length === 0)
403
+ return '';
404
+ return requiredFields.map((f) => `delete data.${f.name};`).join('\n ');
405
+ }
406
+ /**
407
+ * Get default fields for a request type
408
+ */
409
+ function getDefaultFields(requestName) {
410
+ const requestType = requestName.replace(/Request$/, '').toLowerCase();
411
+ const defaults = {
412
+ create: [
413
+ { name: 'name', type: 'string', required: true, min: 1, max: 255 },
414
+ { name: 'email', type: 'email', required: true },
415
+ { name: 'description', type: 'string', required: false, max: 1000 },
416
+ ],
417
+ update: [
418
+ { name: 'name', type: 'string', required: false, min: 1, max: 255 },
419
+ { name: 'email', type: 'email', required: false },
420
+ { name: 'description', type: 'string', required: false, max: 1000 },
421
+ ],
422
+ login: [
423
+ { name: 'email', type: 'email', required: true },
424
+ { name: 'password', type: 'string', required: true, min: 8 },
425
+ ],
426
+ register: [
427
+ { name: 'name', type: 'string', required: true, min: 2, max: 255 },
428
+ { name: 'email', type: 'email', required: true },
429
+ { name: 'password', type: 'string', required: true, min: 8 },
430
+ ],
431
+ };
432
+ // Find matching default
433
+ for (const [key, fields] of Object.entries(defaults)) {
434
+ if (requestType.includes(key)) {
435
+ return fields;
436
+ }
437
+ }
438
+ // Default fields if no match
439
+ return [
440
+ { name: 'id', type: 'number', required: false },
441
+ { name: 'data', type: 'json', required: true },
442
+ ];
443
+ }
444
+ /**
445
+ * Get available options
446
+ */
447
+ export function getAvailableOptions() {
448
+ return [
449
+ 'Request factory generation',
450
+ 'Built-in validation rules',
451
+ 'State patterns (invalid, empty, minimal)',
452
+ 'Field type detection',
453
+ 'Automatic DTO generation',
454
+ 'Faker.js integration',
455
+ ];
456
+ }
457
+ /**
458
+ * Request Factory Generator - Creates request/input DTO factories with validation
459
+ * Generates both the request factory (for testing) and the DTO class (for request handling)
460
+ */
461
+ export const RequestFactoryGenerator = Object.freeze({
462
+ validateOptions,
463
+ generateRequestFactory,
464
+ getAvailableOptions,
465
+ });
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Response Factory Generator - Phase 7
3
+ * Generates response/output DTO factories with built-in validation
4
+ */
5
+ export interface ResponseField {
6
+ name: string;
7
+ type: 'string' | 'number' | 'boolean' | 'date' | 'json' | 'uuid' | 'email' | 'Record<string, unknown>';
8
+ required?: boolean;
9
+ nullable?: boolean;
10
+ array?: boolean;
11
+ description?: string;
12
+ }
13
+ export interface ResponseFactoryOptions {
14
+ factoryName: string;
15
+ responseName: string;
16
+ fields?: ResponseField[];
17
+ responseType?: 'success' | 'error' | 'paginated' | 'custom';
18
+ factoriesPath: string;
19
+ responsesPath?: string;
20
+ }
21
+ export interface ResponseFactoryGeneratorResult {
22
+ success: boolean;
23
+ factoryPath: string;
24
+ responsePath?: string;
25
+ message: string;
26
+ }
27
+ /**
28
+ * Validate response factory options
29
+ */
30
+ export declare function validateOptions(options: ResponseFactoryOptions): Promise<void>;
31
+ /**
32
+ * Generate response factory
33
+ */
34
+ export declare function generate(options: ResponseFactoryOptions): Promise<ResponseFactoryGeneratorResult>;
35
+ /**
36
+ * Response Factory Generator - Phase 7
37
+ * Generates response/output DTO factories with built-in validation
38
+ */
39
+ export declare const ResponseFactoryGenerator: Readonly<{
40
+ validateOptions: typeof validateOptions;
41
+ generate: typeof generate;
42
+ }>;
43
+ //# sourceMappingURL=ResponseFactoryGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseFactoryGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ResponseFactoryGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,yBAAyB,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5D,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,8BAA8B,CAAC,CAkCzC;AAmRD;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;EAGnC,CAAC"}