@zintrust/core 0.1.39 → 0.1.41

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 (475) hide show
  1. package/bin/zintrust-main.d.ts.map +1 -1
  2. package/bin/zintrust-main.js +22 -1
  3. package/package.json +8 -4
  4. package/public/error-pages/404.html +2 -2
  5. package/src/auth/Auth.js +1 -1
  6. package/src/boot/Application.d.ts +1 -16
  7. package/src/boot/Application.d.ts.map +1 -1
  8. package/src/boot/Application.js +2 -262
  9. package/src/boot/Server.d.ts +1 -1
  10. package/src/boot/Server.d.ts.map +1 -1
  11. package/src/boot/bootstrap.js +23 -9
  12. package/src/boot/registry/registerRoute.d.ts +6 -0
  13. package/src/boot/registry/registerRoute.d.ts.map +1 -0
  14. package/src/boot/registry/registerRoute.js +96 -0
  15. package/src/boot/registry/runtime.d.ts +15 -0
  16. package/src/boot/registry/runtime.d.ts.map +1 -0
  17. package/src/boot/registry/runtime.js +353 -0
  18. package/src/boot/registry/type.d.ts +25 -0
  19. package/src/boot/registry/type.d.ts.map +1 -0
  20. package/src/boot/registry/type.js +1 -0
  21. package/src/boot/registry/worker.d.ts +6 -0
  22. package/src/boot/registry/worker.d.ts.map +1 -0
  23. package/src/boot/registry/worker.js +35 -0
  24. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  25. package/src/cache/drivers/KVRemoteDriver.js +14 -1
  26. package/src/cli/CLI.d.ts.map +1 -1
  27. package/src/cli/CLI.js +82 -34
  28. package/src/cli/ErrorHandler.js +1 -1
  29. package/src/cli/commands/ContainerProxiesCommand.d.ts +5 -0
  30. package/src/cli/commands/ContainerProxiesCommand.d.ts.map +1 -0
  31. package/src/cli/commands/ContainerProxiesCommand.js +77 -0
  32. package/src/cli/commands/ContainerWorkersCommand.d.ts +5 -0
  33. package/src/cli/commands/ContainerWorkersCommand.d.ts.map +1 -0
  34. package/src/cli/commands/ContainerWorkersCommand.js +57 -0
  35. package/src/cli/commands/DeployCommand.d.ts +16 -0
  36. package/src/cli/commands/DeployCommand.d.ts.map +1 -0
  37. package/src/cli/commands/DeployCommand.js +110 -0
  38. package/src/cli/commands/DeployContainerProxiesCommand.d.ts +5 -0
  39. package/src/cli/commands/DeployContainerProxiesCommand.d.ts.map +1 -0
  40. package/src/cli/commands/DeployContainerProxiesCommand.js +27 -0
  41. package/src/cli/commands/DeployContainerWorkersCommand.d.ts +5 -0
  42. package/src/cli/commands/DeployContainerWorkersCommand.d.ts.map +1 -0
  43. package/src/cli/commands/DeployContainerWorkersCommand.js +27 -0
  44. package/src/cli/commands/DockerComposeCommandUtils.d.ts +3 -0
  45. package/src/cli/commands/DockerComposeCommandUtils.d.ts.map +1 -0
  46. package/src/cli/commands/DockerComposeCommandUtils.js +34 -0
  47. package/src/cli/commands/DoctorArchitectureCommand.d.ts +5 -0
  48. package/src/cli/commands/DoctorArchitectureCommand.d.ts.map +1 -0
  49. package/src/cli/commands/DoctorArchitectureCommand.js +54 -0
  50. package/src/cli/commands/InitContainerCommand.d.ts +5 -0
  51. package/src/cli/commands/InitContainerCommand.d.ts.map +1 -0
  52. package/src/cli/commands/InitContainerCommand.js +216 -0
  53. package/src/cli/commands/InitProducerCommand.d.ts +5 -0
  54. package/src/cli/commands/InitProducerCommand.d.ts.map +1 -0
  55. package/src/cli/commands/InitProducerCommand.js +47 -0
  56. package/src/cli/commands/InitProxyCommand.d.ts +5 -0
  57. package/src/cli/commands/InitProxyCommand.d.ts.map +1 -0
  58. package/src/cli/commands/InitProxyCommand.js +442 -0
  59. package/src/cli/commands/MongoDBProxyCommand.d.ts +5 -0
  60. package/src/cli/commands/MongoDBProxyCommand.d.ts.map +1 -0
  61. package/src/cli/commands/MongoDBProxyCommand.js +98 -0
  62. package/src/cli/commands/MySqlProxyCommand.d.ts +6 -0
  63. package/src/cli/commands/MySqlProxyCommand.d.ts.map +1 -0
  64. package/src/cli/commands/MySqlProxyCommand.js +32 -0
  65. package/src/cli/commands/PostgresProxyCommand.d.ts +6 -0
  66. package/src/cli/commands/PostgresProxyCommand.d.ts.map +1 -0
  67. package/src/cli/commands/PostgresProxyCommand.js +32 -0
  68. package/src/cli/commands/ProxyCommand.d.ts +12 -0
  69. package/src/cli/commands/ProxyCommand.d.ts.map +1 -0
  70. package/src/cli/commands/ProxyCommand.js +80 -0
  71. package/src/cli/commands/ProxyCommandUtils.d.ts +6 -0
  72. package/src/cli/commands/ProxyCommandUtils.d.ts.map +1 -0
  73. package/src/cli/commands/ProxyCommandUtils.js +38 -0
  74. package/src/cli/commands/QueueRecoveryCommand.d.ts +6 -0
  75. package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -0
  76. package/src/cli/commands/QueueRecoveryCommand.js +513 -0
  77. package/src/cli/commands/RedisProxyCommand.d.ts +6 -0
  78. package/src/cli/commands/RedisProxyCommand.d.ts.map +1 -0
  79. package/src/cli/commands/RedisProxyCommand.js +53 -0
  80. package/src/cli/commands/SmtpProxyCommand.d.ts +6 -0
  81. package/src/cli/commands/SmtpProxyCommand.d.ts.map +1 -0
  82. package/src/cli/commands/SmtpProxyCommand.js +56 -0
  83. package/src/cli/commands/SqlProxyCommandUtils.d.ts +46 -0
  84. package/src/cli/commands/SqlProxyCommandUtils.d.ts.map +1 -0
  85. package/src/cli/commands/SqlProxyCommandUtils.js +48 -0
  86. package/src/cli/commands/SqlServerProxyCommand.d.ts +5 -0
  87. package/src/cli/commands/SqlServerProxyCommand.d.ts.map +1 -0
  88. package/src/cli/commands/SqlServerProxyCommand.js +85 -0
  89. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  90. package/src/cli/commands/StartCommand.js +145 -18
  91. package/src/cli/commands/WorkerCommands.d.ts +1 -0
  92. package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
  93. package/src/cli/commands/WorkerCommands.js +140 -6
  94. package/src/cli/commands/index.d.ts +2 -0
  95. package/src/cli/commands/index.d.ts.map +1 -1
  96. package/src/cli/commands/index.js +2 -0
  97. package/src/cli/commands/runner/index.d.ts +2 -2
  98. package/src/cli/commands/runner/index.d.ts.map +1 -1
  99. package/src/cli/commands/runner/index.js +15 -4
  100. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  101. package/src/cli/d1/D1SqlMigrations.js +3 -0
  102. package/src/cli/index.d.ts +4 -0
  103. package/src/cli/index.d.ts.map +1 -1
  104. package/src/cli/index.js +4 -0
  105. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  106. package/src/cli/scaffolding/ProjectScaffolder.js +2 -0
  107. package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
  108. package/src/cli/scaffolding/ServiceScaffolder.js +1 -0
  109. package/src/cli/utils/EnvFileLoader.d.ts +2 -1
  110. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  111. package/src/cli/utils/EnvFileLoader.js +22 -21
  112. package/src/cli/utils/spawn.d.ts.map +1 -1
  113. package/src/cli/utils/spawn.js +17 -10
  114. package/src/cli/workers/QueueWorkRunner.js +1 -1
  115. package/src/common/ExternalServiceUtils.d.ts.map +1 -1
  116. package/src/common/ExternalServiceUtils.js +7 -2
  117. package/src/common/HealthRoutes.d.ts.map +1 -1
  118. package/src/common/HealthRoutes.js +50 -2
  119. package/src/common/RemoteSignedJson.d.ts +1 -0
  120. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  121. package/src/common/RemoteSignedJson.js +39 -13
  122. package/src/common/index.d.ts +1 -0
  123. package/src/common/index.d.ts.map +1 -1
  124. package/src/common/index.js +12 -1
  125. package/src/config/FileLogWriter.d.ts.map +1 -1
  126. package/src/config/FileLogWriter.js +21 -6
  127. package/src/config/app.d.ts +4 -0
  128. package/src/config/app.d.ts.map +1 -1
  129. package/src/config/app.js +4 -0
  130. package/src/config/cache.d.ts.map +1 -1
  131. package/src/config/cache.js +22 -2
  132. package/src/config/cloudflare.d.ts +5 -1
  133. package/src/config/cloudflare.d.ts.map +1 -1
  134. package/src/config/cloudflare.js +48 -0
  135. package/src/config/database.d.ts.map +1 -1
  136. package/src/config/database.js +48 -13
  137. package/src/config/env.d.ts +90 -2
  138. package/src/config/env.d.ts.map +1 -1
  139. package/src/config/env.js +160 -18
  140. package/src/config/index.d.ts +1 -0
  141. package/src/config/index.d.ts.map +1 -1
  142. package/src/config/logger.d.ts.map +1 -1
  143. package/src/config/logger.js +60 -16
  144. package/src/config/mail.d.ts.map +1 -1
  145. package/src/config/mail.js +16 -10
  146. package/src/config/middleware.d.ts +5 -0
  147. package/src/config/middleware.d.ts.map +1 -1
  148. package/src/config/middleware.js +19 -1
  149. package/src/config/queue.d.ts.map +1 -1
  150. package/src/config/queue.js +70 -9
  151. package/src/config/redis.d.ts.map +1 -1
  152. package/src/config/redis.js +48 -13
  153. package/src/config/storage.d.ts.map +1 -1
  154. package/src/config/storage.js +1 -0
  155. package/src/config/type.d.ts +19 -0
  156. package/src/config/type.d.ts.map +1 -1
  157. package/src/config/workers.d.ts.map +1 -1
  158. package/src/config/workers.js +122 -16
  159. package/src/functions/cloudflare.d.ts.map +1 -1
  160. package/src/functions/cloudflare.js +55 -1
  161. package/src/health/StartupHealthChecks.js +1 -1
  162. package/src/http/FileUpload.d.ts +3 -2
  163. package/src/http/FileUpload.d.ts.map +1 -1
  164. package/src/http/Kernel.d.ts.map +1 -1
  165. package/src/http/Kernel.js +2 -1
  166. package/src/http/error-pages/ErrorPageRenderer.d.ts +4 -0
  167. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -1
  168. package/src/http/error-pages/ErrorPageRenderer.js +141 -1
  169. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -1
  170. package/src/http/middleware/BodyParsingMiddleware.js +33 -6
  171. package/src/index.d.ts +25 -53
  172. package/src/index.d.ts.map +1 -1
  173. package/src/index.js +30 -14
  174. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -1
  175. package/src/microservices/ServiceAuthMiddleware.js +12 -4
  176. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  177. package/src/middleware/CsrfMiddleware.js +39 -10
  178. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -1
  179. package/src/middleware/ErrorHandlerMiddleware.js +2 -1
  180. package/src/migrations/MigrationLoader.js +1 -1
  181. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
  182. package/src/migrations/schema/SchemaCompiler.js +6 -3
  183. package/src/node-singletons/crypto.d.ts +1 -1
  184. package/src/node-singletons/crypto.d.ts.map +1 -1
  185. package/src/node-singletons/crypto.js +1 -1
  186. package/src/node-singletons/fs.d.ts +1 -1
  187. package/src/node-singletons/fs.d.ts.map +1 -1
  188. package/src/node-singletons/path.d.ts +1 -1
  189. package/src/node-singletons/path.d.ts.map +1 -1
  190. package/src/node-singletons/path.js +1 -1
  191. package/src/node-singletons/stream.d.ts +11 -0
  192. package/src/node-singletons/stream.d.ts.map +1 -0
  193. package/src/node-singletons/stream.js +8 -0
  194. package/src/observability/OpenTelemetry.d.ts +7 -0
  195. package/src/observability/OpenTelemetry.d.ts.map +1 -1
  196. package/src/observability/OpenTelemetry.js +49 -2
  197. package/src/orm/Database.d.ts +4 -0
  198. package/src/orm/Database.d.ts.map +1 -1
  199. package/src/orm/Database.js +80 -9
  200. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  201. package/src/orm/DatabaseRuntimeRegistration.js +2 -0
  202. package/src/orm/QueryBuilder.d.ts +1 -0
  203. package/src/orm/QueryBuilder.d.ts.map +1 -1
  204. package/src/orm/QueryBuilder.js +33 -3
  205. package/src/orm/SchemaCompiler.d.ts.map +1 -1
  206. package/src/orm/SchemaCompiler.js +6 -3
  207. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  208. package/src/orm/adapters/D1RemoteAdapter.js +14 -1
  209. package/src/orm/adapters/MongoDBProxyAdapter.d.ts +3 -0
  210. package/src/orm/adapters/MongoDBProxyAdapter.d.ts.map +1 -0
  211. package/src/orm/adapters/MongoDBProxyAdapter.js +128 -0
  212. package/src/orm/adapters/MySQLProxyAdapter.d.ts +11 -0
  213. package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -0
  214. package/src/orm/adapters/MySQLProxyAdapter.js +143 -0
  215. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts +11 -0
  216. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -0
  217. package/src/orm/adapters/PostgreSQLProxyAdapter.js +147 -0
  218. package/src/orm/adapters/ProxyCache.d.ts +9 -0
  219. package/src/orm/adapters/ProxyCache.d.ts.map +1 -0
  220. package/src/orm/adapters/ProxyCache.js +24 -0
  221. package/src/orm/adapters/ProxySignedRequest.d.ts +11 -0
  222. package/src/orm/adapters/ProxySignedRequest.d.ts.map +1 -0
  223. package/src/orm/adapters/ProxySignedRequest.js +30 -0
  224. package/src/orm/adapters/ProxySigningPath.d.ts +3 -0
  225. package/src/orm/adapters/ProxySigningPath.d.ts.map +1 -0
  226. package/src/orm/adapters/ProxySigningPath.js +25 -0
  227. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts +19 -0
  228. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -0
  229. package/src/orm/adapters/SqlProxyAdapterUtils.js +35 -0
  230. package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
  231. package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -0
  232. package/src/orm/adapters/SqlServerProxyAdapter.js +146 -0
  233. package/src/performance/Optimizer.d.ts +1 -0
  234. package/src/performance/Optimizer.d.ts.map +1 -1
  235. package/src/performance/Optimizer.js +21 -8
  236. package/src/proxy/ErrorHandler.d.ts +11 -0
  237. package/src/proxy/ErrorHandler.d.ts.map +1 -0
  238. package/src/proxy/ErrorHandler.js +7 -0
  239. package/src/proxy/PoolManager.d.ts +8 -0
  240. package/src/proxy/PoolManager.d.ts.map +1 -0
  241. package/src/proxy/PoolManager.js +18 -0
  242. package/src/proxy/ProxyBackend.d.ts +18 -0
  243. package/src/proxy/ProxyBackend.d.ts.map +1 -0
  244. package/src/proxy/ProxyBackend.js +1 -0
  245. package/src/proxy/ProxyConfig.d.ts +12 -0
  246. package/src/proxy/ProxyConfig.d.ts.map +1 -0
  247. package/src/proxy/ProxyConfig.js +1 -0
  248. package/src/proxy/ProxyRegistry.d.ts +10 -0
  249. package/src/proxy/ProxyRegistry.d.ts.map +1 -0
  250. package/src/proxy/ProxyRegistry.js +11 -0
  251. package/src/proxy/ProxyServer.d.ts +21 -0
  252. package/src/proxy/ProxyServer.d.ts.map +1 -0
  253. package/src/proxy/ProxyServer.js +84 -0
  254. package/src/proxy/ProxyServerUtils.d.ts +37 -0
  255. package/src/proxy/ProxyServerUtils.d.ts.map +1 -0
  256. package/src/proxy/ProxyServerUtils.js +42 -0
  257. package/src/proxy/ProxySigningConfigResolver.d.ts +22 -0
  258. package/src/proxy/ProxySigningConfigResolver.d.ts.map +1 -0
  259. package/src/proxy/ProxySigningConfigResolver.js +24 -0
  260. package/src/proxy/ProxySigningRequest.d.ts +12 -0
  261. package/src/proxy/ProxySigningRequest.d.ts.map +1 -0
  262. package/src/proxy/ProxySigningRequest.js +31 -0
  263. package/src/proxy/RequestValidator.d.ts +15 -0
  264. package/src/proxy/RequestValidator.d.ts.map +1 -0
  265. package/src/proxy/RequestValidator.js +25 -0
  266. package/src/proxy/SigningService.d.ts +39 -0
  267. package/src/proxy/SigningService.d.ts.map +1 -0
  268. package/src/proxy/SigningService.js +107 -0
  269. package/src/proxy/SqlPayloadValidator.d.ts +13 -0
  270. package/src/proxy/SqlPayloadValidator.d.ts.map +1 -0
  271. package/src/proxy/SqlPayloadValidator.js +14 -0
  272. package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -0
  273. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -0
  274. package/src/proxy/d1/ZintrustD1Proxy.js +1 -0
  275. package/src/proxy/d1/register.d.ts +2 -0
  276. package/src/proxy/d1/register.d.ts.map +1 -0
  277. package/src/proxy/d1/register.js +5 -0
  278. package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -0
  279. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -0
  280. package/src/proxy/kv/ZintrustKvProxy.js +1 -0
  281. package/src/proxy/kv/register.d.ts +2 -0
  282. package/src/proxy/kv/register.d.ts.map +1 -0
  283. package/src/proxy/kv/register.js +5 -0
  284. package/src/proxy/mongodb/MongoDBProxyServer.d.ts +33 -0
  285. package/src/proxy/mongodb/MongoDBProxyServer.d.ts.map +1 -0
  286. package/src/proxy/mongodb/MongoDBProxyServer.js +202 -0
  287. package/src/proxy/mongodb/register.d.ts +2 -0
  288. package/src/proxy/mongodb/register.d.ts.map +1 -0
  289. package/src/proxy/mongodb/register.js +5 -0
  290. package/src/proxy/mysql/MySqlProxyServer.d.ts +14 -0
  291. package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -0
  292. package/src/proxy/mysql/MySqlProxyServer.js +169 -0
  293. package/src/proxy/mysql/register.d.ts +2 -0
  294. package/src/proxy/mysql/register.d.ts.map +1 -0
  295. package/src/proxy/mysql/register.js +5 -0
  296. package/src/proxy/postgres/PostgresProxyServer.d.ts +14 -0
  297. package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -0
  298. package/src/proxy/postgres/PostgresProxyServer.js +140 -0
  299. package/src/proxy/postgres/register.d.ts +2 -0
  300. package/src/proxy/postgres/register.d.ts.map +1 -0
  301. package/src/proxy/postgres/register.js +5 -0
  302. package/src/proxy/redis/RedisProxyServer.d.ts +12 -0
  303. package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -0
  304. package/src/proxy/redis/RedisProxyServer.js +192 -0
  305. package/src/proxy/redis/register.d.ts +2 -0
  306. package/src/proxy/redis/register.d.ts.map +1 -0
  307. package/src/proxy/redis/register.js +5 -0
  308. package/src/proxy/smtp/SmtpProxyServer.d.ts +19 -0
  309. package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -0
  310. package/src/proxy/smtp/SmtpProxyServer.js +289 -0
  311. package/src/proxy/smtp/register.d.ts +2 -0
  312. package/src/proxy/smtp/register.d.ts.map +1 -0
  313. package/src/proxy/smtp/register.js +5 -0
  314. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +14 -0
  315. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -0
  316. package/src/proxy/sqlserver/SqlServerProxyServer.js +168 -0
  317. package/src/proxy/sqlserver/register.d.ts +2 -0
  318. package/src/proxy/sqlserver/register.d.ts.map +1 -0
  319. package/src/proxy/sqlserver/register.js +5 -0
  320. package/src/routes/doc.d.ts.map +1 -1
  321. package/src/routes/doc.js +16 -2
  322. package/src/routes/error.d.ts +5 -4
  323. package/src/routes/error.d.ts.map +1 -1
  324. package/src/routes/error.js +15 -13
  325. package/src/routes/errorPages.d.ts +2 -0
  326. package/src/routes/errorPages.d.ts.map +1 -1
  327. package/src/routes/errorPages.js +144 -4
  328. package/src/runtime/PluginAutoImports.d.ts +1 -0
  329. package/src/runtime/PluginAutoImports.d.ts.map +1 -1
  330. package/src/runtime/PluginAutoImports.js +94 -9
  331. package/src/runtime/RuntimeAdapter.d.ts +8 -9
  332. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  333. package/src/runtime/RuntimeAdapter.js +120 -34
  334. package/src/runtime/RuntimeServices.d.ts +47 -0
  335. package/src/runtime/RuntimeServices.d.ts.map +1 -0
  336. package/src/runtime/RuntimeServices.js +164 -0
  337. package/src/runtime/StartupConfigFileRegistry.d.ts +4 -4
  338. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
  339. package/src/runtime/StartupConfigFileRegistry.js +12 -0
  340. package/src/runtime/WorkerAdapterImports.d.ts +5 -0
  341. package/src/runtime/WorkerAdapterImports.d.ts.map +1 -0
  342. package/src/runtime/WorkerAdapterImports.js +17 -0
  343. package/src/runtime/WorkersModule.d.ts +6 -0
  344. package/src/runtime/WorkersModule.d.ts.map +1 -0
  345. package/src/runtime/WorkersModule.js +278 -0
  346. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  347. package/src/runtime/adapters/CloudflareAdapter.js +19 -2
  348. package/src/runtime/adapters/DenoAdapter.js +1 -0
  349. package/src/runtime/adapters/FargateAdapter.js +1 -1
  350. package/src/runtime/adapters/LambdaAdapter.js +1 -1
  351. package/src/runtime/adapters/NodeServerAdapter.js +1 -1
  352. package/src/runtime/detectRuntime.d.ts +10 -0
  353. package/src/runtime/detectRuntime.d.ts.map +1 -0
  354. package/src/runtime/detectRuntime.js +57 -0
  355. package/src/runtime/useFileLoader.d.ts.map +1 -1
  356. package/src/runtime/useFileLoader.js +16 -0
  357. package/src/scripts/TemplateImportsCheck.js +2 -2
  358. package/src/scripts/TemplateSync.js +3 -4
  359. package/src/security/CsrfTokenManager.d.ts +18 -9
  360. package/src/security/CsrfTokenManager.d.ts.map +1 -1
  361. package/src/security/CsrfTokenManager.js +204 -11
  362. package/src/security/Hash.d.ts +1 -1
  363. package/src/security/Hash.d.ts.map +1 -1
  364. package/src/security/Hash.js +31 -36
  365. package/src/seeders/SeederLoader.js +1 -1
  366. package/src/session/SessionManager.d.ts +3 -0
  367. package/src/session/SessionManager.d.ts.map +1 -1
  368. package/src/session/SessionManager.js +49 -10
  369. package/src/sockets/CloudflareSocket.d.ts +24 -0
  370. package/src/sockets/CloudflareSocket.d.ts.map +1 -0
  371. package/src/sockets/CloudflareSocket.js +259 -0
  372. package/src/start.d.ts.map +1 -1
  373. package/src/start.js +1 -8
  374. package/src/templates/project/basic/app/Middleware/index.ts.tpl +1 -1
  375. package/src/templates/project/basic/src/zintrust.plugins.wg.ts.tpl +8 -0
  376. package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -1
  377. package/src/toolkit/Secrets/providers/AwsSecretsManager.js +4 -2
  378. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
  379. package/src/tools/mail/drivers/Smtp.js +223 -18
  380. package/src/tools/mail/index.d.ts.map +1 -1
  381. package/src/tools/mail/index.js +5 -4
  382. package/src/tools/mail/template-loader.d.ts.map +1 -1
  383. package/src/tools/mail/template-loader.js +197 -29
  384. package/src/tools/mail/templates/auth-password-reset.d.ts +3 -0
  385. package/src/tools/mail/templates/auth-password-reset.d.ts.map +1 -0
  386. package/src/tools/mail/templates/auth-password-reset.js +231 -0
  387. package/src/tools/mail/templates/auth-welcome.d.ts +3 -0
  388. package/src/tools/mail/templates/auth-welcome.d.ts.map +1 -0
  389. package/src/tools/mail/templates/auth-welcome.js +236 -0
  390. package/src/tools/mail/templates/general.d.ts +3 -0
  391. package/src/tools/mail/templates/general.d.ts.map +1 -0
  392. package/src/tools/mail/templates/general.js +109 -0
  393. package/src/tools/mail/templates/index.js +2 -2
  394. package/src/tools/mail/templates/job-completed.d.ts +3 -0
  395. package/src/tools/mail/templates/job-completed.d.ts.map +1 -0
  396. package/src/tools/mail/templates/job-completed.js +188 -0
  397. package/src/tools/mail/templates/notifications-new-comment.d.ts +3 -0
  398. package/src/tools/mail/templates/notifications-new-comment.d.ts.map +1 -0
  399. package/src/tools/mail/templates/notifications-new-comment.js +228 -0
  400. package/src/tools/mail/templates/password-reset.d.ts +3 -0
  401. package/src/tools/mail/templates/password-reset.d.ts.map +1 -0
  402. package/src/tools/mail/templates/password-reset.js +221 -0
  403. package/src/tools/mail/templates/performance-report.d.ts +3 -0
  404. package/src/tools/mail/templates/performance-report.d.ts.map +1 -0
  405. package/src/tools/mail/templates/performance-report.js +258 -0
  406. package/src/tools/mail/templates/welcome.d.ts +3 -0
  407. package/src/tools/mail/templates/welcome.d.ts.map +1 -0
  408. package/src/tools/mail/templates/welcome.js +187 -0
  409. package/src/tools/mail/templates/worker-alert.d.ts +3 -0
  410. package/src/tools/mail/templates/worker-alert.d.ts.map +1 -0
  411. package/src/tools/mail/templates/worker-alert.js +229 -0
  412. package/src/tools/notification/Notification.js +1 -1
  413. package/src/tools/notification/testingHelpers.js +6 -5
  414. package/src/tools/queue/AdvancedQueue.js +2 -6
  415. package/src/tools/queue/IdempotencyManager.d.ts +6 -0
  416. package/src/tools/queue/IdempotencyManager.d.ts.map +1 -0
  417. package/src/tools/queue/IdempotencyManager.js +36 -0
  418. package/src/tools/queue/JobHeartbeatStore.d.ts +16 -0
  419. package/src/tools/queue/JobHeartbeatStore.d.ts.map +1 -0
  420. package/src/tools/queue/JobHeartbeatStore.js +67 -0
  421. package/src/tools/queue/JobReconciliationRunner.d.ts +16 -0
  422. package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -0
  423. package/src/tools/queue/JobReconciliationRunner.js +88 -0
  424. package/src/tools/queue/JobRecoveryDaemon.d.ts +27 -0
  425. package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -0
  426. package/src/tools/queue/JobRecoveryDaemon.js +205 -0
  427. package/src/tools/queue/JobStateTracker.d.ts +131 -0
  428. package/src/tools/queue/JobStateTracker.d.ts.map +1 -0
  429. package/src/tools/queue/JobStateTracker.js +387 -0
  430. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts +12 -0
  431. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -0
  432. package/src/tools/queue/JobStateTrackerDbPersistence.js +148 -0
  433. package/src/tools/queue/Queue.d.ts.map +1 -1
  434. package/src/tools/queue/Queue.js +160 -16
  435. package/src/tools/queue/QueueDataRedactor.d.ts +6 -0
  436. package/src/tools/queue/QueueDataRedactor.d.ts.map +1 -0
  437. package/src/tools/queue/QueueDataRedactor.js +45 -0
  438. package/src/tools/queue/QueueExtensions.d.ts.map +1 -1
  439. package/src/tools/queue/QueueExtensions.js +2 -1
  440. package/src/tools/queue/QueueReliabilityMetrics.d.ts +38 -0
  441. package/src/tools/queue/QueueReliabilityMetrics.d.ts.map +1 -0
  442. package/src/tools/queue/QueueReliabilityMetrics.js +131 -0
  443. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts +7 -0
  444. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts.map +1 -0
  445. package/src/tools/queue/QueueReliabilityOrchestrator.js +59 -0
  446. package/src/tools/queue/QueueRuntimeRegistration.d.ts +1 -9
  447. package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +1 -1
  448. package/src/tools/queue/QueueRuntimeRegistration.js +75 -4
  449. package/src/tools/queue/QueueTracing.d.ts +32 -0
  450. package/src/tools/queue/QueueTracing.d.ts.map +1 -0
  451. package/src/tools/queue/QueueTracing.js +151 -0
  452. package/src/tools/queue/StalledJobMonitor.d.ts +5 -0
  453. package/src/tools/queue/StalledJobMonitor.d.ts.map +1 -0
  454. package/src/tools/queue/StalledJobMonitor.js +21 -0
  455. package/src/tools/queue/TimeoutManager.d.ts +14 -0
  456. package/src/tools/queue/TimeoutManager.d.ts.map +1 -0
  457. package/src/tools/queue/TimeoutManager.js +77 -0
  458. package/src/tools/queue/drivers/Redis.d.ts +1 -0
  459. package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
  460. package/src/tools/queue/drivers/Redis.js +1 -0
  461. package/src/tools/queue/index.d.ts +10 -0
  462. package/src/tools/queue/index.d.ts.map +1 -1
  463. package/src/tools/queue/index.js +10 -0
  464. package/src/tools/redis/RedisKeyManager.d.ts +3 -0
  465. package/src/tools/redis/RedisKeyManager.d.ts.map +1 -1
  466. package/src/tools/redis/RedisKeyManager.js +15 -0
  467. package/src/tools/storage/drivers/R2.d.ts +13 -0
  468. package/src/tools/storage/drivers/R2.d.ts.map +1 -1
  469. package/src/tools/storage/drivers/R2.js +29 -0
  470. package/src/zintrust.plugins.d.ts +9 -0
  471. package/src/zintrust.plugins.d.ts.map +1 -0
  472. package/src/zintrust.plugins.js +7 -0
  473. package/src/zintrust.plugins.wg.d.ts +9 -0
  474. package/src/zintrust.plugins.wg.d.ts.map +1 -0
  475. package/src/zintrust.plugins.wg.js +7 -0
