@zintrust/core 0.1.18 → 0.1.20

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 (558) hide show
  1. package/README.md +16 -10
  2. package/bin/zintrust-main.d.ts.map +1 -1
  3. package/bin/zintrust-main.js +9 -0
  4. package/package.json +11 -2
  5. package/public/error-pages/404.html +145 -0
  6. package/public/error-pages/500.html +266 -0
  7. package/public/error-pages/error.css +628 -0
  8. package/public/error-pages/error.js +428 -0
  9. package/public/index.html +1 -1
  10. package/public/zintrust.svg +30 -0
  11. package/routes/api.d.ts +7 -0
  12. package/routes/api.d.ts.map +1 -0
  13. package/routes/api.js +115 -0
  14. package/routes/broadcast.d.ts +9 -0
  15. package/routes/broadcast.d.ts.map +1 -0
  16. package/routes/broadcast.js +27 -0
  17. package/routes/health.d.ts +7 -0
  18. package/routes/health.d.ts.map +1 -0
  19. package/routes/health.js +127 -0
  20. package/routes/metrics.d.ts +9 -0
  21. package/routes/metrics.d.ts.map +1 -0
  22. package/routes/metrics.js +20 -0
  23. package/routes/openapi.d.ts +9 -0
  24. package/routes/openapi.d.ts.map +1 -0
  25. package/routes/openapi.js +76 -0
  26. package/routes/storage.d.ts +4 -0
  27. package/routes/storage.d.ts.map +1 -0
  28. package/routes/storage.js +35 -0
  29. package/src/boot/Application.d.ts +2 -2
  30. package/src/boot/Application.d.ts.map +1 -1
  31. package/src/boot/Application.js +18 -3
  32. package/src/boot/Server.d.ts +3 -2
  33. package/src/boot/Server.d.ts.map +1 -1
  34. package/src/boot/Server.js +39 -165
  35. package/src/boot/bootstrap.js +1 -1
  36. package/src/cache/Cache.d.ts +1 -1
  37. package/src/cache/Cache.d.ts.map +1 -1
  38. package/src/cache/CacheDriver.d.ts +4 -0
  39. package/src/cache/CacheDriver.d.ts.map +1 -1
  40. package/src/cache/drivers/KVDriver.d.ts +1 -1
  41. package/src/cache/drivers/KVDriver.d.ts.map +1 -1
  42. package/src/cache/drivers/MemoryDriver.d.ts +1 -1
  43. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  44. package/src/cache/drivers/MemoryDriver.js +16 -0
  45. package/src/cache/drivers/MongoDriver.d.ts +1 -1
  46. package/src/cache/drivers/MongoDriver.d.ts.map +1 -1
  47. package/src/cache/drivers/RedisDriver.d.ts +1 -1
  48. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  49. package/src/cli/CLI.d.ts.map +1 -1
  50. package/src/cli/CLI.js +12 -4
  51. package/src/cli/PromptHelper.d.ts.map +1 -1
  52. package/src/cli/PromptHelper.js +4 -3
  53. package/src/cli/commands/AddCommand.d.ts +2 -2
  54. package/src/cli/commands/AddCommand.d.ts.map +1 -1
  55. package/src/cli/commands/AddCommand.js +135 -58
  56. package/src/cli/commands/ConfigCommand.d.ts +1 -1
  57. package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
  58. package/src/cli/commands/CreateCommand.d.ts +15 -0
  59. package/src/cli/commands/CreateCommand.d.ts.map +1 -0
  60. package/src/cli/commands/CreateCommand.js +143 -0
  61. package/src/cli/commands/D1MigrateCommand.d.ts +1 -1
  62. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
  63. package/src/cli/commands/D1MigrateCommand.js +16 -20
  64. package/src/cli/commands/DbSeedCommand.d.ts +9 -0
  65. package/src/cli/commands/DbSeedCommand.d.ts.map +1 -0
  66. package/src/cli/commands/DbSeedCommand.js +171 -0
  67. package/src/cli/commands/DebugCommand.d.ts +1 -1
  68. package/src/cli/commands/DebugCommand.d.ts.map +1 -1
  69. package/src/cli/commands/FixCommand.d.ts +1 -1
  70. package/src/cli/commands/FixCommand.d.ts.map +1 -1
  71. package/src/cli/commands/JwtDevCommand.d.ts +8 -0
  72. package/src/cli/commands/JwtDevCommand.d.ts.map +1 -0
  73. package/src/cli/commands/JwtDevCommand.js +114 -0
  74. package/src/cli/commands/KeyGenerateCommand.d.ts +1 -1
  75. package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -1
  76. package/src/cli/commands/LogsCommand.d.ts +2 -2
  77. package/src/cli/commands/LogsCommand.d.ts.map +1 -1
  78. package/src/cli/commands/LogsCommand.js +36 -2
  79. package/src/cli/commands/MakeMailTemplateCommand.d.ts +1 -1
  80. package/src/cli/commands/MakeMailTemplateCommand.d.ts.map +1 -1
  81. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts +1 -1
  82. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts.map +1 -1
  83. package/src/cli/commands/MigrateCommand.d.ts +1 -1
  84. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  85. package/src/cli/commands/MigrateCommand.js +291 -35
  86. package/src/cli/commands/NewCommand.d.ts +2 -2
  87. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  88. package/src/cli/commands/NewCommand.js +38 -13
  89. package/src/cli/commands/PluginCommand.d.ts +1 -1
  90. package/src/cli/commands/PluginCommand.d.ts.map +1 -1
  91. package/src/cli/commands/PrepareCommand.d.ts +1 -1
  92. package/src/cli/commands/PrepareCommand.d.ts.map +1 -1
  93. package/src/cli/commands/QACommand.d.ts +2 -2
  94. package/src/cli/commands/QACommand.d.ts.map +1 -1
  95. package/src/cli/commands/RoutesCommand.d.ts +10 -0
  96. package/src/cli/commands/RoutesCommand.d.ts.map +1 -0
  97. package/src/cli/commands/RoutesCommand.js +242 -0
  98. package/src/cli/commands/SimulateCommand.d.ts +1 -1
  99. package/src/cli/commands/SimulateCommand.d.ts.map +1 -1
  100. package/src/cli/commands/SimulateCommand.js +1 -1
  101. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  102. package/src/cli/commands/StartCommand.js +90 -3
  103. package/src/cli/commands/UpgradeCommand.d.ts +16 -0
  104. package/src/cli/commands/UpgradeCommand.d.ts.map +1 -0
  105. package/src/cli/commands/UpgradeCommand.js +107 -0
  106. package/src/cli/commands/index.d.ts +3 -0
  107. package/src/cli/commands/index.d.ts.map +1 -1
  108. package/src/cli/commands/index.js +3 -0
  109. package/src/cli/commands/runner/index.d.ts +3 -0
  110. package/src/cli/commands/runner/index.d.ts.map +1 -0
  111. package/src/cli/commands/runner/index.js +139 -0
  112. package/src/cli/config/ConfigManager.d.ts +1 -1
  113. package/src/cli/config/ConfigManager.d.ts.map +1 -1
  114. package/src/cli/config/ConfigValidator.d.ts +1 -1
  115. package/src/cli/config/ConfigValidator.d.ts.map +1 -1
  116. package/src/cli/config/ConfigValidator.js +1 -1
  117. package/src/cli/d1/D1SqlMigrations.d.ts +20 -0
  118. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -0
  119. package/src/cli/d1/D1SqlMigrations.js +224 -0
  120. package/src/cli/d1/WranglerConfig.d.ts +4 -0
  121. package/src/cli/d1/WranglerConfig.d.ts.map +1 -0
  122. package/src/cli/d1/WranglerConfig.js +122 -0
  123. package/src/cli/d1/WranglerD1.d.ts +11 -0
  124. package/src/cli/d1/WranglerD1.d.ts.map +1 -0
  125. package/src/cli/d1/WranglerD1.js +16 -0
  126. package/src/cli/env/EnvFileBackfill.d.ts +10 -0
  127. package/src/cli/env/EnvFileBackfill.d.ts.map +1 -0
  128. package/src/cli/env/EnvFileBackfill.js +64 -0
  129. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -1
  130. package/src/cli/scaffolding/ControllerGenerator.js +72 -22
  131. package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -1
  132. package/src/cli/scaffolding/FactoryGenerator.js +3 -1
  133. package/src/cli/scaffolding/GovernanceScaffolder.d.ts +23 -0
  134. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -0
  135. package/src/cli/scaffolding/GovernanceScaffolder.js +327 -0
  136. package/src/cli/scaffolding/MigrationGenerator.d.ts +10 -0
  137. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -1
  138. package/src/cli/scaffolding/MigrationGenerator.js +137 -51
  139. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  140. package/src/cli/scaffolding/ProjectScaffolder.js +54 -59
  141. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -1
  142. package/src/cli/scaffolding/RouteGenerator.js +79 -43
  143. package/src/cli/scaffolding/SeederGenerator.d.ts +5 -0
  144. package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -1
  145. package/src/cli/scaffolding/SeederGenerator.js +63 -15
  146. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
  147. package/src/cli/scaffolding/ServiceScaffolder.js +24 -3
  148. package/src/cli/scaffolding/index.d.ts +2 -0
  149. package/src/cli/scaffolding/index.d.ts.map +1 -1
  150. package/src/cli/scaffolding/index.js +1 -0
  151. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  152. package/src/cli/utils/DistPackager.js +8 -0
  153. package/src/common/index.d.ts +8 -0
  154. package/src/common/index.d.ts.map +1 -1
  155. package/src/common/index.js +28 -0
  156. package/src/common/utility.d.ts +38 -0
  157. package/src/common/utility.d.ts.map +1 -0
  158. package/src/common/utility.js +101 -0
  159. package/src/config/FileLogWriter.d.ts +2 -1
  160. package/src/config/FileLogWriter.d.ts.map +1 -1
  161. package/src/config/FileLogWriter.js +83 -2
  162. package/src/config/app.d.ts.map +1 -1
  163. package/src/config/app.js +3 -1
  164. package/src/config/broadcast.d.ts +1 -1
  165. package/src/config/broadcast.d.ts.map +1 -1
  166. package/src/config/broadcast.js +1 -1
  167. package/src/config/cache.d.ts +1 -1
  168. package/src/config/cache.d.ts.map +1 -1
  169. package/src/config/cloudflare.d.ts +1 -1
  170. package/src/config/cloudflare.d.ts.map +1 -1
  171. package/src/config/database.d.ts +7 -1
  172. package/src/config/database.d.ts.map +1 -1
  173. package/src/config/database.js +99 -7
  174. package/src/config/env.d.ts +6 -0
  175. package/src/config/env.d.ts.map +1 -1
  176. package/src/config/env.js +7 -0
  177. package/src/config/index.d.ts +8 -2
  178. package/src/config/index.d.ts.map +1 -1
  179. package/src/config/logging/KvLogger.js +1 -1
  180. package/src/config/logging/SlackLogger.js +2 -2
  181. package/src/config/middleware.d.ts +22 -2
  182. package/src/config/middleware.d.ts.map +1 -1
  183. package/src/config/middleware.js +179 -11
  184. package/src/config/notification.js +1 -1
  185. package/src/config/security.d.ts +1 -1
  186. package/src/config/security.js +1 -1
  187. package/src/config/storage.js +1 -1
  188. package/src/config/type.d.ts +8 -2
  189. package/src/config/type.d.ts.map +1 -1
  190. package/src/events/EventDispatcher.d.ts.map +1 -1
  191. package/src/events/EventDispatcher.js +6 -4
  192. package/src/exceptions/ZintrustError.d.ts +7 -0
  193. package/src/exceptions/ZintrustError.d.ts.map +1 -1
  194. package/src/exceptions/ZintrustError.js +56 -0
  195. package/src/features/Auth.d.ts +1 -1
  196. package/src/features/Auth.d.ts.map +1 -1
  197. package/src/features/Auth.js +3 -3
  198. package/src/features/Queue.js +1 -1
  199. package/src/functions/cloudflare.d.ts.map +1 -1
  200. package/src/functions/cloudflare.js +3 -14
  201. package/src/functions/deno.d.ts.map +1 -1
  202. package/src/functions/deno.js +3 -14
  203. package/src/functions/lambda.d.ts.map +1 -1
  204. package/src/functions/lambda.js +3 -14
  205. package/src/health/StartupHealthChecks.js +1 -1
  206. package/src/http/Controller.d.ts +2 -2
  207. package/src/http/Controller.d.ts.map +1 -1
  208. package/src/http/FileUpload.d.ts +68 -0
  209. package/src/http/FileUpload.d.ts.map +1 -0
  210. package/src/http/FileUpload.js +120 -0
  211. package/src/http/Kernel.d.ts +5 -5
  212. package/src/http/Kernel.d.ts.map +1 -1
  213. package/src/http/Kernel.js +139 -23
  214. package/src/http/Request.d.ts +20 -1
  215. package/src/http/Request.d.ts.map +1 -1
  216. package/src/http/Request.js +23 -0
  217. package/src/http/RequestContext.d.ts +6 -0
  218. package/src/http/RequestContext.d.ts.map +1 -1
  219. package/src/http/RequestContext.js +77 -1
  220. package/src/http/Response.d.ts +1 -1
  221. package/src/http/Response.d.ts.map +1 -1
  222. package/src/http/ValidationHelper.d.ts +78 -0
  223. package/src/http/ValidationHelper.d.ts.map +1 -0
  224. package/src/http/ValidationHelper.js +121 -0
  225. package/src/http/error-pages/ErrorPageRenderer.d.ts +17 -0
  226. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -0
  227. package/src/http/error-pages/ErrorPageRenderer.js +88 -0
  228. package/src/http/middleware/BodyParsingMiddleware.d.ts +12 -0
  229. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -0
  230. package/src/http/middleware/BodyParsingMiddleware.js +251 -0
  231. package/src/http/middleware/FileUploadMiddleware.d.ts +12 -0
  232. package/src/http/middleware/FileUploadMiddleware.d.ts.map +1 -0
  233. package/src/http/middleware/FileUploadMiddleware.js +74 -0
  234. package/src/http/parsers/BodyParsers.d.ts +32 -0
  235. package/src/http/parsers/BodyParsers.d.ts.map +1 -0
  236. package/src/http/parsers/BodyParsers.js +159 -0
  237. package/src/http/parsers/MultipartParser.d.ts +33 -0
  238. package/src/http/parsers/MultipartParser.d.ts.map +1 -0
  239. package/src/http/parsers/MultipartParser.js +129 -0
  240. package/src/http/parsers/MultipartParserRegistry.d.ts +34 -0
  241. package/src/http/parsers/MultipartParserRegistry.d.ts.map +1 -0
  242. package/src/http/parsers/MultipartParserRegistry.js +20 -0
  243. package/src/http/validated.d.ts +12 -0
  244. package/src/http/validated.d.ts.map +1 -0
  245. package/src/http/validated.js +41 -0
  246. package/src/index.d.ts +65 -7
  247. package/src/index.d.ts.map +1 -1
  248. package/src/index.js +59 -5
  249. package/src/microservices/RequestTracingMiddleware.d.ts +2 -2
  250. package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -1
  251. package/src/microservices/RequestTracingMiddleware.js +3 -0
  252. package/src/microservices/ServiceAuthMiddleware.d.ts +2 -2
  253. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -1
  254. package/src/middleware/AuthMiddleware.d.ts +10 -0
  255. package/src/middleware/AuthMiddleware.d.ts.map +1 -0
  256. package/src/middleware/AuthMiddleware.js +16 -0
  257. package/src/middleware/CsrfMiddleware.d.ts +11 -1
  258. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  259. package/src/middleware/CsrfMiddleware.js +33 -0
  260. package/src/middleware/JwtAuthMiddleware.d.ts +11 -0
  261. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -0
  262. package/src/middleware/JwtAuthMiddleware.js +73 -0
  263. package/src/middleware/LoggingMiddleware.d.ts.map +1 -1
  264. package/src/middleware/LoggingMiddleware.js +8 -3
  265. package/src/middleware/MiddlewareStack.d.ts +2 -2
  266. package/src/middleware/MiddlewareStack.d.ts.map +1 -1
  267. package/src/middleware/RateLimiter.d.ts +2 -2
  268. package/src/middleware/RateLimiter.d.ts.map +1 -1
  269. package/src/middleware/RateLimiter.js +26 -1
  270. package/src/middleware/SanitizeBodyMiddleware.d.ts +12 -0
  271. package/src/middleware/SanitizeBodyMiddleware.d.ts.map +1 -0
  272. package/src/middleware/SanitizeBodyMiddleware.js +31 -0
  273. package/src/middleware/SecurityMiddleware.d.ts +1 -1
  274. package/src/middleware/SecurityMiddleware.d.ts.map +1 -1
  275. package/src/middleware/SessionMiddleware.d.ts +1 -1
  276. package/src/middleware/SessionMiddleware.d.ts.map +1 -1
  277. package/src/middleware/ValidationMiddleware.d.ts +25 -0
  278. package/src/middleware/ValidationMiddleware.d.ts.map +1 -0
  279. package/src/middleware/ValidationMiddleware.js +251 -0
  280. package/src/migrations/MigrationDiscovery.d.ts +5 -0
  281. package/src/migrations/MigrationDiscovery.d.ts.map +1 -0
  282. package/src/migrations/MigrationDiscovery.js +16 -0
  283. package/src/migrations/MigrationLoader.d.ts +5 -0
  284. package/src/migrations/MigrationLoader.d.ts.map +1 -0
  285. package/src/migrations/MigrationLoader.js +43 -0
  286. package/src/migrations/MigrationLock.d.ts +4 -0
  287. package/src/migrations/MigrationLock.d.ts.map +1 -0
  288. package/src/migrations/MigrationLock.js +33 -0
  289. package/src/migrations/Migrator.d.ts +23 -0
  290. package/src/migrations/Migrator.d.ts.map +1 -0
  291. package/src/migrations/Migrator.js +4 -0
  292. package/src/migrations/MigratorFactory.d.ts +25 -0
  293. package/src/migrations/MigratorFactory.d.ts.map +1 -0
  294. package/src/migrations/MigratorFactory.js +323 -0
  295. package/src/migrations/schema/Blueprint.d.ts +5 -0
  296. package/src/migrations/schema/Blueprint.d.ts.map +1 -0
  297. package/src/migrations/schema/Blueprint.js +189 -0
  298. package/src/migrations/schema/Schema.d.ts +8 -0
  299. package/src/migrations/schema/Schema.d.ts.map +1 -0
  300. package/src/migrations/schema/Schema.js +141 -0
  301. package/src/migrations/schema/SchemaCompiler.d.ts +20 -0
  302. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -0
  303. package/src/migrations/schema/SchemaCompiler.js +262 -0
  304. package/src/migrations/schema/index.d.ts +5 -0
  305. package/src/migrations/schema/index.d.ts.map +1 -0
  306. package/src/migrations/schema/index.js +3 -0
  307. package/src/migrations/schema/types.d.ts +86 -0
  308. package/src/migrations/schema/types.d.ts.map +1 -0
  309. package/src/migrations/schema/types.js +1 -0
  310. package/src/migrations/types.d.ts +45 -0
  311. package/src/migrations/types.d.ts.map +1 -0
  312. package/src/migrations/types.js +1 -0
  313. package/src/node-singletons/crypto.d.ts +1 -1
  314. package/src/node-singletons/crypto.d.ts.map +1 -1
  315. package/src/node-singletons/crypto.js +1 -1
  316. package/src/node-singletons/fs.d.ts +2 -2
  317. package/src/node-singletons/fs.d.ts.map +1 -1
  318. package/src/node-singletons/fs.js +1 -1
  319. package/src/node-singletons/util.d.ts +6 -0
  320. package/src/node-singletons/util.d.ts.map +1 -0
  321. package/src/node-singletons/util.js +5 -0
  322. package/src/node.d.ts +2 -0
  323. package/src/node.d.ts.map +1 -1
  324. package/src/node.js +7 -0
  325. package/src/observability/OpenTelemetry.d.ts +62 -0
  326. package/src/observability/OpenTelemetry.d.ts.map +1 -0
  327. package/src/observability/OpenTelemetry.js +167 -0
  328. package/src/observability/PrometheusMetrics.d.ts +25 -0
  329. package/src/observability/PrometheusMetrics.d.ts.map +1 -0
  330. package/src/observability/PrometheusMetrics.js +114 -0
  331. package/src/openapi/OpenApiGenerator.d.ts +68 -0
  332. package/src/openapi/OpenApiGenerator.d.ts.map +1 -0
  333. package/src/openapi/OpenApiGenerator.js +287 -0
  334. package/src/orm/Database.d.ts +4 -2
  335. package/src/orm/Database.d.ts.map +1 -1
  336. package/src/orm/Database.js +142 -29
  337. package/src/orm/DatabaseAdapter.d.ts +13 -0
  338. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  339. package/src/orm/DatabaseAdapterRegistry.d.ts.map +1 -1
  340. package/src/orm/DatabaseAdapterRegistry.js +3 -1
  341. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  342. package/src/orm/DatabaseRuntimeRegistration.js +4 -0
  343. package/src/orm/Model.d.ts +30 -2
  344. package/src/orm/Model.d.ts.map +1 -1
  345. package/src/orm/Model.js +255 -62
  346. package/src/orm/QueryBuilder.d.ts +22 -1
  347. package/src/orm/QueryBuilder.d.ts.map +1 -1
  348. package/src/orm/QueryBuilder.js +405 -95
  349. package/src/orm/Relationships.d.ts +7 -1
  350. package/src/orm/Relationships.d.ts.map +1 -1
  351. package/src/orm/Relationships.js +18 -0
  352. package/src/orm/SchemaCompiler.d.ts +9 -0
  353. package/src/orm/SchemaCompiler.d.ts.map +1 -0
  354. package/src/orm/SchemaCompiler.js +145 -0
  355. package/src/orm/adapters/D1Adapter.d.ts +1 -1
  356. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  357. package/src/orm/adapters/MySQLAdapter.d.ts +1 -1
  358. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
  359. package/src/orm/adapters/MySQLAdapter.js +88 -69
  360. package/src/orm/adapters/PostgreSQLAdapter.d.ts +1 -1
  361. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  362. package/src/orm/adapters/PostgreSQLAdapter.js +88 -69
  363. package/src/orm/adapters/SQLServerAdapter.d.ts +1 -1
  364. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
  365. package/src/orm/adapters/SQLiteAdapter.d.ts +1 -1
  366. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
  367. package/src/orm/adapters/SQLiteAdapter.js +63 -3
  368. package/src/orm/maintenance/SqliteMaintenance.d.ts +5 -0
  369. package/src/orm/maintenance/SqliteMaintenance.d.ts.map +1 -0
  370. package/src/orm/maintenance/SqliteMaintenance.js +14 -0
  371. package/src/orm/migrations/MigrationStore.d.ts +38 -0
  372. package/src/orm/migrations/MigrationStore.d.ts.map +1 -0
  373. package/src/orm/migrations/MigrationStore.js +157 -0
  374. package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -1
  375. package/src/performance/Optimizer.d.ts +1 -0
  376. package/src/performance/Optimizer.d.ts.map +1 -1
  377. package/src/performance/Optimizer.js +37 -3
  378. package/src/profiling/MemoryProfiler.d.ts +1 -1
  379. package/src/profiling/MemoryProfiler.d.ts.map +1 -1
  380. package/src/profiling/N1Detector.d.ts +1 -1
  381. package/src/profiling/N1Detector.d.ts.map +1 -1
  382. package/src/profiling/QueryLogger.d.ts +1 -1
  383. package/src/profiling/QueryLogger.d.ts.map +1 -1
  384. package/src/profiling/RequestProfiler.d.ts +3 -3
  385. package/src/profiling/RequestProfiler.d.ts.map +1 -1
  386. package/src/routes/api.d.ts +2 -0
  387. package/src/routes/api.d.ts.map +1 -0
  388. package/src/routes/api.js +1 -0
  389. package/src/routes/broadcast.d.ts +2 -0
  390. package/src/routes/broadcast.d.ts.map +1 -0
  391. package/src/routes/broadcast.js +1 -0
  392. package/src/routes/health.d.ts +2 -0
  393. package/src/routes/health.d.ts.map +1 -0
  394. package/src/routes/health.js +1 -0
  395. package/src/routes/metrics.d.ts +2 -0
  396. package/src/routes/metrics.d.ts.map +1 -0
  397. package/src/routes/metrics.js +1 -0
  398. package/src/routes/storage.d.ts +2 -0
  399. package/src/routes/storage.d.ts.map +1 -0
  400. package/src/routes/storage.js +1 -0
  401. package/src/routing/CoreRoutes.d.ts +12 -0
  402. package/src/routing/CoreRoutes.d.ts.map +1 -0
  403. package/src/routing/CoreRoutes.js +151 -0
  404. package/src/routing/RouteRegistry.d.ts +39 -0
  405. package/src/routing/RouteRegistry.d.ts.map +1 -0
  406. package/src/routing/RouteRegistry.js +44 -0
  407. package/src/routing/Router.d.ts +26 -9
  408. package/src/routing/Router.d.ts.map +1 -1
  409. package/src/routing/Router.js +79 -35
  410. package/src/routing/common.d.ts +15 -0
  411. package/src/routing/common.d.ts.map +1 -0
  412. package/src/routing/common.js +47 -0
  413. package/src/routing/doc.d.ts +28 -0
  414. package/src/routing/doc.d.ts.map +1 -0
  415. package/src/routing/doc.js +95 -0
  416. package/src/routing/error.d.ts +21 -0
  417. package/src/routing/error.d.ts.map +1 -0
  418. package/src/routing/error.js +126 -0
  419. package/src/routing/errorPages.d.ts +14 -0
  420. package/src/routing/errorPages.d.ts.map +1 -0
  421. package/src/routing/errorPages.js +103 -0
  422. package/src/routing/publicRoot.d.ts +18 -0
  423. package/src/routing/publicRoot.d.ts.map +1 -0
  424. package/src/routing/publicRoot.js +49 -0
  425. package/src/runtime/PluginAutoImports.d.ts +21 -0
  426. package/src/runtime/PluginAutoImports.d.ts.map +1 -0
  427. package/src/runtime/PluginAutoImports.js +59 -0
  428. package/src/runtime/PluginManager.d.ts +1 -5
  429. package/src/runtime/PluginManager.d.ts.map +1 -1
  430. package/src/runtime/PluginManager.js +25 -18
  431. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  432. package/src/runtime/RuntimeAdapter.js +20 -1
  433. package/src/runtime/RuntimeDetector.d.ts +1 -1
  434. package/src/runtime/RuntimeDetector.d.ts.map +1 -1
  435. package/src/runtime/adapters/CloudflareAdapter.d.ts +1 -1
  436. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  437. package/src/runtime/adapters/CloudflareAdapter.js +1 -1
  438. package/src/runtime/adapters/DenoAdapter.d.ts +1 -1
  439. package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -1
  440. package/src/runtime/adapters/DenoAdapter.js +3 -3
  441. package/src/runtime/adapters/LambdaAdapter.d.ts +1 -1
  442. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -1
  443. package/src/runtime/adapters/LambdaAdapter.js +1 -1
  444. package/src/runtime/adapters/NodeServerAdapter.d.ts +1 -1
  445. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -1
  446. package/src/runtime/getKernel.d.ts +9 -0
  447. package/src/runtime/getKernel.d.ts.map +1 -0
  448. package/src/runtime/getKernel.js +27 -0
  449. package/src/scripts/TemplateImportsCheck.js +47 -7
  450. package/src/scripts/TemplateSync.js +92 -20
  451. package/src/security/Encryptor.d.ts.map +1 -1
  452. package/src/security/Encryptor.js +64 -7
  453. package/src/security/JwtManager.d.ts +1 -0
  454. package/src/security/JwtManager.d.ts.map +1 -1
  455. package/src/security/JwtManager.js +33 -0
  456. package/src/security/Sanitizer.d.ts +76 -0
  457. package/src/security/Sanitizer.d.ts.map +1 -0
  458. package/src/security/Sanitizer.js +412 -0
  459. package/src/security/TokenRevocation.d.ts +7 -0
  460. package/src/security/TokenRevocation.d.ts.map +1 -0
  461. package/src/security/TokenRevocation.js +57 -0
  462. package/src/seeders/SeederDiscovery.d.ts +5 -0
  463. package/src/seeders/SeederDiscovery.d.ts.map +1 -0
  464. package/src/seeders/SeederDiscovery.js +21 -0
  465. package/src/seeders/SeederLoader.d.ts +5 -0
  466. package/src/seeders/SeederLoader.d.ts.map +1 -0
  467. package/src/seeders/SeederLoader.js +60 -0
  468. package/src/seeders/types.d.ts +18 -0
  469. package/src/seeders/types.d.ts.map +1 -0
  470. package/src/seeders/types.js +1 -0
  471. package/src/session/SessionManager.js +1 -1
  472. package/src/start.d.ts +21 -0
  473. package/src/start.d.ts.map +1 -0
  474. package/src/start.js +60 -0
  475. package/src/templates/adapters/MySQLAdapter.ts.tpl +109 -85
  476. package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +129 -88
  477. package/src/templates/adapters/SQLServerAdapter.ts.tpl +5 -9
  478. package/src/templates/adapters/SQLiteAdapter.ts.tpl +78 -11
  479. package/src/templates/features/Queue.ts.tpl +2 -2
  480. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +217 -0
  481. package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +3 -16
  482. package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +1 -3
  483. package/src/templates/project/basic/app/Middleware/index.ts.tpl +3 -8
  484. package/src/templates/project/basic/app/Models/Post.ts.tpl +2 -3
  485. package/src/templates/project/basic/app/Models/User.ts.tpl +1 -1
  486. package/src/templates/project/basic/app/Types/controller.ts.tpl +46 -0
  487. package/src/templates/project/basic/config/FileLogWriter.ts.tpl +5 -236
  488. package/src/templates/project/basic/config/SecretsManager.ts.tpl +13 -450
  489. package/src/templates/project/basic/config/StartupConfigValidator.ts.tpl +9 -268
  490. package/src/templates/project/basic/config/app.ts.tpl +13 -153
  491. package/src/templates/project/basic/config/broadcast.ts.tpl +15 -129
  492. package/src/templates/project/basic/config/cache.ts.tpl +15 -92
  493. package/src/templates/project/basic/config/cloudflare.ts.tpl +4 -39
  494. package/src/templates/project/basic/config/constants.ts.tpl +9 -65
  495. package/src/templates/project/basic/config/database.ts.tpl +29 -116
  496. package/src/templates/project/basic/config/env.ts.tpl +5 -169
  497. package/src/templates/project/basic/config/features.ts.tpl +6 -54
  498. package/src/templates/project/basic/config/index.ts.tpl +27 -24
  499. package/src/templates/project/basic/config/logger.ts.tpl +5 -381
  500. package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +1 -1
  501. package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +2 -2
  502. package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +1 -1
  503. package/src/templates/project/basic/config/mail.ts.tpl +15 -115
  504. package/src/templates/project/basic/config/microservices.ts.tpl +11 -97
  505. package/src/templates/project/basic/config/middleware.ts.tpl +27 -18
  506. package/src/templates/project/basic/config/notification.ts.tpl +14 -127
  507. package/src/templates/project/basic/config/queue.ts.tpl +16 -79
  508. package/src/templates/project/basic/config/security.ts.tpl +11 -163
  509. package/src/templates/project/basic/config/startup.ts.tpl +10 -21
  510. package/src/templates/project/basic/config/storage.ts.tpl +15 -133
  511. package/src/templates/project/basic/config/type.ts.tpl +33 -441
  512. package/src/templates/project/basic/database/factories/UserFactory.ts.tpl +80 -0
  513. package/src/templates/project/basic/database/migrations/create_tasks_table.ts.tpl +28 -0
  514. package/src/templates/project/basic/database/migrations/create_users_table.ts.tpl +29 -0
  515. package/src/templates/project/basic/database/seeders/DatabaseSeeder.ts.tpl +19 -0
  516. package/src/templates/project/basic/database/seeders/UserSeeder.ts.tpl +18 -0
  517. package/src/templates/project/basic/database/seeders/index.ts.tpl +2 -0
  518. package/src/templates/project/basic/package.json.tpl +1 -1
  519. package/src/templates/project/basic/routes/api.ts.tpl +74 -36
  520. package/src/templates/project/basic/routes/health.ts.tpl +1 -6
  521. package/src/templates/project/basic/routes/metrics.ts.tpl +22 -0
  522. package/src/templates/project/basic/src/index.ts.tpl +7 -80
  523. package/src/templates/project/basic/tsconfig.json.tpl +12 -13
  524. package/src/testing/TestEnvironment.d.ts +40 -0
  525. package/src/testing/TestEnvironment.d.ts.map +1 -0
  526. package/src/testing/TestEnvironment.js +141 -0
  527. package/src/testing/TestHttp.d.ts +29 -0
  528. package/src/testing/TestHttp.d.ts.map +1 -0
  529. package/src/testing/TestHttp.js +96 -0
  530. package/src/testing/index.d.ts +5 -0
  531. package/src/testing/index.d.ts.map +1 -0
  532. package/src/testing/index.js +2 -0
  533. package/src/time/DateTime.d.ts +181 -0
  534. package/src/time/DateTime.d.ts.map +1 -0
  535. package/src/time/DateTime.js +300 -0
  536. package/src/time/index.d.ts +7 -0
  537. package/src/time/index.d.ts.map +1 -0
  538. package/src/time/index.js +5 -0
  539. package/src/tools/http/Http.d.ts.map +1 -1
  540. package/src/tools/http/Http.js +4 -0
  541. package/src/tools/mail/drivers/Smtp.js +1 -1
  542. package/src/tools/queue/drivers/InMemory.d.ts +1 -1
  543. package/src/tools/queue/drivers/InMemory.d.ts.map +1 -1
  544. package/src/tools/queue/drivers/InMemory.js +1 -1
  545. package/src/tools/queue/drivers/Redis.d.ts +1 -1
  546. package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
  547. package/src/tools/queue/drivers/Redis.js +1 -1
  548. package/src/validation/ValidationError.d.ts.map +1 -1
  549. package/src/validation/ValidationError.js +4 -2
  550. package/src/validation/Validator.d.ts +49 -16
  551. package/src/validation/Validator.d.ts.map +1 -1
  552. package/src/validation/Validator.js +307 -5
  553. package/src/common/uuid.d.ts +0 -3
  554. package/src/common/uuid.d.ts.map +0 -1
  555. package/src/common/uuid.js +0 -30
  556. package/src/templates/project/basic/.env.example.tpl +0 -74
  557. package/src/templates/project/basic/.env.tpl +0 -166
  558. package/src/templates/project/basic/database/migrations/index.ts.tpl +0 -2
