@zintrust/core 0.1.42 → 0.1.44

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 (381) hide show
  1. package/README.md +1 -0
  2. package/app/Controllers/AuthController.d.ts +10 -0
  3. package/app/Controllers/AuthController.d.ts.map +1 -0
  4. package/app/Controllers/AuthController.js +201 -0
  5. package/app/Controllers/UserController.d.ts +9 -0
  6. package/app/Controllers/UserController.d.ts.map +1 -0
  7. package/app/Controllers/UserController.js +8 -0
  8. package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
  9. package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
  10. package/app/Controllers/UserQueryBuilderController.js +404 -0
  11. package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
  12. package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
  13. package/app/Middleware/ProfilerMiddleware.js +47 -0
  14. package/app/Middleware/index.d.ts +59 -0
  15. package/app/Middleware/index.d.ts.map +1 -0
  16. package/app/Middleware/index.js +215 -0
  17. package/app/Models/Post.d.ts +14 -0
  18. package/app/Models/Post.d.ts.map +1 -0
  19. package/app/Models/Post.js +27 -0
  20. package/app/Models/User.d.ts +14 -0
  21. package/app/Models/User.d.ts.map +1 -0
  22. package/app/Models/User.js +44 -0
  23. package/app/Schedules/JobTracking.d.ts +3 -0
  24. package/app/Schedules/JobTracking.d.ts.map +1 -0
  25. package/app/Schedules/JobTracking.js +13 -0
  26. package/app/Schedules/index.d.ts +2 -0
  27. package/app/Schedules/index.d.ts.map +1 -0
  28. package/app/Schedules/index.js +1 -0
  29. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
  30. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
  31. package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
  32. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
  33. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
  34. package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
  35. package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
  36. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
  37. package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
  38. package/app/Toolkit/Notification/sendSms.d.ts +6 -0
  39. package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
  40. package/app/Toolkit/Notification/sendSms.js +5 -0
  41. package/app/Types/controller.d.ts +42 -0
  42. package/app/Types/controller.d.ts.map +1 -0
  43. package/app/Types/controller.js +1 -0
  44. package/config/broadcast.d.ts +38 -0
  45. package/config/broadcast.d.ts.map +1 -0
  46. package/config/broadcast.js +37 -0
  47. package/config/cache.d.ts +40 -0
  48. package/config/cache.d.ts.map +1 -0
  49. package/config/cache.js +39 -0
  50. package/config/database.d.ts +58 -0
  51. package/config/database.d.ts.map +1 -0
  52. package/config/database.js +65 -0
  53. package/config/mail.d.ts +51 -0
  54. package/config/mail.d.ts.map +1 -0
  55. package/config/mail.js +69 -0
  56. package/config/middleware.d.ts +11 -0
  57. package/config/middleware.d.ts.map +1 -0
  58. package/config/middleware.js +30 -0
  59. package/config/notification.d.ts +33 -0
  60. package/config/notification.d.ts.map +1 -0
  61. package/config/notification.js +33 -0
  62. package/config/queue.d.ts +55 -0
  63. package/config/queue.d.ts.map +1 -0
  64. package/config/queue.js +87 -0
  65. package/config/storage.d.ts +59 -0
  66. package/config/storage.d.ts.map +1 -0
  67. package/config/storage.js +59 -0
  68. package/config/workers.d.ts +54 -0
  69. package/config/workers.d.ts.map +1 -0
  70. package/config/workers.js +83 -0
  71. package/package.json +12 -5
  72. package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
  73. package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
  74. package/packages/cloudflare-d1-proxy/src/index.js +387 -0
  75. package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
  76. package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
  77. package/packages/cloudflare-kv-proxy/src/index.js +325 -0
  78. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
  79. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
  80. package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
  81. package/packages/queue-monitor/src/connection.d.ts +3 -0
  82. package/packages/queue-monitor/src/connection.d.ts.map +1 -0
  83. package/packages/queue-monitor/src/connection.js +1 -0
  84. package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
  85. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
  86. package/packages/queue-monitor/src/dashboard-ui.js +997 -0
  87. package/packages/queue-monitor/src/driver.d.ts +15 -0
  88. package/packages/queue-monitor/src/driver.d.ts.map +1 -0
  89. package/packages/queue-monitor/src/driver.js +115 -0
  90. package/packages/queue-monitor/src/index.d.ts +71 -0
  91. package/packages/queue-monitor/src/index.d.ts.map +1 -0
  92. package/packages/queue-monitor/src/index.js +296 -0
  93. package/packages/queue-monitor/src/metrics.d.ts +27 -0
  94. package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
  95. package/packages/queue-monitor/src/metrics.js +92 -0
  96. package/packages/queue-monitor/src/worker.d.ts +8 -0
  97. package/packages/queue-monitor/src/worker.d.ts.map +1 -0
  98. package/packages/queue-monitor/src/worker.js +35 -0
  99. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
  100. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
  101. package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
  102. package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
  103. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
  104. package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
  105. package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
  106. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
  107. package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
  108. package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
  109. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
  110. package/packages/queue-redis/src/RedisPublishClient.js +251 -0
  111. package/packages/queue-redis/src/index.d.ts +12 -0
  112. package/packages/queue-redis/src/index.d.ts.map +1 -0
  113. package/packages/queue-redis/src/index.js +10 -0
  114. package/packages/queue-redis/src/register.d.ts +6 -0
  115. package/packages/queue-redis/src/register.d.ts.map +1 -0
  116. package/packages/queue-redis/src/register.js +21 -0
  117. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
  118. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
  119. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
  120. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
  121. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
  122. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
  123. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
  124. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
  125. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
  126. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
  127. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
  128. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
  129. package/packages/workers/src/AnomalyDetection.d.ts +107 -0
  130. package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
  131. package/packages/workers/src/AnomalyDetection.js +329 -0
  132. package/packages/workers/src/AutoScaler.d.ts +128 -0
  133. package/packages/workers/src/AutoScaler.d.ts.map +1 -0
  134. package/packages/workers/src/AutoScaler.js +425 -0
  135. package/packages/workers/src/BroadcastWorker.d.ts +24 -0
  136. package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
  137. package/packages/workers/src/BroadcastWorker.js +24 -0
  138. package/packages/workers/src/CanaryController.d.ts +104 -0
  139. package/packages/workers/src/CanaryController.d.ts.map +1 -0
  140. package/packages/workers/src/CanaryController.js +424 -0
  141. package/packages/workers/src/ChaosEngineering.d.ts +80 -0
  142. package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
  143. package/packages/workers/src/ChaosEngineering.js +229 -0
  144. package/packages/workers/src/CircuitBreaker.d.ts +107 -0
  145. package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
  146. package/packages/workers/src/CircuitBreaker.js +374 -0
  147. package/packages/workers/src/ClusterLock.d.ts +91 -0
  148. package/packages/workers/src/ClusterLock.d.ts.map +1 -0
  149. package/packages/workers/src/ClusterLock.js +397 -0
  150. package/packages/workers/src/ComplianceManager.d.ts +178 -0
  151. package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
  152. package/packages/workers/src/ComplianceManager.js +556 -0
  153. package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
  154. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
  155. package/packages/workers/src/DatacenterOrchestrator.js +404 -0
  156. package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
  157. package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
  158. package/packages/workers/src/DeadLetterQueue.js +544 -0
  159. package/packages/workers/src/HealthMonitor.d.ts +43 -0
  160. package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
  161. package/packages/workers/src/HealthMonitor.js +312 -0
  162. package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
  163. package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
  164. package/packages/workers/src/MultiQueueWorker.js +282 -0
  165. package/packages/workers/src/NotificationWorker.d.ts +24 -0
  166. package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
  167. package/packages/workers/src/NotificationWorker.js +23 -0
  168. package/packages/workers/src/Observability.d.ts +154 -0
  169. package/packages/workers/src/Observability.d.ts.map +1 -0
  170. package/packages/workers/src/Observability.js +538 -0
  171. package/packages/workers/src/PluginManager.d.ts +124 -0
  172. package/packages/workers/src/PluginManager.d.ts.map +1 -0
  173. package/packages/workers/src/PluginManager.js +392 -0
  174. package/packages/workers/src/PriorityQueue.d.ts +118 -0
  175. package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
  176. package/packages/workers/src/PriorityQueue.js +276 -0
  177. package/packages/workers/src/ResourceMonitor.d.ts +165 -0
  178. package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
  179. package/packages/workers/src/ResourceMonitor.js +632 -0
  180. package/packages/workers/src/SLAMonitor.d.ts +111 -0
  181. package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
  182. package/packages/workers/src/SLAMonitor.js +274 -0
  183. package/packages/workers/src/WorkerFactory.d.ts +218 -0
  184. package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
  185. package/packages/workers/src/WorkerFactory.js +2253 -0
  186. package/packages/workers/src/WorkerInit.d.ts +86 -0
  187. package/packages/workers/src/WorkerInit.d.ts.map +1 -0
  188. package/packages/workers/src/WorkerInit.js +307 -0
  189. package/packages/workers/src/WorkerMetrics.d.ts +116 -0
  190. package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
  191. package/packages/workers/src/WorkerMetrics.js +570 -0
  192. package/packages/workers/src/WorkerRegistry.d.ts +152 -0
  193. package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
  194. package/packages/workers/src/WorkerRegistry.js +396 -0
  195. package/packages/workers/src/WorkerShutdown.d.ts +70 -0
  196. package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
  197. package/packages/workers/src/WorkerShutdown.js +185 -0
  198. package/packages/workers/src/WorkerVersioning.d.ts +108 -0
  199. package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
  200. package/packages/workers/src/WorkerVersioning.js +300 -0
  201. package/packages/workers/src/config/workerConfig.d.ts +5 -0
  202. package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
  203. package/packages/workers/src/config/workerConfig.js +25 -0
  204. package/packages/workers/src/createQueueWorker.d.ts +26 -0
  205. package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
  206. package/packages/workers/src/createQueueWorker.js +367 -0
  207. package/packages/workers/src/dashboard/index.d.ts +2 -0
  208. package/packages/workers/src/dashboard/index.d.ts.map +1 -0
  209. package/packages/workers/src/dashboard/index.js +1 -0
  210. package/packages/workers/src/dashboard/types.d.ts +123 -0
  211. package/packages/workers/src/dashboard/types.d.ts.map +1 -0
  212. package/packages/workers/src/dashboard/types.js +1 -0
  213. package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
  214. package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
  215. package/packages/workers/src/dashboard/workers-api.js +738 -0
  216. package/packages/workers/src/helper/index.d.ts +6 -0
  217. package/packages/workers/src/helper/index.d.ts.map +1 -0
  218. package/packages/workers/src/helper/index.js +10 -0
  219. package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
  220. package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
  221. package/packages/workers/src/http/WorkerApiController.js +313 -0
  222. package/packages/workers/src/http/WorkerController.d.ts +375 -0
  223. package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
  224. package/packages/workers/src/http/WorkerController.js +1454 -0
  225. package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
  226. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
  227. package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
  228. package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
  229. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
  230. package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
  231. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
  232. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
  233. package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
  234. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
  235. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
  236. package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
  237. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
  238. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
  239. package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
  240. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
  241. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
  242. package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
  243. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
  244. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
  245. package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
  246. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
  247. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
  248. package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
  249. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
  250. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
  251. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
  252. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
  253. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
  254. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
  255. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
  256. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
  257. package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
  258. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
  259. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
  260. package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
  261. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
  262. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
  263. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
  264. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
  265. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
  266. package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
  267. package/packages/workers/src/index.d.ts +47 -0
  268. package/packages/workers/src/index.d.ts.map +1 -0
  269. package/packages/workers/src/index.js +48 -0
  270. package/packages/workers/src/routes/workers.d.ts +13 -0
  271. package/packages/workers/src/routes/workers.d.ts.map +1 -0
  272. package/packages/workers/src/routes/workers.js +126 -0
  273. package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
  274. package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
  275. package/packages/workers/src/storage/WorkerStore.js +259 -0
  276. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
  277. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
  278. package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
  279. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
  280. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
  281. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
  282. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
  283. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
  284. package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
  285. package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
  286. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
  287. package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
  288. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
  289. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
  290. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
  291. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
  292. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
  293. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
  294. package/packages/workers/src/telemetry/index.d.ts +16 -0
  295. package/packages/workers/src/telemetry/index.d.ts.map +1 -0
  296. package/packages/workers/src/telemetry/index.js +60 -0
  297. package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
  298. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
  299. package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
  300. package/packages/workers/src/type.d.ts +77 -0
  301. package/packages/workers/src/type.d.ts.map +1 -0
  302. package/packages/workers/src/type.js +1 -0
  303. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
  304. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
  305. package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
  306. package/packages/workers/src/ui/router/ui.d.ts +4 -0
  307. package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
  308. package/packages/workers/src/ui/router/ui.js +208 -0
  309. package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
  310. package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
  311. package/packages/workers/src/ui/types/worker-ui.js +5 -0
  312. package/routes/api.d.ts +7 -0
  313. package/routes/api.d.ts.map +1 -0
  314. package/routes/api.js +129 -0
  315. package/routes/broadcast.d.ts +9 -0
  316. package/routes/broadcast.d.ts.map +1 -0
  317. package/routes/broadcast.js +27 -0
  318. package/routes/storage.d.ts +4 -0
  319. package/routes/storage.d.ts.map +1 -0
  320. package/routes/storage.js +35 -0
  321. package/src/cache/Cache.d.ts.map +1 -1
  322. package/src/cache/Cache.js +40 -8
  323. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  324. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  325. package/src/cache/drivers/KVRemoteDriver.js +259 -44
  326. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  327. package/src/cache/drivers/MemoryDriver.js +10 -2
  328. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  329. package/src/cache/drivers/RedisDriver.js +256 -33
  330. package/src/cli/CLI.d.ts.map +1 -1
  331. package/src/cli/CLI.js +6 -0
  332. package/src/cli/commands/DeployCommand.d.ts.map +1 -1
  333. package/src/cli/commands/DeployCommand.js +12 -1
  334. package/src/cli/commands/DeployContainersProxyCommand.d.ts +5 -0
  335. package/src/cli/commands/DeployContainersProxyCommand.d.ts.map +1 -0
  336. package/src/cli/commands/DeployContainersProxyCommand.js +45 -0
  337. package/src/cli/commands/DockerCommand.d.ts +5 -0
  338. package/src/cli/commands/DockerCommand.d.ts.map +1 -0
  339. package/src/cli/commands/DockerCommand.js +74 -0
  340. package/src/cli/commands/InitContainerCommand.js +10 -10
  341. package/src/cli/commands/InitContainersProxyCommand.d.ts +5 -0
  342. package/src/cli/commands/InitContainersProxyCommand.d.ts.map +1 -0
  343. package/src/cli/commands/InitContainersProxyCommand.js +159 -0
  344. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  345. package/src/cli/commands/NewCommand.js +33 -0
  346. package/src/cli/commands/PutCommand.d.ts.map +1 -1
  347. package/src/cli/commands/PutCommand.js +15 -5
  348. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  349. package/src/cli/commands/StartCommand.js +43 -4
  350. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  351. package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
  352. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  353. package/src/cli/utils/DistPackager.js +25 -0
  354. package/src/cli/utils/EnvFileLoader.d.ts +1 -0
  355. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  356. package/src/cli/utils/EnvFileLoader.js +14 -0
  357. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  358. package/src/common/RemoteSignedJson.js +9 -2
  359. package/src/config/cache.js +1 -1
  360. package/src/config/env.d.ts +7 -0
  361. package/src/config/env.d.ts.map +1 -1
  362. package/src/config/env.js +8 -0
  363. package/src/config/queue.js +1 -1
  364. package/src/functions/cloudflare.d.ts.map +1 -1
  365. package/src/functions/cloudflare.js +4 -2
  366. package/src/index.js +3 -3
  367. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  368. package/src/middleware/JwtAuthMiddleware.js +11 -5
  369. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  370. package/src/runtime/RuntimeAdapter.js +30 -12
  371. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  372. package/src/runtime/adapters/CloudflareAdapter.js +15 -4
  373. package/src/scheduler/Schedule.js +1 -1
  374. package/src/scheduler/leader/SchedulerLeader.js +1 -1
  375. package/src/schedules/job-tracking-cleanup.js +1 -1
  376. package/src/security/TokenRevocation.d.ts +19 -2
  377. package/src/security/TokenRevocation.d.ts.map +1 -1
  378. package/src/security/TokenRevocation.js +558 -30
  379. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
  380. package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
  381. package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * SLA Monitor
