@zintrust/core 0.4.28 → 0.4.30

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 (453) hide show
  1. package/bin/z.js +0 -0
  2. package/bin/zin.js +0 -0
  3. package/bin/zintrust.js +0 -0
  4. package/bin/zt.js +0 -0
  5. package/package.json +78 -23
  6. package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -1
  7. package/src/cli/commands/D1ProxyCommand.js +69 -9
  8. package/src/cli/commands/KvProxyCommand.d.ts.map +1 -1
  9. package/src/cli/commands/KvProxyCommand.js +69 -9
  10. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  11. package/src/cli/commands/NewCommand.js +8 -28
  12. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -1
  13. package/src/cli/scaffolding/GovernanceScaffolder.js +31 -4
  14. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  15. package/src/cli/scaffolding/ProjectScaffolder.js +31 -5
  16. package/src/cli/utils/DistPackager.d.ts +2 -2
  17. package/src/cli/utils/DistPackager.js +2 -2
  18. package/src/index.js +3 -3
  19. package/src/zintrust.plugins.js +1 -1
  20. package/app/Controllers/AuthController.d.ts +0 -10
  21. package/app/Controllers/AuthController.d.ts.map +0 -1
  22. package/app/Controllers/AuthController.js +0 -233
  23. package/app/Controllers/TestController.d.ts +0 -22
  24. package/app/Controllers/TestController.d.ts.map +0 -1
  25. package/app/Controllers/TestController.js +0 -188
  26. package/app/Controllers/UserController.d.ts +0 -9
  27. package/app/Controllers/UserController.d.ts.map +0 -1
  28. package/app/Controllers/UserController.js +0 -8
  29. package/app/Controllers/UserQueryBuilderController.d.ts +0 -16
  30. package/app/Controllers/UserQueryBuilderController.d.ts.map +0 -1
  31. package/app/Controllers/UserQueryBuilderController.js +0 -404
  32. package/app/Jobs/AdvancedEmailJobService.d.ts +0 -57
  33. package/app/Jobs/AdvancedEmailJobService.d.ts.map +0 -1
  34. package/app/Jobs/AdvancedEmailJobService.js +0 -185
  35. package/app/Jobs/EmailJobService.d.ts +0 -33
  36. package/app/Jobs/EmailJobService.d.ts.map +0 -1
  37. package/app/Jobs/EmailJobService.js +0 -113
  38. package/app/Middleware/AuthFailureResponder.d.ts +0 -3
  39. package/app/Middleware/AuthFailureResponder.d.ts.map +0 -1
  40. package/app/Middleware/AuthFailureResponder.js +0 -8
  41. package/app/Middleware/ProfilerMiddleware.d.ts +0 -12
  42. package/app/Middleware/ProfilerMiddleware.d.ts.map +0 -1
  43. package/app/Middleware/ProfilerMiddleware.js +0 -47
  44. package/app/Middleware/index.d.ts +0 -59
  45. package/app/Middleware/index.d.ts.map +0 -1
  46. package/app/Middleware/index.js +0 -216
  47. package/app/Models/Post.d.ts +0 -14
  48. package/app/Models/Post.d.ts.map +0 -1
  49. package/app/Models/Post.js +0 -27
  50. package/app/Models/User.d.ts +0 -14
  51. package/app/Models/User.d.ts.map +0 -1
  52. package/app/Models/User.js +0 -44
  53. package/app/Schedules/JobTracking.d.ts +0 -3
  54. package/app/Schedules/JobTracking.d.ts.map +0 -1
  55. package/app/Schedules/JobTracking.js +0 -13
  56. package/app/Schedules/index.d.ts +0 -2
  57. package/app/Schedules/index.d.ts.map +0 -1
  58. package/app/Schedules/index.js +0 -1
  59. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +0 -6
  60. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +0 -1
  61. package/app/Toolkit/Broadcast/sendBroadcast.js +0 -5
  62. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +0 -6
  63. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +0 -1
  64. package/app/Toolkit/Mail/sendWelcomeEmail.js +0 -20
  65. package/app/Toolkit/Notification/sendSlackNotification.d.ts +0 -8
  66. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +0 -1
  67. package/app/Toolkit/Notification/sendSlackNotification.js +0 -5
  68. package/app/Toolkit/Notification/sendSms.d.ts +0 -6
  69. package/app/Toolkit/Notification/sendSms.d.ts.map +0 -1
  70. package/app/Toolkit/Notification/sendSms.js +0 -5
  71. package/app/Types/controller.d.ts +0 -44
  72. package/app/Types/controller.d.ts.map +0 -1
  73. package/app/Types/controller.js +0 -1
  74. package/app/Workers/AdvancEmailWorker.d.ts +0 -44
  75. package/app/Workers/AdvancEmailWorker.d.ts.map +0 -1
  76. package/app/Workers/AdvancEmailWorker.js +0 -192
  77. package/app/Workers/EmailWorker.d.ts +0 -39
  78. package/app/Workers/EmailWorker.d.ts.map +0 -1
  79. package/app/Workers/EmailWorker.js +0 -199
  80. package/app/Workers/TestWorker.d.ts +0 -16
  81. package/app/Workers/TestWorker.d.ts.map +0 -1
  82. package/app/Workers/TestWorker.js +0 -153
  83. package/build-manifest.json +0 -6410
  84. package/config/broadcast.d.ts +0 -38
  85. package/config/broadcast.d.ts.map +0 -1
  86. package/config/broadcast.js +0 -37
  87. package/config/cache.d.ts +0 -40
  88. package/config/cache.d.ts.map +0 -1
  89. package/config/cache.js +0 -39
  90. package/config/database.d.ts +0 -58
  91. package/config/database.d.ts.map +0 -1
  92. package/config/database.js +0 -65
  93. package/config/mail.d.ts +0 -51
  94. package/config/mail.d.ts.map +0 -1
  95. package/config/mail.js +0 -69
  96. package/config/middleware.d.ts +0 -21
  97. package/config/middleware.d.ts.map +0 -1
  98. package/config/middleware.js +0 -61
  99. package/config/notification.d.ts +0 -33
  100. package/config/notification.d.ts.map +0 -1
  101. package/config/notification.js +0 -33
  102. package/config/queue.d.ts +0 -55
  103. package/config/queue.d.ts.map +0 -1
  104. package/config/queue.js +0 -87
  105. package/config/storage.d.ts +0 -59
  106. package/config/storage.d.ts.map +0 -1
  107. package/config/storage.js +0 -59
  108. package/config/workers.d.ts +0 -54
  109. package/config/workers.d.ts.map +0 -1
  110. package/config/workers.js +0 -83
  111. package/database/factories/UserFactory.d.ts +0 -40
  112. package/database/factories/UserFactory.d.ts.map +0 -1
  113. package/database/factories/UserFactory.js +0 -99
  114. package/database/migrations/20260109074544_create_users_table.d.ts +0 -7
  115. package/database/migrations/20260109074544_create_users_table.d.ts.map +0 -1
  116. package/database/migrations/20260109074544_create_users_table.js +0 -21
  117. package/database/migrations/20260109144731_create_tasks_table.d.ts +0 -7
  118. package/database/migrations/20260109144731_create_tasks_table.d.ts.map +0 -1
  119. package/database/migrations/20260109144731_create_tasks_table.js +0 -19
  120. package/database/migrations/20260109144735_add_done_tasks_table.d.ts +0 -11
  121. package/database/migrations/20260109144735_add_done_tasks_table.d.ts.map +0 -1
  122. package/database/migrations/20260109144735_add_done_tasks_table.js +0 -25
  123. package/database/migrations/20260109150837_add_start_tasks_table.d.ts +0 -11
  124. package/database/migrations/20260109150837_add_start_tasks_table.d.ts.map +0 -1
  125. package/database/migrations/20260109150837_add_start_tasks_table.js +0 -22
  126. package/database/migrations/20260109152114_add_way_tasks_table.d.ts +0 -11
  127. package/database/migrations/20260109152114_add_way_tasks_table.d.ts.map +0 -1
  128. package/database/migrations/20260109152114_add_way_tasks_table.js +0 -22
  129. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts +0 -7
  130. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts.map +0 -1
  131. package/database/migrations/20260218121500_create_jwt_revocations_table.js +0 -22
  132. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts +0 -11
  133. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts.map +0 -1
  134. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.js +0 -20
  135. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts +0 -11
  136. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts.map +0 -1
  137. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.js +0 -20
  138. package/database/migrations/20260327112651_create_posts_table.d.ts +0 -11
  139. package/database/migrations/20260327112651_create_posts_table.d.ts.map +0 -1
  140. package/database/migrations/20260327112651_create_posts_table.js +0 -24
  141. package/database/seeders/DatabaseSeeder.d.ts +0 -5
  142. package/database/seeders/DatabaseSeeder.d.ts.map +0 -1
  143. package/database/seeders/DatabaseSeeder.js +0 -15
  144. package/database/seeders/UserSeeder.d.ts +0 -30
  145. package/database/seeders/UserSeeder.d.ts.map +0 -1
  146. package/database/seeders/UserSeeder.js +0 -97
  147. package/index.d.ts +0 -1
  148. package/index.js +0 -1
  149. package/packages/cache-redis/src/RedisProxyAdapter.d.ts +0 -6
  150. package/packages/cache-redis/src/RedisProxyAdapter.d.ts.map +0 -1
  151. package/packages/cache-redis/src/RedisProxyAdapter.js +0 -144
  152. package/packages/cache-redis/src/index.d.ts +0 -27
  153. package/packages/cache-redis/src/index.d.ts.map +0 -1
  154. package/packages/cache-redis/src/index.js +0 -153
  155. package/packages/db-d1/src/index.d.ts +0 -55
  156. package/packages/db-d1/src/index.d.ts.map +0 -1
  157. package/packages/db-d1/src/index.js +0 -118
  158. package/packages/db-d1/src/register.d.ts +0 -6
  159. package/packages/db-d1/src/register.d.ts.map +0 -1
  160. package/packages/db-d1/src/register.js +0 -8
  161. package/packages/db-mysql/src/common.d.ts +0 -7
  162. package/packages/db-mysql/src/common.d.ts.map +0 -1
  163. package/packages/db-mysql/src/common.js +0 -17
  164. package/packages/db-mysql/src/index.d.ts +0 -43
  165. package/packages/db-mysql/src/index.d.ts.map +0 -1
  166. package/packages/db-mysql/src/index.js +0 -265
  167. package/packages/db-mysql/src/register.d.ts +0 -6
  168. package/packages/db-mysql/src/register.d.ts.map +0 -1
  169. package/packages/db-mysql/src/register.js +0 -32
  170. package/packages/db-postgres/src/index.d.ts +0 -39
  171. package/packages/db-postgres/src/index.d.ts.map +0 -1
  172. package/packages/db-postgres/src/index.js +0 -179
  173. package/packages/db-postgres/src/register.d.ts +0 -6
  174. package/packages/db-postgres/src/register.d.ts.map +0 -1
  175. package/packages/db-postgres/src/register.js +0 -8
  176. package/packages/db-sqlite/src/index.d.ts +0 -9
  177. package/packages/db-sqlite/src/index.d.ts.map +0 -1
  178. package/packages/db-sqlite/src/index.js +0 -7
  179. package/packages/db-sqlite/src/register.d.ts +0 -6
  180. package/packages/db-sqlite/src/register.d.ts.map +0 -1
  181. package/packages/db-sqlite/src/register.js +0 -8
  182. package/packages/db-sqlserver/src/index.d.ts +0 -38
  183. package/packages/db-sqlserver/src/index.d.ts.map +0 -1
  184. package/packages/db-sqlserver/src/index.js +0 -73
  185. package/packages/db-sqlserver/src/register.d.ts +0 -6
  186. package/packages/db-sqlserver/src/register.d.ts.map +0 -1
  187. package/packages/db-sqlserver/src/register.js +0 -21
  188. package/packages/mail-sendgrid/src/register.d.ts +0 -6
  189. package/packages/mail-sendgrid/src/register.d.ts.map +0 -1
  190. package/packages/mail-sendgrid/src/register.js +0 -24
  191. package/packages/mail-smtp/src/register.d.ts +0 -6
  192. package/packages/mail-smtp/src/register.d.ts.map +0 -1
  193. package/packages/mail-smtp/src/register.js +0 -29
  194. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +0 -35
  195. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +0 -1
  196. package/packages/queue-monitor/src/QueueMonitoringService.js +0 -194
  197. package/packages/queue-monitor/src/connection.d.ts +0 -3
  198. package/packages/queue-monitor/src/connection.d.ts.map +0 -1
  199. package/packages/queue-monitor/src/connection.js +0 -1
  200. package/packages/queue-monitor/src/dashboard-ui.d.ts +0 -7
  201. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +0 -1
  202. package/packages/queue-monitor/src/dashboard-ui.js +0 -997
  203. package/packages/queue-monitor/src/driver.d.ts +0 -15
  204. package/packages/queue-monitor/src/driver.d.ts.map +0 -1
  205. package/packages/queue-monitor/src/driver.js +0 -115
  206. package/packages/queue-monitor/src/index.d.ts +0 -71
  207. package/packages/queue-monitor/src/index.d.ts.map +0 -1
  208. package/packages/queue-monitor/src/index.js +0 -296
  209. package/packages/queue-monitor/src/metrics.d.ts +0 -27
  210. package/packages/queue-monitor/src/metrics.d.ts.map +0 -1
  211. package/packages/queue-monitor/src/metrics.js +0 -92
  212. package/packages/queue-monitor/src/worker.d.ts +0 -8
  213. package/packages/queue-monitor/src/worker.d.ts.map +0 -1
  214. package/packages/queue-monitor/src/worker.js +0 -35
  215. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +0 -26
  216. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +0 -1
  217. package/packages/queue-redis/src/BullMQRedisQueue.js +0 -465
  218. package/packages/queue-redis/src/HttpQueueDriver.d.ts +0 -18
  219. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +0 -1
  220. package/packages/queue-redis/src/HttpQueueDriver.js +0 -249
  221. package/packages/queue-redis/src/QueueHttpGateway.d.ts +0 -16
  222. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +0 -1
  223. package/packages/queue-redis/src/QueueHttpGateway.js +0 -217
  224. package/packages/queue-redis/src/RedisPublishClient.d.ts +0 -14
  225. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +0 -1
  226. package/packages/queue-redis/src/RedisPublishClient.js +0 -251
  227. package/packages/queue-redis/src/index.d.ts +0 -12
  228. package/packages/queue-redis/src/index.d.ts.map +0 -1
  229. package/packages/queue-redis/src/index.js +0 -10
  230. package/packages/queue-redis/src/register.d.ts +0 -6
  231. package/packages/queue-redis/src/register.d.ts.map +0 -1
  232. package/packages/queue-redis/src/register.js +0 -21
  233. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +0 -11
  234. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +0 -1
  235. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +0 -32
  236. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +0 -11
  237. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +0 -1
  238. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +0 -46
  239. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +0 -7
  240. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +0 -1
  241. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +0 -44
  242. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +0 -7
  243. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +0 -1
  244. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +0 -104
  245. package/packages/workers/src/AnomalyDetection.d.ts +0 -107
  246. package/packages/workers/src/AnomalyDetection.d.ts.map +0 -1
  247. package/packages/workers/src/AnomalyDetection.js +0 -329
  248. package/packages/workers/src/AutoScaler.d.ts +0 -128
  249. package/packages/workers/src/AutoScaler.d.ts.map +0 -1
  250. package/packages/workers/src/AutoScaler.js +0 -425
  251. package/packages/workers/src/BroadcastWorker.d.ts +0 -29
  252. package/packages/workers/src/BroadcastWorker.d.ts.map +0 -1
  253. package/packages/workers/src/BroadcastWorker.js +0 -24
  254. package/packages/workers/src/CanaryController.d.ts +0 -104
  255. package/packages/workers/src/CanaryController.d.ts.map +0 -1
  256. package/packages/workers/src/CanaryController.js +0 -424
  257. package/packages/workers/src/ChaosEngineering.d.ts +0 -80
  258. package/packages/workers/src/ChaosEngineering.d.ts.map +0 -1
  259. package/packages/workers/src/ChaosEngineering.js +0 -229
  260. package/packages/workers/src/CircuitBreaker.d.ts +0 -107
  261. package/packages/workers/src/CircuitBreaker.d.ts.map +0 -1
  262. package/packages/workers/src/CircuitBreaker.js +0 -374
  263. package/packages/workers/src/ClusterLock.d.ts +0 -91
  264. package/packages/workers/src/ClusterLock.d.ts.map +0 -1
  265. package/packages/workers/src/ClusterLock.js +0 -397
  266. package/packages/workers/src/ComplianceManager.d.ts +0 -178
  267. package/packages/workers/src/ComplianceManager.d.ts.map +0 -1
  268. package/packages/workers/src/ComplianceManager.js +0 -556
  269. package/packages/workers/src/DatacenterOrchestrator.d.ts +0 -134
  270. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +0 -1
  271. package/packages/workers/src/DatacenterOrchestrator.js +0 -404
  272. package/packages/workers/src/DeadLetterQueue.d.ts +0 -123
  273. package/packages/workers/src/DeadLetterQueue.d.ts.map +0 -1
  274. package/packages/workers/src/DeadLetterQueue.js +0 -544
  275. package/packages/workers/src/HealthMonitor.d.ts +0 -43
  276. package/packages/workers/src/HealthMonitor.d.ts.map +0 -1
  277. package/packages/workers/src/HealthMonitor.js +0 -312
  278. package/packages/workers/src/MultiQueueWorker.d.ts +0 -90
  279. package/packages/workers/src/MultiQueueWorker.d.ts.map +0 -1
  280. package/packages/workers/src/MultiQueueWorker.js +0 -282
  281. package/packages/workers/src/NotificationWorker.d.ts +0 -29
  282. package/packages/workers/src/NotificationWorker.d.ts.map +0 -1
  283. package/packages/workers/src/NotificationWorker.js +0 -23
  284. package/packages/workers/src/Observability.d.ts +0 -154
  285. package/packages/workers/src/Observability.d.ts.map +0 -1
  286. package/packages/workers/src/Observability.js +0 -538
  287. package/packages/workers/src/PluginManager.d.ts +0 -124
  288. package/packages/workers/src/PluginManager.d.ts.map +0 -1
  289. package/packages/workers/src/PluginManager.js +0 -392
  290. package/packages/workers/src/PriorityQueue.d.ts +0 -118
  291. package/packages/workers/src/PriorityQueue.d.ts.map +0 -1
  292. package/packages/workers/src/PriorityQueue.js +0 -276
  293. package/packages/workers/src/ResourceMonitor.d.ts +0 -165
  294. package/packages/workers/src/ResourceMonitor.d.ts.map +0 -1
  295. package/packages/workers/src/ResourceMonitor.js +0 -632
  296. package/packages/workers/src/SLAMonitor.d.ts +0 -111
  297. package/packages/workers/src/SLAMonitor.d.ts.map +0 -1
  298. package/packages/workers/src/SLAMonitor.js +0 -274
  299. package/packages/workers/src/WorkerFactory.d.ts +0 -226
  300. package/packages/workers/src/WorkerFactory.d.ts.map +0 -1
  301. package/packages/workers/src/WorkerFactory.js +0 -2551
  302. package/packages/workers/src/WorkerInit.d.ts +0 -103
  303. package/packages/workers/src/WorkerInit.d.ts.map +0 -1
  304. package/packages/workers/src/WorkerInit.js +0 -359
  305. package/packages/workers/src/WorkerMetrics.d.ts +0 -116
  306. package/packages/workers/src/WorkerMetrics.d.ts.map +0 -1
  307. package/packages/workers/src/WorkerMetrics.js +0 -570
  308. package/packages/workers/src/WorkerRegistry.d.ts +0 -152
  309. package/packages/workers/src/WorkerRegistry.d.ts.map +0 -1
  310. package/packages/workers/src/WorkerRegistry.js +0 -396
  311. package/packages/workers/src/WorkerShutdown.d.ts +0 -70
  312. package/packages/workers/src/WorkerShutdown.d.ts.map +0 -1
  313. package/packages/workers/src/WorkerShutdown.js +0 -185
  314. package/packages/workers/src/WorkerVersioning.d.ts +0 -108
  315. package/packages/workers/src/WorkerVersioning.d.ts.map +0 -1
  316. package/packages/workers/src/WorkerVersioning.js +0 -300
  317. package/packages/workers/src/config/workerConfig.d.ts +0 -5
  318. package/packages/workers/src/config/workerConfig.d.ts.map +0 -1
  319. package/packages/workers/src/config/workerConfig.js +0 -25
  320. package/packages/workers/src/createQueueWorker.d.ts +0 -31
  321. package/packages/workers/src/createQueueWorker.d.ts.map +0 -1
  322. package/packages/workers/src/createQueueWorker.js +0 -382
  323. package/packages/workers/src/dashboard/index.d.ts +0 -2
  324. package/packages/workers/src/dashboard/index.d.ts.map +0 -1
  325. package/packages/workers/src/dashboard/index.js +0 -1
  326. package/packages/workers/src/dashboard/types.d.ts +0 -123
  327. package/packages/workers/src/dashboard/types.d.ts.map +0 -1
  328. package/packages/workers/src/dashboard/types.js +0 -1
  329. package/packages/workers/src/dashboard/workers-api.d.ts +0 -5
  330. package/packages/workers/src/dashboard/workers-api.d.ts.map +0 -1
  331. package/packages/workers/src/dashboard/workers-api.js +0 -776
  332. package/packages/workers/src/helper/index.d.ts +0 -6
  333. package/packages/workers/src/helper/index.d.ts.map +0 -1
  334. package/packages/workers/src/helper/index.js +0 -10
  335. package/packages/workers/src/http/WorkerApiController.d.ts +0 -39
  336. package/packages/workers/src/http/WorkerApiController.d.ts.map +0 -1
  337. package/packages/workers/src/http/WorkerApiController.js +0 -313
  338. package/packages/workers/src/http/WorkerController.d.ts +0 -375
  339. package/packages/workers/src/http/WorkerController.d.ts.map +0 -1
  340. package/packages/workers/src/http/WorkerController.js +0 -1454
  341. package/packages/workers/src/http/WorkerMonitoringService.d.ts +0 -12
  342. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +0 -1
  343. package/packages/workers/src/http/WorkerMonitoringService.js +0 -89
  344. package/packages/workers/src/http/middleware/CustomValidation.d.ts +0 -93
  345. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +0 -1
  346. package/packages/workers/src/http/middleware/CustomValidation.js +0 -270
  347. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +0 -4
  348. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +0 -1
  349. package/packages/workers/src/http/middleware/DatacenterValidator.js +0 -94
  350. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +0 -8
  351. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +0 -1
  352. package/packages/workers/src/http/middleware/EditWorkerValidation.js +0 -56
  353. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +0 -4
  354. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +0 -1
  355. package/packages/workers/src/http/middleware/FeaturesValidator.js +0 -61
  356. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +0 -32
  357. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +0 -1
  358. package/packages/workers/src/http/middleware/InfrastructureValidator.js +0 -226
  359. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +0 -4
  360. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +0 -1
  361. package/packages/workers/src/http/middleware/OptionsValidator.js +0 -112
  362. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +0 -8
  363. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +0 -1
  364. package/packages/workers/src/http/middleware/PayloadSanitizer.js +0 -42
  365. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +0 -4
  366. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +0 -1
  367. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +0 -140
  368. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +0 -4
  369. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +0 -1
  370. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +0 -45
  371. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +0 -8
  372. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +0 -1
  373. package/packages/workers/src/http/middleware/ValidateDriver.js +0 -20
  374. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +0 -4
  375. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +0 -1
  376. package/packages/workers/src/http/middleware/VersionSanitizer.js +0 -25
  377. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +0 -4
  378. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +0 -1
  379. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +0 -46
  380. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +0 -28
  381. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +0 -1
  382. package/packages/workers/src/http/middleware/WorkerValidationChain.js +0 -186
  383. package/packages/workers/src/index.d.ts +0 -47
  384. package/packages/workers/src/index.d.ts.map +0 -1
  385. package/packages/workers/src/index.js +0 -48
  386. package/packages/workers/src/register.d.ts +0 -10
  387. package/packages/workers/src/register.d.ts.map +0 -1
  388. package/packages/workers/src/register.js +0 -43
  389. package/packages/workers/src/routes/workers.d.ts +0 -13
  390. package/packages/workers/src/routes/workers.d.ts.map +0 -1
  391. package/packages/workers/src/routes/workers.js +0 -126
  392. package/packages/workers/src/storage/WorkerStore.d.ts +0 -52
  393. package/packages/workers/src/storage/WorkerStore.d.ts.map +0 -1
  394. package/packages/workers/src/storage/WorkerStore.js +0 -259
  395. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +0 -47
  396. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +0 -1
  397. package/packages/workers/src/telemetry/api/TelemetryAPI.js +0 -219
  398. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +0 -18
  399. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +0 -1
  400. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +0 -140
  401. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +0 -2
  402. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +0 -1
  403. package/packages/workers/src/telemetry/components/AlertPanel.js +0 -13
  404. package/packages/workers/src/telemetry/components/CostTracking.d.ts +0 -2
  405. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +0 -1
  406. package/packages/workers/src/telemetry/components/CostTracking.js +0 -14
  407. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +0 -2
  408. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +0 -1
  409. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +0 -11
  410. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +0 -2
  411. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +0 -1
  412. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +0 -11
  413. package/packages/workers/src/telemetry/index.d.ts +0 -16
  414. package/packages/workers/src/telemetry/index.d.ts.map +0 -1
  415. package/packages/workers/src/telemetry/index.js +0 -60
  416. package/packages/workers/src/telemetry/routes/dashboard.d.ts +0 -7
  417. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +0 -1
  418. package/packages/workers/src/telemetry/routes/dashboard.js +0 -608
  419. package/packages/workers/src/type.d.ts +0 -77
  420. package/packages/workers/src/type.d.ts.map +0 -1
  421. package/packages/workers/src/type.js +0 -1
  422. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +0 -5
  423. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +0 -1
  424. package/packages/workers/src/ui/router/EmbeddedAssets.js +0 -13
  425. package/packages/workers/src/ui/router/ui.d.ts +0 -4
  426. package/packages/workers/src/ui/router/ui.d.ts.map +0 -1
  427. package/packages/workers/src/ui/router/ui.js +0 -208
  428. package/packages/workers/src/ui/types/worker-ui.d.ts +0 -230
  429. package/packages/workers/src/ui/types/worker-ui.d.ts.map +0 -1
  430. package/packages/workers/src/ui/types/worker-ui.js +0 -5
  431. package/routes/DirectTestRoutes.d.ts +0 -25
  432. package/routes/DirectTestRoutes.d.ts.map +0 -1
  433. package/routes/DirectTestRoutes.js +0 -480
  434. package/routes/TestRoutes.d.ts +0 -11
  435. package/routes/TestRoutes.d.ts.map +0 -1
  436. package/routes/TestRoutes.js +0 -25
  437. package/routes/api.d.ts +0 -7
  438. package/routes/api.d.ts.map +0 -1
  439. package/routes/api.js +0 -136
  440. package/routes/apiDev.d.ts +0 -7
  441. package/routes/apiDev.d.ts.map +0 -1
  442. package/routes/apiDev.js +0 -92
  443. package/routes/broadcast.d.ts +0 -9
  444. package/routes/broadcast.d.ts.map +0 -1
  445. package/routes/broadcast.js +0 -27
  446. package/routes/mail.d.ts +0 -12
  447. package/routes/mail.d.ts.map +0 -1
  448. package/routes/mail.js +0 -138
  449. package/routes/storage.d.ts +0 -4
  450. package/routes/storage.d.ts.map +0 -1
  451. package/routes/storage.js +0 -35
  452. package/start.d.ts +0 -1
  453. package/start.js +0 -1
