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
@@ -3,7 +3,8 @@ import { type Job, type JobId, type JobInput } from '../../domain/types/job';
3
3
  import type { JobLocation } from '../../domain/types/queue';
4
4
  import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
5
5
  import type { MapLike, SetLike } from '../../shared/lru';
6
- import { type DependencyCompletionTracker } from '../dependencyCompletions';
6
+ import type { DependencyCompletionTracker } from '../dependencyCompletions';
7
+ import type { RetiredTimeoutGeneration } from '../types/background';
7
8
  export interface CustomIdContext {
8
9
  storage: SqliteStorage | null;
9
10
  shards: Shard[];
@@ -11,7 +12,9 @@ export interface CustomIdContext {
11
12
  completedJobsData: MapLike<JobId, Job>;
12
13
  depCompletions?: DependencyCompletionTracker;
13
14
  maxDependencyCompletions: number;
14
- timedOutJobs?: SetLike<JobId>;
15
+ timedOutJobs?: MapLike<JobId, RetiredTimeoutGeneration>;
16
+ retiredTimeoutLeaseTokens?: MapLike<string, RetiredTimeoutGeneration>;
17
+ retiredCronLeaseTokens?: MapLike<JobId, string>;
15
18
  jobResults: MapLike<JobId, unknown>;
16
19
  customIdMap: MapLike<string, JobId>;
17
20
  jobIndex: Map<JobId, JobLocation>;
@@ -25,10 +28,20 @@ export type CustomIdResult = {
25
28
  } | {
26
29
  skip: false;
27
30
  id: JobId;
31
+ retirement?: CustomIdRetirement;
28
32
  };
33
+ export interface CustomIdRetirement {
34
+ readonly completed: boolean;
35
+ readonly dlqQueue?: string;
36
+ readonly dependencyCompletion: boolean;
37
+ }
29
38
  /**
30
- * Enforce custom-ID idempotency while the caller holds the target shard lock.
31
- * Live generations are returned unchanged; terminal generations are retired
32
- * before the deterministic ID is admitted again.
39
+ * Inspect custom-ID idempotency while the caller holds the target shard lock.
40
+ * Terminal retirement is deliberately deferred until persistence commits, so
41
+ * a rejected durable generation cannot destroy the previous one.
33
42
  */
34
43
  export declare function handleCustomId(input: JobInput, ctx: CustomIdContext, lockedShardIndexes: ReadonlySet<number>): CustomIdResult;
44
+ /** Publish custom-ID ownership after the matching storage admission succeeds. */
45
+ export declare function commitCustomIdAdmission(input: JobInput, decision: Exclude<CustomIdResult, {
46
+ skip: true;
47
+ }>, ctx: CustomIdContext): void;
@@ -1,10 +1,9 @@
1
1
  import { generateJobId, jobId } from '../../domain/types/job';
2
2
  import { shardIndex } from '../../shared/hash';
3
- import { releaseDependencyCompletionPins, } from '../dependencyCompletions';
4
3
  /**
5
- * Enforce custom-ID idempotency while the caller holds the target shard lock.
6
- * Live generations are returned unchanged; terminal generations are retired
7
- * before the deterministic ID is admitted again.
4
+ * Inspect custom-ID idempotency while the caller holds the target shard lock.
5
+ * Terminal retirement is deliberately deferred until persistence commits, so
6
+ * a rejected durable generation cannot destroy the previous one.
8
7
  */
9
8
  export function handleCustomId(input, ctx, lockedShardIndexes) {
10
9
  if (!input.customId) {
@@ -31,39 +30,51 @@ export function handleCustomId(input, ctx, lockedShardIndexes) {
31
30
  return { skip: true, existingId: id };
32
31
  }
33
32
  }
34
- if (ctx.completedJobs.has(id)) {
35
- ctx.completedJobs.delete(id);
36
- ctx.completedJobsData.delete(id);
37
- ctx.jobResults.delete(id);
38
- ctx.jobIndex.delete(id);
39
- ctx.storage?.deleteJob(id);
40
- }
33
+ const completed = ctx.completedJobs.has(id);
41
34
  const terminalLocation = ctx.jobIndex.get(id);
35
+ let dlqQueue;
42
36
  if (terminalLocation?.type === 'dlq') {
43
37
  const terminalShardIdx = shardIndex(terminalLocation.queueName);
44
38
  if (!lockedShardIndexes.has(terminalShardIdx)) {
45
39
  throw new Error('Terminal custom ID shard must be locked before reuse');
46
40
  }
47
- const terminalShard = ctx.shards[terminalShardIdx];
48
- terminalShard.removeFromDlq(terminalLocation.queueName, id);
49
- ctx.jobIndex.delete(id);
50
- // deleteDlqEntry removes every persisted generation for this deterministic
51
- // id. The fresh jobs row is inserted only after this retirement completes.
52
- ctx.storage?.deleteDlqEntry(id);
41
+ dlqQueue = terminalLocation.queueName;
53
42
  }
43
+ let dependencyCompletion = false;
54
44
  if (ctx.depCompletions?.has(id)) {
55
45
  const hasUnresolvedConsumers = ctx.shards.some((shard) => (shard.getJobsWaitingFor(id)?.size ?? 0) > 0);
56
46
  if (hasUnresolvedConsumers) {
57
47
  throw new Error(`Custom ID ${String(id)} still has unresolved dependency consumers`);
58
48
  }
59
- releaseDependencyCompletionPins([id], ctx);
60
- ctx.storage?.deleteDependencyCompletion(id);
61
- ctx.depCompletions.delete(id);
49
+ dependencyCompletion = true;
50
+ }
51
+ const retirement = completed || dlqQueue || dependencyCompletion
52
+ ? { completed, dlqQueue, dependencyCompletion }
53
+ : undefined;
54
+ return { skip: false, id, retirement };
55
+ }
56
+ /** Publish custom-ID ownership after the matching storage admission succeeds. */
57
+ export function commitCustomIdAdmission(input, decision, ctx) {
58
+ const { id, retirement } = decision;
59
+ if (retirement?.completed) {
60
+ ctx.completedJobs.delete(id);
61
+ ctx.completedJobsData.delete(id);
62
+ ctx.jobResults.delete(id);
63
+ ctx.jobIndex.delete(id);
64
+ }
65
+ if (retirement?.dlqQueue) {
66
+ const terminalShard = ctx.shards[shardIndex(retirement.dlqQueue)];
67
+ terminalShard.removeFromDlq(retirement.dlqQueue, id);
68
+ ctx.jobIndex.delete(id);
62
69
  }
63
- // A durable jobs row may outlive its in-memory tracking after an interrupted
64
- // cleanup. The storage insert upserts that orphan without adding a DELETE to
65
- // every custom-ID push.
70
+ if (retirement?.dependencyCompletion)
71
+ ctx.depCompletions?.delete(id);
72
+ // A recycled deterministic ID starts with no timeout or retired-lease state.
73
+ const timedOutGeneration = ctx.timedOutJobs?.get(id);
66
74
  ctx.timedOutJobs?.delete(id);
67
- ctx.customIdMap.set(input.customId, id);
68
- return { skip: false, id };
75
+ if (timedOutGeneration?.token)
76
+ ctx.retiredTimeoutLeaseTokens?.delete(timedOutGeneration.token);
77
+ ctx.retiredCronLeaseTokens?.delete(id);
78
+ if (input.customId)
79
+ ctx.customIdMap.set(input.customId, id);
69
80
  }
@@ -1,3 +1,4 @@
1
+ import { normalizeJobPayload } from '../../domain/types/job';
1
2
  import { validateFlowTopology } from './flowTopologyValidation';
2
3
  const MAX_FLOW_JOBS = 10_000;
3
4
  const MAX_JOB_DATA_BYTES = 10 * 1024 * 1024;
@@ -99,11 +100,13 @@ function validateData(data) {
99
100
  throw new Error('Job data too large (max 10MB)');
100
101
  }
101
102
  const value = data;
102
- if (typeof value.name !== 'string' || value.name.length === 0 || value.name.length > 256) {
103
- throw new Error('flow job data.name must be a non-empty string of at most 256 characters');
104
- }
105
103
  return { encodedLength: encoded.length, value };
106
104
  }
105
+ function validateName(name) {
106
+ if (name.length === 0 || name.length > 256) {
107
+ throw new Error('flow job name must be a non-empty string of at most 256 characters');
108
+ }
109
+ }
107
110
  function validateIdList(value, name) {
108
111
  if (value !== undefined &&
109
112
  (!Array.isArray(value) ||
@@ -154,7 +157,9 @@ export function validateAtomicFlowBatch(batch) {
154
157
  }
155
158
  validateIdList(job.input.dependsOn, 'dependsOn');
156
159
  validateIdList(job.input.childrenIds, 'childrenIds');
157
- const validatedData = validateData(job.input.data);
160
+ const payload = normalizeJobPayload(job.input);
161
+ validateName(payload.name);
162
+ const validatedData = validateData(payload.data);
158
163
  totalDataBytes += validatedData.encodedLength;
159
164
  if (totalDataBytes > MAX_FLOW_DATA_BYTES) {
160
165
  throw new Error('flow data is too large (max 64MB per atomic batch)');
@@ -7,6 +7,38 @@ import { webhookLog } from '../../shared/logger';
7
7
  import { withWriteLock } from '../../shared/lock';
8
8
  import { releaseDependencyCompletionPins, } from '../dependencyCompletions';
9
9
  export { discardJob, moveJobToDelayed } from './jobMoveOperations';
10
+ const FLOW_METADATA_KEYS = [
11
+ '__parentId',
12
+ '__parentQueue',
13
+ '__childrenIds',
14
+ '__flowParentId',
15
+ '__flowParentIds',
16
+ ];
17
+ function dataRecord(value) {
18
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
19
+ ? value
20
+ : null;
21
+ }
22
+ /** Merge caller data without allowing it to erase or forge broker-owned flow metadata. */
23
+ function updatedJobData(job, userData) {
24
+ const current = dataRecord(job.data);
25
+ const metadata = current
26
+ ? Object.fromEntries(FLOW_METADATA_KEYS.filter((key) => Object.hasOwn(current, key)).map((key) => [
27
+ key,
28
+ current[key],
29
+ ]))
30
+ : {};
31
+ if (Object.keys(metadata).length === 0)
32
+ return userData;
33
+ const next = dataRecord(userData);
34
+ if (!next)
35
+ throw new Error('flow job data must be an object');
36
+ for (const key of Object.keys(next)) {
37
+ if (key.startsWith('__'))
38
+ throw new Error(`flow job data key is reserved: ${key}`);
39
+ }
40
+ return { ...next, ...metadata };
41
+ }
10
42
  /** Cancel a job (remove from queue) */
11
43
  export async function cancelJob(jobId, ctx) {
12
44
  const location = ctx.jobIndex.get(jobId);
@@ -120,10 +152,13 @@ export async function updateJobData(jobId, data, ctx) {
120
152
  if (location?.type === 'queue') {
121
153
  return withWriteLock(ctx.shardLocks[location.shardIdx], () => {
122
154
  const shard = ctx.shards[location.shardIdx];
123
- const job = shard.getQueue(location.queueName).find(jobId) ?? shard.waitingDeps.get(jobId);
155
+ const job = shard.getQueue(location.queueName).find(jobId) ??
156
+ shard.waitingDeps.get(jobId) ??
157
+ shard.waitingChildren.get(jobId);
124
158
  if (job) {
125
- job.data = data;
126
- ctx.storage?.updateJobData(jobId, data);
159
+ const updated = updatedJobData(job, data);
160
+ ctx.storage?.updateJobData(jobId, updated);
161
+ job.data = updated;
127
162
  return true;
128
163
  }
129
164
  return false;
@@ -134,8 +169,9 @@ export async function updateJobData(jobId, data, ctx) {
134
169
  return withWriteLock(ctx.processingLocks[procIdx], () => {
135
170
  const job = ctx.processingShards[procIdx].get(jobId);
136
171
  if (job) {
137
- job.data = data;
138
- ctx.storage?.updateJobData(jobId, data);
172
+ const updated = updatedJobData(job, data);
173
+ ctx.storage?.updateJobData(jobId, updated);
174
+ job.data = updated;
139
175
  return true;
140
176
  }
141
177
  return false;
@@ -163,8 +199,9 @@ async function updateRepeatSuccessor(originalId, data, ctx) {
163
199
  .getQueue(successorLoc.queueName)
164
200
  .find(successorId);
165
201
  if (job) {
166
- job.data = data;
167
- ctx.storage?.updateJobData(successorId, data);
202
+ const updated = updatedJobData(job, data);
203
+ ctx.storage?.updateJobData(successorId, updated);
204
+ job.data = updated;
168
205
  return true;
169
206
  }
170
207
  return false;
@@ -0,0 +1,36 @@
1
+ import { type Job, type JobId, type JobInput } from '../../domain/types/job';
2
+ import type { Shard } from '../../domain/queue/shard';
3
+ import { type DedupResult } from './pushDeduplication';
4
+ import { type AcceptedCustomId } from './pushAdmission';
5
+ import type { PushContext } from './pushContext';
6
+ type ParentMembership = 'queue' | 'waiting-deps' | 'waiting-children';
7
+ export interface ParentLinkPlan {
8
+ readonly child: Job;
9
+ readonly parent: Job;
10
+ readonly linkedChild: Job;
11
+ readonly linkedParent: Job;
12
+ readonly parentMembership: ParentMembership;
13
+ readonly childFinished: boolean;
14
+ }
15
+ /** Validate every parent before a batch mutates its accepted prefix. */
16
+ export declare function validateParentLinkInputs(inputs: readonly JobInput[], ctx: PushContext): void;
17
+ export declare function prepareParentLink(child: Job, ctx: PushContext, childFinished?: boolean, parentIdOverride?: JobId, now?: number): ParentLinkPlan;
18
+ /** Publish a persisted link while the parent and child queue shards are locked. */
19
+ export declare function commitParentLink(plan: ParentLinkPlan, ctx: PushContext): void;
20
+ export declare function parentLinkState(plan: ParentLinkPlan): 'waiting-children' | 'waiting' | 'prioritized' | 'delayed';
21
+ /** Persist and publish a new child and its existing parent as one locked operation. */
22
+ export declare function acceptParentedJob(options: {
23
+ job: Job;
24
+ input: JobInput;
25
+ target: {
26
+ queue: string;
27
+ shard: Shard;
28
+ shardIdx: number;
29
+ };
30
+ dedup: Exclude<DedupResult, {
31
+ skip: true;
32
+ }>;
33
+ customId: AcceptedCustomId;
34
+ ctx: PushContext;
35
+ }): JobId[];
36
+ export {};
@@ -0,0 +1,153 @@
1
+ import { MAX_TIMELINE_ENTRIES } from '../../domain/types/job';
2
+ import { shardIndex } from '../../shared/hash';
3
+ import { replaceActiveDedupJob, replacePendingDedupJob, } from './pushDeduplication';
4
+ import { admissionMetadata, publishPreparedJob } from './pushAdmission';
5
+ import { prepareJobInsertion } from './pushInsert';
6
+ import { parentLinkQueue } from './parentLinkInput';
7
+ function recordData(value) {
8
+ return value && typeof value === 'object' && !Array.isArray(value)
9
+ ? value
10
+ : {};
11
+ }
12
+ function locateParent(parentId, ctx) {
13
+ const location = ctx.jobIndex.get(parentId);
14
+ if (!location)
15
+ throw new Error(`Parent job not found: ${String(parentId)}`);
16
+ if (location.type !== 'queue') {
17
+ throw new Error(`Parent job ${String(parentId)} is not linkable`);
18
+ }
19
+ const shard = ctx.shards[location.shardIdx];
20
+ const queued = shard.getQueue(location.queueName).find(parentId);
21
+ if (queued)
22
+ return { job: queued, membership: 'queue' };
23
+ const waiting = shard.waitingDeps.get(parentId);
24
+ if (waiting)
25
+ return { job: waiting, membership: 'waiting-deps' };
26
+ const waitingChildren = shard.waitingChildren.get(parentId);
27
+ if (waitingChildren)
28
+ return { job: waitingChildren, membership: 'waiting-children' };
29
+ throw new Error(`Parent job ${String(parentId)} changed state while linking`);
30
+ }
31
+ /** Validate every parent before a batch mutates its accepted prefix. */
32
+ export function validateParentLinkInputs(inputs, ctx) {
33
+ for (const input of inputs) {
34
+ const expectedQueue = parentLinkQueue(input);
35
+ if (!input.parentId || !expectedQueue)
36
+ continue;
37
+ if (input.customId && String(input.parentId) === input.customId) {
38
+ throw new Error('A job cannot be its own parent');
39
+ }
40
+ const { job: parent } = locateParent(input.parentId, ctx);
41
+ if (parent.queue !== expectedQueue) {
42
+ throw new Error(`Parent job ${String(input.parentId)} belongs to queue ${parent.queue}, not ${expectedQueue}`);
43
+ }
44
+ }
45
+ }
46
+ export function prepareParentLink(child, ctx, childFinished = false, parentIdOverride, now = Date.now()) {
47
+ const parentId = parentIdOverride ?? child.parentId;
48
+ if (!parentId)
49
+ throw new Error(`Job ${String(child.id)} has no parent`);
50
+ if (child.id === parentId)
51
+ throw new Error('A job cannot be its own parent');
52
+ const { job: parent, membership } = locateParent(parentId, ctx);
53
+ const childrenIds = parent.childrenIds.includes(child.id)
54
+ ? [...parent.childrenIds]
55
+ : [...parent.childrenIds, child.id];
56
+ const dependsOn = parent.dependsOn.includes(child.id)
57
+ ? [...parent.dependsOn]
58
+ : [...parent.dependsOn, child.id];
59
+ const childData = {
60
+ ...recordData(child.data),
61
+ __parentId: String(parent.id),
62
+ __parentQueue: parent.queue,
63
+ };
64
+ const parentData = { ...recordData(parent.data), __childrenIds: childrenIds.map(String) };
65
+ const timeline = [...parent.timeline];
66
+ if (!childFinished &&
67
+ timeline.at(-1)?.state !== 'waiting-children' &&
68
+ timeline.length < MAX_TIMELINE_ENTRIES) {
69
+ timeline.push({ state: 'waiting-children', timestamp: now });
70
+ }
71
+ return {
72
+ child,
73
+ parent,
74
+ linkedChild: { ...child, parentId: parent.id, data: childData },
75
+ linkedParent: { ...parent, childrenIds, dependsOn, data: parentData, timeline },
76
+ parentMembership: membership,
77
+ childFinished,
78
+ };
79
+ }
80
+ /** Publish a persisted link while the parent and child queue shards are locked. */
81
+ export function commitParentLink(plan, ctx) {
82
+ const { child, parent, linkedChild, linkedParent } = plan;
83
+ child.parentId = linkedChild.parentId;
84
+ child.data = linkedChild.data;
85
+ parent.childrenIds = linkedParent.childrenIds;
86
+ parent.dependsOn = linkedParent.dependsOn;
87
+ parent.data = linkedParent.data;
88
+ parent.timeline = linkedParent.timeline;
89
+ if (!plan.childFinished) {
90
+ const parentShard = ctx.shards[shardIndex(parent.queue)];
91
+ if (plan.parentMembership === 'queue') {
92
+ if (parentShard.getQueue(parent.queue).remove(parent.id)) {
93
+ parentShard.decrementQueued(parent.id);
94
+ parentShard.removeFromTemporalIndex(parent.id);
95
+ }
96
+ parentShard.waitingDeps.set(parent.id, parent);
97
+ }
98
+ else if (plan.parentMembership === 'waiting-children') {
99
+ parentShard.waitingChildren.delete(parent.id);
100
+ parentShard.waitingDeps.set(parent.id, parent);
101
+ }
102
+ parentShard.registerDependencies(parent.id, linkedParent.dependsOn);
103
+ }
104
+ ctx.dependencyResults.registerConsumer(parent.id, linkedParent.dependsOn);
105
+ for (const dependencyId of linkedParent.dependsOn) {
106
+ if (ctx.jobResults.has(dependencyId)) {
107
+ ctx.dependencyResults.retain(dependencyId, ctx.jobResults.get(dependencyId));
108
+ }
109
+ }
110
+ }
111
+ export function parentLinkState(plan) {
112
+ if (!plan.childFinished)
113
+ return 'waiting-children';
114
+ if (plan.parent.runAt > Date.now())
115
+ return 'delayed';
116
+ return plan.parent.priority > 0 ? 'prioritized' : 'waiting';
117
+ }
118
+ function persistLink(plan, ctx, mode, admission) {
119
+ ctx.storage?.commitFlowLink(plan.linkedChild, plan.linkedParent, parentLinkState(plan), mode, admission);
120
+ }
121
+ /** Persist and publish a new child and its existing parent as one locked operation. */
122
+ export function acceptParentedJob(options) {
123
+ const { job, input, target, dedup, customId, ctx } = options;
124
+ const plan = prepareParentLink(job, ctx);
125
+ let released = [];
126
+ if (dedup.replacement) {
127
+ const replacement = dedup.replacement;
128
+ released = replacePendingDedupJob(replacement, job, input, target, {
129
+ ctx,
130
+ customId,
131
+ persist: (admission) => {
132
+ persistLink(plan, ctx, { type: 'replace', previousJobId: replacement.job.id }, admission);
133
+ },
134
+ });
135
+ }
136
+ else if (dedup.activeOwnerId) {
137
+ const activeOwnerId = dedup.activeOwnerId;
138
+ replaceActiveDedupJob(activeOwnerId, job, input, target, {
139
+ ctx,
140
+ customId,
141
+ persist: (admission) => {
142
+ persistLink(plan, ctx, { type: 'transfer-active', previousJobId: activeOwnerId }, admission);
143
+ },
144
+ });
145
+ }
146
+ else {
147
+ const prepared = prepareJobInsertion(job, ctx);
148
+ persistLink(plan, ctx, { type: 'insert' }, admissionMetadata(customId, prepared));
149
+ publishPreparedJob({ job, input, target, customId, prepared, ctx });
150
+ }
151
+ commitParentLink(plan, ctx);
152
+ return released;
153
+ }
@@ -0,0 +1,8 @@
1
+ import type { JobInput } from '../../domain/types/job';
2
+ /**
3
+ * Queue.add parent options carry the parent queue in reserved metadata. A bare
4
+ * parentId remains the legacy flow forward-reference contract and is linked
5
+ * later when the parent declares the edge.
6
+ */
7
+ export declare function parentLinkQueue(input: JobInput): string | null;
8
+ export declare function isParentLinkInput(input: JobInput): boolean;
@@ -0,0 +1,23 @@
1
+ function inputData(input) {
2
+ return input.data && typeof input.data === 'object' && !Array.isArray(input.data)
3
+ ? input.data
4
+ : null;
5
+ }
6
+ /**
7
+ * Queue.add parent options carry the parent queue in reserved metadata. A bare
8
+ * parentId remains the legacy flow forward-reference contract and is linked
9
+ * later when the parent declares the edge.
10
+ */
11
+ export function parentLinkQueue(input) {
12
+ if (!input.parentId)
13
+ return null;
14
+ const data = inputData(input);
15
+ if (!data || String(data.__parentId) !== String(input.parentId))
16
+ return null;
17
+ return typeof data.__parentQueue === 'string' && data.__parentQueue.length > 0
18
+ ? data.__parentQueue
19
+ : null;
20
+ }
21
+ export function isParentLinkInput(input) {
22
+ return parentLinkQueue(input) !== null;
23
+ }
@@ -1,52 +1,13 @@
1
1
  /**
2
2
  * Push Operations
3
- * Job push and batch push logic
3
+ * Single-job push logic and stable batch re-export
4
4
  */
5
- import { type Job, type JobId, type JobInput } from '../../domain/types/job';
6
- import { type JobLocation, EventType } from '../../domain/types/queue';
7
- import type { Shard } from '../../domain/queue/shard';
8
- import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
9
- import type { RWLock } from '../../shared/lock';
10
- import type { SetLike, MapLike } from '../../shared/lru';
11
- import type { DependencyResultTracker } from '../dependencyResultTracker';
12
- import type { DependencyCompletionTracker } from '../dependencyCompletions';
13
- /** Push operation context */
14
- export interface PushContext {
15
- storage: SqliteStorage | null;
16
- shards: Shard[];
17
- shardLocks: RWLock[];
18
- /** Serializes deterministic IDs before any shard lock is acquired. */
19
- customIdLock: RWLock;
20
- completedJobs: SetLike<JobId>;
21
- completedJobsData: MapLike<JobId, Job>;
22
- /** Bare completion ids for removeOnComplete jobs so dependents start ready */
23
- depCompletions?: DependencyCompletionTracker;
24
- maxDependencyCompletions: number;
25
- /** Timeout markers — cleared on custom-id reuse so a recycled id starts clean */
26
- timedOutJobs?: SetLike<JobId>;
27
- jobResults: MapLike<JobId, unknown>;
28
- dependencyResults: DependencyResultTracker;
29
- customIdMap: MapLike<string, JobId>;
30
- jobIndex: Map<JobId, JobLocation>;
31
- totalPushed: {
32
- value: bigint;
33
- };
34
- broadcast: (event: {
35
- eventType: EventType;
36
- queue: string;
37
- jobId: JobId;
38
- timestamp: number;
39
- }) => void;
40
- dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
41
- registerQueueName?: (queue: string) => void;
42
- }
5
+ import { type Job, type JobInput } from '../../domain/types/job';
6
+ import type { PushContext } from './pushContext';
7
+ export type { PushContext } from './pushContext';
8
+ export { pushJobBatch } from './pushBatch';
43
9
  /**
44
10
  * Push a single job to queue
45
11
  * NOTE: customId check happens INSIDE lock to prevent race conditions
46
12
  */
47
13
  export declare function pushJob(queue: string, input: JobInput, ctx: PushContext): Promise<Job>;
48
- /**
49
- * Push multiple jobs to queue
50
- * NOTE: customId check happens INSIDE lock (safer for concurrent batch inserts)
51
- */
52
- export declare function pushJobBatch(queue: string, inputs: JobInput[], ctx: PushContext): Promise<JobId[]>;