@zintrust/core 0.1.26 → 0.1.28

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 (1521) hide show
  1. package/README.md +185 -166
  2. package/bin/z.ts +10 -0
  3. package/bin/zin.ts +10 -0
  4. package/bin/zintrust-main.ts +130 -0
  5. package/bin/zintrust-microservices.ts +199 -0
  6. package/bin/zintrust.ts +14 -0
  7. package/bin/zt.ts +10 -0
  8. package/dist/src/index.d.ts +258 -0
  9. package/dist/src/index.js +212 -0
  10. package/package.json +140 -43
  11. package/src/auth/Auth.ts +42 -0
  12. package/src/boot/Application.ts +490 -0
  13. package/src/boot/Server.ts +155 -0
  14. package/src/boot/bootstrap.ts +274 -0
  15. package/src/builder/BundleOptimizer.ts +483 -0
  16. package/src/cache/Cache.ts +185 -0
  17. package/src/cache/CacheDriver.ts +39 -0
  18. package/src/cache/CacheDriverRegistry.ts +29 -0
  19. package/src/cache/CacheRuntimeRegistration.ts +24 -0
  20. package/src/cache/drivers/KVDriver.ts +63 -0
  21. package/src/cache/drivers/KVRemoteDriver.ts +97 -0
  22. package/src/cache/drivers/MemoryDriver.ts +85 -0
  23. package/src/cache/drivers/MongoDriver.ts +96 -0
  24. package/src/cache/drivers/RedisDriver.ts +95 -0
  25. package/src/cli/BaseCommand.ts +106 -0
  26. package/src/cli/CLI.ts +280 -0
  27. package/src/cli/ErrorHandler.ts +130 -0
  28. package/src/cli/PromptHelper.ts +203 -0
  29. package/src/cli/commands/AddCommand.ts +1290 -0
  30. package/src/cli/commands/BroadcastWorkCommand.ts +20 -0
  31. package/src/cli/commands/ConfigCommand.ts +422 -0
  32. package/src/cli/commands/CreateCommand.ts +177 -0
  33. package/src/cli/commands/D1MigrateCommand.ts +98 -0
  34. package/src/cli/commands/DbSeedCommand.ts +181 -0
  35. package/src/cli/commands/DebugCommand.ts +71 -0
  36. package/src/cli/commands/FixCommand.ts +84 -0
  37. package/src/cli/commands/JwtDevCommand.ts +154 -0
  38. package/src/cli/commands/KeyGenerateCommand.ts +86 -0
  39. package/src/cli/commands/LogsCleanupCommand.ts +24 -0
  40. package/src/cli/commands/LogsCommand.ts +270 -0
  41. package/src/cli/commands/MakeMailTemplateCommand.ts +119 -0
  42. package/src/cli/commands/MakeNotificationTemplateCommand.ts +164 -0
  43. package/src/cli/commands/MigrateCommand.ts +435 -0
  44. package/src/cli/commands/MigrateWorkerCommand.ts +180 -0
  45. package/src/cli/commands/NewCommand.ts +546 -0
  46. package/src/cli/commands/NotificationWorkCommand.ts +20 -0
  47. package/src/cli/commands/PluginCommand.ts +112 -0
  48. package/src/cli/commands/PrepareCommand.ts +65 -0
  49. package/src/cli/commands/PublishCommand.ts +79 -0
  50. package/src/cli/commands/QACommand.ts +551 -0
  51. package/src/cli/commands/QueueCommand.ts +145 -0
  52. package/src/cli/commands/QueueLockCommand.ts +156 -0
  53. package/src/cli/commands/QueueWorkCommandUtils.ts +54 -0
  54. package/src/cli/commands/ResourceControlCommand.ts +49 -0
  55. package/src/cli/commands/RoutesCommand.ts +316 -0
  56. package/src/cli/commands/SecretsCommand.ts +144 -0
  57. package/src/cli/commands/SimulateCommand.ts +97 -0
  58. package/src/cli/commands/StartCommand.ts +448 -0
  59. package/src/cli/commands/TemplatesCommand.ts +72 -0
  60. package/src/cli/commands/UpgradeCommand.ts +128 -0
  61. package/src/cli/commands/WorkerCommands.ts +373 -0
  62. package/src/cli/commands/createKindWorkCommand.ts +56 -0
  63. package/src/cli/commands/index.ts +28 -0
  64. package/src/cli/commands/runner/index.ts +140 -0
  65. package/src/cli/config/ConfigManager.ts +221 -0
  66. package/src/cli/config/ConfigSchema.ts +263 -0
  67. package/src/cli/config/ConfigValidator.ts +250 -0
  68. package/src/cli/config/index.ts +21 -0
  69. package/src/cli/d1/D1SqlMigrations.ts +289 -0
  70. package/src/cli/d1/WranglerConfig.ts +146 -0
  71. package/src/cli/d1/WranglerD1.ts +28 -0
  72. package/src/cli/debug/Dashboard.ts +227 -0
  73. package/src/cli/env/EnvFileBackfill.ts +80 -0
  74. package/src/cli/index.ts +17 -0
  75. package/src/cli/logger/Logger.ts +193 -0
  76. package/src/cli/scaffolding/ControllerGenerator.ts +633 -0
  77. package/src/cli/scaffolding/FactoryGenerator.ts +430 -0
  78. package/src/cli/scaffolding/FeatureScaffolder.ts +811 -0
  79. package/src/cli/scaffolding/FileGenerator.ts +262 -0
  80. package/src/cli/scaffolding/GovernanceScaffolder.ts +392 -0
  81. package/src/cli/scaffolding/MigrationGenerator.ts +418 -0
  82. package/src/cli/scaffolding/ModelGenerator.ts +337 -0
  83. package/src/cli/scaffolding/ProjectScaffolder.ts +786 -0
  84. package/src/cli/scaffolding/RequestFactoryGenerator.ts +561 -0
  85. package/src/cli/scaffolding/ResponseFactoryGenerator.ts +394 -0
  86. package/src/cli/scaffolding/RouteGenerator.ts +450 -0
  87. package/src/cli/scaffolding/SeederGenerator.ts +428 -0
  88. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.ts +317 -0
  89. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.ts +485 -0
  90. package/src/cli/scaffolding/ServiceScaffolder.ts +449 -0
  91. package/src/cli/scaffolding/TemplateEngine.ts +141 -0
  92. package/src/cli/scaffolding/TemplateGenerator.ts +255 -0
  93. package/src/cli/scaffolding/WorkflowGenerator.ts +221 -0
  94. package/src/cli/scaffolding/index.ts +89 -0
  95. package/src/cli/services/VersionChecker.ts +308 -0
  96. package/src/cli/utils/DatabaseCliUtils.ts +75 -0
  97. package/src/cli/utils/DistPackager.ts +154 -0
  98. package/src/cli/utils/EnvFileLoader.ts +218 -0
  99. package/src/cli/utils/spawn.ts +116 -0
  100. package/src/cli/workers/QueueWorkRunner.ts +377 -0
  101. package/src/collections/Collection.ts +241 -0
  102. package/src/collections/index.ts +2 -0
  103. package/src/common/AwsSigV4.ts +116 -0
  104. package/src/common/ExternalServiceUtils.ts +151 -0
  105. package/src/common/HealthRoutes.ts +144 -0
  106. package/src/common/RemoteSignedJson.ts +117 -0
  107. package/src/common/index.ts +380 -0
  108. package/src/common/utility.ts +140 -0
  109. package/src/config/FileLogWriter.ts +342 -0
  110. package/src/config/SecretsManager.ts +452 -0
  111. package/src/config/StartupConfigValidator.ts +268 -0
  112. package/src/config/app.ts +229 -0
  113. package/src/config/broadcast.ts +194 -0
  114. package/src/config/cache.ts +175 -0
  115. package/src/config/cloudflare.ts +43 -0
  116. package/src/config/constants.ts +167 -0
  117. package/src/config/database.ts +344 -0
  118. package/src/config/env.ts +245 -0
  119. package/src/config/features.ts +57 -0
  120. package/src/config/index.ts +46 -0
  121. package/src/config/logger.ts +387 -0
  122. package/src/config/logging/HttpLogger.ts +121 -0
  123. package/src/config/logging/KvLogger.ts +181 -0
  124. package/src/config/logging/SlackLogger.ts +156 -0
  125. package/src/config/mail.ts +186 -0
  126. package/src/config/microservices.ts +104 -0
  127. package/src/config/middleware.ts +360 -0
  128. package/src/config/notification.ts +205 -0
  129. package/src/config/queue.ts +205 -0
  130. package/src/config/redis.ts +84 -0
  131. package/src/config/security.ts +170 -0
  132. package/src/config/startup.ts +29 -0
  133. package/src/config/storage.ts +205 -0
  134. package/src/config/type.ts +611 -0
  135. package/src/config/workers.ts +257 -0
  136. package/src/container/ServiceContainer.ts +108 -0
  137. package/src/database/Paginator.ts +141 -0
  138. package/src/database/factories/.gitkeep +0 -0
  139. package/src/database/migrations/.gitkeep +0 -0
  140. package/src/database/migrations/index.ts +2 -0
  141. package/src/database/seeders/.gitkeep +0 -0
  142. package/src/events/EventDispatcher.ts +141 -0
  143. package/src/events/index.ts +2 -0
  144. package/src/exceptions/ZintrustError.ts +290 -0
  145. package/src/functions/cloudflare.ts +28 -0
  146. package/src/functions/deno.ts +25 -0
  147. package/src/functions/lambda.ts +30 -0
  148. package/src/health/RuntimeHealthProbes.ts +75 -0
  149. package/src/health/StartupHealthChecks.ts +156 -0
  150. package/src/http/Controller.ts +64 -0
  151. package/src/http/ErrorResponse.ts +76 -0
  152. package/src/http/FileUpload.ts +194 -0
  153. package/src/http/Kernel.ts +356 -0
  154. package/src/http/Request.ts +382 -0
  155. package/src/http/RequestContext.ts +194 -0
  156. package/src/http/Response.ts +93 -0
  157. package/src/http/ValidationHelper.ts +131 -0
  158. package/src/http/error-pages/ErrorPageRenderer.ts +108 -0
  159. package/src/http/middleware/BodyParsingMiddleware.ts +294 -0
  160. package/src/http/middleware/FileUploadMiddleware.ts +91 -0
  161. package/src/http/parsers/BodyParsers.ts +188 -0
  162. package/src/http/parsers/MultipartParser.ts +211 -0
  163. package/src/http/parsers/MultipartParserRegistry.ts +54 -0
  164. package/src/http/validated.ts +55 -0
  165. package/src/index.ts +436 -0
  166. package/src/lang/lang.ts +22 -0
  167. package/src/microservices/MicroserviceBootstrap.ts +411 -0
  168. package/src/microservices/MicroserviceGenerator.ts +534 -0
  169. package/src/microservices/MicroserviceManager.ts +409 -0
  170. package/src/microservices/PostgresAdapter.ts +475 -0
  171. package/src/microservices/RequestTracingMiddleware.ts +207 -0
  172. package/src/microservices/ServiceAuthMiddleware.ts +363 -0
  173. package/src/microservices/ServiceBundler.ts +432 -0
  174. package/src/microservices/ServiceHealthMonitor.ts +512 -0
  175. package/src/middleware/AuthMiddleware.ts +29 -0
  176. package/src/middleware/CsrfMiddleware.ts +177 -0
  177. package/src/middleware/ErrorHandlerMiddleware.ts +52 -0
  178. package/src/middleware/JwtAuthMiddleware.ts +99 -0
  179. package/src/middleware/LoggingMiddleware.ts +55 -0
  180. package/src/middleware/MiddlewareStack.ts +69 -0
  181. package/src/middleware/RateLimiter.ts +338 -0
  182. package/src/middleware/SanitizeBodyMiddleware.ts +41 -0
  183. package/src/middleware/SecurityMiddleware.ts +145 -0
  184. package/src/middleware/SessionMiddleware.ts +26 -0
  185. package/src/middleware/ValidationMiddleware.ts +296 -0
  186. package/src/middleware/index.ts +11 -0
  187. package/src/migrations/MigrationDiscovery.ts +17 -0
  188. package/src/migrations/MigrationLoader.ts +59 -0
  189. package/src/migrations/MigrationLock.ts +42 -0
  190. package/src/migrations/Migrator.ts +16 -0
  191. package/src/migrations/MigratorFactory.ts +473 -0
  192. package/src/migrations/enum/index.ts +114 -0
  193. package/src/migrations/schema/Blueprint.ts +240 -0
  194. package/src/migrations/schema/Schema.ts +228 -0
  195. package/src/migrations/schema/SchemaCompiler.ts +375 -0
  196. package/src/migrations/schema/index.ts +17 -0
  197. package/src/migrations/schema/types.ts +113 -0
  198. package/src/migrations/types.ts +52 -0
  199. package/src/node-singletons/async_hooks.ts +12 -0
  200. package/src/node-singletons/child-process.ts +7 -0
  201. package/src/node-singletons/crypto.ts +21 -0
  202. package/src/node-singletons/events.ts +7 -0
  203. package/src/node-singletons/fs.ts +38 -0
  204. package/src/node-singletons/http.ts +13 -0
  205. package/src/node-singletons/index.ts +38 -0
  206. package/src/node-singletons/module.ts +12 -0
  207. package/src/node-singletons/net.ts +10 -0
  208. package/src/node-singletons/os.ts +20 -0
  209. package/src/node-singletons/path.ts +11 -0
  210. package/src/node-singletons/perf-hooks.ts +11 -0
  211. package/src/node-singletons/process.ts +58 -0
  212. package/src/node-singletons/readline.ts +12 -0
  213. package/src/node-singletons/tls.ts +10 -0
  214. package/src/node-singletons/url.ts +11 -0
  215. package/src/node-singletons/util.ts +6 -0
  216. package/src/node.ts +32 -0
  217. package/src/observability/OpenTelemetry.ts +295 -0
  218. package/src/observability/PrometheusMetrics.ts +161 -0
  219. package/src/openapi/OpenApiGenerator.ts +452 -0
  220. package/src/orm/ConnectionManager.ts +759 -0
  221. package/src/orm/Database.ts +521 -0
  222. package/src/orm/DatabaseAdapter.ts +169 -0
  223. package/src/orm/DatabaseAdapterRegistry.ts +38 -0
  224. package/src/orm/DatabaseRuntimeRegistration.ts +87 -0
  225. package/src/orm/Model.ts +1025 -0
  226. package/src/orm/QueryBuilder.ts +1492 -0
  227. package/src/orm/Relationships.ts +419 -0
  228. package/src/orm/Schema.ts +403 -0
  229. package/src/orm/SchemaCompiler.ts +160 -0
  230. package/src/orm/adapters/D1Adapter.ts +149 -0
  231. package/src/orm/adapters/D1RemoteAdapter.ts +236 -0
  232. package/src/orm/adapters/MySQLAdapter.ts +129 -0
  233. package/src/orm/adapters/PostgreSQLAdapter.ts +148 -0
  234. package/src/orm/adapters/SQLServerAdapter.ts +99 -0
  235. package/src/orm/adapters/SQLiteAdapter.ts +314 -0
  236. package/src/orm/maintenance/SqliteMaintenance.ts +22 -0
  237. package/src/orm/migrations/MigrationStore.ts +232 -0
  238. package/src/performance/Benchmark.ts +456 -0
  239. package/src/performance/CodeGenerationBenchmark.ts +338 -0
  240. package/src/performance/Optimizer.ts +846 -0
  241. package/src/performance/establish-baseline.ts +69 -0
  242. package/src/profiling/MemoryProfiler.ts +111 -0
  243. package/src/profiling/N1Detector.ts +144 -0
  244. package/src/profiling/QueryLogger.ts +233 -0
  245. package/src/profiling/RequestProfiler.ts +123 -0
  246. package/src/profiling/types.ts +86 -0
  247. package/src/routes/CoreRoutes.ts +47 -0
  248. package/src/routes/RouteRegistry.ts +106 -0
  249. package/src/routes/Router.ts +435 -0
  250. package/src/routes/common.ts +50 -0
  251. package/src/routes/doc.ts +139 -0
  252. package/src/routes/error.ts +185 -0
  253. package/src/routes/errorPages.ts +125 -0
  254. package/src/routes/health.ts +6 -0
  255. package/src/routes/metrics.ts +24 -0
  256. package/src/routes/openapi.ts +93 -0
  257. package/src/routes/publicRoot.ts +125 -0
  258. package/src/runtime/PluginAutoImports.ts +67 -0
  259. package/src/runtime/PluginManager.ts +468 -0
  260. package/src/runtime/PluginRegistry.ts +232 -0
  261. package/src/runtime/RuntimeAdapter.ts +291 -0
  262. package/src/runtime/StartupConfigFileRegistry.ts +64 -0
  263. package/src/runtime/adapters/CloudflareAdapter.ts +273 -0
  264. package/src/runtime/adapters/DenoAdapter.ts +269 -0
  265. package/src/runtime/adapters/FargateAdapter.ts +230 -0
  266. package/src/runtime/adapters/LambdaAdapter.ts +475 -0
  267. package/src/runtime/adapters/NodeServerAdapter.ts +289 -0
  268. package/src/runtime/getKernel.ts +34 -0
  269. package/src/runtime/useFileLoader.ts +234 -0
  270. package/src/scheduler/ScheduleRunner.ts +219 -0
  271. package/src/scheduler/index.ts +2 -0
  272. package/src/scheduler/types.ts +18 -0
  273. package/src/schedules/index.ts +1 -0
  274. package/src/schedules/log-cleanup.ts +21 -0
  275. package/src/scripts/GenerateEnvArtifacts.ts +203 -0
  276. package/src/scripts/TemplateImportsCheck.ts +180 -0
  277. package/src/scripts/TemplateSync.ts +489 -0
  278. package/src/security/CsrfTokenManager.ts +102 -0
  279. package/src/security/EncryptedEnvelope.ts +373 -0
  280. package/src/security/Encryptor.ts +259 -0
  281. package/src/security/Hash.ts +97 -0
  282. package/src/security/JwtManager.ts +375 -0
  283. package/src/security/PasswordResetTokenBroker.ts +193 -0
  284. package/src/security/Sanitizer.ts +614 -0
  285. package/src/security/SignedRequest.ts +315 -0
  286. package/src/security/StartupSecretValidation.ts +162 -0
  287. package/src/security/TokenRevocation.ts +64 -0
  288. package/src/security/UrlValidator.ts +57 -0
  289. package/src/security/Xss.ts +74 -0
  290. package/src/security/XssProtection.ts +396 -0
  291. package/src/seeders/SeederDiscovery.ts +22 -0
  292. package/src/seeders/SeederLoader.ts +88 -0
  293. package/src/seeders/types.ts +20 -0
  294. package/src/services/default/test/.env +19 -0
  295. package/src/services/default/users/.env +19 -0
  296. package/src/services/ecommerce/docker-compose.yml +155 -0
  297. package/src/services/ecommerce/init-db.sql +71 -0
  298. package/src/services/ecommerce/orders/service.config.json +20 -0
  299. package/src/services/ecommerce/payments/service.config.json +19 -0
  300. package/src/services/ecommerce/users/Dockerfile +57 -0
  301. package/src/services/ecommerce/users/service.config.json +20 -0
  302. package/src/session/SessionManager.ts +241 -0
  303. package/src/session/index.ts +2 -0
  304. package/src/start.ts +68 -0
  305. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +21 -22
  306. package/src/testing/TestEnvironment.ts +213 -0
  307. package/src/testing/TestHttp.ts +134 -0
  308. package/src/testing/index.ts +11 -0
  309. package/src/time/DateTime.ts +548 -0
  310. package/src/time/index.ts +7 -0
  311. package/src/toolkit/Secrets/EnvFile.ts +80 -0
  312. package/src/toolkit/Secrets/Manifest.ts +119 -0
  313. package/src/toolkit/Secrets/index.ts +192 -0
  314. package/src/toolkit/Secrets/providers/AwsSecretsManager.ts +189 -0
  315. package/src/toolkit/Secrets/providers/CloudflareKv.ts +94 -0
  316. package/src/tools/broadcast/Broadcast.ts +116 -0
  317. package/src/tools/broadcast/BroadcastRegistry.ts +38 -0
  318. package/src/tools/broadcast/BroadcastRuntimeRegistration.ts +31 -0
  319. package/src/tools/broadcast/drivers/BaseDriver.ts +10 -0
  320. package/src/tools/broadcast/drivers/InMemory.ts +20 -0
  321. package/src/tools/broadcast/drivers/Pusher.ts +107 -0
  322. package/src/tools/broadcast/drivers/Redis.ts +49 -0
  323. package/src/tools/broadcast/drivers/RedisHttps.ts +74 -0
  324. package/src/tools/broadcast/index.ts +8 -0
  325. package/src/tools/http/Http.ts +234 -0
  326. package/src/tools/http/HttpResponse.ts +118 -0
  327. package/src/tools/http/index.ts +11 -0
  328. package/src/tools/mail/Mail.ts +1 -0
  329. package/src/tools/mail/MailDriverRegistry.ts +34 -0
  330. package/src/tools/mail/attachments.ts +47 -0
  331. package/src/tools/mail/drivers/BaseDriver.ts +10 -0
  332. package/src/tools/mail/drivers/Mailgun.ts +130 -0
  333. package/src/tools/mail/drivers/SendGrid.ts +103 -0
  334. package/src/tools/mail/drivers/Ses.ts +179 -0
  335. package/src/tools/mail/drivers/Smtp.ts +490 -0
  336. package/src/tools/mail/index.ts +218 -0
  337. package/src/tools/mail/template-loader.ts +128 -0
  338. package/src/tools/mail/template-utils.ts +19 -0
  339. package/src/tools/mail/templates/auth-password-reset.html +231 -0
  340. package/src/tools/mail/templates/auth-welcome.html +236 -0
  341. package/src/tools/mail/templates/general.html +109 -0
  342. package/src/tools/mail/templates/index.ts +143 -0
  343. package/src/tools/mail/templates/job-completed.html +188 -0
  344. package/src/tools/mail/templates/notifications-new-comment.html +228 -0
  345. package/src/tools/mail/templates/password-reset.html +221 -0
  346. package/src/tools/mail/templates/performance-report.html +258 -0
  347. package/src/tools/mail/templates/welcome.html +187 -0
  348. package/src/tools/mail/templates/worker-alert.html +229 -0
  349. package/src/tools/mail/testing.ts +59 -0
  350. package/src/tools/notification/Driver.ts +11 -0
  351. package/src/tools/notification/Notification.ts +55 -0
  352. package/src/tools/notification/NotificationChannelRegistry.ts +46 -0
  353. package/src/tools/notification/NotificationRuntimeRegistration.ts +36 -0
  354. package/src/tools/notification/Registry.ts +35 -0
  355. package/src/tools/notification/Service.ts +136 -0
  356. package/src/tools/notification/config.ts +7 -0
  357. package/src/tools/notification/drivers/BaseDriver.ts +10 -0
  358. package/src/tools/notification/drivers/Console.ts +18 -0
  359. package/src/tools/notification/drivers/Slack.ts +42 -0
  360. package/src/tools/notification/drivers/SlackNotification.ts +17 -0
  361. package/src/tools/notification/drivers/Termii.ts +43 -0
  362. package/src/tools/notification/drivers/Twilio.ts +77 -0
  363. package/src/tools/notification/drivers/TwilioNotification.ts +19 -0
  364. package/src/tools/notification/templates/markdown/index.ts +49 -0
  365. package/src/tools/notification/templates/markdown/notifications/new-follow.md +12 -0
  366. package/src/tools/notification/templates/markdown/registry.ts +45 -0
  367. package/src/tools/notification/testing.ts +50 -0
  368. package/src/tools/notification/testingHelpers.ts +44 -0
  369. package/src/tools/queue/AdvancedQueue.ts +458 -0
  370. package/src/tools/queue/DeduplicationBuilder.ts +111 -0
  371. package/src/tools/queue/LockProvider.ts +335 -0
  372. package/src/tools/queue/Queue.ts +78 -0
  373. package/src/tools/queue/QueueExtensions.ts +161 -0
  374. package/src/tools/queue/QueueRuntimeRegistration.ts +29 -0
  375. package/src/tools/queue/drivers/Database.ts +183 -0
  376. package/src/tools/queue/drivers/InMemory.ts +64 -0
  377. package/src/tools/queue/drivers/Redis.ts +33 -0
  378. package/src/tools/queue/index.ts +28 -0
  379. package/src/tools/redis/RedisKeyManager.ts +142 -0
  380. package/src/tools/storage/LocalSignedUrl.ts +142 -0
  381. package/src/tools/storage/StorageDiskRegistry.ts +45 -0
  382. package/src/tools/storage/StorageDriverRegistry.ts +31 -0
  383. package/src/tools/storage/StorageRuntimeRegistration.ts +32 -0
  384. package/src/tools/storage/drivers/Gcs.ts +201 -0
  385. package/src/tools/storage/drivers/Local.ts +116 -0
  386. package/src/tools/storage/drivers/R2.ts +99 -0
  387. package/src/tools/storage/drivers/S3.ts +347 -0
  388. package/src/tools/storage/index.ts +217 -0
  389. package/src/tools/storage/testing.ts +80 -0
  390. package/src/tools/templates/MarkdownRenderer.ts +354 -0
  391. package/src/tools/templates/index.ts +5 -0
  392. package/src/types/Queue.ts +71 -0
  393. package/src/types/redis.d.ts +11 -0
  394. package/src/validation/ValidationError.ts +79 -0
  395. package/src/validation/Validator.ts +681 -0
  396. package/src/zintrust.plugins.ts +13 -0
  397. package/bin/z.d.ts +0 -7
  398. package/bin/z.d.ts.map +0 -1
  399. package/bin/z.js +0 -7
  400. package/bin/zin.d.ts +0 -7
  401. package/bin/zin.d.ts.map +0 -1
  402. package/bin/zin.js +0 -7
  403. package/bin/zintrust-main.d.ts +0 -9
  404. package/bin/zintrust-main.d.ts.map +0 -1
  405. package/bin/zintrust-main.js +0 -110
  406. package/bin/zintrust-microservices.d.ts +0 -7
  407. package/bin/zintrust-microservices.d.ts.map +0 -1
  408. package/bin/zintrust-microservices.js +0 -165
  409. package/bin/zintrust.d.ts +0 -10
  410. package/bin/zintrust.d.ts.map +0 -1
  411. package/bin/zintrust.js +0 -10
  412. package/bin/zt.d.ts +0 -7
  413. package/bin/zt.d.ts.map +0 -1
  414. package/bin/zt.js +0 -7
  415. package/routes/api.d.ts +0 -7
  416. package/routes/api.d.ts.map +0 -1
  417. package/routes/api.js +0 -115
  418. package/routes/broadcast.d.ts +0 -9
  419. package/routes/broadcast.d.ts.map +0 -1
  420. package/routes/broadcast.js +0 -27
  421. package/routes/health.d.ts +0 -6
  422. package/routes/health.d.ts.map +0 -1
  423. package/routes/health.js +0 -5
  424. package/routes/metrics.d.ts +0 -9
  425. package/routes/metrics.d.ts.map +0 -1
  426. package/routes/metrics.js +0 -20
  427. package/routes/openapi.d.ts +0 -9
  428. package/routes/openapi.d.ts.map +0 -1
  429. package/routes/openapi.js +0 -76
  430. package/routes/storage.d.ts +0 -4
  431. package/routes/storage.d.ts.map +0 -1
  432. package/routes/storage.js +0 -35
  433. package/src/auth/Auth.d.ts +0 -20
  434. package/src/auth/Auth.d.ts.map +0 -1
  435. package/src/auth/Auth.js +0 -33
  436. package/src/boot/Application.d.ts +0 -31
  437. package/src/boot/Application.d.ts.map +0 -1
  438. package/src/boot/Application.js +0 -351
  439. package/src/boot/Server.d.ts +0 -24
  440. package/src/boot/Server.d.ts.map +0 -1
  441. package/src/boot/Server.js +0 -117
  442. package/src/boot/bootstrap.d.ts +0 -7
  443. package/src/boot/bootstrap.d.ts.map +0 -1
  444. package/src/boot/bootstrap.js +0 -232
  445. package/src/builder/BundleOptimizer.d.ts +0 -42
  446. package/src/builder/BundleOptimizer.d.ts.map +0 -1
  447. package/src/builder/BundleOptimizer.js +0 -352
  448. package/src/cache/Cache.d.ts +0 -39
  449. package/src/cache/Cache.d.ts.map +0 -1
  450. package/src/cache/Cache.js +0 -142
  451. package/src/cache/CacheDriver.d.ts +0 -32
  452. package/src/cache/CacheDriver.d.ts.map +0 -1
  453. package/src/cache/CacheDriver.js +0 -6
  454. package/src/cache/CacheDriverRegistry.d.ts +0 -15
  455. package/src/cache/CacheDriverRegistry.d.ts.map +0 -1
  456. package/src/cache/CacheDriverRegistry.js +0 -19
  457. package/src/cache/CacheRuntimeRegistration.d.ts +0 -11
  458. package/src/cache/CacheRuntimeRegistration.d.ts.map +0 -1
  459. package/src/cache/CacheRuntimeRegistration.js +0 -21
  460. package/src/cache/drivers/KVDriver.d.ts +0 -12
  461. package/src/cache/drivers/KVDriver.d.ts.map +0 -1
  462. package/src/cache/drivers/KVDriver.js +0 -55
  463. package/src/cache/drivers/KVRemoteDriver.d.ts +0 -11
  464. package/src/cache/drivers/KVRemoteDriver.d.ts.map +0 -1
  465. package/src/cache/drivers/KVRemoteDriver.js +0 -70
  466. package/src/cache/drivers/MemoryDriver.d.ts +0 -12
  467. package/src/cache/drivers/MemoryDriver.d.ts.map +0 -1
  468. package/src/cache/drivers/MemoryDriver.js +0 -71
  469. package/src/cache/drivers/MongoDriver.d.ts +0 -17
  470. package/src/cache/drivers/MongoDriver.d.ts.map +0 -1
  471. package/src/cache/drivers/MongoDriver.js +0 -80
  472. package/src/cache/drivers/RedisDriver.d.ts +0 -12
  473. package/src/cache/drivers/RedisDriver.d.ts.map +0 -1
  474. package/src/cache/drivers/RedisDriver.js +0 -84
  475. package/src/cli/BaseCommand.d.ts +0 -41
  476. package/src/cli/BaseCommand.d.ts.map +0 -1
  477. package/src/cli/BaseCommand.js +0 -69
  478. package/src/cli/CLI.d.ts +0 -21
  479. package/src/cli/CLI.d.ts.map +0 -1
  480. package/src/cli/CLI.js +0 -242
  481. package/src/cli/ErrorHandler.d.ts +0 -23
  482. package/src/cli/ErrorHandler.d.ts.map +0 -1
  483. package/src/cli/ErrorHandler.js +0 -99
  484. package/src/cli/PromptHelper.d.ts +0 -47
  485. package/src/cli/PromptHelper.d.ts.map +0 -1
  486. package/src/cli/PromptHelper.js +0 -156
  487. package/src/cli/commands/AddCommand.d.ts +0 -96
  488. package/src/cli/commands/AddCommand.d.ts.map +0 -1
  489. package/src/cli/commands/AddCommand.js +0 -932
  490. package/src/cli/commands/BroadcastWorkCommand.d.ts +0 -10
  491. package/src/cli/commands/BroadcastWorkCommand.d.ts.map +0 -1
  492. package/src/cli/commands/BroadcastWorkCommand.js +0 -16
  493. package/src/cli/commands/ConfigCommand.d.ts +0 -15
  494. package/src/cli/commands/ConfigCommand.d.ts.map +0 -1
  495. package/src/cli/commands/ConfigCommand.js +0 -307
  496. package/src/cli/commands/CreateCommand.d.ts +0 -15
  497. package/src/cli/commands/CreateCommand.d.ts.map +0 -1
  498. package/src/cli/commands/CreateCommand.js +0 -143
  499. package/src/cli/commands/D1MigrateCommand.d.ts +0 -19
  500. package/src/cli/commands/D1MigrateCommand.d.ts.map +0 -1
  501. package/src/cli/commands/D1MigrateCommand.js +0 -71
  502. package/src/cli/commands/DbSeedCommand.d.ts +0 -9
  503. package/src/cli/commands/DbSeedCommand.d.ts.map +0 -1
  504. package/src/cli/commands/DbSeedCommand.js +0 -139
  505. package/src/cli/commands/DebugCommand.d.ts +0 -15
  506. package/src/cli/commands/DebugCommand.d.ts.map +0 -1
  507. package/src/cli/commands/DebugCommand.js +0 -52
  508. package/src/cli/commands/FixCommand.d.ts +0 -15
  509. package/src/cli/commands/FixCommand.d.ts.map +0 -1
  510. package/src/cli/commands/FixCommand.js +0 -68
  511. package/src/cli/commands/JwtDevCommand.d.ts +0 -8
  512. package/src/cli/commands/JwtDevCommand.d.ts.map +0 -1
  513. package/src/cli/commands/JwtDevCommand.js +0 -114
  514. package/src/cli/commands/KeyGenerateCommand.d.ts +0 -9
  515. package/src/cli/commands/KeyGenerateCommand.d.ts.map +0 -1
  516. package/src/cli/commands/KeyGenerateCommand.js +0 -76
  517. package/src/cli/commands/LogsCleanupCommand.d.ts +0 -6
  518. package/src/cli/commands/LogsCleanupCommand.d.ts.map +0 -1
  519. package/src/cli/commands/LogsCleanupCommand.js +0 -20
  520. package/src/cli/commands/LogsCommand.d.ts +0 -19
  521. package/src/cli/commands/LogsCommand.d.ts.map +0 -1
  522. package/src/cli/commands/LogsCommand.js +0 -217
  523. package/src/cli/commands/MakeMailTemplateCommand.d.ts +0 -10
  524. package/src/cli/commands/MakeMailTemplateCommand.d.ts.map +0 -1
  525. package/src/cli/commands/MakeMailTemplateCommand.js +0 -76
  526. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts +0 -10
  527. package/src/cli/commands/MakeNotificationTemplateCommand.d.ts.map +0 -1
  528. package/src/cli/commands/MakeNotificationTemplateCommand.js +0 -115
  529. package/src/cli/commands/MigrateCommand.d.ts +0 -15
  530. package/src/cli/commands/MigrateCommand.d.ts.map +0 -1
  531. package/src/cli/commands/MigrateCommand.js +0 -302
  532. package/src/cli/commands/MigrateWorkerCommand.d.ts +0 -9
  533. package/src/cli/commands/MigrateWorkerCommand.d.ts.map +0 -1
  534. package/src/cli/commands/MigrateWorkerCommand.js +0 -136
  535. package/src/cli/commands/NewCommand.d.ts +0 -37
  536. package/src/cli/commands/NewCommand.d.ts.map +0 -1
  537. package/src/cli/commands/NewCommand.js +0 -408
  538. package/src/cli/commands/NotificationWorkCommand.d.ts +0 -10
  539. package/src/cli/commands/NotificationWorkCommand.d.ts.map +0 -1
  540. package/src/cli/commands/NotificationWorkCommand.js +0 -16
  541. package/src/cli/commands/PluginCommand.d.ts +0 -9
  542. package/src/cli/commands/PluginCommand.d.ts.map +0 -1
  543. package/src/cli/commands/PluginCommand.js +0 -98
  544. package/src/cli/commands/PrepareCommand.d.ts +0 -8
  545. package/src/cli/commands/PrepareCommand.d.ts.map +0 -1
  546. package/src/cli/commands/PrepareCommand.js +0 -51
  547. package/src/cli/commands/PublishCommand.d.ts +0 -5
  548. package/src/cli/commands/PublishCommand.d.ts.map +0 -1
  549. package/src/cli/commands/PublishCommand.js +0 -54
  550. package/src/cli/commands/QACommand.d.ts +0 -33
  551. package/src/cli/commands/QACommand.d.ts.map +0 -1
  552. package/src/cli/commands/QACommand.js +0 -480
  553. package/src/cli/commands/QueueCommand.d.ts +0 -10
  554. package/src/cli/commands/QueueCommand.d.ts.map +0 -1
  555. package/src/cli/commands/QueueCommand.js +0 -113
  556. package/src/cli/commands/QueueLockCommand.d.ts +0 -7
  557. package/src/cli/commands/QueueLockCommand.d.ts.map +0 -1
  558. package/src/cli/commands/QueueLockCommand.js +0 -138
  559. package/src/cli/commands/QueueWorkCommandUtils.d.ts +0 -10
  560. package/src/cli/commands/QueueWorkCommandUtils.d.ts.map +0 -1
  561. package/src/cli/commands/QueueWorkCommandUtils.js +0 -43
  562. package/src/cli/commands/ResourceControlCommand.d.ts +0 -6
  563. package/src/cli/commands/ResourceControlCommand.d.ts.map +0 -1
  564. package/src/cli/commands/ResourceControlCommand.js +0 -43
  565. package/src/cli/commands/RoutesCommand.d.ts +0 -10
  566. package/src/cli/commands/RoutesCommand.d.ts.map +0 -1
  567. package/src/cli/commands/RoutesCommand.js +0 -242
  568. package/src/cli/commands/SecretsCommand.d.ts +0 -16
  569. package/src/cli/commands/SecretsCommand.d.ts.map +0 -1
  570. package/src/cli/commands/SecretsCommand.js +0 -91
  571. package/src/cli/commands/SimulateCommand.d.ts +0 -12
  572. package/src/cli/commands/SimulateCommand.d.ts.map +0 -1
  573. package/src/cli/commands/SimulateCommand.js +0 -79
  574. package/src/cli/commands/StartCommand.d.ts +0 -5
  575. package/src/cli/commands/StartCommand.d.ts.map +0 -1
  576. package/src/cli/commands/StartCommand.js +0 -326
  577. package/src/cli/commands/TemplatesCommand.d.ts +0 -3
  578. package/src/cli/commands/TemplatesCommand.d.ts.map +0 -1
  579. package/src/cli/commands/TemplatesCommand.js +0 -65
  580. package/src/cli/commands/UpgradeCommand.d.ts +0 -16
  581. package/src/cli/commands/UpgradeCommand.d.ts.map +0 -1
  582. package/src/cli/commands/UpgradeCommand.js +0 -107
  583. package/src/cli/commands/WorkerCommands.d.ts +0 -17
  584. package/src/cli/commands/WorkerCommands.d.ts.map +0 -1
  585. package/src/cli/commands/WorkerCommands.js +0 -288
  586. package/src/cli/commands/createKindWorkCommand.d.ts +0 -9
  587. package/src/cli/commands/createKindWorkCommand.d.ts.map +0 -1
  588. package/src/cli/commands/createKindWorkCommand.js +0 -33
  589. package/src/cli/commands/index.d.ts +0 -24
  590. package/src/cli/commands/index.d.ts.map +0 -1
  591. package/src/cli/commands/index.js +0 -23
  592. package/src/cli/commands/runner/index.d.ts +0 -3
  593. package/src/cli/commands/runner/index.d.ts.map +0 -1
  594. package/src/cli/commands/runner/index.js +0 -139
  595. package/src/cli/config/ConfigManager.d.ts +0 -42
  596. package/src/cli/config/ConfigManager.d.ts.map +0 -1
  597. package/src/cli/config/ConfigManager.js +0 -175
  598. package/src/cli/config/ConfigSchema.d.ts +0 -195
  599. package/src/cli/config/ConfigSchema.d.ts.map +0 -1
  600. package/src/cli/config/ConfigSchema.js +0 -172
  601. package/src/cli/config/ConfigValidator.d.ts +0 -41
  602. package/src/cli/config/ConfigValidator.d.ts.map +0 -1
  603. package/src/cli/config/ConfigValidator.js +0 -200
  604. package/src/cli/config/index.d.ts +0 -8
  605. package/src/cli/config/index.d.ts.map +0 -1
  606. package/src/cli/config/index.js +0 -7
  607. package/src/cli/d1/D1SqlMigrations.d.ts +0 -20
  608. package/src/cli/d1/D1SqlMigrations.d.ts.map +0 -1
  609. package/src/cli/d1/D1SqlMigrations.js +0 -230
  610. package/src/cli/d1/WranglerConfig.d.ts +0 -4
  611. package/src/cli/d1/WranglerConfig.d.ts.map +0 -1
  612. package/src/cli/d1/WranglerConfig.js +0 -122
  613. package/src/cli/d1/WranglerD1.d.ts +0 -11
  614. package/src/cli/d1/WranglerD1.d.ts.map +0 -1
  615. package/src/cli/d1/WranglerD1.js +0 -16
  616. package/src/cli/debug/Dashboard.d.ts +0 -34
  617. package/src/cli/debug/Dashboard.d.ts.map +0 -1
  618. package/src/cli/debug/Dashboard.js +0 -152
  619. package/src/cli/env/EnvFileBackfill.d.ts +0 -10
  620. package/src/cli/env/EnvFileBackfill.d.ts.map +0 -1
  621. package/src/cli/env/EnvFileBackfill.js +0 -64
  622. package/src/cli/index.d.ts +0 -15
  623. package/src/cli/index.d.ts.map +0 -1
  624. package/src/cli/index.js +0 -15
  625. package/src/cli/logger/Logger.d.ts +0 -43
  626. package/src/cli/logger/Logger.d.ts.map +0 -1
  627. package/src/cli/logger/Logger.js +0 -137
  628. package/src/cli/scaffolding/ControllerGenerator.d.ts +0 -44
  629. package/src/cli/scaffolding/ControllerGenerator.d.ts.map +0 -1
  630. package/src/cli/scaffolding/ControllerGenerator.js +0 -575
  631. package/src/cli/scaffolding/FactoryGenerator.d.ts +0 -47
  632. package/src/cli/scaffolding/FactoryGenerator.d.ts.map +0 -1
  633. package/src/cli/scaffolding/FactoryGenerator.js +0 -358
  634. package/src/cli/scaffolding/FeatureScaffolder.d.ts +0 -40
  635. package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +0 -1
  636. package/src/cli/scaffolding/FeatureScaffolder.js +0 -747
  637. package/src/cli/scaffolding/FileGenerator.d.ts +0 -31
  638. package/src/cli/scaffolding/FileGenerator.d.ts.map +0 -1
  639. package/src/cli/scaffolding/FileGenerator.js +0 -222
  640. package/src/cli/scaffolding/GovernanceScaffolder.d.ts +0 -23
  641. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +0 -1
  642. package/src/cli/scaffolding/GovernanceScaffolder.js +0 -327
  643. package/src/cli/scaffolding/MigrationGenerator.d.ts +0 -45
  644. package/src/cli/scaffolding/MigrationGenerator.d.ts.map +0 -1
  645. package/src/cli/scaffolding/MigrationGenerator.js +0 -344
  646. package/src/cli/scaffolding/ModelGenerator.d.ts +0 -81
  647. package/src/cli/scaffolding/ModelGenerator.d.ts.map +0 -1
  648. package/src/cli/scaffolding/ModelGenerator.js +0 -259
  649. package/src/cli/scaffolding/ProjectScaffolder.d.ts +0 -66
  650. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +0 -1
  651. package/src/cli/scaffolding/ProjectScaffolder.js +0 -629
  652. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +0 -50
  653. package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +0 -1
  654. package/src/cli/scaffolding/RequestFactoryGenerator.js +0 -465
  655. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +0 -43
  656. package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +0 -1
  657. package/src/cli/scaffolding/ResponseFactoryGenerator.js +0 -322
  658. package/src/cli/scaffolding/RouteGenerator.d.ts +0 -66
  659. package/src/cli/scaffolding/RouteGenerator.d.ts.map +0 -1
  660. package/src/cli/scaffolding/RouteGenerator.js +0 -361
  661. package/src/cli/scaffolding/SeederGenerator.d.ts +0 -52
  662. package/src/cli/scaffolding/SeederGenerator.d.ts.map +0 -1
  663. package/src/cli/scaffolding/SeederGenerator.js +0 -334
  664. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +0 -40
  665. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +0 -1
  666. package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +0 -268
  667. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +0 -45
  668. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +0 -1
  669. package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +0 -397
  670. package/src/cli/scaffolding/ServiceScaffolder.d.ts +0 -45
  671. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +0 -1
  672. package/src/cli/scaffolding/ServiceScaffolder.js +0 -390
  673. package/src/cli/scaffolding/TemplateEngine.d.ts +0 -42
  674. package/src/cli/scaffolding/TemplateEngine.d.ts.map +0 -1
  675. package/src/cli/scaffolding/TemplateEngine.js +0 -107
  676. package/src/cli/scaffolding/TemplateGenerator.d.ts +0 -40
  677. package/src/cli/scaffolding/TemplateGenerator.d.ts.map +0 -1
  678. package/src/cli/scaffolding/TemplateGenerator.js +0 -172
  679. package/src/cli/scaffolding/WorkflowGenerator.d.ts +0 -31
  680. package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +0 -1
  681. package/src/cli/scaffolding/WorkflowGenerator.js +0 -193
  682. package/src/cli/scaffolding/index.d.ts +0 -37
  683. package/src/cli/scaffolding/index.d.ts.map +0 -1
  684. package/src/cli/scaffolding/index.js +0 -20
  685. package/src/cli/services/VersionChecker.d.ts +0 -53
  686. package/src/cli/services/VersionChecker.d.ts.map +0 -1
  687. package/src/cli/services/VersionChecker.js +0 -180
  688. package/src/cli/utils/DatabaseCliUtils.d.ts +0 -20
  689. package/src/cli/utils/DatabaseCliUtils.d.ts.map +0 -1
  690. package/src/cli/utils/DatabaseCliUtils.js +0 -54
  691. package/src/cli/utils/DistPackager.d.ts +0 -8
  692. package/src/cli/utils/DistPackager.d.ts.map +0 -1
  693. package/src/cli/utils/DistPackager.js +0 -102
  694. package/src/cli/utils/EnvFileLoader.d.ts +0 -21
  695. package/src/cli/utils/EnvFileLoader.d.ts.map +0 -1
  696. package/src/cli/utils/EnvFileLoader.js +0 -166
  697. package/src/cli/utils/spawn.d.ts +0 -11
  698. package/src/cli/utils/spawn.d.ts.map +0 -1
  699. package/src/cli/utils/spawn.js +0 -92
  700. package/src/cli/workers/QueueWorkRunner.d.ts +0 -23
  701. package/src/cli/workers/QueueWorkRunner.d.ts.map +0 -1
  702. package/src/cli/workers/QueueWorkRunner.js +0 -263
  703. package/src/collections/Collection.d.ts +0 -30
  704. package/src/collections/Collection.d.ts.map +0 -1
  705. package/src/collections/Collection.js +0 -146
  706. package/src/collections/index.d.ts +0 -3
  707. package/src/collections/index.d.ts.map +0 -1
  708. package/src/collections/index.js +0 -1
  709. package/src/common/AwsSigV4.d.ts +0 -41
  710. package/src/common/AwsSigV4.d.ts.map +0 -1
  711. package/src/common/AwsSigV4.js +0 -69
  712. package/src/common/ExternalServiceUtils.d.ts +0 -63
  713. package/src/common/ExternalServiceUtils.d.ts.map +0 -1
  714. package/src/common/ExternalServiceUtils.js +0 -116
  715. package/src/common/HealthRoutes.d.ts +0 -10
  716. package/src/common/HealthRoutes.d.ts.map +0 -1
  717. package/src/common/HealthRoutes.js +0 -114
  718. package/src/common/RemoteSignedJson.d.ts +0 -21
  719. package/src/common/RemoteSignedJson.d.ts.map +0 -1
  720. package/src/common/RemoteSignedJson.js +0 -86
  721. package/src/common/index.d.ts +0 -134
  722. package/src/common/index.d.ts.map +0 -1
  723. package/src/common/index.js +0 -328
  724. package/src/common/utility.d.ts +0 -38
  725. package/src/common/utility.d.ts.map +0 -1
  726. package/src/common/utility.js +0 -101
  727. package/src/config/FileLogWriter.d.ts +0 -23
  728. package/src/config/FileLogWriter.d.ts.map +0 -1
  729. package/src/config/FileLogWriter.js +0 -273
  730. package/src/config/SecretsManager.d.ts +0 -81
  731. package/src/config/SecretsManager.d.ts.map +0 -1
  732. package/src/config/SecretsManager.js +0 -355
  733. package/src/config/StartupConfigValidator.d.ts +0 -7
  734. package/src/config/StartupConfigValidator.d.ts.map +0 -1
  735. package/src/config/StartupConfigValidator.js +0 -179
  736. package/src/config/app.d.ts +0 -62
  737. package/src/config/app.d.ts.map +0 -1
  738. package/src/config/app.js +0 -184
  739. package/src/config/broadcast.d.ts +0 -22
  740. package/src/config/broadcast.d.ts.map +0 -1
  741. package/src/config/broadcast.js +0 -138
  742. package/src/config/cache.d.ts +0 -23
  743. package/src/config/cache.d.ts.map +0 -1
  744. package/src/config/cache.js +0 -125
  745. package/src/config/cloudflare.d.ts +0 -14
  746. package/src/config/cloudflare.d.ts.map +0 -1
  747. package/src/config/cloudflare.js +0 -38
  748. package/src/config/constants.d.ts +0 -238
  749. package/src/config/constants.d.ts.map +0 -1
  750. package/src/config/constants.js +0 -145
  751. package/src/config/database.d.ts +0 -41
  752. package/src/config/database.d.ts.map +0 -1
  753. package/src/config/database.js +0 -286
  754. package/src/config/env.d.ts +0 -128
  755. package/src/config/env.d.ts.map +0 -1
  756. package/src/config/env.js +0 -220
  757. package/src/config/features.d.ts +0 -27
  758. package/src/config/features.d.ts.map +0 -1
  759. package/src/config/features.js +0 -49
  760. package/src/config/index.d.ts +0 -241
  761. package/src/config/index.d.ts.map +0 -1
  762. package/src/config/index.js +0 -41
  763. package/src/config/logger.d.ts +0 -19
  764. package/src/config/logger.d.ts.map +0 -1
  765. package/src/config/logger.js +0 -338
  766. package/src/config/logging/HttpLogger.d.ts +0 -23
  767. package/src/config/logging/HttpLogger.d.ts.map +0 -1
  768. package/src/config/logging/HttpLogger.js +0 -93
  769. package/src/config/logging/KvLogger.d.ts +0 -22
  770. package/src/config/logging/KvLogger.d.ts.map +0 -1
  771. package/src/config/logging/KvLogger.js +0 -143
  772. package/src/config/logging/SlackLogger.d.ts +0 -23
  773. package/src/config/logging/SlackLogger.d.ts.map +0 -1
  774. package/src/config/logging/SlackLogger.js +0 -119
  775. package/src/config/mail.d.ts +0 -27
  776. package/src/config/mail.d.ts.map +0 -1
  777. package/src/config/mail.js +0 -154
  778. package/src/config/microservices.d.ts +0 -88
  779. package/src/config/microservices.d.ts.map +0 -1
  780. package/src/config/microservices.js +0 -90
  781. package/src/config/middleware.d.ts +0 -48
  782. package/src/config/middleware.d.ts.map +0 -1
  783. package/src/config/middleware.js +0 -205
  784. package/src/config/notification.d.ts +0 -24
  785. package/src/config/notification.d.ts.map +0 -1
  786. package/src/config/notification.js +0 -149
  787. package/src/config/queue.d.ts +0 -57
  788. package/src/config/queue.d.ts.map +0 -1
  789. package/src/config/queue.js +0 -144
  790. package/src/config/redis.d.ts +0 -17
  791. package/src/config/redis.d.ts.map +0 -1
  792. package/src/config/redis.js +0 -54
  793. package/src/config/security.d.ts +0 -123
  794. package/src/config/security.d.ts.map +0 -1
  795. package/src/config/security.js +0 -154
  796. package/src/config/startup.d.ts +0 -25
  797. package/src/config/startup.d.ts.map +0 -1
  798. package/src/config/startup.js +0 -16
  799. package/src/config/storage.d.ts +0 -45
  800. package/src/config/storage.d.ts.map +0 -1
  801. package/src/config/storage.js +0 -161
  802. package/src/config/type.d.ts +0 -492
  803. package/src/config/type.d.ts.map +0 -1
  804. package/src/config/type.js +0 -10
  805. package/src/config/workers.d.ts +0 -13
  806. package/src/config/workers.d.ts.map +0 -1
  807. package/src/config/workers.js +0 -173
  808. package/src/container/ServiceContainer.d.ts +0 -25
  809. package/src/container/ServiceContainer.d.ts.map +0 -1
  810. package/src/container/ServiceContainer.js +0 -75
  811. package/src/database/Paginator.d.ts +0 -37
  812. package/src/database/Paginator.d.ts.map +0 -1
  813. package/src/database/Paginator.js +0 -81
  814. package/src/database/migrations/index.d.ts +0 -2
  815. package/src/database/migrations/index.d.ts.map +0 -1
  816. package/src/database/migrations/index.js +0 -2
  817. package/src/events/EventDispatcher.d.ts +0 -16
  818. package/src/events/EventDispatcher.d.ts.map +0 -1
  819. package/src/events/EventDispatcher.js +0 -92
  820. package/src/events/index.d.ts +0 -3
  821. package/src/events/index.d.ts.map +0 -1
  822. package/src/events/index.js +0 -1
  823. package/src/exceptions/ZintrustError.d.ts +0 -98
  824. package/src/exceptions/ZintrustError.d.ts.map +0 -1
  825. package/src/exceptions/ZintrustError.js +0 -170
  826. package/src/functions/cloudflare.d.ts +0 -5
  827. package/src/functions/cloudflare.d.ts.map +0 -1
  828. package/src/functions/cloudflare.js +0 -23
  829. package/src/functions/deno.d.ts +0 -3
  830. package/src/functions/deno.d.ts.map +0 -1
  831. package/src/functions/deno.js +0 -20
  832. package/src/functions/lambda.d.ts +0 -2
  833. package/src/functions/lambda.d.ts.map +0 -1
  834. package/src/functions/lambda.js +0 -26
  835. package/src/health/RuntimeHealthProbes.d.ts +0 -13
  836. package/src/health/RuntimeHealthProbes.d.ts.map +0 -1
  837. package/src/health/RuntimeHealthProbes.js +0 -62
  838. package/src/health/StartupHealthChecks.d.ts +0 -26
  839. package/src/health/StartupHealthChecks.d.ts.map +0 -1
  840. package/src/health/StartupHealthChecks.js +0 -124
  841. package/src/http/Controller.d.ts +0 -20
  842. package/src/http/Controller.d.ts.map +0 -1
  843. package/src/http/Controller.js +0 -46
  844. package/src/http/ErrorResponse.d.ts +0 -28
  845. package/src/http/ErrorResponse.d.ts.map +0 -1
  846. package/src/http/ErrorResponse.js +0 -42
  847. package/src/http/FileUpload.d.ts +0 -68
  848. package/src/http/FileUpload.d.ts.map +0 -1
  849. package/src/http/FileUpload.js +0 -120
  850. package/src/http/Kernel.d.ts +0 -29
  851. package/src/http/Kernel.d.ts.map +0 -1
  852. package/src/http/Kernel.js +0 -254
  853. package/src/http/Request.d.ts +0 -64
  854. package/src/http/Request.d.ts.map +0 -1
  855. package/src/http/Request.js +0 -237
  856. package/src/http/RequestContext.d.ts +0 -26
  857. package/src/http/RequestContext.d.ts.map +0 -1
  858. package/src/http/RequestContext.js +0 -153
  859. package/src/http/Response.d.ts +0 -32
  860. package/src/http/Response.d.ts.map +0 -1
  861. package/src/http/Response.js +0 -70
  862. package/src/http/ValidationHelper.d.ts +0 -78
  863. package/src/http/ValidationHelper.d.ts.map +0 -1
  864. package/src/http/ValidationHelper.js +0 -121
  865. package/src/http/error-pages/ErrorPageRenderer.d.ts +0 -17
  866. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +0 -1
  867. package/src/http/error-pages/ErrorPageRenderer.js +0 -89
  868. package/src/http/middleware/BodyParsingMiddleware.d.ts +0 -12
  869. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +0 -1
  870. package/src/http/middleware/BodyParsingMiddleware.js +0 -251
  871. package/src/http/middleware/FileUploadMiddleware.d.ts +0 -12
  872. package/src/http/middleware/FileUploadMiddleware.d.ts.map +0 -1
  873. package/src/http/middleware/FileUploadMiddleware.js +0 -74
  874. package/src/http/parsers/BodyParsers.d.ts +0 -32
  875. package/src/http/parsers/BodyParsers.d.ts.map +0 -1
  876. package/src/http/parsers/BodyParsers.js +0 -159
  877. package/src/http/parsers/MultipartParser.d.ts +0 -33
  878. package/src/http/parsers/MultipartParser.d.ts.map +0 -1
  879. package/src/http/parsers/MultipartParser.js +0 -156
  880. package/src/http/parsers/MultipartParserRegistry.d.ts +0 -34
  881. package/src/http/parsers/MultipartParserRegistry.d.ts.map +0 -1
  882. package/src/http/parsers/MultipartParserRegistry.js +0 -20
  883. package/src/http/validated.d.ts +0 -12
  884. package/src/http/validated.d.ts.map +0 -1
  885. package/src/http/validated.js +0 -41
  886. package/src/index.d.ts +0 -258
  887. package/src/index.d.ts.map +0 -1
  888. package/src/index.js +0 -212
  889. package/src/lang/lang.d.ts +0 -23
  890. package/src/lang/lang.d.ts.map +0 -1
  891. package/src/lang/lang.js +0 -22
  892. package/src/microservices/MicroserviceBootstrap.d.ts +0 -75
  893. package/src/microservices/MicroserviceBootstrap.d.ts.map +0 -1
  894. package/src/microservices/MicroserviceBootstrap.js +0 -288
  895. package/src/microservices/MicroserviceGenerator.d.ts +0 -27
  896. package/src/microservices/MicroserviceGenerator.d.ts.map +0 -1
  897. package/src/microservices/MicroserviceGenerator.js +0 -436
  898. package/src/microservices/MicroserviceManager.d.ts +0 -68
  899. package/src/microservices/MicroserviceManager.d.ts.map +0 -1
  900. package/src/microservices/MicroserviceManager.js +0 -268
  901. package/src/microservices/PostgresAdapter.d.ts +0 -90
  902. package/src/microservices/PostgresAdapter.d.ts.map +0 -1
  903. package/src/microservices/PostgresAdapter.js +0 -306
  904. package/src/microservices/RequestTracingMiddleware.d.ts +0 -41
  905. package/src/microservices/RequestTracingMiddleware.d.ts.map +0 -1
  906. package/src/microservices/RequestTracingMiddleware.js +0 -125
  907. package/src/microservices/ServiceAuthMiddleware.d.ts +0 -58
  908. package/src/microservices/ServiceAuthMiddleware.d.ts.map +0 -1
  909. package/src/microservices/ServiceAuthMiddleware.js +0 -240
  910. package/src/microservices/ServiceBundler.d.ts +0 -45
  911. package/src/microservices/ServiceBundler.d.ts.map +0 -1
  912. package/src/microservices/ServiceBundler.js +0 -299
  913. package/src/microservices/ServiceHealthMonitor.d.ts +0 -96
  914. package/src/microservices/ServiceHealthMonitor.d.ts.map +0 -1
  915. package/src/microservices/ServiceHealthMonitor.js +0 -383
  916. package/src/middleware/AuthMiddleware.d.ts +0 -10
  917. package/src/middleware/AuthMiddleware.d.ts.map +0 -1
  918. package/src/middleware/AuthMiddleware.js +0 -16
  919. package/src/middleware/CsrfMiddleware.d.ts +0 -29
  920. package/src/middleware/CsrfMiddleware.d.ts.map +0 -1
  921. package/src/middleware/CsrfMiddleware.js +0 -132
  922. package/src/middleware/ErrorHandlerMiddleware.d.ts +0 -6
  923. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +0 -1
  924. package/src/middleware/ErrorHandlerMiddleware.js +0 -41
  925. package/src/middleware/JwtAuthMiddleware.d.ts +0 -11
  926. package/src/middleware/JwtAuthMiddleware.d.ts.map +0 -1
  927. package/src/middleware/JwtAuthMiddleware.js +0 -73
  928. package/src/middleware/LoggingMiddleware.d.ts +0 -9
  929. package/src/middleware/LoggingMiddleware.d.ts.map +0 -1
  930. package/src/middleware/LoggingMiddleware.js +0 -41
  931. package/src/middleware/MiddlewareStack.d.ts +0 -27
  932. package/src/middleware/MiddlewareStack.d.ts.map +0 -1
  933. package/src/middleware/MiddlewareStack.js +0 -43
  934. package/src/middleware/RateLimiter.d.ts +0 -57
  935. package/src/middleware/RateLimiter.d.ts.map +0 -1
  936. package/src/middleware/RateLimiter.js +0 -270
  937. package/src/middleware/SanitizeBodyMiddleware.d.ts +0 -12
  938. package/src/middleware/SanitizeBodyMiddleware.d.ts.map +0 -1
  939. package/src/middleware/SanitizeBodyMiddleware.js +0 -31
  940. package/src/middleware/SecurityMiddleware.d.ts +0 -33
  941. package/src/middleware/SecurityMiddleware.d.ts.map +0 -1
  942. package/src/middleware/SecurityMiddleware.js +0 -106
  943. package/src/middleware/SessionMiddleware.d.ts +0 -8
  944. package/src/middleware/SessionMiddleware.d.ts.map +0 -1
  945. package/src/middleware/SessionMiddleware.js +0 -15
  946. package/src/middleware/ValidationMiddleware.d.ts +0 -25
  947. package/src/middleware/ValidationMiddleware.d.ts.map +0 -1
  948. package/src/middleware/ValidationMiddleware.js +0 -251
  949. package/src/middleware/index.d.ts +0 -11
  950. package/src/middleware/index.d.ts.map +0 -1
  951. package/src/middleware/index.js +0 -10
  952. package/src/migrations/MigrationDiscovery.d.ts +0 -5
  953. package/src/migrations/MigrationDiscovery.d.ts.map +0 -1
  954. package/src/migrations/MigrationDiscovery.js +0 -16
  955. package/src/migrations/MigrationLoader.d.ts +0 -5
  956. package/src/migrations/MigrationLoader.d.ts.map +0 -1
  957. package/src/migrations/MigrationLoader.js +0 -43
  958. package/src/migrations/MigrationLock.d.ts +0 -4
  959. package/src/migrations/MigrationLock.d.ts.map +0 -1
  960. package/src/migrations/MigrationLock.js +0 -33
  961. package/src/migrations/Migrator.d.ts +0 -23
  962. package/src/migrations/Migrator.d.ts.map +0 -1
  963. package/src/migrations/Migrator.js +0 -4
  964. package/src/migrations/MigratorFactory.d.ts +0 -25
  965. package/src/migrations/MigratorFactory.d.ts.map +0 -1
  966. package/src/migrations/MigratorFactory.js +0 -339
  967. package/src/migrations/enum/index.d.ts +0 -93
  968. package/src/migrations/enum/index.d.ts.map +0 -1
  969. package/src/migrations/enum/index.js +0 -92
  970. package/src/migrations/schema/Blueprint.d.ts +0 -5
  971. package/src/migrations/schema/Blueprint.d.ts.map +0 -1
  972. package/src/migrations/schema/Blueprint.js +0 -191
  973. package/src/migrations/schema/Schema.d.ts +0 -8
  974. package/src/migrations/schema/Schema.d.ts.map +0 -1
  975. package/src/migrations/schema/Schema.js +0 -142
  976. package/src/migrations/schema/SchemaCompiler.d.ts +0 -20
  977. package/src/migrations/schema/SchemaCompiler.d.ts.map +0 -1
  978. package/src/migrations/schema/SchemaCompiler.js +0 -270
  979. package/src/migrations/schema/index.d.ts +0 -5
  980. package/src/migrations/schema/index.d.ts.map +0 -1
  981. package/src/migrations/schema/index.js +0 -3
  982. package/src/migrations/schema/types.d.ts +0 -87
  983. package/src/migrations/schema/types.d.ts.map +0 -1
  984. package/src/migrations/schema/types.js +0 -1
  985. package/src/migrations/types.d.ts +0 -45
  986. package/src/migrations/types.d.ts.map +0 -1
  987. package/src/migrations/types.js +0 -1
  988. package/src/node-singletons/async_hooks.d.ts +0 -9
  989. package/src/node-singletons/async_hooks.d.ts.map +0 -1
  990. package/src/node-singletons/async_hooks.js +0 -8
  991. package/src/node-singletons/child-process.d.ts +0 -7
  992. package/src/node-singletons/child-process.d.ts.map +0 -1
  993. package/src/node-singletons/child-process.js +0 -6
  994. package/src/node-singletons/crypto.d.ts +0 -7
  995. package/src/node-singletons/crypto.d.ts.map +0 -1
  996. package/src/node-singletons/crypto.js +0 -6
  997. package/src/node-singletons/events.d.ts +0 -7
  998. package/src/node-singletons/events.d.ts.map +0 -1
  999. package/src/node-singletons/events.js +0 -6
  1000. package/src/node-singletons/fs.d.ts +0 -12
  1001. package/src/node-singletons/fs.d.ts.map +0 -1
  1002. package/src/node-singletons/fs.js +0 -14
  1003. package/src/node-singletons/http.d.ts +0 -8
  1004. package/src/node-singletons/http.d.ts.map +0 -1
  1005. package/src/node-singletons/http.js +0 -6
  1006. package/src/node-singletons/index.d.ts +0 -34
  1007. package/src/node-singletons/index.d.ts.map +0 -1
  1008. package/src/node-singletons/index.js +0 -35
  1009. package/src/node-singletons/net.d.ts +0 -9
  1010. package/src/node-singletons/net.d.ts.map +0 -1
  1011. package/src/node-singletons/net.js +0 -8
  1012. package/src/node-singletons/os.d.ts +0 -18
  1013. package/src/node-singletons/os.d.ts.map +0 -1
  1014. package/src/node-singletons/os.js +0 -17
  1015. package/src/node-singletons/path.d.ts +0 -9
  1016. package/src/node-singletons/path.d.ts.map +0 -1
  1017. package/src/node-singletons/path.js +0 -8
  1018. package/src/node-singletons/perf-hooks.d.ts +0 -9
  1019. package/src/node-singletons/perf-hooks.d.ts.map +0 -1
  1020. package/src/node-singletons/perf-hooks.js +0 -8
  1021. package/src/node-singletons/process.d.ts +0 -23
  1022. package/src/node-singletons/process.d.ts.map +0 -1
  1023. package/src/node-singletons/process.js +0 -8
  1024. package/src/node-singletons/readline.d.ts +0 -10
  1025. package/src/node-singletons/readline.d.ts.map +0 -1
  1026. package/src/node-singletons/readline.js +0 -8
  1027. package/src/node-singletons/tls.d.ts +0 -9
  1028. package/src/node-singletons/tls.d.ts.map +0 -1
  1029. package/src/node-singletons/tls.js +0 -8
  1030. package/src/node-singletons/url.d.ts +0 -9
  1031. package/src/node-singletons/url.d.ts.map +0 -1
  1032. package/src/node-singletons/url.js +0 -8
  1033. package/src/node-singletons/util.d.ts +0 -6
  1034. package/src/node-singletons/util.d.ts.map +0 -1
  1035. package/src/node-singletons/util.js +0 -5
  1036. package/src/node.d.ts +0 -9
  1037. package/src/node.d.ts.map +0 -1
  1038. package/src/node.js +0 -13
  1039. package/src/observability/OpenTelemetry.d.ts +0 -62
  1040. package/src/observability/OpenTelemetry.d.ts.map +0 -1
  1041. package/src/observability/OpenTelemetry.js +0 -167
  1042. package/src/observability/PrometheusMetrics.d.ts +0 -25
  1043. package/src/observability/PrometheusMetrics.d.ts.map +0 -1
  1044. package/src/observability/PrometheusMetrics.js +0 -114
  1045. package/src/openapi/OpenApiGenerator.d.ts +0 -68
  1046. package/src/openapi/OpenApiGenerator.d.ts.map +0 -1
  1047. package/src/openapi/OpenApiGenerator.js +0 -287
  1048. package/src/orm/ConnectionManager.d.ts +0 -125
  1049. package/src/orm/ConnectionManager.d.ts.map +0 -1
  1050. package/src/orm/ConnectionManager.js +0 -571
  1051. package/src/orm/Database.d.ts +0 -35
  1052. package/src/orm/Database.d.ts.map +0 -1
  1053. package/src/orm/Database.js +0 -350
  1054. package/src/orm/DatabaseAdapter.d.ts +0 -117
  1055. package/src/orm/DatabaseAdapter.d.ts.map +0 -1
  1056. package/src/orm/DatabaseAdapter.js +0 -57
  1057. package/src/orm/DatabaseAdapterRegistry.d.ts +0 -14
  1058. package/src/orm/DatabaseAdapterRegistry.d.ts.map +0 -1
  1059. package/src/orm/DatabaseAdapterRegistry.js +0 -21
  1060. package/src/orm/DatabaseRuntimeRegistration.d.ts +0 -17
  1061. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +0 -1
  1062. package/src/orm/DatabaseRuntimeRegistration.js +0 -73
  1063. package/src/orm/Model.d.ts +0 -135
  1064. package/src/orm/Model.d.ts.map +0 -1
  1065. package/src/orm/Model.js +0 -533
  1066. package/src/orm/QueryBuilder.d.ts +0 -98
  1067. package/src/orm/QueryBuilder.d.ts.map +0 -1
  1068. package/src/orm/QueryBuilder.js +0 -1057
  1069. package/src/orm/Relationships.d.ts +0 -119
  1070. package/src/orm/Relationships.d.ts.map +0 -1
  1071. package/src/orm/Relationships.js +0 -306
  1072. package/src/orm/Schema.d.ts +0 -123
  1073. package/src/orm/Schema.d.ts.map +0 -1
  1074. package/src/orm/Schema.js +0 -169
  1075. package/src/orm/SchemaCompiler.d.ts +0 -9
  1076. package/src/orm/SchemaCompiler.d.ts.map +0 -1
  1077. package/src/orm/SchemaCompiler.js +0 -145
  1078. package/src/orm/adapters/D1Adapter.d.ts +0 -15
  1079. package/src/orm/adapters/D1Adapter.d.ts.map +0 -1
  1080. package/src/orm/adapters/D1Adapter.js +0 -132
  1081. package/src/orm/adapters/D1RemoteAdapter.d.ts +0 -11
  1082. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +0 -1
  1083. package/src/orm/adapters/D1RemoteAdapter.js +0 -163
  1084. package/src/orm/adapters/MySQLAdapter.d.ts +0 -16
  1085. package/src/orm/adapters/MySQLAdapter.d.ts.map +0 -1
  1086. package/src/orm/adapters/MySQLAdapter.js +0 -109
  1087. package/src/orm/adapters/PostgreSQLAdapter.d.ts +0 -16
  1088. package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  1089. package/src/orm/adapters/PostgreSQLAdapter.js +0 -108
  1090. package/src/orm/adapters/SQLServerAdapter.d.ts +0 -16
  1091. package/src/orm/adapters/SQLServerAdapter.d.ts.map +0 -1
  1092. package/src/orm/adapters/SQLServerAdapter.js +0 -84
  1093. package/src/orm/adapters/SQLiteAdapter.d.ts +0 -11
  1094. package/src/orm/adapters/SQLiteAdapter.d.ts.map +0 -1
  1095. package/src/orm/adapters/SQLiteAdapter.js +0 -225
  1096. package/src/orm/maintenance/SqliteMaintenance.d.ts +0 -5
  1097. package/src/orm/maintenance/SqliteMaintenance.d.ts.map +0 -1
  1098. package/src/orm/maintenance/SqliteMaintenance.js +0 -14
  1099. package/src/orm/migrations/MigrationStore.d.ts +0 -38
  1100. package/src/orm/migrations/MigrationStore.d.ts.map +0 -1
  1101. package/src/orm/migrations/MigrationStore.js +0 -157
  1102. package/src/performance/Benchmark.d.ts +0 -87
  1103. package/src/performance/Benchmark.d.ts.map +0 -1
  1104. package/src/performance/Benchmark.js +0 -307
  1105. package/src/performance/CodeGenerationBenchmark.d.ts +0 -23
  1106. package/src/performance/CodeGenerationBenchmark.d.ts.map +0 -1
  1107. package/src/performance/CodeGenerationBenchmark.js +0 -249
  1108. package/src/performance/Optimizer.d.ts +0 -100
  1109. package/src/performance/Optimizer.d.ts.map +0 -1
  1110. package/src/performance/Optimizer.js +0 -627
  1111. package/src/performance/establish-baseline.d.ts +0 -9
  1112. package/src/performance/establish-baseline.d.ts.map +0 -1
  1113. package/src/performance/establish-baseline.js +0 -55
  1114. package/src/profiling/MemoryProfiler.d.ts +0 -32
  1115. package/src/profiling/MemoryProfiler.d.ts.map +0 -1
  1116. package/src/profiling/MemoryProfiler.js +0 -84
  1117. package/src/profiling/N1Detector.d.ts +0 -16
  1118. package/src/profiling/N1Detector.d.ts.map +0 -1
  1119. package/src/profiling/N1Detector.js +0 -120
  1120. package/src/profiling/QueryLogger.d.ts +0 -107
  1121. package/src/profiling/QueryLogger.d.ts.map +0 -1
  1122. package/src/profiling/QueryLogger.js +0 -148
  1123. package/src/profiling/RequestProfiler.d.ts +0 -30
  1124. package/src/profiling/RequestProfiler.d.ts.map +0 -1
  1125. package/src/profiling/RequestProfiler.js +0 -96
  1126. package/src/profiling/types.d.ts +0 -77
  1127. package/src/profiling/types.d.ts.map +0 -1
  1128. package/src/profiling/types.js +0 -5
  1129. package/src/routes/api.d.ts +0 -2
  1130. package/src/routes/api.d.ts.map +0 -1
  1131. package/src/routes/api.js +0 -1
  1132. package/src/routes/broadcast.d.ts +0 -2
  1133. package/src/routes/broadcast.d.ts.map +0 -1
  1134. package/src/routes/broadcast.js +0 -1
  1135. package/src/routes/metrics.d.ts +0 -2
  1136. package/src/routes/metrics.d.ts.map +0 -1
  1137. package/src/routes/metrics.js +0 -1
  1138. package/src/routes/storage.d.ts +0 -2
  1139. package/src/routes/storage.d.ts.map +0 -1
  1140. package/src/routes/storage.js +0 -1
  1141. package/src/routing/CoreRoutes.d.ts +0 -12
  1142. package/src/routing/CoreRoutes.d.ts.map +0 -1
  1143. package/src/routing/CoreRoutes.js +0 -37
  1144. package/src/routing/RouteRegistry.d.ts +0 -39
  1145. package/src/routing/RouteRegistry.d.ts.map +0 -1
  1146. package/src/routing/RouteRegistry.js +0 -44
  1147. package/src/routing/Router.d.ts +0 -73
  1148. package/src/routing/Router.d.ts.map +0 -1
  1149. package/src/routing/Router.js +0 -250
  1150. package/src/routing/common.d.ts +0 -15
  1151. package/src/routing/common.d.ts.map +0 -1
  1152. package/src/routing/common.js +0 -47
  1153. package/src/routing/doc.d.ts +0 -27
  1154. package/src/routing/doc.d.ts.map +0 -1
  1155. package/src/routing/doc.js +0 -110
  1156. package/src/routing/error.d.ts +0 -21
  1157. package/src/routing/error.d.ts.map +0 -1
  1158. package/src/routing/error.js +0 -127
  1159. package/src/routing/errorPages.d.ts +0 -14
  1160. package/src/routing/errorPages.d.ts.map +0 -1
  1161. package/src/routing/errorPages.js +0 -103
  1162. package/src/routing/publicRoot.d.ts +0 -27
  1163. package/src/routing/publicRoot.d.ts.map +0 -1
  1164. package/src/routing/publicRoot.js +0 -112
  1165. package/src/runtime/PluginAutoImports.d.ts +0 -21
  1166. package/src/runtime/PluginAutoImports.d.ts.map +0 -1
  1167. package/src/runtime/PluginAutoImports.js +0 -63
  1168. package/src/runtime/PluginManager.d.ts +0 -28
  1169. package/src/runtime/PluginManager.d.ts.map +0 -1
  1170. package/src/runtime/PluginManager.js +0 -373
  1171. package/src/runtime/PluginRegistry.d.ts +0 -27
  1172. package/src/runtime/PluginRegistry.d.ts.map +0 -1
  1173. package/src/runtime/PluginRegistry.js +0 -183
  1174. package/src/runtime/RuntimeAdapter.d.ts +0 -126
  1175. package/src/runtime/RuntimeAdapter.d.ts.map +0 -1
  1176. package/src/runtime/RuntimeAdapter.js +0 -146
  1177. package/src/runtime/StartupConfigFileRegistry.d.ts +0 -22
  1178. package/src/runtime/StartupConfigFileRegistry.d.ts.map +0 -1
  1179. package/src/runtime/StartupConfigFileRegistry.js +0 -44
  1180. package/src/runtime/adapters/CloudflareAdapter.d.ts +0 -43
  1181. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +0 -1
  1182. package/src/runtime/adapters/CloudflareAdapter.js +0 -175
  1183. package/src/runtime/adapters/DenoAdapter.d.ts +0 -30
  1184. package/src/runtime/adapters/DenoAdapter.d.ts.map +0 -1
  1185. package/src/runtime/adapters/DenoAdapter.js +0 -193
  1186. package/src/runtime/adapters/FargateAdapter.d.ts +0 -40
  1187. package/src/runtime/adapters/FargateAdapter.d.ts.map +0 -1
  1188. package/src/runtime/adapters/FargateAdapter.js +0 -157
  1189. package/src/runtime/adapters/LambdaAdapter.d.ts +0 -13
  1190. package/src/runtime/adapters/LambdaAdapter.d.ts.map +0 -1
  1191. package/src/runtime/adapters/LambdaAdapter.js +0 -306
  1192. package/src/runtime/adapters/NodeServerAdapter.d.ts +0 -16
  1193. package/src/runtime/adapters/NodeServerAdapter.d.ts.map +0 -1
  1194. package/src/runtime/adapters/NodeServerAdapter.js +0 -200
  1195. package/src/runtime/getKernel.d.ts +0 -9
  1196. package/src/runtime/getKernel.d.ts.map +0 -1
  1197. package/src/runtime/getKernel.js +0 -27
  1198. package/src/runtime/useFileLoader.d.ts +0 -26
  1199. package/src/runtime/useFileLoader.d.ts.map +0 -1
  1200. package/src/runtime/useFileLoader.js +0 -188
  1201. package/src/scheduler/ScheduleRunner.d.ts +0 -18
  1202. package/src/scheduler/ScheduleRunner.d.ts.map +0 -1
  1203. package/src/scheduler/ScheduleRunner.js +0 -155
  1204. package/src/scheduler/index.d.ts +0 -3
  1205. package/src/scheduler/index.d.ts.map +0 -1
  1206. package/src/scheduler/index.js +0 -1
  1207. package/src/scheduler/types.d.ts +0 -16
  1208. package/src/scheduler/types.d.ts.map +0 -1
  1209. package/src/scheduler/types.js +0 -4
  1210. package/src/schedules/index.d.ts +0 -2
  1211. package/src/schedules/index.d.ts.map +0 -1
  1212. package/src/schedules/index.js +0 -1
  1213. package/src/schedules/log-cleanup.d.ts +0 -4
  1214. package/src/schedules/log-cleanup.d.ts.map +0 -1
  1215. package/src/schedules/log-cleanup.js +0 -18
  1216. package/src/scripts/GenerateEnvArtifacts.d.ts +0 -13
  1217. package/src/scripts/GenerateEnvArtifacts.d.ts.map +0 -1
  1218. package/src/scripts/GenerateEnvArtifacts.js +0 -171
  1219. package/src/scripts/TemplateImportsCheck.d.ts +0 -2
  1220. package/src/scripts/TemplateImportsCheck.d.ts.map +0 -1
  1221. package/src/scripts/TemplateImportsCheck.js +0 -151
  1222. package/src/scripts/TemplateSync.d.ts +0 -7
  1223. package/src/scripts/TemplateSync.d.ts.map +0 -1
  1224. package/src/scripts/TemplateSync.js +0 -399
  1225. package/src/security/CsrfTokenManager.d.ts +0 -28
  1226. package/src/security/CsrfTokenManager.d.ts.map +0 -1
  1227. package/src/security/CsrfTokenManager.js +0 -78
  1228. package/src/security/EncryptedEnvelope.d.ts +0 -77
  1229. package/src/security/EncryptedEnvelope.d.ts.map +0 -1
  1230. package/src/security/EncryptedEnvelope.js +0 -256
  1231. package/src/security/Encryptor.d.ts +0 -15
  1232. package/src/security/Encryptor.d.ts.map +0 -1
  1233. package/src/security/Encryptor.js +0 -199
  1234. package/src/security/Hash.d.ts +0 -14
  1235. package/src/security/Hash.d.ts.map +0 -1
  1236. package/src/security/Hash.js +0 -81
  1237. package/src/security/JwtManager.d.ts +0 -42
  1238. package/src/security/JwtManager.d.ts.map +0 -1
  1239. package/src/security/JwtManager.js +0 -262
  1240. package/src/security/PasswordResetTokenBroker.d.ts +0 -39
  1241. package/src/security/PasswordResetTokenBroker.d.ts.map +0 -1
  1242. package/src/security/PasswordResetTokenBroker.js +0 -131
  1243. package/src/security/Sanitizer.d.ts +0 -76
  1244. package/src/security/Sanitizer.d.ts.map +0 -1
  1245. package/src/security/Sanitizer.js +0 -412
  1246. package/src/security/SignedRequest.d.ts +0 -53
  1247. package/src/security/SignedRequest.d.ts.map +0 -1
  1248. package/src/security/SignedRequest.js +0 -172
  1249. package/src/security/StartupSecretValidation.d.ts +0 -20
  1250. package/src/security/StartupSecretValidation.d.ts.map +0 -1
  1251. package/src/security/StartupSecretValidation.js +0 -139
  1252. package/src/security/TokenRevocation.d.ts +0 -7
  1253. package/src/security/TokenRevocation.d.ts.map +0 -1
  1254. package/src/security/TokenRevocation.js +0 -57
  1255. package/src/security/UrlValidator.d.ts +0 -20
  1256. package/src/security/UrlValidator.d.ts.map +0 -1
  1257. package/src/security/UrlValidator.js +0 -41
  1258. package/src/security/Xss.d.ts +0 -14
  1259. package/src/security/Xss.d.ts.map +0 -1
  1260. package/src/security/Xss.js +0 -57
  1261. package/src/security/XssProtection.d.ts +0 -24
  1262. package/src/security/XssProtection.d.ts.map +0 -1
  1263. package/src/security/XssProtection.js +0 -324
  1264. package/src/seeders/SeederDiscovery.d.ts +0 -5
  1265. package/src/seeders/SeederDiscovery.d.ts.map +0 -1
  1266. package/src/seeders/SeederDiscovery.js +0 -21
  1267. package/src/seeders/SeederLoader.d.ts +0 -5
  1268. package/src/seeders/SeederLoader.d.ts.map +0 -1
  1269. package/src/seeders/SeederLoader.js +0 -60
  1270. package/src/seeders/types.d.ts +0 -18
  1271. package/src/seeders/types.d.ts.map +0 -1
  1272. package/src/seeders/types.js +0 -1
  1273. package/src/session/SessionManager.d.ts +0 -39
  1274. package/src/session/SessionManager.d.ts.map +0 -1
  1275. package/src/session/SessionManager.js +0 -149
  1276. package/src/session/index.d.ts +0 -3
  1277. package/src/session/index.d.ts.map +0 -1
  1278. package/src/session/index.js +0 -1
  1279. package/src/start.d.ts +0 -21
  1280. package/src/start.d.ts.map +0 -1
  1281. package/src/start.js +0 -59
  1282. package/src/templates/TemplateRegistry.d.ts +0 -40
  1283. package/src/templates/TemplateRegistry.d.ts.map +0 -1
  1284. package/src/templates/TemplateRegistry.js +0 -78
  1285. package/src/testing/TestEnvironment.d.ts +0 -40
  1286. package/src/testing/TestEnvironment.d.ts.map +0 -1
  1287. package/src/testing/TestEnvironment.js +0 -141
  1288. package/src/testing/TestHttp.d.ts +0 -29
  1289. package/src/testing/TestHttp.d.ts.map +0 -1
  1290. package/src/testing/TestHttp.js +0 -96
  1291. package/src/testing/index.d.ts +0 -5
  1292. package/src/testing/index.d.ts.map +0 -1
  1293. package/src/testing/index.js +0 -2
  1294. package/src/time/DateTime.d.ts +0 -181
  1295. package/src/time/DateTime.d.ts.map +0 -1
  1296. package/src/time/DateTime.js +0 -300
  1297. package/src/time/index.d.ts +0 -7
  1298. package/src/time/index.d.ts.map +0 -1
  1299. package/src/time/index.js +0 -5
  1300. package/src/toolkit/Secrets/EnvFile.d.ts +0 -15
  1301. package/src/toolkit/Secrets/EnvFile.d.ts.map +0 -1
  1302. package/src/toolkit/Secrets/EnvFile.js +0 -63
  1303. package/src/toolkit/Secrets/Manifest.d.ts +0 -24
  1304. package/src/toolkit/Secrets/Manifest.d.ts.map +0 -1
  1305. package/src/toolkit/Secrets/Manifest.js +0 -71
  1306. package/src/toolkit/Secrets/index.d.ts +0 -42
  1307. package/src/toolkit/Secrets/index.d.ts.map +0 -1
  1308. package/src/toolkit/Secrets/index.js +0 -123
  1309. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts +0 -14
  1310. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +0 -1
  1311. package/src/toolkit/Secrets/providers/AwsSecretsManager.js +0 -132
  1312. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts +0 -9
  1313. package/src/toolkit/Secrets/providers/CloudflareKv.d.ts.map +0 -1
  1314. package/src/toolkit/Secrets/providers/CloudflareKv.js +0 -74
  1315. package/src/tools/broadcast/Broadcast.d.ts +0 -17
  1316. package/src/tools/broadcast/Broadcast.d.ts.map +0 -1
  1317. package/src/tools/broadcast/Broadcast.js +0 -84
  1318. package/src/tools/broadcast/BroadcastRegistry.d.ts +0 -15
  1319. package/src/tools/broadcast/BroadcastRegistry.d.ts.map +0 -1
  1320. package/src/tools/broadcast/BroadcastRegistry.js +0 -29
  1321. package/src/tools/broadcast/BroadcastRuntimeRegistration.d.ts +0 -11
  1322. package/src/tools/broadcast/BroadcastRuntimeRegistration.d.ts.map +0 -1
  1323. package/src/tools/broadcast/BroadcastRuntimeRegistration.js +0 -23
  1324. package/src/tools/broadcast/drivers/BaseDriver.d.ts +0 -5
  1325. package/src/tools/broadcast/drivers/BaseDriver.d.ts.map +0 -1
  1326. package/src/tools/broadcast/drivers/BaseDriver.js +0 -8
  1327. package/src/tools/broadcast/drivers/InMemory.d.ts +0 -18
  1328. package/src/tools/broadcast/drivers/InMemory.d.ts.map +0 -1
  1329. package/src/tools/broadcast/drivers/InMemory.js +0 -16
  1330. package/src/tools/broadcast/drivers/Pusher.d.ts +0 -8
  1331. package/src/tools/broadcast/drivers/Pusher.d.ts.map +0 -1
  1332. package/src/tools/broadcast/drivers/Pusher.js +0 -75
  1333. package/src/tools/broadcast/drivers/Redis.d.ts +0 -19
  1334. package/src/tools/broadcast/drivers/Redis.d.ts.map +0 -1
  1335. package/src/tools/broadcast/drivers/Redis.js +0 -25
  1336. package/src/tools/broadcast/drivers/RedisHttps.d.ts +0 -14
  1337. package/src/tools/broadcast/drivers/RedisHttps.d.ts.map +0 -1
  1338. package/src/tools/broadcast/drivers/RedisHttps.js +0 -50
  1339. package/src/tools/broadcast/index.d.ts +0 -9
  1340. package/src/tools/broadcast/index.d.ts.map +0 -1
  1341. package/src/tools/broadcast/index.js +0 -8
  1342. package/src/tools/http/Http.d.ts +0 -49
  1343. package/src/tools/http/Http.d.ts.map +0 -1
  1344. package/src/tools/http/Http.js +0 -173
  1345. package/src/tools/http/HttpResponse.d.ts +0 -32
  1346. package/src/tools/http/HttpResponse.d.ts.map +0 -1
  1347. package/src/tools/http/HttpResponse.js +0 -80
  1348. package/src/tools/http/index.d.ts +0 -15
  1349. package/src/tools/http/index.d.ts.map +0 -1
  1350. package/src/tools/http/index.js +0 -9
  1351. package/src/tools/mail/Mail.d.ts +0 -2
  1352. package/src/tools/mail/Mail.d.ts.map +0 -1
  1353. package/src/tools/mail/Mail.js +0 -1
  1354. package/src/tools/mail/MailDriverRegistry.d.ts +0 -18
  1355. package/src/tools/mail/MailDriverRegistry.d.ts.map +0 -1
  1356. package/src/tools/mail/MailDriverRegistry.js +0 -23
  1357. package/src/tools/mail/attachments.d.ts +0 -23
  1358. package/src/tools/mail/attachments.d.ts.map +0 -1
  1359. package/src/tools/mail/attachments.js +0 -26
  1360. package/src/tools/mail/drivers/BaseDriver.d.ts +0 -5
  1361. package/src/tools/mail/drivers/BaseDriver.d.ts.map +0 -1
  1362. package/src/tools/mail/drivers/BaseDriver.js +0 -8
  1363. package/src/tools/mail/drivers/Mailgun.d.ts +0 -31
  1364. package/src/tools/mail/drivers/Mailgun.d.ts.map +0 -1
  1365. package/src/tools/mail/drivers/Mailgun.js +0 -81
  1366. package/src/tools/mail/drivers/SendGrid.d.ts +0 -29
  1367. package/src/tools/mail/drivers/SendGrid.d.ts.map +0 -1
  1368. package/src/tools/mail/drivers/SendGrid.js +0 -58
  1369. package/src/tools/mail/drivers/Ses.d.ts +0 -24
  1370. package/src/tools/mail/drivers/Ses.d.ts.map +0 -1
  1371. package/src/tools/mail/drivers/Ses.js +0 -117
  1372. package/src/tools/mail/drivers/Smtp.d.ts +0 -38
  1373. package/src/tools/mail/drivers/Smtp.d.ts.map +0 -1
  1374. package/src/tools/mail/drivers/Smtp.js +0 -349
  1375. package/src/tools/mail/index.d.ts +0 -40
  1376. package/src/tools/mail/index.d.ts.map +0 -1
  1377. package/src/tools/mail/index.js +0 -129
  1378. package/src/tools/mail/template-loader.d.ts +0 -10
  1379. package/src/tools/mail/template-loader.d.ts.map +0 -1
  1380. package/src/tools/mail/template-loader.js +0 -101
  1381. package/src/tools/mail/template-utils.d.ts +0 -10
  1382. package/src/tools/mail/template-utils.d.ts.map +0 -1
  1383. package/src/tools/mail/template-utils.js +0 -16
  1384. package/src/tools/mail/templates/index.d.ts +0 -57
  1385. package/src/tools/mail/templates/index.d.ts.map +0 -1
  1386. package/src/tools/mail/templates/index.js +0 -104
  1387. package/src/tools/mail/testing.d.ts +0 -41
  1388. package/src/tools/mail/testing.d.ts.map +0 -1
  1389. package/src/tools/mail/testing.js +0 -34
  1390. package/src/tools/notification/Driver.d.ts +0 -11
  1391. package/src/tools/notification/Driver.d.ts.map +0 -1
  1392. package/src/tools/notification/Driver.js +0 -1
  1393. package/src/tools/notification/Notification.d.ts +0 -24
  1394. package/src/tools/notification/Notification.d.ts.map +0 -1
  1395. package/src/tools/notification/Notification.js +0 -35
  1396. package/src/tools/notification/NotificationChannelRegistry.d.ts +0 -15
  1397. package/src/tools/notification/NotificationChannelRegistry.d.ts.map +0 -1
  1398. package/src/tools/notification/NotificationChannelRegistry.js +0 -36
  1399. package/src/tools/notification/NotificationRuntimeRegistration.d.ts +0 -13
  1400. package/src/tools/notification/NotificationRuntimeRegistration.d.ts.map +0 -1
  1401. package/src/tools/notification/NotificationRuntimeRegistration.js +0 -25
  1402. package/src/tools/notification/Registry.d.ts +0 -10
  1403. package/src/tools/notification/Registry.d.ts.map +0 -1
  1404. package/src/tools/notification/Registry.js +0 -26
  1405. package/src/tools/notification/Service.d.ts +0 -7
  1406. package/src/tools/notification/Service.d.ts.map +0 -1
  1407. package/src/tools/notification/Service.js +0 -91
  1408. package/src/tools/notification/config.d.ts +0 -5
  1409. package/src/tools/notification/config.d.ts.map +0 -1
  1410. package/src/tools/notification/config.js +0 -5
  1411. package/src/tools/notification/drivers/BaseDriver.d.ts +0 -5
  1412. package/src/tools/notification/drivers/BaseDriver.d.ts.map +0 -1
  1413. package/src/tools/notification/drivers/BaseDriver.js +0 -8
  1414. package/src/tools/notification/drivers/Console.d.ts +0 -7
  1415. package/src/tools/notification/drivers/Console.d.ts.map +0 -1
  1416. package/src/tools/notification/drivers/Console.js +0 -13
  1417. package/src/tools/notification/drivers/Slack.d.ts +0 -16
  1418. package/src/tools/notification/drivers/Slack.d.ts.map +0 -1
  1419. package/src/tools/notification/drivers/Slack.js +0 -24
  1420. package/src/tools/notification/drivers/SlackNotification.d.ts +0 -8
  1421. package/src/tools/notification/drivers/SlackNotification.d.ts.map +0 -1
  1422. package/src/tools/notification/drivers/SlackNotification.js +0 -13
  1423. package/src/tools/notification/drivers/Termii.d.ts +0 -10
  1424. package/src/tools/notification/drivers/Termii.d.ts.map +0 -1
  1425. package/src/tools/notification/drivers/Termii.js +0 -36
  1426. package/src/tools/notification/drivers/Twilio.d.ts +0 -21
  1427. package/src/tools/notification/drivers/Twilio.d.ts.map +0 -1
  1428. package/src/tools/notification/drivers/Twilio.js +0 -48
  1429. package/src/tools/notification/drivers/TwilioNotification.d.ts +0 -8
  1430. package/src/tools/notification/drivers/TwilioNotification.d.ts.map +0 -1
  1431. package/src/tools/notification/drivers/TwilioNotification.js +0 -13
  1432. package/src/tools/notification/templates/markdown/index.d.ts +0 -15
  1433. package/src/tools/notification/templates/markdown/index.d.ts.map +0 -1
  1434. package/src/tools/notification/templates/markdown/index.js +0 -38
  1435. package/src/tools/notification/templates/markdown/registry.d.ts +0 -15
  1436. package/src/tools/notification/templates/markdown/registry.d.ts.map +0 -1
  1437. package/src/tools/notification/templates/markdown/registry.js +0 -36
  1438. package/src/tools/notification/testing.d.ts +0 -19
  1439. package/src/tools/notification/testing.d.ts.map +0 -1
  1440. package/src/tools/notification/testing.js +0 -35
  1441. package/src/tools/notification/testingHelpers.d.ts +0 -12
  1442. package/src/tools/notification/testingHelpers.d.ts.map +0 -1
  1443. package/src/tools/notification/testingHelpers.js +0 -32
  1444. package/src/tools/queue/AdvancedQueue.d.ts +0 -19
  1445. package/src/tools/queue/AdvancedQueue.d.ts.map +0 -1
  1446. package/src/tools/queue/AdvancedQueue.js +0 -352
  1447. package/src/tools/queue/DeduplicationBuilder.d.ts +0 -20
  1448. package/src/tools/queue/DeduplicationBuilder.d.ts.map +0 -1
  1449. package/src/tools/queue/DeduplicationBuilder.js +0 -77
  1450. package/src/tools/queue/LockProvider.d.ts +0 -22
  1451. package/src/tools/queue/LockProvider.d.ts.map +0 -1
  1452. package/src/tools/queue/LockProvider.js +0 -282
  1453. package/src/tools/queue/Queue.d.ts +0 -24
  1454. package/src/tools/queue/Queue.d.ts.map +0 -1
  1455. package/src/tools/queue/Queue.js +0 -43
  1456. package/src/tools/queue/QueueExtensions.d.ts +0 -46
  1457. package/src/tools/queue/QueueExtensions.d.ts.map +0 -1
  1458. package/src/tools/queue/QueueExtensions.js +0 -129
  1459. package/src/tools/queue/QueueRuntimeRegistration.d.ts +0 -11
  1460. package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +0 -1
  1461. package/src/tools/queue/QueueRuntimeRegistration.js +0 -25
  1462. package/src/tools/queue/drivers/Database.d.ts +0 -23
  1463. package/src/tools/queue/drivers/Database.d.ts.map +0 -1
  1464. package/src/tools/queue/drivers/Database.js +0 -123
  1465. package/src/tools/queue/drivers/InMemory.d.ts +0 -10
  1466. package/src/tools/queue/drivers/InMemory.d.ts.map +0 -1
  1467. package/src/tools/queue/drivers/InMemory.js +0 -55
  1468. package/src/tools/queue/drivers/Redis.d.ts +0 -10
  1469. package/src/tools/queue/drivers/Redis.d.ts.map +0 -1
  1470. package/src/tools/queue/drivers/Redis.js +0 -26
  1471. package/src/tools/queue/index.d.ts +0 -9
  1472. package/src/tools/queue/index.d.ts.map +0 -1
  1473. package/src/tools/queue/index.js +0 -7
  1474. package/src/tools/redis/RedisKeyManager.d.ts +0 -64
  1475. package/src/tools/redis/RedisKeyManager.d.ts.map +0 -1
  1476. package/src/tools/redis/RedisKeyManager.js +0 -124
  1477. package/src/tools/storage/LocalSignedUrl.d.ts +0 -12
  1478. package/src/tools/storage/LocalSignedUrl.d.ts.map +0 -1
  1479. package/src/tools/storage/LocalSignedUrl.js +0 -108
  1480. package/src/tools/storage/StorageDiskRegistry.d.ts +0 -14
  1481. package/src/tools/storage/StorageDiskRegistry.d.ts.map +0 -1
  1482. package/src/tools/storage/StorageDiskRegistry.js +0 -36
  1483. package/src/tools/storage/StorageDriverRegistry.d.ts +0 -16
  1484. package/src/tools/storage/StorageDriverRegistry.d.ts.map +0 -1
  1485. package/src/tools/storage/StorageDriverRegistry.js +0 -20
  1486. package/src/tools/storage/StorageRuntimeRegistration.d.ts +0 -10
  1487. package/src/tools/storage/StorageRuntimeRegistration.d.ts.map +0 -1
  1488. package/src/tools/storage/StorageRuntimeRegistration.js +0 -21
  1489. package/src/tools/storage/drivers/Gcs.d.ts +0 -20
  1490. package/src/tools/storage/drivers/Gcs.d.ts.map +0 -1
  1491. package/src/tools/storage/drivers/Gcs.js +0 -152
  1492. package/src/tools/storage/drivers/Local.d.ts +0 -18
  1493. package/src/tools/storage/drivers/Local.d.ts.map +0 -1
  1494. package/src/tools/storage/drivers/Local.js +0 -89
  1495. package/src/tools/storage/drivers/R2.d.ts +0 -20
  1496. package/src/tools/storage/drivers/R2.d.ts.map +0 -1
  1497. package/src/tools/storage/drivers/R2.js +0 -73
  1498. package/src/tools/storage/drivers/S3.d.ts +0 -26
  1499. package/src/tools/storage/drivers/S3.d.ts.map +0 -1
  1500. package/src/tools/storage/drivers/S3.js +0 -259
  1501. package/src/tools/storage/index.d.ts +0 -21
  1502. package/src/tools/storage/index.d.ts.map +0 -1
  1503. package/src/tools/storage/index.js +0 -150
  1504. package/src/tools/storage/testing.d.ts +0 -23
  1505. package/src/tools/storage/testing.d.ts.map +0 -1
  1506. package/src/tools/storage/testing.js +0 -53
  1507. package/src/tools/templates/MarkdownRenderer.d.ts +0 -14
  1508. package/src/tools/templates/MarkdownRenderer.d.ts.map +0 -1
  1509. package/src/tools/templates/MarkdownRenderer.js +0 -300
  1510. package/src/tools/templates/index.d.ts +0 -5
  1511. package/src/tools/templates/index.d.ts.map +0 -1
  1512. package/src/tools/templates/index.js +0 -4
  1513. package/src/types/Queue.d.ts +0 -62
  1514. package/src/types/Queue.d.ts.map +0 -1
  1515. package/src/types/Queue.js +0 -5
  1516. package/src/validation/ValidationError.d.ts +0 -42
  1517. package/src/validation/ValidationError.d.ts.map +0 -1
  1518. package/src/validation/ValidationError.js +0 -55
  1519. package/src/validation/Validator.d.ts +0 -93
  1520. package/src/validation/Validator.d.ts.map +0 -1
  1521. package/src/validation/Validator.js +0 -492