@@ -1,111 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SLAMonitor.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/SLAMonitor.ts"],"names":[],"mappings":"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"}
@@ -1,274 +0,0 @@
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;
@@ -1,226 +0,0 @@
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
- * List worker definitions discovered from project files.
193
- */
194
- listFileBackedRecords(): Promise<WorkerRecord[]>;
195
- /**
196
- * Get a file-backed worker definition by name.
197
- */
198
- getFileBackedRecord(name: string): Promise<WorkerRecord | null>;
199
- /**
200
- * Get persisted worker record
201
- */
202
- getPersisted(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<WorkerRecord | null>;
203
- /**
204
- * Remove worker
205
- */
206
- remove(name: string, persistenceOverride?: WorkerPersistenceConfig): Promise<void>;
207
- /**
208
- * Get worker metrics
209
- */
210
- getMetrics(name: string): Promise<unknown>;
211
- /**
212
- * Get worker health
213
- */
214
- getHealth(name: string): Promise<unknown>;
215
- /**
216
- * Shutdown all workers
217
- */
218
- shutdown(): Promise<void>;
219
- /**
220
- * Reset persistence connection state.
221
- * Useful when connections become stale in long-running processes or serverless environments.
222
- */
223
- resetPersistence(): Promise<void>;
224
- }>;
225
- export {};
226
- //# sourceMappingURL=WorkerFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkerFactory.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/WorkerFactory.ts"],"names":[],"mappings":"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"}