@zintrust/core 0.1.42 → 0.1.43

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 (365) hide show
  1. package/app/Controllers/AuthController.d.ts +10 -0
  2. package/app/Controllers/AuthController.d.ts.map +1 -0
  3. package/app/Controllers/AuthController.js +201 -0
  4. package/app/Controllers/UserController.d.ts +9 -0
  5. package/app/Controllers/UserController.d.ts.map +1 -0
  6. package/app/Controllers/UserController.js +8 -0
  7. package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
  8. package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
  9. package/app/Controllers/UserQueryBuilderController.js +404 -0
  10. package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
  11. package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
  12. package/app/Middleware/ProfilerMiddleware.js +47 -0
  13. package/app/Middleware/index.d.ts +59 -0
  14. package/app/Middleware/index.d.ts.map +1 -0
  15. package/app/Middleware/index.js +215 -0
  16. package/app/Models/Post.d.ts +14 -0
  17. package/app/Models/Post.d.ts.map +1 -0
  18. package/app/Models/Post.js +27 -0
  19. package/app/Models/User.d.ts +14 -0
  20. package/app/Models/User.d.ts.map +1 -0
  21. package/app/Models/User.js +44 -0
  22. package/app/Schedules/JobTracking.d.ts +3 -0
  23. package/app/Schedules/JobTracking.d.ts.map +1 -0
  24. package/app/Schedules/JobTracking.js +13 -0
  25. package/app/Schedules/index.d.ts +2 -0
  26. package/app/Schedules/index.d.ts.map +1 -0
  27. package/app/Schedules/index.js +1 -0
  28. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
  29. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
  30. package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
  31. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
  32. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
  33. package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
  34. package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
  35. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
  36. package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
  37. package/app/Toolkit/Notification/sendSms.d.ts +6 -0
  38. package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
  39. package/app/Toolkit/Notification/sendSms.js +5 -0
  40. package/app/Types/controller.d.ts +42 -0
  41. package/app/Types/controller.d.ts.map +1 -0
  42. package/app/Types/controller.js +1 -0
  43. package/config/broadcast.d.ts +38 -0
  44. package/config/broadcast.d.ts.map +1 -0
  45. package/config/broadcast.js +37 -0
  46. package/config/cache.d.ts +40 -0
  47. package/config/cache.d.ts.map +1 -0
  48. package/config/cache.js +39 -0
  49. package/config/database.d.ts +58 -0
  50. package/config/database.d.ts.map +1 -0
  51. package/config/database.js +65 -0
  52. package/config/mail.d.ts +51 -0
  53. package/config/mail.d.ts.map +1 -0
  54. package/config/mail.js +69 -0
  55. package/config/middleware.d.ts +11 -0
  56. package/config/middleware.d.ts.map +1 -0
  57. package/config/middleware.js +30 -0
  58. package/config/notification.d.ts +33 -0
  59. package/config/notification.d.ts.map +1 -0
  60. package/config/notification.js +33 -0
  61. package/config/queue.d.ts +55 -0
  62. package/config/queue.d.ts.map +1 -0
  63. package/config/queue.js +87 -0
  64. package/config/storage.d.ts +59 -0
  65. package/config/storage.d.ts.map +1 -0
  66. package/config/storage.js +59 -0
  67. package/config/workers.d.ts +54 -0
  68. package/config/workers.d.ts.map +1 -0
  69. package/config/workers.js +83 -0
  70. package/package.json +11 -5
  71. package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
  72. package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
  73. package/packages/cloudflare-d1-proxy/src/index.js +387 -0
  74. package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
  75. package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
  76. package/packages/cloudflare-kv-proxy/src/index.js +325 -0
  77. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
  78. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
  79. package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
  80. package/packages/queue-monitor/src/connection.d.ts +3 -0
  81. package/packages/queue-monitor/src/connection.d.ts.map +1 -0
  82. package/packages/queue-monitor/src/connection.js +1 -0
  83. package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
  84. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
  85. package/packages/queue-monitor/src/dashboard-ui.js +997 -0
  86. package/packages/queue-monitor/src/driver.d.ts +15 -0
  87. package/packages/queue-monitor/src/driver.d.ts.map +1 -0
  88. package/packages/queue-monitor/src/driver.js +115 -0
  89. package/packages/queue-monitor/src/index.d.ts +71 -0
  90. package/packages/queue-monitor/src/index.d.ts.map +1 -0
  91. package/packages/queue-monitor/src/index.js +296 -0
  92. package/packages/queue-monitor/src/metrics.d.ts +27 -0
  93. package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
  94. package/packages/queue-monitor/src/metrics.js +92 -0
  95. package/packages/queue-monitor/src/worker.d.ts +8 -0
  96. package/packages/queue-monitor/src/worker.d.ts.map +1 -0
  97. package/packages/queue-monitor/src/worker.js +35 -0
  98. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
  99. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
  100. package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
  101. package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
  102. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
  103. package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
  104. package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
  105. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
  106. package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
  107. package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
  108. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
  109. package/packages/queue-redis/src/RedisPublishClient.js +251 -0
  110. package/packages/queue-redis/src/index.d.ts +12 -0
  111. package/packages/queue-redis/src/index.d.ts.map +1 -0
  112. package/packages/queue-redis/src/index.js +10 -0
  113. package/packages/queue-redis/src/register.d.ts +6 -0
  114. package/packages/queue-redis/src/register.d.ts.map +1 -0
  115. package/packages/queue-redis/src/register.js +21 -0
  116. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
  117. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
  118. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
  119. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
  120. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
  121. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
  122. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
  123. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
  124. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
  125. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
  126. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
  127. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
  128. package/packages/workers/src/AnomalyDetection.d.ts +107 -0
  129. package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
  130. package/packages/workers/src/AnomalyDetection.js +329 -0
  131. package/packages/workers/src/AutoScaler.d.ts +128 -0
  132. package/packages/workers/src/AutoScaler.d.ts.map +1 -0
  133. package/packages/workers/src/AutoScaler.js +425 -0
  134. package/packages/workers/src/BroadcastWorker.d.ts +24 -0
  135. package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
  136. package/packages/workers/src/BroadcastWorker.js +24 -0
  137. package/packages/workers/src/CanaryController.d.ts +104 -0
  138. package/packages/workers/src/CanaryController.d.ts.map +1 -0
  139. package/packages/workers/src/CanaryController.js +424 -0
  140. package/packages/workers/src/ChaosEngineering.d.ts +80 -0
  141. package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
  142. package/packages/workers/src/ChaosEngineering.js +229 -0
  143. package/packages/workers/src/CircuitBreaker.d.ts +107 -0
  144. package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
  145. package/packages/workers/src/CircuitBreaker.js +374 -0
  146. package/packages/workers/src/ClusterLock.d.ts +91 -0
  147. package/packages/workers/src/ClusterLock.d.ts.map +1 -0
  148. package/packages/workers/src/ClusterLock.js +397 -0
  149. package/packages/workers/src/ComplianceManager.d.ts +178 -0
  150. package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
  151. package/packages/workers/src/ComplianceManager.js +556 -0
  152. package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
  153. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
  154. package/packages/workers/src/DatacenterOrchestrator.js +404 -0
  155. package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
  156. package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
  157. package/packages/workers/src/DeadLetterQueue.js +544 -0
  158. package/packages/workers/src/HealthMonitor.d.ts +43 -0
  159. package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
  160. package/packages/workers/src/HealthMonitor.js +312 -0
  161. package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
  162. package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
  163. package/packages/workers/src/MultiQueueWorker.js +282 -0
  164. package/packages/workers/src/NotificationWorker.d.ts +24 -0
  165. package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
  166. package/packages/workers/src/NotificationWorker.js +23 -0
  167. package/packages/workers/src/Observability.d.ts +154 -0
  168. package/packages/workers/src/Observability.d.ts.map +1 -0
  169. package/packages/workers/src/Observability.js +538 -0
  170. package/packages/workers/src/PluginManager.d.ts +124 -0
  171. package/packages/workers/src/PluginManager.d.ts.map +1 -0
  172. package/packages/workers/src/PluginManager.js +392 -0
  173. package/packages/workers/src/PriorityQueue.d.ts +118 -0
  174. package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
  175. package/packages/workers/src/PriorityQueue.js +276 -0
  176. package/packages/workers/src/ResourceMonitor.d.ts +165 -0
  177. package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
  178. package/packages/workers/src/ResourceMonitor.js +632 -0
  179. package/packages/workers/src/SLAMonitor.d.ts +111 -0
  180. package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
  181. package/packages/workers/src/SLAMonitor.js +274 -0
  182. package/packages/workers/src/WorkerFactory.d.ts +218 -0
  183. package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
  184. package/packages/workers/src/WorkerFactory.js +2253 -0
  185. package/packages/workers/src/WorkerInit.d.ts +86 -0
  186. package/packages/workers/src/WorkerInit.d.ts.map +1 -0
  187. package/packages/workers/src/WorkerInit.js +307 -0
  188. package/packages/workers/src/WorkerMetrics.d.ts +116 -0
  189. package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
  190. package/packages/workers/src/WorkerMetrics.js +570 -0
  191. package/packages/workers/src/WorkerRegistry.d.ts +152 -0
  192. package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
  193. package/packages/workers/src/WorkerRegistry.js +396 -0
  194. package/packages/workers/src/WorkerShutdown.d.ts +70 -0
  195. package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
  196. package/packages/workers/src/WorkerShutdown.js +185 -0
  197. package/packages/workers/src/WorkerVersioning.d.ts +108 -0
  198. package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
  199. package/packages/workers/src/WorkerVersioning.js +300 -0
  200. package/packages/workers/src/config/workerConfig.d.ts +5 -0
  201. package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
  202. package/packages/workers/src/config/workerConfig.js +25 -0
  203. package/packages/workers/src/createQueueWorker.d.ts +26 -0
  204. package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
  205. package/packages/workers/src/createQueueWorker.js +367 -0
  206. package/packages/workers/src/dashboard/index.d.ts +2 -0
  207. package/packages/workers/src/dashboard/index.d.ts.map +1 -0
  208. package/packages/workers/src/dashboard/index.js +1 -0
  209. package/packages/workers/src/dashboard/types.d.ts +123 -0
  210. package/packages/workers/src/dashboard/types.d.ts.map +1 -0
  211. package/packages/workers/src/dashboard/types.js +1 -0
  212. package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
  213. package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
  214. package/packages/workers/src/dashboard/workers-api.js +738 -0
  215. package/packages/workers/src/helper/index.d.ts +6 -0
  216. package/packages/workers/src/helper/index.d.ts.map +1 -0
  217. package/packages/workers/src/helper/index.js +10 -0
  218. package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
  219. package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
  220. package/packages/workers/src/http/WorkerApiController.js +313 -0
  221. package/packages/workers/src/http/WorkerController.d.ts +375 -0
  222. package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
  223. package/packages/workers/src/http/WorkerController.js +1454 -0
  224. package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
  225. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
  226. package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
  227. package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
  228. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
  229. package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
  230. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
  231. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
  232. package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
  233. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
  234. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
  235. package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
  236. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
  237. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
  238. package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
  239. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
  240. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
  241. package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
  242. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
  243. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
  244. package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
  245. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
  246. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
  247. package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
  248. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
  249. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
  250. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
  251. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
  252. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
  253. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
  254. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
  255. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
  256. package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
  257. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
  258. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
  259. package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
  260. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
  261. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
  262. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
  263. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
  264. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
  265. package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
  266. package/packages/workers/src/index.d.ts +47 -0
  267. package/packages/workers/src/index.d.ts.map +1 -0
  268. package/packages/workers/src/index.js +48 -0
  269. package/packages/workers/src/routes/workers.d.ts +13 -0
  270. package/packages/workers/src/routes/workers.d.ts.map +1 -0
  271. package/packages/workers/src/routes/workers.js +126 -0
  272. package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
  273. package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
  274. package/packages/workers/src/storage/WorkerStore.js +259 -0
  275. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
  276. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
  277. package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
  278. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
  279. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
  280. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
  281. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
  282. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
  283. package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
  284. package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
  285. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
  286. package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
  287. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
  288. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
  289. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
  290. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
  291. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
  292. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
  293. package/packages/workers/src/telemetry/index.d.ts +16 -0
  294. package/packages/workers/src/telemetry/index.d.ts.map +1 -0
  295. package/packages/workers/src/telemetry/index.js +60 -0
  296. package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
  297. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
  298. package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
  299. package/packages/workers/src/type.d.ts +77 -0
  300. package/packages/workers/src/type.d.ts.map +1 -0
  301. package/packages/workers/src/type.js +1 -0
  302. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
  303. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
  304. package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
  305. package/packages/workers/src/ui/router/ui.d.ts +4 -0
  306. package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
  307. package/packages/workers/src/ui/router/ui.js +208 -0
  308. package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
  309. package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
  310. package/packages/workers/src/ui/types/worker-ui.js +5 -0
  311. package/routes/api.d.ts +7 -0
  312. package/routes/api.d.ts.map +1 -0
  313. package/routes/api.js +129 -0
  314. package/routes/broadcast.d.ts +9 -0
  315. package/routes/broadcast.d.ts.map +1 -0
  316. package/routes/broadcast.js +27 -0
  317. package/routes/storage.d.ts +4 -0
  318. package/routes/storage.d.ts.map +1 -0
  319. package/routes/storage.js +35 -0
  320. package/src/cache/Cache.d.ts.map +1 -1
  321. package/src/cache/Cache.js +40 -8
  322. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  323. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  324. package/src/cache/drivers/KVRemoteDriver.js +259 -44
  325. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  326. package/src/cache/drivers/MemoryDriver.js +10 -2
  327. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  328. package/src/cache/drivers/RedisDriver.js +256 -33
  329. package/src/cli/commands/InitContainerCommand.js +10 -10
  330. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  331. package/src/cli/commands/NewCommand.js +33 -0
  332. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  333. package/src/cli/commands/StartCommand.js +23 -1
  334. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  335. package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
  336. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  337. package/src/cli/utils/DistPackager.js +25 -0
  338. package/src/cli/utils/EnvFileLoader.d.ts +1 -0
  339. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  340. package/src/cli/utils/EnvFileLoader.js +14 -0
  341. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  342. package/src/common/RemoteSignedJson.js +9 -2
  343. package/src/config/cache.js +1 -1
  344. package/src/config/env.d.ts +7 -0
  345. package/src/config/env.d.ts.map +1 -1
  346. package/src/config/env.js +8 -0
  347. package/src/config/queue.js +1 -1
  348. package/src/functions/cloudflare.d.ts.map +1 -1
  349. package/src/functions/cloudflare.js +4 -2
  350. package/src/index.js +3 -3
  351. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  352. package/src/middleware/JwtAuthMiddleware.js +11 -5
  353. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  354. package/src/runtime/RuntimeAdapter.js +30 -12
  355. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  356. package/src/runtime/adapters/CloudflareAdapter.js +15 -4
  357. package/src/scheduler/Schedule.js +1 -1
  358. package/src/scheduler/leader/SchedulerLeader.js +1 -1
  359. package/src/schedules/job-tracking-cleanup.js +1 -1
  360. package/src/security/TokenRevocation.d.ts +19 -2
  361. package/src/security/TokenRevocation.d.ts.map +1 -1
  362. package/src/security/TokenRevocation.js +558 -30
  363. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
  364. package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
  365. package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
