bunqueue 2.8.0 → 2.8.1

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 (291) hide show
  1. package/README.md +26 -11
  2. package/dist/application/backgroundTasks.d.ts.map +1 -1
  3. package/dist/application/backgroundTasks.js +83 -0
  4. package/dist/application/backgroundTasks.js.map +1 -1
  5. package/dist/application/clientTracking.d.ts +23 -0
  6. package/dist/application/clientTracking.d.ts.map +1 -1
  7. package/dist/application/clientTracking.js +80 -25
  8. package/dist/application/clientTracking.js.map +1 -1
  9. package/dist/application/contextFactory.d.ts +6 -0
  10. package/dist/application/contextFactory.d.ts.map +1 -1
  11. package/dist/application/contextFactory.js +7 -0
  12. package/dist/application/contextFactory.js.map +1 -1
  13. package/dist/application/dlqManager.d.ts.map +1 -1
  14. package/dist/application/dlqManager.js +5 -0
  15. package/dist/application/dlqManager.js.map +1 -1
  16. package/dist/application/eventsManager.js.map +1 -1
  17. package/dist/application/lockManager.d.ts +1 -1
  18. package/dist/application/lockManager.d.ts.map +1 -1
  19. package/dist/application/lockManager.js +1 -1
  20. package/dist/application/lockManager.js.map +1 -1
  21. package/dist/application/operations/ack.d.ts.map +1 -1
  22. package/dist/application/operations/ack.js +32 -33
  23. package/dist/application/operations/ack.js.map +1 -1
  24. package/dist/application/operations/jobManagement.d.ts +1 -1
  25. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  26. package/dist/application/operations/jobManagement.js +3 -2
  27. package/dist/application/operations/jobManagement.js.map +1 -1
  28. package/dist/application/operations/push.js.map +1 -1
  29. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  30. package/dist/application/operations/queryOperations.js +37 -3
  31. package/dist/application/operations/queryOperations.js.map +1 -1
  32. package/dist/application/operations/queueControl.d.ts +16 -4
  33. package/dist/application/operations/queueControl.d.ts.map +1 -1
  34. package/dist/application/operations/queueControl.js +119 -23
  35. package/dist/application/operations/queueControl.js.map +1 -1
  36. package/dist/application/queueManager.d.ts +17 -3
  37. package/dist/application/queueManager.d.ts.map +1 -1
  38. package/dist/application/queueManager.js +106 -27
  39. package/dist/application/queueManager.js.map +1 -1
  40. package/dist/application/stallDetection.js +1 -0
  41. package/dist/application/stallDetection.js.map +1 -1
  42. package/dist/application/types.d.ts +2 -1
  43. package/dist/application/types.d.ts.map +1 -1
  44. package/dist/cli/client.d.ts.map +1 -1
  45. package/dist/cli/client.js +15 -2
  46. package/dist/cli/client.js.map +1 -1
  47. package/dist/cli/index.d.ts.map +1 -1
  48. package/dist/cli/index.js +31 -2
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/output.d.ts +1 -1
  51. package/dist/cli/output.d.ts.map +1 -1
  52. package/dist/cli/output.js +71 -9
  53. package/dist/cli/output.js.map +1 -1
  54. package/dist/client/bunqueue/batch.js +2 -2
  55. package/dist/client/bunqueue/batch.js.map +1 -1
  56. package/dist/client/bunqueue.d.ts.map +1 -1
  57. package/dist/client/bunqueue.js +3 -3
  58. package/dist/client/bunqueue.js.map +1 -1
  59. package/dist/client/flow.d.ts.map +1 -1
  60. package/dist/client/flow.js +3 -1
  61. package/dist/client/flow.js.map +1 -1
  62. package/dist/client/flowJobFactory.d.ts +8 -1
  63. package/dist/client/flowJobFactory.d.ts.map +1 -1
  64. package/dist/client/flowJobFactory.js +328 -56
  65. package/dist/client/flowJobFactory.js.map +1 -1
  66. package/dist/client/flowPush.d.ts.map +1 -1
  67. package/dist/client/flowPush.js +95 -46
  68. package/dist/client/flowPush.js.map +1 -1
  69. package/dist/client/jobConversion.d.ts.map +1 -1
  70. package/dist/client/jobConversion.js +12 -4
  71. package/dist/client/jobConversion.js.map +1 -1
  72. package/dist/client/queue/bullmqCompat.d.ts +1 -0
  73. package/dist/client/queue/bullmqCompat.d.ts.map +1 -1
  74. package/dist/client/queue/dlq.js.map +1 -1
  75. package/dist/client/queue/dlqOps.d.ts.map +1 -1
  76. package/dist/client/queue/dlqOps.js.map +1 -1
  77. package/dist/client/queue/helpers.js.map +1 -1
  78. package/dist/client/queue/jobProxy.d.ts +22 -3
  79. package/dist/client/queue/jobProxy.d.ts.map +1 -1
  80. package/dist/client/queue/jobProxy.js +347 -66
  81. package/dist/client/queue/jobProxy.js.map +1 -1
  82. package/dist/client/queue/operations/add.d.ts +1 -0
  83. package/dist/client/queue/operations/add.d.ts.map +1 -1
  84. package/dist/client/queue/operations/add.js +126 -29
  85. package/dist/client/queue/operations/add.js.map +1 -1
  86. package/dist/client/queue/operations/management.d.ts +1 -1
  87. package/dist/client/queue/operations/management.d.ts.map +1 -1
  88. package/dist/client/queue/operations/management.js +27 -9
  89. package/dist/client/queue/operations/management.js.map +1 -1
  90. package/dist/client/queue/operations/query.d.ts +12 -0
  91. package/dist/client/queue/operations/query.d.ts.map +1 -1
  92. package/dist/client/queue/operations/query.js +44 -4
  93. package/dist/client/queue/operations/query.js.map +1 -1
  94. package/dist/client/queue/queue.d.ts.map +1 -1
  95. package/dist/client/queue/queue.js +8 -1
  96. package/dist/client/queue/queue.js.map +1 -1
  97. package/dist/client/queue/scheduler.d.ts +2 -0
  98. package/dist/client/queue/scheduler.d.ts.map +1 -1
  99. package/dist/client/queue/scheduler.js +28 -0
  100. package/dist/client/queue/scheduler.js.map +1 -1
  101. package/dist/client/queue/stall.js.map +1 -1
  102. package/dist/client/sandboxed/worker.d.ts.map +1 -1
  103. package/dist/client/sandboxed/worker.js +57 -15
  104. package/dist/client/sandboxed/worker.js.map +1 -1
  105. package/dist/client/sandboxed/wrapper.d.ts.map +1 -1
  106. package/dist/client/sandboxed/wrapper.js +62 -10
  107. package/dist/client/sandboxed/wrapper.js.map +1 -1
  108. package/dist/client/tcp/client.d.ts +9 -0
  109. package/dist/client/tcp/client.d.ts.map +1 -1
  110. package/dist/client/tcp/client.js +84 -28
  111. package/dist/client/tcp/client.js.map +1 -1
  112. package/dist/client/tcp/connection.d.ts.map +1 -1
  113. package/dist/client/tcp/connection.js +6 -1
  114. package/dist/client/tcp/connection.js.map +1 -1
  115. package/dist/client/tcp/types.d.ts +7 -0
  116. package/dist/client/tcp/types.d.ts.map +1 -1
  117. package/dist/client/types.d.ts +8 -4
  118. package/dist/client/types.d.ts.map +1 -1
  119. package/dist/client/types.js.map +1 -1
  120. package/dist/client/worker/ackBatcher.d.ts.map +1 -1
  121. package/dist/client/worker/ackBatcher.js +18 -8
  122. package/dist/client/worker/ackBatcher.js.map +1 -1
  123. package/dist/client/worker/processor.d.ts.map +1 -1
  124. package/dist/client/worker/processor.js +54 -99
  125. package/dist/client/worker/processor.js.map +1 -1
  126. package/dist/client/worker/processorHandlers.d.ts +55 -0
  127. package/dist/client/worker/processorHandlers.d.ts.map +1 -0
  128. package/dist/client/worker/processorHandlers.js +373 -0
  129. package/dist/client/worker/processorHandlers.js.map +1 -0
  130. package/dist/client/workflow/compensator.d.ts +15 -0
  131. package/dist/client/workflow/compensator.d.ts.map +1 -0
  132. package/dist/client/workflow/compensator.js +46 -0
  133. package/dist/client/workflow/compensator.js.map +1 -0
  134. package/dist/client/workflow/emitter.d.ts.map +1 -1
  135. package/dist/client/workflow/emitter.js +15 -3
  136. package/dist/client/workflow/emitter.js.map +1 -1
  137. package/dist/client/workflow/engine.d.ts +8 -1
  138. package/dist/client/workflow/engine.d.ts.map +1 -1
  139. package/dist/client/workflow/engine.js +9 -0
  140. package/dist/client/workflow/engine.js.map +1 -1
  141. package/dist/client/workflow/executor.d.ts +5 -2
  142. package/dist/client/workflow/executor.d.ts.map +1 -1
  143. package/dist/client/workflow/executor.js +43 -60
  144. package/dist/client/workflow/executor.js.map +1 -1
  145. package/dist/client/workflow/index.d.ts +1 -1
  146. package/dist/client/workflow/index.d.ts.map +1 -1
  147. package/dist/client/workflow/loops.d.ts +1 -1
  148. package/dist/client/workflow/loops.d.ts.map +1 -1
  149. package/dist/client/workflow/loops.js +10 -1
  150. package/dist/client/workflow/loops.js.map +1 -1
  151. package/dist/client/workflow/recovery.d.ts +23 -0
  152. package/dist/client/workflow/recovery.d.ts.map +1 -0
  153. package/dist/client/workflow/recovery.js +74 -0
  154. package/dist/client/workflow/recovery.js.map +1 -0
  155. package/dist/client/workflow/runner.d.ts.map +1 -1
  156. package/dist/client/workflow/runner.js +7 -5
  157. package/dist/client/workflow/runner.js.map +1 -1
  158. package/dist/client/workflow/store.d.ts +2 -0
  159. package/dist/client/workflow/store.d.ts.map +1 -1
  160. package/dist/client/workflow/store.js +6 -0
  161. package/dist/client/workflow/store.js.map +1 -1
  162. package/dist/client/workflow/types.d.ts +41 -22
  163. package/dist/client/workflow/types.d.ts.map +1 -1
  164. package/dist/client/workflow/workflow.d.ts +17 -14
  165. package/dist/client/workflow/workflow.d.ts.map +1 -1
  166. package/dist/client/workflow/workflow.js +30 -20
  167. package/dist/client/workflow/workflow.js.map +1 -1
  168. package/dist/domain/queue/dlqShard.d.ts.map +1 -1
  169. package/dist/domain/queue/dlqShard.js +6 -0
  170. package/dist/domain/queue/dlqShard.js.map +1 -1
  171. package/dist/domain/queue/priorityQueue.d.ts +2 -2
  172. package/dist/domain/queue/priorityQueue.d.ts.map +1 -1
  173. package/dist/domain/queue/priorityQueue.js +5 -3
  174. package/dist/domain/queue/priorityQueue.js.map +1 -1
  175. package/dist/domain/types/command.d.ts +22 -0
  176. package/dist/domain/types/command.d.ts.map +1 -1
  177. package/dist/domain/types/cron.d.ts +21 -0
  178. package/dist/domain/types/cron.d.ts.map +1 -1
  179. package/dist/domain/types/cron.js +1 -0
  180. package/dist/domain/types/cron.js.map +1 -1
  181. package/dist/domain/types/job.d.ts.map +1 -1
  182. package/dist/domain/types/job.js +9 -2
  183. package/dist/domain/types/job.js.map +1 -1
  184. package/dist/domain/types/response.d.ts +2 -0
  185. package/dist/domain/types/response.d.ts.map +1 -1
  186. package/dist/domain/types/response.js.map +1 -1
  187. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -1
  188. package/dist/infrastructure/backup/s3BackupOperations.js +44 -6
  189. package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -1
  190. package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -1
  191. package/dist/infrastructure/cloud/cloudAgent.d.ts.map +1 -1
  192. package/dist/infrastructure/cloud/cloudAgent.js +9 -11
  193. package/dist/infrastructure/cloud/cloudAgent.js.map +1 -1
  194. package/dist/infrastructure/cloud/commands.js +2 -2
  195. package/dist/infrastructure/cloud/commands.js.map +1 -1
  196. package/dist/infrastructure/cloud/redact.d.ts +11 -0
  197. package/dist/infrastructure/cloud/redact.d.ts.map +1 -0
  198. package/dist/infrastructure/cloud/redact.js +22 -0
  199. package/dist/infrastructure/cloud/redact.js.map +1 -0
  200. package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -0
  201. package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +1 -1
  202. package/dist/infrastructure/cloud/snapshotCollector.js +32 -17
  203. package/dist/infrastructure/cloud/snapshotCollector.js.map +1 -1
  204. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -2
  205. package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +1 -1
  206. package/dist/infrastructure/cloud/snapshotHelpers.js +10 -8
  207. package/dist/infrastructure/cloud/snapshotHelpers.js.map +1 -1
  208. package/dist/infrastructure/persistence/schema.d.ts +2 -2
  209. package/dist/infrastructure/persistence/schema.d.ts.map +1 -1
  210. package/dist/infrastructure/persistence/schema.js +16 -2
  211. package/dist/infrastructure/persistence/schema.js.map +1 -1
  212. package/dist/infrastructure/persistence/sqlite.d.ts +54 -1
  213. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  214. package/dist/infrastructure/persistence/sqlite.js +174 -2
  215. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  216. package/dist/infrastructure/persistence/sqliteBatch.d.ts +14 -0
  217. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -1
  218. package/dist/infrastructure/persistence/sqliteBatch.js +29 -0
  219. package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -1
  220. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -0
  221. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -1
  222. package/dist/infrastructure/persistence/sqliteSerializer.js +73 -8
  223. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -1
  224. package/dist/infrastructure/persistence/statements.d.ts +2 -1
  225. package/dist/infrastructure/persistence/statements.d.ts.map +1 -1
  226. package/dist/infrastructure/persistence/statements.js +3 -2
  227. package/dist/infrastructure/persistence/statements.js.map +1 -1
  228. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
  229. package/dist/infrastructure/scheduler/cronScheduler.js +19 -1
  230. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
  231. package/dist/infrastructure/server/handlers/advanced.d.ts +7 -1
  232. package/dist/infrastructure/server/handlers/advanced.d.ts.map +1 -1
  233. package/dist/infrastructure/server/handlers/advanced.js +41 -10
  234. package/dist/infrastructure/server/handlers/advanced.js.map +1 -1
  235. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  236. package/dist/infrastructure/server/handlers/core.js +8 -0
  237. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  238. package/dist/infrastructure/server/handlers/cron.d.ts.map +1 -1
  239. package/dist/infrastructure/server/handlers/cron.js +1 -0
  240. package/dist/infrastructure/server/handlers/cron.js.map +1 -1
  241. package/dist/infrastructure/server/handlers/dashboard.d.ts.map +1 -1
  242. package/dist/infrastructure/server/handlers/dashboard.js +1 -0
  243. package/dist/infrastructure/server/handlers/dashboard.js.map +1 -1
  244. package/dist/infrastructure/server/handlers/dlq.js.map +1 -1
  245. package/dist/infrastructure/server/handlers/management.d.ts +1 -1
  246. package/dist/infrastructure/server/handlers/management.d.ts.map +1 -1
  247. package/dist/infrastructure/server/handlers/management.js +27 -12
  248. package/dist/infrastructure/server/handlers/management.js.map +1 -1
  249. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
  250. package/dist/infrastructure/server/handlers/query.js.map +1 -1
  251. package/dist/infrastructure/server/httpRouteJobs.js.map +1 -1
  252. package/dist/infrastructure/server/httpRouteQueueConfig.js.map +1 -1
  253. package/dist/infrastructure/server/httpRouteQueues.js.map +1 -1
  254. package/dist/infrastructure/server/httpRouteResources.js.map +1 -1
  255. package/dist/infrastructure/server/protocol.d.ts +4 -0
  256. package/dist/infrastructure/server/protocol.d.ts.map +1 -1
  257. package/dist/infrastructure/server/protocol.js +17 -2
  258. package/dist/infrastructure/server/protocol.js.map +1 -1
  259. package/dist/infrastructure/server/socketWriteQueue.d.ts +67 -0
  260. package/dist/infrastructure/server/socketWriteQueue.d.ts.map +1 -0
  261. package/dist/infrastructure/server/socketWriteQueue.js +127 -0
  262. package/dist/infrastructure/server/socketWriteQueue.js.map +1 -0
  263. package/dist/infrastructure/server/tcp.d.ts +17 -0
  264. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  265. package/dist/infrastructure/server/tcp.js +112 -14
  266. package/dist/infrastructure/server/tcp.js.map +1 -1
  267. package/dist/infrastructure/server/wsHandler.js.map +1 -1
  268. package/dist/main.d.ts.map +1 -1
  269. package/dist/main.js +48 -43
  270. package/dist/main.js.map +1 -1
  271. package/dist/mcp/adapter.d.ts +3 -3
  272. package/dist/mcp/adapter.d.ts.map +1 -1
  273. package/dist/mcp/adapter.js +48 -15
  274. package/dist/mcp/adapter.js.map +1 -1
  275. package/dist/mcp/index.d.ts +3 -3
  276. package/dist/mcp/index.d.ts.map +1 -1
  277. package/dist/mcp/index.js +26 -89
  278. package/dist/mcp/index.js.map +1 -1
  279. package/dist/mcp/server.d.ts +16 -0
  280. package/dist/mcp/server.d.ts.map +1 -0
  281. package/dist/mcp/server.js +101 -0
  282. package/dist/mcp/server.js.map +1 -0
  283. package/dist/mcp/tools/queueTools.d.ts.map +1 -1
  284. package/dist/mcp/tools/queueTools.js +6 -3
  285. package/dist/mcp/tools/queueTools.js.map +1 -1
  286. package/dist/mcp/tools/webhookTools.js +1 -1
  287. package/dist/mcp/tools/webhookTools.js.map +1 -1
  288. package/dist/shared/lock.d.ts.map +1 -1
  289. package/dist/shared/lock.js +15 -0
  290. package/dist/shared/lock.js.map +1 -1
  291. package/package.json +12 -7
