@zintrust/core 0.1.0 → 0.1.2

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 (518) hide show
  1. package/README.md +214 -0
  2. package/bin/zintrust.d.ts.map +1 -1
  3. package/bin/zintrust.js +18 -1
  4. package/package.json +4 -34
  5. package/public/index.html +535 -0
  6. package/src/boot/Application.d.ts.map +1 -1
  7. package/src/boot/Application.js +46 -3
  8. package/src/boot/Server.d.ts.map +1 -1
  9. package/src/boot/Server.js +3 -4
  10. package/src/boot/bootstrap.js +77 -6
  11. package/src/builder/BundleOptimizer.d.ts.map +1 -1
  12. package/src/builder/BundleOptimizer.js +25 -29
  13. package/src/cache/Cache.d.ts.map +1 -1
  14. package/src/cache/Cache.js +4 -2
  15. package/src/cache/drivers/KVDriver.d.ts.map +1 -1
  16. package/src/cache/drivers/KVDriver.js +8 -7
  17. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  18. package/src/cache/drivers/MemoryDriver.js +5 -0
  19. package/src/cache/drivers/RedisDriver.js +1 -1
  20. package/src/cli/BaseCommand.d.ts +2 -2
  21. package/src/cli/BaseCommand.d.ts.map +1 -1
  22. package/src/cli/BaseCommand.js +2 -1
  23. package/src/cli/CLI.d.ts.map +1 -1
  24. package/src/cli/CLI.js +22 -18
  25. package/src/cli/ErrorHandler.d.ts.map +1 -1
  26. package/src/cli/ErrorHandler.js +2 -4
  27. package/src/cli/commands/AddCommand.d.ts +81 -0
  28. package/src/cli/commands/AddCommand.d.ts.map +1 -1
  29. package/src/cli/commands/AddCommand.js +24 -5
  30. package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
  31. package/src/cli/commands/ConfigCommand.js +59 -25
  32. package/src/cli/commands/D1MigrateCommand.d.ts +4 -0
  33. package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
  34. package/src/cli/commands/D1MigrateCommand.js +6 -4
  35. package/src/cli/commands/FixCommand.d.ts.map +1 -1
  36. package/src/cli/commands/FixCommand.js +3 -15
  37. package/src/cli/commands/LogsCleanupCommand.d.ts +6 -0
  38. package/src/cli/commands/LogsCleanupCommand.d.ts.map +1 -0
  39. package/src/cli/commands/LogsCleanupCommand.js +20 -0
  40. package/src/cli/commands/LogsCommand.d.ts.map +1 -1
  41. package/src/cli/commands/LogsCommand.js +4 -6
  42. package/src/cli/commands/MakeMailTemplateCommand.d.ts +10 -0
  43. package/src/cli/commands/MakeMailTemplateCommand.d.ts.map +1 -0
  44. package/src/cli/commands/MakeMailTemplateCommand.js +74 -0
  45. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts +10 -0
  46. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts.map +1 -0
  47. package/src/cli/commands/MakeNotificationTemplateCommand.js +113 -0
  48. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  49. package/src/cli/commands/MigrateCommand.js +3 -3
  50. package/src/cli/commands/NewCommand.d.ts +4 -0
  51. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  52. package/src/cli/commands/NewCommand.js +34 -19
  53. package/src/cli/commands/PluginCommand.d.ts.map +1 -1
  54. package/src/cli/commands/PluginCommand.js +8 -4
  55. package/src/cli/commands/PrepareCommand.d.ts.map +1 -1
  56. package/src/cli/commands/PrepareCommand.js +1 -1
  57. package/src/cli/commands/QACommand.d.ts.map +1 -1
  58. package/src/cli/commands/QACommand.js +16 -26
  59. package/src/cli/commands/SecretsCommand.d.ts +16 -0
  60. package/src/cli/commands/SecretsCommand.d.ts.map +1 -0
  61. package/src/cli/commands/SecretsCommand.js +91 -0
  62. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  63. package/src/cli/commands/StartCommand.js +2 -2
  64. package/src/cli/commands/TemplatesCommand.d.ts +3 -0
  65. package/src/cli/commands/TemplatesCommand.d.ts.map +1 -0
  66. package/src/cli/commands/TemplatesCommand.js +65 -0
  67. package/src/cli/commands/index.d.ts +5 -0
  68. package/src/cli/commands/index.d.ts.map +1 -1
  69. package/src/cli/commands/index.js +5 -0
  70. package/src/cli/config/ConfigManager.js +1 -1
  71. package/src/cli/index.d.ts +2 -1
  72. package/src/cli/index.d.ts.map +1 -1
  73. package/src/cli/index.js +2 -1
  74. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -1
  75. package/src/cli/scaffolding/ControllerGenerator.js +11 -10
  76. package/src/cli/scaffolding/FeatureScaffolder.js +4 -4
  77. package/src/cli/scaffolding/FileGenerator.js +1 -1
  78. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -1
  79. package/src/cli/scaffolding/MigrationGenerator.js +10 -9
  80. package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -1
  81. package/src/cli/scaffolding/ModelGenerator.js +11 -10
  82. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  83. package/src/cli/scaffolding/ProjectScaffolder.js +61 -11
  84. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -1
  85. package/src/cli/scaffolding/ResponseFactoryGenerator.js +2 -1
  86. package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -1
  87. package/src/cli/scaffolding/RouteGenerator.js +15 -14
  88. package/src/cli/scaffolding/SeederGenerator.js +1 -1
  89. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -1
  90. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +7 -6
  91. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +1 -1
  92. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -1
  93. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +2 -2
  94. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
  95. package/src/cli/scaffolding/ServiceScaffolder.js +13 -12
  96. package/src/cli/scaffolding/TemplateEngine.d.ts +10 -3
  97. package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -1
  98. package/src/cli/scaffolding/TemplateEngine.js +15 -285
  99. package/src/cli/scaffolding/TemplateGenerator.d.ts +40 -0
  100. package/src/cli/scaffolding/TemplateGenerator.d.ts.map +1 -0
  101. package/src/cli/scaffolding/TemplateGenerator.js +172 -0
  102. package/src/cli/scaffolding/index.d.ts +1 -0
  103. package/src/cli/scaffolding/index.d.ts.map +1 -1
  104. package/src/cli/scaffolding/index.js +1 -0
  105. package/src/cli/utils/spawn.js +1 -1
  106. package/src/common/AwsSigV4.d.ts +41 -0
  107. package/src/common/AwsSigV4.d.ts.map +1 -0
  108. package/src/common/AwsSigV4.js +69 -0
  109. package/src/common/index.d.ts +39 -0
  110. package/src/common/index.d.ts.map +1 -1
  111. package/src/common/index.js +101 -8
  112. package/src/common/uuid.d.ts +3 -0
  113. package/src/common/uuid.d.ts.map +1 -0
  114. package/src/common/uuid.js +30 -0
  115. package/src/config/FileLogWriter.d.ts +22 -0
  116. package/src/config/FileLogWriter.d.ts.map +1 -0
  117. package/src/config/FileLogWriter.js +192 -0
  118. package/src/config/SecretsManager.d.ts.map +1 -1
  119. package/src/config/SecretsManager.js +26 -0
  120. package/src/config/StartupConfigValidator.d.ts +15 -0
  121. package/src/config/StartupConfigValidator.d.ts.map +1 -0
  122. package/src/config/StartupConfigValidator.js +86 -0
  123. package/src/config/app.d.ts +2 -1
  124. package/src/config/app.d.ts.map +1 -1
  125. package/src/config/app.js +65 -15
  126. package/src/config/broadcast.d.ts +47 -0
  127. package/src/config/broadcast.d.ts.map +1 -0
  128. package/src/config/broadcast.js +54 -0
  129. package/src/config/cache.d.ts +13 -17
  130. package/src/config/cache.d.ts.map +1 -1
  131. package/src/config/cache.js +9 -11
  132. package/src/config/cloudflare.d.ts +26 -0
  133. package/src/config/cloudflare.d.ts.map +1 -0
  134. package/src/config/cloudflare.js +38 -0
  135. package/src/config/env.d.ts +6 -0
  136. package/src/config/env.d.ts.map +1 -1
  137. package/src/config/env.js +6 -0
  138. package/src/config/index.d.ts +52 -28
  139. package/src/config/index.d.ts.map +1 -1
  140. package/src/config/index.js +3 -0
  141. package/src/config/logger.d.ts +2 -0
  142. package/src/config/logger.d.ts.map +1 -1
  143. package/src/config/logger.js +270 -11
  144. package/src/config/logging/HttpLogger.d.ts +23 -0
  145. package/src/config/logging/HttpLogger.d.ts.map +1 -0
  146. package/src/config/logging/HttpLogger.js +93 -0
  147. package/src/config/logging/KvLogger.d.ts +22 -0
  148. package/src/config/logging/KvLogger.d.ts.map +1 -0
  149. package/src/config/logging/KvLogger.js +143 -0
  150. package/src/config/logging/SlackLogger.d.ts +23 -0
  151. package/src/config/logging/SlackLogger.d.ts.map +1 -0
  152. package/src/config/logging/SlackLogger.js +119 -0
  153. package/src/config/mail.d.ts +81 -0
  154. package/src/config/mail.d.ts.map +1 -0
  155. package/src/config/mail.js +73 -0
  156. package/src/config/middleware.d.ts +8 -0
  157. package/src/config/middleware.d.ts.map +1 -0
  158. package/src/config/middleware.js +18 -0
  159. package/src/config/notification.d.ts +62 -0
  160. package/src/config/notification.d.ts.map +1 -0
  161. package/src/config/notification.js +43 -0
  162. package/src/config/security.d.ts.map +1 -1
  163. package/src/config/security.js +2 -2
  164. package/src/config/startup.d.ts +23 -0
  165. package/src/config/startup.d.ts.map +1 -0
  166. package/src/config/startup.js +15 -0
  167. package/src/config/storage.d.ts +21 -35
  168. package/src/config/storage.d.ts.map +1 -1
  169. package/src/config/storage.js +57 -37
  170. package/src/database/migrations/index.d.ts +1 -1
  171. package/src/database/migrations/index.d.ts.map +1 -1
  172. package/src/database/migrations/index.js +2 -1
  173. package/src/features/Queue.js +1 -25
  174. package/src/functions/lambda.d.ts.map +1 -1
  175. package/src/functions/lambda.js +6 -1
  176. package/src/health/RuntimeHealthProbes.d.ts +13 -0
  177. package/src/health/RuntimeHealthProbes.d.ts.map +1 -0
  178. package/src/health/RuntimeHealthProbes.js +62 -0
  179. package/src/health/StartupHealthChecks.d.ts +26 -0
  180. package/src/health/StartupHealthChecks.d.ts.map +1 -0
  181. package/src/health/StartupHealthChecks.js +124 -0
  182. package/src/http/ErrorResponse.d.ts +28 -0
  183. package/src/http/ErrorResponse.d.ts.map +1 -0
  184. package/src/http/ErrorResponse.js +42 -0
  185. package/src/http/Kernel.d.ts +5 -0
  186. package/src/http/Kernel.d.ts.map +1 -1
  187. package/src/http/Kernel.js +96 -30
  188. package/src/http/Request.d.ts +1 -1
  189. package/src/http/Request.d.ts.map +1 -1
  190. package/src/http/RequestContext.d.ts +20 -0
  191. package/src/http/RequestContext.d.ts.map +1 -0
  192. package/src/http/RequestContext.js +77 -0
  193. package/src/index.d.ts +9 -1
  194. package/src/index.d.ts.map +1 -1
  195. package/src/index.js +8 -2
  196. package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -1
  197. package/src/microservices/MicroserviceBootstrap.js +6 -5
  198. package/src/microservices/MicroserviceManager.d.ts.map +1 -1
  199. package/src/microservices/MicroserviceManager.js +7 -5
  200. package/src/microservices/PostgresAdapter.d.ts.map +1 -1
  201. package/src/microservices/PostgresAdapter.js +7 -4
  202. package/src/microservices/ServiceBundler.d.ts.map +1 -1
  203. package/src/microservices/ServiceBundler.js +3 -1
  204. package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -1
  205. package/src/microservices/ServiceHealthMonitor.js +7 -3
  206. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  207. package/src/middleware/CsrfMiddleware.js +2 -19
  208. package/src/middleware/ErrorHandlerMiddleware.d.ts +6 -0
  209. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -0
  210. package/src/middleware/ErrorHandlerMiddleware.js +33 -0
  211. package/src/middleware/LoggingMiddleware.d.ts +9 -0
  212. package/src/middleware/LoggingMiddleware.d.ts.map +1 -0
  213. package/src/middleware/LoggingMiddleware.js +36 -0
  214. package/src/middleware/index.d.ts +2 -0
  215. package/src/middleware/index.d.ts.map +1 -1
  216. package/src/middleware/index.js +2 -0
  217. package/src/node-singletons/async_hooks.d.ts +9 -0
  218. package/src/node-singletons/async_hooks.d.ts.map +1 -0
  219. package/src/node-singletons/async_hooks.js +8 -0
  220. package/src/node-singletons/fs.d.ts +2 -2
  221. package/src/node-singletons/fs.d.ts.map +1 -1
  222. package/src/node-singletons/fs.js +2 -2
  223. package/src/node-singletons/http.d.ts +1 -1
  224. package/src/node-singletons/http.d.ts.map +1 -1
  225. package/src/node-singletons/http.js +1 -1
  226. package/src/node-singletons/index.d.ts +4 -0
  227. package/src/node-singletons/index.d.ts.map +1 -1
  228. package/src/node-singletons/index.js +4 -0
  229. package/src/node-singletons/net.d.ts +9 -0
  230. package/src/node-singletons/net.d.ts.map +1 -0
  231. package/src/node-singletons/net.js +8 -0
  232. package/src/node-singletons/os.d.ts +3 -3
  233. package/src/node-singletons/os.d.ts.map +1 -1
  234. package/src/node-singletons/os.js +3 -4
  235. package/src/node-singletons/path.d.ts +3 -1
  236. package/src/node-singletons/path.d.ts.map +1 -1
  237. package/src/node-singletons/path.js +3 -1
  238. package/src/node-singletons/perf-hooks.d.ts +3 -1
  239. package/src/node-singletons/perf-hooks.d.ts.map +1 -1
  240. package/src/node-singletons/perf-hooks.js +3 -1
  241. package/src/node-singletons/process.d.ts +23 -0
  242. package/src/node-singletons/process.d.ts.map +1 -0
  243. package/src/node-singletons/process.js +8 -0
  244. package/src/node-singletons/readline.d.ts +3 -3
  245. package/src/node-singletons/readline.d.ts.map +1 -1
  246. package/src/node-singletons/readline.js +3 -4
  247. package/src/node-singletons/tls.d.ts +9 -0
  248. package/src/node-singletons/tls.d.ts.map +1 -0
  249. package/src/node-singletons/tls.js +8 -0
  250. package/src/node-singletons/url.d.ts +3 -1
  251. package/src/node-singletons/url.d.ts.map +1 -1
  252. package/src/node-singletons/url.js +3 -1
  253. package/src/orm/ConnectionManager.d.ts +6 -1
  254. package/src/orm/ConnectionManager.d.ts.map +1 -1
  255. package/src/orm/ConnectionManager.js +14 -0
  256. package/src/orm/DatabaseAdapter.d.ts +6 -0
  257. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  258. package/src/orm/QueryBuilder.d.ts +8 -1
  259. package/src/orm/QueryBuilder.d.ts.map +1 -1
  260. package/src/orm/QueryBuilder.js +188 -28
  261. package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
  262. package/src/orm/adapters/D1Adapter.js +18 -12
  263. package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -1
  264. package/src/orm/adapters/MySQLAdapter.js +4 -0
  265. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  266. package/src/orm/adapters/PostgreSQLAdapter.js +4 -0
  267. package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -1
  268. package/src/orm/adapters/SQLServerAdapter.js +4 -0
  269. package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -1
  270. package/src/orm/adapters/SQLiteAdapter.js +4 -0
  271. package/src/performance/Benchmark.d.ts.map +1 -1
  272. package/src/performance/Benchmark.js +3 -0
  273. package/src/performance/CodeGenerationBenchmark.js +3 -3
  274. package/src/performance/Optimizer.d.ts +1 -1
  275. package/src/performance/Optimizer.d.ts.map +1 -1
  276. package/src/performance/Optimizer.js +157 -80
  277. package/src/performance/establish-baseline.js +3 -3
  278. package/src/runtime/PluginManager.d.ts +3 -1
  279. package/src/runtime/PluginManager.d.ts.map +1 -1
  280. package/src/runtime/PluginManager.js +124 -28
  281. package/src/runtime/RuntimeDetector.d.ts.map +1 -1
  282. package/src/runtime/RuntimeDetector.js +47 -5
  283. package/src/runtime/adapters/CloudflareAdapter.js +2 -2
  284. package/src/runtime/adapters/DenoAdapter.js +9 -7
  285. package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -1
  286. package/src/runtime/adapters/FargateAdapter.js +4 -3
  287. package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -1
  288. package/src/runtime/adapters/LambdaAdapter.js +4 -2
  289. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -1
  290. package/src/runtime/adapters/NodeServerAdapter.js +7 -6
  291. package/src/scheduler/ScheduleRunner.d.ts +18 -0
  292. package/src/scheduler/ScheduleRunner.d.ts.map +1 -0
  293. package/src/scheduler/ScheduleRunner.js +155 -0
  294. package/src/scheduler/index.d.ts +3 -0
  295. package/src/scheduler/index.d.ts.map +1 -0
  296. package/src/scheduler/index.js +1 -0
  297. package/src/scheduler/types.d.ts +16 -0
  298. package/src/scheduler/types.d.ts.map +1 -0
  299. package/src/scheduler/types.js +4 -0
  300. package/src/schedules/index.d.ts +2 -0
  301. package/src/schedules/index.d.ts.map +1 -0
  302. package/src/schedules/index.js +1 -0
  303. package/src/schedules/log-cleanup.d.ts +4 -0
  304. package/src/schedules/log-cleanup.d.ts.map +1 -0
  305. package/src/schedules/log-cleanup.js +18 -0
  306. package/src/scripts/GenerateEnvArtifacts.d.ts +13 -0
  307. package/src/scripts/GenerateEnvArtifacts.d.ts.map +1 -0
  308. package/src/scripts/GenerateEnvArtifacts.js +171 -0
  309. package/src/scripts/TemplateSync.js +109 -70
  310. package/src/security/CsrfTokenManager.js +1 -1
  311. package/src/security/Encryptor.js +1 -1
  312. package/src/security/Hash.d.ts +14 -0
  313. package/src/security/Hash.d.ts.map +1 -0
  314. package/src/security/Hash.js +81 -0
  315. package/src/security/StartupSecretValidation.d.ts +20 -0
  316. package/src/security/StartupSecretValidation.d.ts.map +1 -0
  317. package/src/security/StartupSecretValidation.js +61 -0
  318. package/src/security/UrlValidator.d.ts +0 -1
  319. package/src/security/UrlValidator.d.ts.map +1 -1
  320. package/src/security/UrlValidator.js +1 -2
  321. package/src/security/Xss.d.ts +14 -0
  322. package/src/security/Xss.d.ts.map +1 -0
  323. package/src/security/Xss.js +57 -0
  324. package/src/security/XssProtection.d.ts.map +1 -1
  325. package/src/security/XssProtection.js +150 -16
  326. package/src/templates/adapters/MySQLAdapter.ts.tpl +5 -0
  327. package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +5 -0
  328. package/src/templates/adapters/SQLServerAdapter.ts.tpl +5 -0
  329. package/src/templates/adapters/SQLiteAdapter.ts.tpl +5 -0
  330. package/src/templates/features/Queue.ts.tpl +1 -29
  331. package/src/templates/project/basic/.env.example.tpl +48 -0
  332. package/src/templates/project/basic/.env.tpl +89 -94
  333. package/src/templates/project/basic/app/Toolkit/Broadcast/sendBroadcast.ts.tpl +7 -0
  334. package/src/templates/project/basic/app/Toolkit/Mail/sendWelcomeEmail.ts.tpl +30 -0
  335. package/src/templates/project/basic/app/Toolkit/Notification/sendSlackNotification.ts.tpl +10 -0
  336. package/src/templates/project/basic/app/Toolkit/Notification/sendSms.ts.tpl +13 -0
  337. package/src/templates/project/basic/config/FileLogWriter.ts.tpl +240 -0
  338. package/src/templates/project/basic/config/SecretsManager.ts.tpl +32 -1
  339. package/src/templates/project/basic/config/StartupConfigValidator.ts.tpl +151 -0
  340. package/src/templates/project/basic/config/app.ts.tpl +84 -15
  341. package/src/templates/project/basic/config/broadcast.ts.tpl +97 -0
  342. package/src/templates/project/basic/config/cache.ts.tpl +19 -23
  343. package/src/templates/project/basic/config/cloudflare.ts.tpl +57 -0
  344. package/src/templates/project/basic/config/env.ts.tpl +7 -1
  345. package/src/templates/project/basic/config/index.ts.tpl +3 -0
  346. package/src/templates/project/basic/config/logger.ts.tpl +301 -11
  347. package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +121 -0
  348. package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +181 -0
  349. package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +156 -0
  350. package/src/templates/project/basic/config/mail.ts.tpl +141 -0
  351. package/src/templates/project/basic/config/middleware.ts.tpl +27 -0
  352. package/src/templates/project/basic/config/notification.ts.tpl +86 -0
  353. package/src/templates/project/basic/config/security.ts.tpl +4 -5
  354. package/src/templates/project/basic/config/startup.ts.tpl +27 -0
  355. package/src/templates/project/basic/config/storage.ts.tpl +77 -42
  356. package/src/templates/project/basic/database/migrations/index.ts.tpl +1 -1
  357. package/src/templates/project/basic/package.json.tpl +1 -1
  358. package/src/templates/project/basic/routes/api.ts.tpl +9 -37
  359. package/src/templates/project/basic/routes/broadcast.ts.tpl +32 -0
  360. package/src/templates/project/basic/routes/health.ts.tpl +134 -0
  361. package/src/templates/project/basic/src/index.ts.tpl +38 -11
  362. package/src/templates/project/basic/template.json +3 -0
  363. package/src/toolkit/Secrets/EnvFile.d.ts +15 -0
  364. package/src/toolkit/Secrets/EnvFile.d.ts.map +1 -0
  365. package/src/toolkit/Secrets/EnvFile.js +63 -0
  366. package/src/toolkit/Secrets/Manifest.d.ts +24 -0
  367. package/src/toolkit/Secrets/Manifest.d.ts.map +1 -0
  368. package/src/toolkit/Secrets/Manifest.js +71 -0
  369. package/src/toolkit/Secrets/index.d.ts +42 -0
  370. package/src/toolkit/Secrets/index.d.ts.map +1 -0
  371. package/src/toolkit/Secrets/index.js +119 -0
  372. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts +14 -0
  373. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -0
  374. package/src/toolkit/Secrets/providers/AwsSecretsManager.js +131 -0
  375. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts +9 -0
  376. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts.map +1 -0
  377. package/src/toolkit/Secrets/providers/CloudflareKv.js +73 -0
  378. package/src/tools/broadcast/Broadcast.d.ts +7 -0
  379. package/src/tools/broadcast/Broadcast.d.ts.map +1 -0
  380. package/src/tools/broadcast/Broadcast.js +37 -0
  381. package/src/tools/broadcast/drivers/BaseDriver.d.ts +5 -0
  382. package/src/tools/broadcast/drivers/BaseDriver.d.ts.map +1 -0
  383. package/src/tools/broadcast/drivers/BaseDriver.js +8 -0
  384. package/src/tools/broadcast/drivers/InMemory.d.ts +18 -0
  385. package/src/tools/broadcast/drivers/InMemory.d.ts.map +1 -0
  386. package/src/tools/broadcast/drivers/InMemory.js +16 -0
  387. package/src/tools/broadcast/drivers/Pusher.d.ts +8 -0
  388. package/src/tools/broadcast/drivers/Pusher.d.ts.map +1 -0
  389. package/src/tools/broadcast/drivers/Pusher.js +75 -0
  390. package/src/tools/broadcast/drivers/Redis.d.ts +19 -0
  391. package/src/tools/broadcast/drivers/Redis.d.ts.map +1 -0
  392. package/src/tools/broadcast/drivers/Redis.js +73 -0
  393. package/src/tools/broadcast/drivers/RedisHttps.d.ts +14 -0
  394. package/src/tools/broadcast/drivers/RedisHttps.d.ts.map +1 -0
  395. package/src/tools/broadcast/drivers/RedisHttps.js +50 -0
  396. package/src/tools/broadcast/index.d.ts +7 -0
  397. package/src/tools/broadcast/index.d.ts.map +1 -0
  398. package/src/tools/broadcast/index.js +6 -0
  399. package/src/tools/http/Http.d.ts +51 -0
  400. package/src/tools/http/Http.d.ts.map +1 -0
  401. package/src/tools/http/Http.js +171 -0
  402. package/src/tools/http/HttpResponse.d.ts +32 -0
  403. package/src/tools/http/HttpResponse.d.ts.map +1 -0
  404. package/src/tools/http/HttpResponse.js +80 -0
  405. package/src/tools/http/index.d.ts +15 -0
  406. package/src/tools/http/index.d.ts.map +1 -0
  407. package/src/tools/http/index.js +9 -0
  408. package/src/tools/mail/Mail.d.ts +22 -0
  409. package/src/tools/mail/Mail.d.ts.map +1 -0
  410. package/src/tools/mail/Mail.js +105 -0
  411. package/src/tools/mail/attachments.d.ts +23 -0
  412. package/src/tools/mail/attachments.d.ts.map +1 -0
  413. package/src/tools/mail/attachments.js +26 -0
  414. package/src/tools/mail/drivers/BaseDriver.d.ts +5 -0
  415. package/src/tools/mail/drivers/BaseDriver.d.ts.map +1 -0
  416. package/src/tools/mail/drivers/BaseDriver.js +8 -0
  417. package/src/tools/mail/drivers/Mailgun.d.ts +31 -0
  418. package/src/tools/mail/drivers/Mailgun.d.ts.map +1 -0
  419. package/src/tools/mail/drivers/Mailgun.js +81 -0
  420. package/src/tools/mail/drivers/SendGrid.d.ts +29 -0
  421. package/src/tools/mail/drivers/SendGrid.d.ts.map +1 -0
  422. package/src/tools/mail/drivers/SendGrid.js +57 -0
  423. package/src/tools/mail/drivers/Ses.d.ts +24 -0
  424. package/src/tools/mail/drivers/Ses.d.ts.map +1 -0
  425. package/src/tools/mail/drivers/Ses.js +116 -0
  426. package/src/tools/mail/drivers/Smtp.d.ts +38 -0
  427. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -0
  428. package/src/tools/mail/drivers/Smtp.js +327 -0
  429. package/src/tools/mail/templates/index.d.ts +27 -0
  430. package/src/tools/mail/templates/index.d.ts.map +1 -0
  431. package/src/tools/mail/templates/index.js +35 -0
  432. package/src/tools/mail/templates/markdown/index.d.ts +17 -0
  433. package/src/tools/mail/templates/markdown/index.d.ts.map +1 -0
  434. package/src/tools/mail/templates/markdown/index.js +49 -0
  435. package/src/tools/mail/templates/markdown/registry.d.ts +15 -0
  436. package/src/tools/mail/templates/markdown/registry.d.ts.map +1 -0
  437. package/src/tools/mail/templates/markdown/registry.js +34 -0
  438. package/src/tools/mail/templates/markdown/validator.d.ts +16 -0
  439. package/src/tools/mail/templates/markdown/validator.d.ts.map +1 -0
  440. package/src/tools/mail/templates/markdown/validator.js +24 -0
  441. package/src/tools/mail/testing.d.ts +41 -0
  442. package/src/tools/mail/testing.d.ts.map +1 -0
  443. package/src/tools/mail/testing.js +34 -0
  444. package/src/tools/notification/Driver.d.ts +11 -0
  445. package/src/tools/notification/Driver.d.ts.map +1 -0
  446. package/src/tools/notification/Driver.js +1 -0
  447. package/src/tools/notification/Notification.d.ts +11 -0
  448. package/src/tools/notification/Notification.d.ts.map +1 -0
  449. package/src/tools/notification/Notification.js +11 -0
  450. package/src/tools/notification/Registry.d.ts +10 -0
  451. package/src/tools/notification/Registry.d.ts.map +1 -0
  452. package/src/tools/notification/Registry.js +22 -0
  453. package/src/tools/notification/Service.d.ts +6 -0
  454. package/src/tools/notification/Service.d.ts.map +1 -0
  455. package/src/tools/notification/Service.js +18 -0
  456. package/src/tools/notification/config.d.ts +5 -0
  457. package/src/tools/notification/config.d.ts.map +1 -0
  458. package/src/tools/notification/config.js +5 -0
  459. package/src/tools/notification/drivers/BaseDriver.d.ts +5 -0
  460. package/src/tools/notification/drivers/BaseDriver.d.ts.map +1 -0
  461. package/src/tools/notification/drivers/BaseDriver.js +8 -0
  462. package/src/tools/notification/drivers/Console.d.ts +7 -0
  463. package/src/tools/notification/drivers/Console.d.ts.map +1 -0
  464. package/src/tools/notification/drivers/Console.js +13 -0
  465. package/src/tools/notification/drivers/Slack.d.ts +16 -0
  466. package/src/tools/notification/drivers/Slack.d.ts.map +1 -0
  467. package/src/tools/notification/drivers/Slack.js +24 -0
  468. package/src/tools/notification/drivers/Termii.d.ts +10 -0
  469. package/src/tools/notification/drivers/Termii.d.ts.map +1 -0
  470. package/src/tools/notification/drivers/Termii.js +47 -0
  471. package/src/tools/notification/drivers/Twilio.d.ts +21 -0
  472. package/src/tools/notification/drivers/Twilio.d.ts.map +1 -0
  473. package/src/tools/notification/drivers/Twilio.js +48 -0
  474. package/src/tools/notification/templates/markdown/index.d.ts +15 -0
  475. package/src/tools/notification/templates/markdown/index.d.ts.map +1 -0
  476. package/src/tools/notification/templates/markdown/index.js +38 -0
  477. package/src/tools/notification/templates/markdown/registry.d.ts +15 -0
  478. package/src/tools/notification/templates/markdown/registry.d.ts.map +1 -0
  479. package/src/tools/notification/templates/markdown/registry.js +36 -0
  480. package/src/tools/notification/testing.d.ts +19 -0
  481. package/src/tools/notification/testing.d.ts.map +1 -0
  482. package/src/tools/notification/testing.js +35 -0
  483. package/src/tools/notification/testingHelpers.d.ts +12 -0
  484. package/src/tools/notification/testingHelpers.d.ts.map +1 -0
  485. package/src/tools/notification/testingHelpers.js +32 -0
  486. package/src/tools/queue/Queue.d.ts +23 -0
  487. package/src/tools/queue/Queue.d.ts.map +1 -0
  488. package/src/tools/queue/Queue.js +38 -0
  489. package/src/tools/queue/drivers/InMemory.d.ts +10 -0
  490. package/src/tools/queue/drivers/InMemory.d.ts.map +1 -0
  491. package/src/tools/queue/drivers/InMemory.js +55 -0
  492. package/src/tools/queue/drivers/Redis.d.ts +10 -0
  493. package/src/tools/queue/drivers/Redis.d.ts.map +1 -0
  494. package/src/tools/queue/drivers/Redis.js +91 -0
  495. package/src/tools/storage/drivers/Gcs.d.ts +20 -0
  496. package/src/tools/storage/drivers/Gcs.d.ts.map +1 -0
  497. package/src/tools/storage/drivers/Gcs.js +152 -0
  498. package/src/tools/storage/drivers/Local.d.ts +17 -0
  499. package/src/tools/storage/drivers/Local.d.ts.map +1 -0
  500. package/src/tools/storage/drivers/Local.js +63 -0
  501. package/src/tools/storage/drivers/R2.d.ts +20 -0
  502. package/src/tools/storage/drivers/R2.d.ts.map +1 -0
  503. package/src/tools/storage/drivers/R2.js +73 -0
  504. package/src/tools/storage/drivers/S3.d.ts +26 -0
  505. package/src/tools/storage/drivers/S3.d.ts.map +1 -0
  506. package/src/tools/storage/drivers/S3.js +258 -0
  507. package/src/tools/storage/index.d.ts +24 -0
  508. package/src/tools/storage/index.d.ts.map +1 -0
  509. package/src/tools/storage/index.js +112 -0
  510. package/src/tools/storage/testing.d.ts +23 -0
  511. package/src/tools/storage/testing.d.ts.map +1 -0
  512. package/src/tools/storage/testing.js +52 -0
  513. package/src/tools/templates/MarkdownRenderer.d.ts +14 -0
  514. package/src/tools/templates/MarkdownRenderer.d.ts.map +1 -0
  515. package/src/tools/templates/MarkdownRenderer.js +300 -0
  516. package/src/tools/templates/index.d.ts +5 -0
  517. package/src/tools/templates/index.d.ts.map +1 -0
  518. package/src/tools/templates/index.js +4 -0
