@zintrust/core 0.1.40 → 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 (460) 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 -290
  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 -5
  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 +132 -17
  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.js +16 -15
  110. package/src/cli/workers/QueueWorkRunner.js +1 -1
  111. package/src/common/HealthRoutes.d.ts.map +1 -1
  112. package/src/common/HealthRoutes.js +50 -2
  113. package/src/common/RemoteSignedJson.d.ts +1 -0
  114. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  115. package/src/common/RemoteSignedJson.js +39 -13
  116. package/src/common/index.d.ts +1 -0
  117. package/src/common/index.d.ts.map +1 -1
  118. package/src/common/index.js +12 -1
  119. package/src/config/FileLogWriter.d.ts.map +1 -1
  120. package/src/config/FileLogWriter.js +21 -6
  121. package/src/config/app.d.ts +4 -0
  122. package/src/config/app.d.ts.map +1 -1
  123. package/src/config/app.js +4 -0
  124. package/src/config/cache.d.ts.map +1 -1
  125. package/src/config/cache.js +22 -2
  126. package/src/config/cloudflare.d.ts +5 -1
  127. package/src/config/cloudflare.d.ts.map +1 -1
  128. package/src/config/cloudflare.js +48 -0
  129. package/src/config/database.d.ts.map +1 -1
  130. package/src/config/database.js +48 -13
  131. package/src/config/env.d.ts +87 -2
  132. package/src/config/env.d.ts.map +1 -1
  133. package/src/config/env.js +156 -17
  134. package/src/config/index.d.ts +1 -0
  135. package/src/config/index.d.ts.map +1 -1
  136. package/src/config/mail.d.ts.map +1 -1
  137. package/src/config/mail.js +16 -10
  138. package/src/config/middleware.d.ts +5 -0
  139. package/src/config/middleware.d.ts.map +1 -1
  140. package/src/config/middleware.js +19 -1
  141. package/src/config/queue.d.ts.map +1 -1
  142. package/src/config/queue.js +70 -9
  143. package/src/config/redis.d.ts.map +1 -1
  144. package/src/config/redis.js +48 -13
  145. package/src/config/storage.d.ts.map +1 -1
  146. package/src/config/storage.js +1 -0
  147. package/src/config/type.d.ts +18 -0
  148. package/src/config/type.d.ts.map +1 -1
  149. package/src/config/workers.d.ts.map +1 -1
  150. package/src/config/workers.js +122 -16
  151. package/src/functions/cloudflare.d.ts.map +1 -1
  152. package/src/functions/cloudflare.js +55 -1
  153. package/src/health/StartupHealthChecks.js +1 -1
  154. package/src/http/FileUpload.d.ts +3 -2
  155. package/src/http/FileUpload.d.ts.map +1 -1
  156. package/src/http/Kernel.d.ts.map +1 -1
  157. package/src/http/Kernel.js +2 -1
  158. package/src/http/error-pages/ErrorPageRenderer.d.ts +4 -0
  159. package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -1
  160. package/src/http/error-pages/ErrorPageRenderer.js +141 -1
  161. package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -1
  162. package/src/http/middleware/BodyParsingMiddleware.js +33 -6
  163. package/src/index.d.ts +25 -53
  164. package/src/index.d.ts.map +1 -1
  165. package/src/index.js +30 -14
  166. package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -1
  167. package/src/microservices/ServiceAuthMiddleware.js +12 -4
  168. package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
  169. package/src/middleware/CsrfMiddleware.js +30 -16
  170. package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -1
  171. package/src/middleware/ErrorHandlerMiddleware.js +2 -1
  172. package/src/migrations/MigrationLoader.js +1 -1
  173. package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
  174. package/src/migrations/schema/SchemaCompiler.js +6 -3
  175. package/src/node-singletons/crypto.d.ts +1 -1
  176. package/src/node-singletons/crypto.d.ts.map +1 -1
  177. package/src/node-singletons/crypto.js +1 -1
  178. package/src/node-singletons/fs.d.ts +1 -1
  179. package/src/node-singletons/fs.d.ts.map +1 -1
  180. package/src/node-singletons/path.d.ts +1 -1
  181. package/src/node-singletons/path.d.ts.map +1 -1
  182. package/src/node-singletons/path.js +1 -1
  183. package/src/node-singletons/stream.d.ts +11 -0
  184. package/src/node-singletons/stream.d.ts.map +1 -0
  185. package/src/node-singletons/stream.js +8 -0
  186. package/src/observability/OpenTelemetry.d.ts +7 -0
  187. package/src/observability/OpenTelemetry.d.ts.map +1 -1
  188. package/src/observability/OpenTelemetry.js +49 -2
  189. package/src/orm/Database.d.ts +4 -0
  190. package/src/orm/Database.d.ts.map +1 -1
  191. package/src/orm/Database.js +80 -9
  192. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  193. package/src/orm/DatabaseRuntimeRegistration.js +2 -0
  194. package/src/orm/QueryBuilder.d.ts +1 -0
  195. package/src/orm/QueryBuilder.d.ts.map +1 -1
  196. package/src/orm/QueryBuilder.js +33 -3
  197. package/src/orm/SchemaCompiler.d.ts.map +1 -1
  198. package/src/orm/SchemaCompiler.js +6 -3
  199. package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
  200. package/src/orm/adapters/D1RemoteAdapter.js +14 -1
  201. package/src/orm/adapters/MongoDBProxyAdapter.d.ts +3 -0
  202. package/src/orm/adapters/MongoDBProxyAdapter.d.ts.map +1 -0
  203. package/src/orm/adapters/MongoDBProxyAdapter.js +128 -0
  204. package/src/orm/adapters/MySQLProxyAdapter.d.ts +11 -0
  205. package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -0
  206. package/src/orm/adapters/MySQLProxyAdapter.js +143 -0
  207. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts +11 -0
  208. package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -0
  209. package/src/orm/adapters/PostgreSQLProxyAdapter.js +147 -0
  210. package/src/orm/adapters/ProxyCache.d.ts +9 -0
  211. package/src/orm/adapters/ProxyCache.d.ts.map +1 -0
  212. package/src/orm/adapters/ProxyCache.js +24 -0
  213. package/src/orm/adapters/ProxySignedRequest.d.ts +11 -0
  214. package/src/orm/adapters/ProxySignedRequest.d.ts.map +1 -0
  215. package/src/orm/adapters/ProxySignedRequest.js +30 -0
  216. package/src/orm/adapters/ProxySigningPath.d.ts +3 -0
  217. package/src/orm/adapters/ProxySigningPath.d.ts.map +1 -0
  218. package/src/orm/adapters/ProxySigningPath.js +25 -0
  219. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts +19 -0
  220. package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -0
  221. package/src/orm/adapters/SqlProxyAdapterUtils.js +35 -0
  222. package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
  223. package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -0
  224. package/src/orm/adapters/SqlServerProxyAdapter.js +146 -0
  225. package/src/performance/Optimizer.d.ts +1 -0
  226. package/src/performance/Optimizer.d.ts.map +1 -1
  227. package/src/performance/Optimizer.js +21 -8
  228. package/src/proxy/ErrorHandler.d.ts +11 -0
  229. package/src/proxy/ErrorHandler.d.ts.map +1 -0
  230. package/src/proxy/ErrorHandler.js +7 -0
  231. package/src/proxy/PoolManager.d.ts +8 -0
  232. package/src/proxy/PoolManager.d.ts.map +1 -0
  233. package/src/proxy/PoolManager.js +18 -0
  234. package/src/proxy/ProxyBackend.d.ts +18 -0
  235. package/src/proxy/ProxyBackend.d.ts.map +1 -0
  236. package/src/proxy/ProxyBackend.js +1 -0
  237. package/src/proxy/ProxyConfig.d.ts +12 -0
  238. package/src/proxy/ProxyConfig.d.ts.map +1 -0
  239. package/src/proxy/ProxyConfig.js +1 -0
  240. package/src/proxy/ProxyRegistry.d.ts +10 -0
  241. package/src/proxy/ProxyRegistry.d.ts.map +1 -0
  242. package/src/proxy/ProxyRegistry.js +11 -0
  243. package/src/proxy/ProxyServer.d.ts +21 -0
  244. package/src/proxy/ProxyServer.d.ts.map +1 -0
  245. package/src/proxy/ProxyServer.js +84 -0
  246. package/src/proxy/ProxyServerUtils.d.ts +37 -0
  247. package/src/proxy/ProxyServerUtils.d.ts.map +1 -0
  248. package/src/proxy/ProxyServerUtils.js +42 -0
  249. package/src/proxy/ProxySigningConfigResolver.d.ts +22 -0
  250. package/src/proxy/ProxySigningConfigResolver.d.ts.map +1 -0
  251. package/src/proxy/ProxySigningConfigResolver.js +24 -0
  252. package/src/proxy/ProxySigningRequest.d.ts +12 -0
  253. package/src/proxy/ProxySigningRequest.d.ts.map +1 -0
  254. package/src/proxy/ProxySigningRequest.js +31 -0
  255. package/src/proxy/RequestValidator.d.ts +15 -0
  256. package/src/proxy/RequestValidator.d.ts.map +1 -0
  257. package/src/proxy/RequestValidator.js +25 -0
  258. package/src/proxy/SigningService.d.ts +39 -0
  259. package/src/proxy/SigningService.d.ts.map +1 -0
  260. package/src/proxy/SigningService.js +107 -0
  261. package/src/proxy/SqlPayloadValidator.d.ts +13 -0
  262. package/src/proxy/SqlPayloadValidator.d.ts.map +1 -0
  263. package/src/proxy/SqlPayloadValidator.js +14 -0
  264. package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -0
  265. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -0
  266. package/src/proxy/d1/ZintrustD1Proxy.js +1 -0
  267. package/src/proxy/d1/register.d.ts +2 -0
  268. package/src/proxy/d1/register.d.ts.map +1 -0
  269. package/src/proxy/d1/register.js +5 -0
  270. package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -0
  271. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -0
  272. package/src/proxy/kv/ZintrustKvProxy.js +1 -0
  273. package/src/proxy/kv/register.d.ts +2 -0
  274. package/src/proxy/kv/register.d.ts.map +1 -0
  275. package/src/proxy/kv/register.js +5 -0
  276. package/src/proxy/mongodb/MongoDBProxyServer.d.ts +33 -0
  277. package/src/proxy/mongodb/MongoDBProxyServer.d.ts.map +1 -0
  278. package/src/proxy/mongodb/MongoDBProxyServer.js +202 -0
  279. package/src/proxy/mongodb/register.d.ts +2 -0
  280. package/src/proxy/mongodb/register.d.ts.map +1 -0
  281. package/src/proxy/mongodb/register.js +5 -0
  282. package/src/proxy/mysql/MySqlProxyServer.d.ts +14 -0
  283. package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -0
  284. package/src/proxy/mysql/MySqlProxyServer.js +169 -0
  285. package/src/proxy/mysql/register.d.ts +2 -0
  286. package/src/proxy/mysql/register.d.ts.map +1 -0
  287. package/src/proxy/mysql/register.js +5 -0
  288. package/src/proxy/postgres/PostgresProxyServer.d.ts +14 -0
  289. package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -0
  290. package/src/proxy/postgres/PostgresProxyServer.js +140 -0
  291. package/src/proxy/postgres/register.d.ts +2 -0
  292. package/src/proxy/postgres/register.d.ts.map +1 -0
  293. package/src/proxy/postgres/register.js +5 -0
  294. package/src/proxy/redis/RedisProxyServer.d.ts +12 -0
  295. package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -0
  296. package/src/proxy/redis/RedisProxyServer.js +192 -0
  297. package/src/proxy/redis/register.d.ts +2 -0
  298. package/src/proxy/redis/register.d.ts.map +1 -0
  299. package/src/proxy/redis/register.js +5 -0
  300. package/src/proxy/smtp/SmtpProxyServer.d.ts +19 -0
  301. package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -0
  302. package/src/proxy/smtp/SmtpProxyServer.js +289 -0
  303. package/src/proxy/smtp/register.d.ts +2 -0
  304. package/src/proxy/smtp/register.d.ts.map +1 -0
  305. package/src/proxy/smtp/register.js +5 -0
  306. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +14 -0
  307. package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -0
  308. package/src/proxy/sqlserver/SqlServerProxyServer.js +168 -0
  309. package/src/proxy/sqlserver/register.d.ts +2 -0
  310. package/src/proxy/sqlserver/register.d.ts.map +1 -0
  311. package/src/proxy/sqlserver/register.js +5 -0
  312. package/src/routes/doc.d.ts.map +1 -1
  313. package/src/routes/doc.js +16 -2
  314. package/src/routes/error.d.ts +5 -4
  315. package/src/routes/error.d.ts.map +1 -1
  316. package/src/routes/error.js +15 -13
  317. package/src/routes/errorPages.d.ts +2 -0
  318. package/src/routes/errorPages.d.ts.map +1 -1
  319. package/src/routes/errorPages.js +144 -4
  320. package/src/runtime/PluginAutoImports.d.ts +1 -0
  321. package/src/runtime/PluginAutoImports.d.ts.map +1 -1
  322. package/src/runtime/PluginAutoImports.js +94 -9
  323. package/src/runtime/RuntimeAdapter.d.ts +8 -9
  324. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  325. package/src/runtime/RuntimeAdapter.js +120 -34
  326. package/src/runtime/RuntimeServices.d.ts +47 -0
  327. package/src/runtime/RuntimeServices.d.ts.map +1 -0
  328. package/src/runtime/RuntimeServices.js +164 -0
  329. package/src/runtime/StartupConfigFileRegistry.d.ts +4 -4
  330. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
  331. package/src/runtime/StartupConfigFileRegistry.js +12 -0
  332. package/src/runtime/WorkerAdapterImports.d.ts +5 -0
  333. package/src/runtime/WorkerAdapterImports.d.ts.map +1 -0
  334. package/src/runtime/WorkerAdapterImports.js +17 -0
  335. package/src/runtime/WorkersModule.d.ts +6 -0
  336. package/src/runtime/WorkersModule.d.ts.map +1 -0
  337. package/src/runtime/WorkersModule.js +278 -0
  338. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  339. package/src/runtime/adapters/CloudflareAdapter.js +19 -2
  340. package/src/runtime/adapters/DenoAdapter.js +1 -0
  341. package/src/runtime/adapters/FargateAdapter.js +1 -1
  342. package/src/runtime/adapters/LambdaAdapter.js +1 -1
  343. package/src/runtime/adapters/NodeServerAdapter.js +1 -1
  344. package/src/runtime/detectRuntime.d.ts +10 -0
  345. package/src/runtime/detectRuntime.d.ts.map +1 -0
  346. package/src/runtime/detectRuntime.js +57 -0
  347. package/src/runtime/useFileLoader.d.ts.map +1 -1
  348. package/src/runtime/useFileLoader.js +16 -0
  349. package/src/scripts/TemplateImportsCheck.js +2 -2
  350. package/src/scripts/TemplateSync.js +3 -4
  351. package/src/security/CsrfTokenManager.d.ts.map +1 -1
  352. package/src/security/CsrfTokenManager.js +12 -0
  353. package/src/security/Hash.d.ts +1 -1
  354. package/src/security/Hash.d.ts.map +1 -1
  355. package/src/security/Hash.js +31 -36
  356. package/src/seeders/SeederLoader.js +1 -1
  357. package/src/session/SessionManager.d.ts +3 -0
  358. package/src/session/SessionManager.d.ts.map +1 -1
  359. package/src/session/SessionManager.js +49 -10
  360. package/src/sockets/CloudflareSocket.d.ts +24 -0
  361. package/src/sockets/CloudflareSocket.d.ts.map +1 -0
  362. package/src/sockets/CloudflareSocket.js +259 -0
  363. package/src/start.d.ts.map +1 -1
  364. package/src/start.js +1 -8
  365. package/src/templates/project/basic/src/zintrust.plugins.wg.ts.tpl +8 -0
  366. package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
  367. package/src/tools/mail/drivers/Smtp.js +223 -18
  368. package/src/tools/mail/index.d.ts.map +1 -1
  369. package/src/tools/mail/index.js +5 -4
  370. package/src/tools/mail/template-loader.d.ts.map +1 -1
  371. package/src/tools/mail/template-loader.js +197 -29
  372. package/src/tools/mail/templates/auth-password-reset.d.ts +3 -0
  373. package/src/tools/mail/templates/auth-password-reset.d.ts.map +1 -0
  374. package/src/tools/mail/templates/auth-password-reset.js +231 -0
  375. package/src/tools/mail/templates/auth-welcome.d.ts +3 -0
  376. package/src/tools/mail/templates/auth-welcome.d.ts.map +1 -0
  377. package/src/tools/mail/templates/auth-welcome.js +236 -0
  378. package/src/tools/mail/templates/general.d.ts +3 -0
  379. package/src/tools/mail/templates/general.d.ts.map +1 -0
  380. package/src/tools/mail/templates/general.js +109 -0
  381. package/src/tools/mail/templates/index.js +2 -2
  382. package/src/tools/mail/templates/job-completed.d.ts +3 -0
  383. package/src/tools/mail/templates/job-completed.d.ts.map +1 -0
  384. package/src/tools/mail/templates/job-completed.js +188 -0
  385. package/src/tools/mail/templates/notifications-new-comment.d.ts +3 -0
  386. package/src/tools/mail/templates/notifications-new-comment.d.ts.map +1 -0
  387. package/src/tools/mail/templates/notifications-new-comment.js +228 -0
  388. package/src/tools/mail/templates/password-reset.d.ts +3 -0
  389. package/src/tools/mail/templates/password-reset.d.ts.map +1 -0
  390. package/src/tools/mail/templates/password-reset.js +221 -0
  391. package/src/tools/mail/templates/performance-report.d.ts +3 -0
  392. package/src/tools/mail/templates/performance-report.d.ts.map +1 -0
  393. package/src/tools/mail/templates/performance-report.js +258 -0
  394. package/src/tools/mail/templates/welcome.d.ts +3 -0
  395. package/src/tools/mail/templates/welcome.d.ts.map +1 -0
  396. package/src/tools/mail/templates/welcome.js +187 -0
  397. package/src/tools/mail/templates/worker-alert.d.ts +3 -0
  398. package/src/tools/mail/templates/worker-alert.d.ts.map +1 -0
  399. package/src/tools/mail/templates/worker-alert.js +229 -0
  400. package/src/tools/notification/Notification.js +1 -1
  401. package/src/tools/notification/testingHelpers.js +6 -5
  402. package/src/tools/queue/AdvancedQueue.js +2 -6
  403. package/src/tools/queue/IdempotencyManager.d.ts +6 -0
  404. package/src/tools/queue/IdempotencyManager.d.ts.map +1 -0
  405. package/src/tools/queue/IdempotencyManager.js +36 -0
  406. package/src/tools/queue/JobHeartbeatStore.d.ts +16 -0
  407. package/src/tools/queue/JobHeartbeatStore.d.ts.map +1 -0
  408. package/src/tools/queue/JobHeartbeatStore.js +67 -0
  409. package/src/tools/queue/JobReconciliationRunner.d.ts +16 -0
  410. package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -0
  411. package/src/tools/queue/JobReconciliationRunner.js +88 -0
  412. package/src/tools/queue/JobRecoveryDaemon.d.ts +27 -0
  413. package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -0
  414. package/src/tools/queue/JobRecoveryDaemon.js +205 -0
  415. package/src/tools/queue/JobStateTracker.d.ts +131 -0
  416. package/src/tools/queue/JobStateTracker.d.ts.map +1 -0
  417. package/src/tools/queue/JobStateTracker.js +387 -0
  418. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts +12 -0
  419. package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -0
  420. package/src/tools/queue/JobStateTrackerDbPersistence.js +148 -0
  421. package/src/tools/queue/Queue.d.ts.map +1 -1
  422. package/src/tools/queue/Queue.js +160 -16
  423. package/src/tools/queue/QueueDataRedactor.d.ts +6 -0
  424. package/src/tools/queue/QueueDataRedactor.d.ts.map +1 -0
  425. package/src/tools/queue/QueueDataRedactor.js +45 -0
  426. package/src/tools/queue/QueueExtensions.d.ts.map +1 -1
  427. package/src/tools/queue/QueueExtensions.js +2 -1
  428. package/src/tools/queue/QueueReliabilityMetrics.d.ts +38 -0
  429. package/src/tools/queue/QueueReliabilityMetrics.d.ts.map +1 -0
  430. package/src/tools/queue/QueueReliabilityMetrics.js +131 -0
  431. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts +7 -0
  432. package/src/tools/queue/QueueReliabilityOrchestrator.d.ts.map +1 -0
  433. package/src/tools/queue/QueueReliabilityOrchestrator.js +59 -0
  434. package/src/tools/queue/QueueRuntimeRegistration.d.ts +1 -9
  435. package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +1 -1
  436. package/src/tools/queue/QueueRuntimeRegistration.js +75 -4
  437. package/src/tools/queue/QueueTracing.d.ts +32 -0
  438. package/src/tools/queue/QueueTracing.d.ts.map +1 -0
  439. package/src/tools/queue/QueueTracing.js +151 -0
  440. package/src/tools/queue/StalledJobMonitor.d.ts +5 -0
  441. package/src/tools/queue/StalledJobMonitor.d.ts.map +1 -0
  442. package/src/tools/queue/StalledJobMonitor.js +21 -0
  443. package/src/tools/queue/TimeoutManager.d.ts +14 -0
  444. package/src/tools/queue/TimeoutManager.d.ts.map +1 -0
  445. package/src/tools/queue/TimeoutManager.js +77 -0
  446. package/src/tools/queue/drivers/Redis.d.ts +1 -0
  447. package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
  448. package/src/tools/queue/drivers/Redis.js +1 -0
  449. package/src/tools/queue/index.d.ts +10 -0
  450. package/src/tools/queue/index.d.ts.map +1 -1
  451. package/src/tools/queue/index.js +10 -0
  452. package/src/tools/storage/drivers/R2.d.ts +13 -0
  453. package/src/tools/storage/drivers/R2.d.ts.map +1 -1
  454. package/src/tools/storage/drivers/R2.js +29 -0
  455. package/src/zintrust.plugins.d.ts +9 -0
  456. package/src/zintrust.plugins.d.ts.map +1 -0
  457. package/src/zintrust.plugins.js +7 -0
  458. package/src/zintrust.plugins.wg.d.ts +9 -0
  459. package/src/zintrust.plugins.wg.d.ts.map +1 -0
  460. package/src/zintrust.plugins.wg.js +7 -0