@@ -0,0 +1,1290 @@
1
+ /**
2
+ * Add Command - Phase 4 Integration
3
+ * Add services and features to existing ZinTrust project
4
+ */
5
+
6
+ import type { CommandOptions, IBaseCommand } from '@cli/BaseCommand';
7
+ import { BaseCommand } from '@cli/BaseCommand';
8
+ import type { ControllerType } from '@cli/scaffolding/ControllerGenerator';
9
+ import { ControllerGenerator } from '@cli/scaffolding/ControllerGenerator';
10
+ import { FactoryGenerator } from '@cli/scaffolding/FactoryGenerator';
11
+ import type { FeatureType } from '@cli/scaffolding/FeatureScaffolder';
12
+ import { FeatureScaffolder } from '@cli/scaffolding/FeatureScaffolder';
13
+ import { FileGenerator } from '@cli/scaffolding/FileGenerator';
14
+ import { GovernanceScaffolder } from '@cli/scaffolding/GovernanceScaffolder';
15
+ import type { MigrationType } from '@cli/scaffolding/MigrationGenerator';
16
+ import { MigrationGenerator } from '@cli/scaffolding/MigrationGenerator';
17
+ import { ModelGenerator } from '@cli/scaffolding/ModelGenerator';
18
+ import { RequestFactoryGenerator } from '@cli/scaffolding/RequestFactoryGenerator';
19
+ import type {
20
+ ResponseFactoryGeneratorResult,
21
+ ResponseField,
22
+ } from '@cli/scaffolding/ResponseFactoryGenerator';
23
+ import { ResponseFactoryGenerator } from '@cli/scaffolding/ResponseFactoryGenerator';
24
+ import { RouteGenerator } from '@cli/scaffolding/RouteGenerator';
25
+ import { SeederGenerator } from '@cli/scaffolding/SeederGenerator';
26
+ import { ServiceScaffolder } from '@cli/scaffolding/ServiceScaffolder';
27
+ import { WorkflowGenerator } from '@cli/scaffolding/WorkflowGenerator';
28
+ import { CommonUtils } from '@common/index';
29
+ import { ErrorFactory } from '@exceptions/ZintrustError';
30
+ import fs from '@node-singletons/fs';
31
+ import * as path from '@node-singletons/path';
32
+ import { PluginManager } from '@runtime/PluginManager';
33
+ import type { Command } from 'commander';
34
+ import inquirer from 'inquirer';
35
+
36
+ type PlatformDeploy = 'lambda' | 'fargate' | 'cloudflare' | 'deno' | 'all';
37
+
38
+ interface AddOptions extends CommandOptions {
39
+ type?: string;
40
+ packageManager?: string;
41
+ database?: 'shared' | 'isolated';
42
+ auth?: 'api-key' | 'jwt' | 'none' | 'custom';
43
+ port?: string;
44
+ domain?: string;
45
+ service?: string;
46
+ withTest?: boolean;
47
+ controllerType?: string;
48
+ softDelete?: boolean;
49
+ timestamps?: boolean;
50
+ resource?: boolean;
51
+ model?: string;
52
+ relationships?: string;
53
+ count?: string;
54
+ states?: boolean;
55
+ truncate?: boolean;
56
+ noInteractive?: boolean;
57
+ platform?: string;
58
+ branch?: string;
59
+ nodeVersion?: string;
60
+ }
61
+
62
+ interface ServicePromptAnswers {
63
+ name: string;
64
+ domain: string;
65
+ port: number;
66
+ database: 'shared' | 'isolated';
67
+ auth: 'api-key' | 'jwt' | 'none' | 'custom';
68
+ }
69
+
70
+ interface FeaturePromptAnswers {
71
+ name: string;
72
+ servicePath: string;
73
+ withTest: boolean;
74
+ }
75
+
76
+ interface MigrationPromptAnswers {
77
+ name: string;
78
+ type: string;
79
+ }
80
+
81
+ interface ModelPromptAnswers {
82
+ name: string;
83
+ softDelete: boolean;
84
+ timestamps: boolean;
85
+ }
86
+
87
+ interface ControllerPromptAnswers {
88
+ name: string;
89
+ type: string;
90
+ }
91
+
92
+ interface RoutesPromptAnswers {
93
+ name: string;
94
+ }
95
+
96
+ interface FactoryPromptAnswers {
97
+ name: string;
98
+ model: string;
99
+ addRelationships: boolean;
100
+ relationships?: string;
101
+ }
102
+
103
+ interface SeederPromptAnswers {
104
+ name: string;
105
+ model: string;
106
+ count: string;
107
+ states: boolean;
108
+ relationships: boolean;
109
+ truncate: boolean;
110
+ }
111
+
112
+ interface RequestFactoryPromptAnswers {
113
+ factoryName: string;
114
+ requestName: string;
115
+ endpoint: string;
116
+ method: string;
117
+ withDTO: boolean;
118
+ }
119
+
120
+ interface ResponseFactoryPromptAnswers {
121
+ factoryName: string;
122
+ responseName: string;
123
+ responseType: string;
124
+ factoryPath?: string;
125
+ responsePath?: string;
126
+ withDTO: boolean;
127
+ }
128
+
129
+ const addOptions = (command: Command): void => {
130
+ command
131
+ .argument(
132
+ '<type>',
133
+ 'What to add: service, feature, migration, model, controller, routes, factory, seeder, requestfactory, responsefactory, workflow, or governance'
134
+ )
135
+ .argument(
136
+ '[name]',
137
+ 'Name of service/feature/migration/model/controller/factory/seeder/requestfactory/responsefactory/workflow (governance takes no name)'
138
+ )
139
+ .option(
140
+ '--package-manager <pm>',
141
+ 'Specify package manager to use when installing plugins (npm|yarn|pnpm)'
142
+ )
143
+ .option('--domain <name>', 'Service domain (e.g., ecommerce, payments) - for services')
144
+ .option('--database <type>', 'Database (shared|isolated) - for services')
145
+ .option('--auth <strategy>', 'Auth strategy (api-key|jwt|none|custom) - for services')
146
+ .option('--port <number>', 'Service port - for services')
147
+ .option('--service <path>', 'Service path (relative to project root) - for features')
148
+ .option('--with-test', 'Generate test files - for features')
149
+ .option(
150
+ '--controller-type <type>',
151
+ 'Controller type: crud, resource, api, graphql, websocket, webhook - for controllers'
152
+ )
153
+ .option('--soft-delete', 'Add soft delete to model')
154
+ .option('--timestamps', 'Add timestamps to model (default: true)')
155
+ .option('--resource', 'Generate resource routes')
156
+ .option('--model <name>', 'Model name for factory or seeder')
157
+ .option('--relationships <models>', 'Comma-separated related models for factory or seeder')
158
+ .option('--count <number>', 'Record count for seeder (1-100,000)')
159
+ .option('--states', 'Seed with state distribution (active/inactive/deleted)')
160
+ .option('--truncate', 'Truncate table before seeding')
161
+ .option('--platform <type>', 'Deployment platform: lambda, fargate, cloudflare, deno, all')
162
+ .option('--branch <name>', 'Deployment branch (default: master)')
163
+ .option('--node-version <version>', 'Node.js version (default: 20.x)')
164
+ .option('--no-interactive', 'Skip interactive prompts');
165
+ };
166
+
167
+ const promptServiceConfig = async (defaultName: string): Promise<ServicePromptAnswers> => {
168
+ return inquirer.prompt([
169
+ {
170
+ type: 'input',
171
+ name: 'name',
172
+ message: 'Service name (lowercase, no spaces):',
173
+ default: defaultName,
174
+ validate: (v: string): string | boolean =>
175
+ /^[a-z]+$/.test(v) || 'Must be lowercase letters only',
176
+ },
177
+ {
178
+ type: 'input',
179
+ name: 'domain',
180
+ message: 'Domain (e.g., ecommerce, payments):',
181
+ default: 'default',
182
+ },
183
+ {
184
+ type: 'number',
185
+ name: 'port',
186
+ message: 'Service port:',
187
+ default: 3001,
188
+ },
189
+ {
190
+ type: 'list',
191
+ name: 'database',
192
+ message: 'Database isolation:',
193
+ choices: ['shared', 'isolated'],
194
+ default: 'shared',
195
+ },
196
+ {
197
+ type: 'list',
198
+ name: 'auth',
199
+ message: 'Authentication strategy:',
200
+ choices: ['api-key', 'jwt', 'none', 'custom'],
201
+ default: 'api-key',
202
+ },
203
+ ]);
204
+ };
205
+
206
+ const addService = async (
207
+ cmd: IBaseCommand,
208
+ serviceName: string | undefined,
209
+ opts: AddOptions
210
+ ): Promise<void> => {
211
+ const projectRoot = process.cwd();
212
+ let name: string = serviceName ?? '';
213
+
214
+ if (name === '' && opts.noInteractive !== true) {
215
+ const answers = await promptServiceConfig(name);
216
+ name = answers.name;
217
+ Object.assign(opts, answers);
218
+ } else if (name === '') {
219
+ throw ErrorFactory.createValidationError('Service name is required');
220
+ }
221
+
222
+ cmd.info(`Creating service: ${name}...`);
223
+
224
+ const result = await ServiceScaffolder.scaffold(projectRoot, {
225
+ name,
226
+ domain: opts.domain ?? 'default',
227
+ port: opts.port === undefined ? 3001 : Number.parseInt(opts.port, 10),
228
+ database: opts.database ?? 'shared',
229
+ auth: opts.auth ?? 'api-key',
230
+ });
231
+
232
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
233
+
234
+ cmd.success(`Service '${name}' created successfully!`);
235
+ cmd.info(`\nFiles created: ${result.filesCreated.length}`);
236
+ cmd.info(`Location: ${result.servicePath}`);
237
+ cmd.info(
238
+ `\nNext steps:\n • Update service.config.json\n • Add environment variables\n • Create routes and controllers`
239
+ );
240
+ };
241
+
242
+ const promptFeatureConfig = async (): Promise<FeaturePromptAnswers> => {
243
+ const availableFeatures = FeatureScaffolder.getAvailableFeatures();
244
+ return inquirer.prompt([
245
+ {
246
+ type: 'list',
247
+ name: 'name',
248
+ message: 'Select feature to add:',
249
+ choices: availableFeatures,
250
+ },
251
+ {
252
+ type: 'input',
253
+ name: 'servicePath',
254
+ message: 'Service path (relative to project):',
255
+ default: 'src/services/default/users',
256
+ },
257
+ {
258
+ type: 'confirm',
259
+ name: 'withTest',
260
+ message: 'Generate test file?',
261
+ default: true,
262
+ },
263
+ ]);
264
+ };
265
+
266
+ const addFeature = async (
267
+ cmd: IBaseCommand,
268
+ featureName: string | undefined,
269
+ opts: AddOptions
270
+ ): Promise<void> => {
271
+ const projectRoot = process.cwd();
272
+ let name: string = featureName ?? '';
273
+ let servicePath: string = opts.service ?? '';
274
+
275
+ if (name === '' && opts.noInteractive !== true) {
276
+ const answers = await promptFeatureConfig();
277
+ name = answers.name;
278
+ servicePath = answers.servicePath;
279
+ opts.withTest = answers.withTest;
280
+ } else if (name === '') {
281
+ throw ErrorFactory.createValidationError('Feature name is required');
282
+ }
283
+
284
+ if (servicePath === '') throw ErrorFactory.createValidationError('Service path is required');
285
+
286
+ const fullServicePath = path.join(projectRoot, servicePath);
287
+ cmd.info(`Adding feature: ${name}...`);
288
+
289
+ const result = FeatureScaffolder.addFeature({
290
+ name: name as FeatureType,
291
+ servicePath: fullServicePath,
292
+ withTest: opts.withTest,
293
+ });
294
+
295
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
296
+
297
+ cmd.success(`Feature '${name}' added successfully!`);
298
+ cmd.info(`Files created: ${result.filesCreated?.length || 0}`);
299
+ cmd.info(
300
+ `\nNext steps:\n • Integrate feature in service\n • Update routes if needed\n • Add to configuration`
301
+ );
302
+ };
303
+
304
+ const promptMigrationConfig = async (): Promise<MigrationPromptAnswers> => {
305
+ return inquirer.prompt([
306
+ {
307
+ type: 'input',
308
+ name: 'name',
309
+ message: 'Migration name (snake_case, e.g., create_users_table):',
310
+ validate: (v: string): string | boolean => /^[a-z_]+$/.test(v) || 'Must be snake_case',
311
+ },
312
+ {
313
+ type: 'list',
314
+ name: 'type',
315
+ message: 'Migration type:',
316
+ choices: ['create', 'alter', 'drop'],
317
+ },
318
+ ]);
319
+ };
320
+
321
+ const pluralize = (snake: string): string => (snake.endsWith('s') ? snake : `${snake}s`);
322
+
323
+ const findMigrationBySuffix = (migrationsPath: string, suffix: string): string | undefined => {
324
+ const files = FileGenerator.listFiles(migrationsPath, false);
325
+ for (const file of files) {
326
+ if (path.basename(file).endsWith(suffix)) return file;
327
+ }
328
+ return undefined;
329
+ };
330
+
331
+ const buildCreateTableMigrationName = (model: string): string => {
332
+ const modelSnake = CommonUtils.toSnakeCase(model).replaceAll(/[^a-z0-9_]+/g, '_');
333
+ const tablePlural = pluralize(modelSnake);
334
+ return `create_${tablePlural}_table`;
335
+ };
336
+
337
+ const buildAddColumnMigrationName = (column: string, model: string): string => {
338
+ const colSnake = CommonUtils.toSnakeCase(column).replaceAll(/[^a-z0-9_]+/g, '_');
339
+ const modelSnake = CommonUtils.toSnakeCase(model).replaceAll(/[^a-z0-9_]+/g, '_');
340
+ const tablePlural = pluralize(modelSnake);
341
+ return `add_${colSnake}_${tablePlural}_table`;
342
+ };
343
+
344
+ const addMigration = async (
345
+ cmd: IBaseCommand,
346
+ migrationArgs: string[],
347
+ opts: AddOptions
348
+ ): Promise<void> => {
349
+ const projectRoot = process.cwd();
350
+ let name: string = migrationArgs[0] ?? '';
351
+ let table: string | undefined;
352
+ let column: string | undefined;
353
+
354
+ if (name === '' && opts.noInteractive !== true) {
355
+ const answers = await promptMigrationConfig();
356
+ name = answers.name;
357
+ opts.type = answers.type;
358
+ } else if (name === '') {
359
+ throw ErrorFactory.createValidationError('Migration name is required');
360
+ }
361
+
362
+ const migrationsPath = path.join(projectRoot, 'database', 'migrations');
363
+
364
+ // New shorthand semantics:
365
+ // `zin add migration <column> <model>` => add_<column>_<models>_table
366
+ if (migrationArgs.length >= 2) {
367
+ const columnArg = migrationArgs[0] ?? '';
368
+ const modelArg = migrationArgs[1] ?? '';
369
+ if (columnArg === '' || modelArg === '') {
370
+ throw ErrorFactory.createValidationError('Usage: zin add migration <column> <model>');
371
+ }
372
+
373
+ const createName = buildCreateTableMigrationName(modelArg);
374
+ const createSuffix = `_${createName}.ts`;
375
+ const existingCreate = findMigrationBySuffix(migrationsPath, createSuffix);
376
+ if (existingCreate === undefined) {
377
+ throw ErrorFactory.createCliError(
378
+ `Missing required create migration for model '${modelArg}'. Create it first: zin create migration ${modelArg}`
379
+ );
380
+ }
381
+
382
+ name = buildAddColumnMigrationName(columnArg, modelArg);
383
+
384
+ table = pluralize(CommonUtils.toSnakeCase(modelArg).replaceAll(/[^a-z0-9_]+/g, '_'));
385
+ // Store the normalized column name for generator placeholder.
386
+ column = CommonUtils.toSnakeCase(columnArg).replaceAll(/[^a-z0-9_]+/g, '_');
387
+ }
388
+
389
+ cmd.info(`Creating migration: ${name}...`);
390
+
391
+ const result = await MigrationGenerator.generateMigration({
392
+ name,
393
+ migrationsPath,
394
+ type: (opts.type as MigrationType | undefined) ?? undefined,
395
+ table,
396
+ column,
397
+ });
398
+
399
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
400
+
401
+ cmd.success('Migration created successfully!');
402
+ cmd.info(`File: ${path.basename(result.filePath)}`);
403
+ cmd.info(
404
+ `\nNext steps:\n • Edit migration file\n • Add up() and down() implementations\n • Run migrations`
405
+ );
406
+ };
407
+
408
+ const promptModelConfig = async (): Promise<ModelPromptAnswers> => {
409
+ return inquirer.prompt([
410
+ {
411
+ type: 'input',
412
+ name: 'name',
413
+ message: 'Model name (PascalCase, e.g., User, Post):',
414
+ validate: (v: string): string | boolean =>
415
+ /^[A-Z][a-zA-Z\d]*$/.test(v) || 'Must be PascalCase',
416
+ },
417
+ {
418
+ type: 'confirm',
419
+ name: 'softDelete',
420
+ message: 'Add soft delete?',
421
+ default: false,
422
+ },
423
+ {
424
+ type: 'confirm',
425
+ name: 'timestamps',
426
+ message: 'Add timestamps (created_at, updated_at)?',
427
+ default: true,
428
+ },
429
+ ]);
430
+ };
431
+
432
+ const addModel = async (
433
+ cmd: IBaseCommand,
434
+ modelName: string | undefined,
435
+ opts: AddOptions
436
+ ): Promise<void> => {
437
+ const projectRoot = process.cwd();
438
+ let name: string = modelName ?? '';
439
+
440
+ if (name === '' && opts.noInteractive !== true) {
441
+ const answers = await promptModelConfig();
442
+ name = answers.name;
443
+ opts.softDelete = answers.softDelete;
444
+ opts.timestamps = answers.timestamps;
445
+ } else if (name === '') {
446
+ throw ErrorFactory.createValidationError('Model name is required');
447
+ }
448
+
449
+ const modelPath = path.join(projectRoot, 'app', 'Models');
450
+ cmd.info(`Creating model: ${name}...`);
451
+
452
+ const result = await ModelGenerator.generateModel({
453
+ name,
454
+ modelPath,
455
+ softDelete: opts.softDelete === true,
456
+ timestamps: opts.timestamps !== false,
457
+ });
458
+
459
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
460
+
461
+ cmd.success(`Model '${name}' created successfully!`);
462
+ cmd.info(`File: ${path.basename(result.modelFile)}`);
463
+ cmd.info(
464
+ `\nNext steps:\n • Add fillable attributes\n • Define relationships\n • Create migration for table`
465
+ );
466
+ };
467
+
468
+ const promptControllerConfig = async (): Promise<ControllerPromptAnswers> => {
469
+ return inquirer.prompt([
470
+ {
471
+ type: 'input',
472
+ name: 'name',
473
+ message: 'Controller name (PascalCase, e.g., UserController):',
474
+ validate: (v: string): string | boolean =>
475
+ /^[A-Z][a-zA-Z\d]*Controller$/.test(v) || 'Must be PascalCase ending with "Controller"',
476
+ },
477
+ {
478
+ type: 'list',
479
+ name: 'type',
480
+ message: 'Controller type:',
481
+ choices: ['crud', 'resource', 'api', 'graphql', 'websocket', 'webhook'],
482
+ default: 'crud',
483
+ },
484
+ ]);
485
+ };
486
+
487
+ const addController = async (
488
+ cmd: IBaseCommand,
489
+ controllerName: string | undefined,
490
+ opts: AddOptions
491
+ ): Promise<void> => {
492
+ const projectRoot = process.cwd();
493
+ let name: string = controllerName ?? '';
494
+ let controllerType: string = opts.controllerType ?? '';
495
+
496
+ if (name === '' && opts.noInteractive !== true) {
497
+ const answers = await promptControllerConfig();
498
+ name = answers.name;
499
+ controllerType = answers.type;
500
+ } else if (name === '') {
501
+ throw ErrorFactory.createValidationError('Controller name is required');
502
+ }
503
+
504
+ const controllerPath = path.join(projectRoot, 'app', 'Controllers');
505
+ cmd.info(`Creating controller: ${name}...`);
506
+
507
+ const result = await ControllerGenerator.generateController({
508
+ name,
509
+ controllerPath,
510
+ type: (controllerType === ''
511
+ ? (opts.controllerType ?? 'crud')
512
+ : controllerType) as ControllerType,
513
+ });
514
+
515
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
516
+
517
+ cmd.success(`Controller '${name}' created successfully!`);
518
+ cmd.info(`File: ${path.basename(result.controllerFile)}`);
519
+ cmd.info(
520
+ `\nNext steps:\n • Implement action methods\n • Add validation logic\n • Register routes for this controller`
521
+ );
522
+ };
523
+
524
+ const promptRoutesConfig = async (): Promise<RoutesPromptAnswers> => {
525
+ return inquirer.prompt([
526
+ {
527
+ type: 'input',
528
+ name: 'name',
529
+ message: 'Route group name (e.g., api, admin, public):',
530
+ default: 'api',
531
+ },
532
+ ]);
533
+ };
534
+
535
+ const addRoutes = async (
536
+ cmd: IBaseCommand,
537
+ routeName: string | undefined,
538
+ opts: AddOptions
539
+ ): Promise<void> => {
540
+ const projectRoot = process.cwd();
541
+ let name: string = routeName ?? '';
542
+
543
+ if (name === '' && opts.noInteractive !== true) {
544
+ const answers = await promptRoutesConfig();
545
+ name = answers.name;
546
+ } else if (name === '') {
547
+ throw ErrorFactory.createValidationError('Route group name is required');
548
+ }
549
+
550
+ const routesPath = path.join(projectRoot, 'routes');
551
+ cmd.info(`Creating routes: ${name}...`);
552
+
553
+ const result = await RouteGenerator.generateRoutes({
554
+ groupName: name,
555
+ routesPath,
556
+ routes: [],
557
+ });
558
+
559
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
560
+
561
+ cmd.success(`Routes file '${name}' created successfully!`);
562
+ cmd.info(`File: ${path.basename(result.routeFile)}`);
563
+ cmd.info(
564
+ `\nNext steps:\n • Add route definitions\n • Import controllers\n • Register in main router`
565
+ );
566
+ };
567
+
568
+ const getFactoryInitialConfig = (
569
+ factoryName: string | undefined,
570
+ opts: AddOptions
571
+ ): { name: string; modelName: string; relationships: string } => {
572
+ return {
573
+ name: factoryName ?? '',
574
+ modelName: opts.model ?? '',
575
+ relationships: opts.relationships ?? '',
576
+ };
577
+ };
578
+
579
+ const displayFactorySuccess = (cmd: IBaseCommand, name: string, filePath?: string): void => {
580
+ cmd.success(`Factory '${name}' created successfully!`);
581
+ cmd.info(`File: ${filePath === undefined ? 'factory' : path.basename(filePath)}`);
582
+ cmd.info(
583
+ `\nUsage in tests:\n const user = new ${name}().create();\n const users = new ${name}().count(10).create();`
584
+ );
585
+ cmd.info(
586
+ `\nAvailable states:\n • active() - for published/active data\n • inactive() - for draft/inactive data\n • deleted() - for soft-deleted data`
587
+ );
588
+ };
589
+
590
+ const promptFactoryConfig = async (): Promise<FactoryPromptAnswers> => {
591
+ const answers = await inquirer.prompt([
592
+ {
593
+ type: 'input',
594
+ name: 'name',
595
+ message: 'Factory name (PascalCase, must end with "Factory", e.g., UserFactory):',
596
+ validate: (v: string): string | boolean =>
597
+ /^[A-Z][a-zA-Z\d]*Factory$/.test(v) || 'Must be PascalCase ending with "Factory"',
598
+ },
599
+ {
600
+ type: 'input',
601
+ name: 'model',
602
+ message: 'Model name (e.g., User, Post):',
603
+ validate: (v: string): string | boolean =>
604
+ /^[A-Z][a-zA-Z\d]*$/.test(v) || 'Must be PascalCase',
605
+ },
606
+ {
607
+ type: 'confirm',
608
+ name: 'addRelationships',
609
+ message: 'Add relationships (will be prompted for each)?',
610
+ default: false,
611
+ },
612
+ ]);
613
+
614
+ if (answers.addRelationships === true) {
615
+ const relAnswers = await inquirer.prompt([
616
+ {
617
+ type: 'input',
618
+ name: 'relationships',
619
+ message: 'Related models (comma-separated, e.g., User,Category):',
620
+ default: '',
621
+ },
622
+ ]);
623
+ return { ...answers, relationships: relAnswers.relationships as string };
624
+ }
625
+
626
+ return answers;
627
+ };
628
+
629
+ const addFactory = async (
630
+ cmd: IBaseCommand,
631
+ factoryName: string | undefined,
632
+ opts: AddOptions
633
+ ): Promise<void> => {
634
+ const projectRoot = process.cwd();
635
+ let config = getFactoryInitialConfig(factoryName, opts);
636
+
637
+ if (config.name === '' && opts.noInteractive !== true) {
638
+ const answers = await promptFactoryConfig();
639
+ config = {
640
+ name: answers.name,
641
+ modelName: answers.model,
642
+ relationships: answers.relationships ?? '',
643
+ };
644
+ } else if (config.name === '') {
645
+ throw ErrorFactory.createValidationError('Factory name is required');
646
+ }
647
+
648
+ if (config.modelName === '') {
649
+ throw ErrorFactory.createValidationError('Model name is required for factory generation');
650
+ }
651
+
652
+ const factoriesPath = path.join(projectRoot, 'database', 'factories');
653
+ ensureDirectoryExists(factoriesPath);
654
+ cmd.info(`Creating factory: ${config.name} for model ${config.modelName}...`);
655
+
656
+ const result = await FactoryGenerator.generateFactory({
657
+ factoryName: config.name,
658
+ modelName: config.modelName,
659
+ factoriesPath,
660
+ relationships:
661
+ config.relationships === ''
662
+ ? undefined
663
+ : config.relationships.split(',').map((r: string) => r.trim()),
664
+ });
665
+
666
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
667
+
668
+ displayFactorySuccess(cmd, config.name, result.filePath);
669
+ };
670
+
671
+ const getSeederInitialConfig = (
672
+ seederName: string | undefined,
673
+ opts: AddOptions
674
+ ): {
675
+ name: string;
676
+ modelName: string;
677
+ count: number;
678
+ states: boolean;
679
+ relationships: boolean;
680
+ truncate: boolean;
681
+ } => {
682
+ return {
683
+ name: seederName ?? '',
684
+ modelName: opts.model ?? '',
685
+ count: opts.count === undefined ? 100 : Number.parseInt(opts.count, 10),
686
+ states: opts.states === true,
687
+ relationships: opts.relationships !== undefined,
688
+ truncate: opts.truncate !== false,
689
+ };
690
+ };
691
+
692
+ const ensureDirectoryExists = (dirPath: string): void => {
693
+ if (fs.existsSync(dirPath) === false) {
694
+ fs.mkdirSync(dirPath, { recursive: true });
695
+ }
696
+ };
697
+
698
+ const displaySeederSuccess = (
699
+ cmd: IBaseCommand,
700
+ name: string,
701
+ count: number,
702
+ filePath: string,
703
+ states: boolean,
704
+ relationships: boolean
705
+ ): void => {
706
+ cmd.success(`Seeder '${name}' created successfully!`);
707
+ cmd.info(`File: ${path.basename(filePath)}`);
708
+ cmd.info(
709
+ `\nUsage in migrations or database seeds:\n await ${name}.run() // Run with ${count} records\n await ${name}.getRecords() // Get records without inserting`
710
+ );
711
+ if (states === true) {
712
+ cmd.info(
713
+ `\nWith state distribution:\n await ${name}.seedWithStates() // 50% active, 30% inactive, 20% deleted`
714
+ );
715
+ }
716
+ if (relationships === true) {
717
+ cmd.info(
718
+ `\nWith relationships:\n await ${name}.seedWithRelationships() // Seed with related data`
719
+ );
720
+ }
721
+ cmd.info(
722
+ `\nOther methods:\n await ${name}.reset() // Truncate table\n await ${name}.runWithTruncate() // Reset and seed`
723
+ );
724
+ };
725
+
726
+ const displayDatabaseSeederSuccess = (cmd: IBaseCommand, filePath: string): void => {
727
+ cmd.success(`Seeder 'DatabaseSeeder' created successfully!`);
728
+ cmd.info(`File: ${path.basename(filePath)}`);
729
+ cmd.info(`\nNext steps:\n • Add additional seeders into this directory\n • Run: zin db:seed`);
730
+ };
731
+
732
+ const promptSeederConfig = async (): Promise<SeederPromptAnswers> => {
733
+ return inquirer.prompt([
734
+ {
735
+ type: 'input',
736
+ name: 'name',
737
+ message: 'Seeder name (PascalCase, must end with "Seeder", e.g., UserSeeder):',
738
+ validate: (v: string): string | boolean =>
739
+ /^[A-Z][a-zA-Z\d]*Seeder$/.test(v) || 'Must be PascalCase ending with "Seeder"',
740
+ },
741
+ {
742
+ type: 'input',
743
+ name: 'model',
744
+ message: 'Model name (e.g., User, Post):',
745
+ when: (ans: { name?: string }): boolean => ans.name !== 'DatabaseSeeder',
746
+ validate: (v: string): string | boolean =>
747
+ /^[A-Z][a-zA-Z\d]*$/.test(v) || 'Must be PascalCase',
748
+ },
749
+ {
750
+ type: 'input',
751
+ name: 'count',
752
+ message: 'Number of records to seed (1-100,000):',
753
+ default: '100',
754
+ when: (ans: { name?: string }): boolean => ans.name !== 'DatabaseSeeder',
755
+ validate: (v: string): string | boolean => {
756
+ const num = Number.parseInt(v, 10);
757
+ return (num >= 1 && num <= 100000) || 'Must be between 1 and 100,000';
758
+ },
759
+ },
760
+ {
761
+ type: 'confirm',
762
+ name: 'states',
763
+ message: 'Use state distribution (50% active, 30% inactive, 20% deleted)?',
764
+ default: false,
765
+ when: (ans: { name?: string }): boolean => ans.name !== 'DatabaseSeeder',
766
+ },
767
+ {
768
+ type: 'confirm',
769
+ name: 'relationships',
770
+ message: 'Seed with relationships?',
771
+ default: false,
772
+ when: (ans: { name?: string }): boolean => ans.name !== 'DatabaseSeeder',
773
+ },
774
+ {
775
+ type: 'confirm',
776
+ name: 'truncate',
777
+ message: 'Truncate table before seeding?',
778
+ default: true,
779
+ when: (ans: { name?: string }): boolean => ans.name !== 'DatabaseSeeder',
780
+ },
781
+ ]);
782
+ };
783
+
784
+ const addSeeder = async (
785
+ cmd: IBaseCommand,
786
+ seederName: string | undefined,
787
+ opts: AddOptions
788
+ ): Promise<void> => {
789
+ const projectRoot = process.cwd();
790
+ let config = getSeederInitialConfig(seederName, opts);
791
+
792
+ if (config.name === '' && opts.noInteractive !== true) {
793
+ const answers = await promptSeederConfig();
794
+ config = {
795
+ name: answers.name,
796
+ modelName: answers.model,
797
+ count: Number.parseInt(answers.count, 10),
798
+ states: answers.states,
799
+ relationships: answers.relationships,
800
+ truncate: answers.truncate,
801
+ };
802
+ } else if (config.name === '') {
803
+ throw ErrorFactory.createValidationError('Seeder name is required');
804
+ }
805
+
806
+ const seedersPath = path.join(projectRoot, 'database', 'seeders');
807
+ ensureDirectoryExists(seedersPath);
808
+
809
+ if (config.name === 'DatabaseSeeder') {
810
+ cmd.info('Creating seeder: DatabaseSeeder...');
811
+
812
+ const result = await SeederGenerator.generateDatabaseSeeder({ seedersPath });
813
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
814
+
815
+ displayDatabaseSeederSuccess(cmd, result.filePath);
816
+ return;
817
+ }
818
+
819
+ if (config.modelName === '') {
820
+ throw ErrorFactory.createValidationError('Model name is required for seeder generation');
821
+ }
822
+ cmd.info(`Creating seeder: ${config.name} for model ${config.modelName}...`);
823
+
824
+ const result = await SeederGenerator.generateSeeder({
825
+ seederName: config.name,
826
+ modelName: config.modelName,
827
+ count: config.count,
828
+ seedersPath,
829
+ relationships: config.relationships === true ? ['related'] : undefined,
830
+ truncate: config.truncate,
831
+ });
832
+
833
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
834
+
835
+ displaySeederSuccess(
836
+ cmd,
837
+ config.name,
838
+ config.count,
839
+ result.filePath,
840
+ config.states,
841
+ config.relationships
842
+ );
843
+ };
844
+
845
+ const promptRequestFactoryConfig = async (): Promise<RequestFactoryPromptAnswers> => {
846
+ return inquirer.prompt([
847
+ {
848
+ type: 'input',
849
+ name: 'factoryName',
850
+ message: 'Request factory name (e.g., CreateUserRequestFactory):',
851
+ validate: (input: string): string | boolean => {
852
+ if (input === '') return 'Factory name is required';
853
+ if (!input.endsWith('RequestFactory')) return 'Factory name must end with "RequestFactory"';
854
+ return true;
855
+ },
856
+ },
857
+ {
858
+ type: 'input',
859
+ name: 'requestName',
860
+ message: 'Request name:',
861
+ default: (ans: { factoryName: string }): string => ans.factoryName.replace('Factory', ''),
862
+ },
863
+ {
864
+ type: 'input',
865
+ name: 'endpoint',
866
+ message: 'API endpoint (e.g., /api/v1/users):',
867
+ default: '/api/v1/resource',
868
+ },
869
+ {
870
+ type: 'list',
871
+ name: 'method',
872
+ message: 'HTTP method:',
873
+ choices: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
874
+ default: 'POST',
875
+ },
876
+ {
877
+ type: 'confirm',
878
+ name: 'withDTO',
879
+ message: 'Generate request DTO?',
880
+ default: true,
881
+ },
882
+ ]);
883
+ };
884
+
885
+ const addRequestFactory = async (
886
+ cmd: IBaseCommand,
887
+ factoryName: string | undefined,
888
+ opts: AddOptions
889
+ ): Promise<void> => {
890
+ let name: string = factoryName ?? '';
891
+ let requestName = '';
892
+ let endpoint = '';
893
+ let method = 'POST';
894
+ let withDTO = true;
895
+
896
+ if (name === '' && opts.noInteractive !== true) {
897
+ const answer = await promptRequestFactoryConfig();
898
+ name = answer.factoryName;
899
+ requestName = answer.requestName;
900
+ endpoint = answer.endpoint;
901
+ method = answer.method;
902
+ withDTO = answer.withDTO;
903
+ }
904
+
905
+ if (name === '') throw ErrorFactory.createValidationError('Factory name is required');
906
+
907
+ const factoriesPath = path.join(process.cwd(), 'database', 'factories');
908
+ const requestsPath = withDTO === true ? path.join(process.cwd(), 'app', 'Requests') : undefined;
909
+
910
+ ensureDirectoryExists(factoriesPath);
911
+ if (requestsPath !== undefined) ensureDirectoryExists(requestsPath);
912
+
913
+ const result = await RequestFactoryGenerator.generateRequestFactory({
914
+ factoryName: name,
915
+ requestName: requestName === '' ? name.replace('Factory', '') : requestName,
916
+ endpoint: endpoint === '' ? '/api/v1/resource' : endpoint,
917
+ method: (method === '' ? 'POST' : method) as 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',
918
+ factoriesPath,
919
+ requestsPath,
920
+ });
921
+
922
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
923
+
924
+ cmd.success(`Request factory '${name}' created successfully!`);
925
+ cmd.info(`Factory: ${path.basename(result.factoryPath)}`);
926
+ if (result.requestPath !== undefined) cmd.info(`DTO: ${path.basename(result.requestPath)}`);
927
+
928
+ cmd.info(
929
+ `\nUsage in tests:\n const request = ${name}.create() // Create single request\n const requests = ${name}.times(5).makeMany() // Create multiple requests\n const invalid = ${name}.create().state('invalid').make() // Test validation`
930
+ );
931
+ };
932
+
933
+ const promptResponseFactoryName = async (): Promise<string> => {
934
+ const answer = await inquirer.prompt([
935
+ {
936
+ type: 'input',
937
+ name: 'factoryName',
938
+ message: 'Response factory name (e.g., UserResponseFactory):',
939
+ validate: (input: string): string | boolean => {
940
+ if (input === '') return 'Factory name is required';
941
+ if (!input.endsWith('ResponseFactory'))
942
+ return 'Factory name must end with "ResponseFactory"';
943
+ return true;
944
+ },
945
+ },
946
+ ]);
947
+ return answer.factoryName as string;
948
+ };
949
+
950
+ const promptResponseFactoryConfig = async (
951
+ defaultResponseName: string
952
+ ): Promise<ResponseFactoryPromptAnswers> => {
953
+ return inquirer.prompt([
954
+ {
955
+ type: 'input',
956
+ name: 'factoryName',
957
+ message: 'Factory name:',
958
+ default: `${defaultResponseName}Factory`,
959
+ validate: (input: string): string | boolean => {
960
+ if (input === '') return 'Factory name is required';
961
+ if (!input.endsWith('Factory')) return 'Factory name must end with "Factory"';
962
+ return true;
963
+ },
964
+ },
965
+ {
966
+ type: 'input',
967
+ name: 'responseName',
968
+ message: 'Response name:',
969
+ default: defaultResponseName,
970
+ validate: (input: string): string | boolean => {
971
+ if (input === '') return 'Response name is required';
972
+ if (!input.endsWith('Response')) return 'Response name must end with "Response"';
973
+ return true;
974
+ },
975
+ },
976
+ {
977
+ type: 'list',
978
+ name: 'responseType',
979
+ message: 'Response type:',
980
+ choices: ['success', 'error', 'paginated', 'custom'],
981
+ default: 'success',
982
+ },
983
+ {
984
+ type: 'confirm',
985
+ name: 'withDTO',
986
+ message: 'Generate response DTO?',
987
+ default: true,
988
+ },
989
+ ]);
990
+ };
991
+
992
+ const getResponseFactoryAnswers = async (
993
+ name: string,
994
+ responseName: string,
995
+ opts: AddOptions
996
+ ): Promise<ResponseFactoryPromptAnswers> => {
997
+ if (opts.noInteractive === true) {
998
+ return { factoryName: name, responseName, responseType: 'success', withDTO: true };
999
+ }
1000
+ return promptResponseFactoryConfig(responseName);
1001
+ };
1002
+
1003
+ const getDefaultResponseFields = (responseType: string): ResponseField[] => {
1004
+ const fields: ResponseField[] = [];
1005
+ if (responseType === 'success') {
1006
+ fields.push(
1007
+ { name: 'id', type: 'uuid' },
1008
+ { name: 'name', type: 'string' },
1009
+ { name: 'created_at', type: 'date' }
1010
+ );
1011
+ } else if (responseType === 'error') {
1012
+ fields.push({ name: 'code', type: 'number' }, { name: 'message', type: 'string' });
1013
+ } else if (responseType === 'paginated') {
1014
+ fields.push({ name: 'id', type: 'uuid' }, { name: 'name', type: 'string' });
1015
+ }
1016
+ return fields;
1017
+ };
1018
+
1019
+ const displayResponseFactorySuccess = (
1020
+ cmd: IBaseCommand,
1021
+ name: string,
1022
+ result: ResponseFactoryPromptAnswers | ResponseFactoryGeneratorResult
1023
+ ): void => {
1024
+ cmd.success(`Response factory '${name}' created successfully!`);
1025
+ cmd.info(`Factory: ${path.basename(result.factoryPath ?? '')}`);
1026
+ if (result.responsePath !== undefined) cmd.info(`DTO: ${path.basename(result.responsePath)}`);
1027
+ cmd.info(
1028
+ `\nUsage in tests:\n const response = ${name}.create() // Create single response\n const responses = ${name}.times(5).makeMany() // Create multiple responses\n const error = ${name}.create().state('error').make() // Test error responses`
1029
+ );
1030
+ };
1031
+
1032
+ const addResponseFactory = async (
1033
+ cmd: IBaseCommand,
1034
+ factoryName: string | undefined,
1035
+ opts: AddOptions
1036
+ ): Promise<void> => {
1037
+ let name: string = factoryName ?? '';
1038
+ if (name === '' && opts.noInteractive !== true) {
1039
+ name = await promptResponseFactoryName();
1040
+ }
1041
+
1042
+ if (name === '') throw ErrorFactory.createValidationError('Factory name is required');
1043
+
1044
+ const responseName = name.replace('Factory', '');
1045
+ const answers = await getResponseFactoryAnswers(name, responseName, opts);
1046
+
1047
+ const factoriesPath = path.join(process.cwd(), 'database', 'factories');
1048
+ const responsesPath =
1049
+ answers.withDTO === true ? path.join(process.cwd(), 'app', 'Responses') : undefined;
1050
+
1051
+ ensureDirectoryExists(factoriesPath);
1052
+ if (responsesPath !== undefined) ensureDirectoryExists(responsesPath);
1053
+
1054
+ const result = await ResponseFactoryGenerator.generate({
1055
+ factoryName: name,
1056
+ responseName: answers.responseName,
1057
+ fields: getDefaultResponseFields(answers.responseType),
1058
+ factoriesPath,
1059
+ responsesPath,
1060
+ });
1061
+
1062
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
1063
+
1064
+ displayResponseFactorySuccess(cmd, name, result);
1065
+ };
1066
+
1067
+ const promptWorkflowConfig = async (
1068
+ defaultName: string
1069
+ ): Promise<{ name: string; platform: 'lambda' | 'fargate' | 'cloudflare' | 'deno' | 'all' }> => {
1070
+ return inquirer.prompt([
1071
+ {
1072
+ type: 'input',
1073
+ name: 'name',
1074
+ message: 'Workflow name:',
1075
+ default: defaultName,
1076
+ },
1077
+ {
1078
+ type: 'list',
1079
+ name: 'platform',
1080
+ message: 'Target platform:',
1081
+ choices: ['lambda', 'fargate', 'cloudflare', 'deno', 'all'],
1082
+ default: 'all',
1083
+ },
1084
+ ]);
1085
+ };
1086
+
1087
+ const addWorkflow = async (
1088
+ cmd: IBaseCommand,
1089
+ workflowName: string | undefined,
1090
+ opts: AddOptions
1091
+ ): Promise<void> => {
1092
+ const projectRoot = process.cwd();
1093
+ let name: string = workflowName ?? 'deploy-cloud';
1094
+
1095
+ const validPlatforms: PlatformDeploy[] = ['lambda', 'fargate', 'cloudflare', 'deno', 'all'];
1096
+ let platform: PlatformDeploy = 'all';
1097
+ if (opts.platform !== undefined && validPlatforms.includes(opts.platform as PlatformDeploy)) {
1098
+ platform = opts.platform as PlatformDeploy;
1099
+ }
1100
+
1101
+ const isInteractive = opts.noInteractive !== true;
1102
+ const hasNoName = workflowName === undefined || workflowName === '';
1103
+ const hasNoPlatform = opts.platform === undefined || opts.platform === '';
1104
+
1105
+ if (isInteractive && (hasNoName || hasNoPlatform)) {
1106
+ const answers = await promptWorkflowConfig(name);
1107
+ name = answers.name;
1108
+ platform = answers.platform;
1109
+ }
1110
+
1111
+ cmd.info(`Generating workflow: ${name}...`);
1112
+
1113
+ const result = await WorkflowGenerator.generate({
1114
+ name,
1115
+ platform,
1116
+ projectRoot,
1117
+ branch: opts.branch ?? 'master',
1118
+ nodeVersion: opts.nodeVersion ?? '20.x',
1119
+ });
1120
+
1121
+ if (result.success === false) throw ErrorFactory.createCliError(result.message);
1122
+ cmd.success(result.message);
1123
+ };
1124
+
1125
+ const addGovernance = async (
1126
+ cmd: IBaseCommand,
1127
+ name: string | undefined,
1128
+ opts: AddOptions
1129
+ ): Promise<void> => {
1130
+ if (typeof name === 'string' && name.trim() !== '') {
1131
+ throw ErrorFactory.createValidationError(
1132
+ 'governance does not take a name argument. Usage: zin add governance'
1133
+ );
1134
+ }
1135
+
1136
+ const projectRoot = process.cwd();
1137
+ cmd.info('Installing governance tooling (ESLint + architecture tests)...');
1138
+
1139
+ const result = await GovernanceScaffolder.scaffold(projectRoot, {
1140
+ writeEslintConfig: true,
1141
+ writeArchTests: true,
1142
+ install: true,
1143
+ packageManager: opts.packageManager,
1144
+ });
1145
+
1146
+ if (result.success === false) {
1147
+ throw ErrorFactory.createCliError(result.message ?? 'Governance installation failed', result);
1148
+ }
1149
+
1150
+ cmd.success('Governance installed successfully!');
1151
+ if (result.filesCreated.length > 0) {
1152
+ cmd.info(`Files created: ${result.filesCreated.length}`);
1153
+ }
1154
+ };
1155
+
1156
+ type AddHandler = (cmd: IBaseCommand, name: string | undefined, opts: AddOptions) => Promise<void>;
1157
+
1158
+ const TYPE_HANDLERS: Record<string, AddHandler> = {
1159
+ service: addService,
1160
+ feature: addFeature,
1161
+ migration: async (cmd, name, opts) =>
1162
+ addMigration(cmd, typeof name === 'string' && name.length > 0 ? [name] : [], opts),
1163
+ model: addModel,
1164
+ controller: addController,
1165
+ routes: addRoutes,
1166
+ factory: addFactory,
1167
+ seeder: addSeeder,
1168
+ requestfactory: addRequestFactory,
1169
+ 'request-factory': addRequestFactory,
1170
+ responsefactory: addResponseFactory,
1171
+ 'response-factory': addResponseFactory,
1172
+ workflow: addWorkflow,
1173
+ governance: addGovernance,
1174
+ };
1175
+
1176
+ const handleType = async (
1177
+ cmd: IBaseCommand,
1178
+ type: string,
1179
+ name: string | undefined,
1180
+ opts: AddOptions
1181
+ ): Promise<void> => {
1182
+ const handler = TYPE_HANDLERS[type];
1183
+ if (handler === undefined) {
1184
+ throw ErrorFactory.createCliError(
1185
+ `Unknown type "${type}". Use: service, feature, migration, model, controller, routes, factory, seeder, requestfactory, responsefactory, workflow, or governance`
1186
+ );
1187
+ }
1188
+ await handler(cmd, name, opts);
1189
+ };
1190
+
1191
+ const getArgs = (args: unknown): string[] | undefined =>
1192
+ Array.isArray(args) ? (args as string[]) : undefined;
1193
+
1194
+ const installPlugin = async (
1195
+ cmd: IBaseCommand,
1196
+ type: string,
1197
+ name: string | undefined,
1198
+ addOpts: AddOptions
1199
+ ): Promise<void> => {
1200
+ const normalizedType = type.toLowerCase();
1201
+ if (name !== undefined && name.length > 0) {
1202
+ throw ErrorFactory.createCliError(
1203
+ `"${type}" looks like a plugin id. Run: zin add ${type} (without a name argument).`
1204
+ );
1205
+ }
1206
+
1207
+ cmd.info(`Installing plugin: ${normalizedType}...`);
1208
+ const pm = typeof addOpts.packageManager === 'string' ? addOpts.packageManager : undefined;
1209
+ if (pm === undefined) {
1210
+ await PluginManager.install(normalizedType);
1211
+ } else {
1212
+ await PluginManager.install(normalizedType, { packageManager: pm });
1213
+ }
1214
+ cmd.success(`Plugin '${normalizedType}' installed successfully!`);
1215
+ };
1216
+
1217
+ const executeAdd = async (cmd: IBaseCommand, options: CommandOptions): Promise<void> => {
1218
+ const command = cmd.getCommand();
1219
+ const args = getArgs(options.args) ?? getArgs(command.args) ?? [];
1220
+ const type = args[0];
1221
+ const name = args[1];
1222
+
1223
+ const commandOpts = typeof command.opts === 'function' ? command.opts() : {};
1224
+ const addOpts = { ...options, ...commandOpts } as AddOptions;
1225
+
1226
+ try {
1227
+ if (type === undefined || type === '') {
1228
+ throw ErrorFactory.createCliError(
1229
+ 'Please specify what to add: service, feature, migration, model, controller, routes, factory, or seeder'
1230
+ );
1231
+ }
1232
+
1233
+ // Planned modular adapter syntax: `zin add db:sqlite` (delegate to plugin installer)
1234
+ const normalizedType = type.toLowerCase();
1235
+ if (normalizedType.includes(':')) {
1236
+ await installPlugin(cmd, type, name, addOpts);
1237
+ return;
1238
+ }
1239
+
1240
+ if (normalizedType === 'migration') {
1241
+ await addMigration(cmd, args.slice(1), addOpts);
1242
+ return;
1243
+ }
1244
+
1245
+ await handleType(cmd, normalizedType, name, addOpts);
1246
+ } catch (error) {
1247
+ ErrorFactory.createCliError('Add command failed', error);
1248
+ cmd.warn(`Failed: ${(error as Error).message}`);
1249
+ throw error;
1250
+ }
1251
+ };
1252
+
1253
+ /**
1254
+ * Add Command Factory
1255
+ */
1256
+ export const AddCommand = Object.freeze({
1257
+ /**
1258
+ * Create a new add command instance
1259
+ */
1260
+ create(): IBaseCommand {
1261
+ const cmd: IBaseCommand = BaseCommand.create({
1262
+ name: 'add',
1263
+ description: 'Add services and features to existing project',
1264
+ addOptions,
1265
+ execute: async (options: CommandOptions): Promise<void> => executeAdd(cmd, options),
1266
+ });
1267
+
1268
+ return cmd;
1269
+ },
1270
+
1271
+ /**
1272
+ * Internal helpers for testing
1273
+ * @internal
1274
+ */
1275
+ _helpers: {
1276
+ promptServiceConfig,
1277
+ promptFeatureConfig,
1278
+ promptMigrationConfig,
1279
+ promptModelConfig,
1280
+ promptControllerConfig,
1281
+ promptRoutesConfig,
1282
+ promptFactoryConfig,
1283
+ promptSeederConfig,
1284
+ promptRequestFactoryConfig,
1285
+ promptResponseFactoryName,
1286
+ promptResponseFactoryConfig,
1287
+ promptWorkflowConfig,
1288
+ getDefaultResponseFields,
1289
+ },
1290
+ });