bunqueue 2.8.54 → 2.8.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/dist/application/background/dlq.d.ts +2 -0
  2. package/dist/application/background/dlq.js +26 -0
  3. package/dist/application/background/lifecycle.d.ts +4 -0
  4. package/dist/application/background/lifecycle.js +90 -0
  5. package/dist/application/background/recovery/active.d.ts +4 -0
  6. package/dist/application/background/recovery/active.js +69 -0
  7. package/dist/application/background/recovery/index.d.ts +2 -0
  8. package/dist/application/background/recovery/index.js +22 -0
  9. package/dist/application/background/recovery/pending.d.ts +3 -0
  10. package/dist/application/background/recovery/pending.js +69 -0
  11. package/dist/application/background/recovery/restore.d.ts +5 -0
  12. package/dist/application/background/recovery/restore.js +58 -0
  13. package/dist/application/background/recovery/shared.d.ts +6 -0
  14. package/dist/application/background/recovery/shared.js +15 -0
  15. package/dist/application/background/timeouts.d.ts +25 -0
  16. package/dist/application/background/timeouts.js +191 -0
  17. package/dist/application/backgroundTasks.d.ts +7 -31
  18. package/dist/application/backgroundTasks.js +6 -442
  19. package/dist/application/cleanupTasks.js +1 -0
  20. package/dist/application/clientTracking.js +2 -0
  21. package/dist/application/contextFactory.d.ts +13 -90
  22. package/dist/application/contextFactory.js +8 -0
  23. package/dist/application/dependencyResultTracker.d.ts +1 -0
  24. package/dist/application/dependencyResultTracker.js +3 -0
  25. package/dist/application/dlqManager.d.ts +2 -8
  26. package/dist/application/dlqManager.js +33 -162
  27. package/dist/application/dlqRetry.d.ts +12 -0
  28. package/dist/application/dlqRetry.js +97 -0
  29. package/dist/application/lockManager.js +21 -1
  30. package/dist/application/lockOperations.js +16 -3
  31. package/dist/application/operations/ack/batch.d.ts +8 -0
  32. package/dist/application/operations/ack/batch.js +64 -0
  33. package/dist/application/operations/ack/completion.d.ts +3 -0
  34. package/dist/application/operations/ack/completion.js +74 -0
  35. package/dist/application/operations/ack/failure.d.ts +3 -0
  36. package/dist/application/operations/ack/failure.js +160 -0
  37. package/dist/application/operations/ack.d.ts +5 -79
  38. package/dist/application/operations/ack.js +4 -319
  39. package/dist/application/operations/ackHelpers.d.ts +3 -52
  40. package/dist/application/operations/ackHelpers.js +10 -3
  41. package/dist/application/operations/customId.d.ts +18 -5
  42. package/dist/application/operations/customId.js +36 -25
  43. package/dist/application/operations/flowValidation.js +9 -4
  44. package/dist/application/operations/jobManagement.js +44 -7
  45. package/dist/application/operations/parentLink.d.ts +36 -0
  46. package/dist/application/operations/parentLink.js +153 -0
  47. package/dist/application/operations/parentLinkInput.d.ts +8 -0
  48. package/dist/application/operations/parentLinkInput.js +23 -0
  49. package/dist/application/operations/push.d.ts +5 -44
  50. package/dist/application/operations/push.js +62 -152
  51. package/dist/application/operations/pushAdmission.d.ts +32 -0
  52. package/dist/application/operations/pushAdmission.js +38 -0
  53. package/dist/application/operations/pushBatch.d.ts +4 -0
  54. package/dist/application/operations/pushBatch.js +136 -0
  55. package/dist/application/operations/pushContext.d.ts +39 -0
  56. package/dist/application/operations/pushContext.js +1 -0
  57. package/dist/application/operations/pushDeduplication.d.ts +42 -0
  58. package/dist/application/operations/pushDeduplication.js +131 -0
  59. package/dist/application/operations/pushInsert.d.ts +13 -1
  60. package/dist/application/operations/pushInsert.js +33 -17
  61. package/dist/application/operations/pushLocks.js +13 -9
  62. package/dist/application/operations/query/collect.d.ts +12 -0
  63. package/dist/application/operations/query/collect.js +118 -0
  64. package/dist/application/operations/query/jobLookup.d.ts +9 -0
  65. package/dist/application/operations/query/jobLookup.js +110 -0
  66. package/dist/application/operations/query/pagination.d.ts +8 -0
  67. package/dist/application/operations/query/pagination.js +90 -0
  68. package/dist/application/operations/query/state.d.ts +4 -0
  69. package/dist/application/operations/query/state.js +63 -0
  70. package/dist/application/operations/queryOperations.d.ts +5 -50
  71. package/dist/application/operations/queryOperations.js +4 -474
  72. package/dist/application/queue-manager/ack.d.ts +23 -0
  73. package/dist/application/queue-manager/ack.js +242 -0
  74. package/dist/application/queue-manager/configuration.d.ts +27 -0
  75. package/dist/application/queue-manager/configuration.js +84 -0
  76. package/dist/application/queue-manager/context.d.ts +5 -0
  77. package/dist/application/queue-manager/context.js +61 -0
  78. package/dist/application/queue-manager/control.d.ts +17 -0
  79. package/dist/application/queue-manager/control.js +133 -0
  80. package/dist/application/queue-manager/delivery.d.ts +32 -0
  81. package/dist/application/queue-manager/delivery.js +143 -0
  82. package/dist/application/queue-manager/dependencies.d.ts +8 -0
  83. package/dist/application/queue-manager/dependencies.js +127 -0
  84. package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
  85. package/dist/application/queue-manager/dependency-runtime.js +40 -0
  86. package/dist/application/queue-manager/flow-failures.d.ts +18 -0
  87. package/dist/application/queue-manager/flow-failures.js +107 -0
  88. package/dist/application/queue-manager/flow-options.d.ts +8 -0
  89. package/dist/application/queue-manager/flow-options.js +129 -0
  90. package/dist/application/queue-manager/job-management.d.ts +17 -0
  91. package/dist/application/queue-manager/job-management.js +100 -0
  92. package/dist/application/queue-manager/lifecycle.d.ts +4 -0
  93. package/dist/application/queue-manager/lifecycle.js +41 -0
  94. package/dist/application/queue-manager/limits.d.ts +41 -0
  95. package/dist/application/queue-manager/limits.js +108 -0
  96. package/dist/application/queue-manager/locks.d.ts +21 -0
  97. package/dist/application/queue-manager/locks.js +59 -0
  98. package/dist/application/queue-manager/observability.d.ts +16 -0
  99. package/dist/application/queue-manager/observability.js +44 -0
  100. package/dist/application/queue-manager/queries.d.ts +17 -0
  101. package/dist/application/queue-manager/queries.js +118 -0
  102. package/dist/application/queue-manager/repeat.d.ts +4 -0
  103. package/dist/application/queue-manager/repeat.js +26 -0
  104. package/dist/application/queue-manager/services.d.ts +19 -0
  105. package/dist/application/queue-manager/services.js +80 -0
  106. package/dist/application/queue-manager/state.d.ts +92 -0
  107. package/dist/application/queue-manager/state.js +144 -0
  108. package/dist/application/queue-manager/stats.d.ts +28 -0
  109. package/dist/application/queue-manager/stats.js +52 -0
  110. package/dist/application/queueManager.d.ts +4 -400
  111. package/dist/application/queueManager.js +3 -1922
  112. package/dist/application/queueTelemetryJournal.d.ts +20 -0
  113. package/dist/application/queueTelemetryJournal.js +133 -0
  114. package/dist/application/repeatJobs.d.ts +7 -0
  115. package/dist/application/repeatJobs.js +132 -0
  116. package/dist/application/stallDetection.js +6 -1
  117. package/dist/application/types/ack.d.ts +132 -0
  118. package/dist/application/types/ack.js +1 -0
  119. package/dist/application/types/background.d.ts +18 -0
  120. package/dist/application/types/background.js +1 -0
  121. package/dist/application/types/config.d.ts +37 -0
  122. package/dist/application/types/config.js +15 -0
  123. package/dist/application/types/contextFactory.d.ts +83 -0
  124. package/dist/application/types/contextFactory.js +1 -0
  125. package/dist/application/types/contexts.d.ts +110 -0
  126. package/dist/application/types/contexts.js +1 -0
  127. package/dist/application/types/index.d.ts +7 -0
  128. package/dist/application/types/index.js +1 -0
  129. package/dist/application/types/query.d.ts +23 -0
  130. package/dist/application/types/query.js +1 -0
  131. package/dist/application/types/queueManager.d.ts +94 -0
  132. package/dist/application/types/queueManager.js +1 -0
  133. package/dist/cli/commandRouter.d.ts +1 -1
  134. package/dist/cli/commands/core.js +1 -0
  135. package/dist/cli/output/collections.d.ts +8 -0
  136. package/dist/cli/output/collections.js +131 -0
  137. package/dist/cli/output/jobs.d.ts +2 -0
  138. package/dist/cli/output/jobs.js +61 -0
  139. package/dist/cli/output/style.d.ts +14 -0
  140. package/dist/cli/output/style.js +28 -0
  141. package/dist/cli/output/success.d.ts +1 -0
  142. package/dist/cli/output/success.js +108 -0
  143. package/dist/cli/output.d.ts +1 -6
  144. package/dist/cli/output.js +7 -395
  145. package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
  146. package/dist/client/bunqueue/dlqRateLimit.js +24 -0
  147. package/dist/client/bunqueue/runtime.d.ts +35 -0
  148. package/dist/client/bunqueue/runtime.js +138 -0
  149. package/dist/client/bunqueue.d.ts +19 -34
  150. package/dist/client/bunqueue.js +45 -166
  151. package/dist/client/dlqConversion.d.ts +5 -0
  152. package/dist/client/dlqConversion.js +28 -0
  153. package/dist/client/events.d.ts +7 -56
  154. package/dist/client/events.js +38 -15
  155. package/dist/client/flow.d.ts +6 -12
  156. package/dist/client/flow.js +16 -34
  157. package/dist/client/flowJobFactory.d.ts +9 -1
  158. package/dist/client/flowJobFactory.js +25 -9
  159. package/dist/client/flowJobMoveMethods.d.ts +5 -5
  160. package/dist/client/flowJobMoveMethods.js +31 -16
  161. package/dist/client/flowLegacyPlan.js +22 -8
  162. package/dist/client/flowOptions.d.ts +1 -1
  163. package/dist/client/flowOptions.js +2 -1
  164. package/dist/client/flowPlan.js +2 -3
  165. package/dist/client/flowPush.d.ts +1 -0
  166. package/dist/client/flowPush.js +5 -1
  167. package/dist/client/flowReader.js +5 -5
  168. package/dist/client/flowResults.d.ts +11 -0
  169. package/dist/client/flowResults.js +42 -0
  170. package/dist/client/index.d.ts +3 -1
  171. package/dist/client/jobConversion.d.ts +0 -4
  172. package/dist/client/jobConversion.js +32 -33
  173. package/dist/client/jobConversionHelpers.d.ts +18 -2
  174. package/dist/client/jobConversionHelpers.js +17 -10
  175. package/dist/client/jobConversionTypes.d.ts +5 -1
  176. package/dist/client/jobHelpers.d.ts +7 -2
  177. package/dist/client/jobHelpers.js +16 -8
  178. package/dist/client/queue/dlq.js +12 -14
  179. package/dist/client/queue/dlqJobMethods.js +11 -10
  180. package/dist/client/queue/dlqOps.js +2 -8
  181. package/dist/client/queue/dlqStats.d.ts +3 -0
  182. package/dist/client/queue/dlqStats.js +21 -0
  183. package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
  184. package/dist/client/queue/job-proxy/dependencies.js +67 -0
  185. package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
  186. package/dist/client/queue/job-proxy/reflection.js +18 -0
  187. package/dist/client/queue/job-proxy/simple.d.ts +3 -0
  188. package/dist/client/queue/job-proxy/simple.js +316 -0
  189. package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
  190. package/dist/client/queue/job-proxy/tcp.js +191 -0
  191. package/dist/client/queue/jobMetadata.d.ts +10 -0
  192. package/dist/client/queue/jobMetadata.js +24 -0
  193. package/dist/client/queue/jobMove.d.ts +4 -4
  194. package/dist/client/queue/jobMove.js +82 -24
  195. package/dist/client/queue/jobProxy.d.ts +4 -50
  196. package/dist/client/queue/jobProxy.js +3 -516
  197. package/dist/client/queue/operations/add/bulk.d.ts +7 -0
  198. package/dist/client/queue/operations/add/bulk.js +129 -0
  199. package/dist/client/queue/operations/add/payload.d.ts +24 -0
  200. package/dist/client/queue/operations/add/payload.js +85 -0
  201. package/dist/client/queue/operations/add/single.d.ts +3 -0
  202. package/dist/client/queue/operations/add/single.js +107 -0
  203. package/dist/client/queue/operations/add.d.ts +2 -47
  204. package/dist/client/queue/operations/add.js +2 -364
  205. package/dist/client/queue/operations/management.js +2 -1
  206. package/dist/client/queue/operations/query.js +20 -63
  207. package/dist/client/queue/queue.d.ts +6 -192
  208. package/dist/client/queue/queue.js +6 -559
  209. package/dist/client/queue/runtime/compatibility.d.ts +13 -0
  210. package/dist/client/queue/runtime/compatibility.js +38 -0
  211. package/dist/client/queue/runtime/configuration.d.ts +42 -0
  212. package/dist/client/queue/runtime/configuration.js +109 -0
  213. package/dist/client/queue/runtime/connection.d.ts +6 -0
  214. package/dist/client/queue/runtime/connection.js +16 -0
  215. package/dist/client/queue/runtime/control.d.ts +41 -0
  216. package/dist/client/queue/runtime/control.js +87 -0
  217. package/dist/client/queue/runtime/queries.d.ts +48 -0
  218. package/dist/client/queue/runtime/queries.js +95 -0
  219. package/dist/client/queue/runtime/scheduling.d.ts +33 -0
  220. package/dist/client/queue/runtime/scheduling.js +56 -0
  221. package/dist/client/queue/runtime/state.d.ts +96 -0
  222. package/dist/client/queue/runtime/state.js +149 -0
  223. package/dist/client/queue/scheduler.d.ts +2 -5
  224. package/dist/client/queue/scheduler.js +25 -23
  225. package/dist/client/queue/schedulerPagination.d.ts +7 -0
  226. package/dist/client/queue/schedulerPagination.js +10 -0
  227. package/dist/client/queue/types/add.d.ts +40 -0
  228. package/dist/client/queue/types/add.js +1 -0
  229. package/dist/client/queue/types/contexts.d.ts +33 -0
  230. package/dist/client/queue/types/contexts.js +5 -0
  231. package/dist/client/queue/types/index.d.ts +3 -0
  232. package/dist/client/queue/types/index.js +1 -0
  233. package/dist/client/queue/types/job.d.ts +50 -0
  234. package/dist/client/queue/types/job.js +1 -0
  235. package/dist/client/queue/types/runtime.d.ts +35 -0
  236. package/dist/client/queue/types/runtime.js +1 -0
  237. package/dist/client/queue/workers.d.ts +4 -8
  238. package/dist/client/queue/workers.js +22 -14
  239. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  240. package/dist/client/queue-events/tcpSubscription.js +99 -0
  241. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  242. package/dist/client/sandboxed/queueOps.js +32 -5
  243. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  244. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  245. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  246. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  247. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  248. package/dist/client/sandboxed/runtime/log.js +15 -0
  249. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  250. package/dist/client/sandboxed/runtime/pool.js +121 -0
  251. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  252. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  253. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  254. package/dist/client/sandboxed/runtime/state.js +59 -0
  255. package/dist/client/sandboxed/types/index.d.ts +2 -0
  256. package/dist/client/sandboxed/types/index.js +1 -0
  257. package/dist/client/sandboxed/types/options.d.ts +27 -0
  258. package/dist/client/sandboxed/types/options.js +1 -0
  259. package/dist/client/sandboxed/types/process.d.ts +30 -0
  260. package/dist/client/sandboxed/types/process.js +1 -0
  261. package/dist/client/sandboxed/worker.d.ts +3 -85
  262. package/dist/client/sandboxed/worker.js +3 -557
  263. package/dist/client/sandboxed/wrapper.js +1 -0
  264. package/dist/client/tcp/client.d.ts +5 -112
  265. package/dist/client/tcp/client.js +5 -481
  266. package/dist/client/tcp/commandQueue.d.ts +23 -0
  267. package/dist/client/tcp/commandQueue.js +89 -0
  268. package/dist/client/tcp/connection.d.ts +4 -85
  269. package/dist/client/tcp/connection.js +3 -315
  270. package/dist/client/tcp/errors.d.ts +6 -0
  271. package/dist/client/tcp/errors.js +18 -0
  272. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  273. package/dist/client/tcp/runtime/commands.js +124 -0
  274. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  275. package/dist/client/tcp/runtime/connectivity.js +77 -0
  276. package/dist/client/tcp/runtime/health.d.ts +14 -0
  277. package/dist/client/tcp/runtime/health.js +127 -0
  278. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  279. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  280. package/dist/client/tcp/runtime/state.d.ts +50 -0
  281. package/dist/client/tcp/runtime/state.js +45 -0
  282. package/dist/client/tcp/transport.d.ts +18 -0
  283. package/dist/client/tcp/transport.js +158 -0
  284. package/dist/client/tcp/types/command.d.ts +9 -0
  285. package/dist/client/tcp/types/command.js +1 -0
  286. package/dist/client/tcp/types/connection.d.ts +31 -0
  287. package/dist/client/tcp/types/connection.js +17 -0
  288. package/dist/client/tcp/types/index.d.ts +5 -0
  289. package/dist/client/tcp/types/index.js +1 -0
  290. package/dist/client/tcp/types/socket.d.ts +8 -0
  291. package/dist/client/tcp/types/socket.js +1 -0
  292. package/dist/client/tcp/types/tls.d.ts +4 -0
  293. package/dist/client/tcp/types/tls.js +1 -0
  294. package/dist/client/tcp/types.d.ts +2 -106
  295. package/dist/client/tcp/types.js +2 -22
  296. package/dist/client/types/connection.d.ts +29 -0
  297. package/dist/client/types/connection.js +1 -0
  298. package/dist/client/types/dlq.d.ts +45 -0
  299. package/dist/client/types/dlq.js +1 -0
  300. package/dist/client/types/events.d.ts +54 -0
  301. package/dist/client/types/events.js +1 -0
  302. package/dist/client/types/flow.d.ts +10 -0
  303. package/dist/client/types/flow.js +1 -0
  304. package/dist/client/types/index.d.ts +10 -0
  305. package/dist/client/types/index.js +1 -0
  306. package/dist/client/types/job.d.ts +127 -0
  307. package/dist/client/types/job.js +1 -0
  308. package/dist/client/types/metrics.d.ts +1 -0
  309. package/dist/client/types/metrics.js +1 -0
  310. package/dist/client/types/options.d.ts +62 -0
  311. package/dist/client/types/options.js +1 -0
  312. package/dist/client/types/worker.d.ts +38 -0
  313. package/dist/client/types/worker.js +1 -0
  314. package/dist/client/types.d.ts +2 -583
  315. package/dist/client/types.js +2 -6
  316. package/dist/client/worker/ackBatcher.d.ts +1 -1
  317. package/dist/client/worker/ackBatcher.js +17 -5
  318. package/dist/client/worker/ackOutcome.d.ts +8 -0
  319. package/dist/client/worker/ackOutcome.js +58 -0
  320. package/dist/client/worker/constants.d.ts +7 -0
  321. package/dist/client/worker/constants.js +7 -0
  322. package/dist/client/worker/groupConcurrency.js +3 -0
  323. package/dist/client/worker/handlers/completion.d.ts +28 -0
  324. package/dist/client/worker/handlers/completion.js +68 -0
  325. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  326. package/dist/client/worker/handlers/dependencies.js +107 -0
  327. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  328. package/dist/client/worker/handlers/mutations.js +211 -0
  329. package/dist/client/worker/handlers/queries.d.ts +15 -0
  330. package/dist/client/worker/handlers/queries.js +100 -0
  331. package/dist/client/worker/index.d.ts +2 -2
  332. package/dist/client/worker/index.js +1 -1
  333. package/dist/client/worker/jobParser.js +4 -2
  334. package/dist/client/worker/processor.d.ts +2 -15
  335. package/dist/client/worker/processor.js +67 -124
  336. package/dist/client/worker/processorHandlers.d.ts +4 -61
  337. package/dist/client/worker/processorHandlers.js +4 -398
  338. package/dist/client/worker/processorOutcome.d.ts +14 -0
  339. package/dist/client/worker/processorOutcome.js +125 -0
  340. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  341. package/dist/client/worker/runtime/buffer.js +50 -0
  342. package/dist/client/worker/runtime/control.d.ts +26 -0
  343. package/dist/client/worker/runtime/control.js +175 -0
  344. package/dist/client/worker/runtime/execution.d.ts +11 -0
  345. package/dist/client/worker/runtime/execution.js +123 -0
  346. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  347. package/dist/client/worker/runtime/lifecycle.js +114 -0
  348. package/dist/client/worker/runtime/manual.d.ts +10 -0
  349. package/dist/client/worker/runtime/manual.js +137 -0
  350. package/dist/client/worker/runtime/options.d.ts +5 -0
  351. package/dist/client/worker/runtime/options.js +39 -0
  352. package/dist/client/worker/runtime/polling.d.ts +12 -0
  353. package/dist/client/worker/runtime/polling.js +123 -0
  354. package/dist/client/worker/runtime/state.d.ts +110 -0
  355. package/dist/client/worker/runtime/state.js +156 -0
  356. package/dist/client/worker/types/index.d.ts +5 -0
  357. package/dist/client/worker/types/index.js +1 -0
  358. package/dist/client/worker/types/manual.d.ts +7 -0
  359. package/dist/client/worker/types/manual.js +1 -0
  360. package/dist/client/worker/types/options.d.ts +24 -0
  361. package/dist/client/worker/types/options.js +1 -0
  362. package/dist/client/worker/types/outcome.d.ts +23 -0
  363. package/dist/client/worker/types/outcome.js +1 -0
  364. package/dist/client/worker/types/processor.d.ts +22 -0
  365. package/dist/client/worker/types/processor.js +1 -0
  366. package/dist/client/worker/types/transport.d.ts +11 -0
  367. package/dist/client/worker/types/transport.js +1 -0
  368. package/dist/client/worker/worker.d.ts +3 -160
  369. package/dist/client/worker/worker.js +3 -928
  370. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  371. package/dist/client/worker/workerRateLimiter.js +40 -20
  372. package/dist/client/worker.d.ts +1 -0
  373. package/dist/client/workflow/compensationChild.d.ts +2 -1
  374. package/dist/client/workflow/compensationChild.js +1 -1
  375. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  376. package/dist/client/workflow/compensationClaim.js +30 -0
  377. package/dist/client/workflow/compensator.d.ts +7 -2
  378. package/dist/client/workflow/compensator.js +5 -11
  379. package/dist/client/workflow/recovery.js +25 -2
  380. package/dist/client/workflow/rollbackControl.js +1 -1
  381. package/dist/domain/job/constants.d.ts +12 -0
  382. package/dist/domain/job/constants.js +12 -0
  383. package/dist/domain/job/create.d.ts +2 -0
  384. package/dist/domain/job/create.js +103 -0
  385. package/dist/domain/job/ids.d.ts +5 -0
  386. package/dist/domain/job/ids.js +12 -0
  387. package/dist/domain/job/locks.d.ts +4 -0
  388. package/dist/domain/job/locks.js +23 -0
  389. package/dist/domain/job/payload.d.ts +18 -0
  390. package/dist/domain/job/payload.js +43 -0
  391. package/dist/domain/job/state.d.ts +8 -0
  392. package/dist/domain/job/state.js +51 -0
  393. package/dist/domain/job/terminal.d.ts +3 -0
  394. package/dist/domain/job/terminal.js +9 -0
  395. package/dist/domain/queue/dlqShard.d.ts +2 -0
  396. package/dist/domain/queue/dlqShard.js +34 -9
  397. package/dist/domain/queue/priorityQueue.js +3 -39
  398. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  399. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  400. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  401. package/dist/domain/queue/shard/dependencies.js +22 -0
  402. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  403. package/dist/domain/queue/shard/dlq.js +71 -0
  404. package/dist/domain/queue/shard/keys.d.ts +18 -0
  405. package/dist/domain/queue/shard/keys.js +45 -0
  406. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  407. package/dist/domain/queue/shard/lifecycle.js +43 -0
  408. package/dist/domain/queue/shard/limits.d.ts +24 -0
  409. package/dist/domain/queue/shard/limits.js +57 -0
  410. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  411. package/dist/domain/queue/shard/metrics.js +72 -0
  412. package/dist/domain/queue/shard/state.d.ts +34 -0
  413. package/dist/domain/queue/shard/state.js +80 -0
  414. package/dist/domain/queue/shard.d.ts +5 -145
  415. package/dist/domain/queue/shard.js +4 -409
  416. package/dist/domain/response/builders.d.ts +15 -0
  417. package/dist/domain/response/builders.js +39 -0
  418. package/dist/domain/types/command.d.ts +2 -555
  419. package/dist/domain/types/command.js +2 -5
  420. package/dist/domain/types/commands/base.d.ts +5 -0
  421. package/dist/domain/types/commands/base.js +1 -0
  422. package/dist/domain/types/commands/core.d.ts +106 -0
  423. package/dist/domain/types/commands/core.js +1 -0
  424. package/dist/domain/types/commands/cron.d.ts +36 -0
  425. package/dist/domain/types/commands/cron.js +1 -0
  426. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  427. package/dist/domain/types/commands/dashboard.js +1 -0
  428. package/dist/domain/types/commands/dlq.d.ts +39 -0
  429. package/dist/domain/types/commands/dlq.js +1 -0
  430. package/dist/domain/types/commands/extended.d.ts +63 -0
  431. package/dist/domain/types/commands/extended.js +1 -0
  432. package/dist/domain/types/commands/index.d.ts +12 -0
  433. package/dist/domain/types/commands/index.js +12 -0
  434. package/dist/domain/types/commands/limits.d.ts +54 -0
  435. package/dist/domain/types/commands/limits.js +1 -0
  436. package/dist/domain/types/commands/management.d.ts +73 -0
  437. package/dist/domain/types/commands/management.js +1 -0
  438. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  439. package/dist/domain/types/commands/monitoring.js +1 -0
  440. package/dist/domain/types/commands/protocol.d.ts +20 -0
  441. package/dist/domain/types/commands/protocol.js +1 -0
  442. package/dist/domain/types/commands/query.d.ts +46 -0
  443. package/dist/domain/types/commands/query.js +1 -0
  444. package/dist/domain/types/commands/union.d.ts +13 -0
  445. package/dist/domain/types/commands/union.js +1 -0
  446. package/dist/domain/types/commands/workers.d.ts +39 -0
  447. package/dist/domain/types/commands/workers.js +1 -0
  448. package/dist/domain/types/cron.d.ts +4 -2
  449. package/dist/domain/types/cron.js +3 -0
  450. package/dist/domain/types/dlq.d.ts +17 -0
  451. package/dist/domain/types/dlq.js +70 -14
  452. package/dist/domain/types/index.d.ts +2 -0
  453. package/dist/domain/types/index.js +1 -0
  454. package/dist/domain/types/job.d.ts +8 -269
  455. package/dist/domain/types/job.js +8 -234
  456. package/dist/domain/types/jobs/model.d.ts +152 -0
  457. package/dist/domain/types/jobs/model.js +1 -0
  458. package/dist/domain/types/metrics.d.ts +16 -0
  459. package/dist/domain/types/metrics.js +1 -0
  460. package/dist/domain/types/priorityQueue.d.ts +12 -0
  461. package/dist/domain/types/priorityQueue.js +1 -0
  462. package/dist/domain/types/protocol.d.ts +5 -0
  463. package/dist/domain/types/protocol.js +4 -0
  464. package/dist/domain/types/queue.d.ts +2 -0
  465. package/dist/domain/types/response.d.ts +3 -192
  466. package/dist/domain/types/response.js +3 -101
  467. package/dist/domain/types/responses/model.d.ts +152 -0
  468. package/dist/domain/types/responses/model.js +1 -0
  469. package/dist/domain/types/shard.d.ts +4 -0
  470. package/dist/domain/types/shard.js +1 -0
  471. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  472. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  473. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  474. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  475. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  476. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  477. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  478. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  479. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  480. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  481. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  482. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  483. package/dist/infrastructure/cloud/commands.js +7 -344
  484. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  485. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  486. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  487. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  488. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  489. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  490. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  491. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  492. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  493. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  494. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  495. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  496. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  497. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  498. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  499. package/dist/infrastructure/cloud/types/collector.js +1 -0
  500. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  501. package/dist/infrastructure/cloud/types/command.js +1 -0
  502. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  503. package/dist/infrastructure/cloud/types/config.js +1 -0
  504. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  505. package/dist/infrastructure/cloud/types/event.js +1 -0
  506. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  507. package/dist/infrastructure/cloud/types/redact.js +1 -0
  508. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  509. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  510. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  511. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  512. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  513. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  514. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  515. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  516. package/dist/infrastructure/cloud/types.d.ts +3 -445
  517. package/dist/infrastructure/cloud/types.js +0 -4
  518. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  519. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  520. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  521. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  522. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  523. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  524. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  525. package/dist/infrastructure/persistence/migrations.js +120 -0
  526. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  527. package/dist/infrastructure/persistence/schema.js +40 -136
  528. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  529. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  530. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  531. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  532. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  533. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  534. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  535. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  536. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  537. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  538. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  539. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  540. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  541. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  542. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  543. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  544. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  545. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  546. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  547. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  548. package/dist/infrastructure/persistence/sqlite.d.ts +5 -280
  549. package/dist/infrastructure/persistence/sqlite.js +3 -1013
  550. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  551. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  552. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  553. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  554. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  555. package/dist/infrastructure/persistence/statements.js +14 -9
  556. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  557. package/dist/infrastructure/persistence/types/admission.js +1 -0
  558. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  559. package/dist/infrastructure/persistence/types/batch.js +1 -0
  560. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  561. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  562. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  563. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  564. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  565. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  566. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  567. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  568. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  569. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  570. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  571. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  572. package/dist/infrastructure/server/bootstrap.js +3 -0
  573. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  574. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  575. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  576. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  577. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  578. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  579. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  580. package/dist/infrastructure/server/handlerRoutes.js +3 -270
  581. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  582. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  583. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  584. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  585. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  586. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  587. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  588. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  589. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  590. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  591. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  592. package/dist/infrastructure/server/handlers/core.js +37 -20
  593. package/dist/infrastructure/server/handlers/cron.js +9 -1
  594. package/dist/infrastructure/server/handlers/flow.js +6 -1
  595. package/dist/infrastructure/server/handlers/introspection.js +1 -1
  596. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  597. package/dist/infrastructure/server/handlers/management.js +30 -0
  598. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  599. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  600. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  601. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  602. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  603. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  604. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  605. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  606. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  607. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  608. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  609. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  610. package/dist/infrastructure/server/handlers/query.js +12 -3
  611. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  612. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  613. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  614. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  615. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  616. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  617. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  618. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  619. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  620. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  621. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  622. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  623. package/dist/infrastructure/server/protocol/commands.js +31 -0
  624. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  625. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  626. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  627. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  628. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  629. package/dist/infrastructure/server/protocol/validation.js +75 -0
  630. package/dist/infrastructure/server/protocol.d.ts +5 -77
  631. package/dist/infrastructure/server/protocol.js +4 -265
  632. package/dist/infrastructure/server/rateLimiter.js +1 -0
  633. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  634. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  635. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  636. package/dist/infrastructure/server/sse/constants.js +5 -0
  637. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  638. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  639. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  640. package/dist/infrastructure/server/sseHandler.js +20 -96
  641. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  642. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  643. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  644. package/dist/infrastructure/server/tcp/connections.js +162 -0
  645. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  646. package/dist/infrastructure/server/tcp/constants.js +3 -0
  647. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  648. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  649. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  650. package/dist/infrastructure/server/tcp/responses.js +8 -0
  651. package/dist/infrastructure/server/tcp.d.ts +10 -68
  652. package/dist/infrastructure/server/tcp.js +47 -256
  653. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  654. package/dist/infrastructure/server/types/protocol.js +1 -0
  655. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  656. package/dist/infrastructure/server/types/sse.js +1 -0
  657. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  658. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  659. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  660. package/dist/infrastructure/server/types/ws.js +1 -0
  661. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  662. package/dist/infrastructure/server/ws/constants.js +130 -0
  663. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  664. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  665. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  666. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  667. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  668. package/dist/infrastructure/server/wsHandler.js +12 -237
  669. package/dist/mcp/adapter.d.ts +5 -403
  670. package/dist/mcp/adapter.js +6 -778
  671. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  672. package/dist/mcp/backend/embedded/base.js +15 -0
  673. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  674. package/dist/mcp/backend/embedded/index.js +22 -0
  675. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  676. package/dist/mcp/backend/embedded/jobs.js +98 -0
  677. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  678. package/dist/mcp/backend/embedded/queues.js +84 -0
  679. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  680. package/dist/mcp/backend/embedded/services.js +107 -0
  681. package/dist/mcp/backend/serializers.d.ts +7 -0
  682. package/dist/mcp/backend/serializers.js +32 -0
  683. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  684. package/dist/mcp/backend/tcp/base.js +54 -0
  685. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  686. package/dist/mcp/backend/tcp/index.js +20 -0
  687. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  688. package/dist/mcp/backend/tcp/jobs.js +122 -0
  689. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  690. package/dist/mcp/backend/tcp/queues.js +89 -0
  691. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  692. package/dist/mcp/backend/tcp/services.js +161 -0
  693. package/dist/mcp/types/adapter.d.ts +176 -0
  694. package/dist/mcp/types/adapter.js +1 -0
  695. package/dist/shared/asyncLock.d.ts +13 -0
  696. package/dist/shared/asyncLock.js +65 -0
  697. package/dist/shared/lock.d.ts +10 -72
  698. package/dist/shared/lock.js +7 -231
  699. package/dist/shared/lockError.d.ts +3 -0
  700. package/dist/shared/lockError.js +6 -0
  701. package/dist/shared/lockTimeout.d.ts +2 -0
  702. package/dist/shared/lockTimeout.js +2 -0
  703. package/dist/shared/rwLock.d.ts +22 -0
  704. package/dist/shared/rwLock.js +124 -0
  705. package/dist/shared/serialization.js +1 -0
  706. package/dist/shared/skipList.d.ts +0 -5
  707. package/dist/shared/skipList.js +10 -57
  708. package/dist/shared/skipListNodes.d.ts +6 -0
  709. package/dist/shared/skipListNodes.js +43 -0
  710. package/dist/shared/types/lock.d.ts +7 -0
  711. package/dist/shared/types/lock.js +1 -0
  712. package/dist/shared/types/skipList.d.ts +4 -0
  713. package/dist/shared/types/skipList.js +1 -0
  714. package/package.json +2 -1
