bunqueue 2.8.53 → 2.8.56

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 (747) hide show
  1. package/dist/application/background/dlq.d.ts +2 -0
  2. package/dist/application/background/dlq.js +26 -0
  3. package/dist/application/background/lifecycle.d.ts +4 -0
  4. package/dist/application/background/lifecycle.js +90 -0
  5. package/dist/application/background/recovery/active.d.ts +4 -0
  6. package/dist/application/background/recovery/active.js +69 -0
  7. package/dist/application/background/recovery/index.d.ts +2 -0
  8. package/dist/application/background/recovery/index.js +22 -0
  9. package/dist/application/background/recovery/pending.d.ts +3 -0
  10. package/dist/application/background/recovery/pending.js +69 -0
  11. package/dist/application/background/recovery/restore.d.ts +5 -0
  12. package/dist/application/background/recovery/restore.js +58 -0
  13. package/dist/application/background/recovery/shared.d.ts +6 -0
  14. package/dist/application/background/recovery/shared.js +15 -0
  15. package/dist/application/background/timeouts.d.ts +25 -0
  16. package/dist/application/background/timeouts.js +191 -0
  17. package/dist/application/backgroundTasks.d.ts +7 -31
  18. package/dist/application/backgroundTasks.js +6 -438
  19. package/dist/application/cleanupTasks.js +2 -1
  20. package/dist/application/clientTracking.js +3 -1
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +9 -0
  23. package/dist/application/dependencyResultTracker.d.ts +1 -0
  24. package/dist/application/dependencyResultTracker.js +3 -0
  25. package/dist/application/dlqManager.d.ts +9 -9
  26. package/dist/application/dlqManager.js +49 -167
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +24 -4
  30. package/dist/application/lockOperations.js +16 -3
  31. package/dist/application/operations/ack/batch.d.ts +8 -0
  32. package/dist/application/operations/ack/batch.js +64 -0
  33. package/dist/application/operations/ack/completion.d.ts +3 -0
  34. package/dist/application/operations/ack/completion.js +74 -0
  35. package/dist/application/operations/ack/failure.d.ts +3 -0
  36. package/dist/application/operations/ack/failure.js +160 -0
  37. package/dist/application/operations/ack.d.ts +5 -79
  38. package/dist/application/operations/ack.js +4 -319
  39. package/dist/application/operations/ackHelpers.d.ts +3 -52
  40. package/dist/application/operations/ackHelpers.js +11 -4
  41. package/dist/application/operations/customId.d.ts +18 -5
  42. package/dist/application/operations/customId.js +36 -25
  43. package/dist/application/operations/flowValidation.js +9 -4
  44. package/dist/application/operations/jobManagement.js +50 -11
  45. package/dist/application/operations/jobMoveOperations.js +3 -3
  46. package/dist/application/operations/jobStateTransitions.d.ts +1 -1
  47. package/dist/application/operations/jobStateTransitions.js +16 -2
  48. package/dist/application/operations/parentLink.d.ts +36 -0
  49. package/dist/application/operations/parentLink.js +153 -0
  50. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  51. package/dist/application/operations/parentLinkInput.js +23 -0
  52. package/dist/application/operations/push.d.ts +5 -44
  53. package/dist/application/operations/push.js +62 -152
  54. package/dist/application/operations/pushAdmission.d.ts +32 -0
  55. package/dist/application/operations/pushAdmission.js +38 -0
  56. package/dist/application/operations/pushBatch.d.ts +4 -0
  57. package/dist/application/operations/pushBatch.js +136 -0
  58. package/dist/application/operations/pushContext.d.ts +39 -0
  59. package/dist/application/operations/pushContext.js +1 -0
  60. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  61. package/dist/application/operations/pushDeduplication.js +131 -0
  62. package/dist/application/operations/pushInsert.d.ts +13 -1
  63. package/dist/application/operations/pushInsert.js +33 -17
  64. package/dist/application/operations/pushLocks.js +13 -9
  65. package/dist/application/operations/query/collect.d.ts +12 -0
  66. package/dist/application/operations/query/collect.js +118 -0
  67. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  68. package/dist/application/operations/query/jobLookup.js +110 -0
  69. package/dist/application/operations/query/pagination.d.ts +8 -0
  70. package/dist/application/operations/query/pagination.js +90 -0
  71. package/dist/application/operations/query/state.d.ts +4 -0
  72. package/dist/application/operations/query/state.js +63 -0
  73. package/dist/application/operations/queryOperations.d.ts +5 -50
  74. package/dist/application/operations/queryOperations.js +4 -474
  75. package/dist/application/queue-manager/ack.d.ts +23 -0
  76. package/dist/application/queue-manager/ack.js +242 -0
  77. package/dist/application/queue-manager/configuration.d.ts +27 -0
  78. package/dist/application/queue-manager/configuration.js +84 -0
  79. package/dist/application/queue-manager/context.d.ts +5 -0
  80. package/dist/application/queue-manager/context.js +61 -0
  81. package/dist/application/queue-manager/control.d.ts +17 -0
  82. package/dist/application/queue-manager/control.js +133 -0
  83. package/dist/application/queue-manager/delivery.d.ts +32 -0
  84. package/dist/application/queue-manager/delivery.js +143 -0
  85. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  86. package/dist/application/queue-manager/dependencies.js +127 -0
  87. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  88. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  89. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  90. package/dist/application/queue-manager/flow-failures.js +107 -0
  91. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  92. package/dist/application/queue-manager/flow-options.js +129 -0
  93. package/dist/application/queue-manager/job-management.d.ts +17 -0
  94. package/dist/application/queue-manager/job-management.js +100 -0
  95. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  96. package/dist/application/queue-manager/lifecycle.js +41 -0
  97. package/dist/application/queue-manager/limits.d.ts +41 -0
  98. package/dist/application/queue-manager/limits.js +108 -0
  99. package/dist/application/queue-manager/locks.d.ts +21 -0
  100. package/dist/application/queue-manager/locks.js +59 -0
  101. package/dist/application/queue-manager/observability.d.ts +16 -0
  102. package/dist/application/queue-manager/observability.js +44 -0
  103. package/dist/application/queue-manager/queries.d.ts +17 -0
  104. package/dist/application/queue-manager/queries.js +118 -0
  105. package/dist/application/queue-manager/repeat.d.ts +4 -0
  106. package/dist/application/queue-manager/repeat.js +26 -0
  107. package/dist/application/queue-manager/services.d.ts +19 -0
  108. package/dist/application/queue-manager/services.js +80 -0
  109. package/dist/application/queue-manager/state.d.ts +92 -0
  110. package/dist/application/queue-manager/state.js +144 -0
  111. package/dist/application/queue-manager/stats.d.ts +28 -0
  112. package/dist/application/queue-manager/stats.js +52 -0
  113. package/dist/application/queueManager.d.ts +4 -380
  114. package/dist/application/queueManager.js +3 -1880
  115. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  116. package/dist/application/queueTelemetryJournal.js +133 -0
  117. package/dist/application/repeatJobs.d.ts +7 -0
  118. package/dist/application/repeatJobs.js +132 -0
  119. package/dist/application/stallDetection.js +9 -4
  120. package/dist/application/types/ack.d.ts +132 -0
  121. package/dist/application/types/ack.js +1 -0
  122. package/dist/application/types/background.d.ts +18 -0
  123. package/dist/application/types/background.js +1 -0
  124. package/dist/application/types/config.d.ts +37 -0
  125. package/dist/application/types/config.js +15 -0
  126. package/dist/application/types/contextFactory.d.ts +83 -0
  127. package/dist/application/types/contextFactory.js +1 -0
  128. package/dist/application/types/contexts.d.ts +110 -0
  129. package/dist/application/types/contexts.js +1 -0
  130. package/dist/application/types/index.d.ts +7 -0
  131. package/dist/application/types/index.js +1 -0
  132. package/dist/application/types/query.d.ts +23 -0
  133. package/dist/application/types/query.js +1 -0
  134. package/dist/application/types/queueManager.d.ts +94 -0
  135. package/dist/application/types/queueManager.js +1 -0
  136. package/dist/cli/commandRouter.d.ts +1 -1
  137. package/dist/cli/commands/core.js +1 -0
  138. package/dist/cli/output/collections.d.ts +8 -0
  139. package/dist/cli/output/collections.js +131 -0
  140. package/dist/cli/output/jobs.d.ts +2 -0
  141. package/dist/cli/output/jobs.js +61 -0
  142. package/dist/cli/output/style.d.ts +14 -0
  143. package/dist/cli/output/style.js +28 -0
  144. package/dist/cli/output/success.d.ts +1 -0
  145. package/dist/cli/output/success.js +108 -0
  146. package/dist/cli/output.d.ts +1 -6
  147. package/dist/cli/output.js +7 -395
  148. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  149. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  150. package/dist/client/bunqueue/runtime.d.ts +35 -0
  151. package/dist/client/bunqueue/runtime.js +138 -0
  152. package/dist/client/bunqueue.d.ts +19 -34
  153. package/dist/client/bunqueue.js +45 -166
  154. package/dist/client/dlqConversion.d.ts +5 -0
  155. package/dist/client/dlqConversion.js +28 -0
  156. package/dist/client/events.d.ts +7 -56
  157. package/dist/client/events.js +38 -15
  158. package/dist/client/flow.d.ts +6 -12
  159. package/dist/client/flow.js +16 -34
  160. package/dist/client/flowJobDependencies.js +3 -1
  161. package/dist/client/flowJobFactory.d.ts +9 -1
  162. package/dist/client/flowJobFactory.js +25 -9
  163. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  164. package/dist/client/flowJobMoveMethods.js +37 -17
  165. package/dist/client/flowLegacyPlan.js +22 -8
  166. package/dist/client/flowOptions.d.ts +1 -1
  167. package/dist/client/flowOptions.js +2 -1
  168. package/dist/client/flowPlan.js +2 -3
  169. package/dist/client/flowPush.d.ts +1 -0
  170. package/dist/client/flowPush.js +5 -1
  171. package/dist/client/flowReader.js +5 -5
  172. package/dist/client/flowResults.d.ts +11 -0
  173. package/dist/client/flowResults.js +42 -0
  174. package/dist/client/index.d.ts +3 -1
  175. package/dist/client/jobConversion.d.ts +3 -7
  176. package/dist/client/jobConversion.js +36 -33
  177. package/dist/client/jobConversionHelpers.d.ts +19 -3
  178. package/dist/client/jobConversionHelpers.js +20 -16
  179. package/dist/client/jobConversionTypes.d.ts +8 -0
  180. package/dist/client/jobDeduplication.d.ts +6 -0
  181. package/dist/client/jobDeduplication.js +14 -0
  182. package/dist/client/jobHelpers.d.ts +7 -2
  183. package/dist/client/jobHelpers.js +16 -8
  184. package/dist/client/queue/bullmqCompat.d.ts +18 -8
  185. package/dist/client/queue/bullmqCompat.js +39 -71
  186. package/dist/client/queue/deduplication.d.ts +2 -0
  187. package/dist/client/queue/deduplication.js +20 -11
  188. package/dist/client/queue/dlq.d.ts +11 -6
  189. package/dist/client/queue/dlq.js +57 -16
  190. package/dist/client/queue/dlqJobMethods.d.ts +9 -0
  191. package/dist/client/queue/dlqJobMethods.js +177 -0
  192. package/dist/client/queue/dlqOps.d.ts +2 -1
  193. package/dist/client/queue/dlqOps.js +4 -10
  194. package/dist/client/queue/dlqStats.d.ts +3 -0
  195. package/dist/client/queue/dlqStats.js +21 -0
  196. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  197. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  198. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  199. package/dist/client/queue/job-proxy/reflection.js +18 -0
  200. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  201. package/dist/client/queue/job-proxy/simple.js +316 -0
  202. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  203. package/dist/client/queue/job-proxy/tcp.js +191 -0
  204. package/dist/client/queue/jobMetadata.d.ts +10 -0
  205. package/dist/client/queue/jobMetadata.js +24 -0
  206. package/dist/client/queue/jobMove.d.ts +4 -4
  207. package/dist/client/queue/jobMove.js +87 -24
  208. package/dist/client/queue/jobProxy.d.ts +4 -50
  209. package/dist/client/queue/jobProxy.js +3 -511
  210. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  211. package/dist/client/queue/operations/add/bulk.js +129 -0
  212. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  213. package/dist/client/queue/operations/add/payload.js +85 -0
  214. package/dist/client/queue/operations/add/single.d.ts +3 -0
  215. package/dist/client/queue/operations/add/single.js +107 -0
  216. package/dist/client/queue/operations/add.d.ts +2 -47
  217. package/dist/client/queue/operations/add.js +2 -347
  218. package/dist/client/queue/operations/index.d.ts +1 -0
  219. package/dist/client/queue/operations/index.js +1 -0
  220. package/dist/client/queue/operations/management.d.ts +0 -4
  221. package/dist/client/queue/operations/management.js +35 -6
  222. package/dist/client/queue/operations/query.d.ts +1 -20
  223. package/dist/client/queue/operations/query.js +38 -116
  224. package/dist/client/queue/operations/queryStates.d.ts +13 -0
  225. package/dist/client/queue/operations/queryStates.js +32 -0
  226. package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
  227. package/dist/client/queue/operations/queryTcpPages.js +40 -0
  228. package/dist/client/queue/queue.d.ts +6 -189
  229. package/dist/client/queue/queue.js +6 -547
  230. package/dist/client/queue/rateLimit.d.ts +4 -4
  231. package/dist/client/queue/rateLimit.js +17 -8
  232. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  233. package/dist/client/queue/runtime/compatibility.js +38 -0
  234. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  235. package/dist/client/queue/runtime/configuration.js +109 -0
  236. package/dist/client/queue/runtime/connection.d.ts +6 -0
  237. package/dist/client/queue/runtime/connection.js +16 -0
  238. package/dist/client/queue/runtime/control.d.ts +41 -0
  239. package/dist/client/queue/runtime/control.js +87 -0
  240. package/dist/client/queue/runtime/queries.d.ts +48 -0
  241. package/dist/client/queue/runtime/queries.js +95 -0
  242. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  243. package/dist/client/queue/runtime/scheduling.js +56 -0
  244. package/dist/client/queue/runtime/state.d.ts +96 -0
  245. package/dist/client/queue/runtime/state.js +149 -0
  246. package/dist/client/queue/scheduler.d.ts +2 -5
  247. package/dist/client/queue/scheduler.js +25 -23
  248. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  249. package/dist/client/queue/schedulerPagination.js +10 -0
  250. package/dist/client/queue/types/add.d.ts +40 -0
  251. package/dist/client/queue/types/add.js +1 -0
  252. package/dist/client/queue/types/contexts.d.ts +33 -0
  253. package/dist/client/queue/types/contexts.js +5 -0
  254. package/dist/client/queue/types/index.d.ts +3 -0
  255. package/dist/client/queue/types/index.js +1 -0
  256. package/dist/client/queue/types/job.d.ts +50 -0
  257. package/dist/client/queue/types/job.js +1 -0
  258. package/dist/client/queue/types/runtime.d.ts +35 -0
  259. package/dist/client/queue/types/runtime.js +1 -0
  260. package/dist/client/queue/workers.d.ts +16 -8
  261. package/dist/client/queue/workers.js +42 -16
  262. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  263. package/dist/client/queue-events/tcpSubscription.js +99 -0
  264. package/dist/client/queueGroup.d.ts +11 -0
  265. package/dist/client/queueGroup.js +28 -1
  266. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  267. package/dist/client/sandboxed/queueOps.js +32 -5
  268. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  269. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  270. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  271. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  272. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  273. package/dist/client/sandboxed/runtime/log.js +15 -0
  274. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  275. package/dist/client/sandboxed/runtime/pool.js +121 -0
  276. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  277. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  278. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  279. package/dist/client/sandboxed/runtime/state.js +59 -0
  280. package/dist/client/sandboxed/types/index.d.ts +2 -0
  281. package/dist/client/sandboxed/types/index.js +1 -0
  282. package/dist/client/sandboxed/types/options.d.ts +27 -0
  283. package/dist/client/sandboxed/types/options.js +1 -0
  284. package/dist/client/sandboxed/types/process.d.ts +30 -0
  285. package/dist/client/sandboxed/types/process.js +1 -0
  286. package/dist/client/sandboxed/worker.d.ts +3 -85
  287. package/dist/client/sandboxed/worker.js +3 -557
  288. package/dist/client/sandboxed/wrapper.js +1 -0
  289. package/dist/client/tcp/client.d.ts +5 -112
  290. package/dist/client/tcp/client.js +5 -481
  291. package/dist/client/tcp/commandQueue.d.ts +23 -0
  292. package/dist/client/tcp/commandQueue.js +89 -0
  293. package/dist/client/tcp/connection.d.ts +4 -85
  294. package/dist/client/tcp/connection.js +3 -315
  295. package/dist/client/tcp/errors.d.ts +6 -0
  296. package/dist/client/tcp/errors.js +18 -0
  297. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  298. package/dist/client/tcp/runtime/commands.js +124 -0
  299. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  300. package/dist/client/tcp/runtime/connectivity.js +77 -0
  301. package/dist/client/tcp/runtime/health.d.ts +14 -0
  302. package/dist/client/tcp/runtime/health.js +127 -0
  303. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  304. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  305. package/dist/client/tcp/runtime/state.d.ts +50 -0
  306. package/dist/client/tcp/runtime/state.js +45 -0
  307. package/dist/client/tcp/transport.d.ts +18 -0
  308. package/dist/client/tcp/transport.js +158 -0
  309. package/dist/client/tcp/types/command.d.ts +9 -0
  310. package/dist/client/tcp/types/command.js +1 -0
  311. package/dist/client/tcp/types/connection.d.ts +31 -0
  312. package/dist/client/tcp/types/connection.js +17 -0
  313. package/dist/client/tcp/types/index.d.ts +5 -0
  314. package/dist/client/tcp/types/index.js +1 -0
  315. package/dist/client/tcp/types/socket.d.ts +8 -0
  316. package/dist/client/tcp/types/socket.js +1 -0
  317. package/dist/client/tcp/types/tls.d.ts +4 -0
  318. package/dist/client/tcp/types/tls.js +1 -0
  319. package/dist/client/tcp/types.d.ts +2 -106
  320. package/dist/client/tcp/types.js +2 -22
  321. package/dist/client/types/connection.d.ts +29 -0
  322. package/dist/client/types/connection.js +1 -0
  323. package/dist/client/types/dlq.d.ts +45 -0
  324. package/dist/client/types/dlq.js +1 -0
  325. package/dist/client/types/events.d.ts +54 -0
  326. package/dist/client/types/events.js +1 -0
  327. package/dist/client/types/flow.d.ts +10 -0
  328. package/dist/client/types/flow.js +1 -0
  329. package/dist/client/types/index.d.ts +10 -0
  330. package/dist/client/types/index.js +1 -0
  331. package/dist/client/types/job.d.ts +127 -0
  332. package/dist/client/types/job.js +1 -0
  333. package/dist/client/types/metrics.d.ts +1 -0
  334. package/dist/client/types/metrics.js +1 -0
  335. package/dist/client/types/options.d.ts +62 -0
  336. package/dist/client/types/options.js +1 -0
  337. package/dist/client/types/worker.d.ts +38 -0
  338. package/dist/client/types/worker.js +1 -0
  339. package/dist/client/types.d.ts +2 -583
  340. package/dist/client/types.js +2 -6
  341. package/dist/client/worker/ackBatcher.d.ts +1 -1
  342. package/dist/client/worker/ackBatcher.js +17 -5
  343. package/dist/client/worker/ackOutcome.d.ts +8 -0
  344. package/dist/client/worker/ackOutcome.js +58 -0
  345. package/dist/client/worker/constants.d.ts +7 -0
  346. package/dist/client/worker/constants.js +7 -0
  347. package/dist/client/worker/groupConcurrency.js +3 -0
  348. package/dist/client/worker/handlers/completion.d.ts +28 -0
  349. package/dist/client/worker/handlers/completion.js +68 -0
  350. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  351. package/dist/client/worker/handlers/dependencies.js +107 -0
  352. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  353. package/dist/client/worker/handlers/mutations.js +211 -0
  354. package/dist/client/worker/handlers/queries.d.ts +15 -0
  355. package/dist/client/worker/handlers/queries.js +100 -0
  356. package/dist/client/worker/index.d.ts +2 -2
  357. package/dist/client/worker/index.js +1 -1
  358. package/dist/client/worker/jobParser.js +4 -2
  359. package/dist/client/worker/processor.d.ts +2 -15
  360. package/dist/client/worker/processor.js +68 -125
  361. package/dist/client/worker/processorHandlers.d.ts +4 -65
  362. package/dist/client/worker/processorHandlers.js +4 -400
  363. package/dist/client/worker/processorOutcome.d.ts +14 -0
  364. package/dist/client/worker/processorOutcome.js +125 -0
  365. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  366. package/dist/client/worker/runtime/buffer.js +50 -0
  367. package/dist/client/worker/runtime/control.d.ts +26 -0
  368. package/dist/client/worker/runtime/control.js +175 -0
  369. package/dist/client/worker/runtime/execution.d.ts +11 -0
  370. package/dist/client/worker/runtime/execution.js +123 -0
  371. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  372. package/dist/client/worker/runtime/lifecycle.js +114 -0
  373. package/dist/client/worker/runtime/manual.d.ts +10 -0
  374. package/dist/client/worker/runtime/manual.js +137 -0
  375. package/dist/client/worker/runtime/options.d.ts +5 -0
  376. package/dist/client/worker/runtime/options.js +39 -0
  377. package/dist/client/worker/runtime/polling.d.ts +12 -0
  378. package/dist/client/worker/runtime/polling.js +123 -0
  379. package/dist/client/worker/runtime/state.d.ts +110 -0
  380. package/dist/client/worker/runtime/state.js +156 -0
  381. package/dist/client/worker/types/index.d.ts +5 -0
  382. package/dist/client/worker/types/index.js +1 -0
  383. package/dist/client/worker/types/manual.d.ts +7 -0
  384. package/dist/client/worker/types/manual.js +1 -0
  385. package/dist/client/worker/types/options.d.ts +24 -0
  386. package/dist/client/worker/types/options.js +1 -0
  387. package/dist/client/worker/types/outcome.d.ts +23 -0
  388. package/dist/client/worker/types/outcome.js +1 -0
  389. package/dist/client/worker/types/processor.d.ts +22 -0
  390. package/dist/client/worker/types/processor.js +1 -0
  391. package/dist/client/worker/types/transport.d.ts +11 -0
  392. package/dist/client/worker/types/transport.js +1 -0
  393. package/dist/client/worker/worker.d.ts +3 -160
  394. package/dist/client/worker/worker.js +3 -904
  395. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  396. package/dist/client/worker/workerRateLimiter.js +40 -20
  397. package/dist/client/worker.d.ts +1 -0
  398. package/dist/client/workflow/compensationChild.d.ts +2 -1
  399. package/dist/client/workflow/compensationChild.js +1 -1
  400. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  401. package/dist/client/workflow/compensationClaim.js +30 -0
  402. package/dist/client/workflow/compensator.d.ts +7 -2
  403. package/dist/client/workflow/compensator.js +5 -11
  404. package/dist/client/workflow/recovery.js +25 -2
  405. package/dist/client/workflow/rollbackControl.js +1 -1
  406. package/dist/domain/job/constants.d.ts +12 -0
  407. package/dist/domain/job/constants.js +12 -0
  408. package/dist/domain/job/create.d.ts +2 -0
  409. package/dist/domain/job/create.js +103 -0
  410. package/dist/domain/job/ids.d.ts +5 -0
  411. package/dist/domain/job/ids.js +12 -0
  412. package/dist/domain/job/locks.d.ts +4 -0
  413. package/dist/domain/job/locks.js +23 -0
  414. package/dist/domain/job/payload.d.ts +18 -0
  415. package/dist/domain/job/payload.js +43 -0
  416. package/dist/domain/job/state.d.ts +8 -0
  417. package/dist/domain/job/state.js +51 -0
  418. package/dist/domain/job/terminal.d.ts +3 -0
  419. package/dist/domain/job/terminal.js +9 -0
  420. package/dist/domain/queue/dlqShard.d.ts +2 -0
  421. package/dist/domain/queue/dlqShard.js +34 -9
  422. package/dist/domain/queue/limiterManager.d.ts +11 -0
  423. package/dist/domain/queue/limiterManager.js +28 -0
  424. package/dist/domain/queue/priorityQueue.js +3 -39
  425. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  426. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  427. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  428. package/dist/domain/queue/shard/dependencies.js +22 -0
  429. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  430. package/dist/domain/queue/shard/dlq.js +71 -0
  431. package/dist/domain/queue/shard/keys.d.ts +18 -0
  432. package/dist/domain/queue/shard/keys.js +45 -0
  433. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  434. package/dist/domain/queue/shard/lifecycle.js +43 -0
  435. package/dist/domain/queue/shard/limits.d.ts +24 -0
  436. package/dist/domain/queue/shard/limits.js +57 -0
  437. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  438. package/dist/domain/queue/shard/metrics.js +72 -0
  439. package/dist/domain/queue/shard/state.d.ts +34 -0
  440. package/dist/domain/queue/shard/state.js +80 -0
  441. package/dist/domain/queue/shard.d.ts +5 -137
  442. package/dist/domain/queue/shard.js +4 -390
  443. package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
  444. package/dist/domain/queue/uniqueKeyManager.js +9 -1
  445. package/dist/domain/response/builders.d.ts +15 -0
  446. package/dist/domain/response/builders.js +39 -0
  447. package/dist/domain/types/command.d.ts +2 -522
  448. package/dist/domain/types/command.js +2 -5
  449. package/dist/domain/types/commands/base.d.ts +5 -0
  450. package/dist/domain/types/commands/base.js +1 -0
  451. package/dist/domain/types/commands/core.d.ts +106 -0
  452. package/dist/domain/types/commands/core.js +1 -0
  453. package/dist/domain/types/commands/cron.d.ts +36 -0
  454. package/dist/domain/types/commands/cron.js +1 -0
  455. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  456. package/dist/domain/types/commands/dashboard.js +1 -0
  457. package/dist/domain/types/commands/dlq.d.ts +39 -0
  458. package/dist/domain/types/commands/dlq.js +1 -0
  459. package/dist/domain/types/commands/extended.d.ts +63 -0
  460. package/dist/domain/types/commands/extended.js +1 -0
  461. package/dist/domain/types/commands/index.d.ts +12 -0
  462. package/dist/domain/types/commands/index.js +12 -0
  463. package/dist/domain/types/commands/limits.d.ts +54 -0
  464. package/dist/domain/types/commands/limits.js +1 -0
  465. package/dist/domain/types/commands/management.d.ts +73 -0
  466. package/dist/domain/types/commands/management.js +1 -0
  467. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  468. package/dist/domain/types/commands/monitoring.js +1 -0
  469. package/dist/domain/types/commands/protocol.d.ts +20 -0
  470. package/dist/domain/types/commands/protocol.js +1 -0
  471. package/dist/domain/types/commands/query.d.ts +46 -0
  472. package/dist/domain/types/commands/query.js +1 -0
  473. package/dist/domain/types/commands/union.d.ts +13 -0
  474. package/dist/domain/types/commands/union.js +1 -0
  475. package/dist/domain/types/commands/workers.d.ts +39 -0
  476. package/dist/domain/types/commands/workers.js +1 -0
  477. package/dist/domain/types/cron.d.ts +4 -2
  478. package/dist/domain/types/cron.js +3 -0
  479. package/dist/domain/types/dlq.d.ts +17 -0
  480. package/dist/domain/types/dlq.js +70 -14
  481. package/dist/domain/types/index.d.ts +2 -0
  482. package/dist/domain/types/index.js +1 -0
  483. package/dist/domain/types/job.d.ts +8 -269
  484. package/dist/domain/types/job.js +8 -234
  485. package/dist/domain/types/jobs/model.d.ts +152 -0
  486. package/dist/domain/types/jobs/model.js +1 -0
  487. package/dist/domain/types/metrics.d.ts +16 -0
  488. package/dist/domain/types/metrics.js +1 -0
  489. package/dist/domain/types/priorityQueue.d.ts +12 -0
  490. package/dist/domain/types/priorityQueue.js +1 -0
  491. package/dist/domain/types/protocol.d.ts +5 -0
  492. package/dist/domain/types/protocol.js +4 -0
  493. package/dist/domain/types/queue.d.ts +7 -0
  494. package/dist/domain/types/queue.js +13 -0
  495. package/dist/domain/types/response.d.ts +3 -192
  496. package/dist/domain/types/response.js +3 -101
  497. package/dist/domain/types/responses/model.d.ts +152 -0
  498. package/dist/domain/types/responses/model.js +1 -0
  499. package/dist/domain/types/shard.d.ts +4 -0
  500. package/dist/domain/types/shard.js +1 -0
  501. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  502. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  503. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  504. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  505. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  506. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  507. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  508. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  509. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  510. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  511. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  512. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  513. package/dist/infrastructure/cloud/commands.js +7 -344
  514. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  515. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  516. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  517. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  518. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  519. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  520. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  521. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  522. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  523. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  524. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  525. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  526. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  527. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  528. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  529. package/dist/infrastructure/cloud/types/collector.js +1 -0
  530. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  531. package/dist/infrastructure/cloud/types/command.js +1 -0
  532. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  533. package/dist/infrastructure/cloud/types/config.js +1 -0
  534. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  535. package/dist/infrastructure/cloud/types/event.js +1 -0
  536. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  537. package/dist/infrastructure/cloud/types/redact.js +1 -0
  538. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  539. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  540. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  541. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  542. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  543. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  544. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  545. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  546. package/dist/infrastructure/cloud/types.d.ts +3 -445
  547. package/dist/infrastructure/cloud/types.js +0 -4
  548. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  549. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  550. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  551. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  552. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  553. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  554. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  555. package/dist/infrastructure/persistence/migrations.js +120 -0
  556. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  557. package/dist/infrastructure/persistence/schema.js +40 -136
  558. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  559. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  560. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  561. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  562. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  563. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  564. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  565. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  566. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  567. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  568. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  569. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  570. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  571. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  572. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  573. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  574. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  575. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  576. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  577. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  578. package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
  579. package/dist/infrastructure/persistence/sqlite.js +3 -997
  580. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  581. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  582. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  583. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  584. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  585. package/dist/infrastructure/persistence/statements.js +14 -9
  586. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  587. package/dist/infrastructure/persistence/types/admission.js +1 -0
  588. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  589. package/dist/infrastructure/persistence/types/batch.js +1 -0
  590. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  591. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  592. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  593. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  594. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  595. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  596. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  597. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  598. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  599. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  600. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  601. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  602. package/dist/infrastructure/server/bootstrap.js +3 -0
  603. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  604. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  605. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  606. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  607. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  608. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  609. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  610. package/dist/infrastructure/server/handlerRoutes.js +3 -257
  611. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  612. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  613. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  614. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  615. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  616. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  617. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  618. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  619. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  620. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  621. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  622. package/dist/infrastructure/server/handlers/core.js +37 -20
  623. package/dist/infrastructure/server/handlers/cron.js +9 -1
  624. package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
  625. package/dist/infrastructure/server/handlers/dlq.js +18 -4
  626. package/dist/infrastructure/server/handlers/flow.js +6 -1
  627. package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
  628. package/dist/infrastructure/server/handlers/introspection.js +21 -0
  629. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  630. package/dist/infrastructure/server/handlers/management.js +30 -0
  631. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  632. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  633. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  634. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  635. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  636. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  637. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  638. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  639. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  640. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  641. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  642. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  643. package/dist/infrastructure/server/handlers/query.js +13 -4
  644. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  645. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  646. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  647. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  648. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  649. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  650. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  651. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  652. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  653. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  654. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  655. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  656. package/dist/infrastructure/server/protocol/commands.js +31 -0
  657. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  658. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  659. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  660. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  661. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  662. package/dist/infrastructure/server/protocol/validation.js +75 -0
  663. package/dist/infrastructure/server/protocol.d.ts +5 -77
  664. package/dist/infrastructure/server/protocol.js +4 -265
  665. package/dist/infrastructure/server/rateLimiter.js +1 -0
  666. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  667. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  668. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  669. package/dist/infrastructure/server/sse/constants.js +5 -0
  670. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  671. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  672. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  673. package/dist/infrastructure/server/sseHandler.js +20 -96
  674. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  675. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  676. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  677. package/dist/infrastructure/server/tcp/connections.js +162 -0
  678. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  679. package/dist/infrastructure/server/tcp/constants.js +3 -0
  680. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  681. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  682. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  683. package/dist/infrastructure/server/tcp/responses.js +8 -0
  684. package/dist/infrastructure/server/tcp.d.ts +10 -68
  685. package/dist/infrastructure/server/tcp.js +47 -256
  686. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  687. package/dist/infrastructure/server/types/protocol.js +1 -0
  688. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  689. package/dist/infrastructure/server/types/sse.js +1 -0
  690. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  691. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  692. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  693. package/dist/infrastructure/server/types/ws.js +1 -0
  694. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  695. package/dist/infrastructure/server/ws/constants.js +130 -0
  696. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  697. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  698. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  699. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  700. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  701. package/dist/infrastructure/server/wsHandler.js +12 -237
  702. package/dist/mcp/adapter.d.ts +5 -403
  703. package/dist/mcp/adapter.js +6 -778
  704. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  705. package/dist/mcp/backend/embedded/base.js +15 -0
  706. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  707. package/dist/mcp/backend/embedded/index.js +22 -0
  708. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  709. package/dist/mcp/backend/embedded/jobs.js +98 -0
  710. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  711. package/dist/mcp/backend/embedded/queues.js +84 -0
  712. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  713. package/dist/mcp/backend/embedded/services.js +107 -0
  714. package/dist/mcp/backend/serializers.d.ts +7 -0
  715. package/dist/mcp/backend/serializers.js +32 -0
  716. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  717. package/dist/mcp/backend/tcp/base.js +54 -0
  718. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  719. package/dist/mcp/backend/tcp/index.js +20 -0
  720. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  721. package/dist/mcp/backend/tcp/jobs.js +122 -0
  722. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  723. package/dist/mcp/backend/tcp/queues.js +89 -0
  724. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  725. package/dist/mcp/backend/tcp/services.js +161 -0
  726. package/dist/mcp/types/adapter.d.ts +176 -0
  727. package/dist/mcp/types/adapter.js +1 -0
  728. package/dist/shared/asyncLock.d.ts +13 -0
  729. package/dist/shared/asyncLock.js +65 -0
  730. package/dist/shared/lock.d.ts +10 -72
  731. package/dist/shared/lock.js +7 -231
  732. package/dist/shared/lockError.d.ts +3 -0
  733. package/dist/shared/lockError.js +6 -0
  734. package/dist/shared/lockTimeout.d.ts +2 -0
  735. package/dist/shared/lockTimeout.js +2 -0
  736. package/dist/shared/rwLock.d.ts +22 -0
  737. package/dist/shared/rwLock.js +124 -0
  738. package/dist/shared/serialization.js +1 -0
  739. package/dist/shared/skipList.d.ts +0 -5
  740. package/dist/shared/skipList.js +10 -57
  741. package/dist/shared/skipListNodes.d.ts +6 -0
  742. package/dist/shared/skipListNodes.js +43 -0
  743. package/dist/shared/types/lock.d.ts +7 -0
  744. package/dist/shared/types/lock.js +1 -0
  745. package/dist/shared/types/skipList.d.ts +4 -0
  746. package/dist/shared/types/skipList.js +1 -0
  747. package/package.json +2 -1