@@ -0,0 +1,608 @@
1
+ import { renderAlertPanel } from '../components/AlertPanel.js';
2
+ import { renderCostTracking } from '../components/CostTracking.js';
3
+ import { renderResourceUsageChart } from '../components/ResourceUsageChart.js';
4
+ import { renderWorkerHealthChart } from '../components/WorkerHealthChart.js';
5
+ const getDashboardColorStyles = () => `
6
+ :root {
7
+ --bg: #0b1220;
8
+ --card: rgba(15, 23, 42, 0.75);
9
+ --border: rgba(148, 163, 184, 0.2);
10
+ --text: #f1f5f9;
11
+ --muted: #94a3b8;
12
+ --accent: #38bdf8;
13
+ --accent-strong: #0ea5e9;
14
+ --success: #6ee7b7;
15
+ --warn: #fbbf24;
16
+ --danger: #fecaca;
17
+ --danger-strong: #ef4444;
18
+ }
19
+ html[data-theme="light"] {
20
+ --bg: #f8fafc;
21
+ --card: #ffffff;
22
+ --border: #e2e8f0;
23
+ --text: #0f172a;
24
+ --muted: #475569;
25
+ --accent: #0284c7;
26
+ --accent-strong: #0369a1;
27
+ --success: #16a34a;
28
+ --warn: #d97706;
29
+ --danger: #dc2626;
30
+ --danger-strong: #dc2626;
31
+ }
32
+ body {
33
+ margin: 0;
34
+ font-family: 'Inter', ui-sans-serif, system-ui;
35
+ background: var(--bg);
36
+ color: var(--text);
37
+ }
38
+ `;
39
+ const getDashboardLayoutStyles = () => `
40
+ .zt-page { min-height: 100vh; padding: 32px 24px; }
41
+ .zt-container { max-width: 72rem; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
42
+ .zt-header { display: flex; flex-direction: column; gap: 16px; }
43
+ .zt-brand { display: flex; align-items: center; gap: 16px; }
44
+ .zt-brand-icon {
45
+ height: 34px;
46
+ width: 34px;
47
+ border-radius: 9px;
48
+ border: 1px solid rgba(14, 165, 233, 0.35);
49
+ background: linear-gradient(180deg, rgba(14, 165, 233, 0.18), rgba(2, 132, 199, 0.1));
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ }
54
+ .zt-kicker { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
55
+ .zt-title { font-size: 1.5rem; font-weight: 600; color: var(--text); margin: 0; }
56
+ .zt-subtitle { font-size: 0.875rem; color: var(--muted); margin: 0.25rem 0 0; }
57
+ .zt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 0.75rem; color: var(--muted); }
58
+ .zt-nav { display: flex; flex-wrap: wrap; gap: 8px; }
59
+ .zt-nav-link {
60
+ border: 1px solid var(--border);
61
+ color: var(--text);
62
+ text-decoration: none;
63
+ padding: 0.4rem 0.75rem;
64
+ border-radius: 0.6rem;
65
+ font-size: 0.75rem;
66
+ font-weight: 600;
67
+ transition: border-color 0.2s ease, color 0.2s ease;
68
+ }
69
+ .zt-nav-link:hover { border-color: var(--accent); color: var(--accent); }
70
+ #last-updated { min-width: 9rem; font-variant-numeric: tabular-nums; }
71
+ .zt-button {
72
+ border: 1px solid var(--border);
73
+ background: var(--card);
74
+ color: var(--text);
75
+ padding: 0.5rem 1rem;
76
+ border-radius: 0.75rem;
77
+ font-size: 0.875rem;
78
+ font-weight: 600;
79
+ cursor: pointer;
80
+ transition: border-color 0.2s ease, color 0.2s ease;
81
+ }
82
+ .zt-button:hover { border-color: var(--accent); color: var(--accent); }
83
+ .zt-alert {
84
+ border: 1px solid rgba(239, 68, 68, 0.3);
85
+ background: rgba(239, 68, 68, 0.1);
86
+ color: var(--danger);
87
+ padding: 0.75rem 1rem;
88
+ border-radius: 1rem;
89
+ font-size: 0.875rem;
90
+ }
91
+ .hidden { display: none; }
92
+ .zt-grid { display: grid; gap: 16px; }
93
+ .zt-grid-3 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
94
+ .zt-card { background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.25rem; }
95
+ .zt-card-header { display: flex; align-items: center; justify-content: space-between; }
96
+ .zt-card-title { font-size: 0.875rem; font-weight: 600; color: var(--text); margin: 0; }
97
+ .zt-card-meta { font-size: 0.75rem; color: var(--muted); }
98
+ .zt-card-value { margin-top: 0.75rem; font-size: 1.875rem; font-weight: 600; }
99
+ .zt-card-subvalue { margin-top: 0.35rem; font-size: 0.875rem; color: var(--muted); }
100
+ .zt-card-body { margin-top: 1rem; }
101
+ .zt-chart { margin-top: 1rem; height: 10rem; width: 100%; }
102
+ .zt-cost-value { font-size: 1.875rem; font-weight: 600; color: var(--success); margin: 0; }
103
+ .zt-alert-list { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.75rem; font-size: 0.875rem; color: var(--text); }
104
+ .zt-alert-item { border-radius: 0.75rem; border: 1px solid var(--border); background: rgba(15, 23, 42, 0.6); padding: 0.5rem 0.75rem; }
105
+ html[data-theme="light"] .zt-alert-item { background: #f8fafc; }
106
+ .zt-text-emerald { color: var(--success); }
107
+ .zt-text-amber { color: var(--warn); }
108
+ `;
109
+ const getDashboardResponsiveStyles = () => `
110
+ @media (min-width: 640px) {
111
+ .zt-header { flex-direction: row; align-items: center; justify-content: space-between; }
112
+ }
113
+ @media (min-width: 768px) {
114
+ .zt-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
115
+ }
116
+ `;
117
+ const getDashboardStyles = () => `
118
+ <style>
119
+ ${getDashboardColorStyles()}
120
+ ${getDashboardLayoutStyles()}
121
+ ${getDashboardResponsiveStyles()}
122
+ </style>`;
123
+ const getLogo = () => `
124
+ <svg width="26" height="26" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
125
+ <defs>
126
+ <linearGradient id="zt-telemetry" x1="10" y1="50" x2="90" y2="50" gradientUnits="userSpaceOnUse">
127
+ <stop stop-color="#22c55e" />
128
+ <stop offset="1" stop-color="#38bdf8" />
129
+ </linearGradient>
130
+ </defs>
131
+ <circle cx="50" cy="50" r="34" stroke="rgba(255,255,255,0.16)" stroke-width="4" />
132
+ <ellipse cx="50" cy="50" rx="40" ry="18" stroke="url(#zt-telemetry)" stroke-width="4" />
133
+ <ellipse cx="50" cy="50" rx="18" ry="40" stroke="url(#zt-telemetry)" stroke-width="4" opacity="0.75" />
134
+ <circle cx="50" cy="50" r="6" fill="url(#zt-telemetry)" />
135
+ <path d="M40 52C35 52 32 49 32 44C32 39 35 36 40 36H48" stroke="white" stroke-width="6" stroke-linecap="round" />
136
+ <path d="M60 48C65 48 68 51 68 56C68 61 65 64 60 64H52" stroke="white" stroke-width="6" stroke-linecap="round" />
137
+ <path d="M44 50H56" stroke="rgba(255,255,255,0.22)" stroke-width="6" stroke-linecap="round" />
138
+ </svg>`;
139
+ const getDashboardHead = () => `
140
+ <head>
141
+ <meta charset="UTF-8" />
142
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
143
+ <title>ZinTrust Telemetry Dashboard</title>
144
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
145
+ ${getDashboardStyles()}
146
+ </head>`;
147
+ const getDashboardHeader = () => `
148
+ <header class="zt-header">
149
+ <div class="zt-brand">
150
+ <div class="zt-brand-icon">
151
+ ${getLogo()}
152
+ </div>
153
+ <div>
154
+ <p class="zt-kicker">ZinTrust</p>
155
+ <h1 class="zt-title">Telemetry Dashboard</h1>
156
+ <p class="zt-subtitle">Unified view of worker health and performance</p>
157
+ </div>
158
+ </div>
159
+ <div class="zt-actions">
160
+ <span id="last-updated"></span>
161
+ <nav class="zt-nav">
162
+ <a class="zt-nav-link" href="/queue-monitor/">Queue monitor</a>
163
+ <a class="zt-nav-link" href="/workers">Workers</a>
164
+ <a class="zt-nav-link" href="/metrics">Metrics</a>
165
+ </nav>
166
+ <button id="refresh-btn" class="zt-button">Refresh</button>
167
+ <button id="auto-refresh-btn" class="zt-button">Pause auto refresh</button>
168
+ <button id="theme-toggle" class="zt-button" aria-label="Toggle theme">Light mode</button>
169
+ </div>
170
+ </header>`;
171
+ const getDashboardStats = () => `
172
+ <section class="zt-grid zt-grid-3">
173
+ <div class="zt-card">
174
+ <p class="zt-kicker">Total Workers</p>
175
+ <p id="total-workers" class="zt-card-value">0</p>
176
+ </div>
177
+ <div class="zt-card">
178
+ <p class="zt-kicker">Healthy</p>
179
+ <p id="healthy-workers" class="zt-card-value zt-text-emerald">0</p>
180
+ </div>
181
+ <div class="zt-card">
182
+ <p class="zt-kicker">Needs Attention</p>
183
+ <p id="attention-workers" class="zt-card-value zt-text-amber">0</p>
184
+ </div>
185
+ <div class="zt-card">
186
+ <p class="zt-kicker">CPU (System / Process)</p>
187
+ <p id="system-cpu" class="zt-card-value">0%</p>
188
+ <p id="process-cpu" class="zt-card-subvalue">Process: 0% (0 ms)</p>
189
+ </div>
190
+ </section>`;
191
+ const getDashboardCharts = () => `
192
+ <section class="zt-grid zt-grid-3">
193
+ ${renderWorkerHealthChart()}
194
+ ${renderResourceUsageChart()}
195
+ ${renderCostTracking()}
196
+ </section>
197
+
198
+ ${renderAlertPanel()}`;
199
+ const getDashboardBody = () => `
200
+ <div class="zt-page">
201
+ <div class="zt-container">
202
+ ${getDashboardHeader()}
203
+
204
+ <section id="error" class="hidden zt-alert"></section>
205
+
206
+ ${getDashboardStats()}
207
+
208
+ ${getDashboardCharts()}
209
+ </div>
210
+ </div>`;
211
+ const getDashboardScriptHelpers = () => `
212
+ const formatPercent = (value) => {
213
+ if (!Number.isFinite(value)) return '0%';
214
+ return value.toFixed(1) + '%';
215
+ };
216
+
217
+ const formatMs = (value) => {
218
+ if (!Number.isFinite(value)) return '0 ms';
219
+ return Math.max(0, Math.round(value)) + ' ms';
220
+ };
221
+
222
+ const getProcessCpuPercent = (cpuUsage, timestamp, cores) => {
223
+ if (!cpuUsage || !timestamp || !cores) return { percent: 0, deltaMs: 0 };
224
+
225
+ const currentTotal = (cpuUsage.user || 0) + (cpuUsage.system || 0);
226
+ const currentTs = Number.isFinite(timestamp) ? timestamp : Date.parse(timestamp);
227
+
228
+ if (!Number.isFinite(currentTs)) {
229
+ return { percent: 0, deltaMs: 0 };
230
+ }
231
+
232
+ if (!lastProcessCpu || !Number.isFinite(lastProcessTs)) {
233
+ lastProcessCpu = currentTotal;
234
+ lastProcessTs = currentTs;
235
+ return { percent: 0, deltaMs: 0 };
236
+ }
237
+
238
+ const deltaUsage = currentTotal - lastProcessCpu;
239
+ const deltaMs = Math.max(0, currentTs - lastProcessTs);
240
+ const normalized = deltaMs > 0 ? (deltaUsage / 1000) / (deltaMs * Math.max(1, cores)) : 0;
241
+ const percent = Math.max(0, Math.min(100, normalized * 100));
242
+
243
+ lastProcessCpu = currentTotal;
244
+ lastProcessTs = currentTs;
245
+
246
+ return { percent, deltaMs: deltaUsage / 1000 };
247
+ };
248
+
249
+ const readStorage = (key) => {
250
+ try {
251
+ return localStorage.getItem(key);
252
+ } catch (error) {
253
+ return null;
254
+ }
255
+ };
256
+
257
+ const writeStorage = (key, value) => {
258
+ try {
259
+ localStorage.setItem(key, value);
260
+ } catch (error) {
261
+ return;
262
+ }
263
+ };
264
+
265
+ const setAutoLabel = () => {
266
+ autoBtn.textContent = autoRefresh ? 'Pause auto refresh' : 'Resume auto refresh';
267
+ };
268
+
269
+ const applyTheme = (theme) => {
270
+ currentTheme = theme;
271
+ document.documentElement.setAttribute('data-theme', theme);
272
+ themeBtn.textContent = theme === 'dark' ? 'Light mode' : 'Dark mode';
273
+ writeStorage(STORAGE_KEYS.theme, theme);
274
+ };
275
+ `;
276
+ const getDashboardScriptState = (options) => {
277
+ // Ensure basePath is a valid string with explicit fallback
278
+ let basePath;
279
+ if (options && typeof options.basePath === 'string' && options.basePath.length > 0) {
280
+ basePath = options.basePath;
281
+ }
282
+ else {
283
+ basePath = '/telemetry';
284
+ }
285
+ // Strip trailing slashes safely
286
+ if (basePath && typeof basePath === 'string') {
287
+ while (basePath.endsWith('/')) {
288
+ basePath = basePath.slice(0, -1);
289
+ }
290
+ }
291
+ // Ensure values are safe for template interpolation
292
+ const autoRefresh = options && typeof options.autoRefresh === 'boolean' ? options.autoRefresh : false;
293
+ const refreshInterval = options &&
294
+ typeof options.refreshIntervalMs === 'number' &&
295
+ Number.isFinite(options.refreshIntervalMs)
296
+ ? Math.max(1000, Math.floor(options.refreshIntervalMs))
297
+ : 10000;
298
+ return `
299
+ const API_BASE = '${basePath}';
300
+ const AUTO_REFRESH = ${autoRefresh ? 'true' : 'false'};
301
+ const REFRESH_INTERVAL = ${refreshInterval};
302
+ const STORAGE_KEYS = {
303
+ autoRefresh: 'zintrust.telemetry.autoRefresh',
304
+ theme: 'zintrust.telemetry.theme',
305
+ };
306
+
307
+ const errorEl = document.getElementById('error');
308
+ const totalEl = document.getElementById('total-workers');
309
+ const healthyEl = document.getElementById('healthy-workers');
310
+ const attentionEl = document.getElementById('attention-workers');
311
+ const systemCpuEl = document.getElementById('system-cpu');
312
+ const processCpuEl = document.getElementById('process-cpu');
313
+ const costEl = document.getElementById('costTotal');
314
+ const refreshBtn = document.getElementById('refresh-btn');
315
+ const autoBtn = document.getElementById('auto-refresh-btn');
316
+ const themeBtn = document.getElementById('theme-toggle');
317
+ const lastUpdated = document.getElementById('last-updated');
318
+
319
+ let autoRefresh = AUTO_REFRESH;
320
+ let autoTimer = null;
321
+ let currentTheme = 'dark';
322
+ let eventSource = null;
323
+ let sseActive = false;
324
+ let lastProcessCpu = null;
325
+ let lastProcessTs = null;
326
+
327
+ ${getDashboardScriptHelpers()}
328
+ `;
329
+ };
330
+ const getDashboardScriptCharts = () => `
331
+ const setError = (message) => {
332
+ if (!message) {
333
+ errorEl.classList.add('hidden');
334
+ errorEl.textContent = '';
335
+ return;
336
+ }
337
+ errorEl.classList.remove('hidden');
338
+ errorEl.textContent = message;
339
+ };
340
+
341
+ const buildHealthChart = (labels, values) => {
342
+ const ctx = document.getElementById('workerHealthChart');
343
+ if (!ctx || !window.Chart) return;
344
+ return new window.Chart(ctx, {
345
+ type: 'line',
346
+ data: {
347
+ labels,
348
+ datasets: [{
349
+ data: values,
350
+ borderColor: '#38bdf8',
351
+ backgroundColor: 'rgba(56, 189, 248, 0.2)',
352
+ tension: 0.4,
353
+ fill: true,
354
+ }],
355
+ },
356
+ options: { plugins: { legend: { display: false } }, scales: { y: { beginAtZero: true } } },
357
+ });
358
+ };
359
+
360
+ const buildResourceChart = (labels, values) => {
361
+ const ctx = document.getElementById('resourceUsageChart');
362
+ if (!ctx || !window.Chart) return;
363
+ return new window.Chart(ctx, {
364
+ type: 'bar',
365
+ data: {
366
+ labels,
367
+ datasets: [{
368
+ data: values,
369
+ backgroundColor: ['#22c55e', '#38bdf8', '#f97316'],
370
+ borderRadius: 12,
371
+ }],
372
+ },
373
+ options: { plugins: { legend: { display: false } }, scales: { y: { beginAtZero: true } } },
374
+ });
375
+ };
376
+
377
+ let healthChart = null;
378
+ let resourceChart = null;
379
+
380
+ const updateCharts = (summary, resources) => {
381
+ const monitoring = summary?.monitoring || { total: 0, healthy: 0, degraded: 0, critical: 0, details: [] };
382
+ const labels = ['Healthy', 'Degraded', 'Critical'];
383
+ const values = [monitoring.healthy || 0, monitoring.degraded || 0, monitoring.critical || 0];
384
+
385
+ if (healthChart) healthChart.destroy();
386
+ healthChart = buildHealthChart(labels, values);
387
+
388
+ const resourceLabels = ['CPU', 'Memory', 'Network'];
389
+ const cpu = resources?.resourceSnapshot?.cpu?.usage || 0;
390
+ const memory = resources?.resourceSnapshot?.memory?.usage || 0;
391
+ const network = resources?.resourceSnapshot?.network?.received || 0;
392
+ const resourceValues = [cpu, memory, Math.min(100, (network / 1024 / 1024) || 0)];
393
+
394
+ if (resourceChart) resourceChart.destroy();
395
+ resourceChart = buildResourceChart(resourceLabels, resourceValues);
396
+ };
397
+ `;
398
+ const getDashboardScriptApplySnapshot = () => `
399
+ const applySnapshot = (payload) => {
400
+ const summary = payload.summary || {};
401
+ const total = summary.workers || 0;
402
+ const monitoring = summary.monitoring || { total: 0, healthy: 0, degraded: 0, critical: 0, details: [] };
403
+ const healthyCount = monitoring.healthy || 0;
404
+ const attentionCount = (monitoring.degraded || 0) + (monitoring.critical || 0);
405
+ const resources = payload.resources || {};
406
+ const snapshot = resources.resourceSnapshot || {};
407
+ const cpuSnapshot = snapshot.cpu || {};
408
+ const processSnapshot = snapshot.process || {};
409
+
410
+ totalEl.textContent = total;
411
+ healthyEl.textContent = healthyCount;
412
+ attentionEl.textContent = attentionCount;
413
+ if (systemCpuEl) {
414
+ systemCpuEl.textContent = formatPercent(cpuSnapshot.usage || 0);
415
+ }
416
+ if (processCpuEl) {
417
+ const processMetrics = getProcessCpuPercent(
418
+ processSnapshot.cpuUsage,
419
+ snapshot.timestamp,
420
+ cpuSnapshot.cores || 1
421
+ );
422
+ processCpuEl.textContent =
423
+ 'Process: ' + formatPercent(processMetrics.percent) + ' (' + formatMs(processMetrics.deltaMs) + ')';
424
+ }
425
+ if (costEl && payload.resources?.cost) {
426
+ const cost = payload.resources.cost;
427
+ costEl.textContent = '$' + cost.hourly?.toFixed(4) + '/hr';
428
+ }
429
+
430
+ updateAlerts(summary.alerts || []);
431
+ updateCharts(summary, resources);
432
+ lastUpdated.textContent = 'Updated ' + new Date().toLocaleTimeString();
433
+ };
434
+ `;
435
+ const getDashboardScriptUpdateAlerts = () => `
436
+ const updateAlerts = (alerts) => {
437
+ console.log('Alerts found:', alerts.length, alerts); // Debug logging
438
+ const alertList = document.getElementById('alertList');
439
+ if (alertList) {
440
+ if (alerts.length === 0) {
441
+ alertList.innerHTML = '<li class="zt-alert-item">No alerts yet.</li>';
442
+ } else {
443
+ alertList.innerHTML = alerts.map(alert => {
444
+ // Handle both nested alert structure and direct alert structure
445
+ const alertData = alert.alert || alert;
446
+ console.log('Processing alert:', alertData); // Debug logging
447
+
448
+ const severity = alertData.severity || 'info';
449
+ const severityColor =
450
+ severity === 'critical' ? 'var(--danger)' :
451
+ severity === 'warning' ? 'var(--warn)' :
452
+ severity === 'info' ? 'var(--accent)' : 'var(--text)';
453
+
454
+ return '<li class="zt-alert-item">' +
455
+ '<div style="display: flex; justify-content: space-between; align-items: center;">' +
456
+ '<span style="font-weight: 600; color: ' + severityColor + '">' +
457
+ (alertData.message || 'Unknown alert') + '</span>' +
458
+ '<span style="font-size: 0.75rem; opacity: 0.7;">' +
459
+ (alertData.timestamp ? new Date(alertData.timestamp).toLocaleTimeString() : 'No timestamp') + '</span>' +
460
+ '</div>' +
461
+ (alertData.recommendation ? '<div style="font-size: 0.8rem; margin-top: 0.25rem; opacity: 0.8;">' + alertData.recommendation + '</div>' : '') +
462
+ '</li>';
463
+ }).join('');
464
+ }
465
+ }
466
+ };
467
+ `;
468
+ const getDashboardScriptFetch = () => `
469
+ const fetchSummary = async () => {
470
+ setError('');
471
+ try {
472
+ const response = await fetch(API_BASE + '/api/summary');
473
+ if (!response.ok) throw new Error('Failed to load telemetry summary');
474
+ const payload = await response.json();
475
+ applySnapshot(payload);
476
+ } catch (error) {
477
+ setError(error.message || 'Failed to load telemetry data');
478
+ }
479
+ };
480
+
481
+ const connectSse = () => {
482
+ if (!globalThis.window.EventSource) return false;
483
+
484
+ if (eventSource) {
485
+ eventSource.close();
486
+ eventSource = null;
487
+ }
488
+
489
+ eventSource = new globalThis.window.EventSource(API_BASE + '/api/events');
490
+
491
+ eventSource.onopen = () => {
492
+ sseActive = true;
493
+ if (autoTimer) {
494
+ clearInterval(autoTimer);
495
+ autoTimer = null;
496
+ }
497
+ };
498
+
499
+ eventSource.onmessage = (evt) => {
500
+ try {
501
+ const payload = JSON.parse(evt.data);
502
+ if (payload && payload.type === 'snapshot') {
503
+ applySnapshot(payload);
504
+ }
505
+ } catch (err) {
506
+ console.error('Failed to parse SSE payload', err);
507
+ }
508
+ };
509
+
510
+ eventSource.onerror = () => {
511
+ if (eventSource) {
512
+ eventSource.close();
513
+ eventSource = null;
514
+ }
515
+ sseActive = false;
516
+ // HTTP fallback disabled - 100% SSE reliance
517
+ // if (autoRefresh && !autoTimer) {
518
+ // autoTimer = setInterval(fetchSummary, REFRESH_INTERVAL);
519
+ // }
520
+ console.log('SSE connection lost - please refresh page to reconnect');
521
+ };
522
+
523
+ return true;
524
+ };
525
+ `;
526
+ const getDashboardScriptControls = () => `
527
+ refreshBtn.addEventListener('click', () => {
528
+ console.log('Manual refresh - SSE only mode');
529
+ // SSE handles all updates, no HTTP fallback
530
+ if (!sseActive) {
531
+ connectSse();
532
+ }
533
+ });
534
+ autoBtn.addEventListener('click', () => {
535
+ autoRefresh = !autoRefresh;
536
+ setAutoLabel();
537
+ writeStorage(STORAGE_KEYS.autoRefresh, String(autoRefresh));
538
+ if (!autoRefresh) {
539
+ if (autoTimer) {
540
+ clearInterval(autoTimer);
541
+ autoTimer = null;
542
+ }
543
+ if (eventSource) {
544
+ eventSource.close();
545
+ eventSource = null;
546
+ sseActive = false;
547
+ }
548
+ return;
549
+ }
550
+
551
+ if (!connectSse()) {
552
+ // HTTP fallback disabled - 100% SSE reliance
553
+ // autoTimer = setInterval(fetchSummary, REFRESH_INTERVAL);
554
+ console.log('SSE connection failed - please check server');
555
+ }
556
+ });
557
+
558
+ themeBtn.addEventListener('click', () => {
559
+ const nextTheme = currentTheme === 'dark' ? 'light' : 'dark';
560
+ applyTheme(nextTheme);
561
+ });
562
+ `;
563
+ const getDashboardScriptBootstrap = () => `
564
+ const storedAuto = readStorage(STORAGE_KEYS.autoRefresh);
565
+ if (storedAuto !== null) {
566
+ autoRefresh = storedAuto === 'true';
567
+ }
568
+ setAutoLabel();
569
+
570
+ const storedTheme = readStorage(STORAGE_KEYS.theme);
571
+ const initialTheme = storedTheme === 'light' || storedTheme === 'dark' ? storedTheme : 'dark';
572
+ applyTheme(initialTheme);
573
+
574
+ if (autoRefresh) {
575
+ if (!connectSse()) {
576
+ // HTTP fallback disabled - 100% SSE reliance
577
+ // autoTimer = setInterval(fetchSummary, REFRESH_INTERVAL);
578
+ console.log('SSE connection failed - please check server');
579
+ }
580
+ }
581
+
582
+ // Initial data load via SSE only - no HTTP fallback
583
+ // fetchSummary(); // Disabled - SSE handles initial data
584
+
585
+ window.addEventListener('beforeunload', () => {
586
+ if (eventSource) {
587
+ eventSource.close();
588
+ }
589
+ });
590
+ `;
591
+ const getDashboardScript = (options) => `
592
+ <script>
593
+ ${getDashboardScriptState(options)}
594
+ ${getDashboardScriptCharts()}
595
+ ${getDashboardScriptApplySnapshot()}
596
+ ${getDashboardScriptUpdateAlerts()}
597
+ ${getDashboardScriptFetch()}
598
+ ${getDashboardScriptControls()}
599
+ ${getDashboardScriptBootstrap()}
600
+ </script>`;
601
+ export const getDashboardHtml = (options) => `<!DOCTYPE html>
602
+ <html lang="en">
603
+ ${getDashboardHead()}
604
+ <body>
605
+ ${getDashboardBody()}
606
+ ${getDashboardScript(options)}
607
+ </body>
608
+ </html>`;
@@ -0,0 +1,77 @@
1
+ export interface WorkerType {
2
+ name: string;
3
+ queueName: string;
4
+ processor: string;
5
+ version: string;
6
+ options: Options;
7
+ infrastructure: Infrastructure;
8
+ features: Features;
9
+ datacenter: Datacenter;
10
+ }
11
+ export interface Options {
12
+ concurrency: number;
13
+ limiter: Limiter;
14
+ }
15
+ export interface Limiter {
16
+ max: number;
17
+ duration: number;
18
+ }
19
+ export interface Infrastructure {
20
+ persistence: Persistence;
21
+ redis: Redis;
22
+ deadLetterQueue: DeadLetterQueue;
23
+ compliance: Compliance;
24
+ observability: Observability;
25
+ autoScaler: AutoScaler;
26
+ }
27
+ export interface Persistence {
28
+ driver: string;
29
+ }
30
+ export interface Redis {
31
+ env: boolean;
32
+ host: string;
33
+ port: string;
34
+ db: string;
35
+ password: string;
36
+ }
37
+ export interface DeadLetterQueue {
38
+ policy: string;
39
+ }
40
+ export interface Compliance {
41
+ config: Config;
42
+ }
43
+ export interface Config {
44
+ retentionDays: number;
45
+ }
46
+ export interface Observability {
47
+ enabled: boolean;
48
+ }
49
+ export interface AutoScaler {
50
+ enabled: boolean;
51
+ minWorkers: number;
52
+ maxWorkers: number;
53
+ }
54
+ export interface Features {
55
+ clustering: boolean;
56
+ metrics: boolean;
57
+ autoScaling: boolean;
58
+ circuitBreaker: boolean;
59
+ deadLetterQueue: boolean;
60
+ resourceMonitoring: boolean;
61
+ compliance: boolean;
62
+ observability: boolean;
63
+ plugins: boolean;
64
+ versioning: boolean;
65
+ datacenterOrchestration: boolean;
66
+ }
67
+ export interface Datacenter {
68
+ primaryRegion: string;
69
+ secondaryRegions: string[];
70
+ affinityRules: AffinityRules;
71
+ }
72
+ export interface AffinityRules {
73
+ preferLocal: boolean;
74
+ maxLatency: number;
75
+ avoidRegions: string[];
76
+ }
77
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
@@ -0,0 +1 @@
1
+ export {};