@@ -2,7 +2,7 @@
2
2
  * make:mail-template
3
3
  * Scaffolds a mail markdown template into the project.
4
4
  */
5
- import { IBaseCommand } from '../BaseCommand';
5
+ import type { IBaseCommand } from '../BaseCommand';
6
6
  export declare const MakeMailTemplateCommand: Readonly<{
7
7
  create(): IBaseCommand;
8
8
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"MakeMailTemplateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MakeMailTemplateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgC7E,eAAO,MAAM,uBAAuB;cACxB,YAAY;EA6EtB,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"MakeMailTemplateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MakeMailTemplateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAiCrE,eAAO,MAAM,uBAAuB;cACxB,YAAY;EA6EtB,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * make:notification-template
3
3
  * Scaffolds a notification markdown template into the project.
4
4
  */
5
- import { IBaseCommand } from '../BaseCommand';
5
+ import type { IBaseCommand } from '../BaseCommand';
6
6
  export declare const MakeNotificationTemplateCommand: Readonly<{
7
7
  create(): IBaseCommand;
8
8
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"MakeNotificationTemplateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MakeNotificationTemplateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoH7E,eAAO,MAAM,+BAA+B;cAChC,YAAY;EAsCtB,CAAC;AAEH,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"MakeNotificationTemplateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MakeNotificationTemplateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqHrE,eAAO,MAAM,+BAA+B;cAChC,YAAY;EAsCtB,CAAC;AAEH,eAAe,+BAA+B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Migrate Command
3
3
  * Run database migrations
4
4
  */
5
- import { IBaseCommand } from '../BaseCommand';
5
+ import type { IBaseCommand } from '../BaseCommand';
6
6
  /**
7
7
  * Migrate Command Factory
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MigrateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI7E;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;cACO,YAAY;EA2CtB,CAAC"}
1
+ {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/MigrateCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsarE;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;cACO,YAAY;EAUtB,CAAC"}
@@ -2,8 +2,297 @@
2
2
  * Migrate Command
3
3
  * Run database migrations
4
4
  */
5
+ import { Migrator } from '../../migrations/Migrator.js';
5
6
  import { BaseCommand } from '../BaseCommand.js';
7
+ import { D1SqlMigrations } from '../d1/D1SqlMigrations.js';
8
+ import { WranglerConfig } from '../d1/WranglerConfig.js';
9
+ import { WranglerD1 } from '../d1/WranglerD1.js';
10
+ import { PromptHelper } from '../PromptHelper.js';
11
+ import { databaseConfig } from '../../config/database.js';
12
+ import { Env } from '../../config/env.js';
6
13
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
14
+ import * as path from '../../node-singletons/path.js';
15
+ import { Database } from '../../orm/Database.js';
16
+ import { DatabaseAdapterRegistry } from '../../orm/DatabaseAdapterRegistry.js';
17
+ const addMigrateOptions = (command) => {
18
+ command
19
+ .option('--status', 'Display migration status (applied, pending, failed)')
20
+ .option('--fresh', 'Reset database: drop all tables and re-run all migrations')
21
+ .option('--reset', 'Rollback all migrations to initial state')
22
+ .option('--rollback', 'Rollback last migration batch')
23
+ .option('--step <number>', 'Number of batches to rollback (use with --rollback)', '1')
24
+ .option('--force', 'Skip production confirmation (allow unsafe operations in production)')
25
+ .option('--service <domain/name>', 'Run global + service-specific migrations for microservices')
26
+ .option('--only-service <domain/name>', 'Run only service-specific migrations (exclude global)')
27
+ .option('--local', 'D1 only: run against local D1 database')
28
+ .option('--remote', 'D1 only: run against remote D1 database')
29
+ .option('--database <name>', 'D1 only: Wrangler D1 database binding name (not DB_DATABASE env var)')
30
+ .option('--no-interactive', 'Disable interactive prompts (useful for CI/CD)');
31
+ };
32
+ const getInteractive = (options) => options['interactive'] !== false;
33
+ const getMigrationDirs = () => {
34
+ const globalDir = Env.get('MIGRATIONS_GLOBAL_DIR', databaseConfig.migrations.directory);
35
+ const extension = databaseConfig.migrations.extension;
36
+ const separateTracking = Env.getBool('MIGRATIONS_SEPARATE_TRACKING', false);
37
+ return { globalDir, extension, separateTracking };
38
+ };
39
+ const getServiceArgs = (options) => {
40
+ let serviceArg;
41
+ if (typeof options['onlyService'] === 'string') {
42
+ serviceArg = String(options['onlyService']);
43
+ }
44
+ else if (typeof options['service'] === 'string') {
45
+ serviceArg = String(options['service']);
46
+ }
47
+ const includeGlobal = typeof options['onlyService'] !== 'string';
48
+ return { service: serviceArg, includeGlobal };
49
+ };
50
+ const isDestructiveAction = (options) => options['fresh'] === true || options['reset'] === true || options['rollback'] === true;
51
+ const isD1Driver = (driver) => driver === 'd1' || driver === 'd1-remote';
52
+ const describeTargetDatabase = (conn) => {
53
+ switch (conn.driver) {
54
+ case 'sqlite':
55
+ return `sqlite:${conn.database}`;
56
+ case 'postgresql':
57
+ return `postgresql:${conn.host}:${conn.port}/${conn.database}`;
58
+ case 'mysql':
59
+ return `mysql:${conn.host}:${conn.port}/${conn.database}`;
60
+ default:
61
+ return `${conn.driver}`;
62
+ }
63
+ };
64
+ const mapConnectionToOrmConfig = (conn) => {
65
+ switch (conn.driver) {
66
+ case 'sqlite':
67
+ return { driver: 'sqlite', database: conn.database };
68
+ case 'postgresql':
69
+ return {
70
+ driver: 'postgresql',
71
+ host: conn.host,
72
+ port: conn.port,
73
+ database: conn.database,
74
+ username: conn.username,
75
+ password: conn.password,
76
+ };
77
+ case 'mysql':
78
+ return {
79
+ driver: 'mysql',
80
+ host: conn.host,
81
+ port: conn.port,
82
+ database: conn.database,
83
+ username: conn.username,
84
+ password: conn.password,
85
+ };
86
+ default:
87
+ return { driver: 'sqlite', database: ':memory:' };
88
+ }
89
+ };
90
+ const confirmProductionRun = async (cmd, interactive, destructive, force) => {
91
+ if (Env.NODE_ENV !== 'production')
92
+ return true;
93
+ if (force)
94
+ return true;
95
+ const confirmed = await PromptHelper.confirm(`NODE_ENV=production. Continue running migrations${destructive ? ' (destructive)' : ''}?`, false, interactive);
96
+ if (!confirmed) {
97
+ cmd.warn('Cancelled.');
98
+ return false;
99
+ }
100
+ return true;
101
+ };
102
+ const printStatus = (cmd, rows) => {
103
+ if (rows.length === 0) {
104
+ cmd.info('No migrations found.');
105
+ return;
106
+ }
107
+ for (const row of rows) {
108
+ const normalizedStatus = typeof row.status === 'string' ? row.status : null;
109
+ const tag = normalizedStatus ?? (row.applied ? 'applied' : 'pending');
110
+ const hasMeta = normalizedStatus === 'completed' ||
111
+ normalizedStatus === 'failed' ||
112
+ normalizedStatus === 'running' ||
113
+ row.applied;
114
+ const extra = hasMeta ? ` (batch=${row.batch ?? '?'}, at=${row.appliedAt ?? '?'})` : '';
115
+ cmd.info(`${tag}: ${row.name}${extra}`);
116
+ }
117
+ };
118
+ const logAppliedMigrations = (cmd, appliedNames) => {
119
+ cmd.info('Applied migrations:');
120
+ for (const name of appliedNames) {
121
+ cmd.info(`✓ ${name}`);
122
+ }
123
+ };
124
+ const parseRollbackSteps = (options) => {
125
+ const stepRaw = typeof options['step'] === 'string' ? options['step'] : '1';
126
+ return Math.max(1, Number.parseInt(stepRaw, 10) || 1);
127
+ };
128
+ const handleStatusAction = async (migrator, cmd, driver) => {
129
+ cmd.info(`Adapter: ${driver}`);
130
+ const rows = await migrator.status();
131
+ printStatus(cmd, rows);
132
+ };
133
+ const handleFreshAction = async (migrator, cmd, interactive) => {
134
+ cmd.warn('This will drop all tables and re-run migrations.');
135
+ if (interactive) {
136
+ const confirmed = await PromptHelper.confirm('Continue?', false, interactive);
137
+ if (!confirmed) {
138
+ cmd.warn('Cancelled.');
139
+ return;
140
+ }
141
+ }
142
+ const result = await migrator.fresh();
143
+ cmd.success(`Fresh migration completed (applied=${result.applied})`);
144
+ };
145
+ const handleResetAction = async (migrator, cmd, interactive) => {
146
+ cmd.warn('This will rollback ALL migrations.');
147
+ if (interactive) {
148
+ const confirmed = await PromptHelper.confirm('Continue?', false, interactive);
149
+ if (!confirmed) {
150
+ cmd.warn('Cancelled.');
151
+ return;
152
+ }
153
+ }
154
+ const result = await migrator.resetAll();
155
+ cmd.success(`All migrations reset (rolledBack=${result.rolledBack})`);
156
+ };
157
+ const handleRollbackAction = async (migrator, cmd, options) => {
158
+ const steps = parseRollbackSteps(options);
159
+ const result = await migrator.rollbackLastBatch(steps);
160
+ cmd.success(`Migrations rolled back (rolledBack=${result.rolledBack})`);
161
+ };
162
+ const handleMigrateAction = async (migrator, cmd) => {
163
+ const result = await migrator.migrate();
164
+ if (result.applied === 0) {
165
+ cmd.success(`Migrations completed successfully (applied=${result.applied})`);
166
+ return;
167
+ }
168
+ const appliedNames = Array.isArray(result.appliedNames)
169
+ ? result.appliedNames
170
+ : [];
171
+ if (appliedNames.length > 0) {
172
+ logAppliedMigrations(cmd, appliedNames);
173
+ }
174
+ cmd.success(`Migrations completed successfully (applied=${result.applied})`);
175
+ };
176
+ const runMigratorActions = async (migrator, options, cmd, interactive, driver) => {
177
+ if (options['status'] === true) {
178
+ await handleStatusAction(migrator, cmd, driver);
179
+ return;
180
+ }
181
+ if (options['fresh'] === true) {
182
+ await handleFreshAction(migrator, cmd, interactive);
183
+ return;
184
+ }
185
+ if (options['reset'] === true) {
186
+ await handleResetAction(migrator, cmd, interactive);
187
+ return;
188
+ }
189
+ if (options['rollback'] === true) {
190
+ await handleRollbackAction(migrator, cmd, options);
191
+ return;
192
+ }
193
+ await handleMigrateAction(migrator, cmd);
194
+ };
195
+ const runD1Actions = async (params) => {
196
+ const { options, cmd, projectRoot, globalDir, extension, separateTracking, service, includeGlobal, } = params;
197
+ if (options['status'] === true ||
198
+ options['fresh'] === true ||
199
+ options['reset'] === true ||
200
+ options['rollback'] === true) {
201
+ throw ErrorFactory.createCliError('This project is configured for D1. Only applying migrations is supported here. Use `zin d1:migrate --local|--remote` (and Wrangler subcommands) for status/rollback/reset.');
202
+ }
203
+ if (separateTracking) {
204
+ cmd.warn('Note: MIGRATIONS_SEPARATE_TRACKING is ignored for D1 (Wrangler owns tracking).');
205
+ }
206
+ const isLocal = options['local'] === true || options['remote'] !== true;
207
+ const dbName = typeof options['database'] === 'string' && options['database'].trim() !== ''
208
+ ? options['database']
209
+ : 'zintrust_db';
210
+ const migrationsRelDir = WranglerConfig.getD1MigrationsDir(projectRoot, dbName);
211
+ const outputDir = path.join(projectRoot, migrationsRelDir);
212
+ cmd.info(`Generating D1 SQL migrations into ${migrationsRelDir}...`);
213
+ const generated = await D1SqlMigrations.compileAndWrite({
214
+ projectRoot,
215
+ globalDir,
216
+ extension,
217
+ service,
218
+ includeGlobal,
219
+ outputDir,
220
+ });
221
+ cmd.info(`Generated ${generated.length} SQL migration file(s).`);
222
+ cmd.info(`Running D1 migrations for ${dbName} (${isLocal ? 'local' : 'remote'})...`);
223
+ const output = WranglerD1.applyMigrations({ cmd, dbName, isLocal });
224
+ if (output !== '')
225
+ cmd.info(output);
226
+ cmd.success('D1 migrations completed successfully');
227
+ };
228
+ const executeMigrate = async (options, cmd) => {
229
+ const interactive = getInteractive(options);
230
+ const conn = databaseConfig.getConnection();
231
+ // Avoid confusion: `--database` is a D1-only option (Wrangler binding name), not DB_DATABASE.
232
+ if (isD1Driver(conn.driver)) {
233
+ cmd.debug(`Migrate command executed with options: ${JSON.stringify(options)}`);
234
+ }
235
+ else {
236
+ const optionsForLog = { ...options };
237
+ delete optionsForLog['database'];
238
+ delete optionsForLog['local'];
239
+ delete optionsForLog['remote'];
240
+ cmd.debug(`Migrate command executed with options: ${JSON.stringify(optionsForLog)}`);
241
+ }
242
+ const { globalDir, extension, separateTracking } = getMigrationDirs();
243
+ const { service, includeGlobal } = getServiceArgs(options);
244
+ if (isD1Driver(conn.driver)) {
245
+ await runD1Actions({
246
+ options,
247
+ cmd,
248
+ projectRoot: process.cwd(),
249
+ globalDir,
250
+ extension,
251
+ separateTracking,
252
+ service,
253
+ includeGlobal,
254
+ });
255
+ return;
256
+ }
257
+ const ormConfig = mapConnectionToOrmConfig(conn);
258
+ const destructive = isDestructiveAction(options);
259
+ const force = options['force'] === true;
260
+ const okToProceed = await confirmProductionRun(cmd, interactive, destructive, force);
261
+ if (!okToProceed)
262
+ return;
263
+ cmd.info(`[i] Target database: ${describeTargetDatabase(conn)}`);
264
+ cmd.info('[i] Migration tracking table: migrations');
265
+ cmd.debug(`[debug] Registered database adapters: ${DatabaseAdapterRegistry.list().join(', ')}`);
266
+ // Warn only when the adapter truly isn't registered.
267
+ // Adapters are registered via side-effect imports in src/zintrust.plugins.ts
268
+ // (generated by `zin plugin install`) and are loaded at CLI startup.
269
+ if (conn.driver === 'mysql' && DatabaseAdapterRegistry.get('mysql') === undefined) {
270
+ cmd.warn('MySQL adapter is not installed/registered; migrations may not hit a real MySQL DB.');
271
+ cmd.warn('Install via `zin plugin install adapter:mysql` (or `zin add db:mysql`).');
272
+ cmd.debug('[debug] Expected a side-effect import in src/zintrust.plugins.ts like: import "@zintrust/db-mysql/register";');
273
+ }
274
+ if (conn.driver === 'postgresql' && DatabaseAdapterRegistry.get('postgresql') === undefined) {
275
+ cmd.warn('PostgreSQL adapter is not installed/registered; migrations may not hit a real PostgreSQL DB.');
276
+ cmd.warn('Install via `zin plugin install adapter:postgres` (or `zin add db:postgres`).');
277
+ }
278
+ const db = Database.create(ormConfig);
279
+ await db.connect();
280
+ try {
281
+ const migrator = Migrator.create({
282
+ db,
283
+ projectRoot: process.cwd(),
284
+ globalDir,
285
+ extension,
286
+ separateTracking,
287
+ service,
288
+ includeGlobal,
289
+ });
290
+ await runMigratorActions(migrator, options, cmd, interactive, conn.driver);
291
+ }
292
+ finally {
293
+ await db.disconnect();
294
+ }
295
+ };
7
296
  /**
8
297
  * Migrate Command Factory
9
298
  */
@@ -12,44 +301,11 @@ export const MigrateCommand = Object.freeze({
12
301
  * Create a new migrate command instance
13
302
  */
14
303
  create() {
15
- const addOptions = (command) => {
16
- command
17
- .option('--fresh', 'Drop all tables and re-run migrations')
18
- .option('--rollback', 'Rollback last migration batch')
19
- .option('--reset', 'Rollback all migrations')
20
- .option('--step <number>', 'Number of batches to rollback', '0');
21
- };
22
- const execute = (options, cmd) => {
23
- cmd.debug(`Migrate command executed with options: ${JSON.stringify(options)}`);
24
- try {
25
- cmd.info('Loading configuration...');
26
- // Configuration loading would go here
27
- if (options['fresh'] === true) {
28
- cmd.warn('This will drop all tables and re-run migrations');
29
- // Confirmation would go here
30
- cmd.success('Fresh migration completed');
31
- }
32
- else if (options['rollback'] === true) {
33
- cmd.success('Migrations rolled back');
34
- }
35
- else if (options['reset'] === true) {
36
- cmd.warn('Resetting all migrations');
37
- cmd.success('All migrations reset');
38
- }
39
- else {
40
- cmd.info('Running pending migrations...');
41
- cmd.success('Migrations completed successfully');
42
- }
43
- }
44
- catch (error) {
45
- ErrorFactory.createTryCatchError(`Migration failed: ${error.message}`, error);
46
- }
47
- };
48
304
  const cmd = BaseCommand.create({
49
305
  name: 'migrate',
50
306
  description: 'Run database migrations',
51
- addOptions,
52
- execute: (options) => execute(options, cmd),
307
+ addOptions: addMigrateOptions,
308
+ execute: async (options) => executeMigrate(options, cmd),
53
309
  });
54
310
  return cmd;
55
311
  },
@@ -2,9 +2,9 @@
2
2
  * New Command - Project scaffolding CLI command
3
3
  * Handles creation of new Zintrust projects
4
4
  */
5
- import { CommandOptions, IBaseCommand } from '../BaseCommand';
5
+ import type { CommandOptions, IBaseCommand } from '../BaseCommand';
6
6
  type TemplateType = 'basic' | 'api' | 'microservice' | 'fullstack';
7
- type DatabaseType = 'sqlite' | 'mysql' | 'postgresql' | 'mongodb';
7
+ type DatabaseType = 'sqlite' | 'mysql' | 'postgresql' | 'mongodb' | 'd1-remote';
8
8
  interface NewProjectConfigResult {
9
9
  template: TemplateType;
10
10
  database: DatabaseType;
@@ -1 +1 @@
1
- {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/NewCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAY7E,KAAK,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,GAAG,WAAW,CAAC;AACnE,KAAK,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAYlE,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAsOhD,UAAU,WAAY,SAAQ,YAAY;IACxC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,gBAAgB,EAAE,CAAC;IACjF,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IAChC,YAAY,IAAI,MAAM,CAAC;IACvB,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpE;AAmOD;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;cACO,WAAW;EAGrB,CAAC"}
1
+ {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/NewCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAcrE,KAAK,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,GAAG,WAAW,CAAC;AACnE,KAAK,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAYhF,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAuPhD,UAAU,WAAY,SAAQ,YAAY;IACxC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,gBAAgB,EAAE,CAAC;IACjF,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;IAChC,YAAY,IAAI,MAAM,CAAC;IACvB,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpE;AAwOD;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;cACO,WAAW;EAGrB,CAAC"}
@@ -1,9 +1,6 @@
1
- /**
2
- * New Command - Project scaffolding CLI command
3
- * Handles creation of new Zintrust projects
4
- */
5
1
  import { BaseCommand } from '../BaseCommand.js';
6
2
  import { PromptHelper } from '../PromptHelper.js';
3
+ import { GovernanceScaffolder } from '../scaffolding/GovernanceScaffolder.js';
7
4
  import { ProjectScaffolder } from '../scaffolding/ProjectScaffolder.js';
8
5
  import { SpawnUtil } from '../utils/spawn.js';
9
6
  import { extractErrorMessage, resolvePackageManager } from '../../common/index.js';
@@ -51,7 +48,23 @@ const getBooleanOption = (options, key, fallback) => {
51
48
  };
52
49
  const getProjectDefaults = (name, options) => {
53
50
  const template = getStringOption(options, 'template', 'basic');
54
- const database = getStringOption(options, 'database', 'sqlite');
51
+ const normalizeDatabase = (value) => {
52
+ const v = value.trim();
53
+ if (v === 'd1-proxy')
54
+ return 'd1-remote';
55
+ if (v === 'd1-remote')
56
+ return 'd1-remote';
57
+ if (v === 'sqlite')
58
+ return 'sqlite';
59
+ if (v === 'mysql')
60
+ return 'mysql';
61
+ if (v === 'postgresql' || v === 'postgres')
62
+ return 'postgresql';
63
+ if (v === 'mongodb')
64
+ return 'mongodb';
65
+ return 'sqlite';
66
+ };
67
+ const database = normalizeDatabase(getStringOption(options, 'database', 'sqlite'));
55
68
  const portRaw = getStringOption(options, 'port', '7777');
56
69
  const portParsed = Number.parseInt(portRaw, 10);
57
70
  const port = Number.isFinite(portParsed) && portParsed > 0 ? portParsed : 7777;
@@ -80,7 +93,13 @@ const getQuestions = (name, defaults) => {
80
93
  type: 'rawlist',
81
94
  name: 'database',
82
95
  message: 'Database driver:',
83
- choices: ['sqlite', 'mysql', 'postgresql', 'mongodb'],
96
+ choices: [
97
+ { name: 'sqlite — Local dev (file-based)', value: 'sqlite' },
98
+ { name: 'postgresql — Production-ready relational DB', value: 'postgresql' },
99
+ { name: 'mysql — Production-ready relational DB', value: 'mysql' },
100
+ { name: 'd1-proxy — Cloudflare D1 via HTTPS proxy', value: 'd1-remote' },
101
+ { name: 'mongodb — Document DB (may require additional setup)', value: 'mongodb' },
102
+ ],
84
103
  default: defaults.database,
85
104
  },
86
105
  {
@@ -211,6 +230,7 @@ const addOptions = (command) => {
211
230
  command.option('--no-install', 'Skip dependency installation');
212
231
  command.option('--install', 'Force dependency installation (useful to override CI defaults)');
213
232
  command.option('--package-manager <manager>', 'Package manager to use (npm, yarn, pnpm)');
233
+ command.option('--governance', 'Install governance tooling (ESLint + architecture tests)', false);
214
234
  command.option('--force', 'Overwrite existing directory');
215
235
  command.option('--overwrite', 'Overwrite existing directory');
216
236
  };
@@ -253,6 +273,16 @@ const createProject = async (target, options, command) => {
253
273
  if (isFailureResult(result)) {
254
274
  throw ErrorFactory.createCliError(result.message ?? 'Project scaffolding failed', result);
255
275
  }
276
+ if (options['governance'] === true) {
277
+ const gov = await GovernanceScaffolder.scaffold(target.projectPath, {
278
+ writeEslintConfig: true,
279
+ writeArchTests: true,
280
+ install: false,
281
+ });
282
+ if (gov.success === false) {
283
+ throw ErrorFactory.createCliError(gov.message ?? 'Governance scaffolding failed', gov);
284
+ }
285
+ }
256
286
  };
257
287
  const maybeInitializeGit = (options, command, target) => {
258
288
  if (options['git'] !== false) {
@@ -289,14 +319,9 @@ const executeNewCommand = async (options, command) => {
289
319
  const target = await resolveProjectTarget(options);
290
320
  await createProject(target, options, command);
291
321
  maybeInitializeGit(options, command, target);
292
- const installedWithPm = await maybeInstallDependencies(options, command, target);
322
+ await maybeInstallDependencies(options, command, target);
293
323
  command.success(`\n✨ Project ${target.name} created successfully!`);
294
- const optPm = options['packageManager'] ??
295
- options['package-manager'];
296
- const effectivePm = installedWithPm ?? optPm ?? resolvePackageManager();
297
- const runDevCmd = effectivePm === 'yarn' || effectivePm === 'pnpm'
298
- ? `${effectivePm} dev`
299
- : `${effectivePm} run dev`;
324
+ const runDevCmd = 'zin start';
300
325
  command.info(`\nNext steps:\n cd ${target.cdPath}\n ${runDevCmd}\n`);
301
326
  }
302
327
  catch (error) {
@@ -2,7 +2,7 @@
2
2
  * Plugin Command
3
3
  * Manage framework plugins (install, uninstall, list)
4
4
  */
5
- import { IBaseCommand } from '../BaseCommand';
5
+ import type { IBaseCommand } from '../BaseCommand';
6
6
  export declare const PluginCommand: Readonly<{
7
7
  create(): IBaseCommand;
8
8
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/PluginCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAK7E,eAAO,MAAM,aAAa;cACd,YAAY;EAuDtB,CAAC"}
1
+ {"version":3,"file":"PluginCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/PluginCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrE,eAAO,MAAM,aAAa;cACd,YAAY;EAuDtB,CAAC"}
@@ -3,6 +3,6 @@
3
3
  * Makes the local dist/ folder installable via `file:/.../dist`.
4
4
  * Usage: zintrust prepare
5
5
  */
6
- import { IBaseCommand } from '../BaseCommand';
6
+ import type { IBaseCommand } from '../BaseCommand';
7
7
  export declare const PrepareCommand: IBaseCommand;
8
8
  //# sourceMappingURL=PrepareCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrepareCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/PrepareCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAehD,eAAO,MAAM,cAAc,EA2CtB,YAAY,CAAC"}
1
+ {"version":3,"file":"PrepareCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/PrepareCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAerD,eAAO,MAAM,cAAc,EA2CtB,YAAY,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * QA Command - Unified Quality Assurance
3
3
  * Runs linting, type-checking, tests, and SonarQube
4
4
  */
5
- import { CommandOptions, IBaseCommand } from '../BaseCommand';
6
- import { Command } from 'commander';
5
+ import type { CommandOptions, IBaseCommand } from '../BaseCommand';
6
+ import type { Command } from 'commander';
7
7
  /**
8
8
  * QA Result interface
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"QACommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/QACommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAO7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAiaD,UAAU,UAAW,SAAQ,YAAY;IACvC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAgFD;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,UAe5B,CAAC"}
1
+ {"version":3,"file":"QACommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/QACommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,UAAU,QAAQ;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAiaD,UAAU,UAAW,SAAQ,YAAY;IACvC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAgFD;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,UAe5B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Routes Command
3
+ * Lists all registered routes in a table.
4
+ */
5
+ import { type IBaseCommand } from '../BaseCommand';
6
+ export declare const RoutesCommand: Readonly<{
7
+ create(): IBaseCommand;
8
+ }>;
9
+ export default RoutesCommand;
10
+ //# sourceMappingURL=RoutesCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutesCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/RoutesCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA4RvF,eAAO,MAAM,aAAa;cACd,YAAY;EAatB,CAAC;AAEH,eAAe,aAAa,CAAC"}