bunqueue 2.8.54 → 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 (714) 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 -442
  19. package/dist/application/cleanupTasks.js +1 -0
  20. package/dist/application/clientTracking.js +2 -0
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +8 -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 +2 -8
  26. package/dist/application/dlqManager.js +33 -162
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +21 -1
  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 +10 -3
  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 +44 -7
  45. package/dist/application/operations/parentLink.d.ts +36 -0
  46. package/dist/application/operations/parentLink.js +153 -0
  47. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  48. package/dist/application/operations/parentLinkInput.js +23 -0
  49. package/dist/application/operations/push.d.ts +5 -44
  50. package/dist/application/operations/push.js +62 -152
  51. package/dist/application/operations/pushAdmission.d.ts +32 -0
  52. package/dist/application/operations/pushAdmission.js +38 -0
  53. package/dist/application/operations/pushBatch.d.ts +4 -0
  54. package/dist/application/operations/pushBatch.js +136 -0
  55. package/dist/application/operations/pushContext.d.ts +39 -0
  56. package/dist/application/operations/pushContext.js +1 -0
  57. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  58. package/dist/application/operations/pushDeduplication.js +131 -0
  59. package/dist/application/operations/pushInsert.d.ts +13 -1
  60. package/dist/application/operations/pushInsert.js +33 -17
  61. package/dist/application/operations/pushLocks.js +13 -9
  62. package/dist/application/operations/query/collect.d.ts +12 -0
  63. package/dist/application/operations/query/collect.js +118 -0
  64. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  65. package/dist/application/operations/query/jobLookup.js +110 -0
  66. package/dist/application/operations/query/pagination.d.ts +8 -0
  67. package/dist/application/operations/query/pagination.js +90 -0
  68. package/dist/application/operations/query/state.d.ts +4 -0
  69. package/dist/application/operations/query/state.js +63 -0
  70. package/dist/application/operations/queryOperations.d.ts +5 -50
  71. package/dist/application/operations/queryOperations.js +4 -474
  72. package/dist/application/queue-manager/ack.d.ts +23 -0
  73. package/dist/application/queue-manager/ack.js +242 -0
  74. package/dist/application/queue-manager/configuration.d.ts +27 -0
  75. package/dist/application/queue-manager/configuration.js +84 -0
  76. package/dist/application/queue-manager/context.d.ts +5 -0
  77. package/dist/application/queue-manager/context.js +61 -0
  78. package/dist/application/queue-manager/control.d.ts +17 -0
  79. package/dist/application/queue-manager/control.js +133 -0
  80. package/dist/application/queue-manager/delivery.d.ts +32 -0
  81. package/dist/application/queue-manager/delivery.js +143 -0
  82. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  83. package/dist/application/queue-manager/dependencies.js +127 -0
  84. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  85. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  86. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  87. package/dist/application/queue-manager/flow-failures.js +107 -0
  88. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  89. package/dist/application/queue-manager/flow-options.js +129 -0
  90. package/dist/application/queue-manager/job-management.d.ts +17 -0
  91. package/dist/application/queue-manager/job-management.js +100 -0
  92. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  93. package/dist/application/queue-manager/lifecycle.js +41 -0
  94. package/dist/application/queue-manager/limits.d.ts +41 -0
  95. package/dist/application/queue-manager/limits.js +108 -0
  96. package/dist/application/queue-manager/locks.d.ts +21 -0
  97. package/dist/application/queue-manager/locks.js +59 -0
  98. package/dist/application/queue-manager/observability.d.ts +16 -0
  99. package/dist/application/queue-manager/observability.js +44 -0
  100. package/dist/application/queue-manager/queries.d.ts +17 -0
  101. package/dist/application/queue-manager/queries.js +118 -0
  102. package/dist/application/queue-manager/repeat.d.ts +4 -0
  103. package/dist/application/queue-manager/repeat.js +26 -0
  104. package/dist/application/queue-manager/services.d.ts +19 -0
  105. package/dist/application/queue-manager/services.js +80 -0
  106. package/dist/application/queue-manager/state.d.ts +92 -0
  107. package/dist/application/queue-manager/state.js +144 -0
  108. package/dist/application/queue-manager/stats.d.ts +28 -0
  109. package/dist/application/queue-manager/stats.js +52 -0
  110. package/dist/application/queueManager.d.ts +4 -400
  111. package/dist/application/queueManager.js +3 -1922
  112. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  113. package/dist/application/queueTelemetryJournal.js +133 -0
  114. package/dist/application/repeatJobs.d.ts +7 -0
  115. package/dist/application/repeatJobs.js +132 -0
  116. package/dist/application/stallDetection.js +6 -1
  117. package/dist/application/types/ack.d.ts +132 -0
  118. package/dist/application/types/ack.js +1 -0
  119. package/dist/application/types/background.d.ts +18 -0
  120. package/dist/application/types/background.js +1 -0
  121. package/dist/application/types/config.d.ts +37 -0
  122. package/dist/application/types/config.js +15 -0
  123. package/dist/application/types/contextFactory.d.ts +83 -0
  124. package/dist/application/types/contextFactory.js +1 -0
  125. package/dist/application/types/contexts.d.ts +110 -0
  126. package/dist/application/types/contexts.js +1 -0
  127. package/dist/application/types/index.d.ts +7 -0
  128. package/dist/application/types/index.js +1 -0
  129. package/dist/application/types/query.d.ts +23 -0
  130. package/dist/application/types/query.js +1 -0
  131. package/dist/application/types/queueManager.d.ts +94 -0
  132. package/dist/application/types/queueManager.js +1 -0
  133. package/dist/cli/commandRouter.d.ts +1 -1
  134. package/dist/cli/commands/core.js +1 -0
  135. package/dist/cli/output/collections.d.ts +8 -0
  136. package/dist/cli/output/collections.js +131 -0
  137. package/dist/cli/output/jobs.d.ts +2 -0
  138. package/dist/cli/output/jobs.js +61 -0
  139. package/dist/cli/output/style.d.ts +14 -0
  140. package/dist/cli/output/style.js +28 -0
  141. package/dist/cli/output/success.d.ts +1 -0
  142. package/dist/cli/output/success.js +108 -0
  143. package/dist/cli/output.d.ts +1 -6
  144. package/dist/cli/output.js +7 -395
  145. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  146. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  147. package/dist/client/bunqueue/runtime.d.ts +35 -0
  148. package/dist/client/bunqueue/runtime.js +138 -0
  149. package/dist/client/bunqueue.d.ts +19 -34
  150. package/dist/client/bunqueue.js +45 -166
  151. package/dist/client/dlqConversion.d.ts +5 -0
  152. package/dist/client/dlqConversion.js +28 -0
  153. package/dist/client/events.d.ts +7 -56
  154. package/dist/client/events.js +38 -15
  155. package/dist/client/flow.d.ts +6 -12
  156. package/dist/client/flow.js +16 -34
  157. package/dist/client/flowJobFactory.d.ts +9 -1
  158. package/dist/client/flowJobFactory.js +25 -9
  159. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  160. package/dist/client/flowJobMoveMethods.js +31 -16
  161. package/dist/client/flowLegacyPlan.js +22 -8
  162. package/dist/client/flowOptions.d.ts +1 -1
  163. package/dist/client/flowOptions.js +2 -1
  164. package/dist/client/flowPlan.js +2 -3
  165. package/dist/client/flowPush.d.ts +1 -0
  166. package/dist/client/flowPush.js +5 -1
  167. package/dist/client/flowReader.js +5 -5
  168. package/dist/client/flowResults.d.ts +11 -0
  169. package/dist/client/flowResults.js +42 -0
  170. package/dist/client/index.d.ts +3 -1
  171. package/dist/client/jobConversion.d.ts +0 -4
  172. package/dist/client/jobConversion.js +32 -33
  173. package/dist/client/jobConversionHelpers.d.ts +18 -2
  174. package/dist/client/jobConversionHelpers.js +17 -10
  175. package/dist/client/jobConversionTypes.d.ts +5 -1
  176. package/dist/client/jobHelpers.d.ts +7 -2
  177. package/dist/client/jobHelpers.js +16 -8
  178. package/dist/client/queue/dlq.js +12 -14
  179. package/dist/client/queue/dlqJobMethods.js +11 -10
  180. package/dist/client/queue/dlqOps.js +2 -8
  181. package/dist/client/queue/dlqStats.d.ts +3 -0
  182. package/dist/client/queue/dlqStats.js +21 -0
  183. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  184. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  185. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  186. package/dist/client/queue/job-proxy/reflection.js +18 -0
  187. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  188. package/dist/client/queue/job-proxy/simple.js +316 -0
  189. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  190. package/dist/client/queue/job-proxy/tcp.js +191 -0
  191. package/dist/client/queue/jobMetadata.d.ts +10 -0
  192. package/dist/client/queue/jobMetadata.js +24 -0
  193. package/dist/client/queue/jobMove.d.ts +4 -4
  194. package/dist/client/queue/jobMove.js +82 -24
  195. package/dist/client/queue/jobProxy.d.ts +4 -50
  196. package/dist/client/queue/jobProxy.js +3 -516
  197. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  198. package/dist/client/queue/operations/add/bulk.js +129 -0
  199. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  200. package/dist/client/queue/operations/add/payload.js +85 -0
  201. package/dist/client/queue/operations/add/single.d.ts +3 -0
  202. package/dist/client/queue/operations/add/single.js +107 -0
  203. package/dist/client/queue/operations/add.d.ts +2 -47
  204. package/dist/client/queue/operations/add.js +2 -364
  205. package/dist/client/queue/operations/management.js +2 -1
  206. package/dist/client/queue/operations/query.js +20 -63
  207. package/dist/client/queue/queue.d.ts +6 -192
  208. package/dist/client/queue/queue.js +6 -559
  209. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  210. package/dist/client/queue/runtime/compatibility.js +38 -0
  211. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  212. package/dist/client/queue/runtime/configuration.js +109 -0
  213. package/dist/client/queue/runtime/connection.d.ts +6 -0
  214. package/dist/client/queue/runtime/connection.js +16 -0
  215. package/dist/client/queue/runtime/control.d.ts +41 -0
  216. package/dist/client/queue/runtime/control.js +87 -0
  217. package/dist/client/queue/runtime/queries.d.ts +48 -0
  218. package/dist/client/queue/runtime/queries.js +95 -0
  219. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  220. package/dist/client/queue/runtime/scheduling.js +56 -0
  221. package/dist/client/queue/runtime/state.d.ts +96 -0
  222. package/dist/client/queue/runtime/state.js +149 -0
  223. package/dist/client/queue/scheduler.d.ts +2 -5
  224. package/dist/client/queue/scheduler.js +25 -23
  225. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  226. package/dist/client/queue/schedulerPagination.js +10 -0
  227. package/dist/client/queue/types/add.d.ts +40 -0
  228. package/dist/client/queue/types/add.js +1 -0
  229. package/dist/client/queue/types/contexts.d.ts +33 -0
  230. package/dist/client/queue/types/contexts.js +5 -0
  231. package/dist/client/queue/types/index.d.ts +3 -0
  232. package/dist/client/queue/types/index.js +1 -0
  233. package/dist/client/queue/types/job.d.ts +50 -0
  234. package/dist/client/queue/types/job.js +1 -0
  235. package/dist/client/queue/types/runtime.d.ts +35 -0
  236. package/dist/client/queue/types/runtime.js +1 -0
  237. package/dist/client/queue/workers.d.ts +4 -8
  238. package/dist/client/queue/workers.js +22 -14
  239. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  240. package/dist/client/queue-events/tcpSubscription.js +99 -0
  241. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  242. package/dist/client/sandboxed/queueOps.js +32 -5
  243. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  244. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  245. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  246. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  247. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  248. package/dist/client/sandboxed/runtime/log.js +15 -0
  249. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  250. package/dist/client/sandboxed/runtime/pool.js +121 -0
  251. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  252. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  253. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  254. package/dist/client/sandboxed/runtime/state.js +59 -0
  255. package/dist/client/sandboxed/types/index.d.ts +2 -0
  256. package/dist/client/sandboxed/types/index.js +1 -0
  257. package/dist/client/sandboxed/types/options.d.ts +27 -0
  258. package/dist/client/sandboxed/types/options.js +1 -0
  259. package/dist/client/sandboxed/types/process.d.ts +30 -0
  260. package/dist/client/sandboxed/types/process.js +1 -0
  261. package/dist/client/sandboxed/worker.d.ts +3 -85
  262. package/dist/client/sandboxed/worker.js +3 -557
  263. package/dist/client/sandboxed/wrapper.js +1 -0
  264. package/dist/client/tcp/client.d.ts +5 -112
  265. package/dist/client/tcp/client.js +5 -481
  266. package/dist/client/tcp/commandQueue.d.ts +23 -0
  267. package/dist/client/tcp/commandQueue.js +89 -0
  268. package/dist/client/tcp/connection.d.ts +4 -85
  269. package/dist/client/tcp/connection.js +3 -315
  270. package/dist/client/tcp/errors.d.ts +6 -0
  271. package/dist/client/tcp/errors.js +18 -0
  272. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  273. package/dist/client/tcp/runtime/commands.js +124 -0
  274. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  275. package/dist/client/tcp/runtime/connectivity.js +77 -0
  276. package/dist/client/tcp/runtime/health.d.ts +14 -0
  277. package/dist/client/tcp/runtime/health.js +127 -0
  278. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  279. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  280. package/dist/client/tcp/runtime/state.d.ts +50 -0
  281. package/dist/client/tcp/runtime/state.js +45 -0
  282. package/dist/client/tcp/transport.d.ts +18 -0
  283. package/dist/client/tcp/transport.js +158 -0
  284. package/dist/client/tcp/types/command.d.ts +9 -0
  285. package/dist/client/tcp/types/command.js +1 -0
  286. package/dist/client/tcp/types/connection.d.ts +31 -0
  287. package/dist/client/tcp/types/connection.js +17 -0
  288. package/dist/client/tcp/types/index.d.ts +5 -0
  289. package/dist/client/tcp/types/index.js +1 -0
  290. package/dist/client/tcp/types/socket.d.ts +8 -0
  291. package/dist/client/tcp/types/socket.js +1 -0
  292. package/dist/client/tcp/types/tls.d.ts +4 -0
  293. package/dist/client/tcp/types/tls.js +1 -0
  294. package/dist/client/tcp/types.d.ts +2 -106
  295. package/dist/client/tcp/types.js +2 -22
  296. package/dist/client/types/connection.d.ts +29 -0
  297. package/dist/client/types/connection.js +1 -0
  298. package/dist/client/types/dlq.d.ts +45 -0
  299. package/dist/client/types/dlq.js +1 -0
  300. package/dist/client/types/events.d.ts +54 -0
  301. package/dist/client/types/events.js +1 -0
  302. package/dist/client/types/flow.d.ts +10 -0
  303. package/dist/client/types/flow.js +1 -0
  304. package/dist/client/types/index.d.ts +10 -0
  305. package/dist/client/types/index.js +1 -0
  306. package/dist/client/types/job.d.ts +127 -0
  307. package/dist/client/types/job.js +1 -0
  308. package/dist/client/types/metrics.d.ts +1 -0
  309. package/dist/client/types/metrics.js +1 -0
  310. package/dist/client/types/options.d.ts +62 -0
  311. package/dist/client/types/options.js +1 -0
  312. package/dist/client/types/worker.d.ts +38 -0
  313. package/dist/client/types/worker.js +1 -0
  314. package/dist/client/types.d.ts +2 -583
  315. package/dist/client/types.js +2 -6
  316. package/dist/client/worker/ackBatcher.d.ts +1 -1
  317. package/dist/client/worker/ackBatcher.js +17 -5
  318. package/dist/client/worker/ackOutcome.d.ts +8 -0
  319. package/dist/client/worker/ackOutcome.js +58 -0
  320. package/dist/client/worker/constants.d.ts +7 -0
  321. package/dist/client/worker/constants.js +7 -0
  322. package/dist/client/worker/groupConcurrency.js +3 -0
  323. package/dist/client/worker/handlers/completion.d.ts +28 -0
  324. package/dist/client/worker/handlers/completion.js +68 -0
  325. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  326. package/dist/client/worker/handlers/dependencies.js +107 -0
  327. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  328. package/dist/client/worker/handlers/mutations.js +211 -0
  329. package/dist/client/worker/handlers/queries.d.ts +15 -0
  330. package/dist/client/worker/handlers/queries.js +100 -0
  331. package/dist/client/worker/index.d.ts +2 -2
  332. package/dist/client/worker/index.js +1 -1
  333. package/dist/client/worker/jobParser.js +4 -2
  334. package/dist/client/worker/processor.d.ts +2 -15
  335. package/dist/client/worker/processor.js +67 -124
  336. package/dist/client/worker/processorHandlers.d.ts +4 -61
  337. package/dist/client/worker/processorHandlers.js +4 -398
  338. package/dist/client/worker/processorOutcome.d.ts +14 -0
  339. package/dist/client/worker/processorOutcome.js +125 -0
  340. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  341. package/dist/client/worker/runtime/buffer.js +50 -0
  342. package/dist/client/worker/runtime/control.d.ts +26 -0
  343. package/dist/client/worker/runtime/control.js +175 -0
  344. package/dist/client/worker/runtime/execution.d.ts +11 -0
  345. package/dist/client/worker/runtime/execution.js +123 -0
  346. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  347. package/dist/client/worker/runtime/lifecycle.js +114 -0
  348. package/dist/client/worker/runtime/manual.d.ts +10 -0
  349. package/dist/client/worker/runtime/manual.js +137 -0
  350. package/dist/client/worker/runtime/options.d.ts +5 -0
  351. package/dist/client/worker/runtime/options.js +39 -0
  352. package/dist/client/worker/runtime/polling.d.ts +12 -0
  353. package/dist/client/worker/runtime/polling.js +123 -0
  354. package/dist/client/worker/runtime/state.d.ts +110 -0
  355. package/dist/client/worker/runtime/state.js +156 -0
  356. package/dist/client/worker/types/index.d.ts +5 -0
  357. package/dist/client/worker/types/index.js +1 -0
  358. package/dist/client/worker/types/manual.d.ts +7 -0
  359. package/dist/client/worker/types/manual.js +1 -0
  360. package/dist/client/worker/types/options.d.ts +24 -0
  361. package/dist/client/worker/types/options.js +1 -0
  362. package/dist/client/worker/types/outcome.d.ts +23 -0
  363. package/dist/client/worker/types/outcome.js +1 -0
  364. package/dist/client/worker/types/processor.d.ts +22 -0
  365. package/dist/client/worker/types/processor.js +1 -0
  366. package/dist/client/worker/types/transport.d.ts +11 -0
  367. package/dist/client/worker/types/transport.js +1 -0
  368. package/dist/client/worker/worker.d.ts +3 -160
  369. package/dist/client/worker/worker.js +3 -928
  370. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  371. package/dist/client/worker/workerRateLimiter.js +40 -20
  372. package/dist/client/worker.d.ts +1 -0
  373. package/dist/client/workflow/compensationChild.d.ts +2 -1
  374. package/dist/client/workflow/compensationChild.js +1 -1
  375. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  376. package/dist/client/workflow/compensationClaim.js +30 -0
  377. package/dist/client/workflow/compensator.d.ts +7 -2
  378. package/dist/client/workflow/compensator.js +5 -11
  379. package/dist/client/workflow/recovery.js +25 -2
  380. package/dist/client/workflow/rollbackControl.js +1 -1
  381. package/dist/domain/job/constants.d.ts +12 -0
  382. package/dist/domain/job/constants.js +12 -0
  383. package/dist/domain/job/create.d.ts +2 -0
  384. package/dist/domain/job/create.js +103 -0
  385. package/dist/domain/job/ids.d.ts +5 -0
  386. package/dist/domain/job/ids.js +12 -0
  387. package/dist/domain/job/locks.d.ts +4 -0
  388. package/dist/domain/job/locks.js +23 -0
  389. package/dist/domain/job/payload.d.ts +18 -0
  390. package/dist/domain/job/payload.js +43 -0
  391. package/dist/domain/job/state.d.ts +8 -0
  392. package/dist/domain/job/state.js +51 -0
  393. package/dist/domain/job/terminal.d.ts +3 -0
  394. package/dist/domain/job/terminal.js +9 -0
  395. package/dist/domain/queue/dlqShard.d.ts +2 -0
  396. package/dist/domain/queue/dlqShard.js +34 -9
  397. package/dist/domain/queue/priorityQueue.js +3 -39
  398. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  399. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  400. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  401. package/dist/domain/queue/shard/dependencies.js +22 -0
  402. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  403. package/dist/domain/queue/shard/dlq.js +71 -0
  404. package/dist/domain/queue/shard/keys.d.ts +18 -0
  405. package/dist/domain/queue/shard/keys.js +45 -0
  406. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  407. package/dist/domain/queue/shard/lifecycle.js +43 -0
  408. package/dist/domain/queue/shard/limits.d.ts +24 -0
  409. package/dist/domain/queue/shard/limits.js +57 -0
  410. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  411. package/dist/domain/queue/shard/metrics.js +72 -0
  412. package/dist/domain/queue/shard/state.d.ts +34 -0
  413. package/dist/domain/queue/shard/state.js +80 -0
  414. package/dist/domain/queue/shard.d.ts +5 -145
  415. package/dist/domain/queue/shard.js +4 -409
  416. package/dist/domain/response/builders.d.ts +15 -0
  417. package/dist/domain/response/builders.js +39 -0
  418. package/dist/domain/types/command.d.ts +2 -555
  419. package/dist/domain/types/command.js +2 -5
  420. package/dist/domain/types/commands/base.d.ts +5 -0
  421. package/dist/domain/types/commands/base.js +1 -0
  422. package/dist/domain/types/commands/core.d.ts +106 -0
  423. package/dist/domain/types/commands/core.js +1 -0
  424. package/dist/domain/types/commands/cron.d.ts +36 -0
  425. package/dist/domain/types/commands/cron.js +1 -0
  426. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  427. package/dist/domain/types/commands/dashboard.js +1 -0
  428. package/dist/domain/types/commands/dlq.d.ts +39 -0
  429. package/dist/domain/types/commands/dlq.js +1 -0
  430. package/dist/domain/types/commands/extended.d.ts +63 -0
  431. package/dist/domain/types/commands/extended.js +1 -0
  432. package/dist/domain/types/commands/index.d.ts +12 -0
  433. package/dist/domain/types/commands/index.js +12 -0
  434. package/dist/domain/types/commands/limits.d.ts +54 -0
  435. package/dist/domain/types/commands/limits.js +1 -0
  436. package/dist/domain/types/commands/management.d.ts +73 -0
  437. package/dist/domain/types/commands/management.js +1 -0
  438. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  439. package/dist/domain/types/commands/monitoring.js +1 -0
  440. package/dist/domain/types/commands/protocol.d.ts +20 -0
  441. package/dist/domain/types/commands/protocol.js +1 -0
  442. package/dist/domain/types/commands/query.d.ts +46 -0
  443. package/dist/domain/types/commands/query.js +1 -0
  444. package/dist/domain/types/commands/union.d.ts +13 -0
  445. package/dist/domain/types/commands/union.js +1 -0
  446. package/dist/domain/types/commands/workers.d.ts +39 -0
  447. package/dist/domain/types/commands/workers.js +1 -0
  448. package/dist/domain/types/cron.d.ts +4 -2
  449. package/dist/domain/types/cron.js +3 -0
  450. package/dist/domain/types/dlq.d.ts +17 -0
  451. package/dist/domain/types/dlq.js +70 -14
  452. package/dist/domain/types/index.d.ts +2 -0
  453. package/dist/domain/types/index.js +1 -0
  454. package/dist/domain/types/job.d.ts +8 -269
  455. package/dist/domain/types/job.js +8 -234
  456. package/dist/domain/types/jobs/model.d.ts +152 -0
  457. package/dist/domain/types/jobs/model.js +1 -0
  458. package/dist/domain/types/metrics.d.ts +16 -0
  459. package/dist/domain/types/metrics.js +1 -0
  460. package/dist/domain/types/priorityQueue.d.ts +12 -0
  461. package/dist/domain/types/priorityQueue.js +1 -0
  462. package/dist/domain/types/protocol.d.ts +5 -0
  463. package/dist/domain/types/protocol.js +4 -0
  464. package/dist/domain/types/queue.d.ts +2 -0
  465. package/dist/domain/types/response.d.ts +3 -192
  466. package/dist/domain/types/response.js +3 -101
  467. package/dist/domain/types/responses/model.d.ts +152 -0
  468. package/dist/domain/types/responses/model.js +1 -0
  469. package/dist/domain/types/shard.d.ts +4 -0
  470. package/dist/domain/types/shard.js +1 -0
  471. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  472. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  473. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  474. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  475. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  476. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  477. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  478. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  479. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  480. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  481. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  482. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  483. package/dist/infrastructure/cloud/commands.js +7 -344
  484. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  485. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  486. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  487. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  488. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  489. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  490. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  491. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  492. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  493. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  494. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  495. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  496. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  497. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  498. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  499. package/dist/infrastructure/cloud/types/collector.js +1 -0
  500. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  501. package/dist/infrastructure/cloud/types/command.js +1 -0
  502. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  503. package/dist/infrastructure/cloud/types/config.js +1 -0
  504. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  505. package/dist/infrastructure/cloud/types/event.js +1 -0
  506. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  507. package/dist/infrastructure/cloud/types/redact.js +1 -0
  508. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  509. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  510. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  511. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  512. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  513. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  514. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  515. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  516. package/dist/infrastructure/cloud/types.d.ts +3 -445
  517. package/dist/infrastructure/cloud/types.js +0 -4
  518. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  519. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  520. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  521. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  522. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  523. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  524. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  525. package/dist/infrastructure/persistence/migrations.js +120 -0
  526. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  527. package/dist/infrastructure/persistence/schema.js +40 -136
  528. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  529. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  530. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  531. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  532. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  533. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  534. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  535. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  536. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  537. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  538. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  539. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  540. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  541. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  542. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  543. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  544. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  545. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  546. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  547. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  548. package/dist/infrastructure/persistence/sqlite.d.ts +5 -280
  549. package/dist/infrastructure/persistence/sqlite.js +3 -1013
  550. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  551. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  552. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  553. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  554. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  555. package/dist/infrastructure/persistence/statements.js +14 -9
  556. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  557. package/dist/infrastructure/persistence/types/admission.js +1 -0
  558. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  559. package/dist/infrastructure/persistence/types/batch.js +1 -0
  560. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  561. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  562. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  563. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  564. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  565. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  566. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  567. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  568. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  569. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  570. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  571. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  572. package/dist/infrastructure/server/bootstrap.js +3 -0
  573. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  574. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  575. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  576. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  577. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  578. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  579. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  580. package/dist/infrastructure/server/handlerRoutes.js +3 -270
  581. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  582. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  583. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  584. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  585. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  586. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  587. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  588. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  589. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  590. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  591. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  592. package/dist/infrastructure/server/handlers/core.js +37 -20
  593. package/dist/infrastructure/server/handlers/cron.js +9 -1
  594. package/dist/infrastructure/server/handlers/flow.js +6 -1
  595. package/dist/infrastructure/server/handlers/introspection.js +1 -1
  596. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  597. package/dist/infrastructure/server/handlers/management.js +30 -0
  598. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  599. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  600. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  601. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  602. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  603. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  604. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  605. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  606. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  607. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  608. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  609. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  610. package/dist/infrastructure/server/handlers/query.js +12 -3
  611. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  612. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  613. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  614. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  615. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  616. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  617. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  618. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  619. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  620. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  621. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  622. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  623. package/dist/infrastructure/server/protocol/commands.js +31 -0
  624. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  625. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  626. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  627. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  628. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  629. package/dist/infrastructure/server/protocol/validation.js +75 -0
  630. package/dist/infrastructure/server/protocol.d.ts +5 -77
  631. package/dist/infrastructure/server/protocol.js +4 -265
  632. package/dist/infrastructure/server/rateLimiter.js +1 -0
  633. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  634. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  635. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  636. package/dist/infrastructure/server/sse/constants.js +5 -0
  637. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  638. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  639. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  640. package/dist/infrastructure/server/sseHandler.js +20 -96
  641. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  642. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  643. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  644. package/dist/infrastructure/server/tcp/connections.js +162 -0
  645. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  646. package/dist/infrastructure/server/tcp/constants.js +3 -0
  647. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  648. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  649. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  650. package/dist/infrastructure/server/tcp/responses.js +8 -0
  651. package/dist/infrastructure/server/tcp.d.ts +10 -68
  652. package/dist/infrastructure/server/tcp.js +47 -256
  653. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  654. package/dist/infrastructure/server/types/protocol.js +1 -0
  655. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  656. package/dist/infrastructure/server/types/sse.js +1 -0
  657. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  658. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  659. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  660. package/dist/infrastructure/server/types/ws.js +1 -0
  661. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  662. package/dist/infrastructure/server/ws/constants.js +130 -0
  663. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  664. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  665. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  666. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  667. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  668. package/dist/infrastructure/server/wsHandler.js +12 -237
  669. package/dist/mcp/adapter.d.ts +5 -403
  670. package/dist/mcp/adapter.js +6 -778
  671. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  672. package/dist/mcp/backend/embedded/base.js +15 -0
  673. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  674. package/dist/mcp/backend/embedded/index.js +22 -0
  675. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  676. package/dist/mcp/backend/embedded/jobs.js +98 -0
  677. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  678. package/dist/mcp/backend/embedded/queues.js +84 -0
  679. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  680. package/dist/mcp/backend/embedded/services.js +107 -0
  681. package/dist/mcp/backend/serializers.d.ts +7 -0
  682. package/dist/mcp/backend/serializers.js +32 -0
  683. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  684. package/dist/mcp/backend/tcp/base.js +54 -0
  685. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  686. package/dist/mcp/backend/tcp/index.js +20 -0
  687. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  688. package/dist/mcp/backend/tcp/jobs.js +122 -0
  689. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  690. package/dist/mcp/backend/tcp/queues.js +89 -0
  691. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  692. package/dist/mcp/backend/tcp/services.js +161 -0
  693. package/dist/mcp/types/adapter.d.ts +176 -0
  694. package/dist/mcp/types/adapter.js +1 -0
  695. package/dist/shared/asyncLock.d.ts +13 -0
  696. package/dist/shared/asyncLock.js +65 -0
  697. package/dist/shared/lock.d.ts +10 -72
  698. package/dist/shared/lock.js +7 -231
  699. package/dist/shared/lockError.d.ts +3 -0
  700. package/dist/shared/lockError.js +6 -0
  701. package/dist/shared/lockTimeout.d.ts +2 -0
  702. package/dist/shared/lockTimeout.js +2 -0
  703. package/dist/shared/rwLock.d.ts +22 -0
  704. package/dist/shared/rwLock.js +124 -0
  705. package/dist/shared/serialization.js +1 -0
  706. package/dist/shared/skipList.d.ts +0 -5
  707. package/dist/shared/skipList.js +10 -57
  708. package/dist/shared/skipListNodes.d.ts +6 -0
  709. package/dist/shared/skipListNodes.js +43 -0
  710. package/dist/shared/types/lock.d.ts +7 -0
  711. package/dist/shared/types/lock.js +1 -0
  712. package/dist/shared/types/skipList.d.ts +4 -0
  713. package/dist/shared/types/skipList.js +1 -0
  714. package/package.json +2 -1