@@ -0,0 +1,53 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
3
+ import { Env } from '../../config/env.js';
4
+ import { RedisProxyServer } from '../../proxy/redis/RedisProxyServer.js';
5
+ const addOptions = (command) => {
6
+ command.option('--host <host>', 'Host to bind', Env.get('REDIS_PROXY_HOST', '127.0.0.1'));
7
+ command.option('--port <port>', 'Port to bind', String(Env.getInt('REDIS_PROXY_PORT', 8791)));
8
+ command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(Env.getInt('REDIS_PROXY_MAX_BODY_BYTES', 131072)));
9
+ command.option('--watch', 'Auto-restart proxy on file changes');
10
+ command.option('--redis-host <host>', 'Redis host');
11
+ command.option('--redis-port <port>', 'Redis port');
12
+ command.option('--redis-password <password>', 'Redis password');
13
+ command.option('--redis-db <db>', 'Redis database');
14
+ command.option('--require-signing', 'Require signed requests', Env.REDIS_PROXY_REQUIRE_SIGNING);
15
+ command.option('--key-id <id>', 'Signing key id', Env.get('REDIS_PROXY_KEY_ID', ''));
16
+ command.option('--secret <secret>', 'Signing secret', Env.get('REDIS_PROXY_SECRET', ''));
17
+ command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(Env.getInt('REDIS_PROXY_SIGNING_WINDOW_MS', 60000)));
18
+ };
19
+ export const RedisProxyCommand = Object.freeze({
20
+ create() {
21
+ return BaseCommand.create({
22
+ name: 'proxy:redis',
23
+ aliases: ['redis:proxy', 'redis-proxy', 'proxy:red'],
24
+ description: 'Start the Redis HTTP proxy for Cloudflare Workers',
25
+ addOptions,
26
+ execute: async (options) => {
27
+ await maybeRunProxyWatchMode(options.watch);
28
+ const host = trimOption(options.host);
29
+ const port = parseIntOption(options.port, 'port');
30
+ const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
31
+ const redisHost = trimOption(options.redisHost);
32
+ const redisPort = parseIntOption(options.redisPort, 'redis-port', 'non-negative');
33
+ const redisPassword = options.redisPassword;
34
+ const redisDb = parseIntOption(options.redisDb, 'redis-db', 'non-negative');
35
+ const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
36
+ await RedisProxyServer.start({
37
+ host,
38
+ port,
39
+ maxBodyBytes,
40
+ redisHost,
41
+ redisPort,
42
+ redisPassword,
43
+ redisDb,
44
+ requireSigning: options.requireSigning === true,
45
+ keyId: options.keyId,
46
+ secret: options.secret,
47
+ signingWindowMs,
48
+ });
49
+ },
50
+ });
51
+ },
52
+ });
53
+ export default RedisProxyCommand;
@@ -0,0 +1,6 @@
1
+ import type { IBaseCommand } from '../BaseCommand';
2
+ export declare const SmtpProxyCommand: Readonly<{
3
+ create(): IBaseCommand;
4
+ }>;
5
+ export default SmtpProxyCommand;
6
+ //# sourceMappingURL=SmtpProxyCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmtpProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SmtpProxyCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyDrE,eAAO,MAAM,gBAAgB;cACjB,YAAY;EAsCtB,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { BaseCommand } from '../BaseCommand.js';
2
+ import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
3
+ import { Env } from '../../config/env.js';
4
+ import { SmtpProxyServer } from '../../proxy/smtp/SmtpProxyServer.js';
5
+ const addOptions = (command) => {
6
+ command.option('--host <host>', 'Host to bind', Env.get('SMTP_PROXY_HOST', '127.0.0.1'));
7
+ command.option('--port <port>', 'Port to bind', String(Env.getInt('SMTP_PROXY_PORT', 8794)));
8
+ command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(Env.getInt('SMTP_PROXY_MAX_BODY_BYTES', 131072)));
9
+ command.option('--watch', 'Auto-restart proxy on file changes');
10
+ command.option('--smtp-host <host>', 'SMTP host');
11
+ command.option('--smtp-port <port>', 'SMTP port');
12
+ command.option('--smtp-username <user>', 'SMTP username');
13
+ command.option('--smtp-password <password>', 'SMTP password');
14
+ command.option('--smtp-secure <mode>', "SMTP secure: true, false, or 'starttls'");
15
+ command.option('--require-signing', 'Require signed requests', Env.getBool('SMTP_PROXY_REQUIRE_SIGNING', true));
16
+ command.option('--key-id <id>', 'Signing key id', Env.get('SMTP_PROXY_KEY_ID', ''));
17
+ command.option('--secret <secret>', 'Signing secret', Env.get('SMTP_PROXY_SECRET', ''));
18
+ command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(Env.getInt('SMTP_PROXY_SIGNING_WINDOW_MS', 60000)));
19
+ };
20
+ export const SmtpProxyCommand = Object.freeze({
21
+ create() {
22
+ return BaseCommand.create({
23
+ name: 'proxy:smtp',
24
+ aliases: ['smtp:proxy', 'smtp-proxy', 'proxy:mail'],
25
+ description: 'Start the SMTP HTTP proxy for Cloudflare Workers',
26
+ addOptions,
27
+ execute: async (options) => {
28
+ await maybeRunProxyWatchMode(options.watch);
29
+ const host = trimOption(options.host);
30
+ const port = parseIntOption(options.port, 'port');
31
+ const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
32
+ const smtpHost = trimOption(options.smtpHost);
33
+ const smtpPort = parseIntOption(options.smtpPort, 'smtp-port');
34
+ const smtpUsername = trimOption(options.smtpUsername);
35
+ const smtpPassword = options.smtpPassword;
36
+ const smtpSecure = options.smtpSecure;
37
+ const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
38
+ await SmtpProxyServer.start({
39
+ host,
40
+ port,
41
+ maxBodyBytes,
42
+ smtpHost,
43
+ smtpPort,
44
+ smtpUsername,
45
+ smtpPassword,
46
+ smtpSecure,
47
+ requireSigning: options.requireSigning === true,
48
+ keyId: options.keyId,
49
+ secret: options.secret,
50
+ signingWindowMs,
51
+ });
52
+ },
53
+ });
54
+ },
55
+ });
56
+ export default SmtpProxyCommand;
@@ -0,0 +1,46 @@
1
+ import type { CommandOptions } from '../BaseCommand';
2
+ import type { Command } from 'commander';
3
+ export type SqlProxyCommandOptions = CommandOptions & {
4
+ host?: string;
5
+ port?: string;
6
+ maxBodyBytes?: string;
7
+ dbHost?: string;
8
+ dbPort?: string;
9
+ dbName?: string;
10
+ dbUser?: string;
11
+ dbPass?: string;
12
+ connectionLimit?: string;
13
+ requireSigning?: boolean;
14
+ keyId?: string;
15
+ secret?: string;
16
+ signingWindowMs?: string;
17
+ watch?: boolean;
18
+ };
19
+ export type ParsedSqlProxyStartOptions = {
20
+ host: string | undefined;
21
+ port: number | undefined;
22
+ maxBodyBytes: number | undefined;
23
+ dbHost: string | undefined;
24
+ dbPort: number | undefined;
25
+ dbName: string | undefined;
26
+ dbUser: string | undefined;
27
+ dbPass: string | undefined;
28
+ connectionLimit: number | undefined;
29
+ requireSigning: boolean;
30
+ keyId: string | undefined;
31
+ secret: string | undefined;
32
+ signingWindowMs: number | undefined;
33
+ };
34
+ export declare const addSqlProxyOptions: (command: Command, input: {
35
+ hostDefault: string;
36
+ portDefault: number;
37
+ maxBodyBytesDefault: number;
38
+ dbVendorLabel: string;
39
+ requireSigningDefault: boolean;
40
+ keyIdDefault: string;
41
+ secretDefault: string;
42
+ signingWindowMsDefault: number;
43
+ }) => void;
44
+ export declare const parseSqlProxyStartOptions: (options: SqlProxyCommandOptions) => ParsedSqlProxyStartOptions;
45
+ export declare const runSqlProxyCommand: (options: SqlProxyCommandOptions, start: (input: ReturnType<typeof parseSqlProxyStartOptions>) => Promise<void>) => Promise<void>;
46
+ //# sourceMappingURL=SqlProxyCommandUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlProxyCommandUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SqlProxyCommandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,OAAO;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC,KACA,IAyBF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,sBAAsB,KAC9B,0BA6BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,sBAAsB,EAC/B,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAC5E,OAAO,CAAC,IAAI,CAGd,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
2
+ export const addSqlProxyOptions = (command, input) => {
3
+ command.option('--host <host>', 'Host to bind', input.hostDefault);
4
+ command.option('--port <port>', 'Port to bind', String(input.portDefault));
5
+ command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(input.maxBodyBytesDefault));
6
+ command.option('--watch', 'Auto-restart proxy on file changes');
7
+ command.option('--db-host <host>', `${input.dbVendorLabel} host`);
8
+ command.option('--db-port <port>', `${input.dbVendorLabel} port`);
9
+ command.option('--db-name <name>', `${input.dbVendorLabel} database`);
10
+ command.option('--db-user <user>', `${input.dbVendorLabel} username`);
11
+ command.option('--db-pass <pass>', `${input.dbVendorLabel} password`);
12
+ command.option('--connection-limit <max>', `${input.dbVendorLabel} connection pool limit`);
13
+ command.option('--require-signing', 'Require signed requests', input.requireSigningDefault);
14
+ command.option('--key-id <id>', 'Signing key id', input.keyIdDefault);
15
+ command.option('--secret <secret>', 'Signing secret', input.secretDefault);
16
+ command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(input.signingWindowMsDefault));
17
+ };
18
+ export const parseSqlProxyStartOptions = (options) => {
19
+ const host = trimOption(options.host);
20
+ const port = parseIntOption(options.port, 'port');
21
+ const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
22
+ const dbHost = trimOption(options.dbHost);
23
+ const dbPort = parseIntOption(options.dbPort, 'db-port');
24
+ const dbName = trimOption(options.dbName);
25
+ const dbUser = trimOption(options.dbUser);
26
+ const dbPass = options.dbPass;
27
+ const connectionLimit = parseIntOption(options.connectionLimit, 'connection-limit');
28
+ const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
29
+ return {
30
+ host,
31
+ port,
32
+ maxBodyBytes,
33
+ dbHost,
34
+ dbPort,
35
+ dbName,
36
+ dbUser,
37
+ dbPass,
38
+ connectionLimit,
39
+ requireSigning: options.requireSigning === true,
40
+ keyId: options.keyId,
41
+ secret: options.secret,
42
+ signingWindowMs,
43
+ };
44
+ };
45
+ export const runSqlProxyCommand = async (options, start) => {
46
+ await maybeRunProxyWatchMode(options.watch);
47
+ await start(parseSqlProxyStartOptions(options));
48
+ };
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ export declare const SqlServerProxyCommand: Readonly<{
3
+ create(): Command;
4
+ }>;
5
+ //# sourceMappingURL=SqlServerProxyCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlServerProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SqlServerProxyCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,eAAO,MAAM,qBAAqB;cACtB,OAAO;EAsEjB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { Env } from '../../config/env.js';
2
+ import { Logger } from '../../config/logger.js';
3
+ import { Command } from 'commander';
4
+ const startWatchMode = async (options) => {
5
+ Logger.info('Starting SQL Server proxy in watch mode...');
6
+ const { watch } = await import('node:fs');
7
+ const { spawn } = await import('node:child_process');
8
+ let child = null;
9
+ const startProxy = () => {
10
+ if (child) {
11
+ child.kill();
12
+ }
13
+ const args = ['run', 'cli', 'proxy:sqlserver'];
14
+ Object.entries(options).forEach(([key, value]) => {
15
+ if (key !== 'watch' && value !== undefined) {
16
+ args.push(`--${key}`, String(value));
17
+ }
18
+ });
19
+ child = spawn('npm', args, { stdio: 'inherit' });
20
+ };
21
+ const watcher = watch('./src', { recursive: true }, (_eventType, filename) => {
22
+ if (filename !== null &&
23
+ filename.length > 0 &&
24
+ (filename.endsWith('.ts') || filename.endsWith('.js'))) {
25
+ Logger.info(`File changed: ${String(filename)}, restarting proxy...`);
26
+ startProxy();
27
+ }
28
+ });
29
+ startProxy();
30
+ process.on('SIGINT', () => {
31
+ watcher.close();
32
+ if (child)
33
+ child.kill();
34
+ process.exit(0);
35
+ });
36
+ };
37
+ export const SqlServerProxyCommand = Object.freeze({
38
+ create() {
39
+ const cmd = new Command('proxy:sqlserver');
40
+ cmd.description('Start SQL Server HTTP proxy server');
41
+ const configureOptions = () => {
42
+ cmd.option('--host <host>', 'Proxy host', Env.get('SQLSERVER_PROXY_HOST', '127.0.0.1'));
43
+ cmd.option('--port <port>', 'Proxy port', String(Env.getInt('SQLSERVER_PROXY_PORT', 8793)));
44
+ cmd.option('--db-host <host>', 'SQL Server host', Env.get('DB_HOST_MSSQL', '127.0.0.1'));
45
+ cmd.option('--db-port <port>', 'SQL Server port', String(Env.getInt('DB_PORT_MSSQL', 1433)));
46
+ cmd.option('--db-name <name>', 'Database name', Env.get('DB_DATABASE_MSSQL', 'zintrust'));
47
+ cmd.option('--db-user <user>', 'Database user', Env.get('DB_USERNAME_MSSQL', 'sa'));
48
+ cmd.option('--db-pass <pass>', 'Database password', Env.get('DB_PASSWORD_MSSQL', ''));
49
+ cmd.option('--connection-limit <limit>', 'Connection pool limit', String(Env.getInt('SQLSERVER_PROXY_POOL_LIMIT', 10)));
50
+ cmd.option('--key-id <keyId>', 'Signing key ID', Env.get('SQLSERVER_PROXY_KEY_ID', 'default'));
51
+ cmd.option('--secret <secret>', 'Signing secret', Env.get('SQLSERVER_PROXY_SECRET', ''));
52
+ cmd.option('--require-signing', 'Require request signing', Env.SQLSERVER_PROXY_REQUIRE_SIGNING);
53
+ cmd.option('--signing-window-ms <ms>', 'Signing window in milliseconds', String(Env.getInt('SQLSERVER_PROXY_SIGNING_WINDOW_MS', 60000)));
54
+ cmd.option('--watch', 'Watch mode: restart on file changes');
55
+ };
56
+ const buildServerConfig = (options) => ({
57
+ host: String(options['host']),
58
+ port: Number(options['port']),
59
+ dbHost: String(options['dbHost']),
60
+ dbPort: Number(options['dbPort']),
61
+ dbName: String(options['dbName']),
62
+ dbUser: String(options['dbUser']),
63
+ dbPass: String(options['dbPass']),
64
+ connectionLimit: Number(options['connectionLimit']),
65
+ keyId: String(options['keyId']),
66
+ secret: String(options['secret']),
67
+ requireSigning: Boolean(options['requireSigning']),
68
+ signingWindowMs: Number(options['signingWindowMs']),
69
+ });
70
+ const startNormalMode = async (options) => {
71
+ const { SqlServerProxyServer } = await import('../../proxy/sqlserver/SqlServerProxyServer.js');
72
+ await SqlServerProxyServer.start(buildServerConfig(options));
73
+ };
74
+ const execute = async (options) => {
75
+ if (options['watch'] === true) {
76
+ await startWatchMode(options);
77
+ return;
78
+ }
79
+ await startNormalMode(options);
80
+ };
81
+ configureOptions();
82
+ cmd.action(execute);
83
+ return cmd;
84
+ },
85
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAobvF,eAAO,MAAM,YAAY;cACb,YAAY;EAyBtB,CAAC"}
1
+ {"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqkBvF,eAAO,MAAM,YAAY;cACb,YAAY;EA0BtB,CAAC"}
@@ -1,23 +1,42 @@
1
1
  import { BaseCommand } from '../BaseCommand.js';
2
- import { DENO_RUNNER_SOURCE, LAMBDA_RUNNER_SOURCE } from '../commands/runner/index.js';
2
+ import { createDenoRunnerSource, createLambdaRunnerSource } from '../commands/runner/index.js';
3
3
  import { EnvFileLoader } from '../utils/EnvFileLoader.js';
4
4
  import { SpawnUtil } from '../utils/spawn.js';
5
5
  import { readEnvString } from '../../common/ExternalServiceUtils.js';
6
- import { resolveNpmPath } from '../../common/index.js';
6
+ import * as Common from '../../common/index.js';
7
7
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from '../../node-singletons/fs.js';
9
9
  import * as path from '../../node-singletons/path.js';
10
+ const resolveNpmPath = () => {
11
+ try {
12
+ return typeof Common.resolveNpmPath === 'function' ? Common.resolveNpmPath() : 'npm';
13
+ }
14
+ catch {
15
+ return 'npm';
16
+ }
17
+ };
18
+ const runFromSource = () => {
19
+ try {
20
+ return typeof Common.runFromSource === 'function' ? Common.runFromSource() : false;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ };
10
26
  const isValidModeInput = (value) => value === 'development' ||
11
27
  value === 'dev' ||
12
28
  value === 'production' ||
13
29
  value === 'pro' ||
14
30
  value === 'prod' ||
15
- value === 'testing';
31
+ value === 'testing' ||
32
+ value === 'split';
16
33
  const normalizeMode = (value) => {
17
34
  if (value === 'production' || value === 'pro' || value === 'prod')
18
35
  return 'production';
19
36
  if (value === 'testing')
20
37
  return 'testing';
38
+ if (value === 'split')
39
+ return 'split';
21
40
  return 'development';
22
41
  };
23
42
  const resolveModeFromAppMode = () => {
@@ -76,6 +95,28 @@ const resolveStartVariant = (options) => {
76
95
  return 'lambda';
77
96
  return 'node';
78
97
  };
98
+ const getMySqlProxyHint = () => {
99
+ const connection = readEnvString('DB_CONNECTION', '').toLowerCase();
100
+ if (connection !== 'mysql')
101
+ return null;
102
+ const proxyUrl = readEnvString('MYSQL_PROXY_URL', '').trim();
103
+ if (proxyUrl !== '')
104
+ return null;
105
+ const host = readEnvString('MYSQL_PROXY_HOST', '127.0.0.1').trim() || '127.0.0.1';
106
+ const port = readEnvString('MYSQL_PROXY_PORT', '8789').trim() || '8789';
107
+ return {
108
+ command: `zin proxy:mysql --host ${host} --port ${port}`,
109
+ url: `http://${host}:${port}`,
110
+ };
111
+ };
112
+ const logMySqlProxyHint = (cmd) => {
113
+ const hint = getMySqlProxyHint();
114
+ if (!hint)
115
+ return;
116
+ cmd.warn('MySQL proxy not configured for Cloudflare Workers. Start it in another terminal:');
117
+ cmd.warn(hint.command);
118
+ cmd.warn(`Then set MYSQL_PROXY_URL=${hint.url}`);
119
+ };
79
120
  const hasFlag = (flag) => process.argv.includes(flag);
80
121
  const resolveWatchPreference = (options, mode) => {
81
122
  const hasWatch = hasFlag('--watch');
@@ -134,6 +175,14 @@ const resolveBootstrapEntryTs = (cwd) => {
134
175
  return 'src/boot/bootstrap.ts';
135
176
  return undefined;
136
177
  };
178
+ const resolveRuntimeStartModuleSpecifier = (cwd) => {
179
+ const localStart = path.join(cwd, 'src/start.ts');
180
+ if (existsSync(localStart)) {
181
+ // Runner files are created under `<cwd>/tmp`, so `../src/start.ts` is stable.
182
+ return '../src/start.ts';
183
+ }
184
+ return '@zintrust/core/start';
185
+ };
137
186
  const resolveNodeDevCommand = (cwd, packageJson) => {
138
187
  if (isFrameworkRepo(packageJson)) {
139
188
  const bootstrap = resolveBootstrapEntryTs(cwd);
@@ -159,10 +208,8 @@ const resolveNodeDevCommand = (cwd, packageJson) => {
159
208
  };
160
209
  const resolveNodeProdCommand = (cwd) => {
161
210
  const compiledBoot = path.join(cwd, 'dist/src/boot/bootstrap.js');
162
- const runFromSourceEnv = process.env['ZINTRUST_RUN_FROM_SOURCE'] ?? '';
163
- const runFromSource = runFromSourceEnv === '1' || runFromSourceEnv.toLowerCase() === 'true';
164
211
  let compiled;
165
- if (existsSync(compiledBoot) && !runFromSource) {
212
+ if (existsSync(compiledBoot) && !runFromSource()) {
166
213
  compiled = 'dist/src/boot/bootstrap.js';
167
214
  }
168
215
  // If compiled app isn't available (or the env forces running from source),
@@ -180,7 +227,7 @@ const resolveNodeProdCommand = (cwd) => {
180
227
  }
181
228
  return { command: 'node', args: [compiled] };
182
229
  };
183
- const executeWranglerStart = async (cmd, cwd, port, runtime) => {
230
+ const executeWranglerStart = async (cmd, cwd, port, runtime, envName) => {
184
231
  if (runtime !== undefined) {
185
232
  throw ErrorFactory.createCliError('Error: --runtime is not supported with --wrangler (Wrangler controls Workers runtime).');
186
233
  }
@@ -196,8 +243,16 @@ const executeWranglerStart = async (cmd, cwd, port, runtime) => {
196
243
  if (typeof port === 'number') {
197
244
  wranglerArgs.push('--port', String(port));
198
245
  }
246
+ if (envName !== undefined && envName.trim() !== '') {
247
+ wranglerArgs.push('--env', envName.trim());
248
+ }
249
+ logMySqlProxyHint(cmd);
199
250
  cmd.info('Starting in Wrangler dev mode...');
200
- const exitCode = await SpawnUtil.spawnAndWait({ command: 'wrangler', args: wranglerArgs });
251
+ const exitCode = await SpawnUtil.spawnAndWait({
252
+ command: 'wrangler',
253
+ args: wranglerArgs,
254
+ env: process.env,
255
+ });
201
256
  process.exit(exitCode);
202
257
  };
203
258
  const ensureTmpRunnerFile = (cwd, filename, content) => {
@@ -224,13 +279,14 @@ const executeDenoStart = async (cmd, cwd, mode, watchEnabled, _port, runtime) =>
224
279
  if (mode === 'testing') {
225
280
  throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use development or production.');
226
281
  }
227
- const denoRunner = ensureTmpRunnerFile(cwd, 'zin-start-deno.ts', DENO_RUNNER_SOURCE);
282
+ const startModuleSpecifier = resolveRuntimeStartModuleSpecifier(cwd);
283
+ const denoRunner = ensureTmpRunnerFile(cwd, 'zin-start-deno.ts', createDenoRunnerSource(startModuleSpecifier));
228
284
  const args = [];
229
285
  if (mode === 'development' && watchEnabled)
230
286
  args.push('watch');
231
287
  args.push(denoRunner);
232
288
  cmd.info('Starting in Deno adapter mode...');
233
- const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args });
289
+ const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args, env: process.env });
234
290
  process.exit(exitCode);
235
291
  };
236
292
  const executeLambdaStart = async (cmd, cwd, mode, watchEnabled, _port, runtime) => {
@@ -240,16 +296,17 @@ const executeLambdaStart = async (cmd, cwd, mode, watchEnabled, _port, runtime)
240
296
  if (mode === 'testing') {
241
297
  throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use development or production.');
242
298
  }
243
- const lambdaRunner = ensureTmpRunnerFile(cwd, 'zin-start-lambda.ts', LAMBDA_RUNNER_SOURCE);
299
+ const startModuleSpecifier = resolveRuntimeStartModuleSpecifier(cwd);
300
+ const lambdaRunner = ensureTmpRunnerFile(cwd, 'zin-start-lambda.ts', createLambdaRunnerSource(startModuleSpecifier));
244
301
  const args = [];
245
302
  if (mode === 'development' && watchEnabled)
246
303
  args.push('watch');
247
304
  args.push(lambdaRunner);
248
305
  cmd.info('Starting in Lambda adapter mode...');
249
- const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args });
306
+ const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args, env: process.env });
250
307
  process.exit(exitCode);
251
308
  };
252
- const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
309
+ const executeNodeStart = async (cmd, cwd, mode, watchEnabled, _port) => {
253
310
  if (mode === 'testing') {
254
311
  throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use --force to override (not supported).');
255
312
  }
@@ -262,6 +319,7 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
262
319
  command: 'tsx',
263
320
  args,
264
321
  forwardSignals: false,
322
+ env: process.env,
265
323
  });
266
324
  process.exit(exitCode);
267
325
  }