@@ -1,583 +1,2 @@
1
- /**
2
- * Client Types
3
- * Pure type definitions for the bunqueue client API
4
- */
5
- /** Job state type */
6
- export type JobStateType = 'waiting' | 'prioritized' | 'delayed' | 'active' | 'completed' | 'failed' | 'waiting-children' | 'unknown';
7
- /** Job JSON representation (BullMQ v5 compatible) */
8
- export interface JobJson<T = unknown> {
9
- id: string;
10
- name: string;
11
- data: T;
12
- opts: JobOptions;
13
- progress: number;
14
- delay: number;
15
- timestamp: number;
16
- attemptsMade: number;
17
- stacktrace: string[] | null;
18
- returnvalue?: unknown;
19
- failedReason?: string;
20
- finishedOn?: number;
21
- processedOn?: number;
22
- queueQualifiedName: string;
23
- parentKey?: string;
24
- }
25
- /** Job JSON raw representation (BullMQ v5 compatible) */
26
- export interface JobJsonRaw {
27
- id: string;
28
- name: string;
29
- data: string;
30
- opts: string;
31
- progress: string;
32
- delay: string;
33
- timestamp: string;
34
- attemptsMade: string;
35
- stacktrace: string | null;
36
- returnvalue?: string;
37
- failedReason?: string;
38
- finishedOn?: string;
39
- processedOn?: string;
40
- parentKey?: string;
41
- }
42
- /** Options for changePriority (BullMQ v5 compatible) */
43
- export interface ChangePriorityOpts {
44
- priority: number;
45
- lifo?: boolean;
46
- }
47
- /** Options for getDependencies (BullMQ v5 compatible) */
48
- export interface GetDependenciesOpts {
49
- processed?: {
50
- cursor?: number;
51
- count?: number;
52
- };
53
- unprocessed?: {
54
- cursor?: number;
55
- count?: number;
56
- };
57
- }
58
- /** Dependencies result (BullMQ v5 compatible) */
59
- export interface JobDependencies {
60
- processed: Record<string, unknown>;
61
- unprocessed: string[];
62
- nextProcessedCursor?: number;
63
- nextUnprocessedCursor?: number;
64
- }
65
- /** Dependencies count result (BullMQ v5 compatible) */
66
- export interface JobDependenciesCount {
67
- processed: number;
68
- unprocessed: number;
69
- }
70
- /** Job interface exposed to users */
71
- export interface Job<T = unknown> {
72
- id: string;
73
- name: string;
74
- data: T;
75
- queueName: string;
76
- attemptsMade: number;
77
- timestamp: number;
78
- progress: number;
79
- returnvalue?: unknown;
80
- failedReason?: string;
81
- /** Parent job reference (if this job is part of a flow) */
82
- parent?: {
83
- id: string;
84
- queueQualifiedName: string;
85
- };
86
- /** Delay in ms before job becomes available for processing */
87
- delay: number;
88
- /** Timestamp when job started processing */
89
- processedOn?: number;
90
- /** Timestamp when job finished (completed or failed) */
91
- finishedOn?: number;
92
- /** Stack traces from failed attempts */
93
- stacktrace: string[] | null;
94
- /** Number of times this job has been stalled */
95
- stalledCounter: number;
96
- /** Job priority (higher = processed sooner) */
97
- priority: number;
98
- /** Parent key in format queueName:jobId */
99
- parentKey?: string;
100
- /** Original job options */
101
- opts: JobOptions;
102
- /** Lock token for this job (if processing) */
103
- token?: string;
104
- /** Worker/client identifier processing this job */
105
- processedBy?: string;
106
- /** Deduplication ID (if set via jobId) */
107
- deduplicationId?: string;
108
- /** Repeat job key (for repeatable jobs) */
109
- repeatJobKey?: string;
110
- /** Number of times job processing has been started (includes retries) */
111
- attemptsStarted: number;
112
- /** Update job progress (0-100) */
113
- updateProgress(progress: number, message?: string): Promise<void>;
114
- /** Log a message to the job */
115
- log(message: string): Promise<void>;
116
- /** Get current job state */
117
- getState(): Promise<JobStateType>;
118
- /** Remove this job from the queue */
119
- remove(): Promise<void>;
120
- /** Retry this job */
121
- retry(): Promise<void>;
122
- /**
123
- * Get the return values of all children jobs (BullMQ v5 compatible).
124
- * Returns a Record where keys are job keys (queueName:jobId) and values are return values.
125
- * @template R - Type of the children return values
126
- */
127
- getChildrenValues<R = unknown>(): Promise<Record<string, R>>;
128
- /** Check if job is in waiting state */
129
- isWaiting(): Promise<boolean>;
130
- /** Check if job is currently active/processing */
131
- isActive(): Promise<boolean>;
132
- /** Check if job is delayed */
133
- isDelayed(): Promise<boolean>;
134
- /** Check if job has completed successfully */
135
- isCompleted(): Promise<boolean>;
136
- /** Check if job has failed */
137
- isFailed(): Promise<boolean>;
138
- /** Check if job is waiting for children to complete */
139
- isWaitingChildren(): Promise<boolean>;
140
- /** Update job data */
141
- updateData(data: T): Promise<void>;
142
- /** Promote delayed job to waiting */
143
- promote(): Promise<void>;
144
- /** Change job delay */
145
- changeDelay(delay: number): Promise<void>;
146
- /** Change job priority */
147
- changePriority(opts: ChangePriorityOpts): Promise<void>;
148
- /** Extend job lock duration */
149
- extendLock(token: string, duration: number): Promise<number>;
150
- /** Clear job logs */
151
- clearLogs(keepLogs?: number): Promise<void>;
152
- /** Get job dependencies (children) */
153
- getDependencies(opts?: GetDependenciesOpts): Promise<JobDependencies>;
154
- /** Get count of job dependencies */
155
- getDependenciesCount(opts?: GetDependenciesOpts): Promise<JobDependenciesCount>;
156
- /** Get job as JSON object */
157
- toJSON(): JobJson<T>;
158
- /** Get job as raw JSON (stringified values) */
159
- asJSON(): JobJsonRaw;
160
- /**
161
- * Move job to completed state.
162
- * @param returnValue - The return value of the job
163
- * @param token - Lock token (optional in embedded mode)
164
- * @param fetchNext - Whether to fetch the next job (default: true)
165
- * @returns The next job data or null
166
- */
167
- moveToCompleted(returnValue: unknown, token?: string, fetchNext?: boolean): Promise<unknown>;
168
- /**
169
- * Move job to failed state.
170
- * @param error - The error that caused the failure
171
- * @param token - Lock token (optional in embedded mode)
172
- * @param fetchNext - Whether to fetch the next job (default: true)
173
- */
174
- moveToFailed(error: Error, token?: string, fetchNext?: boolean): Promise<void>;
175
- /**
176
- * Move job back to waiting state.
177
- * @param token - Lock token (optional in embedded mode)
178
- * @returns true if job was moved
179
- */
180
- moveToWait(token?: string): Promise<boolean>;
181
- /**
182
- * Move job to delayed state.
183
- * @param timestamp - When the job should become available
184
- * @param token - Lock token (optional in embedded mode)
185
- */
186
- moveToDelayed(timestamp: number, token?: string): Promise<void>;
187
- /**
188
- * Move job to waiting-children state.
189
- * Job will wait for all children to complete before processing.
190
- * @param token - Lock token (optional in embedded mode)
191
- * @param opts - Options for the operation
192
- * @returns true if job was moved
193
- */
194
- moveToWaitingChildren(token?: string, opts?: {
195
- child?: {
196
- id: string;
197
- queue: string;
198
- };
199
- }): Promise<boolean>;
200
- /**
201
- * Wait until the job has finished (completed or failed).
202
- * @param queueEvents - QueueEvents instance to listen on
203
- * @param ttl - Maximum time to wait in ms (optional)
204
- * @returns The job's return value
205
- * @throws Error if job fails or times out
206
- */
207
- waitUntilFinished(queueEvents: unknown, ttl?: number): Promise<unknown>;
208
- /**
209
- * Discard this job - marks it to not be processed further.
210
- * The job will be moved to failed state with a "discarded" reason.
211
- */
212
- discard(): void;
213
- /**
214
- * Get return values of failed children jobs.
215
- * @returns Record where keys are job keys (queueName:jobId) and values are failure reasons
216
- */
217
- getFailedChildrenValues(): Promise<Record<string, string>>;
218
- /**
219
- * Get child job failures that were explicitly ignored (via ignoreDependencyOnFailure).
220
- * @returns Record where keys are job keys and values are failure reasons
221
- */
222
- getIgnoredChildrenFailures(): Promise<Record<string, string>>;
223
- /**
224
- * Remove this job's dependency relationship with its parent.
225
- * @returns true if dependency was removed
226
- */
227
- removeChildDependency(): Promise<boolean>;
228
- /**
229
- * Remove the deduplication key associated with this job.
230
- * @returns true if key was removed
231
- */
232
- removeDeduplicationKey(): Promise<boolean>;
233
- /**
234
- * Remove all unprocessed child jobs of this job.
235
- */
236
- removeUnprocessedChildren(): Promise<void>;
237
- }
238
- /** Parent job reference for flow dependencies */
239
- export interface ParentOpts {
240
- /** Parent job ID */
241
- id: string;
242
- /** Parent job queue name */
243
- queue: string;
244
- }
245
- /** Backoff configuration (BullMQ v5 compatible) */
246
- export interface BackoffOptions {
247
- /** Backoff strategy type */
248
- type: 'fixed' | 'exponential';
249
- /** Base delay in milliseconds */
250
- delay: number;
251
- }
252
- /** Keep jobs configuration (BullMQ v5 compatible) */
253
- export interface KeepJobs {
254
- /** Maximum age in milliseconds */
255
- age?: number;
256
- /** Maximum count of jobs to keep */
257
- count?: number;
258
- }
259
- /** Deduplication options (BullMQ v5 compatible) */
260
- export interface DeduplicationOptions {
261
- /** Unique deduplication ID */
262
- id: string;
263
- /** TTL in milliseconds for the deduplication key */
264
- ttl?: number;
265
- /** Extend TTL when duplicate job arrives (for debounce mode) */
266
- extend?: boolean;
267
- /** Replace job data when duplicate arrives while in delayed state */
268
- replace?: boolean;
269
- }
270
- /** Debounce options (BullMQ v5 compatible) */
271
- export interface DebounceOptions {
272
- /** Unique debounce ID */
273
- id: string;
274
- /** TTL in milliseconds for the debounce window */
275
- ttl: number;
276
- }
277
- /** Repeat configuration (BullMQ v5 compatible) */
278
- export interface RepeatOptions {
279
- /** Repeat every N milliseconds */
280
- every?: number;
281
- /** Maximum repetitions (omit for infinite) */
282
- limit?: number;
283
- /** Cron pattern (alternative to every) */
284
- pattern?: string;
285
- /** Start date for repeat jobs */
286
- startDate?: Date | string | number;
287
- /** End date for repeat jobs */
288
- endDate?: Date | string | number;
289
- /** Timezone for cron pattern */
290
- tz?: string;
291
- /** Execute immediately on start */
292
- immediately?: boolean;
293
- /** Current repeat count (internal) */
294
- count?: number;
295
- /** Previous execution timestamp (internal) */
296
- prevMillis?: number;
297
- /** Offset in milliseconds */
298
- offset?: number;
299
- /** Custom job ID for repeat jobs */
300
- jobId?: string;
301
- }
302
- /** Job options when adding to queue */
303
- export interface JobOptions {
304
- /** Job priority (higher = processed sooner) */
305
- priority?: number;
306
- /** Delay in milliseconds before job becomes available */
307
- delay?: number;
308
- /** Maximum number of attempts */
309
- attempts?: number;
310
- /** Backoff delay or configuration between retries */
311
- backoff?: number | BackoffOptions;
312
- /** Processing timeout in milliseconds */
313
- timeout?: number;
314
- /** Custom job ID (for idempotent/deduplication) */
315
- jobId?: string;
316
- /**
317
- * Remove job on completion. Boolean only — age/count retention
318
- * (number | KeepJobs) is not implemented and was silently ignored, so the
319
- * type is narrowed to prevent the misuse. See issue #90.
320
- */
321
- removeOnComplete?: boolean;
322
- /** Remove job on failure. Boolean only — see removeOnComplete. */
323
- removeOnFail?: boolean;
324
- /** Stall timeout in ms - job is stalled if no heartbeat after this time */
325
- stallTimeout?: number;
326
- /** Repeat configuration for recurring jobs */
327
- repeat?: RepeatOptions;
328
- /**
329
- * Force immediate persistence to disk (bypass write buffer).
330
- * Use for critical jobs where data loss is unacceptable.
331
- * Default: false (uses buffered writes for better throughput)
332
- */
333
- durable?: boolean;
334
- /**
335
- * Parent job reference for flow dependencies (BullMQ v5 compatible).
336
- * When set, this job becomes a child of the specified parent.
337
- * The parent will wait for all children to complete before processing.
338
- */
339
- parent?: ParentOpts;
340
- /** Process jobs in LIFO order (newest first) */
341
- lifo?: boolean;
342
- /** Maximum stack trace lines to store on failure */
343
- stackTraceLimit?: number;
344
- /** Maximum number of log entries to keep */
345
- keepLogs?: number;
346
- /** Maximum job data size in bytes */
347
- sizeLimit?: number;
348
- /** Fail parent job if this child job fails */
349
- failParentOnFailure?: boolean;
350
- /** Remove dependency relationship if this job fails */
351
- removeDependencyOnFailure?: boolean;
352
- /** Continue parent processing even if this child fails */
353
- continueParentOnFailure?: boolean;
354
- /** Move job to parent's failed dependencies instead of blocking parent */
355
- ignoreDependencyOnFailure?: boolean;
356
- /** Job creation timestamp (default: Date.now()) */
357
- timestamp?: number;
358
- /** Deduplication configuration */
359
- deduplication?: DeduplicationOptions;
360
- /** Debounce configuration */
361
- debounce?: DebounceOptions;
362
- }
363
- /**
364
- * TLS options for client connections — single definition lives in tcp/types
365
- * to prevent drift between the public and internal ConnectionOptions.
366
- */
367
- export type { ClientTlsOptions } from './tcp/types';
368
- import type { ClientTlsOptions } from './tcp/types';
369
- /** Connection options for TCP mode */
370
- export interface ConnectionOptions {
371
- /** Server host (default: localhost, ignored if socketPath is set) */
372
- host?: string;
373
- /** Server port (default: 6789, ignored if socketPath is set) */
374
- port?: number;
375
- /** Unix socket path (takes priority over host/port) */
376
- socketPath?: string;
377
- /** Enable TLS to the server: true (system CAs) or custom options (default: off) */
378
- tls?: boolean | ClientTlsOptions;
379
- /** Auth token */
380
- token?: string;
381
- /** Connection pool size for parallel operations (default: 1, set >1 to enable pooling) */
382
- poolSize?: number;
383
- /** Ping interval in ms for health checks (default: 30000, 0 to disable) */
384
- pingInterval?: number;
385
- /** Command timeout in ms (default: 30000) */
386
- commandTimeout?: number;
387
- /**
388
- * Consecutive command timeouts (no intervening success) before the connection
389
- * is concluded dead and a reconnect is forced (default: 3, 0 to disable).
390
- * Recovery path for a half-open socket independent of the health-check ping. See #94.
391
- */
392
- maxCommandTimeouts?: number;
393
- /** Enable TCP pipelining (default: true) */
394
- pipelining?: boolean;
395
- /** Max commands in flight per connection (default: 100) */
396
- maxInFlight?: number;
397
- }
398
- /** Auto-batching configuration for queue.add() */
399
- export interface AutoBatchOptions {
400
- /** Enable auto-batching (default: true for TCP, false for embedded) */
401
- enabled?: boolean;
402
- /** Max items before auto-flush (default: 50) */
403
- maxSize?: number;
404
- /** Max delay in ms before auto-flush (default: 5) */
405
- maxDelayMs?: number;
406
- }
407
- /** Queue options */
408
- export interface QueueOptions {
409
- defaultJobOptions?: JobOptions;
410
- /** Connection options - if omitted, connects to localhost:6789 */
411
- connection?: ConnectionOptions;
412
- /** Use embedded mode (in-process SQLite) instead of TCP */
413
- embedded?: boolean;
414
- /** SQLite database path for embedded mode (overrides DATA_PATH env var) */
415
- dataPath?: string;
416
- /**
417
- * Auto-batching for queue.add() calls in TCP mode.
418
- * Buffers individual add() calls and sends them as a single PUSHB command.
419
- * Gives 10-100x throughput improvement for sequential add() calls over TCP.
420
- * Default: enabled for TCP mode, disabled for embedded mode.
421
- */
422
- autoBatch?: AutoBatchOptions;
423
- /**
424
- * Namespace prefix prepended to the queue name on the server.
425
- * Lets multiple environments (e.g. `dev:`, `prod:`) share the same broker
426
- * without their jobs, workers, cron schedulers, stats, or DLQ overlapping.
427
- *
428
- * The user-facing `queue.name` stays the logical name; only the server-side
429
- * key and the cron scheduler IDs are prefixed. A Worker that wants to consume
430
- * from the namespaced queue must use the same `prefixKey`.
431
- */
432
- prefixKey?: string;
433
- }
434
- /** Rate limiter configuration for Worker (BullMQ v5 compatible) */
435
- export interface RateLimiterOptions {
436
- /** Maximum number of jobs to process in the duration window */
437
- max: number;
438
- /** Duration window in milliseconds */
439
- duration: number;
440
- /** Optional group key for per-group rate limiting */
441
- groupKey?: string;
442
- }
443
- /** Worker options */
444
- export interface WorkerOptions {
445
- concurrency?: number;
446
- autorun?: boolean;
447
- /** Heartbeat interval in ms (default: 10000). Set to 0 to disable. */
448
- heartbeatInterval?: number;
449
- /** Connection options - if omitted, connects to localhost:6789 */
450
- connection?: ConnectionOptions;
451
- /** Use embedded mode (in-process SQLite) instead of TCP */
452
- embedded?: boolean;
453
- /** SQLite database path for embedded mode (overrides DATA_PATH env var) */
454
- dataPath?: string;
455
- /** Batch size for pulling jobs (default: 10, max: 1000). Higher = fewer round-trips */
456
- batchSize?: number;
457
- /** Long poll timeout in ms when queue is empty (default: 0 = no wait, max: 30000) */
458
- pollTimeout?: number;
459
- /**
460
- * Use lock-based job ownership (BullMQ-style).
461
- * When enabled, each pulled job gets a lock that must be renewed via heartbeat.
462
- * Disable for high-throughput scenarios where stall detection is sufficient.
463
- * Default: true
464
- */
465
- useLocks?: boolean;
466
- /**
467
- * Rate limiter for controlling job processing rate (BullMQ v5 compatible).
468
- * When set, limits the number of jobs processed within the duration window.
469
- */
470
- limiter?: RateLimiterOptions;
471
- /** Lock duration in ms (default: 30000). Passed to server on pull; also used by stall detection. */
472
- lockDuration?: number;
473
- /** Max stalls before moving to failed (default: 1). Passed to stall config when using embedded mode. */
474
- maxStalledCount?: number;
475
- /** Skip stalled job check — disables stalled event subscription (default: false) */
476
- skipStalledCheck?: boolean;
477
- /** Skip lock renewal via heartbeat (default: false) */
478
- skipLockRenewal?: boolean;
479
- /** Delay in ms between polls when queue is drained (default: 50) */
480
- drainDelay?: number;
481
- /** Remove jobs on complete — applied as default for all jobs processed by this worker */
482
- removeOnComplete?: boolean | number | {
483
- age?: number;
484
- count?: number;
485
- };
486
- /** Remove jobs on fail — applied as default for all jobs processed by this worker */
487
- removeOnFail?: boolean | number | {
488
- age?: number;
489
- count?: number;
490
- };
491
- /**
492
- * Namespace prefix prepended to the queue name on the server.
493
- * Must match the `prefixKey` used by the producing `Queue` for the worker
494
- * to consume the same namespaced queue. See `QueueOptions.prefixKey`.
495
- */
496
- prefixKey?: string;
497
- }
498
- /** Stall configuration for a queue */
499
- export interface StallConfig {
500
- /** Enable stall detection (default: true) */
501
- enabled?: boolean;
502
- /** Stall timeout in ms (default: 30000) */
503
- stallInterval?: number;
504
- /** Max stalls before moving to DLQ (default: 3) */
505
- maxStalls?: number;
506
- /** Grace period after job start (default: 5000) */
507
- gracePeriod?: number;
508
- }
509
- /** DLQ configuration for a queue */
510
- export interface DlqConfig {
511
- /** Enable auto-retry from DLQ */
512
- autoRetry?: boolean;
513
- /** Auto-retry interval in ms (default: 3600000 = 1 hour) */
514
- autoRetryInterval?: number;
515
- /** Max auto-retries (default: 3) */
516
- maxAutoRetries?: number;
517
- /** Max age before auto-purge in ms (default: 604800000 = 7 days) */
518
- maxAge?: number | null;
519
- /** Max entries per queue (default: 10000) */
520
- maxEntries?: number;
521
- }
522
- /** Failure reason for DLQ entries */
523
- export type FailureReason = 'explicit_fail' | 'max_attempts_exceeded' | 'timeout' | 'stalled' | 'ttl_expired' | 'worker_lost' | 'unknown';
524
- /** DLQ entry with metadata */
525
- export interface DlqEntry<T = unknown> {
526
- job: Job<T>;
527
- enteredAt: number;
528
- reason: FailureReason;
529
- error: string | null;
530
- attempts: Array<{
531
- attempt: number;
532
- startedAt: number;
533
- failedAt: number;
534
- reason: FailureReason;
535
- error: string | null;
536
- duration: number;
537
- }>;
538
- retryCount: number;
539
- lastRetryAt: number | null;
540
- nextRetryAt: number | null;
541
- expiresAt: number | null;
542
- }
543
- /** DLQ statistics */
544
- export interface DlqStats {
545
- total: number;
546
- byReason: Record<FailureReason, number>;
547
- pendingRetry: number;
548
- expired: number;
549
- oldestEntry: number | null;
550
- newestEntry: number | null;
551
- }
552
- /** DLQ filter options */
553
- export interface DlqFilter {
554
- reason?: FailureReason;
555
- olderThan?: number;
556
- newerThan?: number;
557
- retriable?: boolean;
558
- expired?: boolean;
559
- limit?: number;
560
- offset?: number;
561
- }
562
- /**
563
- * Flow-injected fields automatically added to job data by FlowProducer.
564
- * These fields are present on job.data when a job is part of a flow.
565
- */
566
- export interface FlowJobData {
567
- /** Parent job ID (injected by FlowProducer.addChain / addTree) */
568
- __flowParentId?: string;
569
- /** Array of parent job IDs (injected by FlowProducer.addBulkThen for merge flows) */
570
- __flowParentIds?: string[];
571
- /** Parent job ID (injected by FlowProducer.add for BullMQ v5 compatible flows) */
572
- __parentId?: string;
573
- /** Parent job queue name (injected by FlowProducer.add for BullMQ v5 compatible flows) */
574
- __parentQueue?: string;
575
- /** Children job IDs (injected by FlowProducer.add for BullMQ v5 compatible flows) */
576
- __childrenIds?: string[];
577
- }
578
- /** Job processor function */
579
- export type Processor<T = unknown, R = unknown> = (job: Job<T & FlowJobData>) => Promise<R> | R;
580
- /** Queue events */
581
- export type QueueEventType = 'waiting' | 'active' | 'completed' | 'failed' | 'progress' | 'removed' | 'drained';
582
- export { createPublicJob, toPublicJob, toDlqEntry } from './jobConversion';
583
- export type { CreatePublicJobOptions, ToPublicJobOptions } from './jobConversion';
1
+ /** Backwards-compatible barrel for the public client types. */
2
+ export * from './types/index';
@@ -1,6 +1,2 @@
1
- /**
2
- * Client Types
3
- * Pure type definitions for the bunqueue client API
4
- */
5
- // Re-export conversion functions for backwards compatibility
6
- export { createPublicJob, toPublicJob, toDlqEntry } from './jobConversion';
1
+ /** Backwards-compatible barrel for the public client types. */
2
+ export * from './types/index';
@@ -26,7 +26,7 @@ export declare class AckBatcher {
26
26
  /** Set TCP connection */
27
27
  setTcp(tcp: TcpConnection | null): void;
28
28
  /** Queue ACK for batch processing (with optional lock token) */
29
- queue(id: string, result: unknown, token?: string): Promise<void>;
29
+ queue(id: string, result: unknown, token?: string, removeOnComplete?: boolean): Promise<boolean>;
30
30
  /** Flush pending ACKs with retry logic */
31
31
  flush(): Promise<void>;
32
32
  /** Send batch with exponential backoff retry */
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { getSharedManager } from '../manager';
6
6
  import { jobId } from '../../domain/types/job';
7
+ import { ignoredAckIndices } from './ackOutcome';
7
8
  const DEFAULT_MAX_RETRIES = 3;
8
9
  const DEFAULT_RETRY_DELAY_MS = 100;
9
10
  /**
@@ -26,7 +27,7 @@ export class AckBatcher {
26
27
  this.tcp = tcp;
27
28
  }
28
29
  /** Queue ACK for batch processing (with optional lock token) */
29
- async queue(id, result, token) {
30
+ async queue(id, result, token, removeOnComplete) {
30
31
  // Backpressure: never silently drop accepted ACKs. When the buffer is at/over
31
32
  // capacity, force a flush of the pending ACKs (sending them to the server)
32
33
  // before accepting more. If a flush is already in-flight, await it first to
@@ -50,6 +51,7 @@ export class AckBatcher {
50
51
  id,
51
52
  result,
52
53
  token,
54
+ removeOnComplete,
53
55
  resolve,
54
56
  reject,
55
57
  });
@@ -95,27 +97,37 @@ export class AckBatcher {
95
97
  return;
96
98
  }
97
99
  try {
100
+ let ignoredIndices = new Set();
98
101
  if (this.config.embedded) {
99
102
  const manager = getSharedManager();
100
103
  // Include tokens for lock verification
101
- const items = batch.map((a) => ({ id: jobId(a.id), result: a.result, token: a.token }));
102
- await manager.ackBatchWithResults(items);
104
+ const items = batch.map((a) => ({
105
+ id: jobId(a.id),
106
+ result: a.result,
107
+ token: a.token,
108
+ removeOnComplete: a.removeOnComplete,
109
+ }));
110
+ const outcome = await manager.ackBatchWithResults(items);
111
+ ignoredIndices = ignoredAckIndices(outcome, batch);
103
112
  }
104
113
  else if (this.tcp) {
105
114
  // Include tokens for lock verification
115
+ const removeOnCompletes = batch.map((a) => a.removeOnComplete ?? null);
106
116
  const response = await this.tcp.send({
107
117
  cmd: 'ACKB',
108
118
  ids: batch.map((a) => a.id),
109
119
  results: batch.map((a) => a.result),
110
120
  tokens: batch.map((a) => a.token ?? ''),
121
+ ...(removeOnCompletes.some((value) => value === true) ? { removeOnCompletes } : {}),
111
122
  });
112
123
  if (!response.ok) {
113
124
  throw new Error(response.error ?? 'Batch ACK failed');
114
125
  }
126
+ ignoredIndices = ignoredAckIndices(response.data, batch);
115
127
  }
116
128
  // Success
117
- for (const ack of batch) {
118
- ack.resolve();
129
+ for (let index = 0; index < batch.length; index++) {
130
+ batch[index].resolve(!ignoredIndices.has(index));
119
131
  }
120
132
  return;
121
133
  }
@@ -0,0 +1,8 @@
1
+ interface AckEntry {
2
+ readonly id: string;
3
+ }
4
+ /** Parse structured ACKB evidence, retaining duplicate job-ID positions. */
5
+ export declare function ignoredAckIndices(data: unknown, batch: readonly AckEntry[]): ReadonlySet<number>;
6
+ /** Parse a single ACK response; normal historical responses carry no data. */
7
+ export declare function outcomeWasApplied(data: unknown): boolean;
8
+ export {};