@@ -1,437 +1,4 @@
1
- /**
2
- * Cron Scheduler
3
- * Manages scheduled jobs and executes them on time
4
- * Uses min-heap for O(k log n) tick instead of O(n) full scan
5
- * Event-driven: uses precise setTimeout to wake exactly when the next cron is due
6
- */
7
- import { createCronJob, isAtLimit } from '../../domain/types/cron';
8
- import { validateCronExpression, getNextCronRun, getNextIntervalRun, expandCronShortcut, } from './cronParser';
9
- import { cronLog } from '../../shared/logger';
10
- import { MinHeap } from '../../shared/minHeap';
11
- /** Safety fallback interval (60s) - catches edge cases like timer drift */
12
- const SAFETY_FALLBACK_MS = 60_000;
13
- /**
14
- * Cron Scheduler
15
- * Event-driven: wakes exactly when the next cron is due via setTimeout
16
- * Safety fallback: setInterval(60s) catches missed events
17
- * Optimized with min-heap for O(k log n) tick where k = due crons
18
- * Uses lazy deletion with generation numbers for O(1) remove
19
- */
20
- export class CronScheduler {
21
- /** Map for O(1) lookup by name with generation tracking */
22
- cronJobs = new Map();
23
- /** Min-heap ordered by nextRun for O(k log n) tick */
24
- cronHeap = new MinHeap((a, b) => a.cron.nextRun - b.cron.nextRun);
25
- /** Current generation counter */
26
- generation = 0;
27
- /** Precise timer targeting the next cron's nextRun */
28
- nextTimer = null;
29
- /** Safety fallback interval (60s) */
30
- safetyInterval = null;
31
- /** Whether the scheduler is running */
32
- started = false;
33
- pushJob = null;
34
- persistCron = null;
35
- hasWorkers = null;
36
- dashboardEmit = null;
37
- /** Track last fire time per cron for overlap detection */
38
- lastFiredAt = new Map();
39
- // Accept config for backward compatibility (no longer used internally)
40
- constructor(_config) {
41
- // noop - scheduler now uses precise setTimeout instead of configurable interval
42
- void _config;
43
- }
44
- /**
45
- * Set the push job callback
46
- */
47
- setPushCallback(callback) {
48
- this.pushJob = callback;
49
- }
50
- /**
51
- * Set the persist cron callback for saving state after execution
52
- */
53
- setPersistCallback(callback) {
54
- this.persistCron = callback;
55
- }
56
- /**
57
- * Set the worker check callback for skipIfNoWorker
58
- */
59
- setWorkerCheckCallback(callback) {
60
- this.hasWorkers = callback;
61
- }
62
- /**
63
- * Set the dashboard event emitter callback
64
- */
65
- setDashboardEmit(callback) {
66
- this.dashboardEmit = callback;
67
- }
68
- /**
69
- * Start the scheduler
70
- * Uses precise setTimeout for the fast path + 60s safety fallback
71
- */
72
- start() {
73
- if (this.started)
74
- return;
75
- this.started = true;
76
- // Safety fallback: tick every 60s as last-resort for missed events
77
- this.safetyInterval = setInterval(() => {
78
- void this.tick();
79
- }, SAFETY_FALLBACK_MS);
80
- // Schedule precise timer for the next due cron
81
- this.scheduleNext();
82
- }
83
- /**
84
- * Stop the scheduler
85
- */
86
- stop() {
87
- this.started = false;
88
- if (this.nextTimer !== null) {
89
- clearTimeout(this.nextTimer);
90
- this.nextTimer = null;
91
- }
92
- if (this.safetyInterval !== null) {
93
- clearInterval(this.safetyInterval);
94
- this.safetyInterval = null;
95
- }
96
- }
97
- /**
98
- * Add a cron job
99
- */
100
- add(input) {
101
- // Validate
102
- if (!input.schedule && !input.repeatEvery) {
103
- throw new Error('Cron job must have either schedule or repeatEvery');
104
- }
105
- if (input.schedule) {
106
- const expanded = expandCronShortcut(input.schedule);
107
- const error = validateCronExpression(expanded, input.timezone);
108
- if (error) {
109
- throw new Error(`Invalid cron expression: ${error}`);
110
- }
111
- }
112
- // Calculate next run
113
- const now = Date.now();
114
- let nextRun;
115
- if (input.schedule) {
116
- const expanded = expandCronShortcut(input.schedule);
117
- nextRun = getNextCronRun(expanded, now, input.timezone);
118
- }
119
- else {
120
- nextRun = getNextIntervalRun(input.repeatEvery, now);
121
- }
122
- // Create cron job with generation tracking
123
- const cron = createCronJob(input, nextRun);
124
- // Preserve existing executions count when upserting
125
- const existing = this.cronJobs.get(cron.name);
126
- if (existing) {
127
- cron.executions = existing.cron.executions;
128
- // Reset per-name overlap tracking on upsert: the redefined cron starts
129
- // fresh and must not be blocked by the previous definition's last fire (H10)
130
- this.lastFiredAt.delete(cron.name);
131
- }
132
- // Handle immediately option: set nextRun to now so it fires on next tick
133
- // Only on first creation, not on upsert (otherwise it overrides skipMissedOnRestart)
134
- if (input.immediately && !existing) {
135
- cron.nextRun = Date.now();
136
- }
137
- const gen = this.generation++;
138
- this.cronJobs.set(cron.name, { cron, generation: gen });
139
- this.cronHeap.push({ cron, generation: gen });
140
- // Reschedule if this cron might be sooner than current timer
141
- if (this.started) {
142
- this.scheduleNext();
143
- }
144
- return cron;
145
- }
146
- /**
147
- * Remove a cron job - O(1) with lazy deletion
148
- * The heap entry becomes stale and will be skipped in tick()
149
- */
150
- remove(name) {
151
- const entry = this.cronJobs.get(name);
152
- if (!entry)
153
- return false;
154
- // Just remove from map - heap entry becomes stale (lazy deletion)
155
- this.cronJobs.delete(name);
156
- // Clear per-name overlap tracking so a future cron re-added with the same
157
- // name isn't blocked by this cron's stale last-fire timestamp (fixes H10)
158
- this.lastFiredAt.delete(name);
159
- // Reschedule in case removed cron was the next timer target
160
- if (this.started) {
161
- this.scheduleNext();
162
- }
163
- return true;
164
- }
165
- /**
166
- * Get a cron job by name
167
- */
168
- get(name) {
169
- return this.cronJobs.get(name)?.cron;
170
- }
171
- /**
172
- * List all cron jobs
173
- */
174
- list() {
175
- return Array.from(this.cronJobs.values()).map((e) => e.cron);
176
- }
177
- /**
178
- * Load cron jobs from storage
179
- */
180
- load(crons) {
181
- const now = Date.now();
182
- const entries = [];
183
- for (const cron of crons) {
184
- // Recalculate past nextRun to the future on restart (fixes #73)
185
- // Default: always skip missed crons unless explicitly opted out
186
- if ((cron.skipMissedOnRestart || cron.skipIfNoWorker) && cron.nextRun < now) {
187
- if (cron.schedule) {
188
- cron.nextRun = getNextCronRun(cron.schedule, now, cron.timezone ?? undefined);
189
- }
190
- else if (cron.repeatEvery) {
191
- cron.nextRun = getNextIntervalRun(cron.repeatEvery, now);
192
- }
193
- // Persist the recalculated nextRun to the DB
194
- this.persistCron?.(cron.name, cron.executions, cron.nextRun);
195
- }
196
- const gen = this.generation++;
197
- this.cronJobs.set(cron.name, { cron, generation: gen });
198
- entries.push({ cron, generation: gen });
199
- }
200
- // Rebuild heap from loaded crons - O(n)
201
- this.cronHeap.buildFrom(entries);
202
- // Reschedule if running
203
- if (this.started) {
204
- this.scheduleNext();
205
- }
206
- }
207
- /**
208
- * Schedule a precise setTimeout for the next due cron
209
- * Called after every mutation (add, remove, load, tick)
210
- */
211
- scheduleNext() {
212
- if (!this.started)
213
- return;
214
- // Cancel existing precise timer
215
- if (this.nextTimer !== null) {
216
- clearTimeout(this.nextTimer);
217
- this.nextTimer = null;
218
- }
219
- // Find next non-stale entry, popping stale ones from the heap
220
- while (!this.cronHeap.isEmpty) {
221
- const entry = this.cronHeap.peek();
222
- if (!entry)
223
- return;
224
- // Check if stale (cron was removed or updated since this heap entry was created)
225
- if (this.cronJobs.get(entry.cron.name)?.generation !== entry.generation) {
226
- this.cronHeap.pop(); // Remove stale entry and continue looking
227
- continue;
228
- }
229
- const delay = Math.max(0, entry.cron.nextRun - Date.now());
230
- this.nextTimer = setTimeout(() => {
231
- this.nextTimer = null;
232
- void this.tick();
233
- }, delay);
234
- return;
235
- }
236
- }
237
- /**
238
- * Check and execute due cron jobs
239
- * O(k log n) where k = number of due crons, instead of O(n) full scan
240
- * Skips stale entries (lazy deletion) automatically
241
- */
242
- async tick() {
243
- if (!this.pushJob)
244
- return;
245
- const now = Date.now();
246
- const toReinsert = [];
247
- const toRemove = [];
248
- // Process only due crons from heap - O(k log n)
249
- while (!this.cronHeap.isEmpty) {
250
- const entry = this.cronHeap.peek();
251
- if (!entry || entry.cron.nextRun > now)
252
- break;
253
- // Remove from heap
254
- this.cronHeap.pop();
255
- // Check if stale (cron was removed or updated)
256
- const current = this.cronJobs.get(entry.cron.name);
257
- if (current?.generation !== entry.generation) {
258
- // Stale entry, skip
259
- continue;
260
- }
261
- const cron = entry.cron;
262
- // Check if at limit
263
- if (isAtLimit(cron)) {
264
- toRemove.push(cron.name);
265
- continue;
266
- }
267
- try {
268
- // Calculate new state BEFORE pushing job
269
- const newExecutions = cron.executions + 1;
270
- const executionTime = Date.now();
271
- // The slot this fire was scheduled for (anchor for fixed-rate intervals)
272
- const scheduledRun = cron.nextRun;
273
- let newNextRun;
274
- if (cron.schedule) {
275
- const expanded = expandCronShortcut(cron.schedule);
276
- newNextRun = getNextCronRun(expanded, executionTime, cron.timezone ?? undefined);
277
- }
278
- else if (cron.repeatEvery) {
279
- // Fixed-rate: anchor to the scheduled slot, not wall-clock now, so a
280
- // slow/late job does not cumulatively drift the schedule forward (M4)
281
- newNextRun = getNextIntervalRun(cron.repeatEvery, scheduledRun);
282
- }
283
- else {
284
- newNextRun = executionTime;
285
- }
286
- // Skip decision comes BEFORE the executions increment: a skipped fire
287
- // pushes no job, so it must not consume the maxLimit budget (a cron
288
- // with maxLimit=N must deliver N jobs, not N-minus-skips — worst case
289
- // skipIfNoWorker used to burn the whole budget with zero deliveries).
290
- // The schedule still advances so the heap doesn't hot-loop on it.
291
- const skipReason = this.getSkipReason(cron, now);
292
- if (skipReason) {
293
- if (this.persistCron) {
294
- try {
295
- this.persistCron(cron.name, cron.executions, newNextRun);
296
- }
297
- catch (persistErr) {
298
- // Benign here: nothing was pushed, in-memory advance is enough;
299
- // the next successful persist catches the row up.
300
- cronLog.error('Failed to persist cron nextRun on skip', {
301
- name: cron.name,
302
- error: String(persistErr),
303
- });
304
- }
305
- }
306
- cron.nextRun = newNextRun;
307
- this.dashboardEmit?.('cron:skipped', {
308
- name: cron.name,
309
- queue: cron.queue,
310
- reason: skipReason,
311
- });
312
- toReinsert.push(entry);
313
- continue;
314
- }
315
- // PERSIST STATE FIRST (before pushing job to prevent duplicates)
316
- if (this.persistCron) {
317
- try {
318
- this.persistCron(cron.name, newExecutions, newNextRun);
319
- }
320
- catch (persistErr) {
321
- // Persist failed - do NOT push job, retry on next tick
322
- cronLog.error('Failed to persist cron state, skipping job push', {
323
- name: cron.name,
324
- error: String(persistErr),
325
- });
326
- this.dashboardEmit?.('cron:missed', {
327
- name: cron.name,
328
- queue: cron.queue,
329
- error: String(persistErr),
330
- });
331
- toReinsert.push(entry);
332
- continue;
333
- }
334
- }
335
- // Update in-memory state AFTER successful persist
336
- cron.executions = newExecutions;
337
- cron.nextRun = newNextRun;
338
- // NOW push the job (state already persisted, safe from duplicates)
339
- await this.fireCronJob(cron, now);
340
- // Re-insert with same generation (not stale)
341
- toReinsert.push(entry);
342
- }
343
- catch (err) {
344
- // Push failed but state was already persisted
345
- // Job is lost but cron state is consistent - no duplicates on retry
346
- cronLog.error('Failed to push cron job (state already persisted)', {
347
- name: cron.name,
348
- error: String(err),
349
- });
350
- this.dashboardEmit?.('cron:missed', {
351
- name: cron.name,
352
- queue: cron.queue,
353
- error: String(err),
354
- });
355
- // Re-insert to continue scheduling (next execution will work)
356
- toReinsert.push(entry);
357
- }
358
- }
359
- // Re-insert processed crons with updated nextRun
360
- for (const entry of toReinsert) {
361
- this.cronHeap.push(entry);
362
- }
363
- // Remove limit-reached crons from map
364
- for (const name of toRemove) {
365
- this.cronJobs.delete(name);
366
- }
367
- // Schedule next precise wake-up
368
- this.scheduleNext();
369
- }
370
- /** Fire a cron job with overlap and worker detection */
371
- /**
372
- * Reasons a due cron must not push right now. Evaluated BEFORE the
373
- * executions increment in tick(), so skips never consume maxLimit budget.
374
- */
375
- getSkipReason(cron, now) {
376
- // skipIfNoWorker: skip if no workers registered for this queue
377
- if (cron.skipIfNoWorker && this.hasWorkers && !this.hasWorkers(cron.queue)) {
378
- return 'no-worker';
379
- }
380
- // Overlap detection: skip if last fire was within repeatEvery window
381
- const lastFire = this.lastFiredAt.get(cron.name);
382
- const interval = cron.repeatEvery ?? 60000;
383
- if (lastFire && now - lastFire < interval * 0.8) {
384
- return 'overlap';
385
- }
386
- return null;
387
- }
388
- async fireCronJob(cron, now) {
389
- // preventOverlap: auto-set uniqueKey to block pushes while previous job is active
390
- const effectiveUniqueKey = cron.uniqueKey ?? (cron.preventOverlap ? `cron:${cron.name}` : undefined);
391
- const opts = cron.jobOptions;
392
- await this.pushJob(cron.queue, {
393
- data: cron.data,
394
- priority: cron.priority,
395
- uniqueKey: effectiveUniqueKey,
396
- dedup: cron.dedup ?? undefined,
397
- maxAttempts: opts?.maxAttempts,
398
- backoff: opts?.backoff,
399
- timeout: opts?.timeout,
400
- delay: opts?.delay,
401
- stallTimeout: opts?.stallTimeout,
402
- removeOnComplete: opts?.removeOnComplete,
403
- removeOnFail: opts?.removeOnFail,
404
- });
405
- this.lastFiredAt.set(cron.name, now);
406
- this.dashboardEmit?.('cron:fired', { name: cron.name, queue: cron.queue });
407
- }
408
- /**
409
- * Get scheduler stats
410
- * O(1) for nextRun using min-heap peek (skips stale entries)
411
- */
412
- getStats() {
413
- // Find first non-stale entry for nextRun
414
- let nextRun = null;
415
- // Peek and skip stale entries to find valid nextRun
416
- // This is typically O(1) as stale entries are cleaned during tick()
417
- const entry = this.cronHeap.peek();
418
- if (entry) {
419
- const current = this.cronJobs.get(entry.cron.name);
420
- if (current?.generation === entry.generation && !isAtLimit(entry.cron)) {
421
- nextRun = entry.cron.nextRun;
422
- }
423
- }
424
- // Count pending (crons not at limit) - still O(n) but called rarely
425
- let pending = 0;
426
- for (const { cron } of this.cronJobs.values()) {
427
- if (!isAtLimit(cron)) {
428
- pending++;
429
- }
430
- }
431
- return {
432
- total: this.cronJobs.size,
433
- pending,
434
- nextRun,
435
- };
436
- }
1
+ import { CronExecution } from './cron/execution';
2
+ /** Event-driven cron scheduler façade. */
3
+ export class CronScheduler extends CronExecution {
437
4
  }
@@ -0,0 +1,16 @@
1
+ import type { CronJob } from '../../../domain/types/cron';
2
+ import type { JobInput } from '../../../domain/types/job';
3
+ export interface CronSchedulerConfig {
4
+ /** @deprecated The scheduler now uses a precise event-driven timer. */
5
+ checkIntervalMs?: number;
6
+ }
7
+ export type PushJobCallback = (queue: string, input: JobInput) => Promise<void>;
8
+ export type PersistCronCallback = (name: string, executions: number, nextRun: number) => void;
9
+ export interface CronHeapEntry {
10
+ cron: CronJob;
11
+ generation: number;
12
+ }
13
+ export interface CronRegistryEntry {
14
+ cron: CronJob;
15
+ generation: number;
16
+ }
@@ -161,6 +161,9 @@ export function bootServer(fileConfig, config) {
161
161
  getWsClientCount: () => httpServer.getWsClientCount(),
162
162
  getSseClientCount: () => httpServer.getSseClientCount(),
163
163
  getBackupStatus: () => backupManager?.getStatus() ?? null,
164
+ ...(config.s3BackupEnabled && backupManager
165
+ ? { triggerBackup: () => backupManager.backup() }
166
+ : {}),
164
167
  });