@@ -1 +1 @@
1
- {"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,oBAAoB;AACpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGxE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAQ1E;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAG7E;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CA2BR;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAI7E"}
1
+ {"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGzD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAChC;AAED,oBAAoB;AACpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGxE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAY1E;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAG7E;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQhE;AA0GD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,EAAE,CAmBT;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAI7E"}
@@ -22,9 +22,13 @@ export function isQueuePaused(queue, ctx) {
22
22
  export function drainQueue(queue, ctx) {
23
23
  const idx = shardIndex(queue);
24
24
  const { count, jobIds } = ctx.shards[idx].drain(queue);
25
- // Clean up jobIndex for all drained jobs
25
+ // Clean up jobIndex AND the SQLite row for every drained job so they cannot
26
+ // resurrect from a stale on-disk row (parity with clean/obliterate).
27
+ // safeDeleteJob also clears the pending write-buffer entry, so a buffered
28
+ // (not-yet-flushed) add cannot land on disk after the drain.
26
29
  for (const jobId of jobIds) {
27
30
  ctx.jobIndex.delete(jobId);
31
+ safeDeleteJob(ctx, jobId);
28
32
  }
29
33
  return count;
30
34
  }
@@ -43,33 +47,125 @@ export function listAllQueues(ctx) {
43
47
  }
44
48
  return Array.from(queues);
45
49
  }
