bunqueue 2.8.53 → 2.8.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/dist/application/background/dlq.d.ts +2 -0
  2. package/dist/application/background/dlq.js +26 -0
  3. package/dist/application/background/lifecycle.d.ts +4 -0
  4. package/dist/application/background/lifecycle.js +90 -0
  5. package/dist/application/background/recovery/active.d.ts +4 -0
  6. package/dist/application/background/recovery/active.js +69 -0
  7. package/dist/application/background/recovery/index.d.ts +2 -0
  8. package/dist/application/background/recovery/index.js +22 -0
  9. package/dist/application/background/recovery/pending.d.ts +3 -0
  10. package/dist/application/background/recovery/pending.js +69 -0
  11. package/dist/application/background/recovery/restore.d.ts +5 -0
  12. package/dist/application/background/recovery/restore.js +58 -0
  13. package/dist/application/background/recovery/shared.d.ts +6 -0
  14. package/dist/application/background/recovery/shared.js +15 -0
  15. package/dist/application/background/timeouts.d.ts +25 -0
  16. package/dist/application/background/timeouts.js +191 -0
  17. package/dist/application/backgroundTasks.d.ts +7 -31
  18. package/dist/application/backgroundTasks.js +6 -438
  19. package/dist/application/cleanupTasks.js +2 -1
  20. package/dist/application/clientTracking.js +3 -1
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +9 -0
  23. package/dist/application/dependencyResultTracker.d.ts +1 -0
  24. package/dist/application/dependencyResultTracker.js +3 -0
  25. package/dist/application/dlqManager.d.ts +9 -9
  26. package/dist/application/dlqManager.js +49 -167
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +24 -4
  30. package/dist/application/lockOperations.js +16 -3
  31. package/dist/application/operations/ack/batch.d.ts +8 -0
  32. package/dist/application/operations/ack/batch.js +64 -0
  33. package/dist/application/operations/ack/completion.d.ts +3 -0
  34. package/dist/application/operations/ack/completion.js +74 -0
  35. package/dist/application/operations/ack/failure.d.ts +3 -0
  36. package/dist/application/operations/ack/failure.js +160 -0
  37. package/dist/application/operations/ack.d.ts +5 -79
  38. package/dist/application/operations/ack.js +4 -319
  39. package/dist/application/operations/ackHelpers.d.ts +3 -52
  40. package/dist/application/operations/ackHelpers.js +11 -4
  41. package/dist/application/operations/customId.d.ts +18 -5
  42. package/dist/application/operations/customId.js +36 -25
  43. package/dist/application/operations/flowValidation.js +9 -4
  44. package/dist/application/operations/jobManagement.js +50 -11
  45. package/dist/application/operations/jobMoveOperations.js +3 -3
  46. package/dist/application/operations/jobStateTransitions.d.ts +1 -1
  47. package/dist/application/operations/jobStateTransitions.js +16 -2
  48. package/dist/application/operations/parentLink.d.ts +36 -0
  49. package/dist/application/operations/parentLink.js +153 -0
  50. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  51. package/dist/application/operations/parentLinkInput.js +23 -0
  52. package/dist/application/operations/push.d.ts +5 -44
  53. package/dist/application/operations/push.js +62 -152
  54. package/dist/application/operations/pushAdmission.d.ts +32 -0
  55. package/dist/application/operations/pushAdmission.js +38 -0
  56. package/dist/application/operations/pushBatch.d.ts +4 -0
  57. package/dist/application/operations/pushBatch.js +136 -0
  58. package/dist/application/operations/pushContext.d.ts +39 -0
  59. package/dist/application/operations/pushContext.js +1 -0
  60. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  61. package/dist/application/operations/pushDeduplication.js +131 -0
  62. package/dist/application/operations/pushInsert.d.ts +13 -1
  63. package/dist/application/operations/pushInsert.js +33 -17
  64. package/dist/application/operations/pushLocks.js +13 -9
  65. package/dist/application/operations/query/collect.d.ts +12 -0
  66. package/dist/application/operations/query/collect.js +118 -0
  67. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  68. package/dist/application/operations/query/jobLookup.js +110 -0
  69. package/dist/application/operations/query/pagination.d.ts +8 -0
  70. package/dist/application/operations/query/pagination.js +90 -0
  71. package/dist/application/operations/query/state.d.ts +4 -0
  72. package/dist/application/operations/query/state.js +63 -0
  73. package/dist/application/operations/queryOperations.d.ts +5 -50
  74. package/dist/application/operations/queryOperations.js +4 -474
  75. package/dist/application/queue-manager/ack.d.ts +23 -0
  76. package/dist/application/queue-manager/ack.js +242 -0
  77. package/dist/application/queue-manager/configuration.d.ts +27 -0
  78. package/dist/application/queue-manager/configuration.js +84 -0
  79. package/dist/application/queue-manager/context.d.ts +5 -0
  80. package/dist/application/queue-manager/context.js +61 -0
  81. package/dist/application/queue-manager/control.d.ts +17 -0
  82. package/dist/application/queue-manager/control.js +133 -0
  83. package/dist/application/queue-manager/delivery.d.ts +32 -0
  84. package/dist/application/queue-manager/delivery.js +143 -0
  85. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  86. package/dist/application/queue-manager/dependencies.js +127 -0
  87. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  88. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  89. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  90. package/dist/application/queue-manager/flow-failures.js +107 -0
  91. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  92. package/dist/application/queue-manager/flow-options.js +129 -0
  93. package/dist/application/queue-manager/job-management.d.ts +17 -0
  94. package/dist/application/queue-manager/job-management.js +100 -0
  95. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  96. package/dist/application/queue-manager/lifecycle.js +41 -0
  97. package/dist/application/queue-manager/limits.d.ts +41 -0
  98. package/dist/application/queue-manager/limits.js +108 -0
  99. package/dist/application/queue-manager/locks.d.ts +21 -0
  100. package/dist/application/queue-manager/locks.js +59 -0
  101. package/dist/application/queue-manager/observability.d.ts +16 -0
  102. package/dist/application/queue-manager/observability.js +44 -0
  103. package/dist/application/queue-manager/queries.d.ts +17 -0
  104. package/dist/application/queue-manager/queries.js +118 -0
  105. package/dist/application/queue-manager/repeat.d.ts +4 -0
  106. package/dist/application/queue-manager/repeat.js +26 -0
  107. package/dist/application/queue-manager/services.d.ts +19 -0
  108. package/dist/application/queue-manager/services.js +80 -0
  109. package/dist/application/queue-manager/state.d.ts +92 -0
  110. package/dist/application/queue-manager/state.js +144 -0
  111. package/dist/application/queue-manager/stats.d.ts +28 -0
  112. package/dist/application/queue-manager/stats.js +52 -0
  113. package/dist/application/queueManager.d.ts +4 -380
  114. package/dist/application/queueManager.js +3 -1880
  115. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  116. package/dist/application/queueTelemetryJournal.js +133 -0
  117. package/dist/application/repeatJobs.d.ts +7 -0
  118. package/dist/application/repeatJobs.js +132 -0
  119. package/dist/application/stallDetection.js +9 -4
  120. package/dist/application/types/ack.d.ts +132 -0
  121. package/dist/application/types/ack.js +1 -0
  122. package/dist/application/types/background.d.ts +18 -0
  123. package/dist/application/types/background.js +1 -0
  124. package/dist/application/types/config.d.ts +37 -0
  125. package/dist/application/types/config.js +15 -0
  126. package/dist/application/types/contextFactory.d.ts +83 -0
  127. package/dist/application/types/contextFactory.js +1 -0
  128. package/dist/application/types/contexts.d.ts +110 -0
  129. package/dist/application/types/contexts.js +1 -0
  130. package/dist/application/types/index.d.ts +7 -0
  131. package/dist/application/types/index.js +1 -0
  132. package/dist/application/types/query.d.ts +23 -0
  133. package/dist/application/types/query.js +1 -0
  134. package/dist/application/types/queueManager.d.ts +94 -0
  135. package/dist/application/types/queueManager.js +1 -0
  136. package/dist/cli/commandRouter.d.ts +1 -1
  137. package/dist/cli/commands/core.js +1 -0
  138. package/dist/cli/output/collections.d.ts +8 -0
  139. package/dist/cli/output/collections.js +131 -0
  140. package/dist/cli/output/jobs.d.ts +2 -0
  141. package/dist/cli/output/jobs.js +61 -0
  142. package/dist/cli/output/style.d.ts +14 -0
  143. package/dist/cli/output/style.js +28 -0
  144. package/dist/cli/output/success.d.ts +1 -0
  145. package/dist/cli/output/success.js +108 -0
  146. package/dist/cli/output.d.ts +1 -6
  147. package/dist/cli/output.js +7 -395
  148. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  149. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  150. package/dist/client/bunqueue/runtime.d.ts +35 -0
  151. package/dist/client/bunqueue/runtime.js +138 -0
  152. package/dist/client/bunqueue.d.ts +19 -34
  153. package/dist/client/bunqueue.js +45 -166
  154. package/dist/client/dlqConversion.d.ts +5 -0
  155. package/dist/client/dlqConversion.js +28 -0
  156. package/dist/client/events.d.ts +7 -56
  157. package/dist/client/events.js +38 -15
  158. package/dist/client/flow.d.ts +6 -12
  159. package/dist/client/flow.js +16 -34
  160. package/dist/client/flowJobDependencies.js +3 -1
  161. package/dist/client/flowJobFactory.d.ts +9 -1
  162. package/dist/client/flowJobFactory.js +25 -9
  163. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  164. package/dist/client/flowJobMoveMethods.js +37 -17
  165. package/dist/client/flowLegacyPlan.js +22 -8
  166. package/dist/client/flowOptions.d.ts +1 -1
  167. package/dist/client/flowOptions.js +2 -1
  168. package/dist/client/flowPlan.js +2 -3
  169. package/dist/client/flowPush.d.ts +1 -0
  170. package/dist/client/flowPush.js +5 -1
  171. package/dist/client/flowReader.js +5 -5
  172. package/dist/client/flowResults.d.ts +11 -0
  173. package/dist/client/flowResults.js +42 -0
  174. package/dist/client/index.d.ts +3 -1
  175. package/dist/client/jobConversion.d.ts +3 -7
  176. package/dist/client/jobConversion.js +36 -33
  177. package/dist/client/jobConversionHelpers.d.ts +19 -3
  178. package/dist/client/jobConversionHelpers.js +20 -16
  179. package/dist/client/jobConversionTypes.d.ts +8 -0
  180. package/dist/client/jobDeduplication.d.ts +6 -0
  181. package/dist/client/jobDeduplication.js +14 -0
  182. package/dist/client/jobHelpers.d.ts +7 -2
  183. package/dist/client/jobHelpers.js +16 -8
  184. package/dist/client/queue/bullmqCompat.d.ts +18 -8
  185. package/dist/client/queue/bullmqCompat.js +39 -71
  186. package/dist/client/queue/deduplication.d.ts +2 -0
  187. package/dist/client/queue/deduplication.js +20 -11
  188. package/dist/client/queue/dlq.d.ts +11 -6
  189. package/dist/client/queue/dlq.js +57 -16
  190. package/dist/client/queue/dlqJobMethods.d.ts +9 -0
  191. package/dist/client/queue/dlqJobMethods.js +177 -0
  192. package/dist/client/queue/dlqOps.d.ts +2 -1
  193. package/dist/client/queue/dlqOps.js +4 -10
  194. package/dist/client/queue/dlqStats.d.ts +3 -0
  195. package/dist/client/queue/dlqStats.js +21 -0
  196. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  197. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  198. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  199. package/dist/client/queue/job-proxy/reflection.js +18 -0
  200. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  201. package/dist/client/queue/job-proxy/simple.js +316 -0
  202. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  203. package/dist/client/queue/job-proxy/tcp.js +191 -0
  204. package/dist/client/queue/jobMetadata.d.ts +10 -0
  205. package/dist/client/queue/jobMetadata.js +24 -0
  206. package/dist/client/queue/jobMove.d.ts +4 -4
  207. package/dist/client/queue/jobMove.js +87 -24
  208. package/dist/client/queue/jobProxy.d.ts +4 -50
  209. package/dist/client/queue/jobProxy.js +3 -511
  210. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  211. package/dist/client/queue/operations/add/bulk.js +129 -0
  212. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  213. package/dist/client/queue/operations/add/payload.js +85 -0
  214. package/dist/client/queue/operations/add/single.d.ts +3 -0
  215. package/dist/client/queue/operations/add/single.js +107 -0
  216. package/dist/client/queue/operations/add.d.ts +2 -47
  217. package/dist/client/queue/operations/add.js +2 -347
  218. package/dist/client/queue/operations/index.d.ts +1 -0
  219. package/dist/client/queue/operations/index.js +1 -0
  220. package/dist/client/queue/operations/management.d.ts +0 -4
  221. package/dist/client/queue/operations/management.js +35 -6
  222. package/dist/client/queue/operations/query.d.ts +1 -20
  223. package/dist/client/queue/operations/query.js +38 -116
  224. package/dist/client/queue/operations/queryStates.d.ts +13 -0
  225. package/dist/client/queue/operations/queryStates.js +32 -0
  226. package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
  227. package/dist/client/queue/operations/queryTcpPages.js +40 -0
  228. package/dist/client/queue/queue.d.ts +6 -189
  229. package/dist/client/queue/queue.js +6 -547
  230. package/dist/client/queue/rateLimit.d.ts +4 -4
  231. package/dist/client/queue/rateLimit.js +17 -8
  232. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  233. package/dist/client/queue/runtime/compatibility.js +38 -0
  234. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  235. package/dist/client/queue/runtime/configuration.js +109 -0
  236. package/dist/client/queue/runtime/connection.d.ts +6 -0
  237. package/dist/client/queue/runtime/connection.js +16 -0
  238. package/dist/client/queue/runtime/control.d.ts +41 -0
  239. package/dist/client/queue/runtime/control.js +87 -0
  240. package/dist/client/queue/runtime/queries.d.ts +48 -0
  241. package/dist/client/queue/runtime/queries.js +95 -0
  242. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  243. package/dist/client/queue/runtime/scheduling.js +56 -0
  244. package/dist/client/queue/runtime/state.d.ts +96 -0
  245. package/dist/client/queue/runtime/state.js +149 -0
  246. package/dist/client/queue/scheduler.d.ts +2 -5
  247. package/dist/client/queue/scheduler.js +25 -23
  248. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  249. package/dist/client/queue/schedulerPagination.js +10 -0
  250. package/dist/client/queue/types/add.d.ts +40 -0
  251. package/dist/client/queue/types/add.js +1 -0
  252. package/dist/client/queue/types/contexts.d.ts +33 -0
  253. package/dist/client/queue/types/contexts.js +5 -0
  254. package/dist/client/queue/types/index.d.ts +3 -0
  255. package/dist/client/queue/types/index.js +1 -0
  256. package/dist/client/queue/types/job.d.ts +50 -0
  257. package/dist/client/queue/types/job.js +1 -0
  258. package/dist/client/queue/types/runtime.d.ts +35 -0
  259. package/dist/client/queue/types/runtime.js +1 -0
  260. package/dist/client/queue/workers.d.ts +16 -8
  261. package/dist/client/queue/workers.js +42 -16
  262. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  263. package/dist/client/queue-events/tcpSubscription.js +99 -0
  264. package/dist/client/queueGroup.d.ts +11 -0
  265. package/dist/client/queueGroup.js +28 -1
  266. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  267. package/dist/client/sandboxed/queueOps.js +32 -5
  268. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  269. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  270. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  271. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  272. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  273. package/dist/client/sandboxed/runtime/log.js +15 -0
  274. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  275. package/dist/client/sandboxed/runtime/pool.js +121 -0
  276. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  277. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  278. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  279. package/dist/client/sandboxed/runtime/state.js +59 -0
  280. package/dist/client/sandboxed/types/index.d.ts +2 -0
  281. package/dist/client/sandboxed/types/index.js +1 -0
  282. package/dist/client/sandboxed/types/options.d.ts +27 -0
  283. package/dist/client/sandboxed/types/options.js +1 -0
  284. package/dist/client/sandboxed/types/process.d.ts +30 -0
  285. package/dist/client/sandboxed/types/process.js +1 -0
  286. package/dist/client/sandboxed/worker.d.ts +3 -85
  287. package/dist/client/sandboxed/worker.js +3 -557
  288. package/dist/client/sandboxed/wrapper.js +1 -0
  289. package/dist/client/tcp/client.d.ts +5 -112
  290. package/dist/client/tcp/client.js +5 -481
  291. package/dist/client/tcp/commandQueue.d.ts +23 -0
  292. package/dist/client/tcp/commandQueue.js +89 -0
  293. package/dist/client/tcp/connection.d.ts +4 -85
  294. package/dist/client/tcp/connection.js +3 -315
  295. package/dist/client/tcp/errors.d.ts +6 -0
  296. package/dist/client/tcp/errors.js +18 -0
  297. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  298. package/dist/client/tcp/runtime/commands.js +124 -0
  299. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  300. package/dist/client/tcp/runtime/connectivity.js +77 -0
  301. package/dist/client/tcp/runtime/health.d.ts +14 -0
  302. package/dist/client/tcp/runtime/health.js +127 -0
  303. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  304. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  305. package/dist/client/tcp/runtime/state.d.ts +50 -0
  306. package/dist/client/tcp/runtime/state.js +45 -0
  307. package/dist/client/tcp/transport.d.ts +18 -0
  308. package/dist/client/tcp/transport.js +158 -0
  309. package/dist/client/tcp/types/command.d.ts +9 -0
  310. package/dist/client/tcp/types/command.js +1 -0
  311. package/dist/client/tcp/types/connection.d.ts +31 -0
  312. package/dist/client/tcp/types/connection.js +17 -0
  313. package/dist/client/tcp/types/index.d.ts +5 -0
  314. package/dist/client/tcp/types/index.js +1 -0
  315. package/dist/client/tcp/types/socket.d.ts +8 -0
  316. package/dist/client/tcp/types/socket.js +1 -0
  317. package/dist/client/tcp/types/tls.d.ts +4 -0
  318. package/dist/client/tcp/types/tls.js +1 -0
  319. package/dist/client/tcp/types.d.ts +2 -106
  320. package/dist/client/tcp/types.js +2 -22
  321. package/dist/client/types/connection.d.ts +29 -0
  322. package/dist/client/types/connection.js +1 -0
  323. package/dist/client/types/dlq.d.ts +45 -0
  324. package/dist/client/types/dlq.js +1 -0
  325. package/dist/client/types/events.d.ts +54 -0
  326. package/dist/client/types/events.js +1 -0
  327. package/dist/client/types/flow.d.ts +10 -0
  328. package/dist/client/types/flow.js +1 -0
  329. package/dist/client/types/index.d.ts +10 -0
  330. package/dist/client/types/index.js +1 -0
  331. package/dist/client/types/job.d.ts +127 -0
  332. package/dist/client/types/job.js +1 -0
  333. package/dist/client/types/metrics.d.ts +1 -0
  334. package/dist/client/types/metrics.js +1 -0
  335. package/dist/client/types/options.d.ts +62 -0
  336. package/dist/client/types/options.js +1 -0
  337. package/dist/client/types/worker.d.ts +38 -0
  338. package/dist/client/types/worker.js +1 -0
  339. package/dist/client/types.d.ts +2 -583
  340. package/dist/client/types.js +2 -6
  341. package/dist/client/worker/ackBatcher.d.ts +1 -1
  342. package/dist/client/worker/ackBatcher.js +17 -5
  343. package/dist/client/worker/ackOutcome.d.ts +8 -0
  344. package/dist/client/worker/ackOutcome.js +58 -0
  345. package/dist/client/worker/constants.d.ts +7 -0
  346. package/dist/client/worker/constants.js +7 -0
  347. package/dist/client/worker/groupConcurrency.js +3 -0
  348. package/dist/client/worker/handlers/completion.d.ts +28 -0
  349. package/dist/client/worker/handlers/completion.js +68 -0
  350. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  351. package/dist/client/worker/handlers/dependencies.js +107 -0
  352. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  353. package/dist/client/worker/handlers/mutations.js +211 -0
  354. package/dist/client/worker/handlers/queries.d.ts +15 -0
  355. package/dist/client/worker/handlers/queries.js +100 -0
  356. package/dist/client/worker/index.d.ts +2 -2
  357. package/dist/client/worker/index.js +1 -1
  358. package/dist/client/worker/jobParser.js +4 -2
  359. package/dist/client/worker/processor.d.ts +2 -15
  360. package/dist/client/worker/processor.js +68 -125
  361. package/dist/client/worker/processorHandlers.d.ts +4 -65
  362. package/dist/client/worker/processorHandlers.js +4 -400
  363. package/dist/client/worker/processorOutcome.d.ts +14 -0
  364. package/dist/client/worker/processorOutcome.js +125 -0
  365. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  366. package/dist/client/worker/runtime/buffer.js +50 -0
  367. package/dist/client/worker/runtime/control.d.ts +26 -0
  368. package/dist/client/worker/runtime/control.js +175 -0
  369. package/dist/client/worker/runtime/execution.d.ts +11 -0
  370. package/dist/client/worker/runtime/execution.js +123 -0
  371. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  372. package/dist/client/worker/runtime/lifecycle.js +114 -0
  373. package/dist/client/worker/runtime/manual.d.ts +10 -0
  374. package/dist/client/worker/runtime/manual.js +137 -0
  375. package/dist/client/worker/runtime/options.d.ts +5 -0
  376. package/dist/client/worker/runtime/options.js +39 -0
  377. package/dist/client/worker/runtime/polling.d.ts +12 -0
  378. package/dist/client/worker/runtime/polling.js +123 -0
  379. package/dist/client/worker/runtime/state.d.ts +110 -0
  380. package/dist/client/worker/runtime/state.js +156 -0
  381. package/dist/client/worker/types/index.d.ts +5 -0
  382. package/dist/client/worker/types/index.js +1 -0
  383. package/dist/client/worker/types/manual.d.ts +7 -0
  384. package/dist/client/worker/types/manual.js +1 -0
  385. package/dist/client/worker/types/options.d.ts +24 -0
  386. package/dist/client/worker/types/options.js +1 -0
  387. package/dist/client/worker/types/outcome.d.ts +23 -0
  388. package/dist/client/worker/types/outcome.js +1 -0
  389. package/dist/client/worker/types/processor.d.ts +22 -0
  390. package/dist/client/worker/types/processor.js +1 -0
  391. package/dist/client/worker/types/transport.d.ts +11 -0
  392. package/dist/client/worker/types/transport.js +1 -0
  393. package/dist/client/worker/worker.d.ts +3 -160
  394. package/dist/client/worker/worker.js +3 -904
  395. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  396. package/dist/client/worker/workerRateLimiter.js +40 -20
  397. package/dist/client/worker.d.ts +1 -0
  398. package/dist/client/workflow/compensationChild.d.ts +2 -1
  399. package/dist/client/workflow/compensationChild.js +1 -1
  400. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  401. package/dist/client/workflow/compensationClaim.js +30 -0
  402. package/dist/client/workflow/compensator.d.ts +7 -2
  403. package/dist/client/workflow/compensator.js +5 -11
  404. package/dist/client/workflow/recovery.js +25 -2
  405. package/dist/client/workflow/rollbackControl.js +1 -1
  406. package/dist/domain/job/constants.d.ts +12 -0
  407. package/dist/domain/job/constants.js +12 -0
  408. package/dist/domain/job/create.d.ts +2 -0
  409. package/dist/domain/job/create.js +103 -0
  410. package/dist/domain/job/ids.d.ts +5 -0
  411. package/dist/domain/job/ids.js +12 -0
  412. package/dist/domain/job/locks.d.ts +4 -0
  413. package/dist/domain/job/locks.js +23 -0
  414. package/dist/domain/job/payload.d.ts +18 -0
  415. package/dist/domain/job/payload.js +43 -0
  416. package/dist/domain/job/state.d.ts +8 -0
  417. package/dist/domain/job/state.js +51 -0
  418. package/dist/domain/job/terminal.d.ts +3 -0
  419. package/dist/domain/job/terminal.js +9 -0
  420. package/dist/domain/queue/dlqShard.d.ts +2 -0
  421. package/dist/domain/queue/dlqShard.js +34 -9
  422. package/dist/domain/queue/limiterManager.d.ts +11 -0
  423. package/dist/domain/queue/limiterManager.js +28 -0
  424. package/dist/domain/queue/priorityQueue.js +3 -39
  425. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  426. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  427. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  428. package/dist/domain/queue/shard/dependencies.js +22 -0
  429. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  430. package/dist/domain/queue/shard/dlq.js +71 -0
  431. package/dist/domain/queue/shard/keys.d.ts +18 -0
  432. package/dist/domain/queue/shard/keys.js +45 -0
  433. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  434. package/dist/domain/queue/shard/lifecycle.js +43 -0
  435. package/dist/domain/queue/shard/limits.d.ts +24 -0
  436. package/dist/domain/queue/shard/limits.js +57 -0
  437. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  438. package/dist/domain/queue/shard/metrics.js +72 -0
  439. package/dist/domain/queue/shard/state.d.ts +34 -0
  440. package/dist/domain/queue/shard/state.js +80 -0
  441. package/dist/domain/queue/shard.d.ts +5 -137
  442. package/dist/domain/queue/shard.js +4 -390
  443. package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
  444. package/dist/domain/queue/uniqueKeyManager.js +9 -1
  445. package/dist/domain/response/builders.d.ts +15 -0
  446. package/dist/domain/response/builders.js +39 -0
  447. package/dist/domain/types/command.d.ts +2 -522
  448. package/dist/domain/types/command.js +2 -5
  449. package/dist/domain/types/commands/base.d.ts +5 -0
  450. package/dist/domain/types/commands/base.js +1 -0
  451. package/dist/domain/types/commands/core.d.ts +106 -0
  452. package/dist/domain/types/commands/core.js +1 -0
  453. package/dist/domain/types/commands/cron.d.ts +36 -0
  454. package/dist/domain/types/commands/cron.js +1 -0
  455. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  456. package/dist/domain/types/commands/dashboard.js +1 -0
  457. package/dist/domain/types/commands/dlq.d.ts +39 -0
  458. package/dist/domain/types/commands/dlq.js +1 -0
  459. package/dist/domain/types/commands/extended.d.ts +63 -0
  460. package/dist/domain/types/commands/extended.js +1 -0
  461. package/dist/domain/types/commands/index.d.ts +12 -0
  462. package/dist/domain/types/commands/index.js +12 -0
  463. package/dist/domain/types/commands/limits.d.ts +54 -0
  464. package/dist/domain/types/commands/limits.js +1 -0
  465. package/dist/domain/types/commands/management.d.ts +73 -0
  466. package/dist/domain/types/commands/management.js +1 -0
  467. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  468. package/dist/domain/types/commands/monitoring.js +1 -0
  469. package/dist/domain/types/commands/protocol.d.ts +20 -0
  470. package/dist/domain/types/commands/protocol.js +1 -0
  471. package/dist/domain/types/commands/query.d.ts +46 -0
  472. package/dist/domain/types/commands/query.js +1 -0
  473. package/dist/domain/types/commands/union.d.ts +13 -0
  474. package/dist/domain/types/commands/union.js +1 -0
  475. package/dist/domain/types/commands/workers.d.ts +39 -0
  476. package/dist/domain/types/commands/workers.js +1 -0
  477. package/dist/domain/types/cron.d.ts +4 -2
  478. package/dist/domain/types/cron.js +3 -0
  479. package/dist/domain/types/dlq.d.ts +17 -0
  480. package/dist/domain/types/dlq.js +70 -14
  481. package/dist/domain/types/index.d.ts +2 -0
  482. package/dist/domain/types/index.js +1 -0
  483. package/dist/domain/types/job.d.ts +8 -269
  484. package/dist/domain/types/job.js +8 -234
  485. package/dist/domain/types/jobs/model.d.ts +152 -0
  486. package/dist/domain/types/jobs/model.js +1 -0
  487. package/dist/domain/types/metrics.d.ts +16 -0
  488. package/dist/domain/types/metrics.js +1 -0
  489. package/dist/domain/types/priorityQueue.d.ts +12 -0
  490. package/dist/domain/types/priorityQueue.js +1 -0
  491. package/dist/domain/types/protocol.d.ts +5 -0
  492. package/dist/domain/types/protocol.js +4 -0
  493. package/dist/domain/types/queue.d.ts +7 -0
  494. package/dist/domain/types/queue.js +13 -0
  495. package/dist/domain/types/response.d.ts +3 -192
  496. package/dist/domain/types/response.js +3 -101
  497. package/dist/domain/types/responses/model.d.ts +152 -0
  498. package/dist/domain/types/responses/model.js +1 -0
  499. package/dist/domain/types/shard.d.ts +4 -0
  500. package/dist/domain/types/shard.js +1 -0
  501. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  502. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  503. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  504. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  505. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  506. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  507. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  508. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  509. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  510. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  511. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  512. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  513. package/dist/infrastructure/cloud/commands.js +7 -344
  514. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  515. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  516. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  517. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  518. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  519. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  520. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  521. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  522. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  523. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  524. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  525. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  526. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  527. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  528. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  529. package/dist/infrastructure/cloud/types/collector.js +1 -0
  530. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  531. package/dist/infrastructure/cloud/types/command.js +1 -0
  532. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  533. package/dist/infrastructure/cloud/types/config.js +1 -0
  534. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  535. package/dist/infrastructure/cloud/types/event.js +1 -0
  536. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  537. package/dist/infrastructure/cloud/types/redact.js +1 -0
  538. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  539. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  540. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  541. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  542. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  543. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  544. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  545. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  546. package/dist/infrastructure/cloud/types.d.ts +3 -445
  547. package/dist/infrastructure/cloud/types.js +0 -4
  548. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  549. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  550. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  551. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  552. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  553. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  554. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  555. package/dist/infrastructure/persistence/migrations.js +120 -0
  556. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  557. package/dist/infrastructure/persistence/schema.js +40 -136
  558. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  559. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  560. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  561. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  562. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  563. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  564. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  565. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  566. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  567. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  568. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  569. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  570. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  571. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  572. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  573. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  574. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  575. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  576. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  577. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  578. package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
  579. package/dist/infrastructure/persistence/sqlite.js +3 -997
  580. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  581. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  582. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  583. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  584. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  585. package/dist/infrastructure/persistence/statements.js +14 -9
  586. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  587. package/dist/infrastructure/persistence/types/admission.js +1 -0
  588. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  589. package/dist/infrastructure/persistence/types/batch.js +1 -0
  590. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  591. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  592. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  593. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  594. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  595. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  596. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  597. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  598. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  599. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  600. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  601. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  602. package/dist/infrastructure/server/bootstrap.js +3 -0
  603. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  604. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  605. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  606. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  607. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  608. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  609. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  610. package/dist/infrastructure/server/handlerRoutes.js +3 -257
  611. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  612. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  613. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  614. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  615. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  616. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  617. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  618. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  619. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  620. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  621. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  622. package/dist/infrastructure/server/handlers/core.js +37 -20
  623. package/dist/infrastructure/server/handlers/cron.js +9 -1
  624. package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
  625. package/dist/infrastructure/server/handlers/dlq.js +18 -4
  626. package/dist/infrastructure/server/handlers/flow.js +6 -1
  627. package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
  628. package/dist/infrastructure/server/handlers/introspection.js +21 -0
  629. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  630. package/dist/infrastructure/server/handlers/management.js +30 -0
  631. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  632. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  633. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  634. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  635. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  636. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  637. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  638. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  639. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  640. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  641. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  642. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  643. package/dist/infrastructure/server/handlers/query.js +13 -4
  644. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  645. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  646. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  647. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  648. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  649. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  650. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  651. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  652. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  653. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  654. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  655. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  656. package/dist/infrastructure/server/protocol/commands.js +31 -0
  657. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  658. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  659. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  660. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  661. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  662. package/dist/infrastructure/server/protocol/validation.js +75 -0
  663. package/dist/infrastructure/server/protocol.d.ts +5 -77
  664. package/dist/infrastructure/server/protocol.js +4 -265
  665. package/dist/infrastructure/server/rateLimiter.js +1 -0
  666. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  667. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  668. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  669. package/dist/infrastructure/server/sse/constants.js +5 -0
  670. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  671. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  672. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  673. package/dist/infrastructure/server/sseHandler.js +20 -96
  674. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  675. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  676. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  677. package/dist/infrastructure/server/tcp/connections.js +162 -0
  678. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  679. package/dist/infrastructure/server/tcp/constants.js +3 -0
  680. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  681. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  682. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  683. package/dist/infrastructure/server/tcp/responses.js +8 -0
  684. package/dist/infrastructure/server/tcp.d.ts +10 -68
  685. package/dist/infrastructure/server/tcp.js +47 -256
  686. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  687. package/dist/infrastructure/server/types/protocol.js +1 -0
  688. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  689. package/dist/infrastructure/server/types/sse.js +1 -0
  690. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  691. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  692. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  693. package/dist/infrastructure/server/types/ws.js +1 -0
  694. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  695. package/dist/infrastructure/server/ws/constants.js +130 -0
  696. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  697. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  698. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  699. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  700. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  701. package/dist/infrastructure/server/wsHandler.js +12 -237
  702. package/dist/mcp/adapter.d.ts +5 -403
  703. package/dist/mcp/adapter.js +6 -778
  704. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  705. package/dist/mcp/backend/embedded/base.js +15 -0
  706. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  707. package/dist/mcp/backend/embedded/index.js +22 -0
  708. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  709. package/dist/mcp/backend/embedded/jobs.js +98 -0
  710. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  711. package/dist/mcp/backend/embedded/queues.js +84 -0
  712. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  713. package/dist/mcp/backend/embedded/services.js +107 -0
  714. package/dist/mcp/backend/serializers.d.ts +7 -0
  715. package/dist/mcp/backend/serializers.js +32 -0
  716. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  717. package/dist/mcp/backend/tcp/base.js +54 -0
  718. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  719. package/dist/mcp/backend/tcp/index.js +20 -0
  720. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  721. package/dist/mcp/backend/tcp/jobs.js +122 -0
  722. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  723. package/dist/mcp/backend/tcp/queues.js +89 -0
  724. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  725. package/dist/mcp/backend/tcp/services.js +161 -0
  726. package/dist/mcp/types/adapter.d.ts +176 -0
  727. package/dist/mcp/types/adapter.js +1 -0
  728. package/dist/shared/asyncLock.d.ts +13 -0
  729. package/dist/shared/asyncLock.js +65 -0
  730. package/dist/shared/lock.d.ts +10 -72
  731. package/dist/shared/lock.js +7 -231
  732. package/dist/shared/lockError.d.ts +3 -0
  733. package/dist/shared/lockError.js +6 -0
  734. package/dist/shared/lockTimeout.d.ts +2 -0
  735. package/dist/shared/lockTimeout.js +2 -0
  736. package/dist/shared/rwLock.d.ts +22 -0
  737. package/dist/shared/rwLock.js +124 -0
  738. package/dist/shared/serialization.js +1 -0
  739. package/dist/shared/skipList.d.ts +0 -5
  740. package/dist/shared/skipList.js +10 -57
  741. package/dist/shared/skipListNodes.d.ts +6 -0
  742. package/dist/shared/skipListNodes.js +43 -0
  743. package/dist/shared/types/lock.d.ts +7 -0
  744. package/dist/shared/types/lock.js +1 -0
  745. package/dist/shared/types/skipList.d.ts +4 -0
  746. package/dist/shared/types/skipList.js +1 -0
  747. package/package.json +2 -1
@@ -1,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'],