@@ -1,282 +1,96 @@
1
- /**
2
- * TCP Server
3
- * Handles TCP connections with msgpack binary protocol
4
- * Supports pipelining with parallel command processing
5
- */
6
- import { handleCommand } from './handler';
7
- import { FrameParser, FrameSizeError, createConnectionState, } from './protocol';
8
- import { uuid } from '../../shared/hash';
9
1
  import { tcpLog } from '../../shared/logger';
2
+ import { decodeMessagePack } from '../../shared/msgpack';
3
+ import { withSemaphore } from '../../shared/semaphore';
4
+ import { handleCommand } from './handler';
5
+ import { FrameSizeError } from './protocol';
10
6
  import { getRateLimiter } from './rateLimiter';
11
- import { Semaphore, withSemaphore } from '../../shared/semaphore';
12
- import { SocketWriteQueue } from './socketWriteQueue';
7
+ import { TcpConnectionRegistry } from './tcp/connections';
8
+ import { MAX_WRITE_QUEUE_BYTES, TCP_IDLE_TIMEOUT_MS } from './tcp/constants';
9
+ import { handleEventSubscription } from './tcp/eventSubscriptions';
10
+ import { serializeTcpResponse, tcpErrorResponse } from './tcp/responses';
13
11
  import { loadTlsOptions } from './tls';