50
+ /** Normalize BullMQ-compatible state aliases */
51
+ function normalizeCleanState(state) {
52
+ if (!state)
53
+ return undefined;
54
+ if (state === 'wait')
55
+ return 'waiting';
56
+ return state;
57
+ }
58
+ function safeDeleteJob(ctx, jobId) {
59
+ try {
60
+ ctx.storage?.deleteJob(jobId);
61
+ }
62
+ catch {
63
+ // SQLite write may fail (e.g. SQLITE_FULL). In-memory state already cleared;
64
+ // orphan row will be GC'd by crash-recovery on restart.
65
+ }
66
+ }
67
+ function safeDeleteDlqEntry(ctx, jobId) {
68
+ try {
69
+ ctx.storage?.deleteDlqEntry(jobId);
70
+ }
71
+ catch {
72
+ // Same rationale as safeDeleteJob.
73
+ }
74
+ }
75
+ function cleanWaitingLike(queue, graceMs, ctx, maxJobs) {
76
+ const idx = shardIndex(queue);
77
+ const shard = ctx.shards[idx];
78
+ const q = shard.getQueue(queue);
79
+ const oldJobs = shard.getOldJobs(queue, graceMs, maxJobs);
80
+ const removed = [];
81
+ for (const { jobId } of oldJobs) {
82
+ if (q.has(jobId)) {
83
+ q.remove(jobId);
84
+ shard.decrementQueued(jobId);
85
+ shard.removeFromTemporalIndex(jobId);
86
+ ctx.jobIndex.delete(jobId);
87
+ safeDeleteJob(ctx, jobId);
88
+ removed.push(jobId);
89
+ }
90
+ }
91
+ return removed;
92
+ }
93
+ function cleanCompleted(queue, graceMs, ctx, maxJobs) {
94
+ if (!ctx.completedJobs || !ctx.completedJobsData)
95
+ return [];
96
+ const threshold = Date.now() - graceMs;
97
+ const toRemove = [];
98
+ for (const [jid, loc] of ctx.jobIndex) {
99
+ if (loc.type !== 'completed' || loc.queueName !== queue)
100
+ continue;
101
+ const job = ctx.completedJobsData.get(jid) ?? ctx.storage?.getJob(jid) ?? null;
102
+ const ts = job?.completedAt ?? job?.createdAt ?? 0;
103
+ if (ts && ts > threshold)
104
+ continue;
105
+ toRemove.push(jid);
106
+ if (toRemove.length >= maxJobs)
107
+ break;
108
+ }
109
+ for (const jid of toRemove) {
110
+ ctx.completedJobs.delete(jid);
111
+ ctx.completedJobsData.delete(jid);
112
+ ctx.jobResults?.delete(jid);
113
+ ctx.jobLogs?.delete(jid);
114
+ ctx.jobIndex.delete(jid);
115
+ safeDeleteJob(ctx, jid);
116
+ }
117
+ return toRemove;
118
+ }
119
+ function cleanFailed(queue, graceMs, ctx, maxJobs) {
120
+ const idx = shardIndex(queue);
121
+ const shard = ctx.shards[idx];
122
+ const entries = shard.getDlqEntries(queue);
123
+ const threshold = Date.now() - graceMs;
124
+ const toRemove = [];
125
+ for (const entry of entries) {
126
+ const ts = entry.enteredAt ?? entry.job.createdAt;
127
+ if (ts > threshold)
128
+ continue;
129
+ toRemove.push(entry.job.id);
130
+ if (toRemove.length >= maxJobs)
131
+ break;
132
+ }
133
+ for (const jid of toRemove) {
134
+ shard.removeFromDlq(queue, jid);
135
+ ctx.jobIndex.delete(jid);
136
+ ctx.jobResults?.delete(jid);
137
+ ctx.jobLogs?.delete(jid);
138
+ safeDeleteDlqEntry(ctx, jid);
139
+ safeDeleteJob(ctx, jid);
140
+ }
141
+ return toRemove;
142
+ }
46
143
  /**
47
- * Clean old jobs from queue
48
- * Uses temporal index for O(log n + k) instead of O(n) full scan
144
+ * Clean old jobs from queue.
145
+ * Supported states: waiting/wait, delayed, prioritized, paused, completed, failed.
146
+ * State='active' is intentionally unsupported: cleaning in-flight jobs races with
147
+ * the worker's ack path and would leak concurrency/uniqueKey/groupId slots. Use
148
+ * `fail(jobId)` or `cancelJob(jobId)` to terminate an active job safely.
149
+ * @returns Array of removed JobIds.
49
150
  */