@@ -0,0 +1,5 @@
1
+ import type { IBaseCommand } from '../BaseCommand';
2
+ export declare const ContainerProxiesCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=ContainerProxiesCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerProxiesCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ContainerProxiesCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAwErE,eAAO,MAAM,uBAAuB;cACxB,YAAY;EAuCtB,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { resolveComposePath, runComposeWithFallback, } from '../commands/DockerComposeCommandUtils.js';
3
+ import { Logger } from '../../config/logger.js';
4
+ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
5
+ const runBuild = async (composePath, options) => {
6
+ const args = ['compose', '-f', composePath, 'build'];
7
+ if (options.noCache === true) {
8
+ args.push('--no-cache');
9
+ }
10
+ if (options.pull === true) {
11
+ args.push('--pull');
12
+ }
13
+ Logger.info('Building proxy stack image...');
14
+ await runComposeWithFallback(args);
15
+ };
16
+ const runUp = async (composePath, options) => {
17
+ const args = ['compose', '-f', composePath, 'up'];
18
+ if (options.detach === true) {
19
+ args.push('-d');
20
+ }
21
+ if (options.removeOrphans === true) {
22
+ args.push('--remove-orphans');
23
+ }
24
+ Logger.info('Starting proxy stack...');
25
+ await runComposeWithFallback(args);
26
+ };
27
+ const runDown = async (composePath, options) => {
28
+ const args = ['compose', '-f', composePath, 'down'];
29
+ if (options.removeOrphans === true) {
30
+ args.push('--remove-orphans');
31
+ }
32
+ if (options.volumes === true) {
33
+ args.push('--volumes');
34
+ }
35
+ Logger.info('Stopping proxy stack...');
36
+ await runComposeWithFallback(args);
37
+ };
38
+ const normalizeAction = (raw) => {
39
+ const value = (raw ?? '').trim().toLowerCase();
40
+ if (value === 'build' || value === 'up' || value === 'down')
41
+ return value;
42
+ throw ErrorFactory.createCliError('Usage: zin cp <build|up|down> [options]');
43
+ };
44
+ export const ContainerProxiesCommand = Object.freeze({
45
+ create() {
46
+ return BaseCommand.create({
47
+ name: 'cp',
48
+ aliases: ['container-proxies'],
49
+ description: 'Build, start, or stop container-based proxy stack',
50
+ addOptions: (command) => {
51
+ command.argument('<action>', 'Action to run (build, up, down)');
52
+ command.option('-d, --detach', 'Run containers in background (up only)');
53
+ command.option('--no-cache', 'Disable Docker build cache (build only)');
54
+ command.option('--pull', 'Always attempt to pull a newer base image (build only)');
55
+ command.option('--build', 'Build before running up (up only)');
56
+ command.option('--remove-orphans', 'Remove containers for services not defined in compose');
57
+ command.option('--volumes', 'Remove named volumes when running down (down only)');
58
+ },
59
+ execute: async (options) => {
60
+ const action = normalizeAction(options.args?.[0]);
61
+ const composePath = resolveComposePath('docker-compose.proxy.yml', 'docker-compose.proxy.yml not found.');
62
+ if (action === 'build') {
63
+ await runBuild(composePath, options);
64
+ return;
65
+ }
66
+ if (action === 'down') {
67
+ await runDown(composePath, options);
68
+ return;
69
+ }
70
+ if (options.build === true) {
71
+ await runBuild(composePath, options);
72
+ }
73
+ await runUp(composePath, options);
74
+ },
75
+ });
76
+ },
77
+ });
@@ -0,0 +1,5 @@
1
+ import type { IBaseCommand } from '../BaseCommand';
2
+ export declare const ContainerWorkersCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=ContainerWorkersCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerWorkersCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/ContainerWorkersCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmDrE,eAAO,MAAM,uBAAuB;cACxB,YAAY;EAgCtB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { resolveComposePath, runComposeWithFallback, } from '../commands/DockerComposeCommandUtils.js';
3
+ import { Logger } from '../../config/logger.js';
4
+ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
5
+ const runBuild = async (composePath, options) => {
6
+ const args = ['compose', '-f', composePath, 'build'];
7
+ if (options.noCache === true) {
8
+ args.push('--no-cache');
9
+ }
10
+ if (options.pull === true) {
11
+ args.push('--pull');
12
+ }
13
+ Logger.info('Building container workers image...');
14
+ await runComposeWithFallback(args);
15
+ };
16
+ const runUp = async (composePath, options) => {
17
+ const args = ['compose', '-f', composePath, 'up'];
18
+ if (options.detach === true) {
19
+ args.push('-d');
20
+ }
21
+ Logger.info('Starting container workers...');
22
+ await runComposeWithFallback(args);
23
+ };
24
+ const normalizeAction = (raw) => {
25
+ const value = (raw ?? '').trim().toLowerCase();
26
+ if (value === 'build' || value === 'up')
27
+ return value;
28
+ throw ErrorFactory.createCliError('Usage: zin cw <build|up> [options]');
29
+ };
30
+ export const ContainerWorkersCommand = Object.freeze({
31
+ create() {
32
+ return BaseCommand.create({
33
+ name: 'cw',
34
+ aliases: ['container-workers'],
35
+ description: 'Build or start container-based workers',
36
+ addOptions: (command) => {
37
+ command.argument('<action>', 'Action to run (build or up)');
38
+ command.option('-d, --detach', 'Run containers in background (up only)');
39
+ command.option('--no-cache', 'Disable Docker build cache (build only)');
40
+ command.option('--pull', 'Always attempt to pull a newer base image (build only)');
41
+ command.option('--build', 'Build before running up (up only)');
42
+ },
43
+ execute: async (options) => {
44
+ const action = normalizeAction(options.args?.[0]);
45
+ const composePath = resolveComposePath('docker-compose.workers.yml', 'docker-compose.workers.yml not found. Run `zin init:cw` first.');
46
+ if (action === 'build') {
47
+ await runBuild(composePath, options);
48
+ return;
49
+ }
50
+ if (options.build === true) {
51
+ await runBuild(composePath, options);
52
+ }
53
+ await runUp(composePath, options);
54
+ },
55
+ });
56
+ },
57
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Deploy Command - Deploy ZinTrust to Cloudflare Workers
3
+ * Handles deployment of workers and proxies
4
+ */
5
+ import type { IBaseCommand } from '../BaseCommand';
6
+ /**
7
+ * Deploy Command Factory
8
+ * Sealed namespace for immutability
9
+ */
10
+ export declare const DeployCommand: Readonly<{
11
+ /**
12
+ * Create a deploy command instance
13
+ */
14
+ create(): IBaseCommand;
15
+ }>;
16
+ //# sourceMappingURL=DeployCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/DeployCommand.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0HrE;;;GAGG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;cACO,YAAY;EAGtB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { SpawnUtil } from '../utils/spawn.js';
3
+ import { Logger } from '../../config/logger.js';
4
+ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
5
+ import { existsSync } from '../../node-singletons/fs.js';
6
+ import { join } from '../../node-singletons/path.js';
7
+ const runCompose = async (args) => {
8
+ try {
9
+ const exitCode = await SpawnUtil.spawnAndWait({ command: 'docker', args });
10
+ if (exitCode !== 0)
11
+ process.exit(exitCode);
12
+ return;
13
+ }
14
+ catch (error) {
15
+ const message = error instanceof Error ? error.message : String(error);
16
+ if (!message.includes("'docker' not found"))
17
+ throw error;
18
+ }
19
+ Logger.warn("'docker' not found. Falling back to 'docker-compose'.");
20
+ const exitCode = await SpawnUtil.spawnAndWait({
21
+ command: 'docker-compose',
22
+ args: args.slice(1),
23
+ });
24
+ if (exitCode !== 0)
25
+ process.exit(exitCode);
26
+ };
27
+ const deployContainerStack = async (label) => {
28
+ const composeFile = 'docker-compose.workers.yml';
29
+ const composePath = join(process.cwd(), composeFile);
30
+ if (!existsSync(composePath)) {
31
+ throw ErrorFactory.createCliError(`${composeFile} not found. Run \`zin init:cw\` first.`);
32
+ }
33
+ Logger.info(`Deploying ${label}...`);
34
+ await runCompose(['compose', '-f', composePath, 'up', '-d', '--build']);
35
+ Logger.info(`✅ ${label} deployed.`);
36
+ };
37
+ const deployProxyStack = async (label) => {
38
+ const composeFile = 'docker-compose.proxy.yml';
39
+ const composePath = join(process.cwd(), composeFile);
40
+ if (!existsSync(composePath)) {
41
+ throw ErrorFactory.createCliError(`${composeFile} not found.`);
42
+ }
43
+ Logger.info(`Deploying ${label}...`);
44
+ await runCompose(['compose', '-f', composePath, 'up', '-d', '--build']);
45
+ Logger.info(`✅ ${label} deployed.`);
46
+ };
47
+ const runDeploy = async (target, options) => {
48
+ const normalizedTarget = target.trim().toLowerCase();
49
+ if (normalizedTarget === 'cw' || normalizedTarget === 'cwr') {
50
+ const label = normalizedTarget === 'cwr'
51
+ ? 'container workers stack (cwr compatibility alias)'
52
+ : 'container workers stack';
53
+ await deployContainerStack(label);
54
+ return;
55
+ }
56
+ if (normalizedTarget === 'cp' || normalizedTarget === 'proxy') {
57
+ const label = normalizedTarget === 'proxy' ? 'proxy stack (proxy compatibility alias)' : 'proxy stack';
58
+ await deployProxyStack(label);
59
+ return;
60
+ }
61
+ const environment = options.env ?? target ?? 'worker';
62
+ Logger.info(`Deploying to Cloudflare environment: ${environment}`);
63
+ const exitCode = await SpawnUtil.spawnAndWait({
64
+ command: 'wrangler',
65
+ args: ['deploy', '--env', environment],
66
+ });
67
+ if (exitCode !== 0) {
68
+ process.exit(exitCode);
69
+ }
70
+ };
71
+ const createDeployCommand = () => {
72
+ return BaseCommand.create({
73
+ name: 'deploy',
74
+ description: 'Deploy ZinTrust to Cloudflare Workers',
75
+ addOptions: (command) => {
76
+ command
77
+ .argument('[target]', 'Deployment target (worker, d1-proxy, kv-proxy, production, cw, cp)', 'worker')
78
+ .option('-e, --env <env>', 'Wrangler environment (overrides target)');
79
+ },
80
+ execute: async (options) => {
81
+ // Note: BaseCommand.create sets up action handler that calls execute(options).
82
+ // However, since we define arguments '[target]', commander passes them to the action callback
83
+ // BEFORE the options object.
84
+ //
85
+ // The BaseCommand.create generic action handler:
86
+ // command.action(async (...args: unknown[]) => {
87
+ // const options = args.at(-2) as CommandOptions;
88
+ // const commandArgs = args.slice(0, -2) as string[];
89
+ // options.args = commandArgs;
90
+ // await config.execute(options);
91
+ // });
92
+ //
93
+ // So 'target' will be available in options.args[0]
94
+ const target = options.args?.[0] ?? 'worker';
95
+ await runDeploy(target, options);
96
+ },
97
+ });
98
+ };
99
+ /**
100
+ * Deploy Command Factory
101
+ * Sealed namespace for immutability
102
+ */
103
+ export const DeployCommand = Object.freeze({
104
+ /**
105
+ * Create a deploy command instance
106
+ */
107
+ create() {
108
+ return createDeployCommand();
109
+ },
110
+ });
@@ -0,0 +1,5 @@
1
+ import type { IBaseCommand } from '../BaseCommand';
2
+ export declare const DeployContainerProxiesCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=DeployContainerProxiesCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployContainerProxiesCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/DeployContainerProxiesCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAcrE,eAAO,MAAM,6BAA6B;cAC9B,YAAY;EAyBtB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { resolveComposePath, runComposeWithFallback, } from '../commands/DockerComposeCommandUtils.js';
3
+ import { Logger } from '../../config/logger.js';
4
+ export const DeployContainerProxiesCommand = Object.freeze({
5
+ create() {
6
+ return BaseCommand.create({
7
+ name: 'deploy:cp',
8
+ aliases: ['deploy:container-proxies', 'deploy:proxy-stack'],
9
+ description: 'Deploy proxy stack (docker-compose.proxy.yml)',
10
+ addOptions: (command) => {
11
+ command.option('--no-build', 'Skip image build before up');
12
+ command.option('--remove-orphans', 'Remove containers for services not defined in compose');
13
+ },
14
+ execute: async (options) => {
15
+ const composePath = resolveComposePath('docker-compose.proxy.yml', 'docker-compose.proxy.yml not found.');
16
+ const args = ['compose', '-f', composePath, 'up', '-d'];
17
+ if (options.noBuild !== true)
18
+ args.push('--build');
19
+ if (options.removeOrphans === true)
20
+ args.push('--remove-orphans');
21
+ Logger.info('Deploying proxy stack...');
22
+ await runComposeWithFallback(args);
23
+ Logger.info('✅ Proxy stack deployed.');
24
+ },
25
+ });
26
+ },
27
+ });
@@ -0,0 +1,5 @@
1
+ import type { IBaseCommand } from '../BaseCommand';
2
+ export declare const DeployContainerWorkersCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=DeployContainerWorkersCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeployContainerWorkersCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/DeployContainerWorkersCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAcrE,eAAO,MAAM,6BAA6B;cAC9B,YAAY;EAyBtB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { resolveComposePath, runComposeWithFallback, } from '../commands/DockerComposeCommandUtils.js';
3
+ import { Logger } from '../../config/logger.js';
4
+ export const DeployContainerWorkersCommand = Object.freeze({
5
+ create() {
6
+ return BaseCommand.create({
7
+ name: 'deploy:cw',
8
+ aliases: ['deploy:container-workers', 'deploy:cwr', 'deploy:container-workers-routes'],
9
+ description: 'Deploy Container Workers stack (docker-compose.workers.yml)',
10
+ addOptions: (command) => {
11
+ command.option('--no-build', 'Skip image build before up');
12
+ command.option('--remove-orphans', 'Remove containers for services not defined in compose');
13
+ },
14
+ execute: async (options) => {
15
+ const composePath = resolveComposePath('docker-compose.workers.yml', 'docker-compose.workers.yml not found. Run `zin init:cw` first.');
16
+ const args = ['compose', '-f', composePath, 'up', '-d'];
17
+ if (options.noBuild !== true)
18
+ args.push('--build');
19
+ if (options.removeOrphans === true)
20
+ args.push('--remove-orphans');
21
+ Logger.info('Deploying container workers stack...');
22
+ await runComposeWithFallback(args);
23
+ Logger.info('✅ Container workers deployed.');
24
+ },
25
+ });
26
+ },
27
+ });
@@ -0,0 +1,3 @@
1
+ export declare const resolveComposePath: (composeFileName: string, missingMessage: string) => string;
2
+ export declare const runComposeWithFallback: (args: string[]) => Promise<void>;
3
+ //# sourceMappingURL=DockerComposeCommandUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DockerComposeCommandUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/DockerComposeCommandUtils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,GAAI,iBAAiB,MAAM,EAAE,gBAAgB,MAAM,KAAG,MAMpF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAqBzE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { SpawnUtil } from '../utils/spawn.js';
2
+ import { Logger } from '../../config/logger.js';
3
+ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
4
+ import { existsSync } from '../../node-singletons/fs.js';
5
+ import { join } from '../../node-singletons/path.js';
6
+ export const resolveComposePath = (composeFileName, missingMessage) => {
7
+ const composePath = join(process.cwd(), composeFileName);
8
+ if (!existsSync(composePath)) {
9
+ throw ErrorFactory.createCliError(missingMessage);
10
+ }
11
+ return composePath;
12
+ };
13
+ export const runComposeWithFallback = async (args) => {
14
+ try {
15
+ const exitCode = await SpawnUtil.spawnAndWait({ command: 'docker', args });
16
+ if (exitCode !== 0)
17
+ process.exit(exitCode);
18
+ return;
19
+ }
20
+ catch (error) {
21
+ const message = error instanceof Error ? error.message : String(error);
22
+ if (!message.includes("'docker' not found")) {
23
+ throw error;
24
+ }
25
+ }
26
+ Logger.warn("'docker' not found. Falling back to 'docker-compose'.");
27
+ const exitCode = await SpawnUtil.spawnAndWait({
28
+ command: 'docker-compose',
29
+ args: args.slice(1),
30
+ });
31
+ if (exitCode !== 0) {
32
+ process.exit(exitCode);
33
+ }
34
+ };
@@ -0,0 +1,5 @@
1
+ import { type IBaseCommand } from '../BaseCommand';
2
+ export declare const DoctorArchitectureCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=DoctorArchitectureCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoctorArchitectureCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/DoctorArchitectureCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIlE,eAAO,MAAM,yBAAyB;cAC1B,YAAY;EAgEtB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { getRuntimeMode } from '../../runtime/detectRuntime.js';
2
+ import { BaseCommand } from '../BaseCommand.js';
3
+ import { Env } from '../../config/env.js';
4
+ import { Logger } from '../../config/logger.js';
5
+ export const DoctorArchitectureCommand = Object.freeze({
6
+ create() {
7
+ return BaseCommand.create({
8
+ name: 'doctor:architecture',
9
+ aliases: ['d'],
10
+ description: 'Validate producer/consumer architecture configuration',
11
+ async execute() {
12
+ Logger.info('🩺 Diagnosing Architecture Configuration...');
13
+ const mode = getRuntimeMode();
14
+ const workerEnabled = Env.getBool('WORKER_ENABLED', true);
15
+ const dockerWorker = Env.getBool('DOCKER_WORKER', false);
16
+ Logger.info('----------------------------------------');
17
+ Logger.info(`Runtime Mode: ${mode}`);
18
+ Logger.info(`Docker Worker: ${dockerWorker}`);
19
+ Logger.info(`Worker Enabled: ${workerEnabled}`);
20
+ Logger.info('----------------------------------------');
21
+ const issues = [];
22
+ // Rule 1: Cloudflare Workers cannot run Consumers
23
+ if (mode === 'cloudflare-workers' && workerEnabled) {
24
+ issues.push('❌ CRITICAL: Cloudflare Workers runtime detected but WORKER_ENABLED=true. Consumers will fail due to connection persistence limits. Set WORKER_ENABLED=false.');
25
+ }
26
+ // Rule 2: Containers should generally run Workers (unless dedicated to API)
27
+ if (mode === 'containers' && !workerEnabled) {
28
+ issues.push('⚠️ WARNING: Container runtime detected but WORKER_ENABLED=false. Are these containers for API only? If attempting to process jobs, enable workers.');
29
+ }
30
+ // Rule 2b: Dedicated Docker worker containers must keep workers enabled
31
+ if (mode === 'containers' && dockerWorker && !workerEnabled) {
32
+ issues.push('❌ CRITICAL: DOCKER_WORKER=true but WORKER_ENABLED=false. Dedicated worker containers must enable workers or unset DOCKER_WORKER.');
33
+ }
34
+ // Rule 3: Proxy requirement for Cloudflare
35
+ if (mode === 'cloudflare-workers') {
36
+ const useProxy = Env.getBool('USE_REDIS_PROXY', false) ||
37
+ Env.getBool('ENABLE_CLOUDFLARE_SOCKETS', false);
38
+ if (!useProxy) {
39
+ issues.push('❌ CRITICAL: Cloudflare runtime requires USE_REDIS_PROXY=true or ENABLE_CLOUDFLARE_SOCKETS=true for Queue producers.');
40
+ }
41
+ }
42
+ if (issues.length > 0) {
43
+ Logger.error('Found configuration issues:');
44
+ issues.forEach((issue) => Logger.error(issue));
45
+ process.exit(1);
46
+ }
47
+ else {
48
+ Logger.info('✅ Architecture configuration looks valid for this runtime.');
49
+ }
50
+ await Promise.resolve();
51
+ },
52
+ });
53
+ },
54
+ });
@@ -0,0 +1,5 @@
1
+ import { type IBaseCommand } from '../BaseCommand';
2
+ export declare const InitContainerCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ //# sourceMappingURL=InitContainerCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitContainerCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/InitContainerCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoNlE,eAAO,MAAM,oBAAoB;cACrB,YAAY;EAkBtB,CAAC"}