bunqueue 2.8.54 → 2.8.57

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 (718) 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.js → types/config.js} +3 -4
  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/{queueTypes.d.ts → types/contexts.d.ts} +2 -2
  230. package/dist/client/queue/types/index.d.ts +3 -0
  231. package/dist/client/queue/types/index.js +1 -0
  232. package/dist/client/queue/types/job.d.ts +50 -0
  233. package/dist/client/queue/types/job.js +1 -0
  234. package/dist/client/queue/types/runtime.d.ts +35 -0
  235. package/dist/client/queue/types/runtime.js +1 -0
  236. package/dist/client/queue/workers.d.ts +4 -8
  237. package/dist/client/queue/workers.js +22 -14
  238. package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
  239. package/dist/client/queue-events/tcpSubscription.js +99 -0
  240. package/dist/client/sandboxed/queueOps.d.ts +2 -2
  241. package/dist/client/sandboxed/queueOps.js +32 -5
  242. package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
  243. package/dist/client/sandboxed/runtime/dispatch.js +186 -0
  244. package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
  245. package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
  246. package/dist/client/sandboxed/runtime/log.d.ts +1 -0
  247. package/dist/client/sandboxed/runtime/log.js +15 -0
  248. package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
  249. package/dist/client/sandboxed/runtime/pool.js +121 -0
  250. package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
  251. package/dist/client/sandboxed/runtime/recovery.js +122 -0
  252. package/dist/client/sandboxed/runtime/state.d.ts +39 -0
  253. package/dist/client/sandboxed/runtime/state.js +59 -0
  254. package/dist/client/sandboxed/types/index.d.ts +2 -0
  255. package/dist/client/sandboxed/types/index.js +1 -0
  256. package/dist/client/sandboxed/types/options.d.ts +27 -0
  257. package/dist/client/sandboxed/types/options.js +1 -0
  258. package/dist/client/sandboxed/types/process.d.ts +30 -0
  259. package/dist/client/sandboxed/types/process.js +1 -0
  260. package/dist/client/sandboxed/worker.d.ts +3 -85
  261. package/dist/client/sandboxed/worker.js +3 -557
  262. package/dist/client/sandboxed/wrapper.js +1 -0
  263. package/dist/client/tcp/client.d.ts +5 -112
  264. package/dist/client/tcp/client.js +5 -481
  265. package/dist/client/tcp/commandQueue.d.ts +23 -0
  266. package/dist/client/tcp/commandQueue.js +89 -0
  267. package/dist/client/tcp/connection.d.ts +4 -85
  268. package/dist/client/tcp/connection.js +3 -315
  269. package/dist/client/tcp/errors.d.ts +6 -0
  270. package/dist/client/tcp/errors.js +18 -0
  271. package/dist/client/tcp/runtime/commands.d.ts +9 -0
  272. package/dist/client/tcp/runtime/commands.js +124 -0
  273. package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
  274. package/dist/client/tcp/runtime/connectivity.js +77 -0
  275. package/dist/client/tcp/runtime/health.d.ts +14 -0
  276. package/dist/client/tcp/runtime/health.js +127 -0
  277. package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
  278. package/dist/client/tcp/runtime/lifecycle.js +32 -0
  279. package/dist/client/tcp/runtime/state.d.ts +50 -0
  280. package/dist/client/tcp/runtime/state.js +45 -0
  281. package/dist/client/tcp/transport.d.ts +18 -0
  282. package/dist/client/tcp/transport.js +158 -0
  283. package/dist/client/tcp/types/command.d.ts +9 -0
  284. package/dist/client/tcp/types/command.js +1 -0
  285. package/dist/client/tcp/types/connection.d.ts +31 -0
  286. package/dist/client/tcp/types/connection.js +17 -0
  287. package/dist/client/tcp/types/index.d.ts +5 -0
  288. package/dist/client/tcp/types/index.js +1 -0
  289. package/dist/client/tcp/types/socket.d.ts +8 -0
  290. package/dist/client/tcp/types/socket.js +1 -0
  291. package/dist/client/tcp/types/tls.d.ts +4 -0
  292. package/dist/client/tcp/types/tls.js +1 -0
  293. package/dist/client/tcp/types.d.ts +2 -106
  294. package/dist/client/tcp/types.js +2 -22
  295. package/dist/client/types/connection.d.ts +29 -0
  296. package/dist/client/types/connection.js +1 -0
  297. package/dist/client/types/dlq.d.ts +45 -0
  298. package/dist/client/types/dlq.js +1 -0
  299. package/dist/client/types/events.d.ts +54 -0
  300. package/dist/client/types/events.js +1 -0
  301. package/dist/client/types/flow.d.ts +10 -0
  302. package/dist/client/types/flow.js +1 -0
  303. package/dist/client/types/index.d.ts +10 -0
  304. package/dist/client/types/index.js +1 -0
  305. package/dist/client/types/job.d.ts +127 -0
  306. package/dist/client/types/job.js +1 -0
  307. package/dist/client/types/metrics.d.ts +1 -0
  308. package/dist/client/types/metrics.js +1 -0
  309. package/dist/client/types/options.d.ts +62 -0
  310. package/dist/client/types/options.js +1 -0
  311. package/dist/client/types/worker.d.ts +38 -0
  312. package/dist/client/types/worker.js +1 -0
  313. package/dist/client/types.d.ts +2 -583
  314. package/dist/client/types.js +2 -6
  315. package/dist/client/worker/ackBatcher.d.ts +1 -1
  316. package/dist/client/worker/ackBatcher.js +17 -5
  317. package/dist/client/worker/ackOutcome.d.ts +8 -0
  318. package/dist/client/worker/ackOutcome.js +58 -0
  319. package/dist/client/worker/constants.d.ts +7 -0
  320. package/dist/client/worker/{types.js → constants.js} +0 -6
  321. package/dist/client/worker/groupConcurrency.js +3 -0
  322. package/dist/client/worker/handlers/completion.d.ts +28 -0
  323. package/dist/client/worker/handlers/completion.js +68 -0
  324. package/dist/client/worker/handlers/dependencies.d.ts +11 -0
  325. package/dist/client/worker/handlers/dependencies.js +107 -0
  326. package/dist/client/worker/handlers/mutations.d.ts +23 -0
  327. package/dist/client/worker/handlers/mutations.js +211 -0
  328. package/dist/client/worker/handlers/queries.d.ts +15 -0
  329. package/dist/client/worker/handlers/queries.js +100 -0
  330. package/dist/client/worker/index.d.ts +2 -2
  331. package/dist/client/worker/index.js +1 -1
  332. package/dist/client/worker/jobParser.js +4 -2
  333. package/dist/client/worker/processor.d.ts +2 -15
  334. package/dist/client/worker/processor.js +67 -124
  335. package/dist/client/worker/processorHandlers.d.ts +4 -61
  336. package/dist/client/worker/processorHandlers.js +4 -398
  337. package/dist/client/worker/processorOutcome.d.ts +14 -0
  338. package/dist/client/worker/processorOutcome.js +125 -0
  339. package/dist/client/worker/runtime/buffer.d.ts +8 -0
  340. package/dist/client/worker/runtime/buffer.js +50 -0
  341. package/dist/client/worker/runtime/control.d.ts +26 -0
  342. package/dist/client/worker/runtime/control.js +175 -0
  343. package/dist/client/worker/runtime/execution.d.ts +11 -0
  344. package/dist/client/worker/runtime/execution.js +123 -0
  345. package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
  346. package/dist/client/worker/runtime/lifecycle.js +114 -0
  347. package/dist/client/worker/runtime/manual.d.ts +10 -0
  348. package/dist/client/worker/runtime/manual.js +137 -0
  349. package/dist/client/worker/runtime/options.d.ts +5 -0
  350. package/dist/client/worker/runtime/options.js +39 -0
  351. package/dist/client/worker/runtime/polling.d.ts +12 -0
  352. package/dist/client/worker/runtime/polling.js +123 -0
  353. package/dist/client/worker/runtime/state.d.ts +110 -0
  354. package/dist/client/worker/runtime/state.js +156 -0
  355. package/dist/client/worker/types/index.d.ts +5 -0
  356. package/dist/client/worker/types/index.js +1 -0
  357. package/dist/client/worker/types/manual.d.ts +7 -0
  358. package/dist/client/worker/types/manual.js +1 -0
  359. package/dist/client/worker/types/options.d.ts +24 -0
  360. package/dist/client/worker/types/options.js +1 -0
  361. package/dist/client/worker/types/outcome.d.ts +23 -0
  362. package/dist/client/worker/types/outcome.js +1 -0
  363. package/dist/client/worker/types/processor.d.ts +22 -0
  364. package/dist/client/worker/types/processor.js +1 -0
  365. package/dist/client/worker/types/transport.d.ts +11 -0
  366. package/dist/client/worker/types/transport.js +1 -0
  367. package/dist/client/worker/worker.d.ts +3 -160
  368. package/dist/client/worker/worker.js +3 -928
  369. package/dist/client/worker/workerRateLimiter.d.ts +5 -1
  370. package/dist/client/worker/workerRateLimiter.js +40 -20
  371. package/dist/client/worker.d.ts +1 -0
  372. package/dist/client/workflow/compensationChild.d.ts +2 -1
  373. package/dist/client/workflow/compensationChild.js +1 -1
  374. package/dist/client/workflow/compensationClaim.d.ts +11 -0
  375. package/dist/client/workflow/compensationClaim.js +30 -0
  376. package/dist/client/workflow/compensator.d.ts +7 -2
  377. package/dist/client/workflow/compensator.js +5 -11
  378. package/dist/client/workflow/recovery.js +25 -2
  379. package/dist/client/workflow/rollbackControl.js +1 -1
  380. package/dist/domain/job/constants.d.ts +12 -0
  381. package/dist/domain/job/constants.js +12 -0
  382. package/dist/domain/job/create.d.ts +2 -0
  383. package/dist/domain/job/create.js +103 -0
  384. package/dist/domain/job/ids.d.ts +5 -0
  385. package/dist/domain/job/ids.js +12 -0
  386. package/dist/domain/job/locks.d.ts +4 -0
  387. package/dist/domain/job/locks.js +23 -0
  388. package/dist/domain/job/payload.d.ts +18 -0
  389. package/dist/domain/job/payload.js +43 -0
  390. package/dist/domain/job/state.d.ts +8 -0
  391. package/dist/domain/job/state.js +51 -0
  392. package/dist/domain/job/terminal.d.ts +3 -0
  393. package/dist/domain/job/terminal.js +9 -0
  394. package/dist/domain/queue/dlqShard.d.ts +2 -0
  395. package/dist/domain/queue/dlqShard.js +34 -9
  396. package/dist/domain/queue/priorityQueue.js +3 -39
  397. package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
  398. package/dist/domain/queue/priorityQueueOrder.js +21 -0
  399. package/dist/domain/queue/shard/dependencies.d.ts +11 -0
  400. package/dist/domain/queue/shard/dependencies.js +22 -0
  401. package/dist/domain/queue/shard/dlq.d.ts +25 -0
  402. package/dist/domain/queue/shard/dlq.js +71 -0
  403. package/dist/domain/queue/shard/keys.d.ts +18 -0
  404. package/dist/domain/queue/shard/keys.js +45 -0
  405. package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
  406. package/dist/domain/queue/shard/lifecycle.js +43 -0
  407. package/dist/domain/queue/shard/limits.d.ts +24 -0
  408. package/dist/domain/queue/shard/limits.js +57 -0
  409. package/dist/domain/queue/shard/metrics.d.ts +32 -0
  410. package/dist/domain/queue/shard/metrics.js +72 -0
  411. package/dist/domain/queue/shard/state.d.ts +34 -0
  412. package/dist/domain/queue/shard/state.js +80 -0
  413. package/dist/domain/queue/shard.d.ts +5 -145
  414. package/dist/domain/queue/shard.js +4 -409
  415. package/dist/domain/response/builders.d.ts +15 -0
  416. package/dist/domain/response/builders.js +39 -0
  417. package/dist/domain/types/command.d.ts +2 -555
  418. package/dist/domain/types/command.js +2 -5
  419. package/dist/domain/types/commands/base.d.ts +5 -0
  420. package/dist/domain/types/commands/base.js +1 -0
  421. package/dist/domain/types/commands/core.d.ts +106 -0
  422. package/dist/domain/types/commands/core.js +1 -0
  423. package/dist/domain/types/commands/cron.d.ts +36 -0
  424. package/dist/domain/types/commands/cron.js +1 -0
  425. package/dist/domain/types/commands/dashboard.d.ts +13 -0
  426. package/dist/domain/types/commands/dashboard.js +1 -0
  427. package/dist/domain/types/commands/dlq.d.ts +39 -0
  428. package/dist/domain/types/commands/dlq.js +1 -0
  429. package/dist/domain/types/commands/extended.d.ts +63 -0
  430. package/dist/domain/types/commands/extended.js +1 -0
  431. package/dist/domain/types/commands/index.d.ts +12 -0
  432. package/dist/domain/types/commands/index.js +12 -0
  433. package/dist/domain/types/commands/limits.d.ts +54 -0
  434. package/dist/domain/types/commands/limits.js +1 -0
  435. package/dist/domain/types/commands/management.d.ts +73 -0
  436. package/dist/domain/types/commands/management.js +1 -0
  437. package/dist/domain/types/commands/monitoring.d.ts +49 -0
  438. package/dist/domain/types/commands/monitoring.js +1 -0
  439. package/dist/domain/types/commands/protocol.d.ts +20 -0
  440. package/dist/domain/types/commands/protocol.js +1 -0
  441. package/dist/domain/types/commands/query.d.ts +46 -0
  442. package/dist/domain/types/commands/query.js +1 -0
  443. package/dist/domain/types/commands/union.d.ts +13 -0
  444. package/dist/domain/types/commands/union.js +1 -0
  445. package/dist/domain/types/commands/workers.d.ts +39 -0
  446. package/dist/domain/types/commands/workers.js +1 -0
  447. package/dist/domain/types/cron.d.ts +4 -2
  448. package/dist/domain/types/cron.js +3 -0
  449. package/dist/domain/types/dlq.d.ts +17 -0
  450. package/dist/domain/types/dlq.js +70 -14
  451. package/dist/domain/types/index.d.ts +2 -0
  452. package/dist/domain/types/index.js +1 -0
  453. package/dist/domain/types/job.d.ts +8 -269
  454. package/dist/domain/types/job.js +8 -234
  455. package/dist/domain/types/jobs/model.d.ts +152 -0
  456. package/dist/domain/types/jobs/model.js +1 -0
  457. package/dist/domain/types/metrics.d.ts +16 -0
  458. package/dist/domain/types/metrics.js +1 -0
  459. package/dist/domain/types/priorityQueue.d.ts +12 -0
  460. package/dist/domain/types/priorityQueue.js +1 -0
  461. package/dist/domain/types/protocol.d.ts +5 -0
  462. package/dist/domain/types/protocol.js +4 -0
  463. package/dist/domain/types/queue.d.ts +2 -0
  464. package/dist/domain/types/response.d.ts +3 -192
  465. package/dist/domain/types/response.js +3 -101
  466. package/dist/domain/types/responses/model.d.ts +152 -0
  467. package/dist/domain/types/responses/model.js +1 -0
  468. package/dist/domain/types/shard.d.ts +4 -0
  469. package/dist/domain/types/shard.js +1 -0
  470. package/dist/infrastructure/cloud/cloudAgent.js +6 -0
  471. package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
  472. package/dist/infrastructure/cloud/commandHandler.js +1 -1
  473. package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
  474. package/dist/infrastructure/cloud/commands/integrations.js +31 -0
  475. package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
  476. package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
  477. package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
  478. package/dist/infrastructure/cloud/commands/jobs.js +111 -0
  479. package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
  480. package/dist/infrastructure/cloud/commands/queues.js +126 -0
  481. package/dist/infrastructure/cloud/commands.d.ts +3 -10
  482. package/dist/infrastructure/cloud/commands.js +7 -344
  483. package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
  484. package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
  485. package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
  486. package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
  487. package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
  488. package/dist/infrastructure/cloud/snapshot/config.js +86 -0
  489. package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
  490. package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
  491. package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
  492. package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
  493. package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
  494. package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
  495. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
  496. package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
  497. package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
  498. package/dist/infrastructure/cloud/types/collector.js +1 -0
  499. package/dist/infrastructure/cloud/types/command.d.ts +44 -0
  500. package/dist/infrastructure/cloud/types/command.js +1 -0
  501. package/dist/infrastructure/cloud/types/config.d.ts +18 -0
  502. package/dist/infrastructure/cloud/types/config.js +1 -0
  503. package/dist/infrastructure/cloud/types/event.d.ts +14 -0
  504. package/dist/infrastructure/cloud/types/event.js +1 -0
  505. package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
  506. package/dist/infrastructure/cloud/types/redact.js +1 -0
  507. package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
  508. package/dist/infrastructure/cloud/types/snapshot.js +1 -0
  509. package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
  510. package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
  511. package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
  512. package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
  513. package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
  514. package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
  515. package/dist/infrastructure/cloud/types.d.ts +3 -445
  516. package/dist/infrastructure/cloud/types.js +0 -4
  517. package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
  518. package/dist/infrastructure/persistence/batchInsert.js +96 -0
  519. package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
  520. package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
  521. package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
  522. package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
  523. package/dist/infrastructure/persistence/migrations.d.ts +3 -0
  524. package/dist/infrastructure/persistence/migrations.js +120 -0
  525. package/dist/infrastructure/persistence/schema.d.ts +3 -5
  526. package/dist/infrastructure/persistence/schema.js +40 -136
  527. package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
  528. package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
  529. package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
  530. package/dist/infrastructure/persistence/sqlite/control.js +90 -0
  531. package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
  532. package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
  533. package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
  534. package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
  535. package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
  536. package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
  537. package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
  538. package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
  539. package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
  540. package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
  541. package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
  542. package/dist/infrastructure/persistence/sqlite/records.js +115 -0
  543. package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
  544. package/dist/infrastructure/persistence/sqlite/state.js +207 -0
  545. package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
  546. package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
  547. package/dist/infrastructure/persistence/sqlite.d.ts +5 -280
  548. package/dist/infrastructure/persistence/sqlite.js +3 -1013
  549. package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
  550. package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
  551. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
  552. package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
  553. package/dist/infrastructure/persistence/statements.d.ts +5 -1
  554. package/dist/infrastructure/persistence/statements.js +14 -9
  555. package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
  556. package/dist/infrastructure/persistence/types/admission.js +1 -0
  557. package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
  558. package/dist/infrastructure/persistence/types/batch.js +1 -0
  559. package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
  560. package/dist/infrastructure/persistence/types/sqlite.js +1 -0
  561. package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
  562. package/dist/infrastructure/persistence/writeBuffer.js +221 -0
  563. package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
  564. package/dist/infrastructure/scheduler/cron/execution.js +150 -0
  565. package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
  566. package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
  567. package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
  568. package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
  569. package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
  570. package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
  571. package/dist/infrastructure/server/bootstrap.js +3 -0
  572. package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
  573. package/dist/infrastructure/server/handler-routes/control.js +82 -0
  574. package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
  575. package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
  576. package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
  577. package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
  578. package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
  579. package/dist/infrastructure/server/handlerRoutes.js +3 -270
  580. package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
  581. package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
  582. package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
  583. package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
  584. package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
  585. package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
  586. package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
  587. package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
  588. package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
  589. package/dist/infrastructure/server/handlers/advanced.js +3 -336
  590. package/dist/infrastructure/server/handlers/core.d.ts +1 -4
  591. package/dist/infrastructure/server/handlers/core.js +37 -20
  592. package/dist/infrastructure/server/handlers/cron.js +9 -1
  593. package/dist/infrastructure/server/handlers/flow.js +6 -1
  594. package/dist/infrastructure/server/handlers/introspection.js +1 -1
  595. package/dist/infrastructure/server/handlers/management.d.ts +8 -0
  596. package/dist/infrastructure/server/handlers/management.js +30 -0
  597. package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
  598. package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
  599. package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
  600. package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
  601. package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
  602. package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
  603. package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
  604. package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
  605. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
  606. package/dist/infrastructure/server/handlers/monitoring.js +4 -222
  607. package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
  608. package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
  609. package/dist/infrastructure/server/handlers/query.js +12 -3
  610. package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
  611. package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
  612. package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
  613. package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
  614. package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
  615. package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
  616. package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
  617. package/dist/infrastructure/server/httpRouteJobs.js +33 -222
  618. package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
  619. package/dist/infrastructure/server/httpRouteQueues.js +51 -217
  620. package/dist/infrastructure/server/httpRouteResources.js +1 -0
  621. package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
  622. package/dist/infrastructure/server/protocol/commands.js +31 -0
  623. package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
  624. package/dist/infrastructure/server/protocol/frameParser.js +65 -0
  625. package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
  626. package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
  627. package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
  628. package/dist/infrastructure/server/protocol/validation.js +75 -0
  629. package/dist/infrastructure/server/protocol.d.ts +5 -77
  630. package/dist/infrastructure/server/protocol.js +4 -265
  631. package/dist/infrastructure/server/rateLimiter.js +1 -0
  632. package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
  633. package/dist/infrastructure/server/socketWriteQueue.js +8 -5
  634. package/dist/infrastructure/server/sse/constants.d.ts +5 -0
  635. package/dist/infrastructure/server/sse/constants.js +5 -0
  636. package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
  637. package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
  638. package/dist/infrastructure/server/sseHandler.d.ts +2 -6
  639. package/dist/infrastructure/server/sseHandler.js +20 -96
  640. package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
  641. package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
  642. package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
  643. package/dist/infrastructure/server/tcp/connections.js +162 -0
  644. package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
  645. package/dist/infrastructure/server/tcp/constants.js +3 -0
  646. package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
  647. package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
  648. package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
  649. package/dist/infrastructure/server/tcp/responses.js +8 -0
  650. package/dist/infrastructure/server/tcp.d.ts +10 -68
  651. package/dist/infrastructure/server/tcp.js +47 -256
  652. package/dist/infrastructure/server/types/protocol.d.ts +4 -0
  653. package/dist/infrastructure/server/types/protocol.js +1 -0
  654. package/dist/infrastructure/server/types/sse.d.ts +11 -0
  655. package/dist/infrastructure/server/types/sse.js +1 -0
  656. package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
  657. package/dist/infrastructure/server/types/tcpServer.js +1 -0
  658. package/dist/infrastructure/server/types/ws.d.ts +6 -0
  659. package/dist/infrastructure/server/types/ws.js +1 -0
  660. package/dist/infrastructure/server/ws/constants.d.ts +6 -0
  661. package/dist/infrastructure/server/ws/constants.js +130 -0
  662. package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
  663. package/dist/infrastructure/server/ws/snapshots.js +52 -0
  664. package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
  665. package/dist/infrastructure/server/ws/subscriptions.js +39 -0
  666. package/dist/infrastructure/server/wsHandler.d.ts +2 -10
  667. package/dist/infrastructure/server/wsHandler.js +12 -237
  668. package/dist/mcp/adapter.d.ts +5 -403
  669. package/dist/mcp/adapter.js +6 -778
  670. package/dist/mcp/backend/embedded/base.d.ts +7 -0
  671. package/dist/mcp/backend/embedded/base.js +15 -0
  672. package/dist/mcp/backend/embedded/index.d.ts +14 -0
  673. package/dist/mcp/backend/embedded/index.js +22 -0
  674. package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
  675. package/dist/mcp/backend/embedded/jobs.js +98 -0
  676. package/dist/mcp/backend/embedded/queues.d.ts +27 -0
  677. package/dist/mcp/backend/embedded/queues.js +84 -0
  678. package/dist/mcp/backend/embedded/services.d.ts +29 -0
  679. package/dist/mcp/backend/embedded/services.js +107 -0
  680. package/dist/mcp/backend/serializers.d.ts +7 -0
  681. package/dist/mcp/backend/serializers.js +32 -0
  682. package/dist/mcp/backend/tcp/base.d.ts +19 -0
  683. package/dist/mcp/backend/tcp/base.js +54 -0
  684. package/dist/mcp/backend/tcp/index.d.ts +14 -0
  685. package/dist/mcp/backend/tcp/index.js +20 -0
  686. package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
  687. package/dist/mcp/backend/tcp/jobs.js +122 -0
  688. package/dist/mcp/backend/tcp/queues.d.ts +27 -0
  689. package/dist/mcp/backend/tcp/queues.js +89 -0
  690. package/dist/mcp/backend/tcp/services.d.ts +30 -0
  691. package/dist/mcp/backend/tcp/services.js +161 -0
  692. package/dist/mcp/types/adapter.d.ts +176 -0
  693. package/dist/mcp/types/adapter.js +1 -0
  694. package/dist/shared/asyncLock.d.ts +13 -0
  695. package/dist/shared/asyncLock.js +65 -0
  696. package/dist/shared/lock.d.ts +10 -72
  697. package/dist/shared/lock.js +7 -231
  698. package/dist/shared/lockError.d.ts +3 -0
  699. package/dist/shared/lockError.js +6 -0
  700. package/dist/shared/lockTimeout.d.ts +2 -0
  701. package/dist/shared/lockTimeout.js +2 -0
  702. package/dist/shared/rwLock.d.ts +22 -0
  703. package/dist/shared/rwLock.js +124 -0
  704. package/dist/shared/serialization.js +1 -0
  705. package/dist/shared/skipList.d.ts +0 -5
  706. package/dist/shared/skipList.js +10 -57
  707. package/dist/shared/skipListNodes.d.ts +6 -0
  708. package/dist/shared/skipListNodes.js +43 -0
  709. package/dist/shared/types/lock.d.ts +7 -0
  710. package/dist/shared/types/lock.js +1 -0
  711. package/dist/shared/types/skipList.d.ts +4 -0
  712. package/dist/shared/types/skipList.js +1 -0
  713. package/package.json +2 -1
  714. package/dist/application/types.d.ts +0 -148
  715. package/dist/client/sandboxed/types.d.ts +0 -79
  716. package/dist/client/sandboxed/types.js +0 -5
  717. package/dist/client/worker/types.d.ts +0 -50
  718. /package/dist/client/queue/{queueTypes.js → types/contexts.js} +0 -0
@@ -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[]>;