@@ -19,7 +19,7 @@ export const MigrateCommand = Object.freeze({
19
19
  .option('--reset', 'Rollback all migrations')
20
20
  .option('--step <number>', 'Number of batches to rollback', '0');
21
21
  };
22
- const execute = async (options, cmd) => {
22
+ const execute = (options, cmd) => {
23
23
  cmd.debug(`Migrate command executed with options: ${JSON.stringify(options)}`);
24
24
  try {
25
25
  cmd.info('Loading configuration...');
@@ -42,14 +42,14 @@ export const MigrateCommand = Object.freeze({
42
42
  }
43
43
  }
44
44
  catch (error) {
45
- throw ErrorFactory.createTryCatchError(`Migration failed: ${error.message}`, error);
45
+ ErrorFactory.createTryCatchError(`Migration failed: ${error.message}`, error);
46
46
  }
47
47
  };
48
48
  const cmd = BaseCommand.create({
49
49
  name: 'migrate',
50
50
  description: 'Run database migrations',
51
51
  addOptions,
52
- execute: async (options) => execute(options, cmd),
52
+ execute: (options) => execute(options, cmd),
53
53
  });
54
54
  return cmd;
55
55
  },
@@ -1,3 +1,7 @@
1
+ /**
2
+ * New Command - Project scaffolding CLI command
3
+ * Handles creation of new Zintrust projects
4
+ */
1
5
  import { CommandOptions, IBaseCommand } from '../BaseCommand';
2
6
  type TemplateType = 'basic' | 'api' | 'microservice';
3
7
  type DatabaseType = 'sqlite' | 'mysql' | 'postgresql' | 'mongodb';
@@ -1 +1 @@
1
- {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/NewCommand.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAS7E,KAAK,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;AACrD,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;AAwLhD,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,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAsHD;;;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,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAY7E,KAAK,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;AACrD,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;AAiMhD,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,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAwID;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;cACO,WAAW;EAGrB,CAAC"}
@@ -1,21 +1,17 @@
1
- import { appConfig } from '../../config/app';
2
1
  /**
3
2
  * New Command - Project scaffolding CLI command
4
3
  * Handles creation of new Zintrust projects
5
4
  */
6
- import { resolveNpmPath } from '../../common';
7
5
  import { BaseCommand } from '../BaseCommand';
8
6
  import { PromptHelper } from '../PromptHelper';
9
7
  import { ProjectScaffolder } from '../scaffolding/ProjectScaffolder';
8
+ import { SpawnUtil } from '../utils/spawn';
9
+ import { extractErrorMessage, resolvePackageManager } from '../../common/index';
10
+ import { appConfig } from '../../config/app';
10
11
  import { ErrorFactory } from '../../exceptions/ZintrustError';
11
12
  import { execFileSync } from '../../node-singletons/child-process';
12
13
  import * as path from '../../node-singletons/path';
13
14
  import chalk from 'chalk';
14
- const errorToMessage = (error) => {
15
- if (error instanceof Error)
16
- return error.message;
17
- return 'Unknown error';
18
- };
19
15
  const getGitBinary = () => 'git';
20
16
  const checkGitInstalled = () => {
21
17
  try {
@@ -154,20 +150,27 @@ const isFailureResult = (result) => {
154
150
  const maybe = result;
155
151
  return maybe.success === false;
156
152
  };
157
- const installDependencies = (projectPath, log) => {
153
+ const installDependencies = async (projectPath, log, packageManager, force = false) => {
154
+ // Respect CI by default — avoid network installs in CI unless explicitly allowed
155
+ const isCi = Boolean(process.env['CI']);
156
+ const allowAuto = process.env['ZINTRUST_ALLOW_AUTO_INSTALL'] === '1' || force;
157
+ if (isCi && !allowAuto) {
158
+ log.info('Skipping automatic dependency installation in CI environment.');
159
+ return;
160
+ }
158
161
  log.info('📦 Installing dependencies (this may take a minute)...');
162
+ const pm = packageManager ?? resolvePackageManager();
163
+ const args = ['install'];
159
164
  try {
160
- const npmPath = resolveNpmPath();
161
- execFileSync(npmPath, ['install'], {
162
- cwd: projectPath,
163
- stdio: 'inherit',
164
- env: appConfig.getSafeEnv(),
165
- });
165
+ const exitCode = await SpawnUtil.spawnAndWait({ command: pm, args, cwd: projectPath });
166
+ if (exitCode !== 0) {
167
+ throw ErrorFactory.createCliError(`'${pm} install' failed with exit code ${exitCode}`);
168
+ }
166
169
  log.info('✅ Dependencies installed successfully');
167
170
  }
168
171
  catch (error) {
169
172
  ErrorFactory.createCliError('Dependency installation failed', error);
170
- log.warn('Please run "npm install" manually in the project directory');
173
+ log.warn(`Please run "${pm} install" manually in the project directory`);
171
174
  }
172
175
  };
173
176
  const addOptions = (command) => {
@@ -181,6 +184,8 @@ const addOptions = (command) => {
181
184
  command.option('--no-interactive', 'Disable interactive mode');
182
185
  command.option('--no-git', 'Skip git initialization');
183
186
  command.option('--no-install', 'Skip dependency installation');
187
+ command.option('--install', 'Force dependency installation (useful to override CI defaults)');
188
+ command.option('--package-manager <manager>', 'Package manager to use (npm, yarn, pnpm)');
184
189
  command.option('--force', 'Overwrite existing directory');
185
190
  command.option('--overwrite', 'Overwrite existing directory');
186
191
  };
@@ -202,22 +207,31 @@ const executeNewCommand = async (options, command) => {
202
207
  }
203
208
  if (options['install'] !== false) {
204
209
  const projectPath = path.resolve(process.cwd(), projectName);
205
- installDependencies(projectPath, command);
210
+ const pm = options['packageManager'] ??
211
+ options['package-manager'];
212
+ const force = options['install'] === true;
213
+ await installDependencies(projectPath, command, pm, force);
206
214
  }
207
215
  command.success(`\n✨ Project ${projectName} created successfully!`);
208
216
  command.info(`\nNext steps:\n cd ${projectName}\n npm run dev\n`);
209
217
  }
210
218
  catch (error) {
211
- throw ErrorFactory.createCliError(`Project creation failed: ${errorToMessage(error)}`, error);
219
+ throw ErrorFactory.createCliError(`Project creation failed: ${extractErrorMessage(error)}`, error);
212
220
  }
213
221
  };
214
222
  const createNewCommandInstance = () => {
223
+ // BaseCommand.getCommand() closes over the execute callback passed at creation time.
224
+ // NewCommand needs its final implementation (which depends on the constructed instance),
225
+ // so we use a mutable indirection.
226
+ let executeImpl = async () => {
227
+ // replaced below with NewCommand-aware execute implementation
228
+ };
215
229
  const base = BaseCommand.create({
216
230
  name: 'new',
217
231
  description: 'Create a new Zintrust project',
218
232
  addOptions,
219
- execute: async (_options) => {
220
- // replaced below with NewCommand-aware execute implementation
233
+ execute: async (options) => {
234
+ await executeImpl(options);
221
235
  },
222
236
  });
223
237
  const commandInstance = {
@@ -264,6 +278,7 @@ const createNewCommandInstance = () => {
264
278
  await executeNewCommand(options, commandInstance);
265
279
  },
266
280
  };
281
+ executeImpl = commandInstance.execute;
267
282
  return commandInstance;
268
283
  };
269
284
  /**
@@ -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;EAsDtB,CAAC"}
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"}
@@ -27,8 +27,9 @@ export const PluginCommand = Object.freeze({
27
27
  .command('install <pluginId>')
28
28
  .alias('i')
29
29
  .description('Install a plugin')
30
- .action(async (pluginId) => {
31
- await installPlugin(pluginId);
30
+ .option('--package-manager <pm>', 'Specify package manager to use (npm|yarn|pnpm)')
31
+ .action(async (pluginId, options) => {
32
+ await installPlugin(pluginId, options);
32
33
  });
33
34
  command
34
35
  .command('uninstall <pluginId>')
@@ -74,9 +75,12 @@ async function listPlugins() {
74
75
  Logger.info(` ${id.padEnd(20)} ${status.padEnd(15)} ${plugin.description} ${aliases}`);
75
76
  }
76
77
  }
77
- async function installPlugin(pluginId) {
78
+ async function installPlugin(pluginId, options) {
78
79
  try {
79
- await PluginManager.install(pluginId);
80
+ const pm = typeof options?.['packageManager'] === 'string'
81
+ ? String(options?.['packageManager'])
82
+ : undefined;
83
+ await PluginManager.install(pluginId, { packageManager: pm });
80
84
  }
81
85
  catch (error) {
82
86
  Logger.error(`Failed to install plugin ${pluginId}`, error);
@@ -1 +1 @@
1
- {"version":3,"file":"PrepareCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/PrepareCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAchD,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,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAehD,eAAO,MAAM,cAAc,EA2CtB,YAAY,CAAC"}
@@ -3,9 +3,9 @@
3
3
  * Makes the local dist/ folder installable via `file:/.../dist`.
4
4
  * Usage: zintrust prepare
5
5
  */
6
- import { resolveNpmPath } from '../../common';
7
6
  import { DistPackager } from '../utils/DistPackager';
8
7
  import { SpawnUtil } from '../utils/spawn';
8
+ import { resolveNpmPath } from '../../common/index';
9
9
  import { Logger } from '../../config/logger';
10
10
  import { ErrorFactory } from '../../exceptions/ZintrustError';
11
11
  import * as path from '../../node-singletons/path';
@@ -1 +1 @@
1
- {"version":3,"file":"QACommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/QACommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAM7E,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;AAsaD,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;AA0ED;;GAEG;AACH,eAAO,MAAM,SAAS,QAAO,UA0B5B,CAAC"}
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"}
@@ -2,8 +2,8 @@
2
2
  * QA Command - Unified Quality Assurance
3
3
  * Runs linting, type-checking, tests, and SonarQube
4
4
  */
5
- import { resolveNpmPath } from '../../common';
6
5
  import { BaseCommand } from '../BaseCommand';
6
+ import { extractErrorMessageStrict, resolveNpmPath } from '../../common/index';
7
7
  import { Logger } from '../../config/logger';
8
8
  import { ErrorFactory } from '../../exceptions/ZintrustError';
9
9
  import { execFileSync } from '../../node-singletons/child-process';
@@ -225,11 +225,6 @@ const createResults = () => ({
225
225
  tests: createEmptyResult(),
226
226
  sonar: createEmptyResult(),
227
227
  });
228
- const errorToMessage = (error) => {
229
- if (error instanceof Error)
230
- return error.message;
231
- return 'Unknown error';
232
- };
233
228
  const runNpmScript = (name, script, result) => {
234
229
  try {
235
230
  Logger.info(`Running npm run ${script}...`);
@@ -241,7 +236,7 @@ const runNpmScript = (name, script, result) => {
241
236
  }
242
237
  catch (error) {
243
238
  result.status = 'failed';
244
- result.output = errorToMessage(error);
239
+ result.output = extractErrorMessageStrict(error);
245
240
  ErrorFactory.createTryCatchError(`${name} failed`, error);
246
241
  Logger.warn(`${name} failed`);
247
242
  return false;
@@ -419,15 +414,20 @@ const generateReport = async (results) => {
419
414
  const reportPath = 'coverage/qa-report.html';
420
415
  const reportCssPath = 'coverage/qa-report.css';
421
416
  try {
422
- const fs = await import('node:fs/promises');
423
- await fs.writeFile(reportPath, htmlContent);
424
- await fs.writeFile(reportCssPath, QA_REPORT_CSS);
417
+ const { fsPromises } = await import('../../node-singletons/fs');
418
+ await fsPromises.writeFile(reportPath, htmlContent);
419
+ await fsPromises.writeFile(reportCssPath, QA_REPORT_CSS);
425
420
  Logger.info(`QA report generated: ${reportPath}`);
426
421
  }
427
422
  catch (error) {
428
423
  ErrorFactory.createTryCatchError('Failed to generate QA report', error);
429
424
  }
430
425
  };
426
+ const addOptions = (command) => {
427
+ command.option('--no-sonar', 'Skip SonarQube analysis');
428
+ command.option('--report', 'Generate QA report (with coverage)');
429
+ command.option('--no-open', 'Do not open coverage report in browser');
430
+ };
431
431
  const executeQA = async (qa, options) => {
432
432
  try {
433
433
  qa.info('Starting Zintrust QA Suite...');
@@ -465,26 +465,16 @@ const executeQA = async (qa, options) => {
465
465
  * QA Command Factory - Create a new QA command instance
466
466
  */
467
467
  export const QACommand = () => {
468
- const addOptions = (command) => {
469
- command.option('--no-sonar', 'Skip SonarQube analysis');
470
- command.option('--report', 'Generate QA report (with coverage)');
471
- command.option('--no-open', 'Do not open coverage report in browser');
472
- };
473
- const cmd = BaseCommand.create({
468
+ const qa = BaseCommand.create({
474
469
  name: 'qa',
475
470
  description: 'Run full Quality Assurance suite',
476
471
  addOptions,
477
472
  execute: async (options) => executeQA(qa, options),
478
473
  });
479
- const qa = {
480
- ...cmd,
481
- addOptions,
482
- runLint,
483
- runTypeCheck,
484
- runTests,
485
- runSonar,
486
- generateReport,
487
- execute: async (options) => executeQA(qa, options), // NOSONAR
488
- };
474
+ qa.runLint = runLint;
475
+ qa.runTypeCheck = runTypeCheck;
476
+ qa.runTests = runTests;
477
+ qa.runSonar = runSonar;
478
+ qa.generateReport = generateReport;
489
479
  return qa;
490
480
  };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Secrets Command
3
+ *
4
+ * CLI-first secrets sync using the core internal toolkit.
5
+ *
6
+ * Usage:
7
+ * zin secrets pull --provider aws|cloudflare [--manifest secrets.manifest.json] [--out .env.pull] [--dry-run]
8
+ * zin secrets push --provider aws|cloudflare [--manifest secrets.manifest.json] [--in .env] [--dry-run]
9
+ * zin secrets doctor --provider aws|cloudflare
10
+ */
11
+ import { type IBaseCommand } from '../BaseCommand';
12
+ export declare const SecretsCommand: Readonly<{
13
+ create(): IBaseCommand;
14
+ }>;
15
+ export default SecretsCommand;
16
+ //# sourceMappingURL=SecretsCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretsCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SecretsCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsHvF,eAAO,MAAM,cAAc;cACf,YAAY;EAWtB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Secrets Command
3
+ *
4
+ * CLI-first secrets sync using the core internal toolkit.
5
+ *
6
+ * Usage:
7
+ * zin secrets pull --provider aws|cloudflare [--manifest secrets.manifest.json] [--out .env.pull] [--dry-run]
8
+ * zin secrets push --provider aws|cloudflare [--manifest secrets.manifest.json] [--in .env] [--dry-run]
9
+ * zin secrets doctor --provider aws|cloudflare
10
+ */
11
+ import { BaseCommand } from '../BaseCommand';
12
+ import { ErrorFactory } from '../../exceptions/ZintrustError';
13
+ import { SecretsToolkit } from '../../toolkit/Secrets';
14
+ const isUnknownArray = (value) => Array.isArray(value);
15
+ const getArg = (args, index) => {
16
+ if (!isUnknownArray(args))
17
+ return undefined;
18
+ const v = args[index];
19
+ return typeof v === 'string' ? v : undefined;
20
+ };
21
+ const coerceProvider = (provider) => provider === 'aws' || provider === 'cloudflare' ? provider : undefined;
22
+ const parseOptions = (options) => {
23
+ const cwd = process.cwd();
24
+ const action = getArg(options.args, 0) ?? 'pull';
25
+ const provider = typeof options.provider === 'string' ? coerceProvider(options.provider) : undefined;
26
+ const manifestPath = typeof options.manifest === 'string' ? options.manifest : undefined;
27
+ const outFile = typeof options.out === 'string' ? options.out : undefined;
28
+ const inFile = typeof options.in === 'string' ? options.in : undefined;
29
+ const dryRun = options.dryRun === true;
30
+ return { cwd, action, provider, manifestPath, outFile, inFile, dryRun };
31
+ };
32
+ const addOptions = (command) => {
33
+ command
34
+ .argument('[action]', 'pull | push | doctor', 'pull')
35
+ .option('--provider <provider>', 'aws | cloudflare')
36
+ .option('--manifest <path>', 'Manifest path (default: secrets.manifest.json)', 'secrets.manifest.json')
37
+ .option('--out <path>', 'Output env file for pull (default: .env.pull)', '.env.pull')
38
+ .option('--in <path>', 'Input env file for push (default: .env)', '.env')
39
+ .option('--dry-run', 'Do not write/upload, just show what would change');
40
+ };
41
+ const execute = async (cmd, options) => {
42
+ const parsed = parseOptions(options);
43
+ switch (parsed.action) {
44
+ case 'pull': {
45
+ const result = await SecretsToolkit.pull({
46
+ cwd: parsed.cwd,
47
+ provider: parsed.provider,
48
+ manifestPath: parsed.manifestPath,
49
+ outFile: parsed.outFile,
50
+ dryRun: parsed.dryRun,
51
+ });
52
+ cmd.success(`Pulled ${result.keys.length} keys to ${result.outFile}${parsed.dryRun ? ' (dry-run)' : ''}`);
53
+ return;
54
+ }
55
+ case 'push': {
56
+ const result = await SecretsToolkit.push({
57
+ cwd: parsed.cwd,
58
+ provider: parsed.provider,
59
+ manifestPath: parsed.manifestPath,
60
+ inFile: parsed.inFile,
61
+ dryRun: parsed.dryRun,
62
+ });
63
+ cmd.success(`Pushed ${result.keys.length} keys from ${result.inFile}${parsed.dryRun ? ' (dry-run)' : ''}`);
64
+ return;
65
+ }
66
+ case 'doctor': {
67
+ const result = SecretsToolkit.doctor({ provider: parsed.provider });
68
+ if (result.ok) {
69
+ cmd.success(`Secrets doctor OK (${result.provider})`);
70
+ }
71
+ else {
72
+ cmd.warn(`Secrets doctor failed (${result.provider}). Missing: ${result.missing.join(', ')}`);
73
+ }
74
+ return;
75
+ }
76
+ default:
77
+ throw ErrorFactory.createCliError(`Unknown secrets action: ${parsed.action}`);
78
+ }
79
+ };
80
+ export const SecretsCommand = Object.freeze({
81
+ create() {
82
+ const cmd = BaseCommand.create({
83
+ name: 'secrets',
84
+ description: 'Pull/push secrets to local .env.pull via core toolkit',
85
+ addOptions,
86
+ execute: async (options) => execute(cmd, options),
87
+ });
88
+ return cmd;
89
+ },
90
+ });
91
+ export default SecretsCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkSvF,eAAO,MAAM,YAAY;cACb,YAAY;EAsBtB,CAAC"}
1
+ {"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmSvF,eAAO,MAAM,YAAY;cACb,YAAY;EAsBtB,CAAC"}
@@ -1,10 +1,10 @@
1
- import { resolveNpmPath } from '../../common';
2
1
  import { BaseCommand } from '../BaseCommand';
3
2
  import { EnvFileLoader } from '../utils/EnvFileLoader';
4
3
  import { SpawnUtil } from '../utils/spawn';
4
+ import { resolveNpmPath } from '../../common/index';
5
5
  import { ErrorFactory } from '../../exceptions/ZintrustError';
6
6
  import { existsSync, readFileSync } from '../../node-singletons/fs';
7
- import * as path from 'node:path';
7
+ import * as path from '../../node-singletons/path';
8
8
  const isValidModeInput = (value) => value === 'development' ||
9
9
  value === 'dev' ||
10
10
  value === 'production' ||
@@ -0,0 +1,3 @@
1
+ export declare const TemplatesCommand: import("../BaseCommand").IBaseCommand;
2
+ export default TemplatesCommand;
3
+ //# sourceMappingURL=TemplatesCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplatesCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/TemplatesCommand.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,gBAAgB,yCAqC3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { BaseCommand } from '../BaseCommand';
2
+ import { ErrorHandler } from '../ErrorHandler';
3
+ import { ErrorFactory } from '../../exceptions/ZintrustError';
4
+ import { listTemplates as listMail, renderTemplate as renderMail } from '../../tools/mail/templates/markdown';
5
+ import { listTemplates as listNotification, renderTemplate as renderNotification, } from '../../tools/notification/templates/markdown';
6
+ const listForScope = (scope) => {
7
+ let items = [];
8
+ if (scope === 'mail' || scope === 'all')
9
+ items = items.concat(listMail());
10
+ if (scope === 'notification' || scope === 'all')
11
+ items = items.concat(listNotification());
12
+ items.sort((a, b) => a.localeCompare(b));
13
+ return items;
14
+ };
15
+ const renderByScope = (name, scope) => {
16
+ if (scope === 'mail')
17
+ return renderMail(name);
18
+ if (scope === 'notification')
19
+ return renderNotification(name);
20
+ try {
21
+ return renderMail(name);
22
+ }
23
+ catch {
24
+ try {
25
+ return renderNotification(name);
26
+ }
27
+ catch (error_) {
28
+ throw ErrorFactory.createTryCatchError('Template render failed', error_);
29
+ }
30
+ }
31
+ };
32
+ export const TemplatesCommand = BaseCommand.create({
33
+ name: 'templates',
34
+ description: 'Manage and render markdown templates (mail & notification)',
35
+ addOptions: (command) => {
36
+ command.argument('<action>', 'Action: list|render');
37
+ command.argument('[scope]', 'Scope: mail|notification|all', 'all');
38
+ command.argument('[name]', 'Template name when action=render');
39
+ },
40
+ execute: (options) => {
41
+ const action = options.args?.[0];
42
+ const scope = options.args?.[1] ?? 'all';
43
+ const name = options.args?.[2];
44
+ const handleList = (sc) => {
45
+ const items = listForScope(sc);
46
+ items.forEach((it) => ErrorHandler.info(it));
47
+ };
48
+ const handleRender = (nm, sc) => {
49
+ if (nm === null || nm === undefined || nm === '')
50
+ throw ErrorFactory.createValidationError('Template name required');
51
+ const out = renderByScope(nm, sc);
52
+ ErrorHandler.info(out.html);
53
+ };
54
+ if (action === 'list') {
55
+ handleList(scope);
56
+ return;
57
+ }
58
+ if (action === 'render') {
59
+ handleRender(name, scope);
60
+ return;
61
+ }
62
+ throw ErrorFactory.createValidationError(`Unknown action: ${String(action)}`);
63
+ },
64
+ });
65
+ export default TemplatesCommand;
@@ -4,8 +4,13 @@
4
4
  export { AddCommand } from '../commands/AddCommand';
5
5
  export { ConfigCommand } from '../commands/ConfigCommand';
6
6
  export { DebugCommand } from '../commands/DebugCommand';
7
+ export { LogsCleanupCommand } from '../commands/LogsCleanupCommand';
8
+ export { MakeMailTemplateCommand } from '../commands/MakeMailTemplateCommand';
9
+ export { MakeNotificationTemplateCommand } from '../commands/MakeNotificationTemplateCommand';
7
10
  export { MigrateCommand } from '../commands/MigrateCommand';
8
11
  export { NewCommand } from '../commands/NewCommand';
9
12
  export { PrepareCommand } from '../commands/PrepareCommand';
13
+ export { SecretsCommand } from '../commands/SecretsCommand';
10
14
  export { StartCommand } from '../commands/StartCommand';
15
+ export { TemplatesCommand } from '../commands/TemplatesCommand';
11
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -4,7 +4,12 @@
4
4
  export { AddCommand } from '../commands/AddCommand';
5
5
  export { ConfigCommand } from '../commands/ConfigCommand';
6
6
  export { DebugCommand } from '../commands/DebugCommand';
7
+ export { LogsCleanupCommand } from '../commands/LogsCleanupCommand';
8
+ export { MakeMailTemplateCommand } from '../commands/MakeMailTemplateCommand';
9
+ export { MakeNotificationTemplateCommand } from '../commands/MakeNotificationTemplateCommand';
7
10
  export { MigrateCommand } from '../commands/MigrateCommand';
8
11
  export { NewCommand } from '../commands/NewCommand';
9
12
  export { PrepareCommand } from '../commands/PrepareCommand';
13
+ export { SecretsCommand } from '../commands/SecretsCommand';
10
14
  export { StartCommand } from '../commands/StartCommand';
15
+ export { TemplatesCommand } from '../commands/TemplatesCommand';
@@ -6,7 +6,7 @@ import { ConfigPaths, DEFAULT_CONFIG, getConfigValue, setConfigValue, } from '..
6
6
  import { Logger } from '../../config/logger';
7
7
  import { ErrorFactory } from '../../exceptions/ZintrustError';
8
8
  import { fsPromises as fs } from '../../node-singletons/fs';
9
- import * as path from 'node:path';
9
+ import * as path from '../../node-singletons/path';
10
10
  /**
11
11
  * Deep merge helper
12
12
  */
@@ -4,11 +4,12 @@
4
4
  */
5
5
  export { BaseCommand, type CommandOptions } from './BaseCommand';
6
6
  export { CLI } from './CLI';
7
- export { EXIT_CODES, ErrorHandler } from './ErrorHandler';
7
+ export { ErrorHandler, EXIT_CODES } from './ErrorHandler';
8
8
  export { PromptHelper, type PromptOptions } from './PromptHelper';
9
9
  export { AddCommand } from './commands/AddCommand';
10
10
  export { ConfigCommand } from './commands/ConfigCommand';
11
11
  export { DebugCommand } from './commands/DebugCommand';
12
12
  export { MigrateCommand } from './commands/MigrateCommand';
13
13
  export { NewCommand } from './commands/NewCommand';
14
+ export { SecretsCommand } from './commands/SecretsCommand';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
package/src/cli/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export { BaseCommand } from './BaseCommand';
6
6
  export { CLI } from './CLI';
7
- export { EXIT_CODES, ErrorHandler } from './ErrorHandler';
7
+ export { ErrorHandler, EXIT_CODES } from './ErrorHandler';
8
8
  export { PromptHelper } from './PromptHelper';
9
9
  // Export commands
10
10
  export { AddCommand } from './commands/AddCommand';
@@ -12,3 +12,4 @@ export { ConfigCommand } from './commands/ConfigCommand';
12
12
  export { DebugCommand } from './commands/DebugCommand';
13
13
  export { MigrateCommand } from './commands/MigrateCommand';
14
14
  export { NewCommand } from './commands/NewCommand';
15
+ export { SecretsCommand } from './commands/SecretsCommand';
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ControllerGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAgChG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,yBAAyB,CAAC,CA2CpC;AA6cD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;EAI9B,CAAC"}
1
+ {"version":3,"file":"ControllerGenerator.d.ts","sourceRoot":"","sources":["../../../../src/cli/scaffolding/ControllerGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAgChG;AAED;;GAEG;AAEH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA2CjG;AA6cD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,EAAE,CAEpD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;EAI9B,CAAC"}