50
151
  export function cleanQueue(queue, graceMs, ctx, state, limit) {
51
- const idx = shardIndex(queue);
52
- const shard = ctx.shards[idx];
53
152
  const maxJobs = limit ?? 1000;
54
- let cleaned = 0;
55
- if (!state || state === 'waiting' || state === 'delayed') {
56
- const q = shard.getQueue(queue);
57
- // Use temporal index for efficient lookup of old jobs
58
- const oldJobs = shard.getOldJobs(queue, graceMs, maxJobs);
59
- for (const { jobId } of oldJobs) {
60
- // Verify job still exists in queue before removing
61
- if (q.has(jobId)) {
62
- q.remove(jobId);
63
- // Update counters
64
- shard.decrementQueued(jobId);
65
- // Remove from temporal index
66
- shard.removeFromTemporalIndex(jobId);
67
- ctx.jobIndex.delete(jobId);
68
- cleaned++;
69
- }
70
- }
153
+ const normalized = normalizeCleanState(state);
154
+ switch (normalized) {
155
+ case undefined:
156
+ case 'waiting':
157
+ case 'delayed':
158
+ case 'prioritized':
159
+ case 'paused':
160
+ return cleanWaitingLike(queue, graceMs, ctx, maxJobs);
161
+ case 'completed':
162
+ return cleanCompleted(queue, graceMs, ctx, maxJobs);
163
+ case 'failed':
164
+ return cleanFailed(queue, graceMs, ctx, maxJobs);
165
+ case 'active':
166
+ default:
167
+ return [];
71
168
  }
72
- return cleaned;
73
169
  }
74
170
  /** Get count of jobs in queue */
75
171
  export function getQueueCount(queue, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"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"}
@@ -110,6 +110,13 @@ export declare class QueueManager {
110
110
  registerClientJob(clientId: string, jobId: JobId): void;
111
111
  unregisterClientJob(clientId: string | undefined, jobId: JobId): void;
112
112
  releaseClientJobs(clientId: string): Promise<number>;
113
+ /**
114
+ * Force-release client tracking without acquiring queue locks. Last-resort
115
+ * fallback when releaseClientJobs has exhausted its retry budget — clears
116
+ * the clientJobs map entry to prevent leaks and resets job heartbeats so
117
+ * the stall detector recovers orphaned active jobs on its next tick.
118
+ */
119
+ forceReleaseClientJobs(clientId: string): number;
113
120
  getJob(jobId: JobId): Promise<Job | null>;
114
121
  getJobState(jobId: JobId): Promise<string>;
115
122
  getResult(jobId: JobId): unknown;
@@ -138,7 +145,7 @@ export declare class QueueManager {
138
145
  listQueues(): string[];
139
146
  private registerQueueName;
140
147
  private unregisterQueueName;
141
- clean(queue: string, graceMs: number, state?: string, limit?: number): number;
148
+ clean(queue: string, graceMs: number, state?: string, limit?: number): JobId[];
142
149
  getCountsPerPriority(queue: string): Record<number, number>;
143
150
  getJobs(queue: string, options?: {
144
151
  state?: string | string[];
@@ -186,7 +193,7 @@ export declare class QueueManager {
186
193
  cancel(jobId: JobId): Promise<boolean>;
187
194
  updateProgress(jobId: JobId, progress: number, message?: string): Promise<boolean>;
188
195
  updateJobData(jobId: JobId, data: unknown): Promise<boolean>;
189
- changePriority(jobId: JobId, priority: number): Promise<boolean>;
196
+ changePriority(jobId: JobId, priority: number, lifo?: boolean): Promise<boolean>;
190
197
  promote(jobId: JobId): Promise<boolean>;
191
198
  moveToDelayed(jobId: JobId, delay: number): Promise<boolean>;
192
199
  changeDelay(jobId: JobId, delay: number): Promise<boolean>;
@@ -236,10 +243,17 @@ export declare class QueueManager {
236
243
  */
237
244
  private onChildDependencyOption;
238
245
  /**
239
- * continueParentOnFailure: move parent to queue immediately when a child fails.
246
+ * continueParentOnFailure: move parent to queue when a child fails.
240
247
  * Stores the failure info for getFailedChildrenValues().
241
248
  */
242
249
  private continueParentOnChildFailure;
250
+ /**
251
+ * Move a flow parent from its waiting state into the run queue after a child failure
252
+ * (continueParentOnFailure / last-dependency resolution). Deferred to the next tick
253
+ * so the failed child's worker batch drains first — the parent is then picked up on
254
+ * a subsequent poll rather than racing to completion in the same synchronous cascade.
255
+ */
256
+ private promoteParentAfterChildFailure;
243
257
  /**
244
258
  * removeDependencyOnFailure / ignoreDependencyOnFailure:
245
259
  * Remove child from parent's pending deps. If last dep, promote parent.
@@ -1 +1 @@
1
- {"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
@@ -509,6 +509,15 @@ export class QueueManager {
509
509
  releaseClientJobs(clientId) {
510
510
  return lockMgr.releaseClientJobs(clientId, this.contextFactory.getLockContext());
511
511
  }
512
+ /**
513
+ * Force-release client tracking without acquiring queue locks. Last-resort
514
+ * fallback when releaseClientJobs has exhausted its retry budget — clears
515
+ * the clientJobs map entry to prevent leaks and resets job heartbeats so
516
+ * the stall detector recovers orphaned active jobs on its next tick.
517
+ */
518
+ forceReleaseClientJobs(clientId) {
519
+ return lockMgr.forceReleaseClientJobs(clientId, this.contextFactory.getLockContext());
520
+ }
512
521
  // ============ Query Operations ============
513
522
  async getJob(jobId) {
514
523
  return queryOps.getJob(jobId, this.contextFactory.getQueryContext());
@@ -630,6 +639,55 @@ export class QueueManager {
630
639
  }
631
640
  obliterate(queue) {
632
641
  queueControl.obliterateQueue(queue, this.contextFactory.getQueueControlContext());
642
+ dlqOps.purgeDlqJobs(queue, this.contextFactory.getDlqContext());
643
+ // obliterateQueue() clears the waiting/delayed shard only. Active jobs in
644
+ // processingShards, plus completed/result/log/lock state in global indexes,
645
+ // plus SQLite rows, all survive unless we purge them here.
646
+ const toDrop = new Set();
647
+ for (const [jid, loc] of this.jobIndex) {
648
+ if (loc.type === 'processing') {
649
+ const job = this.processingShards[loc.shardIdx]?.get(jid);
650
+ if (job?.queue === queue)
651
+ toDrop.add(jid);
652
+ }
653
+ else if (loc.queueName === queue) {
654
+ toDrop.add(jid);
655
+ }
656
+ }
657
+ for (const jid of toDrop) {
658
+ const loc = this.jobIndex.get(jid);
659
+ if (loc?.type === 'processing') {
660
+ this.processingShards[loc.shardIdx]?.delete(jid);
661
+ }
662
+ this.jobIndex.delete(jid);
663
+ this.completedJobs.delete(jid);
664
+ this.completedJobsData.delete(jid);
665
+ this.jobResults.delete(jid);
666
+ this.jobLogs.delete(jid);
667
+ this.jobLocks.delete(jid);
668
+ this.failedChildrenValues.delete(jid);
669
+ this.ignoredChildrenFailures.delete(jid);
670
+ this.pendingDepChecks.delete(jid);
671
+ this.stalledCandidates.delete(jid);
672
+ this.repeatChain.delete(jid);
673
+ this.storage?.deleteJob(jid);
674
+ }
675
+ // repeatChain maps oldId → newId; drop rows whose value is now a ghost.
676
+ const chainKeysToDelete = [];
677
+ for (const [oldId, newId] of this.repeatChain) {
678
+ if (toDrop.has(newId))
679
+ chainKeysToDelete.push(oldId);
680
+ }
681
+ for (const oldId of chainKeysToDelete)
682
+ this.repeatChain.delete(oldId);
683
+ // Drop customId → JobId mappings that point at a dropped job
684
+ const customIdsToDelete = [];
685
+ for (const [cid, jid] of this.customIdMap.entries()) {
686
+ if (toDrop.has(jid))
687
+ customIdsToDelete.push(cid);
688
+ }
689
+ for (const cid of customIdsToDelete)
690
+ this.customIdMap.delete(cid);
633
691
  this.unregisterQueueName(queue);
634
692
  this.dashboardEmit?.('queue:obliterated', { queue });
635
693
  this.dashboardEmit?.('queue:removed', { queue });
@@ -773,8 +831,8 @@ export class QueueManager {
773
831
  async updateJobData(jobId, data) {
774
832
  return jobMgmt.updateJobData(jobId, data, this.contextFactory.getJobMgmtContext());
775
833
  }
776
- async changePriority(jobId, priority) {
777
- return jobMgmt.changeJobPriority(jobId, priority, this.contextFactory.getJobMgmtContext());
834
+ async changePriority(jobId, priority, lifo) {
835
+ return jobMgmt.changeJobPriority(jobId, priority, this.contextFactory.getJobMgmtContext(), lifo);
778
836
  }
779
837
  async promote(jobId) {
780
838
  return jobMgmt.promoteJob(jobId, this.contextFactory.getJobMgmtContext());
@@ -783,8 +841,14 @@ export class QueueManager {
783
841
  return jobMgmt.moveJobToDelayed(jobId, delay, this.contextFactory.getJobMgmtContext());
784
842
  }
785
843
  async changeDelay(jobId, delay) {
786
- // Change delay is essentially moving to delayed with new delay
787
- return jobMgmt.moveJobToDelayed(jobId, delay, this.contextFactory.getJobMgmtContext());
844
+ const ctx = this.contextFactory.getJobMgmtContext();
845
+ const loc = ctx.jobIndex.get(jobId);
846
+ // Jobs already in queue (waiting/delayed): mutate runAt in place
847
+ if (loc?.type === 'queue') {
848
+ return jobTransitions.changeWaitingDelay(jobId, delay, ctx);
849
+ }
850
+ // Active/processing jobs: move back to queue with new delay
851
+ return jobMgmt.moveJobToDelayed(jobId, delay, ctx);
788
852
  }
789
853
  async moveActiveToWait(jobId) {
790
854
  return jobTransitions.moveActiveToWait(jobId, this.contextFactory.getJobMgmtContext());
@@ -933,6 +997,15 @@ export class QueueManager {
933
997
  return this.shards;
934
998
  }
935
999
  onJobCompleted(completedId) {
1000
+ // Release flow-failure tracking once a parent job reaches terminal completion
1001
+ // (AUDIT H8). The parent consumes these values via getFailedChildrenValues()/
1002
+ // getIgnoredChildrenFailures() while it is processing (before it acks), so by the
1003
+ // time it completes they are no longer needed. Keyed by parentId; obliterate()
1004
+ // and shutdown() clear them too. Without this, every parent completion that
1005
+ // involved a failed child with continueParentOnFailure / ignoreDependencyOnFailure
1006
+ // leaked an entry permanently.
1007
+ this.failedChildrenValues.delete(completedId);
1008
+ this.ignoredChildrenFailures.delete(completedId);
936
1009
  this.pendingDepChecks.add(completedId);
937
1010
  this.scheduleDependencyFlush();
938
1011
  void this.checkFlowCompleted(completedId);
@@ -1003,7 +1076,11 @@ export class QueueManager {
1003
1076
  const entry = shard.addToDlq(parentJob, "unknown" /* FailureReason.Unknown */, failError);
1004
1077
  this.jobIndex.set(parentId, { type: 'dlq', queueName: parentJob.queue });
1005
1078
  this.storage?.saveDlqEntry(entry);
1079
+ this.storage?.deleteJob(parentId);
1006
1080
  });
1081
+ // Parent reached a terminal (DLQ) state — release its flow-failure tracking.
1082
+ this.failedChildrenValues.delete(parentId);
1083
+ this.ignoredChildrenFailures.delete(parentId);
1007
1084
  // Broadcast failed event for parent
1008
1085
  this.eventsManager.broadcast({
1009
1086
  eventType: 'failed',
@@ -1035,7 +1112,7 @@ export class QueueManager {
1035
1112
  }
1036
1113
  }
1037
1114
  /**
1038
- * continueParentOnFailure: move parent to queue immediately when a child fails.
1115
+ * continueParentOnFailure: move parent to queue when a child fails.
1039
1116
  * Stores the failure info for getFailedChildrenValues().
1040
1117
  */
1041
1118
  async continueParentOnChildFailure(childJob, error) {
@@ -1054,6 +1131,19 @@ export class QueueManager {
1054
1131
  existing[childKey] = error ?? 'unknown error';
1055
1132
  this.failedChildrenValues.set(parentId, existing);
1056
1133
  const idx = shardIndex(parentJob.queue);
1134
+ await this.promoteParentAfterChildFailure(parentId, parentJob, idx);
1135
+ }
1136
+ /**
1137
+ * Move a flow parent from its waiting state into the run queue after a child failure
1138
+ * (continueParentOnFailure / last-dependency resolution). Deferred to the next tick
1139
+ * so the failed child's worker batch drains first — the parent is then picked up on
1140
+ * a subsequent poll rather than racing to completion in the same synchronous cascade.
1141
+ */
1142
+ async promoteParentAfterChildFailure(parentId, parentJob, idx) {
1143
+ await new Promise((resolve) => {
1144
+ const timer = setTimeout(resolve, 0);
1145
+ timer.unref?.();
1146
+ });
1057
1147
  let promoted = false;
1058
1148
  await withWriteLock(this.shardLocks[idx], () => {
1059
1149
  // TOCTOU guard
@@ -1113,7 +1203,9 @@ export class QueueManager {
1113
1203
  this.ignoredChildrenFailures.set(parentId, existing);
1114
1204
  }
1115
1205
  const idx = shardIndex(parentJob.queue);
1116
- let promoted = false;
1206
+ // Remove the failed child from the parent's pending deps synchronously so
1207
+ // dependency tracking stays consistent; defer only the promotion decision.
1208
+ let readyToPromote = false;
1117
1209
  await withWriteLock(this.shardLocks[idx], () => {
1118
1210
  if (this.jobIndex.get(parentId)?.type !== 'queue')
1119
1211
  return;
@@ -1127,28 +1219,13 @@ export class QueueManager {
1127
1219
  parentJob.dependsOn.splice(depIndex, 1);
1128
1220
  shard.unregisterDependencies(parentId, [childJob.id]);
1129
1221
  }
1130
- // If no more pending deps, promote parent
1131
- const allDone = parentJob.dependsOn.length === 0 ||
1132
- parentJob.dependsOn.every((dep) => this.completedJobs.has(dep));
1133
- if (allDone) {
1134
- shard.waitingDeps.delete(parentId);
1135
- const now = Date.now();
1136
- parentJob.runAt = now;
1137
- shard.getQueue(parentJob.queue).push(parentJob);
1138
- shard.incrementQueued(parentId, false, parentJob.createdAt, parentJob.queue, now);
1139
- this.jobIndex.set(parentId, { type: 'queue', shardIdx: idx, queueName: parentJob.queue });
1140
- shard.notify();
1141
- promoted = true;
1142
- }
1222
+ // If no more pending deps, the parent is ready to be promoted
1223
+ readyToPromote =
1224
+ parentJob.dependsOn.length === 0 ||
1225
+ parentJob.dependsOn.every((dep) => this.completedJobs.has(dep));
1143
1226
  });
1144
- if (promoted) {
1145
- this.eventsManager.broadcast({
1146
- eventType: 'waiting',
1147
- queue: parentJob.queue,
1148
- jobId: parentId,
1149
- timestamp: Date.now(),
1150
- prev: 'waiting-children',
1151
- });
1227
+ if (readyToPromote) {
1228
+ await this.promoteParentAfterChildFailure(parentId, parentJob, idx);
1152
1229
  }
1153
1230
  }
1154
1231
  /**
@@ -1353,6 +1430,8 @@ export class QueueManager {
1353
1430
  this.stalledCandidates.clear();
1354
1431
  this.clientJobs.clear();
1355
1432
  this.repeatChain.clear();
1433
+ this.failedChildrenValues.clear();
1434
+ this.ignoredChildrenFailures.clear();
1356
1435
  for (const shard of this.processingShards)
1357
1436
  shard.clear();
1358
1437
  for (const shard of this.shards) {