@@ -272,6 +330,7 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
272
330
  command: dev.command,
273
331
  args: dev.args,
274
332
  forwardSignals: false,
333
+ env: process.env,
275
334
  });
276
335
  process.exit(exitCode);
277
336
  }
@@ -281,9 +340,56 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
281
340
  command: prod.command,
282
341
  args: prod.args,
283
342
  forwardSignals: false,
343
+ env: process.env,
284
344
  });
285
345
  process.exit(exitCode);
286
346
  };
347
+ const executeSplitStart = async (cmd, cwd, _options) => {
348
+ cmd.info('🚀 Starting in split mode (Producer + Consumer)...');
349
+ const packageJson = readPackageJson(cwd);
350
+ const webDev = resolveNodeDevCommand(cwd, packageJson);
351
+ // Producer Environment
352
+ const producerEnv = {
353
+ ...process.env,
354
+ WORKER_ENABLED: 'false',
355
+ QUEUE_ENABLED: 'true',
356
+ RUNTIME_MODE: 'node-server',
357
+ };
358
+ // Consumer Environment
359
+ const consumerEnv = {
360
+ ...process.env,
361
+ WORKER_ENABLED: 'true',
362
+ QUEUE_ENABLED: 'true',
363
+ RUNTIME_MODE: 'containers',
364
+ WORKER_AUTO_START: 'true',
365
+ // Prevent consumer from binding to the web port
366
+ APP_PORT: '0',
367
+ PORT: '0',
368
+ };
369
+ // Resolve Consumer Command (zintrust worker:start-all)
370
+ // We try to use tsx against the source bin if possible
371
+ const workerArgs = existsSync(path.join(cwd, 'bin/zin.ts'))
372
+ ? ['bin/zin.ts', 'worker:start-all']
373
+ : ['dist/bin/zin.js', 'worker:start-all'];
374
+ const workerCommand = existsSync(path.join(cwd, 'bin/zin.ts')) ? 'tsx' : 'node';
375
+ cmd.info('-------------------------------------------');
376
+ cmd.info('🔹 [Producer] Web Server starting...');
377
+ cmd.info('🔸 [Consumer] Worker Process starting...');
378
+ cmd.info('-------------------------------------------');
379
+ const pProducer = SpawnUtil.spawnAndWait({
380
+ command: webDev.command,
381
+ args: webDev.args,
382
+ env: producerEnv,
383
+ forwardSignals: true,
384
+ });
385
+ const pConsumer = SpawnUtil.spawnAndWait({
386
+ command: workerCommand,
387
+ args: workerArgs,
388
+ env: consumerEnv,
389
+ forwardSignals: true,
390
+ });
391
+ await Promise.all([pProducer, pConsumer]);
392
+ };
287
393
  const executeStart = async (options, cmd) => {
288
394
  const cwd = process.cwd();
289
395
  EnvFileLoader.ensureLoaded();
@@ -291,16 +397,24 @@ const executeStart = async (options, cmd) => {
291
397
  const port = resolvePort(options);
292
398
  const runtime = resolveRuntime(options);
293
399
  const variant = resolveStartVariant(options);
400
+ const envName = typeof options.env === 'string' ? options.env.trim() : '';
294
401
  let effectiveRuntime = runtime;
295
402
  if (variant === 'deno')
296
403
  effectiveRuntime = 'deno';
297
404
  if (variant === 'lambda')
298
405
  effectiveRuntime = 'lambda';
406
+ if (mode === 'split') {
407
+ await executeSplitStart(cmd, cwd, options);
408
+ return;
409
+ }
299
410
  EnvFileLoader.applyCliOverrides({ nodeEnv: mode, port, runtime: effectiveRuntime });
300
411
  if (variant === 'wrangler') {
301
- await executeWranglerStart(cmd, cwd, port, runtime);
412
+ await executeWranglerStart(cmd, cwd, port, runtime, envName === '' ? undefined : envName);
302
413
  return;
303
414
  }
415
+ if (envName !== '') {
416
+ throw ErrorFactory.createCliError('Error: --env is only supported with --wrangler/--wg.');
417
+ }
304
418
  const watchEnabled = resolveWatchPreference(options, mode);
305
419
  if (variant === 'deno') {
306
420
  await executeDenoStart(cmd, cwd, mode, watchEnabled, port, runtime);
@@ -310,22 +424,23 @@ const executeStart = async (options, cmd) => {
310
424
  await executeLambdaStart(cmd, cwd, mode, watchEnabled, port, runtime);
311
425
  return;
312
426
  }
313
- await executeNodeStart(cmd, cwd, mode, watchEnabled);
427
+ await executeNodeStart(cmd, cwd, mode, watchEnabled, port);
314
428
  };
315
429
  export const StartCommand = Object.freeze({
316
430
  create() {
317
431
  const addOptions = (command) => {
318
432
  command.alias('s');
319
433
  command
320
- .option('-w, --wrangler', 'Start with Wrangler dev mode (Cloudflare Workers)')
434
+ .option('--wrangler', 'Start with Wrangler dev mode (Cloudflare Workers)')
321
435
  .option('--wg', 'Alias for --wrangler')
322
436
  .option('--deno', 'Start a local server using the Deno runtime adapter')
323
437
  .option('--lambda', 'Start a local server using the AWS Lambda runtime adapter')
324
438
  .option('--watch', 'Force watch mode (Node only)')
325
439
  .option('--no-watch', 'Disable watch mode (Node only)')
326
440
  .option('--mode <development|production|testing>', 'Override app mode')
441
+ .option('--env <name>', 'Wrangler environment name (Wrangler mode only)')
327
442
  .option('--runtime <nodejs|cloudflare|lambda|deno|auto>', 'Set RUNTIME for spawned Node')
328
- .option('--port <number>', 'Override server port');
443
+ .option('-p, --port <number>', 'Override server port');
329
444
  };
330
445
  const cmd = BaseCommand.create({
331
446
  name: 'start',
@@ -10,6 +10,7 @@ export declare const WorkerCommands: {
10
10
  createWorkerListCommand: () => IBaseCommand;
11
11
  createWorkerStatusCommand: () => IBaseCommand;
12
12
  createWorkerStartCommand: () => IBaseCommand;
13
+ createWorkerStartAllCommand: () => IBaseCommand;
13
14
  createWorkerStopCommand: () => IBaseCommand;
14
15
  createWorkerRestartCommand: () => IBaseCommand;
15
16
  createWorkerSummaryCommand: () => IBaseCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAmWrD;;GAEG;AACH,eAAO,MAAM,cAAc;mCAjPS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;mCA+Bb,YAAY;sCAgCT,YAAY;sCAgCZ,YAAY;CA4DlD,CAAC"}
1
+ {"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2hBrD;;GAEG;AACH,eAAO,MAAM,cAAc;mCA/XS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;uCAkFT,YAAY;mCA0FhB,YAAY;sCAgCT,YAAY;sCAgCZ,YAAY;CA8DlD,CAAC"}