3
+ * SLA compliance checks and violation tracking for workers
4
+ * Sealed namespace for immutability
5
+ */
6
+ export type ITimeRange = {
7
+ start: Date;
8
+ end: Date;
9
+ };
10
+ export interface ISLAConfig {
11
+ workerName: string;
12
+ metrics: {
13
+ maxLatencyP99: number;
14
+ minThroughput: number;
15
+ minAvailability: number;
16
+ maxErrorRate: number;
17
+ maxRecoveryTime: number;
18
+ };
19
+ alerting: {
20
+ channels: string[];
21
+ escalation: boolean;
22
+ cooldown: number;
23
+ };
24
+ reporting: {
25
+ interval: 'daily' | 'weekly' | 'monthly';
26
+ recipients: string[];
27
+ };
28
+ }
29
+ export type ISLAStatus = {
30
+ workerName: string;
31
+ status: 'compliant' | 'warning' | 'breach';
32
+ evaluatedAt: Date;
33
+ checks: {
34
+ latencyP99: {
35
+ value: number;
36
+ threshold: number;
37
+ status: 'pass' | 'warn' | 'fail';
38
+ };
39
+ throughput: {
40
+ value: number;
41
+ threshold: number;
42
+ status: 'pass' | 'warn' | 'fail';
43
+ };
44
+ availability: {
45
+ value: number;
46
+ threshold: number;
47
+ status: 'pass' | 'warn' | 'fail';
48
+ };
49
+ errorRate: {
50
+ value: number;
51
+ threshold: number;
52
+ status: 'pass' | 'warn' | 'fail';
53
+ };
54
+ recoveryTime: {
55
+ value: number;
56
+ threshold: number;
57
+ status: 'pass' | 'warn' | 'fail';
58
+ };
59
+ };
60
+ };
61
+ export type ISLAViolation = {
62
+ id: string;
63
+ workerName: string;
64
+ metric: keyof ISLAStatus['checks'];
65
+ expected: number;
66
+ actual: number;
67
+ timestamp: Date;
68
+ severity: 'warning' | 'critical';
69
+ message: string;
70
+ };
71
+ export type ISLAReport = {
72
+ generatedAt: Date;
73
+ period: ITimeRange;
74
+ totalWorkers: number;
75
+ totalChecks: number;
76
+ totalViolations: number;
77
+ complianceRate: number;
78
+ violations: ReadonlyArray<ISLAViolation>;
79
+ perWorker: Array<{
80
+ workerName: string;
81
+ violations: number;
82
+ complianceRate: number;
83
+ }>;
84
+ };
85
+ /**
86
+ * SLA Monitor - Sealed namespace
87
+ */
88
+ export declare const SLAMonitor: Readonly<{
89
+ /**
90
+ * Define SLA for a worker
91
+ */
92
+ defineSLA(config: ISLAConfig): void;
93
+ /**
94
+ * Check SLA compliance for a worker
95
+ */
96
+ checkCompliance(workerName: string): Promise<ISLAStatus>;
97
+ /**
98
+ * Get SLA violations for a worker
99
+ */
100
+ getViolations(workerName: string, timeRange: ITimeRange): ReadonlyArray<ISLAViolation>;
101
+ /**
102
+ * Get SLA compliance report
103
+ */
104
+ getComplianceReport(timeRange: ITimeRange): ISLAReport;
105
+ /**
106
+ * Alert on SLA violation
107
+ */
108
+ alertOnViolation(violation: ISLAViolation): void;
109
+ }>;
110
+ export default SLAMonitor;
111
+ //# sourceMappingURL=SLAMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SLAMonitor.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/SLAMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * SLA Monitor
3
+ * SLA compliance checks and violation tracking for workers
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { ErrorFactory, Logger, generateUuid } from '../../../src/index.js';
7
+ import { HealthMonitor } from './HealthMonitor.js';
8
+ import { WorkerMetrics } from './WorkerMetrics.js';
9
+ const slaConfigs = new Map();
10
+ const violationHistory = new Map();
11
+ const lastAlertAt = new Map();
12
+ const DEFAULT_LOOKBACK_MS = 60 * 60 * 1000;
13
+ const quantile = (points, percentile) => {
14
+ if (points.length === 0)
15
+ return 0;
16
+ const sorted = [...points].sort((a, b) => a.value - b.value);
17
+ const index = Math.min(sorted.length - 1, Math.max(0, Math.floor(percentile * sorted.length)));
18
+ return sorted[index]?.value ?? 0;
19
+ };
20
+ const warnOnMaxThreshold = (value, threshold) => value >= threshold * 0.9 && value <= threshold;
21
+ const warnOnMinThreshold = (value, threshold) => value <= threshold * 1.1 && value >= threshold;
22
+ const evaluateMaxThreshold = (value, threshold) => {
23
+ if (value > threshold)
24
+ return 'fail';
25
+ if (warnOnMaxThreshold(value, threshold))
26
+ return 'warn';
27
+ return 'pass';
28
+ };
29
+ const evaluateMinThreshold = (value, threshold) => {
30
+ if (value < threshold)
31
+ return 'fail';
32
+ if (warnOnMinThreshold(value, threshold))
33
+ return 'warn';
34
+ return 'pass';
35
+ };
36
+ const storeViolation = (violation) => {
37
+ const history = violationHistory.get(violation.workerName) ?? [];
38
+ history.push(violation);
39
+ if (history.length > 1000) {
40
+ history.shift();
41
+ }
42
+ violationHistory.set(violation.workerName, history);
43
+ };
44
+ const calculateAvailability = (checks) => {
45
+ if (checks.length === 0)
46
+ return 0;
47
+ const upCount = checks.filter((check) => check.status === 'healthy' || check.status === 'degraded').length;
48
+ return (upCount / checks.length) * 100;
49
+ };
50
+ const calculateRecoveryTime = (checks) => {
51
+ if (checks.length < 2)
52
+ return 0;
53
+ const sorted = [...checks].sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
54
+ let currentDownAt = null;
55
+ let maxRecoverySeconds = 0;
56
+ for (const check of sorted) {
57
+ const isDown = check.status === 'critical';
58
+ if (isDown && currentDownAt === null) {
59
+ currentDownAt = check.timestamp;
60
+ }
61
+ if (!isDown && currentDownAt !== null) {
62
+ const recoverySeconds = (check.timestamp.getTime() - currentDownAt.getTime()) / 1000;
63
+ maxRecoverySeconds = Math.max(maxRecoverySeconds, recoverySeconds);
64
+ currentDownAt = null;
65
+ }
66
+ }
67
+ return Math.round(maxRecoverySeconds);
68
+ };
69
+ const loadHealthChecks = async (workerName, range) => {
70
+ const history = HealthMonitor.getHealthHistory(workerName);
71
+ const filtered = history.filter((check) => check.timestamp.getTime() >= range.start.getTime() &&
72
+ check.timestamp.getTime() <= range.end.getTime());
73
+ if (filtered.length > 0)
74
+ return filtered;
75
+ try {
76
+ const current = HealthMonitor.getCurrentHealth(workerName);
77
+ return current ? [current] : [];
78
+ }
79
+ catch (error) {
80
+ Logger.debug('Failed to get current health for SLA check', error);
81
+ return [];
82
+ }
83
+ };
84
+ const getMetricPoints = async (workerName, metricType, range) => {
85
+ const entry = await WorkerMetrics.query({
86
+ workerName,
87
+ metricType,
88
+ granularity: 'hourly',
89
+ startDate: range.start,
90
+ endDate: range.end,
91
+ });
92
+ return entry.points;
93
+ };
94
+ const collectSlaMetrics = async (workerName, range) => {
95
+ const [durationPoints, processedAgg, errorAgg, healthChecks] = await Promise.all([
96
+ getMetricPoints(workerName, 'duration', range),
97
+ WorkerMetrics.aggregate({
98
+ workerName,
99
+ metricType: 'processed',
100
+ granularity: 'hourly',
101
+ startDate: range.start,
102
+ endDate: range.end,
103
+ }),
104
+ WorkerMetrics.aggregate({
105
+ workerName,
106
+ metricType: 'errors',
107
+ granularity: 'hourly',
108
+ startDate: range.start,
109
+ endDate: range.end,
110
+ }),
111
+ loadHealthChecks(workerName, range),
112
+ ]);
113
+ const latencyP99 = quantile(durationPoints, 0.99);
114
+ const minutes = Math.max(1, (range.end.getTime() - range.start.getTime()) / 60000);
115
+ const throughput = processedAgg.total / minutes;
116
+ const errorRate = processedAgg.total > 0 ? (errorAgg.total / processedAgg.total) * 100 : 0;
117
+ const availability = calculateAvailability(healthChecks);
118
+ const recoveryTime = calculateRecoveryTime(healthChecks);
119
+ return { latencyP99, throughput, availability, errorRate, recoveryTime };
120
+ };
121
+ const buildChecks = (metrics, config) => ({
122
+ latencyP99: {
123
+ value: metrics.latencyP99,
124
+ threshold: config.metrics.maxLatencyP99,
125
+ status: evaluateMaxThreshold(metrics.latencyP99, config.metrics.maxLatencyP99),
126
+ },
127
+ throughput: {
128
+ value: metrics.throughput,
129
+ threshold: config.metrics.minThroughput,
130
+ status: evaluateMinThreshold(metrics.throughput, config.metrics.minThroughput),
131
+ },
132
+ availability: {
133
+ value: metrics.availability,
134
+ threshold: config.metrics.minAvailability,
135
+ status: evaluateMinThreshold(metrics.availability, config.metrics.minAvailability),
136
+ },
137
+ errorRate: {
138
+ value: metrics.errorRate,
139
+ threshold: config.metrics.maxErrorRate,
140
+ status: evaluateMaxThreshold(metrics.errorRate, config.metrics.maxErrorRate),
141
+ },
142
+ recoveryTime: {
143
+ value: metrics.recoveryTime,
144
+ threshold: config.metrics.maxRecoveryTime,
145
+ status: evaluateMaxThreshold(metrics.recoveryTime, config.metrics.maxRecoveryTime),
146
+ },
147
+ });
148
+ const buildSlaStatus = (checks) => {
149
+ const hasFailures = Object.values(checks).some((check) => check.status === 'fail');
150
+ if (hasFailures)
151
+ return 'breach';
152
+ const hasWarnings = Object.values(checks).some((check) => check.status === 'warn');
153
+ return hasWarnings ? 'warning' : 'compliant';
154
+ };
155
+ const buildViolation = (params) => ({
156
+ id: generateUuid(),
157
+ workerName: params.workerName,
158
+ metric: params.metric,
159
+ expected: params.expected,
160
+ actual: params.actual,
161
+ timestamp: new Date(),
162
+ severity: params.severity,
163
+ message: params.message,
164
+ });
165
+ /**
166
+ * SLA Monitor - Sealed namespace
167
+ */
168
+ export const SLAMonitor = Object.freeze({
169
+ /**
170
+ * Define SLA for a worker
171
+ */
172
+ defineSLA(config) {
173
+ slaConfigs.set(config.workerName, { ...config });
174
+ Logger.info(`SLA defined for worker "${config.workerName}"`);
175
+ },
176
+ /**
177
+ * Check SLA compliance for a worker
178
+ */
179
+ async checkCompliance(workerName) {
180
+ const config = slaConfigs.get(workerName);
181
+ if (!config) {
182
+ throw ErrorFactory.createNotFoundError(`SLA config not found for worker "${workerName}"`);
183
+ }
184
+ const range = {
185
+ start: new Date(Date.now() - DEFAULT_LOOKBACK_MS),
186
+ end: new Date(),
187
+ };
188
+ const metrics = await collectSlaMetrics(workerName, range);
189
+ const checks = buildChecks(metrics, config);
190
+ const status = buildSlaStatus(checks);
191
+ Object.entries(checks)
192
+ .filter(([, detail]) => detail.status === 'fail')
193
+ .forEach(([metricKey, detail]) => {
194
+ const violation = buildViolation({
195
+ workerName,
196
+ metric: metricKey,
197
+ expected: detail.threshold,
198
+ actual: detail.value,
199
+ severity: 'critical',
200
+ message: `SLA breach for ${metricKey}: ${detail.value} (expected ${detail.threshold})`,
201
+ });
202
+ storeViolation(violation);
203
+ SLAMonitor.alertOnViolation(violation);
204
+ });
205
+ return {
206
+ workerName,
207
+ status,
208
+ evaluatedAt: new Date(),
209
+ checks,
210
+ };
211
+ },
212
+ /**
213
+ * Get SLA violations for a worker
214
+ */
215
+ getViolations(workerName, timeRange) {
216
+ const history = violationHistory.get(workerName) ?? [];
217
+ return history.filter((violation) => violation.timestamp.getTime() >= timeRange.start.getTime() &&
218
+ violation.timestamp.getTime() <= timeRange.end.getTime());
219
+ },
220
+ /**
221
+ * Get SLA compliance report
222
+ */
223
+ getComplianceReport(timeRange) {
224
+ const violations = [];
225
+ const perWorker = [];
226
+ for (const [workerName] of slaConfigs.entries()) {
227
+ const workerViolations = SLAMonitor.getViolations(workerName, timeRange);
228
+ violations.push(...workerViolations);
229
+ const totalChecks = slaConfigs.size * 5;
230
+ const breachCount = workerViolations.length;
231
+ const complianceRate = totalChecks > 0 ? (totalChecks - breachCount) / totalChecks : 1;
232
+ perWorker.push({
233
+ workerName,
234
+ violations: breachCount,
235
+ complianceRate,
236
+ });
237
+ }
238
+ const totalChecks = slaConfigs.size * 5;
239
+ const totalViolations = violations.length;
240
+ const complianceRate = totalChecks > 0 ? (totalChecks - totalViolations) / totalChecks : 1;
241
+ return {
242
+ generatedAt: new Date(),
243
+ period: timeRange,
244
+ totalWorkers: slaConfigs.size,
245
+ totalChecks,
246
+ totalViolations,
247
+ complianceRate,
248
+ violations,
249
+ perWorker,
250
+ };
251
+ },
252
+ /**
253
+ * Alert on SLA violation
254
+ */
255
+ alertOnViolation(violation) {
256
+ const config = slaConfigs.get(violation.workerName);
257
+ if (!config)
258
+ return;
259
+ const lastAlert = lastAlertAt.get(violation.workerName);
260
+ const cooldownMs = config.alerting.cooldown * 60 * 1000;
261
+ if (lastAlert && Date.now() - lastAlert.getTime() < cooldownMs) {
262
+ return;
263
+ }
264
+ lastAlertAt.set(violation.workerName, new Date());
265
+ Logger.warn(`SLA violation for ${violation.workerName}`, {
266
+ metric: violation.metric,
267
+ expected: violation.expected,
268
+ actual: violation.actual,
269
+ severity: violation.severity,
270
+ channels: config.alerting.channels,
271
+ });
272
+ },
273
+ });
274
+ export default SLAMonitor;
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Worker Factory
3
+ * Central factory for creating workers with all advanced features
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { type IDatabase, type RedisConfig } from '../../../src/index.js';
7
+ import { Worker, type Job, type WorkerOptions } from 'bullmq';
8
+ import { type AutoScalerConfig } from './AutoScaler';
9
+ import { type ComplianceConfig } from './ComplianceManager';
10
+ import { type RetentionPolicy } from './DeadLetterQueue';
11
+ import { type ObservabilityConfig } from './Observability';
12
+ import { type WorkerRecord } from './storage/WorkerStore';
13
+ export declare const WorkerCreationStatus: {
14
+ readonly CREATING: "creating";
15
+ readonly CONNECTING: "connecting";
16
+ readonly STARTING: "starting";
17
+ readonly RUNNING: "running";
18
+ readonly FAILED: "failed";
19
+ readonly STOPPED: "stopped";
20
+ };
21
+ export type WorkerCreationStatus = (typeof WorkerCreationStatus)[keyof typeof WorkerCreationStatus];
22
+ export type WorkerFactoryConfig = {
23
+ name: string;
24
+ version?: string;
25
+ queueName: string;
26
+ processor: (job: Job) => Promise<unknown>;
27
+ processorSpec?: string;
28
+ options?: WorkerOptions;
29
+ autoStart?: boolean;
30
+ activeStatus?: boolean;
31
+ infrastructure?: {
32
+ redis?: RedisConfigInput;
33
+ persistence?: WorkerPersistenceConfig;
34
+ deadLetterQueue?: {
35
+ redis?: RedisConfigInput;
36
+ policy: RetentionPolicy;
37
+ };
38
+ compliance?: {
39
+ redis?: RedisConfigInput;
40
+ config?: Partial<ComplianceConfig>;
41
+ };
42
+ observability?: ObservabilityConfigInput;
43
+ autoScaler?: AutoScalerConfig;
44
+ };
45
+ features?: {
46
+ clustering?: boolean;
47
+ metrics?: boolean;
48
+ autoScaling?: boolean;
49
+ circuitBreaker?: boolean;
50
+ deadLetterQueue?: boolean;
51
+ resourceMonitoring?: boolean;
52
+ compliance?: boolean;
53
+ observability?: boolean;
54
+ plugins?: boolean;
55
+ versioning?: boolean;
56
+ datacenterOrchestration?: boolean;
57
+ };
58
+ datacenter?: {
59
+ primaryRegion: string;
60
+ secondaryRegions?: string[];
61
+ affinityRules?: {
62
+ preferLocal?: boolean;
63
+ maxLatency?: number;
64
+ avoidRegions?: string[];
65
+ };
66
+ };
67
+ };
68
+ export type WorkerInstance = {
69
+ worker: Worker;
70
+ config: WorkerFactoryConfig;
71
+ startedAt: Date;
72
+ status: WorkerCreationStatus;
73
+ lastHealthCheck?: Date;
74
+ connectionState?: 'disconnected' | 'connecting' | 'connected' | 'error';
75
+ };
76
+ type RedisEnvConfig = {
77
+ env?: true;
78
+ host?: string;
79
+ port?: number;
80
+ password?: string;
81
+ db?: string;
82
+ };
83
+ type RedisConfigInput = RedisConfig | RedisEnvConfig;
84
+ export type WorkerPersistenceConfig = {
85
+ driver: 'memory';
86
+ } | {
87
+ driver: 'redis';
88
+ redis?: RedisConfigInput;
89
+ keyPrefix?: string;
90
+ } | {
91
+ driver: 'database';
92
+ client?: IDatabase | string;
93
+ connection?: string;
94
+ table?: string;
95
+ };
96
+ type ObservabilityConfigInput = ObservabilityConfig | {
97
+ enabled?: boolean;
98
+ prometheus?: Partial<ObservabilityConfig['prometheus']>;
99
+ openTelemetry?: Partial<ObservabilityConfig['openTelemetry']>;
100
+ datadog?: Partial<ObservabilityConfig['datadog']>;
101
+ };
102
+ export type ProcessorResolver = (name: string) => WorkerFactoryConfig['processor'] | undefined | Promise<WorkerFactoryConfig['processor'] | undefined>;
103
+ /**
104
+ * Worker Factory - Sealed namespace
105
+ */
106
+ export declare const WorkerFactory: Readonly<{
107
+ registerProcessor: (name: string, processor: WorkerFactoryConfig["processor"]) => void;
108
+ registerProcessors: (processors: Record<string, WorkerFactoryConfig["processor"]>) => void;
109
+ registerProcessorPaths: (paths: Record<string, string>) => void;
110
+ registerProcessorResolver: (resolver: ProcessorResolver) => void;
111
+ registerProcessorSpec: (spec: string, processor: WorkerFactoryConfig["processor"]) => void;
112
+ resolveProcessorPath: (modulePath: string) => Promise<WorkerFactoryConfig["processor"] | undefined>;
113
+ resolveProcessorSpec: (spec: string) => Promise<WorkerFactoryConfig["processor"] | undefined>;
114
+ /**
115
+ * Register a new worker configuration without starting it.
116
+ */
117
+ register(config: WorkerFactoryConfig): Promise<void>;
118
+ /**
119
+ * Create new worker with full setup
120
+ */
121
+ create(config: WorkerFactoryConfig): Promise<Worker>;
122
+ /**
123
+ * Get worker instance
124
+ */
125
+ get(name: string): WorkerInstance | null;
126
+ /**
127
+ * Update worker status directly (used by HealthMonitor)
128
+ */
129
+ updateStatus(name: string, status: string, error?: Error | string): Promise<void>;
130
+ /**
131
+ * Stop worker
132
+ */
133
+ stop(name: string, persistenceOverride?: WorkerPersistenceConfig, options?: {
134
+ skipPersistedUpdate?: boolean;
135
+ }): Promise<void>;
136
+ /**
137
+ * Restart worker
138
+ */
139
+ restart(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
140
+ /**
141
+ * Pause worker
142
+ */
143
+ pause(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
144
+ /**
145
+ * Resume worker
146
+ */
147
+ resume(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
148
+ /**
149
+ * Update auto-start for persisted worker
150
+ */
151
+ setAutoStart(name: string, autoStart: boolean, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
152
+ /**
153
+ * Update active status for a worker
154
+ */
155
+ setWorkerActiveStatus(name: string, activeStatus: boolean, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
156
+ /**
157
+ * Get active status for a worker
158
+ */
159
+ getWorkerActiveStatus(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<boolean | null>;
160
+ /**
161
+ * Update persisted worker record and in-memory config if running.
162
+ */
163
+ update(name: string, patch: Partial<WorkerRecord> | WorkerRecord, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
164
+ /**
165
+ * Start worker
166
+ */
167
+ start(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
168
+ /**
169
+ * List all workers
170
+ */
171
+ list(): string[];
172
+ /**
173
+ * List all persisted workers
174
+ */
175
+ listPersisted(persistenceOverride?: WorkerPersistenceConfig, options?: {
176
+ offset?: number;
177
+ limit?: number;
178
+ search?: string;
179
+ includeInactive?: boolean;
180
+ }): Promise<string[]>;
181
+ listPersistedRecords(persistenceOverride?: WorkerPersistenceConfig, options?: {
182
+ offset?: number;
183
+ limit?: number;
184
+ search?: string;
185
+ includeInactive?: boolean;
186
+ }): Promise<WorkerRecord[]>;
187
+ /**
188
+ * Start a worker from persisted storage when it is not registered.
189
+ */
190
+ startFromPersisted(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
191
+ /**
192
+ * Get persisted worker record
193
+ */
194
+ getPersisted(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<WorkerRecord | null>;
195
+ /**
196
+ * Remove worker
197
+ */
198
+ remove(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
199
+ /**
200
+ * Get worker metrics
201
+ */
202
+ getMetrics(name: string): Promise<unknown>;
203
+ /**
204
+ * Get worker health
205
+ */
206
+ getHealth(name: string): Promise<unknown>;
207
+ /**
208
+ * Shutdown all workers
209
+ */
210
+ shutdown(): Promise<void>;
211
+ /**
212
+ * Reset persistence connection state.
213
+ * Useful when connections become stale in long-running processes or serverless environments.
214
+ */
215
+ resetPersistence(): Promise<void>;
216
+ }>;
217
+ export {};
218
+ //# sourceMappingURL=WorkerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerFactory.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/WorkerFactory.ts"],"names":[],"mappings":"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"}