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,284 +1,95 @@
1
- /**
2
- * HTTP Routes - Job operations
3
- * All /jobs/:id/* endpoints, split into sub-routers for complexity
4
- */
5
1
  import { handleCommand } from './handler';
2
+ import { routeJobAdvanced } from './http-routes/jobAdvanced';
3
+ import { routeJobManagement } from './http-routes/jobManagement';
6
4
  import { jsonResponse, parseJsonBody } from './httpEndpoints';
7
- // Pre-compiled regex patterns for URL matching
8
- const RE_JOB_PROMOTE = /^\/jobs\/([^/]+)\/promote$/;
9
- const RE_JOB_DATA = /^\/jobs\/([^/]+)\/data$/;
10
- const RE_JOB_STATE = /^\/jobs\/([^/]+)\/state$/;
11
- const RE_JOB_RESULT = /^\/jobs\/([^/]+)\/result$/;
12
- const RE_JOB_PROGRESS = /^\/jobs\/([^/]+)\/progress$/;
13
- const RE_JOB_PRIORITY = /^\/jobs\/([^/]+)\/priority$/;
14
- const RE_JOB_DISCARD = /^\/jobs\/([^/]+)\/discard$/;
15
- const RE_JOB_MOVE_DELAYED = /^\/jobs\/([^/]+)\/move-to-delayed$/;
16
- const RE_JOB_DELAY = /^\/jobs\/([^/]+)\/delay$/;
17
- const RE_JOB_CHILDREN = /^\/jobs\/([^/]+)\/children$/;
18
- const RE_JOB_LOGS = /^\/jobs\/([^/]+)\/logs$/;
19
- const RE_JOB_HEARTBEAT = /^\/jobs\/([^/]+)\/heartbeat$/;
20
- const RE_JOB_WAIT = /^\/jobs\/([^/]+)\/wait$/;
21
- const RE_JOB_EXTEND_LOCK = /^\/jobs\/([^/]+)\/extend-lock$/;
22
- const RE_JOB_MOVE_TO_WAIT = /^\/jobs\/([^/]+)\/move-to-wait$/;
23
5
  const RE_JOB_CUSTOM_ID = /^\/jobs\/custom\/([^/]+)$/;
24
6
  const RE_JOB_BY_ID = /^\/jobs\/([^/]+)$/;
25
7
  const RE_JOB_ACK = /^\/jobs\/([^/]+)\/ack$/;
26
8
  const RE_JOB_FAIL = /^\/jobs\/([^/]+)\/fail$/;