14
- import { decodeMessagePack, encodeMessagePack } from '../../shared/msgpack';
15
- /** Max concurrent commands per connection for pipelining */
16
- const MAX_CONCURRENT_PER_CONNECTION = 50;
17
- /**
18
- * Idle/read stall timeout (ms) for the slowloris mitigation. A connection that
19
- * has STARTED a frame (partial bytes buffered) but makes no further progress
20
- * toward completing it within this window is closed. Healthy connections that
21
- * are simply idle (no partial frame buffered) are never affected, so long-lived
22
- * idle-but-healthy clients are not disturbed. 0 disables the timeout.
23
- *
24
- * Implemented with a manual per-connection timer (Bun.listen has no
25
- * `idleTimeout` socket option as of Bun 1.3.x, and `socket.timeout()` resets on
26
- * every byte — so a slowloris that trickles one byte per window would defeat
27
- * it). The manual timer is armed only while a partial frame is in progress.
28
- */
29
- const TCP_IDLE_TIMEOUT_MS = Math.max(0, parseInt(Bun.env.TCP_IDLE_TIMEOUT_MS ?? '60000', 10) || 0);
30
- /**
31
- * Maximum bytes that may be buffered in a connection's outbound write queue
32
- * before the connection is dropped. A client that stops reading while the
33
- * server keeps producing responses would otherwise grow the pending queue
34
- * without bound (write-side memory DoS). Generous default (64MB). 0 disables.
35
- */
36
- const MAX_WRITE_QUEUE_BYTES = Math.max(0, parseInt(Bun.env.TCP_MAX_WRITE_QUEUE_BYTES ?? String(64 * 1024 * 1024), 10) || 0);
37
- /**
38
- * Release client jobs with retry logic and exponential backoff.
39
- * Ensures jobs are not left in an inconsistent state if release fails.
40
- */
41
- async function releaseClientJobsWithRetry(queueManager, clientId, maxRetries = 3) {
42
- let lastError;
43
- for (let attempt = 0; attempt < maxRetries; attempt++) {
44
- try {
45
- return await queueManager.releaseClientJobs(clientId);
46
- }
47
- catch (err) {
48
- lastError = err instanceof Error ? err : new Error(String(err));
49
- // Exponential backoff: 100ms, 200ms, 400ms
50
- await Bun.sleep(100 * Math.pow(2, attempt));
51
- }
52
- }
53
- tcpLog.error('Failed to release client jobs after retries', {
54
- clientId,
55
- error: lastError?.message,
56
- });
57
- throw lastError ?? new Error('Failed to release client jobs after retries');
58
- }
59
- /** Serialize response to framed msgpack */
60
- function serializeResponse(response) {
61
- return FrameParser.frame(encodeMessagePack(response));
62
- }
63
- /** Error response as framed msgpack */
64
- function errorResponse(message, reqId) {
65
- return FrameParser.frame(encodeMessagePack({ ok: false, error: message, reqId }));
66
- }
67
- /**
68
- * Create and start TCP server
69
- */
12
+ /** Create and start the MessagePack TCP server. */
70
13
  export function createTcpServer(queueManager, config) {
71
14
  const authTokens = new Set(config.authTokens ?? []);
72
- const connections = new Map();
73
- const idleTimeoutMs = config.idleTimeoutMs ?? TCP_IDLE_TIMEOUT_MS;
74
- const maxWriteQueueBytes = config.maxWriteQueueBytes ?? MAX_WRITE_QUEUE_BYTES;
75
- /** Cancel any pending stall timer for a connection. */
76
- function clearStallTimer(socket) {
77
- if (socket.data.stallTimer !== null) {
78
- clearTimeout(socket.data.stallTimer);
79
- socket.data.stallTimer = null;
80
- }
81
- }
82
- /**
83
- * (Re)arm the slowloris stall timer based on parser state. The timer runs
84
- * ONLY while a partial frame is buffered (a frame was started but not yet
85
- * completed). It is reset on every data event that still leaves a partial
86
- * frame, and cleared once the buffer drains to empty (frame completed). If it
87
- * fires, the peer started a frame and then stalled -> terminate.
88
- */
89
- function updateStallTimer(socket) {
90
- if (idleTimeoutMs <= 0)
91
- return;
92
- clearStallTimer(socket);
93
- if (!socket.data.frameParser.hasPartialFrame)
94
- return;
95
- socket.data.stallTimer = setTimeout(() => {
96
- socket.data.stallTimer = null;
97
- tcpLog.warn('Closing stalled connection (incomplete frame)', {
98
- clientId: socket.data.state.clientId,
99
- bufferedBytes: socket.data.frameParser.bufferedBytes,
100
- idleTimeoutMs,
101
- });
102
- socket.data.writeQueue.clear();
103
- socket.terminate();
104
- }, idleTimeoutMs);
105
- }
106
- /**
107
- * Initialise the per-socket state. Idempotent: safe to call from both `open`
108
- * and lazily from `data`. Under native TLS, Bun can deliver a `data` event
109
- * BEFORE `open` has run (observed near-deterministically when a Worker boots
110
- * its connections concurrently) — the handler would then destructure a null
111
- * `socket.data` and the resulting TypeError escalates to the process-level
112
- * unhandledRejection handler, taking the whole server down (a pre-auth remote
113
- * DoS on an exposed TLS port). Initialising lazily preserves that first frame
114
- * instead of dropping it; the guard makes a second `open` a no-op. See #108.
115
- */
116
- function initConnection(socket) {
117
- if (socket.data)
118
- return;
119
- const clientId = uuid();
120
- const state = createConnectionState(clientId);
121
- const abortController = new AbortController();
122
- const ctx = {
123
- queueManager,
124
- authTokens,
125
- authenticated: authTokens.size === 0, // Auto-auth if no tokens
126
- clientId, // For job ownership tracking
127
- signal: abortController.signal,
128
- };
129
- socket.data = {
130
- state,
131
- abortController,
132
- frameParser: new FrameParser(),
133
- ctx,
134
- semaphore: new Semaphore(MAX_CONCURRENT_PER_CONNECTION),
135
- writeQueue: new SocketWriteQueue(maxWriteQueueBytes),
136
- stallTimer: null,
137
- };
138
- connections.set(clientId, socket);
139
- queueManager.emitDashboardEvent('client:connected', { clientId, transport: 'tcp' });
140
- }
15
+ const registry = new TcpConnectionRegistry(queueManager, authTokens, config.idleTimeoutMs ?? TCP_IDLE_TIMEOUT_MS, config.maxWriteQueueBytes ?? MAX_WRITE_QUEUE_BYTES);
141
16
  const socketHandlers = {
142
17
  open(socket) {
143
- initConnection(socket);
18
+ registry.init(socket);
144
19
  },
145
20
  async data(socket, data) {
146
- // TLS may deliver `data` before `open` — ensure per-socket state exists. #108
147
- initConnection(socket);
21
+ registry.init(socket);
148
22
  const { frameParser, ctx, state, semaphore, writeQueue } = socket.data;
149
23
  const rateLimiter = getRateLimiter();
150
24
  let frames;
151
25
  try {
152
- // `data` is a Bun Buffer (a Uint8Array). addData copies it into its own
153
- // buffer synchronously and never retains it, so the previous defensive
154
- // `new Uint8Array(data)` wrapper was a redundant full copy per read.
155
26
  frames = frameParser.addData(data);
156
27
  }
157
- catch (err) {
158
- if (err instanceof FrameSizeError) {
159
- clearStallTimer(socket);
160
- writeQueue.write(socket, errorResponse(`Frame too large: ${err.requestedSize} bytes exceeds maximum ${err.maxSize}`));
28
+ catch (error) {
29
+ if (error instanceof FrameSizeError) {
30
+ registry.clearStallTimer(socket);
31
+ writeQueue.write(socket, tcpErrorResponse(`Frame too large: ${error.requestedSize} bytes exceeds maximum ${error.maxSize}`));
161
32
  socket.end();
162
33
  return;
163
34
  }
164
- throw err;
35
+ throw error;
165
36
  }
166
- // Slowloris mitigation: (re)arm the stall timer based on whether a partial
167
- // frame is now buffered. Progress (a completed frame draining the buffer)
168
- // disarms it; a started-but-unfinished frame arms it. This bounds memory
169
- // held by a peer that declares a large (legal) frame then never finishes.
170
- updateStallTimer(socket);
171
- // Drop a connection whose outbound queue grew unbounded (client stopped
172
- // reading while we keep producing responses) — bounds write-side memory.
173
- const dropForWriteOverflow = () => {
174
- if (writeQueue.isOverBudget) {
175
- tcpLog.warn('Closing connection: write queue exceeded budget', {
176
- clientId: state.clientId,
177
- queuedBytes: writeQueue.bytesQueued,
178
- });
179
- clearStallTimer(socket);
180
- writeQueue.clear();
181
- socket.terminate();
182
- return true;
183
- }
184
- return false;
185
- };
186
- // Process frames in parallel for pipelining support
187
- // Each command is processed with semaphore-controlled concurrency
37
+ registry.updateStallTimer(socket);
188
38
  const processFrame = async (frame) => {
189
- let cmd;
39
+ let command;
190
40
  try {
191
- cmd = decodeMessagePack(frame);
41
+ command = decodeMessagePack(frame);
192
42
  }
193
43
  catch {
194
- // Invalid complete frames still consume protocol quota. They cannot
195
- // carry a trustworthy reqId because msgpack decoding failed.
44
+ // Invalid frames still consume protocol quota.
196
45
  }
197
- const reqId = typeof cmd?.reqId === 'string' ? cmd.reqId : undefined;
46
+ const requestId = typeof command?.reqId === 'string' ? command.reqId : undefined;
198
47
  if (!rateLimiter.isAllowed(state.clientId)) {
199
48
  ctx.queueManager.emitDashboardEvent('ratelimit:hit', { clientId: state.clientId });
200
- writeQueue.write(socket, errorResponse('Rate limit exceeded', reqId));
201
- dropForWriteOverflow();
49
+ writeQueue.write(socket, tcpErrorResponse('Rate limit exceeded', requestId));
50
+ registry.dropForWriteOverflow(socket);
202
51
  return;
203
52
  }
204
- if (!cmd) {
205
- writeQueue.write(socket, errorResponse('Invalid command format'));
206
- dropForWriteOverflow();
53
+ if (!command) {
54
+ writeQueue.write(socket, tcpErrorResponse('Invalid command format'));
55
+ registry.dropForWriteOverflow(socket);
207
56
  return;
208
57
  }
209
- if (!cmd?.cmd) {
210
- writeQueue.write(socket, errorResponse('Invalid command', reqId));
211
- dropForWriteOverflow();
58
+ if (!command.cmd) {
59
+ writeQueue.write(socket, tcpErrorResponse('Invalid command', requestId));
60
+ registry.dropForWriteOverflow(socket);
212
61
  return;
213
62
  }
214
- // Process with concurrency limit
215
63
  await withSemaphore(semaphore, async () => {
216
64
  try {
217
- const response = await handleCommand(cmd, ctx);
218
- writeQueue.write(socket, serializeResponse(response));
219
- dropForWriteOverflow();
65
+ const response = command.cmd === 'SubscribeEvents' || command.cmd === 'UnsubscribeEvents'
66
+ ? handleEventSubscription(command, socket, registry)
67
+ : await handleCommand(command, ctx);
68
+ writeQueue.write(socket, serializeTcpResponse(response));
69
+ registry.dropForWriteOverflow(socket);
220
70
  }
221
- catch (err) {
222
- const raw = err instanceof Error ? err.message : 'Unknown error';
71
+ catch (error) {
72
+ const raw = error instanceof Error ? error.message : 'Unknown error';
223
73
  const message = raw.includes('SQLITE') || raw.includes('database') ? 'Internal server error' : raw;
224
- writeQueue.write(socket, errorResponse(message, cmd.reqId));
225
- dropForWriteOverflow();
74
+ writeQueue.write(socket, tcpErrorResponse(message, command.reqId));
75
+ registry.dropForWriteOverflow(socket);
226
76
  }
227
77
  });
228
78
  };
229
- // Process all frames in parallel (client uses reqId to match responses)
230
79
  await Promise.all(frames.map(processFrame));
231
80
  },
232
81
  close(socket) {
233
- // A socket can close before `open`/`data` ever initialised its state
234
- // (e.g. TLS handshake aborted) — nothing to release. #108
235
- if (!socket.data)
236
- return;
237
- socket.data.abortController.abort();
238
- const clientId = socket.data.state.clientId;
239
- // Cancel the slowloris stall timer and drop any buffered-but-unwritten
240
- // bytes; the socket is gone.
241
- clearStallTimer(socket);
242
- socket.data.writeQueue.clear();
243
- connections.delete(clientId);
244
- getRateLimiter().removeClient(clientId);
245
- queueManager.unregisterWorkersByClientId(clientId);
246
- queueManager.emitDashboardEvent('client:disconnected', { clientId, transport: 'tcp' });
247
- // Release all jobs owned by this client back to queue with retry logic
248
- releaseClientJobsWithRetry(queueManager, clientId)
249
- .then(() => {
250
- // Jobs released successfully
251
- })
252
- .catch((err) => {
253
- // After all retries failed, fall back to a force-release that
254
- // unconditionally clears client tracking (prevents Map leak) and
255
- // resets heartbeats so the stall detector recovers any orphaned
256
- // 'active' jobs on its next tick.
257
- const touched = queueManager.forceReleaseClientJobs(clientId);
258
- tcpLog.error('Client jobs release failed; fell back to force-release', {
259
- clientId,
260
- error: String(err),
261
- forcedJobs: touched,
262
- note: 'Stall detector will recover orphaned active jobs on next tick',
263
- });
264
- });
82
+ registry.close(socket);
265
83
  },
266
84
  error(_socket, error) {
267
85
  tcpLog.error('Connection error', { error: error.message });
268
86
  },
269
87
  drain(socket) {
270
- // Can fire before per-socket state is initialised under TLS. #108
271
88
  if (!socket.data)
272
89
  return;
273
- // Socket is ready for more writes after backpressure: flush any unwritten
274
- // tail bytes buffered by short writes, preserving frame order.
275
- socket.data.writeQueue.flush(socket);
90
+ if (!socket.data.writeQueue.flush(socket))
91
+ socket.terminate();
276
92
  },
277
93
  };
278
- // Create TCP server (validate TLS files BEFORE binding the port, so a bad
279
- // path doesn't leave a half-started listener behind)
280
94
  const tlsOptions = config.tls ? loadTlsOptions(config.tls) : undefined;
281
95
  const server = Bun.listen({
282
96
  hostname: config.hostname ?? '0.0.0.0',
@@ -286,40 +100,17 @@ export function createTcpServer(queueManager, config) {
286
100
  });
287
101
  return {
288
102
  server,
289
- connections,
290
- /**
291
- * Raw Bun socket handlers. Exposed for tests that need to drive the socket
292
- * lifecycle directly (e.g. a `data` event arriving before `open` under TLS,
293
- * #108) — production code goes through Bun.listen above.
294
- */
103
+ connections: registry.connections,
295
104
  _socketHandlers: socketHandlers,
296
- /** Get connection count */
297
105
  getConnectionCount() {
298
- return connections.size;
106
+ return registry.connections.size;
299
107
  },
300
- /** Broadcast to all connections */
301
108
  broadcast(message) {
302
- const frame = FrameParser.frame(encodeMessagePack(message));
303
- for (const socket of connections.values()) {
304
- // Each connection writes through its own backpressure-aware queue so a
305
- // slow reader buffers (in order) instead of dropping frame tail bytes.
306
- socket.data.writeQueue.write(socket, frame);
307
- // Drop any reader that has fallen too far behind (write-side bound).
308
- if (socket.data.writeQueue.isOverBudget) {
309
- clearStallTimer(socket);
310
- socket.data.writeQueue.clear();
311
- socket.terminate();
312
- }
313
- }
109
+ registry.broadcast(message);
314
110
  },
315
- /** Stop the server */
316
111
  stop() {
317
- server.stop();
318
- for (const socket of connections.values()) {
319
- clearStallTimer(socket);
320
- socket.end();
321
- }
322
- connections.clear();
112
+ registry.closeAll();
113
+ server.stop(true);
323
114
  },
324
115
  };
325
116
  }
@@ -0,0 +1,4 @@
1
+ export interface ConnectionState {
2
+ authenticated: boolean;
3
+ clientId: string;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ export interface SseClient {
2
+ id: string;
3
+ controller: ReadableStreamDefaultController;
4
+ queueFilter: string | null;
5
+ }
6
+ export interface BufferedSseEvent {
7
+ id: number;
8
+ event: string;
9
+ data: string;
10
+ queue: string;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import type { FrameParser } from '../protocol';
2
+ import type { ConnectionState } from './protocol';
3
+ import type { HandlerContext } from '../types';
4
+ import type { Semaphore } from '../../../shared/semaphore';
5
+ import type { SocketWriteQueue } from '../socketWriteQueue';
6
+ import type { TlsServerOptions } from '../tls';
7
+ export interface TcpServerConfig {
8
+ port?: number;
9
+ hostname?: string;
10
+ authTokens?: string[];
11
+ idleTimeoutMs?: number;
12
+ maxWriteQueueBytes?: number;
13
+ tls?: TlsServerOptions;
14
+ }
15
+ export interface TcpConnectionData {
16
+ state: ConnectionState;
17
+ abortController: AbortController;
18
+ frameParser: FrameParser;
19
+ ctx: HandlerContext;
20
+ semaphore: Semaphore;
21
+ writeQueue: SocketWriteQueue;
22
+ stallTimer: ReturnType<typeof setTimeout> | null;
23
+ /** A dedicated event connection may own exactly one queue subscription. */
24
+ eventQueue: string | null;
25
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface WsData {
2
+ id: string;
3
+ authenticated: boolean;
4
+ queueFilter: string | null;
5
+ subscriptions: Set<string> | null;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare const textDecoder: TextDecoder;
2
+ export declare const MAX_WS_CLIENTS = 1000;
3
+ export declare const WS_BACKPRESSURE_BYTES: number;
4
+ export declare const WS_EVENT_MAP: Record<string, string>;
5
+ export declare const VALID_WS_PATTERNS: Set<string>;
6
+ export declare function matchesWsSubscription(event: string, subscriptions: Set<string>): boolean;
@@ -0,0 +1,130 @@
1
+ export const textDecoder = new TextDecoder();
2
+ export const MAX_WS_CLIENTS = 1000;
3
+ export const WS_BACKPRESSURE_BYTES = 1024 * 1024;
4
+ export const WS_EVENT_MAP = {
5
+ pushed: 'job:pushed',
6
+ pulled: 'job:active',
7
+ completed: 'job:completed',
8
+ failed: 'job:failed',
9
+ progress: 'job:progress',
10
+ stalled: 'job:stalled',
11
+ removed: 'job:removed',
12
+ delayed: 'job:delayed',
13
+ duplicated: 'job:duplicated',
14
+ retried: 'job:retried',
15
+ 'waiting-children': 'job:waiting-children',
16
+ drained: 'queue:drained',
17
+ };
18
+ export const VALID_WS_PATTERNS = new Set([
19
+ '*',
20
+ 'job:pushed',
21
+ 'job:active',
22
+ 'job:completed',
23
+ 'job:failed',
24
+ 'job:removed',
25
+ 'job:promoted',
26
+ 'job:progress',
27
+ 'job:delayed',
28
+ 'job:stalled',
29
+ 'job:retried',
30
+ 'job:discarded',
31
+ 'job:priority-changed',
32
+ 'job:data-updated',
33
+ 'job:delay-changed',
34
+ 'job:timeout',
35
+ 'job:lock-expired',
36
+ 'job:deduplicated',
37
+ 'job:waiting-children',
38
+ 'job:dependencies-resolved',
39
+ 'job:moved-to-delayed',
40
+ 'job:expired',
41
+ 'job:*',
42
+ 'queue:created',
43
+ 'queue:removed',
44
+ 'queue:paused',
45
+ 'queue:resumed',
46
+ 'queue:drained',
47
+ 'queue:cleaned',
48
+ 'queue:obliterated',
49
+ 'queue:counts',
50
+ 'queue:idle',
51
+ 'queue:threshold',
52
+ 'queue:*',
53
+ 'dlq:added',
54
+ 'dlq:retried',
55
+ 'dlq:retry-all',
56
+ 'dlq:purged',
57
+ 'dlq:auto-retried',
58
+ 'dlq:expired',
59
+ 'dlq:*',
60
+ 'flow:completed',
61
+ 'flow:failed',
62
+ 'flow:*',
63
+ 'cron:created',
64
+ 'cron:updated',
65
+ 'cron:deleted',
66
+ 'cron:fired',
67
+ 'cron:missed',
68
+ 'cron:skipped',
69
+ 'cron:*',
70
+ 'worker:connected',
71
+ 'worker:disconnected',
72
+ 'worker:heartbeat',
73
+ 'worker:idle',
74
+ 'worker:removed-stale',
75
+ 'worker:overloaded',
76
+ 'worker:error',
77
+ 'worker:*',
78
+ 'ratelimit:set',
79
+ 'ratelimit:cleared',
80
+ 'ratelimit:hit',
81
+ 'ratelimit:rejected',
82
+ 'concurrency:set',
83
+ 'concurrency:cleared',
84
+ 'concurrency:rejected',
85
+ 'ratelimit:*',
86
+ 'concurrency:*',
87
+ 'webhook:added',
88
+ 'webhook:removed',
89
+ 'webhook:fired',
90
+ 'webhook:failed',
91
+ 'webhook:enabled',
92
+ 'webhook:disabled',
93
+ 'webhook:*',
94
+ 'batch:pushed',
95
+ 'batch:pulled',
96
+ 'batch:*',
97
+ 'client:connected',
98
+ 'client:disconnected',
99
+ 'client:*',
100
+ 'auth:failed',
101
+ 'auth:*',
102
+ 'cleanup:orphans-removed',
103
+ 'cleanup:stale-deps-removed',
104
+ 'cleanup:*',
105
+ 'health:status',
106
+ 'health:*',
107
+ 'stats:snapshot',
108
+ 'stats:*',
109
+ 'storage:status',
110
+ 'storage:backup-started',
111
+ 'storage:backup-completed',
112
+ 'storage:backup-failed',
113
+ 'storage:size-warning',
114
+ 'storage:*',
115
+ 'server:started',
116
+ 'server:shutdown',
117
+ 'server:recovered',
118
+ 'server:memory-warning',
119
+ 'server:*',
120
+ 'memory:compacted',
121
+ 'memory:*',
122
+ 'config:stall-changed',
123
+ 'config:dlq-changed',
124
+ 'config:*',
125
+ ]);
126
+ export function matchesWsSubscription(event, subscriptions) {
127
+ if (subscriptions.has('*') || subscriptions.has(event))
128
+ return true;
129
+ return subscriptions.has(`${event.split(':')[0]}:*`);
130
+ }
@@ -0,0 +1,4 @@
1
+ import type { QueueManager } from '../../../application/queueManager';
2
+ export declare function buildStatsSnapshot(queueManager: QueueManager): Record<string, unknown>;
3
+ export declare function buildHealthSnapshot(queueManager: QueueManager, connectionCount: number, connectionType?: 'ws' | 'sse'): Record<string, unknown>;
4
+ export declare function buildStorageSnapshot(queueManager: QueueManager): Record<string, unknown>;
@@ -0,0 +1,52 @@
1
+ import { throughputTracker } from '../../../application/throughputTracker';
2
+ export function buildStatsSnapshot(queueManager) {
3
+ const stats = queueManager.getStats();
4
+ const rates = throughputTracker.getRates();
5
+ const perQueue = queueManager.getPerQueueStats();
6
+ const workerStats = queueManager.workerManager.getStats();
7
+ const queues = {};
8
+ for (const [name, value] of perQueue) {
9
+ queues[name] = {
10
+ waiting: value.waiting ?? 0,
11
+ active: value.active ?? 0,
12
+ delayed: value.delayed ?? 0,
13
+ dlq: value.dlq ?? 0,
14
+ paused: queueManager.isPaused(name),
15
+ };
16
+ }
17
+ return {
18
+ waiting: stats.waiting,
19
+ active: stats.active,
20
+ delayed: stats.delayed,
21
+ completed: stats.completed,
22
+ dlq: stats.dlq,
23
+ totalPushed: Number(stats.totalPushed),
24
+ totalCompleted: Number(stats.totalCompleted),
25
+ totalFailed: Number(stats.totalFailed),
26
+ pushPerSec: rates.pushPerSec,
27
+ pullPerSec: rates.pullPerSec,
28
+ uptime: stats.uptime,
29
+ queues,
30
+ workers: { total: workerStats.total, active: workerStats.active },
31
+ cronJobs: queueManager.listCrons().length,
32
+ };
33
+ }
34
+ export function buildHealthSnapshot(queueManager, connectionCount, connectionType = 'ws') {
35
+ const memory = process.memoryUsage();
36
+ const storage = queueManager.getStorageStatus();
37
+ return {
38
+ ok: !storage.diskFull,
39
+ uptime: Math.floor(process.uptime()),
40
+ memory: {
41
+ rss: Math.round(memory.rss / 1024 / 1024),
42
+ heapUsed: Math.round(memory.heapUsed / 1024 / 1024),
43
+ },
44
+ connections: { [connectionType]: connectionCount },
45
+ };
46
+ }
47
+ export function buildStorageSnapshot(queueManager) {
48
+ return {
49
+ collections: queueManager.getMemoryStats(),
50
+ diskFull: queueManager.getStorageStatus().diskFull,
51
+ };
52
+ }
@@ -0,0 +1,10 @@
1
+ import type { ServerWebSocket } from 'bun';
2
+ import type { WsData } from '../types/ws';
3
+ export declare function handleWsSubscribe(websocket: ServerWebSocket<WsData>, command: {
4
+ events?: string[];
5
+ reqId?: string;
6
+ }): void;
7
+ export declare function handleWsUnsubscribe(websocket: ServerWebSocket<WsData>, command: {
8
+ events?: string[];
9
+ reqId?: string;
10
+ }): void;