165
168
  }
166
169
  queueManager.emitDashboardEvent('server:started', {
@@ -0,0 +1,8 @@
1
+ import type { Command } from '../../../domain/types/command';
2
+ import type { Response } from '../../../domain/types/response';
3
+ import type { HandlerContext } from '../types';
4
+ export declare function routeQueueControlCommand(command: Command, context: HandlerContext, requestId?: string): Response | null;
5
+ export declare function routeDlqCommand(command: Command, context: HandlerContext, requestId?: string): Response | null;
6
+ export declare function routeRateLimitCommand(command: Command, context: HandlerContext, requestId?: string): Response | null;
7
+ export declare function routeCronCommand(command: Command, context: HandlerContext, requestId?: string): Response | null;
8
+ export declare function routeConfigCommand(command: Command, context: HandlerContext, requestId?: string): Response | null;
@@ -0,0 +1,82 @@
1
+ import { handleClean, handleClearConcurrency, handleGetDlqConfig, handleGetStallConfig, handleIsPaused, handleListQueues, handleObliterate, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleSetDlqConfig, handleSetStallConfig, } from '../handlers/advanced';
2
+ import { handleCron, handleCronDelete, handleCronGet, handleCronList } from '../handlers/cron';
3
+ import { handleDlq, handleGetDlqStats, handlePurgeDlq, handleRetryCompleted, handleRetryDlq, } from '../handlers/dlq';
4
+ import { handleDrain, handlePause, handleResume } from '../handlers/management';
5
+ export function routeQueueControlCommand(command, context, requestId) {
6
+ switch (command.cmd) {
7
+ case 'Pause':
8
+ return handlePause(command, context, requestId);
9
+ case 'Resume':
10
+ return handleResume(command, context, requestId);
11
+ case 'IsPaused':
12
+ return handleIsPaused(command, context, requestId);
13
+ case 'Drain':
14
+ return handleDrain(command, context, requestId);
15
+ case 'Obliterate':
16
+ return handleObliterate(command, context, requestId);
17
+ case 'ListQueues':
18
+ return handleListQueues(command, context, requestId);
19
+ case 'Clean':
20
+ return handleClean(command, context, requestId);
21
+ default:
22
+ return null;
23
+ }
24
+ }
25
+ export function routeDlqCommand(command, context, requestId) {
26
+ switch (command.cmd) {
27
+ case 'Dlq':
28
+ return handleDlq(command, context, requestId);
29
+ case 'GetDlqStats':
30
+ return handleGetDlqStats(command, context, requestId);
31
+ case 'RetryDlq':
32
+ return handleRetryDlq(command, context, requestId);
33
+ case 'PurgeDlq':
34
+ return handlePurgeDlq(command, context, requestId);
35
+ case 'RetryCompleted':
36
+ return handleRetryCompleted(command, context, requestId);
37
+ default:
38
+ return null;
39
+ }
40
+ }
41
+ export function routeRateLimitCommand(command, context, requestId) {
42
+ switch (command.cmd) {
43
+ case 'RateLimit':
44
+ return handleRateLimit(command, context, requestId);
45
+ case 'RateLimitClear':
46
+ return handleRateLimitClear(command, context, requestId);
47
+ case 'SetConcurrency':
48
+ return handleSetConcurrency(command, context, requestId);
49
+ case 'ClearConcurrency':
50
+ return handleClearConcurrency(command, context, requestId);
51
+ default:
52
+ return null;
53
+ }
54
+ }
55
+ export function routeCronCommand(command, context, requestId) {
56
+ switch (command.cmd) {
57
+ case 'Cron':
58
+ return handleCron(command, context, requestId);
59
+ case 'CronGet':
60
+ return handleCronGet(command, context, requestId);
61
+ case 'CronDelete':
62
+ return handleCronDelete(command, context, requestId);
63
+ case 'CronList':
64
+ return handleCronList(command, context, requestId);
65
+ default:
66
+ return null;
67
+ }
68
+ }
69
+ export function routeConfigCommand(command, context, requestId) {
70
+ switch (command.cmd) {
71
+ case 'SetStallConfig':
72
+ return handleSetStallConfig(command, context, requestId);
73
+ case 'GetStallConfig':
74
+ return handleGetStallConfig(command, context, requestId);
75
+ case 'SetDlqConfig':
76
+ return handleSetDlqConfig(command, context, requestId);
77
+ case 'GetDlqConfig':
78
+ return handleGetDlqConfig(command, context, requestId);
79
+ default:
80
+ return null;
81
+ }
82
+ }
@@ -0,0 +1,6 @@
1
+ import type { Command } from '../../../domain/types/command';
2
+ import type { Response } from '../../../domain/types/response';
3
+ import type { HandlerContext } from '../types';
4
+ export declare function routeCoreCommand(command: Command, context: HandlerContext, requestId?: string): Promise<Response | null>;
5
+ export declare function routeQueryCommand(command: Command, context: HandlerContext, requestId?: string): Promise<Response | null>;
6
+ export declare function routeManagementCommand(command: Command, context: HandlerContext, requestId?: string): Promise<Response | null>;
@@ -0,0 +1,110 @@
1
+ import { handleChangeDelay, handleChangePriority, handleCount, handleDiscard, handleGetFailedChildrenValues, handleGetIgnoredChildrenFailures, handleMoveToDelayed, handleMoveToWait, handlePromote, handlePromoteJobs, handleRemoveChildDependency, handleRemoveUnprocessedChildren, handleUpdate, handleUpdateParent, handleWaitJob, } from '../handlers/advanced';
2
+ import { handleAck, handleAckBatch, handleFail, handlePull, handlePullBatch, handlePush, handlePushBatch, } from '../handlers/core';
3
+ import { handlePushFlow } from '../handlers/flow';
4
+ import { handleGetDeduplicationJobId, handleGetQueueLimits, handleMoveToWaitingChildren, handleRemoveDeduplicationKey, handleRemoveJobDeduplicationKey, } from '../handlers/introspection';
5
+ import { handleCancel, handleGetProgress, handleProgress } from '../handlers/management';
6
+ import { handleExtendLock, handleExtendLocks } from '../handlers/monitoring';
7
+ import { handleGetChildrenValues, handleGetCountsPerPriority, handleGetJob, handleGetJobByCustomId, handleGetJobCounts, handleGetJobs, handleGetResult, handleGetState, } from '../handlers/query';
8
+ // biome-ignore lint/suspicious/useAwait: stable router API always returns a Promise.
9
+ export async function routeCoreCommand(command, context, requestId) {
10
+ switch (command.cmd) {
11
+ case 'PUSH':
12
+ return handlePush(command, context, requestId);
13
+ case 'PUSHB':
14
+ return handlePushBatch(command, context, requestId);
15
+ case 'PUSHF':
16
+ return handlePushFlow(command, context, requestId);
17
+ case 'PULL':
18
+ return handlePull(command, context, requestId);
19
+ case 'PULLB':
20
+ return handlePullBatch(command, context, requestId);
21
+ case 'ACK':
22
+ return handleAck(command, context, requestId);
23
+ case 'ACKB':
24
+ return handleAckBatch(command, context, requestId);
25
+ case 'FAIL':
26
+ return handleFail(command, context, requestId);
27
+ default:
28
+ return null;
29
+ }
30
+ }
31
+ // biome-ignore lint/suspicious/useAwait: stable router API always returns a Promise.
32
+ export async function routeQueryCommand(command, context, requestId) {
33
+ switch (command.cmd) {
34
+ case 'GetJob':
35
+ return handleGetJob(command, context, requestId);
36
+ case 'GetState':
37
+ return handleGetState(command, context, requestId);
38
+ case 'GetResult':
39
+ return handleGetResult(command, context, requestId);
40
+ case 'GetJobCounts':
41
+ return handleGetJobCounts(command, context, requestId);
42
+ case 'GetCountsPerPriority':
43
+ return handleGetCountsPerPriority(command, context, requestId);
44
+ case 'GetJobByCustomId':
45
+ return handleGetJobByCustomId(command, context, requestId);
46
+ case 'GetJobs':
47
+ return handleGetJobs(command, context, requestId);
48
+ case 'Count':
49
+ return handleCount(command, context, requestId);
50
+ case 'GetProgress':
51
+ return handleGetProgress(command, context, requestId);
52
+ case 'GetChildrenValues':
53
+ return handleGetChildrenValues(command, context, requestId);
54
+ case 'GetQueueLimits':
55
+ return handleGetQueueLimits(command, context, requestId);
56
+ case 'GetDeduplicationJobId':
57
+ return handleGetDeduplicationJobId(command, context, requestId);
58
+ default:
59
+ return null;
60
+ }
61
+ }
62
+ // biome-ignore lint/suspicious/useAwait: stable router API always returns a Promise.
63
+ export async function routeManagementCommand(command, context, requestId) {
64
+ switch (command.cmd) {
65
+ case 'Cancel':
66
+ return handleCancel(command, context, requestId);
67
+ case 'Progress':
68
+ return handleProgress(command, context, requestId);
69
+ case 'Update':
70
+ return handleUpdate(command, context, requestId);
71
+ case 'UpdateParent':
72
+ return handleUpdateParent(command, context, requestId);
73
+ case 'ChangePriority':
74
+ return handleChangePriority(command, context, requestId);
75
+ case 'Promote':
76
+ return handlePromote(command, context, requestId);
77
+ case 'MoveToDelayed':
78
+ return handleMoveToDelayed(command, context, requestId);
79
+ case 'Discard':
80
+ return handleDiscard(command, context, requestId);
81
+ case 'WaitJob':
82
+ return handleWaitJob(command, context, requestId);
83
+ case 'ChangeDelay':
84
+ return handleChangeDelay(command, context, requestId);
85
+ case 'MoveToWait':
86
+ return handleMoveToWait(command, context, requestId);
87
+ case 'PromoteJobs':
88
+ return handlePromoteJobs(command, context, requestId);
89
+ case 'ExtendLock':
90
+ return handleExtendLock(command, context, requestId);
91
+ case 'ExtendLocks':
92
+ return handleExtendLocks(command, context, requestId);
93
+ case 'GetFailedChildrenValues':
94
+ return handleGetFailedChildrenValues(command, context, requestId);
95
+ case 'GetIgnoredChildrenFailures':
96
+ return handleGetIgnoredChildrenFailures(command, context, requestId);
97
+ case 'RemoveChildDependency':
98
+ return handleRemoveChildDependency(command, context, requestId);
99
+ case 'RemoveUnprocessedChildren':
100
+ return handleRemoveUnprocessedChildren(command, context, requestId);
101
+ case 'RemoveDeduplicationKey':
102
+ return handleRemoveDeduplicationKey(command, context, requestId);
103
+ case 'RemoveJobDeduplicationKey':
104
+ return handleRemoveJobDeduplicationKey(command, context, requestId);
105
+ case 'MoveToWaitingChildren':
106
+ return handleMoveToWaitingChildren(command, context, requestId);
107
+ default:
108
+ return null;
109
+ }
110
+ }