27
- /** Job management: promote, update, state, result, progress, priority, discard */
28
- async function routeJobManagement(req, path, method, ctx, cors) {
29
- const promoteMatch = path.match(RE_JOB_PROMOTE);
30
- if (promoteMatch && method === 'POST') {
31
- const r = await handleCommand({ cmd: 'Promote', id: promoteMatch[1] }, ctx);
32
- return jsonResponse(r, r.ok ? 200 : 400, cors);
33
- }
34
- const dataMatch = path.match(RE_JOB_DATA);
35
- if (dataMatch && method === 'PUT') {
36
- let body;
37
- try {
38
- body = (await req.json());
39
- }
40
- catch {
41
- return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
42
- }
43
- const r = await handleCommand({ cmd: 'Update', id: dataMatch[1], data: body['data'] }, ctx);
44
- return jsonResponse(r, r.ok ? 200 : 400, cors);
45
- }
46
- const stateMatch = path.match(RE_JOB_STATE);
47
- if (stateMatch && method === 'GET') {
48
- const r = await handleCommand({ cmd: 'GetState', id: stateMatch[1] }, ctx);
49
- return jsonResponse(r, r.ok ? 200 : 404, cors);
50
- }
51
- const resultMatch = path.match(RE_JOB_RESULT);
52
- if (resultMatch && method === 'GET') {
53
- const r = await handleCommand({ cmd: 'GetResult', id: resultMatch[1] }, ctx);
54
- return jsonResponse(r, r.ok ? 200 : 404, cors);
55
- }
56
- const progressMatch = path.match(RE_JOB_PROGRESS);
57
- if (progressMatch && method === 'GET') {
58
- const r = await handleCommand({ cmd: 'GetProgress', id: progressMatch[1] }, ctx);
59
- return jsonResponse(r, r.ok ? 200 : 404, cors);
60
- }
61
- if (progressMatch && method === 'POST') {
62
- const body = await parseJsonBody(req, cors);
63
- if (body instanceof Response)
64
- return body;
65
- const r = await handleCommand({
66
- cmd: 'Progress',
67
- id: progressMatch[1],
68
- progress: body['progress'],
69
- message: body['message'],
70
- }, ctx);
71
- return jsonResponse(r, r.ok ? 200 : 400, cors);
72
- }
73
- const priorityMatch = path.match(RE_JOB_PRIORITY);
74
- if (priorityMatch && method === 'PUT') {
75
- const body = await parseJsonBody(req, cors);
76
- if (body instanceof Response)
77
- return body;
78
- const r = await handleCommand({
79
- cmd: 'ChangePriority',
80
- id: priorityMatch[1],
81
- priority: body['priority'],
82
- lifo: body['lifo'],
83
- }, ctx);
84
- return jsonResponse(r, r.ok ? 200 : 400, cors);
85
- }
86
- const discardMatch = path.match(RE_JOB_DISCARD);
87
- if (discardMatch && method === 'POST') {
88
- const r = await handleCommand({ cmd: 'Discard', id: discardMatch[1] }, ctx);
89
- return jsonResponse(r, r.ok ? 200 : 400, cors);
90
- }
91
- return null;
92
- }
93
- /** Job advanced: delay, children, logs, heartbeat, wait, lock, move-to-wait */
94
- async function routeJobAdvanced(req, path, method, ctx, cors) {
95
- const moveDelayedMatch = path.match(RE_JOB_MOVE_DELAYED);
96
- if (moveDelayedMatch && method === 'POST') {
97
- const body = await parseJsonBody(req, cors);
98
- if (body instanceof Response)
99
- return body;
100
- const r = await handleCommand({
101
- cmd: 'MoveToDelayed',
102
- id: moveDelayedMatch[1],
103
- delay: body['delay'],
104
- }, ctx);
105
- return jsonResponse(r, r.ok ? 200 : 400, cors);
106
- }
107
- const changeDelayMatch = path.match(RE_JOB_DELAY);
108
- if (changeDelayMatch && method === 'PUT') {
109
- const body = await parseJsonBody(req, cors);
110
- if (body instanceof Response)
111
- return body;
112
- const r = await handleCommand({
113
- cmd: 'ChangeDelay',
114
- id: changeDelayMatch[1],
115
- delay: body['delay'],
116
- }, ctx);
117
- return jsonResponse(r, r.ok ? 200 : 400, cors);
118
- }
119
- const childrenMatch = path.match(RE_JOB_CHILDREN);
120
- if (childrenMatch && method === 'GET') {
121
- const r = await handleCommand({ cmd: 'GetChildrenValues', id: childrenMatch[1] }, ctx);
122
- return jsonResponse(r, r.ok ? 200 : 404, cors);
123
- }
124
- const logsMatch = path.match(RE_JOB_LOGS);
125
- if (logsMatch && method === 'GET') {
126
- const r = await handleCommand({ cmd: 'GetLogs', id: logsMatch[1] }, ctx);
127
- return jsonResponse(r, 200, cors);
128
- }
129
- if (logsMatch && method === 'POST') {
130
- const body = await parseJsonBody(req, cors);
131
- if (body instanceof Response)
132
- return body;
133
- const r = await handleCommand({
134
- cmd: 'AddLog',
135
- id: logsMatch[1],
136
- message: body['message'],
137
- level: body['level'],
138
- }, ctx);
139
- return jsonResponse(r, r.ok ? 200 : 400, cors);
140
- }
141
- if (logsMatch && method === 'DELETE') {
142
- const r = await handleCommand({ cmd: 'ClearLogs', id: logsMatch[1] }, ctx);
143
- return jsonResponse(r, 200, cors);
144
- }
145
- const heartbeatMatch = path.match(RE_JOB_HEARTBEAT);
146
- if (heartbeatMatch && method === 'POST') {
147
- const body = await parseJsonBody(req, cors);
148
- if (body instanceof Response)
149
- return body;
150
- const r = await handleCommand({
151
- cmd: 'JobHeartbeat',
152
- id: heartbeatMatch[1],
153
- token: body['token'],
154
- duration: body['duration'],
155
- }, ctx);
156
- return jsonResponse(r, r.ok ? 200 : 400, cors);
157
- }
158
- const waitMatch = path.match(RE_JOB_WAIT);
159
- if (waitMatch && method === 'POST') {
160
- const body = await parseJsonBody(req, cors);
161
- if (body instanceof Response)
162
- return body;
163
- const r = await handleCommand({
164
- cmd: 'WaitJob',
165
- id: waitMatch[1],
166
- timeout: body['timeout'],
167
- }, ctx);
168
- return jsonResponse(r, 200, cors);
169
- }
170
- const extendLockMatch = path.match(RE_JOB_EXTEND_LOCK);
171
- if (extendLockMatch && method === 'POST') {
172
- const body = await parseJsonBody(req, cors);
173
- if (body instanceof Response)
174
- return body;
175
- const r = await handleCommand({
176
- cmd: 'ExtendLock',
177
- id: extendLockMatch[1],
178
- duration: body['duration'],
179
- token: body['token'],
180
- }, ctx);
181
- return jsonResponse(r, r.ok ? 200 : 400, cors);
182
- }
183
- const moveToWaitMatch = path.match(RE_JOB_MOVE_TO_WAIT);
184
- if (moveToWaitMatch && method === 'POST') {
185
- const r = await handleCommand({ cmd: 'MoveToWait', id: moveToWaitMatch[1] }, ctx);
186
- return jsonResponse(r, r.ok ? 200 : 400, cors);
187
- }
188
- return null;
189
- }
190
- /** Route /jobs/* requests. Returns Response or null if no match. */
191
- export async function routeJobRoutes(req, path, method, ctx, cors) {
192
- // Batch endpoints FIRST (exact match, before generic /jobs/:id pattern)
9
+ export async function routeJobRoutes(request, path, method, context, cors) {
193
10
  if (path === '/jobs/ack-batch' && method === 'POST') {
194
- const body = await parseJsonBody(req, cors);
11
+ const body = await parseJsonBody(request, cors);
195
12
  if (body instanceof Response)
196
13
  return body;
197
- const r = await handleCommand({
14
+ const result = await handleCommand({
198
15
  cmd: 'ACKB',
199
16
  ids: body['ids'],
200
17
  results: body['results'],
201
18
  tokens: body['tokens'],
202
- }, ctx);
203
- return jsonResponse(r, r.ok ? 200 : 400, cors);
19
+ }, context);
20
+ return jsonResponse(result, result.ok ? 200 : 400, cors);
204
21
  }
205
22
  if (path === '/jobs/extend-locks' && method === 'POST') {
206
- const body = await parseJsonBody(req, cors);
23
+ const body = await parseJsonBody(request, cors);
207
24
  if (body instanceof Response)
208
25
  return body;
209
- const r = await handleCommand({
26
+ const result = await handleCommand({
210
27
  cmd: 'ExtendLocks',
211
28
  ids: body['ids'],
212
29
  tokens: body['tokens'],
213
30
  durations: body['durations'],
214
- }, ctx);
215
- return jsonResponse(r, r.ok ? 200 : 400, cors);
31
+ }, context);
32
+ return jsonResponse(result, result.ok ? 200 : 400, cors);
216
33
  }
217
34
  if (path === '/jobs/heartbeat-batch' && method === 'POST') {
218
- const body = await parseJsonBody(req, cors);
35
+ const body = await parseJsonBody(request, cors);
219
36
  if (body instanceof Response)
220
37
  return body;
221
- const r = await handleCommand({
38
+ const result = await handleCommand({
222
39
  cmd: 'JobHeartbeatB',
223
40
  ids: body['ids'],
224
41
  tokens: body['tokens'],
225
- }, ctx);
226
- return jsonResponse(r, r.ok ? 200 : 400, cors);
42
+ }, context);
43
+ return jsonResponse(result, result.ok ? 200 : 400, cors);
227
44
  }
228
- // GET /jobs/custom/:customId (before generic /jobs/:id)
229
45
  const customIdMatch = path.match(RE_JOB_CUSTOM_ID);
230
46
  if (customIdMatch && method === 'GET') {
231
47
  const customId = decodeURIComponent(customIdMatch[1]);
232
- const r = await handleCommand({ cmd: 'GetJobByCustomId', customId }, ctx);
233
- return jsonResponse(r, r.ok ? 200 : 404, cors);
48
+ const result = await handleCommand({ cmd: 'GetJobByCustomId', customId }, context);
49
+ return jsonResponse(result, result.ok ? 200 : 404, cors);
234
50
  }
235
- // GET/DELETE /jobs/:id (generic, after specific paths)
236
51
  const jobMatch = path.match(RE_JOB_BY_ID);
237
52
  if (jobMatch) {
238
53
  const id = jobMatch[1];
239
54
  if (method === 'GET') {
240
- const r = await handleCommand({ cmd: 'GetJob', id }, ctx);
241
- return jsonResponse(r, r.ok ? 200 : 404, cors);
55
+ const result = await handleCommand({ cmd: 'GetJob', id }, context);
56
+ return jsonResponse(result, result.ok ? 200 : 404, cors);
242
57
  }
243
58
  if (method === 'DELETE') {
244
- const r = await handleCommand({ cmd: 'Cancel', id }, ctx);
245
- return jsonResponse(r, 200, cors);
59
+ const result = await handleCommand({ cmd: 'Cancel', id }, context);
60
+ return jsonResponse(result, 200, cors);
246
61
  }
247
62
  }
248
- // POST /jobs/:id/ack
249
63
  const ackMatch = path.match(RE_JOB_ACK);
250
64
  if (ackMatch && method === 'POST') {
251
- const body = await parseJsonBody(req, cors);
65
+ const body = await parseJsonBody(request, cors);
252
66
  if (body instanceof Response)
253
67
  return body;
254
- const r = await handleCommand({
68
+ const result = await handleCommand({
255
69
  cmd: 'ACK',
256
70
  id: ackMatch[1],
257
71
  result: body['result'],
258
72
  token: body['token'],
259
- }, ctx);
260
- return jsonResponse(r, r.ok ? 200 : 400, cors);
73
+ }, context);
74
+ return jsonResponse(result, result.ok ? 200 : 400, cors);
261
75
  }
262
- // POST /jobs/:id/fail
263
76
  const failMatch = path.match(RE_JOB_FAIL);
264
77
  if (failMatch && method === 'POST') {
265
- const body = await parseJsonBody(req, cors);
78
+ const body = await parseJsonBody(request, cors);
266
79
  if (body instanceof Response)
267
80
  return body;
268
- const r = await handleCommand({
81
+ const result = await handleCommand({
269
82
  cmd: 'FAIL',
270
83
  id: failMatch[1],
271
84
  error: body['error'],
272
85
  token: body['token'],
273
86
  unrecoverable: body['unrecoverable'],
274
- // Validated (string[] only, capped) in handleFail (#74)
275
87
  stack: body['stack'],
276
- }, ctx);
277
- return jsonResponse(r, r.ok ? 200 : 400, cors);
88
+ }, context);
89
+ return jsonResponse(result, result.ok ? 200 : 400, cors);
278
90
  }
279
- // Delegate to sub-routers
280
- const mgmt = await routeJobManagement(req, path, method, ctx, cors);
281
- if (mgmt)
282
- return mgmt;
283
- return routeJobAdvanced(req, path, method, ctx, cors);
91
+ const management = await routeJobManagement(request, path, method, context, cors);
92
+ if (management)
93
+ return management;
94
+ return routeJobAdvanced(request, path, method, context, cors);
284
95
  }
@@ -1,7 +1,2 @@
1
- /**
2
- * HTTP Routes - Queue operations
3
- * All /queues/:queue/* endpoints + /queues list
4
- */
5
1
  import type { HandlerContext } from './types';
6
- /** Route /queues/* requests. Returns Response or null if no match. */
7
- export declare function routeQueueRoutes(req: Request, path: string, method: string, ctx: HandlerContext, cors: Set<string>): Promise<Response | null>;
2
+ export declare function routeQueueRoutes(request: Request, path: string, method: string, context: HandlerContext, cors: Set<string>): Promise<Response | null>;
@@ -1,14 +1,6 @@
1
- /**
2
- * HTTP Routes - Queue operations
3
- * All /queues/:queue/* endpoints + /queues list
4
- */
5
1
  import { handleCommand } from './handler';
2
+ import { routeQueueJobOperations } from './http-routes/queueJobs';
6
3
  import { jsonResponse, parseJsonBody } from './httpEndpoints';
7
- // Pre-compiled regex patterns for URL matching
8
- const RE_QUEUE_JOBS = /^\/queues\/([^/]+)\/jobs$/;
9
- const RE_QUEUE_JOBS_BULK = /^\/queues\/([^/]+)\/jobs\/bulk$/;
10
- const RE_QUEUE_JOBS_PULL_BATCH = /^\/queues\/([^/]+)\/jobs\/pull-batch$/;
11
- const RE_QUEUE_JOBS_LIST = /^\/queues\/([^/]+)\/jobs\/list$/;
12
4
  const RE_QUEUE_COUNTS = /^\/queues\/([^/]+)\/counts$/;
13
5
  const RE_QUEUE_COUNT = /^\/queues\/([^/]+)\/count$/;
14
6
  const RE_QUEUE_PRIORITY_COUNTS = /^\/queues\/([^/]+)\/priority-counts$/;
@@ -21,258 +13,100 @@ const RE_QUEUE_CLEAN = /^\/queues\/([^/]+)\/clean$/;
21
13
  const RE_QUEUE_PROMOTE_JOBS = /^\/queues\/([^/]+)\/promote-jobs$/;
22
14
  const RE_QUEUE_RETRY_COMPLETED = /^\/queues\/([^/]+)\/retry-completed$/;
23
15
  const RE_QUEUE_WORKERS = /^\/queues\/([^/]+)\/workers$/;
24
- /** Route push/pull/bulk job operations */
25
- async function routeJobOps(req, path, method, ctx, cors) {
26
- // POST/GET /queues/:queue/jobs - push/pull
27
- const queueJobsMatch = path.match(RE_QUEUE_JOBS);
28
- if (queueJobsMatch) {
29
- const queue = decodeURIComponent(queueJobsMatch[1]);
30
- if (method === 'POST') {
31
- let body;
32
- try {
33
- body = (await req.json());
34
- }
35
- catch {
36
- return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
37
- }
38
- const cmd = {
39
- cmd: 'PUSH',
40
- queue,
41
- data: body.data,
42
- priority: body.priority,
43
- delay: body.delay,
44
- maxAttempts: body.maxAttempts ?? body.attempts,
45
- backoff: body.backoff,
46
- timeout: body.timeout,
47
- jobId: body.jobId,
48
- removeOnComplete: body.removeOnComplete,
49
- removeOnFail: body.removeOnFail,
50
- durable: body.durable,
51
- ttl: body.ttl,
52
- uniqueKey: body.uniqueKey,
53
- groupId: body.groupId,
54
- dependsOn: body.dependsOn,
55
- tags: body.tags,
56
- lifo: body.lifo,
57
- repeat: body.repeat,
58
- };
59
- const r = await handleCommand(cmd, ctx);
60
- return jsonResponse(r, r.ok ? 200 : 400, cors);
61
- }
62
- if (method === 'GET') {
63
- const timeout = parseInt(new URL(req.url).searchParams.get('timeout') ?? '0', 10);
64
- const r = await handleCommand({ cmd: 'PULL', queue, timeout }, ctx);
65
- return jsonResponse(r, 200, cors);
66
- }
67
- }
68
- // POST /queues/:queue/jobs/bulk - bulk push
69
- const bulkMatch = path.match(RE_QUEUE_JOBS_BULK);
70
- if (bulkMatch && method === 'POST') {
71
- const queue = decodeURIComponent(bulkMatch[1]);
72
- let body;
73
- try {
74
- body = (await req.json());
75
- }
76
- catch {
77
- return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
78
- }
79
- const r = await handleCommand({
80
- cmd: 'PUSHB',
81
- queue,
82
- jobs: body['jobs'],
83
- }, ctx);
84
- return jsonResponse(r, r.ok ? 200 : 400, cors);
85
- }
86
- // POST /queues/:queue/jobs/pull-batch
87
- const pullBatchMatch = path.match(RE_QUEUE_JOBS_PULL_BATCH);
88
- if (pullBatchMatch && method === 'POST') {
89
- const queue = decodeURIComponent(pullBatchMatch[1]);
90
- const body = await parseJsonBody(req, cors);
91
- if (body instanceof Response)
92
- return body;
93
- const r = await handleCommand({
94
- cmd: 'PULLB',
95
- queue,
96
- count: body['count'],
97
- timeout: body['timeout'],
98
- owner: body['owner'],
99
- lockTtl: body['lockTtl'],
100
- }, ctx);
101
- return jsonResponse(r, 200, cors);
102
- }
103
- // GET /queues/:queue/jobs/list?state=&limit=&offset=
104
- const listMatch = path.match(RE_QUEUE_JOBS_LIST);
105
- if (listMatch && method === 'GET') {
106
- const queue = decodeURIComponent(listMatch[1]);
107
- const url = new URL(req.url);
108
- // Accept `state`, `status` (dashboard/REST convention), and `states` as
109
- // aliases, each repeatable and comma-separated. Previously only `state` was
110
- // read, so `?status=failed` silently fell through to an unfiltered list and
111
- // returned the whole queue (#95). A state name never contains a comma, so
112
- // splitting is safe.
113
- const stateValues = [
114
- ...url.searchParams.getAll('state'),
115
- ...url.searchParams.getAll('status'),
116
- ...url.searchParams.getAll('states'),
117
- ]
118
- .flatMap((v) => v.split(','))
119
- .map((s) => s.trim())
120
- .filter(Boolean);
121
- const state = stateValues.length === 0
122
- ? undefined
123
- : stateValues.length === 1
124
- ? stateValues[0]
125
- : stateValues;
126
- const limitParam = url.searchParams.get('limit');
127
- const offsetParam = url.searchParams.get('offset');
128
- const limit = limitParam ? parseInt(limitParam, 10) : undefined;
129
- const offset = offsetParam ? parseInt(offsetParam, 10) : undefined;
130
- const r = await handleCommand({
131
- cmd: 'GetJobs',
132
- queue,
133
- state,
134
- limit,
135
- offset,
136
- }, ctx);
137
- return jsonResponse(r, 200, cors);
138
- }
139
- return null;
140
- }
141
- /** Route /queues/* requests. Returns Response or null if no match. */
142
- export async function routeQueueRoutes(req, path, method, ctx, cors) {
143
- // GET /queues - list all queues
16
+ export async function routeQueueRoutes(request, path, method, context, cors) {
144
17
  if (path === '/queues' && method === 'GET') {
145
- const r = await handleCommand({ cmd: 'ListQueues' }, ctx);
146
- return jsonResponse(r, 200, cors);
18
+ return jsonResponse(await handleCommand({ cmd: 'ListQueues' }, context), 200, cors);
147
19
  }
148
- // GET /queues/summary - all queues with paused + counts in one call
149
20
  if (path === '/queues/summary' && method === 'GET') {
150
- const summary = ctx.queueManager.getQueuesSummary();
151
- return jsonResponse(summary, 200, cors);
21
+ return jsonResponse(context.queueManager.getQueuesSummary(), 200, cors);
152
22
  }
153
- // Delegate push/pull/bulk/list operations
154
- const jobOpsResult = await routeJobOps(req, path, method, ctx, cors);
155
- if (jobOpsResult)
156
- return jobOpsResult;
157
- // GET /queues/:queue/workers
23
+ const jobOperations = await routeQueueJobOperations(request, path, method, context, cors);
24
+ if (jobOperations)
25
+ return jobOperations;
158
26
  const queueWorkersMatch = path.match(RE_QUEUE_WORKERS);
159
27
  if (queueWorkersMatch && method === 'GET') {
160
28
  const queue = decodeURIComponent(queueWorkersMatch[1]);
161
- const workers = ctx.queueManager.workerManager.getForQueue(queue);
29
+ const workers = context.queueManager.workerManager.getForQueue(queue);
162
30
  return jsonResponse({
163
31
  ok: true,
164
- workers: workers.map((w) => ({
165
- id: w.id,
166
- name: w.name,
167
- queues: w.queues,
168
- concurrency: w.concurrency,
169
- registeredAt: w.registeredAt,
170
- lastSeen: w.lastSeen,
171
- activeJobs: w.activeJobs,
172
- processedJobs: w.processedJobs,
173
- failedJobs: w.failedJobs,
32
+ workers: workers.map((worker) => ({
33
+ id: worker.id,
34
+ name: worker.name,
35
+ queues: worker.queues,
36
+ concurrency: worker.concurrency,
37
+ registeredAt: worker.registeredAt,
38
+ lastSeen: worker.lastSeen,
39
+ activeJobs: worker.activeJobs,
40
+ processedJobs: worker.processedJobs,
41
+ failedJobs: worker.failedJobs,
174
42
  })),
175
43
  }, 200, cors);
176
44
  }
177
- // GET /queues/:queue/counts
178
45
  const countsMatch = path.match(RE_QUEUE_COUNTS);
179
46
  if (countsMatch && method === 'GET') {
180
47
  const queue = decodeURIComponent(countsMatch[1]);
181
- const r = await handleCommand({ cmd: 'GetJobCounts', queue }, ctx);
182
- return jsonResponse(r, 200, cors);
48
+ return jsonResponse(await handleCommand({ cmd: 'GetJobCounts', queue }, context), 200, cors);
183
49
  }
184
- // GET /queues/:queue/count
185
50
  const countMatch = path.match(RE_QUEUE_COUNT);
186
51
  if (countMatch && method === 'GET') {
187
52
  const queue = decodeURIComponent(countMatch[1]);
188
- const r = await handleCommand({ cmd: 'Count', queue }, ctx);
189
- return jsonResponse(r, 200, cors);
53
+ return jsonResponse(await handleCommand({ cmd: 'Count', queue }, context), 200, cors);
190
54
  }
191
- // GET /queues/:queue/priority-counts
192
- const priCountsMatch = path.match(RE_QUEUE_PRIORITY_COUNTS);
193
- if (priCountsMatch && method === 'GET') {
194
- const queue = decodeURIComponent(priCountsMatch[1]);
195
- const r = await handleCommand({ cmd: 'GetCountsPerPriority', queue }, ctx);
196
- return jsonResponse(r, 200, cors);
55
+ const priorityCountsMatch = path.match(RE_QUEUE_PRIORITY_COUNTS);
56
+ if (priorityCountsMatch && method === 'GET') {
57
+ const queue = decodeURIComponent(priorityCountsMatch[1]);
58
+ return jsonResponse(await handleCommand({ cmd: 'GetCountsPerPriority', queue }, context), 200, cors);
197
59
  }
198
- // GET /queues/:queue/paused
199
60
  const pausedMatch = path.match(RE_QUEUE_PAUSED);
200
61
  if (pausedMatch && method === 'GET') {
201
62
  const queue = decodeURIComponent(pausedMatch[1]);
202
- const r = await handleCommand({ cmd: 'IsPaused', queue }, ctx);
203
- return jsonResponse(r, 200, cors);
204
- }
205
- // POST /queues/:queue/pause
206
- const pauseMatch = path.match(RE_QUEUE_PAUSE);
207
- if (pauseMatch && method === 'POST') {
208
- const queue = decodeURIComponent(pauseMatch[1]);
209
- const r = await handleCommand({ cmd: 'Pause', queue }, ctx);
210
- return jsonResponse(r, 200, cors);
211
- }
212
- // POST /queues/:queue/resume
213
- const resumeMatch = path.match(RE_QUEUE_RESUME);
214
- if (resumeMatch && method === 'POST') {
215
- const queue = decodeURIComponent(resumeMatch[1]);
216
- const r = await handleCommand({ cmd: 'Resume', queue }, ctx);
217
- return jsonResponse(r, 200, cors);
218
- }
219
- // POST /queues/:queue/drain
220
- const drainMatch = path.match(RE_QUEUE_DRAIN);
221
- if (drainMatch && method === 'POST') {
222
- const queue = decodeURIComponent(drainMatch[1]);
223
- const r = await handleCommand({ cmd: 'Drain', queue }, ctx);
224
- return jsonResponse(r, 200, cors);
225
- }
226
- // POST /queues/:queue/obliterate
227
- const obliterateMatch = path.match(RE_QUEUE_OBLITERATE);
228
- if (obliterateMatch && method === 'POST') {
229
- const queue = decodeURIComponent(obliterateMatch[1]);
230
- const r = await handleCommand({ cmd: 'Obliterate', queue }, ctx);
231
- return jsonResponse(r, 200, cors);
63
+ return jsonResponse(await handleCommand({ cmd: 'IsPaused', queue }, context), 200, cors);
64
+ }
65
+ const controlRoutes = [
66
+ [RE_QUEUE_PAUSE, 'POST', 'Pause'],
67
+ [RE_QUEUE_RESUME, 'POST', 'Resume'],
68
+ [RE_QUEUE_DRAIN, 'POST', 'Drain'],
69
+ [RE_QUEUE_OBLITERATE, 'POST', 'Obliterate'],
70
+ ];
71
+ for (const [pattern, expectedMethod, commandName] of controlRoutes) {
72
+ const match = path.match(pattern);
73
+ if (match && method === expectedMethod) {
74
+ const queue = decodeURIComponent(match[1]);
75
+ return jsonResponse(await handleCommand({ cmd: commandName, queue }, context), 200, cors);
76
+ }
232
77
  }
233
- // POST /queues/:queue/clean
234
78
  const cleanMatch = path.match(RE_QUEUE_CLEAN);
235
79
  if (cleanMatch && method === 'POST') {
236
80
  const queue = decodeURIComponent(cleanMatch[1]);
237
- const body = await parseJsonBody(req, cors);
81
+ const body = await parseJsonBody(request, cors);
238
82
  if (body instanceof Response)
239
83
  return body;
240
- const r = await handleCommand({
84
+ const result = await handleCommand({
241
85
  cmd: 'Clean',
242
86
  queue,
243
87
  grace: typeof body['grace'] === 'number' ? body['grace'] : 0,
244
88
  state: body['state'],
245
89
  limit: body['limit'],
246
- }, ctx);
247
- return jsonResponse(r, 200, cors);
90
+ }, context);
91
+ return jsonResponse(result, 200, cors);
248
92
  }
249
- // POST /queues/:queue/promote-jobs
250
93
  const promoteJobsMatch = path.match(RE_QUEUE_PROMOTE_JOBS);
251
94
  if (promoteJobsMatch && method === 'POST') {
252
95
  const queue = decodeURIComponent(promoteJobsMatch[1]);
253
- const body = await parseJsonBody(req, cors);
96
+ const body = await parseJsonBody(request, cors);
254
97
  if (body instanceof Response)
255
98
  return body;
256
- const r = await handleCommand({
257
- cmd: 'PromoteJobs',
258
- queue,
259
- count: body['count'],
260
- }, ctx);
261
- return jsonResponse(r, 200, cors);
99
+ const result = await handleCommand({ cmd: 'PromoteJobs', queue, count: body['count'] }, context);
100
+ return jsonResponse(result, 200, cors);
262
101
  }
263
- // POST /queues/:queue/retry-completed
264
- const retryCompMatch = path.match(RE_QUEUE_RETRY_COMPLETED);
265
- if (retryCompMatch && method === 'POST') {
266
- const queue = decodeURIComponent(retryCompMatch[1]);
267
- const body = await parseJsonBody(req, cors);
102
+ const retryCompletedMatch = path.match(RE_QUEUE_RETRY_COMPLETED);
103
+ if (retryCompletedMatch && method === 'POST') {
104
+ const queue = decodeURIComponent(retryCompletedMatch[1]);
105
+ const body = await parseJsonBody(request, cors);
268
106
  if (body instanceof Response)
269
107
  return body;
270
- const r = await handleCommand({
271
- cmd: 'RetryCompleted',
272
- queue,
273
- id: body['id'],
274
- }, ctx);
275
- return jsonResponse(r, 200, cors);
108
+ const result = await handleCommand({ cmd: 'RetryCompleted', queue, id: body['id'] }, context);
109
+ return jsonResponse(result, 200, cors);
276
110
  }
277
111
  return null;
278
112
  }
@@ -30,6 +30,7 @@ export async function routeResourceRoutes(req, path, method, ctx, cors) {
30
30
  const r = await handleCommand({
31
31
  cmd: 'Cron',
32
32
  name: body['name'],
33
+ jobName: typeof body['jobName'] === 'string' ? body['jobName'] : 'default',
33
34
  queue: body['queue'],
34
35
  data: body['data'],
35
36
  schedule: body['schedule'],