@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,80 @@
1
+ /**
2
+ * MongoDB Cache Driver
3
+ * Uses MongoDB Atlas Data API (HTTPS) for zero-dependency integration
4
+ */
5
+ import { Env } from '../../config/env';
6
+ import { Logger } from '../../config/logger';
7
+ import { ErrorFactory } from '../../exceptions/ZintrustError';
8
+ /**
9
+ * MongoDB Cache Driver
10
+ * Uses MongoDB Atlas Data API (HTTPS) for zero-dependency integration
11
+ * Sealed namespace for immutability
12
+ */
13
+ export const MongoDriver = Object.freeze({
14
+ /**
15
+ * Create a new MongoDB driver instance
16
+ */
17
+ create() {
18
+ const uri = Env.MONGO_URI;
19
+ const db = Env.MONGO_DB;
20
+ const collection = 'cache';
21
+ const request = async (action, body) => {
22
+ if (uri === '') {
23
+ Logger.warn('MONGO_URI not configured. MongoDB Cache request ignored.');
24
+ return null;
25
+ }
26
+ try {
27
+ const response = await fetch(`${uri}/action/${action}`, {
28
+ method: 'POST',
29
+ headers: {
30
+ 'Content-Type': 'application/json',
31
+ 'Access-Control-Request-Headers': '*',
32
+ },
33
+ body: JSON.stringify({
34
+ dataSource: 'Cluster0',
35
+ database: db,
36
+ collection: collection,
37
+ ...body,
38
+ }),
39
+ });
40
+ return await response.json();
41
+ }
42
+ catch (error) {
43
+ const message = error instanceof Error ? error.message : String(error);
44
+ ErrorFactory.createTryCatchError(`MongoDB Cache Error: ${message}`);
45
+ return null;
46
+ }
47
+ };
48
+ return {
49
+ async get(key) {
50
+ const result = (await request('findOne', { filter: { _id: key } }));
51
+ if (result?.document === undefined || result.document === null)
52
+ return null;
53
+ const doc = result.document;
54
+ if (doc.expires !== null && doc.expires < Date.now()) {
55
+ await this.delete(key);
56
+ return null;
57
+ }
58
+ return doc.value;
59
+ },
60
+ async set(key, value, ttl) {
61
+ const expires = ttl === undefined ? null : Date.now() + ttl * 1000;
62
+ await request('updateOne', {
63
+ filter: { _id: key },
64
+ update: { $set: { value, expires } },
65
+ upsert: true,
66
+ });
67
+ },
68
+ async delete(key) {
69
+ await request('deleteOne', { filter: { _id: key } });
70
+ },
71
+ async clear() {
72
+ await request('deleteMany', { filter: {} });
73
+ },
74
+ async has(key) {
75
+ const result = (await request('findOne', { filter: { _id: key } }));
76
+ return result?.document !== undefined && result.document !== null;
77
+ },
78
+ };
79
+ },
80
+ });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Redis Cache Driver
3
+ * Zero-dependency implementation using Node.js native net module
4
+ */
5
+ import { CacheDriver } from '../CacheDriver';
6
+ /**
7
+ * RedisDriver namespace - sealed for immutability
8
+ */
9
+ export declare const RedisDriver: Readonly<{
10
+ create: () => CacheDriver;
11
+ }>;
12
+ //# sourceMappingURL=RedisDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../../src/cache/drivers/RedisDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA+EjD;;GAEG;AACH,eAAO,MAAM,WAAW;kBA1EL,WAAW;EA4E5B,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Redis Cache Driver
3
+ * Zero-dependency implementation using Node.js native net module
4
+ */
5
+ import { Env } from '../../config/env';
6
+ import { Logger } from '../../config/logger';
7
+ import * as net from 'node:net';
8
+ /**
9
+ * Create a new Redis driver instance
10
+ */
11
+ const create = () => {
12
+ let client = null;
13
+ const host = Env.REDIS_HOST;
14
+ const port = Env.REDIS_PORT;
15
+ const connect = async () => {
16
+ if (client && !client.destroyed)
17
+ return client;
18
+ return new Promise((resolve, reject) => {
19
+ const socket = net.connect(port, host, () => {
20
+ client = socket;
21
+ resolve(socket);
22
+ });
23
+ socket.on('error', (err) => {
24
+ Logger.error(`Redis Connection Error: ${err.message}`);
25
+ reject(err);
26
+ });
27
+ });
28
+ };
29
+ const sendCommand = async (command) => {
30
+ const socket = await connect();
31
+ return new Promise((resolve, _reject) => {
32
+ socket.once('data', (data) => {
33
+ resolve(data.toString());
34
+ });
35
+ socket.write(command);
36
+ });
37
+ };
38
+ return {
39
+ async get(key) {
40
+ try {
41
+ const response = await sendCommand(`GET ${key}\r\n`);
42
+ if (response.startsWith('$-1'))
43
+ return null;
44
+ // Basic RESP parsing
45
+ const lines = response.split('\r\n');
46
+ const value = lines[1];
47
+ return JSON.parse(value);
48
+ }
49
+ catch (error) {
50
+ Logger.error('Redis GET failed', error);
51
+ return null;
52
+ }
53
+ },
54
+ async set(key, value, ttl) {
55
+ const jsonValue = JSON.stringify(value);
56
+ let command = `SET ${key} ${jsonValue}\r\n`;
57
+ if (ttl !== undefined) {
58
+ command = `SETEX ${key} ${ttl} ${jsonValue}\r\n`;
59
+ }
60
+ await sendCommand(command);
61
+ },
62
+ async delete(key) {
63
+ await sendCommand(`DEL ${key}\r\n`);
64
+ },
65
+ async clear() {
66
+ await sendCommand(`FLUSHDB\r\n`);
67
+ },
68
+ async has(key) {
69
+ const response = await sendCommand(`EXISTS ${key}\r\n`);
70
+ return response.includes(':1');
71
+ },
72
+ };
73
+ };
74
+ /**
75
+ * RedisDriver namespace - sealed for immutability
76
+ */
77
+ export const RedisDriver = Object.freeze({
78
+ create,
79
+ });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Base Command - Abstract Command Class
3
+ * All CLI commands extend this class
4
+ */
5
+ import { Command } from 'commander';
6
+ export interface CommandOptions {
7
+ verbose?: boolean;
8
+ args?: string[];
9
+ [key: string]: unknown;
10
+ }
11
+ export interface IBaseCommand {
12
+ [x: string]: unknown;
13
+ name: string;
14
+ description: string;
15
+ verbose?: boolean;
16
+ getCommand(): Command;
17
+ addOptions?: (command: Command) => void;
18
+ execute(options: CommandOptions): void | Promise<void>;
19
+ info(message: string): void;
20
+ success(message: string): void;
21
+ warn(message: string): void;
22
+ debug(message: unknown): void;
23
+ }
24
+ /**
25
+ * Command Factory Helper
26
+ * Sealed namespace for immutability
27
+ */
28
+ export declare const BaseCommand: Readonly<{
29
+ /**
30
+ * Create a command instance with common logic
31
+ */
32
+ create(config: {
33
+ name: string;
34
+ description: string;
35
+ addOptions?: (command: Command) => void;
36
+ execute: (options: CommandOptions) => void | Promise<void>;
37
+ }): IBaseCommand;
38
+ }>;
39
+ //# sourceMappingURL=BaseCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;mBACY;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QACxC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,GAAG,YAAY;EA+ChB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Base Command - Abstract Command Class
3
+ * All CLI commands extend this class
4
+ */
5
+ import { ErrorHandler } from './ErrorHandler';
6
+ import { ErrorFactory } from '../exceptions/ZintrustError';
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Command Factory Helper
10
+ * Sealed namespace for immutability
11
+ */
12
+ export const BaseCommand = Object.freeze({
13
+ /**
14
+ * Create a command instance with common logic
15
+ */
16
+ create(config) {
17
+ const getCommand = () => {
18
+ const command = new Command(config.name);
19
+ command.description(config.description);
20
+ command.option('-v, --verbose', 'Enable verbose output');
21
+ // Add custom options
22
+ if (config.addOptions) {
23
+ config.addOptions(command);
24
+ }
25
+ // Set action handler
26
+ command.action(async (...args) => {
27
+ const options = args.at(-2);
28
+ const commandArgs = args.slice(0, -2);
29
+ options.args = commandArgs;
30
+ try {
31
+ await config.execute(options);
32
+ }
33
+ catch (error) {
34
+ if (error instanceof Error) {
35
+ ErrorFactory.createTryCatchError('Command execution failed', error);
36
+ ErrorHandler.handle(error, undefined, false);
37
+ return;
38
+ }
39
+ const wrapped = ErrorFactory.createTryCatchError('Command execution failed', error);
40
+ ErrorHandler.handle(wrapped, undefined, false);
41
+ }
42
+ });
43
+ return command;
44
+ };
45
+ return {
46
+ name: config.name,
47
+ description: config.description,
48
+ verbose: false,
49
+ addOptions: config.addOptions,
50
+ getCommand,
51
+ execute: config.execute,
52
+ info: (msg) => ErrorHandler.info(msg),
53
+ success: (msg) => ErrorHandler.success(msg),
54
+ warn: (msg) => ErrorHandler.warn(msg),
55
+ debug: (msg) => ErrorHandler.debug(msg, true),
56
+ };
57
+ },
58
+ });
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CLI - Main CLI Class
3
+ * Orchestrates all CLI commands using Commander
4
+ */
5
+ import { Command } from 'commander';
6
+ export interface ICLI {
7
+ run(args: string[]): Promise<void>;
8
+ getProgram(): Command;
9
+ }
10
+ /**
11
+ * CLI - Main CLI Class
12
+ * Orchestrates all CLI commands using Commander
13
+ *
14
+ * Notes:
15
+ * - `CLI.create()` is the preferred API (used by current bin scripts/tests).
16
+ * - `new CLI()` remains supported for backward compatibility with older bin scripts.
17
+ */
18
+ export declare const CLI: Readonly<{
19
+ create(): ICLI;
20
+ }>;
21
+ //# sourceMappingURL=CLI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqBH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,OAAO,CAAC;CACvB;AAkLD;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;cACJ,IAAI;EAed,CAAC"}
package/src/cli/CLI.js ADDED
@@ -0,0 +1,203 @@
1
+ /**
2
+ * CLI - Main CLI Class
3
+ * Orchestrates all CLI commands using Commander
4
+ */
5
+ import { AddCommand } from './commands/AddCommand';
6
+ import { ConfigCommand } from './commands/ConfigCommand';
7
+ import { D1MigrateCommand } from './commands/D1MigrateCommand';
8
+ import { DebugCommand } from './commands/DebugCommand';
9
+ import { FixCommand } from './commands/FixCommand';
10
+ import { KeyGenerateCommand } from './commands/KeyGenerateCommand';
11
+ import { MigrateCommand } from './commands/MigrateCommand';
12
+ import { NewCommand } from './commands/NewCommand';
13
+ import { PluginCommand } from './commands/PluginCommand';
14
+ import { PrepareCommand } from './commands/PrepareCommand';
15
+ import { QACommand } from './commands/QACommand';
16
+ import { SimulateCommand } from './commands/SimulateCommand';
17
+ import { StartCommand } from './commands/StartCommand';
18
+ import { ErrorHandler } from './ErrorHandler';
19
+ import { Logger } from '../config/logger';
20
+ import { ErrorFactory } from '../exceptions/ZintrustError';
21
+ import { readFileSync } from '../node-singletons/fs';
22
+ import { dirname, join } from '../node-singletons/path';
23
+ import { fileURLToPath } from '../node-singletons/url';
24
+ import { Command } from 'commander';
25
+ const __filename = fileURLToPath(import.meta.url);
26
+ const __dirname = dirname(__filename);
27
+ /**
28
+ * CLI - Main CLI Class
29
+ * Orchestrates all CLI commands using Commander
30
+ */
31
+ /**
32
+ * Load version from package.json
33
+ */
34
+ const loadVersion = () => {
35
+ try {
36
+ const packagePath = join(__dirname, '../../package.json');
37
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
38
+ return typeof packageJson.version === 'string' ? packageJson.version : '1.0.0';
39
+ }
40
+ catch (error) {
41
+ ErrorFactory.createCliError('Failed to load version from package.json', error);
42
+ // Use default version if package.json not found
43
+ return '1.0.0';
44
+ }
45
+ };
46
+ /**
47
+ * Setup program metadata
48
+ */
49
+ const setupProgram = (program, version) => {
50
+ program
51
+ .name('zintrust')
52
+ .description('Zintrust Framework CLI - Build production-grade TypeScript APIs')
53
+ .version(version, '-v, --version', 'Output version number')
54
+ .helpOption('-h, --help', 'Display help for command')
55
+ .usage('[command] [options]');
56
+ // Global error handling
57
+ program.exitOverride();
58
+ };
59
+ /**
60
+ * Register all available commands
61
+ */
62
+ const registerCommands = (program) => {
63
+ const commands = [
64
+ NewCommand.create(),
65
+ PrepareCommand,
66
+ AddCommand.create(),
67
+ StartCommand.create(),
68
+ MigrateCommand.create(),
69
+ D1MigrateCommand.create(),
70
+ DebugCommand.create(),
71
+ ConfigCommand.create(),
72
+ PluginCommand.create(),
73
+ QACommand(),
74
+ FixCommand.create(),
75
+ KeyGenerateCommand.create(),
76
+ SimulateCommand,
77
+ ];
78
+ for (const command of commands) {
79
+ program.addCommand(command.getCommand());
80
+ }
81
+ // Help command
82
+ program
83
+ .command('help [command]')
84
+ .description('Display help for a command')
85
+ .action((commandName) => {
86
+ if (commandName) {
87
+ const cmd = program.commands.find((c) => c.name() === commandName);
88
+ if (cmd) {
89
+ cmd.help();
90
+ }
91
+ else {
92
+ Logger.error(`Unknown command: ${commandName}`);
93
+ program.help();
94
+ }
95
+ }
96
+ else {
97
+ program.help();
98
+ }
99
+ });
100
+ };
101
+ /**
102
+ * Check if error is a commander error that can be safely ignored
103
+ */
104
+ const isIgnorableCommanderError = (error) => {
105
+ if (error instanceof Error &&
106
+ 'code' in error &&
107
+ typeof error.code === 'string' &&
108
+ error.code.startsWith('commander.')) {
109
+ const commanderError = error;
110
+ return typeof commanderError.exitCode === 'number' && commanderError.exitCode === 0;
111
+ }
112
+ return false;
113
+ };
114
+ /**
115
+ * Get exit code from error
116
+ */
117
+ const getExitCode = (error) => {
118
+ if (error instanceof Error &&
119
+ 'exitCode' in error &&
120
+ typeof error.exitCode === 'number') {
121
+ return error.exitCode;
122
+ }
123
+ return 1;
124
+ };
125
+ /**
126
+ * Handle CLI execution error
127
+ */
128
+ const handleExecutionError = (error, version, log = true) => {
129
+ if (isIgnorableCommanderError(error)) {
130
+ return;
131
+ }
132
+ if (error === version) {
133
+ return;
134
+ }
135
+ if (error instanceof Error) {
136
+ ErrorHandler.handle(error, undefined, log);
137
+ }
138
+ throw ErrorFactory.createCliError('Unhandled CLI execution error', error);
139
+ };
140
+ /**
141
+ * Run CLI with arguments
142
+ */
143
+ const runCLI = async (program, version, args) => {
144
+ try {
145
+ // Always show banner
146
+ ErrorHandler.banner(version);
147
+ // If version is requested, we've already shown the banner which includes the version.
148
+ if (args.includes('-v') || args.includes('--version')) {
149
+ return;
150
+ }
151
+ // Show help if no arguments provided
152
+ if (args.length === 0) {
153
+ program.help();
154
+ return;
155
+ }
156
+ // Convert global aliases to subcommand format
157
+ // e.g., `zin -sim my-app` -> `zin simulate my-app`
158
+ let processedArgs = args;
159
+ if (args[0] === '-sim' || args[0] === '--sim') {
160
+ processedArgs = ['simulate', ...args.slice(1)];
161
+ }
162
+ await program.parseAsync(['node', 'zintrust', ...processedArgs]);
163
+ }
164
+ catch (error) {
165
+ // Check for commander-specific errors that need special handling
166
+ if (error instanceof Error &&
167
+ 'code' in error &&
168
+ typeof error.code === 'string' &&
169
+ error.code.startsWith('commander.')) {
170
+ const exitCode = getExitCode(error);
171
+ if (exitCode !== 0) {
172
+ ErrorFactory.createCliError('CLI execution failed', error);
173
+ process.exit(exitCode);
174
+ }
175
+ return;
176
+ }
177
+ // Handle all other errors with proper logging
178
+ ErrorFactory.createCliError('CLI execution failed', error);
179
+ handleExecutionError(error, version, false);
180
+ }
181
+ };
182
+ /**
183
+ * CLI - Main CLI Class
184
+ * Orchestrates all CLI commands using Commander
185
+ *
186
+ * Notes:
187
+ * - `CLI.create()` is the preferred API (used by current bin scripts/tests).
188
+ * - `new CLI()` remains supported for backward compatibility with older bin scripts.
189
+ */
190
+ export const CLI = Object.freeze({
191
+ create() {
192
+ const program = new Command();
193
+ const version = loadVersion();
194
+ setupProgram(program, version);
195
+ registerCommands(program);
196
+ const run = async (args) => runCLI(program, version, args);
197
+ const getProgram = () => program;
198
+ return Object.freeze({
199
+ run,
200
+ getProgram,
201
+ });
202
+ },
203
+ });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Error Handler - CLI Error Formatting & Exit Codes
3
+ * Provides consistent error formatting and proper Unix exit codes
4
+ * Sealed namespace with immutable error handling methods
5
+ */
6
+ export declare const EXIT_CODES: {
7
+ readonly SUCCESS: 0;
8
+ readonly RUNTIME_ERROR: 1;
9
+ readonly USAGE_ERROR: 2;
10
+ };
11
+ /**
12
+ * ErrorHandler namespace - sealed for immutability
13
+ */
14
+ export declare const ErrorHandler: Readonly<{
15
+ handle: (error: Error | string, exitCode?: number, log?: boolean) => void;
16
+ usageError: (message: string, command?: string) => void;
17
+ info: (message: string) => void;
18
+ success: (message: string) => void;
19
+ warn: (message: string) => void;
20
+ debug: (message: string, verbose?: boolean) => void;
21
+ banner: (version: string) => void;
22
+ }>;
23
+ //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/ErrorHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAuGX;;GAEG;AACH,eAAO,MAAM,YAAY;oBAnGhB,KAAK,GAAG,MAAM,aACX,MAAM,QACX,OAAO,KACX,IAAI;0BAasB,MAAM,YAAY,MAAM,KAAG,IAAI;oBAa9B,MAAM,KAAG,IAAI;uBA4CV,MAAM,KAAG,IAAI;oBAQb,MAAM,KAAG,IAAI;qBAQf,MAAM,YAAW,OAAO,KAAW,IAAI;sBApDtC,MAAM,KAAG,IAAI;EAsE3C,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Error Handler - CLI Error Formatting & Exit Codes
3
+ * Provides consistent error formatting and proper Unix exit codes
4
+ * Sealed namespace with immutable error handling methods
5
+ */
6
+ import { Env } from '../config/env';
7
+ import { Logger } from '../config/logger';
8
+ import chalk from 'chalk';
9
+ export const EXIT_CODES = {
10
+ SUCCESS: 0,
11
+ RUNTIME_ERROR: 1,
12
+ USAGE_ERROR: 2,
13
+ };
14
+ /**
15
+ * Format and display error
16
+ * Exit codes: 0 (success), 1 (runtime error), 2 (usage error)
17
+ */
18
+ const handleError = (error, exitCode = EXIT_CODES.RUNTIME_ERROR, log = true) => {
19
+ const message = typeof error === 'string' ? error : error.message;
20
+ const formattedMessage = `${chalk.red('[ERROR]')} ${message}`;
21
+ if (log) {
22
+ Logger.error(formattedMessage);
23
+ }
24
+ process.exit(exitCode);
25
+ };
26
+ /**
27
+ * Display usage error with help hint
28
+ */
29
+ const usageError = (message, command) => {
30
+ const helpText = `Run: zin ${command} --help`;
31
+ const hint = command !== undefined && command !== '' ? `\n${chalk.gray(helpText)}` : '';
32
+ const formattedMessage = `${chalk.red('[ERROR]')} ${message}${hint}`;
33
+ Logger.warn(formattedMessage);
34
+ process.exit(EXIT_CODES.USAGE_ERROR);
35
+ };
36
+ /**
37
+ * Display info message
38
+ */
39
+ const displayInfo = (message) => {
40
+ const formatted = `${chalk.blue('[i]')} ${message}`;
41
+ Logger.info(formatted);
42
+ };
43
+ /**
44
+ * Display framework banner
45
+ */
46
+ const displayBanner = (version) => {
47
+ /* eslint-disable no-console */
48
+ const framework = 'Zintrust Framework';
49
+ const bannerWidth = 46;
50
+ const env = Env.NODE_ENV || 'development';
51
+ const db = Env.DB_CONNECTION || 'sqlite';
52
+ console.log(chalk.cyan('┌' + '─'.repeat(bannerWidth) + '┐'));
53
+ console.log(`${chalk.cyan('│')} ${chalk.bold.white('Framework: ')}${chalk.bold.cyan(framework.padEnd(bannerWidth - 12))} ${chalk.cyan('│')}`);
54
+ console.log(`${chalk.cyan('│')} ${chalk.bold.white('Version: ')}${chalk.bold.green(version.padEnd(bannerWidth - 12))} ${chalk.cyan('│')}`);
55
+ console.log(`${chalk.cyan('│')} ${chalk.bold.white('Env: ')}${chalk.bold.yellow(env.padEnd(bannerWidth - 12))} ${chalk.cyan('│')}`);
56
+ console.log(`${chalk.cyan('│')} ${chalk.bold.white('Database: ')}${chalk.bold.magenta(db.padEnd(bannerWidth - 12))} ${chalk.cyan('│')}`);
57
+ console.log(chalk.cyan('└' + '─'.repeat(bannerWidth) + '┘'));
58
+ console.log();
59
+ /* eslint-enable no-console */
60
+ };
61
+ /**
62
+ * Display success message
63
+ */
64
+ const displaySuccess = (message) => {
65
+ const formatted = `${chalk.green('[✓]')} ${message}`;
66
+ Logger.info(formatted);
67
+ };
68
+ /**
69
+ * Display warning message
70
+ */
71
+ const displayWarning = (message) => {
72
+ const formatted = `${chalk.yellow('[!]')} ${message}`;
73
+ Logger.warn(formatted);
74
+ };
75
+ /**
76
+ * Display debug message (only if verbose)
77
+ */
78
+ const displayDebug = (message, verbose = false) => {
79
+ if (verbose) {
80
+ const formatted = `${chalk.gray('[DEBUG]')} ${message}`;
81
+ Logger.debug(formatted);
82
+ }
83
+ };
84
+ /**
85
+ * ErrorHandler namespace - sealed for immutability
86
+ */
87
+ export const ErrorHandler = Object.freeze({
88
+ handle: handleError,
89
+ usageError,
90
+ info: displayInfo,
91
+ success: displaySuccess,
92
+ warn: displayWarning,
93
+ debug: displayDebug,
94
+ banner: displayBanner,
95
+ });
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Prompt Helper - Interactive CLI Prompts
3
+ * Provides reusable prompt utilities using inquirer
4
+ */
5
+ export interface PromptOptions {
6
+ interactive?: boolean;
7
+ defaults?: Record<string, unknown>;
8
+ }
9
+ /**
10
+ * Prompt Helper Factory
11
+ * Sealed namespace for immutability
12
+ */
13
+ export declare const PromptHelper: Readonly<{
14
+ /**
15
+ * Generic prompt method for custom questions
16
+ */
17
+ prompt(questions: unknown): Promise<Record<string, unknown>>;
18
+ /**
19
+ * Ask for project name
20
+ */
21
+ projectName(defaultName?: string, interactive?: boolean): Promise<string>;
22
+ /**
23
+ * Ask for database type
24
+ */
25
+ databaseType(defaultDb?: string, interactive?: boolean): Promise<string>;
26
+ /**
27
+ * Ask for port number
28
+ */
29
+ port(defaultPort?: number, interactive?: boolean): Promise<number>;
30
+ /**
31
+ * Ask for feature selection
32
+ */
33
+ selectFeatures(availableFeatures?: string[], interactive?: boolean): Promise<string[]>;
34
+ /**
35
+ * Confirm action
36
+ */
37
+ confirm(message: string, defaultConfirm?: boolean, interactive?: boolean): Promise<boolean>;
38
+ /**
39
+ * Choose from list
40
+ */
41
+ chooseFrom(message: string, choices: string[], defaultChoice?: string, interactive?: boolean): Promise<string>;
42
+ /**
43
+ * Get text input
44
+ */
45
+ textInput(message: string, defaultValue?: string, interactive?: boolean): Promise<string>;
46
+ }>;
47
+ //# sourceMappingURL=PromptHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptHelper.d.ts","sourceRoot":"","sources":["../../../src/cli/PromptHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB;;OAEG;sBACqB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMlE;;OAEG;8BAC6B,MAAM,gBAAe,OAAO,GAAU,OAAO,CAAC,MAAM,CAAC;IAuBrF;;OAEG;6BAEU,MAAM,gBACJ,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;OAEG;uBACqB,MAAM,gBAAsB,OAAO,GAAU,OAAO,CAAC,MAAM,CAAC;IAqBpF;;OAEG;uCAEkB,MAAM,EAAE,gBACd,OAAO,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBpB;;OAEG;qBAEQ,MAAM,mBACC,OAAO,gBACV,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;OAEG;wBAEQ,MAAM,WACN,MAAM,EAAE,kBACF,MAAM,gBACR,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC;IAkBlB;;OAEG;uBAEQ,MAAM,iBACD,MAAM,gBACP,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC;EAgBlB,CAAC"}